apf是一款比较好用的linxu防火墙,用它来设置iptables等是一个比较好的工具,线上通常免费版,不少使用这个,下面说一下他的安装与配置mysql
wget http://www.rfxn.com/downloads/apf-current.tar.gz
tar -xvzf apf-current.tar.gz
cd apf-9.7-2/
./install.sh web
[root@iZ942k2d5ezZ apf-9.7-2]# ./install.sh
Installing APF 9.7-2: Completed. sql
Installation Details:
Install path: /etc/apf/
Config path: /etc/apf/conf.apf
Executable path: /usr/local/sbin/apf vim
Other Details:
Listening TCP ports: 22,80,100,3306,6379,27017
Listening UDP ports: 123,636
Note: These ports are not auto-configured; they are simply presented for information purposes. You must manually configure all port options.
到上面就安装成功了服务器
启动ssh
/etc/init.d/apf start
chkconfig apf on
二,配置apftcp
vim /etc/apf/conf.apf 通常按照下面的配置好,而后apf -f(或者apf -r) 刷新一下就好了ide
IG_TCP_CPORTS="21,22,80,443,3306,8080" //设置服务器容许被访问的TCP端口
IG_UDP_CPORTS="53" //设置服务器容许被访问的UDP端口
EG_TCP_CPORTS="21,25,80,443,43,2089" //设置服务器容许对外访问的TCP端口
EG_UDP_CPORTS="20,21,53" //设置服务器容许对外访问的UDP端口 工具
DEVEL_MODE="1" 改成 DEVEL_MODE="0"
DLIST_SPAMHAUS="0" 改成 DLIST_SPAMHAUS="1"
DLIST_DSHIELD="0" 改成 DLIST_DSHIELD="1"
配置过程当中要注意如下几点:
1,根据不一样的服务器开放不一样的端口,web服务器根mysql服务器开放的端口确定不同。
2,DEVEL_MODE=”1″表示在调试模式下,每五分钟重调配置,这样能避免由于错误的配置而使服务器崩溃。
3,设置只通许192.168.1.139远程链接22端口post
// 在/etc/apf/allow_hosts.rules添加以下信息:
tcp:in:d=22:s=192.168.1.139
out:d=22:d=192.168.1.139
// 在/etc/apf/deny_hosts.rules添加以下信息:
tcp:in:d=22:s=0/0
out:d=22:d=0/0
开始的时候,我觉得只要在allow_hosts.rules里面加就好了,改过一后,我换了一个IP,已然能够链接,搞得我很无语。后在deny_hosts.rules加上了上面的规则后,在链接时就提示超时了。allow_hosts.rules和deny_hosts.rules里面都加了规则后,重起apf会提示配置成功的信息,偶然发现的。
apf(12234): {trust} allow outbound 192.168.1.139 to port 22
apf(12234): {trust} allow inbound tcp 192.168.1.139 to port 22
三:apf经常使用命令
apf -s // 启动APF防火墙
apf -r // 重启APF防火墙
apf -f // 刷新APF防火墙配置文件
apf -l // 列出APF的过虑规则
apf -t // APF的日志信息。
apf -e // 将域名解释加入信认规则
apf -a // 将IP/IP段添加到白名单
apf -d // 将IP/IP段添加到黑名单
apf -u // 将IP/IP段从白/黑名单中删除
apf -o // 将IP/IP段从白/黑名单中删除
经常使用端口:
21/tcp //ftp
22/tcp //ssh
25/tcp //smtp
53/udp //dns
80/tcp //http
110/tcp //pop3
143/tcp //imap
443/tcp //https
993/tcp //imaps
995/tcp //pop3
3306/tcp //mysql
5432/tcp //postgresql
其余:
IG_TCP_CPORTS=”21,22,80,443,3306,8080″ //设置服务器容许被访问的TCP端口
IG_UDP_CPORTS=”53″ //设置服务器容许被访问的UDP端口
EG_TCP_CPORTS=”21,25,80,443,43,2089″ //设置服务器容许对外访问的TCP端口
EG_UDP_CPORTS=”20,21,53″ //设置服务器容许对外访问的UDP端口
DEVEL_MODE=”1″ 改成 DEVEL_MODE=”0″
DLIST_SPAMHAUS=”0″ 改成 DLIST_SPAMHAUS=”1″
DLIST_DSHIELD=”0″ 改成 DLIST_DSHIELD=”1″
配置过程当中要注意如下几点:
1,根据不一样的服务器开放不一样的端口。
2,DEVEL_MODE=”1″表示在调试模式下,每五分钟重调配置,这样能避免由于错误的配置而使服务器崩溃。
3,设置只通许192.168.1.139远程链接22端口
// 在/etc/apf/allow_hosts.rules添加以下信息:
tcp:in:d=22:s=192.168.1.139
out:d=22:d=192.168.1.139
// 在/etc/apf/deny_hosts.rules添加以下信息:
tcp:in:d=22:s=0/0
out:d=22:d=0/0
开始的时候,我觉得只要在allow_hosts.rules里面加就好了,改过一后,我换了一个IP,已然能够链接,搞得我很无语。后在 deny_hosts.rules加上了上面的规则后,在链接时就提示超时了。allow_hosts.rules和deny_hosts.rules里 面都加了规则后,重起apf会提示配置成功的信息,偶然发现的。
apf(12234): {trust} allow outbound 192.168.1.139 to port 22
apf(12234): {trust} allow inbound tcp 192.168.1.139 to port 22
三,apf的经常使用命令
apf -s // 启动APF防火墙
apf -r // 重启APF防火墙
apf -f // 刷新APF防火墙配置文件
apf -l // 列出APF的过虑规则
apf -t // APF的日志信息。
apf -e // 将域名解释加入信认规则
apf -a // 将IP/IP段添加到白名单
apf -d // 将IP/IP段添加到黑名单
apf -u // 将IP/IP段从白/黑名单中删除
apf -o // 将IP/IP段从白/黑名单中删除
四,经常使用端口列表
21/tcp //ftp
22/tcp //ssh
25/tcp //smtp
53/udp //dns
80/tcp //http
110/tcp //pop3
143/tcp //imap
443/tcp //https
993/tcp //imaps
995/tcp //pop3
3306/tcp //mysql
5432/tcp //postgresql