Masquerading made simple HOWTO



Documenti analoghi
Tre catene (chains) di base, si possono definire altre catene (convenzionalmente in minuscolo)

Firewall e NAT A.A. 2005/2006. Walter Cerroni. Protezione di host: personal firewall

INTRODUZIONE ALLE RETI: UN APPROCCIO PRATICO

Sicurezza nelle reti

Iptables. Mauro Piccolo

Crittografia e sicurezza delle reti. Firewall

Innanzitutto, esistono diversi modi per realizzare una rete o più reti messe insieme; vi illustro la mia soluzione :

Filtraggio del traffico IP in linux

Ordine delle regole (1)

Rete Mac -Pc. Mac Os X Dove inserire i valori (IP, Subnetmask, ecc) Risorse di Rete (mousedx-proprietà)>

Corso avanzato di Reti e sicurezza informatica

ATTIVAZIONE SCHEDE ETHERNET PER STAMPANTI SATO SERIE ENHANCED

esercizi su sicurezza delle reti maurizio pizzonia sicurezza dei sistemi informatici e delle reti

Esercitazione 05. Sommario. Packet Filtering [ ICMP ] Esercitazione Descrizione generale. Angelo Di Iorio (Paolo Marinelli)


Appunti configurazione firewall con distribuzione Zeroshell (lan + dmz + internet)

IO NE PARLO. DIARIO DELLA TERAPIA per annotare i farmaci e i progressi

PACKET FILTERING IPTABLES

Installazione di GFI Network Server Monitor

Il web server Apache Lezione n. 3. Introduzione

Manuale di Desktop Sharing. Brad Hards Traduzione: Luciano Montanaro Traduzione: Daniele Micci

Reti di Calcolatori

Product Shipping Cost Guida d'installazione ed Utilizzo

progecad NLM Guida all uso Rel. 10.2

Progettare un Firewall

Zeroshell: VPN Lan-to-Lan. Il sistema operativo multifunzionale. creato da

Interfaccia KNX/IP - da guida DIN KXIPI. Manuale Tecnico

Manuale di Remote Desktop Connection. Brad Hards Urs Wolfer Traduzione: Luciano Montanaro Traduzione: Daniele Micci

Start > Pannello di controllo > Prestazioni e manutenzione > Sistema Oppure clic destro / Proprietà sull icona Risorse del computer su Desktop

Installazione del software Fiery per Windows e Macintosh

Configurazione VOIspeed IP6060

Guida all impostazione. Eureka Web

Esercitazione 5 Firewall

SOMMARIO... 2 Introduzione... 3 Configurazione Microsoft ISA Server... 4 Microsoft ISA Server Microsoft ISA Server

Interfaccia KNX/IP Wireless GW Manuale Tecnico

Dynamic DNS e Accesso Remoto

INTERNET e RETI di CALCOLATORI A.A. 2011/2012 Capitolo 4 DHCP Dynamic Host Configuration Protocol Fausto Marcantoni fausto.marcantoni@unicam.

FIREWALL: LA PROTEZIONE PER GLI ACCESSI ESTERNI

Il livello 3 della pila ISO/OSI. Il protocollo IP e il protocollo ICMP

su Windows XP con schede Cisco Aironet 350

Modelli di rete aziendale port forward PAT PAT NAT + PAT NAT table

Marketing di Successo per Operatori Olistici

Guida alla configurazione

Sicurezza dei sistemi e delle reti 1. Lezione X: Proxy. Proxy. Proxy. Mattia Monga. a.a. 2014/15

Laboratorio di Reti Esercitazione N 2-DNS Gruppo 9. Laboratorio di Reti Relazione N 2. Mattia Vettorato Alberto Mesin

Gate Manager. Come accedere alla rete di automazione da un PC (Rete cliente) COME ACCEDERE ALLA RETE DI AUTOMAZIONE DA UN PC (RETE CLIENTE)...

RETE, ADSL e CONDIVISIONI

GUIDA AL PRONTUARIO MOBILE

Transparent Firewall

Manuale per la configurazione di AziendaSoft in rete

FRANCESCO MARINO - TELECOMUNICAZIONI

Dal sito: Articolo recensito da Paolo Latella

Tornado 830 / 831. ADSL Router - 4 port Ethernet switch - Wireless G - Access Point - Firewall - USB printer server

File, Modifica, Visualizza, Strumenti, Messaggio

1. Devo essere connesso ad Internet per utilizzare il Servizio di tuotempo?

