Linux服务器安全加固设置

Linux不需要的服务

服务器安全加固设置

密码安全

设置密码

echo "用户名:密码" | chpasswd
或者:

LinuxSetPWD1.png

设置密码策略

进入配置文件:vi /etc/login.defs

  • PASS_MAX_DAYS 730 # 密码最长有效期
  • PASS_MIN_DAYS 0 # 密码修改之间最小天数
  • PASS_MIN_LEN 8 # 密码长度
  • PASS_WARN_AGE 15 # 密码失效前多少天通知用户修改密码

对密码强度进行设置

进入配置文件:vi /etc/pam.d/password-auth

#password    requisite     pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=
password    requisite     pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=  difok=1 minlen=8 ucredit=-1 lcredit=-1 dcredit=-1
  • difok= 定义新密码中必须要有几个字符和旧密码不同
  • minlen= 新密码的最小长度
  • ucredit= 新密码中可以包含的大写字母的最大数目。-1:至少一个
  • lcredit= 新密码中可以包含的小写字母的最大数
  • dcredit= 新密码中可以包含的数字的最大数目

注:这个密码强度的设定只对"普通用户"有限制作用,root用户无论修改自己的密码还是修改普通用户的时候,不符合强度设置依然可以设置成功

用户安全

用户账户管理

  • userdel -r 用户名 # 删除不必要的账号
  • passwd -l 用户名 # 锁定不必要的账号
  • awk -F: '($7=="/bin/bash"){print $1}' /etc/passwd # 查看具有登录权限的用户
  • awk -F: '($3==0)' /etc/passwd # 查看UID为0的账号,UID为0的用户会自动切换到root用户,所以危害很大
  • awk -F: '($2=="")' /etc/shadow # 查看空口令账号,如果存在空口令用户的话必须设置密码

普通用户SSH登录

编辑文件 vi /etc/ssh/sshd_config

  • 普通用户ssh权限
    给普通用户增加ssh权限,可以多个,空格分开
    AllowUsers bsoft,AllowGroups wheel
    拒绝ssh的用户/用户组:
    DenyUsers username,DenyGroups groupname
    优先级: DenyUsers > AllowUsers > DenyGroups > AllowGroups
  • 禁止用root登录
    PermitRootLogin no
  • 加载配置,使其生效:
    systemctl restart sshd 或者 service restart sshd

PS:
允许user3使用ssh:echo "AllowUsers user3" >> /etc/ssh/sshd_config
阻止user1使用ssh:echo "DenyUsers user1" >> /etc/ssh/sshd_config

限制su命令切换到root用户,看需求配置

在linux中,有一个默认的管理组 wheel。在实际生产环境中,即使我们有系统管理员root的权限,也不推荐用root用户登录。一般情况下用普通用户登录就可以了,在需要root权限执行一些操作时,再su登录成为root用户。但是,任何人只要知道了root的密码,就都可以通过su命令来登录为root用户,这无疑为系统带来了安全隐患。所以,将普通用户加入到wheel组,被加入的这个普通用户就成了管理员组内的用户。然后设置只有wheel组内的成员可以使用su命令切换到root用户。

比如,我们将普通用户xie加入wheel组。
usermod -G wheel xie
PS:从用户组移除用户-gpasswd -d username usergorup

然后,修改配置文件 /etc/pam.d/su ,将这行的注释给去掉


del.png

然后去 /etc/login.defs 末尾加入 SU_WHEEL_ONLY yes 即可。


add.png

对用户的登录次数进行限制

编辑文件: vi /etc/pam.d/sshd

auth required pam_tally2.so deny=5 unlock_time=150 even_deny_root root_unlock_time=300
  • even_deny_root 也限制root用户
  • deny 设置普通用户和root用户连续错误登陆的最大次数,超过最大次数,则锁定该用户
  • unlock_time 设定普通用户锁定后,多少时间后解锁,单位是秒;
  • root_unlock_time 设定root用户锁定后,多少时间后解锁,单位是秒;

相关命令:

  • pam_tally2 查看被锁定的用户
  • pam_tally2 --reset -u username 将被锁定的用户解锁

数据安全

对重要文件锁定

chattr:改变文件或目录的扩展属性

  • lsattr 查看文件目录的扩展属性
  • chattr +i /etc/passwd /etc/shadow //增加属性
  • chattr -i /etc/passwd /etc/shadow //移除属性
  • lsattr /etc/passwd /etc/shadow

系统日志以及建立日志服务器

tail -f /var/log/messages # 程序日志
tail -f /var/log/secure # 登陆信息

建立日志服务器:详情见文末参考文档。
重要服务器可以将日志定向传输到指定服务器进行分析。

数据备份

其他

安全组:在控制台设置

设置账户历史命令、超时断连

编辑文件:vi /etc/profile

HISTSIZE=1000 # 历史命令条数 history
TMOUT=600 # 超时自动断连,单位为秒

加载配置:source /etc/profile

参考文档:

  • Linux服务器安全加固

你可能感兴趣的:(Linux服务器安全加固设置)