Matériel: x64 vps (Debian 9 Stretch)
Accès Internet: in a datacenter
YunoHost version: 3.1
As tu modifié ton yunohost avec des configuration spécifiques ou bien utilise tu uniquement la web administration et/ou la ligne de commande yunohost ? modifié
Si modifié, comment: Changement du port d’écoute SSH et installation de Logwatch
Description de mon problème
Suite à l’installation de j’ai remarqué que beaucoup d’IP non-désirées (Russe, Chinoise, Bulgare, Brésilienne, etc.) essayent de se connecter au serveur YunoHost, tout comme des tentatives d’utilisation en mode proxy.
Question
Est-il possible de créer et de modifier à la main une liste d’IP qu’Iptables pourrait DROP ?
De la même manière, est-il possible de créer une liste pour y placer des URL de reverse-DNS afin qu’Iptables puissent également les DROP ?
Finalement, j’ai trouvé un script chez le <Chef de l’Internet> Comment bloquer certaines IP sur votre serveur
J’ai donc créé un fichier ip_block.ips dans /home et dans lequel j’ai copié-coller quelques IP de mes Logwatch :
nano /home/ip_block.ips # copier (Ctrl+c depuis le webmail) puis coller (Ctrl+Shift+v en Terminal) les IP de Logwatch ou celles que l'on souhaite "dropper" (une IP par ligne) # Ctrl+o pour enregistrer et Ctrl+x pour fermer
Ensuite, j’ai copié-collé le script crée dans /etc/init.d/ en l’adaptant avec le bon chemin vers le fichier ip_block.ips (/home/ip_block.ips) listant les IP à “dropper” et en commentant la ligne du log, avant de le rendre exécutable le script exécutable, le lancer et enfin voir s’il avait bien été pris en compte par Iptables :
nano /etc/init.d/ip_block # copier (Ctrl+c depuis le web) puis coller (Ctrl+Shift+v en Terminal) le script et l'adapter aux noms et chemins des fichiers # Ctrl+o pour enregistrer et Ctrl+x pour fermer
chmod +x /etc/init.d/ip_block
sh /etc/init.d/ip_block
iptables -L
J’ai cette mauvaise impression que le script ne se lance pas automatiquement au reboot de la machine…
Après un reboot, je vérifie avec un iptables -L, et seulement quelques règles définies (je suppose) par Yunohost apparaissent.
Effectivement, ça ne se lance pas (toujours ?) automatiquement au redémarrage.
Il faut lancer manuellement sh /etc/init.d/ip_block.
Peut-être faudrait-il voir s’il est possible de créer une nouvelle fonctionnalité, du même genre que les IP autorisées à accéder à la Webadmin, qui permettrait de créer une liste des “IP-to-drop” ; avec la possibilité d’ajouter/modifier/supprimer une IP manuellement, voire une plage d’IP (123.45.67.* et pourquoi pas par pays, et s’il est possible d’initialiser cette liste à partir d’un fichier csv ou tableau.
Mais là c’est tout autre chose : développement, intégration … et ça dépasse toutes mes maigres compétences.
A priori pour l’heure il faudrait juste trouver un moyen de placer la commande au bon endroit afin de s’assurer que ce script se lance bien à chaque redémarrage.
Vous pouvez aussi faire de votre script un service, je n’ai pas moi-même mis en place ce service. C’est une piste pour résoudre votre problème de lancement au redémarrage.
Vous pouvez créer un service ip_block, à adapter au nom du script et son chemin.