linux-安全管理-防火墙与网络安全

Linux 安全管理:防火墙与网络安全

一、概述

在 Linux 系统中,防火墙与网络安全是保护系统免受未经授权访问、网络攻击和数据泄露的重要措施。防火墙通过控制进出网络的流量,阻止不必要的连接,而网络安全策略则通过配置访问权限、加密通信等手段确保网络通信的安全性。

在 Linux 系统中,常用的防火墙管理工具有 iptablesfirewalld,同时还涉及到加密协议(如 SSL/TLS)、SSH 安全配置等网络安全相关内容。


二、Linux 防火墙工具

1. iptables

iptables 是 Linux 中经典的防火墙工具,基于 Netfilter 框架工作,能够通过规则集来过滤进出系统的网络流量。iptables 主要处理 IPv4 流量,而处理 IPv6 流量的工具是 ip6tables

1.1 iptables 表和链的概念
  • 表(tables)iptables 中的表决定了如何处理数据包,常见的表包括:

    • filter 表:默认的表,用于过滤数据包。
    • nat 表:用于处理网络地址转换(NAT)。
    • mangle 表:用于修改数据包的内容。
  • 链(chains):每个表包含多个链,定义数据包在不同阶段的处理规则,主要链包括:

    • INPUT:处理进入系统的数据包。
    • OUTPUT:处理由本地生成并发出的数据包。
    • FORWARD:处理经过系统的数据包(转发的流量)。
1.2 基本的 iptables 命令
  1. 查看现有规则

    iptables -L
    
  2. 允许特定端口的流量
    允许 TCP 端口 22(SSH)的流量:

    iptables -A INPUT -p tcp --dport 22 -j ACCEPT
    

    选项解释:

    • -A:在链末尾追加规则。
    • -p tcp:指定协议为 TCP。
    • --dport 22:指定目标端口为 22。
    • -j ACCEPT:接受符合条件的数据包。
  3. 拒绝特定 IP 地址的流量
    阻止来自特定 IP 地址(192.168.1.100)的流量:

    iptables -A INPUT -s 192.168.1.100 -j DROP
    
  4. 保存与恢复 iptables 规则
    保存规则以便在重启后仍然生效:

    service iptables save
    

    恢复规则:

    service iptables restart
    
1.3 iptables 示例配置

一个常见的 iptables 规则配置可以如下:

# 清除已有规则
iptables -F
iptables -X# 允许本地回环接口通信
iptables -A INPUT -i lo -j ACCEPT# 允许已建立的连接和相关连接
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT# 允许 SSH 连接
iptables -A INPUT -p tcp --dport 22 -j ACCEPT# 拒绝其他流量
iptables -A INPUT -j DROP

这段规则配置确保系统能够接收 SSH 连接,但拒绝所有其他不必要的流量。


2. firewalld

firewalld 是 CentOS 7 及更高版本默认的防火墙管理工具,提供了对 iptables 的更高级别的管理接口,支持动态规则更新和区域化配置,使得防火墙的管理更加简单。

2.1 firewalld 基本概念
  • 区域(zones)firewalld 使用区域的概念来定义不同网络环境下的防火墙行为。每个网络接口可以被分配到一个区域,不同的区域有不同的安全策略。常见区域有:

    • public:默认的区域,允许较少的服务,仅适合公共网络。
    • internal:适合内网通信,允许更多服务。
    • dmz:适用于隔离的子网,通常用于公开的服务器。
  • 服务(services)firewalld 提供了一系列预定义的服务,管理员可以直接允许或拒绝特定的服务,如 HTTP、SSH、DNS 等。

2.2 firewalld 常用命令
  1. 启动、停止和查看状态
    启动 firewalld

    systemctl start firewalld
    

    查看状态:

    systemctl status firewalld
    
  2. 列出当前区域
    查看系统中启用的区域:

    firewall-cmd --get-active-zones
    
  3. 开放特定端口
    允许 TCP 端口 80(HTTP)流量:

    firewall-cmd --permanent --add-port=80/tcp
    firewall-cmd --reload  # 重新加载规则使其生效
    
  4. 允许特定服务
    允许 SSH 服务:

    firewall-cmd --permanent --add-service=ssh
    firewall-cmd --reload
    
  5. 移除特定端口或服务
    移除 TCP 80 端口:

    firewall-cmd --permanent --remove-port=80/tcp
    firewall-cmd --reload
    
  6. 更改接口绑定区域
    将网络接口 eth0 绑定到 internal 区域:

    firewall-cmd --zone=internal --change-interface=eth0 --permanent
    firewall-cmd --reload
    
