2 votes

UFW (pare-feu) ne bloque pas UDP tout de suite

J'ai un PBX (système téléphonique appelé Astersik ) qui fonctionne avec udp et tcp. Parfois, je reçois des requêtes invalides de certaines adresses IP que je voudrais bloquer. Je ne peux pas bloquer ces requêtes tant que je n'ai pas redémarré mon ordinateur. Je pense que la raison est que l'UFW ne bloquera pas les connexions établies. .

Imaginons que je reçoive une requête malveillante de l'adresse IP suivante 1.2.3.4 . Je dois ensuite bloquer ces demandes en exécutant la commande :

sudo ufw insert 1 deny from 1.2.3.4 to any

J'ai besoin de la insert 1 afin que la règle soit exécutée avant les autres.

Quoi qu'il en soit, même si j'exécute cette commande, je constate que mon ordinateur répond de nouveau à 1.2.3.4 . Le problème est qu'il y a déjà une connexion établie, donc l'ufw ne laissera pas tomber ces paquets jusqu'à ce que ces connexions soient fermées.

J'ai trouvé une solution temporaire :

1) J'ouvre nano /etc/ufw/before.rules

2) Commentez les lignes :

enter image description here

(Sur la photo, les lignes ne sont pas commentées. Mais commentez tout ce qui est à l'intérieur du cercle rouge)

3) Redémarrer le pare-feu ufw disable puis ufw enable

Si je commente ces lignes, mon pare-feu fonctionnera comme je le souhaite. Il bloquera les connexions immédiatement !

Le problème est qu'en commentant ces lignes, mon DNS ne fonctionne plus. En d'autres termes, maintenant, lorsque j'exécute ping google.com Je vois. uknown host google.com

Pourquoi le dns cesse de fonctionner lorsque je commente ces lignes ? En bref, j'en ai besoin lorsque j'exécute sudo ufw insert 1 deny from 1.2.3.4 to any Je ne reçois plus de demandes de cette IP. Je ne peux pas me permettre de redémarrer l'ordinateur chaque fois que je veux bloquer une adresse IP.

4voto

ao0oa Points 21

Tono,

ufw est un frontal pour iptables. Ce que vous demandez essentiellement, c'est pourquoi le DNS échoue lorsque vous cessez d'accepter les connexions établies par Related,Established. conntrack garde la trace de vos connexions. Si le trafic correspond à une entrée dans conntrack, alors il est établi. Si une connexion établie crée une nouvelle connexion, il s'agit d'une connexion connexe. Si le trafic est nouveau et qu'il n'est ni établi ni associé, il s'agit d'une nouvelle connexion.

S'il y a déjà une connexion établie, vous devez insérer une instruction d'abandon au début de la chaîne. Editez /etc/ufw/before.rules de façon à avoir une section de blocage avant les règles que vous avez commentées. Ajoutez une entrée de -A ufw-before-input -s 1.2.3.4 -j DROP là. Ensuite, utilisez sudo ufw reload .

Si vous avez toujours des problèmes avec cela, pensez à utiliser iptables au lieu de ufw, car ufw est une interface pour iptables et n'inclut pas toutes ses sélections.

https://www.cyberciti.biz/faq/how-to-block-an-ip-address-with-ufw-on-ubuntu-linux-server/

https://help.ubuntu.com/community/UFW

https://askubuntu.com/questions/602176/configure-ufw-to-allow-only-established-and-related-conections-on-ipv4

Entrez la description du lien ici

2voto

UDP est un protocole sans état, mais le noyau Linux suit tout de même les numéros d'IP et de port pendant 30 secondes, afin de déterminer le trafic établi et le trafic associé. (30 secondes ou la valeur dans /proc/sys/net/netfilter/nf_conntrack_udp_timeout ) - Lien ServerFault : Iptables : "-p udp --state ESTABLISHED"

Le DNS fonctionne sur UDP, donc si vous envoyez une requête DNS, et que vous avez commenté la règle autorisant le trafic de retour associé, vous n'obtiendrez aucune réponse -> DNS cassé.

L'état de l'UDP étant suivi pendant 30 secondes, votre tentative d'insérer une nouvelle règle de blocage en haut de INPUT n'a aucun effet. La règle "ufw-before-input" intervient en premier et autorise le trafic ESTABLISHED, avant que votre règle INPUT ne le voie et ne le supprime.

Pour le réparer, vous devez soit :

  • Utilisez quelque chose comme 'conntrack' pour supprimer l'entrée UDP suivie pour l'hôte que vous voulez bloquer, puis ajoutez la règle de blocage au pare-feu. Il n'y aura pas de connexion établie ou connexe, le blocage devrait donc prendre effet immédiatement. par exemple Supprimer des entrées spécifiques de conntrack ?

  • Modifiez les règles de votre pare-feu de façon à ce que la règle ESTABLISHED, RELATED soit appliquée dans les règles INPUT après les DROP, au lieu de l'appliquer en premier.

Je ne peux pas me permettre de redémarrer l'ordinateur chaque fois que je veux bloquer une adresse IP.

Mais vous pouvez vous permettre de filtrer 4 milliards d'adresses IP, une par une, en les bloquant à la main ? Cela ne semble pas être une chose raisonnable à faire. Utilisez un dispositif IPS, utilisez fail2ban.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X