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 :
- #!/bin/bash
- ## Regles Iptables ##
- # Paramétrage des variables
- LAN_INT=eth0 ; # Interface réseau interne
- LAN_IP=192.168.0.1 ; # IP interne
- LAN_NWK=192.168.0.0/24 ; # Réseau interne
- LAN_BDCST=192.168.0.255 ; # Broadcast interne
- WAN_INT=eth1 ; # Interface réseau externe
- WAN_IP=192.168.1.1 ; # IP externe
- WAN_NWK=192.168.1.0/24 ; # Réseau externe
- # Init de la table FILTER
- echo "+ Initialisation de la table Filter"
- iptables -t filter -F
- iptables -t filter -X
- iptables -t filter -P INPUT DROP
- iptables -t filter -P OUTPUT DROP
- iptables -t filter -P FORWARD DROP
- # Init de la table NAT
- echo "+ Initialisation de la 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
- # 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
- # Boucle reseau local
- echo "+ Regles du réseau local ($LAN_INT - $LAN_IP - $LAN_NWK)"
- echo "++ Connexion firewall <-> réseau"
- 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
- echo "++ Connexion firewall <-> broadcast réseau"
- iptables -t filter -A OUTPUT -o $LAN_INT -s $LAN_IP -d $LAN_BDCST -p all -j ACCEPT
- iptables -t filter -A INPUT -i $LAN_INT -s $LAN_BDCST -d $LAN_IP -p all -j ACCEPT
- # 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
- # Conntrack
- echo "+ Activation du suivi de connexion"
- ## toute connexion LAN --> NET acceptees
- 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
- ## connexions etablies ou en relation NET --> LAN acceptees
- 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
- # NAT
- echo "+ Activation du NAT et IP masquerading"
- echo "1" > /proc/sys/net/ipv4/ip_forward
- iptables -t nat -A POSTROUTING -o $WAN_INT -s $LAN_NWK -j MASQUERADE
- # Services sur la machine locale (FTP, SSH, HTTP)
- echo "+ Ouverture des ports des services locaux"
- echo "++ FTP"
- iptables -A INPUT -m state --state NEW -p tcp --dport 20 -j ACCEPT
- iptables -A INPUT -m state --state NEW -p tcp --dport 21 -j ACCEPT
- echo "++ SSH"
- iptables -A INPUT -m state --state NEW -p tcp --dport 22 -j ACCEPT
- echo "++ HTTP"
- 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 :
- login$ nmap localhost
- Starting nmap 3.81 ( http://www.insecure.org/nmap/ ) at 2005-09-28 16:54 CEST
- Interesting ports on localhost (127.0.0.1):
- (The 1656 ports scanned but not shown below are in state: closed)
- PORT STATE SERVICE
- 22/tcp open ssh
- 80/tcp open http
- 139/tcp open netbios-ssn
- 443/tcp open https
- 445/tcp open microsoft-ds
- 3306/tcp open mysql
- 6000/tcp open X11
- 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 ...
Message édité par Moa_ le 28-09-2005 à 17:00:37