APF防火墙的安装配置
一、APF防火墙介绍
APF是一款Linux下的iptables防火墙,由R-fx Networks开发维护,实现代码基本为SHELL。个人觉得这是Linux下最易用,且强大的防火墙脚本。类似级别的还有Bastille,FireHol,Kill my firewall等。但我还是喜欢APF。
cd /tmp
wget http://www.rfxnetworks.com/downloads/apf-current.tar.gz
tar -xvzf apf-current.tar.gz
cd apf-9.7-1
./install.sh
cd ..
rm -rf apf-9.7-1
APF的配置文件设置 — /etc/apf/conf.apf
IG_TCP_CPORTS=”20,21,22,25,26,80,110,143,443,465,993,995,2077,2078,2082,2083,2086,2087,2095,2096,3306,6666″
# 设置服务器允许被访问的UDP端口
IG_UDP_CPORTS=”53″
# 设置服务器允许对外访问的TCP端口
EG_TCP_CPORTS=”21,25,80,443,43,2089″
# 设置服务器允许对外访问的UDP端口
EG_UDP_CPORTS=”20,21,53″
# 开启Dshield,屏蔽互联网上有恶意行为的IP
# IP列表:feeds.dshield.org/top10-2.txt
DLIST_DSHIELD=”1″
APF命令的常用操作
apf -s # 启动APF防火墙
apf -r # 重启APF防火墙
apf -f # 刷新APF防火墙配置文件
apf -l # 列出APF的配置信息,与iptables -nL类似
apf -st # APF信息统计。主要包括白名单,黑名单信息。
apf -a IP地址/IP段(FQDN) “注释” # 将IP/IP段添加到白名单
apf -d IP地址/IP段(FQDN) “注释” # 将IP/IP段添加到黑名单
apf -u # 将IP/IP段从白/黑名单中删除
apf -e停止防火墙的所有策略
APF如何自定义Iptables命令
/etc/apf下有2个配置文件postroute.rules和preroute.rules。把Iptables的POSTROUTE和PREROUTE命令放入对应的配置文件,APF在启动时就会自动调用实现NAT转发。
其他Iptables自定义命令可以直接写入/etc/apf/firewall里面。
六、APF的访问列表应用
APF的ACL配置文件为/etc/apf/allow_hosts.rules,/etc/apf/deny_hosts.rules
例:只允许来自192.168.0.2的IP访问服务器的SSH端口,屏蔽其他来访
# 在/etc/apf/allow_hosts.rules添加如下信息:
tcp:in:d=22:s=192.168.0.2
out:d=22:d=192.168.0.2
# 在/etc/apf/deny_hosts.rules添加如下信息:
tcp:in:d=22:s=0/0
out:d=22:d=0/0
APF可用于调整非常复杂的安全策略,这里只介绍APF入门应用。有兴趣的朋友可以详细阅读/etc/apf/doc/README.apf或与笔者探讨。