Linux运维笔记:服务器安全加固

文章目录

    • 背景
    • 加固措施
      • 1. 修改用户密码
      • 2. 使用公钥认证替代密码登录
      • 3. 强化系统安全
      • 4. 扫描与清理残留威胁
      • 5. 规范软件管理(重点)
    • 注意事项
    • 总结

提示:本文总结了大学实验室 Linux 电脑感染挖矿病毒后的安全加固措施,重点介绍用户密码管理、系统安全强化、威胁清理及软件管理规范化,特别强调防止不正规软件引入威胁的策略。适合实验室用户和系统管理员参考。

背景

我们的实验室电脑(Ubuntu 系统,内网 IP 10.101.100.37)近期感染了疑似挖矿病毒,涉及恶意脚本 /bin/tDLzoNS7 和隐藏进程 /dev/shm/netools,通过 Cron 任务持久运行并连接外部服务器(美国加州) 45.154.1.156:80。清理后,病毒脚本已移除,半小时内未再出现挖矿行为,其他机器未受感染。初步判断,感染源自不正规的应用软件包,而非外部攻击,因访问需通过大学 VPN。

实验室电脑通过 VPN 访问,外部攻击可能性低。VPN 提供加密隧道和认证机制,大学防火墙限制入站流量,私有 IP 地址(10.101.100.37)不可直接从公网访问。感染更可能是内部引入的恶意软件主动发起出站连接,凸显规范软件管理的重要性。

本文聚焦加固措施,特别强调“规范软件管理”,以确保实验室电脑安全。

加固措施

1. 修改用户密码

目标:增强账户安全性,防止未经授权访问。

步骤

  • 修改 root 密码:
    sudo passwd root
    
    • 使用强密码(至少 12 位,包含大小写字母、数字、符号,如 X7$kPq9#mW2n)。
  • 修改用户密码(如 ccccs):
    passwd ccccs
    
  • 检查用户账户:
    cat /etc/passwd  # 列出所有用户
    sudo last        # 查看登录历史
    
    • 删除一年以上未使用的账户:
      sudo userdel -r <username>
      

说明:恶意软件可能利用弱密码或默认账户入侵。定期更换密码并限制用户权限还是有必要的,尤其在实验室多人共用电脑的场景下。

2. 使用公钥认证替代密码登录

目标:通过 SSH 公钥认证禁用密码登录,提高账户安全性,降低暴力破解风险。

流程

  1. 生成密钥对(在用户本地设备,如个人电脑):

    ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
    
    • 按提示保存密钥(默认 ~/.ssh/id_rsa),可设置密码保护私钥。
    • 输出公钥文件 ~/.ssh/id_rsa.pub
  2. 将公钥上传到服务器(目标实验室电脑):

    • 复制公钥到服务器用户(如 ccccs)的 ~/.ssh/authorized_keys
      ssh-copy-id ccccs@10.101.100.37
      
      或手动复制:
      cat ~/.ssh/id_rsa.pub | ssh ccccs@10.101.100.37 'mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys'
      
    • 确保权限正确:
      ssh ccccs@10.101.100.37
      chmod 700 ~/.ssh
      chmod 600 ~/.ssh/authorized_keys
      
  3. 禁用密码登录

    • 编辑 SSH 配置文件:
      sudo nano /etc/ssh/sshd_config
      
    • 修改或添加以下行:
      PasswordAuthentication no
      PubkeyAuthentication yes
      
    • 重启 SSH 服务:
      sudo systemctl restart sshd
      
  4. 测试公钥登录

    • 从本地设备尝试 SSH:
      ssh ccccs@10.101.100.37
      
    • 应无需密码即可登录(若设置了私钥密码,需输入)。

说明:公钥认证使用非对称加密,私钥存储在用户设备,公钥存于服务器,安全性远高于密码。禁用密码登录可有效防止暴力破解,尤其适合通过 VPN 访问的实验室环境。需确保私钥安全,避免泄露。

3. 强化系统安全

目标:修复漏洞,限制不必要访问。

步骤

  • 更新系统:
    sudo apt update && sudo apt upgrade
    sudo apt dist-upgrade
    
  • 配置防火墙(系统已经默认配置,重启即可):
    sudo apt install ufw
    sudo ufw default deny incoming
    sudo ufw default allow outgoing
    sudo ufw allow 22/tcp  # 允许 SSH
    sudo ufw enable
    sudo ufw status       # 验证状态
    

说明:之前恶意脚本禁用了防火墙(ufw disableiptables -P ACCEPT),重新配置 UFW 可防止类似攻击。

4. 扫描与清理残留威胁

目标:确保无隐藏恶意软件。

步骤

  • 扫描隐藏进程:
    sudo unhide proc
    sudo unhide brute -d
    sudo unhide-tcp
    

5. 规范软件管理(重点)

目标:杜绝不正规软件引入病毒,保障实验室电脑安全。

步骤

  • 仅从正规软件源安装软件
    sudo apt install <package>  # 使用 Ubuntu 官方仓库 或 阿里云镜像仓库
    
  • 检查已安装软件
    dpkg -l | grep <suspicious_name>
    sudo apt remove <package>  # 移除可疑软件
    
  • 验证软件包签名
    sudo apt-key list  # 检查 GPG 密钥
    
  • 使用容器隔离实验软件
    sudo apt install docker.io
    sudo docker run -it <image>  # 在隔离环境中运行
    
  • 建立严格的政策
    • 禁止下载未经验证的 .deb.sh 或二进制文件。
    • 实施软件白名单,需经管理员审核。
    • 记录软件安装日志:
      sudo nano /var/log/software_install.log
      

说明:本次病毒感染疑似因不正规软件包引入,凸显规范软件管理的重要性。实验室常需安装实验软件,容器化(如 Docker)可隔离潜在威胁,避免直接影响系统。严格的政策和培训能从源头降低风险。

注意事项

  1. VPN 依赖性:实验室电脑通过 VPN 访问,外部攻击可能性低,但需关注出站流量(如挖矿连接)。
  2. 重装考虑:尽管病毒已清理,系统可能存在隐藏威胁。建议备份数据后重装:
  3. 持续监控:定期检查防火墙和进程:
    sudo ufw status
    ps -aux | grep netools
    

总结

通过修改密码、强化系统安全、清理威胁和规范软件管理,我们显著提升了实验室电脑的安全性。特别地,规范软件管理是防止不正规软件引入病毒的核心措施,结合容器化和严格政策,能有效降低未来风险。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/news/908410.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Pycharm 配置解释器

今天更新了一版pycharm&#xff0c;因为很久没有配置解释器了&#xff0c;发现一直失败。经过来回试了几次终于成功了&#xff0c;记录一下过程。 Step 1 Step 2 这里第二步一定要注意类型要选择python 而不是conda。 虽然我的解释器是conda 里面建立的一个环境。挺有意思的

【Linux】awk 命令详解及使用示例:结构化文本数据处理工具

【Linux】awk 命令详解及使用示例&#xff1a;结构化文本数据处理工具 引言 awk 是一种强大的文本处理工具和编程语言&#xff0c;专为处理结构化文本数据而设计。它的名称来源于其三位创始人的姓氏首字母&#xff1a;Alfred Aho、Peter Weinberger 和 Brian Kernighan。 基…

MS1023/MS1224——10MHz 到 80MHz、10:1 LVDS 并串转换器(串化器)/串并转换器(解串器)

产品简述 MS1023 串化器和 MS1224 解串器是一对 10bit 并串 / 串并转 换芯片&#xff0c;用于在 LVDS 差分底板上传输和接收 10MHz 至 80MHz 的并行字速率的串行数据。起始 / 停止位加载后&#xff0c;转换为负载编 码输出&#xff0c;串行数据速率介于 120Mbps…

跟我学c++中级篇——理解类型推导和C++不同版本的支持

一、类型推导 在前面反复分析过类型推导&#xff08;包括前面提到的类模板参数推导CTAD&#xff09;&#xff0c;类型推导其实就是满足C语言这种强类型语言的要求即编译期必须确定对象的数据类型。换一句话说&#xff0c;理论上如果编译器中能够自动推导所有的相关数据类型&am…

vue3+TS+eslint9配置

记录eslint升级到9.x的版本之后遇到的坑 在 ESLint 9 中&#xff0c;配置方式发生了变化。Flat Config 格式&#xff08;eslint.config.js 或 .ts&#xff09;不再支持 extensions 选项。所以vscode编辑器中的 extensions 需要注释掉&#xff0c;要不然保存的时候不会格式化。…

书籍推荐 --- 《筚路维艰:中国经济社会主义路径的五次选择》

萧冬连.筚路维艰:中国社会主义路径的五次选择[M]. 前不久看完的这本书&#xff0c;还是蛮受震撼的。 这本书比较细致地(引用了很多的史料)、从中央高层的视角讲解了从新中国成立一直到改革开放初期这30多年里(1949---1980年代)发生在我国的几次重大事件(三大改造、第一个五年计…

C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)

名人说&#xff1a;路漫漫其修远兮&#xff0c;吾将上下而求索。—— 屈原《离骚》 创作者&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 专栏介绍&#xff1a;《编程项目实战》 目录 一、为什么要开发一个日历程序&#xff…

(三)动手学线性神经网络:从数学原理到代码实现

1 线性回归 线性回归是一种基本的预测模型&#xff0c;用于根据输入特征预测连续的输出值。它是机器学习和深度学习中最简单的模型之一&#xff0c;但却是理解更复杂模型的基础。 1.1 线性回归的基本元素 概念理解&#xff1a; 线性回归假设输入特征和输出之间存在线性关系。…

