alessandro

alessandro

(0 commenti, 21 articoli)

Questo utente non ha condiviso alcuna informazione del profilo

Articoli di alessandro

Dump di un disco via rete

Facile ricetta, 1 stella di difficoltà.

se vogliamo effettuare una copia di un disco locale su una macchina remota:

dd if=/dev/sdX | ssh host.destinazione.com dd of=file.dd

se vogliamo anche comprimere:

dd if=/dev/sdX | gzip -1 | ssh host.destinazione.com gzip -dc | dd of=file.dd

🙂

Growl – compilazione

La nuova versione di Growl per OsX è scaricabile solo a pagamento dal Mac App Store.

Per compilare la versione open source per prima cosa si scarica e installa Mercurial.

da terminale creiamo una cartella dove mettere i nostri sorgenti e poi cloniamo i sorgenti:

mkdir dev
cd dev
hg clone https://code.google.com/p/growl/

a questo punto, sempre da console:

xcodebuild -project Growl.xcodeproj -target Growl.app -configuration Release

se vengono segnalati degli errori di firma del codice eseguire l’applicazione “Accesso Portachiavi” (Applicazioni/Utility) e, dal menù Accesso Portachiavi scegliere Assistente certificato e poi Crea certificato

Copiare il nome richiesto (“3rd Party Mac Developer…”) e scegliere come tipo di certificato “Firma codice

eseguire di nuovo xcodebuild

🙂

Debian e qemu/libvirt per la virtualizzazione

Appunti sulla virtualizzazione con debian/64 e qemu/libvirt

Si parte da un’installazione classica (e leggerissima) di GNU/Debian 64 bit.

Il partizionamento di base prevede una partizione di boot da 350MB circa e il resto del disco (o del sottosistema MD) come volume LVM.
La partizione di root è 7,4GB
Lo swap è almeno il doppio della ram.

Per la rete si crea un bridge su cui si connette poi la ethernet fisica (eth0 in questo caso) e su cui si connettono poi le ethernet delle VM:

/etc/network/interfaces 
auto lo
iface lo inet loopback
# The primary network interface
auto br0
iface br0 inet static
  address 192.168.1.1
  netmask 255.255.255.0
  network 192.168.1.0
  broadcast 192.168.1.255
  gateway 192.168.1.254
  bridge_ports lan
  bridge_stp on
  bridge_maxwait 0
  bridge_fd 0

Per installare tutto basta:

apt-get install qemu-kvm libvirt-bin virtinst

Per avviare l’installazione di una vm (in questo caso chiamata “monit”) dobbiamo semplicemente creare un disco per la vm:

lvcreate -L8G -n vmdisk-monit vol

A questo punto, avendo creato il disco, possiamo creare la VM:

virt-install --name=monit --ram 512 --vnc :0 \
--disk path=/dev/vol/vmdisk-monit --network=bridge:br0 \
--os-type=linux --cdrom /ISO/debian-6.0.3-amd64-CD-1.iso

a questo punto per connettervi con VNC alla console dal vostro pc/client potete:

ssh [email protected] -L 5900:127.0.0.1:5900
vnc localhost:0

alcuni comandi utili per la gestione delle vm:

virsh start monit
virsh setvcpus monit 1

Per riferimento esistono diversi sistemi per la gestione:

http://archipelproject.org/
http://pve.proxmox.com/

🙂

INPS UniEMens errore 417

La procedura UniEMens, dietro ad un proxy trasparente basato su squid, potrebbe fallire con errore HTTP 417: Expectation Failed.

Questo errore avviene quando la procedura invia un header che squid (sia versione 2.7 che 3.1) non riesce a gestire correttamente.

La prima soluzione è quella di utilizzare iptables per nattare, senza passare attraverso il proxy, la destinazione delle richieste (www.inps.it: 94.86.41.16):

iptables -A INPUT -p ALL --destination 94.86.41.16 -j ACCEPT

Questa prima soluzione, sinceramente, non è molto carina. Si può operare, invece, direttamente sulla configurazione di squid.

E’ sufficiente inserire la direttiva:

ignore_expect_100 on

nel file di configurazione di squid (solitamente /etc/squid/squid.conf).

Nel caso in cui il vostro firewall sia un ipFire potete aggiungere la direttiva nel file /var/ipfire/proxy/advanced/acls/include.acl e poi riavviare il proxy dall’interfaccia web.

🙂

Permessi cartelle e file

E’ il più banale dei problemi eppure tutte le volte ci perdo il capo.

Cambiare in una cartella, in modo ricorsivo, tutti i diritti di file e cartelle impostando, per esempio, 0660 per i file (r w – r w – – – ) e 0770 per le cartelle (r w x r w x – – ).

facciamo un bel:

chmod -R 0660 *
find . -type d -exec chmod 0770 {} \;

ed è tutto fatto!

🙂

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(DOMINIO\nomeutente) gid=278921729(DOMINIO\domain^users) gruppi=278921729(DOMINIO\domain^users)

per controllare ulteriormente la presenza di un utente:

# /opt/likewise/bin/lw-find-user-by-name DOMINIO\\nomeutente
User info (Level-0):
====================
Name:              DOMINIO\nomeutente
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
DOMINIO\nomeutente: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 = @DOMINIO\domain^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?

🙂

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

🙂

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.

🙂

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ò…

🙂

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!

🙂

alessandro's RSS Feed
Torna all'inizio