Bonjour,
j'ai deux scripts me permettant de fixer des regles iptables et de masquerade.
Le premier, rc.routing, qui permet une connexion sans regles :
Code :
- #!/bin/sh
- echo effacer toutes les regles
- /sbin/iptables -F #vidange des chaines
- /sbin/iptables -X #destructions des chaines perso
- /sbin/iptables -t nat -F # plop !
- /sbin/iptables -t nat -X # re-plop !
- /sbin/iptables -F INPUT
- /sbin/iptables -F OUTPUT
- /sbin/iptables -F FORWARD
- # echo mettre des regles de merde
- iptables -P OUTPUT ACCEPT
- iptables -P FORWARD ACCEPT
- iptables -P OUTPUT ACCEPT
- echo Demarrage du NAT
- # iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
- # le NAT ne marche pour pour des addresses reconnues
- # cad les ip 192.168.1.1 a 192.168.1.10
- for i in 1 3 4 5 6 7 8 9 10
- do
- iptables -t nat -A POSTROUTING -s 192.168.1.$i -o ppp0 -j MASQUERADE
- done
- echo 1 > /proc/sys/net/ipv4/ip_forward
- echo NAT started
|
Et le second rc.firewall, qui permet d'avoir des regles strictes :
Code :
- #!/bin/sh
- echo effacer toutes les regles
- /sbin/iptables -F #vidange des chaines
- /sbin/iptables -X #destructions des chaines perso
- /sbin/iptables -t nat -F # plop !
- /sbin/iptables -t nat -X # re-plop !
- /sbin/iptables -F INPUT
- /sbin/iptables -F OUTPUT
- /sbin/iptables -F FORWARD
- # echo mettre des regles de merde
- # iptables -P OUTPUT ACCEPT
- # iptables -P FORWARD ACCEPT
- # iptables -P OUTPUT ACCEPT
- echo mettre des regles brutales
- iptables -P OUTPUT ACCEPT # ma passerrelle est gentille
- iptables -P FORWARD DROP # rien ne la traverse
- iptables -P INPUT DROP # elle n'accepte rien
- export IPADDR=`/sbin/ifconfig ppp0 | grep "inet addr" | cut -d ":" -f 2 | cut " " -f 1`
- # la passerrelle a le droit de se connecter sur elle meme
- iptables -A INPUT -s 192.168.1.2/24 -j ACCEPT
- iptables -A INPUT -s 127.0.0.1/24 -j ACCEPT
- iptables -A INPUT -s $IPADDR/24 -j ACCEPT
- echo on remet les connexions deja etablies
- # je je met pas ca, mes connections se blo
- iptables -A INPUT -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT
- iptables -A FORWARD -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT
- iptables -A OUTPUT -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT
- iptables -A INPUT -p ICMP -m state --state RELATED,ESTABLISHED -j ACCEPT
- iptables -A FORWARD -p ICMP -m state --state RELATED,ESTABLISHED -j ACCEPT
- iptables -A OUTPUT -p ICMP -m state --state RELATED,ESTABLISHED -j ACCEPT
- # on autorise quelques trucs quand meme en input.
- # ssh depuis le reseau local sinon j'aurais l'air con :)
- iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport ssh -j ACCEPT
- #connection sur le site web de rincevent pour tout le monde
- iptables -A INPUT -p tcp --dport 80 -j ACCEPT
- # on a le droit de pinger la passerrelle
- iptables -A INPUT -p ICMP -j ACCEPT
- #les machines locales ont le droit d'initier des connections
- iptables -A FORWARD -s 192.168.1.0/24 -p tcp -j ACCEPT
- iptables -A FORWARD -s 192.168.1.0/24 -p ICMP -j ACCEPT
- echo Demarrage du NAT
- # iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
- # le NAT ne marche pour pour des addresses reconnues
- # cad les ip 192.168.1.1 a 192.168.1.10
- for i in 1 3 4 5 6 7 8 9 10
- do
- iptables -t nat -A POSTROUTING -s 192.168.1.$i -o ppp0 -j MASQUERADE
- done
- echo 1 > /proc/sys/net/ipv4/ip_forward
- echo NAT started
|
Maintenant, j'ai quelques probèmes.
- rc.firewall ne marche pas. Quand je le lance, je peux pinger ma passerrelle, me connecter dessus par ssh, mais j'ai pas moyen d'avoir acces au net (ni ICMP, ni TCP), ni de la passerrelle, ni du reseau.J'arrive pas a comprendre ce qui peut me manquer pour que ca passe.
- rc.routing marche, mais si je le lance apres rc.firewall, ma connexion sur la passerelle se blo, mais j'ai accès au net depuis mon client. Je pense qu'il y a des regles que je ne purge pas correctement, mais j'arrive pas a voir ce qui peut manquer.
---------------
brisez les rêves des gens, il en restera toujours quelque chose... -- laissez moi troller sur discu !