Pork Center

Iptables

De Hack-it.org.

 
Ligne 1 : Ligne 1 :
-
Forwarder un port vers l'autre pour une ip particulière
+
==Bases==
 +
voir ce qui ecoute
 +
[00:26:45:root@ks36548:~] netstat -lpn | more
 +
 
 +
qui est le port 8000 ?
 +
[00:27:55:root@ks36548:~] lsof -i :8000
 +
 
 +
[00:40:49:root@ks36548:~] netstat -lpn | grep "^tcp.*0.0.0.0\:[0-9]"                                                               
 +
[00:41:30:root@ks36548:~] netstat -lpn | grep "^tcp.*0.0.0.0\:[0-9]" | awk '{print $4}' | cut -f2 -d":"
 +
[00:48:34:root@ks36548:~] netstat -lpn | grep "^udp"
 +
 
 +
 
 +
[23:54:27:root@ks36548:~] iptables -L -n -v --line-numbers
 +
 
 +
 
 +
[23:54:30:root@ks36548:~] iptables -t filter -L -n -v --line-numbers
 +
[23:58:04:root@ks36548:~] iptables -t nat -L -n -v --line-numbers
 +
 
 +
 
 +
[23:43:34:root@ks36548:~] alias firewall='iptables -L -n -v --line-numbers && iptables -t nat -L -n -v --line-numbers'
 +
[23:43:47:root@ks36548:~] firewall
 +
 
 +
 
 +
 
 +
toujours faire
 +
[00:05:44:root@ks36548:~] iptables -I INPUT -i lo -j ACCEPT
 +
 
 +
autoriser ssh
 +
[00:06:13:root@ks36548:~] iptables -I INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
 +
 
 +
regle du statefull
 +
[00:16:10:root@ks36548:~] iptables -A INPUT -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
 +
Mettre le statefull en forward
 +
[00:26:16:root@ks36548:~] iptables -A FORWARD -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT                               
 +
 
 +
 
 +
autoriser le ftp
 +
[00:20:47:root@ks36548:~] iptables -I INPUT -i eth0 -p tcp -m state --state NEW -m tcp --dport 21 --tcp-flags SYN,RST,ACK SYN -j ACCEPT
 +
 
 +
irc
 +
[00:32:54:root@ks36548:~] iptables -I INPUT -i eth0 -p tcp -m state --state NEW -m tcp --dport 6660:6669 --tcp-flags SYN,RST,ACK SYN
 +
-j ACCEPT
 +
 
 +
l'udp :
 +
[00:54:26:root@ks36548:~] iptables -A INPUT -i eth0 -p udp --dport 46904 -j ACCEPT                                                 
 +
 
 +
autorister tout ce qui ecoute deja
 +
[
 +
#!/bin/bash
 +
 +
for i in `netstat -lpn | grep "^tcp.*0.0.0.0\:[0-9]" | awk '{print $4}' | cut  -f2 -d":"`
 +
do
 +
        iptables -A INPUT -i eth0 -p tcp -m state --state NEW -m tcp --dport $i --tcp-flags SYN,RST,ACK SYN -j ACCEPT
 +
  done
 +
]
 +
 
 +
effacer la regle numéro 2 maintenant obsolete ou bien en double
 +
[00:24:22:root@ks36548:~] iptables -D INPUT 2
 +
 
 +
 
 +
 
 +
Mettre la politique par defaut en  DROP
 +
[00:29:10:root@ks36548:~] iptables -P INPUT DROP
 +
 
 +
 
 +
Matter ce qui est dropé :
 +
[00:57:31:root@ks36548:~] iptables -A INPUT -j LOG                                                                           
 +
[00:57:49:root@ks36548:~] tail -f /var/log/messages   
 +
 
 +
Tout accepter d'une ip
 +
iptables -I INPUT -s 213.186.33.13 -j ACCEPT
 +
 
 +
Autoriser le ping :
 +
[19:37:55:root@ks36548:~] iptables -I INPUT 2 -i eth0 -p icmp --icmp-type 8 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
 +
 
 +
 
 +
08:34:54 < Te[u]K> pour avoir le payes d'une ip
 +
08:35:00 < Te[u]K> faut utiliser le whois wyberabuse
 +
08:35:08 < Te[u]K> whois -h whois.cyberbause.org <ip>
 +
 
 +
refuser totalement l'ax a une ip
 +
18:25:58 < Triskel> iptables -I INPUT -s 81.220.202.89 -j DROP
 +
 
 +
 
 +
== Forwarder un port vers l'autre pour une ip particulière ==
  iptables -t nat -I PREROUTING -i eth0 -s 91.165.96.43 -p tcp --dport 80 -j REDIRECT --to 22
  iptables -t nat -I PREROUTING -i eth0 -s 91.165.96.43 -p tcp --dport 80 -j REDIRECT --to 22
Très pratique quand on se retrouve sur un pc dont les ports non-http sont bloqués  vers l'extérieur. Dans cet exemple, on redirige localement le port http vers ssh
Très pratique quand on se retrouve sur un pc dont les ports non-http sont bloqués  vers l'extérieur. Dans cet exemple, on redirige localement le port http vers ssh
 +
 +
== Ajouter/enlever/modifier des regles ==
 +
La box dispose désormais d'un script de démarrage pour iptables, ça permet d'éviter de devoir refaire les règles à la main à chaque reboot.
 +
Donc pour ajouter une règle, ben ça se passe comme avant, via le shell. Sauf que maintenant, après avoir ajouté/retiré/modifié une regle, il faut bien penser à faire:
 +
/etc/init.d/iptables save
 +
pour sauvegarder les nouvelles regles
 +
 +
==Liens==
 +
* http://irp.nain-t.net/doku.php/130netfilter:010_architecture

Version actuelle en date du 31 juillet 2010 à 00:41