用squid可以实现
网上搜下透明代理就知道了
提供一下示例
一、需求:
公司内网192.168.0.0/24,分成:
服务部192.168.0.130-192.168.0.169
开发部192.168.0.110-192.168.0.129
市场部192.168.0.170-192.168.0.199
办公室192.168.0.200-192.168.0.209
物流部192.168.0.210-192.168.0.219
经理室192.168.0.220-192.168.0.229
小培训室192.168.0.10-192.168.0.49
大培训室192.168.0.50-192.168.0.99
192.168.0.1-192.168.0.9、192.168.0.101-192.168.0.109、192.168.0.230-192.168.0.254保留
192.168.0.100为Internet网关服务器(使用192.168.0.100这个地址是公司内网建设的历史问题,这里不作讨论)。网关服务器内网出口设备是eth1、地址是192.168.0.100,外网出口地址设备是eth0、地址是172.15.222.XXX。
由于公司内部不同部门工作性质不同,现要求:
开发部、市场部、物流部、经理室全天候可以上网
服务部工作日08:00-11:30、13:00-17:00不可以上网,工作日的其它时间和双休日可以上网
小培训室、大培训室每日08:00-11:30、13:00-17:00不可以上网
办公室任何时间都不可以上网
在允许上网的情况中,除192.168.0.123和192.168.0.120外,其它只能使用HTTP协议上网。
二、分析:
HTTP协议代理上网,并实现多功能控制,SQUID是很好的解决办法。
192.168.0.123和192.168.0.120不能用SQUID代理,因为SQUID可以代理众所周知的,如HTTP、HTTPS、FTP、 GOPHER等协议,但更多的网上应用程序不能通过HTTP等代理工作,如REALPLAY最新的媒体流、OUTLOOK的HOTMAIL协议等。这时我们想到了用IPTABLES实现路由和IP伪装。
简单介绍一下IP伪装。172.15.222.XXX(网关服务器的Internet出口地址)访问Internet时,使用自己的地址 172.15.222.XXX,这个没有问题。但内网192.168.0.0/24(实际只有192.168.0.123和192.168.0.120)要通过网关服务器访问Internet,内网地址一定要被网关服务器伪装一下成为172.15.222.XXX,这样从Internet返回的数据包才能回到网关服务器172.15.222.XXX。回到172.15.222.XXX的数据包再通过网关服务器解除伪装、路由到内网上相对应的机器上。
三、实现:
1、重新编译内核,一定要打开network packet filter选项,细节不作详述,请查询iptables的相关信息;
2、重启后安装SQUID,在/etc/squid/squid.conf中加入如下配置信息,配置选项说明不详述,请参考SQUID文档:
acl serdep src 192.168.0.130-192.168.0.169/255.255.255.255 #服务部
#注意:这里掩码不是255.255.255.0
acl devdep src 192.168.0.110-192.168.0.129/255.255.255.255 #开发部
acl mardep src 192.168.0.170-192.168.0.199/255.255.255.255 #市场部
acl offdep src 192.168.0.200-192.168.0.209/255.255.255.255 #办公室
acl goodep src 192.168.0.210-192.168.0.219/255.255.255.255 #物流部
acl mandep src 192.168.0.220-192.168.0.229/255.255.255.255 #经理室
acl strdep src 192.168.0.10-192.168.0.49/255.255.255.255 #小培训室
acl ltrdep src 192.168.0.50-192.168.0.99/255.255.255.255 #大培训室
acl res1 src 192.168.0.1-192.168.0.9/255.255.255.255 #保留1
acl res2 src 192.168.0.101-192.168.0.109/255.255.255.255 #保留2
acl res3 src 192.168.0.230-192.168.0.255/255.255.255.255 #保留3
acl regular_days_lunch time M T W H F 11:31-12:59 #工作日午休上网时间
acl regular_days_morning time M T W H F 00:00-07:59 #工作日上午上网时间
acl regular_days_night time M T W H F 17:01-23:59 #工作日下午上网时间
acl weekend_days time A S 00:00-23:59 #双休日上网时间
http_access allow serdep regular_days_morning
http_access allow serdep regular_days_lunch
http_access allow serdep regular_days_night
http_access allow serdep weekend_days
http_access allow devdep
http_access allow mardep
http_access allow goodep
http_access allow mandep
http_access allow strdep regular_days_morning
http_access allow strdep regular_days_lunch
http_access allow strdep regular_days_night
http_access allow ltrdep regular_days_morning
http_access allow ltrdep regular_days_lunch
http_access allow ltrdep regular_days_night
http_access deny all
3、在/etc/rc.d/rc.local中加入下列代码:
if [ "$RUNLEVEL"="3" -o "$RUNLEVEL"="5" ]; then
/sbin/iptables -F INPUT
/sbin/iptables -F FORWARD
/sbin/iptables -F -t nat
/sbin/iptables -P FORWARD DROP
/sbin/iptables -A FORWARD -s 192.168.0.123/32 -j ACCEPT
/sbin/iptables -A FORWARD -s 192.168.0.120/32 -j ACCEPT
/sbin/iptables -A FORWARD -d 192.168.0.123/32 -j ACCEPT
/sbin/iptables -A FORWARD -d 192.168.0.120/32 -j ACCEPT
/sbin/iptables -A FORWARD -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.123/32 -j MASQUERADE
/sbin/iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.120/32 -j MASQUERADE
echo "1" > /proc/sys/net/ipv4/ip_forward
fi
4、启动SQUID服务,运行/etc/rc.d/rc.local;
5、配置客户机(内网中所有要上网的机器),浏览器的代理服务器设为192.168.0.100,端口设为你指定的SQUID的代理端口。 192.168.0.123和192.168.0.120不用设置代理服务器,只要把它们的网关设为192.168.0.100就可以了。
==============================
早已经解决了。
不过还是感谢楼主。(你的有些长了)
把rc.loal贴上来给大家共享。
代码:
#!/bin/sh -e
echo "1" > /proc/sys/net/ipv4/ip_forward
#清除现有的规则
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
#清除现有的规则
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
#iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j SNAT --to 222.88.17.42
#INPUT
iptables -P INPUT DROP
#iptables -P OUTPUT DROP
#input要开放端口22(SSH的默认端口)
iptables -A INPUT -p tcp -i eth1 --dport 22 -j ACCEPT
#开放端口80
iptables -A INPUT -p tcp -i eth1 --dport 80 -j ACCEPT
iptables -A INPUT -p tcp -i eth1 --dport 53 -j ACCEPT
#forward
iptables -P FORWARD DROP
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -I FORWARD -m iprange --src-range 192.168.0.2-192.168.0.26 -j ACCEPT
iptables -I FORWARD -m iprange --src-range 192.168.0.30-192.168.0.254 -m time --timestart 11:00 --timestop 13:00 -j ACCEPT
iptables -I FORWARD -m iprange --src-range 192.168.0.30-192.168.0.254 -m time --timestart 16:00 --timestop 22:00 -j ACCEPT
exit 0
分享到:
相关推荐
为了实现 NAT 上网,我们需要增加一个内网,例如 10.10.10.*,然后通过路由设置把这个网段内的请求映射到外网去。首先,在主机上创建内网,然后在“网络”页,点“添加网络...”,选择创建虚拟机网络,并选择创建...
Windows-NAT服务配置 Windows-NAT 服务配置是指在 ...通过了解 NAT 的概念和原理、Windows-NAT 服务配置前的准备工作、Windows-NAT 服务配置的实现原理和步骤,我们可以更好地理解和掌握 Windows-NAT 服务配置的技术。
综上所述,利用 nbtstat 命令结合适当的参数和工具(如 `nbtstat-vc`),我们可以有效地进行网段扫描,获取网络中的设备信息,这对网络管理和安全维护至关重要。同时,了解并掌握这些技能,有助于我们更好地理解和...
《IP-MAC Scanner:局域网IP-MAC扫描利器与跨网段VLAN解析》 在现代网络管理中,了解并掌握局域网内的设备信息是至关重要的。IP-MAC Scanner是一款专门针对这一需求设计的工具,它能够帮助网络管理员快速、准确地...
### 虚拟机下的NAT上网配置详解 #### 一、NAT上网原理 NAT(Network Address Translation,网络地址转换)是一种用于在私有网络内部实现IP地址转换的技术,它允许私有网络中的设备通过共享一个或多个全局IP地址来...
VMware 虚拟机无法通过 NAT 上网解决方案 VMware 虚拟机是现在非常流行的虚拟化技术,可以在一台物理机器上运行多个操作系统。然而,在某些情况下,VMware 虚拟机可能无法通过 NAT 上网,这是由于 NAT 网络地址转换...
UDP 在外网环境中不同网段的NAT穿透,网上很多的 资料,但是基本上都是理论知识,而且java的代码很少。 我光是找资料就花了100多积分,经过这些天的努力, 终于被我解决了这个问题。现将完整项目共享给大家。 在test...
网络安全技术- 静态路由-02 多网段下路由表如何添加.mp3
《NetApp-vif接口配置与多网段访问应用实现》 NetApp的VIF(Virtual Interface)接口是一种网络端口聚合技术,它允许多个物理网络接口聚合在一起形成一个逻辑接口,从而提供更高的带宽和冗余性。VIF在NetApp环境中...
多重路由NAT映射上网!一条内网可上网的网线做NAT映射 使更多网段可上网·
1. 为什么选用NAT上网: NAT允许虚拟机通过主机的网络接口共享物理网络连接。在这种模式下,虚拟机的IP地址是私有的,对外部网络不可见,它们的网络通信通过主机的NAT服务进行转换,从而实现了虚拟机的互联网访问。...
为了解决这个问题,可以使用NAPT(Network Address and Port Translation)和MAPT(Mapping of Addresses and Ports Translation),它们可以实现多对一的转换,并且可以解决内网无法访问同网段的其他设备的公网地址...
SIEMENS-西门子PLC不同IP网段的PLC怎样进行PUT_GET通信?
此外,通过调整NAT规则,还可以灵活地管理和控制网络流量,实现更精细的网络策略。 总的来说,Linux下的多网段NAT是一种强大且实用的技术,对于校园网络、企业网络或其他资源有限的网络环境,都是解决IP地址短缺、...
ros v3.2 如何实现多网段上网
例如,如果LAN口启用了192.168.8.1/255.255.255.0和192.168.9.1/255.255.255.0两个网段,那么在代理网段中需要填写该LAN口网段。 四、 案例演示 在完成上网设置后,可以打开谷歌浏览器输入https://192.168.0.252,...