共计 3585 个字符,预计需要花费 9 分钟才能阅读完成。
这篇文章主要讲解了“linux 安全加固脚本怎么写”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着丸趣 TV 小编的思路慢慢深入,一起来研究和学习“linux 安全加固脚本怎么写”吧!
代码如下:
#linux 加固脚本
#!/bin/bash
#version1.0;
#write at 2021-08-27;
#write by jiangzhehao;
#只在 centos7 上测试过
#1、账号安全
#1.1 账号加固
#备份文件
cp /etc/login.defs /etc/login.defs.bak
echo 对密码安全策略进行加固,设置密码存在时间、密码长度、密码过期提醒!read -p 设置密码有效时间 (建议 90 天): A
read -p 设置密码最短长度(建议 8 位): C
read -p 设置密码过期提醒(建议 15 天): D
sed -i /^PASS_MAX_DAYS/c\PASS_MAX_DAYS $A /etc/login.defs
sed -i /^PASS_MIN_DAYS/c\PASS_MIN_DAYS 0 /etc/login.defs
sed -i /^PASS_MIN_LEN/c\PASS_MIN_LEN $C /etc/login.defs
sed -i /^PASS_WARN_AGE/c\PASS_WARN_AGE $D /etc/login.defs
echo 加固已完成。echo *****************************************************************************************
echo 对密码安全策略进行加固,新用户不得和旧密码相同,且新密码必须同时包含大写字母、小写字母、数字!#备份文件
cp /etc/pam.d/system-auth /etc/pam.d/system-auth.bak
sed -i /pam_pwquality.so/c\password requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type= difok=1 minlen=8 ucredit=-1 lcredit=-1 dcredit=-1 /etc/pam.d/system-auth
echo 加固已完成。echo *****************************************************************************************
echo 对密码进行加固,如果输入错误密码超过 3 次,则锁定账户!sed -i /^auth required pam_deny.so/i\auth required pam_tally.so onerr=fail deny=10 unlock_time=300 /etc/pam.d/system-auth
echo 被锁定的用户可以使用 faillog -u root -r 解除锁定。echo 加固已完成。echo *****************************************************************************************
echo 禁止 root 用户 ssh 远程登录, 需要 root 用时,使用 su 切换!#备份文件
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
sed -i /PermitRootLogin/c\PermitRootLogin no /etc/ssh/sshd_config
echo 加固已完成。echo *****************************************************************************************
echo 限制远程登录主机地址!read -p 设置远程登录地址段 (格式为 10.1.*.*): E
sed -i /ListenAddress /i\ALLOWUSERS *@ $E /etc/ssh/sshd_config
echo 加固已完成。echo *****************************************************************************************
echo 清除信任主机列表(信任主机登录不需要验证)!echo /etc/hosts.equiv
echo /$home/.rhosts
echo 加固已完成。echo *****************************************************************************************
echo history 设置优化(建议保存条数 1000 条,超时时间为 300 秒)!read -p 设置历史命令保存条数(建议 1000): F
read -p 设置账户自动注销时间(建议 300): G
sed -i /^HISTSIZE/c\HISTSIZE= $F /etc/profile
sed -i /^HISTSIZE/a\TMOUT= $G /etc/profile
echo 加固已完成。echo *****************************************************************************************
#1.2 用户检查
echo 即将对系统中的账户进行检查......
echo 系统中有登录权限的用户有:awk -F: ($7== /bin/bash){print $1} /etc/passwd
echo ********************************************
echo 系统中 UID= 0 的特权用户有:awk -F: ($3== 0){print $1} /etc/passwd
echo ********************************************
N=`awk -F: ($2==){print $1} /etc/shadow|wc -l`
echo 系统中空密码用户有:$N
if [ $N -eq 0 ];then
echo 恭喜你,系统中无空密码用户!! echo ********************************************
i=1
while [ $N -gt 0 ]
do
None=`awk -F: ($2==){print $1} /etc/shadow|awk NR== $i {print} `
echo ------------------------
echo $None
echo 必须为空用户设置密码!! passwd $None
let N--
done
M=`awk -F: ($2==){print $1} /etc/shadow|wc -l`
if [ $M -eq 0 ];then
echo 恭喜,系统中已经没有空密码用户了! else
echo 系统中还存在空密码用户:$M
fi
#2、文件系统安全加固
#设置 umask 值
echo 设置 umask 值为 077!sed -i /^UMASK/c\UMASK 077 /etc/login.defs
echo 加固已完成。echo *****************************************************************************************
#3、禁用不需要的服务
/sbin/chkconfig ip6tables off
/sbin/chkconfig avahi-daemon off
/sbin/chkconfig avahi-dnsconfd off
#4、设置需要开启的端口
#yum install iptables-services -y
#systemctl start iptables
#iptables -F
#iptables -P INPUT DROP
#iptables -A INPUT -p tcp --dport 22
感谢各位的阅读,以上就是“linux 安全加固脚本怎么写”的内容了,经过本文的学习后,相信大家对 linux 安全加固脚本怎么写这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是丸趣 TV,丸趣 TV 小编将为大家推送更多相关知识点的文章,欢迎关注!
正文完