MegaLab.it
Stampa Articolo
Aperiodico gratuito di informatica
 
20081030121235_156971672_20081030121220_245948338_web_server.png

Creare un "super router" con un vecchio PC e CentOS

a cura di Zane
21/04/2011 - articolo
Linux & Open Source - Se disponete di un PC inutilizzato e di una mezz'oretta per "smanettare" con Linux, siete fortunati: possedete già (quasi) tutto quello che vi serve per preparare un "super router" in grado di offrire un firewall robusto, un filtro per i contenuti e tanto altro ancora.

Se la vostra rete locale è composta da più computer, magari utilizzati per lavoro o per motivi di studio da più persone, potrebbe essere interessante inserire nell'infrastruttura un server che svolga la funzione di "mediatore" e si faccia carico di gestire l'accesso ad Internet in maniera più "ordinata"

Cover.jpg

Nel corso di questo articolo, vedremo come ottenere un risultato simile a quello illustrato in figura.

Perché farlo? Non basta un router?

Ci sono molti motivi per i quali preferire l'uso di un server dedicato rispetto ad un più semplice router domestico, ma la più importante riguarda la flessibilità.

In particolare, questo approccio vi consente di impostare sul server una serie di politiche di regolazione del traffico, accettare liberamente connessioni VPN, impostare filtri sui contenuti inadeguati, gestire il firewall e molto altro ancora.

Gli utenti Fastweb apprezzeranno inoltre la possibilità di condividere la connettività senza essere soggetti alle gravose limitazioni al numero massimo di terminali utilizzabili contemporaneamente imposte dal provider.

In ultimo, tutti coloro che abbiano oggi a che fare con un router che si blocca periodicamente a causa delle eccessive connessioni dovute ai software di P2P potranno porre rimedio al problema in modo definitivo.

Pre-requisiti

Prima di entrare nel vivo della trattazione, è necessario sincerarsi di essere dotati di quanto segue:

Verificare la rete

Accedete al server e verificate che sia possibile utilizzarlo per accedere direttamente ad Internet: per farlo rapidamente, potete seguire Applications -> Internet -> Firefox Web Browser e provare a navigare su un sito qualsiasi (in caso Firefox non sia presente, cliccate Applications -> Accessories -> Terminal ed impartite yum install firefox -y per installarlo ora, quindi provate a lanciarlo di nuovo).

Seguite quindi System -> Administration -> Network per visualizzare le vostre interfacce di rete. Dovete ora capire qual è quella rivolta verso Internet e quale quella che guarda la LAN. Per farlo, basta disattivare la prima premendo Deactivate e provare nuovamente a navigare sul web. Se l'operazione fallisce, avete trovato l'interfaccia che guarda Internet, altrimenti provate con l'altra

MLINewShot_0483.jpg

Una volta che avrete compreso come stanno le cose, assicuratevi che nessuna delle due sia rimasta disattivata! Per farlo, basta verificare che la colonna Status riporti l'indicazione Active (se così non fosse, selezionate l'interfaccia in questione e premete il pulsante Activate nella barra degli strumenti).

Nel prosieguo, faremo finta che eth0 sia l'interfaccia che connette ad Internet, mentre eth1 sarà quella che collega il server al resto della rete locale.

Prendete nota di questa indicazione perché ci servirà fra poco

Copiare il file di configurazione

Scaricate ora l'archivio con il file "routing.sh" ed estraetene il contenuto all'interno di una cartella a piacere (raccomando di scegliere /root/ per motivi di sicurezza e comodità)

MLINewShot_0484.jpg

Se per qualche motivo l'utility di gestione dei file zip non dovesse funzionare correttamente, potete installare tutto il necessario impartendo questo semplice comando da terminale:

yum install unzip file-roller zip -y

Personalizzare lo script di routing

Fate ora doppio click sul file appena estratto e, quando richiesto, scegliete Display per aprirlo nell'editor di testo

MLINewShot_0485.jpg

La vostra principale preoccupazione deve essere relativa alla giusta assegnazione delle due variabili WAN= e LAN1=. La prima deve essere seguita dal nome dell'interfaccia che collega il server ad Internet, mentre la seconda deve essere uguagliata al nome dell'interfaccia di rete rivolta verso la LAN.

Queste due informazioni sono quelle che vi eravate segnati durante la fase preliminare (vedi paragrafo "Verificare la rete" poco più su).

Ecco quindi che nel nostro caso di esempio si leggerà:

Completata questa verifica, salvate il file e chiudete l'editor di testo.

Impostare i permessi giusti

