[résolu][iptables] connexion http apache

Salut la foule,

j’ai un souci suite à la mise en place de mon VPN et je pense que ca vient d’iptables. j’ai un serveur suse linux sur lequel tourne un serveur subversion, un serveur apache et un serveur samba. de l’autre coté ils ont également un couple subversion / apache sous windaube.

notre LAN est en 10.0.0.0 / 24 et le LAN à l’autre bout du VPN est en 192.168.2.0 / 24.

dans httpd.conf j’ai mis :
Listen 0.0.0.0:80
pour forcer apache à écouter toutes les connexions entrantes. je verrais + tard pour restreindre l’écoute à nos 2 réseaux.

les tests que j’ai fais :
la connexion eclipse > subversion fonctionne sur notre LAN
j’accède à leur serveur subversion en utilisant eclipse sans souci.
je ping leurs machines, et eux ping les notres sauf le serveur suse qui ne répond pas.
quand ils essais de se connecter avec eclipse voila leur message d’erreur :

et quand ils entrent l’adresse http dans leur navigateur, ils obtiennent :

suite à ces tests, et vu que moi je peux me connecter sur leur serveur windows, je mets en cause iptables.

voice le résultat de iptables --list :

[quote]Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT all – anywhere anywhere
ACCEPT all – anywhere anywhere state RELATED,ESTABLISHED
input_ext all – anywhere anywhere
input_ext all – anywhere anywhere
LOG all – anywhere anywhere limit: avg 3/min burst 5 LOG level warning tcp-options ip-options prefix `SFW2-IN-ILL-TARGET '
DROP all – anywhere anywhere

Chain FORWARD (policy DROP)
target prot opt source destination
LOG all – anywhere anywhere limit: avg 3/min burst 5 LOG level warning tcp-options ip-options prefix `SFW2-FWD-ILL-ROUTING ’

Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all – anywhere anywhere
ACCEPT all – anywhere anywhere state NEW,RELATED,ESTABLISHED
LOG all – anywhere anywhere limit: avg 3/min burst 5 LOG level warning tcp-options ip-options prefix `SFW2-OUT-ERROR ’

Chain forward_ext (0 references)
target prot opt source destination

Chain input_ext (2 references)
target prot opt source destination
ACCEPT udp – anywhere anywhere PKTTYPE = broadcast udp dpt:netbios-ns
DROP all – anywhere anywhere PKTTYPE = broadcast
ACCEPT icmp – anywhere anywhere icmp source-quench
ACCEPT icmp – anywhere anywhere icmp echo-request
ACCEPT icmp – anywhere anywhere state RELATED,ESTABLISHED icmp echo-reply
ACCEPT icmp – anywhere anywhere state RELATED,ESTABLISHED icmp destination-unreachable
ACCEPT icmp – anywhere anywhere state RELATED,ESTABLISHED icmp time-exceeded
ACCEPT icmp – anywhere anywhere state RELATED,ESTABLISHED icmp parameter-problem
ACCEPT icmp – anywhere anywhere state RELATED,ESTABLISHED icmp timestamp-reply
ACCEPT icmp – anywhere anywhere state RELATED,ESTABLISHED icmp address-mask-reply
ACCEPT icmp – anywhere anywhere state RELATED,ESTABLISHED icmp protocol-unreachable
ACCEPT icmp – anywhere anywhere state RELATED,ESTABLISHED icmp redirect
LOG tcp – anywhere anywhere limit: avg 3/min burst 5 tcp dpt:5801 flags:SYN,RST,ACK/SYN LOG level warning tcp-options ip-options prefix SFW2-INext-ACC-TCP ' ACCEPT tcp -- anywhere anywhere tcp dpt:5801 LOG tcp -- anywhere anywhere limit: avg 3/min burst 5 tcp dpt:5901 flags:SYN,RST,ACK/SYN LOG level warning tcp-options ip-options prefixSFW2-INext-ACC-TCP '
ACCEPT tcp – anywhere anywhere tcp dpt:5901
LOG tcp – anywhere anywhere limit: avg 3/min burst 5 tcp dpt:http flags:SYN,RST,ACK/SYN LOG level warning tcp-options ip-options prefix SFW2-INext-ACC-TCP ' ACCEPT tcp -- anywhere anywhere tcp dpt:http LOG tcp -- anywhere anywhere limit: avg 3/min burst 5 tcp dpt:microsoft-ds flags:SYN,RST,ACK/SYN LOG level warning tcp-options ip-options prefixSFW2-INext-ACC-TCP '
ACCEPT tcp – anywhere anywhere tcp dpt:microsoft-ds
LOG tcp – anywhere anywhere limit: avg 3/min burst 5 tcp dpt:netbios-dgm flags:SYN,RST,ACK/SYN LOG level warning tcp-options ip-options prefix SFW2-INext-ACC-TCP ' ACCEPT tcp -- anywhere anywhere tcp dpt:netbios-dgm LOG tcp -- anywhere anywhere limit: avg 3/min burst 5 tcp dpt:netbios-ns flags:SYN,RST,ACK/SYN LOG level warning tcp-options ip-options prefixSFW2-INext-ACC-TCP '
ACCEPT tcp – anywhere anywhere tcp dpt:netbios-ns
LOG tcp – anywhere anywhere limit: avg 3/min burst 5 tcp dpt:netbios-ssn flags:SYN,RST,ACK/SYN LOG level warning tcp-options ip-options prefix SFW2-INext-ACC-TCP ' ACCEPT tcp -- anywhere anywhere tcp dpt:netbios-ssn LOG tcp -- anywhere anywhere limit: avg 3/min burst 5 tcp dpt:ssh flags:SYN,RST,ACK/SYN LOG level warning tcp-options ip-options prefixSFW2-INext-ACC-TCP '
ACCEPT tcp – anywhere anywhere tcp dpt:ssh
reject_func tcp – anywhere anywhere tcp dpt:ident state NEW
ACCEPT udp – anywhere anywhere udp dpt:netbios-ns
LOG tcp – anywhere anywhere limit: avg 3/min burst 5 tcp flags:SYN,RST,ACK/SYN LOG level warning tcp-options ip-options prefix SFW2-INext-DROP-DEFLT ' LOG icmp -- anywhere anywhere limit: avg 3/min burst 5 LOG level warning tcp-options ip-options prefixSFW2-INext-DROP-DEFLT '
LOG udp – anywhere anywhere limit: avg 3/min burst 5 LOG level warning tcp-options ip-options prefix SFW2-INext-DROP-DEFLT ' LOG all -- anywhere anywhere limit: avg 3/min burst 5 state INVALID LOG level warning tcp-options ip-options prefixSFW2-INext-DROP-DEFLT-INV '
DROP all – anywhere anywhere

Chain reject_func (1 references)
target prot opt source destination
REJECT tcp – anywhere anywhere reject-with tcp-reset
REJECT udp – anywhere anywhere reject-with icmp-port-unreachable
REJECT all – anywhere anywhere reject-with icmp-proto-unreachable[/quote]

au vu de tout ca, quelqu’un pourrait-il m’apporter son aide ?

d’avance merci.

bonjour twistophe,
même si je nage encore dans iptables, et que je n’ai pas eu le temps d’assimiler toutes les réponses que j’ai reçu concernant mon souci de ftp (merci MattOTop :wink: ) et iptable, je pense que si , ne serait-ce que pour tester, tu lançais firestarter (que je trouve simpliste et excellent), tu verrais trés vite si iptable bloque la connection, dans la fenetre Evenements .
c’est juste une suggestion …

c’est un serveur en production, il n’y a pas d’interface graphique.

j’utilise firestarter sur ma machine (pas sur le serv donc), c’est vrai que cela est simple et me semble efficace.

par contre, pour mon serv… ca le fais moins, je pense que je ne vais pas avoir d’autre choix que d’apprendre le fonctionnement d’iptables, qui ne sera pas une perte de temps de toute facon.

j’ai DL une doc sur iptables 1.2.0 (linux-france.org/prj/inetdoc … -tutorial/) qui me semble complète, mais assez lourde à assimiler. j’ai parcouru les 40 premières pages, et j’avoue… c’est CHAUD !

Bon, le fait que ton serveur en prod n’aie pas X n’empêche pas que tu te connectes en ssh dessus avec le X11 forwarding (ssh -X), et que tu lances des applis graphique avec affichage sur ton client windows (cygwin fournit un serveur X sous windows).
Sinon, vu comment sont configurées actuellement tes iptables, tu as desactivé tout bloquage en entrée et en sortie. Un equivalent de ton iptables serait:iptables -F filter iptables -A FORWARD ... -J LOG --log-prefix `SFW2-FWD-ILL-ROUTING '
Telle que la table filter est configurée actuellement, c’est absolument tout ce qu’elle fait: comme tu as mis un accept en premier dans les chaines INPUT et OUTPUT, tous les paquets qui arrivent ou qui sortent sont acceptés sans execution des regles qui suivent ni de la policy par defaut.
Par ailleurs, tu n’affiches ici que la table filter, donc on ne sait pas comment tu configures le nat.
Pour connaitre l’intègralité de tes iptables, utilises plutot iptables-save.

