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系统中常用的命令。…...
【杂谈】-递归进化:人工智能的自我改进与监管挑战
递归进化:人工智能的自我改进与监管挑战 文章目录 递归进化:人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管?3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...
Appium+python自动化(十六)- ADB命令
简介 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试…...
【VLNs篇】07:NavRL—在动态环境中学习安全飞行
项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战,克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...
C#中的CLR属性、依赖属性与附加属性
CLR属性的主要特征 封装性: 隐藏字段的实现细节 提供对字段的受控访问 访问控制: 可单独设置get/set访问器的可见性 可创建只读或只写属性 计算属性: 可以在getter中执行计算逻辑 不需要直接对应一个字段 验证逻辑: 可以…...
华为OD最新机试真题-数组组成的最小数字-OD统一考试(B卷)
题目描述 给定一个整型数组,请从该数组中选择3个元素 组成最小数字并输出 (如果数组长度小于3,则选择数组中所有元素来组成最小数字)。 输入描述 行用半角逗号分割的字符串记录的整型数组,0<数组长度<= 100,0<整数的取值范围<= 10000。 输出描述 由3个元素组成…...
Unity VR/MR开发-VR开发与传统3D开发的差异
视频讲解链接:【XR马斯维】VR/MR开发与传统3D开发的差异【UnityVR/MR开发教程--入门】_哔哩哔哩_bilibili...
解析两阶段提交与三阶段提交的核心差异及MySQL实现方案
引言 在分布式系统的事务处理中,如何保障跨节点数据操作的一致性始终是核心挑战。经典的两阶段提交协议(2PC)通过准备阶段与提交阶段的协调机制,以同步决策模式确保事务原子性。其改进版本三阶段提交协议(3PC…...
Matlab实现任意伪彩色图像可视化显示
Matlab实现任意伪彩色图像可视化显示 1、灰度原始图像2、RGB彩色原始图像 在科研研究中,如何展示好看的实验结果图像非常重要!!! 1、灰度原始图像 灰度图像每个像素点只有一个数值,代表该点的亮度(或…...
《Offer来了:Java面试核心知识点精讲》大纲
文章目录 一、《Offer来了:Java面试核心知识点精讲》的典型大纲框架Java基础并发编程JVM原理数据库与缓存分布式架构系统设计二、《Offer来了:Java面试核心知识点精讲(原理篇)》技术文章大纲核心主题:Java基础原理与面试高频考点Java虚拟机(JVM)原理Java并发编程原理Jav…...
NineData数据库DevOps功能全面支持百度智能云向量数据库 VectorDB,助力企业 AI 应用高效落地
NineData 的数据库 DevOps 解决方案已完成对百度智能云向量数据库 VectorDB 的全链路适配,成为国内首批提供 VectorDB 原生操作能力的服务商。此次合作聚焦 AI 开发核心场景,通过标准化 SQL 工作台与细粒度权限管控两大能力,助力企业安全高效…...