2.3 firewalld 示例配置

假设我们有一个公共服务区(DMZ),并且只允许 SSH、HTTP 和 HTTPS 的流量,配置如下:

# 将 eth0 绑定到 public 区域
firewall-cmd --zone=public --change-interface=eth0 --permanent# 允许 SSH、HTTP、HTTPS 服务
firewall-cmd --zone=public --add-service=ssh --permanent
firewall-cmd --zone=public --add-service=http --permanent
firewall-cmd --zone=public --add-service=https --permanent# 重新加载规则
firewall-cmd --reload

这段配置确保系统对外开放 SSH、HTTP 和 HTTPS 服务,其他流量将被阻止。


三、网络安全配置

除了配置防火墙以控制网络流量外,Linux 系统还需要通过其他网络安全策略来增强整体安全性。主要涉及到 SSH 安全、SSL/TLS 加密、网络端口扫描等。

1. SSH 安全配置

SSH(Secure Shell) 是 Linux 服务器上最常用的远程登录工具,但其默认配置可能存在安全风险,因此应进行加固。

1.1 禁用 Root 登录

默认情况下,SSH 允许 Root 用户直接登录。这是一个潜在的安全风险,应该禁用:

vim /etc/ssh/sshd_config

找到并修改以下行:

PermitRootLogin no

保存后,重启 SSH 服务:

systemctl restart sshd
1.2 更改 SSH 默认端口

默认的 SSH 端口是 22,攻击者通常会尝试通过该端口发起暴力破解。可以更改 SSH 的默认端口来提高安全性:

vim /etc/ssh/sshd_config

修改以下行:

Port 2222  # 设置新的端口号

保存并重启 SSH 服务。

1.3 使用 SSH 密钥认证

SSH 密钥认证比密码认证更安全,推荐使用 SSH 密钥登录,并禁用密码登录。具体步骤如下:

  1. 生成 SSH 密钥对

    ssh-keygen -t rsa -b 4096
    
  2. 将公钥上传到服务器

    ssh-copy-id user@server
    
  3. 在服务器上禁用密码登录
    修改 /etc/ssh/sshd_config 文件:

    PasswordAuthentication no
    

    重启 SSH 服务:

    systemctl restart sshd
    

2. SSL/TLS 加密

在提供 Web 服务时,使用 SSL/TLS 加密可以保护网络传输中的敏感数据。SSL/TLS 是 HTTPS 协议的基础,确保通信的机密性和完整性。

2.1

安装证书

可以通过 Let’s Encrypt 等证书颁发机构获取免费的 SSL 证书,并使用 certbot 工具进行安装:

yum install certbot
certbot --apache
2.2 强制 HTTPS

在 Apache 配置文件中,可以通过 Rewrite 规则强制 HTTP 重定向到 HTTPS:

<VirtualHost *:80>ServerName www.example.comRedirect / https://www.example.com/
</VirtualHost>

3. 检测和防御网络攻击

3.1 使用 fail2ban 防止暴力破解

fail2ban 是一个自动化的工具,可以通过分析日志文件检测暴力破解行为,并自动对可疑的 IP 地址进行封禁。安装和配置步骤如下:

  1. 安装 fail2ban

    yum install fail2ban
    
  2. 启动并启用 fail2ban 服务:

    systemctl start fail2ban
    systemctl enable fail2ban
    
  3. 配置 fail2ban 来防止 SSH 暴力破解:
    修改 /etc/fail2ban/jail.local 文件:

    [sshd]
    enabled = true
    port = ssh
    filter = sshd
    logpath = /var/log/secure
    maxretry = 5
    
3.2 使用端口扫描工具

端口扫描工具如 nmap 可以帮助管理员识别系统上暴露的端口和服务,并及时采取措施关闭不必要的端口。

安装 nmap

yum install nmap

扫描服务器的开放端口:

nmap -sS server_ip

四、总结

在 Linux 系统中,防火墙与网络安全是确保系统安全性的重要组成部分。通过合理配置防火墙规则、使用 SSH 密钥认证、启用 SSL/TLS 加密等手段,管理员可以有效防止网络攻击和未经授权的访问。

