iptables rulematch scenario


0

supposons que vous avez une règle iptables comme suit: source A ------ & gt; source B accepter source B ------ & gt; source Une goutte.

j'observe que: - un premier paquet TCP de A à B est accepté - le paquet de réponse de B est supprimé.

pourquoi le paquet de réponse est-il abandonné? depuis le premier paquet de A - & gt; B a été autorisé et accepté, il aurait dû être ajouté à la table des connexions. lorsque le paquet de B - & gt; A entre, une recherche doit avoir été effectuée avant d’exécuter rulematch et d’accepter sans exécuter la base de règles qui décide de supprimer. pourquoi iptables n'effectue-t-il pas une recherche?

Merci.


Vous devez vraiment poster un iptables-save . Si même vos règles sont exactes, l'ordre est également essentiel au succès. Avez-vous la norme établie, règle établie? iptables -I INPUT 1 -m conntrack -j ACCEPT --ctstate RELATED, ESTABLISHED
cybernard

Bonjour, j'ai 2 règles: 1 règle est A - & gt; B accepter, la deuxième règle est B - & gt; Une chute et iptables déposent toujours la réponse de B à - & gt; A. Pourquoi les paquets venant de B - & gt; A sont lâchés? est-ce que cela signifie que si je veux avoir une connectivité entre A et - & gt; B, j'ai toujours besoin d'ajouter une règle pour "accepter" les paquets de réponse? Merci.
Avi Nehori

Quelles sont vos stratégies par défaut pour INPUT, FORWARD, OUTPUT? vous avez besoin de cela sinon vous aurez des problèmes. iptables -I INPUT 1 -m conntrack -j ACCEPT --ctstate RELATED, ESTABLISHED
cybernard

ma politique par défaut est bien sûr abandonnée pour tous.
Avi Nehori

ma politique par défaut est bien sûr abandonnée pour tous. Je m'attends à ce que lorsqu'un flux de paquet soit reçu, le flux inversé soit également accepté. suivi de la connexion pour l'état ne aide pas, je l'ai essayé et encore je reçois des gouttes pour le flux inverse. mon attente était que si A - & gt; B est accepté par la règle iptables rulematch, les paquets inversés seront également acceptés. Je ne vois pas la raison pour laquelle iptables exécute Rulmatch sur un paquet inversé. cela signifie que je dois créer deux règles pour chaque règle d'acceptation que je désire. n'est-ce pas?
Avi Nehori

Réponses:


0

Oui je l'ai ajouté et pas de changement. J'observe cela comme un comportement général et quand je regarde à travers Le code source d'Iptables est le comportement attendu. Je me demande comment iptables peut être utilisé, car c'est totalement ridicule d'ajouter une règle inverse. Il est impossible de gérer une telle base de règles. J'espère que nous pourrons clarifier cela. Merci.


0

iptables est de très bas niveau et lorsque vous écrivez des règles iptables, vous traitez avec des paquets IP bruts. Cela a un certain nombre d’implications, dont vous avez découvert une.

Il existe des cas d'utilisation parfaitement valables pour les cas où le trafic sortant devrait être autorisé, mais aucun trafic entrant correspondant ne devrait être autorisé à passer à travers le pare-feu; ou l’inverse, le trafic entrant est autorisé mais le trafic sortant non autorisé. Les serveurs de stockage de journaux (qui à leur tour sont souvent utiles pour l'audit) constituent un exemple courant: le trafic de journaux doit être autorisé. dans , mais aucun ne devrait être autorisé en dehors . Dans les cas extrêmes, le trafic de journalisation doit être autorisé dans , mais rien d'autre devrait être permis soit dedans ou dehors .

Si iptables ne fait aucune hypothèse sur ce que vous voulez, vous augmentez non seulement la sécurité, mais également les performances, car le jeu de règles peut être optimisé pour ce que vous voulez que le pare-feu fasse réellement.

Si vous souhaitez autoriser le trafic entrant lié à une connexion ou une session déjà établie, indiquez-le-lui simplement:

sudo iptables -I INPUT 1 -m state --state RELATED,ESTABLISHED -j ACCEPT

ou pour IPv6:

sudo ip6tables -I INPUT 1 -m state --state RELATED,ESTABLISHED -j ACCEPT

Ajuste le -I INPUT 1 séparez-les au besoin (par exemple, si vous avez d'autres règles devant prévaloir sur la règle générale qui autorise le trafic relatif à une connexion ou une session établie).

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.