Maison >Problème commun >Comment empêcher le serveur d'être envahi par d'autres
Sécuriser un serveur n’est pas difficile, mais il est facile de l’oublier quand il y a tant d’opérations de routine à effectuer. Je voudrais donc ici vous parler de la façon d'empêcher les autres d'envahir le serveur et en même temps approfondir votre impression, j'espère que cela vous sera utile après l'avoir lu.
La situation que j'ai rencontrée était relativement simple J'ai exécuté la commande suivante :
cat /var/log/auth.log | grep Accepted
Cette commande a renvoyé l'enregistrement d'authentification réussie sur mon serveur, où Là. est une adresse IP qui n'est pas la mienne. Le service SSH a donc été compromis.
N'oubliez pas qu'il existe une autre commande last
, qui renvoie l'utilisateur le plus récemment connecté avec succès.
Ce que vous devez faire immédiatement après l'achat du serveur :
/var/log/auth.log
l'identification des comportements malveillants et l'interdiction des IP En cas d'effraction, vous devez savoir comment enquêter et nettoyer. Le meilleur moyen est de recréer le VPS. C'est ce que je fais. J'ai acheté un serveur chez hetzner, et sa console offre la possibilité de recréer (supprimer l'ancien VPS, en créer un nouveau) un VPS et conserver l'IP d'origine. J'ai donc recréé un VPS. J'ai ensuite généré la clé SSH à l'aide de l'outil ssh-keygen
(qui fait partie du package OpenSSH standard) sur ma machine locale : (La commande ci-dessous fonctionne à la fois sur Linux et macOS)
ssh-keygen
La commande est dans le ~/.ssh
répertoire Une paire de clés est créée. Exécutez ensuite la commande suivante :
ssh-copy-id you_user@your_server_id
Cette commande téléchargera la clé publique nouvellement créée sur le serveur. Ensuite, connectez-vous au serveur et modifiez la configuration sshd :
nano /etc/ssh/sshd_config
Modifiez la configuration PasswordAuthentication dans le fichier de configuration :
PasswordAuthentication no
Cette configuration désactive la connexion par mot de passe (seules les clés peuvent être utilisées pour se connecter ).
Le système que j'utilise sur le serveur est Ubuntu, donc ces deux outils peuvent être installés via les commandes suivantes :
apt install ufw fail2ban
Ouvrez uniquement ssh et http( s) Port :
ufw allow ssh ufw allow 80 ufw allow 443
Activer ufw :
ufw enable
Configurez ensuite l'outil fail2ban :
# 备份默认配置 cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local nano /etc/fail2ban/jail.local
Recherchez banaction =
dans le fichier de configuration et définissez-le sur ufw
. Rechargez ensuite la configuration fail2ban :
fail2ban-client reload
Après une configuration aussi simple, trois tentatives de connexion incorrectes depuis la même IP banniront l'IP pendant 10 minutes. J'ai personnellement ajusté la période d'interdiction à 7 jours. La commande suivante peut vérifier l'état de fail2ban :
fail2ban-client status sshd
Ma configuration est la suivante :
Status for the jail: sshd |- Filter | |- Currently failed: 1 | |- Total failed: 6 | `- File list: /var/log/auth.log `- Actions |- Currently banned: 1 |- Total banned: 2 `- Banned IP list: 187.109.168.150
Comme vous pouvez le voir, une IP a été bloquée par le pare-feu. Nous pouvons également le confirmer grâce au rapport d'ufw :
ufw status Status: active To Action From -- ------ ---- Anywhere REJECT 187.109.168.150 80/tcp ALLOW Anywhere 22 ALLOW Anywhere 443 ALLOW Anywhere
Pour des tutoriels plus techniques, veuillez faire attention aux autres contenus sur le Site Web PHP chinois.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!