configuration des iptables avec un vps ovh
Bonjour,
Je possède un vps chez OVH et je cherche à configurer au mieux les iptables et jusqu'à présent à part des petites frayeurs ça ne marche pas comme je voudrais. J'ai fait le script suivant en lissant différents guides pour iptables, mais de toute évidence j'ai dû rater des notions, mon but est de bloquer le port 22 pour n'autoriser que service technique d'ovh et d'utiliser le port 1038 pour se connecter en ssh et loger le tout en entrée. Je voulais aussi faire un suivi de connexion le reste je croie que les commentaires sont assez explicites.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
|
# Vidage des tables
iptables -t filter -F
iptables -t filter -X
# Bloquage total
iptables -t filter -P INPUT DROP
iptables -t filter -P FORWARD DROP
iptables -t filter -P OUTPUT DROP
# Interface interne
# In
iptables -t filter -A OUTPUT -o lo -s 127.0.0.0/8 -d 127.0.0.0/8 -j ACCEPT
# Out
iptables -t filter -A INPUT -i lo -s 127.0.0.0/8 -d 127.0.0.0/8 -j ACCEPT
# Ping (Paquet ICMP)
# In
iptables -t filter -A INPUT -p icmp -j ACCEPT
# Out
iptables -t filter -A OUTPUT -p icmp -j ACCEPT
# NTP
# Out
iptables -t filter -A OUTPUT -p udp --dport 123 -j ACCEPT
# SSH
# In
# Log les connexions sur le port 22 & 1038
iptables -t filter iptables -A INPUT -p tcp --dport 22 -j LOG --log-level info --log-prefix "INPUT ssh:22"
iptables -t filter iptables -A INPUT -p tcp --dport 1038 -j LOG --log-level info --log-prefix "INPUT ssh:1038"
# Filtrage sur le non-ovh si port 22 (+oo/heures) sinon connexion ssh sur port 1038 (10/heure)
iptables -t filter -A INPUT -p tcp --dport 22 --source cache.ovh.net -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 1038 -m limit --limit 10/hour -j ACCEPT
# Out
iptables -t filter -A OUTPUT -p tcp --dport 22 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 1038 -j ACCEPT
# DNS
# In
iptables -t filter -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -t filter -A INPUT -p udp --dport 53 -j ACCEPT
# Out
iptables -t filter -A OUTPUT -p tcp --dport 53 -j ACCEPT
iptables -t filter -A OUTPUT -p udp --dport 53 -j ACCEPT
# HTTP
# In
iptables -t filter -A INPUT -p tcp --dport 80 -j ACCEPT
# Out
iptables -t filter -A OUTPUT -p tcp --dport 80 -j ACCEPT
# HTTPS
# In
iptables -t filter -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 8443 -j ACCEPT
# Out
iptables -t filter -A OUTPUT -p tcp --dport 443 -j ACCEPT
# FTP
# In
iptables -t filter -A INPUT -p tcp --dport 20:21 -j ACCEPT
iptables -t filter -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Out
iptables -t filter -A OUTPUT -p tcp --dport 20:21 -j ACCEPT
# Conntrack
# In
iptables -A INPUT -i eth1 -s 0.0.0.0/0 -d 10.0.0.1 -p all -m state --state RELATED,ESTABLISHED -j ACCEPT
# Out
iptables -A OUTPUT -o eth1 -s 10.0.0.1 -d 0.0.0.0/0 -p all -m state ! --state INVALID -j ACCEPT
# Webadmin (au cas où)
iptables -A INPUT -i eth0 -p tcp --dport 10000 -j ACCEPT |
merci d'avance.