linux防火墙 – apf 安装 ,配置,使用

apf是一款比较好用的linxu防火墙,用它来设置iptables等是一个比较好的工具,线上一般免费版,很多使用这个,下面说一下他的安装与配置

wget http://www.rfxn.com/downloads/apf-current.tar.gz  
tar -xvzf apf-current.tar.gz  
cd apf-9.7-2/  
./install.sh  
  
[root@iZ942k2d5ezZ apf-9.7-2]# ./install.sh  
Installing APF 9.7-2: Completed.  
  
Installation Details:  
  Install path:         /etc/apf/  
  Config path:          /etc/apf/conf.apf  
  Executable path:      /usr/local/sbin/apf  
  
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.

到上面就安装成功了

启动

/etc/init.d/apf start  
chkconfig apf on

二,配置apf

vim /etc/apf/conf.apf   一般按照下面的配置好,然后apf -f(或者apf -r) 刷新一下就行了

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端口

// 在/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