Monthly Archives: Novembre 2016

Abilitare GeoIP su awstats

Awstats (Advanced Web Statistics), come abbiamo già visto, è un ottimo strumento per analizzare le viste del nostro sito web e tante informazioni utili per poter migliorare il contenuto. In questa guida vediamo come implementare, attraverso il plugin GeoIP, una visione grafica delle statistiche, aggiungendo grafici a torta e un mappamondo dove visualizzare la provenienza del traffico http. 

Installiamo in primo luogo il pacchetto perl e geoip con il comando:

per CentOS/RHEL (aver abilitato i repository EPEL): Continue reading

Il vecchio rc.local su Systemd

Utilizzo Linux da molti anni, ora sono passato ad ArchLinux con systemd e mi manca il fatto di non avere il file /etc/rc.local. C’è un modo per utilizzarlo su Systemd?

La soluzione sarebbe creare uno script systemd che lanci all’avvio di sistema il file rc.local. Il file rc.local dovrebbe avere le direttive di “start” e “stop” e inserire nel costrutto i relativi comandi da lanciare. Vediamo come.

Creiamo il file /etc/rc.local con il comando:

# touch /etc/rc.local

inseriamo all’interno del file le righe: Continue reading

Installare SLIM su ArchLinux

SLiM, Simple LogIn Manager, è un semplice Gestore di accesso e permette di essere usato nei maggiori Desktop Environment come ad esempio KDE, XFCE, blackbox, wmaker ecc… Slim è semplicissimo da utilizzare e offre una vasta gamma di temi per ArchLinux e non solo. Vediamo come installarlo e configurarlo su ArchLinux.

Il primo passo da fare è installare il pacchetto con il comando:

# pacman -Sy slim

Se si vogliono installare i temi aggiuntivi, come ad esempio il logo di ArchLinux ecc, lanciare anche il comando:

# pacman -Sy archlinux-themes-slim slim-themes

Per avviare Slim in modo automatico lanciamo da terminale il comando:

# systemctl enable slim.service

Successivamente copiamo il file xinitrc nella nostra home directory:

# cp /etc/X11/xinit/xinitrc /home/<username>/.xinitrc

dove <username> è il vostro nome utente.

Editiamo il file appena copiato con il nostro editor preferito, commentando le righe:

#twm &
#xclock -geometry 50x50-1+1 &
#xterm -geometry 80x50+494+51 &
#xterm -geometry 80x20+494-0 &
#exec xterm -geometry 80x66+0+0 -name login

e aggiungendo alla fine del file:

Per XFCE4:

exec startxfce4

Per KDE:

exec startkde

Per wmaker:

exec wmaker

Per blackbox:

exec blackbox

Per MATE

exec mate-session

Per effettuare un login automatico modifichiamo con il nostro editor preferito il file di configurazione di Slim:

# vim /etc/slim.conf

e de commentiamo la riga:

# default_user simone

sostituendo “simone” con il nostro username. Inoltre de commentiamo la riga:

# auto_login no

Modificando la voce “no” con “yes“.

La lista dei temi installati in precedenza, si può ottenere lanciando il comando:

$ ls -l /usr/share/slim/themes/

Per avere un’anteprima del tema lanciare il comando:

$ slim -p /usr/share/slim/themes/<nome-tema>

dove <nome-tema> è il nome del tema reperito in precedenza sfogliando la directory /usr/share/slim/themes/. Un esempio potrebbe essere:

$ slim -p /usr/share/slim/themes/archlinux-darch-grey

e visualizzeremo il tema:

slim

Per impostare il tema, editare il file slim.conf con il proprio editor:

# vim /etc/slim.conf

e modificare la voce:

current_theme default

in

current_theme archlinux-darch-grey

ovviamente potete sostituire il nome del tema con quello che vi aggrada di più.

Per ulteriori dettagli a Slim ti consiglio di visualizzare l’home page del progetto o la WIKI ufficiale di Archlinux.

Save

Squid come Reverse Proxy

Chi lo avrebbe mai detto!!! Squid come reverse proxy? E bene si…

Squid, famoso e stabile Proxy, ha la grande funzionalità di essere utilizzato come un vero e proprio Reverse Proxy e acceleratore web grazie al caching. L’utilizzo come Reverse Proxy è molto utile se si deve gestire con un unico IP pubblico più siti web senza dover esporre i WebServer direttamente su Internet. Vediamo dunque come funziona e come configurarlo.

Innanzi tutto iniziamo a farci un idea visiva di come potrebbe essere utilizzato attraverso lo schema qui sotto:

reverseproxysquid

In questa guida faremo riferimento proprio allo schema qui sopra, utilizzando come esempio:

  • Squid Server 192.168.0.100 (Server Reverse Proxy)
  • sito1 192.168.0.101 (Web Server sito1)
  • sito2 192.168.0.102 (Web Server sito2)
  • sito3 192.168.0.103 (Web Server sito3)

