1 votes

Bloquer temporairement la communication avec l'hôte s'il se connecte au port X

J'ai un VPS Linux, et il est constamment scanné et forcé par des IP malhonnêtes. Ce VPS est mon serveur privé, qui ne sert qu'à moi, et dont je suis le seul utilisateur. Je suis donc le seul utilisateur qui devrait être autorisé à s'y connecter.

Je voudrais vous demander, ServerFault, de commenter ma méthode de "résolution" du problème et de m'indiquer les problèmes qu'elle pose, car je n'ai pas d'expérience dans les domaines suivants iptables du tout.

Sur mon serveur, j'utilise dovecot sur le port 993 et sshd sur le port 22 . J'ai déplacé les deux services vers des ports non standard vers X et Y afin d'empêcher les attaques par force brute sur les ports connus. Pour ce qui est de l'analyse des ports, je me suis dit que j'aimerais créer un "piège" sur les ports standard 23 (telnetd), 22 (sshd), 110 (pop3), 80 (httpd), etc. Si le pare-feu détecte que quelqu'un veut se connecter à ces ports, il doit bloquer le paquet initiateur, ainsi que les éléments suivants cualquier toute autre communication avec l'hôte source pendant les 24 heures suivantes, même avec les ports X et Y . Pour ce faire, j'essaie d'utiliser la fonction recent module de iptables :

iptables -I INPUT -m state --state NEW -m recent --update --seconds 86400 --hitcount 1 -j DROP
iptables -I INPUT -p tcp -m tcp --dport 80 -m state --state NEW -m recent --set -j DROP
iptables -I INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m recent --set -j DROP
iptables -I INPUT -p tcp -m tcp --dport 23 -m state --state NEW -m recent --set -j DROP
iptables -I INPUT -p tcp -m tcp --dport 110 -m state --state NEW -m recent --set -j DROP

D'après mes tests, il semblerait que cela fonctionne. plus approprié pour réaliser ce que j'essaie de faire ?

2voto

Evan Anderson Points 140581

Je ne pense pas qu'il s'agisse d'une configuration déraisonnable en soi. Puisque vous faites tout dans l'espace du noyau (par opposition à quelque chose comme fail2ban qui tourne en userland et agit sur les messages syslog du noyau), il devrait être raisonnablement efficace.

Sachez toutefois qu'il existe un risque majeur d'attaque par déni de service. Un attaquant peut envoyer des SYN avec des adresses sources usurpées à n'importe lequel de ces ports "pièges" et bloquer ces IP. Il ne serait pas très difficile d'envoyer suffisamment de paquets pour bloquer une grande partie de l'internet. Vous devriez probablement envisager de dresser une liste blanche explicite des adresses que vous utilisez couramment pour accéder au serveur.

S'il n'est pas possible d'établir une liste blanche des IP que vous utilisez couramment pour accéder au serveur, je ne pense pas qu'il faille suivre cette voie.

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