Maison >Problème commun >Comment empêcher le serveur d'être envahi par d'autres

Comment empêcher le serveur d'être envahi par d'autres

little bottle
little bottleavant
2019-04-30 09:57:183245parcourir

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.

Comment trouver les vulnérabilités

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.

Comment renforcer le serveur

Ce que vous devez faire immédiatement après l'achat du serveur :

  • Installer ufw, un outil simple et facile -utiliser un logiciel pare-feu ;
  • Fermez tous les ports sauf SSH et HTTP(s) ;
  • Installez et configurez l'outil fail2ban. Cet outil est basé sur /var/log/auth.log l'identification des comportements malveillants et l'interdiction des IP
  • la modification de la configuration sshd pour utiliser uniquement l'authentification par clé ;

Comment faire concrètement ?

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 ).

Installer et configurer ufw et fail2ban

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer