当前位置:Linux教程 - Linux资讯 - 透明的网关:在Linux上运行IPchains

透明的网关:在Linux上运行IPchains

  一、前言   在很多大学和科研机构里,合法的ip和端口并不多,因此很多部门都是采用代理服务器上网,用微软的Proxy Server固然方便,不过效率低,性能不好,而且最主要的是费用太贵。因此采用廉价的Linux服务器做代理上网就成了一个很好的解决方法。经过几天的调试,笔者用Linux做透明网关服务器,让宿舍的其他机器都可以通过一台Linux机器共享一个端口上网。感觉非常好。实现的方法是设置IP伪装。     二、背景   机器 0:     OS:Redhat 6.0, 成功安装了双网卡        eth0: 192.168.2.61,连接到了校园网上     eth0's NetMask: 255.255.254.0        eth1: 192.168.11.1,连接到宿舍局域网上     eth1's NetMask 255.255.255.0     其中,宿舍局域网的IP是自定义的,为非法地址。     机器 1:     OS:Win9x     IP:192.168.11.2     GateWay:192.168.11.1 /*机器0的eth1*/     NetMak: 255.255.255.0     DNS :202.116.64.3 /*校园网的名字服务器*/     三、目的   使机器1能够通过机器0上到校园网,就好像机器1直接连到校园网上一样, 故此把机器0叫做透明网关。     四、原理   由于只有机器0的IP为合法地址,机器1想要上到校园网,就要把 机器1发送的数据包经过机器0伪装后再转发出去。期间,机器0把 机器1的IP数据包中的本地地址抽取出来并存储,且用机器0的本 地地址代替后转发出去返回的数据包经过机器0恢复后再转发给机器1。     五、步骤   1、保证机器0能够出校园网,并且能够Ping到机器1,机器1也能够Ping到机器0。至于这如何设置不再此次的讨论范围之内。     2、在机器0上打开xwindows,运行:netcfg 选择routing,允许(使能)Network Packet Forwarding(IPV4)。在机器0上建立一个文件:rules chmod +x rules使rules变为可执行文件。     =(echo 1 > /proc/sys/net/ipv4/ip_forward)        3、建立一个rules文件,具体路径可以放到如/sbin中。 编辑这个文件,填写以下内容:       #在默认状况下拒绝所有 ip 转发。.0     /sbin/ipchains -P forward DENY       #允许宿舍网通过机器0使用ip转发,至于ipchains参见man ipchains 或者ipchains how to(参考我们站点上的构建基于ipchains的Linux防火墙)     /sbin/ipchains -A forward -j ACCEPT -i eth1 -s 192.168.0.0/24     /sbin/ipchains -A forward -j MASQ -i eth0 -s 192.168.0.0/24     #增加你需要的伪装模块。     /sbin/modprobe ip_masq_FTP     /sbin/modprobe ip_masq_quake     /sbin/modprobe ip_masq_irc     /sbin/modprobe ip_masq_user     /sbin/modprobe ip_masq_raudio     4、执行/sbin/rules即可。     若把执行rules这个命令加到/etc/rc.d/rc.local中,那么ipchains就可以启动时自动执行。 本方法对于拨号上网同样适用。     六:简单的方法:   其实用LINUX做网关(只做为可以带动整个局域上INTERNET的网关)很简单,只要先连通(或拔号)上INTERNET,然后运行如下两条命令, (当然要以root的身份):     命令1:   # echo 1 > /proc/sys/net/ipv4/ip_forward   说明:允许Network Packet Forwarding(IPV4)     命令2:   # /sbin/ipchains -A forward -j MASQ -S xxx.xxx.xxx.xxx/32 说明:xxx.xxx.xxx.xxx为局域网内部某台机器的IP地址,此命令的意思是允许把xxx.xxx.xxx.xxx机器的IP包请求进行伪装     执行完这两条命令就可以了...............     然后在windows的客户机上在TCP/IP属性里把网关设为这台LINUX的IP就可以了~     不过这样是不是有安全问题呢?
[1] [2] 下一页 

(出处:http://www.sheup.com)


上一页 [1] [2]