Tomasz Lewicki
2007-11-05 09:39:19 UTC
Witam!
Wysłałem ten post kilka dni temu na pcol, ale niestety nie było nań żadnej
odpowiedzi. Może tutaj szczęście mi dopisze ;)
Usiłuję zmusić Squidguarda do współpracy. Mam kilkanaście komputerów,
podzielonych na dwie grupy - opac i oin. Pracują w środowisku bezdyskowych
terminali (LTSP). Pierwsza z nich (opac) powinna mieć dostęp tylko do kilku
wybranych adresów WWW (właściwie do jednej domeny), druga (oin) ma mieć
większą swobodę, ale również z ograniczeniami (np. XXX, portale
społecznościowe i dużo innych). Po włączeniu komputera użytkownik jest
automatycznie logowany, nadawane są mu rozmaite ograniczenia, a dostęp
odbywa się przez Konquerora, również otwieranego automatycznie. Nie ma
możliwości zmiany ustawień serwera proxy.
Grupy są dobrze rozdzielone: opac - 192.168.0.1-192.168.0.10, oin -
192.168.0.11-192.168.0.15. Oto fragment konfiguracji Squidguarda, opartej
na przykładach ze strony SG:
logdir /var/log/squidGuard
dbhome /var/lib/squidGuard/db
#
# Konfiguracja list dostepu (najpierw "fabryczne", na koncu wlasne)
#
[tutaj znajduje się cała litania list "fabrycznych" - wyciąłem ją w tym
poście]
dest good {
domainlist custom/good/domains
urllist custom/good/urls
log custom-good.log
}
dest bad {
urllist custom/bad/urls
log custom-bad.log
}
dest biblioteka {
urllist custom/biblioteka/urls
log custom-biblioteka.log
}
#
# Konfiguracja grup uzytkownikow (wedlug lokalizacji terminali)
#
src opac-korytarz {
ip 192.168.0.1-192.168.0.10
}
src oin {
ip 192.168.0.11-192.168.0.15
}
acl {
opac-korytarz {
pass biblioteka none
redirect 302:http://localhost/access-denied.html
}
oin {
pass
good !bad !adv !aggressive !automobile !chat !dating !downloads !drugs !dynamic !forum !gamble !hacking !isp !jobsearch !movies !music !news !porn !recreation !redirector !spyware !shopping !tracker !violence !warez !webmail !webradio !webtv
all
redirect 302:http://localhost/access-denied.html
}
default {
pass biblioteka none
redirect 302:http://localhost/access-denied.html
}
}
Czyli:
* komputery należące do grupy opac_korytarz powinny mieć dostęp do URL-i
zdefiniowanych w pliku 'biblioteka' i żadnych innych (none)
* komputery z grupy oin powinny mieć dostęp do URL-i zapisanych w
pliku 'good', nie mieć dostępu do URL-i z list 'bad' itd. aż do 'webtv',
poza tym do wszystkich pozostałych
* komputery nie należące do żadnej z dwóch grup powinny mieć dostęp do URL-i
zdefiniowanych w pliku 'biblioteka' i żadnych innych (none) - czyli tak jak
opac_korytarz
Niestety, nie działa to tak, jak chcę - opac_korytarz ma dostęp do
wszystkich stron. Wygląda to tak, jakby dla opac_korytarz działała polityka
default, ponieważ strony zdefiniowane na czarnych listach, m.in. 'bad', są
blokowane.
Na jednej ze stron poświęconych Squidguardowi znalazłem następującą
informację:
"Why does Squidguard not block clients designated with src { ip x.x.x.x }?
If you try to designate which clients get blocked by using a source group
with the clients designated by ip address, you must have a line in your
squid.conf file to cause squid to supply the entire ip address for each
client. For instance, if you have:
src kids {
ip 192.168.1.10
ip 192.168.1.13
}
then you must put the following line into your squid.conf file:
client_netmask 255.255.255.255
Otherwise, squid will only supply the upper 16 bits of the client ip
addresses and no clients will match the result."
(żródło: http://www.maynidea.com/squidguard/faq-plus.html#nosrcip)
Dopisałem zatem rzeczoną linię do konfiguracji Squida, która wygląda teraz
tak:
http_port 3128
visible_hostname OPAC
client_netmask 255.255.255.255
acl terminale src 192.168.0.0/24
acl opac-server src 156.17.xx.yy/32
acl all src 0.0.0.0/0
acl awf dstdomain domena.pl
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 443 # https
acl Safe_ports port 1025-65535 # unregistered ports
acl CONNECT method CONNECT
http_access allow terminale
http_access allow opac-server
http_access deny all
url_rewrite_program /usr/sbin/squidGuard -c /etc/squidguard.conf
url_rewrite_children 8
redirector_bypass on
#cache_dir ufs /var/cache/squid/ 100 16 256
cache deny all
cache_dir null /tmp
always_direct allow all
Serwery restartowane, w logach brak błędów (przypominam: SG działa i
przekierowuje użytkownika na informację o blokadzie). Wersje
oprogramowania: Squid 2.6STABLE6, Squidguard 1.2.1.
Czy znajdzie się ktoś, kto ma doświadczenie w bojach z tym tandemem i może
mi coś poradzić?
Wysłałem ten post kilka dni temu na pcol, ale niestety nie było nań żadnej
odpowiedzi. Może tutaj szczęście mi dopisze ;)
Usiłuję zmusić Squidguarda do współpracy. Mam kilkanaście komputerów,
podzielonych na dwie grupy - opac i oin. Pracują w środowisku bezdyskowych
terminali (LTSP). Pierwsza z nich (opac) powinna mieć dostęp tylko do kilku
wybranych adresów WWW (właściwie do jednej domeny), druga (oin) ma mieć
większą swobodę, ale również z ograniczeniami (np. XXX, portale
społecznościowe i dużo innych). Po włączeniu komputera użytkownik jest
automatycznie logowany, nadawane są mu rozmaite ograniczenia, a dostęp
odbywa się przez Konquerora, również otwieranego automatycznie. Nie ma
możliwości zmiany ustawień serwera proxy.
Grupy są dobrze rozdzielone: opac - 192.168.0.1-192.168.0.10, oin -
192.168.0.11-192.168.0.15. Oto fragment konfiguracji Squidguarda, opartej
na przykładach ze strony SG:
logdir /var/log/squidGuard
dbhome /var/lib/squidGuard/db
#
# Konfiguracja list dostepu (najpierw "fabryczne", na koncu wlasne)
#
[tutaj znajduje się cała litania list "fabrycznych" - wyciąłem ją w tym
poście]
dest good {
domainlist custom/good/domains
urllist custom/good/urls
log custom-good.log
}
dest bad {
urllist custom/bad/urls
log custom-bad.log
}
dest biblioteka {
urllist custom/biblioteka/urls
log custom-biblioteka.log
}
#
# Konfiguracja grup uzytkownikow (wedlug lokalizacji terminali)
#
src opac-korytarz {
ip 192.168.0.1-192.168.0.10
}
src oin {
ip 192.168.0.11-192.168.0.15
}
acl {
opac-korytarz {
pass biblioteka none
redirect 302:http://localhost/access-denied.html
}
oin {
pass
good !bad !adv !aggressive !automobile !chat !dating !downloads !drugs !dynamic !forum !gamble !hacking !isp !jobsearch !movies !music !news !porn !recreation !redirector !spyware !shopping !tracker !violence !warez !webmail !webradio !webtv
all
redirect 302:http://localhost/access-denied.html
}
default {
pass biblioteka none
redirect 302:http://localhost/access-denied.html
}
}
Czyli:
* komputery należące do grupy opac_korytarz powinny mieć dostęp do URL-i
zdefiniowanych w pliku 'biblioteka' i żadnych innych (none)
* komputery z grupy oin powinny mieć dostęp do URL-i zapisanych w
pliku 'good', nie mieć dostępu do URL-i z list 'bad' itd. aż do 'webtv',
poza tym do wszystkich pozostałych
* komputery nie należące do żadnej z dwóch grup powinny mieć dostęp do URL-i
zdefiniowanych w pliku 'biblioteka' i żadnych innych (none) - czyli tak jak
opac_korytarz
Niestety, nie działa to tak, jak chcę - opac_korytarz ma dostęp do
wszystkich stron. Wygląda to tak, jakby dla opac_korytarz działała polityka
default, ponieważ strony zdefiniowane na czarnych listach, m.in. 'bad', są
blokowane.
Na jednej ze stron poświęconych Squidguardowi znalazłem następującą
informację:
"Why does Squidguard not block clients designated with src { ip x.x.x.x }?
If you try to designate which clients get blocked by using a source group
with the clients designated by ip address, you must have a line in your
squid.conf file to cause squid to supply the entire ip address for each
client. For instance, if you have:
src kids {
ip 192.168.1.10
ip 192.168.1.13
}
then you must put the following line into your squid.conf file:
client_netmask 255.255.255.255
Otherwise, squid will only supply the upper 16 bits of the client ip
addresses and no clients will match the result."
(żródło: http://www.maynidea.com/squidguard/faq-plus.html#nosrcip)
Dopisałem zatem rzeczoną linię do konfiguracji Squida, która wygląda teraz
tak:
http_port 3128
visible_hostname OPAC
client_netmask 255.255.255.255
acl terminale src 192.168.0.0/24
acl opac-server src 156.17.xx.yy/32
acl all src 0.0.0.0/0
acl awf dstdomain domena.pl
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 443 # https
acl Safe_ports port 1025-65535 # unregistered ports
acl CONNECT method CONNECT
http_access allow terminale
http_access allow opac-server
http_access deny all
url_rewrite_program /usr/sbin/squidGuard -c /etc/squidguard.conf
url_rewrite_children 8
redirector_bypass on
#cache_dir ufs /var/cache/squid/ 100 16 256
cache deny all
cache_dir null /tmp
always_direct allow all
Serwery restartowane, w logach brak błędów (przypominam: SG działa i
przekierowuje użytkownika na informację o blokadzie). Wersje
oprogramowania: Squid 2.6STABLE6, Squidguard 1.2.1.
Czy znajdzie się ktoś, kto ma doświadczenie w bojach z tym tandemem i może
mi coś poradzić?
--
Tomasz Lewicki
http://stalker.republika.pl
Tomasz Lewicki
http://stalker.republika.pl