Re: [TECH] Serveur web derriere un firewall

2002-06-04 Par sujet Vincent Renardias

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

2002-06-03 Par sujet Vincent Renardias

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

2002-06-03 Par sujet Dario Spagnolo
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

2002-06-03 Par sujet Dario Spagnolo
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

2002-06-03 Par sujet Jacques Caruso
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

2002-06-02 Par sujet Dario Spagnolo
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