Linux 主机一键安全整改策略
为防止linux主机被恶意攻击,和受到攻击后能更快定位到源头,需要对linux主机做一些参数配置。
比如禁用root的远程登录、用户多次密码验证失败后被锁、禁止系统账号交互式登录等等。
下面是linux主机安全整改的一些简单介绍,最后会通过脚本一键整改所有项,适用linux主机版本为:Redhat 7和CentOS 7。
本次安全整改项
-
禁止root用户远程登录;
-
设置密码复杂度(新建账号和修改密码时生效);
-
设置密码过期时间90天;
-
设置命令行界面超时退出(180秒);
-
设置密码重复使用次数(5次);
-
禁止系统账号交互式登录;
-
设置ssh登录警告banner;
-
禁用不必要的别名;
-
安装配置记录用户对设备的操作的pacct工具;
-
配置su命令使用情况记录。
通过以下命令一键安全整改
#!/bin/bash
source /etc/profile
echo "---------禁止root用户远程登录----------"
result=`grep "PermitRootLogin no" /etc/ssh/sshd_config|wc -l` ; if [ $result -eq 0 ];then
sed -i 's/#PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
sed -i 's/PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
echo "禁止root用户远程登录已修改"
else
echo "禁止root用户远程登录已存在"
fi
echo -e "\n"
echo "---------设置密码复杂度限制----------"
result1=`grep "password requisite pam_cracklib.so" /etc/pam.d/system-auth|wc -l` ; if [ $result1 -eq 0 ];then
echo "password requisite pam_cracklib.so try_first_pass retry=3 minlen=8 lcredit=-1 dcredit=-1 ocredit=-1 ucredit=-1" >> /etc/pam.d/system-auth
echo "密码复杂度限制设置完成"
else
echo "密码复杂度限制已存在"
fi
echo -e "\n"
echo "---------设置用户密码过期时间----------"
result=` cat /etc/login.defs|grep PASS_MAX_DAYS|grep ^[^#]|awk '{print $2}'` ; if [ $result -gt 90 ];then
sed -i '/PASS_MAX_DAYS/ s/99999/90/' /etc/login.defs
echo "用户密码过期时间设置完成"
else
echo "用户密码过期时间已设置为90天"
fi
echo -e "\n"
echo "---------设置命令行界面超时退出----------"
result=` grep TMOUT /etc/profile |wc -l` ; if [ $result -eq 0 ];then
cp -p /etc/profile /etc/profile_bak
echo "export TMOUT=180">> /etc/profile
echo "命令行界面超时退出已设置"
else
echo "命令行界面超时退出已存在"
fi
echo -e "\n"
echo "---------设置密码重复使用次数----------"
result=` grep remember= /etc/pam.d/system-auth|wc -l` ; if [ $result -eq 0 ];then
sed -i 's/password sufficient pam_unix.so/& remember=5/g' /etc/pam.d/system-auth
echo "密码重复使用次数已设置"
else
echo "密码重复使用次数限制已存在"
fi
echo -e "\n"
echo "禁止系统账号交互式登录"
passwd -l adm
passwd -l daemon
passwd -l bin
passwd -l sys
passwd -l lp
passwd -l uucp
passwd -l nuucp
passwd -l smmsp
echo "禁止系统账号交互式登录已设置"
echo -e "\n"
echo "---------ssh登录前警告banner设置----------"
file="/etc/ssh_banner"
if [ ! -f "$file" ]; then
touch "$file"
chown bin:bin /etc/ssh_banner
chmod 644 /etc/ssh_banner
echo "Authorized only. All activity will be monitored and reported" >> $file
echo "ssh登录前警告banner已设置"
else
echo "ssh登录前警告banner设置已存在"
fi
echo -e "\n"
echo "---------禁用不必要的别名----------"
result=`cat /etc/aliases|grep ^# | grep root |wc -l` ; if [ $result -le 9 ];then
sed -i '/games/ s/^/#/g' /etc/aliases
sed -i '/ingres/ s/^/#/g' /etc/aliases
sed -i '/system/ s/^/#/g' /etc/aliases
sed -i '/toor/ s/^/#/g' /etc/aliases
sed -i '/uucp/ s/^/#/g' /etc/aliases
sed -i '/manager/ s/^/#/g' /etc/aliases
sed -i '/operator/ s/^/#/g' /etc/aliases
sed -i '/decode/ s/^/#/g' /etc/aliases
sed -i '/marc/ s/^/#/g' /etc/aliases
sed -i '/dumper/ s/^/#/g' /etc/aliases
echo "禁用不必要的别名已完成"
else
echo "禁用不必要的别名已存在"
fi
echo -e "\n"
echo "---------配置pacct工具----------"
file="/var/log/pacct"
if [ ! -f "$file" ]; then
yum install psacct
touch /var/log/pacct
accton /var/log/pacct
echo "配置pacct工具已完成"
else
echo "配置pacct工具已存在"
fi
echo "---------配置记录su命令使用情况----------"
result=`grep "authpriv.* /var/log/secure" /etc/rsyslog.conf|wc -l` ; if [ $result -eq 0 ];then
echo "authpriv.* /var/log/secure" >> /etc/rsyslog.conf
echo "配置记录su命令使用情况已完成"
else
echo "记录su命令使用情况已存在"
fi
相关文章:
Linux 主机一键安全整改策略
为防止linux主机被恶意攻击,和受到攻击后能更快定位到源头,需要对linux主机做一些参数配置。 比如禁用root的远程登录、用户多次密码验证失败后被锁、禁止系统账号交互式登录等等。 下面是linux主机安全整改的一些简单介绍,最后会通过脚本一…...
Hot100——二叉树
树的定义: public static class TreeNode{int val;TreeNode left;TreeNode right;TreeNode(){};TreeNode(int val){ this.val val; };TreeNode(int val, TreeNode left, TreeNode right){this.val val;this.left left;this.right right;}} 深度优先遍历&#x…...
C++ static_cast、dynamic_cast、const_cast 和 reinterpret_cast 用处和区别
在 C 中,static_cast、dynamic_cast、const_cast 和 reinterpret_cast 是四种类型转换运算符,它们各自有不同的用途和行为: static_cast 用于编译时已知类型的转换,如基本数据类型转换、派生类到基类的转换、指针和引用的转换等…...
三十七、openlayers官网示例Earthquakes Heatmap解析——在地图上加载热力图
官网demo地址: Earthquakes Heatmap 这篇主要介绍了热力图HeatmapLayer HeatmapLayer 是一个用于在地图上显示热力图的图层类型,通常用于表示地理数据中的密度或强度。例如,它可以用来显示地震、人口密度或其他空间数据的热点区域。在这个示…...
curl 92 HTTP/2 stream 5 was not closed cleanly: CANCEL
source ~/.bash_profile flutter clean Command exited with code 128: git fetch --tags Standard error: 错误:RPC 失败。curl 92 HTTP/2 stream 5 was not closed cleanly: CANCEL (err 8) 错误:预期仍然需要 2737 个字节的正文 fetch-pack: unexpec…...
Spring Security 注册过滤器关键点与最佳实践
在 Spring Security 框架中,注册过滤器是实现身份验证和授权的关键组件。正确配置和使用注册过滤器对于确保应用程序的安全性至关重要。以下是一些关于 Spring Security 注册过滤器的注意事项和最佳实践。 过滤器链顺序: 注册过滤器通常位于过滤器链的末…...
力扣2024.考试的最大困扰度
力扣2024.考试的最大困扰度 注意同时>k才处理 class Solution {public:int maxConsecutiveAnswers(string answerKey, int k) {int n answerKey.size(),res0;unordered_map<int,int> cnt;for(int i0,j0;i<n;i){cnt[answerKey[i] - a] ;while(cnt[T - a] > k …...
java配置文件解析yml/xml/properties文件
XML 以mybatis.xml:获取所有Environment中的数据库并连接session为例 import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.xml.sax.SAXException;import javax.xml.parsers.DocumentBuilder; impo…...
grpc接口调用
grpc接口调用 准备依赖包clientserver 参考博客: Grpc项目集成到java方式调用实践 gRpc入门和springboot整合 java 中使用grpc java调用grpc服务 准备 因为需要生成代码,所以必备插件 安装后重启 依赖包 <?xml version"1.0" encoding&…...
通信技术振幅键控(ASK)调制与解调硬件实验
一、实验目的 1. 掌握用键控法产生ASK信号的方法; 2. 掌握ASK非相干解调的原理。 二、实验内容 1. 观察ASK已调信号的波形; 2. 观察ASK解调信号的波形。 三、实验器材 1. 双踪示波器; 2. 通信原理实验箱信号源模块、③、④、⑦号模块。…...
自动化办公02 用openpyxl库操作excel.xlsx文件(新版本)
目录 一、文件读操作 二、文件写操作 三、修改单元格样式 openpyxl 是一个处理Excel表格的第三方库。openpyxl 库可以处理Excel2010以后的电子表格格式,包括:xlsx/xlsm/xltx/xltm。 openpyxl教程 一、文件读操作 工作簿(workbook): excel文件 工作表…...
用户反馈解决方案 —— 兔小巢构建反馈功能
目录 01: 前言 02: 用户反馈整体实现方案分析 03: 兔小巢全解析 04: 基于兔小巢实现用户反馈 05: 总结 01: 前言 在前台系统中,用户反馈 功能也是一个非常常见的需求。 通过反馈功能,我们可以知道当前的应用存在的一些不足和用户相应的一些诉求。…...
git 下载失败
-- 错误0 加 sudo git config --global http.postBuffer 524288000 -- 错误 $ git clone https://github.com/espressif/arduino-esp32.git -b release/v2.x arduino Cloning into arduino... remote: Enumerating objects: 53886, done. remote: Counting objects: 100% (1…...
力扣1438.绝对差不超过限制的最长连续子数组
力扣1438.绝对差不超过限制的最长连续子数组 难点:保存数组缩小后的最大最小值 用两个单调队列分别处理最大值和最小值 class Solution {public:int longestSubarray(vector<int>& nums, int limit) {deque<int> quemax,quemin;int n nums.size…...
如何避免Python中默认参数带来的陷阱
Python编程中,我们有时会给函数或方法提供默认参数。然而,这种做法在某些情况下可能会导致意想不到的行为,尤其是当默认参数是可变对象(例如列表、字典或类实例对象)时。本文将通过几个具体的例子来解释这个问题&#…...
代码随想录算法训练营第五十天|198.打家劫舍、213.打家劫舍II、337.打家劫舍III
代码随想录算法训练营第五十天 198.打家劫舍 题目链接:198.打家劫舍 确定dp数组以及下标的含义:dp[i]:考虑下标i(包括i)以内的房屋,最多可以偷窃的金额为dp[i]。确定递推公式:max(dp[i - 1],…...
VB.net 进行CAD二次开发(二)
利用参考文献2,添加面板 执行treeControl New UCTreeView()时报一个错误: 用户代码未处理 System.ArgumentException HResult-2147024809 Message控件不支持透明的背景色。 SourceSystem.Windows.Forms StackTrace: 在 System.Windows…...
安徽某高校数据挖掘作业6
1 根据附件中year文件,编辑Python程序绘制年销售总额分布条形图和年净利润分布条形图,附Python程序和图像。 2 根据附件中quarter和quarter_b文件,编辑Python程序绘制2018—2020年销售额和净利润折线图,附Python程序和图像。 3 …...
CMakeLists.txt和Package.xml
CMakeLists.txt和Package.xml CMakeLists.txt 总览 CMakeLists.txt 是用于定义如何构建 ROS (Robot Operating System) 包的 CMake 脚本文件。CMake 是一个跨平台的构建系统,用于自动化编译过程。在 ROS 中,CMakeLists.txt 文件指定了如何编译代码和链…...
Debian常用命令详解
Debian常用命令详解 Debian是一个流行的Linux发行版,它以其稳定性、强大的包管理系统和丰富的软件仓库而著称。对于Debian用户来说,掌握一些常用的命令行工具和命令是日常系统管理和维护的基础。下面,我们将介绍一些Debian系统中常用的命令。…...
解锁数据库简洁之道:FastAPI与SQLModel实战指南
在构建现代Web应用程序时,与数据库的交互无疑是核心环节。虽然传统的数据库操作方式(如直接编写SQL语句与psycopg2交互)赋予了我们精细的控制权,但在面对日益复杂的业务逻辑和快速迭代的需求时,这种方式的开发效率和可…...
WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)
一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解,适合用作学习或写简历项目背景说明。 🧠 一、概念简介:Solidity 合约开发 Solidity 是一种专门为 以太坊(Ethereum)平台编写智能合约的高级编…...
Java多线程实现之Thread类深度解析
Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...
Java编程之桥接模式
定义 桥接模式(Bridge Pattern)属于结构型设计模式,它的核心意图是将抽象部分与实现部分分离,使它们可以独立地变化。这种模式通过组合关系来替代继承关系,从而降低了抽象和实现这两个可变维度之间的耦合度。 用例子…...
人机融合智能 | “人智交互”跨学科新领域
本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...
七、数据库的完整性
七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...
【网络安全】开源系统getshell漏洞挖掘
审计过程: 在入口文件admin/index.php中: 用户可以通过m,c,a等参数控制加载的文件和方法,在app/system/entrance.php中存在重点代码: 当M_TYPE system并且M_MODULE include时,会设置常量PATH_OWN_FILE为PATH_APP.M_T…...
MacOS下Homebrew国内镜像加速指南(2025最新国内镜像加速)
macos brew国内镜像加速方法 brew install 加速formula.jws.json下载慢加速 🍺 最新版brew安装慢到怀疑人生?别怕,教你轻松起飞! 最近Homebrew更新至最新版,每次执行 brew 命令时都会自动从官方地址 https://formulae.…...
wpf在image控件上快速显示内存图像
wpf在image控件上快速显示内存图像https://www.cnblogs.com/haodafeng/p/10431387.html 如果你在寻找能够快速在image控件刷新大图像(比如分辨率3000*3000的图像)的办法,尤其是想把内存中的裸数据(只有图像的数据,不包…...
Modbus RTU与Modbus TCP详解指南
目录 1. Modbus协议基础 1.1 什么是Modbus? 1.2 Modbus协议历史 1.3 Modbus协议族 1.4 Modbus通信模型 🎭 主从架构 🔄 请求响应模式 2. Modbus RTU详解 2.1 RTU是什么? 2.2 RTU物理层 🔌 连接方式 ⚡ 通信参数 2.3 RTU数据帧格式 📦 帧结构详解 🔍…...
