Squid & Qlproxy

Z wiki linux-user
Skocz do: nawigacji, wyszukiwania
 
Linia 1: Linia 1:
 
[[Category:Serwer]]
 
[[Category:Serwer]]
 
== Serwer proxy ==
 
== Serwer proxy ==
'''Serwer proxy''' służy do filtrowania ruchu w sieci, w dzisiejszych czasach odgrywa już bardzo małą rolę albo w ogóle jej nie odgrywa jeśli chodzi o chching stron (gdyż wiele ze stron www tworzona jest dynamicznie).
+
'''Serwer proxy''' służy do filtrowania ruchu w sieci, w dzisiejszych czasach odgrywa już bardzo małą rolę albo w ogóle jej nie odgrywa jeśli chodzi o caching stron (gdyż wiele ze stron www tworzona jest dynamicznie).
 
W tym howto chciałbym zademonstrować w jaki sposób możemy zainstalować oraz skonfigurować oprogramowanie '''squid''' oraz '''qlproxy''' do działania w roli serwera '''proxy'''.
 
W tym howto chciałbym zademonstrować w jaki sposób możemy zainstalować oraz skonfigurować oprogramowanie '''squid''' oraz '''qlproxy''' do działania w roli serwera '''proxy'''.
 
Zalety serwera proxy:
 
Zalety serwera proxy:
Linia 10: Linia 10:
 
*blokowanie plików po nazwie
 
*blokowanie plików po nazwie
 
*i inne
 
*i inne
Konfiguracja serwera została przeprowadzona na systemie CentOS 5.5 oraz 6.0 i nie powinna wiele odbiegać od instalacji tego typu oprogramowania na innych dystrybucjach takich jak np [[debian]].
+
Konfiguracja serwera została przeprowadzona na systemie CentOS 6.0 i nie powinna wiele odbiegać od instalacji tego typu oprogramowania na innych dystrybucjach takich jak np [[debian]].
 
Oprogramowanie instalowane było na serwerze działającym jako router z następującą konfiguracją sieci
 
Oprogramowanie instalowane było na serwerze działającym jako router z następującą konfiguracją sieci
  
Linia 29: Linia 29:
 
Aby zainstalować oprogramowanie '''Squid''' należy wydać polecenie jako root
 
Aby zainstalować oprogramowanie '''Squid''' należy wydać polecenie jako root
 
  yum install squid
 
  yum install squid
w moim przypadku (system CentOS 5.5) była to wersja ''squid i386 2.6.STABLE21-6.el5''
+
w moim przypadku (system CentOS 6.0) była to wersja ''squid i386 3.1.STABLE21-6.el6''
W kolejnym kroku ustawiamy squida tak aby uruchamiał się wraz ze startem systemu
+
W kolejnym kroku ustawiamy '''squida''' tak aby uruchamiał się wraz ze startem systemu
 
  chkconfig squid on
 
  chkconfig squid on
 +
 +
=== Konfiguracja oprogramowania squid ===
 +
