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

news2025/1/23 21:14:32

文章目录

  • 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.coloradmin.cn/o/1446360.html

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

相关文章

《动手学深度学习(PyTorch版)》笔记8.6

注:书中对代码的讲解并不详细,本文对很多细节做了详细注释。另外,书上的源代码是在Jupyter Notebook上运行的,较为分散,本文将代码集中起来,并加以完善,全部用vscode在python 3.9.18下测试通过&…

LayoutInflater源码解析及常见相关报错分析

在日常Android开发中,最经常使用的RecyclerView控件是大家都绕不开的,而编写其Adapter时更离不开LayoutInflater的调用。当然,如果你做这一行有些时日了,相信你对其使用一定是炉火纯青了。即使如此,我觉得LayoutInflat…

【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.运算…

LeetCode:67.二进制求和

67. 二进制求和 - 力扣(LeetCode) 又是一道求和题,% / 在求和的用途了解了些, 目录 题目: 思路分析: 博主代码: 官方代码: 每日表情包: 题目: 思路分析&#xf…

第五课[lmdeploy]作业 +第六课[OpenCompass评测]作业

第五课基础作业 如下图,采用api_server部署,并转发端口通过curl提交内容。 第六课基础作业 完了捏?

【Java程序设计】【C00252】基于Springboot的实习管理系统(有论文)

基于Springboot的实习管理系统(有论文) 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的实习管理系统 本系统分为前台功能模块、管理员功能模块、教师功能模块、学生功能模块以及实习单位功能模块。 前台功能模块&#xf…

【每日一题】LeetCode——反转链表

📚博客主页:爱敲代码的小杨. ✨专栏:《Java SE语法》 | 《数据结构与算法》 | 《C生万物》 ❤️感谢大家点赞👍🏻收藏⭐评论✍🏻,您的三连就是我持续更新的动力❤️ 🙏小杨水平有…

网络协议与攻击模拟_17HTTPS 协议

HTTPShttpssl/tls 1、加密算法 2、PKI(公钥基础设施) 3、证书 4、部署HTTPS服务器 部署CA证书服务器 5、分析HTTPS流量 分析TLS的交互过程 一、HTTPS协议 在http的通道上增加了安全性,传输过程通过加密和身份认证来确保传输安全性 1、TLS …

C++ 广度优先搜索(bfs)(五十四)【第一篇】

今天我们来学习一下一个新的搜索,广度优先搜索。 1.广度优先搜索的前提 队列(queue) 是一种 操作受限制 的线性表,其限制: 只允许从表的前端(front)进行删除操作; 只允许在表的后端…

基于无线传感器网络的LC-DANSE波束形成算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 4.1LC-DANSE算法原理 4.2 LCMV算法原理 5.完整程序 1.程序功能描述 在无线传感器网络中,通过MATLAB对比LC-DANSE波束形成算法和LCMV波束形成算法。对比SNR,mse等指标…

【go语言】一个简单HTTP服务的例子

一、Go语言安装 Go语言(又称Golang)的安装过程相对简单,下面是在不同操作系统上安装Go语言的步骤: 在Windows上安装Go语言: 访问Go语言的官方网站(golang.org)或者使用国内镜像站点&#xff0…

肯尼斯·里科《C和指针》第13章 高级指针话题(2)函数指针

我们不会每天都使用函数指针。但是,它们的确有用武之地,最常见的两个用途是转换表(jump table)和作为参数传递给另一个函数。本节将探索这两方面的一些技巧。但是,首先容我指出一个常见的错误,这是非常重要的。 简单声明一个函数指…

Linux基础I/O(三)——缓冲区和文件系统

文章目录 什么是C语言的缓冲区理解文件系统理解软硬链接 什么是C语言的缓冲区 C语言的缓冲区其实就是一部分内存 那么它的作用是什么? 下面有一个例子: 你在陕西,你远在山东的同学要过生日了,你打算送给他一份生日礼物。你有两种方…

视觉开发板—K210自学笔记(五)

本期我们来遵循其他单片机的学习路线开始去用板子上的按键控制点亮LED。那么第一步还是先知道K210里面的硬件电路是怎么连接的,需要查看第二节的文档,看看开发板原理图到底是按键是跟哪个IO连在一起。然后再建立输入按键和GPIO的映射就可以开始变成了。 …

VTK 常用坐标系 坐标系 转换

1.VTK 常用坐标系 计算机图形学里常用的坐标系统主要有四种,分别是:Model坐标系统、World坐标系统、View坐标系统和Display坐标系统 在VTK里,Model坐标系统用得比较少,其他三种坐标系统经常使用。它们之间的变换则是由类vtkCoord…

Docker容器输入汉字触发自动补全

一、描述 输入汉字自动触发补全: Display all 952 possibilities? (y or n)是因为容器中没有中文字符集和中文字体导致的,安装中文字体,并设置字符集即可。 二、解决 1、安装字符集 (1)查看系统支持的字符集 lo…

甘肃旅游服务平台:技术驱动的创新实践

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 |…

【Java程序设计】【C00260】基于Springboot的企业客户信息反馈平台(有论文)

基于Springboot的企业客户信息反馈平台(有论文) 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的企业客户信息反馈平台 本系统分为平台功能模块、管理员功能模块以及客户功能模块。 平台功能模块:在平台首页可…

计算机网络——网络安全

计算机网络——网络安全 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家, [跳转到网站](https://www.captainbed.cn/qianqiu) 小程一言专栏链接: [link](http://t.csdnimg.cn/ZUTXU) 网络安全何…

【AI绘图】初见·小白入门stable diffusion的初体验

首先,感谢赛博菩萨秋葉aaaki的整合包 上手 stable diffusion还是挺好上手的(如果使用整合包的话),看看界面功能介绍简单写几个prompt就能生成图片了。 尝试 我在网上找了一张赛博朋克边缘行者Lucy的cos图,可能会侵…