Régles IPTables

Forum sur la sécurité des réseaux, la configuration des firewalls, la mise en place de protections contre les attaques, de DMZ, de systèmes anti-intrusion ...

Modérateur: modos Ixus

Régles IPTables

Messagepar Chardhoo » 20 Nov 2005 11:48

Bonjour

Je souhaiterais connaitre la syntaxe pour configurer mon client sur lan avec iptables en sachant que je passe par routeur (192.168.5.1) en eth0 (192.168.5.4).
Je suis déja aller voir des tutos mais ils n' expliqués que la configuration du serveur et non celle du client...

[POSTE 3{192.168.5.4}]------[HUB]----->[PASSERELLE{192.168.5.1}]-------->(((INTERNET)))

[edit]
sudo iptables -t filter -A INPUT -i eth0 -p icmp -j ACCEPT
sudo iptables -t filter -A OUTPUT -o eth0 -p icmp -j ACCEPT

en faisant cela j'arrive a pinguer ma passerelle mais n' arrive toujours pas à avoir internet !
malgré cela :

sudo iptables -t filter -A INPUT -i eth0 -p tcp -s 192.168.5.1 -d 192.168.5.4 --dport 80 -j ACCEPT
sudo iptables -t filter -A OUTPUT -o eth0 -p tcp -s 192.168.5.4 -d 192.168.5.1 --sport 80 -j ACCEPT

jai même essayer d'ouvrir tout mes ports 0 à 1024 j'arrive toujours pas à pinger google.fr
mais quand je remet :
sudo iptables -t filter -P INPUT ACCEPT
sudo iptables -t filter -P OUTPUT ACCEPT

tout refonctionne !
Je doit faire quoi ??? :?
Chardhoo
Quartier Maître
Quartier Maître
 
Messages: 12
Inscrit le: 26 Juil 2005 23:12

Messagepar jcayssol » 20 Nov 2005 18:36

Bonjour,

Je pense qu'il faut activer le forward, ( echo 1 > /proc/sys/net/ipv4/ip_forward ) ainsi que l'ip masquerade pour réaliser de la translation d'adresses car vous voulez faire du nat.

Google est votre amis.

Une piste :
http://www.funix.org/fr/linux/ipmasq.htm

Cordialement
Avatar de l’utilisateur
jcayssol
Major
Major
 
Messages: 72
Inscrit le: 20 Jan 2004 01:00

Messagepar Chardhoo » 20 Nov 2005 18:43

je ne veux pas partagé ma connection je veux juste faire ce que jai dit au dessus
c'est la livebox la passerelle les autres machines sont connecté dessus moi je veut juste configurer mon netfilter mais quand je le fait le mieux que je puisse faire c'est de pingué la livebox mais je ne peut pas aller sur internet

depuis toute la journé ji suis dessus il disent comment protegé un firewall mais pas les machines distantes
si je veut blocké un port je ne peut pas ?
Chardhoo
Quartier Maître
Quartier Maître
 
Messages: 12
Inscrit le: 26 Juil 2005 23:12

Messagepar jcayssol » 20 Nov 2005 18:51

il faut ajouter la default gateway alors

"ip route add default gw 192.168.5.1"
Avatar de l’utilisateur
jcayssol
Major
Major
 
Messages: 72
Inscrit le: 20 Jan 2004 01:00

Messagepar Chardhoo » 20 Nov 2005 18:58

c'est déja fait avec le dns tout fonctionne
bon je pense que je vais devoir rester avec firestarter c'est dommage...
en INPUT ET OUTPUT DROP il fonctionne il arrive à mettre cette syntaxe

mais je comprend pas moi je n'est pas a faire de NAT ni de FORWARDING il n'y a que la livebox

je récapépéte :

tout fonctionne

sudo iptables -t filter -P INPUT DROP
sudo iptables -t filter -P OUTPUT DROP
sudo iptables -t filter -P FORWARD DROP

sudo iptables -t filter -A INPUT -i eth0 -p icmp -j ACCEPT
sudo iptables -t filter -A OUTPUT -o eth0 -p icmp -j ACCEPT

