如何做好Linux系统安全加固之账号安全?11个安全小技巧分享
由于Linux操作系统是一个开放源代码的免费操作系统,受到越来越多用户的欢迎。对于在线运行的业务,用户最关心的就是系统的安全性,系统运行的安全性直接影响着业务的安全。系统安全设置是一个多维度问题,下面小编就从linux的账号安全的维度和大家分享一些常用的Linux安全加固小技巧。
1.设置密码策略
[root@lkjtest ~]# cat /etc/login.defs |grep -v "#" |grep PASS PASS_MAX_DAYS 180 PASS_MIN_DAYS 0 PASS_MIN_LEN 5 PASS_WARN_AGE 7
参数说明:
- PASSMAXDAYS:设置密码的过期日期
- PASSMINDAYS:密码最小更改日期
- PASSMINLEN :密码的最小长度
- PASSWARNAGE :密码到期提前告警的天数
2.限制用户远程登陆
vim /etc/pam.d/sshd #%PAM-1.0 auth required pam_tally2.so deny=3 unlock_time=300 even_deny_root root_unlock_time=10
注意点:添加的内容一定要添加在前面,即“#%PAM-1.0” 之后,如果写在后面,虽然用户被锁定,但只要用户名和密码正确,依然是可以成功登陆进去的。
参数说明:
- evendenyroot : root用户也限制。
- deny :设置普通用户和root用户连续错误登陆的最大次数,超过最大次数,则锁定该用户.
- unlock_time :普通用户锁定后,多长时间后解锁,单位是秒。
- rootunlocktime :root用户锁定后,多少时间后解锁,单位是秒。
3.限制用户从tty登陆
vim /etc/pam.d/login #%PAM-1.0 auth required pam_tally2.so deny=3 lock_time=300 even_deny_root root_unlock_time=10
注意点:添加的内容一定要添加在前面,即“#%PAM-1.0” 之后,如果写在后面,虽然用户被锁定,但只要用户名和密码正确,依然是可以成功登陆进去的。
参数说明:
- evendenyroot : root用户也限制。
- deny :设置普通用户和root用户连续错误登陆的最大次数,超过最大次数,则锁定该用户.
- unlock_time :普通用户锁定后,多长时间后解锁,单位是秒。
- rootunlocktime :root用户锁定后,多少时间后解锁,单位是秒。
4.查看用户登陆失败次数
[root@localhost]# pam_tally2 --user root Login Failures Latest failure From root 0
5.解锁指定用户
[root@localhost ~]# pam_tally2 -r -u root Login Failures Latest failure From root 0
6.设置口令复杂度
编辑 /etc/pam.d/system-auth 找到pam_cracklib,在后加一些参数具体如下: [root@lkjtest ~]# cat /etc/pam.d/system-auth |grep cracklib password requisite pam_cracklib.so retry=5 difok=3 minlen=10 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1
参数说明:
retry=5:表示允许输入5次
difok=3:新密码与旧密码不同的个数为3
minlen=10:密码长度至少10位
ucredit=-1 :至少一位大写字母
lcredit=-1:至少一位小写字母
dcredit=-1:至少一位数字
ocredit=-1:其他字符至少一位
7.限制su的权限
如果你不想任何人能够用su作为root,可以通过以下限制:
编辑/etc/pam.d/su文件,增加如下两行: auth sufficient pam_rootok.so debug auth required pam_wheel.so group=admin
只有admin组的用户才能su
8.设置用户登陆的时间段
有时为了系统登陆的安全,我们需要限制用户只能在特定的时间段才允许登陆主机,可以通过以下设置。
#vi /etc/pam.d/sshd 添加如下内容: account required pam_time.so # vi /etc/security/time.conf 添加如下内容: sshd;*;admin;!Th2100-2300
time.conf参数说明:
- sshd:表示仅对ssh程序限制
- *:表示任何终端,也可以指定终端如tty1,tty2等
- admin:表示仅对admin用户限制
- !Tu2200-2230 :允许登录时间是周四2100-2300之外
9.特别帐号的处理
如果不启动用sendmail,删除如下用户
[root@localhost]# userdel adm [root@localhost]# userdel lp [root@localhost]# userdel sync [root@localhost]# userdel shutdown [root@localhost]# userdel halt [root@localhost]# userdel mail
如果不用X windows服务器.可有删除
[root@localhost]# userdel news [root@localhost]# userdel uucp [root@localhost]# userdel operator [root@localhost]# userdel games
如果不允许匿名FTP帐号登陆,可删除
[root@localhost]# userdel gopher [root@localhost]# userdel ftp
10.设置注销用户的时间及历史命令数
[root@tp ~]# vi /etc/profile ... HOSTNAME=`/bin/hostname` HISTSIZE=1000 //这里1000代表用户操作命令的历史记录,应尽量小一些,设置成0也可以。 tmout=600 //表示如果系统用户在600秒(10分钟)内不做任何操作,将自动注销这个用户.
11.防暴力破解
针对用户的防暴力破解,通常采用以下方法
(1)hostDenyHosts :此软件的具体使用方法,可以参考官方文档。
(2)编写脚本检查/var/log/secure访问日志文件:通过统计日志文件中的登陆失败的ip,并将达到阈值的ip添加到/etc/hosts.deny来拒绝某个ip的再次访问。