Linux安全加固

0x00 简介

  安全加固是企业安全中及其重要的一环,其主要内容包括账号安全、认证授权、协议安全、审计安全四项,今天首先学习Linux下的系统加固(CentOS)。

0x01 账号安全

  这一部分主要是对Linux账号进行加固。

与账号相关的文件

/etc/passwd    -- 记录了系统中各用户的一些基本属性,root可写,所有用户可读

/etc/shadow    -- 记录了所有用户的密码

/etc/group     -- 记录了用户组属性

修改密码策略

  vim /etc/login.defs

PASS_MAX_DAYS      90               密码最长有效期
PASS_MIN_DAYS      10               密码修改之间最小的天数
PASS_MIN_LEN       8                密码长度
PASS_WARN_AGE      7                口令失效前多少天开始通知用户修改密码

设置密码强度

  vim  /etc/pam.d/system-auth,将

password requisite  pam_cracklib.so

  修改为至少包含一个数字、一个小写字母、一个大写字母、一个特殊字符、且密码长度>=8:

password requisite  pam_cracklib.so try_first_pass retry=3 dcredit=-1 lcredit=-1 ucredit=-1 ocredit=-1 minlen=8  

  Ubuntu中vi /etc/pam.d/common-password。

限制用户登陆

  vim  /etc/hosts.deny,若禁止192.168.0.1对服务器进行ssh的登陆,添加如下内容

sshd : 192.168.0.1  

限制登陆次数

  应对暴力破解,我们可以限制登陆次数为5,超过5次登陆失败就锁定vim /etc/pam.d/sshd,在 #%PAM-1.0 的下面,加入下面的内容,表示当密码输入错误达到3次,就锁定用户150秒,如果root用户输入密码错误达到3次,锁定300秒。

auth required pam_tally2.so deny=3 unlock_time=150 even_deny_root root_unlock_time300

  锁定用户的管理:

pam_tally2                             查看被锁定的用户

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

0x02 认证授权

  认证授权主要是验证你是谁,你能够做什么。

文件目录权限

  在用户登陆中非常重要的三个文件

  /etc/passwd 必须所有用户都可读,root用户可写 –rw-r—r— 权限值为644

  /etc/shadow 只有root可读 –r--------  权限值为400

  /etc/group 必须所有用户都可读,root用户可写 –rw-r—r— 权限值为644

chmod 644 /etc/passwd
chmod 400 /etc/shadow
chmod 644 /etc/group

检查是否存在除root之外UID为0的用户:

awk -F ':' '($3==0){print $1)' /etc/passwd

  检索出来的非root用户用userdel命令全部删除。

检查是否使用PAM认证模块禁止wheel组之外的用户suroot

[root@centos ~]# #vim /etc/pam.d/su       # 新添加以下两行

auth            sufficient      pam_rootok.so

auth            required        pam_wheel.so use_uid

  注意:auth与sufficient之间由两个tab建隔开,sufficient与动态库路径之间使用一个tab建隔开

  然后,:usermod -G wheel username    #username为需要添加至wheel组的用户名称,将用户添加到wheel组。注意,第一步加固表明只有wheel组中的用户才能使用su命令切换到root用户,因此必须将需要切换到root的用户添加到wheel组,以使它可以使用su命令成为root用户,如果系统不存在wheel组,则新增,新增方法:groupadd wheel。

  PAM(Pluggable Authentication Module)是一个可插入式认证模块,在Linux系统中,各种不同的应用程序都需要完成认证功能,为了实现统一调配,把所有需要认证的功能做成一个模块(认证机制特别复杂的除外,如:https),当特定的程序需要完成认证功能的时候,就去调用PMA的认证模块。

文件与目录缺省权限控制

[root@centos ~]#cp /etc/profile /etc/profile.bak

[root@centos ~]# vim   /etc/profile

umask 027

[root@centos ~]#source  /etc/profile

0x03 协议安全

  协议加固主要阻止入侵者远程获取服务器的权限。

SSH安全
  SSH是一个协议,利用它可以登录到一个远程系统或远程执行系统命令,默认允许root登录,并且sshv1存在缺陷,我们应该在sshd_config禁止root访问和使用sshv2来让ssh更加安全。vim /etc/ssh/sshd_config 修改为:

PermitRootLogin    no

telnet安全

  早期的Linux默认开启telnet服务,telnet,ftp,rlogin都是明文传输的协议,如果必须使用telnet,则需要进行安全配置:

/etc/xinetd.d/telnet
disable=yes

禁止匿名ftp

  [root@wenzhiyi ~]# vim  /etc/vsftpd/vsftpd.conf

  anonymous_enable=NO    #如果存在anonymous_enable则修改,如果不存在则手动增加

预防Flood攻击

[root@centos ~]# vim  /etc/sysctl.conf

[root@centos ~]# net.ipv4.tcp_syncookies = 1

[root@centos ~]# sysctl  -p  #让命令生效

禁止ping

# echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all 开启
# echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all  关闭

0x04 审计安全

  日志就是计算机系统、设备、软件等在某种情况下记录的信息。具体的内容取决于日志的来源

检查是否记录安全事件日志

[root@wenzhiyi ~]# vim  /etc/syslog.conf 或者 /etc/rsyslog.conf,在文件中加入如下内容: 

*.err;kern.debug;daemon.notice     /var/log/messages

[root@wenzhiyi ~]# chmod 640 /var/log/messages

[root@wenzhiyi ~]#  service rsyslog restart 

建立日志服务器

  日志服务器的好处在于,每个工作服务器将自己的日志信息发送给日志服务器进行集中管理,即使有人入侵了服务器并将自己的登录信息悄悄删除,但由于日志信息实时与日志服务器同步,保证了日志的完整性。以备工作人员根据日志服务器信息对服务器安全进行评测。

  在客户端修改配置文件/etc/rsyslog.conf

  想把哪种类型的日志文件发送给服务端,你就把他原来的对应的目录改成: @日志服务器ip

  然后重启rsyslog服务:

 systemctl  restart  rsyslog

  在服务器端打开 /etc/rsyslog.conf 配置文件,将后两行注释给去掉

 

  然后重启rsyslog服务,开启防火墙,这样就完成了日志服务器的搭建。

systemctl  restart  rsyslog
firewall-cmd  --add-port=514/tcp
原文地址:https://www.cnblogs.com/richardlee97/p/10671322.html