Maintenant, tu donnes l’adresse de ton lan, celle du lan distant, mais tu ne dis pas comment est configuré ton VPN. C’est quoi comme vpn ? ipsec ? pptp ? openvpn ? Quelle adresse utilises tu ? Fais tu un bridging entre ton ppp et ton eth ?

ouch, tu me surprendras toujours Matt.
comment as-tu deviné que je me connectais en ssh -X ?? :open_mouth:

je précise que ce n’est pas moi qui est installé ce serveur, sinon il serait sous debian. ^^

pour ce qui est de l’équivalence de “mon” iptables, je t’avoue que voir ACCEPT partout ca me fais un peu peur…

voila le résultat de iptable-save :

[quote]# iptables-save

Generated by iptables-save v1.3.1 on Thu Jun 15 10:40:10 2006

*mangle
:stuck_out_tongue:REROUTING ACCEPT [118518423:93497690578]
:INPUT ACCEPT [118489658:93493342850]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [99275104:53786849046]
:stuck_out_tongue:OSTROUTING ACCEPT [99278862:53787689054]
COMMIT

Completed on Thu Jun 15 10:40:10 2006

Generated by iptables-save v1.3.1 on Thu Jun 15 10:40:10 2006

*filter
:INPUT DROP [2:166]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [20:937]
:forward_ext - [0:0]
:input_ext - [0:0]
:reject_func - [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i eth0 -j input_ext
-A INPUT -i eth1 -j input_ext
-A INPUT -m limit --limit 3/min -j LOG --log-prefix "SFW2-IN-ILL-TARGET " --log-tcp-options --log-ip-options
-A INPUT -j DROP
-A FORWARD -m limit --limit 3/min -j LOG --log-prefix "SFW2-FWD-ILL-ROUTING " --log-tcp-options --log-ip-options
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -m limit --limit 3/min -j LOG --log-prefix "SFW2-OUT-ERROR " --log-tcp-options --log-ip-options
-A input_ext -p udp -m pkttype --pkt-type broadcast -m udp --dport 137 -j ACCEPT
-A input_ext -m pkttype --pkt-type broadcast -j DROP
-A input_ext -p icmp -m icmp --icmp-type 4 -j ACCEPT
-A input_ext -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A input_ext -p icmp -m state --state RELATED,ESTABLISHED -m icmp --icmp-type 0 -j ACCEPT
-A input_ext -p icmp -m state --state RELATED,ESTABLISHED -m icmp --icmp-type 3 -j ACCEPT
-A input_ext -p icmp -m state --state RELATED,ESTABLISHED -m icmp --icmp-type 11 -j ACCEPT
-A input_ext -p icmp -m state --state RELATED,ESTABLISHED -m icmp --icmp-type 12 -j ACCEPT
-A input_ext -p icmp -m state --state RELATED,ESTABLISHED -m icmp --icmp-type 14 -j ACCEPT
-A input_ext -p icmp -m state --state RELATED,ESTABLISHED -m icmp --icmp-type 18 -j ACCEPT
-A input_ext -p icmp -m state --state RELATED,ESTABLISHED -m icmp --icmp-type 3/2 -j ACCEPT
-A input_ext -p icmp -m state --state RELATED,ESTABLISHED -m icmp --icmp-type 5 -j ACCEPT
-A input_ext -p tcp -m limit --limit 3/min -m tcp --dport 5801 --tcp-flags SYN,RST,ACK SYN -j LOG --log-prefix "SFW2-INext-ACC-TCP " --log-tcp-options --log-ip-options
-A input_ext -p tcp -m tcp --dport 5801 -j ACCEPT
-A input_ext -p tcp -m limit --limit 3/min -m tcp --dport 5901 --tcp-flags SYN,RST,ACK SYN -j LOG --log-prefix "SFW2-INext-ACC-TCP " --log-tcp-options --log-ip-options
-A input_ext -p tcp -m tcp --dport 5901 -j ACCEPT
-A input_ext -p tcp -m limit --limit 3/min -m tcp --dport 80 --tcp-flags SYN,RST,ACK SYN -j LOG --log-prefix "SFW2-INext-ACC-TCP " --log-tcp-options --log-ip-options
-A input_ext -p tcp -m tcp --dport 80 -j ACCEPT
-A input_ext -p tcp -m limit --limit 3/min -m tcp --dport 445 --tcp-flags SYN,RST,ACK SYN -j LOG --log-prefix "SFW2-INext-ACC-TCP " --log-tcp-options --log-ip-options
-A input_ext -p tcp -m tcp --dport 445 -j ACCEPT
-A input_ext -p tcp -m limit --limit 3/min -m tcp --dport 138 --tcp-flags SYN,RST,ACK SYN -j LOG --log-prefix "SFW2-INext-ACC-TCP " --log-tcp-options --log-ip-options
-A input_ext -p tcp -m tcp --dport 138 -j ACCEPT
-A input_ext -p tcp -m limit --limit 3/min -m tcp --dport 137 --tcp-flags SYN,RST,ACK SYN -j LOG --log-prefix "SFW2-INext-ACC-TCP " --log-tcp-options --log-ip-options
-A input_ext -p tcp -m tcp --dport 137 -j ACCEPT
-A input_ext -p tcp -m limit --limit 3/min -m tcp --dport 139 --tcp-flags SYN,RST,ACK SYN -j LOG --log-prefix "SFW2-INext-ACC-TCP " --log-tcp-options --log-ip-options
-A input_ext -p tcp -m tcp --dport 139 -j ACCEPT
-A input_ext -p tcp -m limit --limit 3/min -m tcp --dport 22 --tcp-flags SYN,RST,ACK SYN -j LOG --log-prefix "SFW2-INext-ACC-TCP " --log-tcp-options --log-ip-options
-A input_ext -p tcp -m tcp --dport 22 -j ACCEPT
-A input_ext -p tcp -m tcp --dport 113 -m state --state NEW -j reject_func
-A input_ext -p udp -m udp --dport 137 -j ACCEPT
-A input_ext -p tcp -m limit --limit 3/min -m tcp --tcp-flags SYN,RST,ACK SYN -j LOG --log-prefix "SFW2-INext-DROP-DEFLT " --log-tcp-options --log-ip-options
-A input_ext -p icmp -m limit --limit 3/min -j LOG --log-prefix "SFW2-INext-DROP-DEFLT " --log-tcp-options --log-ip-options
-A input_ext -p udp -m limit --limit 3/min -j LOG --log-prefix "SFW2-INext-DROP-DEFLT " --log-tcp-options --log-ip-options
-A input_ext -m limit --limit 3/min -m state --state INVALID -j LOG --log-prefix "SFW2-INext-DROP-DEFLT-INV " --log-tcp-options --log-ip-options
-A input_ext -j DROP
-A reject_func -p tcp -j REJECT --reject-with tcp-reset
-A reject_func -p udp -j REJECT --reject-with icmp-port-unreachable
-A reject_func -j REJECT --reject-with icmp-proto-unreachable
COMMIT

Completed on Thu Jun 15 10:40:10 2006

Generated by iptables-save v1.3.1 on Thu Jun 15 10:40:10 2006

*nat
:stuck_out_tongue:REROUTING ACCEPT [402211]
:stuck_out_tongue:OSTROUTING ACCEPT [460568]
:OUTPUT ACCEPT [460568]
COMMIT

Completed on Thu Jun 15 10:40:10 2006[/quote]

le VPN est assuré par un boitier Netgear de chaque coté pour faire du gateway-to-gateway, ils supportent : IPSec, IKE, DES, 3DES, AES, MD5, SHA-1,PKI.

je ne comprend pas ta question "Quelle adresse utilises-tu ?"
l’accès à internet est assuré par de simple modem à chaque extrémité directement connecté au boitier netgear. je ne pense donc pas qu’il y ait du bridging entre le pp et l’eth (je me trompe peut-etre).

Bon, ton iptables-save est plus rassurant que ton ‘iptables -list’. Là, on voit que la regle accept partout concerne le lo (ouf).
Maintenant, il faut que j’analyse ton iptables.

sinon.

Dans une session de messagerie, tu as ajouté[quote=“Twistophe”] donc, je résume :

  • j’ai un serveur suse sur lequel tourne apache2 / subversion et samba
  • j’ai mis en place un VPN grace à 2 gateway netgear qui, aprioris, fais de l’ipsec
  • l’objectif est que les clients du VPN accèdent à subversion via apache2 mais qu’ils n’accèdent pas à samba[/quote]
    OK. Tu passes par des routeurs materiel. ma question etait donc nulle.

essayes d’ajouter: iptables -A input_ext -p tcp -m limit --limit 3/min -m tcp --dport 3690 --tcp-flags SYN,RST,ACK SYN -j LOG --log-prefix "SFW2-INext-ACC-TCP " --log-tcp-options --log-ip-options iptables -A input_ext -p tcp -m tcp --dport 3690 -j ACCEPT
Est ce que c’est mieux ?

ca n’a pas l’air bon, voila l’erreur obtenu dans eclipse :

et dans leur navigateur :

bon, il y a du progrés, tu n’as plus le même message d’erreur, c’est donc que tu es allé un peu plus loin.
alors maintenant, j’ai ouvert le port tcp/3690 de svn (aka subversion, regardes dans /etc/services), mais il y a peut être aussi besoin d’ouvrir le port udp.
Esayyes en rajoutant les deux mêmes lignes avec udp au lieu de tcp.

mais il y a peut être un problême lié aux contraintes de débits que j’ai mis dans la “longue” ligne. J’ai recopiée telle quelle une des règles qui existaient pour l’ouverture d’un autre port sur ta machine.

Ah au fait d’ouverture de port, samba est bien ouvert à tout le monde, il va falloir restreindre aux adresses de ton lan, si tu ne veux pas que les clients distant y accèdent.
Mais pour sécuriser l’interconnection, j’installerais un pare feu indépendant entre le netgear et ton lan, pour filtrer le traffic entrant sur ton lan. Un filtrage sur l’adresse ip est trop facile à contourner, en général, alors que si tu mets une porte à ton lan qui dit “pas de traffic samba entrant”, tu es sûr de protèger.

j’ai remplacé les “tcp” par des “udp”, il y a le “–udp-flags” qui ne lui plait pas

[quote]# iptables -A input_ext -p udp -m limit --limit 3/min -m udp --dport 3690 --udp-flags SYN,RST,ACK SYN -j LOG --log-prefix "SFW2-INext-ACC-UDP " --log-udp-options --log-ip-options
iptables v1.3.1: Unknown arg --udp-flags' Tryiptables -h’ or ‘iptables --help’ for more information.[/quote]

pour les ports de samba, je suis en train de parlementer pour mettre en place un proxy/FW entre le netgear et notre LAN, ca me semble aussi la meilleur solution.

je t’ai n’importe quoi. La première ligne est une ligne de LOG.
Voila ce qu’il faut rajouter à ta config standard:iptables -A input_ext -p tcp -m tcp --dport 3690 -j ACCEPT iptables -A input_ext -p udp -m udp --dport 3690 -j ACCEPT

ok, y’a pas de souci matt :slightly_smiling:

j’ai fais ca et j’ai demandé qu’ils testent. je te donne le résultat dès que j’ai une réponse.

ils obtiennent la meme erreur :

Bon, alors comme je sais que celà n’a pas marché, il va falloir procèder autrement.

D’abord, tu surveilles, dans une console à part, le passage dans /var/log/message des logs que nous allons génèrer (au passage, je l’envoie en parallèle dans trace.log):tail -qf /var/log/messages | grep EXT_INP_FLT | tee trace.log

Ensuite, tu logues tout ce qui vient de leur lan:iptables -I input_ext -s 10.0.0.0/24 -j LOG --log-prefx "EXT_INP_FLT"

Finalement, tu leur demande de faire un test, et tu notes les DPT des paquets logués, ensuite, tu essayes de les ouvrir en INPUT (les mêmes règles que je t’ai données pour le port 3690 de subversion).

dis moi, c’est quoi les deux interfaces eth0 et eth1 ?

salut,

ce problème est résolu grace aux lignes iptables de matt, mes clients VPN arrivent à se connecter au serveur apache, mais, ils n’arrivent pas à naviguer dans le site :confused:
j’ouvre un nouveau topic sur ce sujet.

pour samba, j’ai mis dans le smb.conf :

hosts allow = 127.0.0.1 10.0.0.0/24

j’espère qu’avec cette config samba ne répondra pas aux requetes venant “d’ailleurs”.

c’est déjà ça, mais c’est spoofable: par principe une ip peut toujours être usurpée. Même au niveau de la mac, on peut usurper.
c’est sur le routeur qu’il faut bloquer le traffic samba entrant à destination du serveur (et même comme ça il restera des rebonds éventuels sur les autres machines de ton lan).
Enfin…

mais pourquoi y’a t-il tant de possibilité ?
avant ma formation, j’avais l’impession de tout connaitre ou presque… depuis la formation, chaque jour je me sent - performant que la veille… :’(

Non, c’est que chaque jour tu es un peu plus conscient de tes incompètences, mais c’est juste parceque les incompètences apparaissent plus vite que tu n’acquières de compètences.
Un jour, tu aura l’impression que la tendance s’inverse.

Ne te réjouis pas trop vite: ça voudra dire que tu deviens vieux et que tu ne vois plus les nouvelles compètences à acquerir. :wink:

PS: personnellement, plus j’en sais, plus je me demande.