Firewall: concetti di base

INSTALLAZIONE NUOVO CLIENT TUTTOTEL (04 Novembre 2014)

Proteggiamo il PC con il Firewall di Windows Vista

VIPA 900-2E641 PSTN VPN

COMUNICAZIONE UTENTI SISTEMI-PROFIS INSTALLAZIONE GE.RI.CO e PARAMETRI2015

Internet gratuita in Biblioteca e nei dintorni

Attivazione della connessione PPTP ADSL

Configurazione WAN (accesso internet)

Inizializzazione degli Host. BOOTP e DHCP

MC-link Lan+ Connessione e configurazione del router PRESTIGE 100

Con accesso remoto s'intende la possibilità di accedere ad uno o più Personal Computer con un modem ed una linea telefonica.

P2-11: BOOTP e DHCP (Capitolo 23)

Guida all utilizzo dei servizi hometao. Domande frequenti

SIP-Phone 302 GUIDA ALLA CONFIGURAZIONE EUTELIAVOIP

Packet Filter in LINUX (iptables)

Installazione di GFI Network Server Monitor

IL MODELLO CICLICO BATTLEPLAN

Ciao, intanto grazie per essere arrivato/a fin qui.

helo openbeer.it mail from: -=mayhem=- <mayhem at openbeer dot it> rcpt to: everyone at openbeer dot it data

Gate Manager. Table of Contents. 1 Come spedire una mail dal PLC o HMI. 2 Introduzione. 3 Cosa vi serve per cominciare.

GUIDA RAPIDA CONFIGURAZIONE RETE - INTERNET - DDNS. (DVR Serie 3xx)

su Windows XP con schede D-Link DWL 650+

LAN Sniffing con Ettercap

Outlook Express 6 Microsoft Internet Explorer, Avvio del programma Creare un nuovo account

Agent, porte, connettività e reti L agent di Kaseya utilizza la porta 5721 per comunicare con il server, ma che tipo di porta è?...

Per trovare un IP address (indirizzo IP) di un router Linksys, controllare le impostazioni del computer. Per istruzioni, cliccare qui.

FIREWALL. Firewall - modello OSI e TCP/IP. Gianluigi Me. me@disp.uniroma2.it Anno Accademico 2005/06. Modello OSI. Modello TCP/IP. Application Gateway

Firewall con IpTables

Manuale servizio

W2000 WXP WVista W7 Ubuntu 9.10 VPN client - mini howto (ovvero come installare VPN client su quasi tutto)

SharePoints è attualmente disponibile in Inglese, Italiano e Francese.

BACKUP APPLIANCE. User guide Rev 1.0

LaCie Ethernet Disk mini Domande frequenti (FAQ)

FIREWALL iptables V1.1 del 18/03/2013

Università degli Studi di Pisa Dipartimento di Informatica. NAT & Firewalls

Transcript:

John Tapsell thomasno@spamresonanceplease.org Thomas Spellman thomas@resonance.org Matthias Grimm DeadBull@gmx.net Tutti gli autori sono contattabili sul canale #debian su irc.opensource.net John Tapsell (JohnFlux) è il curatore ufficiale. Io (John Tapsell) sono disponibile al contatto via email per qualsiasi domanda, feedback, polemica ed anche per appuntamenti ecc. Si è rubato senza vergogna dal lavoro di David Ranch - <dranch@trinnet.net>. Questo documento non intende rimpiazzare IP-Masquerading HOWTO ma gli è complementare, i due documenti andrebbero letti fianco a fianco. Non includerò cose di cui si occupa l altro HOWTO, né darò spiegazioni di carattere generale. Si consulti http://ipmasq.cjb.net e il solito Masq-HOWTO per informazioni di questo tipo. Questo documento descrive come abilitare la funzionalità di Masquerading IP su un host Linux. IP Masq è una forma di NAT (Network Address Translation) che permette alle macchine di una rete locale che non hanno uno o più indirizzi Internet registrati di comunicare con Internet attraverso delle macchine (Linux, nel nostro caso) dotate di un singolo indirizzo IP pubblico. Il documento è rilasciato sotto licenza GNU Free Documentation License. http://www.gnu.org/copyleft/fdl.html (http://www.gnu.org/copyleft/fdl.html) Traduzione a cura di Riccardo Fabris (frick at linux.it).

Sommario 1. Introduzione... 3 2. Sommario: (mi piace partire con i sommari)... 3 3. Versione un po più approfondita... 4 4. Istruzioni di post-installazione... 5 5. FAQ - le lament... le domande poste più di frequente... 6

