5 votes

Comment ouvrir temporairement un port dans ufw pour une adresse IP spécifique ?

J'utilise ufw (Uncomplicated Firewall) sur mon serveur web. En ce moment, je l'ai configuré pour autoriser SSH dans le monde et fail2ban pour prévenir les tentatives massives de connexion. Le serveur web a les ports 80 et 443 ouverts.

Ce que je voudrais faire, c'est fermer l'accès SSH jusqu'à ce que j'en ai besoin et ensuite le rendre disponible uniquement à mon adresse IP publique actuelle qui change périodiquement. Je pense à un script PHP via HTTPS qui vérifie mon accès puis met la demande dans une base de données. Ensuite, une tâche cron exécute un script qui lit la base de données et exécute ufw pour ouvrir le port SSH uniquement pour mon adresse IP. Après 30 minutes, la règle serait supprimée et SSH serait de nouveau inaccessible. Je veux également permettre l'accès temporaire à plusieurs adresses IP et je veux finalement étendre aux autres ports au-delà de SSH.

Quels commandes ufw mes scripts automatisés mentionnés ci-dessus doivent-ils exécuter pour ajouter et supprimer temporairement l'accès au port SSH pour des adresses IP individuelles ?

6voto

Patrick Stephen Points 109

À mon avis, une meilleure solution serait d'utiliser le port knocking, en gros vous devriez "frapper" une série de ports aléatoires qui déclencheraient ensuite une action sur le serveur, l'action serait d'autoriser votre adresse IP à se connecter en SSH. Vous pouvez même configurer un délai d'expiration donc après un certain temps le port serait fermé.

Pour le port knocking, vous pourriez utiliser knockd. Vous avez bien sûr besoin d'un client knock de l'autre côté. Une configuration knockd ressemblerait à ceci :

[options]
   logfile = /var/log/knockd.log

[SSH]
  sequence    = 7000,8000,9000
  seq_timeout = 5
  start_command = ufw allow from %IP% to any port 22
  tcpflags    = syn
  cmd_timeout   = 10
  stop_command  = ufw delete allow from %IP% to any port 22

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