Sei sulla pagina 1di 6

DEBIAN Squeeze 6 CON SQUID 3.1.

6
INTRODUZUIONE Usando un server Debian Squeeze 6.0.3 con Squid 3.1.6 vediamo passo passo come installare su un server con IP fisso, con la creazione di 3 gruppi (Alto, Medio, Base) per accedere ad internet e bloccare Facebook oppure Twitter INSTALLO DEBIAN 6 (quando richiesto nome utente: proxy password: proxy-pwd su-password: su-pwd pc: server-squid) Alla fine seleziono solo [x] Utilit di sistema standard e poi premo [Continua] SCHEDA DI RETE CON IP FISSO Dopo aver installato il server con la sola opzione [x] Utilit di sistema standard, passiamo alla configurazione della rete con ip fisso. Debian GNU/Linux 6.0 server-squid tty1 server-squid login: proxy Password: proxy-pwd proxy@server-squid:~$ su Password: su-pwd root@server-squid:/home/proxy# ifconfig eth0 eth0: error fetching interface information: Device not found root@server-squid:/home/proxy# ifconfig eth1 eth1 Link encap:Ethernet Hwaddr 00-11-22-33-44-55 inet addr:192.168.1.42 Bcast:192.168.1.255 Mask:255.255.255.0 root@server-squid:/home/proxy# nano /etc/network/interfaces # The loopback network interface auto lo iface lo inet loopback # The primary network interface # allow-hotplug eth1 auto eth1 # iface eth1 inet dhcp iface eth1 inet static address 192.168.1.31 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 gateway 192.168.1.1 Per uscire dalleditor nano premo CTRL + X poi S (salvare Si) poi invio. root@server-squid:/home/proxy# /etc/init.d/networking restart Reconfiguring network interfaces done. root@server-squid:/home/proxy# ifconfig eth1 eth1 Link encap:Ethernet Hwaddr 00-11-22-33-44-55 inet addr:192.168.1.31 Bcast:192.168.1.255 Mask:255.255.255.0 root@server-squid:/home/proxy# ping c 4 www.google.it MODIFICO IL NONE DELL HOSTNAME PER IL SERVER DEBIAN root@server-squid:/home/proxy# nano /etc/hostname da server-squid a proxy Per uscire dalleditor nano premo CTRL + X poi S (salvare Si) poi invio. Poi riavvio il server root@server-squid:/home/proxy# reboot MODIFICO IL NONE DELL HOST PER IL SERVER DEBIAN DOMINIO O GRUPPO DI LAVORO root@proxy:/home/proxy# nano /etc/hosts 127.0.0.1 localhost 192.168.1.31 proxy.ditta.it proxy Per uscire dalleditor nano premo CTRL + X poi S (salvare Si) poi invio. CONTROLLO I NAMESERVER/DNS PER IL SERVER DEBIAN # nano /etc/resolv.conf search homenet.telecomitalia.it nameserver 212.216.112.112 // telecomitalia nameserver 212.216.172.62 // telecomitalia nameserver 208.67.222.222 // opendns nameserver 208.67.220.220 // opendns Per uscire dalleditor nano premo CTRL + X poi S (salvare Si) poi invio. // RIAVVIO LA RETE

// SE NON TROVA LA RETE SU eth0

// HA TROVATO LA RETE

SU eth1

// SCRIVO NEL FILE PER IP FISSO

// HA SETTATO LA RETE

SU eth1

// PROVO A PINGARE GOOGLE.IT

AGGIORNO IL SERVER DEBIAN root@proxy:/home/proxy# apt-get update root@proxy:/home/proxy# apt-get upgrade INSTALLO SQUID 3 PER DEBIAN root@proxy:/home/proxy# apt-get install squid3 alla fine | Creating Swap Directory VERIFICO LA VERSIONE DEL KERNEL PER IL SERVER DEBIAN root@proxy:/home/proxy# uname r // INSTALLA LA VER 3.1.6-1.2+squeeze1

// 2.6.32-5-686

VERIFICO LA VERSIONE DI SQUID INSTALLATA PER IL SERVER DEBIAN root@proxy:/home/proxy# squid3 -v // Squid Cache: Version 3.1.6-1.2+squeeze1 IMPOSTO IL PROPRIETARIO root@proxy:/home/proxy# root@proxy:/home/proxy# root@proxy:/home/proxy# root@proxy:/home/proxy# PROXY IN /VAR/LOG/SQUID3 touch /var/log/squid3/store.log chown proxy:proxy /var/log/squid3/access.log chown proxy:proxy /var/log/squid3/cache.log chown proxy:proxy /var/log/squid3/store.log

CONTROLLO SU QUALE CARTELLE SQUID3 RISULTA PRESENTE SU DEBIAN /etc/squid3 errorpages.css squid.conf msntauth.conf + + + + siti-permessi.txt siti-locali.txt siti-negati.txt siti-porno.txt // // // // Questi 4 files sono stati trasformati in text linux con il software dos2unix http://www.bastet.com/uddu.zip

/usr/sbin /var/log/squid3

squid3 access.log cache.log store.log squid.pid

// FILE BINARIO // GI PRESENTE // GI PRESENTE // NON PRESENTE VERRA CREATO ALLAVIO DI SQUID // CONTIENE PID DEL PROCESSO PRINCIPALE UNA VOLTA AVVIATO IL PROXY // CI SONO 3 FILES // CI SONO TUTTI I LINGUAGGI A NOI INTERESSA it // QUANDO SI AVVIA METTERA LE 16 CARTELLE DI CACHE [ 00 0F ]

/var/run /usr/share/squid3

/usr/share/squid-langpack/it /var/spool/squid3 -- vuoto --

COME GESTIRE IL SERVIZIO DI SQUID3 # /etc/init.d/squid3 restart # /etc/init.d/squid3 stop # /etc/init.d/squid3 start CREO I 3 GRUPPI LOCALI PER SQUID3 # groupadd Gruppo-Alto # groupadd Gruppo-Medio # groupadd Gruppo-Base // CREO IL GRUPPO ALTO // CREO IL GRUPPO MEDIO // CREO IL GRUPPO BASE metto gli apici se ci sono spazi vuoti metto gli apici se ci sono spazi vuoti metto gli apici se ci sono spazi vuoti // RIAVVIA IL SERVIZIO DI SQUID ~ 35 SECONDI // FERMA IL SERVIZIO DI SQUID // AVVIA IL SERVIZIO DI SQUID ~ 35 SECONDI ~ 1 SECONDO

Per visualizzare se i 3 gruppi sono stati creati, con il seguente comando lo vedo in coda al file sul video. # more /etc/group N.B. Se desidero modificare o cancellare un gruppo digito i seguenti comandi: # groupmod n nuovo-gruppo vecchio-gruppo # groupdel nuovo-gruppo CREO I VARI UTENTI CHE SONO ASSOCIATI AI VARI GRUPPI CHE NON POSSONO EFFETTUARE LA LOGIN SUL SERVER DEBIAN # useradd s /usr/sbin/nologin ute-alto # useradd s /usr/sbin/nologin ute-medio # useradd s /usr/sbin/nologin ute-base G Gruppo-Alto c Gruppo-Alto G Gruppo-Medio c Gruppo-Medio G Gruppo-Base c Gruppo-Base

Imposto le password agli utenti appena creati # passwd ute-alto Immettere nuova password UNIX: pwd1 Reimmettere nuova password UNIX: pwd1 Passwd: password aggiornata correttamente

# passwd ute-medio Immettere nuova password UNIX: pwd2 Reimmettere nuova password UNIX: pwd2 Passwd: password aggiornata correttamente # passwd ute-base Immettere nuova password UNIX: pwd3 Reimmettere nuova password UNIX: pwd3 Passwd: password aggiornata correttamente Come per i gruppi verifico se gli utenti sono stati creati correttamente sul file delle password saranno gli ultimi 3 utenti. # more /etc/passwd ute-alto:x:1001:1004:Gruppo-Alto:/home/ute-alto:/usr/sbin/nologin ute-medio:x:1002:1005:Gruppo-Medio:/home/ute-medio:/usr/sbin/nologin ute-base:x:1003:1006:Gruppo-Base:/home/ute-base:/usr/sbin/nologin Mentre il file shadow contenente gli utenti con le password da usare poi per squid3 pu essere visualizzato cos # tail /etc/shadow PER TROVARE IL FILE shadow PARTENDO DAL PERCORSO / SCRIVO # find / -name shadow DOPO CHE HO CREATO TUTTI I MIEI UTENTI CON LA PROCEDURA SOPRA DESCRITTA COPIA IL FILE shadow PER SQUID # # # # # mkdir /etc/squid3/user cp /etc/shadow /etc/squid3/user/passwd chown proxy:proxy /etc/squid3/user/passwd cd /etc/squid3/user ls la 4 nov 15.44 passwd

-rw-r--r-- 1 proxy proxy 1024

INIZIO A CONFIGURARE IL FILE squid.conf RINOMINO IL FILE IN squid.conf.orig # mv /etc/squid3/squid.conf /etc/squid3/squid.conf.orig # nano squid.conf
# ----------------------------------------------# BENVENUTI IN SQUID CACHE 3.1.6 # ----------------------------------------------# ----------------------------------------------# - 01 - PORTA DI ASCOLTO DEL PROXY # ----------------------------------------------http_port 3128 # ----------------------------------------------# - 02 - NOME SERVER SQUID SULLA RETE # ----------------------------------------------visible_hostname proxy # # # # ----------------------------------------------- 03 - QUANTITA MEMORIA USATA DAL SERVER SQUID 1/4 DELLA RAM INSTALLATA -----------------------------------------------

cache_mem 256 MB # # # # ----------------------------------------------- 04 - DIMENSIONE DEGLI OGGETTI PRESENTI NELLA CACHE -----------------------------------------------

maximum_object_size 10240 KB # # # # # ----------------------------------------------- 05 - DEFINIZIONE DELLA STRUTTURA DELLA DIR DI CACHE USATA CON UN SISTEMA DISK STORAGE "ufs" -----------------------------------------------

cache_dir ufs /var/spool/squid3 10240 16 256 # # # # # ----------------------------------------------- 06 - PATH NAME DEI FILES DI LOGS IMPOSTO logfile_rotare = 0 FATTO QUESTO SI ABILITA IN /var/log/squid3/store.log -----------------------------------------------

access_log /var/log/squid3/access.log squid cache_log /var/log/squid3/cache.log cache_store_log /var/log/squid3/store.log logfile_rotate 0

# # # #

----------------------------------------------- 07 - QUESTO TAG DEFINISCE IL PERCORSO DELLA TABELLA DEI "MIME" TYPE -----------------------------------------------

mime_table /usr/share/squid3/mime.conf # # # # ----------------------------------------------- 08 - AUTENTICAZIONE UTENTE COPIARE DAL FILE passwd IN /etc/shadow -----------------------------------------------

auth_param basic program /usr/lib/squid3/ncsa_auth /etc/squid3/user/passwd # # # # ----------------------------------------------- 09 - NUMERO DI SESSIONI DI AUTENTICAZIONI CHE POSSONO ESSERE ATTIVATE -----------------------------------------------

auth_param basic children 10 # # # # ----------------------------------------------- 10 - TESTO CON IL QUALE IL SERVER PROXY SI PRESENTA AL CLIENT -----------------------------------------------