Aprite ora il terminale (ricordo nuovamente ai meno esperti che si trova in Applications -> Accessories -> Terminal) ed impartite quanto segue per sincerarvi che il file sia eseguibile

chmod ugo+x /root/routing.sh

(modificate, ovviamente, il percorso a seconda della cartella nella quale avete salvato il file).

Eseguire lo script ora

A questo punto, tutto dovrebbe essere pronto per un giro di prova. Impartite quindi sh /root/routing.sh (modificando, ovviamente, il percorso a seconda della cartella nella quale avete salvato il file) ed il server dovrebbe iniziare a svolgere la sua funzione

MLINewShot_0487.jpg

Per sincerarvene, provate ad aprire una pagina web da uno dei client e, magari, eseguire il comando tracert megalab.it da uno dei PC Windows. La prima riga dovrebbe sempre riportare l'indirizzo del vostro server, chiaro segnale che il traffico sta passando attraverso lo stesso e tutto sta funzionando come previsto

MLINewShot_0488.jpg

Auto-eseguire lo script al boot

Sebbene il servizio sia ora operativo, al primo riavvio del server tutto tornerà come prima. Per essere sicuri che il "super router" continui a svolgere il proprio compito correttamente anche fra una sessione e l'altra, impartite gedit /etc/rc.local quindi accodate al file il comando usato in precedenza per abilitare manualmente l'instradamento (nel nostro caso, era sh /root/routing.sh)

MLINewShot_0489.jpg

Salvate, chiudete e riavviate per sincerarvi che tutto continui a funzionare.

Abilitare il "port forwarding"

Proprio come avviene su di un router tradizionale, anche il nostro server deve essere configurato opportunamente per rilanciare le porte verso i computer della LAN (in questo modo, ad esempio, sarà possibile far sì che eMule non sia più "bendato").

Per farlo, aprite il file routing.sh nell'editor di testo (potete farlo rapidamente con gedit /root/routing.sh, se avete seguito i consigli alla lettera) e localizzate la riga che recita # QUESTO BLOCCO DI ISTRUZIONI È DEDICATO AL PORT FORWARDING.

Prima del commento di chiusura del blocco di istruzioni, trovate due righe di esempio: copiate subito di seguito rimuovendo il carattere # iniziale. Si leggerà quindi:

Per configurare la regola non dovrete far altro che personalizzare questi due comandi con i vostri valori. In particolare:

Se, ad esempio, volessimo inoltrare la porta 80 TCP (server web) verso il PC che ha l'indirizzo 192.168.0.87, scriveremo:

Salvate il file ed eseguite nuovamente lo script da terminale (nel nostro caso, era sh /root/routing.sh) per rendere immediatamente attive le modifiche.

Usate poi il sempre comodo "ShieldsUP" per sincerarvi che la porta sia effettivamente aperta come desiderato.

Gestire il server da remoto

L'impostazione predefinita del file che state utilizzando prevede che sia possibile eseguire login sul server tramite SSH oppure VNC da qualsiasi PC appartenente alla rete LAN, ma siano invece bloccate tutte le connessioni di questo tipo provenienti dall'interfaccia rivolta verso Internet.

In caso aveste la necessità di amministrare il vostro server anche durante le vacanze alle Maldive, individuate il testo PRUDENZA! Questo vi consente di gestire il server da tutto il mondo (è verso la fine), cancellate il simbolo # dalle due righe sottostanti, salvate il file e lanciate nuovamente lo script da terminale (nel nostro caso, era sh /root/routing.sh) per rendere attive le modifiche.

Ricordate soltanto che il server è predisposto di default solo per l'amministrazione via SSH. Per quanto riguarda VNC invece, potete abilitare il servizio seguendo "Come abilitare l'accesso remoto a CentOS senza che vi siano sessioni aperte".

Bloccare i contenuti inadatti

Abbiamo detto in apertura che uno dei più interessanti vantaggi garantiti da questo approccio è la possibilità di bloccare con grande comodità l'accesso ai siti "per adulti" e a tutte quelle risorse che risultino inopportune in determinate circostanze.

Per la guida operativa si veda "Bloccare Facebook, YouTube, pornografia ed altre risorse inadeguate con un server CentOS".

Altre risorse su CentOS

Le guide relative a VPN ed altri benefici relativi all'impiego di un server CentOS utilizzato come gestore della rete saranno raccolte, mano a mano che diverranno disponibili, sotto il tag "CentOS".

MegaLab.it rispetta la tua privacy. Per esercitare i tuoi diritti scrivi a: privacy@megalab.it .

Copyright 2008 MegaLab.it - Tutti i diritti sono riservati