Linux

37.Linux服务器安全加固

2018-06-16  本文已影响0人  扶桑啊啊

在做服务器运维时,需要对系统进行一些安全方面的加固,使系统更安全更稳定。

一、设置密码输错三次,用户将被锁定

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  //查看来自客户端的新加的日志信息

LINUX日志服务


七、查询suid和guid

find / -xdev -type f -perm /6000   //查看系统中具有的suid和guid权限的文件  

suid权限


八、关闭服务器的路由转发功能

一、临时关闭

[root@www etc]# echo 0 > /proc/sys/net/ipv4/ip_forward

二、永久关闭

vim /etc/sysctl.conf

 net.ipv4.ip_forward = 0  //将路由转发设为0   


九、

根据实验吧实验编写:服务器安全加固

上一篇 下一篇

猜你喜欢

热点阅读