firewalld与iptables防火墙
iptables
是 Linux 系统中的一个用户空间实用程序,它允许系统管理员配置 Linux 内核防火墙的规则。它用于控制进出网络接口的网络流量,同时也可以控制网络数据包的路由。
iptables
的主要功能如下:
-
数据包过滤:
iptables
可以根据不同的条件(如来源 IP、目的 IP、数据包类型、接口类型等)来接受、拒绝或者丢弃数据包。 -
网络地址转换(NAT):
iptables
可以修改源 IP 或目的 IP,实现网络地址转换。这在很多场景下都很有用,比如共享单个公网 IP 给局域网中的多台机器使用。 -
端口转发:
iptables
可以将到达某个端口的数据包转发到另一个端口,甚至可以转发到另一台机器。 -
日志记录:可以配置
iptables
记录匹配特定规则的数据包的信息,这对于检测网络攻击、问题诊断等很有用。
firewalld
和 iptables
的区别
-
基于接口 vs 基于区域:
iptables
主要基于网络接口设置规则,而firewalld
是基于区域,可以根据不同的区域设置不同的规则。 -
静态 vs 动态:
iptables
是静态的,更改规则需要重新加载或重启服务;而firewalld
是动态的,可以在不丢失当前连接的情况下实时更改设置。 -
配置储存位置:
iptables
的配置储存在/etc/sysconfig/iptables
文件中,而firewalld
的配置储存在/etc/firewalld/
和/usr/lib/firewalld/
下的 XML 文件中。 -
功能和应用:两者都是防火墙管理工具,用于定义和管理防火墙规则,它们都使用内核的
netfilter
网络过滤子系统实现包过滤防火墙功能。不过,firewalld
提供了一种动态的防火墙管理方式,支持区域定义的网络连接和接口安全级别。
这两种防火墙工具,各有其优势。iptables
提供了灵活和精细的控制,适合需要精确管理网络交通的情况。而 firewalld
则更加易用和灵活,提供了更高级别的抽象,并且可以动态地更改规则,这使得它更适合需要动态管理和区域划分的情况。
iptables
- 默认开放所有端口。
- 优先级由序号决定,序号越小优先级越高。
- 配置文件位于
/etc/sysconfig/iptables
。 - 可以通过
iptables
命令来添加、查看和删除规则。 - 更改规则后,需要用
service iptables save
和service iptables restart
命令保存并重启服务,否则重启服务器后会丢失规则。
firewalld
- 默认只开放 22 端口,关闭其他所有端口。
- 配置文件位于
/etc/firewalld/zones/public.xml
。 - 通过
firewall-cmd
命令来添加、查看和删除规则,其中--permanent
参数使得规则永久生效,没有此参数则重启后失效。 - 重新加载规则使用
firewall-cmd --reload
命令。
对于 CentOS 7,由于默认使用 firewalld
,需要用firewall-cmd
命令进行管理。也可以选择关闭 firewalld
并安装并使用 iptables
。
firewalld与iptables 的区别 - 网安 (wangan.com)
iptables和firewall防火墙区别_51CTO博客_ubuntu关闭iptables防火墙