Forum Linux.debian/ubuntu partage de connexion Internet pas terrible

Posté par  .
Étiquettes :
0
21
juil.
2005
Bonjour tout le monde

Apres des jours de recherche je me décide à poster, car j'ai l'impression que quelque chose de TRES simple m'échappe...mais je ne vois pas quoi !!

Je veux tout simplement partager ma connexion adsl avec mon réseau local.

J'ai 3 machines, 1 mépis, 1 debian, 1 windows

La mépis possède la connexion au web via ppp0
2 interface réseaux

un route -n donne :

Destination Passerelle Genmask Indic Metric Ref Use Iface
213.103.0.1 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
0.0.0.0 213.103.0.1 0.0.0.0 UG 0 0 0 ppp0


Mon ficher firewall.sh que je lance au démarrage est le suivant


#!/bin/sh
#Supprimer TOUT les filtrages d'IPTABLES
#---------------------------------------
iptables -t filter -F
iptables -t filter -X
iptables -t nat -F
iptables -t nat -X

#on accepte tout
#iptables -t filter -P INPUT ACCEPT
#iptables -t filter -P OUTPUT ACCEPT
#iptables -t filter -P FORWARD ACCEPT
#iptables -t nat -P PREROUTING ACCEPT
#iptables -t nat -P POSTROUTING ACCEPT
#iptables -t nat -P OUTPUT ACCEPT
#iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

#hack pour supression d'une route en trop qui se met
#au démarrage mais je ne sais pas pourquoi ...
#comme ca c'est réglé !!
route del -net 192.168.0.0 netmask 255.255.255.0 eth0


# Activation du forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward

# Par defaut tout est ferme
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

# reinitialisation table NAT
iptables -t nat -F
iptables -t nat -X

iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT

# Translation d'adresse pour tout ce qui sort vers l'internet
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

# La machine locale est sure
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

# Resolution DNS pour les machines du LAN
iptables -A FORWARD -i ppp0 -o eth1 --protocol udp --source-port 53 -j ACCEPT
iptables -A FORWARD -i eth1 -o ppp0 --protocol udp --destination-port 53 -j ACCEPT
iptables -A FORWARD -i ppp0 -o eth1 --protocol tcp --source-port 53 -j ACCEPT
iptables -A FORWARD -i eth1 -o ppp0 --protocol tcp --destination-port 53 -j ACCEPT

# On permet toutes les connexions sur le LAN depuis le firewall
iptables -A INPUT -i eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -o eth1 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

# On permet toutes les connexions sur le firewall depuis le LAN
iptables -A INPUT -i eth1 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT

# On accepte toutes les liaisons firewall-Internet
iptables -A OUTPUT -o ppp0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
# On accepte les liaisons Internet-firewall deja etablies
iptables -A INPUT -i ppp0 -m state --state ESTABLISHED,RELATED -j ACCEPT

# On accepte toutes les liaisons LAN-Internet
iptables -A FORWARD -i eth1 -o ppp0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

# On accepte les liaisons Internet-LAN deja etablies
iptables -A FORWARD -i ppp0 -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT

### Autorise le trafic DNS, HTTP, HTTPS,
# FTP, POP, SMTP et SSH au travers de la passerelle :
iptables -A FORWARD -s 192.168.0.0/24 -i eth0 -o ppp0 -p UDP --dport domain -j ACCEPT
iptables -A FORWARD -s 192.168.0.0/24 -i eth0 -o ppp0 -p TCP --dport domain -j ACCEPT
iptables -A FORWARD -s 192.168.0.0/24 -i eth0 -o ppp0 -p TCP --dport http -j ACCEPT
iptables -A FORWARD -s 192.168.0.0/24 -i eth0 -o ppp0 -p TCP --dport https -j ACCEPT
iptables -A FORWARD -s 192.168.0.0/24 -i eth0 -o ppp0 -p TCP --dport ftp -j ACCEPT
iptables -A FORWARD -s 192.168.0.0/24 -i eth0 -o ppp0 -p TCP --dport pop3 -j ACCEPT
iptables -A FORWARD -s 192.168.0.0/24 -i eth0 -o ppp0 -p TCP --dport smtp -j ACCEPT
iptables -A FORWARD -s 192.168.0.0/24 -i eth0 -o ppp0 -p TCP --dport ssh -j ACCEPT


## Autorise l'établissement des connexions protocolaires additionnelles :
iptables -A FORWARD -s 192.168.0.0/24 -i eth0 -o eth1 --match state --state ESTABLISHED,RELATED -j ACCEPT

