Contrôle de sécurité du compte de gestion du système Linux et commandes d'autorisation sudo CentOS 7

1. Contrôle de la sécurité des comptes

(1) Nettoyage du compte système

1. Définissez le shell de l'utilisateur non connecté sur / sbin / nologin ou / bin / falsh

usermod -s /sbin/nologin 用户名

2. Verrouillez les comptes qui n'ont pas été utilisés depuis longtemps

usermod -L 用户名           锁定用户账户  
usermod -U 用户             解锁用户账户

passwd -l 用户名            锁定用户密码
passwd -u 用户名            解锁用户账户
passwd -S 用户名            查看用户状态

3. Supprimer les comptes inutiles

userdel -r 用户名           删除用户及其宿主目录 

4. Effacer un mot de passe de compte

passwd -d 用户名            清空账户密码

5. Verrouiller les fichiers de compte passwd, shadow

chattr +i /etc/passwd /etc/shadow      锁定文件 (passwd和shadow可以同时锁定)
lsattr /etc/passwd /etc/shadow         查看文件状态
chattr -i /etc/passwd /etc/shadow      解锁文件

Insérez la description de l'image ici
Insérez la description de l'image ici

Les informations de compte utilisateur stockées dans / etc / passwd et / etc / shadow, verrouiller on ne peut pas créer d'utilisateurs et changer les mots de passe

(2) Contrôle de la sécurité du mot de passe

1. Définissez la période de validité du mot de passe

chage -M 日期 用户 用户名       设置用户密码有效期 (适用已有用户)
chage -E xxxx-xx-xx 用户名     设置账户过期日期

Insérez la description de l'image ici

vi /etc/login.defs            修改密码配置文件(适用于新建用户)

PASS_MAX_DAYS 30              修改之后的所有创建的用户有效期都会默认成30天

Insérez la description de l'image ici
Insérez la description de l'image ici

cat /etc/shadow | grep 用户名   查看密码有效日期是否配置成功

2. Forcer à changer le mot de passe pour la prochaine connexion

chage -d 0 用户                    强制在下次登陆时更改密码               
cat /etc/shadow | grep 用户        shadow文件中的第三个字段被修改为0

(3) Restrictions de l'historique des commandes

1. Réduisez le nombre de commandes enregistrées

Le fichier / etc / profile est le fichier de configuration de la variable globale du système, qui peut être lu et rechargé en redémarrant le système ou en exécutant la commande source / etc / profile.

[root@localhost ~]# vim /etc/profile          编辑全局变量配置文件    
export HISTSIZE=150                 默认1000条 输入=150
:wq
[root@localhost ~]# source /etc/profile       相当使/etc/profile内的命令重载一遍
[root@promote ~]#history

Insérez la description de l'image ici
Insérez la description de l'image ici
Insérez la description de l'image ici

2. Effacez automatiquement la commande d'historique lors de la connexion

Les commandes du fichier ~ / .bashrc seront exécutées à chaque fois qu'un nouveau shell bash est ouvert (y compris le système de connexion)

[root@localhost ~]# vim ~/.bashrc
echo " " > ~/.bash_history       
:wq
init 6
history

(4) Déconnexion automatique du terminal

Déconnexion automatique après 600 secondes d'inactivité, similaire à la réduction du nombre d'enregistrements historiques ci-dessus, aucune démonstration

vi /etc/profile        //编辑全局变量配置文件
export TMOUT=300       //输出timeout=300
. /etc/profile

Deux, utilisez la commande su pour changer d'utilisateur

1. Objectif et utilisation
Objectif: Utilisateur suppléant, changer d'utilisateur
Format: utilisateur su-cible
2. Vérification du mot de passe

  • root: tout utilisateur, pas de vérification du mot de passe
  • Utilisateur ordinaire - autres utilisateurs, vérifiez le mot de passe de l'utilisateur cible

su-root with-option signifie que l'environnement shell de connexion de l'utilisateur cible sera utilisé

(1) Empêcher les utilisateurs d'utiliser la commande su

  • Ajouter des utilisateurs autorisés à utiliser la commande su au groupe de roues
  • Activer le module d'authentification pam_wheel

