Skip to content
Eternal Center

Eternal Center

  • Single-Node (单节点)
    • System (系统)
    • Service (服务)
    • Database (数据库)
    • Container (容器)
    • Virtualization (虚拟化)
  • Multi-Node (多节点)
    • Cluster (集群)
    • Big Data (大数据)
    • Cloud Computing (云计算)
    • Batch Processing (批量处理)
  • Approach (方式方法)
    • Languages (语言)
    • Ideas (思路)
    • Programing (编程)
    • Project (项目)
  • Eternity (永恒)
    • News (消息)
    • Creations (创作)
    • Classics (经典)
    • Legends (传说)
    • Chronicle (编年史)
    • FNIOS (宇宙公民开源学院)

Category: System Security (系统安全)

Posted on March 20, 2021June 3, 2024

[步骤] Linux 密码的安全 (本地输错密码次数的限制) (pam_tally2.so 版) (openSUSE & SLES 版)

正文:

步骤一:在 /etc/pam.d/login 配置文件中添加 pam_tally2.so 模块和相关参数

# vim /etc/pam.d/login

在此行:

......
auth        include     common-auth
......

下面添加:

......
auth      required   pam_tally2.so onerr=fail audit silent deny=15 unlock_time=3000 even_deny_root root_unlock_time=3000
......

在此行:

......
account     include     common-account
......

下面添加:

......
account     required    pam_tally2.so
......

或者:

# sed -i '/auth.*include.*common-auth/a auth      required   pam_tally2.so onerr=fail audit silent deny=15 unlock_time=3000 even_deny_root root_unlock_time=3000' /etc/pam.d/login; sed -i '/account.*include.*common-account/a account     required    pam_tally2.so' /etc/pam.d/login

(
补充:
1) 这里的 pam_tally2.so 代表使用 pam_tally2.so 模块
2) 这里的 silent 代表不会显示信息性的消息
3) 这里的 deny=15 代表输错 15 次后会禁止登录
4) 这里的 unlock_time=3000 代表禁止登录后 3000 毫秒后可以重新登录
5) 这里的 even_deny_root 代表 root 用户和其它用户一样会被锁住
6) 这里的 root_unlock_time=3000 代表禁止 root 用户登录后 3000 毫秒后可以重新登录
)

步骤二:用户登录失败的管理

2.1 显示某个用户近期输错了几次密码

# pam_tally2 -u <user>

2.2 重制某个用户登录密码输错次数

# pam_tally2 -u <user> -r --reset

步骤三:部分用户输错密码次数限制的排除

# vim /etc/pam.d/login

在此行:

......
auth        required    pam_tally2.so onerr=fail audit silent deny=15 unlock_time=3000 even_deny_root root_unlock_time=3000
......

下面添加:

......
auth [success=1 default=ignore] pam_succeed_if.so user in mingyuzhu1:mingyuzhu2:mingyuzhu3
......

(补充:这里以排除用户 zhumingyu1、zhumingyu2 和 zhumingyu3 的输错密码次数限制为例)

参考文献:

https://access.redhat.com/solutions/62949

Posted on March 20, 2021November 22, 2024

[步骤] Linux 密码的安全 (SSH 输错密码次数的限制) (pam_tally2.so 版) (openSUSE & SLES 版)

正文:

步骤一:在 /etc/pam.d/sshd 配置文件中添加 pam_tally2.so 模块和相关参数

# vim /etc/pam.d/sshd

在此行:

......
auth        include     common-auth
......

下面添加:

......
auth        required    pam_tally2.so onerr=fail audit silent deny=15 unlock_time=3000 even_deny_root root_unlock_time=3000
......

在此行:

......
account     include     common-account
......

下面添加:

......
account     required    pam_tally2.so
......

或者:

# sed -i '/auth.*include.*common-auth/a auth        required    pam_tally2.so onerr=fail audit silent deny=15 unlock_time=3000 even_deny_root root_unlock_time=3000' /etc/pam.d/sshd; sed -i '/account.*include.*common-account/a account     required    pam_tally2.so' /etc/pam.d/sshd

