免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1232 | 回复: 0
打印 上一主题 下一主题

linux简单做网关 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-05-10 15:48 |只看该作者 |倒序浏览
LINUX代理服务器
有3种途径
1。用 squid, sock 等代理软件。
2。用 ipchain 作地址伪装。
3。用 ipchain + squid 作透明代理


一、前言
  在很多大学和科研机构里,合法的ip和端口并不多,因此很多部门都是采用代理?br>;?衿?上网,用微软的ProxyServer固然方便,不过效率低,性能不好,而且最主要的是费用太贵。
因此采用廉价的Linux服务器做代理上网就成了一个很好的解决方法。经过几天的调试,笔者
用Linux做透明网关服务器,让宿舍的其他机器都可以通过一台Linux机器共享一个端?br>;谏?网。感觉非常好。实现的方法是设置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
说明xx.xxx.xxx.xxx为局域网内部某台机器的IP地址,此命令的意思是允许把
xxx.xxx.xxx.xxx机器的IP包请求进行伪装

执行完这两条命令就可以了...............

最后:
不过这样是不是有安全问题呢?
内网所有机器网关填Linux主机的内网地址
祝好运!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP