Iptables pour serveur en SSH
barnabe0057 Messages postés 14455 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
J'ai un serveur hébergé sur OVH depuis peu, dont j'ai accès par SSH. Sur ce serveur est installé un outil de collecte de données (Cyber), sur Linux et accessible à partir d'une interface Web.
Cet outil doit être accessible que par mon réseau en SSH et pour l'interface Web.
J'ai donc créé les tables suivantes :
Chain INPUT (policy DROP 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 2703K 188M ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 38531 5164K ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 195K 6576K ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 9 432 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpts:6100:6200 5 260 ACCEPT tcp -- * * xxx.xxx.xx.xx 0.0.0.0/0 tcp dpt:80 336 17472 ACCEPT tcp -- * * xxx.xxx.xx.xx 0.0.0.0/0 tcp dpt:443 10 580 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:xxxx (ssh) Chain FORWARD (policy DROP 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain OUTPUT (policy DROP 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 2703K 188M ACCEPT all -- * lo 0.0.0.0/0 0.0.0.0/0 215K 15M ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 21 12096 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpts:6100:6200 0 0 ACCEPT tcp -- * * 0.0.0.0/0 xxx.xxx.xx.xx tcp dpt:443 0 0 ACCEPT tcp -- * * 0.0.0.0/0 xxx.xxx.xx.xx tcp dpt:80 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp spt:xxxx (ssh)
En "policy" ACCEPT, j'ai ajouté les différentes règles :
- permettre la boucle locale
- maintenir les connexions établies
- autoriser le ping
- autoriser l'accès aux ports 6100 et 6200 car je crois qu'OVH s'en sert pour le monitoring
- autoriser l'accès https et http pour mon adresse réseau (freebox)
- autoriser l'accès SSH via un nouveau port
J'ai ensuite passé la Policy en DROP pour les trois règles, INPUT, OUTPUT, FORWARD (en espérant qu'il fallait bien faire comme cela, c'était pour m'éviter d'être bloqué)
Ensuite, j'ai recherché sur internet comment éviter le plus possible certaines attaques du type DDOS, flood etc.
J'ai trouvé ces commandes :
# Anti ddos iptables -A INPUT -p tcp --syn -m limit --limit 2/s --limit-burst 30 -j ACCEPT # Anti scan iptables -A INPUT -p tcp --tcp-flags ALL NONE -m limit --limit 1/h -j ACCEPT iptables -A INPUT -p tcp --tcp-flags ALL ALL -m limit --limit 1/h -j ACCEPT # Ainsi que pour l'ICMP : iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
Premièrement, pense-vous que la table créée est bien faite ? Est-ce qu'il n'y a pas un problème d'ordre des règles, un manque d'optimisation ou de sécurité.
Ensuite est-ce que les règles ci-dessus pourraient convenir ? (je comprends tout à fait à quoi elles servent, mais j'ai encore du mal à repérer toutes les vulnérabilités possibles).
Aussi, je n'ai rien mis dans FORWARD, pour moi, il n'y en a pas l'utilité mais je me trompe peut-être
- Iptables pour serveur en SSH
- Changer serveur dns - Guide
- Ssh download - Télécharger - Divers Web & Internet
- Serveur dns gratuit - Guide
- Serveur entrant et sortant - Guide
- Serveur dns orange - Accueil - Guide box et connexion Internet
Bonjour, merci pour ta réponse.
UFW permet de simplifier les règles à entrer, je l'ai utilisé pour d'autres situations mais ici je souhaite ajouter des règles assez complexes et parfois non compatible avec UFW (non présentes dans ce sujet).
L'idée de ce poste est que je puisse voir si j'ai oublié ou mal protégé mon serveur. De plus, j'aimerais être sûr que je n'ai pas à utiliser la règle Forward, j'ai toujours du mal avec celle-ci.
Ok je comprends.