Censorship banner.png

Guri:Configurazione laboratorio itis

From Wiki - Hipatia
Jump to: navigation, search

Qui vengono riportate le soluzione hw e sw relative alla configurazione del laboratorio dell'itis.

Rete

Nota:

http://aqquadro.it/blog/2011/01/03/setting-up-simple-debian-gateway-with-nat-thanks-iptables/
http://wiki.linuxquestions.org/wiki/A_basic_firewall_configuration_suitable_for_a_gateway/nat
http://guide.debianizzati.org/index.php/NAT_con_iptables

Configurazione della rete:

Problema riscontrato: rete all'iti filtrata da squid. Blocco di domini, estensioni e porte. In particolare, blocco del formato gzip, necessario per poter usufruire di apt in Debian.

Soluzione:

  • configurazione di un gateway all'interno dell'aula per fare IP forwarding e NAT
    • si può fare con ip fissi o con DHCP
  • tunnel ssh su cui reindirizzare il traffico http (necessario per liberare apt)

alternativamente:

  • provare a usare il metodo di compressione lzma invece che gzip, e vedere se non viene bloccato da squid.
  • configurazione del gw in quanto utile alle lezioni

Implementazione: seguono le procedure tecniche per implementare la soluzione.

Gateway

Necessario: computer con 2 schede di rete ethernet. La prima scheda verrà configurata per avere accesso WAN, mentre l'altra per gestire la LAN. E' quindi necessario che tutti i computer dell'aula siano collegati in una rete locale con il computer che fungerà da gateway.

E' possibile configurare il computer grazie a iptables, utilizzando il seguente script:

#! /bin/sh
#
# Imposta un firewall per IP Masquerading
#
PATH=/bin:/usr/bin:/sbin:/usr/sbin

case "$1" in
  start)
    echo -n "Starting IP Masquerading: guri_firewall"
    iptables --flush
    iptables --table nat --flush
    iptables --delete-chain
    iptables --table nat --delete-chain
    iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE
    iptables --append FORWARD --in-interface eth1 -j ACCEPT
    echo 1 > /proc/sys/net/ipv4/ip_forward
    echo "." 
    ;;
  stop)
    echo -n "Stopping IP Masquerading: guri_firewall"
    echo 0 > /proc/sys/net/ipv4/ip_forward
    echo "." 
    ;;
  reload)
    echo "Non implementato." 
    ;;
  force-reload|restart)
    sh $0 stop
    sh $0 start
    ;;
  *)
    echo "Utilizzo: /etc/init.d/myfirewall {start|stop|restart|force-reload|reload}"
    exit 1
    ;;
esac

exit 0

Dove eth0 è la scheda collegata alla rete WAN mentre eth1 serve la LAN. Lo script va piazzato in /etc/init.d/ è può essere richiamato con start, restart, stop, force-reload.

Affinchè queste modifiche sopravvivano un riavvio, è opportuno che lo script venga eseguito non appena le schede di rete vengono attivate. Per fare questo, è possibile inserire uno script che faccia partire il servizio in /etc/network/if-up.d/.

Client

A questo punto, ogni macchina che accede alla LAN diversa dal gw, deve essere configurata affinchè richida un ip ad esso. Basta aggiungere le seguenti righe a /etc/network/interfaces:

iface eth0 inet static
       address 192.168.1.2 #indirizzo statico
       network 192.168.1.0
       netmask 255.255.255.0
       gateway 192.168.1.5

Nota: in questo caso eth0 è l'interfaccia di rete della macchina che chiederà un ip al gateway e non la scheda di rete del computer utilizzato per fare NAT e ip forwarding.

Tunnel ssh

Nel caso apt fosse ancora bloccato è necessario aprire un tunnel ssh per utilizzare un server esterno, privo di blocchi, per accedere ai contenuti bloccati. Per fare questo è necessario avere un server esterno, su cui non sono presenti le limitazioni attive nella LAN, a cui è possibile accedere tramite ssh. Ovviamente questo richiede avere una porta aperta per uscire con ssh dalla rete bloccata (es la porta 22). In questo modo si aprirà una connessione criptata tra il computer che richiede i contenuti e il server che è in grado di accederci. Essi verranno poi invitati alla macchina tramite il tunnel ssh creato. Questo procedimento garantisce un canale sicuro (criptato) di trasmissione di dati, e quindi può anche risultare utile in altre evenienze. Nel nostro caso, il gateway aprirà un tunnel in collegamento con un nostro server esterno, in grado di accedere senza problemi ai repository di Debian, tramite http. Qualora le macchine collegate in LAN con il gatway avranno la necessità di utilizzare apt, esso sarà in grado di utilizzare il proxy cosi creato per aver accesso ai contenuti richiesti.

ssh utente@server_libero -L porta_locale:servizio_bloccato:porta_bloccata

ad esempio

ssh utente@server -C -L 8080:debian.fastwebnet.it:8080

In seguito è sufficiente configurare apt (mediante il file apt.conf o mediante una variabile d'ambiente) affinchè acceda al servizio tramite il nostro proxy (indirizzo del gateway:8080) invece che attraverso una connessione diretta alla rete (filtrata).

APT

Per uscire dalla rete con apt è necessario creare il file /etc/apt/apt.conf con i seguenti contenuti:

Acquire::http::Proxy "http://utente:pass@proxy_http:porta";
OS & software

Installazione di Debian Squeeze con solo repository main abilitati.

http://cdimage.debian.org/cdimage/squeeze_di_rc2/multi-arch/iso-dvd/