Iptables
De Hack-it.org.
T2 (discuter | contributions) |
|||
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 |