Как ограничить «Удаленный вход» (ssh) доступ только для определенных диапазонов IP-адресов?

20

Может кто-нибудь подсказать, пожалуйста, как ограничить доступ SSH только для определенных диапазонов IP (например, локальной сети), а не для всего Интернета? Я думаю, это должно быть сделано через брандмауэр.

Михал М
источник

Ответы:

23

От man sshd:

/etc/hosts.allow
/etc/hosts.deny
Access controls that should be enforced by tcp-wrappers are defined here.  
Further details are described in hosts_access(5).

https://debian-administration.org/article/87/Keeping_SSH_access_secure предлагает следующие примеры:

# /etc/hosts.allow
sshd: 1.2.3.0/255.255.255.0
sshd: 192.168.0.0/255.255.255.0

# /etc/hosts.deny
sshd: ALL

Программа-оболочка TCP в Mac OS X: tcpd

Ти Джей Луома
источник
3

Я не проверял это, но я бы попробовал это в терминале:

sudo ipfw add allow src-ip 10.0.0.0/8,172.16.0.0/16,192.168.0.0/16 dst-ip me dst-port 22
sudo ipfw add reject src-ip any dst-ip me dst-port 22
Макс Рид
источник
1

Если вы находитесь за маршрутизатором и не подключили порт к вашему компьютеру, это фактически отключает доступ SSH из Интернета.

Gerry
источник
Да, я знаю об этом. К сожалению, на самом деле это не решение для меня, а для моего MacBook Pro, который иногда подключается к сетям с внешним IP и без промежуточного маршрутизатора.
Михал М
1
Это кажется маловероятным, и при условии, что у вас есть только один сетевой адаптер, это будет означать, что «локальной» сети не будет, если к ней привязан публичный IP-адрес.
Джерри
Вряд ли или нет, не имеет значения, не так ли? Помимо ситуации с внешним IP, рассмотрим сети Public WiFi. Я знаю, какие сети безопасны для меня, и я хотел бы ограничить доступ только к этим сетям. Мой вопрос немного более общий, хотя это было моим намерением.
Михал М
Тогда я бы предложил перефразировать вопрос. Похоже, вы ищете белый список (некоторые) диапазоны IP для некоторых служб в брандмауэре.
Джерри
Сделано как предложено. Приветствия.
Михал М