Archive › Agosto, 2011

Debian samba server connesso ad Active Directory

Per connettere un server samba (basato su debian, ovviamente) ad un dominio Active Directory possiamo utilizzare i tool di LikeWise:

scarichiamo i tool dal sito BeyondTrust oppure da qui nelle versioni per i386, amd64 (e anche per OsX)

rendiamo eseguibile lo script

# chmod a+x LikewiseOpen-6.0.0.8388-linux-amd64-deb.sh

e lo eseguiamo:

# ./LikewiseOpen-6.0.0.8388-linux-amd64-deb.sh

e seguiamo tutte le istruzioni.
al termine della procedura connettiamo il server al dominio Active Directory (qui il dominio si chiama ”dominio” ed il suo fqdn è ”dominio.fqdn.com”):

# domainjoin-cli join dominio.fqdn.com administrator

riavviamo.

possiamo connetterci al server con un utente di dominio utilizzando la sintassi:

# ssh dominio\[email protected]

a questo punto, dopo essere diventati root con ”su” possiamo controllare lo stato del sistema:

# /opt/likewise/bin/lwsm list
lwreg       running (standalone: 1185)
dcerpc      running (standalone: 1718)
eventlog    running (standalone: 1730)
lsass       running (standalone: 1493)
lwio        running (standalone: 1344)
netlogon    running (standalone: 1285)
rdr         running (io: 1344)

e

# /opt/likewise/bin/domainjoin-cli query
Name = nomeserver
Domain = DOMINIO.FQDN.COM
Distinguished Name = CN=NAS,CN=Computers,DC=dominio,DC=fqdn,DC=com

e con:

# /opt/likewise/bin/lw-get-status
[cut]

per avere informazioni su un utente di dominio possiamo:

# id dominio\nomeutente
uid=278922328(DOMINIOnomeutente) gid=278921729(DOMINIOdomain^users) gruppi=278921729(DOMINIOdomain^users)

per controllare ulteriormente la presenza di un utente:

# /opt/likewise/bin/lw-find-user-by-name DOMINIO\nomeutente
User info (Level-0):
====================
Name:              DOMINIOnomeutente
SID:               S-1-5-21-2525912273-188867155-4035306855-1112
Uid:               278922328
Gid:               278921729
Gecos:             Nome Utente
Shell:             /bin/sh
Home dir:          /home/local/DOMINIO/nomeutente
Logon restriction: NO

e

# wbinfo -i DOMINIO\nomeutente
DOMINIOnomeutente:x:278922328:278921729:Nome Utente:/home/local/DOMINIO/nomeutente:/bin/sh

e testiamo la connessione con password:

 wbinfo -a DOMINIO\nomeutente%PASSWORD
plaintext password authentication succeeded

adesso che l’autenticazione funziona perfettamente passiamo a modificare la configurazione di samba, con l’aggiunta di una condivisione di esempio:

/etc/samba/smb.conf:
# Global Settings
[global]
   workgroup = DOMINIO
   server string = %h server
# Authentication #
   security = ADS
   realm = DOMINIO.FQDN.COM
   machine password timeout = 0
   encrypt passwords = true
   passdb backend = tdbsam
   obey pam restrictions = yes
   unix password sync = yes
   pam password change = yes
# condivisione
[Condivisione]
   comment = Condivisione
   path = /raid/condivisione
   browseable = yes
   read only = no
   create mask = 0660
   directory mask = 0770
   valid users = @DOMINIOdomain^users

modifichiamo i permessi ed il proprietario della condivisione:

# chmod 0770 /raid/condivisione
# chown DOMINIO\nomeutente:DOMINIO\domain^users /raid/condivisione

controlliamo se la versione è corretta:

# /opt/likewise/bin/samba-interop-install --check-version
Found smbd version 3.5.6
Samba version supported

adesso dobbiamo usare il comando magico:

# /opt/likewise/bin/samba-interop-install --install
# service samba restart
# service winbind restart

testiamo la connessione con il dominio:

# net ads testjoin
Join is OK

tutto ok?

🙂

Comments ( 0 )

Samba e problemi di permessi da OsX

Abbiamo una condivisione samba con le opzioni:

  force group = nomegruppo
  create mask = 0660
  directory mask = 0770

l’intenzione è quella di scrivere i file forzando il gruppo su “nomegruppo” in modo che tutti gli utenti di quel gruppo possano scrivere, modificare e cancellare i file creati.

I permessi dei file saranno -rw-rw—- e quelli delle cartelle -rwxrwx—

Quando però accediamo a questa condivisione con OsX troviamo i permessi dei file nella condizione -rw-r—–. Il gruppo può solamente leggere ma non modificare o cancellare.

Per ovviare a questo problema dobbiamo aggiungere una direttiva nella sezione [globals] del file di configurazione di samba (/etc/samba/smb.conf):

unix extensions = off

e riavviare samba:

