1 运维背景

运维的项目要过三级等保,需对现有服务器进行整改。
Tips:在对配置文件进行修改前请务必备份;修改后验证不要在当前终端验证,请重开一个新终端验证!!!
整改环境:Centos7.6、Ubuntu16.04

2 Centos7.6整改项目

2.1 账号口令过期时间及复杂度

1、备份配置文件

cp /etc/login.defs /etc/login.defs.bak
cp /etc/pam.d/system-auth /etc/pam.d/system-auth.bak

2、更改口令过期时间

vim /etc/login.defs
PASS_MAX_DAYS 90    # 口令过期时间, 99999:永不过期
PASS_MIN_DAYS 0        # 0可随时修改,非0多少天后才可修改
PASS_WARN_AGE 7     # 口令失效前7天在用户登录时提醒修改密码
PASS_MIN_LEN 8        # 口令最小长度,修改pam_cracklib module后该参数不生效

3、更改口令复杂度

vim /etc/pam.d/system-auth
password requisite pam_cracklib.so minlen=8 ucredit=-2 lcredit=-1 dcredit=-4 ocredit=-1

minlen        # 口令最小长度
ucredit        # 大写字母个数
lcredit        # 小写字母个数
dcredit        # 数字个数
ocredit        # 特殊字符个数

2.2 连接超时及登录失败次数锁定

1、备份配置文件

cp /etc/pam.d/login /etc/pam.d/login.bak
cp /etc/profile /etc/profile.bak

2、登录失败次数锁定

vim /etc/pam.d/login
auth required pam_tally2.so deny=5 unlock_time=300 even_deny_root root_unlock_time=600

deny                # 失败锁定次数
unlock_time            # 锁定后解锁要等待的时间
even_deny_root        # root用户失败锁定次数同普通用户
root_unlock_time    # root用户锁定后解锁要等待的时间

3、连接超时时间

vim /etc/profile
export TMOUT=300    #没有就添加一行,300s超时
source /etc/profile    #使配置生效。如果执行该命令报如下错误,其实已经成功退出当前终端即可
“-bash: TMOUT: readonly variable”

2.3 三权分立

以下账户权限可根据实际需求进行调整

a) 系统管理员

1、创建用户

useradd sysadmin
passwd sysadmin

2、加入wheel用户组,容许使用su

usermod -G wheel sysadmin

3、请务必另开终端测试sysadmin账号是否能提升至root!!!

vi /etc/pam.d/su
确保“auth required pam_wheel.so use_uid”未被注释,该配置限制su命令仅限wheel用户组使用

b) 审计管理员

1、创建用户

useradd shenji
passwd shenji

2、配置审计管理员查看权限

vi /etc/sudoers
# 添加一行
shenji     ALL = (root) NOPASSWD: /usr/bin/cat,/usr/bin/less,/usr/bin/more,/usr/bin/tail,/usr/bin/head

3、只容许审计管理员访问日志

chown -R shenji:shenji /var/log
chmod 700 /var/log

c) 安全管理员

1、创建账号并指定目录

useradd -d /etc anquan
passwd anquan

2、配置/etc权限,只容许安全管理员访问

注意:此命令会导致无法修改密码,将权限更改后可以修改密码

chown -R anquan:anquan /etc
# 查看三个用户是否创建成功
cat /etc/passwd 

2.4 修改或禁用默认root账号

请根据实际项目需求自行选择修改root用户名或禁用root账号。

a) 修改root账户名

1、备份配置文件

cp /etc/passwd /etc/passwd.bak
cp /etc/shadow /etc/shadow.bak

2、修改passwd和shadow文件

vi /etc/passwd
vi /etc/shadow
# 修改两个配置文件的第一行root为你想修改的名字

b) 禁用root账户

本项目一些特殊场景下需要使用root,所以采用禁用root账号的方案

1、备份配置文件

cp /etc/pam.d/login /etc/pam.d/login.bak
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

2、禁止root本地登录

vi /etc/pam.d/login
# 添加一行
auth required pam_succeed_if.so user != root quiet

3、禁止root远程ssh登录

