Archivi tag: http proxy

Linux: packaging tool e proxy HTTP

Usate un packaging tool (aptitude, emerge, yum et similia) per scaricare ed installare i pacchetti sulla vostra macchina Linux? Non avete accesso diretto al Web e quindi necessitate di interfacciarvi con un proxy HTTP? Niente paura, basta seguire questi semplici passi.

variabili di ambiente, aptitude, yum, emerge, export, http proxy

Per prima cosa occorre definire la variabile di ambiente http_proxy, il cui valore dovrà essere simile al seguente:

nightfly@nightbox:~$ export http_proxy=http://192.168.1.1:3128/

dove 192.168.1.1 è l’indirizzo IP del proxy e 3128 la porta su cui è in ascolto.

Se il proxy richiede autentica, è necessario definire la variabile precedentemente citata usando la seguente sintassi:

nightfly@nightbox:~$ export http_proxy=http://username:password@192.168.1.1:3128/

Attenzione però, le variabili di ambiente valgono esclusivamente per l’utente che le definisce. Per fare in modo che una variabile d’ambiente possa essere utilizzata da tutti gli utenti del sistema, è necessario operare sul file /etc/profile:

nightfly@nightbox:~$ sudo nano /etc/profile

ed aggiungere la direttiva:

export http_proxy=http://192.168.1.1:3128/

oppure:

export http_proxy=http://username:password@192.168.1.1:3128/

in caso di autentica.

Infine, per listare le variabili di ambiente basta lanciare il comando:

nightfly@nightbox:~$ export -p

Done.

Squid: configurare un proxy HTTP sulla nostra rete

Ultimamente presso la mia facoltà e stato attivato il servizio wireless. Ovviemente, affinchè gli studenti che ne fanno uso (compreso me) possano uscire su Internet, è necessario loggarsi su un server proxy inserendo le proprie credenziali di accesso. Allora mi sono detto: perchè non implementare un servizio del genere all’interno della mia LAN? Sicuramente sarebbe una misura di sicurezza aggiuntiva, che non guasta mai.

Cercando un pò sul Web ho trovato questo server proxy: Squid. La sua installazione è abbastanza semplice e lo stesso dicasi per la sua configurazione.

9d95fae038_s.jpg

 

Ma andiamo per ordine. Per prima cosa installiamo Squid sul nostro sistema:

nightfly@nightbox:~$ sudo apt-get install squid

e passiamo subito alla configurazione del proxy appena installato:

nightfly@nightbox:~$ sudo nano /etc/squid/squid.conf

Andiamo nella sezione ACL e settiamo la nostra Access Control List, che chiameremo “permessi” (ovvero andremo a specificare quali sono gli IP che possono usufruire del proxy senza restrizioni):

acl permessi src 10.0.0.1/255.255.255.255 10.0.0.4/255.255.255.255

Ora definiamo un’altra ACL, che chiameremo “ristretti”, i cui IP per usare il proxy dovranno inserire opportune credenziali di accesso:

acl ristretti src 10.0.0.5-10.0.0.6/255.255.255.255

Infine definiamo l’ACL “autenticazione”, la quale prevederà l’inserimento di opportune credenziali affinchè si possa accedere ad Internet mediante proxy:

acl autenticazione proxy_auth REQUIRED

Ora andiamo nella sezione http_access. Proprio qui verrà definito il comportamento di Squid nei confronti delle richieste di accesso effettuate dai client.

Definiamo quindi le seguenti policy:

http_access allow permessi

http_access allow ristretti autenticazione

In particolare, la prima riga consente agli IP 10.0.0.1 e 10.0.0.4 di connettersi al proxy senza dover inserire username e password, mentre la seconda prevede l’inserimento di opportune credenziali di accesso per gli indirizzi 10.0.0.5 e 10.0.0.6.

Ora non ci resta che creare un file in cui verranno salvate le credenziali di accesso per gli IP ristretti. La creazione di tale file può essere effettuata attraverso un semplice tool, ovvero httpasswd. Per installarlo basta digitare:

nightfly@nightbox:~$ sudo apt-get install apache2-utils

Ad installazione completata digitiamo:

nightfly@nightbox:~$ cd /etc/squid

nightfly@nightbox:~$ sudo htpasswd -c login <username_utente>

dove “login” è il nome del file in cui verranno salvate le credenziali di accesso.

A questo punto vi verrà richiesto di digitare la password per lo username che avete appena inserito.

Ma come fare ad impendire che gli utenti escano direttamente su Internet senza passare per il proxy? Semplice, basta configurare alcune regole di firewalling attraverso Iptables, inserendole all’interno del file rc.local, caricato ad ogni avvio della nostro sistema.

nightfly@nightbox:~$ sudo nano /etc/rc.local

Appena abbiamo ottenuto l’accesso al file in scrittura digitiamo:

iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 80 -j DROP

iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 8080 -j DROP

iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 81 -j DROP

iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 8181 -j DROP

iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 443 -j DROP

dove l’interfaccia eth0 è collegata alla nostra LAN, mentre l’interfaccia eth1 è connessa al router (fà parte della DMZ).

Ecco fatto, la configurazione dell’HTTP proxy può dirsi conclusa. Per maggiori info non esitate a contattarmi :).