Proxy

Z wiki linux-user
Skocz do: nawigacji, wyszukiwania
 
Linia 16: Linia 16:
 
*/var/log/squid/squid.out
 
*/var/log/squid/squid.out
 
*/var/log/squid/store.log
 
*/var/log/squid/store.log
 +
Aby uruchomić serwer wydajemy polecenie
 +
service squid start
 +
restartowanie serwera
 +
service squid restart
 +
lub przeładowanie konfiguracji
 +
service squid reload
 +
oraz zatrzymywanie serwera squid
 +
service squid stop
 +
aby skonfigurować automatyczne włączanie się squida po uruchomieniu serwera  wydajemy polecenie
 +
chkconfig squid on
  
 
=== Podstawowe opcje ===
 
=== Podstawowe opcje ===
Linia 34: Linia 44:
 
  acl [nazwa_ACL] [typ] [parametry]
 
  acl [nazwa_ACL] [typ] [parametry]
 
niektóre z ciekawszych typów to
 
niektóre z ciekawszych typów to
 +
 
** '''arp''' adres ''MAC'' klienta
 
** '''arp''' adres ''MAC'' klienta
 
** '''browser''' przeglądark, która wysłała zapytanie
 
** '''browser''' przeglądark, która wysłała zapytanie
Linia 58: Linia 69:
 
  http_port 80 vhost
 
  http_port 80 vhost
  
 +
=== Inne opcje ===
 +
aby uzyskać więcej informacji na temat działania serwera możemy dodać opcję
 +
debug_options ALL,1 33,2
 +
lub jeszcze więcej
 +
debug_options ALL,1 33,2 28,9
 +
informacje będą zachowywane w pliku ''/var/log/squid/cache.log''
 +
Aby uruchomić serwer squid w trybie pełnego debugowania używamy opcji
 +
squid -NX
 +
 +
=== Przykłady ===
 +
Poniżej przedstawiam kilka przykładowych opcji, które można wkleić bezpośrednio do swojej konfiguracji squida (plik squid.conf)
 +
 +
Blokowanie wybranej witryny
 +
acl blokowana1 url_regex wp\.pl
 +
http_access deny blokowana1
 +
 +
 +
Blokowanie wybranych domen znajdujących się w pliku tekstowym
 +
acl zakazane url_regex "/etc/squid/lista_domen_zakazanych.txt"
 +
http_access deny zakazane
 +
 +
 +
Zablokowanie wszystkich stron www oprócz wybranych domen dla danych adresów IP
 +
acl komputer src 192.168.0.12
 +
acl dostepne_strony dstdomain .onet.pl .google.pl
 +
http_access allow dostepne_strony
 +
http_access deny komputer
 +
 +
 +
Autoryzacja użytkowników
 +
auth_param basic program /usr/lib64/squid/pam_auth
 +
auth_param basic children 5
 +
auth_param basic realm Logowanie
 +
auth_param basic credentialsttl 1 hours
 +
oraz wymuszamy autoryzację przy pomocy acl:
 +
acl password proxy_auth REQUIRED
 +
http_access allow password
 +
 +
 +
Blokowanie stron youtube wraz z filmami podłączonymi do innych stron
 +
acl youtube_domains dstdomain .youtube.com .googlevideo.com .ytimg.com
 +
http_access deny youtube_domains
 +
 +
 +
Blokowanie innych formatów np takich jak flv, mms, swf i inne
 +
# MediaPlayer MMS Protocol
 +
acl media rep_mime_type mms
 +
acl mediapr url_regex dvrplayer mediastream ^mms://
 +
## Active Stream Format (Windows Media Player)
 +
acl media rep_mime_type x-ms-asf
 +
acl mediapr urlpath_regex \.(afx|asf)(\?.*)?$
 +
## Flash Video Format
 +
acl media rep_mime_type video/flv video/x-flv
 +
acl mediapr urlpath_regex \.flv(\?.*)?$
 +
## Flash General Media Scripts (Animation)
 +
acl media rep_mime_type application/x-shockwave-flash
 +
acl mediapr urlpath_regex \.swf(\?.*)?$
 +
## Others currently unknown
 +
acl media rep_mime_type ms-hdr
 +
acl media rep_mime_type x-fcs
 +
http_access deny mediapr
 +
http_reply_access deny media
 +
 +
 +
Pliki użytkowników i haseł <br />
 +
tworzymy plik z hasłami i nazwami użytkowników
 +
htpasswd -c /etc/squid/passwd user1
 +
nadajemy mu odpowiednie uprawnienia
 +
chmod o+r /etc/squid/passwd
 +
dodajemy obsługę uwierzytelniania poprzez plik haseł:
 +
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/passwd
 +
auth_param basic children 5
 +
auth_param basic realm Squid proxy-caching web server
 +
auth_param basic credentialsttl 2 hours
 +
auth_param basic casesensitive off
 +
ustawiamy odpowiednie acl i listy dostępu:
 +
acl ncsa_users proxy_auth REQUIRED
 +
http_access allow ncsa_users
 +
opis wykorzystanych przełączników:
 +
* '''auth_param basic program''' określa położenie pliku z hasłami oraz programu pomocniczego
 +
* '''auth_param basic children''' ilość procesów uwierzytelniania
 +
* '''auth_param basic realm''' część tekstu jaki zobaczy użytkownik podczas wprowadzania nazwy użytkownika i hasła
 +
* '''auth_param basic credentialsttl''' jak długo będzie utrzymywana autoryzacja
 +
* '''auth_param basic casesensitive''' określa czy w nazwie użytkownika mają być rozpoznawana duże i małe litery
 +
 +
=== Uruchamianie squida w środowisku chroot ===
 +
Na początku musimy stworzyć i przekopiować pliki squida
 +
mkdir -p /usr/local/squid3/var/cache/squid3
 +
chown proxy:nogroup /usr/local/squid3/var/cache/squid3
 +
mkdir -p /usr/local/squid3/var/log/squid3
 +
mkdir -p /usr/local/squid3/var/run/nscd
 +
chown proxy:nogroup /usr/local/squid3/var/run
 +
mkdir -p /usr/local/squid3/etc
 +
mkdir -p /usr/local/squid3/lib
 +
mkdir -p /usr/local/squid3/var/spool/squid3
 +
chown proxy:nogroup /usr/local/squid3/var/spool/squid3
 +
mkdir -p /usr/local/squid3/usr/share/squid3
 +
cp /usr/share/squid3/mime.conf /usr/local/squid3/usr/share/squid3/
 +
cp -r /usr/share/squid3/icons /usr/local/squid3/usr/share/squid3/
 +
mkdir -p /usr/local/squid3/etc
 +
cp /etc/resolv.conf /usr/local/squid3/etc/
 +
cp /etc/nsswitch.conf /usr/local/squid3/etc/
 +
mkdir -p /usr/local/squid3/lib
 +
cp /lib/libnss_dns* /usr/local/squid3/lib/
 +
mkdir -p /usr/local/squid3/usr/lib/squid3
 +
cp /usr/lib/squid3/* /usr/local/squid3/usr/lib/squid3/
 +
 +
oraz w pliku ''squid.conf'' dodać
 +
chroot /usr/local/squid3
 +
 +
=== Strony błędów ===
 +
Strony błędów oprogramowania squid przechowywane są w plikach podzielonych na różne wątki w katalogu ''/etc/squid/errors/''. Strony są niczym innym jak zwykłym HTML'em, które możemy dowolnie dostosować do własnych potrzeb.
 +
Możemy również zdefiniować własne strony błędów. Aby stworzyć własną stronę błedu należy
 +
* utworzyć i zdefiniować stronę błędu w katalogu ''/etc/squid/errors/''
 +
* dodać regułe do pliku ''squid.conf'' informującą w jakim zdarzeniu ma wyświetlić się strona np
 +
acl zablokowane_domeny url_regex "/etc/squid/zablokowane_domeny.txt"
 +
deny_info ERR_ZABLOKOWANE_DOMENY zablokowane_domeny
 +
http_access deny zablokowane_domeny
 +
 +
=== Monitoring ===
 +
Mamy możliwość również graficznego przeglądania logów squida za pomocą przeglądarki internetowej. Do tego celu będziemy potrzebowali jednak uruchomiony serwer http np [[apache]]. Programem, który służy do generowania raportów na podstawie plików z logami squida jest '''Calamaris'''. Jedyne co musimy zrobić to w terminalu wydać polecenie
 +
yum install calamaris
 +
a następnie
 +
cat /var/log/squid/access.log | calamaris -a -F 'html' > /www/htdocs/calamaris.html
 +
i możemy cieszyć się graficznym przedstawieniem logów<br />
 +
[[Plik:calamaris.png| 600 px]]
 +
=== Squid jako transparent proxy ===
 +
ustawiamy squid tak, aby działa jak przezroczyste proxy
 +
http_port 3128 transparent
 +
przy pomocy [[Firewall|firewalla]] ustawiamy przekierowanie całego ruchu z portu 80 na port squid
 +
iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
 +
'''UWAGA''' nie można posługiwać się uwierzytelnianiem w trybie przeźroczystego proxy
 +
 +
=== Zobacz również ===
 +
Inne strony na temat squida i proxy
 +
* [[Squid & Qlproxy|linux-user.eu/wiki/index.php/Squid_%26_Qlproxy]]
 +
* [http://www.squid-cache.org/ www.squid-cache.org]
 +
* [http://wiki.squid-cache.org/FrontPage wiki.squid-cache.org/FrontPage]
  
 
<br /><google1 style="4"></google1>
 
<br /><google1 style="4"></google1>

Aktualna wersja na dzień 12:47, 21 maj 2012

Osobiste
Przestrzenie nazw

Warianty
Działania
Nawigacja
Narzędzia


Sponsor serwisu

Firma informatyczna ITProjek Bydgoszcz usługi informacztyczne, serwery, linux, windows, strony www, hosting, sieci komputerowe, system archiwizacji danych