《Linux 简易速速上手小册》第8章: 安全性与加固(2024 最新版)

文章目录

  • 8.1 防火墙与安全策略
    • 8.1.1 重点基础知识
    • 8.1.2 重点案例:配置 iptables 以保护 Web 服务器
    • 8.1.3 拓展案例 1:使用 firewalld 配置动态防御区域
    • 8.1.4 拓展案例 2:配置 ufw 以简化管理
  • 8.2 SSH 安全最佳实践
    • 8.2.1 重点基础知识
    • 8.2.2 重点案例:加固 SSH 配置
    • 8.2.3 拓展案例:使用 `Fail2Ban` 保护 SSH
  • 8.3 系统安全扫描与加固
    • 8.3.1 重点基础知识
    • 8.3.2 重点案例:使用 Lynis 执行系统安全审计
    • 8.3.3 拓展案例 1:定期使用 ClamAV 扫描恶意软件
    • 8.3.4 拓展案例 2:使用防火墙和 Fail2Ban 增强网络安全

8.1 防火墙与安全策略

在 Linux 的安全领域,防火墙是你的第一道防线,保护系统不受未授权访问的侵害。想象你的系统是一座宝藏满满的城堡,防火墙就是围绕城堡的高墙和护城河,阻挡那些试图盗取宝藏的海盗。

8.1.1 重点基础知识

  • iptables: Linux 的传统防火墙工具,使用链和规则来控制进出网络数据包。它就像城堡的守卫,根据规则允许或拒绝访问。
  • firewalld: 一个动态防火墙管理工具,使用 zones 和 services 的概念来简化管理。它提供了更灵活的配置和更易于理解的界面,就像是城堡有不同的防御区域,每个区域都有特定的守卫任务。
  • ufw (Uncomplicated Firewall): 为那些希望通过简单命令管理防火墙的用户设计。ufw 通过简化 iptables 的配置过程,使得管理防火墙规则变得更加直观。

8.1.2 重点案例:配置 iptables 以保护 Web 服务器

假设你正在运行一个 Web 服务器,需要配置 iptables 防火墙以保护它免受未授权访问,同时确保外界可以访问 HTTP 和 HTTPS 服务。

  1. 允许 HTTP 和 HTTPS 流量:

    sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
    sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
    
  2. 拒绝默认入站流量:

    sudo iptables -P INPUT DROP
    

    这条规则意味着如果没有明确允许的规则,则拒绝所有入站流量。

  3. 允许所有出站流量:

    sudo iptables -P OUTPUT ACCEPT
    

    这确保了服务器可以自由地连接到外界。

  4. 允许来自已建立连接的数据包:

    sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
    

    这条规则允许那些作为响应服务器请求的流量。

8.1.3 拓展案例 1:使用 firewalld 配置动态防御区域

如果你的系统使用 firewalld,你可以为 Web 服务器配置一个专门的防御区域,更细致地管理规则。

sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --zone=public --add-service=https --permanent
sudo firewall-cmd --reload

8.1.4 拓展案例 2:配置 ufw 以简化管理

对于更倾向于简单性的用户,使用 ufw 来配置基本的 Web 服务器防护措施是一个不错的选择。

sudo ufw allow http
sudo ufw allow https
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw enable

通过这些案例,我们可以看到,无论是使用传统的 iptables,还是更现代的 firewalld 或 ufw,Linux 提供了多种工具来帮助你构建和管理防火墙,保护你的系统安全。掌握这些工具的使用,就像是学会了如何构建和维护城堡的高墙和护城河,确保宝藏安全。

在这里插入图片描述


8.2 SSH 安全最佳实践

在 Linux 宝库中,SSH (Secure Shell) 是一把钥匙,它让你能远程访问并管理你的系统。但如果这把钥匙落入了海盗手中,那你的宝藏就危险了。因此,保护好你的 SSH 服务是至关重要的。让我们来看看一些 SSH 安全最佳实践,确保你的宝藏箱安全无虞。

8.2.1 重点基础知识

  • 使用密钥认证代替密码:SSH 密钥提供了比传统密码更强的安全性,它几乎不可能被暴力破解。
  • 禁用 root 登录:通过 SSH 以 root 用户直接登录是一个巨大的安全风险。最佳做法是使用普通用户登录,然后在必要时切换到 root。
  • 更改默认的 SSH 端口:将 SSH 从默认的 22 端口更改到其他端口,可以减少自动化攻击的风险。
  • 使用防火墙限制访问:只允许可信的 IP 地址连接到你的 SSH 服务。

8.2.2 重点案例:加固 SSH 配置

假设你是一名系统管理员,需要加固一台公网服务器的 SSH 服务。

  1. 生成 SSH 密钥对
    在客户端机器上生成一个 SSH 密钥对。

    ssh-keygen -t rsa -b 4096
    
  2. 禁用 SSH 中的 root 登录
    编辑 /etc/ssh/sshd_config,设置 PermitRootLogin no

  3. 更改 SSH 默认端口
    在同一配置文件中,更改 Port 项,例如 Port 2222

  4. 配置防火墙限制
    仅允许来自特定 IP 的 SSH 访问。

    sudo ufw allow from 192.168.1.0/24 to any port 2222
    sudo ufw enable
    
  5. 重启 SSH 服务
    应用更改并重启 SSH 服务。

    sudo systemctl restart sshd
    

8.2.3 拓展案例:使用 Fail2Ban 保护 SSH

Fail2Ban 是一个防止暴力破解的工具,它监视登录尝试,并在多次失败后暂时或永久地封禁来源 IP。

sudo apt-get install fail2ban
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
  • 限制 SSH 用户登录

    如果只有少数用户需要通过 SSH 访问服务器,可以在 /etc/ssh/sshd_config 中使用 AllowUsers 指令限制这些用户。

    AllowUsers user1 user2
    

通过实施这些 SSH 安全最佳实践,你就为你的 Linux 系统搭建了一道坚固的防线,保护它免受未授权访问的威胁。记住,保持警惕,定期审查和更新你的安全策略,是维护系统安全的关键。

在这里插入图片描述


8.3 系统安全扫描与加固

在 Linux 安全的战场上,知己知彼是赢得胜利的关键。系统安全扫描和加固就是你的侦察兵和工程师,它们帮助你发现潜在的弱点,并加以强化,保证堡垒坚不可摧。

8.3.1 重点基础知识

  • 系统安全扫描:使用各种工具检测系统中的安全漏洞、恶意软件和配置错误。这就像是派出侦察队,寻找可能被敌人利用的弱点。
  • ClamAV:一个开源的防病毒软件,能够检测各种恶意软件和病毒。它就像是城墙上的哨兵,警惕着外来的威胁。
  • Lynis:一个安全审计工具,用于对系统进行全面的安全扫描,并提出加固建议。它就像是你的军事顾问,为你提供防御策略。

8.3.2 重点案例:使用 Lynis 执行系统安全审计

假设你是一名系统管理员,需要对一台公网服务器进行安全审计,以识别潜在的安全问题并加以解决。

  1. 安装 Lynis
    在大多数 Linux 发行版中,Lynis 都可以通过包管理器安装。

    sudo apt-get install lynis   # Debian/Ubuntu
    sudo yum install lynis       # CentOS/RHEL
    sudo dnf install lynis       # Fedora
    
  2. 运行安全扫描
    使用 Lynis 对系统进行全面的安全扫描。

    sudo lynis audit system
    

    扫描完成后,Lynis 会提供一份详细的报告,包括发现的警告、建议和需要人工检查的项目。

  3. 根据建议加固系统
    遵循 Lynis 报告中的建议,对系统进行加固。这可能包括更新软件包、更改配置设置、限制用户权限等。

8.3.3 拓展案例 1:定期使用 ClamAV 扫描恶意软件

配置定期任务,使用 ClamAV 对系统进行恶意软件扫描,及时发现并处理安全威胁。

clamscan -r /home   # 扫描 /home 目录

8.3.4 拓展案例 2:使用防火墙和 Fail2Ban 增强网络安全

除了系统安全扫描和加固外,使用防火墙和 Fail2Ban 可以进一步增强系统的网络安全。

  • 配置防火墙规则,限制不必要的入站和出站连接。
  • 使用 Fail2Ban 监控登录尝试,自动封禁频繁失败的 IP 地址。

通过这些策略和工具,你可以有效地增强 Linux 系统的安全性,防止潜在的攻击和威胁。记住,系统安全是一个持续的过程,定期的审计和更新是保持系统安全不可或缺的一部分。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

人工智能学习与实训笔记(六):神经网络之智能推荐系统

人工智能学习笔记汇总链接:人工智能学习与实训笔记汇总-CSDN博客 本篇目录 七、智能推荐系统处理 7.1 常用的推荐系统算法 7.2 如何实现推荐 7.3 基于飞桨实现的电影推荐模型 7.3.1 电影数据类型 7.3.2 数据处理 7.3.4 数据读取器 7.3.4 网络构建 7.3.4.1…

vue-ESlint (六)

代码规范 代码规范:一套写代码的约定规则。例如:"赋值符号的左右是否需要空格" "一句结束是否是要加;" . 老话说:"没有规矩不成方圆" → 正规的团队 需要 统一的编码风格 JavaScript Standard Style 规范说…

成本效能FinOps: Crane 部署

目录 一、实验 1.环境 2.安装kind 3.安装Crane 二、问题 1.脚本安装prometheus报错 2.查看集群信息失败 3.Helm添加grafana 报错 4.查看crane资源失败 5.prometheus部署时kube-state-metrics 拉取镜像显示ImagePullBackOff 6.Crane 功能与架构 一、实验 1.环境 &a…

智慧公厕的主要应用

在现代社会中,随着城市化进程的加速推进,公共卫生设施的建设和管理变得愈加重要。而智慧公厕作为一种新型城市公共设施,正以其智能化、高效化的特点,成为改善城市卫生环境的重要手段。智慧公厕运用物联网、互联网、大数据、云计算…

HAL/LL/STD STM32 U8g2库 +I2C SSD1306/sh1106 WouoUI磁贴案例

HAL/LL/STD STM32 U8g2库 I2C SSD1306/sh1106 WouoUI磁贴案例 📍基于STM32F103C8T6 LL库驱动版本:https://gitee.com/chcsx/platform-test/tree/master/MDK-ARM🎬视频演示: WouoUI移植磁贴案例,新增确认弹窗 &#x1f…

无人驾驶LQR控制算法 c++ 实现

参考博客: (1)LQR的理解与运用 第一期——理解篇 (2)线性二次型调节器(LQR)原理详解 (3)LQR控制基本原理(包括Riccati方程具体推导过程) (4)【基础…

精品jsp+ssm鲜花销售管理系统-购物商城

《[含文档PPT源码等]精品jspssm鲜花销售管理系统[包运行成功]》该项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程、包运行成功! 使用技术: 开发语言:Java 框架:ssm 技术:JSP JDK版本&#x…

微信小程序如何配置服务器域名

目录 一、微信小程序 二、域名 三、服务器 四、如何配置服务器域名 一、微信小程序 微信小程序是一种轻量级的应用程序,用户无需下载安装即可使用,具有便捷、快捷的特点。微信小程序可以在微信内直接使用,无需离开微信即可完成各种功能&…

Leetcode - 周赛384

目录 一,3033. 修改矩阵 二,3035. 回文字符串的最大数量 三,3036. 匹配模式数组的子数组数目 II 一,3033. 修改矩阵 这道题直接暴力求解,先算出每一列的最大值,再将所有为-1的区域替换成该列的最大值&am…

人工智能学习与实训笔记(七):神经网络之推荐系统处理