(
补充:
1) 这里的 pam_tally2.so 代表使用 pam_tally2.so 模块
2) 这里的 silent 代表不会显示信息性的消息
3) 这里的 deny=15 代表输错 15 次后会禁止登录
4) 这里的 unlock_time=3000 代表禁止登录后 3000 毫秒后可以重新登录
5) 这里的 even_deny_root 代表 root 用户和其它用户一样会被锁住
6) 这里的 root_unlock_time=3000 代表禁止 root 用户登录后 3000 毫秒后可以重新登录
)

步骤二:用户登录失败的管理

2.1 查看某个用户近期输错了几次密码

# pam_tally2 -u <user>

2.2 重制某个用户登录密码输错次数

# pam_tally2 -u <user> -r --reset

步骤三:部分用户输错密码次数限制的排除

# vim /etc/pam.d/sshd

在此行:

......
auth        required    pam_tally2.so onerr=fail audit silent deny=15 unlock_time=3000 even_deny_root root_unlock_time=3000
......

下面添加:

......
auth [success=1 default=ignore] pam_succeed_if.so user in mingyuzhu1:mingyuzhu2:mingyuzhu3
......

(补充:这里以排除用户 zhumingyu1、zhumingyu2 和 zhumingyu3 的输错密码次数限制为例)

参考文献:

https://access.redhat.com/solutions/62949

Posted on March 5, 2021July 9, 2023

[步骤] Linux su 命令白名单的设置 (通过指定的组实现)

步骤一:设置只有属于某个组的用户才能使用 su 命令

CentOS & RHEL 设置只有属于某个组的用户才能使用 su 命令

# sed -i '/auth.*include.*common-auth/a     auth     required       pam_wheel.so use_uid' /etc/pam.d/su

(
补充:
1) 这里以设置只有 wheel 才能使用 su 命令为例
2) 如果要指定另 1 个特定的组例如 canusesu 可以使用 su 命令,则命令为:

# sed -i '/auth.*include.*common-auth/a     auth     required       pam_wheel.so use_uid group=canusesu' /etc/pam.d/su

)

openSUSE & SUSE 设置只有属于某个组的用户才能使用 su 命令

# sed -i '/auth.*include.*common-auth/a     auth     required       pam_wheel.so use_uid' /etc/pam.d/su
# sed -i '/auth.*include.*common-auth/a     auth     required       pam_wheel.so use_uid' /etc/pam.d/su-l

(
补充:
1) 这里以设置只能 wheel 才能使用 su 命令为例
2) 如果要指定另 1 个特定的组例如 canusesu 可以使用 su 命令,则命令为:

# sed -i '/auth.*include.*common-auth/a     auth     required       pam_wheel.so use_uid group=canusesu' /etc/pam.d/su
# sed -i '/auth.*include.*common-auth/a     auth     required       pam_wheel.so use_uid group=canusesu' /etc/pam.d/su-l

)

步骤二:将需要使用 su 命令的用户添加到可以使用 su 命令的组里

# usermod -a -G wheel eternalcenter

(补充:这里以给用户 eternalcenter 添加附属组的方式将用户 eternalcenter 添加到 wheel 附属组为例)

步骤三:确保 /etc/group 配置文件中使用 su 命令的用户已添加到可以使用 su 命令的组里

# cat /etc/group | grep wheel
wheel:x:10:eternalcenter,root

(补充:这里以显示 eternalcenter 用户和 root 用户以添加附属组的方式添加到 wheel 组里为例)

步骤四:验证 su 命令白名单

4.1 以其他普通用户的身份使用 su 命令切换到其他用户

(步骤略)

(补充:就算密码正确也会显示 su: Authentication failure)

4.2 以在可以使用 su 命令的组里用户的身份使用 su 命令切换到其他用户

# su - eternalcenter
$ su - root
Posted on March 5, 2021November 22, 2024

[步骤] GRUB2 Bootloader 密码的设置 (CentOS Linux & RHEL 版)

步骤一:生成密码的 GRUB2 密码的 SHA512 值

# grub2-mkpasswd-pbkdf2
Enter password: 
Reenter password: 
PBKDF2 hash of your password is 
grub.pbkdf2.sha512.10000.
B857B79D02FF55CA3A69B8485C1A4A427424630C804CC8A89134520A34E056D7882A778F6BC8AD856CB95DF8B99BE25F9FEAD899D826BB3915FB20BAD682D10A.4A1CF49B7F815A0578031CCA2CE98C66BDFBEAB0AE2721531BB54AFC6CFFA990FBD9062F41C006376C283B717FEC1BD9BB1AFB882AF91B5F4A812459D7974D1F

(补充:这里以生成 eternalcenter 的 GRUB2 SHA512 值为例)

(注意:grub.pbkdf2.sha512.10000……. 后面的一长串字母和数字其实是 1 行,这里因为是显示问题所以看上去是多行)

步骤二:创建 GRUB2 密码文件

如果是 EFI 的 CentOS & RHEL:

# echo "GRUB2_PASSWORD=grub.pbkdf2.sha512.10000.B857B79D02FF55CA3A69B8485C1A4A427424630C804CC8A89134520A34E056D7882A778F6BC8AD856CB95DF8B99BE25F9FEAD899D826BB3915FB20BAD682D10A.4A1CF49B7F815A0578031CCA2CE98C66BDFBEAB0AE2721531BB54AFC6CFFA990FBD9062F41C006376C283B717FEC1BD9BB1AFB882AF91B5F4A812459D7974D1F" > /boot/efi/EFI/redhat/user.cfg

(
补充:
1) 登录用户 root
2) 登录密码 eternalcenter
3) 这里的 grub.pbkdf2.sha512.10000.B857B…… 是由步骤一生成的
)

(注意:这里其实只有 1 行,因为是显示问题所以看上去是多行)

如果是 BIOS 的 CentOS & RHEL:

# echo "GRUB2_PASSWORD=grub.pbkdf2.sha512.10000.B857B79D02FF55CA3A69B8485C1A4A427424630C804CC8A89134520A34E056D7882A778F6BC8AD856CB95DF8B99BE25F9FEAD899D826BB3915FB20BAD682D10A.4A1CF49B7F815A0578031CCA2CE98C66BDFBEAB0AE2721531BB54AFC6CFFA990FBD9062F41C006376C283B717FEC1BD9BB1AFB882AF91B5F4A812459D7974D1F" > /boot/grub2/user.cfg

(
补充:
1) 登录用户 root
2) 登录密码 eternalcenter
3) 这里的 grub.pbkdf2.sha512.10000.B857B…… 是由步骤一生成的
)

(注意:这里其实只有 1 行,因为是显示问题所以看上去是多行)

步骤三:测试 GRUB2 Bootloader 密码

3.1 重启系统

(步骤略)

3.2 进入到 GRUB2 Bootloader 模式

当启动系统时按下 “E” 键

补充:CentOS & RHEL 更改 GRUB2 的登录用户

如果是 EFI 的 CentOS & RHEL:

# vim /boot/efi/EFI/redhat/grub.cfg

将以下内容:

### BEGIN /etc/grub.d/01_users ###
if [ -f ${prefix}/user.cfg ]; then
  source ${prefix}/user.cfg
  if [ -n "${GRUB2_PASSWORD}" ]; then
    set superusers="root"
    export superusers
    password_pbkdf2 root ${GRUB2_PASSWORD}
  fi
fi
### END /etc/grub.d/01_users ###

修改为:

### BEGIN /etc/grub.d/01_users ###
if [ -f ${prefix}/user.cfg ]; then
  source ${prefix}/user.cfg
  if [ -n "${GRUB2_PASSWORD}" ]; then
    set superusers="eternalcenter"
    export superusers
    password_pbkdf2 root ${GRUB2_PASSWORD}
  fi
fi
### END /etc/grub.d/01_users ###

(补充:这里以将登陆用户设置为 eternalcenter 为例)

如果是 BIOS 的 CentOS & RHEL:

# vim /boot/grub2/grub.cfg

将以下内容:

### BEGIN /etc/grub.d/01_users ###
if [ -f ${prefix}/user.cfg ]; then
  source ${prefix}/user.cfg
  if [ -n "${GRUB2_PASSWORD}" ]; then
    set superusers="root"
    export superusers
    password_pbkdf2 root ${GRUB2_PASSWORD}
  fi
fi
### END /etc/grub.d/01_users ###

修改为:

### BEGIN /etc/grub.d/01_users ###
if [ -f ${prefix}/user.cfg ]; then
  source ${prefix}/user.cfg
  if [ -n "${GRUB2_PASSWORD}" ]; then
    set superusers="eternalcenter"
    export superusers
    password_pbkdf2 root ${GRUB2_PASSWORD}
  fi
fi
### END /etc/grub.d/01_users ###

(补充:这里以将登陆用户设置为 eternalcenter 为例)

Posted on March 4, 2021July 9, 2023

[工具] Shell 自动化部署 GRUB2 Bootloader 密码 (CentOS Linux & RHEL 版)

介绍

基本信息

作者:朱明宇
名称:自动化部署 GRUB2 Bootloader 密码(CentOS & RHEL 版)
作用:自动化部署 GRUB2 Bootloader 密码(CentOS & RHEL 版)

使用方法

1. 给此脚本添加执行权限
2. 执行此脚本
3. 当启动系统时,左下角出现以下内容时按下 “E”:

注意

1. 登录的账号是 root
2. 登录的密码是 eternalcenter

脚本

#!/bin/bash

if [ -d /sys/firmware/efi ]; then
        echo "GRUB2_PASSWORD=grub.pbkdf2.sha512.10000.B857B79D02FF55CA3A69B8485C1A4A427424630C804CC8A89134520A34E056D7882A778F6BC8AD856CB95DF8B99BE25F9FEAD899D826BB3915FB20BAD682D10A.4A1CF49B7F815A0578031CCA2CE98C66BDFBEAB0AE2721531BB54AFC6CFFA990FBD9062F41C006376C283B717FEC1BD9BB1AFB882AF91B5F4A812459D7974D1F" > /boot/efi/EFI/redhat/user.cfg
else
        echo "GRUB2_PASSWORD=grub.pbkdf2.sha512.10000.B857B79D02FF55CA3A69B8485C1A4A427424630C804CC8A89134520A34E056D7882A778F6BC8AD856CB95DF8B99BE25F9FEAD899D826BB3915FB20BAD682D10A.4A1CF49B7F815A0578031CCA2CE98C66BDFBEAB0AE2721531BB54AFC6CFFA990FBD9062F41C006376C283B717FEC1BD9BB1AFB882AF91B5F4A812459D7974D1F" > /boot/grub2/user.cfg
fi

Posts pagination

Previous page Page 1 … Page 29 Page 30 Page 31 … Page 48 Next page

Aspiration (愿景):

Everyone can achieve self-achievement and self-happiness fairly

每个人都能公平地实现自我成就和自我幸福

Logo (徽标):

Additional Information (其他信息):

About     Manual     Clone     Contact
Disclaimer     Friendly Links     Donation

关于     手册     克隆     联系
免责声明     友情链接     捐赠

Search Inside Website (站内搜索)

Search Outside Website (站外搜索):

Google         Wikipedia         Bing

Eternal URL (永恒网址):

https://eternity.eternalcenter.com Will be last access method / 将是最后的访问方式

Proudly powered by LNMP Proudly powered by WordPress