[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: vérifier l'utilisation d'une règle Iptables



Bonjour,

Je ne refuse pas toutes les IP de classes A, B, C et D, mais seulement
les réseaux 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, 224.0.0.0/4 et
240.0.0.0/5 arrivant sur la pate Internet de ma passerelle.


Merci pour ces précisions concerant la table NAT et la chaine
PREROUTING, je n'avais pas conscience de çà.
Pour la table MANGLE, je m'étais arrêté à son utilisation pour le QOS,
mais je vais m'y intéresser maintenant.

Comme les communications viennent du LAN, je peux donner un minimum
d'infos, et ajouter " --reject-with tcp-reset" ne fait pas de mal..

Sur ma passerelle, j'ai aussi un serveur DNS, il est donc facile de
récupérer les IP du serveur POP3 et de les utiliser dans une règle IPTABLES.

Pour mes tests sur ces règles, j'ai fait 2 erreurs.
J'ai oublié de supprimer le ! dans la règle avec le "-j ACCEPT" pour
matcher les connexions aux serveurs POP3.
Et surtout j'ai oublié que l'ordre des règles était important (juste
avant ces règles une autre règle matchait les communications vers POP3
(p3scan pour vérifier les virus) )


Merci pour toutes ces explications.

A+
SEB



Pascal@plouf wrote:
> Salut,
> 
> Seb a écrit :
> 
>>
>> Sur ma passerelle, j'ai ajouté des règles Iptables pour améliorer la
>> sécurité, en empêchant par exemple les trames venant d'Internet qui ont
>> comme source des IP de classes A, B, C et D.
> 
> 
> Alors tes règles ne doivent pas laisser passer grand chose, dans la
> mesure ou la plupart des adresses internet appartiennent à ces anciennes
> classes. Classes qui sont désormais obsolètes depuis l'adoption de CIDR,
> c'est-à-dire un bon moment.
> 
>>     iptables -t nat -A PREROUTING -i $WAN_INTERFACE -s 10.0.0.0/8 -j DROP
>>
>> Dans ce cas, je sais quelles fonctionnent avec "iptables -t nat -L -n
>> - -v" et le nb de paquets donné.
> 
> 
> Remarque : bien que supportant les cibles ACCEPT et DROP, les chaînes
> PREROUTING, OUTPUT et POSTROUTING de la table nat ne sont pas prévues
> pour faire du filtrage mais uniquement du NAT (SNAT, DNAT, MASQUERADE,
> REDIRECT, NETMAP...), à cause de leur fonctionnement particulier en
> relation avec le suivi de connexion : seul le premier paquet d'une
> connexion est examiné par les règles des chaînes de la table nat, et le
> résultat détermine également le traitement des paquets suivants dans les
> deux sens.
> 
> Le filtrage (ACCEPT, REJECT, DROP...) doit avoir lieu dans les chaînes
> INPUT, OUTPUT et FORWARD de la table filter (table par défaut) qui sont
> prévues pour ça. A la limite, si on a besoin de filtrer sur des critères
> qui peuvent être altérés après la traversée de la chaîne PREROUTING
> (comme par exemple l'adresse destination en cas de port forwarding), il
> vaut mieux le faire dans la table mangle (toujours traversée avant la
> table nat) que dans la table nat. Mais une solution plus élégante
> consiste à marquer les paquets à filtrer dans la table mangle avec la
> cible MARK et à les filtrer dans la table filter avec la correspondance
> mark.
> 
> Exemple pour rejeter l'accès aux adresses privées du LAN depuis
> l'extérieur :
> 
> iptables -t mangle -A PREROUTING -i $WAN_INTERFACE -d $LAN_NETWORK \
>    -j MARK --set-mark 0x1234
> 
> iptables -A INPUT -i $WAN_INTERFACE -m mark --mark 0x1234 \
>    -j REJECT --reject-with network unreachable
> 
> iptables -A FORWARD -i $WAN_INTERFACE -m mark --mark 0x1234 \
>    -j REJECT --reject-with network unreachable
> 
>> J'ai voulu ajouté des règles pour l'accès à POP3 (tcp/110) où seules les
>> IP des serveurs POP3 choisis seront accessibles (en fait je drop les
>> trames qui ne corresponde pas).
>>     iptables -t nat -A PREROUTING -i $LAN_INTERFACE -s $LAN_NETWORK -p tcp
>> - --dport 110 -d ! $ipPopServer -j DROP
> 
> 
> Remarque 1: comme expliqué plus haut, ce filtrage devrait avoir lieu
> dans la chaîne FORWARD de la table filter.
> 
> Remarque 2: pour ce genre de filtrage il vaut mieux utiliser la cible
> REJECT avec émission d'un RST (option --reject-with tcp-reset) pour
> signaler immédiatement à l'émetteur que la connexion est refusée au lieu
> de le laisser réessayer plusieurs fois et attendre en vain une réponse
> avant d'abandonner finalement.
> 
> Remarque 3: tu fais comment s'il y a plusieurs adresses de serveurs POP3 autorisées ?
> 
>> Pour les tests j'ai mis "-j ACCEPT"
> 
> 
> Si c'est pour compter on peut aussi ne pas spécifier de cible, ainsi le
> paquet continue à traverser les règles suivantes.
> 
>> Mais dans ce cas, même en allant relever mes mails, je n'ai pas d'info
>> sur le nb de paquets pris par la règle.
> 
> 
> Mais encore ? Le compteur de paquets reste à zéro ?
> Le serveur POP interrogé est-il celui autorisé ou un autre ?
> 
>> Une erreur de ma part, c'est sûr, mais je ne vois pas où.
>> Une petite idée ??
> 
> 
> Il faudrait voir les règles précédentes. Mais la première erreur est
> déjà d'avoir fait du filtrage dans la table nat.



Reply to: