Impostare proxy trasparente su router D-Link DSL-2640B

 

♦Download script perl: proxy.zip

 

INTRODUZIONE

Lo script allegato all'articolo permette di impostare un proxy trasparente sul vostro amato router D-Link DSL-2640B.

Bisogna avere già un computer con una distribuzione Linux(tipo Ubuntu Server, Debian oppure la distribuzione che più vi aggrada) con un server Squid impostato come proxy trasparente sulla porta standard 3128.

 

Lo script è in perl quindi può essere eseguito sul server linux sul quale gira il proxy Squid.

 

 

 

REQUISITI

  1. router D-Link DSL-2640B (la procedura potrebbe funzionare anche con altri router) con attivato il protocollo TELNET nel "Controllo di accesso remoto" sulla rete LAN;
  2. computer con Linux e Squid "up and running" impostato come proxy trasparente su porta 3128;
  3. Perl sulla macchina Linux con istallato il modulo Net::Telnet;
  4. qualche computer nella rete locale collegati allo stesso router sul quale andremo a impostare il proxy;

INSTALLARE SQUID

Installate Squid3 sul votrso server linux:

sudo apt-get install squid3

editate il file di configurazione:

sudo nano /etc/squid3/squid.conf

Applicare le seguenti modifiche:

http_port 3128 transparent

acl LAN src 192.168.1.0/24

http_access allow LAN

Se necessario inizializzare la cache con i comandi:

sudo service squid3 stop

sudo squid3 -z

sudo service squid3 start

USO DELLO SCRIPT

Lo script proxy.pl può essere lanciato col seguente comando:

 

perl proxy.pl 192.168.1.8

 

dove 192.168.1.8 è l'indirizzo ip nella vostra LAN del server Squid.

Lo script da per scontato che il router si trovi all'indirizzo 192.168.1.1 e che la vostra LAN sia nell'area 192.168.1.0/24 che di solito sono i parametri standard per i router D-Link DSL-2640B.

In oltre bisogna impostare nello script username e password per l'accesso TELNET al router ( attualmente lo script usa le credenziali di default del router).

 

A questo punto il proxy trasparente è impostato e tutto il traffico WEB su porta 80 (che sarebbe quella standard dei siti web http://)  che passa per il router viene rediretto al proxy Squid.

 

Per verificare se il proxy è impostato correttamente sul router potete andare su siti tipo http://www.whatismyip.com/.

 

Per rimuovere il proxy:

 

perl proxy.pl -remove 192.168.1.8

 

AVVIO AUTOMATICO

Possiamo decidere di voler far partire lo script in automatico quando si avvia il server.

Possiamo creare uno script proxy_trasparente nella cartella /etc/init.d del server Linux.

Ecco uno script esempio che potrebbe andare bene per una distribuzione linux basata su Debian/Ubuntu:

 

#!/bin/sh

### BEGIN INIT INFO
# Provides:          proxy_trasparente
# Required-Start:    $syslog
# Required-Stop:     $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Imposta proxy trasparente
# Description:       Imposta proxy trasparente su router
### END INIT INFO

PATH=/sbin:/bin:/usr/sbin:/usr/bin

. /lib/lsb/init-functions

case "$1" in
start)
log_daemon_msg "Setting proxy on router"
perl /home/sante/proxy.pl 192.168.1.8
log_end_msg $?
;;

stop)
log_daemon_msg "Reset router"
perl /home/sante/proxy.pl -remove 192.168.1.8
log_end_msg $?
;;

*)
echo "$0 {start|stop}"
exit 1
;;
esac

exit 0

Per installare lo script potete impartire il comando:

sudo update-rc.d proxy_trasparente defaults

Spero questo articolo possa essere utile a qualcuno.