Wednesday, July 27, 2011

OpenFire, SSL si certificate intermediare CA

Dupa cite am observat in ultima vreme mai toate (sau toate?) Root CA Authorities nu mai emit direct certificate semnate de ele, ci toate folosesc un Intermediate CA ca sa semneze certificatul (din motive de securitate). Majoritatea serverelor au o optiune care sa-ti permita sa specifici acest Intermediate CA, de exemplu la Apache:


SSLCertificateFile /etc/pki/tls/certs/domeniu.crt
SSLCertificateKeyFile /etc/pki/tls/private/domeniu.key
SSLCertificateChainFile /etc/pki/tls/certs/RapidSSL_CA.pem

Din pacate Openfire nu are o astfel de optiune si aici solutia este sa introduci certificatul in 'truststore' o baza de date cu certificate 'trusted'. Solutia pentru Openfire este:

/opt/openfire/jre/bin/keytool -import -trustcacerts -keystore \ /opt/openfire/resources/security/truststore -file \
/etc/pki/tls/certs/RapidSSL_CA.pem -alias RapidSSL_CA

dupa acest pas se reporneste Openfire si se incarca certificatul. Daca nu am fi incarcat Intermediate CA-ul in truststore, ar fi dat eroare pasul in care incercam sa incarcam certificatul.

Parola implicita pentru truststore este 'changeit'.

Tuesday, July 19, 2011

Volume criptate in Linux (partea a 2-a)

Cum am promis, cum sa montam automat un device criptat in Linux. Din cauza ca un device criptat intii se "deschide" nu il putem pune direct in /etc/fstab, asa ca pentru astfel de device-uri exista /etc/crypttab.
Formatul pentru crypttab (simplific pentru volume LUKS) este:

<nume>   <device>   none

unde nume este numele sub care va fi disponibil device-ul criptat (/dev/mapper/),
device este volumul criptat (/dev/sdb3 de exemplu)
al 3-lea cimp este pentru parola, none in cazul nostru pentru ca vrem sa fie citita de la consola

O mica paranteza, in loc de device putem pune UUID-ul device-ului, pentru ca volumele formatate cu LUKS au in header un UUID, care se poate citi cu comanda cryptsetup luksUUID /dev/device. Folosing UUID in ne ajuta daca /dev/sdb3 se "muta" din diferite motive.



# cryptsetup luksUUID /dev/sdb3
3743ed56-2ab4-44d8-ad22-6f9c1bc4f1f1

Pentru exemplul din postul anterior, /etc/crypttab devine:

sdb3      UUID=3743ed56-2ab4-44d8-ad22-6f9c1bc4f1f1      none

Iar pentru montarea automata in /etc/fstab, linia din fisier este:

/dev/mapper/sdb3   /secret   ext4   defaults    0 0

Spor la criptat date! 

Volume criptate in Linux

Postul asta are doua scopuri: sa-mi aduc aminte cum se foloseste cryptsetup in Linux si sa ramina "pentru posteritate".

In Linux sunt 2 solutii pentru criptarea datelor:

  • cryptsetup simplu, unde criptezi cu dm-crypt o partitie, volum LVM sau un fisier. Spun ca e simplu pentru ca poti folosi o parola sau un fisier pentru securizarea datelor si cam atit. Nu ca asta le face mai putin sigure, dar e mai complicat cind pierzi parola sau fisierul.
  • cryptsetup folosind LUKS (Linux Unified Key Setup) solutie care o voi descrie in contiuare. Cu LUKS exista posibilitatea de a folosi mai multe chei (sunt 8 sloturi) pentru criptarea datelor
Pentru inceput alegem device-ul ce va fi criptat, in acest exemlu /dev/sdb3

/dev/sdb3           19453       38913   156320482+  83  Linux

Alegem cifru AES-256, hash pentru parola SHA512 iar linia de comanda pentru crearea partitiei criptate va fi:

# cryptsetup -c aes -s 256 -h sha256 luksFormat /dev/sdb3
WARNING!
========
This will overwrite data on /dev/sdb3 irrevocably.

Are you sure? (Type uppercase yes): YES
Enter LUKS passphrase:
Verify passphrase:
Command successful.

Dupa aceasta operatie, avem o partitie criptata si atit. Pasul urmator e sa o "deschidem" ca sa o putem formata cu un sistem de fisiere ca sa putem folosi partitia ca pe orice alta partitie:

# cryptsetup luksOpen /dev/sdb3 sdb3
Enter LUKS passphrase for /dev/sdb3:
key slot 0 unlocked.
Command successful.

Dupa aceasta comanda, vom avea acces la partitia criptata prin /dev/mapper/sdb3 (am ales numele sa fie identic cu partitia ca sa fie mai simplu pentru mine). Pasul urmator e sa formatam partitia:

# mkfs.ext3 -i 65536 /dev/mapper/sdb3
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
2443264 inodes, 39079863 blocks
1953993 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=0
1193 block groups
32768 blocks per group, 32768 fragments per group
2048 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000, 7962624, 11239424, 20480000, 23887872

Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

Acum putem monta partitia /dev/mapper/sdb3 unde dorim:

# mount /dev/mapper/sdb3 /mnt/
# df | grep sdb3
/dev/mapper/sdb3     156003840    192072 147995796   1% /mnt

Cind nu mai avem nevoie de partitia criptata, se va demonta si inchide device-ul (cryptsetup luksClose /dev/mapper/sdb3).

Voi reveni in alt post cu solutii de montare automata a partitiilor criptate.



Friday, July 15, 2011

WRT54GL Bridge mode

Am cautat pe google destul de mult cum poti sa pui un WRT54GL in bridge mode (adica sa nu ai routing activat, vrei ca clientii de pe wireless sa fie in aceeasi retea cu clientii de pe LAN) si jumatate din raspunsuri au fost 'nu se poate' cealalta jumatate erau 'pune DD-WRT pe el'. Cu ajutorul unui prieten m-am luminat (desi culmea el m-a intrebat cum se face pentru ca modificase ceva si nu ii mai mergea :) ).

Solutia e exterm de simpla: pui cablul in orice port de LAN in loc de portul de WAN, deoarece porturile de LAN sunt deja in bridge cu portul Wireless.
Ca sa nu ai probleme cu eventualele servere DHCP deja existente pe retea trebuie sa dezactivezi serverul DHCP din WRT54GL.
Administrarea ulterioara o faci prin IP-ul local al echipamentului.

Focus follows mouse pe Windows

Fiind "in deplasare" acum, sunt cam obligat sa folosesc desktop-ul sotiei, care ruleaza Windows. Primul lucru care il simti cind treci de la Linux la Windows e ca trebuie sa dai un click in plus pe fiecare fereastra unde vrei sa scrii ceva.

Dupa ceva cautare am gasit solutia: TXMouse care face focus follows mouse si ca bonus, mouse select to clipboard, si paste cu middle-click.

Recomand tuturor utilizatorilor de Linux care sunt "refugiati" pe un Windows.