juillet 12, 2020
securite linux

20 Conseils pour renforcer la sécurité des serveurs Linux

Tout le monde dit que Linux est sécurisé par défaut et a accepté une certaine extension (il s’agit de sujets discutables). Cependant, Linux a un modèle de sécurité intégré en place par défaut. Besoin de le régler et de le personnaliser selon vos besoins, ce qui peut aider à rendre le système plus sécurisé. Linux est plus difficile à gérer mais offre plus de flexibilité et d’options de configuration.

Sécuriser un système dans une production entre les mains de pirates et de crackers est une tâche difficile pour un administrateur système. Ceci est notre premier article lié à «Comment sécuriser une boîte Linux» ou «Renforcer une boîte Linux». Dans cet article, nous vous expliquerons 20 trucs et astuces utiles pour sécuriser votre système Linux. J’espère que les conseils et astuces ci-dessous vous aideront à vous étendre pour sécuriser votre système.

1. Sécurité du système physique

Configurez le BIOS pour désactiver le démarrage à partir du CD / DVD, des périphériques externes, du lecteur de disquette dans le BIOS. Ensuite, activez le mot de passe du BIOS et protégez également GRUB avec un mot de passe pour restreindre l’accès physique à votre système.

  1. Set GRUB Password to Protect Linux Servers

2. Partitions de disque

Il est important d’avoir différentes partitions pour obtenir une meilleure sécurité des données en cas de sinistre. En créant différentes partitions, les données peuvent être séparées et regroupées. Lorsqu’un accident inattendu se produit, seules les données de cette partition seront endommagées, tandis que les données des autres partitions ont survécu. Assurez-vous que vous devez disposer des partitions distinctes suivantes et que les applications tierces doivent être installées sur des systèmes de fichiers distincts sous / opt.

/
/boot
/usr
/var
/home
/tmp
/opt

3. Réduire les packages pour minimiser la vulnérabilité

Voulez-vous vraiment installer toutes sortes de services?. Il est recommandé d’éviter d’installer des packages inutiles pour éviter les vulnérabilités des packages. Cela peut minimiser le risque que la compromission d’un service ne conduise à la compromission d’autres services. Recherchez et supprimez ou désactivez les services indésirables du serveur pour minimiser la vulnérabilité. Utilisez la commande ‘chkconfig’ pour trouver les services qui s’exécutent au niveau d’exécution 3.

# /sbin/chkconfig --list |grep '3:on'

Une fois que vous avez découvert qu’un service indésirable est en cours d’exécution, désactivez-le à l’aide de la commande suivante.

# chkconfig serviceName off

Utilisez le gestionnaire de packages RPM tel que les outils «yum» ou «apt-get» pour répertorier tous les packages installés sur un système et les supprimer à l’aide de la commande suivante.

# yum -y remove package-name
# sudo apt-get remove package-name

 

A lire Aussi  adresse IP: Les différentes façons de cacher son .n2019

4. Vérifier les ports réseau d’écoute

À l’aide de la commande de mise en réseau «netstat», vous pouvez afficher tous les ports ouverts et les programmes associés. Comme je l’ai dit ci-dessus, utilisez la commande ‘chkconfig’ pour désactiver tous les services réseau indésirables du système.

# netstat -tulpn
  1. 20 Netstat Commands for Network Management in Linux

5.Utiliser Secure Shell (SSH)

Les protocoles Telnet et rlogin utilisent du texte brut, pas un format crypté qui constitue les failles de sécurité. SSH est un protocole sécurisé qui utilise la technologie de cryptage lors de la communication avec le serveur.

Ne vous connectez jamais directement en tant que root, sauf si cela est nécessaire. Utilisez «sudo» pour exécuter des commandes. sudo sont spécifiés dans le fichier / etc / sudoers peuvent également être modifiés avec l’utilitaire « visudo » qui s’ouvre dans l’éditeur de VI.

 

Il est également recommandé de changer le numéro de port SSH 22 par défaut avec un autre numéro de port de niveau supérieur. Ouvrez le fichier de configuration SSH principal et définissez les paramètres suivants pour restreindre l’accès des utilisateurs.

# vi /etc/ssh/sshd_config
Désactiver la connexion root

 

PermitRootLogin no
Autoriser uniquement des utilisateurs spécifiques
AllowUsers username
Utiliser la version 2 du protocole SSH
Protocol 2
  1. 5 Best Practices to Secure and Protect SSH Server

6. Garder le système à jour

Gardez toujours le système à jour avec les derniers correctifs des versions, les correctifs de sécurité et le noyau lorsqu’ils sont disponibles.

# yum updates
# yum check-update

7. Emplois Lockdown Cron

Cron a sa propre fonctionnalité intégrée, où il permet de spécifier qui peut et qui ne veut pas exécuter les travaux. Ceci est contrôlé par l’utilisation de fichiers appelés /etc/cron.allow et /etc/cron.deny. Pour verrouiller un utilisateur à l’aide de cron, ajoutez simplement des noms d’utilisateur dans cron.deny et pour permettre à un utilisateur d’exécuter cron add dans le fichier cron.allow. Si vous souhaitez désactiver l’utilisation de cron par tous les utilisateurs, ajoutez la ligne ‘ALL’ au fichier cron.deny.

