Sécurisez le serveur Linux en interdisant la connexion racine à distance (base de données SSH et FTP et MySQL)
Dans cet article, nous savons à quel point la sécurité est importante. Si vous gérez votre serveur (VPS, hébergement cloud ou serveur dédié), alors vous devez avoir un accès root. La racine est comme le compte administrateur sur Windows, mais seulement plus puissante (vous pouvez pratiquement tout faire).
Ce n’est probablement pas une bonne idée de renommer le compte root (ou de le masquer) sur le système Linux, cela est dû au fait que de nombreuses applications/programmes tels que sendmail supposent qu’il existe un compte root ou que les choses commenceront à se casser si la racine est introuvable (Sous Windows, vous pouvez renommer le compte administrateur ). Cependant, vous devez avoir et être suggéré d’avoir un compte d’utilisateur normal (moins puissant) qui gère les tâches quotidiennes, de sorte que vous n’endommagerez pas le système si vous faites occasionnellement des erreurs.
SSH
Pour créer un utilisateur normal, exécutez la commande sudo adduser nuser où le nuser est le compte d’utilisateur que nous voulons ajouter. Suivez les instructions pour définir le mot de passe ou vous pouvez émettre passwd nuser plus tard.
Vérifiez que vous pouvez réellement vous connecter en utilisant SSH et passer à root en utilisant su. Une fois ceux-ci confirmés, vous devez éditer le fichier dans /etc/ssh/sshd_config avec votre éditeur de texte préféré (par exemple vim). Recherchez ensuite la ligne PermitRootLogin yes et remplacez-la par PermitRootLogin no. Redémarrez le serveur ssh comme ceci :
Ensuite, si vous vous reconnectez en utilisant root, il sera toujours refusé, ce qui rend le système un peu sécurisé (comme vous le savez, il y a beaucoup d’IP qui forcent brutalement et essaient de pirater votre compte root).
FTP (contre FTP)
FTP n’est pas si sécurisé, mais si vous insistez pour l’utiliser, assurez-vous d’utiliser SFTP ou SSL/TLS, le cas échéant. Le serveur FTP populaire sous Linux est vsFTP et après l’avoir installé, assurez-vous également de désactiver la connexion root.
La configuration de vsFTP se trouve dans le fichier /etc/vsftp.conf et vous devez vous assurer que les valeurs suivantes sont définies (peuvent être ajoutées) :
anonymous_enable=NO # no anonymous login plz
local_enable=YES
write_enable=YES
userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd.users
Et créez un fichier dans /etc/vsftpd.users s’il n’y est pas encore, et ajoutez les utilisateurs autorisés ligne par ligne dans le fichier. Redémarrez le vsFTP en :
sudo service vsftpd restart
Et si vous vous connectez en utilisant root, il refusera avec ce message :
Connecting to: XXXXXXXXX
220 (vsFTPd 3.0.2)
USER root
530 Permission denied.
220 (vsFTPd 3.0.2)
USER root
530 Permission denied.
Certificate:
Can't connect
LastError: 0
Base de données MySQL
Désactiver la connexion root à distance
Supprimez la connexion root à distance à votre base de données MySQL car il reste des risques élevés d’avoir votre compte root accessible depuis une autre machine plutôt localement. Cependant, si vous avez un serveur dédié servant de base de données, c’est une autre histoire, auquel cas vous devez renforcer le mot de passe root et éventuellement utiliser des comptes normaux dans votre wordpress ou d’autres sites Web. Assurez-vous de ne pas exposer ces fichiers de configuration (par exemple wp-config.php) facilement. Rendez simplement ces fichiers non inscriptibles.
Connectez-vous à MySQL à partir de la ligne de commande et exécutez les deux commandes suivantes pour supprimer la connexion root à distance.
DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');
flush privileges;
Désactiver toutes les connexions à distance
Si vous souhaitez interdire toutes les connexions à distance et n’autoriser que les connexions locales, vous pouvez simplement ajouter skip-networking (ou décommenter la ligne) dans /etc/mysql/my.cnf dans la section [mysqld].
[mysqld]
port=3306
skip-networking
Vous devez ensuite redémarrer le démon MySQLd.
sudo service mysqld restart