当前位置:Linux教程 - Linux - IP Masquerade和squid结合的透明代理防火墙

IP Masquerade和squid结合的透明代理防火墙



        



    H同志一个劲的问,就写一下IP Masquerade和squid结合的透明代理防火墙.首先有几点说一下,linux防火墙软件随内核版本不同而不同.2.0的用ipfwadm,2.2的用ipchains,未来
    2.4的内核将用netfilter.我这里说的蓝本内网机器是win98,防火墙机器是redhat6.0,内
    核2.2.10,所以用ipchains.squid我用的是老1.x版的,因为redhat6.0带的2.2版本的好象
    有问题,有次关机杀不掉squid就S在那里了.以后次次关机都要死掉,按CTRL+ALT+DEL也没
    用,一怒之下就把这玩意删了.
    IP Masquerade的配置不知大家熟不熟,就是编译内核时要选上,内网机器的网关,DNS要填
    上防火墙机器的地址.把/etc/sysconfig/network中FORWARD_IPV4=false改成ture以打开
    IP转送功能.提供中转服务:
    ipchains -P forward DENY
    ipchains -A forward -s xxx.xxx.xxx.xxx/xx -j MASQ
    其中xxx.xxx.xxx.xxx/xx指你网络的地址,具体见HOWTO.
    在squid.conf里加上两句:
    httpd_accel_with_proxy on
    httpd_accel virtual 80
    然后用/etc/rc.d/init.d/squid start启动squid.
    DNS, sendmail relay服务本身与目标地址无关, 因此只需简单的重定向一下端口.
    ipchains -A input -d 0/0 53 -p tcp -j REDIRECT
    ipchains -A input -d 0/0 53 -p udp -j REDIRECT
    ipchains -A input -d 0/0 25 -p tcp -j REDIRECT
    利用squid透明代理的功能,把对外http的代理访问统统限制在本地代理上
    ipchains -A input -d 0/0 80 -p tcp -j REDIRECT 3128
    ipchains -A input -d 0/0 8080 -p tcp -j REDIRECT 3128
    ipchains -A input -d 0/0 3128 -p tcp -j REDIRECT
    如果你编译内核的时候打开了Loadable module support/Kernelmodule loader,则
    不必再insmod ip_masq_ftp等模块了, 内核会自动装入的.
    现在内网的机器就可以使用Ping(ICMP),HTTP,ftp, NNTP,traceroute,telnet,IRC,
    POP&SMTP,VRML,WAIS,Archie,Real Audio Player,Gopher, True Speech Player,
    Internet Wave Player,Inetrnet Phone,Powwow,CU-SeeMe,VDOLive, PC-anywhere,
    Socket Watch,Linux net-acct package等一些常用的网络功能.对一些经常访问的站
    点提供了http高速连接,也减少了网络流量.
    如果你是连169网,那么防火墙机器DNS里forward加上ISP的DNS地址,否则没法解释域名.
    你可以在win98下上网打winipcfg得到ISP的DNS地址.
    这个防火墙主要考虑使用的功能越多越好,基本没考虑安全问题.希望有兴趣的大侠
    补充,更正. 有问题的同志可以发E-mail给我一起讨论.


    发布人:netbull 来自:ASP学习