Re: [TECH] Serveur web derriere un firewall
On Mon, 3 Jun 2002, Jacques Caruso wrote: Sinon, je te suggère aussi d'éviter le forgeage d'IP. Je me suis contenté des trois lignes suivantes : iptables -A PREROUTING -i ppp0 -j DROP -s 10.0.0.0/8 -t mangle iptables -A PREROUTING -i ppp0 -j DROP -s 172.16.0.0/12 -t mangle iptables -A PREROUTING -i ppp0 -j DROP -s 192.168.0.0/16 -t mangle Tu peux aussi rajouter 127.0.0.0/8, je doute que les Martiens puissent passer par ton interface PPP ;-) voici la liste des netmasks que je bloque (classes reservees+loopback+classes D et E+broadcast dhcp) iptables -A INPUT -i eth+ -s 0.0.0.0/8 -j log-and-drop iptables -A INPUT -i eth+ -s 10.0.0.0/8 -j log-and-drop iptables -A INPUT -i eth+ -s 127.0.0.0/8 -j log-and-drop iptables -A INPUT -i eth+ -s 169.254.0.0/16 -j log-and-drop iptables -A INPUT -i eth+ -s 172.16.0.0/12 -j log-and-drop iptables -A INPUT -i eth+ -s 192.0.2.0/24 -j log-and-drop iptables -A INPUT -i eth+ -s 192.168.0.0/16 -j log-and-drop iptables -A INPUT -i eth+ -s 224.0.0.0/4 -j log-and-drop iptables -A INPUT -i eth+ -s 240.0.0.0/5 -j log-and-drop iptables -A INPUT -i eth+ -s 248.0.0.0/5 -j log-and-drop iptables -A INPUT -i eth+ -s 255.255.255.255/32 -j log-and-drop Martians go home: # Drop XMAS packets iptables -A INPUT -p tcp --tcp-flags ALL ALL -j log-and-drop # Drop NULL packets iptables -A INPUT -p tcp --tcp-flags ALL NONE -j log-and-drop j'insiste : les -P ACCEPT partout (j'ouvre tout et je ferme au coup par coup) ça me paraît très « peau de banane », un de ces jours tu vas ouvrir un service que tu ne penseras pas à verrouiller et crac !... OUI! PS : je suis le seul à penser qu'un fichier de conf plus compréhensible comme sur les *BSD serait une bonne chose pasque la syntaxe iptables est vraiment indigeste ? effectivement la syntaxe 'pf' d'OpenBSD est bcp plus claire... -- Vincent RENARDIAS Directeur Technique StrongHoldNET / http://www.strongholdnet.com Linux-Azur : http://www.linux-azur.org Désinscriptions: http://www.linux-azur.org/liste.php3 Pas de message au format HTML, SVP
Re: [TECH] Serveur web derriere un firewall
On Sun, 2 Jun 2002, Dario Spagnolo wrote: ayant réussi à mettre Apache derriere le firewall, comment je fais maintenant pour qu'il puisse detecter les adresses ip des visiteurs pour les mettre dans les logs ? Pour l'instant toutes les requetes portent l'adresse du firewall, ce qui est logique puisque c'est le firewall qui les lui donne. J'ai l'impression que je vais encore devoir me battre avec iptables parce que le tcpdump concorde avec les données dans les logs d'apache (unique adresse ip, celle du firewall). Pourtant il y a surement un moyen puisque tous les plus grands serveurs fonctionnent derriere un firewall. oui, mais non: - les grands serveurs fonctionnent souvent derriere un firewall, mais celui-ci fait rarement masquerading. - la solution la plus simple: mettre un squid configuré en proxy entrant sur le firewall, et tirer les stats a partir de ses logs. A+ -- Vincent RENARDIAS Directeur Technique StrongHoldNET / http://www.strongholdnet.com Linux-Azur : http://www.linux-azur.org Désinscriptions: http://www.linux-azur.org/liste.php3 Pas de message au format HTML, SVP
Re: [TECH] Serveur web derriere un firewall
On Monday 03 June 2002 12:24, Vincent Renardias wrote: On Sun, 2 Jun 2002, Dario Spagnolo wrote: ayant réussi à mettre Apache derriere le firewall, comment je fais maintenant pour qu'il puisse detecter les adresses ip des visiteurs pour les mettre dans les logs ? Pour l'instant toutes les requetes portent l'adresse du firewall, ce qui est logique puisque c'est le firewall qui les lui donne. J'ai l'impression que je vais encore devoir me battre avec iptables parce que le tcpdump concorde avec les données dans les logs d'apache (unique adresse ip, celle du firewall). Pourtant il y a surement un moyen puisque tous les plus grands serveurs fonctionnent derriere un firewall. oui, mais non: - les grands serveurs fonctionnent souvent derriere un firewall, mais celui-ci fait rarement masquerading. Ah oui c'est vrai, ils ont l'argent pour acheter des adresses ip publiques meme pour les machines derriere le firewall ! - la solution la plus simple: mettre un squid configuré en proxy entrant sur le firewall, et tirer les stats a partir de ses logs. J'appelle pas ça une solution simple ! :) Par contre j'ai réussi à faire ce que je voulais faire mais ça ne marche que pour les visiteurs externes au réseau. J'ai compris pourquoi, reste plus qu'à comprendre comment le rendre possible pour ceux dans le lan aussi ! Dès que j'aurais trouvé la solution finale je la posterai ici, pour vous tous et Hervé qui m'a dit etre interessé par la réponse. Dario A+ __ ifrance.com, l'email gratuit le plus complet de l'Internet ! vos emails depuis un navigateur, en POP3, sur Minitel, sur le WAP... http://www.ifrance.com/_reloc/email.emailif Linux-Azur : http://www.linux-azur.org Désinscriptions: http://www.linux-azur.org/liste.php3 Pas de message au format HTML, SVP
Re: [TECH] Serveur web derriere un firewall
A'y est !! Voici enfin le script rc.firewall qui me permet de configurer un firewall pour faire du partage de connexion, du port forwarding des ports 80 et 21 et qui est complètement transparent pour le serveur web et ftp qui sont derriere le firewall. On peut encore beaucoup l'ameliorer notamment au niveau du comportement par défaut qui est trop... gentil ! :) echo -e \n\nChargement des règles du firewall..\n IPTABLES=/sbin/iptables EXTIF=ppp0 INTIF=eth0 echoActivation du forwarding... echo 1 /proc/sys/net/ipv4/ip_forward echoActivation du support pour les adresses ip dynamiques... echo 1 /proc/sys/net/ipv4/ip_dynaddr echoEffacement des règles et insertion du comportement par défaut... $IPTABLES -P INPUT ACCEPT $IPTABLES -F INPUT $IPTABLES -P OUTPUT ACCEPT $IPTABLES -F OUTPUT $IPTABLES -P FORWARD ACCEPT $IPTABLES -F FORWARD $IPTABLES -t nat -F ## #Serveur http interne# ## echoActivation de la redirection vers le serveur http interne... PORTFWIP=192.168.0.5 EXTIP=`ifconfig $INTIF | grep inet | cut -d: -f2 | cut -d -f1` INTIP=`ifconfig $EXTIF | grep inet | cut -d: -f2 | cut -d -f1` $IPTABLES -t nat -A PREROUTING -d $INTIP -p tcp --dport 80 -j DNAT --to-destination $PORTFWIP:80 $IPTABLES -t nat -A PREROUTING -d $INTIP -p tcp --dport 21 -j DNAT --to-destination $PORTFWIP:21 $IPTABLES -t nat -A PREROUTING -d $EXTIP -p tcp --dport 80 -j DNAT --to-destination $PORTFWIP:80 $IPTABLES -t nat -A PREROUTING -d $EXTIP -p tcp --dport 21 -j DNAT --to-destination $PORTFWIP:21 $IPTABLES -A FORWARD -p tcp --destination-port 80 -m state --state NEW,INVALID -j ACCEPT $IPTABLES -A FORWARD -p tcp --destination-port 21 -m state --state NEW,INVALID -j ACCEPT $IPTABLES -A FORWARD -p tcp --source-port 80 -m state --state RELATED -j ACCEPT $IPTABLES -A FORWARD -p tcp --source-port 21 -m state --state RELATED -j ACCEPT echoActivation du MASQUERADING... $IPTABLES -t nat -A POSTROUTING -o $EXTIF -j MASQUERADE $IPTABLES -t nat -A POSTROUTING -s $PORTFWIP/8 -d 0/0 -j SNAT --to-source $INTIP On Monday 03 June 2002 18:08, Dario Spagnolo wrote: On Monday 03 June 2002 12:24, Vincent Renardias wrote: On Sun, 2 Jun 2002, Dario Spagnolo wrote: ayant réussi à mettre Apache derriere le firewall, comment je fais maintenant pour qu'il puisse detecter les adresses ip des visiteurs pour les mettre dans les logs ? Pour l'instant toutes les requetes portent l'adresse du firewall, ce qui est logique puisque c'est le firewall qui les lui donne. J'ai l'impression que je vais encore devoir me battre avec iptables parce que le tcpdump concorde avec les données dans les logs d'apache (unique adresse ip, celle du firewall). Pourtant il y a surement un moyen puisque tous les plus grands serveurs fonctionnent derriere un firewall. oui, mais non: - les grands serveurs fonctionnent souvent derriere un firewall, mais celui-ci fait rarement masquerading. Ah oui c'est vrai, ils ont l'argent pour acheter des adresses ip publiques meme pour les machines derriere le firewall ! - la solution la plus simple: mettre un squid configuré en proxy entrant sur le firewall, et tirer les stats a partir de ses logs. J'appelle pas ça une solution simple ! :) Par contre j'ai réussi à faire ce que je voulais faire mais ça ne marche que pour les visiteurs externes au réseau. J'ai compris pourquoi, reste plus qu'à comprendre comment le rendre possible pour ceux dans le lan aussi ! Dès que j'aurais trouvé la solution finale je la posterai ici, pour vous tous et Hervé qui m'a dit etre interessé par la réponse. Dario A+ ___ ___ ifrance.com, l'email gratuit le plus complet de l'Internet ! vos emails depuis un navigateur, en POP3, sur Minitel, sur le WAP... http://www.ifrance.com/_reloc/email.emailif Linux-Azur : http://www.linux-azur.org Désinscriptions: http://www.linux-azur.org/liste.php3 Pas de message au format HTML, SVP __ ifrance.com, l'email gratuit le plus complet de l'Internet ! vos emails depuis un navigateur, en POP3, sur Minitel, sur le WAP... http://www.ifrance.com/_reloc/email.emailif Linux-Azur : http://www.linux-azur.org Désinscriptions: http://www.linux-azur.org/liste.php3 Pas de message au format HTML, SVP
Re: [TECH] Serveur web derriere un firewall
Le Lundi 3 Juin 2002 19:05, vous avez écrit : On peut encore beaucoup l'ameliorer notamment au niveau du comportement par défaut qui est trop... gentil ! :) * snip * $IPTABLES -P INPUT ACCEPT $IPTABLES -F INPUT $IPTABLES -P OUTPUT ACCEPT $IPTABLES -F OUTPUT $IPTABLES -P FORWARD ACCEPT $IPTABLES -F FORWARD La vache, je veux que c'est « gentil » ! Perso, ma politique par défaut pour les 3 chaînes est DROP (y a pas de raison ¡No pasarán!). Ensuite, je rajoute un truc du style iptables -A OUTPUT -j ACCEPT -p ALL -s $ip_du_fw iptables -A INPUT -d $ip_du_fw -j ACCEPT -m state -p ALL \ --state=ESTABLISHED,RELATED pour pouvoir sortir (et le premier qui vient me dire que le -p ALL c'est débile parce qu'on ne va pas voir de connexions en UDP va avoir des problèmes :-) En plus, avec iptables, même les protocoles les plus ch..nts comme FTP se règlent en deux secondes sans ouvrir des tonnes de ports, alors autant fermer tout ce qu'on peut dès le départ (ou ai-je raté un épisode ?)... $IPTABLES -A FORWARD -p tcp --destination-port 80 -m state --state NEW,INVALID -j ACCEPT $IPTABLES -A FORWARD -p tcp --destination-port 21 -m state --state NEW,INVALID -j ACCEPT ^^^ Euuuhh ? ! ? Les paquets invalides, ça serait pas mieux de les gicler ? $IPTABLES -A FORWARD -p tcp --source-port 80 -m state --state RELATED -j ACCEPT $IPTABLES -A FORWARD -p tcp --source-port 21 -m state --state RELATED -j ACCEPT Il faudrait pas ESTABLISHED en plus de RELATED ici ? Sinon, je te suggère aussi d'éviter le forgeage d'IP. Je me suis contenté des trois lignes suivantes : iptables -A PREROUTING -i ppp0 -j DROP -s 10.0.0.0/8 -t mangle iptables -A PREROUTING -i ppp0 -j DROP -s 172.16.0.0/12 -t mangle iptables -A PREROUTING -i ppp0 -j DROP -s 192.168.0.0/16 -t mangle Tu peux aussi rajouter 127.0.0.0/8, je doute que les Martiens puissent passer par ton interface PPP ;-) Enfin voilà, c'est les premiers trucs qui me passent par l'esprit, mais vérifie quand même bien tout, je suis une b... en TCP/IP (et donc en pare-feux), mais j'espère que ça pourra t'aider. En tout cas, j'insiste : les -P ACCEPT partout (j'ouvre tout et je ferme au coup par coup) ça me paraît très « peau de banane », un de ces jours tu vas ouvrir un service que tu ne penseras pas à verrouiller et crac !... Et bonne chance à toi (d'ailleurs, ma nouvelle cnx est arrivée avec son IP fixe, du coup moi aussi je m'amuse un peu avec le pare-feu ce soir :-) PS : je suis le seul à penser qu'un fichier de conf plus compréhensible comme sur les *BSD serait une bonne chose pasque la syntaxe iptables est vraiment indigeste ? +++ -- [ Jacques Caruso [EMAIL PROTECTED] Développeur PHP ] [ Monaco Internet http://monaco-internet.mc/ ] [ Tél : (+377) 93 10 00 43Clé PGP : 0x41F5C63D ] [ Timeo Microsoft et dona sourcecode -- Virgile, l'Énéide (ou presque) ] Linux-Azur : http://www.linux-azur.org Désinscriptions: http://www.linux-azur.org/liste.php3 Pas de message au format HTML, SVP
[TECH] Serveur web derriere un firewall
Resalut à tous, ayant réussi à mettre Apache derriere le firewall, comment je fais maintenant pour qu'il puisse detecter les adresses ip des visiteurs pour les mettre dans les logs ? Pour l'instant toutes les requetes portent l'adresse du firewall, ce qui est logique puisque c'est le firewall qui les lui donne. J'ai l'impression que je vais encore devoir me battre avec iptables parce que le tcpdump concorde avec les données dans les logs d'apache (unique adresse ip, celle du firewall). Pourtant il y a surement un moyen puisque tous les plus grands serveurs fonctionnent derriere un firewall. Dario __ ifrance.com, l'email gratuit le plus complet de l'Internet ! vos emails depuis un navigateur, en POP3, sur Minitel, sur le WAP... http://www.ifrance.com/_reloc/email.emailif Linux-Azur : http://www.linux-azur.org Désinscriptions: http://www.linux-azur.org/liste.php3 Pas de message au format HTML, SVP