iptables+squid实现透明代理
环境:
6.6.6.7(client)–6.6.6.6(Server|iptables|squid)10.1.10.250–路由–外网
iptables配置
iptables -F
iptables -F -t nat
#清空iptables
iptables -P INPUT DROP
iptables -P FORWARD DROP
#默认不放行进入流量
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p icmp -j ACCEPT
iptables -A INPUT -p tcp -m tcp –dport 3128 -j ACCEPT
#放行ICMP、squid
iptables -A FORWARD -p icmp -j ACCEPT
iptables -A FORWARD -p udp -m udp –dport 53 -j ACCEPT
iptables -A FORWARD -m state –state RELATED,ESTABLISHED -j ACCEPT
#放行DNS、ICMP透传,建议:DNS最好是拿网关做个缓存。
iptables -A PREROUTING -i eth1 -p tcp -m tcp –dport 80 -j REDIRECT –to-ports 3128
#HTTP流量转到squid
iptables -A POSTROUTING -s 6.6.6.0/24 -o eth2 -j MASQUERADE
#内部网段NAT
##service iptables save保存。
SQUID设置:
http_port 3128 transparent
cache_mem 128 MB
cache_dir ufs /var/spool/squid 4096 16 256
cache_mgr root@example.com
http_access allow all
visible_hostname squid server
#
acl badfile1 urlpath_regex -i \.mp3$ \.exe$ \.zip$ \.rar$
http_access deny badfile1
#限制下载文件类型
#启动服务
#squid -zX
#service squid start
测试,网页没问题的。文件类型过滤失败,谁能告诉我原因呀??
QQ不能上,最好把3128改成别人不知道的,也就没法代理了。
关于局域网内有人会用ARP攻击的问题,linux不是路由器,少了个一直广播自己MAC的ARP。下载一个send arp把自己MAC广播出去就行了,至于客户端的MAC,最好在linux上做个sticky表,不知有没有相应软件。。


目前这篇文章有4条评论(Rss)