LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1421|回复: 4

关于iptables做网关的问题 如何实现透明代理呢?

[复制链接]
发表于 2007-11-21 09:45:30 | 显示全部楼层 |阅读模式
本人刚接触这些问题,有很多地方都不知道如何实现,我想问一下,如果现在要帮一个学校做一个网络服务器,要分为两个网段进行管理,一个为学生组,只能上网不能聊QQ,另外一个为老师组什么都能够做;首先是要去电信申请一个什么东东(电信会给我一些什么东东),买些什么设备,这些都做好之后然后怎样利用linux作为管理的操作系统,安装好iptables之后,让老师和学生都必须通过iptables作为网关来上网呢(本机为单网卡)?这个线应该怎样连接呢(包括服务器网关在内全部都连接在交换机之类上吗?).不好意思,由于新手,不懂这些,又不得不做,哎...
希望大家能够帮一下忙?这个东东要交给老师的(呵呵!感冒没有上课要啊)
问题补充:iptables已经安装好了
不好意思,麻烦大家能够慷慨解囊,帮助小弟一下!
 楼主| 发表于 2007-11-21 10:20:29 | 显示全部楼层
有人可以帮一下忙吗?
回复 支持 反对

使用道具 举报

发表于 2007-11-23 10:29:23 | 显示全部楼层
可以考虑iptables+squid的组合
回复 支持 反对

使用道具 举报

发表于 2007-11-23 16:29:11 | 显示全部楼层

建议你先搞定一次 ADSL+智能路由+交换机+客户端 上网

第一 :建议你先搞定一次 ADSL+智能路由+交换机+客户端 上网
大概明白怎么回事了在linux做分网段的NAT 或是代理上网!
第二 :iptables 实现NAT 很简单 步骤如下 (其实sir 里面相关的帖子很多你还是仔细找找,别怕费事。)
1.确定你的怎么单机上外网 是AD 还是固定IP  从ISP 那里获得资料 电信网通会答复你的。
2.一个网卡 linux 接到 ISP 提供的口上 也许是 AD也许是LAN 但你要明白是ppoe 还是直接有C类网地址那种。
3. 查看你的网络设置 #ifconfig
  4.先让你的网关机器能上网,一般会有得到一个IP地址 在#ifconfig 下看看有什么不一样。
5.添加不同网段的IP 对内网网关 #ifconfig eth0:1 192.168.X.1 netmask 255.255.255.0
6.在内网找一个机器设置IP与eth0:1相同网段 ping 192.168.X.1是否联通。
7. 修改 /etc/rc.local 文件 #vi rc.local 添加
   etho “1” >/proc/sys/net/ipv4/ip_forward
     iptables -t nat -A POSTROUTING -o eth0 -s 192.168.X.0/24 -j MSQUERADE
8.service iptables save  保存iptables 设置就ok了。
9.要是AD 的话 7步的 eth0 就改成ppp0 就可以了!
具体的可以参照 南北兄的:http://www.linuxsir.cn/forum.php?mod=viewthread&tid=12515
回复 支持 反对

使用道具 举报

发表于 2007-12-6 14:30:52 | 显示全部楼层
squid 是 linux下的一款功能强大的加速缓存服务器,它是将网站的页面在硬盘中形成cache.

iptables是linux下的一款功能强大的防火墙软件,它可以实现对linux本身机器的防火功能,还可能实现转发过滤,还可以用来做NAT,即网络地址翻译,也可以实现外网用户穿透linux防火墙进入私网内部。

iptables有三张表,分别是filter(iptables的默认表)、nat(NAT网络地址翻译,包括SNAT(源地址转换,即改变数据包的源地址)和DNAT(目的地址转换,即改变数据包的目的地址)):
     filter表,是用来做过滤的。在这个表中有三个链,分别是INPUT、OUTPUT、FORWARD。
              INPUT链是用来做过滤的,即某些机器或访问本台linux机器时,是否有权利访问,则可以使用这个链来控制。
              规则如下:
              iptables -A INPUT -s 192.168.0.0/255.255.255.0 -p tcp -d 22 -j ACCEPT
                     iptables -A INPUT -p ALL -j REJECT


                     OUTPUT链,是限制本台linux机器访问外部的。
              FORWARD链是用来限制数据包是否是转发的数据包。
              例如:
               iptables -A FORWARD -s 192.168.0.0/255.255.255.0 -d 61.243.232.203/255.255.255.255 --dport 80 -p tcp -j ACCEPT

             NAT表中有:PREROUTING(用来做为DNAT时使用)、POSTROUTING(用来做为SNAT使用)、OUTPUT三个链。

        SNAT即:
                 私有网络------------------> linux BOX ------------------>公网服务
         192.168.0.0/24------->192.168.0.1--220.201.153.153------->220.201.152.134
            DNAT即:
                 私有网络<------------------ linux BOX <------------------公网服务               

我们如果不想使用代理squid来加速,我们可以使用SNAT技术进行解决。
命令如下:
      sysctl -w net.ipv4.ip_forward=1
      iptables -t nat -A POSTROUTING -s 192.168.0.0/255.255.255.0 -p ALL -j ACCEPT
       来实现。但要注意linux机器本身的安全问题。


试去吧!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表