Linux 系统安全加固篇之安全加固脚本

2023-05-16

该专栏内的脚本都会定期更新,请注意变化
脚本适用于Centos 7.x系列,同样支持Redhat 7.x系列
使用之前建议通读脚本注释,并确认不会影响你现在在用的业务
注意脚本内部包含一定的参数,这些参数比较重要,涉及用户、NTP第三放服务器地址等

#!/bin/bash

#################################################################
## Linux 设备合规配置脚本
## 基于 Centos7
## 在执行之前请务必先浏览一遍 有一些重要的信息需要留意
## 注意,此脚本有些部分只能执行一遍,如果执行多次会产生错误
## Update at: 20201208
## 增加了NTP 配置的部分
#################################################################
USER_NAME=
USER_PASSWD=
NTP_SERVER=


#################################################################
## 设置屏幕保护
echo "=== 正在设置屏幕保护"
gconftool-2 --direct \
--config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory \
--type bool \
--set /apps/gnome-screensaver/idle_activation_enabled true
gconftool-2 --direct \
--config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory \
--type bool \
--set /apps/gnome-screensaver/lock_enabled true
gconftool-2 --direct \
--config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory \
--type string \
--set /apps/gnome-screensaver/mode blank-only
gconftool-2 --direct \
--config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory \
--type int \
--set /apps/gnome-screensaver/idle_delay 15


#################################################################
## 设置ssh警告banner
touch /etc/sshbanner
chown bin:bin /etc/sshbanner
chmod 644 /etc/sshbanner
echo " Authorized users only. All activity may be monitored and reported "   >/etc/sshbanner
echo "Banner /etc/sshbanner" >> /etc/ssh/sshd_config
echo "=== 正在重启 sshd 服务"
systemctl restart sshd


#################################################################
## 设置口令生存周期
echo "=== 正在设置口令生存周期"
cp -p /etc/login.defs /etc/login.defs_bak
sed -i "s/^PASS_MIN_LEN.*/PASS_MIN_LEN   8 /g" /etc/login.defs
sed -i "s/^PASS_MAX_DAYS.*/PASS_MAX_DAYS   90 /g" /etc/login.defs


#################################################################
## 设置ssh登录成功后的警告banner
echo "=== 正在设置ssh登录成功后的警告banner"
echo " Authorized users only. All activity may be monitored and reported " > /etc/motd


#################################################################
## 新建用户账户
echo "=== 正在创建自用账户"
useradd $USER_NAME
echo $USER_PASSWD | passwd $USER_NAME --stdin  &>/dev/null
echo "$USER_NAME    ALL=(ALL)    NOPASSWD: ALL">> /etc/sudoers


#################################################################
## 删除无用账户
echo "=== 正在删除无用账户"
userdel gdm
userdel listen
userdel webservd
userdel nobody4
userdel noaccess


#################################################################
## 设置用户缺省MASK
echo "=== 正在设置用户缺省MASK"
cp -p /etc/profile /etc/profile_bak
cp -p /etc/csh.login /etc/csh.login_bak
cp -p /etc/csh.cshrc /etc/csh.cshrc_bak
cp -p /etc/bashrc /etc/bashrc_bak
cp -p /root/.bashrc /root/.bashrc_bak
cp -p /root/.cshrc /root/.cshrc_bak
echo "umask 027" >> /etc/profile
echo "umask 027" >> /etc/csh.login
echo "umask 027" >> /etc/csh.cshrc
echo "umask 027" >> /etc/bashrc
echo "umask 027" >> /root/.bashrc
echo "umask 027" >> /root/.cshrc


#################################################################
## 设置登录超时
echo "=== 正在设置登录超时"
cp -p /etc/profile /etc/profile_bak
cp -p /etc/csh.cshrc /etc/csh.cshrc_bak
echo "TMOUT=180" >> /etc/profile
echo "export TMOUT" >> /etc/profile
echo "set autologout=30" >> /etc/csh.cshrc


#################################################################
## 添加用户组
echo "=== 正在添加用户组 ${USER_NAME}"
groupadd ${USER_NAME}
usermod -g ${USER_NAME} ${USER_NAME}                                                                                    


#################################################################
## 防syn攻击 增加主机访问控制
## 这里需要增加特定的IP地址段
echo "=== 正在设置主机IP地址限制"
cp -p /etc/hosts.allow /etc/hosts.allow_bak
cp -p /etc/hosts.deny /etc/hosts.deny_bak
## 注意该地址范围 别把自己墙到外面
## 这里sshd允许10段网络访问
## 我们加入的这个限制会影响4A登录,一定注意
## 如过sshd没有tcp_wrapper库,那么这里的配置没有用
echo "sshd:all:allow" >> /etc/hosts.allow
echo "sshd:all:allow" >> /etc/hosts.allow
echo "telnet:all:allow" >> /etc/hosts.allow
echo "sshd:234.234.234.234:deny" >> /etc/hosts.deny
echo "telnet:234.234.234.234:deny" >> /etc/hosts.deny


#################################################################
## 更改telnet警告banner
echo "=== 正在更改telnet警告banner"
echo " Authorized users only. All activity may be monitored and reported " > /etc/issue
echo " Authorized users only. All activity may be monitored and reported " > /etc/issue.net
systemctl restart xinetd


#################################################################
## 设置用户口令密码复杂度策略
echo "=== 正在修改用户口令密码复杂度策略"
cp -p /etc/pam.d/system-auth /etc/pam.d/system-auth_bak
sed -i "s/^password    requisite.*/password    requisite     pam_cracklib.so dcredit=-1 ucredit=-1 lcredit=-1 ocredit=-1 minclass=2 minlen=8 /g" /etc/pam.d/system-auth
sed -i "s/^password    sufficient.*/password    sufficient    pam_unix.so md5 shadow nullok try_first_pass use_authtok /g" /etc/pam.d/system-auth


#################################################################
## 设置口令重复次数限制
echo "=== 设置口令重复次数限制"
touch /etc/security/opasswd
chown root:root /etc/security/opasswd
chmod 600 /etc/security/opasswd
sed -i "s/^password    required.*/password    required      pam_unix.so     remember=5 /g" /etc/pam.d/system-auth


#################################################################
## 设置口令锁定策略
echo "=== 正在设置口令锁定策略"
sed -i "5 s/^/auth        required    pam_tally2.so deny=6 onerr=fail no_magic_root unlock_time=120\n/"  /etc/pam.d/system-auth


#################################################################
## 设置禁止imcp重定向
echo "=== 正在禁止ICMP重定向"
cp -p /etc/sysctl.conf /etc/sysctl.conf_bak
grep "net.ipv4.conf.all.accept_redirects=0" /etc/sysctl.conf
if [ $? == "1" ]; then
  echo "net.ipv4.conf.all.accept_redirects=0" >> /etc/sysctl.conf
fi
sysctl -p


#################################################################
## 锁定无用账户
echo "=== 正在锁定无用账户"
user_arr=("lp" "nobody" "uucp" "games" "rpm" "smmsp" "nfsnobody")
for user in ${user_arr[@]}
do
  res=`egrep -w "$user" /etc/shadow | awk -F: '( $2 !~ "!" ) {print $1":"$2}'`
  if [ -n "$res" ]; then
    echo "**正在锁定用户 $user"
    sed -i "s/$user:/$user:\!/g" /etc/shadow
  fi
done


#################################################################
## 配置ntp服务器
echo "=== 正在配置NTP服务"
if [ ! -f "/etc/ntp.conf" ];then
  echo "**** 没有安装ntp服务器!请手动安装ntp服务器!"
else
  echo "restrict ${NTP_SERVER} nomodify notrap" >> /etc/ntp.conf
  echo "server ${NTP_SERVER}" >> /etc/ntp.conf
  echo "=== 正在重启NTP服务"
  systemctl restart ntpd
fi


#################################################################
## 设置日志记录
## 这个位置主要是处理 日志收集和日志发送的问题
## 一般根据部署环境的不通 产生的要求可能也不通

