linux中如何修改防火墙设置
linux中如何修改防火墙设置详细介绍
在 Linux 中修改防火墙设置需根据所使用的防火墙软件选择对应方法,以下是几种常见防火墙的配置方式:
1. 使用 iptables(传统防火墙)
iptables 是 Linux 系统中基于内核的防火墙工具,规则分为 过滤表(filter)、** nat 表(nat)** 和 ** mangle 表(mangle)**,常用过滤表处理数据包过滤。
常用操作
- 查看当前规则:
bashiptables - 添加规则(以过滤表为例):
- 允许特定端口(如 HTTP 80 端口):bash
iptables INPUT tcp ACCEPT - 拒绝某 IP 地址:bash
iptables INPUT .1.100 DROP - 允许本地回环接口(重要,避免断连):bash
iptables INPUT lo ACCEPT
- 允许特定端口(如 HTTP 80 端口):bash
- 删除规则:
bashiptables INPUTiptables INPUT .1.100 DROP
- 设置默认策略:
bashiptables INPUT DROPiptables OUTPUT ACCEPT
- 保存规则(避免重启后失效,不同发行版命令不同):
- Debian/Ubuntu:bash
iptables-persistentnetfilter-persistent save
- CentOS/RHEL:bash
iptables save
- Debian/Ubuntu:bash
2. 使用 ufw(Uncomplicated Firewall,简化版 iptables)
ufw 是 Ubuntu 等系统默认的简化防火墙工具,基于 iptables 实现,配置更简单。
常用操作
- 启用 / 禁用防火墙:
bashufwufw disable
- 查看状态:
bashufw status - 允许 / 拒绝端口:
- 允许单个端口:bash
ufw allow /tcpufw allow
- 允许服务名称(需提前定义,如
ssh、www):bashufw allow - 拒绝端口:bash
ufw deny /tcp
- 允许单个端口:bash
- 允许某 IP 地址:
bashufw allow from .1.0/24 - 删除规则:
bashufw delete allow /tcp
3. 使用 firewalld(动态防火墙,CentOS/RHEL 7+ 常用)
firewalld 支持动态更新规则,无需重启服务,基于 “区域(zone)” 管理网络连接。
常用操作
- 查看当前区域:
bashfirewall-cmd --get-active-zones - 允许端口 / 服务:
- 临时生效(重启后失效):bash
firewall-cmd public --add-port/tcpfirewall-cmd --add-servicehttp
- 永久生效(需重启后保留):bash
firewall-cmd public --add-port/tcpfirewall-cmd
- 临时生效(重启后失效):bash
- 拒绝端口:
bashfirewall-cmd public --remove-port/tcp - 查看规则:
bashfirewall-cmd public --list-portsfirewall-cmd --list-services
4. 图形化工具(适合新手)
firewall-config(适用于 firewalld):bashdnf firewall-configgufw
- 安装后可通过图形界面直观管理规则,支持端口、服务、区域等配置。
注意事项
- 谨慎操作:修改防火墙规则可能导致网络断连(如误删 SSH 端口),建议在本地终端操作或通过带紧急回退机制的工具(如
ufw可设置规则超时)。 - 默认策略:生产环境中,
INPUT链建议默认拒绝(DROP),OUTPUT链默认允许(ACCEPT),仅按需开放端口。 - 保存配置:使用
iptables-persistent或firewalld --permanent确保规则重启后生效。
根据你的 Linux 发行版和需求选择合适的防火墙工具即可。