ubuntu22.04防火墙策略

devtools/2025/2/3 15:50:51/

Ubuntu 22.04 作为一款流行的Linux发行版,其安全性尤为重要。防火墙是保护系统免受外部威胁的关键组成部分。本文将介绍如何在Ubuntu 22.04上配置和管理防火墙策略,包括使用UFW(Uncomplicated Firewall)和更为复杂的iptables。

一、UFW 简介

UFW(Uncomplicated Firewall)是Ubuntu默认的防火墙管理工具,它简化了iptables的配置过程,使用户可以通过简单的命令进行防火墙规则管理。

1. 安装与启用UFW

默认情况下,UFW通常已经安装在Ubuntu系统中。可以通过以下命令确认并启用UFW:

sudo apt-get update
sudo apt-get install ufw
sudo ufw enable
​

启用UFW后,可以使用以下命令查看UFW状态:

sudo ufw status
​
2. 基本命令
  • 允许连接
sudo ufw allow 22   # 允许SSH连接
sudo ufw allow 80   # 允许HTTP连接
sudo ufw allow 443  # 允许HTTPS连接
​
  • 拒绝连接
sudo ufw deny 23    # 拒绝Telnet连接
​
  • 删除规则
sudo ufw delete allow 22  # 删除允许SSH连接的规则
​
3. 配置示例

配置一个Web服务器防火墙策略:

sudo ufw default deny incoming   # 默认拒绝所有传入连接
sudo ufw default allow outgoing  # 默认允许所有传出连接
sudo ufw allow 22                # 允许SSH连接
sudo ufw allow 80                # 允许HTTP连接
sudo ufw allow 443               # 允许HTTPS连接
​

二、高级iptables配置

尽管UFW提供了简化的接口,但对于高级需求,iptables仍然是不可或缺的工具。iptables提供了强大的网络包过滤和NAT功能。

1. 安装iptables

通常,iptables已经预装在Ubuntu系统中。可以使用以下命令检查iptables版本:

sudo iptables -V
​
2. 基本命令
  • 查看规则
sudo iptables -L -v
​
  • 添加规则
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT  # 允许SSH连接
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT  # 允许HTTP连接
​
  • 删除规则
sudo iptables -D INPUT -p tcp --dport 22 -j ACCEPT  # 删除允许SSH连接的规则
​
3. 保存和恢复规则

防火墙规则在系统重启后会丢失,需要保存和恢复规则:

  • 保存规则
sudo iptables-save > /etc/iptables/rules.v4
​
  • 恢复规则
sudo iptables-restore < /etc/iptables/rules.v4
​

三、防火墙策略设计

防火墙策略的设计应根据实际需求,结合安全性和可用性进行综合考虑。以下是几种常见的防火墙策略示例。

1. 基本安全策略
# 默认策略
sudo ufw default deny incoming
sudo ufw default allow outgoing# 允许常用服务
sudo ufw allow 22                # SSH
sudo ufw allow 80                # HTTP
sudo ufw allow 443               # HTTPS# 启用UFW
sudo ufw enable
​
2. 限制特定IP访问

限制某个IP地址只能访问SSH服务:

sudo ufw allow from 192.168.1.100 to any port 22
​

限制某个IP地址范围访问:

sudo ufw allow from 192.168.1.0/24 to any port 22
​
3. 防御DDoS攻击

使用iptables限制单个IP的连接速率,防止DDoS攻击:

sudo iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 10 -j REJECT

http://www.ppmy.cn/devtools/155760.html

相关文章

Redis篇 Redis如何清理过期的key以及对应的解决方法

Redis设置Key过期时间 在 Redis 中&#xff0c;可以通过特定的命令为 Key 设置过期时间&#xff0c;使得 Key 在一定时间后自动删除&#xff0c;这对于管理缓存、验证码等临时数据非常有用。 解决方法 1. Redis过期删除策略 1.1 如何实现过期策略 对一个 key 设置了过期时间…

DeepSeek-R1本地部署实践

一、下载安装 --Ollama Ollama是一个开源的 LLM&#xff08;大型语言模型&#xff09;服务工具&#xff0c;用于简化在本地运行大语言模型&#xff0c;降低使用大语言模型的门槛&#xff0c;使得大模型的开发者、研究人员和爱好者能够在本地环境快速实验、管理和部署最新大语言…

Effective Objective-C 2.0 读书笔记—— 方法调配(method swizzling)

Effective Objective-C 2.0 读书笔记—— 方法调配&#xff08;method swizzling&#xff09; 文章目录 Effective Objective-C 2.0 读书笔记—— 方法调配&#xff08;method swizzling&#xff09;前言IMP**SEL 和 IMP 在 objc_msgSend 中的关系** 方法调配实现方法交换 用于…

7 Spark 底层执行原理

7 Spark 底层执行原理 1. 从代码角度看 DAG 图的构建2. 将 DAG 划分为 Stage 核心算法3. 将 DAG 划分为 Stage 剖析4. 提交 Stages5. 监控 Job、Task、Executor6. 获取任务执行结果7. 任务调度总体诠释Spark 运行架构特点 Spark 运行流程 Spark运行流程 具体运行流程如下&…

ASP.NET Core 中使用依赖注入 (DI) 容器获取并执行自定义服务

目录 一、ASP.NET Core 中使用依赖注入 (DI) 容器获取并执行自定义服务 1. app.Services 2. GetRequiredService() 3. Init() 二、应用场景 三、依赖注入使用拓展 1、使用场景 2、使用步骤 1. 定义服务接口和实现类 2. 注册服务到依赖注入容器 3. 使用依赖注入获取并…

14 2D矩形模块( rect.rs)

一、 rect.rs源码 // Copyright 2013 The Servo Project Developers. See the COPYRIGHT // file at the top-level directory of this distribution. // // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or // http://www.apache.org/licenses/LICENS…

TypeScript语言的语法糖

TypeScript语言的语法糖 TypeScript作为一种由微软开发的开源编程语言&#xff0c;它在JavaScript的基础上添加了一些强类型的特性&#xff0c;使得开发者能够更好地进行大型应用程序的构建和维护。在TypeScript中&#xff0c;不仅包含了静态类型、接口、枚举等强大的特性&…

计算机毕业设计Python动漫推荐系统 漫画推荐系统 动漫视频推荐系统 机器学习 bilibili动漫爬虫 数据可视化 数据分析 大数据毕业设计

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…