LINUX DAY 2008 - CREA IL TUO PESCARALUG …...DUE DESTINI POSSIBILI: 1) Se avete hardware vecchio...
Transcript of LINUX DAY 2008 - CREA IL TUO PESCARALUG …...DUE DESTINI POSSIBILI: 1) Se avete hardware vecchio...
LINUX DAY 2008 - PESCARALUGCREA IL TUO SERVER
CASALINGOsottotitolo:
“FAI RIVIVERE IL TUO BANDONE GRAZIE A
LINUX”
DUE DESTINI POSSIBILI:
1) Se avete hardware vecchio e/o rotto e volete liberarvene,
telefonate al numero verde di
ATTIVA:
800 624 622 (dal lunedi' al
venerdi', ore 9:00-12:30,
14:30-17:30)
...oppure
2) Ridiamogli vita!
Installiamoci una distro GNU/Linux!
Facciamolo diventare il
gateway della nostra rete casalinga!
SERVER DHCP, DNS, SMTP,
PROXY, FIREWALL!!
Caratteristiche router SOHO in commercioLa maggior parte non si discosta da questi
valori:
processore ~ 150 MhzRAM 16 Megabyte
schede ethernet 10/100 Mbit
cfr.http://wiki.openwrt.org/CompleteTableOfHardw
are
Cos'e' un router?
Un dispositivo che mette in
comunicazione due reti
differenti (nel nostro caso Internet e la nostra LAN).
Quale modem scegliere?Assolutamente ETHERNET!!!!
Sono pienamente compatibili con Linux e non richiedono
driver.
Abbiamo bisogno quindi di 2 schede di rete (una verso il modem, l'altra verso la LAN
interna)
Un consiglio? Alcatel SpeedTouch Home
Per I piu' curiosi:
http://www.s0ftpj.org/bfi/online/bfi10/BFi10-14.html
Quale distribuzione?Gli esempi citati in questa presentazione si riferiscono alla distribuzione Debian
Etch 4.0
Profilo “Sistema standard”
cfr.http://www.freepenguin.it/doc/guida-debian.html
Le interfacce di reteNel nostro esempio supponiamo che:
eth1 sia la scheda di rete connessa al modem
eth0 la scheda connessa alla LAN
Per visualizzarle:# ifconfig -a
Pacchetti da installare
Installaremo I pacchetti volta per volta.
# apt-get install pppoeconf
Configuriamo la connessione ADSL
# pppoeconf
Quali ip privati scegliere?
Reti riservate:
10.0.0.0 – 10.255.255.255172.16.0.0 – 172.31.0.0
192.168.0.0 – 192.168.255.255
Tra queste scegliamo una sottorete per la nostra LAN interna (nel nostro caso:
192.168.1.0/24 oppure 192.168.1.0 con netmask 255.255.255.0)
Riassunto delle interfacce di rete:
● Ppp0 (modem) ip assegnato dal provider● Eth1 scheda collegata al modem (senza ip)● Eth0 scheda vs. rete interna (192.168.1.1)
# ifconfig eth0 192.168.1.1 netmask 255.255.255.0
Configuriamo la rete di un host della LAN# Ifconfig eth0 192.168.1.2 netmask
255.255.255.0 # route add default gw 192.168.1.1
nel file /etc/resolv.conf possiamo inserire
I DNS del nostro ISP
oppure gli OPENDNS:
208.67.222.222 – 208.67.220.220
Switch
Se abbiamo piu' computer da mettere in rete, abbiamo bisogno di
uno switch.
Un host, il nostro server e il modem
192.168.1.2 192.168.1.1 62.89.12.4
Possiamo gia' navigare?
Non ancora, vediamo perche'.
Fordwarding tra le 2 schede di rete
Dobbiamo permettere il passaggio di pacchetti tra le due schede di rete
(eth0 e eth1)Di default e' disabilitato.
Per abilitarlo:
# echo 1 > /proc/sys/net/ipv4/ip_forward
NAT
Network Address Translation
Cos'e'?E perche' non posso farne a
meno?
Analogia con I telefoni di un ufficio
Il dipendente A deve comunicare col dipendente B.
A alza la cornetta e digita il numero dell'interno corrispondente a B (es. “26”).
B si vede arrivare una chiamata dal numero interno di A (es. “13”), alza la cornetta e
risponde.
In questa telefonata non c'e' stata nessuna comunicazione al di fuori dell'ufficio, il numero pubblico di quest'ultimo (es. 085123123) non
e' stato usato.
Cosa succede se A vuole avvisare sua moglie che fara' tardi al lavoro?
A compone il numero della moglie (es. Il cellulare)
M (moglie) non vede arrivare la chiamata dal numero “26”, ma dal numero pubblico dell'ufficio in cui A lavora (085123123).
Il numero dell'interno di A e' stato “mascherato” con quello pubblico dell'ufficio.
Torniamo agli indirizzi IP..
192.168.1.2 192.168.1.1 62.89.12.4
Se il nostro host (192.168.1.2) deve comunicare col server (192.168.1.1) I
pacchetti restano nell'ambito della rete locale, non vengono chiamati in causa ip
“pubblici”.
Se l'host (192.168.1.2) deve contattare un sito esterno (es. www.google.com),
allora il suo ip verra' “mascherato” (nattato) con quello della connessione
pubblica (62.84.12.4)
Per abilitare il NAT
Il mascheramento dell'esempio precedente viene definito “source nat” (SNAT).
Viene infatti modificato l'ip di provenienza del pacchetto (da 192.168.1.2 a 62.89.12.4)
# iptables -A OUTPUT -o ppp0 -j MASQUERADE
Si naviga! :-)
A questo punto il nostro router casalingo e' funzionante. Possiamo inserire questi due
comandi in /etc/rc.local per renderli permanenti:
echo 1 > /proc/sys/net/ipv4/ip_forwardiptables -A POSTROUTING -o ppp0 -j MASQUERADE
ora spingiamoci un po' oltre..
DNS
Anziche' usare I DNS del nostro ISP, possiamo installare un nameserver locale:
# Apt-get install bind
Sui pc della nostra LAN possiamo quindi impostare nel file /etc/resolv.conf l'ip del
nostro server:
nameserver 192.168.1.1
In questo modo il nostro server fara' da solo le ricerche
ricorsive per risolvere I nomi degli host.
Questo comporta un leggero ritardo nel contattare I siti
remoti.
Il comando chiave e': dig
DNS FORWARDPer usare comunque I DNS del nostro ISP editare cosi' il file /etc/bind/named.conf
..... forward first; forwarders { 212.216.112.112; 212.216,172.62; };
cfr DNS HOWTOhttp://www.pluto.it/files/ildp/HOWTO/DNS-
HOWTO/DNS-HOWTO.html
DHCP
Installiamo un demone DHCP per assegnare automaticamente gli indirizzi IP ai pc della
nostra LAN
# apt-get install dhcp
e editiamo il file /etc/dhcpd.conf
In questo modo I pc della LAN che faranno richiesta per ottenere un indirizzo IP ne riceveranno uno
nell'intervallo (range) 192.168.1.2 – 192.168.1.254
Il DNS sara' 192.168.1.1 (ma possiamo impostare anche quelli del
nostro ISP)
Indirizzi fissiPer fare in modo che un determinato computer
riceva sempre lo stesso indirizzo IP:
host portatile { hardware ethernet 00:0B:6A:B4:9E:12; fixed-address 192.168.1.22;}host compaq { hardware ethernet 00:0E:2F:63:63:45; fixed-address 192.168.1.191;}
Server SMTPInstalliamo Postfix (questa operazione
rimuovera' il server SMTP che Debian fornisce come predefinito: exim4)
# apt-get install postfix
scegliamo l'opzione “smarthost”
Nella prossima schermata dobbiamo inserire il server SMTP del nostro provider
A questo punto postfix si avvia ma non ci sara' ancora possibile usarlo per spedire email.
Dobbiamo definire l'intervallo di indirizzi IP che hanno il permesso di effettuare l'inoltro della
posta a domini esterni (relay).Come punto di partenza possiamo abilitare al
relay solo la nostra rete interna:
192.168.1.0/24 o 192.168.1.0/255.255.255.0
# postconf -e "mynetworks = 127.0.0.0/8, 192.168.1.0/24"
# postifx reload
!!Attenzione!!
NON impostate in “mynetworks” intere classi di indirizzi pubblici o peggio “0.0.0.0/0.0.0.0”
Questo renderebbe il vostro server un “open relay”, bersaglio ideale per gli spammer.
I log del server SMTP
Si trovano in /var/log/mail.log
PROXY e CONTENT FILTERING
La nostra LAN sotto controllo
SQUID
# apt-get install squid
Editiamo il flle di configurazione/etc/squid/squid.conf
visible_hostname debian
decommentare:
acl our_networks src 192.168.1.0/24
http_access allow our_networks
Rendiamo il nostro proxy “trasparente”(..continua nel file squid.conf)
http_port 3128 transparent
e infine:
# Iptables -t nat -A PREROUTING -i eth0 -p tcp -dport 80 -j REDIRECT –
to-port 3128
Perche' tutto cio'?In questo modo gli host della LAN
non devono configurare manualmente il proxy per navigare:
qualsiasi connessione verso l'esterno sulla porta 80 (in pratica tutto il
traffico web) viene rediretto sulla porta 3128, dove gira il nostro proxy.
Non si puo' sfuggire :-)
Alcune semplici restrizioniSempre nel file squid.conf:
acl proibiti dstdomain www.youtube.comhttp_access deny proibiti
(blocca l'accesso al sito www.youtube.com)
acl blockregexurl url_regex -i sex score ebayhttp_access deny blockregexurl
(blocca l'accesso a tutti I siti il cui URL contiene “sex”, “score”, “ebay”)
Riavviamo squid
/etc/init.d/squid restart
Semplici regole firewall
# iptables -I INPUT -s 123.123.123.123 -j DROP
(blocca l'accesso al nostro server da 123.123.123.123)
# iptables -I INPUT -p icmp -j DROP(blocca I pacchetti ICMP verso il nostro server)
Morale della favolaAvere un server in casa mi fa sentire come “il piccolo sistemista”, e' tutto
molto eccitante, ho il controllo di tutto, ma...
SONO COSTRETTO A BUTTARE IL SERVER E A TORNARE
COME PRIMA.
PERCHE'?
NON HO PIU' UN ID ALTO SU EMULE!!!!
Riprendendo l'analogia dell'ufficio..
Dall'esterno non e' possibile telefonare direttamente alla
postazione del dipendente “X”.
Bisogna chiamare il numero pubblico (085123123) e farsi passare l'interno desiderato.
Destination Nat
# iptables -A PREROUTING -p tcp –dport 4662 -j DNAT –to 192.168.1.2:4662
# iptables -A PREROUTING -p udp –dport 4672 -j DNAT –to 192.168.1.2:4672
...questo permette al PC ha indirizzo 192.168.1.2 di usare correttamente Emule
(configurato sulle porte 4662/TCP e 4672/UDP)
Qualche comando per monitorare il tutto...
Ps uax mostra I processi aperti sul servernetstat -na mostra le connessioni attive al momentodf -h per monitorare lo spazio residuofree memoria (fisica e virtuale) impiegatatop carico della macchinatcpdump il “fonendoscopio” delle reti
Tutto chiaro?Se siete principianti e avete risposto “SI”,
allora siete sulla cattiva strada.
Questa guida e' estremamente semplificata e dovrebbe avervi lasciato con moltissime
domande sui vari servizi (DNS, SMTP, etc...) e sui concetti di networking.
Siete invitati ad approfondire!!
Documentazione
http://a2.pluto.ithttp://tldp.org/LDP/sag/html/index.ht
mlhttp://tldp.org/LDP/nag/node1.html
http://www.netfilter.org (anche in ITA)RFC 821 (SMTP)RFC 1035 (DNS)