37.Linux服务器安全加固
在做服务器运维时,需要对系统进行一些安全方面的加固,使系统更安全更稳定。
一、设置密码输错三次,用户将被锁定
1.在服务器端进行设置
如果有用户远程登录服务器,不知道密码的话会多次尝试用不同的密码来登录,所以我们可以在服务器端进行密码设置(服务器地址:192.168.252.128),使用户在输错三次密码之后将当前用户进行锁定,必须在本地服务器进行解锁才可以再次使用此用户名登录。
vim /etc/pam.d/system-auth //修改系统认证文件,增加两行内容
auth required pam_tallyso deny=3 unlock_times=180 //当用户连续认证失败3次,将账号锁定180秒
account required pam_tally2.so
2.在客户端进行验证(客户端地址:192.168.252.131)
ssh testuser@192.168.252.128 //远程登录服务器
故意输错三次密码后,被踢出登录界面,此时输入正确密码也不能登录,因为testuser用户已被锁定。
登录root用户还是可以的,只是锁定了testuser用户,而不是锁定了服务器。
3.在服务器端可以查询到testuser用户被锁定,登录ip是192.168.252.131.
同时,如果本地输错密码三次,也会被锁定,可以看到尝试登录的是pts/0
4.解除账户锁定
pam_tally2 --reset -u testuser
二、设置账户密码的规则(包括长度、登陆次数,字符类型,-1表示最少一个)
vim /etc/psm.d/password-auth
assword requisite pam_cracklib.so try_first_pass retry=3 type=
增加内容password requisite pam_cracklib.so try_first_pass retry=3 type= difok=3 minlen=8 ucredit=-1 lcredit=-1 dcredit=-1
其中type=:用来修改默认的密码提示文本
difok=:用来定义新密码中必须有几个字符要与旧密码不同
minlen=:用来设置新密码的最小长度
ucredit=:用来设定新密码中可以包含的大写字母的最大数目,-1表示最少一个
lcredit=:用来设定新密码中可以包含的小写字母的最大数目
dcredit=:用来设定新密码中可以包含的数字的最大数目
所以上面设置密码规则为:普通用户为自己修改密码必须要保证密码长度为8位以上,有大小写字母和数字
普通用户修改自己的密码时需要符合密码规则(此规则不适用于root)
三、禁止远程登录服务器端的root
1.root权限太大,怕被危险操作,所以设置不允许被远程登录。
vim /etc/ssh/sshd_config //修改ssh软件的配置文件
添加一行,PermitRootLogin no。
在客户端尝试登录,即使密码输入正确,也登不进去
2.屏蔽ssh的banner信息,确保banner信息为no,避免泄露系统信息
3.设置登录时长,超过登录时长会自动注销,同时修改能保存的历史命令条数
vim /etc/profile
HISTSIZE=100 //将历史命令条数从1000改为100
TMOUT=600 //设置登录超过600秒就被注销
四、设定新建立用户的密码有效期为三个月
vim /etc/logins.defs //修改登录文件
将初始密码有效期9999改为90天
tail -l /etc/shadow //查看密码管理文件最后几行
五、锁定系统的重要文件进行保护
对系统的重要文件进行加锁,避免误操作。详见chattr权限
去掉-i属性(具体内容看)
六、建立日志服务器(ip:192.168.252.128)
1.在服务器端配置日志接收信息
vim /etc/rsyslog.conf //修改日志服务器配置文件
将$ModLoad imtcp和$InputTCPServerRun 514前面的注释符去掉
vim /etc/rsyslog.d/client.conf //建立接受哪些主机的日志信息的文件
:fromhost-tp,isequal,"192.168.252.131" /var/log/client.log //接收的日志信息存在/var/log/client.log文件中
:fromhost-ip,isequal,"192.168.252.128" -
/etc/init.d/rsyslog restart //重启日志服务
netstat -antpl |grep 514 //查看日志服务是否开启
2.在客户端服务器配置日志接收端的ip
vim /etc/rsyslog.conf //添加行ip加端口
*.* @@192.168.252.128:514
配置客户端日志服务器将其日志信息发送到服务端
.表示任何服务的任何级别日志信息
@表示采用TCP方式
指定日志服务器的ip和端口
/etc/init.d/rsyslog restart //重启日志服务
logger "a test log message" //导入一条日志信息
3.在服务器端查询日志记录
tail -l /var/log/client.log //查看来自客户端的新加的日志信息
七、查询suid和guid
find / -xdev -type f -perm /6000 //查看系统中具有的suid和guid权限的文件
八、关闭服务器的路由转发功能
一、临时关闭
[root@www etc]# echo 0 > /proc/sys/net/ipv4/ip_forward
二、永久关闭
vim /etc/sysctl.conf
net.ipv4.ip_forward = 0 //将路由转发设为0
九、
根据实验吧实验编写:服务器安全加固