实验目的
通过配置Centos配置文件,加强Centos默认安全配置。同时也是理解linux一切皆文件的思想。尝试用shell脚本来处置Centos的安全配置。
实验环境
一台Centos 7.2 无需其他环境。
实验步骤
一、网络配置
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的文件,如sssd 可以使用下面命令改为600
chmod 600 /var/log/sssd
再次查看
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、查看用户密码过期时间
用Linux操作系统里面的正则表达式查看
grep -E '^[^:]+:[^!*]' /etc/shadow | cut -d: -f1,5
修改root用户过期时间
chage --maxdays 365 root
4、自动禁用账号
useradd -D | grep INACTIVE
如图显示-1表示不会自动禁用账号
使用下面设置30天未使用的账号自动禁用
useradd -D -f 30