[Iptables] script pour passerelle

script pour passerelle [Iptables] - Linux et OS Alternatifs

Marsh Posté le 28-09-2005 à 16:58:49    

Bonjour,
après avoir lu bon nombre de tuto et docs sur iptables et la sécurité, je suis arrivé à un script adapté à mon config, à savoir :
Internet <-----> ADSL Gateway (modem/switch) <--->  [eth1] PC passerelle [eth0] <-----> réseau
 
ADSL Gateway : 192.168.1.2
eth1 PC : 192.168.1.1
eth0 PC : 192.168.0.1
réseau : adresses en 192.168.0.xxx
 
Voici le script iptables que j'ai lancé dessus:

Code :
  1. #!/bin/bash
  2. ## Regles Iptables ##
  3. # Paramétrage des variables
  4. LAN_INT=eth0  ; # Interface réseau interne
  5. LAN_IP=192.168.0.1 ; # IP interne
  6. LAN_NWK=192.168.0.0/24 ; # Réseau interne
  7. LAN_BDCST=192.168.0.255 ; # Broadcast interne
  8. WAN_INT=eth1  ; # Interface réseau externe
  9. WAN_IP=192.168.1.1 ; # IP externe
  10. WAN_NWK=192.168.1.0/24 ; # Réseau externe
  11. # Init de la table FILTER
  12. echo "+ Initialisation de la table Filter"
  13. iptables -t filter -F
  14. iptables -t filter -X
  15. iptables -t filter -P INPUT DROP
  16. iptables -t filter -P OUTPUT DROP
  17. iptables -t filter -P FORWARD DROP
  18. # Init de la table NAT
  19. echo "+ Initialisation de la table NAT"
  20. iptables -t nat -F
  21. iptables -t nat -X
  22. iptables -t nat -P PREROUTING ACCEPT
  23. iptables -t nat -P POSTROUTING ACCEPT
  24. iptables -t nat -P OUTPUT ACCEPT
  25. # Boucle locale
  26. echo "+ Regles du localhost"
  27. iptables -t filter -A OUTPUT -o lo -p all -j ACCEPT
  28. iptables -t filter -A INPUT  -i lo -p all -j ACCEPT
  29. # Boucle reseau local
  30. echo "+ Regles du réseau local ($LAN_INT - $LAN_IP - $LAN_NWK)"
  31. echo "++ Connexion firewall <-> réseau"
  32. iptables -t filter -A OUTPUT -o $LAN_INT -d $LAN_NWK -p all -j ACCEPT
  33. iptables -t filter -A INPUT  -i $LAN_INT -s $LAN_NWK -p all -j ACCEPT
  34. echo "++ Connexion firewall <-> broadcast réseau"
  35. iptables -t filter -A OUTPUT -o $LAN_INT -s $LAN_IP -d $LAN_BDCST -p all -j ACCEPT
  36. iptables -t filter -A INPUT  -i $LAN_INT -s $LAN_BDCST -d $LAN_IP -p all -j ACCEPT
  37. # Acces de la Passerelle a Internet
  38. echo "+ Regles pour Internet ($WAN_INT - $WAN_IP - $WAN_NWK)"
  39. iptables -t filter -A OUTPUT -o $WAN_INT -s $WAN_IP -d $WAN_NWK -p all -m state --state ! INVALID      -j ACCEPT
  40. iptables -t filter -A INPUT  -i $WAN_INT -s $WAN_NWK -d $WAN_IP -p all -m state --state ESTABLISHED,RELATED -j ACCEPT
  41. # Conntrack
  42. echo "+ Activation du suivi de connexion"
  43. ## toute connexion LAN --> NET acceptees
  44. iptables -t filter -A FORWARD -i $LAN_INT -o $WAN_INT -s $LAN_NWK -d 0.0.0.0/0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
  45. ## connexions etablies ou en relation NET --> LAN acceptees
  46. iptables -t filter -A FORWARD -i $WAN_INT -o $LAN_INT -s 0.0.0.0/0 -d $LAN_NWK -m state --state ESTABLISHED,RELATED -j ACCEPT
  47. # NAT
  48. echo "+ Activation du NAT et IP masquerading"
  49. echo "1" > /proc/sys/net/ipv4/ip_forward
  50. iptables -t nat -A POSTROUTING -o $WAN_INT -s $LAN_NWK -j MASQUERADE
  51. # Services sur la machine locale (FTP, SSH, HTTP)
  52. echo "+ Ouverture des ports des services locaux"
  53. echo "++ FTP"
  54. iptables -A INPUT -m state --state NEW -p tcp --dport 20 -j ACCEPT
  55. iptables -A INPUT -m state --state NEW -p tcp --dport 21 -j ACCEPT
  56. echo "++ SSH"
  57. iptables -A INPUT -m state --state NEW -p tcp --dport 22 -j ACCEPT
  58. echo "++ HTTP"
  59. iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT


 
Une fois ce script exécuté, les pc du réseau ont accès à internet, mais pas le pc passerelle, alors qu'avant de lancer le script il l'avait.
 
Pour la boucle réseau local j'ai modifié ces lignes :  
iptables -t filter -A OUTPUT -o $LAN_INT -d $LAN_NWK -p all -j ACCEPT
iptables -t filter -A INPUT  -i $LAN_INT -s $LAN_NWK -p all -j ACCEPT
 
que j'avais initialement écrit :  
iptables -t filter -A OUTPUT -o $LAN_INT -s $LAN_IP -d $LAN_NWK -p all -j ACCEPT
iptables -t filter -A INPUT  -i $LAN_INT -s $LAN_NWK -d $LAN_IP -p all -j ACCEPT
 
parce que les autres pc du réseau ne pouvaient à pas accéder au pc passerelle (ping et samba)
je vois pas pourquoi ces précisions font que la communication est refusée entre le serveur et les pc du réseau :??: .
 
Autre détail, la "ADSL Gateway" Linksys est administrable par page web, on peut y configurer son IP, fonctions DHCP, VPN, port forwarding, firewall... etc
j'ai désactivé toutes les fonctions qui sont assurées par la passerelle PC.
 
sur le Pc passerelle :

Code :
  1. login$ nmap localhost
  2. Starting nmap 3.81 ( http://www.insecure.org/nmap/ ) at 2005-09-28 16:54 CEST
  3. Interesting ports on localhost (127.0.0.1):
  4. (The 1656 ports scanned but not shown below are in state: closed)
  5. PORT     STATE SERVICE
  6. 22/tcp   open  ssh
  7. 80/tcp   open  http
  8. 139/tcp  open  netbios-ssn
  9. 443/tcp  open  https
  10. 445/tcp  open  microsoft-ds
  11. 3306/tcp open  mysql
  12. 6000/tcp open  X11
  13. Nmap finished: 1 IP address (1 host up) scanned in 0.284 seconds


 
je ne vois pas pourquoi certains ports sont ouverts alors que je ne les ai pas autorisés  :??:  
 
Puissiez-vous apporter des réponses à mes réponses ... :jap:


Message édité par Moa_ le 28-09-2005 à 17:00:37
Reply

Marsh Posté le 28-09-2005 à 16:58:49   

Reply

Marsh Posté le 28-09-2005 à 17:03:36    

tu scan localhost, ie 127.0.0.1, ie ton interface lo


 # Boucle locale
 echo "+ Regles du localhost"
 iptables -t filter -A OUTPUT -o lo -p all -j ACCEPT
 iptables -t filter -A INPUT  -i lo -p all -j ACCEPT


Donc c'est normal que tous ces ports soient ouvert [:spamafote]

Reply

Marsh Posté le 28-09-2005 à 17:09:40    

hmmhmmm  :whistle: flute ...
en fait il me sort quelques ports de ce résultat si je fais un nmap depuis internet sur cette ip, et meme pas ceux que j'ai autorisé :/

Reply

Marsh Posté le 28-09-2005 à 17:38:52    

J'ai supprimé ce que j'ai mis en gras :
# # Acces de la Passerelle a Internet
# echo "+ Regles pour Internet ($WAN_INT - $WAN_IP - $WAN_NWK)"
# iptables -t filter -A OUTPUT -o $WAN_INT -s $WAN_IP -d $WAN_NWK -p all -m state --state ! INVALID         -j ACCEPT
# iptables -t filter -A INPUT  -i $WAN_INT -s $WAN_NWK -d $WAN_IP -p all -m state --state ESTABLISHED,RELATED -j ACCEPT
 
et maintenant le pc passerelle a accès à internet ... mais je comprends pas pourquoi, car ce que j'ai supprimé c'est ce qu'il recoit ou envoit sur le réseau où est l'adsl gateway


Message édité par Moa_ le 28-09-2005 à 17:40:00
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed