vendredi 19 mai 2023

3 précautions à prendre quand on expose un serveur sur Internet

 Dans le cadre des formations Python, nous sommes amenés à faire des démonstrations de web scraping (aspiration de site) avec scrapy.

J'ai déployé une mini application web sur une VM accessible sur Internet.

Le site: http://lemonlabs.fr

Au bout de quelques heures le fichier de journalisation auth.log se rempli toute la journée avec des tentatives d'intrusion SSH souvent avec l'utilisateur root.

Donc trois précautions à prendre rapidement.

1: Fermer tous les ports.

En dehors des ports web et ssh n'ouvrir aucun port: pas de FTP , serveur de base de données

Une base postgresql ouverte sur Internet ne tiendra pas 10 minutes et elle servira de point d'entrée pour exécuter des scripts malveillants.

2: Utiliser un outil de surveillance.

Pour interdire l'acces à une adresse IP, cette adresse doit être ajoutée au fichier /etc/hosts.deny

Pour automatiser cette tache j'utilise denyhosts : c'est un programme python qui scrute les tentatives d'intrusion et qui met à jour le fichier /etc/hosts.deny  (doc en francais ici)


3:Interdire la connexion à l'utilisateur root.

Pour cela créer un utilisateur quelconque qui servira à se connecter en SSH, puis une fois connecté , utiliser la commende su root pour devenir administrateur. En effet l'utilisateur root est un nom d'utilisateur connu de tous alors que votre nom d'utilisateur est inconnu.

Pour interdire la connexion en root, il faut modifier le fichiers de configuration de sshd:   /etc/ssh/sshd_config

(paramètre PermitRootLogin a faire passer à no) 

Attention pensez à maintenir une autre console ouverte  pour intervenir en cas de probleme. 







 


Aucun commentaire: