iptables + state RELATED,ESTABLISHED

iptables + state RELATED,ESTABLISHED - réseaux et sécurité - Linux et OS Alternatifs

Marsh Posté le 08-02-2007 à 15:26:02    

Bonjour,  
 
J'ai une question au sujet du module state.
 
J'ai un comportement "bizarre".
J'autorise tout ce qui est RELATED,ESTABLISHED et c'est le reste que je restreint.
Lorsque que j'active le port 80, biensur, mon navigateur fonctionne. Mais lorsque je le supprime (mais je laisse l'etat related, established accepté), je peux continuer de surfer uniquement sur le domaine ou j'étais !
Par exemple, je peux continuer de faire des recherche (mais que ca) sur google, mais si je cherche à aller ailleurs, biensur, ca ne fonctionne pas.
 
Est ce que cette bizarrerie peut venir de mon module state ??
merci

Reply

Marsh Posté le 08-02-2007 à 15:26:02   

Reply

Marsh Posté le 08-02-2007 à 15:28:15    

parce que ta connection est encore valide

Reply

Marsh Posté le 08-02-2007 à 15:31:11    

nORKy a écrit :

Bonjour,

 

J'ai une question au sujet du module state.

 

J'ai un comportement "bizarre".
J'autorise tout ce qui est RELATED,ESTABLISHED et c'est le reste que je restreint.
Lorsque que j'active le port 80, biensur, mon navigateur fonctionne. Mais lorsque je le supprime (mais je laisse l'etat related, established accepté), je peux continuer de surfer uniquement sur le domaine ou j'étais !
Par exemple, je peux continuer de faire des recherche (mais que ca) sur google, mais si je cherche à aller ailleurs, biensur, ca ne fonctionne pas.

 

Est ce que cette bizarrerie peut venir de mon module state ??
merci


il te manque le new !
tu autorise les connexion deja étable et celle qui sont en relation avec tes connexion mais tu n'autorise pas les nouvelle connexion


Message édité par carot0 le 08-02-2007 à 15:32:17

---------------
In a world without walls and fences, who needs Windows and Gates
Reply

Marsh Posté le 08-02-2007 à 15:35:04    

l0ky a écrit :

parce que ta connection est encore valide


 
c'est a dire ?? je comprends pas
Ce que je veux, c'est lorsque je supprime un etat NEW, beh, que ca supprime l'accès
 
 
carot0 : je crois qu'on c'est pas compris. Lorsque je mets le NEW, ca marche, mais quand je le supprime, ca continue de fonctionner sur les domaines ou j'ai été ! (alors que d'avant mettre le NEW, ca bloquait correctement

Reply

Marsh Posté le 08-02-2007 à 15:45:13    

Une fois que ta connection TCP a été validée par ton entrée NEW, il rajoute une entrée dans sa table de connection TCP valide. Cette entrée reste valide tant que les timers n'ont pas expirés, où que la session TCP aient été fini proprement ou sauvagement (FYN->FYN/ACK ou RST),  ou que les modules conntrack aient été déloadé.
 
Tant que cette entrée est valide, la connection est en l'état ESTABLISHED, donc ton trafic passe ton firewall. Il existe petit utilitaire pour couper les connections en regardant dans le fichier de connection dans le /proc. Me rappelle plus de leurs noms mais on en discute fréquemment sur les ML de netfilter

Reply

Marsh Posté le 08-02-2007 à 15:47:00    

oki, donc , vaut mieux que je trouve un autre système alors, je vais rajouter un prog en +...

Reply

Marsh Posté le 31-03-2009 à 20:30:33    

Bonjour/soir, il y a  un truc que je voudrais savoir et je suis dans le doute
ma question concerne l'etat related pour une connexion :
 
Quelle difference entre ces deux regles, au niveau de la sécurité :

Code :
  1. iptables -t filter -A FORWARD -s 192.168.x.0/24 -d 192.168.x.x -p tcp --dport 80 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
  2. iptables -t filter -A FORWARD -s 192.168.x.x -d 192.168.x.0/24 -p tcp --sport 80 -m state --state ESTABLISHED,RELATED -j ACCEPT
  3. et
  4. iptables -t filter -A FORWARD -s 192.168.x.0/24 -d 192.168.x.x -p tcp --dport 80 -m state --state NEW -j ACCEPT
  5. iptables -t filter -A FORWARD -s 192.168.x.x -d 192.168.x.0/24 -p tcp --sport 80 -m state --state ESTABLISHED,RELATED -j ACCEPT


 
Pour la 2ieme qui a mon sens est plus sécurisée, l'etat related en général utilisé par le service FTP est il nécessaire dans le cas du http ainsi que pour d'autre service ?  car je ne comprend pas pourquoi sur le net certains laisse l'etat related quand il ne s'agit pas de FTP !
 
Y'a t il un risque d'intrusion si l'on met related ou non sur une régle qui n'utilise pas le procotole FTP, je veut dire par la est ce que c'est cohérent sur du HTTP, SMTP etc... ? sans risque ?
 
Merci de votre aide


Message édité par shurik84 le 31-03-2009 à 20:45:44
Reply

Marsh Posté le 31-03-2009 à 20:57:59    

