• 精创网络
  • 精创网络
  • 首页
  • 产品优势
  • 产品价格
  • 产品功能
  • 新闻中心
  • 关于我们
  • 在线客服
  • 登录
  • DDoS防御和CC防御
  • 精创网络云防护,专注于大流量DDoS防御和CC防御。可防止SQL注入,以及XSS等网站安全漏洞的利用。
  • 免费试用
  • 新闻中心
  • 关于我们
  • 资讯动态
  • 帮助文档
  • 白名单保护
  • 常见问题
  • 政策协议
  • 资讯动态
  • 如何在Linux中通过命令行配置防火墙规则
  • 来源:www.jcwlyf.com更新时间:2025-11-04
  • 在Linux系统中,防火墙是保障系统安全的重要工具,它可以控制网络流量的进出,防止未经授权的访问。通过命令行配置防火墙规则能够让我们更加灵活地定制安全策略。本文将详细介绍如何在Linux中通过命令行配置防火墙规则,涵盖常见的防火墙工具如iptables和firewalld。

    一、iptables防火墙规则配置

    iptables是Linux系统中经典的防火墙工具,它基于内核的netfilter框架,通过规则链来管理网络数据包的过滤和转发。

    1. 基本概念

    iptables有多个规则链,常见的有INPUT(处理进入本机的数据包)、OUTPUT(处理从本机发出的数据包)和FORWARD(处理转发的数据包)。规则由匹配条件和动作组成,匹配条件用于筛选符合特定条件的数据包,动作则决定对这些数据包的处理方式,如ACCEPT(接受)、DROP(丢弃)、REJECT(拒绝)等。

    2. 查看当前规则

    在配置规则之前,我们可以先查看当前的iptables规则。使用以下命令:

    iptables -L -n -v

    其中,-L表示列出当前的规则,-n表示以数字形式显示IP地址和端口号,-v表示显示详细信息。

    3. 清空规则

    如果需要重新配置规则,可以先清空现有的规则。使用以下命令:

    iptables -F

    该命令会清空所有规则链中的规则。

    4. 设置默认策略

    在清空规则后,需要设置默认策略。一般来说,我们会将INPUT链的默认策略设置为DROP,以拒绝所有未经允许的进入数据包,将OUTPUT链的默认策略设置为ACCEPT,允许本机发出的数据包正常通过。使用以下命令:

    iptables -P INPUT DROP
    iptables -P OUTPUT ACCEPT

    5. 添加允许规则

    接下来,我们可以添加允许特定服务的规则。例如,允许SSH服务(默认端口22)的数据包进入:

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

    其中,-A表示将规则添加到指定链的末尾,-p表示指定协议,--dport表示指定目标端口,-j表示指定动作。

    如果要允许HTTP服务(默认端口80)和HTTPS服务(默认端口443),可以使用以下命令:

    iptables -A INPUT -p tcp --dport 80 -j ACCEPT
    iptables -A INPUT -p tcp --dport 443 -j ACCEPT

    6. 保存规则

    在配置完规则后,需要保存规则,否则重启系统后规则会丢失。不同的Linux发行版保存规则的方法可能不同。在CentOS系统中,可以使用以下命令保存规则:

    service iptables save

    在Debian或Ubuntu系统中,可以使用以下命令保存规则:

    iptables-save > /etc/iptables.rules

    并在系统启动时加载规则:

    iptables-restore < /etc/iptables.rules

    二、firewalld防火墙规则配置

    firewalld是CentOS7及以上版本默认的防火墙管理工具,它提供了更高级的配置接口和动态更新规则的功能。

    1. 基本概念

    firewalld使用区域(zone)和服务(service)的概念来管理规则。区域定义了不同的信任级别,如public(公共区域,对网络连接的信任度较低)、trusted(信任区域,对网络连接的信任度较高)等。服务是一组预定义的端口和协议组合,如ssh、http、https等。

    2. 查看当前状态

    使用以下命令查看firewalld的当前状态:

    systemctl status firewalld

    如果firewalld未启动,可以使用以下命令启动:

    systemctl start firewalld

    如果需要在系统启动时自动启动firewalld,可以使用以下命令:

    systemctl enable firewalld

    3. 查看区域信息

    使用以下命令查看当前使用的区域:

    firewall-cmd --get-active-zones

    使用以下命令查看所有区域的信息:

    firewall-cmd --list-all-zones

    4. 添加服务到区域

    如果要允许某个服务通过防火墙,可以将该服务添加到相应的区域。例如,将SSH服务添加到public区域:

    firewall-cmd --zone=public --add-service=ssh --permanent

    其中,--zone指定区域,--add-service指定要添加的服务,--permanent表示永久生效。添加完服务后,需要重新加载防火墙规则:

    firewall-cmd --reload

    5. 添加端口到区域

    如果要允许某个特定的端口通过防火墙,可以将该端口添加到相应的区域。例如,允许TCP端口8080通过public区域:

    firewall-cmd --zone=public --add-port=8080/tcp --permanent

    同样,添加完端口后需要重新加载防火墙规则。

    6. 删除规则

    如果要删除之前添加的规则,可以使用相应的删除命令。例如,删除之前添加的SSH服务:

    firewall-cmd --zone=public --remove-service=ssh --permanent

    删除之前添加的TCP端口8080:

    firewall-cmd --zone=public --remove-port=8080/tcp --permanent

    删除规则后,同样需要重新加载防火墙规则。

    三、高级防火墙规则配置

    除了基本的规则配置,我们还可以进行一些高级的防火墙规则配置。

    1. 基于IP地址的过滤

    在iptables中,可以根据源IP地址或目标IP地址进行过滤。例如,允许特定IP地址的数据包进入:

    iptables -A INPUT -s 192.168.1.100 -j ACCEPT

    其中,-s表示指定源IP地址。

    在firewalld中,可以使用rich rules来实现基于IP地址的过滤。例如,允许特定IP地址的SSH服务:

    firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.100" service name="ssh" accept' --permanent

    2. 端口转发

    在某些情况下,我们需要将一个端口的流量转发到另一个端口。在iptables中,可以使用以下命令实现端口转发:

    iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080

    该命令将所有目标端口为80的TCP流量转发到端口8080。

    在firewalld中,可以使用以下命令实现端口转发:

    firewall-cmd --zone=public --add-forward-port=port=80:proto=tcp:toport=8080 --permanent

    3. 限制连接速率

    为了防止恶意的连接请求,我们可以限制某个IP地址的连接速率。在iptables中,可以使用以下命令限制每个IP地址每秒最多发起3个连接:

    iptables -A INPUT -p tcp --dport 22 -m connlimit --connlimit-above 3 -j REJECT

    四、总结

    通过命令行配置Linux防火墙规则可以让我们更加灵活地定制网络安全策略。iptables是经典的防火墙工具,适合对规则有更精细控制的场景;firewalld是较新的防火墙管理工具,提供了更高级的配置接口和动态更新规则的功能。在实际应用中,我们可以根据具体需求选择合适的防火墙工具,并结合基本和高级规则配置方法,保障系统的网络安全。

  • 关于我们
  • 关于我们
  • 服务条款
  • 隐私政策
  • 新闻中心
  • 资讯动态
  • 帮助文档
  • 网站地图
  • 服务指南
  • 购买流程
  • 白名单保护
  • 联系我们
  • QQ咨询:189292897
  • 电话咨询:16725561188
  • 服务时间:7*24小时
  • 电子邮箱:admin@jcwlyf.com
  • 微信咨询
  • Copyright © 2025 All Rights Reserved
  • 精创网络版权所有
  • 皖ICP备2022000252号
  • 皖公网安备34072202000275号