服务器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…...
PHP和Node.js哪个更爽?
先说结论,rust完胜。 php:laravel,swoole,webman,最开始在苏宁的时候写了几年php,当时觉得php真的是世界上最好的语言,因为当初活在舒适圈里,不愿意跳出来,就好比当初活在…...
Java 加密常用的各种算法及其选择
在数字化时代,数据安全至关重要,Java 作为广泛应用的编程语言,提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景,有助于开发者在不同的业务需求中做出正确的选择。 一、对称加密算法…...
【Oracle】分区表
个人主页:Guiat 归属专栏:Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...
企业如何增强终端安全?
在数字化转型加速的今天,企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机,到工厂里的物联网设备、智能传感器,这些终端构成了企业与外部世界连接的 “神经末梢”。然而,随着远程办公的常态化和设备接入的爆炸式…...
【Go语言基础【13】】函数、闭包、方法
文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数(函数作为参数、返回值) 三、匿名函数与闭包1. 匿名函数(Lambda函…...
免费PDF转图片工具
免费PDF转图片工具 一款简单易用的PDF转图片工具,可以将PDF文件快速转换为高质量PNG图片。无需安装复杂的软件,也不需要在线上传文件,保护您的隐私。 工具截图 主要特点 🚀 快速转换:本地转换,无需等待上…...
【Linux】Linux 系统默认的目录及作用说明
博主介绍:✌全网粉丝23W,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…...
华为OD机试-最短木板长度-二分法(A卷,100分)
此题是一个最大化最小值的典型例题, 因为搜索范围是有界的,上界最大木板长度补充的全部木料长度,下界最小木板长度; 即left0,right10^6; 我们可以设置一个候选值x(mid),将木板的长度全部都补充到x,如果成功…...
Qt的学习(二)
1. 创建Hello Word 两种方式,实现helloworld: 1.通过图形化的方式,在界面上创建出一个控件,显示helloworld 2.通过纯代码的方式,通过编写代码,在界面上创建控件, 显示hello world; …...
深入解析 ReentrantLock:原理、公平锁与非公平锁的较量
ReentrantLock 是 Java 中 java.util.concurrent.locks 包下的一个重要类,用于实现线程同步,支持可重入性,并且可以选择公平锁或非公平锁的实现方式。下面将详细介绍 ReentrantLock 的实现原理以及公平锁和非公平锁的区别。 ReentrantLock 实现原理 基本架构 ReentrantLo…...
