Bonjour à tous
J'ai suivi le Tuto de @Aerya - IPtables : faut pas en avoir peur (& règles OpenVPN, sécu…) - concernant la mise en place d'iptables avec openvpn. Apriori tout fonctionne plutôt bien sauf par intermittence ou OVH bloque mon serveur.
Le problème semble concerner les règles icmp puisque OVH, à priori, n'arrive pas à pinguer mon serveur. Du coup ils me balancent sur le mode rescue, j'efface alors le fichier créé pour rendre persistantes les règles iptables au reboot
/etc/network/if-pre-up.d/firewall
Je fais un hard reboot sur le disque dur et tout fonctionne. Au passage il semblerait que l'installation de iptables-persistent ne fonctionne pas chez OVH, en tout cas c'est le cas chez moi.
Voila je vous poste mon iptables, pour avoir votre avis
*filter
# Purge des regles IPtables
-P INPUT ACCEPT
-P OUTPUT ACCEPT
-P FORWARD ACCEPT
-F
-X
# Regles de base
# Autorisation de tout trafic sortant
-P OUTPUT ACCEPT
# Rejeter tout le trafic entrant sauf regles qui suivent
-P INPUT DROP
# Autorisation des connexions entrantes deja etablies
-A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
# Autorisation des connexions internes (loopback)
-A INPUT -i lo -j ACCEPT
# Autorisation entrantes des services
# SSH / autorisation selon IP VPN personnel 1
-I INPUT -p tcp -s ip_fixe_maison--dport 2562 -j ACCEPT
-A INPUT -i eth0 -p tcp --dport 22 --source cache.ovh.net -j ACCEPT
# Plex
-I INPUT -p tcp --dport 32400 -j ACCEPT
# Docker
-A FORWARD -i docker0 -o eth0 -j ACCEPT
-A FORWARD -i eth0 -o docker0 -j ACCEPT
# Serveur Mail
-A INPUT -p tcp --dport 25 -j ACCEPT
-A INPUT -p tcp --dport 993 -j ACCEPT
-A INPUT -p tcp --dport 465 -j ACCEPT
-A INPUT -p tcp --dport 587 -j ACCEPT
-A INPUT -p tcp --dport 4190 -j ACCEPT
# Serveurs Web
-I INPUT -p tcp --dport 80 -j ACCEPT
-I INPUT -p tcp --dport 443 -j ACCEPT
# Autorisation rTorrent
-I INPUT -p tcp --dport 45000:65000 -j ACCEPT
# Ping
-A INPUT -i eth0 -p icmp --source proxy.ovh.net -j ACCEPT
-A INPUT -i eth0 -p icmp --source proxy.p19.ovh.net -j ACCEPT
-A INPUT -i eth0 -p icmp --source proxy.rbx.ovh.net -j ACCEPT
-A INPUT -i eth0 -p icmp --source proxy.sbg.ovh.net -j ACCEPT
-A INPUT -i eth0 -p icmp --source proxy.bhs.ovh.net -j ACCEPT
-A INPUT -i eth0 -p icmp --source ping.ovh.net -j ACCEPT
-A INPUT -i eth0 -p icmp --source ip_serveur.250 -j ACCEPT
# Port OpenVPN
-I INPUT -p udp -m udp --dport 1194 -j ACCEPT
# Ping depuis IP VPN 1
-I INPUT -p icmp -s ip_fixe_maison --icmp-type echo-request -j ACCEPT
# TUN
-I INPUT -i tun0 -j ACCEPT
-I FORWARD -i tun0 -j ACCEPT
# Routing
-I FORWARD -i tun0 -o eth0 -s 10.8.0.0/24 -j ACCEPT
-I FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
# Regles de protection + logs
# DROP paquets autres que SYN
-A INPUT -p tcp ! --syn -m conntrack --ctstate NEW -j DROP
# DROP paquets invalides
-A INPUT -m conntrack --ctstate INVALID -j DROP
# DROP paquets incomplets
-A INPUT -f -j DROP
# DROP NULL
-A INPUT -p tcp --tcp-flags ALL NONE -j DROP
# DROP XMAS
-A INPUT -p tcp --tcp-flags ALL ALL -j DROP
# DROP SYNFIN
-A INPUT -p tcp --tcp-flags ALL SYN,FIN -j DROP
# DROP FIN scan
-A INPUT -p tcp --tcp-flags ALL FIN -j DROP
# DROP SYN RST
-A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
# DROP NMAP XMAS
-A INPUT -p tcp --tcp-flags ALL URG,PSH,FIN -j DROP
# DROP NMAP
-A INPUT -p tcp --tcp-flags ALL URG,PSH,SYN,FIN -j DROP
# DROP SYN FLOOD
-N SYN-FLOOD
-A SYN-FLOOD -m limit --limit 1/sec --limit-burst 4 -j RETURN
-A SYN-FLOOD -j DROP
# DROP port scans
-N PORT-SCAN
-A INPUT -p tcp --tcp-flags SYN,ACK,FIN,RST RST -j PORT-SCAN
-A PORT-SCAN -m limit --limit 1/s --limit-burst 4 -j RETURN
-A PORT-SCAN -j DROP
# Blocage IP attaque 24h
-A INPUT -m recent --name DUMBASS --rcheck --seconds 86400 -j DROP
-A FORWARD -m recent --name DUMBASS --rcheck --seconds 86400 -j DROP
# Levee du blocage
-A INPUT -m recent --name DUMBASS --remove
-A FORWARD -m recent --name DUMBASS --remove
# Blocage de toute IP chinoise (#NORACISM)
# -A INPUT -p tcp -m set --match-set chine src -j DROP
# Logging des paquets entrants droppes
-N LOGGING
-A INPUT -j LOGGING
-A LOGGING -m limit --limit 3/min -j LOG --log-prefix "IPtables_DROP: " --log-level 7
-A LOGGING -j DROP
COMMIT
Pour terminer, étant donner que je donne l'accès aux port 80 et 443 quel est selon vous la meilleure façon de les sécuriser ? Est ce que fail2ban suffit ou faut il également portsentry ?