Se connecter avec
S'enregistrer | Connectez-vous

IPTABLES : restreindre le port SSH à 2 IP seulement

Dernière réponse : dans Le monde de Linux

Bonjour,

Je dois "sécuriser" un serveur dédié en fermant le port SSH (22) pour toutes les IP sauf 2 : la mienne perso, et une autre de secour.
Du coup, j'utilise la commande IPtables que je connais moyennement, mais à force d'exemple je comprends un peu.

J'arrive bien à restreindre l'accès à une IP en utilisant ce petit script tout simple au lancement du serveur :

#!/bin/sh
/sbin/iptables -F
/sbin/iptables -X
/sbin/iptables -F
#RESTRICTION SSH
/sbin/iptables -A INPUT -i eth0 -p tcp --dport 22 -s ! 82.238.xxx.xxx -j DROP


ou 82.238.xxx.xxx est l'adresse IP pour laquelle j'autorise l'accès SSH.

Si je souhaite autoriser l'accès SSh à une 2e IP (84.239.xxx.xxx) par exemple, j'ai essayé ceci :

#!/bin/sh
/sbin/iptables -F
/sbin/iptables -X
/sbin/iptables -F
#RESTRICTION SSH
/sbin/iptables -A INPUT -i eth0 -p tcp --dport 22 -s ! 82.238.xxx.xxx -j DROP
/sbin/iptables -A INPUT -i eth0 -p tcp --dport 22 -s ! 84.239.xxx.xxx -j DROP


Mais évidement cela ne marche pas d'ou mon POST.
Pourriez-vous m'en dire un petit peu plus, si quelq'un sait comment faire ?
De plus je voudrais 'logger' l'ensemble des tentatives de connexion sur le port SSH qui ne viennent pas de ces 2 IP.

J'ai bien sûr lu plusieurs docs et exemples sur la question mais je n'ai pas trouvé exactement ce que je cherchais et comme ce serveur dédié est en accès SSH j'ai pas trop envie de faire de conneries.
Merci.

Lassé par la pub ? Créez un compte

au lieu d'interdire, tu as essayé plutot d'autoriser ?
iptables -P INPUT DROP
iptables -A INPUT -i eth0 -p tcp --dport 22 -s 82.238.xxx.xxx -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 22 -s 84.239.xxx.xxx -j ACCEPT

Salut Orlondow,

merci pour ta réponse mais si je fais ça


iptables -P INPUT DROP

# ceci va bloquer toutes les entrées sur le serveur

iptables -A INPUT -i eth0 -p tcp --dport 22 -s 82.238.xxx.xxx -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 22 -s 84.239.xxx.xxx -j ACCEPT

# ceci ne va laisser passer que les connexions SSH

Donc, si je fais ça tous mes autres ports seront fermés.
En fait j'avais déjà pensé à cette solution d'autoriser au lieu d'interdire mais cela suppose que j'autorise aussi l'ensemble des autres ports (IMAP, POP3, POP3S, MYSQL... etc...). Sachant qu'il s'agit d'un serveur hébergeant pas mal de domaines, je suis un peu frileux pour cette solution...

Mais réellement n'y-a-t-il pas tout simplement un moyen de fournir plusieurs IP à interdire ? C'est fou ça... :??: 


oui je ne te donnais qu'une "version courte".

dans le cas que tu utilises, essaye alors:

iptables -A INPUT -i eth0 -p tcp --dport 22 -s 82.238.xxx.xxx -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 22 -s 84.239.xxx.xxx -j ACCEPT

et ensuite tu fermes en journalisant les tentatives:
iptables -A INPUT -i eth0 -p tcp --dport 22 -j DROP_LOG

Lassé par la pub ? Créez un compte