vi /etc/ssh/sshd_config
# 将‘#PermitRootLogin yes’改为
PermitRootLogin no
service sshd restart    #重启SSH服务

2.5 开启日志审计并保存6个月日志

1、开启日志审计功能

systemctl start auditd.service

2、修改保存时间

vi /etc/logrotate.conf
# 将‘rotate 4’改为
rotate 25    #保存25周,即175天

3 ubuntu16.04整改项目

3.1 三权分立

a) 系统管理员

1、创建用户

adduser sysadmin
passwd sysadmin

2、容许sysadmin提升root权限

vi /etc/sudoers
# 在‘root  ALL=(ALL)  ALL’下添加一行
sysadmin    ALL=(ALL) ALL
# 该文件为只读模式,使用'x!'强制保存

b) 审计管理员

1、创建用户

adduser shenji
passwd ahenji

2、配置审计管理员查看权限

vi /etc/sudoers
# 添加一行
shenji     ALL = (root) NOPASSWD: /usr/bin/cat,/usr/bin/less,/usr/bin/more,/usr/bin/tail,/usr/bin/head

c) 安全管理员

1、创建用户

adduser anquan
passwd anquan

2、配置/etc权限,只容许安全管理员访问
注意:此命令会导致无法修改密码,将权限更改后可以修改密码

chown -R anquan /etc
# 查看三个用户是否创建成功
cat /etc/passwd 

3.2 账号口令过期时间及复杂度

1、备份配置文件

cp /etc/shadow /etc/shadow.bak

2、更改口令过期时间

vi /etc/shadow

例:admin:*:18885:0:99999:7:::
第三个冒号和第四个冒号之间:修改口令所需的最短时间
第四个冒号和第五个冒号之间:口令保持的最大有效时间

3、更改口令复杂度

Ubuntu检测口令复杂度需要安装第三方模块,该模块网上使用说明很多就不赘述了。

apt -y install libpam-pwquality

3.3 连接超时及登录失败次数锁定

1、备份配置文件

cp /etc/pam.d/login /etc/pam.d/login.bak
cp /etc/profile /etc/profile.bak

2、登录失败次数锁定

vim /etc/pam.d/login
auth required pam_tally2.so deny=5 unlock_time=300 even_deny_root root_unlock_time=600

deny                # 失败锁定次数
unlock_time            # 锁定后解锁要等待的时间
even_deny_root        # root用户失败锁定次数同普通用户
root_unlock_time    # root用户锁定后解锁要等待的时间

3、连接超时时间

vim /etc/profile
export TMOUT=300    #没有就添加一行,300s超时
source /etc/profile    #使配置生效

3.4 修改或禁用默认root账号

请根据实际项目需求自行选择修改root用户名或禁用root账号。

a) 修改root账户名

1、备份配置文件

cp /etc/passwd /etc/passwd.bak
cp /etc/shadow /etc/shadow.bak

2、修改passwd和shadow文件

vi /etc/passwd
vi /etc/shadow
# 修改两个配置文件的第一行root为你想修改的名字

b) 禁用root账户

本项目一些特殊场景下需要使用root,所以采用禁用root账号的方案

1、备份配置文件

cp /etc/pam.d/login /etc/pam.d/login.bak
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

2、禁止root远程ssh登录

vi /etc/ssh/sshd_config
# 将‘#PermitRootLogin yes’改为
PermitRootLogin no
/etc/init.d/ssh restart    #重启SSH服务

3.5 开启日志审计

1、备份配置文件

cp /etc/rsyslog.d/50-default.conf /etc/rsyslog.d/50-default.conf.bak

2、开启日志审计功能

vi /etc/rsyslog.d/50-default.conf
# 添加一段
*.=info;*.=notice;*.=warn;\
    auth,authpriv.none;\
    cron,daemon.none;\
    mail,news.none    -/var/log/messages
# 重启rsyslog
/etc/init.d/rsyslog restart

# 查看日志
tail -f /var/log/messages

3、修改保存时间

vi /etc/logrotate.conf
# 将‘rotate 4’改为
rotate 25    #保存25周,即175天

参考

文档更新时间: 2024-09-11 16:05   作者:李延召