Hesla v Solarisu a Linuxu

Lehký popis formátů hesel používaných v Solarisu a Linuxu.

Solaris 8

Heslo je uloženo v /etc/shadow a je zašifrováno pomocí šifry DES. V hesle je platných prvních 8 znaků, zbytek může být jakýkoliv.

Solaris 9, 10

Heslo je uloženo v souboru /etc/shadow. Pro jeho zabezpečení je použita šifra DES přípaně MD5 crypt nebo Blowfish. Obecně se doporučuje využívat Blowfish, protože je bezpečnější než MD5 crypt. MD5 crypt ani Blowfih netrpí omezením na 8 platných znaků v hesle, měly by brát minimálně 255 znaků.

Relativně jednoduše lze rozeznat v jakém formátu je heslo uloženo podle jeho zápisu. Šifra DES se ukládá jako 13 znakový řetězec (XFWKPqalVraU2). MD5 crypt se ukládá jako řetězec začínající $1$ ($1$COA52Z9a$tuEVG6vSXUz8rlZizosqA). Blowfish hash začíná $2a$ ($2a$04$/dlXUpiyQTHSyB1.iG97t.Tpwjlmn4QaTvpQzFZUNDX.MREFFljp2)

Výběr použité šifry (hashe) se provádí v souboru /etc/security/policy.conf

CRYPT_ALGORITHMS_ALLOW=1,2a,md5
CRYPT_DEFAULT=__unix__

V /etc/security/crypt.conf je výpis dostupných šifer (hashu), kromě __unix__.

Linux

V Linuxu se hesla ukládají do souborů /etc/passwd nebo /etc/shadow. Ukládání hesla do souboru /etc/passwd je chyba v zabezpečení počítače, protože tento soubor je čitelný všem uživatelům systému. Někteří lidé řeknou „no a co? je to přece šifrované“, ale proč dávat útočníkovi kompletní seznam hesel a uživatelů systému? Existují nástroje, pomocí kterých je relativně snadné pro každého uživatele zkusit štěstí zda neuhádnou jeho heslo.

V dnešních distribucích se hesla ukládají do souboru /etc/shadow, ke kterému má přístup pouze uživatel root. Samozřejmě tam není uloženo heslo v čistě textové podobě, ale je tam umístěn ve zkryplené podobě nejčastěji ve formátu md5 crypt.


Jak v Solarisu tak i v Linuxu můžeme využívat nějaká centrální systém pro ukládání informací o uživatelích, takže hesla na uživatelském stroji nenajdete. Například lze využít NIS, NIS+, LDAP nebo třeba i MySQL. Vše se musí nastavit přes NSS v souboru /etc/nsswitch.conf případně ještě poladit v konfiguraci PAM knihovny.

Generování hesel

DES

[tsunami@vodik]$ openssl passwd -crypt heslicko
YbuthdjKiXD46
[tsunami@vodik]$ mkpasswd -H des heslicko
JH3jPJv2hv9vg

MD5

[tsunami@vodik]$ openssl passwd -1 heslicko
$1$QahWEPoO$Y83bfcffHq4pPW/9e5iBk.
[tsunami@vodik]$ mkpasswd -H md5 heslicko
$1$KFIMS3kO$7dNyqrlONblCPs24nMkBK0

Verze použitého SW

[tsunami@vodik]$ mkpasswd --version
GNU mkpasswd 4.7.11

Copyright (C) 2001-2004 Marco d'Itri
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Kontrola pravopisu v editoru vim

Pro jednoduchou kontrolu pravopisu ve (g)vimu používám ispell a malý skriptík, který vyznačí nerozpoznaná slova.

nastavení je jednoduché, do ~/.vimrc je třeba zapsat následující 2 řádky:

command Spell source `$HOME/.vim/vimspell.sh %`
command NoSpell syntax clear SpellErrors

Obsah souboru ~/.vim/vimspell.sh (za ispellem je vše na jednom řádku, zalomil jsem to kvůli formátování):

#!/bin/sh

INFILE=$1
OUTFILE=`mktemp ${TMPDIR:-/tmp}/vimspell.sh.XXXXXX`
[ -z "$OUTFILE" ] && exit 1

ispell -l -d czech < $INFILE | sort -u |
 awk ' BEGIN { printf "if hlexists(\"SpellErrors\")\n
 syntax clear SpellErrors\nendif\nsyntax case match\n" ; }
{ printf "syntax match SpellErrors \"\\<%s\\>\"\n", $0 ; } END
{ printf "highlight link SpellErrors ErrorMsg\n\n" ; } ' > $OUTFILE

echo "!\\rm $OUTFILE" >> $OUTFILE

echo $OUTFILE

Vlastní kontrola se pak provede spuštěním příkazu Spell případně se vypne pomocí NoSpell

Xinerama a 3D akcelerace

