使用squid配置透明代理并对上网行为进行控制
生活随笔
收集整理的這篇文章主要介紹了
使用squid配置透明代理并对上网行为进行控制
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
使用Squid配置透明代理
環境:CentOS 6.4 + squid-3.1.10-20.el6_5.3.x86_641.檢查squid是否默認安裝,沒有安裝先安裝 rpm -qa squid 假如查找不到,就安裝squid: yum install squid
2.配置虛擬機的網絡,一個網卡是內網,另一個是外網 內網:eth0 ip:192.168.10.209 netmask:255.255.255.0 gateway:192.168.10.1 外網:eth1 ip:10.10.10.100 netmask:255.255.255.0 gateway:10.10.10.1 修改完之后重啟網卡 service network restart 如果配置完之后發現不能上網,注意用route命令查看下默認路由。將默認路由設置成外網eth1。 配置DNS服務器,將/etc/resolv.conf中設置nameserver 8.8.8.8
3.配置squid及透明模式 備份squid的配置文件 cp /etc/squid/squid.conf /etc/squid/squid.conf.bak 修改squid的配置文件:vim /etc/squid/squid.conf 根據自己的需要添加對應的IP,端口 如果你要使用透明模式,在端口后面添加關鍵字“transparent” # Squid normally listens to port 3128 http_port 3128 transparent 在配置文件的最下方添加這條語句,否則squid不能啟動! visible_hostname localhost
4.啟動squid service squid restart
5.為透明代理配置iptables,設置轉發 編寫腳本squid.sh: #!/bin/bashecho "1" > /proc/sys/net/ipv4/ip_forwardmodprobe iptable_nat/sbin/iptables -t nat -A POSTROUTING -j MASQUERADE#將對squid代理服務器DNS的請求轉到8.8.8.8上iptables -t nat -A PREROUTING -p udp --dport 53 -j DNAT --to 8.8.8.8iptables -t nat -A PREROUTING -i eth0 -p tcp -s 192.168.10.0/24 --dport 80 -j REDIRECT --to-ports 3128 給腳本加權限:chmod 777 squid.sh 執行腳本:./squid.sh
6.將iptables的配置進行保存,并重啟iptables service iptables save service iptables restart
7.測試squid透明代理 客戶端IP:192.168.10.13 網關:192.168.10.209 DNS服務器:192.168.10.209 將客戶端的網關和DNS服務器設置成squid透明代理服務器的地址。 打開瀏覽器進行網頁的訪問。
使用Squid對上網行為進行控制
修改Squid的配置文件/etc/squid/squid.conf
在默認的ACL規則之后添加自定義的ACL #禁止下載的文件類型 acl denyfiles urlpath_regex -i \.mp3$ \.avi$ \.zip$ \.rar$ \.exe$ \.iso$ #禁止訪問的網站列表 acl denysites url_regex -i "/etc/squid/denysites" 禁止訪問的網站列表 [root@localhost squid]#cat denysites web2.qq.com
在/etc/squid/squid.conf文件中添加與acl對應的http_access 在“#INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS”中進行添加。如果沒有提示就在“允許訪問ip地址“之前進行添加。 http_access allow test http_access deny denyfiles http_access deny denysites http_access allow localnet 注意:假如test和localnet都是允許訪問的本地主機ip列表,那么localnet中ip就不能訪問“denyfiles和denysites”中的網站,而test中ip就可以正常訪問。
注意他們http_access的順序。因為在test之前并沒有進行拒絕訪問的控制,而在localnet之前已經進行了拒絕訪問的控制,所以test中的ip地址不受到“denyfiles和denysites”的限制,而localnet中的ip受到限制,不能訪問“denyfiles和denysites”中的網站。 ?
環境:CentOS 6.4 + squid-3.1.10-20.el6_5.3.x86_641.檢查squid是否默認安裝,沒有安裝先安裝 rpm -qa squid 假如查找不到,就安裝squid: yum install squid
2.配置虛擬機的網絡,一個網卡是內網,另一個是外網 內網:eth0 ip:192.168.10.209 netmask:255.255.255.0 gateway:192.168.10.1 外網:eth1 ip:10.10.10.100 netmask:255.255.255.0 gateway:10.10.10.1 修改完之后重啟網卡 service network restart 如果配置完之后發現不能上網,注意用route命令查看下默認路由。將默認路由設置成外網eth1。 配置DNS服務器,將/etc/resolv.conf中設置nameserver 8.8.8.8
3.配置squid及透明模式 備份squid的配置文件 cp /etc/squid/squid.conf /etc/squid/squid.conf.bak 修改squid的配置文件:vim /etc/squid/squid.conf 根據自己的需要添加對應的IP,端口 如果你要使用透明模式,在端口后面添加關鍵字“transparent” # Squid normally listens to port 3128 http_port 3128 transparent 在配置文件的最下方添加這條語句,否則squid不能啟動! visible_hostname localhost
4.啟動squid service squid restart
5.為透明代理配置iptables,設置轉發 編寫腳本squid.sh: #!/bin/bashecho "1" > /proc/sys/net/ipv4/ip_forwardmodprobe iptable_nat/sbin/iptables -t nat -A POSTROUTING -j MASQUERADE#將對squid代理服務器DNS的請求轉到8.8.8.8上iptables -t nat -A PREROUTING -p udp --dport 53 -j DNAT --to 8.8.8.8iptables -t nat -A PREROUTING -i eth0 -p tcp -s 192.168.10.0/24 --dport 80 -j REDIRECT --to-ports 3128 給腳本加權限:chmod 777 squid.sh 執行腳本:./squid.sh
6.將iptables的配置進行保存,并重啟iptables service iptables save service iptables restart
7.測試squid透明代理 客戶端IP:192.168.10.13 網關:192.168.10.209 DNS服務器:192.168.10.209 將客戶端的網關和DNS服務器設置成squid透明代理服務器的地址。 打開瀏覽器進行網頁的訪問。
使用Squid對上網行為進行控制
修改Squid的配置文件/etc/squid/squid.conf
在默認的ACL規則之后添加自定義的ACL #禁止下載的文件類型 acl denyfiles urlpath_regex -i \.mp3$ \.avi$ \.zip$ \.rar$ \.exe$ \.iso$ #禁止訪問的網站列表 acl denysites url_regex -i "/etc/squid/denysites" 禁止訪問的網站列表 [root@localhost squid]#cat denysites web2.qq.com
在/etc/squid/squid.conf文件中添加與acl對應的http_access 在“#INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS”中進行添加。如果沒有提示就在“允許訪問ip地址“之前進行添加。 http_access allow test http_access deny denyfiles http_access deny denysites http_access allow localnet 注意:假如test和localnet都是允許訪問的本地主機ip列表,那么localnet中ip就不能訪問“denyfiles和denysites”中的網站,而test中ip就可以正常訪問。
注意他們http_access的順序。因為在test之前并沒有進行拒絕訪問的控制,而在localnet之前已經進行了拒絕訪問的控制,所以test中的ip地址不受到“denyfiles和denysites”的限制,而localnet中的ip受到限制,不能訪問“denyfiles和denysites”中的網站。 ?
轉載于:https://www.cnblogs.com/Skyar/p/3858915.html
總結
以上是生活随笔為你收集整理的使用squid配置透明代理并对上网行为进行控制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 参考数据库
- 下一篇: 用户进程与内核进程通信netlink实例