ping 192.168.5.1 ---> ok il pong

sudo iptables -t filter -A INPUT -i eth0 -p tcp --dport 0:1024 -j ACCEPT
sudo iptables -t filter -A OUTPUT -o eth0 -p tcp --sport 0:1024 -J ACCEPT

ping google.fr ------>kedal !

j'essaie de construire mes régles pour pouvoir comprendre par moi même
et cela ne fonctionne pas
Chardhoo
Quartier Maître
Quartier Maître
 
Messages: 12
Inscrit le: 26 Juil 2005 23:12

Messagepar jcayssol » 20 Nov 2005 19:05

Il faudrait éssayer avec ethereal ou tcpdump pour voir si le ping revient bien déja sur la machine ...pour être certain qu'il n'y a pas un pb sur la livebox.

En virant toutes les regles de iptables ? (iptables -F) tj le meme pb ?

Votre premier post n'était pas clair concernant une livebox, un client ?, et la regle iptables du serveur ? poste utilisateur ?.
Apres 3 posts on arrive à des précisions.

Cordialement.
Avatar de l’utilisateur
jcayssol
Major
Major
 
Messages: 72
Inscrit le: 20 Jan 2004 01:00

Re: Régles IPTables

Messagepar antolien » 20 Nov 2005 19:15

En premier lieu, il faut comprendre les règles iptables.

si j'ai bien compris tu veux juste protéger la machine locale. la passerelle étant la livebox qui se charge du partage de la connexion.

si c'est ça, en effet c'est juste INPUT et OUTPUT, et tu souhaites juste fermer les ports en entrée, et autoriser des connexions sortantes.

exemple en disant que la policy est à DROP partout :

1- Chaine OUTPUT
#autoriser l'initialisation des connexions sortantes a destination du port 80,443,21 et dns.

iptables -A OUTPUT -s 192.168.5.1 -o eth0 -m multiport -p tcp --dport 80,443,21 -m state --state NEW -j ACCEPT

# le dns

iptables -A OUTPUT -s 192.168.5.1 -o eth0 -p udp --dport 53 -m state --state NEW -j ACCEPT

2- Chaine INPUT
#une connexion s'établie, il faut donc autoriser les paquets retours

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


normalement c'est suffisant, même si par contre on peut être plus sympa avec l'icmp
Il faut bien comprendre que si tu initie une connexion, il faut que la machine réponde, c'est pourquoi on parle de "STATE" qui correspondent a des flags mis en cache dans le conntrack.

c'est là qu'intervient la table INPUT, avec les états "etablis", "en relation" (ftp)
Avatar de l’utilisateur
antolien
Amiral
Amiral
 
Messages: 3134
Inscrit le: 31 Août 2002 00:00

Messagepar Chardhoo » 20 Nov 2005 19:26

chardhoo@nf7:~$ sudo iptables -L
Chain INBOUND (1 references)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT udp -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT all -- nf7.168.5.4 anywhere
ACCEPT all -- WANADOO-54E5 anywhere
LSI all -- anywhere anywhere

Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT tcp -- WANADOO-54E5 anywhere tcp flags:!SYN,RST,ACK/SYN
ACCEPT udp -- WANADOO-54E5 anywhere
ACCEPT all -- anywhere anywhere
ACCEPT icmp -- anywhere anywhere limit: avg 10/sec burst 5
DROP all -- anywhere 255.255.255.255
DROP all -- anywhere 192.168.5.255
DROP all -- BASE-ADDRESS.MCAST.NET/8 anywhere
DROP all -- anywhere BASE-ADDRESS.MCAST.NET/8
DROP all -- 255.255.255.255 anywhere
DROP all -- anywhere 0.0.0.0
DROP all -- anywhere anywhere state INVALID
LSI all -f anywhere anywhere limit: avg 10/min burst 5
INBOUND all -- anywhere anywhere
LOG_FILTER all -- anywhere anywhere
LOG all -- anywhere anywhere LOG level info prefix `Unknown Input'

Chain FORWARD (policy DROP)
target prot opt source destination
ACCEPT icmp -- anywhere anywhere limit: avg 10/sec burst 5
LOG_FILTER all -- anywhere anywhere
LOG all -- anywhere anywhere LOG level info prefix `Unknown Forward'

