一、APF防火墙介绍
APF是一款Linux下的iptables防火墙,由R-fx Networks开发维护,实现代码基本为SHELL。个人觉得这是Linux下最易用,且强大的防火墙脚本。类似级别的还有Bastille,FireHol,Kill my firewall等。但我还是喜欢APF。
二、APF快速安装
1 2 3 4 5 6 7 | cd /tmp wget http:///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
1 2 3 4 5 6 7 8 | # 设置服务器允许被访问的TCP端口 - 以cPanel服务器为例 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" |
1 2 3 | # 开启Dshield,屏蔽互联网上有恶意行为的IP # IP列表:feeds.dshield.org/top10-2.txt DLIST_DSHIELD="1" |
四、APF命令的常用操作
1 2 3 4 5 6 7 8 | 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如何自定义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端口,屏蔽其他来访。
1 2 3 4 5 6 | # 在/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或与笔者探讨。