《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 系统的安全性,防止潜在的攻击和威胁。记住,系统安全是一个持续的过程,定期的审计和更新是保持系统安全不可或缺的一部分。

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

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

相关文章

JAVA设计模式之命令模式详解

命令模式 1 命令模式介绍 命令模式(command pattern)的定义: 命令模式将请求(命令)封装为一个对象,这样可以使用不同的请求参数化其他对象(将不同请求依赖注入到其他对象并且能够支持请求(命令)的排队执行…

使用 C++23 从零实现 RISC-V 模拟器(3):指令解析

👉🏻 文章汇总「从零实现模拟器、操作系统、数据库、编译器…」:https://okaitserrj.feishu.cn/docx/R4tCdkEbsoFGnuxbho4cgW2Yntc 指令解析 这章内容进一解析更多的指令,此外将解析指令的过程拆分为一个单独的类,采…

STM32 寄存器操作 GPIO 与中断

一、如何使用stm32寄存器点灯? 1.1 寄存器映射表 寄存器本质就是一个开关,当我们把芯片寄存器配置指定的状态时即可使用芯片的硬件能力。 寄存器映射表则是开关的地址说明。对于我们希望点亮 GPIO_B 的一个灯来说,需要关注以下的两个寄存器…

【C语言期末项目-通讯录】-升级可动态申请内存版(手把手详细过程,期末评分A+的项目,答辩辅助神博文,建议三连点赞收藏)

目录 ​编辑 前言: 1.项目功能需求分析 2.文件框架说明 3.程序主框架实现 4.创建联系人结构体类型和通讯录结构体类型 4.1创建通讯录 5.程序功能实现--封装功能函数实现不同功能 5.1通讯录初始化 5.2增加联系人 5.3显示所有联系人的信息 5.4删除指定…

【Java EE初阶十二】网络编程TCP/IP协议(二)

1. 关于TCP 1.1 TCP 的socket api tcp的socket api和U大片的socket api差异很大,但是和前面所讲的文件操作很密切的联系 下面主要讲解两个关键的类: 1、ServerSocket:给服务器使用的类,使用这个类来绑定端口号 2、Socket&#xf…

【图论】【树形dp】【深度优先搜索】2538. 最大价值和与最小价值和的差值

作者推荐 【深度优先搜索】【树】【图论】2973. 树中每个节点放置的金币数目 本文涉及知识点 深度优先搜索 LeetCode2538. 最大价值和与最小价值和的差值 给你一个 n 个节点的无向无根图,节点编号为 0 到 n - 1 。给你一个整数 n 和一个长度为 n - 1 的二维整数…

GEE土地分类——如何利用多年的ESRI_Global-LULC_10m将研究区的指定区域重分类分为两类数据(将多类土地分类转化为草地和非草地区域)

简介 本教程主要的目的是利用自己上传的多年土地分类应先过来实现指定区域的土地分类,而且只提取 ESRI_Global-LULC_10m ESRI_Global-LULC_10m数据集是由ESRI(环境系统研究研究所)开发的一个全球级别的土地利用/土地覆盖数据集。该数据集使用10米的空间分辨率,并提供了详…

使用LoRA和QLoRA微调LLMs:数百次实验的见解

前言 翻译文章《Finetuning LLMs with LoRA and QLoRA: Insights from Hundreds of Experiments》原文地址因译者水平有限,翻译过程中有错误请在评论区指出 提要 LoRA是用于训练自定义LLM的最广泛使用、参数效率最高的微调技术之一。从使用QLoRA节省内存到选择最…

iTop-4412 裸机程序(十九)- 按键中断

目录 0.源码1.异常向量表1.1 原理1.2 异常种类1.3 ARMv7 规定的异常向量表 2. 中断2.1 iTop-4412 中使用的中断相关寄存器 上篇博文介绍了按键的轮询处理方式,本篇介绍按键的中断方式。 0.源码 GitHub:https://github.com/Kilento/4412NoOS 1.异常向量…

常见范数介绍

在线性代数中,符号 ( ||x|| ) 表示向量 ( x ) 的范数(Norm)。范数是一个将向量映射到非负值的函数,它衡量了向量的大小或长度。范数可以是多种类型,其中最常见的有: 欧几里得范数(L2范数&#x…

力扣题目训练(8)

2024年2月1日力扣题目训练 2024年2月1日力扣题目训练404. 左叶子之和405. 数字转换为十六进制数409. 最长回文串116. 填充每个节点的下一个右侧节点指针120. 三角形最小路径和60. 排列序列 2024年2月1日力扣题目训练 2024年2月1日第八天编程训练,今天主要是进行一些…

如何制作一款3D FPS游戏

制作一款3D FPS游戏是一个复杂的过程,需要涵盖多个方面,包括游戏设计、游戏引擎选择、模型制作、音效制作、关卡设计等。下面是一个关于如何制作一款3D FPS游戏的超长文章。 游戏设计 首先,你需要确定游戏的整体设计和核心玩法。这包括游戏的…

人工智能能产生情绪吗?

此图片来源于网络 一、人情绪的本质是什么? 人的情绪本质是一个复杂的现象,涉及到生理、心理和社会的多个层面。以下是关于情绪本质的几种观点: 情绪的本质是生命能量的表达。情绪被认为是生命能量的一种体现,通过情绪的体验和…

web前端(第一天HTML)

前端是什么? 网页? 将数据以各种方式(如:表格、饼图、柱状图等)呈现给用户,我们就可以称之为前端。 做前端所需要的工具? notepad 、 editplus 、 notepad 、 vscode 、 webstorm 等&#x…

搜索+哈希/平衡树,LeetCode 987. 二叉树的垂序遍历

目录 一、题目 1、题目描述 2、接口描述 3、原题链接 二、解题报告 1、思路分析 2、复杂度 3、代码详解 一、题目 1、题目描述 给你二叉树的根结点 root ,请你设计算法计算二叉树的 垂序遍历 序列。 对位于 (row, col) 的每个结点而言,其左右子结…

Netty应用——通过WebSocket编程实现服务器和客户端长连接(十八)

Http协议是无状态的,浏览器和服务器间的请求响应一次,下一次会重新创建连接要求:实现基于webSocket的长连接的全双工的交互改变Http协议多次请求的约束,实现长连接了, 服务器可以发送消息给浏览器客户端浏览器和服务器端会相互感知…

【python】Fraction类详解及生成分数四则运算“试卷”

文章目录 一、前言实验所需的库终端指令Fraction类1. Fraction(numerator, denominator):2. Fraction(numerator)3. Fraction()4. 分数作参数5. 负分数作参数6. 字符串作参数7. 小数作参数8. 科学计数法9. 浮点数作参数10. 浮点数精度问题11. Decimal对象作参数 二、…

新年快乐(水)

首先,祝大家新年快乐,龙年大吉! 然后我来大概解释一下春晚上两个魔术的原理吧。切,要不是我电脑坏了才不看春晚呢。 第一个魔术根数学没多大关系,主要就是换了一副牌,然后假洗。至于计时器吗,那基本就是后…

【Java程序设计】【C00264】基于Springboot的原创歌曲分享平台(有论文)

基于Springboot的原创歌曲分享平台(有论文) 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的原创歌曲分享平台 本系统分为平台功能模块、管理员功能模块以及用户功能模块。 平台功能模块:在平台首页可以查看首…

Linux系统安全——iptables相关总结

在使用iptables时注意要先关闭firewalld(systemctl stop firewalld.service) 1.查看iptables规则 iptables -vnL 选项含义-v查看时显示更多详细信息-n所有字段以数字形式显示-L查看规则列表 例,拒绝来自192.168.241.22的源地址 直接丢弃 …