我有一个带调制解调器 sagem (NAT) 的 ADSL 连接,并将一台机器连接到电缆 >(fedora17 = 192.168.1.2),在这台机器上我安装了 oracle virtualbox,在这台机器上我有两台机器作为网络桥接连接到调制解调器 Sagem (Debian“192.168.1.6”作为服务器 + Ubuntu“192.168.1.7”作为客户端),我在 (Debian) 上安装了 squid 和 squidGuard。
在此服务器(Debian)中这是我的配置:
##cat /proc/sys/net/ipv4/ip_forward
1
##ls -l /etc/
..
..
lrwxrwxrwx ......squid -> squid3/
..
..
##cd /etc/squid/
ls -l
-rw-r--r-- 1 root root 1547 6 janv. 2012 errorpage.css
-rw-r--r-- 1 root root 421 6 janv. 2012 msntauth.conf
lrwxrwxrwx 1 root root 6 4 févr. 21:49 squid -> squid/
-rw-r--r-- 1 root root 198835 5 févr. 00:02 squid.conf
-rw-r--r-- 1 root root 198764 2 févr. 00:18 squid.conf.old
-rw-r--r-- 1 root root 1350 4 févr. 23:47 squidGuard.conf
-rw-r--r-- 1 root root 1431 3 févr. 20:25 squidGuard.conf.old
/etc/squid3/squid.conf
acl manager proto cache_object
acl localhost src 127.0.0.1/32 ::1
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1
acl localnet src 192.168.1.0/24
acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localnet
http_access allow localhost
http_access deny all
http_port 3128 transparent
hierarchy_stoplist cgi-bin ?
access_log /var/log/squid3/access.log squid
coredump_dir /var/spool/squid3
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320
visible_hostname mysrvhostname
/etc/squid3/squidGuard.conf
time workhours {
weekly mtwhf 08:00 - 16:30
date *-*-01 08:00 - 16:30
}
dest noface
{
domainlist noface/domains
expressionlist noface/expressions
urllist noface/urls
}
acl {
default {
pass !noface all
redirect http://www.google.tn/
}
}
/var/lib/squidGuard/db/noface/域
facebook.com
free.com
speedtest.com
/var/lib/squidGuard/db/noface/urls
http://www.facebook.com/
https://www.facebook.com/
/var/lib/squidGuard/db/noface/domains.diff
+facebook.com
-debian.org
iptables 规则
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
我建立了数据库并启动了 squid3,如下所示:
# squidGuard -C all
# squidGuard -u
# /etc/init.d/squid3 restart
现在在我的客户端 Ubuntu 中,我在强制代理和端口 3128 中设置了我的服务器 Debian 192.168.1.6 的 IP 地址,当我访问其中一个网站时,我想阻止 Facebook,因为客户可以轻松访问
哪里有问题?
答案1
问题是您没有引用 SquidGuard,而 SquidGuard 却无处不在。您需要一个redirect_program
子句,指向您的 SG 二进制文件和配置。
redirect_program /usr/bin/SquidGuard -c /etc/squid/SquidGuard.conf
只需检查 SG 二进制文件的路径,我不确定。