二十五、面向对象底层逻辑-SpringMVC九大组件之HandlerMapping接口设计

一、引言&#xff1a;MVC架构的交通枢纽 在Spring MVC框架中&#xff0c;HandlerMapping接口扮演着"请求导航仪"的关键角色&#xff0c;它决定了HTTP请求如何被路由到对应的Controller处理器。作为MVC模式的核心组件之一&#xff0c;HandlerMapping在请求处理的生命…

凌晨四点的星光

凌晨四点的城市像台停止运转的老旧机器&#xff0c;陈明裹紧外套踩着路灯的残影往家走。键盘敲击声仿佛还在耳边回响&#xff0c;他揉了揉酸涩的眼睛&#xff0c;手机屏幕突然亮起&#xff0c;是妻子发来的消息&#xff1a;“孩子又发烧了&#xff0c;我带他去医院。” 这是他…

Kyosan K5BMC ELECTRONIC INTERLOCKING MANUAL 电子联锁

Kyosan K5BMC ELECTRONIC INTERLOCKING MANUAL 电子联锁

LeetCode 热题 100 74. 搜索二维矩阵

LeetCode 热题 100 | 74. 搜索二维矩阵 大家好&#xff0c;今天我们来解决一道经典的算法题——搜索二维矩阵。这道题在 LeetCode 上被标记为中等难度&#xff0c;要求我们在一个满足特定条件的二维矩阵中查找一个目标值。如果目标值在矩阵中&#xff0c;返回 true&#xff1b…

如何在 HTML 中添加按钮

原文&#xff1a;如何在 HTML 中添加按钮 | w3cschool笔记 &#xff08;请勿将文章标记为付费&#xff01;&#xff01;&#xff01;&#xff01;&#xff09; 在网页开发中&#xff0c;按钮是用户界面中不可或缺的元素之一。无论是用于提交表单、触发动作还是导航&#xff0…

一篇文章实现Android图片拼接并保存至相册

系列文章目录 一篇文章实现Android图片拼接并保存至相册 文章目录 系列文章目录前言实现功能类定义和成员变量onCreate方法权限检查和图片选择处理选择的图片图片拼接功能图片保存功能 使用ImageStitcher类拼接图片代码解释&#xff1a;ImageStitcher.java类定义和方法计算拼接…

2025.06.06【Ribo-seq】|riboWaltz:P-site定位与三碱基周期性分析流程

文章目录 一、前言二、riboWaltz简介三、安装与依赖四、分析流程总览1. 数据准备2. 典型分析流程2.1 读取注释和BAM2.2 P-site定位2.3 三碱基周期性与元分析2.4 密码子使用偏好分析 五、可视化与结果解读六、常见问题与注意事项七、实战经验与建议八、参考资料九、结语 一、前言…

思维链的 内部机制和简单理解

思维链的 内部机制和简单理解 思维链是对解决问题的步骤进行规划,规划后将作为上下文 在LLM中继续输出。因为Transform都是一个一个单词生成,没新生成一个单词都会将新生的作为上下文。 可以这么理解,但更准确的简化描述是: 思维链是让模型在回答问题时,先“内部生成”或…

Charles 全流程指南:安装、设置、抓包与注意事项

Charles 是一款功能强大的网络抓包工具&#xff0c;支持 HTTP/HTTPS 流量监控、请求/响应分析、断点调试等功能。本文将从安装到实战抓包&#xff0c;提供完整流程及关键注意事项。 一、安装 Charles 官网下载&#xff1a;访问 Charles 官网&#xff0c;选择对应系统版本&…

全球长序列高分辨率光合有效辐射(PAR)(1984-2018)

时间分辨率&#xff1a;时空间分辨率&#xff1a;1km - 10km共享方式&#xff1a;开放获取数据大小&#xff1a;188.92 GB数据时间范围&#xff1a;1984-01-01 — 2018-12-31元数据更新时间&#xff1a;2022-04-29 数据集摘要 本数据集是一个包含接近35年&#xff08;1984-201…

【Zephyr 系列 11】使用 NVS 实现 BLE 参数持久化:掉电不丢配置,开机自动加载

🧠关键词:Zephyr、NVS、非易失存储、掉电保持、Flash、AT命令保存、配置管理 📌目标读者:希望在 BLE 模块中实现掉电不丢配置、支持产测参数注入与自动加载功能的开发者 📊文章长度:约 5200 字 🔍 为什么要使用 NVS? 在实际产品中,我们经常面临以下场景: 用户或…

解锁Java线程池:性能优化的关键

一、引言 在 Java 并发编程的世界里&#xff0c;线程池是一个至关重要的概念。简单来说&#xff0c;线程池就是一个可以复用线程的 “池子”&#xff0c;它维护着一组线程&#xff0c;这些线程可以被重复使用来执行多个任务&#xff0c;而不是为每个任务都创建一个新的线程。​…