:Author: Andrea Manni
:Copyright: GFDL
- :Version: 0.94
+ :Version: 0.95
Questa guida tratta la configurazione di base dei principali servizi di rete utilizzati con sistemi operativi *Unix* e derivati come *GNU/Linux* per gli studenti dei corsi per amministratori di rete in ambiente *GNU/Linux*. In particolare questa guida e' stata scritta usando come riferimento la distribuzione *Debian GNU/Linux*. Gli esempi presentati dovrebbero quindi essere direttamente utilizzabili anche su distribuzioni derivate da Debian come Ubuntu, per sistemi operativi diversi si presti attenzione ai percorsi dei file citati.
Per poter configurare Samba in modo che usi un sistema di negoziazione degli accessi alle cartelle condivise basato su accoppiate *nome utente / password* bisogna distinguere tra 3 livelli di password (e generalmente volete usare *sempre la stessa password* per ognuno di questi) e delle differenze tra le modalita' di *autenticazione* (e quindi anche di criptaggio delle passwords) usate da sistemi GNU/Linux e Windows:
1 Sistema \*Unix ( GNU/Linux )
- E' la password dell'*utente di sistema* che viene usata sul sistema operativo su cui gira il software Samba. E' importante tenere conto anche delle *user-id* e *group-id* degli utenti che dovranno fisicamente scrivere sui file system. Se un utente non puo' scrivere in una certa posizione del file system (ad esempio nella cartella ``/mnt/condivisione`` che sara' stata necessariamente creata inizialmente dall'utente ``root``) per mancanza dei privilegi di scrittura allora neanche Samba potra' farlo nel momento in mette a disposizione la risorsa all'utente. Se si montano file-system dedicati per le condivisioni controllare i permessi e proprieta' dei *punti di mount**.
+ E' la password dell'*utente di sistema* che viene usata sul sistema operativo su cui gira il software Samba. E' importante tenere conto anche delle *user-id* e *group-id* degli utenti che dovranno fisicamente scrivere sui file system. Se un utente non puo' scrivere in una certa posizione del file system (ad esempio nella cartella ``/mnt/condivisione`` che sara' stata necessariamente creata inizialmente dall'utente ``root``) per mancanza dei privilegi di scrittura allora non potra' farlo neanche quando Samba rendera' disponibile la risorsa all'utente. Se si montano file-system dedicati per le condivisioni controllare i permessi e proprieta' dei *punti di mount**.
Queste passwords sono salvate nel solito file /etc/shadow (richiamato da /etc/passwd).
2 Password per l'applicativo Samba
- Samba deve essere compatibile con Windows e quindi utilizzare un sistema di criptazione delle password diverso da /etc/shadow . Le password per Samba possono essere gestite ad esempio col comando ``smbpasswd`` e vengono generalmente salvate all'interno di ``/var/lib/samba/passdb.tdb`` .
+ Samba deve essere compatibile con Windows e quindi utilizzare un sistema di criptazione delle password diverso da ``/etc/shadow`` . Le password per Samba possono essere gestite ad esempio col comando ``smbpasswd`` e vengono normalmente salvate all'interno di ``/var/lib/samba/passdb.tdb`` .
3 Password per Windows.
Gli utenti Windows effettuano il log-in alla partenza della sessione di Windows. Se si avra' l'accortezza di usare sempre la *stessa password* data precedentemente anche a Windows (o viceversa impostare la password per GNU/Linux / Samba uguale a quella di Windows) l'utente potra' accedere automaticamente alle condivisioni a lui disponibili.
adduser --shell /bin/false sambo
-Nel file ``/etc/passwd`` avremo qualcosa come::
+Nel file ``/etc/passwd`` comparira' qualcosa come::
sambo:x:1001:1001:Sambo utente Samba,,,:/home/sambo:/bin/false
smbpasswd sambo
-La password sotto Windows verra' modificata sul sistema Windows.
+La password sotto Windows andra' modificata sul sistema Windows.
Creare la condivisione
------------------------
Sicurezza: permessi di esecuzione sul server
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-Bisognerebbe notare sul server i permessi di esecuzione del file-system che ospita la cartella da condividere. Se i file che saranno contenuti nella condivisione saranno da usarsi sotto Windows non c'e' motivo che questi siano eseguibili sotto GNU/Linux.
+A lato server si presti attenzione ai permessi di esecuzione del file-system che ospita la cartella da condividere. Se i file che saranno contenuti nella condivisione saranno da usarsi sotto Windows non c'e' motivo che questi siano eseguibili sotto GNU/Linux.
Si potrebbe avere quindi, ipotizzando una condivisione in ``/mnt/share`` che risieda su di un file system dedicato:
``/etc/fstab``
Configurazione dell'applicativo Samba vero e proprio.
------------------------------------------------------
-Avendo preparato gli utenti (ancora una volta: non si dia una shell completa a un utente che serve solo per Samba o la posta elettronica) e la cartella sul file system si puo' procedere a configurare la condivisione su Samba.
+Avendo preparato gli utenti (ancora una volta: non si dia una shell completa a un utente che accede solo a Samba o alla posta elettronica) e la cartella sul file system si puo' procedere a configurare la condivisione su Samba.
/etc/samba/smb.conf riga ~235 , Share Definitions (in vim si usi 235gg )::
------
* http://openskill.info/topic.php?ID=124
-* http://iptables-tutorial.frozentux.net/iptables-tutorial.html
+* http://www.frozentux.net/iptables-tutorial/chunkyhtml/c962.html
Ipfilter
----------
Percorso dei pacchetti tra tabelle e catene
-------------------------------------------
-link: http://iptables-tutorial.frozentux.net/iptables-tutorial.html#TRAVERSINGOFTABLES
+E importante conoscere il percorso che i paccheti seguono passando tra le varie catene, l'ordine infatti puo' cambiare il riusultato ottenuto (che il pacchetto raggiunga o meno l'host, oppure modificare il pachetto stesso).
+
+link: http://www.frozentux.net/iptables-tutorial/chunkyhtml/c962.html
Concetti di base
~~~~~~~~~~~~~~~~~~~~
Per attivare la network address translation (in questo caso un SNAT) per la rete locale privata sull'indirizzo ip del *modem*::
- iptables -A POSTROUTING -s 192.168.0.0/255.255.255.0 -o ppp0 -j MASQUERADE
+ iptables -t nat -A POSTROUTING -s 192.168.0.0/255.255.255.0 -o ppp0 -j MASQUERADE
Il *Masquerading* a differenza dello *SNAT* puro (``-j SNAT --to-source proprio_ip_pubblico ) legge l'indirizzo ip del device ``ppp0``. In questo modo se l'IP cambia automaticamente si aggiorna anche il source natting. Se avete un indirizzo IP statico assegnato al vostro gateway potete invece usare lo SNAT semplice.
iptables -A INPUT -i ppp0 -p tcp -m tcp --dport 22 -m state --state NEW -m recent --set --name DEFAULT --rsource
+
+Proc filesystem
+---------------------
+
+Tramite il filesystem virtuale **proc** possiamo monitorare talvolta anche modificarei, a seconda dei casi, alcuni parametri utili per il networking. La parte di proc che ci interessa si riconduce al percorso: ``/proc/sys/net/ipv4`` : vediamo alcuni dei parametri fondamentali.
+
+ip_forward
+~~~~~~~~~~~~~~~~~~~~~~~
+
+Questa variabile determine se l'instradamento dei pacchetti e' attvo, in caso positivo il kernel instradera' i pacchetti (routing). Con ip_forward settato a ``0`` la nostra macchina continuera' a vedere le varie reti su cui eventualmente si trova (gateway) ma non instradera' i pacchetti da parte di altri host.
+
+Questo parametro determina tutti gli instradamenti che il nostro host puo' fare, quindi e' determinante anche per NAT, firewall, masquerading.
+
+E' possibile settarlo per le singole interfacce, ad esempio per eth0: ``/proc/sys/net/ipv4/conf/eth0/forwarding`` .
+
+Per approfondimenti su cosa si intenda per instradamento: rfc1812.txt sezione 2.3::
+
+ In the Internet model, constituent networks are connected together by
+ IP datagram forwarders which are called routers or IP routers. In
+ this document, every use of the term router is equivalent to IP
+ router. Many older Internet documents refer to routers as gateways.
+
+ A router connects to two or more logical interfaces, represented by
+ IP subnets or unnumbered point to point lines (discussed in section
+ [2.2.7]). Thus, it has at least one physical interface. Forwarding
+ an IP datagram generally requires the router to choose the address
+ and relevant interface of the next-hop router or (for the final hop)
+ the destination host. This choice, called relaying or forwarding
+ depends upon a route database within the router. The route database
+ is also called a routing table or forwarding table. The term
+ "router" derives from the process of building this route database;
+ routing protocols and configuration interact in a process called
+ routing.
+
+ Routers provide datagram transport only, and they seek to minimize
+ the state information necessary to sustain this service in the
+ interest of routing flexibility and robustness.
+
+
+
+ip_default_ttl
+~~~~~~~~~~~~~~~~
+
+*Time to leave* di default usato dal nostro host: in genere ``64``.
+
+
+ip_local_port_range
+~~~~~~~~~~~~~~~~~~~~~
+
+Il range di porte usato dal nostro host quando si connette come client ad altri host. Puo' essere utile modificarlo per poi intercettare piu' facilmente i pacchetti provenienti da qusto host, oppupure quel qualunqe limitazione vogliamo imporre sul range da usarsi. Si ricorda che solo root puo' aprire porte sotto la ``1024``.
+
+
FTP Server
===========