Я хочу разрешить вход по SSH только с 3 IP-адресов: 111.111.111.111, 222.222.222.222 и 333.333.333.333. Я знаю, мне нужно отредактировать файлы /etc/hosts.allow и /etc/hosts.deny.
У меня вопрос о содержании этих файлов. Я видел разные варианты:
# /etc/hosts.allow
Вариант 1:
sshd: 111.111.111
sshd: 222.222.222
sshd: 333.333.333
Вариант 2:
sshd: 111.111.111, 222.222.222, 333.333.333
Вариант 3: (без запятых):
sshd: 111.111.111 222.222.222 333.333.333
Вариант 4 (с sshdfwd-X11):
sshd,sshdfwd-X11: 111.111.111 222.222.222 333.333.333
/etc/hosts.deny
Вариант 1:
sshd: ALL
Вариант 2:
sshd,sshdfwd-X11:ALL
Какой правильный? Я боюсь заблокировать меня. Спасибо.
Я бы сделал это лично в sshd_config
с помощью AllowUsers
.
AllowUsers = *@111.111.111.111, *@222.222.222.222, *@333.333.333.333
Для меня это сохраняет всю конфигурацию на месте, связанном с приложением, которым вы управляете. Всегда есть более одного способа снять шкуру с кошки с помощью UNIX, но если инструмент предлагает определенный механизм управления, я предпочитаю его всему остальному (это обычно более портативный).
При изменении чего-либо, связанного с удаленным доступом,
Я считаю, что если у вас уже есть несколько удаленных сеансов, все будет в порядке. Изменение /etc/ssh/sshd_config
и повторное использование SSH не отключает существующие сеансы.
Хотя я понимаю, что это не ответ на ваш конкретный вопрос. Я считаю Джефф отвечает (в том смысле, что все эти варианты действительны, если вы используете /etc/hosts.deny
или /etc/hosts.allow
).
Как правило, я предпочитаю реализовывать подобные правила, используя iptables
.
Что касается правильного варианта, все они должны работать. В соответствующая страница руководства (спасибо, что поймал это Оливер) говорит, что можно использовать пробелы или запятые. Также обсуждается, что любой матч daemon: client
будет учитываться, и что несколько клиентов могут быть перечислены в строке, и все несколько записей для демона будут оцениваться.