ubuntu22.04防火墙策略

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
相关推荐
爱码小白7 分钟前
MySQL 常用数据类型的系统总结
数据库·python·算法
被摘下的星星8 分钟前
MySQL drop和delete的区别
数据库·mysql
攻城狮7号15 分钟前
面向未来的时序数据库选型指南:当数据存储遇上原生AI
数据库·人工智能·时序数据库·apache iotdb
wb18915 分钟前
企业级MySQL重习
数据库·笔记·mysql·adb·云计算
移动云开发者联盟19 分钟前
告别AI失忆!移动云大云海山数据库解锁OpenClaw云端长期记忆
数据库·人工智能
野生技术架构师36 分钟前
一个简单SQL的深度解析
android·数据库·sql
麦聪聊数据41 分钟前
数据库安全与运维管控(五):基于AST的SQL拦截与动态审批
运维·数据库·sql
有味道的男人1 小时前
电商效率翻倍:用 Open Claw 对接 1688 接口,快速实现图片选品 + 货源监控
java·开发语言·数据库
Omics Pro1 小时前
马普所:生命蛋白质宇宙聚类
数据库·人工智能·算法·机器学习·数据挖掘·aigc·聚类
BioRunYiXue1 小时前
AlphaGenome:DeepMind 新作,基因组学迎来 Alpha 时刻
java·linux·运维·网络·数据库·人工智能·eclipse