Po delší době jsem našel redukci DVI-VGA ke sve graficke kartě, tak jsem se rozhodl že si zase užiju 2 monitorů naráz. Mám GK Radeon 9200, není to žádný 3D zázrak, ale na Quake3 a EnemyTerritory to stačí. Když jsem dřív používal Xineramu, tak jsem měl v XFree86.conf 2 profily, jeden pro Xineramu a druhý pro single head konfiguraci, která uměla 3D akceleraci. Dnes jsem po přečtení manuálové stránky k ovladači radeon zjistitl, že lze provozovat jakousi pseudo Xineramu s 3D akcelerací.

Funguji s jádrem 2.4.27 a Xorg 6.8.1 na Debianu, mám jednu grafickou kartu v AGP. Nastavení v xorg.conf je následující:

Section "Device"
    Identifier "ATI Graphics Adapter"
    Driver     "radeon"
    #Option     "NoDDC"
    Option "MonitorLayout"  "CRT, CRT"
    Option "CRT2HSync"      "30-110"
    Option "CRT2VRefresh"   "50-150"
    Option "CRT2Position"   "RightOf"
    Option "no_accel"       "no"
    Option "no_dri"         "no"
    Option "mtrr"           "off"
    Option "MergedFB"       "on"
    Option "MetaModes" "1280x1024-1280x1024"
    Option "OverlayOnCRT2"  "on"
    Option "MergedXineramaCRT2IsScreen0" "on"
EndSection

Jak vidíte, nastavení parametrů sekundárního monitoru je přímo u konfigurace ovladače GK. Při provozu dvou monitorů na Radeonu je jako primární brán monitor na DVI a sekundární na VGA konektoru. Oba monitory jedou v rozlišení 1280×1024. Sice jsem chtěl jet 1600×1200, ale to už není podporovaná 3D akcelerace. Ještě to chce do sekce Display přidat proměnou Virtual, která bude určovat velikost celého obrazu. Nikde v konfiguraci není třeba zapínat xineramu, to si ovladač radeon ošéfuje sám.

Zkoušel jsem spustit glxgears na každém monitoru a skutečně to funguje, oba používají 3D akceleraci. Pokud si spustíte nějakou fullscreen aplikaci jako je Quake, tak využije primární monitor a sekundární monitor na sobě udělá takové hnusné čmouhy. Po skončení hry ovšem normálně naběhne desktop.

Tento text jsem přetáhl z blogu na abclinuxu, kde jsem ho publikoval v březnu 2005.

Sun Fire[tm] X2100 Server

Článek vyšel 2.12.2005 na serveru abclinuxu.cz.

Když se mě Filip Korbel (Stickfish) zeptal jestli bych nechtěl otestovat jeden z posledních serverů od firmy SUN, nemohl jsem odmítnout, nové hračky mám rád. Jedná se o malý server Sun Fire[tm] X2100 s procesorem AMD Opteron a SATA disky. Server je také označovaný jako Galaxy X2100.

Jestliže jste se už setkali se servery od firmy SUN, tak první čeho si u serveru všimnete je velká změna vzhledu, kterou přináší nová řada serverů Galaxy. Klasická SUNovská fialová byla nahrazena bílou, počítač tak pasuje do barvy s Ultrou 20 :-).

Pohled na server zepředu

Pokud se odvážíte server otevřít, pozornost přiláká sada ventilátorů, najdete jich tu celkem osm. Chlazení samotného procesoru jich obstarává rovná polovina. Po zkušenostech s předchozími servery V20z a V40z jsem očekával velmi hlučný provoz, ale SUN mile překvapil. Ventilátory mají regulované otáčky a v BIOSu se dá nastavit spodní hranice kam až můžou otáčky klesnout.

Pohled na server bez horního krytu
Ventilátory
Chladič na procesoru

Dodávané konfigurace

  • 1 procesor AMD Opteron, Single Core (2,0-2,6 GHz) nebo Dual Core (2,2 GHz)
  • až 4 GiB RAM DDR, 400 MHz ECC
  • 2 šachty pro hot-pluggable 3,5′ SATA HDD, IDE DVD-ROM
  • 2x 1 Gbps ethernet
  • 6x USB 2.0, RS232 port, grafická karta ATI Rage XL, volitelně LOM pro vzdálenou správu
  • 1x napájecí zdroj 300W

Kompletní specifikace HW a také dokumentace je dostupná na webu výrobce.

Komunikaci s okolním světem zajišťují dvě gigabitové síťové karty. Jeden port patří síťové kartě, která je součástí chipsetu nVidia CK804 a druhá je od firmy Broadcom.

Kvůli přístupu k diskům není potřeba rozebírat šasí, počítač má dvě šachty pro hot-plug SATA disky přístupné zepředu. Jako záslepky jsou použity klasické rámečky na disky, takže si do serveru můžete pořídit jakýkoliv SATA disk. Řadič na desce umožňuje nastavit RAID1 nebo RAID0.