L'état RELATED sert à autoriser un paquet d'une nouvelle session TCP (à ma connaissance pas UDP, de toute manière les sessions et UDP, c'est un poil spécial) liée à une autre session dans l'état ESTABLISHED.

 

L'exemple le plus concret est pour le protocole FTP. Nous avons 2 sessions TCP différentes, l'une pour les commandes, l'autre pour la data. La session de commande permet de négocier les ports de la seconde. Le module de suivi de connexion de Netfilter adéquat analyse la première session et quand elle détecte une négociation de port crée une nouvelle connexion autorisée dans l'état RELATED.

 

Ce n'est pas restreint à FTP, tous les protocoles où il y a ce type d'échange (négociation de port) peut, en théorie, utilisé l'état RELATED (à partir du moment où il y a un module pour analyser le protocole).

 

Pour le HTTP, HTTPS, cet état n'est pas utilisé, ni pour le DNS, ni pour le SMTP.

Message cité 1 fois
Message édité par o'gure le 31-03-2009 à 20:58:32

---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 31-03-2009 à 21:05:34    

o'gure a écrit :

L'état RELATED sert à autoriser un paquet d'une nouvelle session TCP (à ma connaissance pas UDP, de toute manière les sessions et UDP, c'est un poil spécial) liée à une autre session dans l'état ESTABLISHED.
 
L'exemple le plus concret est pour le protocole FTP. Nous avons 2 sessions TCP différentes, l'une pour les commandes, l'autre pour la data. La session de commande permet de négocier les ports de la seconde. Le module de suivi de connexion de Netfilter adéquat analyse la première session et quand elle détecte une négociation de port crée une nouvelle connexion autorisée dans l'état RELATED.
 
Ce n'est pas restreint à FTP, tous les protocoles où il y a ce type d'échange (négociation de port) peut, en théorie, utilisé l'état RELATED (à partir du moment où il y a un module pour analyser le protocole).
 
Pour le HTTP, HTTPS, cet état n'est pas utilisé, ni pour le DNS, ni pour le SMTP.


 
Donc l'etat related inutile, pour une simple consultation d'un server web par un réseau  :
 
# iptables -t filter -A FORWARD -s 192.168.x.0/24 -d 192.168.x.x -p tcp --dport 80 -m state --state NEW -j ACCEPT
# iptables -t filter -A FORWARD -s 192.168.x.x -d 192.168.x.0/24 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
 
Cela suffit pour que ca marche dans les deux sens : Requete du client et reponse du serveur ?
 
Je te remercie o'gure de ta reponse

Message cité 1 fois
Message édité par shurik84 le 31-03-2009 à 21:11:32
Reply

Marsh Posté le 01-04-2009 à 08:46:08    

shurik84 a écrit :

Donc l'etat related inutile, pour une simple consultation d'un server web par un réseau  :

oui

shurik84 a écrit :


# iptables -t filter -A FORWARD -s 192.168.x.0/24 -d 192.168.x.x -p tcp --dport 80 -m state --state NEW -j ACCEPT
# iptables -t filter -A FORWARD -s 192.168.x.x -d 192.168.x.0/24 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT

 

Cela suffit pour que ca marche dans les deux sens : Requete du client et reponse du serveur ?


Non.
La tu autorise le premier paquet dans le sens client -> serveur (en l'état NEW)
Puis tu autorises tous les paquets en ESTABLISHED dans le serveur -> client.

 

Les paquets en l'état ESTABLISHED  dans le sens client->serveur seront supprimés si ta politique par défaut est à DROP. Donc ça ne fonctionnera pas.

Message cité 1 fois
Message édité par o'gure le 01-04-2009 à 08:46:58

---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 01-04-2009 à 08:46:08   

Reply

Marsh Posté le 01-04-2009 à 09:16:31    

 
o'gure a écrit :


Non.
La tu autorise le premier paquet dans le sens client -> serveur (en l'état NEW)
Puis tu autorises tous les paquets en ESTABLISHED dans le serveur -> client.

 

Les paquets en l'état ESTABLISHED  dans le sens client->serveur seront supprimés si ta politique par défaut est à DROP. Donc ça ne fonctionnera pas.

 

Actuellement je ne peut plus tester car je ne suis plus en entreprise, mais je me reinstalle la config chez moi
La politique par default est effectivement à drop

 

donc je pense que le plus approprié est :

 

NEW,ETABLISHED dans le sens client => serveur
ESTABLISHED dans le sens serveur => client

 

Pour une simple consultation HTTP d'un ou plusieur client vers un serveur !

Message cité 1 fois
Message édité par shurik84 le 01-04-2009 à 09:21:29
Reply

Marsh Posté le 01-04-2009 à 09:20:19    

Celle là :

shurik84 a écrit :


NEW,ETABLISHED dans le sens client => serveur
ESTABLISHED dans le sens serveur => client


Mais dans tes règles au dessus, tu n'avais pas mis ESTABLISHED pour le sens client -> serveur.


---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 01-04-2009 à 10:09:16    

o'gure a écrit :


Mais dans tes règles au dessus, tu n'avais pas mis ESTABLISHED pour le sens client -> serveur.

 

Si j'ai juste enlevé l'etat related sur mes règles en faite :
ce qui me donne au final ceci

 
Code :
  1. iptables -t filter -A FORWARD -s 192.168.x.0/24 -d 192.168.x.x -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
  2. iptables -t filter -A FORWARD -s 192.168.x.x -d 192.168.x.0/24 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
 

Si je me trompe pas et pour bien comprendre, l'etat
- Toute connexion qui effectue une requete en direction du serveur web  j'associe ,l'etat NEW, puis ETABLISHED pour les réponses qui vont arrivés du serveur WEB
- Tout ce qui est lié à la réponse du serveur est associé l'etat ETABLISHED car elle est en relation avec celle du dessus

 

Correct o'gure ?

 

Si les deux lignes sont correctes

 

Merci de tes réponses


Message édité par shurik84 le 01-04-2009 à 11:27:18
Reply

Sujets relatifs:

Leave a Replay

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