0

0

linux安全加固脚本怎么写

WBOY

WBOY

发布时间:2023-05-21 23:43:18

|

1229人浏览过

|

来源于亿速云

转载

#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 "********************************************"
else
 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
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

相关专题

更多
云朵浏览器入口合集
云朵浏览器入口合集

本专题整合了云朵浏览器入口合集,阅读专题下面的文章了解更多详细地址。

0

2026.01.20

Java JVM 原理与性能调优实战
Java JVM 原理与性能调优实战

本专题系统讲解 Java 虚拟机(JVM)的核心工作原理与性能调优方法,包括 JVM 内存结构、对象创建与回收流程、垃圾回收器(Serial、CMS、G1、ZGC)对比分析、常见内存泄漏与性能瓶颈排查,以及 JVM 参数调优与监控工具(jstat、jmap、jvisualvm)的实战使用。通过真实案例,帮助学习者掌握 Java 应用在生产环境中的性能分析与优化能力。

20

2026.01.20

PS使用蒙版相关教程
PS使用蒙版相关教程

本专题整合了ps使用蒙版相关教程,阅读专题下面的文章了解更多详细内容。

62

2026.01.19

java用途介绍
java用途介绍

本专题整合了java用途功能相关介绍,阅读专题下面的文章了解更多详细内容。

87

2026.01.19

java输出数组相关教程
java输出数组相关教程

本专题整合了java输出数组相关教程,阅读专题下面的文章了解更多详细内容。

39

2026.01.19

java接口相关教程
java接口相关教程

本专题整合了java接口相关内容,阅读专题下面的文章了解更多详细内容。

10

2026.01.19

xml格式相关教程
xml格式相关教程

本专题整合了xml格式相关教程汇总,阅读专题下面的文章了解更多详细内容。

13

2026.01.19

PHP WebSocket 实时通信开发
PHP WebSocket 实时通信开发

本专题系统讲解 PHP 在实时通信与长连接场景中的应用实践,涵盖 WebSocket 协议原理、服务端连接管理、消息推送机制、心跳检测、断线重连以及与前端的实时交互实现。通过聊天系统、实时通知等案例,帮助开发者掌握 使用 PHP 构建实时通信与推送服务的完整开发流程,适用于即时消息与高互动性应用场景。

19

2026.01.19

微信聊天记录删除恢复导出教程汇总
微信聊天记录删除恢复导出教程汇总

本专题整合了微信聊天记录相关教程大全,阅读专题下面的文章了解更多详细内容。

160

2026.01.18

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 7.5万人学习

Git 教程
Git 教程

共21课时 | 2.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号