## Autorise le trafic en retour pour les connexions établies par les clients :
iptables -A FORWARD -i ppp0 -d 192.168.0.0/24 --match state --state ESTABLISHED,RELATED -j ACCEPT

### Autorise le trafic ICMP :
iptables -A FORWARD -p ICMP --icmp-type echo-request -j ACCEPT
iptables -A FORWARD -p ICMP --icmp-type echo-reply -j ACCEPT
iptables -A FORWARD -p ICMP --icmp-type destination-unreachable -j ACCEPT

## Restreint la taille des paquets des connexions TCP
## lors de leur établissement :
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS -o ppp0 --clamp-mss-to-pmtu


# Ouverture pour le ftp (actif)
iptables -A INPUT -i ppp0 -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o ppp0 -p tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -i ppp0 -p tcp --dport 20 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o ppp0 -p tcp --sport 20 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i ppp0 -p tcp --sport 1024:65535 --dport 1024:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -o ppp0 -p tcp --sport 1024:65535 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT


# Ouverture pour le serveur ssh
iptables -A OUTPUT -o ppp0 -p tcp --sport 22 -j ACCEPT
iptables -A INPUT -i ppp0 -p tcp --dport 22 -j ACCEPT


# Ouverture pour le serveur ssh
iptables -A OUTPUT -o ppp0 -p tcp --sport 23 -j ACCEPT
iptables -A INPUT -i ppp0 -p tcp --dport 23 -j ACCEPT

# Ouverture pour le serveur web
iptables -A OUTPUT -o ppp0 -p tcp --sport 80 -j ACCEPT
iptables -A INPUT -i ppp0 -p tcp --dport 80 -j ACCEPT

## Ouverture pour APT
#----------------------
iptables -A OUTPUT -o ppp0 -p tcp --sport 1053 -j ACCEPT
iptables -A INPUT -i ppp0 -p tcp --dport 1053 -j ACCEPT


# Fin du fichier


Avec une telle config je vais sur le web nickel depuis mepis

mais depuis debian et windows, les pc du lan, je ne peux aller QUE sur google !!

Non ce ne sont pas des blagues, uniquement sur google, je peux chercher tout ce que je veux.. mais je ne peut pas y accéder, ca tourne un moment puis j'ai l'erreur dnserror (sous windows) comme si j'avais enlevé la prise !

Une autre info qui peut surement aidé les initiés que vous êtes.
je peux pinger ce que je veux; par exemple
ping www.w3c.org j'obtient :
Réponse de 120.30.52.25 ...... nickel donc


la trace tcpdump d'un ping depuis windows

23:34:19.724811 IP 192.168.0.99.2570 > dns2-fr.swip.net.domain: 1+ A? www.w3c.org. (29)
23:34:19.789731 IP dns2-fr.swip.net.domain > 192.168.0.99.2570: 1 6/0/0 CNAME www.w3.org.,[|domain]
23:34:19.821518 IP 192.168.0.99 > web5.w3.org: icmp 40: echo request seq 3328
23:34:19.962643 IP web5.w3.org > 192.168.0.99: icmp 40: echo reply seq 3328
23:34:20.831117 IP 192.168.0.99 > web5.w3.org: icmp 40: echo request seq 3584
23:34:20.975672 IP web5.w3.org > 192.168.0.99: icmp 40: echo reply seq 3584
23:34:21.835922 IP 192.168.0.99 > web5.w3.org: icmp 40: echo request seq 3840
23:34:21.979700 IP web5.w3.org > 192.168.0.99: icmp 40: echo reply seq 3840
23:34:22.837501 IP 192.168.0.99 > web5.w3.org: icmp 40: echo request seq 4096
23:34:22.982663 IP web5.w3.org > 192.168.0.99: icmp 40: echo reply seq 4096
23:34:24.788854 arp who-has 192.168.0.99 tell 192.168.0.2
23:34:24.789250 arp reply 192.168.0.99 is-at 52:54:05:fd:b2:cc



En revanche si je tente un ftp sur ftp.nluug.nl cela se connecte nickel depuis toutes les machines