1. Introduzione La faremo breve e andremo dritti al punto. Si ha una rete locale, che si vuol far comunicare con l esterno: 2. Sommario: (mi piace partire con i sommari) Si assuma che la scheda di rete esterna, verso Internet, sia eth0, che l IP esterno sia 123.12.23.43 e che la scheda di rete interna sia eth1, quindi: $> modprobe ipt_masquerade # Se fallisce, si provi ad andare avanti comunque $> iptables -F; iptables -t nat -F; iptables -t mangle -F $> iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 123.12.23.43 $> echo 1 > /proc/sys/net/ipv4/ip_forward O, per una connessione telefonica: $> modprobe ipt_masquerade # Se fallisce, si provi ad andare avanti comunque $> iptables -F; iptables -t nat -F; iptables -t mangle -F $> iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE $> echo 1 > /proc/sys/net/ipv4/ip_forward Poi, per rendere il tutto più sicuro: $> iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT $> iptables -A INPUT -m state --state NEW -i! eth0 -j ACCEPT $> iptables -P INPUT DROP #solo dopo che i due precedenti hanno avuto successo 3

$> iptables -A FORWARD -i eth0 -o eth0 -j REJECT Ora, per una connessione telefonica (con eth0 scheda di rete interna): $> iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT $> iptables -A INPUT -m state --state NEW -i! ppp0 -j ACCEPT $> iptables -P INPUT DROP #solo dopo che i due precedenti hanno avuto successo $> iptables -A FORWARD -i ppp0 -o ppp0 -j REJECT Tutto qui! Per vedere le regole di masquerading si dia "iptables -t nat -L" 3. Versione un po più approfondita Compilare il kernel (serve un kernel 2.4.x o successivo). Serve abilitare il supporto alle seguenti funzionalità del kernel: Sotto "Networking Options" Network packet filtering (CONFIG_NETFILTER) Sotto "Networking Options->Netfilter Configuration" Connection tracking (CONFIG_IP_NF_CONNTRACK) FTP Protocol support (CONFIG_IP_NF_FTP) IP tables support (CONFIG_IP_NF_IPTABLES) Connection state match support (CONFIG_IP_NF_MATCH_STATE) Packet filtering (CONFIG_IP_NF_FILTER) REJECT target support (CONFIG_IP_NF_TARGET_REJECT) Full NAT (CONFIG_IP_NF_NAT) MASQUERADE target support (CONFIG_IP_NF_TARGET_MASQUERADE) REDIRECT target support (CONFIG_IP_NF_TARGET_REDIRECT) Packet mangling (CONFIG_IP_NF_MANGLE) LOG target support (CONFIG_IP_NF_TARGET_LOG) Per prima cosa, se i moduli iptable e masq non sono incorporati nel kernel né installati, ma esistono come moduli caricabili, bisogna installarli. Con "insmod ipt_masquerade" si caricheranno ip_tables, ip_conntrack e iptable_nat. $> modprobe ipt_masquerade L intranet da collegare a Internet potrebbe essere composta da molte macchine o solo da un paio, in realtà non fa molta differenza. Bene, sto dando per scontato che non servano altre regole. A questo punto si dia: 4

