ГлавнаяОперационные системыLinuxКак защитить SSH-сервер в Ubuntu

Как защитить SSH-сервер в Ubuntu

Отключить аутентификацию по паролю

с и протокол командной строки для безопасного доступа к удаленному серверу Linux. Он обеспечивает безопасную и зашифрованную связь по сети и позволяет обмениваться данными по защищенному каналу между двумя серверами. Он широко используется системными администраторами для контролировать и управлять своими веб-серверами удаленного доступа. В этом руководстве показано, как защитить ваш SSH-сервер.

Примечание : хотя данное руководство выполнено в Ubuntu, описанные действия применимы к большинству дистрибутивов Linux.

Установить и обновить SSH

Сначала обновите свою систему и установите необходимые пакеты.

Чтобы обновить систему и установить SSH-сервер на сервер и клиентские машины, выполните следующую команду:

sudo apt update && sudo apt upgrade
sudo apt install ssh

Настроить SSH для входа без пароля

Существ

Contents

Установить и обновить SSH

-сервер: аутентификация по паролю и аутентификация с открытым ключом. Аутентификация по паролю — это очень простой метод, который легко использовать и взломать. Использование аутентификации по паролю очень небезопасно, особенно если используется слабый пароль. С другой стороны, ключи SSH обеспечивают простой и безопасный способ входа на удаленный сервер, и этот метод рекомендуется всем пользователям.

На клиентском компьютере сгенерируйте ключи SSH с помощью следующей команды:

ssh-keygen

Нажимайте клавишу Enterпри каждом появлении запроса. В результате будут созданы два файла: «id_rsa.pub» (открытый ключ) и «id_rsa» (закрытый ключ).

Генерация открытого ключа Ubuntu Ssh Server Secure 01

На вашем сервере создайте следующую папку (если она не существует):

mkdir -p ~/.ssh/

Вернитесь на свой клиентский компьютер и скопируйте ключ SSH на свой сервер, используя следующую команду:

ssh-copy-id username@your.server.ip.address
Ubuntu Ssh Server Secure 02 Копирование открытого ключа на сервер

На вашем сервере убедитесь, что папка «.ssh» имеет правильные права доступа к файлам.

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

Чтобы проверить, работает ли метод аутентификации с открытым ключом, попробуйте подключиться к вашему SSH-серверу с клиентского компьютера:

ssh username@your.server.ip.address

Если вы можете подключиться без ввода пароля, значит метод аутентификации с открытым ключом работает.

Примечание. Если вы используете Windows, используйте инструкции здесь для создания открытых/закрытых ключей SSH .

Файл конфигурации безопасного SSH

Файл «/etc/ssh/sshd_config» — это общесистемный файл конфигурации SSH, который позволяет вам устанавливать различные параметры для повышения безопасности SSH-сервера. Конфигурация по умолчанию в файле конфигурации очень небезопасна, поэтому вам необходимо сначала отредактировать ее и установить правильные параметры для повышения безопасности.

Чтобы отредактировать файл «/etc/ssh/sshd_config», запустите:

sudo nano /etc/ssh/sshd_config

Изменить порт прослушивания SSH

По умолчанию SSH прослушивает порт 22. Злоумышленники используют сканеры портов, чтобы узнать, запущена ли служба SSH или нет. Рекомендуется изменить порт по умолчанию.

Чтобы изменить порт по умолчанию на 2200, измените:

Port 22

до

Port 2200
Ubuntu Ssh Server Secure 03 Изменить порт по умолчанию

Использовать только протокол 2

Версия 1 протокола содержит уязвимости безопасности. Протокол 2 является записью по умолчанию в Ubuntu.

Измените строку, показанную ниже:

Protocol 2
Версия протокола обновления Ubuntu Ssh Server Secure 04

Ограничить доступ пользователей

Необходимо разрешить вход в SSH только определенным пользователям. Это может улучшить вашу безопасность. По умолчанию эта опция недоступна в файле конфигурации SSH.

Чтобы разрешить «user1» и «user2», добавьте следующую строку:

AllowUsers user1 user2

Чтобы запретить «baduser1» и «baduser2», добавьте следующую строку:

DenyUsers baduser1 baduser2
Ubuntu Ssh Server Secure 05 включает пользовательский фильтр

Отключить root-вход

Нет необходимости входить в систему как root через ssh по сети. Обычные пользователи также могут использовать suили sudoдля получения доступа на корневом уровне. Большинство злоумышленников попытаются использовать для входа пользователя root. Это большой риск для безопасности, поэтому рекомендуется запре

Файл конфигурации безопасного SSH

лючить root-вход, измените строку

PermitRootLogin prohibit-password

до

PermitRootLogin no
Ubuntu Ssh Server Secure 06 Отключить root-вход

Скрыть последний вход

Вы можете скрыть, кто вошел в систему последним, когда пользователь входит в систему.

Изменить строку

PrintLastLog yes

до

PrintLastLog no
Ubuntu Ssh Server Secure 07 Отключить ведение журнала

Вы все еще можете Изменить порт прослушивания SSHe="просмотреть все активные SSH-соединения с помощью методов из этого списка">просмотреть все активные SSH-соединения с помощью методов из этого списка .

Ограничить интерфейс для входа

По умолчанию SSH прослушивает все сетевые интерфейсы. Если вы хотите разрешить SSH-соединение с определенного IP-адреса, вы можете изменить строку:

#ListenAddress ::

до

ListenAddress 192.168.68.175
Ubuntu Ssh Server Secure 08 Фильтр IP-доступа Конфигурация Sshd

Отключить аутентификацию по паролюИспользовать только протокол 2

паролю представляет собой большой риск для безопасности, если используется слабый пароль. Использование «ssh-ключей» является хорошей практикой. «SSH-ключ» может содержать более 600 случайных символов, и его сложно взломать.

Для этого измените строку

# PasswordAuthentication yes

в

PasswordAuthentication no
Ограничить доступ пользователейить аутентификацию по паролю">

Отключить файлы.rhosts

Файлы.rhosts определяют, какие пользователи могут получить доступ к r-командам (rsh, rcp, rlogin и т. д.) на локальном компьютере без пароля. По умолчанию файл.rhosts отключен; если нет, измените строки, как показано ниже.

IgnoreRhosts yes
RhostsAuthentication no
RSAAuthentication yes
Ubuntu Ssh Server Secure 10 Отключить Rhosts

Отключить аутентификацию на основе хоста

Аутентификация на основе хоста SSH более безопасна, чем аутентификация.rhosts. Однако не рекомендуется, чтобы хосты доверяли друг другу. По умолчанию эта опция отключена.

Если нет, измените строку, как показано ниже:

<

Отключить root-вход

ation no
Ubuntu Ssh Server Secure 11 Отключить аутентификацию хоста

Установить время ожидания входа в систему

LoginGraceTime определяет, как долго после запроса на соединение сервер будет ждать перед отключением. Рекомендуется сократить это время до 60 секунд.

Для этого измените строку

LoginGraceTime 2m

до

LoginGraceTime 1m
Ubuntu Ssh Server Secure 12 Уменьшите время входа в систему

Установить максимальное количество стартовых подключений

Настройка правильного максимального количества одновременных подключений к демону SSH может быть полезна против атаки методом перебора.

Для этого измените строку

#Max

Скрыть последний вход

>30:100

до

MaxStartups 2
Ubuntu Ssh Server Secure 13 Уменьшает количество одновременных подключений

Отключить переадресацию

Техника переадресации портов используется злоумышленниками для туннелирования сетевых подключений через сеанс SSH для входа в системы. По этой причине рекомендуется отключить эту опцию.

Для этого измените строку

X11Forwarding yes

до

X11Forwarding no
Ubuntu Ssh Server Secure 14 Отключить пересылку X11

Зарегистрировать дополнительную информацию

По умолчанию SSH запис

Ограничить интерфейс для входа

ь дополнительную информацию, например, неудачные попытки входа в систему. измените значение этого параметра на «VERBOSE».

Для этого измените строку

LogLevel INFO

до

LogLevel VERBOSE
Ubuntu Ssh Server Secure 15 увеличивает ведение журнала диагностики

Отключить пустые пароли

Необходимо запретить на вашем сервере пользователей с пустыми паролями. По умолчанию PermitEmptyPasswordsотключен в Ubuntu.

Если нет, измените строку, как показано ниже.

PermitEmptyPasswords no
Ubuntu Ssh Server Secure 16 Отключить пустые пароли

Установить интервал простоя

По умолчанию этот параметр недоступен в файле конфигурации SSH по умолчанию, поэтому рекомендуется установить правильный тайм-аут простоя, чтобы избежать автоматического сеанса.

Для этого добавьте следующие строки:

ClientAliveInterval 300
ClientAliveCountMax 0
Ubuntu Ssh Server Secure 17 Отключить продолжительность клиента

Строгий режим

Это предотвратит использование небезопасного домашнего каталога и прав доступа к ключевым файлам. По умолчанию эта опция включена.

Если нет, измените следующу

Отключить файлы.rhosts

Modes yes

Сохраните и закройте файл «/etc/ssh/sshd_config» и перезапустите SSH-сервер.

sudo systemctl restart ssh
Ubuntu Ssh Server Secure 18 Перезапустите демон Ssh

Безопасный SSH с помощью TCP-оболочек

