bonjour, suite à mon poste: http://linuxfr.org/forums/12/18806.html, j'ai configuré le routeur ethernet en DMZ vers mon pc.
J'ai une table de routagedu noyau qui donne:
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1(rézeau wifi)
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0(cartethernet)
0.0.0.0 192.168.0.250 0.0.0.0 UG 0 0 0 eth0(gw=routeur)
je voudrais donner à apache un accès au worldwideweb, apache tourne en local (donc sur loopback 127.0.0.1), le routeur 192.168.0.250 possède lui même une table de routage ! :
Destination Masque de sous-réseau Passerelle Interface
0.0.0.0 0.0.0.0 213.44.14.1 ppp1
192.168.0.0 255.255.255.0 192.168.0.250 br0
127.0.0.1 255.0.0.0 127.0.0.1 lo0
213.44.14.1 255.255.255.255 213.44.97.210 ppp1
213.44.97.210 c'est mon adresse WAN celle que l'isp m'attribue et donc celle visible sur le réseau international, seulement une URL du type http://213.44.97.210 sollicite le serveur http du routeur(c'est nul) et pas mon ptit apache2.
Je sais pas changer ça.
Je me rend pas compte de quelles règles iptables j'ai besoin pour y parvenir.
Globalement administrer un réseau en DMZ ça me parle pas.
# essai rapide
Posté par nullard3d . Évalué à 1.
iptables -t nat -A PREROUTING -s ! 192.168.0.0/16 -d 213.44.97.210 -p tcp --dport 80 -j DNAT --to-destination [IP du serveur apache]
iptables -A FORWARD -s ! 192.168.0.0/16 -d [IP apache] -i ppp1 -o br0 -p tcp --dport 80 --sport 1024: -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -s [IP apache] -o ppp1 -i br0 -p tcp --sport 80 --dport 1024: -m state --state ESTABLISHED -j ACCEPT
La première règle établit la translation d'adresse IP (la vraie cible de la connexion devient apache et non le routeur), les deux suivantes autorisent le transfert des paquets dans un sens puis dans l'autre.
Ces règles sont vaguement sévères, mais en sécurité, on n'en fait jamais assez. A adapter aux règles existantes sur le routeur bien sûr.
La gestion réseau de base n'a rien d'inquiétant. En cherchant un peu de doc, on tombe sur http://www.lea-linux.org/cached/index/Reseau-secu-iptables.h(...) qui donne exactement ce que tu veux faire.
[^] # ca marche pas
Posté par ceseb . Évalué à 1.
[^] # Re: ca marche pas
Posté par Raphaël G. (site web personnel) . Évalué à 2.
Il te permet de simplement configurer ton firewall avec des fichiers assez simples...
Le problème de la version debian est que les fichiers de conf par défaut sont pas présent dans /etc/shorewall par défaut :'(
Mais tu récup ces fichiers sur une mandriva et ça roule.
(fait gaffe a bien utiliser la même version de shorewall sur les deux ou d'adapter car il y a eu des petits changements entre la 2, la 3 et suivantes...)
[^] # Re: ca marche pas
Posté par ceseb . Évalué à 0.
Et drakconf en mode partage internet met en branle shorewall et squid en même temps, ce qui aboutit à une perte de la connexion internet.
Pourquoi ne pas slmt utilisé les iptables pour arriver au but ?
[^] # Re: ca marche pas
Posté par Raphaël G. (site web personnel) . Évalué à 2.
Pour limiter le flooding des logs soit tu utiliser syslog-ng soit tu dois virer la verbosity de iptables, ça se fait en éditant le fichier :
/etc/shorewall/policy
En enlevant le info de l'avant dernière règle a la fin.
Après vérifie la configuration de shorewall, rappelle toi que la 2006 a été la première version avec shorewall et drakfirewall, soyons sérieux c'était pas au point !
(mais l'outil de la 2007 a été repensé et a réglé ces problèmes, chez moi en tout cas)
[^] # Re: ca marche pas
Posté par Raphaël G. (site web personnel) . Évalué à 2.
Pour limiter le flooding des logs soit tu utiliser syslog-ng soit tu dois virer la verbosity de iptables, ça se fait en éditant le fichier :
/etc/shorewall/policy
En enlevant le info de l'avant dernière règle a la fin.
Après vérifie la configuration de shorewall, rappelle toi que la 2006 a été la première version avec shorewall et drakfirewall, soyons sérieux c'était pas au point !
(mais l'outil de la 2007 a été repensé et a réglé ces problèmes, chez moi en tout cas)
[^] # Re: ca marche pas
Posté par nullard3d . Évalué à 1.
Pour essayer, on pourrait simplifier en :
iptables -t nat -A PREROUTING -d 213.44.97.210 -p tcp --dport 80 -j DNAT --to-destination [IP apache]
iptables -A FORWARD -d [IP apache] -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -s [IP apache] -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
Bien sûr, tu ne peux pas essayer cela depuis l'intérieur de ton LAN (peut-être sur la partie Wifi mais je garantie pas) puisque le serveur apache renverrait alors le paquet directement au destinataire sans repasser par le NAT et ton navigateur verrait revenir une connexion avec une IP source différente de celle demandée (en fait, il ne verra rien du tout, le noyau laissera tomber le paquet ou enverra un ICMP error/reset au serveur apache)
Pour comprendre à quel niveau ça peut bloquer, il faudrait essayer de faire des 'netstat -taupen' sur le poste client et le serveur. On verrait alors si le serveur reçoit le SYN ou non (pas de trace de connexion ou ACK sent ou même TIME_WAIT), puis si le client reçoit le ACK (SYN_SENT, ...), ou, encore mieux, tcpdump.
Vérifie bien dans ton 'iptables-save' que les règles ont bien été acceptées et qu'il n'y a pas un effet de précédence qui les rendraient inutiles.
Ceci dit, le conseil de Rapsys est bon car si tu établis les règles toi-même, il faudra penser à les charger au démarrage du routeur, alors que c'est sans doute pris en charge par un paquet Debian officiel.
[^] # je suis chiant
Posté par ceseb . Évalué à 0.
/var/log/shorewall-init.log
Je continue à creuser c'est important...
[^] # mais non, mais non
Posté par nullard3d . Évalué à 1.
D'ailleurs, FORWARD en ACCEPT par défaut, ça me semble un peu chaud pour un routeur...
Regarde dans la doc de shorewall s'il y a du NAT, plus particulièrement du DNAT (le SNAT ou masquerading permet au LAN d'aller sur Internet (Postrouting), le DNAT permet à Internet de taper sur une machine précise du LAN (prerouting))
Si tu veux retourner parmi les gros durs qui codent simultanément sur 3 claviers (un qwerty, un dvorak et un klingon) les yeux fermés, je t'assure que le script de la partie 3.3 du tuto de lea-linux fait exactement ce que tu recherches avec de bonnes explications.
[^] # Re: mais non, mais non
Posté par Raphaël G. (site web personnel) . Évalué à 2.
Je ne parle même pas du fait d'aller mettre un script en dur qui va lancer tes règles iptables une a une...
Avec shorewall sur ma 2007 je fais :
- dmz (enfin ma machine est dmz donc firewall)
- routage de port
- SNAT (masquerading) pour le réseau
- QOS (via tcrules, tcclasses, tcinterfaces)
Et ça tient dans 4-5 fichiers clairs !
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.