APF: Advanced Policy Firewall,是 Rf-x Networks 出品的Linux环境下的软件防火墙。APF采用Linux系统默认的 iptables 规则。APF可以算是Linux中最出名的软件防火墙之一。
安装过程:
# cd /tmp
# wget http://www.r-fx.ca/downloa...
# tar -xzvf apf-current.tar.gz
# cd apf-版本
# ./install.sh
开始配置:
# vi /etc/apf/conf.apf
1) 将 USE_DS="0" 改为 USE_DS="1"
2) 将 USE_AD="0" 改为 USE_AD="1"
3) 根据自己的实际需要开启下面的端口 [Ingress]
# Common ingress (inbound) TCP ports
IG_TCP_CPORTS="22,21"
# Common ingress (inbound) UDP ports
IG_UDP_CPORTS=""
# Common ICMP (inbound) types
# 'internals/icmp.types' for type definition; 'all' is wildcard for any
# IG_ICMP_TYPES="3,5,11,0,30,8"
IG_ICMP_TYPES="3,5,11,0,30"
4) 将 EGF="0" 改为 EGF="1"
5) 根据自己的实际需要开启下面的端口 [Egress]
# Common egress (outbound) TCP ports
EG_TCP_CPORTS="22,21,80"
# Common egress (outbound) UDP ports
EG_UDP_CPORTS="20,21,53"
# Common ICMP egress (outbound) types
# 'internals/icmp.types' for type definition; 'all' is wildcard for any
# EG_ICMP_TYPES="all"
EG_ICMP_TYPES="3,5,11,0,30"
下面列出常规的端口,方便大家进行配置:
21/tcp ftp
22/tcp ssh
25/tcp smtp
26/tcp 备用smtp端口
80/tcp http
110/tcp pop3
143/tcp imap
443/tcp https
993/tcp imaps
995/tcp pop3s
3306/tcp mysql
5432/tcp postgres
53/udp dns
配置完成后保存退出,并启动APF防火墙:
/usr/local/sbin/apf -s
请注意,此时防火墙是运行在调试模式,每五分钟重洗配置。这样能避免因为错误的配置而使服务器瘫痪。
确保配置无误后,再次进入配置文件(vi /etc/apf/conf.apf),将 DEVEL_MODE="1" 更改为 DEVEL_MODE="0" 。这样 APF 就会运行在常规模式下。
重启 APF
/usr/local/sbin/apf -r
注意事项:如果你的 Linux 内核将 iptables 直接编译而非模块模式的话,请将配置文件中的 SET_MONOKERN="0" 更改为 SET_MONOKERN="1"
可选配置:
APF 有个新的功能便是防止 DoS 攻击(/etc/apf/ad)。其日志文件保存在 /var/log/apfados_log。
下面我们将配置 APF 使其遇到 DoS 后发送电子邮件给管理员。
打开配置文件:
vi /etc/apf/ad/conf.antidos
查找 [E-Mail Alerts] 。
CONAME=”Your Company” 为你的网站或公司名称。
将 USR_ALERT="0" 更改为 USR_ALERT="1" ,从而使系统发送电子邮件。
USR=”your@email.com” 为你的电子邮件地址。
保存并退出,重启 APF(/usr/local/sbin/apf -r)。
另外,如果需要让系统每次重新启动后自动运行 APF,则执行以下命令:
/sbin/chkconfig --level 2345 apf on
需要去除自动启动的话:
/sbin/chkconfig --del apf
================================================
usage /usr/local/sbin/apf [OPTION]
-s|--start ......................... load all firewall policies
-r|--restart ....................... stop (flush) & reload firewall rules
-f|--stop........ .................. stop (flush) all firewall rules
-l|--list .......................... list chain rules
-t|--status ........................ firewall status
-a HOST CMT|--allow HOST COMMENT ... add host (IP/FQDN) to allow_hosts.rules and
immediately load new rule into firewall
-d HOST CMT|--deny HOST COMMENT .... add host (IP/FQDN) to deny_hosts.rules and
immediately load new rule into firewall
-u|--unban HOST .................... remove host from [glob_]deny_hosts.rules
and immediately remove rule from firewall
-o|--ovars ......................... output all conifguration options
================================================
出处:疯狂老头的博客 作者:疯狂老头