Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 21/09/2015, à 20:51

corvuscorax

IPTables - De débutant à... moins débutant

Bien le bonsoir !

Sous Debian ou Xubuntu selon mes machines depuis une 10aine d'années, je me penche ces temps ci sur l'aspect sécurité. Et donc bien sûr, IPtables. Je comprend les règles de bases, du niveau de la doc ubuntu fr et de celle en.

#!/bin/bash
# Bloque tout le trafic									            
iptables -P INPUT DROP 							            	
iptables -P FORWARD DROP 								
iptables -P OUTPUT DROP 

## On drop les scans XMAS et NULL.
iptables -A INPUT -p tcp --tcp-flags FIN,URG,PSH FIN,URG,PSH -j DROP
iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP

# Droping all invalid packets
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A FORWARD -m state --state INVALID -j DROP
iptables -A OUTPUT -m state --state INVALID -j DROP

# Autorise les connexions déjà établies et localhost				
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT		
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 	
iptables -A INPUT -i lo -j ACCEPT 							
iptables  -A OUTPUT -o lo -j ACCEPT						

# ICMP (Ping)										
iptables -A INPUT -p icmp -j ACCEPT 						
iptables -A OUTPUT -p icmp -j ACCEPT
 		
# SSH											
#iptables -A INPUT -p tcp --dport 666 -j ACCEPT 				
#iptables -A OUTPUT -p tcp –dport 666 -j ACCEPT 

# DNS											
iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT					
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT 					
iptables -A INPUT -p tcp --dport 53 -j ACCEPT 					
iptables -A INPUT -p udp --dport 53 -j ACCEPT 
 
# HTTP 											
iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT 					
iptables -A INPUT -p tcp --dport 80 -j ACCEPT 
	
#HTTPS
iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT 				
iptables -A INPUT -p tcp --dport 443 -j ACCEPT 
	
# FTP 
iptables -A OUTPUT -p tcp --dport 20:21 -j ACCEPT 
iptables -A INPUT -p tcp --dport 20:21 -j ACCEPT 
	
# Mail SMTP 
iptables -A INPUT -p tcp --dport 25 -j ACCEPT 
iptables -A OUTPUT -p tcp --dport 25 -j ACCEPT  
iptables -A INPUT -p tcp --dport 587 -j ACCEPT 
iptables -A OUTPUT -p tcp --dport 587 -j ACCEPT
	
# Mail POP3
iptables -A INPUT -p tcp --dport 110 -j ACCEPT 
iptables -A OUTPUT -p tcp --dport 110 -j ACCEPT 
 	
# Mail IMAP
iptables -A INPUT -p tcp --dport 143 -j ACCEPT 
iptables -A OUTPUT -p tcp --dport 143 -j ACCEPT 
	
# NTP (horloge du serveur) 
iptables -A OUTPUT -p udp --dport 123 -j ACCEPT	

Je tourne donc avec les règles ci-dessus depuis quelques années. Cherchant des améliorations un peu partout sur le net, j'ai essayé d'en appliquer sans forcement tout comprendre (oui, je sais, pas très intelligent...). Entre autre (après les lignes ci dessus) :

#Flood ou déni de service : ça je pige								
iptables -A FORWARD -p tcp --syn -m limit --limit 1/second -j ACCEPT 	
iptables -A FORWARD -p udp -m limit --limit 1/second -j ACCEPT 		
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/second -j 	ACCEPT										

#Scan de ports	: ça je pige beaucoup moins									
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j 		ACCEPT
iptables -A port-scan -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j RETURN

iptables -A port-scan -j DROP --log-level 6
iptables -A specific-rule-set -p tcp --syn -j syn-flood
iptables -A specific-rule-set -p tcp --tcp-flags SYN,ACK,FIN,RST RST -j port-scan
iptables -A INPUT -p icmp -m icmp --icmp-type address-mask-request -j DROP
iptables -A INPUT -p icmp -m icmp --icmp-type timestamp-request -j DROP
iptables -A INPUT -p icmp -m icmp -m limit --limit 1/second -j ACCEPT
iptables -A INPUT -p tcp -m tcp --tcp-flags RST RST -m limit --limit 2/second --limit-burst 2 -j ACCEPT
exit 0

J'ai fais mes recherches, sans trouver grand chose, ou encore plus complexe. De fait, je souhaitais :
1) avoir confirmation que je n'ai rien zappé sur la partie 1
2) quelques explications ou liens pour la partie 2
3) de ce que je comprend, il n'y a ni conflits ni redondances. J'ai bon ?

Merci d'avance !

Dernière modification par corvuscorax (Le 21/09/2015, à 21:34)

Hors ligne

#2 Le 30/09/2015, à 11:13

E.D.209

Re : IPTables - De débutant à... moins débutant

Bonjour,
Déjà une question pour la première partie de tes règles, je peux me tromper mais as-tu un serveur Web qui tourne sur ta machine? Un serveur Mail? Un serveur DNS?

Car si ce n'est pas le cas toutes tes règles en INPUT ne servent à rien. Si c'est le cas désolé, mais moi j'avais du mal à piger cette notion de trafic sortant et rentrant selon que tu sois serveur ou client.

Hors ligne

#3 Le 09/10/2015, à 00:36

Alex_babtist

Re : IPTables - De débutant à... moins débutant

Salut

vous trouverez ici la configuration complète de iptables

http://heights-net.blogspot.com/2015/05/iptables.html

Dernière modification par Alex_babtist (Le 09/10/2015, à 00:37)

Hors ligne

#4 Le 09/10/2015, à 10:35

pires57

Re : IPTables - De débutant à... moins débutant

Pourrais tu expliquer ce que tu cherches a faire exactement?
Iptables est un outil puissant qui fait presque tout (j'ai pas encore réussi a lui faire faire le café ) mais c'est aussi un casse tête sans nom pour un débutant.
Expliques ce que tu as déjà en place, les services qui tournent sur ta / tes machines, l'infra actuelle de ton réseau ...

Dernière modification par pires57 (Le 09/10/2015, à 10:35)


Utilisateur d'Archlinux, Ubuntu et Kali Linux
Administrateur système et réseau spécialisé Linux.
LinkedIn

Hors ligne