新闻中心

FreeBSD内核级透明代理

 操作系统:FreeBSD 4.7 (带源码安装)
     两块网卡:
            1:3COM
                     2:DLINK
     安装步骤:
          代码:                          
一、编译内核
   cd  /usr/src/sys/i386/conf 
     cp  GENERIC proxy
     vi   proxy
     将一下四行加入
   options IPFILTER 
     options IPFILTER_LOG 
     options RANDOM_IP_ID 
     options BRIDGE 
     config proxy
     cd ../../compile/proxy
     make depend
     make
     make install
二、配置
     vi /etc/rc.conf
     
     内容如下:
   gateway_enable="YES" 
     hostname="soocol.com" # 设为你的hostname 
     kern_securelevel_enable="NO" 
     nfs_reserved_port_only="NO" 
     sendmail_enable="NONE" # 用作nat/firewall, 不需要 sendmail 
     sshd_enable="YES" # 
     usbd_enable="NO" 
     cron_enable="NO" 
     network_interfaces="rl0 rl1 lo0" 
     ifconfig_rl0="202.102.121.67  netmask 255.255.255.0" 
     ifconfig_rl1="inet 192.168.0.1 netmask 255.255.255.0" 
     ifconfig_lo0="inet 127.0.0.1" 
# 设置IPFILTER 
     ipfilter_enable="YES" 
     ipfilter_flags="" 
     ipmon_enable="YES" 
     ipmon_flags="-Dsvn" 
     ipnat_enable="YES" 
     vi   /etc/resolv.conf
     
     内容为:
   nameserver 211.167.97.67
     nameserver 202.99.96.68
三、设置IPNAT
     
     vi  /usr/local/etc/rc.d/ipnat.sh     
     内容为:
   #!/bin/sh
     [ -x /sbin/ipnat ] && /sbin/ipnat -CF -f /etc/ipnat.rules && ipf=-y && echo -n 'ipnat' 
     vi /etc/ipnat.rules
     
     内容为:
   map rl0 192.168.0.0/24 -> 0.0.0.0/32 proxy port ftp ftp/tcp
     map rl0 192.168.0.0/24 -> 0.0.0.0/32 portmap tcp/udp 10000:60000
     map rl0 192.168.0.0/24 -> 0.0.0.0/32
        
重新启动系统后局域网中的其他机器将网关设为192.168.0.1就可以上网了
操作系统:FreeBSD 4.7 (带源码安装)
     两块网卡:
            1:3COM
                     2:DLINK
     安装步骤:
          代码:                          
一、编译内核
   cd  /usr/src/sys/i386/conf 
     cp  GENERIC proxy
     vi   proxy
     将一下四行加入
   options IPFILTER 
     options IPFILTER_LOG 
     options RANDOM_IP_ID 
     options BRIDGE 
     config proxy
     cd ../../compile/proxy
     make depend
     make
     make install
二、配置
     vi /etc/rc.conf
     
     内容如下:
   gateway_enable="YES" 
     hostname="soocol.com" # 设为你的hostname 
     kern_securelevel_enable="NO" 
     nfs_reserved_port_only="NO" 
     sendmail_enable="NONE" # 用作nat/firewall, 不需要 sendmail 
     sshd_enable="YES" # 
     usbd_enable="NO" 
     cron_enable="NO" 
     network_interfaces="rl0 rl1 lo0" 
     ifconfig_rl0="202.102.121.67  netmask 255.255.255.0" 
     ifconfig_rl1="inet 192.168.0.1 netmask 255.255.255.0" 
     ifconfig_lo0="inet 127.0.0.1"# 设置IPFILTER 
     ipfilter_enable="YES" 
     ipfilter_flags="" 
     ipmon_enable="YES" 
     ipmon_flags="-Dsvn" 
     ipnat_enable="YES" 
     vi   /etc/resolv.conf
     
     内容为:
   nameserver 211.167.97.67
     nameserver 202.99.96.68
三、设置IPNAT
     
     vi  /usr/local/etc/rc.d/ipnat.sh
     
     内容为:
   #!/bin/sh
     [ -x /sbin/ipnat ] && /sbin/ipnat -CF -f /etc/ipnat.rules && ipf=-y && echo -n 'ipnat' 
     vi /etc/ipnat.rules
     
     内容为:
   map rl0 192.168.0.0/24 -> 0.0.0.0/32 proxy port ftp ftp/tcp
     map rl0 192.168.0.0/24 -> 0.0.0.0/32 portmap tcp/udp 10000:60000
     map rl0 192.168.0.0/24 -> 0.0.0.0/32
        
重新启动系统后局域网中的其他机器将网关设为192.168.0.1就可以上网了
可以加入端口重定向配合squid吗?
map规则是用于转换外出数据包的源地址,使得被转换后的地址好象是从外部地址中发起的。而另一个规则rdr 用于转换数据包中的目的地址,这样就能使得一个数据包被转发到某个特定计算机上进行处理,这可用于构建端口映射关系。 
  rdr rl0 212.102.245.60 port 80 -> 192.168.0.1 port 80
  上面的规则将指定ipfilter在 rl0 网络接口上将发送给212.102.245.60,端口为80的数据包,转换为发送给内部地址192.168.0.1 。
  rdr的另一个重要用途是可以用以构建透明的代理服务器,普通代理服务器都需要在客户机上进行设置,如果不进行设置,客户机将直接访问
Internet上的计算机而不通过代理服务器,然而防火墙可以将这些应用请求转发给代理服务器,完成代理工作。此时对外界发送请求是在内部网络接口
rl0上发起的,因此也要在这里进行地址转换,而使用0.0.0.0/0
代表对所有目的地址,并且是80端口的浏览请求都转发到127.0.0.1上去,而127.0.0.1
必须运行代理服务器软件(例如:squid),以提供代理服务。
  rdr rl0 0 0.0.0.0/0 port 80 -> 127.0.0.1 port 80
ipnat -C
ipnat -f /etc/ipnat.conf
ipnat -l 

香港云主机