Você pode restringir o acesso ao seu servidor ssh de várias maneiras.
IMO, o mais importante é usar as chaves ssh e desativar a autenticação de senha.
Veja as seguintes páginas wiki para detalhes
Você pode restringir o acesso a uma sub-rede específica de várias maneiras. Eu assumirei que seu servidor ssh está na sub-rede 192.168.0.0/16 com um endereço IP de 192.168.0.10, ajuste de acordo;)
Roteador
Uma linha de defesa é usar um roteador. Certifique-se de desativar o UPnP e não permitir o encaminhamento de porta.
configuração SSH
Você pode definir várias opções em /etc/ssh/sshd_config
. Um é o endereço de escuta. Se você definir um endereço de escuta em sua sub-rede. Um endereço IP privado não pode ser roteado pela Internet.
ListenAddress 192.168.0.10
Você também pode usar os AllowUsers
AllowUsers [email protected]/16
Algo relacionado, você também pode alterar a porta
Port 1234
Veja o link
TCP wrapper
Como descrito na postagem do fórum, você pode usar o TCP Wrapper. O wrapper TCP usa dois arquivos, /etc/hosts.allow
e /etc/hosts.deny
Edite /etc/hosts.allow
e adicione sua sub-rede
sshd : 192.168.0.
Edite /etc/hosts.deny
e negue tudo
ALL : ALL
Veja também link
Firewall
Por último, você pode firewall seu servidor. Você pode usar o iptables, ufw ou gufw.
iptables
sudo iptables -I INPUT -p tcp --dport 22 -s 192.168.0.0/16 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j REJECT
Por favor, não use DROP no iptables, veja link
ufw
sudo ufw allow from 192.168.0.0/16 to any port 22
gufw tem uma interface gráfica
Veja