如何配置linux下的防火墙

Linux下配置防火墙,通常使用iptablesfirewalldiptables通过命令行规则设置,而firewalld提供更友好的界面和区域管理。

Linux系统中,配置防火墙是确保系统安全的重要步骤,以下是详细的配置指南,涵盖常见的防火墙工具如iptablesfirewalldnftables

如何配置linux下的防火墙

使用iptables配置防火墙

iptables是一个强大的命令行工具,用于配置Linux内核中的网络包过滤规则。

安装iptables

大多数Linux发行版默认安装了iptables,如果没有,可以通过以下命令安装:

sudo apt-get install iptables  # Debian/Ubuntu
sudo yum install iptables      # CentOS/RHEL

基本规则配置

  • 查看当前规则
    sudo iptables -L -v
  • 清除所有规则
    sudo iptables -F
  • 设置默认策略
    sudo iptables -P INPUT DROP    # 默认丢弃所有进入的流量
    sudo iptables -P FORWARD DROP  # 默认丢弃所有转发的流量
    sudo iptables -P OUTPUT ACCEPT # 默认允许所有外出的流量

添加规则

  • 允许本地回环接口(lo)的所有流量
    sudo iptables -A INPUT -i lo -j ACCEPT
  • 允许SSH访问(假设端口22)
    sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
  • 允许HTTP/HTTPS访问(端口80和443)
    sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
    sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT

保存规则

  • Debian/Ubuntu
    sudo sh -c "iptables-save > /etc/iptables/rules.v4"
  • CentOS/RHEL
    sudo service iptables save

使用firewalld配置防火墙

firewalld是一个动态的防火墙管理工具,支持区域(zone)概念,适合需要动态管理防火墙的场景。

如何配置linux下的防火墙

安装firewalld

sudo apt-get install firewalld  # Debian/Ubuntu
sudo yum install firewalld      # CentOS/RHEL

启动并启用firewalld

sudo systemctl start firewalld
sudo systemctl enable firewalld

配置默认区域

  • 查看当前区域
    sudo firewall-cmd --get-default-zone
  • 更改默认区域
    sudo firewall-cmd --set-default-zone=public

添加规则

  • 允许SSH访问
    sudo firewall-cmd --permanent --add-service=ssh
    sudo firewall-cmd --reload
  • 允许HTTP/HTTPS访问
    sudo firewall-cmd --permanent --add-service=http
    sudo firewall-cmd --permanent --add-service=https
    sudo firewall-cmd --reload

查看当前规则

sudo firewall-cmd --list-all

使用nftables配置防火墙

nftablesiptables的继任者,提供了更强大的功能和更简洁的语法。

安装nftables

sudo apt-get install nftables  # Debian/Ubuntu
sudo yum install nftables      # CentOS/RHEL

基本配置

  • 查看当前规则
    sudo nft list ruleset
  • 清除所有规则
    sudo nft flush ruleset

添加规则

  • 创建表和链
    sudo nft add table inet filter
    sudo nft add chain inet filter input { type filter hook input priority 0 ; }
  • 添加规则
    sudo nft add rule inet filter input iifname lo accept
    sudo nft add rule inet filter input tcp dport 22 accept
    sudo nft add rule inet filter input tcp dport 80 accept
    sudo nft add rule inet filter input tcp dport 443 accept
    sudo nft add rule inet filter input counter drop

保存规则

将规则写入配置文件(如/etc/nftables.conf),然后通过以下命令加载:

sudo nft -f /etc/nftables.conf

相关问答FAQs

Q1: 如何查看当前防火墙规则?

A1: 取决于使用的防火墙工具:

如何配置linux下的防火墙

  • iptables: sudo iptables -L -v
  • firewalld: sudo firewall-cmd --list-all
  • nftables: sudo nft list ruleset

Q2: 如何临时允许某个端口的流量?

A2: 根据防火墙工具选择相应的命令:

  • iptables: sudo iptables -A INPUT -p tcp --dport <port> -j ACCEPT
  • firewalld: `sudo firewall-cmd –permanent –add-port=/tcp && sudo firewall-cmd –reload

原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/97055.html

(0)
酷盾叔的头像酷盾叔
上一篇 2025年8月8日 04:07
下一篇 2025年8月8日 04:13

相关推荐

  • linux如何编译.zip文件

    Linux中,使用unzip命令解压缩.zip文件,unzip filename.

    2025年7月17日
    2100
  • linux如何添加光驱文件

    Linux中,可通过以下步骤添加光驱文件:先打开终端,用lsblk命令确定光驱设备名(如/dev/sr0),再创建挂载点(如sudo mkdir /media/cdrom),接着用sudo mount /dev/sr0 /media/cdrom挂载,之后就能访问光驱

    2025年7月21日
    2200
  • linux如何用命令打开文件夹权限

    Linux中,可使用ls -l命令查看文件夹权限,用chmod命令修改权限,如chmod 755 foldername

    2025年7月10日
    4400
  • Linux如何打开回收站?

    在Linux图形界面中,回收站通常位于桌面或文件管理器(如Nautilus、Dolphin)的侧边栏/导航栏中,点击即可访问,终端可通过查看主目录下的.local/share/Trash或根目录的.Trash-*隐藏文件夹访问(需root权限)。

    2025年6月29日
    4100
  • 如何在Linux中开放80端口?

    使用防火墙工具开放80端口,以firewalld为例:,1. 临时开放 sudo firewall-cmd –add-port=80/tcp,2. 永久开放 sudo firewall-cmd –add-port=80/tcp –permanent,3. 重载配置 sudo firewall-cmd –reload,确保服务(如Nginx/Apache)监听80端口。

    2025年6月7日
    10000

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN