Skip to content

Kylin linux 服务器漏洞修复

鉴别信息

密码复杂度

  • 修改结果

密码复杂度

  • 操作修改
sh
# 查看system-auth配置
cat /etc/pam.d/system-auth
# 编辑system-auth配置
vim /etc/pam.d/system-auth
# 操作编辑
# i 进入编辑
# 密码最少8为,大写、小写、数字、特殊字符各至少2位
password requisite pam_pwquality.so minlen=8 dcredit=2 ucredit=2 lcredit=2 ocredit=2 try_first_pass local_users_only
# esc 退出编辑
# :wq 保存并退出
  • 参考配置
sh
pam_pwquality.so组件参数详解
retry=N:定义登录/修改密码失败时,可以重试的次数;
Difok=N:定义新密码中必须有几个字符要与旧密码不同。但是如果新密码中有1/2以上的字符与旧密码不同时,该新密码将被接受;
minlen=N:定义用户密码的最小长度;
dcredit=N:定义用户密码中必须包含多少个数字;
ucredit=N:定义用户密码中必须包含多少个大写字母;
lcredit=N:定义用户密码中必须包含多少个小写字母;
ocredit=N:定义用户密码中必须包含多少个特殊字符(除数字、字母之外);
其中= -1表示,至少有一个

密码有效期

  • 修改结果

密码有效期

  • 操作修改
sh
# 查看login.defs配置
cat /etc/login.defs
# 编辑login.defs配置
vim /etc/login.defs
# 操作编辑
# i 进入编辑
# 修改密码最大有效期180天
PASS_MAX_DAYS 180
# esc 退出编辑
# :wq 保存并退出

密码重用限制

  • 修改结果

密码重用限制

  • 操作修改
sh
# 查看system-auth配置
cat /etc/pam.d/system-auth
# 编辑system-auth配置
vim /etc/pam.d/system-auth
# 操作编辑
# i 进入编辑
# 密码重用限制设置为3次
password sufficient pam_unix.so remember=3 sha512 shadow nullok try_first_pass use_authtok
# esc 退出编辑
# :wq 保存并退出

登录失败

本地登录

  • 修改结果

本地登录

  • 操作修改
sh
# 查看system-auth配置
cat /etc/pam.d/system-auth
# 编辑system-auth配置
vim /etc/pam.d/system-auth
# 操作编辑
# i 进入编辑
# 失败5次后锁定600s
auth required pam_tally.so deny=5 unlock_time=600
# esc 退出编辑
# :wq 保存并退出
  • 参考配置
sh
pam_tally2组件参数详解
onerr=fail         表示定义了当出现错误(比如无法打开配置文件)时的缺省返回值;
even_deny_root     表示也限制root用户;
deny               表示设置普通用户和root用户连续错误登陆的最大次数,超过最大次数,则锁定该用户;
unlock_time        表示设定普通用户锁定后,多少时间后解锁,单位是秒;
root_unlock_time   表示设定root用户锁定后,多少时间后解锁,单位是秒;

远程登录

  • 修改结果

远程登录

  • 操作修改
sh
# 查看password-auth配置
cat /etc/pam.d/password-auth
# 编辑password-auth配置
vim /etc/pam.d/password-auth
# 操作编辑
# i 进入编辑
# 失败5次后锁定600s
auth required pam_tally.so deny=5 unlock_time=600
# esc 退出编辑
# :wq 保存并退出

访问权限控制

用户权限

  • 修改结果

文件权限调整1文件权限调整2

  • 操作修改
sh
# 设置etc/services文件的隐藏属性为----i-----(不可修改)
sudo chattr +i /etc/services
# 设置/etc/rc.d/init.d文件的拥有者为root账号,/etc/rc.d/init.d文件的访问权限为700(drwx-------)
sudo chown 700 /etc/rc.d/init.d

缺省访问权限

  • 修改结果

缺省访问权限

  • 操作修改
sh
# 查看login.defs配置
cat /etc/login.defs
# 编辑login.defs配置
vim /etc/login.defs
# 操作编辑
# i 进入编辑
# 设置UMASK权限为027
UMASK 027
# esc 退出编辑
# :wq 保存并退出

core dump

core dump功能禁用

  • 修改结果

core dump功能禁用

  • 操作修改
sh
# 查看core dump
ulimit -c
# 禁用core dump
ulimit -c 0

远程访问管理

远程登录密码尝试次数

  • 修改结果

远程登录密码尝试次数

  • 操作修改
sh
# 查看sshd_config配置
cat /etc/ssh/sshd_config
# 编辑sshd_config配置
vim /etc/ssh/sshd_config
# 操作编辑
# i 进入编辑
# 设置最大尝试次数
MaxAuthTriew 6
# esc 退出编辑
# :wq 保存并退出

远程空闲超时退出时间

  • 修改结果

远程空闲超时退出时间

  • 操作修改
sh
# 查看sshd_config配置
cat /etc/ssh/sshd_config
# 编辑sshd_config配置
vim /etc/ssh/sshd_config
# 操作编辑
# i 进入编辑
# 设置ssh客户端远程超时时间 600s
ClientAliveInterval 600
# 设置ssh客户端远程超时次数 0次
ClientAliveCountMax 0
# esc 退出编辑
# :wq 保存并退出

拒绝服务攻击防范

查看服务情况

bash
cat /proc/sys/net/ipv4/conf/*/accept_source_route

查看服务情况

dos 执行查看是哪个网络为1

bash
for iface in /proc/sys/net/ipv4/conf/*; do
    if [ -f "$iface/accept_source_route" ]; then
        value=$(cat "$iface/accept_source_route")
        iface_name=$(basename "$iface")
        echo "$iface_name: $value"
    fi
done

修改

bash
# 编辑配置
vim /etc/sysctl.conf
# 操作编辑
# i 进入编辑
# 设置网络状态为0
net.ipv4.conf.*这里是上面对应查处的网络*.accept_source_route = 0
# esc 退出编辑
# :wq 保存并退出