Вы можете ограничить количество хостов, которые могут подключаться, настроив оболочки TCP или фильтруя сетевой трафик (брандмауэр )с помощью iptables . Если вы хотите использовать разные методы аутентификации в зависимости от IP-адреса клиента, настройте демон SSH вместо (вариант 3 ).
Правила Iptables оцениваются по порядку, до первого совпадения.
Например, чтобы разрешить трафик из сети 192.168.0.0/24 и в противном случае перенаправить трафик (на порт 22 ). Правило DROP
не требуется, если ваша политика iptables по умолчанию настроена на DROP
.
iptables -A INPUT -p tcp --dport 22 --source 192.168.0.0/24 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP
Вы можете добавить дополнительные правила перед правилом отбрасывания, чтобы соответствовать большему количеству сетей/хостов. Если у вас много сетей или адресов узлов, вам следует использовать модульipset . Существует также модульiprange , который позволяет использовать любой произвольный диапазон IP-адресов.
Iptables не сохраняются после перезагрузки. Вам нужно настроить какой-то механизм для восстановления iptables при загрузке.
iptables
применяются только к трафику IPv4.В системах, в которых ssh прослушивает IPv6-адреса, необходимую настройку можно выполнить с помощью ip6tables
.
Обратите внимание, :это может быть недоступно в современных дистрибутивах, так как поддержка tcpwrappers была удалена из OpenSSH 6.7
Вы также можете указать, какие хосты могут подключаться с помощью оболочек TCP. В TCP-оболочках помимо IP-адресов вы также можете использовать имена хостов в правилах.
По умолчанию запрещаются все хосты.
/etc/hosts.deny
:
sshd : ALL
Затем перечислите разрешенные хосты в hosts.allow. Например, чтобы разрешить сеть 192.168.0.0/24 и localhost .
/etc/hosts.allow
:
sshd : 192.168.0.0/24
sshd : 127.0.0.1
sshd : [::1]
Вы можете настроить демон ssh в конфигурации sshd _для использования другого метода аутентификации в зависимости от адреса/имени хоста клиента. Если вы хотите только заблокировать подключение других хостов, вам следует использовать iptables или TCP-оболочки.
Сначала удалите методы аутентификации по умолчанию:
PasswordAuthentication no
PubkeyAuthentication no
Затем добавьте нужные методы аутентификации после Match Address
в конце файла. Размещение Match
в конце файла важно, так как все строки конфигурации после него помещаются внутри условного блока до следующей строки Match
. Например:
Match Address 127.0.0.*
PubkeyAuthentication yes
Другие клиенты по-прежнему могут подключаться, но вход невозможен из-за отсутствия доступных методов аутентификации.
Аргументы сопоставления и разрешенные условные параметры конфигурации описаны в sshd _справочной странице конфигурации . Шаблоны совпадений задокументированы на ssh _справочной странице конфигурации .
Если вы хотите использовать суффикс резервной копии с GNU sed
, суффикс должен следовать сразу за опцией -i
, как в
sed -i"$( date +.%s )" -E '...as in question...' /etc/salt/minion
Я также добавил точку к суффиксу резервной копии, чтобы вы получали такие суффиксы, как .1578741576
.
Связанные: