当前位置:  技术问答>linux和unix

怎样用用iptables+squid实现透明代理?UP无分。

    来源: 互联网  发布时间:2015-06-03

    本文导语:  请详细说明怎样用用iptables+squid实现透明代理? | 一.squid的安装配置  当然你如果使用RedHat可以不用下载,直接进入第六步,当然如果要用最新的版本还是去下吧~  1.下载squid    可以从squid...

请详细说明怎样用用iptables+squid实现透明代理?

|
一.squid的安装配置 
当然你如果使用RedHat可以不用下载,直接进入第六步,当然如果要用最新的版本还是去下吧~ 

1.下载squid 
  可以从squid主站下载:http://www.squid-cache.org 

2.编译安装squid 

  第一步:[root@www root]#tar -xzvf squid-2.4STABLE7.tar.gz 
  第二步:[root@www root]#cd squid-2.4.STABLE7 
  第三步:[root@www squid-2.4.STABLE7]#./configure --prefix=/usr/localsquid enable-ipf-transparent  /*指定squid的安装目录和启用透明代理*/ 
  第四步:[root@www squid-2.4.STABLE7]#make all 
  第五步:[root@www squid-2.4.STABLE7]#make install 
以上五步执行完毕,squid整个程序就会被安装在/usr/local/squid目录下.接下来 
再执行以下几步: 
  第六步:进入目录/usr/local,以root身份执行下面的命令,创建cache目录和改变整个squid目录的所有者为nobody.nobody 
         [root@www squid-2.4.STABLE7]#cd /usr/local/squid 
         [root@www squid]# mkdir cache 
         [root@www squid]# cd .. 
         [root@www local]# chown nobody.nobody -R squid 
  第七步:改变用户为nobody,进入/usr/local/squid/bin目录,执行./squid -z创建cache交换目录 
         [root@www local]# su nobody 
         [root@www local]$cd /usr/local/squid/bin 
         [root@www local]$./squid -z 
  第八步:修改squid.conf文件,确保以下配置: 
         httpd_accel_host virtual 
         httpd_accel_port 80 
         httpd_accel_with_proxy on 
         httpd_accel_uses_host_header on 
         cache_effective_user nobody 
         cache_effective_group nobody 
         http_access allow all 
         cache_dir ufs /usr/local/squid/cache 100 16 256 
         ... 
         ... 
  最后启动squid: 
        [root@www local]#/usr/local/squid/bin/squid 
  查看进程列表: 
        [root@www local]#px ax 
  应该出现如下几个进程: 
......... usr/local/squid 
......... squid 
......... unlink 
 并且系统中应该有如端口被监听: 
tcp 0 0 0.0.0.0:3128 0.0.0.0:* LISTEN 
udp 0 0 0.0.0.0:3130 0.0.0.0:* 
这些说明squid正常启动了. 
让系统启动时自动运行squid 
编辑/ect/rc.d/local文件,在末尾加上: 
su nobody -c "/usr/local/squid/bin/squid" 

OK,通过以上设置我们就以就squid代理上网了. 
现在在其它的电脑上可以在ie浏览器中设置使用代理服务器,添入192.168.0.101:3128就可以上网了. 
但这一步还没有实现透明代理,接下来我们开始设置iptables 


二.设置iptables 

在/etc/rc.d/目录下用touch命令建立firewall文件,执行chmod u+x firewall以改变文件属性, 
编辑/etc/rc.d/rc.local文件,在末尾加上/etc/rc.d/firewall以确保开机时能自动运行该脚本. 
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 -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/24 -o eth0 -j SNAT --to a.b.c.d 
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT 
其中,eth1是内部网卡,eth0是外部网卡。 
/sbin/iptables -F -t nat 
iptables -P INPUT DROP 
iptables -P FORWARD DROP 
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/24 -o eth0 -j SNAT --to a.b.c.d 
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT 
其中,eth1是内部网卡,eth0是外部网卡。 

OK到此就结束了.然后设置客户机的网关和dns后就可上网了.

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 2000下面可以配置JSP的服务器吗?我不会用用UNIX,主要是初学
  • 好想用用呀!大家帮忙!
  • 高手請留步!開發Java應用用那些開發工具?
  • 想装一个unix的虚拟机用用,哪里去下unix系统?哪个比较常用?
  • 如何使用JAVA调用利用用VC写的已有的动态库
  • mysql备份恢复mysqldump.exe几个常用用例
  • 由于微软的黑屏事件,准备用用linux,大家推荐一下!
  • Red Hat Enterprise Linux Server V6已经发布,建议大家用用!
  • 奇怪,究竟有多少人用JBuilder的project功能,我看很多人都只是简单用用JBuilder?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3