熊二
发布于 IP属地四川省

Linux服务器安全加固

Linux服务器安全加固

一、用户系统检查

A、检查系统内核版本

检查方式(命令):

a、uname -a
b、cat /etc/os-release
c、cat /etc/centos-release

B、检查口令为空的账户

判断依据:存在密码为空的账户则不符合

检查方式:

a、命令查看用户:cat /etc/passwd  
b、命令查看密码栏为空的账户:cat /etc/shadow

加固方式:删除密码为空的账户,或者为账户添加密码

命令删除用户:userdel 用户名
设置密码:passwd 用户名

备注:(/bin/bash为可登录系统,/sbin/nologin和/bin/false为禁止用户登录系统)

C、检查UID与root相同的账户

前言:如果UID为0该账户的权限就和root一样的权限

判断依据:存在则不符合

检查方式:

命令查看第三位数字为0的账户:cat/etc/passwd

加固方式:修改恶意账户的UID并删除恶意账户

备注:先修改UID才可以删除账户
     1、vim etc/passwd
     2、userdel 用户名

D、检查是否启用core dump设置(内存转储)

判断依据:存在则符合

检查方式:

cat/etc/security/limits.conf查看solt core 0 ,hard core 0配置

加固方式:添加或者修改配置文件

E、检查硬盘使用情况

判断依据:大于80%则不符合

检查方式:

命令查看硬盘使用率:df -f

加固方式:对硬盘实施扩容或者删除部分不重要的资源

F、检查History历史命令条数设置

判断依据:建议值为200

检查方式:

命令查看HISTSIZE=值:cat /etc/profile

加固方式:修改profile配置文件中的HISTSIZE值为200

G、检查系统当前umask值

判断依据:值为022则符合

检查方式:通过命令umask输出当前umask的值

加固方式:通过umask命令修改值为022

修改例子: umask 022

二、口令策略检查

A、检查密码最小长度

判断依据:最小长度为8则符合

检查方式:

命令:cat /etc/login.defs查看PASS_MIN_LEN的值,但是对root无效

加固方式:修改login.defs配置文件,修改密码最小长度值

例子:vim /etc/login.defs;PASS_MIN_LEN 10

B、检查密码过期时间

判断依据:值大于90则不符合

检查方式:

命令查看PASS_MAX_DAYS的值:cat /etc/login.defs

加固方式:修改login.defs的PASS_MAX_DAYS的值为90

例子:vim etc/login.defs;PASS_MAX_DAYAS 90

C、检查密码认证失败次数

判断依据:值大于5则不符合

检查方式:(两个文件都要看一下,默认是没有的)

文件一:cat /etc/pam.d/sshd
文件二:cat etc/pam.d/login

加固方式:添加配置

例子:vim /etc/pam.d/sshd;auth required Parm_tally2.so deny=5

D、检查密码复杂度

判读依据:值未配置则不符合

检查方式:

  查看配置:cat /etc/pam.d/system-auth

加固方式:没有该配置则要进行添加

E、检查密码过期告警天数

判断依据:值小于3则不符合

检查方式:

命令查看PASS_WARN_AGE的值:cat /etc/login.defs

加固方式:修改login.defs中的PASS_WARN_AGE的值为3

例子:vim etc/login.defs;PASS_WARN_AGE 3 

三、日志审计检查

A、检查系统是否开启日志功能

判断依据:开启则符合

检查方式:

命令查看是否存在syslogd服务:ps -ef

加固方式:通过systemctl命令打开日志审计功能(systemctl start rsyslog)

B、检查系统是否开启审计功能

判断依据:存在则符合

检查方式:

命令查看是否存在auditd服务:ps -ef

加固方式:通过命令:systemctl打开审计服务

例子:systemctl start auditd

C、检查是否对登录进行记录

判断依据:存在则符合

检查方式:

命令查看是否有返回结果:last -f /var/log/wtmp

四、系统服务检查

A、检查是否启用talk

判断依据:存在则不符合

检查方式:

命令查看服务以及ntalk服务:ps -ef | grep talk

加固方式:kill掉talk以及ntalk服务,并禁止其开机启动

例子:kill -9 <pid>
     Systemctl disable <talk service name> 

B、检查是否启用sendmail服务

判断依据:存在则不符合

检查方式:

命令查看服务:ps -ef | grep sendmail

加固方式:kill掉sendmail服务,并禁止开机启动

例子:kill -9 <PID>
     systemctl disable <sendmail service name>

C、检查是否启用FTP服务

判断依据:存在则不符合

检查方式:

命令查看服务:ps -ef | grep ftp

加固方式:kill掉FTP服务并禁止开机启动

例子: kill -9 <PID>
       kill -9 1801(备注:进程是第三个字段)
      systemctl disable <ftp service name>

D、检查是否启用TELNET服务

判断依据:存在则不符合

检查方式:

命令查看服务:ps -ef | grep telnet

加固方式:kill掉telnet服务并禁止开机启动

例子:kill -9 <PID>
systemctl disable <telnet service name>

五、访问控制检查

A、检查系统登录和SSH登陆超时时间

判断依据:存在则符合

检查方式:

命令查看export TMOUT=值:cat /etc/profile

加固方式:将profile中的TMOUT的值设置为100

例子:vim /etc/profile;export TMOUT=100

备注默认是没有的,需要我们手动做一个追加

B、检查SSH协议是否使用SSH2

判断依据:存在则符合

检查方式:

命令:cat /etc/ssh/sshd_config或者cat /etc/ssh2/ssh2d_config查看Protocol配置项

加固方式:将ssh的协议类型改成ssh2,若不存在protocol配置则需要追加

例子:vim etc/ssh/sshd_config;Protocol 2

C、检查是否允许root账户远程登录SSH连接

判断依据:值为no则符合

检查方式:

命令:cat /etc/ssh/sshd_config或cat /etc/ssh2/ssh2d_config查看PermitRootLogin的值

加固方式:修改PermitRootLogin的值为no,若不存在则还需要进行追加;

例子:vim etc/ssh/sshd_config;PermitRootLogin no

D、检查是否允许所有IP访问主机

判断依据:值ALL不符合

检查方式:

命令查看sshd的值:cat /etc/hosts.allow

加固方式:在hosts.allow配置文件中追加允许访问的IP地址

例子:
ssh允许单个IP   sshd: 12.1.1.2
ssh允许IP段:  sshd: 10.10.10.

E、检查是否拒绝所有IP访问主机

判断依据:值ALL符合

检查方式:

命令查看sshd的值:cat /etc/hosts.deny

加固方式:在hosts.deny中追加sshd:ALL

备注:允许优先于拒绝

浏览 (362)
点赞 (3)
收藏
打赏
评论