Вы можете ограничить доступ к своему ssh-серверу многими способами.
IMO, самое важное - использовать ssh-ключи и отключить аутентификацию по паролю.
Подробности см. на следующих вики-страницах
Вы можете ограничить доступ к определенной подсети несколькими способами. Я предполагаю, что ваш ssh-сервер находится в подсети 192.168.0.0 /16 с IP-адресом 192.168.0.10, настройте соответствующим образом ;)
Маршрутизатор
Одна из линий защиты - использовать маршрутизатор. Обязательно отключите UPnP и не разрешайте переадресацию портов.
Конфигурация SSH
Вы можете задать несколько параметров в /etc/ssh/sshd_config
. Один из них - это адрес прослушивания. Если вы установили адрес прослушивания в своей подсети. Частный ip-адрес не маршрутизируется через Интернет.
ListenAddress 192.168.0.10
Вы также можете использовать AllowUsers
AllowUsers you@192.168.0.0/16
В некоторой степени это связано с тем, что вы также можете изменить порт
Port 1234
Видеть: http://manpages.ubuntu.com/manpages/precise/man5/sshd_config.5.html
Оболочка TCP
Как описано в сообщении на форумах, вы можете использовать оболочку TCP . Оболочка TCP использует 2 файла, /etc/hosts.allow
и /etc/hosts.deny
Редактировать /etc/hosts.allow
и добавьте свою подсеть
sshd : 192.168.0.
Редактировать /etc/hosts.deny
, и отрицать все
ALL : ALL
Смотрите также: http://ubuntu-tutorials.com/2007/09/02/network-security-with-tcpwrappers-hostsallow-and-hostsdeny/
Брандмауэр
Наконец, вы можете настроить брандмауэр своего сервера. Вы можете использовать iptables, ufw или gufw.
iptables
sudo iptables -I INPUT -p tcp --dport 22 -s 192.168.0.0/16 -j ACCEPTsudo iptables -A INPUT -p tcp --dport 22 -j REJECT
Пожалуйста, не используйте DROP
в iptables
.
ufw
sudo ufw allow from 192.168.0.0/16 to any port 22
ufw
имеет графический интерфейс: gufw