La commande su présente des risques pour la sécurité: la
commande su oblige chaque utilisateur à essayer à plusieurs reprises le mot de passe de connexion des autres utilisateurs. S'il s'agit de l'utilisateur root, le risque est encore plus grand.
Par conséquent, il est nécessaire de renforcer le contrôle de l'utilisation de la commande su. Vous pouvez utiliser le module d'authentification PAM pour n'autoriser qu'un très petit nombre d'utilisateurs désignés à utiliser la commande su pour basculer

Ajouter des utilisateurs autorisés à utiliser la commande su au groupe de roues

 gpasswd -a admin wheel     将用户“admin”加入到wheel组中

Défini dans le fichier /etc/pam.d/su pour interdire aux utilisateurs d'utiliser la commande su

vim /etc/pam.d/su 

auth    sufficient   pam_rootok.so
............
#auth   required     pam_wheel.so use_uid
............

Insérez la description de l'image ici

  • Les deux lignes ci-dessus sont dans l'état par défaut (c'est-à-dire, ouvrez la première ligne et commentez la deuxième ligne). Dans cet état, tous les utilisateurs sont autorisés à utiliser la commande su pour basculer
  • Le commentaire des deux lignes permet également à tous les utilisateurs d'utiliser la commande su, mais l'utilisation de su sous root pour passer à d'autres utilisateurs ordinaires nécessite un mot de passe; si la première ligne n'est pas commentée, root utilise su pour changer d'utilisateurs ordinaires sans entrer de mot de passe
    (pam_rootok. La fonction principale du module so est de permettre aux utilisateurs dont l'uid est 0, c'est-à-dire que l'utilisateur root peut directement passer l'authentification sans entrer de mot de passe)
  • Si vous activez la deuxième ligne, cela signifie que seuls l'utilisateur root et les utilisateurs du groupe wheel peuvent utiliser la commande su
  • Si vous commentez la première ligne et ouvrez la deuxième ligne, cela signifie que seuls les utilisateurs du groupe wheel peuvent utiliser la commande su et que l'utilisateur root est également désactivé.

Afficher l'enregistrement d'opération su
Fichier journal de sécurité: / var / log / secure

cat /var/log/secure

Troisièmement, l'authentification de sécurité PAM sous Linux

1. Les dangers cachés de la commande su

  • Par défaut, tout utilisateur est autorisé à utiliser la commande su et a la possibilité d'essayer à plusieurs reprises le mot de passe de connexion d'autres utilisateurs (comme root), ce qui présente des risques de sécurité
  • Afin de renforcer le contrôle de l'utilisation de la commande su, le module d'authentification PAM peut être utilisé pour n'autoriser que très peu d'utilisateurs à utiliser la commande su pour basculer

2. Module d'authentification enfichable PAM

  • C'est une méthode d'authentification au niveau utilisateur efficace, flexible et pratique
  • C'est également une méthode d'authentification couramment utilisée pour les serveurs Linux

3. Principes de l'authentification PAM

  • L'authentification PAM suit généralement la loi
    Service (service) → PAM (fichier de configuration) → pam _ *. Authentification soPAM
  • Déterminez d'abord quel service, puis chargez le fichier de configuration PAM correspondant (situé sous /etc/pam.d), et enfin appelez le fichier d'authentification (situé sous / lib64 / security) pour l'authentification de sécurité
  • Lorsqu'un utilisateur accède au serveur, un certain programme de service du serveur envoie la demande de l'utilisateur au module PAM pour authentification
  • Les modules PAM correspondant aux différentes applications sont différents

Si vous souhaitez vérifier si un programme prend en charge l'authentification PAM, vous pouvez utiliser la commande ls pour vérifier /etc/pam.d/

vim /etc/pam.d/su 

Insérez la description de l'image ici

1. La première colonne représente le type de module d'authentification PAM

  • auth: identifiez l'identité de l'utilisateur, si vous êtes invité à entrer un mot de passe, déterminez s'il s'agit de root.
  • compte: vérifiez les différents attributs du compte, par exemple s'il est autorisé à se connecter au système, si le compte a expiré, s'il a atteint le nombre maximum d'utilisateurs, etc.
  • mot de passe: utilisez les informations utilisateur pour mettre à jour les données, telles que la modification des mots de passe utilisateur
  • session: définit la gestion des opérations de session à effectuer avant la connexion et après la déconnexion, comme les informations de connexion de connexion, l'ouverture et la fermeture des données utilisateur, le montage du système de fichiers

2. La deuxième colonne représente la marque de contrôle PAM

  • obligatoire: indique qu'une valeur de succès doit être renvoyée. Si le retour échoue, le résultat de l'échec ne sera pas renvoyé immédiatement, mais la prochaine vérification du même type se poursuivra. Une fois tous les modules de ce type exécutés, l'échec sera revenu
  • requisite: similaire à required, mais si ce module retourne un échec, il retournera immédiatement un échec et indiquera que ce type de panne
  • Suffisant: si ce module renvoie succès, il renvoie directement le succès au programme, ce qui signifie ce type de succès, s'il échoue, il n'affecte pas la valeur de retour de ce type
  • facultatif: ne renvoie pas de succès ou d'échec, généralement non utilisé pour la vérification, affiche simplement les informations (généralement utilisées pour le type de session)
  • include: indique que d'autres fichiers de configuration PAM sont appelés pendant le processus de vérification. Par exemple, de nombreuses applications pour obtenir une certification complète en appelant /etc/pam.d/system-auth (principalement responsable de la certification du système de connexion utilisateur) sans avoir besoin de reconfigurer les éléments un par un pour écrire des
    exemples PAM
Utilisateur 1 Utilisateur 2 Utilisateur 3 Utilisateur 4
auth obligatoire Module 1 passe échouer passe passe
auth suffisant Module 2 passe passe échouer passe
auth obligatoire Module 3 passe passe passe échouer
résultat passe échouer passe passe

3. La troisième colonne représente le module PAM, la valeur par défaut est dans le répertoire / lib64 / security /, si ce n'est pas dans le chemin par défaut, remplissez le chemin absolu

4. La quatrième colonne représente les paramètres du module PAM, qui doivent être ajoutés en fonction du module utilisé.

Insérez la description de l'image ici

Quatrièmement, utilisez le mécanisme sudo pour escalader les droits

