Servizi passo a passo

Appunti sulla installazione e configurazione dei servizi

Author:Andrea Manni
Copyright:GFDL
Version:0.2

Contents

Generato con: http://docutils.sourceforge.net/rst.html

Configurazione sistema

Inpostazioni di base per la configurazione del sistema operativo

Rete

Parametri della rete attualmente in uso:

============= ================
 rete         10.10.208.0/24
============= ================
netmask       255.255.255.0
broadcast     10.10.208.255
gateway       10.10.208.254
gateway       10.10.208.250
              persistente
DNS           10.10.208.254
DNS           10.10.208.250
              persistente
============= ================

Bash completion

Abilitare /etc/bash_completion nel file /etc/bash.bashrc oppure ~/.bashrc

. /etc/bash_completion

/etc/bash_completion deve essere pre istallato, nel caso che non sia disponibile installare il pacchetto: bash-completion

Vim

Sara' opportuno installare la versine completa dell'editor vim tramite il pacchetto vim e mnodificare il file di configurazione generale /etc/vim/vimrc

" All system-wide defaults are set in $VIMRUNTIME/debian.vim (usually just
" /usr/share/vim/vimcurrent/debian.vim) and sourced by the call to :runtime
" you can find below.  If you wish to change any of those settings, you should
" do it in this file (/etc/vim/vimrc), since debian.vim will be overwritten
" everytime an upgrade of the vim packages is performed.  It is recommended to
" make changes after sourcing debian.vim since it alters the value of the
" 'compatible' option.

" This line should not be removed as it ensures that various options are
" properly set to work with the Vim-related packages available in Debian.
runtime! debian.vim

" Uncomment the next line to make Vim more Vi-compatible
" NOTE: debian.vim sets 'nocompatible'.  Setting 'compatible' changes numerous
" options, so any other options should be set AFTER setting 'compatible'.
"set compatible

" Vim5 and later versions support syntax highlighting. Uncommenting the next
" line enables syntax highlighting by default.
syntax on

" If using a dark background within the editing area and syntax highlighting
" turn on this option as well
set background=dark

" Uncomment the following to have Vim jump to the last position when
" reopening a file

if has("autocmd")
  au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$")
    \| exe "normal! g'\"" | endif
endif

" Uncomment the following to have Vim load indentation rules and plugins
" according to the detected filetype.
if has("autocmd")
  filetype plugin indent on
endif

" The following are commented out as they cause vim to behave a lot
" differently from regular Vi. They are highly recommended though.
set showcmd             " Show (partial) command in status line.
"set showmatch          " Show matching brackets.
set ignorecase          " Do case insensitive matching
"set smartcase          " Do smart case matching
"set incsearch          " Incremental search
set autowrite           " Automatically save before commands like :next and :make
"set hidden             " Hide buffers when they are abandoned
"set mouse=a            " Enable mouse usage (all modes) in terminals

" Source a global configuration file if available
" XXX Deprecated, please move your changes here in /etc/vim/vimrc
if filereadable("/etc/vim/vimrc.local")
  source /etc/vim/vimrc.local
endif

VNC

Scaricare il pacchetto xtightvncviewer, e lo script guarda.sh che deve essere reso eseguibile in una posizione (nel senso di collocazione nel path degli utenti) comoda per gli utenti.

Procedura:

su root
cd /bin
wget http://debian.piffa.net/guarda.sh
chmod +x guarda.sh
exit

Si noti, per pieta' divina, che non e' possibile lanciare un applicativo grafico sul server grafico di un utente di sistema da una shell in cui si e' loggati come altro utente, in questo caso root. E' quindi necessario essere l'utente di sistema che si e' loggato inizialmente nella sessione grafica per poter lanciare lo script guarda.sh .

Lista dei pacchetti di base

I pacchetti installati generalemnte durante le lezioni sono:

kde-core kdm kde-i18n-it xorg vim less xtightvncviewer

Apt configurazione

Vediamo i due file principali di apt:

* /etc/apt/sources.list

* /etc/apt/apt.conf

sources.list

