实验目的

通过配置Centos配置文件,加强Centos默认安全配置。同时也是理解linux一切皆文件的思想。尝试用shell脚本来处置Centos的安全配置。

实验环境

一台Centos 7.2 无需其他环境。

实验原理

Linux操作系统的配置基本上以配置文件展示,通过不同配置文件理解不同的配置。

实验步骤

一、网络配置

1、检查不用的连接

使用以下命令

ip link show up

如下图,发现有两个连接一个为lo,一个为eth0,如果有需要关闭的接口,可以使用ip link set down

centos临时配置IP centos界面配置ip_配置文件

2、关闭IP转发

先查看ip转发配置

sysctl net.ipv4.ip_forward

centos临时配置IP centos界面配置ip_linux_02

查看发现为0,如果是1,可以使用下面命令改为0

sysctl -w  net.ipv4.ip_forward=0

3、关闭数据包重定向

查看数据包重定向设置

sysctl net.ipv4.conf.all.send_redirects

centos临时配置IP centos界面配置ip_centos临时配置IP_03

查看发现为1,可以使用下面命令改为0  

sysctl -w  net.ipv4.conf.all.send_redirects=0

centos临时配置IP centos界面配置ip_安全_04

4、开启SYN cookies

查看syn cookies配置

sysctl net.ipv4.tcp_syncookies

centos临时配置IP centos界面配置ip_linux_05

发现为1,已经开启。如果为0,则使用下面命令改为1

sysctl -w net.ipv4.tcp_syncookies=1

二、查看审计服务

1、查看服务是否开启

systemctl status auditd

centos临时配置IP centos界面配置ip_centos_06

如上图显示服务已经开启,如未开启可以使用下面命令开启

systemctl start auditd

2、查看审计日志大小

cat /etc/audit/auditd.conf |grep max

centos临时配置IP centos界面配置ip_centos临时配置IP_07

如图显示最大日志为8M,可以自己修改文件,然后重启auditd服务后生效。

三、查看并配置日志审计

1、查看日志文件权限,日志权限应为600,仅root可读写

使用下面命令

ls -l /var/log/

centos临时配置IP centos界面配置ip_centos临时配置IP_08

非600的文件,如wpa_supplicant.log 可以使用下面命令改为600

centos临时配置IP centos界面配置ip_linux_09

 

chmod 600 /var/log/wpa_supplicant.log

再次查看

2、查看日志归档处理

确保存在/etc/logrotate.d/syslog文件

使用以下命令

ls /etc/logrotate.d/syslog

centos临时配置IP centos界面配置ip_centos_10

四、查看SSH认证配置

1、检查SSH配置文件权限

ls -l /etc/ssh/sshd_config

centos临时配置IP centos界面配置ip_安全_11

如图显示权限为644,建议改为600,使用以下命令

chmod 600 /etc/ssh/sshd_config

centos临时配置IP centos界面配置ip_linux_12

2、配置允许SSH允许的验证失败次数

查看当前配置

sshd -T |grep maxauthtries

centos临时配置IP centos界面配置ip_centos_13

  如上图显示,默认为6次登录失败后断开连接。

可以修改/etc/ssh/sshd_config文件的MaxAuthTires值进行修改。

3、禁止空密码登录SSH

sshd -T | grep permitemptypasswords

centos临时配置IP centos界面配置ip_centos临时配置IP_14

4、查看SSH支持密码算法,确保没有md5 des等已经不安全的算法

sshd -T | grep ciphers

centos临时配置IP centos界面配置ip_安全_15

五、认证模块配置

Linux的认证模块由PAM处理,PAM中可以配置认证的账号、密码强度等操作。

1、密码强度配置

vim /etc/security/pwquality.conf

 如下图

centos临时配置IP centos界面配置ip_配置文件_16

可以自己修改配置,去掉行首#号

如将密码最小设为10位,设置minlen = 10将密码复杂度为4种类型(包含大写字母、小写字母、数字、符号),设置minclass =4

如图设置,设置后保存退出。

centos临时配置IP centos界面配置ip_centos_17

centos临时配置IP centos界面配置ip_linux_18

2、密码过期时间设置

查看过期时间

grep ^\s*PASS_MAX_DAYS /etc/login.defs

 

centos临时配置IP centos界面配置ip_centos临时配置IP_19

默认过期时间为9999天,修改相应文件即可修改过期时间

3、查看用户密码过期时间

grep -E '^[^:]+:[^!*]' /etc/shadow | cut -d: -f1,5

 

centos临时配置IP centos界面配置ip_配置文件_20

修改root用户过期时间

chage  --maxdays 365 root

 

centos临时配置IP centos界面配置ip_安全_21

4、自动禁用账号

useradd -D | grep INACTIVE

 

centos临时配置IP centos界面配置ip_centos_22

如图显示-1表示不会自动禁用账号

使用下面设置30天未使用的账号自动禁用

useradd -D -f 30

centos临时配置IP centos界面配置ip_centos_23