《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)的定义: 命令模式将请求(命令)封装为一个对象,这样可以使用不同的请求参数化其他对象(将不同请求依赖注入到其他对象并且能够支持请求(命令)的排队执行…

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 的二维整数…

使用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日第八天编程训练,今天主要是进行一些…

人工智能能产生情绪吗?

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

web前端(第一天HTML)

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

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的原创歌曲分享平台 本系统分为平台功能模块、管理员功能模块以及用户功能模块。 平台功能模块:在平台首页可以查看首…

可视化工具:将多种数据格式转化为交互式图形展示的利器

引言 在数据驱动的时代,数据的分析和理解对于决策过程至关重要。然而,不同的数据格式和结构使得数据的解读变得复杂和困难。为了解决这个问题,一种强大的可视化工具应运而生。这个工具具有将多种数据格式(包括JSON、YAML、XML、C…

Swift Combine 用 Future 来封装异步请求 从入门到精通十一

Combine 系列 Swift Combine 从入门到精通一Swift Combine 发布者订阅者操作者 从入门到精通二Swift Combine 管道 从入门到精通三Swift Combine 发布者publisher的生命周期 从入门到精通四Swift Combine 操作符operations和Subjects发布者的生命周期 从入门到精通五Swift Com…

16 亚稳态原理和解决方案

1. 亚稳态原理 亚稳态是指触发器无法在某个规定的时间段内到达一个可以确认的状态。在同步系统中,输入总是与时钟同步,因此寄存器的setup time和hold time是满足的,一般情况下是不会发生亚稳态情况的。在异步信号采集中,由于异步…

【C++】STL之string 超详解

目录 1.string概述 2.string使用 1.构造初始化 2.成员函数 1.迭代器 2.容量操作 1.size和length 返回字符串长度 2.resize 调整字符串大小 3.capacity 获得字符串容量 4.reserve 调整容量 5.clear 清除 6.empty 判空 3.string插入、追加 、拼接 1.运算…

DataBinding源码浅析---初始化过程

作为Google官方发布的支持库,DataBinding实现了UI组件和数据源的双向绑定,同时在Jetpack组件中,也将DataBinding放在了Architecture类型之中。对于DataBinding的基础使用请先翻阅前两篇文章的详细阐述。本文所用代码也是建立在之前工程基础之…

利用Windows10漏洞破解密码(保姆级教学)

前言: 本篇博客只是技术分享并非非法传播知识,实验内容均是在虚拟机中进行,并非真实环境 正文: 一.windows10电脑密码破解 1)开启windows10虚拟机,停留在这个页面 2)按5次Shift键,出现这个粘滞键,如果没有出现的,则说明漏洞已经修复 3)重新启动,在这个页面的时候…