服务器linux操作系统安全加固
一、系统更新与补丁管理
更新系统sudo yum update -y # 更新所有软件包
sudo yum install epel-release -y # 安装EPEL扩展源启用自动安全更新sudo yum install yum-cron -y
sudo systemctl enable yum-cron
sudo systemctl start yum-cron配置 /etc/yum/yum-cron.conf,设置 update_cmd = security 和 apply_updates = yes。
二、账户与权限安全
禁用root远程登录
编辑 /etc/ssh/sshd_config:PermitRootLogin no创建普通用户并赋予sudo权限
bash
复制useradd admin
passwd admin
usermod -aG wheel admin # 加入sudo组限制sudo权限编辑 /etc/sudoers,限制用户仅能执行必要命令:admin ALL=(ALL) /usr/bin/systemctl restart nginx, /usr/sbin/reboot密码策略强化修改 /etc/login.defs:PASS_MAX_DAYS 90PASS_MIN_DAYS 1PASS_MIN_LEN 12PASS_WARN_AGE 7安装密码复杂度检查模块:sudo yum install cracklibsudo vi /etc/pam.d/system-auth # 添加 `minlen=12 difok=3 ucredit=-1 lcredit=-1 dcredit=-1`
三、SSH 安全加固
修改SSH默认端口
编辑 /etc/ssh/sshd_config:Port 2222 # 改为非标准端口(如2222)仅允许密钥登录PasswordAuthentication no
PubkeyAuthentication yes限制SSH访问IPAllowUsers admin@192.168.1.0/24 # 仅允许特定IP段的用户登录重启SSH服务sudo systemctl restart sshd
四、防火墙与网络防护
启用firewalldsudo systemctl enable firewalld
sudo systemctl start firewalld配置防火墙规则sudo firewall-cmd --permanent --add-port=2222/tcp # 放行SSH端口
sudo firewall-cmd --permanent --remove-service=ssh # 删除默认SSH端口
sudo firewall-cmd --reload禁用ICMP重定向
编辑 /etc/sysctl.conf:net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv6.conf.all.accept_redirects = 0
net.ipv6.conf.default.accept_redirects = 0sudo sysctl -p # 生效配置
五、SELinux 强化
启用SELinux
编辑 /etc/selinux/config:SELINUX=enforcing
SELINUXTYPE=targetedsudo setenforce 1 # 临时生效管理SELinux策略sudo yum install setroubleshoot setools -y # 安装管理工具
sudo audit2allow -a -M mypolicy # 根据日志生成自定义策略
六、服务与进程管理
关闭无用服务sudo systemctl stop bluetooth cups avahi-daemon
sudo systemctl disable bluetooth cups avahi-daemon使用最小化安装sudo yum install @minimal # 仅安装必需软件包监控进程与端口sudo netstat -tulnp | grep LISTEN # 检查开放端口
sudo ps aux | grep可疑进程名
七、文件系统与权限加固
关键文件权限设置sudo chmod 600 /etc/passwd /etc/shadow # 仅root可读写
sudo chattr +i /etc/passwd /etc/shadow # 防止文件被修改禁用SUID/SGIDfind / -perm /4000 -exec ls -l {} \; # 查找SUID文件
find / -perm /2000 -exec ls -l {} \; # 查找SGID文件
# 移除不必要的SUID/SGID权限(如chmod u-s /path/to/file)挂载选项加固
编辑 /etc/fstab,为分区添加 noexec,nosuid 选项:/dev/sda1 /boot xfs defaults,noexec,nosuid 0 0
八、日志与审计
启用审计服务sudo systemctl enable auditd
sudo systemctl start auditd配置审计规则
编辑 /etc/audit/rules.d/audit.rules,添加以下规则:-a always,exit -F arch=b64 -S execve -k process_trace # 跟踪进程执行
-w /etc/passwd -p wa -k user_accounts # 监控用户账户变更日志轮转与备份配置 /etc/logrotate.conf,确保日志定期压缩和清理。
九、入侵检测与防护
安装Fail2ban防暴力破解sudo yum install fail2ban
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local编辑 /etc/fail2ban/jail.local,设置SSH防护:[sshd]enabled = trueport = 2222 # 与SSH端口一致maxretry = 3使用Rootkit检测工具sudo yum install rkhunter
sudo rkhunter --check --sk
十、其他高级防护
内核参数调优
编辑 /etc/sysctl.conf,添加以下内容:net.ipv4.tcp_syncookies = 1
net.ipv4.conf.all.rp_filter = 1
kernel.kptr_restrict = 1
kernel.dmesg_restrict = 1配置历史命令安全echo 'export HISTTIMEFORMAT="%F %T "' >> ~/.bashrc # 记录时间戳
echo 'export HISTSIZE=10000' >> ~/.bashrc # 保留更多历史记录
echo 'export HISTCONTROL=ignoreboth' >> ~/.bashrc # 忽略重复命令和空格开头的命令
十一、验证与监控
安全扫描工具使用 Lynis 进行系统审计:sudo yum install lynissudo lynis audit system使用 OpenSCAP 扫描合规性:sudo yum install openscap-scanner scap-security-guidesudo oscap xccdf eval --profile stig-rhel7-disa --results scan.xml /usr/share/xml/scap/ssg/content/ssg-centos7-ds.xml定期备份与恢复测试sudo tar -czvf /backup/system_backup_$(date +%F).tar.gz /etc /var/log
注意事项
测试环境验证:所有配置先在测试环境验证,避免影响生产服务。备份配置文件:修改关键文件前备份(如 cp /etc/ssh/sshd_config{,.bak})。监控与告警:部署监控工具(如Prometheus + Grafana)实时跟踪系统状态。
相关文章:
服务器linux操作系统安全加固
一、系统更新与补丁管理 更新系统sudo yum update -y # 更新所有软件包 sudo yum install epel-release -y # 安装EPEL扩展源启用自动安全更新sudo yum install yum-cron -y sudo systemctl enable yum-cron sudo systemctl start yum-cron配置 /etc/yum/yum-cron.con…...
原生Three.js 和 Cesium.js 案例 。 智慧城市 数字孪生常用功能列表
对于大多数的开发者来言,看了很多文档可能遇见不到什么有用的,就算有用从文档上看,把代码复制到自己的本地大多数也是不能用的,非常浪费时间和学习成本, 尤其是three.js , cesium.js 这种难度较高ÿ…...
Node.js中Express框架使用指南:从入门到企业级实践
目录 一、Express快速入门 1. 项目初始化 2. 基础服务搭建 3. 添加热更新 二、核心功能详解 1. 路由系统 动态路由参数 路由模块化 2. 中间件机制 自定义中间件 常用官方中间件 3. 模板引擎集成 三、企业级最佳实践 1. 项目结构规范 2. 错误处理方案 3. 安全防护…...
spring 学习 (注解)
目录 前言 常用的注解 须知 1 Conponent注解 demo(案例) 2 ControllerServiceRepository demo(案例) 3 ScopeLazyPostConstructPreDestroy demo(案例) 4 ValueAutowiredQualifierResource demo(案例) 5 Co…...
计算机等级考试——计算机三级——网络技术部分
计算机三级——网络技术部分 一、外部网关协议BGP考点二、IPS入侵防护系统考点三、OSPF协议考点四、弹性分组环——RPR技术 一、外部网关协议BGP考点 高频考点,中考次数:25次 这类知识采用背诵的方式,可以更快速地备考。 BGP是边界网关协议&…...
新版电脑通过wepe安装系统
官方下载链接 WIN10下载 WIN11下载 微PE 启动盘制作 1:选择启动盘的设备 2:选择对应的U盘设备,点击安装就可以,建议大于8g 3:在上方链接下载需要安装的程序包,放入启动盘,按需 更新系统 …...
oracle中decode怎么转换成pg
对于 PostgreSQL 中的 Oracle DECODE 函数,可以使用 CASE 表达式或联合。CASE 表达式根据条件返回第一个匹配的结果,语法为:CASE WHEN 条件 THEN 结果 ELSE 结果 END。联合通过 UNION ALL 操作符组合多个 SELECT 语句,返回一个包含…...
【NLP】循环神经网络RNN
目录 一、词嵌入层 二、循环网络层 2.1 RNN网络原理 2.2 Pytorch RNN API 自然语言处理(Nature language Processing,NLP)研究的主要是通过计算机算法来理解自然语言。对于自然语言来说,处理的数据主要就是人类的语言…...
Linux嵌入式完整镜像烧写到SD卡中的方法(包括对SD卡的介绍)
前言 本篇博文是博文https://blog.csdn.net/wenhao_ir/article/details/145547974 的分支,在本篇博文里我们主要是完成将镜像文件imx-image-full-imx6ull14x14evk-20201209093926.rootfs.wic烧写到SD卡中。 SD卡的介绍 SD卡(Secure Digital卡…...
vscode怎么更新github代码
vscode怎么更新github代码 打开终端: 在 VS Code 中,使用快捷键 Ctrl (Mac 上是 Cmd) 打开终端。 导航到项目目录: 确保你当前所在的终端目录是你的项目目录。如果不是,可以使用 cd 命令导航到项目目录,例如…...
回顾Golang的Channel与Select第二篇
深入掌握Go Channel与Select:从原理到生产级实践 一、Channel基础:不只是数据管道 1.1 通道的完整生命周期(可运行示例) package mainimport ("fmt""time" )func main() {// 创建缓冲通道ch : make(chan i…...
基于mediapipe深度学习的手势数字识别系统python源码
目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) 2.算法运行软件版本 程序运行配置环境: 人工智能算法python程序运行环境安装步骤整理-CSDN博客 3.部分核心…...
JS实现大文件切片上传以及断点续传
切片上传的原理是: 1.因为file对象的基类是blob,所以可以使用slice分割 2.将从input中获取的file对象使用slice进行分割,每5M一片 3.分别上传各个切片,等待切片上传完通知服务端合并(或者传每一片时把切片总数量也传…...
AI编程01-生成前/后端接口对表-豆包(或Deepseek+WPS的AI
前言: 做过全栈的工程师知道,如果一个APP的项目分别是前端/后端两个团队开发的话,那么原型设计之后,通过接口文档进行开发对接是非常必要的。 传统的方法是,大家一起定义一个接口文档,然后,前端和后端的工程师进行为何,现在AI的时代,是不是通过AI能协助呢,显然可以…...
小众宝藏分子生物学实验中常用的软件:InSequence
欢迎使用InSequence,正版免费使用,操作友好,小白也能轻松上手哦~ 1. 全新中文界面与更大操作空间 全中文简洁直观的操作界面,常用功能固定至工具栏,随心自定义更改工具栏,让科研人员能够更快速地上手&…...
【自学笔记】机器学习基础知识点总览-持续更新
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 机器学习重点知识点总览一、机器学习基础概念二、机器学习理论基础三、机器学习算法1. 监督学习2. 无监督学习3. 强化学习 四、机器学习处理流程五、机器学习常见问…...
HCIA综合项目之多技术的综合应用实验
十五 HCIA综合实验 15.1 IP规划 #内网分配网段192.168.1.0 24#内网包括骨干链路和两个用户网段,素以需要划分三个,借两位就够用了192.168.1.0 26--骨干192.168.1.64 26---R1下网络192.168.1.128 26---R2下网络192.168.1.192 26--备用192.168.1.64 26--…...
[免费]Springboot+Vue医疗(医院)挂号管理系统【论文+源码+SQL脚本】
大家好,我是java1234_小锋老师,看到一个不错的SpringbootVue医疗(医院)挂号管理系统,分享下哈。 项目视频演示 【免费】SpringBootVue医疗(医院)挂号管理系统 Java毕业设计_哔哩哔哩_bilibili 项目介绍 在如今社会上,关于信息上…...
网络基础 【UDP、TCP】
1.UDP 首先我们学习UDP和TCP协议 要从这三个问题入手 1.报头和有效载荷如何分离、有效载荷如何交付给上一层的协议?2.认识报头3.学习该协议周边的问题 UDP报头 UDP我们先从示意图来讲解,认识报头。 UDP协议首部有16位源端口号,16位目的端…...
Linux centos8部署maven3.9.9
Linux环境为centos8 一、环境配置 下载部署maven之前先需要先部署好Java环境,我这里是Java17.0.6 先去官网下载jdk包,然后进行环境配置 vim /etc/profile 配置如下: export JAVA_HOME/root/jdk-17.0.6 #Java的安装目录 export JRE_HOM…...
遍历 Map 类型集合的方法汇总
1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...
【机器视觉】单目测距——运动结构恢复
ps:图是随便找的,为了凑个封面 前言 在前面对光流法进行进一步改进,希望将2D光流推广至3D场景流时,发现2D转3D过程中存在尺度歧义问题,需要补全摄像头拍摄图像中缺失的深度信息,否则解空间不收敛…...
C++ 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...
Spring数据访问模块设计
前面我们已经完成了IoC和web模块的设计,聪明的码友立马就知道了,该到数据访问模块了,要不就这俩玩个6啊,查库势在必行,至此,它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据(数据库、No…...
sipsak:SIP瑞士军刀!全参数详细教程!Kali Linux教程!
简介 sipsak 是一个面向会话初始协议 (SIP) 应用程序开发人员和管理员的小型命令行工具。它可以用于对 SIP 应用程序和设备进行一些简单的测试。 sipsak 是一款 SIP 压力和诊断实用程序。它通过 sip-uri 向服务器发送 SIP 请求,并检查收到的响应。它以以下模式之一…...
Mysql8 忘记密码重置,以及问题解决
1.使用免密登录 找到配置MySQL文件,我的文件路径是/etc/mysql/my.cnf,有的人的是/etc/mysql/mysql.cnf 在里最后加入 skip-grant-tables重启MySQL服务 service mysql restartShutting down MySQL… SUCCESS! Starting MySQL… SUCCESS! 重启成功 2.登…...
虚拟电厂发展三大趋势:市场化、技术主导、车网互联
市场化:从政策驱动到多元盈利 政策全面赋能 2025年4月,国家发改委、能源局发布《关于加快推进虚拟电厂发展的指导意见》,首次明确虚拟电厂为“独立市场主体”,提出硬性目标:2027年全国调节能力≥2000万千瓦࿰…...
LangChain 中的文档加载器(Loader)与文本切分器(Splitter)详解《二》
🧠 LangChain 中 TextSplitter 的使用详解:从基础到进阶(附代码) 一、前言 在处理大规模文本数据时,特别是在构建知识库或进行大模型训练与推理时,文本切分(Text Splitting) 是一个…...
Linux-进程间的通信
1、IPC: Inter Process Communication(进程间通信): 由于每个进程在操作系统中有独立的地址空间,它们不能像线程那样直接访问彼此的内存,所以必须通过某种方式进行通信。 常见的 IPC 方式包括&#…...
SQL进阶之旅 Day 22:批处理与游标优化
【SQL进阶之旅 Day 22】批处理与游标优化 文章简述(300字左右) 在数据库开发中,面对大量数据的处理任务时,单条SQL语句往往无法满足性能需求。本篇文章聚焦“批处理与游标优化”,深入探讨如何通过批量操作和游标技术提…...
