La première chose, indispensable dès lors qu'on tripote un firewall, c'est de lire un peu la doc. Je regrette de le répéter, mais lire la doc est indispensable.
Analysons un peu ton script (enfin c'est celui que tu rapportes, il est évident que tu as pompé ça sur le ternet sans rien lire de la doc)
#1 #! /bin/sh
#2 iptables -F
#3 iptables -X
#4 iptables -P INPUT DROP
#5 iptables -P OUTPUT ACCEPT
#6 iptables -A INPUT -i lo -j ACCEPT
#7 iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
Après avoir vidé (#2) les chaines, tu les efface (#3). inutile, autant tou t effacer d'emblée, m'enfin c'est pas grave tout le monde fait comme ça c'est plus propre.
Ligne 4, tu places la règle par défaut à DROP, parfait
ensuite, tu acceptes tout les paquets en sortie, bon ok.
La ligne 6 autorise tout trafic sur le loopback, rien que de très logique.
La ligne 7 autorise toutes les connexions établies. Ca ne fonctionne que si tu ne lances ton script après avoir ouvert ton navigateur. (une fois les connexions établies vers tel ou tel site) Il ya d'autres états (-state) qui seront tous refusés avec ce script. C'est bête comme tout, mais toutes les nouvelles connexions finiront à la trappe. Allons-y, fendons nous d'une petite capture de man iptables.
--state state
Where state is a comma separated list of the connection states to match. Possible states are INVALID meaning that the packet could not be identified for some reason which includes running out of memory and ICMP errors which don't correspond to any known connection, ESTABLISHED meaning that the packet is associated with a connection which has seen packets in both directions, NEW meaning that the packet has started a new connection,or otherwise associated with a connection which has not seen packets in both directions, and RELATED meaning that the packet is starting a new connection, but is associated with an existing connection, such as an FTP data transfer, or an ICMP error.
Après -state vient une liste, séparée par des virgules, des états de connexion à reconnaitre. Les états possibles sont: INVALID pour les paquets ne pouvant pas être indentifiés pour un certaines raisons parmis lesquelles être en panne de mémoire, ainsi que des erreurs ICMP ne correspondant à aucune connexion établie connue, ESTABLISHED pour un paquet associé à une connexion qui a vu passer des paquets dans les 2 directions, NEW pour un paquet qui a débuté une connexion ou sinon associé à une connexion qui n'a pas vu des paquets dans les 2 directions, et enfin RELATED pour un paquet débutant une connexion, mais associé à une connexion existante, comme un transfert de données FTP, ou une erreur ICMP.
Tu modifies du script avec la ligne
iptables -A INPUT -p tcp -m tcp --dport 80 -m state --state ESTABLISHED,RELATED -j ACCEPT
On devine que tu voudrais avoir des connexions entrantes sur ton serveur wouaibe.
Le problème, enfin les problèmes, c'est que tu ne précises pas de quelle interface tu parles. Netfilter permet une grande précision, dont on peut parfaitement ne pas se servir dans sa totalité, mais un petit peu de précision ne nuit pas... Tu as une interface sur laquelle le ternet est joignable, tu dois la présiser. Une ligne du type
Comme ça ça devrait le faire.
Là ça autorise les accès en entrée sur ton serveur wouaibe. Enfin, je dis ça si c'est ça ce que tu veux, parce que ce n'est pas du tout préçi, ce que tu demandes.
Bref, lis la doc, netfilter le vaut bien. Je sais, c'est chiant, mais ça vaut le coup. Une petite requète del.icio.us: http://del.icio.us/search/?all=iptables
# Une soluce
Posté par Rafael (site web personnel) . En réponse au message iptables + naviguation sur internet + port 80. Évalué à 3.
Analysons un peu ton script (enfin c'est celui que tu rapportes, il est évident que tu as pompé ça sur le ternet sans rien lire de la doc)
Après avoir vidé (#2) les chaines, tu les efface (#3). inutile, autant tou t effacer d'emblée, m'enfin c'est pas grave tout le monde fait comme ça c'est plus propre.
Ligne 4, tu places la règle par défaut à DROP, parfait
ensuite, tu acceptes tout les paquets en sortie, bon ok.
La ligne 6 autorise tout trafic sur le loopback, rien que de très logique.
La ligne 7 autorise toutes les connexions établies. Ca ne fonctionne que si tu ne lances ton script après avoir ouvert ton navigateur. (une fois les connexions établies vers tel ou tel site) Il ya d'autres états (-state) qui seront tous refusés avec ce script. C'est bête comme tout, mais toutes les nouvelles connexions finiront à la trappe. Allons-y, fendons nous d'une petite capture de man iptables.
Tu modifies du script avec la ligne
On devine que tu voudrais avoir des connexions entrantes sur ton serveur wouaibe.
Le problème, enfin les problèmes, c'est que tu ne précises pas de quelle interface tu parles. Netfilter permet une grande précision, dont on peut parfaitement ne pas se servir dans sa totalité, mais un petit peu de précision ne nuit pas... Tu as une interface sur laquelle le ternet est joignable, tu dois la présiser. Une ligne du type
Comme ça ça devrait le faire.
Là ça autorise les accès en entrée sur ton serveur wouaibe. Enfin, je dis ça si c'est ça ce que tu veux, parce que ce n'est pas du tout préçi, ce que tu demandes.
Bref, lis la doc, netfilter le vaut bien. Je sais, c'est chiant, mais ça vaut le coup. Une petite requète del.icio.us: http://del.icio.us/search/?all=iptables
Sinon, mattes donc firestarter (lien déjà cité) ou bien http://www.linuxguruz.com/iptables/scripts/rc.firewall_023.t(...) pour t'inspirer.
Rafael