[Réglé] Apache + iptables

Bonjour,

J’ai installer apache sur mon serveur sarge 3.1, j’utilise iptables pour le par feux.

J’arrive a voir mon site au dépar d’un pc de l’intérieur du réseaux mai quand je veux allé sur un pc de l’éxtérieur, sa fonctionne pas, impossible d’afficher la page…

Une idée ?

Oulà, t’es un peu avare en explication là. La machine qui fait tourner ton apache se trouve sur un réseau privé? Tu fais du nat pour aller à l’exterieur de ton réseau? Est-ce ta machine Debian qui fait office de passerelle, ou bien utilises tu un routeur autre?

Tous est sur mon serveur qui est relié a internet, squid apache iptables etc…

J’ai donc une adresse dynamique qui est midifier par noip.

slt,

Oui en effet il faudrait plus de detail :
=> IP ethX
=> Regle iptable
=> Routeur, Modem
=> conf noip

:slight_smile:

#! /bin/sh
/sbin/iptables -F
/sbin/iptables -X
/sbin/iptables -Z
/sbin/iptables -t nat -F
/sbin/iptables -t nat -X
/sbin/iptables -t nat -Z
/sbin/iptables -P INPUT DROP
/sbin/iptables -P OUTPUT DROP
/sbin/iptables -P FORWARD DROP

/sbin/iptables -A INPUT -i lo -j ACCEPT
/sbin/iptables -A OUTPUT -o lo -j ACCEPT

/sbin/iptables -A INPUT -i eth0 -j ACCEPT
/sbin/iptables -A OUTPUT -o eth0 -j ACCEPT

/sbin/iptables -A OUTPUT -o ppp0 -j ACCEPT
/sbin/iptables -A INPUT -i ppp0 -m state --state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A FORWARD -i eth0 -j ACCEPT
/sbin/iptables -A FORWARD -o eth0 -j ACCEPT
/sbin/iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
/sbin/iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 80 -j REDIRECT --to-port 3128

/sbin/iptables -A INPUT -p tcp -i ppp0 --dport 4662 -j ACCEPT
/sbin/iptables -A INPUT -p udp -i ppp0 --dport 4661 -j ACCEPT

/sbin/iptables -A FORWARD -m state --state NEW -i eth0 -p tcp -s 192.168.1.0/24 --sport 1024: -d 195.238.3.118 --dport 110
–syn -j ACCEPT
/sbin/iptables -A FORWARD -m state --state NEW -i eth0 -p tcp -s 192.168.1.0/24 --sport 1024: -d 195.238.3.131/24 --dport 2
5 --syn -j ACCEPT
/sbin/iptables -t nat -A POSTROUTING -o ppp0 -p tcp -s 192.168.1.0/24 --sport 1024: -d 195.238.3.118 --dport 110 -j MASQUE
RADE
/sbin/iptables -t nat -A POSTROUTING -o ppp0 -p tcp -s 192.168.1.0/24 --sport 1024: -d 195.238.3.131 --dport 25 -j MASQUERA
DE

/sbin/iptables -A FORWARD -m state --state NEW -i eth0 -p udp -s 192.168.1.0/24 --sport 1024: -d 194.88.127.7 --dport 53 -j
ACCEPT
/sbin/iptables -A FORWARD -m state --state NEW -i eth0 -p udp -s 192.168.1.0/24 --sport 1024: -d 62.112.0.7 --dport 53 -j A
CCEPT
/sbin/iptables -t nat -A POSTROUTING -p udp -s 192.168.1.0/24 --sport 1024: -d 194.88.127.7 --dport 53 -j MASQUERADE
/sbin/iptables -t nat -A POSTROUTING -p udp -s 192.168.1.0/24 --sport 1024: -d 62.112.0.7 --dport 53 -j MASQUERADE

pas de routeur c’est mon serveur le routeur.

eth0 ver le réseau interne et eth1 ver le net

