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