Chain LOG_FILTER (5 references)
target prot opt source destination

Chain LSI (2 references)
target prot opt source destination
LOG_FILTER all -- anywhere anywhere
LOG tcp -- anywhere anywhere tcp flags:SYN,RST,ACK/SYN limit: avg 1/sec burst 5 LOG level info prefix `Inbound '
DROP tcp -- anywhere anywhere tcp flags:SYN,RST,ACK/SYN
LOG tcp -- anywhere anywhere tcp flags:FIN,SYN,RST,ACK/RST limit: avg 1/sec burst 5 LOG level info prefix `Inbound '
DROP tcp -- anywhere anywhere tcp flags:FIN,SYN,RST,ACK/RST
LOG icmp -- anywhere anywhere icmp echo-request limit: avg 1/sec burst 5 LOG level info prefix `Inbound '
DROP icmp -- anywhere anywhere icmp echo-request
LOG all -- anywhere anywhere limit: avg 5/sec burst 5 LOG level info prefix `Inbound '
DROP all -- anywhere anywhere

Chain LSO (0 references)
target prot opt source destination
LOG_FILTER all -- anywhere anywhere
LOG all -- anywhere anywhere limit: avg 5/sec burst 5 LOG level info prefix `Outbound '
REJECT all -- anywhere anywhere reject-with icmp-port-unreachable

Chain OUTBOUND (1 references)
target prot opt source destination
ACCEPT icmp -- anywhere anywhere
ACCEPT tcp -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT udp -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT all -- anywhere anywhere

Chain OUTPUT (policy DROP)
target prot opt source destination
ACCEPT tcp -- nf7.168.5.4 WANADOO-54E5 tcp dpt:domain
ACCEPT udp -- nf7.168.5.4 WANADOO-54E5 udp dpt:domain
ACCEPT all -- anywhere anywhere
DROP all -- BASE-ADDRESS.MCAST.NET/8 anywhere
DROP all -- anywhere BASE-ADDRESS.MCAST.NET/8
DROP all -- 255.255.255.255 anywhere
DROP all -- anywhere 0.0.0.0
DROP all -- anywhere anywhere state INVALID
OUTBOUND all -- anywhere anywhere
LOG_FILTER all -- anywhere anywhere
LOG all -- anywhere anywhere LOG level info prefix `Unknown Output'


au dessus c'est la régle de firestarter...(je me rend compte que je n'y connais kedal)

J'ai trouvé en rusant avec firestarter il faut en faite créer la régle:
sudo iptables -t filter -A OUTPUT -p all -j ACCEPT
"" "" INPUT ""

mais si je comprend bien il n'y a plus de sécurité si j'autorise tout en INPUT ! ?
:cry:

Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT tcp -- WANADOO-54E5 anywhere
ACCEPT udp -- WANADOO-54E5 anywhere
ACCEPT icmp -- anywhere anywhere
ACCEPT all -- anywhere anywhere

Chain FORWARD (policy DROP)
target prot opt source destination

Chain OUTPUT (policy DROP)
target prot opt source destination
ACCEPT tcp -- nf7.168.5.4 WANADOO-54E5
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
Chardhoo
Quartier Maître
Quartier Maître
 
Messages: 12
Inscrit le: 26 Juil 2005 23:12

Messagepar antolien » 20 Nov 2005 19:32

Chardhoo a écrit:sudo iptables -t filter -A INPUT -i eth0 -p tcp --dport 0:1024 -j ACCEPT
sudo iptables -t filter -A OUTPUT -o eth0 -p tcp --sport 0:1024 -J ACCEPT

j'essaie de construire mes régles pour pouvoir comprendre par moi même
et cela ne fonctionne pas


il ne faut pas oublier que netfilter dispose de sa table conntrack. m'enfin, a la mode ipchains ça marche aussi, du moment que l'on ne fait pas l'inverse !

-----------
iptables -t filter -A INPUT -i eth0 -p tcp --dport 0:1024 -j ACCEPT
iptables -t filter -A OUTPUT -o eth0 -p tcp --sport 0:1024 -J ACCEPT
----------
alors là on autorise en entrée les ports de destination inferieurs à 1024 et en sortie les ports de destination inferieurs à 1024

alors qu'une connexion tcp, c'est typiquement , en sortie un port source superieur à 1024, destination un port inferieur à 1024
on obtiendrais alors :
#paquet source
iptables -t filter -A OUTPUT -o eth0 -p tcp --sport 0:1024 -J ACCEPT
#paquet retour
iptables -t filter -A INPUT -i eth0 -p tcp --dport 1025:65535 -j ACCEPT

mais c'est dommage de se passer du statefull...
Avatar de l’utilisateur
antolien
Amiral
Amiral
 
Messages: 3134
Inscrit le: 31 Août 2002 00:00

Messagepar antolien » 20 Nov 2005 19:37

Chardhoo a écrit:"

mais si je comprend bien il n'y a plus de sécurité si j'autorise tout en INPUT ! ?
:cry:



lis mon message plus haut :
Antolien a écrit:"
exemple en disant que la policy est à DROP partout :

1- Chaine OUTPUT
#autoriser l'initialisation des connexions sortantes a destination du port 80,443,21 et dns.
iptables -A OUTPUT -s 192.168.5.1 -o eth0 -m multiport -p tcp --dport 80,443,21 -m state --state NEW -j ACCEPT
# le dns
iptables -A OUTPUT -s 192.168.5.1 -o eth0 -p udp --dport 53 -m state --state NEW -j ACCEPT
2- Chaine INPUT
#une connexion s'établie, il faut donc autoriser les paquets retours
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

normalement c'est suffisant, même si par contre on peut être plus sympa avec l'icmp
Il faut bien comprendre que si tu initie une connexion, il faut que la machine réponde, c'est pourquoi on parle de "STATE" qui correspondent a des flags mis en cache dans le conntrack.

c'est là qu'intervient la table INPUT, avec les états "etablis", "en relation" (ftp)


Tu es bien obligé d'autoriser les paquets retours , sans tout ouvrir puisque tu as là un joli netfiler.
Avatar de l’utilisateur
antolien
Amiral
Amiral
 
Messages: 3134
Inscrit le: 31 Août 2002 00:00

Messagepar Chardhoo » 20 Nov 2005 19:39

pk je me passerait du statefull ?
moi j'essaie de configurer comme il faut pour étre ""secure"" car je suis newbie en sécurité reseaux.
en faite il faut faire les régles meticuleusement car si je met ALL au dessus d'une régle la régle qui etait au dessus ne tient plus en compte si j'ai bien compris ?

je n'est pas de sortit eth1 je n'est qu'une sortie eth0 et donc si j'accepte cette connection comme ca :

[root@phoenix /]# iptables -t filter -A OUTPUT -o eth0 -s 192.168.5.0/24 -d 192.168.5.0/24 -j ACCEPT
[root@phoenix /]# iptables -t filter -A INPUT -i eth0 -s 192.168.5.0/24 -d 192.168.5.0/24 -j ACCEPT

