Iptables

Bonsoir,
Je dois configurer une passerelle sur un serveur debian, et je voudrai votre avis sur mon fichier iptables avant de l’installer… (je ne peux pas me connecter dessus depuis chez moi, je n’aurai accès à la machine que depuis le réseau qui se trouve derrière celle ci… et n’aurai donc pas internet pour faire mes recherches si mon iptables ne fonctionne pas :frowning:

donc, elle réccupère internet par wlan0
elle est connecté au réseau par eth0

wlan0 est en IP fixe, j’ai installé un serveur dhcp qui écoute sur eth0
eth0 à l’adresse 192.168.0.254
tout ça fonctionnait, et apriori, la passerelle se connecte bien à internet.
voici mon iptables que j’ai fait à partir d’exemples et tutos sur le net

[code]#!/bin/sh

#Remise à zero

iptables -F
iptables -t nat -F
iptables -X
iptables -t nat -X

#Regles par defaut
iptables -P INPUT -j DROP
iptables -P FORWARD -j DROP
iptables -P OUTPUT -j ACCEPT

on rejette toutes les connexions entrantes

iptables -A INPUT -j REJECT

Interface locale

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

on accepte les packets entrants relatifs à des connexions déjà établies

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

on autorise les connexions FTP

iptables -A INPUT -m state --state NEW -p tcp --dport 20:21 -j ACCEPT

on autorise les connexions en SSH

iptables -A INPUT -m state --state NEW -p tcp --dport 22 -j ACCEPT

on autorise le ping

iptables -A INPUT -p icmp -j ACCEPT

on autorise tout sur le réseau local

iptables -A INPUT -s 192.168.0.0/24 -j ACCEPT
iptables -A OUTPUT -d 192.168.0.0/24 -j ACCEPT

iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
[/code]

2 questions :

  1. manque t’il des choses dans iptables, la connection internet fonctionnera t’elle sur les clients ?
  2. faut il faire un pont sur les 2 cartes réseau ?

Merci pour votre aide :blush:

Moi, j’inverserais la “remise à zéro” et les “règles par défaut” pour qu’il n’y ait jamais de “trou” au moment ou tu redémarres le script par exemple.

Je pense que “iptables -A INPUT -j REJECT” fait double emploi avec la règle par défaut qui fait un DROP sur tous les paquets entrants - A confirmer. :017

Sur ma machine, pour que le ftp fonctionne avec le suivi de connexion, j’ai du charger un module : nf_conntrack_ftp qui n’était pas chargé par défaut.
J’ai donc rajouté dans le script une ligne : modprobe nf_conntrack_ftp

Au niveau de la syntaxe, tu ne précises jamais tes interfaces d’entrée et de sortie (-i et -o eth/wlan). Je ne sais pas si ca va marcher, ca… :017

Pour le pont, je suppose que tu demandes si c’est nécessaire pour “relier les 2 interfaces” lan et wan ? Si oui, alors non, pas besoin.

Oui, bonne idée :blush:

La regle NAT te semble OK ? c’est elle qui me permet de sortir c’est bien ça ?

le nouveau code :

[code]#!/bin/sh

#Regles par defaut
iptables -P INPUT -j DROP
iptables -P FORWARD -j DROP
iptables -P OUTPUT -j ACCEPT

#Remise à zero
iptables -F
iptables -t nat -F
iptables -X
iptables -t nat -X

on rejette toutes les connexions entrantes

iptables -A INPUT -j REJECT

Interface locale

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

on accepte les packets entrants relatifs à des connexions déjà établies

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

on autorise les connexions FTP

iptables -A INPUT -m state --state NEW -p tcp --dport 20:21 -j ACCEPT

on autorise les connexions en SSH

iptables -A INPUT -m state --state NEW -p tcp --dport 22 -j ACCEPT

on autorise le ping

iptables -A INPUT -p icmp -j ACCEPT

on autorise tout sur le réseau local

iptables -A INPUT -s 192.168.0.0/24 -j ACCEPT
iptables -A OUTPUT -d 192.168.0.0/24 -j ACCEPT

iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward[/code]

Attends un peu, j’en suis pas encore là :mrgreen: je débute, alors je suis lent :blush:

Oops pardon :blush:

Voila, j’ai peut être (sûrement) oublié des choses, attends d’autres avis, il y a des experts dans ce domaine, ici :041 J’ai édité mon premier post à chaque fois.

[quote=“vohu”]Oui, bonne idée :blush:

La regle NAT te semble OK ? c’est elle qui me permet de sortir c’est bien ça ?

le nouveau code :

[code]#!/bin/sh

#Regles par defaut
iptables -P INPUT -j DROP
iptables -P FORWARD -j DROP
iptables -P OUTPUT -j ACCEPT

#Remise à zero
iptables -F
iptables -t nat -F
iptables -X
iptables -t nat -X

on rejette toutes les connexions entrantes

iptables -A INPUT -j REJECT

[quote]
Inutile avec la politique par défaut: «iptables -P INPUT -j DROP»

[quote]

Interface locale

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

on accepte les packets entrants relatifs à des connexions déjà établies

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

on autorise les connexions FTP

iptables -A INPUT -m state --state NEW -p tcp --dport 20:21 -j ACCEPT

on autorise les connexions en SSH

iptables -A INPUT -m state --state NEW -p tcp --dport 22 -j ACCEPT

on autorise le ping

iptables -A INPUT -p icmp -j ACCEPT

on autorise tout sur le réseau local

iptables -A INPUT -s 192.168.0.0/24 -j ACCEPT
iptables -A OUTPUT -d 192.168.0.0/24 -j ACCEPT

iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward[/code][/quote]
Tu n’as rien prévu pour le forward sauf la politique par défaut donc tu bloques tout. Pour le moment ça n’est pas une passerelle.

J’avais raté l’essentiel :005