23:39:35.936016 IP ftp.nluug.nl.ftp > 192.168.0.99.2580: S 2735316414:2735316414(0) ack 3037426 win 5840 <mss1460,nop,nop,sackOK>
23:39:35.936543 IP 192.168.0.99.2580 > ftp.nluug.nl.ftp: . ack 1 win 8760
23:39:36.022003 IP ftp.nluug.nl.ftp > 192.168.0.99.2580: P 1:146(145) ack 1 win 5840
23:39:36.025915 IP ftp.nluug.nl.ftp > 192.168.0.99.2580: P 146:152(6) ack 1 win 5840
23:39:36.026267 IP 192.168.0.99.2580 > ftp.nluug.nl.ftp: . ack 152 win 8609
23:39:36.108040 IP ftp.nluug.nl.ftp > 192.168.0.99.2580: P 152:718(566) ack 1 win 5840
23:39:36.249242 IP 192.168.0.99.2580 > ftp.nluug.nl.ftp: . ack 718 win 8043
23:39:45.064895 IP 192.168.0.99.2580 > ftp.nluug.nl.ftp: P 1:17(16) ack 718 win 8043
23:39:45.145024 IP ftp.nluug.nl.ftp > 192.168.0.99.2580: . ack 17 win 5840
23:39:45.145075 IP ftp.nluug.nl.ftp > 192.168.0.99.2580: P 718:752(34) ack 17 win 5840
23:39:45.246474 IP 192.168.0.99.2580 > ftp.nluug.nl.ftp: . ack 752 win 8009
23:39:58.564812 IP 192.168.0.99.netbios-dgm > 192.168.0.255.netbios-dgm: NBT UDP PACKET(138)
23:39:58.790900 IP 192.168.0.99.2580 > ftp.nluug.nl.ftp: P 17:40(23) ack 752 win 8009
23:39:58.875919 IP ftp.nluug.nl.ftp > 192.168.0.99.2580: P 752:758(6) ack 40 win 5840
23:39:58.876852 IP ftp.nluug.nl.ftp > 192.168.0.99.2580: P 758:828(70) ack 40 win 5840
23:39:58.876889 IP ftp.nluug.nl.ftp > 192.168.0.99.2580: P 828:885(57) ack 40 win 5840
23:39:58.877324 IP 192.168.0.99.2580 > ftp.nluug.nl.ftp: . ack 828 win 7933
23:39:58.956877 IP ftp.nluug.nl.ftp > 192.168.0.99.2580: P 885:1060(175) ack 40 win 5840
23:39:58.957570 IP 192.168.0.99.2580 > ftp.nluug.nl.ftp: . ack 1060 win 7701


Mais depuis celle du Lan j'obtient un message de retour du type
illegal PORT command ou
probleme partage connexion internet ftp data connection must go to same host as control connection Connexion fermée par l'hôte distant suivant sur lequel serveur ftp je tente ....

23:40:03.874302 arp who-has 192.168.0.99 tell 192.168.0.2
23:40:03.874710 arp reply 192.168.0.99 is-at 52:54:05:fd:b2:cc
23:40:06.036860 IP 192.168.0.99.2580 > ftp.nluug.nl.ftp: P 40:65(25) ack 1060 win 7701
23:40:06.121869 IP ftp.nluug.nl.ftp > 192.168.0.99.2580: P 1060:1087(27) ack 65 win 5840
23:40:06.155712 IP 192.168.0.99.2580 > ftp.nluug.nl.ftp: P 65:71(6) ack 1087 win 7674
23:40:06.233836 IP ftp.nluug.nl.ftp > 192.168.0.99.2580: P 1087:1116(29) ack 71 win 5840
23:40:06.342031 IP 192.168.0.99.2580 > ftp.nluug.nl.ftp: . ack 1116 win 7645
23:40:08.567977 IP 192.168.0.99.netbios-dgm > 192.168.0.255.netbios-dgm: NBT UDP PACKET(138)



Désolé pour le grand post...
mais si vous avez des idées n'hésitez pas à m'en faire part... pasque la je suis dans le flou complet !!


Sébastien Gamier
  • # réponse?

    Posté par  . Évalué à 4.

    Pour les autorisations de flux http, https et ftp, je vois que l'autorisation du forward se fait sur la carte source eth0 au lieu de eth1. Le problème semble venir de là.

    La carte eth0 va vers le modem, et eth1 vers le réseau non? Il faut donc corriger les lignes

    ### Autorise le trafic DNS, HTTP, HTTPS,

    # FTP, POP, SMTP et SSH au travers de la passerelle :

    iptables -A FORWARD -s 192.168.0.0/24 -i eth0 -o ppp0 -p UDP --dport domain -j ACCEPT

    iptables -A FORWARD -s 192.168.0.0/24 -i eth0 -o ppp0 -p TCP --dport domain -j ACCEPT

    iptables -A FORWARD -s 192.168.0.0/24 -i eth0 -o ppp0 -p TCP --dport http -j ACCEPT

    iptables -A FORWARD -s 192.168.0.0/24 -i eth0 -o ppp0 -p TCP --dport https -j ACCEPT

    iptables -A FORWARD -s 192.168.0.0/24 -i eth0 -o ppp0 -p TCP --dport ftp -j ACCEPT

    iptables -A FORWARD -s 192.168.0.0/24 -i eth0 -o ppp0 -p TCP --dport pop3 -j ACCEPT

    iptables -A FORWARD -s 192.168.0.0/24 -i eth0 -o ppp0 -p TCP --dport smtp -j ACCEPT

    iptables -A FORWARD -s 192.168.0.0/24 -i eth0 -o ppp0 -p TCP --dport ssh -j ACCEPT



    En remplaçant eth0 par eth1

    ça devrait aider beaucoup.
    • [^] # Re: réponse?

      Posté par  . Évalué à 0.

      J'essaye ca dès ce soir !

      Mais (pour ma compréhension perso) comment est-il possible que seul google passe avec un firewall comme celui que j'ai ?

      Ils ont qq chose de spéciaux leurs serveurs ?


      Une autre petite chose.. depuis mon lan je peux accéder au ftp, ping et voir les pages servies par Apache de mon serveur ... jusque la c'est ce que je veux.. mais je peux le faire depuis les DEUX cartes réseaux.

      C'est à dire en notant 192.168.0.1 OU 192.168.0.2 ... alors que sur 192.168.0.1 c'est mon ADSL !?

      Sébastien
    • [^] # Re: réponse?

      Posté par  . Évalué à 0.

      Bon ben ... ca n'aide malheureusement pas beaucoup :-(

      c'est la exactement la même chose... à se demander même si cela agit !!

      si je fais plog je vois cela :(entre autres)
      c'est grave ? Ca a un rapport ?

      pppd[12331]: kernel does not support PPP filtering


      Du coup je me penche sur la config de mes interfaces réseaux... histoire de

      j'ai cela

      ####################################################
      # /etc/network/interfaces
      # Fichier de configuration des interfaces réseau
      # Plus d'informations dans "man interfaces"

      # L'interface "loopback"
      auto lo
      iface lo inet loopback
      # Activation de la fonction de forwarding IP au niveau du noyau
      up echo "1" > /proc/sys/net/ipv4/ip_forward

      # L'interface "eth1" connectée au réseau local
      auto eth1
      iface eth1 inet static
      address 192.168.0.2
      netmask 255.255.255.0
      broadcast 192.168.0.255


      auto dsl-provider
      iface dsl-provider inet ppp
      provider dsl-provider

      # please do not modify the following line
      pre-up /sbin/ifconfig eth0 up # line maintained by pppoeconf


      ensuite je lance /etc/init.d/networking start

      et la ....... boum j'ai à nouveau
      route -n qui donne

      Table de routage IP du noyau
      Destination Passerelle Genmask Indic Metric Ref Use Iface
      213.103.0.1 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0
      192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
      192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
      0.0.0.0 213.103.0.1 0.0.0.0 UG 0 0 0 ppp0


      du coup c'est pour cela que je fais
      route del -net 192.168.0.0 netmask 255.255.255.0 eth0
      dans mon fichier firewall

      Le plus agacant c'est que même si je fais une config à faire palir un windows (tellement c'est grand ouvert comme une fenêtre :-) ben cela ne fonctionne pas !!

      voila mon 'firemilk' comme je l'ai appelé (y a des fois je ferais mieux de dormir !!)



      #!/bin/sh
      #Supprimer TOUT les filtrages d'IPTABLES
      #---------------------------------------
      iptables -t filter -F
      iptables -t filter -X
      iptables -t nat -F
      iptables -t nat -X

      #on accepte tout
      iptables -t filter -P INPUT ACCEPT
      iptables -t filter -P OUTPUT ACCEPT
      iptables -t filter -P FORWARD ACCEPT
      iptables -t nat -P PREROUTING ACCEPT
      iptables -t nat -P POSTROUTING ACCEPT
      iptables -t nat -P OUTPUT ACCEPT

      # Translation d'adresse pour tout ce qui sort vers l'internet
      iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE



      ben même avec ca.. je n'ai accès QUE et UNIQUEMENT à google..

      sympa remarque je peux déja faire des recherches sur les pc du lan ..... grrrrrrrr

      Sébastien

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.