Maison > Problème commun > le corps du texte

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

little bottle
Libérer: 2019-04-30 09:57:18
avant
3185 Les gens l'ont consulté

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
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

Modifiez la configuration PasswordAuthentication dans le fichier de configuration :

PasswordAuthentication no
Copier après la connexion

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
Copier après la connexion

Ouvrez uniquement ssh et http( s) Port :

ufw allow ssh
ufw allow 80
ufw allow 443
Copier après la connexion

Activer ufw :

ufw enable
Copier après la connexion

Configurez ensuite l'outil fail2ban :

# 备份默认配置
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
nano /etc/fail2ban/jail.local
Copier après la connexion

Recherchez banaction = dans le fichier de configuration et définissez-le sur ufw . Rechargez ensuite la configuration fail2ban :

fail2ban-client reload
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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!

Étiquettes associées:
source:segmentfault.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!