Iptables

Iptables - réseaux et sécurité - Linux et OS Alternatifs

Marsh Posté le 15-06-2006 à 12:21:22    

Bonjour à tous ,  
 
dans le cadre de mes études je suis amené à faire un projet dans lequel je dois faire un firewall  
 
En cours on a étudié iptables (enfin on a été amener à faire des recherches sur google pour trouver comment ca marche :pt1cable:)  
 
j'ai donc trouvé plusieur script mais je n'ai pas tout compris  :heink:  oui pas tres doué le type  :sweat:  
 
enfin voila si vous pourriez m'indiquer un script pour autoriser certain port et en enlever d'autre cela m'aiderai déjà pas mal  
 
perso je pensais tout refusé  
 

Code :
  1. #Remise à zero
  2. iptables -F
  3. iptables -t nat -F
  4. iptables -t nat -X
  5. # Nous les faisons pointer par défaut sur DROP
  6. iptables -P INPUT DROP
  7. iptables -P OUTPUT DROP
  8. iptables -P FORWARD DROP

 
 
puis authoriser certain port  
 

Code :
  1. #On accept le port 80
  2. iptables -A INPUT -P tcp --dport 80 -j ACCEPT

 
 
 
cela est il suffissant ? que rajouté ?  
 
 
puis une fois le script achevé ou le mettre ? j'ai lu /etc/rc.d/init.d mais aussi une histoire avec iptables-save  
 
je suis un peu - beaucoup perdu  

Reply

Marsh Posté le 15-06-2006 à 12:21:22   

Reply

Marsh Posté le 15-06-2006 à 12:35:14    

Y'a ce tuto, si ça peut t'aider : http://people.via.ecp.fr/~alexis/f [...] ewall.html

Reply

Marsh Posté le 15-06-2006 à 13:37:45    


Code :
  1. #Remise à zero
  2. iptables -F
  3. iptables -t nat -F
  4. iptables -t nat -X
  5. # Nous les faisons pointer par défaut sur DROP
  6. iptables -P INPUT DROP
  7. iptables -P OUTPUT DROP
  8. iptables -P FORWARD DROP

 
 
puis authoriser certain port  
 

Code :
  1. #On accept le port 80
  2. iptables -A INPUT -P tcp --dport 80 -j ACCEPT

 
 
 
Ouais, déjà ce serait mieux comme ça:
 

Code :
  1. #On accept le port 80
  2. iptables -A INPUT -p tcp --dport www -j ACCEPT

 
 
ok, t'acceptes le trafic entrant. Si tu n'autorises pas les répondes, tu ne vas pas aller loin...
 

Code :
  1. #On accept le port 80
  2. iptables -A OUTPUT -m state --state ESTABLISHED -p tcp --sport www -j ACCEPT

 
 

Reply

Marsh Posté le 15-06-2006 à 13:47:56    

faudrait pas plutot faire l'inverse ?
 
iptables -A OUTPUT -p tcp --sport www -j ACCEPT  
iptables -A INTPUT -m state --state ESTABLISHED -p tcp --dport www -j ACCEPT

Message cité 1 fois
Message édité par dam1330 le 15-06-2006 à 13:48:29
Reply

Marsh Posté le 15-06-2006 à 15:02:54    

sudo iptables -A INTPUT -m state --state ESTABLISHED -p tcp --dport www -j ACCEPT
 
 
iptables: No chain/target/match by that name
 
Cette comande semble ne pas marché ...

Reply

Marsh Posté le 15-06-2006 à 15:06:01    

INPUT pas INTPUT

Reply

Marsh Posté le 15-06-2006 à 15:14:41    

vraiment désolé j'dois vraiment être fatigué

Reply

Marsh Posté le 15-06-2006 à 16:05:59    

dam1330 a écrit :

faudrait pas plutot faire l'inverse ?
 
iptables -A OUTPUT -p tcp --sport www -j ACCEPT  
iptables -A INTPUT -m state --state ESTABLISHED -p tcp --dport www -j ACCEPT


 
Ca dépend si tu es le client ou bien le serveur ;-)

Reply

Marsh Posté le 15-06-2006 à 16:08:14    

non serveur c'est  

-A INPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT
-A OUTPUT -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT


 
et client

-A INPUT -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT

Message cité 1 fois
Message édité par l0ky le 15-06-2006 à 16:10:21
Reply

Marsh Posté le 15-06-2006 à 16:39:15    

ok merci  
 
j'ai pas eu la réponse à cette question :  
 
puis une fois le script achevé ou le mettre ?
 j'ai lu /etc/rc.d/init.d mais aussi une histoire avec iptables-save  
 

Reply