Оболочка TCP обеспечивает управление доступом на основе узла к сетевым службам, используемым для фильтрации сетевого доступа к Интернету. Отредактируйте файл «/etc/hosts.allow», чтобы разрешить SSH только с «192.168.68.1» и «192.168.68

Отключить аутентификацию на основе хоста

o /etc/hosts.allow

Добавьте следующую строку:

sshd : 192.168.68.1 192.168.68.175
Ubuntu Ssh Server Secure 19 Фильтр IP-доступа к файлу хостов

Безопасный SSH с помощью iptables

По умолчанию SSH-сервер должен принимать соединения только из вашей локальной сети или других удаленных сайтов. Хорошей практикой является предоставление доступа к SSH только определенным IP-адресам и блокирование доступа к SSH для неавторизованных IP-адресов.

Чтобы разрешить SSH-соединения только с адреса «192.168.68

Установить время ожидания входа в систему

st.ru/2017/07/06/zashchitit-rabochiy-stol-linux-s-pomoshchyu-iptables/" title="iptables">iptables :

sudo iptables -A INPUT -p tcp -m state --state NEW --source 192.168.68.1 --dport 2200 -j ACCEPT

Отключите SSH-соединения со всех остальных хостов, выполнив следующую команду:

sudo iptables -A INPUT -p tcp --dport 2200 -j DROP
Установить максимальное количество стартовых подключений Ssh Server Secure 20 Фильтрация IP-адресов Брандмауэр">

Настройка SSH-подключений на локальном компьютере

На локальном компьютере (компьютере, который вы использовали для подключения к удаленному серверу) добавьте файл конфигурации, чтобы упростить параметр командной строки.

  1. Создайте файл конфигурации (расширение файла не требуется) в папке «/home/user/.ssh».
  2. Откройте файл и добавьте следующие строки:
Host sshserver
    HostName remote.server.ip.address.com
    Port 2200
    User foobar
    IdentityFile ~/.ssh/remote.server.key

Измените детали конфигурации вашего удаленного сервера.

  1. Сохраните и выйдите из текстового редактора. Чтобы подключиться к удаленному серверу, введит

    Отключить переадресацию

    ssh sshserver

    Помимо защиты вашего SSH-сервера вам также следует использовать эти инструменты для защиты других частей вашего сервера .

    Часто задаваемые вопросы

    IP-адрес моего локального компьютера изменился. Можно ли получить доступ к моему серверу через SSH?

    Если вы включили IP-фильтрацию, вы не сможете получить доступ к своему серверу после изменения вашего IP-адреса.

    Чтобы решить эту проблему, вы можете настроить удаленный сервер так, чтобы он принимал диапазон в

    Зарегистрировать дополнительную информацию

    рандмауэр так, чтобы он принимал диапазон IP-адресов для SSH-соединений: sudo iptables -A INPUT -p tcp -m state --state NEW --source 192.168.1.0/24 --dport 2200 -j ACCEPT.

    Мой сервер фильтрует файл хостов. Может быть, лучше использовать iptables для защиты моей системы?

    В большинстве случаев вам нужно настроить только один фильтр для вашего SSH-сервера. Использование нескольких IP-фильтров затруднит устранение любых проблем, которые могут возникнуть во время производства.

    Убедитесь, что брандмауэр и IP-фильтр работают рука об руку, защищая сетевые интерфейсы вашего сервера. Например, рекомендуется блокировать все неиспользуемые порты через брандмауэр и фильтровать соед

    Отключить пустые пароли

    osts».

    Я потерял закрытый ключ от своего локального компьютера. Можно ли еще войти на мой сервер через SSH?

    Нет, вы не сможете получить доступ к своему серверу, если потеряете закрытый ключ. Лучший способ решить эту проблему — получить доступ либо к физическому серверу, либо через корневую консоль VPS. Снова включите аутентификацию по паролю, установив для переменной PasswordAuthenticationзначение «да», затем перезапустите демон ssh, выполнив команду sudo systemctl restart ssh

    Установить интервал простоя

    all>Изображение предоставлено: Unsplash . Все изменения и скриншоты Рамсеса Реда.

    Строгий режим

    Безопасный SSH с помощью TCP-оболочек

    Безопасный SSH с помощью iptables

    Настройка SSH-подключений на локальном компьютере

    Часто задаваемые вопросы

    IP-адрес моего локального компьютера изменился. Можно ли получить доступ к моему серверу через SSH?

    Мой сервер фильтрует файл хостов. Может быть, лучше использовать iptables для защиты моей системы?

    Я потерял закрытый ключ от своего локального компьютера. Можно ли еще войти на мой сервер через SSH?

ПОХОЖИЕ СТАТЬИ

Популярные записи