auth_param basic realm Squid3-Debian # ----------------------------------------------# - 11 - DURATA MASSIMA DELLA AUTENTICAZIONE # ----------------------------------------------auth_param basic credentialsttl 2 hours auth_param basic casesensitive off # # # # ----------------------------------------------- 12 - DIRETTIVE CHE SPECIFICANO OGNI QUANDO UN PATTERN VA RIVERIFICATO ----------------------------------------------^ftp: 1440 ^gopher: 1440 -i (/cgi-bin/|\?) 0 . 0 20% 0% 0% 20% 10080 1440 0 4320

refresh_pattern refresh_pattern refresh_pattern refresh_pattern # # # #

----------------------------------------------- 13 - USARE I GRUPPI ESTERNI PER ACCESSO WEB IMPOSTARE LA CARTELLA CON ERRORI -----------------------------------------------

external_acl_type Linux_group %LOGIN /usr/lib/squid3/squid_unix_group error_directory /usr/share/squid-langpack/it # ----------------------------------------------# - 14 - DEFINIZIONE DELLE ACCESS-LIST # ----------------------------------------------acl acl acl acl acl acl acl acl acl acl acl acl tutto src all manager proto cache_object localhost src 127.0.0.1/32 to_localhost dst 127.0.0.0/8 0.0.0.0/32 SSL_ports port 443 563 # https nntps Safe_ports port 80 # http Safe_ports port 21 # ftp Safe_ports port 443 # https Safe_ports port 563 # tcp/nntps Safe_ports port 70 # gopher Safe_ports port 210 # wais Safe_ports port 1025-65535 # unregistered ports

acl CONNECT method CONNECT # # # # # # # ----------------------------------------------- 15 - ASSOCIO LE ACCESS-LIST AI GRUPPI LINUX - M = Luned T = Marted W = Mercoled - H = Gioved F = Venerd A = Sabato - S = Domenica ----------------------------------------------Utenti-Base external Linux_group Gruppo-Base Utenti-Medi external Linux_group Gruppo-Medio Utenti-Alto external Linux_group Gruppo-Alto work_time time MTWHFAS 08:00-18:30 password proxy_auth REQUIRED

acl acl acl acl acl # # # #

----------------------------------------------- 16 - ACCESS-LIST CHE DEFINISCONO L'ELENCO DEI SITI INTERNET CONSULTABILI O MENO -----------------------------------------------

acl Siti-porno dstdom_regex /etc/squid3/siti-porno.txt acl Siti-negati dstdom_regex /etc/squid3/siti-negati.txt acl Siti-permessi dstdom_regex /etc/squid3/siti-permessi.txt acl QUERY urlpath_regex cgi-bin \? # # # # ----------------------------------------------- 17 - ACCESS-LIST CHE DEFINISCONO L'ELENCO DEI SERVER WEB LOCALI CONSULTABILI -----------------------------------------------

acl local-servers dstdomain /etc/squid3/siti-locali.txt # # # # ----------------------------------------------- 18 - LE LISTE DELLE AUTORIZZAZIONI O DEI DIVIETI DI ACCESSO -----------------------------------------------

no_cache deny QUERY

# # # #

----------------------------------------------- 19 - HTTP_ACCESS E' IL COMANDO CHE CONSENTE LE AUTORIZZAZIONI DI ACCESSO VERSO -----------------------------------------------

http_access allow localhost # # # # ----------------------------------------------- 20 - AUTORIZZA ACCESSO AI SITI DELLA INTRANET PER TUTTI -----------------------------------------------

http_access allow local-servers # # # # # ----------------------------------------------- 21 - NEGA L'ACCESSO ALLE PORTE E ALLE CONNESSIONI NON CONTENUTE NELLE ACCESS-LIST SAFE_PORT E SSL_PORT -----------------------------------------------

http_access deny !Safe_ports http_access deny CONNECT !SSL_ports # # # # ----------------------------------------------- 22 - AUTORIZZA ACCESSO AGLI UTENTI APPARTENENTI ALLA ACCESS-LIST "Utenti-Alto" -----------------------------------------------

http_access allow password Utenti-Alto # # # # ----------------------------------------------- 23 - NEGA ACCESSO AI SITI WEB CONTENUTI NELLE ACCESS-LIST "Siti-porno" E "Siti-negati" -----------------------------------------------

http_access deny Siti-porno http_access deny Siti-negati # # # # ----------------------------------------------- 24 - AUTORIZZA ACCESSO AGLI UTENTI APPARTENENTI ALLA ACCESS-LIST "Utenti-Medi" -----------------------------------------------

http_access allow password Utenti-Medi # # # # ----------------------------------------------- 25 - NEGA ACCESSO AI SITI WEB NON CONTENUTI NELLE ACCESS-LIST "Siti-permessi" -----------------------------------------------

http_access deny !Siti-permessi # # # # ----------------------------------------------- 26 - AUTORIZZA ACCESSO AGLI UTENTI APPARTENENTI ALLA ACCESS-LIST "Utenti-Base" -----------------------------------------------

http_access allow password Utenti-Base # ----------------------------------------------# - 27 - NEGA ACCESSO A TUTTO IL RESTO # ----------------------------------------------http_access deny all # # # # ----------------------------------------------- 28 - CONSENTE ACCESSO DIRETTO ALLA RETE PER LA INTRANET dipvvf.it -----------------------------------------------

always_direct allow local-servers # # # # ----------------------------------------------- 29 - FORZA ACCESSO ALLA PARENT CACHE PER TUTTE LE RICHIESTE -----------------------------------------------

never_direct allow all

Per uscire dalleditor nano premo CTRL + X poi S (salvare Si) poi invio. AVENDO IMPOSTATO IL ROTATE SU squid.conf DEVO INIZIALIZZARE IL FILE IN /etc/logrotate.d/squid3 Il rotate abilitato permette di usare una funzione di squid per gestire la rotazione dei log senza usare il cron # cp /etc/logrotate.d/squid3 /etc/logrotate.d/squid3.orig # nano /etc/logrotate.d/squid3
/var/log/squid3/access.log{ daily rotate 180 copytruncate compress notifempty missingok } /var/log/squid3/cache.log{ daily rotate 30 copytruncate compress notifempty missingok }

/var/log/squid3/store.log{ daily rotate 30 copytruncate compress notifempty missingok postrotate test ! e /var/run/squid3.pid || /usr/sbin/squid3 k rotate endscript }

Per uscire dalleditor nano premo CTRL + X poi S (salvare Si) poi invio. CONTENUTO FILE SITI-PERMESSI - ESEMPIO # nano /etc/squid3/siti-permessi.txt *.ditta.it.* *.google.* Per uscire dalleditor nano premo CTRL + X poi S (salvare Si) poi invio. CONTENUTO FILE SITI-LOCALI - ESEMPIO

# nano /etc/squid3/siti-locali.txt *.ditta.it.* Per uscire dalleditor nano premo CTRL + X poi S (salvare Si) poi invio. CONTENUTO FILE SITI-NEGATI - ESEMPIO

# nano /etc/squid3/siti-negati.txt *.fileserve.* *.megaupload.* *.rapidshare.* *.facebook.* *.twitter.* *.meebo.* *.ebay.* *.youtube.* Per uscire dalleditor nano premo CTRL + X poi S (salvare Si) poi invio. CONTENUTO FILE SITI-PORNO - ESEMPIO

# nano /etc/squid3/siti-porno.txt *.xxx.* *.fuck.* *.anal.* *.sexy.* *.youporn.* Per uscire dalleditor nano premo CTRL + X poi S (salvare Si) poi invio. CAMBIO IL PRORPIETARIO DA ROOT A PROXY PER I FILE TXT IN /etc/squid3 # chown proxy:proxy /etc/squid3/*.txt

AVVIO SQUID PER LA PRIMA VOLTA SUL SERVER DEBIAN # /etc/init.d/squid3 restart // RIAVVIA IL SERVIZIO DI SQUID

IMPOSTO SUI BROWSER DI TUTTI I COMPUTER LE IMPOSTAZIONE DEL PROXY