Marsh Posté le 15-06-2006 à 16:39:15   

Reply

Marsh Posté le 15-06-2006 à 16:43:34    

l0ky a écrit :

non serveur c'est  

-A INPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT
-A OUTPUT -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT




 
Ouais, enfin si tu n'acceptes que les paquets ayant le flag SYN (NEW quoi), tu ne pourras pas faire grand chose non plus. Une fois que ta connexion est établie, il faut bien échanger des paquets dans les 2 sens.
 

angelo78 a écrit :

ok merci  
 
j'ai pas eu la réponse à cette question :  
 
puis une fois le script achevé ou le mettre ?
 j'ai lu /etc/rc.d/init.d mais aussi une histoire avec iptables-save


 
Si t'es sous Debian, dans /etc/network/if-pre-up.d/
 
Sinon, comme les autres scripts...

Message cité 1 fois
Message édité par simple_stupid le 15-06-2006 à 16:45:47
Reply

Marsh Posté le 15-06-2006 à 16:51:42    

alors moi je suis sous ubuntu d'ou ma question c'est comme debian? (logiquement oui mais je prefere etre sur )


Message édité par angelo78 le 15-06-2006 à 16:52:01
Reply

Marsh Posté le 15-06-2006 à 16:52:33    

simple_stupid a écrit :

Ouais, enfin si tu n'acceptes que les paquets ayant le flag SYN (NEW quoi), tu ne pourras pas faire grand chose non plus. Une fois que ta connexion est établie, il faut bien échanger des paquets dans les 2 sens.


 
Ce que je corrigeais c'était les ports (sport/dport) et la chaine (input/outpu) qui n'était pas du tout bon que ce soit pour un serveur ou un client.
 
pour info:
NEW ne signifie pas "seulement" les paquets ayant le flag SYN.
 
Pour netfilter, NEW signifie que le paquet n'appartient pas à une connection existante. Tu peux recevoir un paquet avec seulement le flag RST, si ce paquet n'appartient pas a une connection exisante il sera dans l'état NEW.
Si tu veux réellement  n'accepter que les paquets ayant un flag syn pour le NEW tu dois mettre --syn
 
Donc en gros pour un serveur HTTP pour faire les choses un peu propre il faut :


-A INPUT -p tcp --dport 80 --syn -m state --state NEW -j ACCEPT
-A INPUT -p tcp --dport 80 -m state --state ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT


Message édité par l0ky le 15-06-2006 à 16:53:13
Reply

Marsh Posté le 15-06-2006 à 17:01:35    

angelo78 a écrit :


Ce que je corrigeais c'était les ports (sport/dport) et la chaine (input/outpu) qui n'était pas du tout bon que ce soit pour un serveur ou un client.


 
Ah. Ce n'était pas de moi cette erreur  :jap:  
 

angelo78 a écrit :

 
pour info:
NEW ne signifie pas "seulement" les paquets ayant le flag SYN.


 
Raccourci pas du tout clair de ma part, c'est toujours bien de préciser.
 
Par contre, pourquoi ne pas faire:
 


-A INPUT -p tcp --dport www -m state --state NEW, ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp --sport www -m state --state ESTABLISHED -j ACCEPT  

Reply

Marsh Posté le 15-06-2006 à 17:07:18    

simple_stupid a écrit :


Par contre, pourquoi ne pas faire:
 


-A INPUT -p tcp --dport www -m state --state NEW, ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp --sport www -m state --state ESTABLISHED -j ACCEPT  



Si tu ne précise pas le --syn oui c'est OK.
 
Généralement ce que je fais pour ouvrir des services c'est un truc du genre :

-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p tcp --dport www --syn -m state --state NEW -j ACCEPT
 
-A OUTPUT -p tcp --sport www --m state --state ESTABLISHED -j ACCEPT


 

Reply

Marsh Posté le 23-06-2006 à 13:33:18    

je pense que vous compliquez pas mal les choses  
 
mes besoins sont juste d'autoriser le port 80 pour "tout le monde " en entré  
 
et en sorti uniquement 2 machines ayant l'adresse ip 192.168.1.211 et 192.168.1.212
 
je suis obligé de mettre tout ca ?  
 

Reply

Marsh Posté le 23-06-2006 à 13:37:23    

Dans la vie il y a deux manières de faire les choses :
 - les faire
 - et les faire proprement
 
A bon entendeur

Reply

Marsh Posté le 23-06-2006 à 13:42:20    

ok ma réflexion étais sans doute déplacé mais comme je comprend pas forcement tout j'essai de simplifier


Message édité par angelo78 le 23-06-2006 à 13:55:43
Reply

Sujets relatifs:

Leave a Replay

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