Questo file contiene i sorgenti da cui apt preleva i pacchetti da installare tramite dpkg, vengono quindi precisati i metodi (ad es. http / ftp / cdrom / file), la release che si vuole tracciare (es stable , testing , unstable oppure i corrispondenti release name es: lenny, squeeze, sid), i rami di interesse (es: main che e' la parte principale, non-free per il software non libero, contrib per i pacchetti non realizzati dai manutentori ufficiali).

Gli archivi sono generalemnte:

* deb per pacchetti debian binari

* deb-src per i pacchetti sorgenti (quindi da compilare, come il kernel) degli stessi pacchetti binari. Se non compilate generalmente i vostri pacchetti potete evitare di tracciare i sorgenti per risparmiare tempo e banda.

/etc/apt/sources.list

# esempio di accesso a un CDROM:
# cdrom:[Debian GNU/Linux 5.0.1 _Lenny_ - Official i386 kde-CD Binary-1 20090$

# Archivio principale debian via http su piffa.net,
# non funziona al difuori dell'aula dei corsi
deb http://debian.piffa.net/debian/ lenny main
# deb http://debian.piffa.net/debian/ lenny  non-free contrib

# Mirror da kernel.org da usare a casa:
deb http://mirrors.eu.kernel.org/debian/ lenny main

# Security dal sito principale
deb http://security.debian.org/ lenny/updates main
deb-src http://security.debian.org/ lenny/updates main

# Debian volatile per le cose soggette a cambiamenti non legati
# a dinamiche di sicurezza
deb http://volatile.debian.org/debian-volatile lenny/volatile main
deb-src http://volatile.debian.org/debian-volatile lenny/volatile main

# Esempio di accesso a un filesystem locale contenente i pacchetti:
# deb file:/mnt/mirror sid main non-free contrib

/etc/apt/apt.conf

Questo file contiene le opzioni di apt, come ad esempio il proxy:

Acquire::http::Proxy "http://10.10.208.254:3128"

Samba

Pacchetti da installare per utilizzare samba in modalita' server:

samba smbfs smbclient

Durante la prima installazione viene chiesto ilnome del gruppo di appartenenza, il default per windows e' WORKGROUP. In aula usiamo invece 208 . Per riconfigurare samba si usi il comando:

dpkg-reconfigure samba-common

Quando si utilizza samba bisogna tener conto di 3 livelli di password:

  • Sistema *Unix E' la password di sistema che viene usata sul sistema operativo su cui gira 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 sul file system per mancanza di privilegi allora neanche samba potra' farlo nel momento in cui gli mette a disposizione la risorsa. Queste passwords sono salvate nel solito file /etc/shadow (richiamato da /etc/passwd).
  • Password per l'applicativo samba Samba deve essere compatibile con Windows e quindi utilizzare un sistema di criptazione delle password diverso da /etc/shadow.a Le password per l'applicativo samba vengono gestite ad esempio col comando smbpasswd e vengono salvate all'interno di /var/lib/samba/passdb.tdb .
  • Password per windows. Gli utenti windows effettuazno il log-in alla partenza della sessione di windows. Se si avra' l'accortezza di usare la stessa password data precedentemente anche a windows (o viceversa impostare la password per GNU/Linux / Samba ugale a quella di Windows) l'utente potra' accedere automaticamente alle condivioni a lui disponibili.

Password di samba vengono salvate nel file: /var/lib/samba/passdb.tdb

Creazione Utenti

Creiamo per primo l'utente sotto GNU/Linux, facendo attenzione a non dargli una shell di sistema. Gli utenti Windows non hanno bisogno di poter eseguire comandi sul server!

Creazione di un utente denominato sambo:

adduser --shell /bin/false sambo

Nota: Ricordarsi di usare sempre la stessa password. nel file /etc/passwd avremo qualcosa come:

sambo:x:1001:1001:Sambo utente samba!,,,:/home/sambo:/bin/false

Aggiunta dell'utente al database delle password per samba e generazione della sua password:

smbpasswd -a sambo

Se sucessivamente si vorra' modificare la password di un utente gia' esistente si usi:

smbpasswd sambo

La password sotto windows verra' modificata sul sistema Windows.

Creare la condivisione

La condivisione altro non e' che una cartella sul server che viene resa disponibile sui client negoziando l'accesso in base all'autenticazione tramite esername / password. Si decida se fisicamente debba risiendere nella home di un utente (nel caso quest'ultimo ne sia l'unico fruitore) o in una cartella in /mnt/ nel caso piu' utenti accedano a questa. Nel secondo caso si gestiscano gli accessi sotto GNU/Linux tramite i gruppi.

Creazione della risorsa sambo_share nella home dell'utente sambo:

# mkdir /home/sambo/sambo_share
# chown sambo:sambo /home/sambo/sambo_share/

Bisognerebbe notare i permessi di esecuzione del filesystem che ospita la carterlla. 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 consista in un file system dedicato:

In /etc/fstab

/dev/hda10       /mnt/share      ext3    rw,nosuid,noexec  0  3

Si noti anche l'uso di nosuid per evitare la possibilita' di eseguire programmi con credenziali diverse da quelle originali.

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.

/etc/samba/smb.conf riga ~235 , Share Definitions (in vim si usi 235gg ):

[sambo_share]
        # Percorso della cartella condivisa
        path = /home/sambo/sambo_share
        # Se gli utenti possono scrivere / modificare file
        writable = yes
        # Negoziazione degli accessi su base utenti / passwords
        valid users = sambo
        # Altri parametri opzionali di interesse
        # Se posso vedere la condivisione da esplora risorse
        # anche se non ho i privilegi per accedervi.
        browseable = yes
        # Commento indicativo della risorsa
        comment = Condivisione per Sambo

Dopo aver salvato il file si puo' fare un primo controllo tramite l'utility testparm , che controlla la sintassi del file di configurazione di Samba. Se questo non rileva problemi si puo' procedere a un /etc/samba# /etc/init.d/samba restart .

Testare il Servizio

Come testare il servizio

es:

smbclient -U sambo -L localhost

Questo comando permette di esplorare la risorsa qualificandosi come utnete, in quresto modo potete testare il corretto funzionamento dell'autenticazione. Si provi inizialmente a sbagliare la password deliberatamente, poi a inserirla correttamente: dovrebbbero essere visibili le risorse disponibili al solo utente sambo: la suo /home e la cartella samba_share:

Sharename       Type      Comment
---------       ----      -------
sambo_share     Disk      Condivisione per Sambo
print$          Disk      Printer Drivers
IPC$            IPC       IPC Service (base server)
sambo           Disk      Home Directories

In alternativa e' possibile montare realmente la condivisone anche su linux tramite un client per samba e testare il corretto funzionamento:

mount -t smbfs //localhost/sambo_share /mnt/sambo_mount/ --verbose -o user=sambo