# echo ALL >>/etc/cron.deny
  1. 11 Cron Scheduling Examples in Linux

8. Désactiver la clé USB pour détecter

Il arrive souvent que nous voulions empêcher les utilisateurs d’utiliser une clé USB dans les systèmes pour protéger et sécuriser les données contre le vol. Créez un fichier ‘/etc/modprobe.d/no-usb’ et l’ajout de la ligne ci-dessous ne détectera pas le stockage USB.

install usb-storage /bin/true

9. Activez SELinux

Linux à sécurité renforcée (SELinux) est un mécanisme de sécurité de contrôle d’accès obligatoire fourni dans le noyau. Désactiver SELinux signifie supprimer le mécanisme de sécurité du système. Réfléchissez bien avant de supprimer, si votre système est connecté à Internet et accessible au public, réfléchissez-y un peu plus.

SELinux fournit trois modes de fonctionnement de base et ils le sont.

  1. enforcing: il s’agit du mode par défaut qui active et applique la politique de sécurité SELinux sur la machine.
  2. Permissif: dans ce mode, SELinux n’appliquera pas la politique de sécurité sur le système, mais uniquement des actions d’avertissement et de journalisation. Ce mode est très utile pour résoudre les problèmes liés à SELinux.
  3. Désactivé: SELinux est désactivé.