#################################################################
## 关闭Portmap服务 如果不使用nfs的情况下
echo "=== 正在关闭rpcinfo 探测"
systemctl stop rpcbind.socket
systemctl stop rpcbind
systemctl disable rpcbind.socket
systemctl disable rpcbind
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux 系统安全加固篇之安全加固脚本 的相关文章

  • [Linux] 记录一次批量开关机操作

    最近公司需要停一部分机器测试下业务稳定性 关停很简单 ansible 就可以了 xff0c 一句命令 ansible guanji m command a 34 shutdown h now 34 定义的关机组 guanji 过了两周 xf
  • 生活篇

    春天 xff0c 一个诗情画意的季节 xff0c 一个生机勃勃的季节 春天 xff0c 为我们带来了温暖 xff0c 为大地带来了生机 在这个春意盎然的季节 xff0c 大自然也开始了她们的春天交响曲 我喜欢三月 xff0c 我也讨厌三月
  • WebStorm 2023.1 最新变化【附带ChatGPT教程】

    ChatGPT开源公众号 xff1a https gitee com wy521a astar weixin mp 观看更新概览视频 在浏览器中打开更新变化 WebStorm 2023 1 最新变化 框架和技术 Astro 支持 备受期待的
  • Ubuntu18.04解决gnome-tweak-tool安装后shell主题提示user-theme extension没有启用的问题

    换用Ubuntu18之后 xff0c 桌面又回到了gnome xff0c 因此找到了gnome tweak tool对桌面进行美化 1 安装gnome tweak tool sudo apt get install gnome tweak
  • 多生产者和多消费者问题

    题目描述 桌子上有一个盘子 xff0c 每次只能向其中放入一个水果 爸爸专门向盘子里面放苹果 xff0c 妈妈专门向盘子里面放橘子 xff1b 只有盘子为空时 xff0c 爸爸或妈妈才可以向其中放入水果 xff1b 仅当盘子里有自己需要的水
  • ssh远程连接服务器常用命令

    命令行下 xff0c 使用ssh 远程登录服务器 ssh 39 用户名 39 64 39 IP地址 39 不用加 39 号 xff0c 这里是为了作区分 39 用户名 39 64 39 IP地址 39 39 s password xxx 项
  • 记录在安卓webview上,gif,apng,pixi.js,lottie-web动画导致闪屏问题

    随着公司项目对动画要求越来越高 xff0c 从由美术提供简单的gif 或者css js开发简单动画变成了使用渲染引擎pixi js使用序列帧动画 xff0c 或者使用龙骨 xff0c spine等更加复杂炫酷的动画 但是发现屏幕在播放动画的
  • 黑苹果_万能OpenCore_0.8.4_EFI

    对于喜欢折腾黑苹果的人来说 xff0c 安装Mac系统就是家常便饭 xff0c 其中最重要的就是EFI的配置 xff0c 配置出一个适合自己电脑的EFI很重要 xff0c 今天发布这篇文章就是为了提供给新加入的伙伴们 xff0c 让更多的伙
  • 黑苹果_OpenCore_0.8.4各项功能精解

    黑苹果已经延续有些年了 xff0c 引导也更新换代过好几次 xff0c 安装黑苹果的第一个条件就是需要拥有一个支持引导苹果系统的EFI xff0c 否则 xff0c 连苹果皮都看不到 xff0c 虽然网上可以直接下载EFI xff0c 但是
  • Github域名解析连接慢问题

    Github域名解析连接慢问题 1 Github访问慢问题2 Github连接解决方案2 1 使用 Gitee 的镜像仓库2 2 配置本地的 hosts 文件 3 DNS域名解析分析3 1 根域名服务器3 1 顶级域名服务器3 1 域名解析
  • C++判断素数(求素数)

    素数又称质数 所谓素数是指除了 1 和它本身以外 xff0c 不能被任何整数整除的数 xff0c 例如17就是素数 xff0c 因为它不能被 2 16 的任一整数整除 思路1 xff1a 因此判断一个整数m是否是素数 xff0c 只需把 m
  • Directx工具修复工具,专注修复C++动态链接DLL文件

    问题 xff1a 方法一 xff1a 可以直接去360管家中搜索DirectX xff0c 然后下载 xff0c 进行修复 方法二 xff1a 如下 xff1a DirectX修复工具最新版 xff1a DirectX Repair V3
  • shell脚本实现在任意虚拟机上 一键重启/关闭 多台虚拟机

    shell脚本实现在任意虚拟机上 一键重启 关闭 多台虚拟机 span class token operator span span class token operator span bin span class token operat
  • ChatGPT体验地址,超多功能,附公众号源码

    GPT 说明效果演示地址体验公众号源码 说明 ChatGPT是一种基于深度学习的自然语言处理 xff08 NLP xff09 技术 xff0c 它可以实现自然的文字对话 ChatGPT是基于预训练的语言模型 xff0c 使用大量的数据和计算
  • Android Native内存泄漏案例

    文章目录 背景现状malloc debugLeakTracer综合评估功能性能稳定性治理实践 案例 使用Raphael 定位内存泄漏 项目中遇到一个内存泄漏的情形 xff1a usb camera预览时出现了内存泄漏 xff0c 但内存泄漏
  • 【The 2017 BAPC】C题-Collatz Conjecture ---- GCD+优化去重

    题意 给你一个大小为n的序列 xff0c 让你求里面所有子串的GCD xff0c 求里面最多有多少不同的GCD 思路 xff1a 利用集合set tmp维护 到当前子串的最后一个元素的所有GCD xff0c set ans保存所有不同种类的
  • WGS84与大地2000坐标转换(Java,C#,Dart)

    一 坐标转换的必要性 平面坐标在道路测绘 隧道测量 农业建筑业等室外勘测等方面有着广泛的应用 各行业基本都会涉及到移动端测量之后不能满足屏幕坐标 所以需要经纬度的转换 移动端勘测结果都是WGS84坐标或者GCJ 02格式坐标 而实际工程项目
  • Flutter百度地图

    Flutter百度地图 重构项目 一 实现效果如下图 qq交流群 群号 730772561 1 地图中任意踩点进行杆塔和设备的新建 对与点和线进行关联 2 对于点和线进行各种操作 3 自定义区域下载离线地图 4 热烈线 5 自定义瓦片地图
  • Jetpack-Compose-自定义绘制

    上节课我们简单的利用了一下自定义裁剪和自定义就能玩出如下简单案例 效果不错 这节课咋们来看看Compose自定义绘制能不能花里胡哨 一 Compose自定义 自定义 一个应用的可创造性往往离不开人们的千奇百怪想象和用户变化万千的需求 自定义
  • JetPack-Compose - Flutter 动态UI?

    一 Flutter 初遇 2018 06月左右入坑Flutter 于是拿出美团和痘印等好看的界面感受了一波Flutter UI和绘制等写了三天的Demo也感受到了Flutter强大 当时匆匆忙忙就写了相关Demo上传了Github 不知不觉

随机推荐

  • Compose for Desktop (Kolin跨平台编写Mac微信应用)

    春光不自留 xff0c 莫怪东风恶 掘金博客地址 创作不易 希望点赞 Compose for Desktop Compose是由Kotlin语言快速编辑界面的框架 xff0c 基于谷歌的现代工具箱 xff0c 由JetBrains为您带来
  • Android层叠式卡片效果实现!(高大上)

    一 xff0c 上班闲来无聊 xff0c 撸发代码 实现Android层叠卡片效果如下图 xff01 1 我们可以随意方向的拖动这个卡片 2 我们可以将卡片放在一起显示且有层叠式效果 3 我们可以将最上层的卡片移除 xff0c 当移除最底层
  • Java中如何将一个数组分割成多个等长度的数组

    Java中如何将一个数组分割成多个等长度的数组 xff0c 最后剩下的为一个素组 先看图分析数据提取公式分装代码 1 如下我们需求 最近朋友android项目中有一个需求如下 xff1a 这一个长集合 item0 item1 item2 i
  • 作为移动端(Android)开发的我已被前端框架Bootstrap所折服

    一 xff0c Bootstrap介绍 xff1a 一年前的我还沉浸在移动端各种适配和优化中不能自拔 xff0c 为了适配市场的各种分辨率 xff0c 我拿着谷歌百分比布局 xff0c 也有生成各中分辨率下的尺寸文件 xff0c 或通过测量
  • Mac安装Stable Diffusion教程【超详细教程】附带安装包

    Mac安装Stable Diffusion教程 本机配置Mac安装Stable Diffusion教程 配带官方说明重要注意事项安装所需文件已上传网盘自动安装新安装 xff1a 自动安装现有安装 xff1a 下载稳定扩散模型故障排除Web
  • Flutter三天学习基础-------一天搞定项目

    Flutter学习三天搞定项目 2019年 xff0c 相继推出了flutter免费视频教学 希望能够帮助初学者 最终搞定b站一二级界面 xff1a https space bilibili com 265453330 spm id fro
  • 玩转python(一)——微信远程控制电脑

    1 综述 这是一个挺有意思的 python 程序 xff0c 基于 itchat 实现微信控制电脑 你可以通过在微信发送命令 xff0c 来拍摄当前电脑的使用者 xff0c 然后图片会发送到你的微信上 甚至你可以发送命令来远程关闭电脑 效果
  • Centos7 离线安装 K3S

    基于版本 v1 19 3 43 k3s2 1 下载相关资源 k3s airgap imagesk3s 二进制文件k3s 安装脚本docker rpm包 含containerd io docker ce docker cli containe
  • Linus 2020-11月最快Intel游戏电脑 清单

    视频链接 xff1a https www bilibili com video BV1Ey4y167YM 配件型号备注CPUi9 10900K5 7GHz 现在比起AU差些主板华硕Maximus XII Extreme超频主板内存镁光 Ba
  • Linuz目前最快AMD 游戏电脑! 截至2020年11月29日

    视频地址 xff1a https www bilibili com video BV1ip4y167L5 这一次是DigitalStorm直接发的整机AventumX xff0c 配置如下 xff1a 硬件型号备注CPURyzen 5950
  • 运维大镖客:Linux 合规配置脚本第一版

    还在为Linux合规配置检查不过关而发愁吗 xff1f 最新的配置合规脚本来啦 xff01 20220609 作者注 xff1a 之后的脚本将会在新的网络空间安全付费专栏发布 xff0c 如需要更新的版本 xff0c 请移步专栏观看 spa
  • MongoDB 4.2 数据迁移与备份指南

    MongoDB 4 2 数据迁移与备份指南 来源于MongoDB Manual 4 2 https docs mongodb com v4 2 tutorial restore replica set from backup 原文 xff1
  • Minio 代理 Alibaba Cloud OSS

    Minio 代理 Alibaba Cloud OSS 在2017年12月份Minio引入Aliyun OSS 支持到master分支 xff0c 但是在2020年4月因为License问题导致阿里云OSS支持被移除 xff0c 后来2020
  • Rancher 2.4.x 单容器证书过期&证书轮换方法

    Rancher 2 4 x 官方文档之证书轮换 https rancher2 docs rancher cn docs rancher2 cluster admin certificate rotation index 错误现象 xff1a
  • Docker与Firewalld冲突怎么办?教你几招搞定docker网络

    docker ce默认会采用桥接网络 xff0c 它会通过iptables来管理它的容器之间的通信和容器与宿主机的通信 xff0c 如果同时启用了firewalld服务 xff0c 他们都会对iptables里面的转发链写入规则 xff0c
  • 当ChatGPT遇上StableDiffusion ChatGPT指导StableDiffusion绘画

    ChatGPT指导StableDiffusion 前言开始使用场景1 xff1a 繁华的街道场景2 xff1a 桥上的女生 项目及教程地址 xff0c 附GPT访问地址安装教程及安装包地址 xff1a 点我下载开源项目 xff1a 点我下载
  • CentOS7 使用RPMBUILD 编译 Openssh rpm包并安装

    若要进行生产环境的操作 xff0c 请务必看完整篇文档 实验环境 xff1a Centos7 4 离线系统 目前已经成功完成了openssh 9 1p1的编译 1 准备openssh源码包 在home目录开始 xff0c 设置工作目录 sp
  • Linus工作室 2021年 PB级存储方案

    来自于加拿大Linux 工作室 本文章仅整理内容 xff0c 另外还有一些本人的理解 实际上这已经是Linux PB计划第二代了 xff0c 比第一代更加NB 原视频地址 xff1a https www bilibili com video
  • 搭建本地yum repo

    在一些离线环境中无法使用在线的yum repo xff0c 只能使用本地的yum仓库 搭建的方式有如下几种 xff1a 使用本地meida使用本地media搭建远程服务器自建repo mirror xff08 施工中 xff09 1 使用本
  • Linux 系统安全加固篇之安全加固脚本

    该专栏内的脚本都会定期更新 xff0c 请注意变化 脚本适用于Centos 7 x系列 xff0c 同样支持Redhat 7 x系列 使用之前建议通读脚本注释 xff0c 并确认不会影响你现在在用的业务 注意脚本内部包含一定的参数 xff0