Squid & Qlproxy
Z wiki linux-user
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 | + | '''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 | + | 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 | + | 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 | ||
Linia 70: | Linia 70: | ||
broken_vary_encoding allow apache | broken_vary_encoding allow apache | ||
coredump_dir /var/spool/squid | 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> |