Хотите заблокировать доступ к SSH на вашем Linux-сервере?
Мы покажем вам вам один шаг, который займет всего несколько секунд.
Если вы администратор Linux, вы тратите много времени на вход в систему на удаленных компьютерах с помощью SSH.
Также очень вероятно, что вы предприняли множество шагов для блокировки доступа SSH к этим удаленным серверам.
На самом деле, вы, вероятно, используете аутентификацию по ключу SSH и denyhosts.
🔬 Как обменяться ключом SSH для аутентификации без пароля между серверами Linux
Вместе эти два решения значительно улучшают доступ к вашим удаленным серверам Linux.
Но есть еще один шаг, который вы можете сделать, при этом он настолько прост и очевиден, что большинство администраторов забывают, что это тоже вариант.
Этот конкретный шаг не требует стороннего программного обеспечения и может быть решен в считанные секунды.
🛡️ Как обезопасить и защитить сервер OpenSSH
Любопытно?
Давай сделаем это.
Что вам понадобиться
- Сервер Linux, на котором работает демон SSH
- IP-адрес (а) любого клиента, которому нужен доступ к серверу
Как разрешить IP-адрес клиента
Первое, что нам нужно сделать, это разрешить IP-адрес любого клиента, которого вы используете, на удаленном сервере с SSH.
Если у вас есть список IP-адресов, вы можете добавить их в /etc/hosts.allow.
Для этого выполните команду (на удаленном сервере):
sudo nano /etc/hosts.allow
В конце этого файла добавьте следующее:
sshd: IP
Где IP – это IP-адрес удаленного клиента, которому требуется доступ к серверу.
Если у вас есть несколько IP-адресов или диапазонов IP-адресов, вы можете ввести их следующим образом:
sshd: 10.83.33.77/32, 10.63.152.9/32, 10.12.100.11/28, 10.82.192.0/28
или так:
sshd : 192.168.1.0/24 sshd : 127.0.0.1 sshd : [::1]
Примечание : мы также включили адрес loopback для сервера.
Сохраните и закройте файл.
Как заблокировать все остальные адреса
Теперь, когда мы разрешили IP-адрес или список адресов, пришло время заблокировать все другие адреса.
Следует иметь в виду, что система Linux сначала будет смотреть на hosts.allow (сверху вниз), а затем hosts.deny (сверху вниз).
Поэтому попытка подключения по SSH с IP-адреса в hosts.allow будет разрешена, даже если hosts.deny явно блокирует ВСЕ.
Итак, чтобы заблокировать все остальные IP-адреса, откройте нужный файл с помощью команды:
sudo nano /etc/hosts.deny
Внизу этого файла добавьте следующее:
sshd: ALL
Сохраните и закройте файл.
На этом этапе любому клиенту, указанному в hosts.allow, будет разрешен вход (по SSH), а любому клиенту, не указанному в списке, будет отказано.
Для этого не нужно перезапускать демон SSH.
Сочетание аутентификации по SSH-ключу, denyhosts и hosts.allow / deny обеспечивает безопасный доступ к оболочке Linux на ваших серверах.
🖧 8 способов предотвратить атаки брутфорс на SSH на Linux (CentOS / RHEL)
Я не знаю почему, но мне нравится читать эти статьи