Il funzionamento è molto semplice, le richieste che i client o utenti faranno per visualizzare i siti, verranno forwardate su Squid che ha sua volta sarà configurato per rigirare le richieste al WebServer in base alla risorsa che i client stanno chiedendo.

Per prima cosa salviamo il file di configurazione originale facendoci una copia di backup:

# cp /etc/squid/squid.conf /etc/squid/squid.conf_bk

A questo punto è possibile cancellare l’intero contenuto del file di configurazione squid.conf e iniziare ad inserire solo le righe di configurazione essenziali.

Ecco come dovrebbe essere il file di configurazione di Squid per rendere possibile lo schema che abbiamo visto sopra.

Definiamo la porta 80 e VirtualHost di default:

http_port 80 accel defaultsite=www.sito1.com vhost
acl Safe_ports port 80          # http
acl CONNECT method CONNECT
http_access deny !Safe_ports

Impostiamo le informazioni di contatto dell’amministratore di sistema in caso di errori:

cache_mgr admin@miosito.com

Impostazione di Caching:

cache_replacement_policy heap LFUDA
memory_replacement_policy heap GDSF
cache_mem 1500 MB
maximum_object_size_in_memory 2 MB
maximum_object_size 96 MB
cache_dir ufs /var/spool/squid 10000 32 256
cache deny all

Impostazione della lingua degli errori (Opzionale):

error_default_language it

Impostazioni delle connessioni:

forwarded_for on
acl max_con maxconn 50
http_access deny max_con all

ACL (Access Control List) dei siti web da abilitare:

# www.sito1.com
acl sito1 dstdomain sito1.com www.sito1.com
# www.sito2.com
acl sito2 dstdomain sito2.com www.sito2.com
# www.sito3.com
acl sito3 dstdomain sito3.com www.sito3.com

Abilitiamo i siti sopra indicati e neghiamo tutto le altre richieste:

http_access allow sito1
http_access allow sito2
http_access allow sito3

http_access deny all
always_direct allow all

Impostiamo i formati dei Log. Ricordo che il tipo di formato combined server per poter far leggere correttamente ad Awstats i log e generare le statistiche dei vari siti.

logformat squid %ts.%03tu %6tr %>a %Ss/%03Hs %<st %rm %ru %un %Sh/%<A %mt
logformat squidmime %ts.%03tu %6tr %>a %Ss/%03Hs %<st %rm %ru %un %Sh/%<A %mt [%>h] [%<h]
logformat common %>a %ui %un [%tl] "%rm %ru HTTP/%rv" %Hs %<st %Ss:%Sh
logformat combined %>a %ui %un [%tl] "%rm %ru HTTP/%rv" %Hs %<st "%{Referer}>h" "%{User-Agent}>h" %Ss:%Sh

Per Awstats >7.1 utilizzare:

logformat squid      %ts.%03tu %6tr %>a %Ss/%03>Hs %<st %rm %ru %[un %Sh/%<a %mt
logformat common     %>a %[ui %[un [%tl] "%rm %ru HTTP/%rv" %>Hs %<st %Ss:%Sh
logformat combined   %>a %[ui %[un [%tl] "%rm %ru HTTP/%rv" %>Hs %<st "%{Referer}>h" "%{User-Agent}>h" %Ss:%Sh
logformat referrer   %ts.%03tu %>a %{Referer}>h %ru
logformat useragent  %>a [%tl] "%{User-Agent}>h"

Separiamo i log in base ai siti:

# Log sito1
access_log /var/log/squid/www.sito1.com-access_log combined sito1
# Log sito2
access_log /var/log/squid/www.sito2.com-access_log combined sito2
# Log sito3
access_log /var/log/squid/www.sito3.com-access_log combined sito3

Log di cache:

cache_log /var/log/httpd/cache_log

Nascondiamo le informazioni di sistema e di Squid per avere maggiore sicurezza:

httpd_suppress_version_string on
visible_hostname proxy.miosito.com

Una volta modificata la configurazione a vostro piacimento, dobbiamo dire al sistema dove rigirare le richieste. Questo si fa semplicemente indicando nel file hosts il nome della risorsa e l’ip. Nell’esempio fatto sopra aggiungieremo nel file hosts (/etc/hosts) le seguenti righe:

192.168.0.101 www.sito1.com sito1.com
192.168.0.102 www.sito2.com sito2.com
192.168.0.103 www.sito3.com sito3.com

A questo punto riavviamo o startiamo squid e proviamo a collegarci al nostro sito e vedere nei log cosa accade:

X.X.X.X - - [15/Jul/2016:06:13:55 +0100] "GET http://prometheusproject.it/ HTTP/1.1" 200 13986 "-" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.3) Gecko/2009042315 Ubuntu/8.04 Firefox/3.0.10" TCP_MISS:HIER_DIRECT

Questo è tutto.

Nelle prossime guide vedremo come mettere in blacklist gli IP che vogliamo bannare dai siti, mettere in protezione, tramite autenticazione, alcune pagine del sito (es. http://miosito.com/wp-admin).

Save

Save