j'ouvre tout les ports en appliquant ces commandes à tout le reseau et donc je peut faire une croix au filtrage de ma machine parqu'elle passe par eth0 ---> livebox mais c'est la seule facon qu'elle reconnaisse la livebox
nan ? :(

(je part apprendre d'avantage sur ALL ) :D
Dernière édition par Chardhoo le 20 Nov 2005 19:45, édité 1 fois au total.
Chardhoo
Quartier Maître
Quartier Maître
 
Messages: 12
Inscrit le: 26 Juil 2005 23:12

Messagepar antolien » 20 Nov 2005 19:41

alors lis mes messages plus haut !
Avatar de l’utilisateur
antolien
Amiral
Amiral
 
Messages: 3134
Inscrit le: 31 Août 2002 00:00

Messagepar antolien » 20 Nov 2005 20:02

Chardhoo a écrit:pk je me passerait du statefull ?
moi j'essaie de configurer comme il faut pour étre ""secure"" car je suis newbie en sécurité reseaux.
en faite il faut faire les régles meticuleusement car si je met ALL au dessus d'une régle la régle qui etait au dessus ne tient plus en compte si j'ai bien compris ?

je n'est pas de sortit eth1 je n'est qu'une sortie eth0 et donc si j'accepte cette connection comme ca :

[root@phoenix /]# iptables -t filter -A OUTPUT -o eth0 -s 192.168.5.0/24 -d 192.168.5.0/24 -j ACCEPT
[root@phoenix /]# iptables -t filter -A INPUT -i eth0 -s 192.168.5.0/24 -d 192.168.5.0/24 -j ACCEPT

j'ouvre tout les ports en appliquant ces commandes à tout le reseau et donc je peut faire une croix au filtrage de ma machine parqu'elle passe par eth0 ---> livebox mais c'est la seule facon qu'elle reconnaisse la livebox
nan ? :(

(je part apprendre d'avantage sur ALL ) :D


si tu précises -d 192.168.5.0/24 ta règle autorise seulement les connexion à destination/source de cette plage ip. j'imagine que tu veux aller vers d'autres adresses ip...
Avatar de l’utilisateur
antolien
Amiral
Amiral
 
Messages: 3134
Inscrit le: 31 Août 2002 00:00

Messagepar Chardhoo » 20 Nov 2005 20:05

exemple en disant que la policy est à DROP partout :

1- Chaine OUTPUT
#autoriser l'initialisation des connexions sortantes a destination du port 80,443,21 et dns.
iptables -A OUTPUT -s 192.168.5.1 -o eth0 -m multiport -p tcp --dport 80,443,21 -m state --state NEW -j ACCEPT
# le dns
iptables -A OUTPUT -s 192.168.5.1 -o eth0 -p udp --dport 53 -m state --state NEW -j ACCEPT
2- Chaine INPUT
#une connexion s'établie, il faut donc autoriser les paquets retours
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

normalement c'est suffisant, même si par contre on peut être plus sympa avec l'icmp
Il faut bien comprendre que si tu initie une connexion, il faut que la machine réponde, c'est pourquoi on parle de "STATE" qui correspondent a des flags mis en cache dans le conntrack.

c'est là qu'intervient la table INPUT, avec les états "etablis", "en relation" (ftp)


OUTPUT -s 192.168.5.1 ? c'est pas plutot 192.168.5.4 !
et pour le --dport en OUTPUT je pensait que c'était --sport

Franchement je doit le faire comment avec un programme ou koi ? lol
parce que l'a j'en n'ai tapé toute la journé et rien n'a fonctionné

le seul truc qui fonctione c'est :

[root@phoenix /]# iptables -t filter -A OUTPUT -o eth0 -j ACCEPT
[root@phoenix /]# iptables -t filter -A INPUT -i eth0 -j ACCEPT[/quote]

Bon je pense que je vais rester avec firestarter et installer snort
il me semblais qu'il y en n'avait d'autre de gestionnaire d'iptables ?
Chardhoo
Quartier Maître
Quartier Maître
 
Messages: 12
Inscrit le: 26 Juil 2005 23:12

Messagepar antolien » 20 Nov 2005 20:18

Ah oui pardon c'est 192.168.5.4 !

en output, c'est aussi bien le sport que le dport, le --source-port > a 1024 (exemple --sport 1025:65535 ), le --destination-port ce que tu veux atteindre (exemple --dport 80 )

mais bon, si tu remplace 192.168.5.1 par 192.168.5.4 dans les règles que je te donne, ça va marcher.
Avatar de l’utilisateur
antolien
Amiral
Amiral
 
Messages: 3134
Inscrit le: 31 Août 2002 00:00

Suivant

Retour vers Sécurité et réseaux

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit et 0 invité(s)