Ubuntu防火墙与iptables的关系及核心概念
Netfilter是Linux 2.4及以上内核内置的底层网络包处理框架,负责实现数据包的过滤、转发、地址转换(NAT)等核心功能。它是Linux防火墙的“引擎”,直接处理网络数据包的流向(如入站、出站、转发),但本身不提供用户友好的配置界面,需通过工具(如iptables)来定义规则。
iptables是基于Netfilter的用户层配置工具,通过定义“规则”来控制Netfilter的行为。它将复杂的Netfilter配置简化为用户可理解的命令,支持按表(Table)、链(Chain)、**规则(Rule)**分层管理:
filter(默认,用于包过滤)、nat(网络地址转换,如端口转发)、mangle(修改数据包头,如TTL调整)、raw(绕过连接跟踪,提升性能);INPUT(处理入站数据包到本机)、OUTPUT(处理本机发出的数据包)、FORWARD(处理转发的数据包)、PREROUTING(路由前处理)、POSTROUTING(路由后处理);ACCEPT允许、DROP丢弃、REJECT拒绝)。例如,禁止IP为192.168.1.100的主机访问本机80端口,可使用命令:
iptables -A INPUT -s 192.168.1.100 -p tcp --dport 80 -j DROP。
ufw(Uncomplicated Firewall)是Ubuntu系统默认的简化防火墙工具,旨在降低iptables的使用门槛。它通过更直观的命令封装了iptables的复杂操作,适合普通用户快速配置防火墙:
ssh、http),设置默认策略(如default deny拒绝所有入站连接),查看规则状态等;/etc/ufw/目录下的配置文件(如before.rules、user.rules)中。例如,执行sudo ufw allow 22/tcp后,ufw会在iptables的INPUT链中添加对应的允许规则。例如,允许HTTP(80端口)和HTTPS(443端口)访问,可使用ufw命令:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp。
sudo ufw enable启用防火墙、sudo ufw status查看状态),适合日常防火墙管理;