A lire Aussi  Comment cree une application USSD (*100#, *1222#, *1111#, ...)

Vous pouvez afficher l’état actuel du mode SELinux à partir de la ligne de commande à l’aide des commandes «system-config-selinux», «getenforce» ou «sestatus».

# sestatus

S’il est désactivé, activez SELinux à l’aide de la commande suivante.

# setenforce enforcing

Il peut également être géré à partir du fichier ‘/ etc / selinux / config’, où vous pouvez l’activer ou le désactiver.

10. Supprimer les bureaux KDE / GNOME

Il n’est pas nécessaire d’exécuter des bureaux X Window comme KDE ou GNOME sur votre serveur LAMP dédié. Vous pouvez les supprimer ou les désactiver pour augmenter la sécurité du serveur et les performances. Pour désactiver simplement, ouvrez le fichier ‘/ etc / inittab’ et définissez le niveau d’exécution sur 3. Si vous souhaitez le supprimer complètement du système, utilisez la commande ci-dessous.

# yum groupremove "X Window System"

11. Désactiver IPv6

Si vous n’utilisez pas de protocole IPv6, vous devez le désactiver, car la plupart des applications ou des stratégies ne nécessitent pas de protocole IPv6 et ne le sont pas actuellement sur le serveur. Accédez au fichier de configuration réseau et ajoutez les lignes suivantes pour le désactiver.

# vi /etc/sysconfig/network
NETWORKING_IPV6=no
IPV6INIT=no

12. Limiter les utilisateurs à utiliser d’anciens mots de passe

Ceci est très utile si vous souhaitez interdire aux utilisateurs d’utiliser les mêmes anciens mots de passe. L’ancien fichier de mot de passe se trouve dans / etc / security / opasswd. Ceci peut être réalisé en utilisant le module PAM.

Ouvrez le fichier ‘/etc/pam.d/system-auth’ sous RHEL / CentOS / Fedora.

# vi /etc/pam.d/system-auth

Ouvrez le fichier ‘/etc/pam.d/common-password’ sous Ubuntu / Debian / Linux Mint.

# vi /etc/pam.d/common-password

Ajoutez la ligne suivante à la section «auth».

auth        sufficient    pam_unix.so likeauth nullok

Ajoutez la ligne suivante à la section «mot de passe» pour interdire à un utilisateur de réutiliser les 5 derniers mots de passe de son utilisateur.

password   sufficient    pam_unix.so nullok use_authtok md5 shadow remember=5

Seuls les 5 derniers mots de passe sont mémorisés par le serveur. Si vous avez essayé d’utiliser l’un des 5 derniers mots de passe anciens, vous obtiendrez une erreur comme.

 

Password has been already used. Choose another.

13. Comment vérifier l’expiration du mot de passe de l’utilisateur

Sous Linux, les mots de passe des utilisateurs sont stockés dans le fichier ‘/ etc / shadow’ au format crypté. Pour vérifier l’expiration du mot de passe de l’utilisateur, vous devez utiliser la commande «chage». Il affiche des informations sur les détails d’expiration du mot de passe ainsi que la date du dernier changement de mot de passe. Ces détails sont utilisés par le système pour décider quand un utilisateur doit changer son mot de passe.

Pour afficher les informations de vieillissement d’un utilisateur existant telles que la date et l’heure d’expiration, utilisez la commande suivante.

 

#chage -l username

Pour modifier le vieillissement du mot de passe d’un utilisateur, utilisez la commande suivante.

 

#chage -M 60 username
#chage -M 60 -m 7 -W 7 userName
Paramètres
  1. -M Définir le nombre maximum de jours
  2. -m Définir un nombre minimum de jours
  3. -W Définir le nombre de jours d’avertissement

14. Verrouiller et déverrouiller le compte manuellement

Les fonctionnalités de verrouillage et de déverrouillage sont très utiles, au lieu de supprimer un compte du système, vous pouvez le verrouiller pendant une semaine ou un mois. Pour verrouiller un utilisateur spécifique, vous pouvez utiliser la commande suivante.

# passwd -l accountName

Remarque: L’utilisateur verrouillé est toujours disponible pour l’utilisateur root uniquement. Le verrouillage est effectué en remplaçant le mot de passe crypté par une chaîne (!). Si quelqu’un essaie d’accéder au système en utilisant ce compte, il obtiendra une erreur similaire à celle ci-dessous.

# su - accountName
This account is currently not available.

Pour déverrouiller ou activer l’accès à un compte verrouillé, utilisez la commande as. Cela supprimera la chaîne (!) Avec un mot de passe chiffré.

# passwd -u accountName

15. Application de mots de passe plus forts

Un certain nombre d’utilisateurs utilisent des mots de passe doux ou faibles et leur mot de passe peut être piraté avec un dictionnaire ou des attaques par force brute. Le module ‘pam_cracklib’ est disponible dans la pile de modules PAM (Pluggable Authentication Modules) qui forcera l’utilisateur à définir des mots de passe forts. Ouvrez le fichier suivant avec un éditeur.

A lire Aussi  Comment cree une application USSD (*100#, *1222#, *1111#, ...)

 

 

# vi /etc/pam.d/system-auth

Et ajouter une ligne en utilisant les paramètres de crédit comme (lcredit, ucredit, dcredit et / ou ocredit respectivement minuscules, majuscules, chiffres et autres)

/lib/security/$ISA/pam_cracklib.so retry=3 minlen=8 lcredit=-1 ucredit=-2 dcredit=-2 ocredit=-1

16. Activer Iptables (pare-feu)

Il est fortement recommandé d’activer le pare-feu Linux pour sécuriser l’accès non autorisé à vos serveurs. Appliquez des règles dans iptables pour filtrer les paquets entrants, sortants et de transfert. Nous pouvons spécifier l’adresse source et de destination à autoriser et à refuser dans un numéro de port udp / tcp spécifique.

  1. Basic IPTables Guide and Tips

17. Désactiver Ctrl + Alt + Supprimer dans Inittab

Dans la plupart des distributions Linux, appuyer sur «CTRL-ALT-DELETE» prendra votre système pour redémarrer le processus. Donc, ce n’est pas une bonne idée d’activer cette option au moins sur les serveurs de production, si quelqu’un le fait par erreur.

Ceci est défini dans le fichier ‘/ etc / inittab’, si vous regardez attentivement dans ce fichier, vous verrez une ligne similaire à ci-dessous. Par défaut, la ligne n’est pas mise en commentaire. Nous devons le commenter. Cette signalisation de séquence de touches particulière arrêtera un système.

# Trap CTRL-ALT-DELETE
#ca::ctrlaltdel:/sbin/shutdown -t3 -r now

18. Vérification des comptes pour les mots de passe vides

Tout compte ayant un mot de passe vide signifie qu’il est ouvert pour un accès non autorisé à quiconque sur le Web et qu’il fait partie de la sécurité au sein d’un serveur Linux. Donc, vous devez vous assurer que tous les comptes ont des mots de passe forts et que personne n’a d’accès autorisé. Les comptes de mot de passe vides sont des risques de sécurité et peuvent être facilement piratés. Pour vérifier s’il existe des comptes avec un mot de passe vide, utilisez la commande suivante.

# cat /etc/shadow | awk -F: '($2==""){print $1}'

19. Afficher la bannière SSH avant la connexion

Il est toujours préférable d’avoir une bannière légale ou des bannières de sécurité avec des avertissements de sécurité avant l’authentification SSH. Pour définir de telles bannières, lisez l’article suivant.

  1. Display SSH Warning Message to Users

20. Surveiller les activités des utilisateurs

Si vous traitez avec de nombreux utilisateurs, il est important de collecter les informations sur les activités et les processus de chaque utilisateur consommés par eux et de les analyser ultérieurement ou en cas de performances, de problèmes de sécurité. Mais comment nous pouvons surveiller et collecter des informations sur les activités des utilisateurs.

Il existe deux outils utiles appelés «psacct» et «acct» pour surveiller les activités et les processus des utilisateurs sur un système. Ces outils s’exécutent en arrière-plan du système et suivent en permanence chaque activité utilisateur sur un système et les ressources consommées par des services tels que Apache, MySQL, SSH, FTP, etc. Pour plus d’informations sur l’installation, la configuration et l’utilisation, visitez l’url ci-dessous.

Si vous avez manqué une astuce de sécurité ou de renforcement importante dans la liste ci-dessus, ou si vous avez une autre astuce qui doit être incluse dans la liste. Veuillez déposer vos commentaires dans notre boîte de commentaires.

2 réflexions sur « 20 Conseils pour renforcer la sécurité des serveurs Linux »

Laisser un commentaire

%d blogueurs aiment cette page :