23 Centos Server durcissant les conseils de sécurité - partie 2
- 2640
- 558
- Emilie Colin
Poursuivant le tutoriel précédent sur la façon de sécuriser et durcir le serveur CentOS, dans cet article, nous discuterons d'autres conseils de sécurité qui seront présentés sur la liste de contrôle ci-dessous.
Exigences
- 20 CentOS Server Durning Security Conseils - Partie 1
21. Désactiver les commandes SUID et SGID inutiles
Si la setuid et setgid Les bits sont définis sur des programmes binaires, ces commandes peuvent exécuter des tâches avec d'autres droits d'utilisateur ou de groupe, tels que racine privilèges qui peuvent exposer de sérieux problèmes de sécurité.
Souvent, les attaques de dépassement de tampon peuvent exploiter ces binaires exécutables pour exécuter du code non autorisé avec les droits d'un utilisateur de root.
# find / -path / proc -pune -o -Type f \ (-perm -4000 -o -perm -2000 \) -exec ls -l \;
Pour inférieur le setuid bit Exécuter la commande ci-dessous:
# chmod u-s / path / to / binary_file
Pour un défaut, le bit setgid exécute la commande ci-dessous:
# chmod g-s / path / to / binary_file
22. Vérifiez les fichiers et les répertoires sans propriété
Les fichiers ou les répertoires n'étant pas appartenant à un compte valide doivent être supprimés ou attribués avec les autorisations d'un utilisateur et d'un groupe.
Émettez la commande ci-dessous Rechercher pour répertorier des fichiers ou des répertoires sans utilisateur ni groupe.
# find / -nouser -o -nogroup -exec ls -l \;
23. Liste des fichiers rédacteurs du monde
Garder un fichier de nrabilité du monde sur le système peut être dangereux en raison du fait que n'importe qui peut les modifier. Exécutez la commande ci-dessous afin d'afficher les fichiers réditeurs de mots, sauf Liaisons symboliques, qui sont toujours rédables dans le monde.
# find / -Path / proc -pune -o -perm -2 ! -Tapez L -LS
24. Créer des mots de passe forts
Créer un mot de passe d'un minimum de huit caractères. Le mot de passe doit contenir des chiffres, des caractères spéciaux et des lettres majuscules. Utiliser pwmake pour générer un mot de passe de 128 bits à partir de / dev / urandom déposer.
# pwmake 128
25. Appliquer une stratégie de mot de passe solide
Forcer le système à utiliser des mots de passe forts en ajoutant la ligne ci-dessous / etc / pam.d / passwd déposer.
Mot de passe requis PAM_PWquality.Alors réessayez = 3
Ajout de la ligne ci-dessus, le mot de passe entré ne peut pas contenir plus que 3 personnages d'une séquence monotonique, comme a B c d, et plus de 3 caractères consécutifs identiques, tels que 1111.
Pour forcer les utilisateurs à utiliser un mot de passe avec une longueur minimale de 8 Les personnages, y compris toutes les classes de caractères, la vérification de la force pour les séquences de caractères et les caractères consécutifs ajoutent les lignes suivantes au / etc / sécurité / pwquality.confli déposer.
minlen = 8 minclass = 4 maxSequence = 3 maxrepeat = 3
26. Utiliser le vieillissement du mot de passe
La commande chage peut être utilisée pour le vieillissement du mot de passe utilisateur. Pour définir le mot de passe d'un utilisateur pour expirer 45 jours, utilisez la commande suivante:
# chage -m 45 nom d'utilisateur
Pour désactiver le temps d'expiration du mot de passe Utilisez la commande:
# chage -m -1 nom d'utilisateur
Forcer l'expiration immédiate du mot de passe (l'utilisateur doit modifier le mot de passe lors de la connexion suivante) en exécutant la commande suivante:
# chage -d 0 nom d'utilisateur
27. Verrouiller les comptes
Les comptes d'utilisateurs peuvent être verrouillés en exécutant le passage ou commande usermod:
# passwd -l nom d'utilisateur # usermod -l nom d'utilisateur
Pour déverrouiller les comptes utilisez le -u
option pour passage commande et -U
option pour usermod.
28. Empêcher l'accès des comptes Shell
Pour éviter un compte système (compte ordinaire ou compte de service) pour accéder à un coquille bash, modifiez / usr / sbin / nologine ou / bin / false dans le / etc / passwd dossier en émettant la commande ci-dessous:
# usermod -s / bin / faux nom d'utilisateur
Pour modifier le shell lors de la création d'un nouvel utilisateur Issue la commande suivante:
# userAdd -s / usr / sbin / nologin Nom d'utilisateurArticle associé: Apprenez 15 exemples de commande «userAdd» dans Linux
29. Verrouiller la console utilisateur virtuel avec Vlock
vlock est un programme utilisé pour verrouiller une session multiple sur la console Linux. Installez le programme et commencez à verrouiller votre session de terminal en exécutant les commandes ci-dessous:
# yum installer vlock # vlock
30. Utilisez un système centralisé pour gérer les comptes et l'authentification
L'utilisation d'un système d'authentification centralisé peut considérablement simplifier la gestion et le contrôle des comptes. Les services qui peuvent offrir ce type de gestion des comptes sont IPA Server, LDAP, Kerberos, Microsoft Active Directory, NIS, Samba Ads ou Winbind.
Certains de ces services sont par défaut hautement sécurisés avec les protocoles cryptographiques et la cryptographie à clé symétrique, comme Kerberos.
Article associé: Configuration du serveur NFS avec authentification utilisateur basée sur Kerberos dans Linux31. Force le montage en lecture seule des médias USB
En utilisant blocage Utilitaire Vous pouvez forcer tous les médias amovibles à monter en lecture seule. Par exemple, créez un nouveau udev Fichier de configuration nommé 80-lecture-USB.règles dans le / etc / udev / règles.d/ Répertoire avec le contenu suivant:
Sous-système == "Block", attrs amovible == "1", run programme = "/ sbin / blockdev --setro% n"
Ensuite, appliquez la règle avec la commande ci-dessous:
# Udevadm Control -reloadArticle associé: Comment utiliser UDEV pour la détection et la gestion des appareils dans Linux
32. Désactiver l'accès racine via Tty
Pour empêcher le compte racine de effectuer une connexion du système via tous.
# cp / etc / secutty / etc / secutty.BAK # CAT / DEV / NULL> / ETC / SECURETTY
N'oubliez pas que cette règle ne s'applique pas aux séances de connexion SSH
Pour empêcher la connexion racine via SSH, modifiez le fichier / etc / ssh / sshd_config et ajouter la ligne ci-dessous:
Permutrootlogine noArticle associé: Comment sécuriser et durcir le serveur OpenSSH
33. Utilisez POSIX ACLS pour étendre les autorisations système
Les listes de contrôle d'accès peuvent définir les droits d'accès pour plus qu'un simple utilisateur ou groupe et peuvent spécifier des droits pour les programmes, les processus, les fichiers et les répertoires. Si vous définissez ACL sur un répertoire, ses descendants hériteront automatiquement les mêmes droits.
Par exemple,
# setfacl -m u: utilisateur: fichier rw # fichier getfaclArticle associé: Configuration des quotas ACL et disque pour les utilisateurs / groupes dans Linux
34. Configuration de SELINUX EN MODE ENFORCE
Le Selinux L'amélioration du noyau Linux implémente la stratégie de contrôle d'accès obligatoire (Mac), permettant aux utilisateurs de définir une politique de sécurité qui fournit des autorisations granulaires à tous les utilisateurs, programmes, processus, fichiers et appareils.
Les décisions de contrôle d'accès du noyau sont basées sur tout le contexte de la sécurité et non sur l'identité de l'utilisateur authentifié.
Obtenir Selinux La stratégie d'état et d'application exécute les commandes ci-dessous:
# GETENFORCE # setenforce 1 # SestatusArticle associé: Configuration de la politique de contrôle d'accès obligatoire avec SELINUX
35. Installer SELINUX Utilitaires supplémentaires
Installer Policycoréutils-python Package qui fournit des utilitaires Python supplémentaires pour le fonctionnement Selinux: Audit2Allow, audit2 pourquoi, chcat, et sémanage.
Pour afficher toutes les valeurs booléennes avec une brève description, utilisez la commande suivante:
# SEMANAGE BOOLEAN -L
Par exemple, pour afficher et définir la valeur de httpd_enable_ftp_server, Exécutez la commande ci-dessous:
# getsebool httpd_enable_ftp_server
Pour que la valeur d'un booléen persiste à travers les redémarrages, spécifiez le -P
option de Setsebool, comme illustré sur l'exemple suivant:
# setSebool -p httpd_enable_ftp_server sur
36. Utiliser le serveur de journaux centralisés
Configurer rsyslog Daemon pour envoyer des messages de journal des utilitaires sensibles à un serveur de journal centralisé. Surveillez également les fichiers journaux à l'aide de l'utilitaire LogWatch.
L'envoi de messages de journal à un serveur distant garantit qu'une fois le système compromis, les utilisateurs malveillants ne peuvent pas masquer complètement leur activité, laissant toujours des traces sur les fichiers journaux distants.
Article associé: 4 meilleurs outils de surveillance et de gestion des journaux Linux37. Activer la comptabilité du processus
Activer la comptabilité du processus en installant l'utilitaire PSACCT et l'utilisation camarade Commande pour afficher des informations sur les commandes précédemment exécutées comme enregistré dans le fichier de comptabilité système et SA Pour résumer des informations sur les commandes précédemment exécutées comme enregistré dans le fichier de comptabilité du système.
38. Durcissement / etc / sysctl.confli
Utilisez les règles de paramètres du noyau suivant pour protéger le système:
Désactivation du routage des sources
filet.ipv4.confli.tous.accepter_source_route = 0
Désactiver le transfert IPv4
ipv4.confli.tous.transfert = 0
Désactiver IPv6
filet.ipv6.confli.tous.disable_ipv6 = 1 net.ipv6.confli.défaut.disable_ipv6 = 1 net.ipv6.confli.à.disable_ipv6 = 1
Désactiver l'acceptation et l'envoi de paquets redirigés ICMP, sauf s'il est spécifiquement requis.
filet.ipv4.confli.tous.accepter_redirects = 0 net.ipv4.confli.tous.Secure_Redirects = 0 Net.ipv4.confli.tous.send_redirects = 0
Désactiver le transfert de chemin inversé
filet.ipv4.confli.tous.rp_filter = 2
Ignorez toutes les demandes d'écho ICMP (réglées sur 1 pour activer)
filet.ipv4.icmp_echo_ignore_all = 0
39. Utilisez des services VPN pour accéder à vos locaux sur des réseaux publics non protégés
Utilisez toujours VPN Services pour les opérateurs pour accéder à distance aux locaux LAN sur Internet. Ces types de services peuvent être configurés à l'aide d'une solution open source gratuite, telle que OpenVPN, ou à l'aide d'une solution propriétaire, telle que Cisco VPN (installer vpnc Utilité de ligne de commande fournie par les référentiels EPEL).
Article associé: Installez le serveur OpenVPN avec les clients Windows dans CentOS40. Effectuer une analyse du système externe
Évaluez la sécurité de votre système pour les vulnérabilités en scannant le système à partir de points distants sur votre LAN en utilisant des outils spécifiques tels que:
- Nmap - Scanner réseau 29 exemples de commande NMAP
- Nessus - scanner de sécurité
- Ouverts - Utilisé pour rechercher des vulnérabilités et une gestion complète des vulnérabilités.
- Nikto - Une excellente interface de passerelle commune (CGI) scanner scanner web vulnérabilité dans Linux
41. Protéger le système en interne
Utilisez la protection des systèmes internes contre les virus, les rootkits, les logiciels malveillants et, en tant que bonne pratique, installer des systèmes de détection d'intrusion qui peuvent détecter l'activité non autorisée (attaques DDOS, analyses de port), telles que:
- Aide - Advanced Intrusion Detection Environment - http: // aide.sourceforge.filet/
- Clamav - Scanner antivirus https: // www.clamp.filet
- Rkhunter - scanner rootkit
- Lynis - Outil d'audit et d'analyse de sécurité pour Linux
- Trimestre - Sécurité et intégrité des données http: // www.trimestre.com /
- Fail2ban - Prévention du réseau d'intrusion
- Ossec - (HIDS) Système de détection d'intrusion basé sur l'hôte http: // ossec.github.io /
- Mod_security - Protéger la force brute ou les attaques DDOS
42. Modifier les variables de l'environnement utilisateur
Ajouter date et temps format pour stocker les commandes exécution en émettant la commande ci-dessous:
# echo 'HistTimeFormat = "% d /% m /% y% t"' >> .Bashrc '
Forcer à enregistrer instantanément Histfile Chaque fois qu'une commande est tapée (au lieu de se déconnecter):
# echo 'inside_command = "History -a"' >> .bashrc
Limitez la session de connexion du délai. Déchirure automatiquement la coquille lorsqu'aucune activité n'est effectuée pendant une période de temps inactive. Très utile pour déconnecter automatiquement les sessions SSH.
# echo 'tmout = 120' >> .bashrc
Appliquez toutes les règles en exécutant:
# source .bashrcArticle associé: Définir les variables d'environnement utilisateur dans Linux
43. Données de sauvegarde
Utilisez des utilitaires de sauvegarde, tels que TAR, CAT, RSYNC, SCP, SNOPSHOTS LVM, etc. afin de stocker une copie de votre système, de préférence hors site, en cas d'échec d'un système.
Si le système est compromis, vous pouvez effectuer une restauration de données à partir des sauvegardes précédentes.
Enfin, n'oubliez pas que peu importe le nombre de mesures de sécurité et de contra-mesures que vous prenez pour assurer la sécurité de votre système, vous ne serez jamais complètement sécurisé à 100% tant que votre machine est branchée et mise sous tension.
- « Comment installer PostgreSQL et PGADMIN4 dans Ubuntu 20.04
- Configuration de Zimbra Collaboration Suite (ZCS) sur RHEL / CENTOS 7/8 »