Я хочу ограничить свой вход по ssh только для одного IP-адреса, поэтому я изменил следующий файл
$ nano /etc/ssh/sshd_config
и добавил эту строку (т.е. мой ip) в надежде, что она будет работать
ListenAddress 172.168.0.21
но без удачного соединения отказано, я не хочу использовать какую-либо вещь iptables. Почему это не работает, как я могу это исправить и какие-либо объяснения?
Вы можете использовать AllowUsers
директива в / etc / ssh / sshd_config, например
AllowUsers you@ip.add.re.ss
Если вы внесете какие-либо изменения в файл sshd_config, не забудьте перезапустить sshd.
из справочной страницы sshd_config
This keyword can be followed by a list of user name patterns,
separated by spaces. If specified, login is allowed only for
user names that match one of the patterns. ‘*’ and ‘?’ can be
used as wildcards in the patterns. Only user names are valid; a
numerical user ID is not recognized. By default, login is
allowed for all users. If the pattern takes the form USER@HOST
then USER and HOST are separately checked, restricting logins to
particular users from particular hosts.
Я должен согласиться с dunxd, IPTables не следует сбрасывать со счетов как жизнеспособный подход. Однако вам повезло, так как вы можете использовать tcpwrappers для той же функциональной цели. Хотя tcpwrappers более сложный, чем на первый взгляд, он по сути сводится к двум файлам: /etc/hosts.allow и /etc/hosts.deny. Если эти файлы еще не существуют, вы можете безопасно создавать их как пустые файлы: sudo touch /etc/hosts.{allow,deny}
.
Теперь пора немного усложнить задачу. «Наилучший» подход к защите доступа к сети - установить по умолчанию и только запись hosts.deny в ALL:ALL
однако это может привести к непреднамеренным ограничениям доступа. По этой причине и для целей этого вопроса достаточно ввести sshd:ALL
в /etc/hosts.deny, что запретит любой доступ ssh к хосту.
Все записи в /etc/hosts.allow, что касается sshd, теперь заменят правило запрета по умолчанию: sshd: 172.168.0.21
разрешит доступ только к хосту 172.168.0.21 и запретит доступ всем остальным.
Файлы tcpwrappers принимают список записей, разделенных запятыми, поэтому вы можете добавлять адреса к первой записи выше. tcpwrappers также принимают частичные IP-адреса как подсети, так что вы можете разрешить все 172.168.0.0/24 как sshd: 172.168.0.
Пожалуйста, укажите страница руководства для получения дополнительной информации. tcpwrappers на самом деле очень полнофункциональный, и я рекомендую прочитать больше, чем мой краткий обзор выше.
Я бы сказал, что без iptables это невозможно.
Использование ListenAddress в sshd_config означает, что вы привязываете демон ssh к этому конкретному (локальному) IP-адресу. Если IP-адрес отсутствует в вашей системе, sshd может выйти из строя.
Похоже, что sshd также использует libwrapper, поэтому вы также можете определить следующее:
в /etc/hosts.allow sshd: \ <IP-адрес, с которого вы разрешаете доступ>
в /etc/hosts.deny ВСЕ: ВСЕ
Конечно, я бы посоветовал вам прочитать справочные страницы соответствующих пакетов.