$> iptables -F; iptables -t nat -F; iptables -t mangle -F Masquerading made simple HOWTO Se si ottiene un errore e dice che iptables non si trova, lo si trovi ed installi. Se dice che non c è alcuna tabella "nat", si ricompili il kernel col supporto a nat. Se dice che non c è alcuna tabella "mangle", non ci si preoccupi, non è necessaria al masquerading. Se dice che iptables è incompatibile con il proprio kernel, ci si procuri un kernel 2.4 e lo si compili col supporto a iptables. In caso si abbia un IP statico (p.e. non si usa DHCP), si dia: $> iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 123.12.23.43 per un IP dinamico (p.e. un modem, ma ci si deve prima collegare!): $> iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE Infine, per dire al kernel che si desidera iniziare a fare il forward dei pacchetti (cosa necessaria solo una volta per reboot, ma a farlo più volte non succede nulla di male), si dia: $> echo 1 > /proc/sys/net/ipv4/ip_forward Una volta che si è controllato che tutto funziona (si vedano le istruzioni di post- installazione più avanti) si deve permettere il masquerading solo dalla rete interna; non si vorrà mica che qualcuno su Internet ne abusi! :) Per prima cosa, si consentano le connessioni preesistenti o qualunque cosa ad esse correlate (p.e. un server ftp che si collega di rimando): $> iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT Se dà un errore, molto probabilmente nel kernel non è abilitato il "connection tracking", perciò lo si ricompili. Poi si permettano nuove connessioni solo dalla propria intranet (rete interna o locale). Si rimpiazzi ppp0 con eth0 o qualunque altra cosa sia il proprio device di rete verso l esterno. (Il "!" è una negazione, significa "qualsiasi cosa tranne"). $> iptables -A INPUT -m state --state NEW -i! ppp0 -j ACCEPT Ora si neghi tutto il resto: $> iptables -P INPUT DROP #solo se i due precedenti hanno avuto successo Se una delle due regole precedenti è fallita, l ultima regola impedirà completamente il funzionamento del masquerading. Per annullare l ultima regola si usi "iptables -P INPUT ACCEPT". 4. Istruzioni di post-installazione Ora dovrebbe funzionare tutto. Non ci si dimentichi di: Configurare tutti i client della rete interna affinché usino l IP interno della macchina Linux come gateway. Configurare tutti i client affinché usino un eventuale proxy HTTP del provider, un proxy trasparente (ATTENZIONE: ho sentito dire che i proxy trasparenti possono essere molto lenti in caso di reti molto ampie) o Squid fatto girare sul gateway Linux (un opzione da prendere in considerazione per grosse reti). Ci si assicuri di specificare un server DNS nella configurazione dei client, altrimenti si otterranno errori circa la mancata risoluzione degli indirizzi. Se il DNS funzionava prima di configurare il masquerading e dopo non funziona più, accade perché il server DHCP del provider non può più fornire l indirizzo del server DNS. 5

[OT] Si potrebbe provare semplicemente a inviare un messaggio dhcp broadcast che inoltri ai client l indirizzo del server DNS (e già che ci siamo anche l indirizzo del proxy http) senza dover configurare un server DHCP (o anche configurandolo). Mi piacerebbe discuterne con qualcuno via email :) Grazie a Richard Atcheson per avermi fatto notare la cosa. Ora si dovrebbe iniziare a pensare alla sicurezza! Prima di tutto si disabiliti il forward generico: "iptables -P FORWARD DROP", quindi ci si informi su come usare iptables, /etc/hosts.allow e /etc/hosts.deny per rendere più sicuro il sistema. ATTENZIONE: non usare la regola di iptables summenzionata se non dopo aver accertato che il masquerading effettivamente funzioni. Si deve permettere esplicitamente il passaggio dei pacchetti dove lo si desidera in caso si voglia negare il forward per default. (Il comando si annulla con "iptables -P FORWARD ACCEPT"). Si permetta l accesso a qualsiasi servizio che si vuole rendere visibile su Internet. Per esempio, per permettere l accesso al web server: $> iptables -A INPUT --protocol tcp --dport 80 -j ACCEPT $> iptables -A INPUT --protocol tcp --dport 443 -j ACCEPT Per consentire l ident (per connessioni ad irc ecc.): $> iptables -A INPUT --protocol tcp --dport 113 -j ACCEPT Per testare la configurazione: Provare a connettersi da un client all indirizzo numerico di un web server. Per esempio uno degli IP di Google è 216.239.33.100. Si dovrebbe ottenere una replica da esso. Per esempio: "ping 216.239.33.100" "lynx 216.239.33.100". Provare una connessione completa con il nome. Per esempio "ping google.com" "lynx google.com" o usando Internet Explorer o Netscape. Dove eth0 è la scheda di rete ethernet verso Internet e 123.12.23.43 è l IP pubblico della macchina. 5. FAQ - le lament... le domande poste più di frequente Come posso ottenere un elenco delle regole introdotte? - Prova a dare: $> iptables -L $> iptables -t nat -L Non risolve gli indirizzi! Ho provato con "www.microsoft.com" ma mi dice che non lo trova! - Assicurati di fornire a tutti i client l IP del server DNS. Non funziona! Non accetta iptables / NAT / SNAT / MASQ. - Recupera il kernel più recente e compilalo con il supporto completo a iptables e NAT. 6

