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