用ipfilter实现透明代理( 三 )


net.ip.accept_sourceroute=0



# To definding against sequence number attacks

# based on rfc 1948 by randomize initial sequence number

net.inet.tcp.strict_rfc1948=1



# To verisy that an incoming packet arrives on an interface

# that has an address matching the packets destination address

net.inet.ip.check_interface=1



# To Drop SYN packets destine to non-listening tcp/upd port.

# This will create a blackhole and protect against stealth port scans

net.inet.tcp.blackhole=2

net.inet.udp.blackhole=1



# Increase TCP Windows size for increase in network performance

# Ref: http://www.psc.edu/networking/perf_tune.html

net.inet.tcp.recvspace=65535

net.inet.tcp.sendspace=65535





DNS


修改文件 /etc/resolv.conf, 增加一条



nameserver DNS_SERVER_IP



如果内网有DNS Server, 应指向该服务器. 如果gateway本身为DNS Server, 为127.0.0.1, 必须配置named.conf. 一般最简单的配置就是指向ISP的DNS Server.



客户机设置


将客户机的Gateway 和 DNS Server都设置为Gateway机器的地址 192.168.0.1



系统测试


Gateway修改完配置后需要启动. 命令 shutdown -r now

客户机Windows XP不需重启, Windows 98要重启.



启动步骤




连接internet, 命令ppp -dedicated

同步防火墙. 我们在设置规则的时候并不知道网络地址, 只有连接成功后才知道确切的地址, 命令ipf
-y可以使ipfilter更新地址, 之后ipfilter就会使用tun0的具体地址. 每次重新连接pppoe后, 都需要进行同步.


Gatewat测试




测试内网, ping 192.168.0.4看是否正常.

测试internet. 运行ifconfig -a
察看tun0的地址及其对应的gateway/router的地址, 假如为a.b.c.d. ping a.b.c.d看是否正常.

测试DNS是否正常, 运行nslookup yahoo.com.cn, 看是否正常.

测试网络, 运行traceroute yahoo.com.cn, 看是否正常. 我的机器没装Xwindow, 因此无法使用浏览器进行测试.

其它有用的测试命令,
ipfstat -hio 显示规则被“击中”的情况.
ipfstat -t 显示防火墙的连接状态.

ipnat -l 显示NAT的状态.
netstat -r 显示路由表.
netstat -i
显示网络的情况, 如果有错误或有大量的冲突包, 应该设法解决.
vmstat 显示系统内存的状态, 如果资源不足, 应增加资源或减少一些服务.


客户机测试




ping 192.168.0.1看是否正常.

tracert a.b.c.d看是否正常. BSD/Linux用traceroute命令, 若不正常, 是防火墙或NAT的问题.

nslookup yahoo.com.cn看是否正常. 若不正常, 是DNS设置的问题.

ping yahoo.com.cn看是否正常.

浏览器上网, 看是否正常.(注意,浏览器不应设置proxy)


经过测试, 证明Windows XP使用如下工具工作正常.





浏览器: IE6, Netscape 4.72, Netscape 6

Email: OutLook Express, 含 hotmail 和 pop3 邮件的收发.

MSN, 含数据和语音通话.


安全测试


请参照



target=_blank>http://www.cert.org/security-improvement/practices/p060.html

href="http://web.ranum.com/pubs/fwtest/">http://web.ranum.com/pubs/fwtest/



相关话题


RealPlayer的问题


系统完成后, 发现RealPlayer在防火墙后无法听音乐, 总是不停地buffering, 直到timeout.
这是因为默认方式下, RealPlayer8 使用了UDP Port 6970-7170接收数据, 该数据被我们的防火墙无情的挡住了,
由于NAT的存在, 简单地允许这样的数据包也无法保证Client工作正常.



ipfilter 提供了一个proxy给我们, 规则为上面已经列出来了, 但是有关资料显示该proxy只支持古老的 PNM RealAudio方式, RealPlayer G2已经使用 RTSP 方式. 该proxy并不支持.

推荐阅读