免费注册 查看新帖 |

Chinaunix

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

[proxy] squid透明代理能透不能代(已解决) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-08-11 10:25 |只看该作者 |倒序浏览
小弟初学linux,兴头正猛,突然被透明代理给拦住,苦思一周毫无进展,头发都开始掉了,5555.希望有达人能解决.
以下是我的步骤:
安装FC4,安装为服务器模式 选择软件包的时候把gnome squid打勾
安装配置网卡时防火墙时选择不使用,然后进入图形界面配置外网卡的ip,gateway还有dns以及内网ip地址,在终端下setup启用iptables
以下是我的配置:
eth0外网固定ip 218.12.101.226  eth1 192.168.0.1/22
设置squid.conf
(其中其它默认的项目都用#注释掉,没有改动)
http_port 192.168.0.1:3128
cache_mem 64 MB
cache_swap_low 85
cache_swap_high 90
maximum_object_size 4096 KB
maximum_object_size_in_memory 3072 KB
cache_dir ufs /var/squid/cache 2000 16 256
#限制bt下载的种子以及连接数
acl pass src 192.168.0.1-192.168.3.254/22
acl localhost src 127.0.0.1/255.255.255.255
acl btbt urlpath_regex \.torrent$
acl conncount maxconn 5
acl all src 0.0.0.0/0
http_access deny btbt
http_access allow localhost
http_access allow pass
http_access deny all
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_user_host_header on
iptables的firewall脚本:
#!/bin/sh
echo "Enable IP Forwarding...."
echo "1">/proc/sys/net/ipv4/ip_forward
echo "Starting iptables rules..."
/sbin/modprobe iptable_filter
/sbin/modprobe ip_tables
/sbin/modprobe iptable_nat
#Refresh all chains
/sbin/iptables -F -t nat
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -o eth0 -s 192.168.0.0/22 -j ACCEPT
iptables -t nat -A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
iptables -t nat -A POSTROUTING -s 192.168.0.0/22 -o eth0 -j SNAT --to 218.12.101.226  
rc.local的最后一行添加上了/etc/rc.d/firewall
客户端填上当地ISP的DNS,网关是指向ETH1

问题是这样的:
没起用防火墙时,客户端在浏览器里面设置192.168.0.1:3128代理可以上网.只要我把IPTABLES的服务打开,把IE的代理取消就上不到网,提示没有可以显示的页面
只要一关iptables,又可以用代理的方式上网
.....超级郁闷
后来怀疑是版本问题
我重新下载了FC5来安装问题依旧,我开启了IPTABLES后重新加载
防火墙脚本
防火墙脚本为:
#!/bin/sh
echo "Enable IP Forwarding...."
echo 1 > /proc/sys/net/ipv4/ip_forward
echo "Starting iptables rules..."
/sbin/iptables -F -t nat
iptables -t nat -A PREROUTING -i eht1 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
iptables -t nat -A POSTROUTING -s 192.168.0.0/22 -o eth0 -j SNAT --to 218.12.101.226
结果还是不行,iptables的状态启动后如下:
Table: nat
Chain PREROUTING (policy ACCEPT)
num target prot opt source destination
1 REDIRECT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 redir ports 3128

Chain POSTROUTING (policy ACCEPT)
num target prot opt source destination
1 SNAT all -- 192.168.0.0/22 0.0.0.0/0 to:218.12.101.226

Chain OUTPUT (policy ACCEPT)
num target prot opt source destination

Table: filter
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 RH-Firewall-1-INPUT all -- 0.0.0.0/0 0.0.0.0/0

Chain FORWARD (policy ACCEPT)
num target prot opt source destination
1 RH-Firewall-1-INPUT all -- 0.0.0.0/0 0.0.0.0/0

Chain OUTPUT (policy ACCEPT)
num target prot opt source destination

Chain RH-Firewall-1-INPUT (2 references)
num target prot opt source destination
1 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
2 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 255
3 ACCEPT esp -- 0.0.0.0/0 0.0.0.0/0
4 ACCEPT ah -- 0.0.0.0/0 0.0.0.0/0
5 ACCEPT udp -- 0.0.0.0/0 224.0.0.251 udp dpt:5353
6 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:631
7 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:631
8 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
9 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
10 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited

请路过的达人们看看我这是哪个地方有问题的?
(仰天长叹------难道linux真的那么痛苦吗)

[ 本帖最后由 lijetcart 于 2006-8-15 11:12 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2006-08-11 11:53 |只看该作者

回复 1楼 lijetcart 的帖子

你把http_port 192.168.0.1:3128 改成http_port 3128 试试。

论坛徽章:
0
3 [报告]
发表于 2006-08-11 12:52 |只看该作者
谢谢楼上的兄弟,才试过了.还是不行....
停止iptables后靠代理能上网

[ 本帖最后由 lijetcart 于 2006-8-11 13:17 编辑 ]

论坛徽章:
0
4 [报告]
发表于 2006-08-11 14:09 |只看该作者
没起用防火墙时,客户端在浏览器里面设置192.168.0.1:3128代理可以上网.只要我把IPTABLES的服务打开,把IE的代理取消就上不到网,提示没有可以显示的页面
只要一关iptables,又可以用代理的方式上网

从上面来看,还是你的防火墙规则设置问题,因为用户通过IE中设置代理是没什么问题的。


再看你这里:
Chain RH-Firewall-1-INPUT (2 references)
num target prot opt source destination
1 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
2 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 255
3 ACCEPT esp -- 0.0.0.0/0 0.0.0.0/0
4 ACCEPT ah -- 0.0.0.0/0 0.0.0.0/0
5 ACCEPT udp -- 0.0.0.0/0 224.0.0.251 udp dpt:5353
6 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:631
7 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:631
8 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
9 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
10 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited

建议在这条链的第9条后,加入一条规则:
10 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:3128
来试一下。
或者不要用fc自带的防火墙自带规则工具,自己手工写。

论坛徽章:
0
5 [报告]
发表于 2006-08-11 16:38 |只看该作者
谢谢楼上的兄弟,上面iptables的状态是我在gnome的服务窗口把iptables的状态复制出来的,不是我自己写的
"或者不要用fc自带的防火墙自带规则工具,自己手工写。"----何解啊,我是自己写的一个脚本放在rc.d里面然后开机执行的呀,恕小弟愚笨了....
请问能指点一下具体的方法吗,再谢
请其他兄弟们也来看看给小弟指条明路呀

[ 本帖最后由 lijetcart 于 2006-8-11 16:59 编辑 ]

论坛徽章:
0
6 [报告]
发表于 2006-08-11 18:02 |只看该作者
我觉得是fc自带的脚本生成工具,把你的语句乱了。也可以说是你的语句顺循不对。
建议你自已写iptables的规则。

论坛徽章:
0
7 [报告]
发表于 2006-08-11 18:23 |只看该作者
寒........是要改/etc/sysconfig/iptables这个东西吧

论坛徽章:
0
8 [报告]
发表于 2006-08-11 18:26 |只看该作者
是的,建议你这样做:
cp iptabels iptables.old
server iptables save
然后把你加的
转向到3128端口语句调到所在规则链的前边去,比如第二行。
再把rc.d里加的iptables语句删除,重启机器试试

论坛徽章:
0
9 [报告]
发表于 2006-08-11 18:47 |只看该作者
明天再继续奋战....郁闷的吃饭去了

[ 本帖最后由 lijetcart 于 2006-8-11 19:59 编辑 ]

论坛徽章:
0
10 [报告]
发表于 2006-08-15 11:07 |只看该作者
问题解决了
主要是把自带的规则全部清理掉就OK了
其他的都没专门变,只是比较搞不懂既然rc.d是最后一个被执行的文件那么里面的
F语句专门没有能清楚以前的规则拉....
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP