Vous pouvez restreindre l'accès à votre serveur ssh de plusieurs façons.
À mon avis, le plus important est d'utiliser des clés ssh et de désactiver l'authentification par mot de passe.
Consultez les pages wiki suivantes pour plus de détails
Vous pouvez restreindre l'accès à un sous-réseau spécifique de plusieurs manières. Je vais supposer que votre serveur ssh est sur le sous-réseau 192.168.0.0/16 avec une adresse ip de 192.168.0.10, ajustez en conséquence ;)
Routeur
Une première ligne de défense est d'utiliser un routeur. Assurez-vous de désactiver le UPnP et de ne pas autoriser le transfert de ports.
Configuration SSH
Vous pouvez définir plusieurs options dans /etc/ssh/sshd_config
. L'une d'entre elles est l'adresse d'écoute. Si vous définissez une adresse d'écoute sur votre sous-réseau. Une adresse IP privée n'est pas routable sur internet.
ListenAddress 192.168.0.10
Vous pouvez également utiliser AllowUsers
AllowUsers you@192.168.0.0/16
Un peu lié, vous pouvez également changer le port
Port 1234
Voir: http://manpages.ubuntu.com/manpages/precise/man5/sshd_config.5.html
Enveloppe TCP
Comme décrit dans le message du forum, vous pouvez utiliser TCP Wrapper. TCP Wrapper utilise 2 fichiers, /etc/hosts.allow
et /etc/hosts.deny
Modifiez /etc/hosts.allow
et ajoutez votre sous-réseau
sshd : 192.168.0.
Modifiez /etc/hosts.deny
, et refusez tout
ALL : ALL
Voir aussi: http://ubuntu-tutorials.com/2007/09/02/network-security-with-tcpwrappers-hostsallow-and-hostsdeny/
Pare-feu
Enfin, vous pouvez protéger votre serveur avec un pare-feu. Vous pouvez utiliser 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
Veuillez ne pas utiliser DROP
dans iptables
.
ufw
sudo ufw allow from 192.168.0.0/16 to any port 22
ufw
a une interface graphique: gufw