Non funziona! Il masquerading non funziona proprio, mannaggia! - Non è che hai tralasciato di dare echo 1 > /proc/sys/net/ipv4/ip_forward?! Non funziona! Non mi funziona manco la rete, ti odio! - Prova con $> iptables -F $> iptables -t nat -F $> iptables -t mangle -F (così si eliminano tutte le regole), poi rilancia tutte le altre regole di iptables. - Prova con iptables -P FORWARD ACCEPT Non funziona ancora! - Hmhmhm, "dmesg tail" dà qualche errore? E "cat /var/log/messages tail"? Non posso mica pensare a tutto io... Non ce la faccio, non mi funziona proprio! - Boh!...comunque prima di iniziare a sperimentare con il masquerading dovresti assicurarti di: 1) poter fare il ping di un indirizzo Internet dal gateway; 2) poter fare il ping delle macchine della rete interna dal gateway; 3) poter fare il ping del gateway dalle macchine della rete interna. Dove devo ficcare tutta questa roba? - Nel file /etc/network/interfaces o firewall.rc. Se lo metti nel file interfaces, mettilo nell opzione pre-up per l interfaccia esterna e poni nel post-down "iptables -t nat -F". Che devo fare per far sì che la connessione ppp venga attivata solo quando serve ("ppp on demand")? - Se per esempio l IP del gateway del provider è 23.43.12.43, aggiungi una riga: :23.43.12.43 in fondo a /etc/ppp/peers/provider. (Questo se ti viene attribuito un IP dinamico, in caso di IP statico potresti usare IP_statico:23.43.12.43). [La parte sul "ppp on demand" mi pare un po confusa, p.e. qui, aggiungendo le opzioni ipcp-accept-local e ipcp-accept-remote, si possono usare anche due IP fittizi NdT]. Quindi aggiungi su una nuova riga in fondo allo stesso file: demand Pppd rimarrà in background per riconnettersi a richiesta se la connessione cade, fino a quando non darai il comando "ifdown ppp0" o "poff". Se invece aggiungi l opzione "nopersist", pppd uscirà una volta attivata la connessione. Puoi anche aggiungere su una nuova riga "idle 600" per disconnetterti dopo 10 minuti di inattività. La connessione continua a cadermi! 7

- Innanzitutto usi una connessione a richiesta? Funziona come dovrebbe? Controlla /etc/ppp/peers/provider e assicurati che la connessione telefonica funzioni correttamente prima di provare col masquerading. - In seconda battuta, se continua a non funzionare potrebbe trattarsi di quel che è capitato a me: per motivi misteriosi sono dovuto ritornare al kernel 2.4.3 affinché tutto funzionasse, ma non so il perché. Non ho alcuna voglia di fare tutto a mano! Voglio uno script prefabbricato, una GUI e tutto il resto. - Prova questo: http://shorewall.sourceforge.net/ (http://shorewall.sourceforge.net/) Struggiti dal dolore! I cable modem li devo considerare tra gli IP statici o dinamici? - Buona domanda... potrebbero pure essere dinamici. Devo considerare le schede di rete DHCP come IP statici o dinamici? - Sono dinamici. Come posso gestire i servizi con connessioni in entrata? - Prova con il forward o la redirezione delle porte - ancora una volta assicurati di configurare il firewall a tal fine se necessario. Riesco a fare il ping dell indirizzo esterno del gateway Linux dai client della rete, ma non riesco ad accedere a Internet. - Ok, prova con "rmmod iptable_filter"; fornirò maggiori informazioni quando le avrò disponibili. - Assicurati che non stai facendo girare routed o gated, per saperlo lancia "ps aux grep -e routed -e gated". - Consulta http://ipmasq.cjb.net. Come posso vedere le connessioni stabilite? Una cosa tipo netstat... - prova con "cat /proc/net/ip_conntrack" Mi servono maggiori informazioni su squid, l instradamento e roba simile! - Dai un occhiata all "Advanced Routing HOWTO" (http://www.linuxdoc.org/howto/adv-routing-howto.html). Questo howto è una vaccata! Dove posso beccare i tizi che l hanno scritto per rinfacciarglielo? - Entra nel canale irc #debian sul server irc.opensource.net e cerca JohnFlux. - Scrivimi (sono JohnFlux) a tapselj0@cs.man.ac.uk Questo howto fa schifo! Dove posso trovare documentazione migliore? - Da un occhiata a http://ipmasq.cjb.net. 8

- Consulta il Masq-HOWTO di LDP. Su cos altro state lavorando? Attualmente sto scrivendo una guida "Linux e i sistemi missile-anti-missile per principianti". Non ci sono documenti decenti per newbie sulla protezione del proprio sistema da attacchi nucleari. La gente sembra pensare che si tratti di missilistica o roba simile... 9