核心的安全措施包括:

  1. 使用 iptablesfirewalld 管理网络流量,限制不必要的服务和端口。
  2. 加固 SSH 配置,禁用 Root 登录,使用非默认端口,并启用密钥认证。
  3. 为 Web 服务配置 SSL/TLS 加密,确保通信安全。
  4. 使用 fail2ban 等工具防止暴力破解,定期进行端口扫描和系统安全审计。

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

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

相关文章

河鱼浏览器——您的电商多店管理专家,轻松应对拼多多20+店铺登录挑战

在电商领域驰骋&#xff0c;每一个店铺都是您商业版图的一部分&#xff0c;但同时管理多个拼多多店铺&#xff0c;尤其是超过20个&#xff0c;是否让您感到力不从心&#xff1f;河鱼浏览器&#xff0c;专为电商精英打造的高效管理工具&#xff0c;为您化解这一难题。 **多开无…

JVM 一个对象是否已经死亡?

目录 前言 引用计数法 可达性分析法 引用 finalize() 方法区回收 前言 虚拟机中垃圾回收器是掌握对象生死的判官, 只要是垃圾回收器认为需要被回收的, 那么这个对象基本可以宣告"死亡". 但是也不是所有的对象, 都需要被回收, 因此, 我们在学习垃圾回收的时候…

Qt开发技巧(四)“tr“使用,时间类使用,Qt容器取值,类对象的删除,QPainter画家类,QString的转换,用好 QVariant类型

继续讲一些Qt技巧操作 1.非必要不用"tr" 如果程序运行场景确定是某一固定语言&#xff0c;就不需要用tr,"tr"之主要针对多语种翻译的&#xff0c;因为tr的本意是包含英文&#xff0c;然后翻译到其他语言比如中文&#xff0c;不要滥用tr&#xff0c;如果没有…

万字长文——ConvNeXt(2022CVPR),卷积网络的顶峰之作,在Transformer盛行的当下,卷积网络还能再战!

ConvNext:A ConvNet for the 2020s ConvNext:2020 年代的卷积神经网络 论文地址: https://arxiv.org/pdf/2201.03545 自从Transformer成功应用在视觉领域并且取得显著成绩后,很多人开始抛弃卷积网络架构,转而使用Transformer。然而有的大佬不认为卷积过时了,于是有了这篇…

OpenGL渲染管线(Rendering Pipeline)介绍

渲染管线 计算机图形学中&#xff0c;计算机图形管线&#xff08;渲染管线 或简称 图形管线、流水线&#xff09;是一个概念模型&#xff0c;它描述了t图像系统将 3D场景渲染到2D屏幕所需执行的一系列步骤。渲染管线大的可以分为三个阶段。 &#xff08;一&#xff09;应用阶段…

Web接入Sonic平台之安装

问题及解决方案 1.安装python的airtest-bdd依赖时报错&#xff0c;显示无法编译psutil note: This error originates from a subprocess, and is likely not a problem with pip. ERROR: Failed building wheel for psutil Failed to build psutil ERROR: ERROR: Failed to b…

Android SystemUI组件(07)锁屏KeyguardViewMediator分析

该系列文章总纲链接&#xff1a;专题分纲目录 Android SystemUI组件 本章关键点总结 & 说明&#xff1a; 说明&#xff1a;本章节持续迭代之前章节的思维导图&#xff0c;主要关注左侧上方锁屏分析部分即可。 为了更好理解本文的内容&#xff0c;优先说明下SystemUI中与Ke…

[已更新前两问代码+全部建模]2024华为杯C题详细思路代码文章建模分享研究生数学建模竞赛数学建模研赛

截止9.21 12点 已更新问题一二的代码和全部内容的建模 下面我们会先进行代码讲解,之后给出全部内容的建模公式 ## https://docs.qq.com/doc/DVWhyZ1NFY01XcmNw基于磁通密度数据的特征提取与分类分析。 问题一代码详解 1. 导入必要的库 import pandas as pd import numpy as…

Elastic 的 OpenTelemetry PHP 发行版简介

作者&#xff1a;Pawel Filipczak 宣布 OpenTelemetry PHP 的 Elastic 发行版的第一个 alpha 版本。在本篇博文中了解使用 OpenTelemetry 来检测 PHP 应用程序是多么简单。 我们很高兴推出 OpenTelemetry PHP 的 Elastic Distribution 的第一个 alpha 版本。在这篇文章中&…

十九、石英晶体振荡电路

石英晶体振荡电路 1、石英晶体的特点、等效电路、特性曲线; 2、石英晶体振动器的特点&#xff0c; 3、石英晶体振动器的振荡频率

【爱给网-注册安全分析报告-无验证方式导致安全隐患】

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 1. 暴力破解密码&#xff0c;造成用户信息泄露 2. 短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉 3. 带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造…

滑动窗口算法专题(1)

找往期文章包括但不限于本期文章中不懂的知识点&#xff1a; 个人主页&#xff1a;我要学编程(ಥ_ಥ)-CSDN博客 所属专栏&#xff1a; 优选算法专题 目录 滑动窗口算法的简介 209. 长度最小的子数组 3.无重复字符的最长子串 1004. 最大连续1的个数III 1658. 将减到0的最小…

Java调用数据库 笔记06 (修改篇)

1.创建Java的普通class类 2.加载驱动 Class.forName("com.mysql.jdbc.Driver"); 3.驱动管理类调用方法进行连接&#xff0c;得到连接对象 DriverManager.getConnection(url, user, password); 其中设置参数&#xff1a; static final String url "jdbc:my…

python中ocr图片文字识别样例(二)

一、说明 本次解决图片相关出现中文乱码问题&#xff0c;属于上篇文章的优化&#xff0c;前提条件依赖上篇文章的包&#xff0c;当然ocr的具体应用场景很多&#xff0c;根据自身需求进行调整 二、具体实现 2.1 代码实现&#xff1a; # -*- coding: utf-8 -*- import easyoc…

电气设备施工现场风险状态判断ai模型训练数据集

电气设备施工现场风险状态判断ai模型训练数据集 id:18 电气设备施工现场工人人工智能学习数据和工作环境安全数据&#xff0c;建立系统化管理体系&#xff0c;改变全球EHS范式&#xff0c;预防工业事故。数据集记录了387709例子电力设施建设以及施工现场相关的灾害安全环境数据…

电力行业螺钉螺帽螺丝缺失检测数据集 voc yol

电力行业螺钉螺帽螺丝缺失检测数据集 数据集描述 该数据集旨在用于电力行业中的螺钉、螺帽、螺丝等紧固件的缺失检测任务。数据集包含了大量的图像及其对应的标注信息&#xff0c;可用于训练计算机视觉模型&#xff0c;以识别和定位电力设施中的螺钉、螺帽、螺丝等部件是否存在…

【零成本】七日杀 服务器搭建 异地联机 无需公网IP、服务器

主要内容 什么是七日杀 搭建前需要准备什么 详细步骤 1.Steam中下载七日杀服务器工具 2.修改七日杀服务配置文件 3.启动七日杀服务器应用 4.运行 MoleSDN 进行异地联机 5.小伙伴打开游戏加入 鼠鼠的服务器 什么是七日杀 《七日杀》是一款沙盒生存恐怖游戏&#xff0c;…

【2025】儿童疫苗接种预约小程序(源码+文档+解答)

博主介绍&#xff1a; ✌我是阿龙&#xff0c;一名专注于Java技术领域的程序员&#xff0c;全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师&#xff0c;我在计算机毕业设计开发方面积累了丰富的经验。同时&#xff0c;我也是掘金、华为云、阿里云、InfoQ等平台…

LeetCode[中等] 54.螺旋矩阵

给你一个 m 行 n 列的矩阵 matrix &#xff0c;请按照 顺时针螺旋顺序 &#xff0c;返回矩阵中的所有元素。 思路&#xff1a;定义方向数组&#xff0c;按照顺时针顺序&#xff1a;右(0,1)&#xff0c;下(1,0)&#xff0c;左(0,-1)&#xff0c;上(0,-1) 从矩阵的左上角开始遍历…

5. 数字证书与公钥基础设施

5. 数字证书与公钥基础设施 (1) PKI 的定义、组成及应用 PKI(Public Key Infrastructure,公钥基础设施) 是一个使用公钥技术来提供安全服务的框架。它定义了如何管理和维护公钥,以及如何通过证书来验证公钥的真实性。PKI的核心组成部分包括: 证书颁发机构(CA, Certifica…