Linux Debian ufw 防火墙命令相关笔记

Linux Debian ufw 防火墙命令相关笔记

01 Debian系统

1.1 ufw 命令介绍

ufw​(Uncomplicated Firewall)是一个用于配置Linux防火墙规则的前端工具,旨在简化防火墙管理。它为iptables提供了一个易于使用的接口,并且支持丰富的规则和日志记录功能。以下是关于 ufw​ 的一些基本命令及其使用示例:

1.1.1 安装 UFW

在某些发行版上,ufw​ 可能默认未安装。你可以通过以下命令安装它(适用于Debian/Ubuntu系统):

1
2
sudo apt-get update
sudo apt-get install ufw

对于CentOS/RHEL系统,可以使用EPEL仓库来安装:

1
2
sudo yum install epel-release
sudo yum install ufw

1.1.2 基本命令

  • 启用和禁用UFW

    • 启用:sudo ufw enable
    • 禁用:sudo ufw disable
  • 检查状态

    • 查看当前状态:sudo ufw status
    • 详细状态:sudo ufw status verbose
  • 允许或拒绝端口

    • 允许特定端口:sudo ufw allow <port>/<protocol>​(例如,sudo ufw allow 80/tcp​)
    • 拒绝特定端口:sudo ufw deny <port>/<protocol>​(例如,sudo ufw deny 22/tcp​)
  • 基于IP地址允许或拒绝流量

    • 允许来自特定IP的流量:sudo ufw allow from <IP>
    • 拒绝来自特定IP的流量:sudo ufw deny from <IP>
    • 允许到特定IP的流量:sudo ufw allow to <IP>
    • 拒绝到特定IP的流量:sudo ufw deny to <IP>
  • 删除规则

    • 删除编号规则:首先使用 sudo ufw status numbered​ 查看带编号的规则列表,然后用 sudo ufw delete <number>​ 删除。
    • 直接删除规则:sudo ufw delete allow <port>/<protocol>
  • 重置所有规则

    • 这将清除所有现有的规则并禁用UFW:sudo ufw reset
  • 日志记录

    • 开启日志记录:sudo ufw logging on
    • 设置日志级别(如low, medium, high, full):sudo ufw logging <level>

1.1.3 示例

  1. 允许SSH访问

    1
    sudo ufw allow ssh
  2. 允许HTTP和HTTPS服务

    1
    2
    sudo ufw allow http
    sudo ufw allow https
  3. 仅允许来自特定子网的SSH连接

    1
    sudo ufw allow from 192.168.1.0/24 to any port 22
  4. 允许来自特定子网的所有入站流量

    1
    2
    3
    sudo ufw allow in from 10.10.0.0/24 to any port any proto any
    # 更简单命令
    sudo ufw allow in from 10.10.0.0/24
  5. 阻止所有入站流量,除了已明确允许的

    1
    sudo ufw default deny incoming
  6. 允许所有出站流量

    1
    sudo ufw default allow outgoing
  7. 查看带有编号的规则列表

    1
    sudo ufw status numbered
  8. 删除第一条规则

    1
    sudo ufw delete 1
  9. 设置日志记录为高优先级

    1
    sudo ufw logging high

请记住,在生产环境中操作防火墙时要格外小心,尤其是在远程服务器上工作时,错误的配置可能导致你失去对服务器的访问权限。建议在测试环境中先熟悉这些命令,并确保有备份方案或恢复途径。

1.2 关闭IPv6

要在Debian 12中通过修改修改内核参数的方法来关闭IPv6,你可以编辑系统的网络配置文件和内核参数。以下是具体步骤:

  1. 编辑 /etc/sysctl.conf文件: 打开或创建这个文件,并添加以下行以禁用IPv6:

    1
    2
    3
    net.ipv6.conf.all.disable_ipv6 = 1
    net.ipv6.conf.default.disable_ipv6 = 1
    net.ipv6.conf.lo.disable_ipv6 = 1
  2. 应用更改: 使用 sysctl​ 命令加载新的内核参数,使更改立即生效。

    1
    sysctl -p
  3. 查看IPv6关闭情况

    1
    2
    3
    4
    5
    6
    7
    8
    [root@nextcloud nextcloud]# ifconfig
    eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
    inet 10.10.0.250 netmask 255.255.255.0 broadcast 10.10.0.255
    ether bc:24:11:e6:22:96 txqueuelen 1000 (Ethernet)
    RX packets 4810454 bytes 866191241 (826.0 MiB)
    RX errors 0 dropped 289 overruns 0 frame 0
    TX packets 535082 bytes 318246448 (303.5 MiB)
    TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

02 CentOS 7系统

2.1 防火墙配置

在CentOS 7中,若要对特定网段(如10.10.0.1/24)开放所有端口,可以使用firewalld​来设置规则。下面是具体步骤:

  1. 确保firewalld正在运行: 首先确认firewalld​服务是否已启动并设置为开机自启。

    1
    systemctl status firewalld

    如果未启动,使用以下命令启动并设置开机自启:

    1
    2
    systemctl start firewalld
    systemctl enable firewalld
  2. 添加富规则以允许来自指定网段的所有流量: 使用firewall-cmd​命令添加一条富规则,允许来自10.10.0.0/24网段的所有入站流量。

    1
    2
    sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="10.10.0.0/24" accept'
    sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="10.10.0.0/24" accept'
  3. 重新加载firewalld配置: 为了使新添加的规则生效,需要重新加载firewalld​配置。

    1
    firewall-cmd --reload
  4. 验证规则是否生效: 可以通过查看当前激活的规则来验证是否正确添加了新的规则。

    1
    firewall-cmd --list-all

以上步骤将对10.10.0.1/24网段开放所有端口,意味着该网段内的所有IP地址都可以访问服务器上的所有服务和端口。

请注意,开放所有端口可能会带来安全风险,因此建议只开放必要的端口,并且定期审查防火墙规则以确保安全性。如果你只需要开放某些特定的服务端口给这个网段,请相应地调整上述命令中的规则。

2.2 关闭IPv6

要在CentOS 7中通过修改修改内核参数的方法来关闭IPv6,你可以编辑系统的网络配置文件和内核参数。以下是具体步骤:

  1. 编辑 /etc/sysctl.conf文件: 打开或创建这个文件,并添加以下行以禁用IPv6:

    1
    2
    3
    net.ipv6.conf.all.disable_ipv6 = 1
    net.ipv6.conf.default.disable_ipv6 = 1
    net.ipv6.conf.lo.disable_ipv6 = 1
  2. 应用更改: 使用 sysctl​ 命令加载新的内核参数,使更改立即生效。

    1
    sysctl -p
  3. 查看IPv6关闭情况

    1
    2
    3
    4
    5
    6
    7
    8
    [root@nextcloud nextcloud]# ifconfig
    eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
    inet 10.10.0.250 netmask 255.255.255.0 broadcast 10.10.0.255
    ether bc:24:11:e6:22:96 txqueuelen 1000 (Ethernet)
    RX packets 4810454 bytes 866191241 (826.0 MiB)
    RX errors 0 dropped 289 overruns 0 frame 0
    TX packets 535082 bytes 318246448 (303.5 MiB)
    TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

Linux Debian ufw 防火墙命令相关笔记
https://hesc.info/post/linux-debian-ufw-firewall-command-related-notes-z17mdtb.html
作者
需要哈气的纸飞机
发布于
2024年12月8日
许可协议