DVD-ROM mechanika je, jak je běžné u serverů, ve slim provedení. Při montáži mechaniky musíte server otevřít a uvnitř připojit datový kabel.

Pro někoho může být zajímavá přítomnost šesti USB2.0 portů použitelných například pro připojení externí DVD-RW mechaniky nebo dalších pevných disků na které se budou provádět zálohy.

Vzdálené správa je možná přes seriový port (konektor RJ45) nebo volitelný modul LOM. Standardně je na seriový port přesměrován výstup celého bootovacího procesu. Phoenix BIOS jde samozřejmě přes seriovou linku ovládat.

Zajímavou novinkou v oblasti serverů je přítomnost jednoho PCI-Express x8 slotu.

Počítač může běžet ve 32 i 64 bitovém režimu. Pro běh ve 32 bitech jsou výrobcem podporované operační systémy Red Hat Enterprise Linux 3 a Microsoft Windows 2003. V 64 bitech je možné provozovat Solaris 10, RHEL 3 a 4, SUSE Linux 9 Professional a Microsoft Windows 2003.

Testovaná konfigurace

Testovaný server byl v nejslabší dodávané variantě s procesorem Opteron 146 (2000 MHz), 512MiB RAM a SATA diskem 80GB.

Na vyzkoušení serveru jsem nainstaloval CentOS4 pro AMD64. CentOS je klonem Red Hat Enterprise Linuxu. Vychází ze stejných zdrojových kódů, ale z distribuce jsou odstraněná loga Red Hatu případně další věci, které by mohly odporovat licenčnímu ujednání firmy Red Hat.

BYTEmark

U předchozí recenze serveru (V40z) jsem uvedl hodnoty testů BYTEmark a openssl speed, proto je uvádím pro srovnání i nyní.

==========================ORIGINAL BYTEMARK RESULTS==========================
INTEGER INDEX       : 64.294
FLOATING-POINT INDEX: 37.128
Baseline (MSDOS*)   : Pentium* 90, 256 KB L2-cache, Watcom* compiler 10.0
==============================LINUX DATA BELOW===============================
MEMORY INDEX        : 16.350
INTEGER INDEX       : 15.818
FLOATING-POINT INDEX: 20.593
Baseline (LINUX)    : AMD K6/233*, 512 KB L2-cache, gcc 2.7.2.3, libc-5.4.38

OpenSSL

Program OpenSSL je dostupný pro většinu používaných operačních systémů a platforem, proto se hodí na rychlé zjištění výkonu procesoru při celočíselných operacích.

                  sign    verify    sign/s verify/s
rsa  512 bits 0.000327s 0.000026s   3056.7  37795.0
rsa 1024 bits 0.001230s 0.000066s    813.0  15110.2
rsa 2048 bits 0.006847s 0.000199s    146.0   5028.4
rsa 4096 bits 0.043904s 0.000672s     22.8   1488.4
                  sign    verify    sign/s verify/s
dsa  512 bits 0.000228s 0.000243s   4392.0   4113.8
dsa 1024 bits 0.000618s 0.000672s   1617.0   1487.9
dsa 2048 bits 0.001962s 0.002119s    509.8    472.0

Rychlost disku

Protože se moc často nepotkávám se SATA disky, zkusil jsem pustit bonnie++ abych otestoval jak disk pracuje. Výsledky testu sem dávám celé abyste je mohli porovnat například se svým počítačem. Test byl proveden na souborovém systému XFS.

# bonnie++ -s 1024 -m x2100 -r 512 -u test
  Version  1.03       ------Sequential Output------ --Sequential Input- --Random-
                    -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
x2100            1G 44673  95 71579  17 24051   6 32815  74 58264   6 196.9   0
                    ------Sequential Create------ --------Random Create--------
                    -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
              files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
                 16  4472  22 +++++ +++  4269  19  4669  23 +++++ +++  2169  10

Apache

U serveru tohoto typu očekávám využití jako webserver nebo mailserver. Pro představu jak rychle by webserver mohl fungovat jsem k serveru připojil kříženým kabelem druhý počítač a zkusil apache benchmark. Test proběhl na statické stránce velikosti 40kiB při 1500 konkurenčních přístupech. Na počítačích byl nainstalován apache2 ve výchozí konfiguraci z CentOS4.

Počítač Requests/s Transfer rate (MiB/s)
Galaxy X2100 1994 38,6
Pentium M 1400 1004 19.3

Závěr

Jde o malý a levný server, určený spíš pro méně náročné nasazení. Rozpočet moc nezatíží, Galaxy X2100 začíná s cenou kolem 20 000 Kč bez DPH. Když přidáme 1U šasí a tříletou záruku, tak se vlastně ani nevyplatí stavět si svépomocí podobný server.