用shell脚本编写一个LInux自动安全基线加固脚本
时间: 2023-07-06 12:40:12 浏览: 208
好的,下面是一个简单的Linux自动安全基线加固脚本,根据需求可以自行修改:
```shell
#!/bin/bash
# 修改密码策略,最小密码长度为8,密码复杂度要求为数字、大小写字母和特殊字符的组合
sed -i 's/PASS_MIN_LEN.*/PASS_MIN_LEN 8/' /etc/login.defs
authconfig --passminlen=8 --passcomplexity=4 --update
# 禁止root以外的用户使用su切换为root用户
echo "auth required pam_wheel.so use_uid" >> /etc/pam.d/su
# 设置密码过期时间为90天
sed -i 's/PASS_MAX_DAYS.*/PASS_MAX_DAYS 90/' /etc/login.defs
sed -i 's/^#\(PASS_WARN_AGE\)/\1/' /etc/login.defs
# 禁止空密码登录
sed -i 's/nullok_secure/nullok/' /etc/pam.d/system-auth
# 禁用不必要的服务
systemctl disable avahi-daemon.service
systemctl disable cups.service
systemctl disable dhcpd.service
systemctl disable slapd.service
systemctl disable nfs.service
systemctl disable rpcbind.service
# 关闭不必要的端口
firewall-cmd --zone=public --remove-port=111/tcp --permanent
firewall-cmd --zone=public --remove-port=2049/tcp --permanent
firewall-cmd --zone=public --remove-port=5353/udp --permanent
firewall-cmd --zone=public --remove-port=631/tcp --permanent
# 安装基础安全工具
yum install -y wget curl net-tools nmap telnet tcpdump iptables
echo "安全加固完成!"
```
这个脚本包含以下安全加固措施:
1. 修改密码策略,最小密码长度为8,密码复杂度要求为数字、大小写字母和特殊字符的组合;
2. 禁止root以外的用户使用su切换为root用户;
3. 设置密码过期时间为90天;
4. 禁止空密码登录;
5. 禁用不必要的服务;
6. 关闭不必要的端口;
7. 安装基础安全工具。
注意:在运行脚本之前,请确保已经备份了系统的重要文件,并且仔细检查脚本中的每一条命令是否适用于当前的环境。
阅读全文