# service samba restart

🙂

Comments ( 0 )

Gruppi, utenti e condivisioni samba

per prima cosa aggiungiamo gli utenti necessari:

# adduser nomeutente

poi lo aggiungiamo agli utenti samba:

# smbpasswd -a nomeutente

a questo punto, dopo aver creato tutti gli utenti, creiamo i gruppi:

# addgroup nomegruppo

baseremo le nostre condivisioni sui gruppi, dobbiamo quindi aggiungere gli utenti ai gruppi (mettere gli utenti dentro i gruppi):

# usermod -a -G nomegruppo nomeutente

in questo modo abbiamo messo l’utente ”nomeutente” dentro il gruppo ”nomegruppo”

creiamo la condivisione e aggiustiamo i permessi:

# mkdir /raid/condivisione
# chown  nomeutente:nomegruppo /raid/condivisione
# chmod 0770 /raid/nomecondivisione

a questo punto possiamo passare a modificare la configurazione di samba (/etc/samba/smb.conf).
Aggiungiamo la definizione della condivisione:

[NomeCondivisione]
  path = /raid/nomecondivisione
  read only = no
  force group = nomegruppo
  create mask = 0660
  directory mask = 0770
  valid users = nomeutente, nomeutente2, nomeutente3

e riavviamo samba

# service samba restart

a questo punto possiamo accedere dalla rete alla condivisione. I file creati saranno di proprietà dell’utente connesso ma saranno modificabili da tutti gli utenti appartenenti al gruppo.

🙂

Comments ( 0 )

Creazione di un dispositivo raid MD e del filesystem

Se creiamo un dispositivo MD su linux (sia raid 1 che raid 5) la ricostruzione inizia immediatamente.

Se vogliamo creare anche il filesystem e magari fare qualche prova appena effettuata la creazione possiamo andare incontro a rallentamenti veramente imbarazzanti (specie su dischi di grande capienza)

Si può ovviare a tutto questo creando un raid degradato – per il sistema è impossibile aggiornare il mirror o i dati di ridondanza quindi momentaneamente il raid non viene riallineato e lo possiamo utilizzare per fare le nostre prove.

vediamo come

# apt-get install mdadm
mdadm --create /dev/md0 --level=mirror --raid-devices=2 /dev/sda1 missing
mdadm: Note: this array has metadata at the start and
    may not be suitable as a boot device.  If you plan to
    store '/boot' on this device please ensure that
    your boot-loader understands md/v1.x metadata, or use
    --metadata=0.90
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.

se controlliamo lo stato del dispositivo:

# cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sda1[0]
      1953510841 blocks super 1.2 [2/1] [U_]
 unused devices:

vediamo che è degradato ed in questo momento non c’è il riallineamento

possiamo creare il filesystem velocemente e fare tutte le prove del caso:

# mkfs.ext4 -m 1 -L RAID /dev/md0
mke2fs 1.41.12 (17-May-2010)
Etichetta del filesystem=RAID
Tipo SO: Linux
Dimensione blocco=4096 (log=2)
Dimensione frammento=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
122101760 inode, 488377710 blocchi
4883777 blocchi (1.00%) riservati per l'utente root
Primo blocco dati=0
Maximum filesystem blocks=4294967296
14905 gruppi di blocchi
32768 blocchi per gruppo, 32768 frammenti per gruppo
8192 inode per gruppo
Backup del superblocco salvati nei blocchi:
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
	4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
	102400000, 214990848
Scrittura delle tavole degli inode: fatto
Creating journal (32768 blocks): fatto
Scrittura delle informazioni dei superblocchi e dell'accounting del filesystem: fatto
Questo filesystem verrà automaticamente controllato ogni 26 mount, o
180 giorni, a seconda di quale venga prima. Usare tune2fs -c o -i per cambiare.

appena finito aggiungiamo al raid il disco mancante; inizierà il riallineamento

# mdadm --manage /dev/md0 --add /dev/sdb1
mdadm: added /dev/sdb1

a questo punto parte la sincronizzazione dei due dischi:

cat /proc/mdstat
# cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sdb1[2] sda1[0]
      1953510841 blocks super 1.2 [2/1] [U_]
      [>....................]  recovery =  0.0% (1430016/1953510841) finish=788.5min speed=41258K/sec
unused devices:

e ci vorrà un bel pò…

🙂

Comments ( 0 )

Rimuovere il partizionamento GPT da un disco

Per rimuovere da un disco il partizionamento di tipo GPT si può procedere così:

# apt-get install parted

appena installato parted eseguirlo (tipicamente parted /dev/sdx)

al prompt di parted eseguire “mktable” e definire una partizione msdos

# parted /dev/sdb
GNU Parted 2.3
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mktable
New disk label type? msdos
(parted) quit
Information: You may need to update /etc/fstab.

la partizione gpt è sparita!

🙂

Comments ( 0 )