Pliki konfiguracyjne squid'a znajdują się w ścieżce ''/etc/squid/'' a głównym plikiem konfiguracyjnym jest '''squid.conf'''. Plik squid.conf zawiera bardzo dużo komentarzy co utrudnia edycję dlatego też polecam usunąć wszelkiego rodzaju komentarze i doprowadzić plik squid.conf do takiej postaci
 +
 +
acl all src 0.0.0.0/0.0.0.0
 +
acl manager proto cache_object
 +
acl localhost src 127.0.0.1/255.255.255.255
 +
acl to_localhost dst 127.0.0.0/8
 +
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 localhost
 +
http_access deny all
 +
icp_access allow all
 +
http_port 3128
 +
hierarchy_stoplist cgi-bin ?
 +
access_log /var/log/squid/access.log squid
 +
acl QUERY urlpath_regex cgi-bin \?
 +
cache deny QUERY
 +
refresh_pattern ^ftp:          1440    20%    10080
 +
refresh_pattern ^gopher:        1440    0%      1440
 +
refresh_pattern .              0      20%    4320
 +
acl apache rep_header Server ^Apache
 +
broken_vary_encoding allow apache
 +
coredump_dir /var/spool/squid
 +
Zmieniamy następujące opcje tak aby dostosować do swoich potrzeb
 +
acl all src 192.168.0.0/24
 +
oraz aby nasz serwer pracował w postaci serwera proxy transparentnego
 +
http_port 3128 transparent
 +
i restartujemy squida
 +
service squid start
 +
 +
=== Instalacja qlproxy ===
 +
Ściągamy paczkę dla swojego systemu ze strony
 +
ja używam programu curl do ściągnięcia paczki http://www.quintolabs.com/qlicap_download.php
 +
  curl http://www.quintolabs.com/qlproxy/binaries/2.0.1/qlproxy-2.0.0-1cbef.i386.rpm>qlproxy-2.0.0-bb01d.i386.rpm
 +
i instalujemy oprogramowanie za pomocą polecenia
 +
yum localinstall qlproxy-2.0.0-bb01d.i386.rpm --nogpgcheck
 +
i wydajemy polecenie aby qlproxy uruchamiało się przy starcie systemu
 +
chkconfig qlproxy on
 +
=== Integracja squida z qlproxy ===
 +
Teraz musimy umożliwić współpracę squida z qlproxy, zaczniemy od dodania odpowiednich opcji do pliku ''/etc/squid/squid.conf''
 +
icap_enable on
 +
icap_preview_enable on
 +
icap_preview_size 4096
 +
icap_persistent_connections on
 +
icap_send_client_ip on
 +
icap_send_client_username on
 +
icap_service qlproxy1 reqmod_precache bypass=0 icap://127.0.0.1:1344/reqmod
 +
icap_service qlproxy2 respmod_precache bypass=0 icap://127.0.0.1:1344/respmod
 +
adaptation_access qlproxy1 allow all
 +
adaptation_access qlproxy2 allow all
 +
i restartujemy usługi
 +
service qlproxy start
 +
oraz
 +
service squid restart
 +
Główne pliki konfiguracyjne '''qlproxy''' znajdują się w ścieżce ''/etc/opt/quintolabs/qlproxy/policies''.
 +
Możesz użyć pliku ''/etc/opt/quintolabs/qlproxy/policies/strict/rules/block_ads.conf'' do blokowania reklam wyświetlających się na stronach www, w tym celu edytujesz plik block_ads.conf i usuwasz komentarze tak jak poniżej
 +
# less /etc/opt/quintolabs/qlproxy/policies/strict/rules/block_ads.conf
 +
 +
#################################################################################
 +
# block_ads.conf
 +
#
 +
# Contains specific ad blocking rules for the default policy. To disable
 +
# ad block in this policy completely, comment out all lines in this file
 +
#
 +
# Available subscription names are file names present in $VARDIR/spool/adblock
 +
#
 +
################################################################################
 +
use_subscription = easylist.txt
 +
use_subscription = easylistgermany.txt
 +
use_subscription = fanboy-russian.txt
 +
use_subscription = easylist_custom.txt
 +
use_subscription = easyprivacy.txt
 +
 +
Do pliku ''block_site_by_name.conf'' możemy dodać regułe
 +
regexp = http:// \ d + \. \ D + \. \ D + \. \ D + / *.
 +
aby blokować wyświatlanie stron po adresach IP.
 +
Po wprowadzonych zmianach należy zrestartować '''qlproxy'''
 +
/etc/init.d/qlproxy restart
 +
 +
=== Instalacja graficznego GUI programu qlproxy ===
 +
Możemy zainstalować sobie oprogramowanie, które pozwoli nam na przeglądanie logów i konfigurację qlproxy za pośrednictwem przeglądarki internetowej. Do tego celu potrzebujemy działający serwer www, jak uruchomić serwer stron www opisane jest [[Apache|tutaj]].
 +
Jeżeli mamy już działający serwer www, możemy przystąpić do instalacji oraz konfiguracji dodatkowych modułów dla serwera apache oraz pythona aby to uczynić wydajemy kolejne polecenia jako [[root]] w terminalu
 +
# yum install mod_wsgi python-setuptools
 +
# easy_install virtualenv
 +
# cd /var/opt/quintolabs/qlproxy/www
 +
# virtualenv --no-site-packages qlproxy_django
 +
# ./qlproxy_django/bin/easy_install django==1.3.1
 +
A następnie do pliku ''/etc/httpd/conf/httpd.conf'' dodajemy poniższy wpis
 +
<VirtualHost *:80>
 +
    ServerName proxy.lan
 +
    ServerAdmin webmaster@proxy.lan
 +
    LogLevel info
 +
    ErrorLog /var/log/httpd/proxy.lan-error.log
 +
    CustomLog /var/log/httpd/proxy.lan-access.log combined
 +
    # aliases to static files (must come before the mod_wsgi settings)
 +
    Alias /static/ /var/opt/quintolabs/qlproxy/www/qlproxy/static/
 +
    Alias /redirect/ /var/opt/quintolabs/qlproxy/www/qlproxy/redirect/
 +
    # mod_wsgi settings
 +
    WSGIDaemonProcess proxy.lan display-name=%{GROUP}
 +
    WSGIProcessGroup proxy.lan       
 +
    WSGIScriptAlias / /var/opt/quintolabs/qlproxy/www/qlproxy/qlproxy.wsgi
 +
    <Directory /var/opt/quintolabs/qlproxy/www/qlproxy>
 +
        Order deny,allow
 +
        Allow from all
 +
    </Directory>
 +
</VirtualHost>
 +
oraz do pliku ''/etc/httpd/conf.d/wsgi.conf'' dodajemy
 +
WSGISocketPrefix /var/run/wsgi
 +
I po restarcie serwera Apache
 +
/etc/init.d/httpd restart
 +
powinniśmy móc wejść na stronę http://ip_serwera_apache/qlproxy
  
 
<br /><google1 style="4"></google1>
 
<br /><google1 style="4"></google1>

Aktualna wersja na dzień 11:05, 14 sie 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