实验目的

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

实验环境

一台Centos 7.2 无需其他环境。

实验原理

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

实验步骤

一、网络配置

1、检查不用的连接

使用以下命令

ip link show up

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

2、关闭IP转发

先查看ip转发配置

sysctl net.ipv4.ip_forward

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

sysctl -w  net.ipv4.ip_forward=0

3、关闭数据包重定向

查看数据包重定向设置

sysctl net.ipv4.conf.all.send_redirects

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

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

4、开启SYN cookies

查看syn cookies配置

sysctl net.ipv4.tcp_syncookies

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

sysctl -w net.ipv4.tcp_syncookies=1

二、查看审计服务

1、查看服务是否开启

systemctl status auditd

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

systemctl start auditd

2、查看审计日志大小

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

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

三、查看并配置日志审计

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

使用下面命令

ls -l /var/log/

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


 

chmod 600 /var/log/wpa_supplicant.log

 再次查看

2、查看日志归档处理

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

使用以下命令

ls /etc/logrotate.d/syslog

四、查看SSH认证配置

1、检查SSH配置文件权限

ls -l /etc/ssh/sshd_config

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

chmod 600 /etc/ssh/sshd_config

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

查看当前配置

sshd -T |grep maxauthtries

  如上图显示,默认为6次登录失败后断开连接。
可以修改/etc/ssh/sshd_config文件的MaxAuthTires值进行修改。
3、禁止空密码登录SSH

sshd -T | grep permitemptypasswords

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

sshd -T | grep ciphers

五、认证模块配置

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

1、密码强度配置

vim /etc/security/pwquality.conf

 如下图

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

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

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

2、密码过期时间设置

查看过期时间

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

 

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

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

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

 

修改root用户过期时间

chage  --maxdays 365 root

 

4、自动禁用账号

useradd -D | grep INACTIVE

 

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

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

useradd -D -f 30

Logo

更多推荐