查看文章
 
(原创)关于linux系统下iptables+squid 实现透明代理的方案
2008-06-20 13:55

1. 首先是要确认linux 系统安装无误,这个时候iptables防火墙已经可以配置了 ,要实现透明代理就只需要

安装好squid,其实这是一件及其简单的事情,在linux命令符下面键入 # yum -y install squid 这句话的意

思就是 自动安装 SQUID(在本机没有SQUID安装文件的时候自动在网上下载并安装)就是这么方便。yum

在以后会经常用到

2. 运行squid的过程失败最主要的原因就是初始化失败,就是当键入 # squid -z 的时候出现错误。这个时候就VI一下/etc/hosts这个文件,因为这里面就是主机完整域名的地址, # vi /etc/hosts    键入 127.0.0.1 hztungtex.com        tungtexhz         localhost 就行了 注意 127.0.0.1这个回环地址不要改!其他的看自己情况改。 已经安装好squid后,如果有webmin 就可以通过WINDOWS 在里面看到squid代理服务器 这个东西

其实squid的主要功能就是缓存+代理,不过还有许多我们需要的功能比如对局域网电脑WEB浏览的限制等

等等等。

下面关键的一步就是对SQUID 配置文件的设置 ,网页上许多配置文件都是 2.5版或者更低的,那种有配置

拿到2.6或者更高版本的就会出现错误,为此我走了很多弯路。。

机器配置:戴尔品牌电脑   linux不知道什么版本的操作系统    本机IP192.168.0.190         两块网卡                                                                                                                   ech0:192.168.0.190  
                                                                                                                       ech1:192.168.0.191

下面是我第一次用squid2.6版本最基本的配置,可以配合IPtables运行并实现透明代理 :(每个人都有不同的地方,所以下面的照搬可能会出现错误,起码IP地址应该改过来)

# /etc/squid/squid.conf

http_port 3128 transparent     ##这就是2.6版跟2.5或者以前版本不同的最大地方有了transparent就

                                                                                                                                能实现透明代理hierarchy_stoplist cgi-bin ?   

access_log /var/log/squid/access.log common

acl all src 0.0.0.0/0.0.0.0

acl localhost src 127.0.0.1/255.255.255.255 (最起码应该把这里的IP及掩码改下)
http_access allow localhost
http_access deny all

http_reply_access allow all

cache_effective_user squid

cache_effective_group squid

coredump_dir /var/spool/squid

总的来说 第一句话就是最关键的地方 其余的看看资料都能很好理解的。

配置完squid.conf 保存后基本上就完成了   重启squid   # service squid restart

下一步进行iptables的配置 只需要加上两句话  

echo "1">/proc/sys/net/ipv4/ip_forward (这句就加载到启动项里)

iptables -t nat -A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128 (这句在iptables的.nat里加上)

至于怎么加在哪加 在那篇转载的文章里。

就这样iptables和squid的最基本配置已经做好了,下面要做的就是重启 squid和iptables 然后看看成功没

进入一个国外的网站 http://ipid.shat.net/   里面可以看到你是否被代理了

顺便说一句 代理和透明代理的区别 :一般的代理都需要手动输入代理的IP地址及端口 而透明代理则是不需要输入IP地址和端口 只要代理服务器在运行,不管你浏览任何网页都是被代理的,而防火墙开启当代理服务器关闭时你就打开不了浏览器上不了INTELNET。这时候你可以关闭防火墙# service iptables stop 或者进入防火墙配置文件# vi /etc/sysconfig/iptables 把 .nat 里的这句-A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128 屏蔽 就能上IE了 。总之iptables和squid是配合工作的,而且他们可以配合得很好。


类别:Linux||添加到搜藏 |分享到i贴吧|浏览(152)|评论 (0)
 
最近读者:
 
网友评论:
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
     

   
帮助中心 | 空间客服 | 投诉中心 | 空间协议
©2012 Baidu