1 votes

Comment configurer correctement iptables

Je suis novice en matière de Linux et je viens de mettre en œuvre les commandes suivantes dans iptables que j'ai trouvé sur un site pour la sécurité (je ne comprends pas bien le fonctionnement de chaque règle). Les commandes sont les suivantes :

$IPTABLES -P INPUT DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -P OUTPUT DROP

$IPTABLES -A OUTPUT -m state --state INVALID -j DROP

$IPTABLES -A OUTPUT -p tcp --tcp-flags ALL ACK,RST,SYN,FIN -j DROP
$IPTABLES -A OUTPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
$IPTABLES -A OUTPUT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP

$IPTABLES -A OUTPUT -p tcp ! --syn -m state --state NEW -j DROP
$IPTABLES -A OUTPUT -f -j DROP
$IPTABLES -A OUTPUT -p tcp --tcp-flags ALL ALL -j DROP
$IPTABLES -A OUTPUT -p tcp --tcp-flags ALL NONE -j DROP  

$IPTABLES -A INPUT -m state --state INVALID -j DROP

$IPTABLES -A INPUT -p tcp --tcp-flags ALL ACK,RST,SYN,FIN -j DROP
$IPTABLES -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
$IPTABLES -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP

$IPTABLES -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
$IPTABLES -A INPUT -f -j DROP
$IPTABLES -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
$IPTABLES -A INPUT -p tcp --tcp-flags ALL NONE -j DROP  

Après avoir mis en œuvre ces mesures, je n'ai pas été en mesure de naviguer sur quoi que ce soit. Comment corriger mes éventuelles erreurs ?

3voto

M'vy Points 3790

Vous devez comprendre que les trois premières lignes ont désactivé par défaut tout le trafic en provenance, à destination et à travers votre ordinateur ( -P DROP ).

Si vous devez utiliser les tables IP avec ces règles par défaut, les règles suivantes sont destinées à autoriser le trafic. Pour cela, il faut utiliser ACCEPT règles quelque part.

Par exemple, vous pouvez autoriser les paquets entrants du port 80 :

-A INPUT -p tcp --dport 80 -j ACCEPT

En revanche, vous pouvez procéder dans l'autre sens, c'est-à-dire autoriser tout le trafic par défaut -P ACCEPT puis écrivez les éléments particuliers que vous devez interdire.

Je ne peux pas faire grand-chose pour vous, mais je vous suggère de lire le manuel d'iptables pour comprendre son fonctionnement. Vous n'obtiendrez pas de sécurité toute faite avec iptables.

-1voto

Si vous débutez, je vous suggère d'abandonner tout ce que vous avez actuellement et de commencer par des éléments de base qui vous apporteront les plus grands bénéfices.

Par exemple :

:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]

# Drop a persistent nuisance
-A INPUT -s 89.163.185.170 -j DROP

# Accept established connections and loopback traffic

-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT

# Allow ssh from our IP address 1.2.3.4 (but also use hosts.allow and hosts.deny files)
-A INPUT -s 1.2.3.4 -i eth0 -m tcp -p tcp --dport 22 -j ACCEPT

# Allow web traffic on port 80 and 443 from everywhere
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT

# Block everything else
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited

Vous pouvez facilement construire sur cette base.

-1voto

fr00tyl00p Points 156

Vous avez manqué de permettre ESTABLISHED connexions. Essayez d'ajouter ceci à la fin de votre script

iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

Je commencerais aussi par restreindre les données entrantes. Vos règles de sortie n'empêchent que les paquets spéciaux "faits à la main" d'être envoyés. Lorsque vous vous préoccupez de logiciels malveillants, cela n'aide pas beaucoup, car ceux-ci se connectent généralement à des serveurs distants en utilisant des paquets ordinaires "corrects".

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X