(I. Aperçu

1. sudo est une commande autorisée
Objectif: exécuter des commandes autorisées en tant qu'autres utilisateurs (comme root)

(2) Configurer l'autorisation sudo

1. Commande:

 visudo
 或者
 vi /etc/sudoers(此文件的默认权限为 440,保存退出时必须执行“:wq!”命令来强制操作)

2. Format
Nom d'hôte utilisateur = liste de programmes de commande nom d'hôte d'utilisateur = liste de programmes de commande
(utilisateur)

  • Utilisateur: autorisez directement le nom d'utilisateur spécifié ou utilisez la forme "% nom du groupe" (autorisez tous les utilisateurs d'un groupe
  • Nom d'hôte: nom d'hôte qui utilise cette règle. Localhost peut être utilisé si le nom d'hôte n'est pas configuré, le nom d'hôte réel est utilisé si le nom d'hôte est configuré et ALL signifie tous les hôtes
  • (Utilisateur): dans quelle identité l'utilisateur peut exécuter la commande. Cet élément peut être omis. Par défaut, la commande est exécutée en tant qu'utilisateur root
  • Liste des programmes de commande: commandes privilégiées que les utilisateurs autorisés sont autorisés à exécuter via le mode sudo. Le chemin complet du programme de commande doit être renseigné et les commandes multiples sont séparées par des virgules ",". TOUT signifie toutes les commandes du système

étude de cas:

admin ALL=/sbin/ifconfig          //说明admin在所有主机上拥有ifconfig权限
admin1 localhost=/sbin/*,!/sbin/reboot,!/sbin/poweroff	  //通配符“*”表示所有、取反符号“!”表示排除   //说明admin1拥有除了重启和关机的所有权限
%wheel ALL=NOPASSWD: ALL	  //表示wheel组成员无需验证密码即可使用sudo执行任何命令
admin2 ALL=(root)NOPASSWD: /bin/kill, /usr/bin/killall    //说明admin2用户不需要输入密码即可执行kill和killall命令

(3) Démarrer le journal des opérations sudo

visudo                             //进入编辑
Defaults logfile = /var/log/sudo   //将该命令添加至最后一行:wq保存并退出即可

(4) Création d'alias

1. Format:
alias utilisateur User_Alias ​​Alias ​​d'
hôte Host_Alias ​​Alias ​​de
commande Cmnd_Alias
2. Exemple d'analyse:

User_Alias ADMIN=admin1,admin2,admin3             用户的别名users包括:admin1,admin2,admin3
Host_Alias HOST=localhost   主机别名hosts包括:localhost,hellolee
Cmnd_Alias CMD=/sbin/*,!/sbin/reboot,!/sbin/poweroff
ADMIN HOST=CMD        相当于:用户组   主机组  =  命令程序列表

Insérez la description de l'image ici
Insérez la description de l'image ici
Insérez la description de l'image ici

Cinq, contrôle de sécurité de la machine de commutation

1. Ajustez les paramètres de démarrage du BIOS

  • Définissez le premier périphérique de démarrage sur le disque dur sur lequel se trouve le système actuel
  • Interdire le démarrage du système à partir d'autres périphériques (CD, disque U, réseau)
  • Définissez le niveau de sécurité pour la configuration et définissez le mot de passe administrateur
    2, restrictions GRUB
  • Utilisez grub2-mkpasswd-pbkdf2 pour générer une clé
  • Modifier le fichier /etc/grub.d/00_header, ajouter un enregistrement de mot de passe
  • Générer un nouveau fichier de configuration grub.cfg

(1) Restreindre les modifications des paramètres de démarrage GRUB

1. Dans des circonstances normales, lorsque le système est démarré dans le menu GRUB, appuyez sur la touche e pour afficher et modifier les paramètres de démarrage de GRUB, ce qui constitue une grande menace pour le serveur.
2. Un mot de passe peut être défini pour le menu GRUB, et seul le mot de passe correct est autorisé à modifier les paramètres de démarrage.

grub2-mkpasswd-pbkdf2 	    //根据提示设置GRUB 菜单的密码
PBKDF2 hash of your password is ……  //省略部分内容为经过加密生成的密码字符串

cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak  //备份文件
cp /etc/grub.d/00_header /etc/grub.d/00_header.bak

vim /etc/grub.d/00_header

cat << EOF
set superusers="root"		  //设置用户名为root
password_pbkdf2 root 密码字符串	//设置密码,省略部分内容为经过加密生成的密码字符串
EOF

grub2-mkconfig -o /boot/grub2/grub.cfg	//生成新的 grub.cfg 文件

1. Ajoutez une chaîne de génération de mot de passe

Insérez la description de l'image ici
2. Fichiers de sauvegarde

Insérez la description de l'image ici
3. Modifiez le fichier de configuration

vim /etc/grub.d/00_header

Insérez la description de l'image ici
4. Résultat de la vérification
Insérez la description de l'image ici
Insérez la description de l'image ici

(2) Interdire la connexion de l'utilisateur root

Dans un système Linux, le programme de connexion lira le fichier / etc / securetty pour déterminer quels terminaux (terminaux sécurisés) sont autorisés à se connecter au système à partir de l'utilisateur root.

vi /etc/securetty           
#tty5           //想要不让在哪个终端登陆就在该终端前加注释#
tty6         

(3) Il est interdit aux utilisateurs ordinaires de se connecter

Le programme de connexion vérifiera si le fichier / etc / nologin existe, et s'il existe, il refusera aux utilisateurs ordinaires de se connecter au système (les utilisateurs root ne sont pas limités).

touch /etc/nologin			//创建/etc/nologin文件即禁止普通用户登录
rm -rf /etc/nologin			//删除该文件即取消登录限制

Je suppose que tu aimes

Origine blog.csdn.net/weixin_53567573/article/details/113844575
conseillé
Classement