九、模型压缩与知识蒸馏 出于对响应速度,存储大小和能耗的考虑,往往需要对大模型进行压缩。 模型压缩方法主要可以分为以下四类: 参数修剪和量化(Parameter pruning and quantization):用于消除对模型表…

Java 学习和实践笔记(12)

这个就比较有意思了&#xff01;所有的事情&#xff0c;拆分完之后&#xff0c;都有且只有这三种状态流程&#xff01; //TIP To <b>Run</b> code, press <shortcut actionId"Run"/> or // click the <icon src"AllIcons.Actions.Execute&…

Vue源码系列讲解——模板编译篇【二】(整体运行流程)

目录 1. 整体流程 2. 回到源码 3. 总结 1. 整体流程 上篇文章中我们说了&#xff0c;在模板解析阶段主要做的工作是把用户在<template></template>标签内写的模板使用正则等方式解析成抽象语法树&#xff08;AST&#xff09;。而这一阶段在源码中对应解析器&…

《区块链公链数据分析简易速速上手小册》第7章:数据获取和分析的挑战(2024 最新版)

文章目录 7.1 数据准确性和完整性验证7.1.1 基础知识7.1.2 重点案例&#xff1a;验证加密货币交易数据准备工作实现步骤步骤1: 从 API 获取比特币交易数据步骤2: 数据转换和初步校验步骤3: 验证交易数据的格式和范围 结论 7.1.3 拓展案例 1&#xff1a;使用哈希校验数据完整性准…

NLP_Transformer架构

文章目录 Transformer架构剖析编码器-解码器架构各种注意力的应用Transformer中的自注意力Transformer中的多头自注意力Transformer中的编码器-解码器注意力Transformer中的注意力掩码和因果注意力 编码器的输入和位置编码编码器的内部结构编码器的输出和编码器-解码器的连接解…

NBA2K24 精品蔡徐坤面补

NBA2K24 精品蔡徐坤面补 NBA2K23-NBA2K24通用 精品蔡徐坤面补 下载地址&#xff1a; https://www.changyouzuhao.cn/13072.html

BUGKU-WEB eval

题目描述 题目截图如下&#xff1a; 进入场景看看&#xff1a; <?phpinclude "flag.php";$a $_REQUEST[hello];eval( "var_dump($a);");show_source(__FILE__); ?>解题思路 PHP代码审计咯 相关工具 百度搜索PHP相关知识 解题步骤 分析脚…

C++数据结构与算法——栈与队列

C第二阶段——数据结构和算法&#xff0c;之前学过一点点数据结构&#xff0c;当时是基于Python来学习的&#xff0c;现在基于C查漏补缺&#xff0c;尤其是树的部分。这一部分计划一个月&#xff0c;主要利用代码随想录来学习&#xff0c;刷题使用力扣网站&#xff0c;不定时更…

java+SSM+mysql 开放式实验管理系统78512-计算机毕业设计项目选题推荐(免费领源码)

摘 要 我国高校开放式实验管理普遍存在实验设备使用率较低、管理制度不完善,实验设备共享程度不高等诸多问题。要在更大范围推行开放式实验管理,就必须在开放式实验教学管理流程中,通过引入信息化管理加大信息技术在其中的应用,才能真正发挥这种教学模式的开放性优势。 本系统…

C#,二进制数的非0位数统计(Bits Count)的算法与源代码

计算一个十进制数的二进制表示有多少位1&#xff1f; 1 遍历法&#xff08;递归或非递归&#xff09; 使用循环按位统计1的个数。 2 哈希查表法 利用一个数组或哈希生成一张表&#xff0c;存储不同二进制编码对应的值为1的二进制位数&#xff0c;那么在使用时&#xff0c;只…

MIT-BEVFusion系列八--onnx导出2 spconv network网络导出

这里写目录标题 export-scn.py加载模型设置每层的精度属性初始化输入参数导出模型model.encoder_layers 设置初始化参数设置 indice_key 属性更改 lidar backbone 的 forward更改lidar网络内各个层的forward带参数装饰器&#xff0c;钩子函数代码使用装饰器修改forward举例 跟踪…