apf: Unable to load iptables module (ip_tables)
如果启动apf防火墙出现如下错误:
# apf 无法载入iptables 模块(ip_tables),意外终止
即你的内核编译iptables是静态的,而不是作为一个模块,修改:/etc/apf/conf.apf
MONOKERN=”0″ 改为 “1″
保存退出,apf -r 重启apf就可以解决此错误。
如果启动apf防火墙出现如下错误:
即你的内核编译iptables是静态的,而不是作为一个模块,修改:/etc/apf/conf.apf
MONOKERN=”0″ 改为 “1″
保存退出,apf -r 重启apf就可以解决此错误。
Apf是一款Linux常用的免费防火墙,可以配合DDoS-Defate抵挡一定流量的攻击,经过测试感觉还是不错的,挺好用的。
# wget http://www.rfxn.com/downloads/apf-current.tar.gz
解压缩
# tar -xvzf apf-current.tar.gz
进入 APF目录
# cd apf-0.9.7-1/ or whatever the latest version is.
运行安装文件
# ./install.sh
# vi /etc/apf/conf.apf
端口设置 (INGRES)
cPanel的设置
# Common ingress (inbound) TCP ports IG_TCP_CPORTS=" 20,21,22,25,26,53,80,110,143,443,465,993,995,2082, 2083,2086,2087,2095,2096,3306,6666"\ # Common ingress (inbound) UDP ports IG_UDP_CPORTS="21,53,465,873"
DirectAdmin 面板的设置
# Common ingress (inbound) TCP ports IG_TCP_CPORTS=" 21,22,25,53,80,110,111,143,443,587953,2222,3306,32769" # Common ingress (inbound) UDP ports IG_UDP_CPORTS="53,111,631,724,5353,32768,32809"
让APF监控外出流量
修改: EGF="0" 为 EGF="1"
Tell APF what ports to monitor
Common egress (outbound) TCP ports (for Cpanel servers)
EG_TCP_CPORTS="21,22,25,26,37,43,53,80,110,113,443,465,873,2089,3306"
Common egress (outbound) UDP ports
EG_UDP_CPORTS="20,21,53,465,873"
Common ICMP (outbound) types
'internals/icmp.types' for type definition; 'all' is wildcard for any
EG_ICMP_TYPES="all"
Save your changes! Ctrl+X then press Y
Start APF
/usr/local/sbin/apf -s
If all works edit the config file and change the developer mode to 0
pico /etc/apf/conf.apf
修改 DEVM="1" 为 DEVM="0"
重启 APF
# /usr/local/sbin/apf -r
查看APF日志
查看日志 tail -f /var/log/apf_log
输出类似下面的内容:
Aug 23 01:25:55 ocean apf(31448): (insert) deny all to/from 185.14.157.123 Aug 23 01:39:43 ocean apf(32172): (insert) allow all to/from 185.14.157.123
让APF随服务器自动启动
让APF随服务器自动启动,运行下面的命令:
chkconfig --level 2345 apf on
禁止APF自动启动,运行下面的命令:
chkconfig --del apf
通过APF禁止IP
可通过下面两种方法禁止IP
通过命令:
/etc/apf/apf -d IPHERE COMMENTHERENOSPACES
>-d 表示禁止IP
> IPHERE 要禁止的IP地址
> COMMENTSHERENOSPACES 注释该IP被封的原因
该命令是立即生效的
例子:
./apf -d 185.14.157.123 TESTING
vi /etc/apf/deny_hosts.rules
文件中多出来:
# added 185.14.157.123 on 08/23/05 01:25:55 # TESTING 185.14.157.123
通过编辑文件 deny_hosts.rules
vi /etc/apf/deny_hosts.rules
然后在该文件中添加要过滤的IP. 需要重新APF设置才会生效:
/etc/apf/apf -r
解禁IP
从deny_hosts.rules文件中移除IP就可以解禁该IP.
直接编辑文件
vi /etc/apf/deny_hosts.rules
找到IP并删除掉,然后重启APF:
/etc/apf/apf -r
使用命令
如果IP不在deny_hosts.rules, 使用该命令可以将IP添加到APF的白名单中allow_hosts.rules
/etc/apf/apf -a IPHERE COMMENTHERENOSPACES
> -a 表示允许IP
> IPHERE 要允许的IP地址
>COMMENTHERENOSPACES 注释
例子:
./apf -a 185.14.157.123 UNBLOCKING
vi /etc/apf/allow_hosts.rules
# added 185.14.157.123 on 08/23/05 01:39:43 # UNBLOCKING 185.14.157.123
APF自定义Iptables命令
/etc/apf下有2个配置文件postroute.rules和preroute.rules。把Iptables的POSTROUTE和 PREROUTE命令放入对应的配置文件,APF在启动时就会自动调用实现NAT转发。 其他Iptables自定义命令可以直接写入/etc/apf/firewall里面。
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段从白/黑名单中删除
DoS-Deflate是一款免费的用来防御和减轻DDoS攻击的软件。它通过netstat监测跟踪创建大量网络连接的IP地址,在检测到某个结点超过预设的限制时,该程序会通过APF或iptables禁止或阻挡这些IP。默认配置是单IP连接数超过150就封IP,可以有效的防御小流量攻击,如果是大流量的持续攻击,也能减轻服务器压力。VPS或者服务器用都不错。