15.3 IPFilter(IPF)
IPF(IPFilter,IP 过滤器)是一款开源软件,作者 Darren Reed。以下仅供参考未经测试。
如果想启用 ipf,可以执行以下命令:
# 复制示例文件作为默认配置规则集文件,否则 ipfilter 启动后会没有规则。示例文件自带的规则不影响使用
# cp /usr/share/examples/ipfilter/ipf.conf.sample /etc/ipf.rules启动 ipfilter
# service ipfilter enable
# service ipfilter start启动 ipnat
ipnat 是 IPF 的一部分,专门用于处理 NAT 规则的维护。
# 复制示例文件作为默认配置规则集文件,否则 ipnat 无法启动
# cp /usr/share/examples/ipfilter/ipnat.conf.sample /etc/ipnat.rules
# 设置 ipnat 开机启动
# service ipnat enable
# 启动 ipnat
# service ipnat start注意,ipfilter 服务重启后,ipnat 也需要重启。
ipf 的管理命令主要用 ipf、ipfstat 和 ipnat,常用操作示例如下:
# 启动 ipfilter,相当于 service ipfilter start
ipf -E
# 停止 ipfilter,相当于 service ipfilter stop
ipf -D
# 加载规则集文件中的规则
ipf -f /etc/ipf.rules
# 查看所有规则
ipfstat
# 查看规则,i 表示输入规则,o 表示输出规则,h 表示通过该规则的流量,n 表示记录编号
ipfstat -iohn
# 进入监控模式,按 Q 退出
ipfstat -t
# 清理已加载的规则
ipf -Fa
# 加载规则集文件中的 NAT 规则
ipnat -f /etc/ipnat.rules
# 汇总并显示 NAT 状态
ipnat -s
# 列表显示 NAT 规则,加 h 表示同时显示通过该规则的流量
ipnat -lh
# 清理已加载的 NAT 规则
ipnat -CF
# 以上操作并没有对规则的管理,因此还需要修改规则集文件,常用示例如下:
# 拒绝所有访问
block all # ipfilter 是默认明示禁止的防火墙,因此需要通过下列规则禁止所有访问
# 拒绝所有进入的流量
block in all # block 是动作,block 表示拒绝,pass 表示通过;in 为数据方向,in 为入,out 为出,在 ipfilter 里数据方向是必须的
# all 是 from any to any 的简写,表示从源地址到目标地址,地址通常用网段 (如 192.168.1.0/24) 或 IP 地址 (如 192.168.1.100),any 是特殊词,表示任何地址常用的规则集文件 /etc/ipf.rules 如下:
常用的 NAT 规则集文件 /etc/ipnat.rules 如下:
保存文件,接下来在终端执行命令:
最后更新于
这有帮助吗?