Instalacija Proxy-ja i monitoring rešenja na Ubuntu - tutorial
1) Instalirati Squid3
- Konfiguraciona datoteka za SQUID3: /etc/squid3/squid.conf [za squid 2.7 se nalazi ovde: /etc/squid/squid.conf ]
- Ući u folder: /etc/squid3
- Pokrenuti neki tekst editor: sudo gedit squid.conf (mnogo volim ovaj gedit; ko ga nema: sudo apt-get install gedit)
2) Neophodne izmene parametara
- izmeniti "http_port 3128" u "http_port 4480"
//objašnjenje: promena default port-a na kome radi proxy u željenu vrednost
[za Squid 2.7: izmeniti "http_port 0.0.0.0:3128" u "http_port 0.0.0.0:4480" ]
- izmeniti "# cache_dir ufs /var/spool/squid3 100 16 256" u "cache_dir ufs /var/spool/squid3 5000 16 256"
//objašnjenje: povećavanje keša sa 100 MB na 5 GB
[napomena: pri promeni određenih parametara u konfiguracionoj datoteci treba ukloniti znak za comment "#" inače će biti učitane default vrednosti za taj parametar ]
- Ubaciti: acl moja_mreza src 192.168.0.0/255.255.255.0
//objašnjenje: Definicija mreže
- Definisati: http_access allow moja_mreza
//objašnjenje: Dozvoljen izlazak na internet samo ovim korisnicima
- Definisati: http_access deny all
//objašnjenje: ovu liniju nikako ne dirati i mora biti krajnja, jer za sve što ne poznaje radi po njoj denied
3) Restart Squid-a radi prihvatanja novih parametara
- sudo /etc/init.d/squid3 restart
- ili: sudo squid3 -k reconfigure (što je sasvim dovoljno umesto celokupnog restarta)
4) Instalirati SARG
[napomena: poželjno je da se sva ova procedura pod "root" nalogom ; može se sve odraditi i sa nalogom lokalnog korisnika, s tim da se definiše politika pristupa svim neophodnim folderima/datotekama]
- Konfiguraciona datoteka za SARG: /etc/sarg/sarg.conf
- Otvoriti ga i definisati parametar: access_log /var/log/squid3/access.log
[napomena: po defaultu je access_log /var/log/squid/access.log, a nama treba za rad verzije 3]
5) Definisanje rotiranja
- Veličina logova i njegovo rotiranje se mora izmeniti jer se, u protivnom, ne mogu praviti nedeljni i mesečni izveštaji sa SARG-om.
- Editovati datoteku: /etc/logrotate.d/squid3
- Datoteka treba biti sledećeg oblika:
#
# Logrotate fragment for squid3.
#
/var/log/squid3/access.log {
rotate 5
copytruncate
nocompress
missingok
monthly
notifempty
postrotate
/usr/sbin/squid3 -k rotate
endscript
}
6) SARG skripte
- Definisanje strukture direktorijuma:
sudo mkdir /var/www/html/sarg
//kreiranje Sarg direktorijuma unutar root-a Apache servera
sudo mkdir /var/www/html/sarg/daily
//kreiranje pod-direktorijuma
sudo mkdir /var/www/html/sarg/weekly
//kreiranje pod-direktorijuma
sudo mkdir /var/www/html/sarg/monthly
//kreiranje pod-direktorijuma
sudo chmod -R 775 /var/www/html/sarg
//postavljanje guid I uid prava nad celom strukturom direktorijuma SARG i pod-direktorijuma
sudo chown user_pod_kojim_je_podignut_Apache
//apache:apache ili www:www (proveriti)
- Treba definisati skripte koje će generisati dnevne, sedmične i mesečne izveštaje:
Dnevni izveštaj; sačuvati u folderu: /root/scripts/ kao sarg.daily
#!/bin/bash
#Get yesterday date
YESTERDAY=$(date --date "1 day ago" +%d/%m/%Y)
echo $YESTERDAY
/usr/bin/sarg -f /usr/local/sarg/sarg.conf -o /var/www/html/sarg/daily -d $YESTERDAY > /dev/null 2>&1
chmod -R 775 /var/www/html/sarg/daily
chown -R apache:apache /var/www/html/sarg/daily
echo SARG - REPORT kreiran uspesno.
exit 0
Nedeljni izvestaj; sacuvati u folderu /root/scripts/ kao sarg.weekly
#!/bin/bash
#Generate Access.log for correct weekly reports
cat /var/log/squid3/access.log.0 /var/log/squid3/access.log > /var/log/squid3/access.log.week
#Get yesterday date
YESTERDAY=$(date --date "1 days ago" +%d/%m/%Y)
#Get one week ago date
WEEKAGO=$(date --date "7 days ago" +%d/%m/%Y)
echo $WEEKAGO-$YESTERDAY
/usr/bin/sarg -f /usr/local/sarg/sarg.conf -l /var/log/squid3/access.log.week -o /var/www/html/sarg/weekly -d $WEEKAGO-$YESTERDAY > /dev/null 2>&1
chmod -R 775 /var/www/html/sarg/weekly
chown -R apache:apache /var/www/html/sarg/weekly
echo SARG - REPORT kreiran uspesno.
exit 0
Mesečni izveštaj; sačuvati u folderu: /root/scripts kao sarg.monthly
#!/bin/bash
#Get yesterday date
YESTERDAY=$(date --date "1 day ago" +%d/%m/%Y)
#Get 1 month ago date
MONTHAGO=$(date --date "1 month ago" +%d/%m/%Y)
echo $MONTHAGO-$YESTERDAY
/usr/bin/sarg -f /usr/local/sarg/sarg.conf -o /var/www/html/sarg/monthly -d $MONTHAGO-$YESTERDAY
# > /dev/null 2>&1
chmod -R 775 /var/www/html/sarg/monthly
chown -R apache:apache /var/www/html/sarg/monthly
echo SARG - REPORT kreiran uspesno.
/usr/sbin/squid3 -k rotate
echo Log fajlovi rotirani.
exit 0
* skripte sam postavio da budu executable
7) Konfigurisanje Crontab-a
- SARG report radi preko Crontab-a jednom dnevno (i to negde u sitne sate kad nema puno korisnika na proxy serveru).
- Konfiguraciona datoteka za Crontab: /etc/crontab
- Na samom kraju koda konfiguracione datoteke, paste-ovati sledeću skriptu:
# Generisanje raporta SARG
05 0 * * * root /root/scripts/sarg.daily
15 1 * * 1 root /root/scripts/sarg.weekly
0 2 1 * * root /root/scripts/sarg.monthly
8] Podešavanje Firefox-a da ide preko Squid Proxy-ja
[prerequest]
- Edit/Preferences/Advanced/Network/Settings...
- Birati "Manual proxy configuration" ; uneti (statički) IP računara, (kod mene 192.168.110.76, kao sto napisah) i port koji je definisan u Squid-u (4480, kao što napisah)
- kliknuti na OK
Ako pri ovim podešavanjima izađete na internet, znači da Squid dobro obavlja posao Za sada će se u Squid-ovom access logu puniti samo informacije sa tekućeg računara (na kome je Squid instaliran)
Da bi se pamtio log i za ostale računare, treba se i njima podesiti, u Web browseru, manual proxy sa IP-om računara na kojem je instaliran Squid i odgovarajućim port-om.
9) Utvrđivanje rezultata preko SARG-a
- Posetiti u Web browseru sledeću stranicu: file:///var/lib/sarg/index.html (ili http://192.168.110.76/sarg/daily ili http://192.168.110.76/sarg/weekly ili http://192.168.110.76/sarg/monthly )
- Izabrati odgovarajući izveštaj
10) Definisanje alias-a u Apache-u [opcionalno]
- Definisaćemo da se sa "http://localhost/squidreport/" otvara stranica sa Squid reportima
- Editovati datoteku: /etc/apache2/apache2.conf
- Na kraju dokumenta dodati sledeći kod:
Alias /squidreport /var/lib/sarg/
<Directory /var/lib/sarg>
Order allow,deny
Allow from all
</directory>
- Nakon toga, sa bilo kog računara u mreži možemo pristupiti izveštajima (nema ograničenja lokalne mašine) sa: 192.168.110.76/squidreport
=========================
CREDITS
=========================
--> cerveni, koji je predložio soluciju za rešenje problema, dao gomilu sugestija i revidirao skriptu koju sam pisao.
Drago mi je ako će ovo nekome pomoći
|