/sbin/iptables -P OUTPUT DROP
c’est pas un peu exagèré, ca ? :laughing:
/sbin/iptables -A INPUT -i ppp0 -m state --state ESTABLISHED,RELATED -j ACCEPT
bon, donc ca, ppp0 c’est ton lien internet, normal.
/sbin/iptables -A INPUT -p tcp -i ppp0 --dport 4662 -j ACCEPT
/sbin/iptables -A INPUT -p udp -i ppp0 --dport 4661 -j ACCEPT
tiens une mule ! c’est pô bien ki dise à la télé…

bon, mais tu ne laisses rien entrer sur le port 80 (si c’est ton port d’ecoute http) de ppp0, ca peut pas le faire !
/sbin/iptables -A INPUT -p tcp -i ppp0 --dport 80 -j ACCEPT
ca devrait être mieux.
Un piti conseil: lis ‘man iptables-save’ ca peut servir…
++

avec sa "/sbin/iptables -A INPUT -p tcp -i ppp0 --dport 80 -j ACCEPT " sa fonctionne toujours pas…

il te manque un connection tracking au début de ta chaîne output

tu peux donner un exemple ?

C’est comme ce que t’as mis au début de ta chaîne INPUT :
/sbin/iptables -A OUPUT -i ppp0 -m state --state ESTABLISHED,RELATED -j ACCEPT

En gros, l’ouverture du port 80 permet de demander l’établissement d’une connexion, et cette ligne laisse sortir la réponse d’apache (ou d’un autre service si tu ouvres un autre port en entrée) pour établir la connexion.

il voulait dire un accept sur l’output established,related de ppp0, je crois, mais mets ton output en accept par defaut. Ca sert à rien de bloquer ce qui sort…

Et t’as pas configuré tcpwrappers au moins ?
Si tu as iptables + tcpwrappers qui sont activés, t’as intérêt à être cohérent dans tes paramétrages, sinon tu t’arracheras les cheveux pour trouver ce qui cloche …

nan, je croi pas, mai j’arrive toujours pas a voir mon site depui l’extérieur…

as tu bien mis un accept en defaut sur l’output, au moins pour tester ?
Pourrais tu dire ce que tu as testé AVEC le résultat de tes tests, qu’on ait une chance de t’aider correctement ?

Et sinon, tu es sûr qu’apache ecoute sur toutes les interfaces ?
Parceque s’il est démarré avant ppp0, ca lui pose peut être un problême, non ?
verifies les adresses sur lesquelles il ecoute, et essayes de redemarrer apache APRES la connection…
Si ca marche, il suffira de mettre un apache reload dans le script ifup ou dans la config de ppp…

J’ai m’y ACCEPT a OUTPUT, sa fonctionne toujours pas, mai je comprand pas comment vérifier sur quoi apache écoute, je connais pas.

Déso pour ma nullité…

suivant quelle version d’appache tu utilise, ce n’est pas le même fichier, mais cherches dans le repertoire /etc de ton apache des directives Listen ou BindAddress:
apachefrance.com/Manuels/Apa … tml#listen

Voila, j’ai vérifier, “listen 80”

petit préssision, je sais voir le site de mon réseaux interne.

quand je fais un nmap -sS sur le non du site, j’ai pas le port 80 ouver…

bon, ben revenons à iptables, tu va lever ton pare feu (accept partout), mais en rajoutant avant une chaine LOG sur l’input et le forward de ppp0, pour pouvoir verifier quand tu auras réactivé ta protection, si tu n’as pas été compromis dans la brève période ou tu va rester sans protection, et surtout pour comprendre.
Sinon, avant, tu as reloadé ton apache APRES connection au net, pour voir si ca marche, comme je te l’ai conseillé ?

Tu peux me dire plus précisément ce que je doit tapé dans mon fichier IPTABLES, car je capte pas bien tous ce que je doit faire…

Merci d’avance, je suis nul la dedans et j’aimerais apprendre.