You are on page 1of 76

Stycze 2004

Linux a piractwo
komputerowe

ugie kolejki po numery Linux+


Extra! z dystrybucjami Linuksa
nie s fikcj. Taki obraz mona byo
zobaczy, przykadowo, w Empiku
w Zielonej Grze pod koniec listopada. Ludzie dowiedzieli si, e istnieje
niebezpieczestwo odwiedzenia ich
domw przez policj w celu sprawdzenia legalnoci wykorzystywanego
przez nich oprogramowania. Chocia przeszukiwanie
prywatnych mieszka byo tylko plotk, a akcja lubuskiej
policji dotyczya hurtownikw komputerowych, ktrzy na
masow skal produkuj i sprzedaj nielegalne oprogramowanie, to warto zastanowi si, dlaczego w Polsce Linux nie
jest tak popularny, jak w innych krajach Europy. Wynika to
zapewne z tego, e yjemy w pastwie, w ktrym piractwo
komputerowe jest powszechne nielegalne kopie prawnie
chronionych programw komputerowych mona bardzo atwo zdoby. A gdyby nie byo to moliwe? W efekcie wikszo uytkownikw komputerw sprbowaaby Linuksa,
ktry chociaby w dziedzinie bezpieczestwa prezentuje
si lepiej od konkurencyjnych rozwiza komercyjnych.
Tematem przewodnim tego numeru Linux+ jest wanie
wzmacnianie zabezpiecze Linuksa. Mona to zrobi na
wiele sposobw, wrd ktrych wybralimy dwa naszym
zdaniem bardzo ciekawe: szyfrowanie systemw plikw
oraz wprowadzanie rozszerze do jdra. Godny uwagi jest
take wywiad z Solar Designerem, cenionym specjalist od
bezpieczestwa komputerowego.
Zapraszam do lektury i czekam na opinie na temat pisma,
nie tylko pozytywne.

Opis zawartoci pyt CD


Piotr Truszkowski

Aktualnoci

10 Newsy
Krzysztof Krawczyk
Linux
12 Jdro
Maja Krlikowska

14 Debian
Grzegorz Prokopski
16 Aurox
Robert Gwczyski
18 RPM
Daniel Ko
20 GNOME
Zbigniew Chyla
22 KDE
Pawe Biliski
24 LinuxFresh
Piotr Machej

Krzysztof Krawczyk
Redaktor Naczelny Linux+

Miesicznik Linux+ (12 numerw w roku) jest wydawany przez Software-Wydawnictwo Sp. z o. o.
Redaktor naczelny: Krzysztof Krawczyk, krzysiek@linux.com.pl
Asystent redaktora: Piotr Truszkowski, piotrt@linux.com.pl
Producent: Marta Kurpiewska, marta@software.com.pl
Opracowanie CD: Krzysztof Krawczyk, Piotr Truszkowski
Dzia reklamy: Dagmara Witkowska, reklama@software.com.pl, tel.: (22) 860 18 79
Prenumerata: Marzena Dmowska, pren@software.com.pl, tel.: (22) 860 17 67
Projekt graficzny okadki: Marzena Turek-Ga, marzenat@software.com.pl
Projekt graficzny pisma: Marzena Turek-Ga, marzenat@software.com.pl
Skad: Sawomir Zadrony, slawekz@software.com.pl

Adres korespondencyjny:
Software-Wydawnictwo Sp. z o. o., 00-190 Warszawa, ul. Lewartowskiego 6
e-mail: redakcja@linux.com.pl, tel. (22) 860 18 18
Redakcja dokada wszelkich stara, aby publikowane w pimie i na towarzyszcych mu nonikach informacje i programy byy poprawne,
jednake nie bierze odpowiedzialnoci za efekty wykorzystania ich; nie gwarantuje take poprawnego dziaania programw shareware,
freeware i public domain. Uszkodzone podczas wysyki pyty wymienia dzia prenumeraty.
Wszystkie znaki firmowe zawarte w pimie s wasnoci odpowiednich firm i zostay uyte wycznie w celach informacyjnych.
Redakcja uywa systemu automatycznego skadu
Druk: Stella Maris
Pyty CD doczone do magazynu przetestowano programem AntiVirenKit firmy G DATA Software Sp. z o.o.
Sprzeda aktualnych lub archiwalnych numerw pisma po innej cenie ni wydrukowana na okadce bez zgody wydawcy jest
dziaaniem na jego szkod i skutkuje odpowiedzialnoci sdow.

stycze 2004

Temat miesica
Bezpieczestwo

Dla pocztkujcych

szyfrowane systemy
30 Loop-AES
plikw

z OpenSSH
44 Praca
Piotr Machej

Skarbimir Kwiatkowski
Gdy posiadamy poufne informacje, ktre chcemy
zabezpieczy przed niepowoanym dostpem, warto je
zaszyfrowa. Mona to zrobi chociaby przy pomocy
GnuPG, ale ciekawszym, wygodniejszym i pewniejszym
rozwizaniem jest przygotowanie specjalnej zaszyfrowanej partycji, na ktrej bd przechowywane kluczowe
dane. Z pomoc przychodzi nam wtedy modu jdra
o nazwie Loop-AES.

38

Wzmacniamy jdro:
Openwall i GrSecurity
Micha Miszewski
Jdra przygotowywane przez twrcw dystrybucji
Linuksa zazwyczaj maj ju naoone rne atki rozszerzajce ich moliwoci lub poprawiajce pewne funkcje.
Wprowadzane zmiany rzadko dotycz bezporednio
bezpieczestwa, dlatego warto rozway skorzystanie
z zestawu atek Openwall lub GrSecurity. W artykule
zosta przedstawiony proces nakadania takich atek oraz
nowe opcje konfiguracyjne jdra.

Testy

42 Piotr Truszkowski

SuSE Linux 9.0 Professional


Dystrybucja Linuksa firmy SuSE, chocia jest bardzo ciekawym produktem, raczej nie jest popularna w Polsce,
chociaby dlatego, e nie s dostpne jej obrazy ISO.
Poniewa niedawno firma Novell wykupia producenta
tego systemu, sytuacja moe si znacznie zmieni. Zanim
to jednak nastpi, postanowilimy przyjrze si nowej
wersji tej dystrybucji Linuksa.

Wywiad
z Alexandrem Peslyakiem
26 Wywiad
(Solar Designerem), twrc projektu
Openwall

Krzysztof Krawczyk
Osoby zainteresowane bezpieczestwem Linuksa na
pewno syszay o Solar Designerze, ktry od kilku
lat przygotowuje liczne narzdzia dla tego systemu
w ramach projektu Openwall. Z najbardziej znanych jego
produkcji mona wymieni John The Rippera (wykrywa
hasa atwe do zamania), atki na jdro Linuksa oraz
dystrybucj Owl. Postanowilimy porozmawia z nim na
temat projektu Openwall oraz najbliszych planw.
www.linux.com.pl

Gdy chcemy popracowa na odlegym komputerze,


a mamy dostp do niego poprzez sie, moemy skorzysta z protokou SSH. Jego podstawow zalet jest szyfrowany kana komunikacji. Pakiet OpenSSH, ktry mona
znale w wikszoci dystrybucji Linuksa, zawiera serwer
i klienta tego oprogramowania. Warto pozna jego liczne
moliwoci, w tym mniej znane, takie jak tunelowanie
pocze.

Sprzt
i Smartmontools
52 Lm_sensors
czujniki naszego komputera
Piotr Wolny
Gdy system zaczyna dziaa niestabilnie, niekoniecznie musi to by wina oprogramowania. Przyczyn
rwnie dobrze mog by problemy sprztowe. W takim
przypadku warto posiada oprogramowanie, ktre
korzystajc z czujnikw wbudowanych w urzdzenia,
pomogoby nam zdiagnozowa niepoprawnie pracujcy
element komputera. Tak rol peni LM_Sensors (pyty
gwne) oraz SmartMonTools (dyski twarde).

Dla programistw
bezpiecznych programw
58 Pisanie
Marek Sawerwain
Ataki przepenienia bufora s bardzo niebezpieczne,
gdy z ich pomoc mona szybko przej kontrol nad
systemem. Z tego powodu, piszc wasne programy,
trzeba pilnowa, aby nie powstaway niepoprawne
konstrukcje. Wygodniejszym rozwizaniem jest skorzystanie z gotowych bibliotek, ktre robi to za programist. W artykule zostay opisane dwa takie rozwizania:
SCSL oraz Vstr. Ponadto, zwrcono w nim uwag na
poprawne zarzdzanie pamici, w czym mog by
pomocne pakiety Memwatch oraz Libcwd.

Dla graczy
Strike
66 Vega
Krzysztof Wolski
Jeeli chcesz zosta pilotem statku kosmicznego, handlowa towarem i walczy z wrogimi statkami, zagraj
w gr Vega Strike. Wyrnia si ona bardzo dobr grafik i muzyk, a take wysok grywalnoci.

opis CD

pyta A

Linux+ Live SecurityPak

inux+ Live SecurityPak to specjalna wersja systemu


Linux, uruchamiana bezporednio z napdu CD i nie
wymagajca instalacji na dysku twardym.
Linux od samego pocztku swojego istnienia jest systemem bardzo blisko zwizanym z sieci Internet. Dlatego
te, m.in. obsuga sieci jest tym, w czym Linux sprawuje
si naprawd bardzo dobrze, co daje swoje odzwierciedlenie chociaby w iloci serwerw, na ktrych z powodzeniem funkcjonuje. Bardzo istotn kwesti cho czsto
lekcewaon przez pocztkujcych administratorw jest
bezpieczestwo sieci. Wyposaylimy system Linux+ Live
SecurityPak w zestaw narzdzi, ktre z pewnoci przydadz si kademu administratorowi sieci, oraz osobom,
ktre tak funkcj zamierzaj w niedalekiej przyszoci
peni. W omawianej edycji systemu obok programw
przedstawionych w obecnym wydaniu magazynu Linux+
znajdziecie m.in.:
Ettercap popularny sniffer, pozwalajcy przechwytywa pakiety krce po sieci lokalnej, kontrolowa
ruch i robi wiele innych rzeczy;
Ethereal popularny sniffer;
GKrellM ciekawy program, pokazujcy nam wiele
istotnych informacji na temat naszego systemu operacyjnego;
Hping2 rozszerzona wersja popularnego programu
Ping;
Iptraf program ilustrujcy ruch w sieci lokalnej;
Nessus bardzo popularny skaner, ktry pozwoli Ci
przeprowadzi audyt bezpieczestwa systemu;
Nmap bardzo popularny skaner sieci, pozwalajcy
m.in. na zdaln identyfikacj systemu operacyjnego
i dziaajcych na nim usug;
PortSentry narzdzie umoliwiajce zablokowanie
dostpu uytkownikowi skanujcemu bd prbujcemu wama si do naszego systemu;
Vega Strike kosmiczna gra handlowa.

Linux+ Live po uruchomieniu

Linux+ Live SecurityPak moe okaza si niezbdnym


narzdziem do przeprowadzenia testw bezpieczestwa
sieci, analizy powamaniowej bd po prostu nowym
dowiadczeniem dla osb marzcych o karierze specjalisty do spraw zabezpiecze. Uruchomienie tego
systemu to wspaniaa okazja ku temu, aby pozna mechanizmy, ktrymi posuguj si internetowi wamywacze, jak i metody obrony przed nimi.
Menederem okien w tej edycji Linux+ Live jest
Fluxbox, z uwagi na jego mae wymagania sprztowe,
szybko i popularno w krgach administratorw sieci i programistw. System zosta zoptymalizowany pod
wzgldem szybkiego uruchamiania i pracy. Wikszo
usug jest domylnie wyczona, a ich uruchomienie jest
moliwe poprzez wybranie odpowiedniej opcji z menu
menedera okien.
Obok Linux+ Live SecurityPak, na pytce znajdziecie m.in. ponad 50 narzdzi zwizanych z bezpieczestwem sieci, najnowsz wersj jdra systemowego,
wszystkie opisywane w numerze programy, atki Openwall i GrSecurity i wiele innych, bardzo przydatnych
narzdzi.
Minimalne wymagania sprztowe:

Linux+ Live w czasie pracy

procesor Pentium;
napd CD-ROM o prdkoci minimum 32x;
minimum 128 MB pamici RAM;
mile widziane poczenie z sieci Internet.

Uwaga!
Redakcja nie ponosi odpowiedzialnoci za ewentualne
szkody powstae w wyniku uytkowania opisywanego
systemu i doczonego do niego oprogramowania. Zabronione jest uywanie doczonego oprogramowania na
szkod innych uytkownikw.

stycze 2004

pyta A

dzia prowadzi: Zbigniew Chyla


gnome@linux.com.pl

Ettercap 0.6b

odsuchiwanie ruchu w sieci


kojarzy si nam czsto z dziaaniem hakerw, ktre ma na celu
przechwycenie naszych hase, danych bd innych informacji, przydatnych do wamania na serwer.
Nie kady administrator zdaje sobie
jednak spraw z tego, i programy
do podsuchiwania ruchu w sieci
mog by take zotym rodkiem na
przecione przez oprogramowanie
P2P sieci osiedlowe, firmowe i inne.
Mog rwnie zapobiec wydostaniu
si na zewntrz wanych dla firmy
informacji. Pozwol take dociekliwemu szefowi sprawdzi, czym
aktualnie zajmuje si nowo przyjty
pracownik.
Jednym z programw, ktry
umoliwia takie dziaania, jest wanie Ettercap. Za jego pomoc moemy podsuchiwa ruch w sieciach
osiedlowych, zamyka otwarte na
innych komputerach poczenia sieciowe oraz robi wiele innych rzeczy, ktre w sabo zabezpieczonej
sieci utrudniaj ycie kademu administratorowi. W tym miejscu wana
uwaga Ettercap jest programem,
z ktrym naley obchodzi si bardzo rozsdnie i nie dziaa na szkod innych uytkownikw. Nie jest
on przeznaczony dla pocztkujcych
uytkownikw komputera. W sabo
zabezpieczonej sieci przy nieodpowiednim uyciu moe spowodowa
zaamanie ruchu internetowego.
Ettercap oferuje nam prac zarwno w trybie tekstowym (rodowisko
NCurses), jak i graficznym (GTK).
Dziki modularnej budowie, moemy
nasz program powiksza o nowe moduy, ktrych w sieci jest dostpnych
naprawd bardzo wiele, bd napisa
wasne. Wrd podstawowych funkcji
Ettercapa moemy znale:
wparcie dla SSH1 podsuchiwanie i przechwytywanie nazw
uytkownikw, hase oraz danych
przesyanych za pomoc tego protokou;

www.linux.com.pl

Amap 4.5
Skaner pozwalajcy na identyfikacj
programw/usug dziaajcych na
portach innych ni standardowych.
http://www.thc.org/
Ethereal 0.9.16
Program do podsuchiwania ruchu
w sieci.
http://www.ethereal.com/

Ettercap po uruchomieniu

wsparcie dla HTTPS podsuchiwanie danych przesyanych poprzez bezpieczny protok SSL,
nawet poprzez PROXY;
podsuchiwanie nazw uytkownikw, hase oraz danych wysyanych poprzez Telnet, FTP, POP,
Rlogin, SSH1, ICQ, SMB, MySQL,
HTTP, NNTP, X11, Napster, IRC,
RIP, BGP, SOCKS 5, IMAP 4, VNC,
LDAP, NFS, SNMP, Half Life, Quake 3, MSN oraz YMSG;
filtrowanie pakietw i usuwanie
wybranych z nich ustawianie
filtrw, dziki ktrym mona
podsuchiwa ruch na podanych
przez siebie portach z moliwoci usuwania wybranych przez
siebie pakietw;
zgadywanie systemu operacyjnego
sprawdzanie, jakiego systemu
operacyjnego uywaj inni uytkownicy twojej sieci;
zabijanie pocze sprawdzanie,
czym zajmuj si obecni w sieci
ludzie oraz moliwo uruchomienia masowego zabijania pocze
dla danego uytkownika/w;
pasywne skanowanie sieci LAN
zdobywanie informacji o komputerach obecnych w sieci lokalnej
oraz wszystkich czynnociach,
ktre wykonuj ich waciciele;
wykrywanie obecnoci innych
snifferw sprawdzanie, czy jeste bezpieczny w czasie podgldania ruchu w sieci.
http://ettercap.sourceforge.net/

Bastille 2.1.1
Program uatwiajcy zabezpieczenie
systemu. Wycza zbdne usugi,
nakada odpowiednie prawa dostpu do
plikw/katalogw i robi wiele innych
rzeczy majcych na celu uatwienie ycia
administratorowi.
http://www.bastille-linux.org/
Cheops 0.60pre5
Narzdzie do zarzdzania sieci.
http://www.marko.net/cheops/
Firewall Builder
Program do konfiguracji iptables,
dziaajcy w rodowisku graficznym.
Pozwala tworzy bardzo dokadne
i zaawansowane konfiguracje.
http://www.fwbuilder.org/
FreeS/ WAN 2.04
Program do tworzenia wasnych sieci
prywatnych.
http://www.freeswan.org/
Fwlogwatch 0.9.3
Program analizujcy logi firewalla
i powiadamiajcy administratora
o podejrzanej sytuacji.
http://cert.uni-stuttgart.de/projects/
fwlogwatch/
GnuPG 1.2.3
Szyfrowanie plikw i listw.
http://www.gnupg.org/
GrSecurity 2.4.23
atka na jdro, majc na celu lepsze
zabezpieczenie tego kluczowego
elementu systemu operacyjnego.
http://www.grsecurity.net/
HPing2
Rozszerzona o nowe moliwoci wersja
popularnego programu Ping.
http://www.hping.org/
John The Ripper 1.6
Najnowsza wersja bardzo popularnego
amacza hase.
http://www.openwall.com/john/
Kerberos5 1.3.1
System autoryzacji szeroko
wykorzystywany na wiecie.
http://web.mit.edu/kerberos/www/

opis CD

Mozilla 1.6 Alfa PL


Polska wersja jzykowa
najpopularniejszej na wiecie
przegldarki Open Source.
http://www.mozillapl.org/
Mozilla Firebird 0.7 PL
Najnowsza wersja przegldarki opartej
o Mozill, nastawiona na szybko
dziaania i ma objto.
http://www.mozillapl.org/
Linux 2.4.23
Najnowsza stabilna edycja jdra
systemowego z gazi 2.4.x.
http://www.kernel.org/
OpenSSH 3.7.1p2
Oprogramowanie umoliwiajce
prowadzenie szyfrowanych pocze.
Zastpca popularnego telnetu.
http://www.openssh.org/
Openwall 2.4.23
atka na jdro systemowe, majca na
celu zwikszenie jego bezpieczestwa.
http://www.openwall.com/linux/
OPIE 2.4
Implementacja obsugi hase
jednorazowych.
http://inner.net/opie/
Rnmap 0.10
Odmiana programu Nmap,
pozwalajca poczy si stacjom
klienckim z centralnym serwerem
Nmap.
http://rnmap.sourceforge.net/
Snor t 2.0.5
Zaawansowany system detekcji
intruzw (IDS).
http://www.snort.org/
Snor tSnar f 021111.1
Program przedstawiajcy wyniki pracy
programu Snort w czytelnej formie
plikw HTML
http://www.silicondefense.com/software/
snortsnarf/
TripWire 2.3- 47
Aplikacja IDS, informujca o plikach,
ktre ulegy zmianie.
http://www.tripwire.org/
Aurox RPMS
Pakiety RPM dla dystrybucji Aurox
Linux 9.1, przygotowane przez
redakcj. Wrd nich: ethereal,
ettercap, FireWalk, gkrellm, hping2,
hydra, iplog, iptraf, libdnet, libnasl,
libnet, libnids, multi-gnome-terminal,
nessus, ngerp, nmap, paketto, pmacct,
portsentry, xprobe. Pakiety instalujemy
za pomoc polecenia: rpm -ihv
nazwa_pakietu. Jak zwykle czekamy
na Wasze uwagi pod adresem e-mail:
piotrt@linux.com.pl.

pyta A

Nessus 2.0.9

dpowiednio zabezpieczony serwer jest swoist wizytwk dobrego administratora sieci. Wiadomo
jednak, e kady z nas popenia bdy i nie ma ludzi doskonaych. Dugie
godziny spdzone przy mozolnym
zabezpieczaniu serwera mog pj
na marne w wyniku przeoczenia jakiego bdu przy konfiguracji usugi,
bdnym ustawieniu praw dostpu do
plikw/katalogw bd tysicu innych
drobnych spraw. Z pomoc w takim
przypadku przychodzi Nessus. Jest
to popularny skaner zabezpiecze
serwera, ktry pomoe w odkryciu
bdw konfiguracji i poinformuje nas
o ewentualnych niezaatanych bdach w oprogramowaniu, oszczdzajc nam tym samym godzin czytania
Security Focus i poszukiwania sabych
ogniw systemu. Nie bez znaczenia jest
fakt, e Nessus naley do grona programw Open Source i dostpny jest
dla kadego bez jakichkolwiek opat
licencyjnych.
Nessus skada si zarwno z klienta, jak i serwera. Aby sprawdzi nasz

system, musimy zaoy na nim uytkownika uprawnionego do pocze


z naszym serwerem Nessusa. Dokonujemy tego poleceniem: nessus-adduser.
Pozostaje nam jeszcze konfiguracja,
ktr przeprowadzamy w pliku /usr/
local/etc/nessus/nessusd.conf, a nastpnie wystartowanie samego serwera
poleceniem nessusd -D. Po wykonaniu
tych czynnoci, moemy uruchomi
naszego klienta Nessusa i przeskanowa system logujc si za pomoc
utworzonego wczeniej uytkownika
i hasa. Jako wynik skanowania otrzymamy bardzo czytelny i szczegowy
raport. Znajdziemy w nim opis tego,
co nie podoba si naszemu skanerowi
i jak niebezpieczna jest wykryta luka.
Przedstawiona zostanie nam rwnie
propozycja jej zaatania.
Nessus jest bardzo przydatnym narzdziem dla kadego, kto troszczy si
o bezpieczestwo swojej sieci i uytkownikw, ktrzy z niej korzystaj.
Z pewnoci warto go wyprbowa
moemy na tym tylko zyska.
http://www.nessus.org/

BitDefender 1.5.5

irusy komputerowe to temat


zupenie obcy uytkownikom
Linuksa. Pomimo bardzo wielu prb
napisania dla tego systemu wirusa
z prawdziwego zdarzenia, do tej
pory nie znalaz si miaek, ktry by
tego dokona. Co si jednak stanie,
gdy nasz komputer peni rol linuksowego serwera poczty bd plikw,
a na stacjach roboczych do niego
podpitych znajduj si systemy Microsoft Windows, ktre nie posiadaj
domylnie adnych zabezpiecze
przeciwko wirusom? Firma SoftWin
SRL proponuje nam w takim przypadku wyposaenie swoich serwerw w system antywirusowy, ktry
pozwoli zachowa porzdek wrd
mnogoci plikw pracownikw i ich
poczty internetowej. BitDefender
bo o nim tutaj mowa jest nowo-

czesnym oprogramowaniem antywirusowym przeznaczonym dla kadej


grupy klientw, ktrym pojcie wirusw w sieci lokalnej nie jest obce.
Specjalnie dla czytelnikw Linux+
na pytce CD umieszczamy, nigdzie
indziej niedostpn, 90-dniow wersj ewaluacyjn najnowszej wersji
BitDefendera. Program dostpny jest
w dwch wersjach: chronicej poczt
(integracja z serwerami Postfix, Qmail bd Sendmail) oraz pliki (integracja z Samb). Przygotowane pakiety
(DEB, RPM, TGZ) pasuj do najpopularniejszych dystrybucji Linuksa
obecnych na rynku. Z tumu innych
produktw tego typu dostpnych na
rynku, BitDefender wyrnia si zaskakujco nisk cen.
http://www.bitdefender.com/

stycze 2004

pyta B

Knoppix 3.3

ystrybucje Linuksa uruchamiane bezporednio


z pyty CD i nie instalujce si na dysku twardym
komputera ju na dobre zadomowiy si w wiadomoci
uytkownikw Linuksa. Zdecydowanie najbardziej uniwersaln z nich wszystkich jest Knoppix. Dzieo Klausa
Knoppera, przygotowane na pocztku jako system przeznaczony dla odwiedzajcych konferencj LinuxTag, jest
w tej chwili dystrybucj, ktr zachwycaj si setki tysicy
uytkownikw. Sam autor nie raz przyznawa, e nie spodziewa si takiej popularnoci swojego rozwizania. Co
wyrnia Knoppiksa z tumu innych, podobnych jemu
dystrybucji? Bez wtpienia innowacyjno, bardzo starannie dobrane oprogramowanie, moliwo instalacji na
dysku twardym, szybko dziaania oraz atwo, z jak
mona uzyska ewentualn pomoc.
Knoppix oparty jest na dystrybucji Debian GNU/
Linux, ktra ze wzgldu na podzia poszczeglnych
elementw systemu na jak najdrobniejsze elementy idealnie nadaje si do tworzenia tego typu oprogramowania.
W skad opisywanej wersji Knoppiksa wchodz:
rodowisko graficzne KDE 3.1.4;
pakiet biurowy OpenOffice.org 1.0.3;
zestaw kompilatorw do wielu jzykw programowania;
oprogramowanie multimedialne (XMMS, Xine);
przegldarki graficzne Acrobat Reader, GV;
programy graficzne: GIMP, Paint, Scribus;
oprogramowanie do konfiguracji sieci;
narzdzia do odzyskiwania danych i naprawy systemw operacyjnych (nie tylko uniksowych);
programy do analizy dziaania sieci i jej bezpieczestwa;
rodowiska deweloperskie (Anjuta, KDevelop);
zestaw gier;
zestaw aplikacji edukacyjnych;
jdro systemowe w wersji 2.4.22;
cznie ponad 800 pakietw oprogramowania.
Wszystkie te skadniki powoduj, e take osoba, ktra
nie miaa wczeniej kontaktu z Linuksem, bdzie w stanie
bliej zapozna si z tym systemem.
Knoppix ma bardzo liczne zastosowania. Moe by
uywany w charakterze systemu pokazujcego moliwoci Linuksa, systemu ratunkowego sucego np. do
odzyskiwania danych, platformy do gier, platformy programistycznej i wielu innych.
Knoppix bez wtpienia wytyczy szlak, ktrym poda coraz wiksza ilo dystrybucji Linuksa. Wspomnie
w tym miejscu naley chociaby o PKD (Polish Knoppix
Distribution), SuSE Live, Aurox Live czy wanie zapocztkowanym Mandrake Move. Wersje Live poszczeglnych
dystrybucji s bardzo dobrym materiaem promocyj-

www.linux.com.pl

Knoppix po uruchomieniu

nym i informacyjnym. Z pewnoci warto zapozna si


z Knoppiksem.
Instalacja na dysku twardym
Mimo tego, e Knoppix jest dystrybucj ktra uruchamia,
si z pytki CD, by moe tak bardzo przypadnie nam do
gustu, e bdziemy chcieli zainstalowa go na naszym
dysku twardym. W tym celu naley:
uruchomi system Knoppix z parametrem:

knoppix

lang = pl;

uruchomi konsol roota (K-> KNOPPIX-> Root


Shell);
rozpocz instalacj wpisujc knx-hdinstall;
utworzy partycje na swap i gwny system plikw
(wane, aby partycja / miaa co najmniej 2.2 GB);
ustawi chocia jedn z utworzonych partycji jako
uruchomieniow (Bootable);
zapisa tablic partycji (Write) i wyj z programu
(Quit);
wyrazi zgod na formatowanie i wybra odpowiadajcy nam system plikw (np. Ext3).
Po wykonaniu tych operacji, system poinformuje nas
o kopiowaniu plikw. Moe to zaj od 10 do 40 minut.
Po instalacji, zostanie nam zadanych kilka pyta czy
chcemy uruchomi serwer pocztowy, serwer sshd, serwer
Samby, serwer CUPS oraz graficzne logowanie.
Prawidowa odpowied na powysze pytania pozwoli
nam skonfigurowa system tak, aby speni nasze wymagania. Nastpnie wpisujemy nazw naszego komputera
i konfigurujemy sie. Ostatnim krokiem bdzie instalacja
programu LILO, dziki ktremu przy starcie komputera
bdziemy mogli uruchomi nasz system.
http://www.knoppix.net/

aktualnoci

Linux+ na Komputer Expo 2004


Dnia 24 stycznia, podczas targw
Komputer Expo 2004, redakcja Linux+
organizuje WIL 2004, czyli kolejne
spotkanie z czytelnikami magazynu.
W godzinach 11.00-15.00 bdzie mona
posucha o Linuksie oraz praktycznych
moliwociach jego wykorzystania.
Tym razem, poza obecnoci twrcw
dystrybucji Aurox, planujemy obecno
deweloperw innych dystrybucji
Linuksa, takich jak PLD, PKD czy
Mandrake i Debian. Wrd uczestnikw
rozlosujemy atrakcyjne nagrody. Podczas
samych targw mona bdzie spotka
redakcj Linux+ na stoisku SoftwareWydawnictwo.
http://www.linux.com.pl/wil2004/
GnomeMeeting
Eugenia Loli-Queru, podpora serwisu
OSNews, wzia na warsztat wietne
narzdzie do telekonferencji przez
komputer, GnomeMeeting, i napisaa
o swoich dowiadczeniach z tym
programem.
Najnowsza wersja ma numer 0.98.5
i pozwala midzy innymi na poczenia
gosowe (czyli de facto sieciow
telefoni) oraz kontakt z uytkownikami
NetMeeting. Artyku zapowiada,
e wersja 1.0 bdzie wyposaona
w mechanizm wtyczek, obsug ALSA,
lepsz ksik adresow oraz asystenta
konfiguracji.
http://www.osnews.com/story.php?news_
id=5280
http://hedera.linuxnews.pl/_news/2003/
12/03/_long/2351.html
Captive i NTFS
Na stronie projektu Captive znajduje
si pakiet umoliwiajcy peen dostp
do partycji NTFS pod Linuksem,
w odrnieniu na przykad od LinuxNTFS, ktry jak dotd zapewnia
waciwie tylko odczyt.
Jest to pierwszy projekt wprowadzajcy
do wiata linuksowego przeroczysty
dostp z moliwoci zapisu do
partycji NTFS. Captive radzi sobie
z tym troch na zasadzie Wine,
korzystajc z oryginalnego sterownika
z MS Windows ntfs.sys. Emuluje
wymagany podsystem jdra Windows,
uywajc pliku z projektu ReactOS,
ntoskrnl.exe, albo swojej wasnej
implementacji, decydujc o wyborze
przy kadym wywoaniu.
http://www.jankratochvil.net/project/
captive/
http://linux-ntfs.sourceforge.net/
status.html#ntfsdriver
http://www.reactos.com/
http://www.ntfs-linux.com/
http://hedera.linuxnews.pl/_news/2003/
12/02/_long/2350.html

10

aktualnoci

Konferencja Linux i jego praktyczne


zastosowania biznesowe

irma LX Polska, filia firmy LOGIX


France, zorganizowaa 20 listopada 2003 roku konferencj Linux
i jego praktyczne zastosowania biznesowe. Partnerami tego wydarzenia
byy firmy: Red Hat, IBM, Altkom oraz
Tech Data Polska.
Na pocztku Jean Jacques Apkarian (szef LX Polska) opowiedzia
krtko o firmie oraz jej najnowszej
inicjatywie: sprzeday produktw
firmy Red Hat w Polsce.
Pierwszym prelegentem by Francois Lucatelli (Red Hat France). Opowiedzia o strategii Red Hata i wyjani,
dlaczego zmienili polityk wydawania
dystrybucji zbyt czste publikowanie
nowych wersji dystrybucji Linuksa
powodowao, e partnerzy nie nadali z umieszczaniem Red Hata na
swoich komputerach czy tworzeniem
dla niego nowych wersji oprogramowania. Nowa seria Red Hat Enterprise
(wanie zostaa ogoszona wersja 3)
ma by wydawana co 12-18 miesicy,
z 6-miesicznymi cyklami Beta. Zostaa ona podzielona na trzy elementy:
AS (Advanced Server; najbardziej
rozbudowane rozwizanie dla duych
firm), ES (wersja dla maych serwerw)
oraz WS (najprostsza wersja dla ma-

ych serwerw lub stacji roboczych).


Ponadto, aby cakowicie nie wycofa
si z rynku stacji roboczych, w ofercie pojawi si Red Hat Professional
Workstation (za 88.45 Euro). Na kocu
Francois wspomnia take o Fedorze,
ale raczej chcia do niej zniechci ni
si pochwali wskazywa, i jest to
projekt, ktry bdzie wykorzystywany
jako poligon dowiadczalny.
W dalszej czci konferencji firma
Altkom opowiedziaa o swoich autoryzowanych szkoleniach z Linuksa oraz
przedstawia przykad praktycznego
wykorzystania produktw Red Hata
we wasnej infrastrukturze.
Konferencj zakoczyy wystpienia Toma Boonena (IBM Belgium),
ktry opowiedzia o zaangaowaniu
swojej firmy w sprawy linuksowe, oraz
Mirosawa winiarskiego (Tech Data
Polska), ktry opowiedzia o praktycznych aspektach wykorzystania Linuksa
na sprzcie IBM-a.
Konferencja bya na pewno ciekawa i wyjania zebranym (okoo 100
osb), jak przedstawia si przyszo
Red Hata w Polsce.
http://www.lx.pl/
http://www.redhat.com/

ISS Proventia

olska premiera nowej serii rozwiza bezpieczestwa sieciowego o nazwie Proventia miaa miejsce
5 listopada w Warszawie. Firma Internet Security Systems (ISS), producent
tych zintegrowanych urzdze zabezpieczajcych firm, oraz firma Veracomp S.A., ich dystrybutor w Polsce,
zaprezentoway zasad ich dziaania
oraz dostpne moliwoci.
Proventia to rozwizanie typu IPS
/ IDS (Intrusion Prevention System /
Intrusion Detection System), bdce
nastpc systemu RealSecure. Mona
je zainstalowa w miejscach, przez
ktre przechodzi cay ruch sieciowy.

Dziki temu ataki bd skutecznie


blokowane w czasie rzeczywistym
bez ryzyka utraty pakietw. Dotyczy
to znanych, jak i nieznanych zagroe,
cznie z atakami typu odmowa dostpu (ang. denial of service), backdoor,
zoliwymi kodami i zagroeniami hybrydowymi, takimi jak MS Blaster, SQL
Slammer, Nimda czy Code Red.
W rodku urzdzenia zostaa wykorzystana odpowiednio zmodyfikowana dystrybucja Linuksa, co jest w tej
chwili dostrzegalnym trendem w serwerach typu network appliance.
http://www.iss.net/
http://www.veracomp.pl/

stycze 2004

dzia prowadzi: Krzysztof Krawczyk


newsy@linux.com.pl

Mono i Novell Nterprise Linux Services

irma Novell przedstawia plan


realizacji projektu Mono, zainicjowanego przez spoeczno deweloperw w celu opracowania wersji Open
Source platformy programistycznej
Microsoft .NET. Umoliwiaby ona programistom korzystajcym z systemw
operacyjnych Linux i UNIX tworzenie
i wdraanie wieloplatformowych aplikacji zgodnych z architektur .NET.
Wedug przedstawionego planu,
w pierwszej poowie 2004 r. pojawi
si oprogramowanie Mono 1.0, a pniej jego kolejne wersje to wana
informacja dla programistw korporacyjnych oraz niezalenych producentw oprogramowania, ktrzy
zamierzaj tworzy aplikacje zgodne
z architektur .NET, dziaajce na wielu platformach i pod kontrol rnych
systemw operacyjnych.
Platforma Mono, opracowywana
i testowana ju od przeszo dwch
lat, znacznie uatwia tworzenie i wdraanie aplikacji w systemach Linux

i UNIX. Projekt ten jest stale rozwijany w celu odzwierciedlenia ewolucji


architektury Microsoft .NET, systemu
Linux i rodowiska GNOME. Zosta
on uznany na targach LinuxWorld
Conference & Expo 2003 za Najlepszy
projekt oprogramowania o otwartym
dostpie do kodu rdowego (Best
Open Source Project).
Ponadto, firma Novell zaprezentowaa pierwsz komercyjn wersj
rozwizania Novell Nterprise Linux
Services (zintegrowane usugi w dziedzinie dostpu i przesyania plikw,
drukowania, technologii katalogowej
oraz zarzdzania, dziaajce w rodowiskach RedHat Linux, SuSE Enterprise
Server oraz Aurox 9.1). Jest to rozwizanie stanowice pomost do wieloplatformowego rodowiska NetWare 7,
w ktrym mona bdzie uruchamia
zaawansowane usugi sieciowe dla
serwerw w rodowisku Linux.
http://www.go-mono.com/
http://www.novell.pl/

Szkolenia z Linuksa od MENiS

czesn jesieni Ministerstwo


Edukacji Narodowej i Sportu
ogosio przetarg na przeszkolenie 750
nauczycieli rnych przedmiotw
w posugiwaniu si Linuksem w dydaktyce swojego przedmiotu. Najtasz ofert przedstawio konsorcjum
polskich firm edukacyjnych, w skad
ktrego wchodz firmy DC Edukacja, OFEK, OSI CompuTrain SA oraz
Vulcan i jego oferta przyjta zostaa
dla 11 wojewdztw (pozostae przyznano firmie Altkom).
Kursy, obejmujce dwie sesje po
trzy dni kada i trzy tygodnie pracy
zdalnej (e-learning) midzy sesjami,
spotkay si z olbrzymim zainteresowaniem: wszystkie miejsca zostay
zajte ju pierwszego dnia rekrutacji,
a liczba zgosze bya ponad piciokrotnie wysza od liczby miejsc. Na
szkolenie nauczyciel musi powici
dwa weekendy i zapaci znaczc

www.linux.com.pl

cze kosztw zakwaterowania, jeli


wic zgasza si na taki kurs, to musi
czu rzeczywist potrzeb nauczenia
si korzystania z Linuksa.
Program zosta nastawiony na
obsug wybranej dystrybucji (tutaj
Aurox najlepiej znana edukatorom)
w rodowisku KDE oraz na wykorzystanie oprogramowania przydatnego
w szkole: biurowego, multimedialnego, statystycznego, edukacyjnego
i publikacji materiaw w sieci. Stosunkowo mniej uwagi powicono
tradycyjnym operacjom uniksowym:
pracy zdalnej, narzdziom uywanym
w konsoli tekstowej, jzykom skryptowym. Program przewiduje rwnie
demonstracj Knoppiksa oraz Polskiej
Dystrybucji Edukacyjnej wraz ze
wskazaniem podstawowych rnic
midzy rodowiskami wywodzcymi
si z Debiana i Fedory (dawniej Red
Hat).

Scribus 1.1.3
Franz Schmid i jego zesp przyoyli
si do pracy nad now wersj
Scribusa, dziki czemu z wydania na
wydanie staje si to naprawd coraz
bardziej profesjonalne narzdzie
do skadu publikacji. Scribus 1.1.3
to wersja niestabilna, ale wystarczy
tylko wspomnie, e pojawi si
w niej zaawansowany edytor tekstu,
konwersja hiperczy w eksporcie
do PDF, zgodno mechanizmu
wtyczek z Pythonem 2.3 czy ustalanie
wielkoci czcionek z dokadnoci
do 1/10 punkta, aby narobi sobie
apetytu na wyprbowanie go.
http://web2.altmuehlnet.de/fschmid/
http://www.linuxnews.pl/_news/2003/
12/01/_long/2342.html
Strace
Kady programista, niewane,
czy profesjonalny projektant, czy
domorosy magik, moe spotka si
z sytuacj, gdy napisany program
kompiluje si, ale nie dziaa tak jak
powinien. W tym momencie na
scen wchodz narzdzia debugujce
(debuggery). Serwis DevChannel
przygotowa artyku wprowadzajcy
w arkana uytkowania strace. Artyku
przedstawia podstawy uruchamiania
debuggera oraz uczy, jak odczytywa
komunikaty wywietlane przez
program.
http://tools.devchannel.org/
article.pl?sid=03/10/24/2057246&mode
=thread&tid=46&tid=57
http://www.linuxnews.pl/_news/2003/
11/27/_long/2335.html
Tvtime
Ukazaa si kolejna wersja wietnego
programu do ogldania telewizji pod
Linuksem. Tvtime 0.9.12 przynosi
gwnie poprawki bdw zwizanych
z XMLTV. Aplikacja zawiera
wiele interesujcych rozwiza
polepszajcych obraz pochodzcy
z kart telewizyjnych. Wysok jako
uzyskano dziki wykorzystaniu
najlepszych algorytmw oferowanych
przez DScaler, ktre su do
przekadania telewizyjnego sygnau
z przeplotem na sygna bez przeplotu
(deinterlaced). Uytkownik ma
moliwo (przy pomocy podrcznego
menu) wyboru odpowiedniej metody
przetwarzania sygnau, co ma wpyw
na zuycie procesora i jako obrazu.
http://tvtime.sourceforge.net/
http://dscaler.org/
http://www.linuxnews.pl/_news/2003/
11/24/_long/2325.html

11

aktualnoci

Tylnym wejciem
Oficjalne rda jdra Linux trzymane
s w BitKeeperze, a repozytoriami
zawiaduje firma BitMover, midzy
innymi Larry McVoy; udostpniane
s te bramki do innych systemw
zarzdzania wersjami, midzy innymi
do CVS. Repozytoria te s bardzo cile
chronione, dlatego Larry McVoy prawie
od razu zauway prb wprowadzenia
backdoora do rde jdra przez
bramk CVS-ow. Zmiana w rdach
wygldaa jak atka wprowadzajca
dodatkowe sprawdzanie bdu, jednake
przy porwnaniu uid z 0 zamiast '=='
pojawio si '='.
http://lwn.net/Articles/57153
http://kerneltrap.org/node/view/1584
Zap mnie, jeli potrafisz
Deweloperzy Linuksa znacznie czciej
ni inni uytkownicy dowiadczaj
bdw jdra i gwnie dla nich
przeznaczone jest narzdzie Kmsgdump.
Jest ono atk na jdro, ktra uaktywnia
si jedynie w przypadku paniki jdra
(ang. kernel panic). Dziki tej atce
wszystkie produkowane w takiej sytuacji
informacje, ktre zwykle przetaczaj
si po ekranie, a potem znikaj,
zostaj zapamitane na dyskietce lub
skierowane na port rwnolegy.
http://lwn.net/Articles/59927
Poziomy bezpieczestwa
LSM jest atk pozwalajc na uywanie
rnych polityk bezpieczestwa
w systemie. Do tej pory bya ona
wykorzystywana w zasadzie jedynie
przez SE Linux, at firmowan przez
NSA. Niedawno dziki LSM zostaa
stworzona implementacja poziomw
bezpieczestwa przypominajca
rozwizanie z BSD. Dziki niej,
domylny poziom 0, oznaczajcy
brak jakiejkolwiek dodatkowej
polityki bezpieczestwa, moe zosta
podniesiony przez interfejs /proc.
http://lwn.net/Articles/59507/
Wykr ywacz problemw
Pod skrzydami OSDL powsta nowy
projekt, ktrego zaoeniem jest pomoc
deweloperom przy wykrywaniu
bdw, ktre mog znale si w jdrze
i uniemoliwi jego zbudowanie
w niektrych konfiguracjach. Projekt
ten nazywa si Linux Kernel Tinderbox
i bazuje mniej wicej na architekturze
klient-serwer. Klient Tinderbox ciga
nowe zmiany i prbuje je kompilowa,
a wyniki swoich poczyna kieruje do
serwera, ktry wywietla je w postaci
strony WWW.
http://kt.zork.net/kernel-traffic/
kt20031201_143.html#15

12

jdro linuksa

Linux 2.6

d czasu wydania pierwszej


testowej wersji jdra Linux
serii 2.6 mino ju kilka miesicy,
jednak cay czas powstaj kolejne,
poprawione. Jaki czas temu Linus
Torvalds ogosi, e nie bdzie wicej
przyjmowa atek innych ni te, ktre
naprawiaj ewidentne bdy. Konsekwentne stosowanie takiej polityki
dao zamierzony efekt. Osoby ledzce drzewo jdra utrzymywane
przez Linusa w BitKeeperze miay
szans zauway znaczny spadek
rozmiaru zmian.
Twrca Linuksa wydaje si
jednak wci nie do koca zadowolony chciaby, aby jego aktywno
obejmowaa tylko jednolinijkowe
drobne poprawki. Spord konkretnych zastrzee pojawio si
zdanie, e co niedobrego dzieje si,
gdy jdro jest skonfigurowane jako
wywaszczalne. Problem nie dotyczy
samego wywaszczania, ale raczej
nie radz sobie z nim inne elementy
systemu. Linus powrci te do dawnego zwyczaju nazywania kolejnych
wersji jder. Wersja -test10 zostaa
nazwana stoned beaver (w wolnym
tumaczeniu nawalony bbr), a kolejna to beaver in detox (bbr na
odwyku).
Takie ograniczanie zmian powoduje jednak, e wszelkie bardziej
istotne ulepszenia odkadane s na
potem, czyli do kolejnych stabilnych
wersji jdra. To moe powodowa
pewne zachwiania stabilnoci w serii,
ktra przez wszystkich bdzie uznawana ju za stabiln.
Serwis LWN.net zwrci uwag,
e prawie trzy lata temu, przy okazji
wydania 2.4.0, sam Torvalds zauway wystpowanie zjawiska polegajcego na tym, e wersje z zerem na
kocu byy stabilne, a pniejsze,
mniej wicej do numeru pi, ju
mniej. Dopiero potem udawao si
wrci do stanu z pocztku serii
stabilnej. Tego zjawiska bynajmniej
nie uzna za pozytywne. Wydaje

si jednak, e i tym razem bdzie


podobnie coraz wicej zbiera
si zmian, ktre maj szans na
to, by trafi dopiero do wczesnych
jder 2.6.
Wiadomo ju, e opiekunem
nowej stabilnej serii zostanie Andrew
Morton i to najprawdopodobniej on
zdecyduje, w ktrym momencie
obecne wersje jdra strac przyrostek -test. Zanim jednak to si
stanie, przygotowuje swoje wasne
zestawy atek oznaczane literami
-mm.
Wraz z atkami pojawiy si
dwie listy pierwsza zawierajca
pozycje, ktre musz jeszcze trafi
do stabilnej serii, a druga rzeczy,
ktre powinny tam trafi. Tworzenie
i utrzymywanie podobnych list stao
si powszechne od czasu zeszorocznego zamroenia funkcjonalnoci,
jednake im bliej wydania 2.6.0,
tym mniej si i uwagi wkadano
w ich utrzymywanie. Zestawienia
doczone do -mm jednak istniej
i s zaskakujco dugie.
Waniejsza z list, must-fix, zawiera midzy innymi zmiany likwidujce problemy z blokowaniem w wielu
podsystemach, przeniesienie poprawek z 2.4, dotyczcych na przykad
bezpieczestwa, oraz wiele problemw, ktre powinny by rozwizane, cho ich istnienie nie zakca
w istotny sposb pracy systemu.
Po raz kolejny mona si przekona, e jdro Linux jest projektem
wiecznie w fazie rozwoju. Kolejne
wersje jdra nie s idealne i chyba
nigdy nie bd. Dziki temu mona
uywa kolejnych, coraz lepszych,
cho niedoskonaych wersji nie czekajc latami na wersj ostateczn.
Do tej uomnoci Linuksa uytkownicy chyba musz si przyzwyczai.
http://lwn.net/Articles/58199
http://kerneltrap.org/node/view/1684
http://kerneltrap.org/node/view/1667

stycze 2004

dzia prowadzi: Maja Krlikowska


kernel@linux.com.pl

Udev

u cakiem dawno temu Linux


doczeka si systemu plikw urzdze w systemie. By to devfs, ktrego
pierwsza implementacja miaa gwnie przeciwnikw. Jej twrca, Richard
Gooch, by krytykowany przez prawie
wszystkich. Jaki czas temu przesta si udziela, a devfs w zasadzie
poszed w zapomnienie. Jednake
sam pomys systemu plikw dla
urzdze nie umar, a jedn z implementacji jest udev, czyli system plikw
urzdze oparty o sysfs, dziaajcy
w przestrzeni uytkownika, przeznaczony dla jder nowej serii 2.6. Greg
Kroah-Hartman, twrca i pomysodawca udev, wci podsya coraz
nowsze wersje tego rozwizania
i wydaje si, e znajduje ono zwolennikw, cho nie jest propozycj
z gatunku jedynych susznych.

Adrian Bunk w pewnym momencie podesa na list linux-kernel atk,


ktra dokumentowaa to, e udev nie
jest jeszcze w peni gotowy i nie moe
w peni zastpowa devfs. Przyczyny,
dla ktrych tak jest, to midzy innymi
brak obsugi ze strony sterownikw
urzdze oraz brak obsugi devfs
w initramfs. Greg argumentowa,
e nie s to cechy, ktrych brakuje
samemu udev jego rozwizanie
mona ju stosowa, a wymienione
problemy nie le po stronie twrcw
udev. Przyzna jednak, e jego dziecku brakuje dojrzaoci i podkreli, e
wikszo pracy, ktr naley wykona przed zastpieniem devfs przez
udev, musi zosta wykonana poza
projektem.
http://kt.zork.net/kernel-traffic/
kt20031201_143.html#5

2.4.23 i co dalej?

nia 28 listopada 2003 roku Marcelo Tosatti wyda kolejn wersj


jdra serii 2.4.23. Pojawio si w niej
kilka do istotnych zmian, midzy
innymi usunito OOM killer, zastpujc go innym rozwizaniem, oraz
dodano tryb laptopowy, pozwalajcy oszczdzi troch bateri. Do tej
wersji jdra 2.4 trafio te wikszo
innych zmian w podsystemie pamici
wirtualnej firmowanych przez Andre
Arcangeli. Dziki nim waniliowe
jdra 2.4 powinny da sobie rad
z du iloci pamici RAM, cho
autor zmian wci zaleca uywanie
jego wasnego drzewa, -aa.
Kilka dni po publikacji 2.4.23
Macelo ogosi swoje plany dotyczce dalszych prac nad rozwojem 2.4.
Ze wzgldu na zbliajce si wydanie 2.6.0, postanowi, e 2.4.24 bdzie
ostatni wersj, do ktrej wczy
powaniejsze, inwazyjne zmiany oraz
nowe sterowniki. Pniej bdzie si ju
tylko zajmowa utrzymaniem powierzonej mu serii jder Linux. Zamierza
rozwiza wszystkie biece problemy

www.linux.com.pl

przed wydaniem kolejnego jdra, tak


aby pniej wprowadza do niego
jedynie poprawki bdw krytycznych
i zwizanych z bezpieczestwem.
Kto zapyta, czy kod XFS ma
jeszcze szans trafi do oficjalnego
drzewa 2.4. Marcelo odpar, e nie
mia takich zamiarw, poniewa 2.6
osiga ju stabilno i bdzie mona
go wkrtce uywa, a XFS zosta
wczony w trakcie rozwoju 2.5. Przyzna te, e nie bardzo ma ochot na
zajmowanie si tym kodem, bo go po
prostu nie lubi i nie do koca w niego
wierzy. Poniewa jednak osb, ktre
chtnie widziayby XFS jeszcze w 2.4
byo wicej, to rozpoczy si poszukiwania osoby chtnej do przygotowania takiego wczenia. Al Viro
wykrci si od tego, ale zgosi si
Christoph Hellwig. Od wynikw jego
prac zaley, czy XFS pojawi si w ktrej kolejnej wersji serii 2.4.
http://kerneltrap.org/node/view/1690
http://kerneltrap.org/node/view/1700
http://kerneltrap.org/node/view/1723
http://kerneltrap.org/node/view/1727

Z braku laku
Pontus Fuchs podesa na list linuxkernel informacj o stworzonym
przez siebie module jdra o nazwie
Nidswrapper, pozwalajcym
adowa sterowniki nids, zgodne
z API Windows. Stworzy ten modu,
poniewa niektrzy producenci wci
nie dostarczaj nawet binarnych,
przeznaczonych dla Linuksa,
sterownikw do swojego sprztu.
W jego przypadku byy to karty
WLAN. Stworzenie takiego moduu
nie rozwizuje bynajmniej problemu
obsugi tych kart w Linuksie, jest
jedynie doranym umoliwieniem
skorzystania z nich.
http://kt.zork.net/kernel-traffic/
kt20031201_143.html#2
Serial ATA w Linuksie
Serial ATA jest nowym interfejsem,
ktry ma zastpi dotychczas uywany
rwnolegy interfejs ATA, eliminujc
jego wady i niedoskonaoci. Grono
hakerw Linuksa z Jeffem Garzikiem
na czele pracuje nad implementacj
tego interfejsu dla jder 2.6.x. Jeff
uzna, e prace zaszy ju na tyle
daleko, e warto zacz poszukiwa
wikszej liczby testerw i podesa na
lkml dokument z dokadnym opisem
tego, co zostao ju zrobione, a co
jeszcze nie.
http://hedera.linuxnews.pl/_news/2003/
12/04/_long/2354.html
http://www.ussg.iu.edu/hypermail/
linux/kernel/0312.0/0597.html
Winna jest do_brk()
Pod koniec listopada i na pocztku
grudnia gono byo o wamaniach
na serwery projektw zwizanych
z Linuksem i Wolnym
Oprogramowaniem (debian.org,
savannah.gnu.org, ...). Za cz tych
problemw jest odpowiedzialny
niepozorny bd w funkcji do_brk().
Zabrako sprawdzenia poprawnoci
zakresu argumentw tej funkcji.
Bd wynik z przeoczenia:
w jdrach 2.2.x sprawdzanie
argumentw odbywao si wczeniej,
w funkcjach wywoujcych. Nikt nie
sdzi, e moe mie on powane
konsekwencje. Linus Torvalds
wprowadzi poprawk w jdrze 2.6.0test6, a Marcelo Tosatti kilka dni
pniej w 2.4.23-pre7. Wikszo
dystrybutorw nie zdecydowao si
umieci tej poprawki, wyjtkiem by
tu Red Hat/Fedora.
http://kerneltrap.org/node/view/1717
http://lists.debian.org/debian-develannounce/2003/debian-devel-announce-200311/msg00012.html

13

aktualnoci

debian

Wamanie na serwery Debiana


Pom bezpieczestwu AIDE
Advanced Intrusion Detection
Environment jest dostpnym na
licencji GPL narzdziem do testowania
integralnoci plikw, wzorowanym na
synnym, aczkolwiek niestety niewolnym
Tripwire. Gwnym zadaniem AIDE jest
stworzenie bazy informacji o plikach
na dysku (wielko, suma kontrolna,
czas utworzenia, dostpu, modyfikacji)
i pniejsza regularna kontrola
niezmiennoci. W Debianie dostpny
jest gotowy pakiet aide, a w razie
potrzeby mona zajrze do podrcznika
lub zapisa si na list dyskusyjn.
Pewnego dnia dane zebrane przez AIDE
mog pozwoli zaoszczdzi wiele czasu
i nerww.
[AIDE] http://www.cs.tut.fi/~rammer/
aide.html
[DebAIDE] http://packages.debian.org/
unstable/admin/aide.html
PaX w Debianie
Celem projektu PaX jest rozwj
zabezpiecze przeciw atakom
polegajcym m.in. na wykonaniu kodu
dostarczonego przez atakujcego.
Obecna implementacja obejmuje:
randomizacj stosu uytkownika
i jdra, a take adresw zwracanych
przez mmap, wyczenie moliwoci
wykonywania dynamicznie stworzonego
kodu (w segmentach danych) i inne
techniki. PaX jest obecny w wielu
wikszych atach na jdro, m.in.
w GrSecurity (dostpna w Debianie), ale
mona te pobra samodzieln atk ze
strony projektu.
[PaX] http://pageexec.virtualave.net/
[GRSec] http://www.grsecurity.net/
[DebGRSec] http://packages.debian.org/
testing/devel/kernel-patch-2.4-grsecurity.html
Sprawd swj system z Chkrootkit
Syszc o wamaniach naturalnym jest,
e zadajemy sobie pytanie, czy mj
system nie pad przypadkiem ofiar
wamania? Istnieje wiele symptomw,
ktre mog (cho nie musz) o tym
wiadczy i trudno jest je wszystkie
sprawdzi rcznie. Przydatnym
narzdziem moe by Chkrootkit, ktry
potrafi wykry kilkanacie najbardziej
rozpropagowanych rootkitw. Wystarczy
zainstalowa go i uruchomi. Uwaga:
Chkrootkit nie daje 100% pewnej
odpowiedzi. Ponadto w pewnych
przypadkach moe zgasza faszywe
alarmy (np. Possible LKM Trojan na
systemach z jdrem 2.6).
[ChkRootkit] http://www.chkrootkit.org/
[DebChkR] http://packages.debian.org/
unstable/misc/chkrootkit.html

14

listopadzie 2003 roku miao


miejsce wamanie na serwery
Debiana. Ustalono, e:
19. listopada wamywacze uyli
podsuchanego hasa uytkownika (nie roota), aby dosta si do
serwera klecker.debian.org;
udao im si uzyska tam prawa
roota i zainstalowa rootkit SuckIT
(zestaw programw i modu jdra,
pozwalajce na ukrywanie plikw,
podsuchiwanie terminali i sieci,
a take zdalny dostp instalujcy si przez bezporedni dostp
do /dev/kmem);
podobnie postpili z serwerami
master, murphy oraz gluck;
20. listopada zauwaono, i
wszystkie z w/w serwerw zaczynaj dziaa niestabilnie ich
jdrom zaczy zdarza si oopsy.
Ponadto, zainstalowany pakiet
AIDE (Advanced Intrusion Detection Environment) zacz raportowa, i /sbin/init zosta zmieniony
(SuckIT podmienia /sbin/init podczas instalowania si, aby by
pewnym, e kade kolejne uruchomienie maszyny ponownie uruchomi rootkit np. zapewniajc
zdalny dostp wamywaczom);
wstpne ogldziny pozwoliy ustali, i nastpio wamanie;
rozesano ogoszenie o wamaniu;
wyczono wszystkie cztery serwery (przestay dziaa listy dyskusyjne, adresy emailowe w domenie debian.org, archiwum security.debian.org, alioth oraz kilka
innych serwisw), stworzono kopie ich dyskw do dalszej, pniejszej analizy oraz zreinstalowano systemy z CD-ROM-w;
z katalogw domowych uytkownikw usunito wszystkie klucze
publiczne GPG i inne materiay,
ktre przechwycone przez wamywaczy raz, mogyby im uatwi
kolejne wamanie;
wszystkie hasa uytkownikw
(deweloperw Debiana) w bazie
LDAP zostay uniewanione;

To tylko fikcja literacka, gdy strona


gwna Debiana nie zostaa podmieniona

zweryfikowano, i archiwa pakietw nie zostay naruszone (zmodyfikowane) przez wamywaczy;


po kolei przywrcono funkcjonowanie serwerw sprzed wamania.
1. grudnia, dziki wsppracy z inynierami SUSE i Red Hata, udao si
ustali, e exploit wykorzystywa
przepenienie licznika uywajcego liczby cakowitej przy jednym
z wywoa systemowych jdra.
Poprawka bya banalna i znana od
dawna. Zostaa wczona dopiero od
jdra 2.4.23, ale wczeniej nikt nie
zdawa sobie sprawy, e ten drobny problem mona w taki sposb
wykorzysta.
Profilaktycznie dostp deweloperw do powoki na wszystkich
maszynach Debiana (serwerach, autobuilderach, maszynach do portw na
rne architektury) zosta tymczasowo
zablokowany. Jest te niemal pewne,
i wszystkie maszyny Debiana zostan
wyposaone w dodatkowe zabezpieczenia w rodzaju SE Linuksa czy PaX.
[SuckIT] http://hysteria.sk/sd/f/suckit/
readme
[Announce] http://lists.debian.org/
debian-security-announce/
debian-security-announce-2003/
msg00211.html
[ExploitDSA] http://lists.debian.org/
debian-security-announce/
debian-security-announce-2003/
msg00212.html
[SELinux] http://www.coker.com.au/
selinux/

stycze 2004

dzia prowadzi: Grzegorz Prokopski


debian@linux.com.pl

Debian podstaw dystrybucji UserLinux

ruce Perens, podczas niedawnej konferencji Desktop Linux


Conference, przekonywa, i GNU/
Linux powinien by czciej uywany
przez przedsibiorstwa jako system
na biurko. Dystrybucja taka powinna by oparta na cakowicie wolnej
podstawie, jak jest Debian, a rni
si dodatkami, ktre z koniecznoci
nie mog znale si w Debianie, np.
binarne sterowniki urzdze.
W interesujcy sposb koresponduje to z informacj, ktr niedawno
zakomunikowa Ian Murdock (zaoyciel Debiana i fundator Progeny).
Ot Progeny przystosowao instalator Red Hata (Anaconda) do wsppracy z systemem pakietw Debiana.
Oznacza to, e np. dotychczasowi
uytkownicy Red Hata bd mogli
zastanowi si nad wykorzystaniem
Debiana, gdy instalacja przestanie
by dla wielu przeszkod w zmianie
dystrybucji.
Nadmieni naley, e u niektrych
informacja ta wywoaa mieszane
uczucia. Anaconda nie jest przeniesiona na wikszo z platform, na
ktre jest dostpny Debian, a take
jest instalatorem stosunkowo duym,
przez co nie moe by uznana za
podstawowy instalator Debiana. Ponadto nowy instalator Debiana jest
wanie intensywnie rozwijany, wic
zachodzi obawa, czy pojawienie si
portu Anakondy w tej wanie chwili
nie zdekoncentruje ludzi pracujcym
nad jego rozwojem. Niestety, istnieje
moliwo, e wci jeszcze niegoto-

UserLinux ma by oparty na Debianie

wy instalator moe sta si hamulcem


w wydaniu Sarge.
Mimo wszystko wydaje si, e
przeniesienie Anakondy na Debiana
poczone z niezadowoleniem wielu
ludzi z porzucenia przez Red Hata
systemw biurkowych wraz z nisk
jakoci dystrybucji oferowanej przez
Fedora Project moe postawi dystrybucj biurkow opart na Debianie
w bardzo dobrej pozycji startowej!
Czy rzeczywicie zobaczymy Debiana
na wielu nowych biurkach? To cakiem moliwe.
[DLC] http://www.butrain.com/itp/desk
linux.asp?source=15632
[DebDesktop] http://
www.infoworld.com/article/03/11/10/
HNdesktopwalk_1.html
[DebAnacoda] http://
www.debianplanet.org/
node.php?id=1006
[BadFeelings] http://lists.debian.org/
debian-devel/2003/debian-devel200310/msg01913.html
[DebInstaller] http://www.debian.org/
devel/debian-installer/

Debian Woody 3.0r2 wydany

iemal dokadnie w tym samym czasie, gdy miao miejsce wamanie na serwery Debiana,
ukazao si nowe podwydanie Debiana Woodiego 3.0r2. Kilkadziesit
poprawek dotyczcych bezpieczestwa, ktre si w nim znalazy, zostao
przeniesionych z security.debian.org,
gdzie byy dostpne od dnia wydania
poprawionego pakietu. Poprawiono

www.linux.com.pl

kilkanacie pakietw z powanymi


bdami wpywajcymi na uyteczno systemu. Obrazy tradycyjnie
mona pobra z za pomoc jigdo.
[3.0r2] http://lists.debian.org/debianannounce/debian-announce-2003/
msg00002.html
[DebianCD] http://www.debian.org/
CD/

wiee pakiety dla Woodiego


Uywanie stabilnej dystrybucji
Debiana ma wiele zalet, ale jedn
powan wad ze wzgldu na dugi
cykl midzy kolejnymi wydaniami,
oprogramowanie, cho stabilne, staje
si po prostu zbyt przestarzae do
niektrych zastosowa. Kompilacja
z czystych rde czy wasnorczna
kompilacja pakietw z dystrybucji
testing czy unstable te moe
nastrcza wielu problemw, nie
mwic ju o cakowitej przesiadce
na te gazie Debiana. Z tego
powodu wanie powstaa strona
www.backports.org, oferujca nowsze
wersje pakietw, ktre mog by
uyte w stabilnej wersji systemu.
Czasami przydatny jest rwnie
zbir adresw nieoficjalnych rde
www.apt-get.org.
http://www.backports.org/
http://www.apt-get.org/
Ilustrowany przykad instalacji
Sarge z nowym instalatorem
Wielu ludzi jest ciekawych, jak
waciwie bdzie wygldaa instalacja
z uyciem nowego instalatora? W jaki
sposb bdzie ona atwiejsza? Dla
tych, ktrzy przed samodzielnym
sprawdzeniem powyszego, chcieliby
rzuci okiem na dokadny opis
instalacji najlepiej wraz z ilustracjami
dostpny jest wanie taki artyku.
Co prawda autor uy tekstowej wersji
(wersja graficzna w GTK+ jest jeszcze
dopracowywana), ale ju mona
zauway, e np. najtrudniejszy dla
wielu uytkownikw etap konfiguracji
moduw jdra zosta cakowicie
zautomatyzowany za pomoc
autodetekcji sprztu.
[Walkthrough] http:
//www.debianplanet.org/
node.php?id=1009
Debian Jr. do cza do OSEF
Zarwno Open Source Education
Foundation, jak i Debian Jr., maj
wsplny cel: wprowadzi dzieci
w wiat Wolnego Oprogramowania.
W przecigu ostatnich dwch lat
OSEF m.in. perfekcyjnie zrealizowa
projekt wprowadzenia Wolnego
Oprogramowania do jednej ze szk
znajdujcych si w pobliu siedziby,
a take rozdystrybuowa wiele CDROM-w z Knoppixem, uzupenionym
o pakiety Debian Jr. i Tux4Kids.
[Together] http://lists.debian.org/debiandevel-announce/2003/debian-develannounce-200311/msg00000.html
[OSEF] http://www.osef.org/
[Tux4Kids] http://www.tux4kids.org/
[DebianJr] http://www.debian.org/devel/
debian-jr/

15

aktualnoci

aurox

Aurox 9.2 ju jest!


Prapremiera Auroksa 9.2
4 grudnia 2003 roku na konferencji
"Systemy dla przedsibiorstw 2003"
podczas wykadu Jarosawa
Grnego "Aurox Linux otwarty
system operacyjny dla maych
i rednich przedsibiorstw" odby si
przedpremierowy pokaz wersji 9.2
dystrybucji Aurox. Kady uczestnik
wykadu otrzyma po jego zakoczeniu
przedpremierow wersj Auroksa 9.2
na 4 pytach CD.
http://www.sdp2003.pl/
Aurox dla uczestnikw
LinuxPro 2003
W dniach 10-11 grudnia 2003 roku
w Jabonnie pod Warszaw odbya si
konferencja LinuxPro 2003, powicona
profesjonalnym zastosowaniom Linuksa.
Uczestnicy konferencji otrzymali
pyty CD z instalacyjn wersj Aurox
Linux 9.2.
http://www.software.com.pl/konferencje/
LinuxPro2003/
Ponad 5000 zarejestrowanych
uytkownikw
Z kocem listopada liczba
zarejestrowanych uytkownikw
Auroksa przekroczya 5000. Rejestracja
jest cakowicie dobrowolna, jednak
jest niezbdna, gdy chcecie doczy
do Aurox Club i wspomc Auroksa,
a jednoczenie zyska szans wygrania
wspaniaych nagrd.
Aurox 10 Alfa
Chocia w serii Aurox 9.x ukae si
jeszcze wydanie 9.3, to rozpoczy
si ju prace nad nowym, znacznie
zmienionym wydaniem 10.
W poowie grudnia w Internecie
powinna pojawi si pierwsza wersja
alfa Auroksa 10 opublikowana
w postaci uruchamianej z CD (bez
instalacji) pyty Live.
Testowa wersja Auroksa 10
wykorzystuje jdro 2.6.0 (testowe),
XFree86 4.4 prerelease i kompilator
GCC 3.3.2. Standardowym rodowiskiem
graficznym jest KDE 3.2 beta 2.
Oficjalne wydanie 10.0 zapowiadane jest
na czerwiec 2004 r.
Strefa Aurox Club
Na stronie domowej Auroksa http:
//www.aurox.org/ powstaa strefa
specjalna dla czonkw klubu Auroksa.
Zarejestrowani uytkownicy po podaniu
adresu e-mail i hasa zyskuj dostp
do materiaw klubowych i moliwo
gosowania na projekty realizowane
przez innych klubowiczw.
http://www.aurox.org/

16

dy czytacie te sowa, Linux+


Extra! nr 34 z najnowsz wersj Auroksa jest ju w sprzeday. Co
nowego znajdziecie w Auroksie 9.2?
Najwikszy hit to OpenOffice.org
w wersji 1.1.0. Wrd wielu udogodnie, zwracaj uwag: szybsze
uruchamianie pakietu, bardziej dopracowane filtry importu i eksportu
plikw z/do pakietu Microsoft Office
oraz moliwo nagrywania makr,
ktrej bardzo brakowao uytkownikom wczeniejszych wersji.
Zaktualizowane zostay rodowiska graficzne: KDE do wersji 3.1.4, za
GNOME do wersji 2.4.1.
Nowoci jest grupa Light Desktop lekki desktop. Jest to zestaw
aplikacji o mniejszych wymaganiach
sprztowych ni ich odpowiedniki
z KDE i GNOME. W skad lekkiego
rodowiska wchodz:
fluxbox meneder okien;
sylpheed klient poczty (bardzo
funkcjonalny i szybki program);
mozilla-firebird lejsza wersja
najbardziej znanej przegldarki;
rox-filer meneder plikw.
Aplikacje te pozwalaj wygodnie
uywa Auroksa na wolniejszych
maszynach.
Do dystrybucji trafiy nowe wersje programw do odtwarzania filmw i muzyki, np. biblioteki Xine
w wersji 1.0.0 RC2 oraz MPlayer 1.0 pre2. Nowa wersja Xine zawiera ju rozszerzon wtyczk dla
VideoCD (VCDX, obecnie zastpuj-

Aurox standardowo zawiera odtwarzacze


filmw

Najnowsza wersja Auroksa

ca starsz VCD; w razie problemw


z odtwarzaniem mona skorzysta
z wtyczki VCDO). MPlayer alternatywny odtwarzacz filmw Auroksa
to wersja rozwojowa, z ulepszon
obsug kodekw .DLL QuickTime
(do wersji 6.3), lepsz zgodnoci
kodekw ze standardem MPEG1/
MPEG2; tumaczenie dokumentacji
zostao uaktualnione. XMMS zosta
wreszcie zaktualizowany teraz jest
to wersja 1.2.8, zawierajca wtyczk
wyjciow ALSA.
Dodano nowe programy, o ktre
prosili uytkownicy: rysunki wektorowe moemy teraz tworzy
w programie Sodipodi (wersja 0.32),
a grafik 3D i animacje w Blenderze
(2.28c). Do tworzenia wasnych publikacji w rodowisku graficznym suy
Scribus stabilna wersja 1.0.1 wraz
z wtyczk pozwalajc na automatyzacj skadu przy pomocy skryptw
w Pythonie.
Mionicy pogaduszek on-line mog skorzysta z Kadu, GG2, Tleenx2
lub (w rodowisku tekstowym) Ekg.
Mozilla to ju wersja 1.5 (z polskim
interfejsem); Epiphany (standardowa przegldarka WWW rodowiska
GNOME) jest zaktualizowana do wersji 1.0.5. Nowoci s narzdzia do komunikacji z telefonami komrkowymi
firm Nokia i Siemens.
Uytkownicy zakadajcy na Auroksie aktywne strony WWW otrzymuj zaktualizowane wersje: MySQL
(4.0.16), Apache (2.0.48) oraz PHP
(4.3.4). Osoby programujce w jzyku
Pascal uciesz si z FPC (Free Pascal
Compiler).

stycze 2004

dzia prowadzi: Robert Gwczyski


aurox@linux.com.pl

Aurox 9.2 w Linux+ Extra!

kaza si 34. numer specjalny Linux+ Extra!, zawierajcy Aurox


Linux 9.2 na 7 pytach CD wraz z kodem rdowym oraz dodatkowymi
sterownikami i programami.
Do dystrybucji zostay doczone
wtyczki Java i Flash, sterowniki kart
graficznych ATI i NVidia, sterowniki
do winmodemw Conexant, SmartLink i Lucent, biblioteka do odczytu
szyfrowanych pyt DVD libdvdcss,
efektowne wygaszacze ekranu dla
kart graficznych z akceleracj 3D oraz
dwie popularne gry: Frozen Bubble
(najlepsza darmowa gra zrcznociowa wedug uytkownikw serwisu
Linux Game Tome) oraz Scorched3D
(gra na motywach Scorched Earth, ale
z adn grafik 3D).
Wrd dodatkw na uwag
zasuguje co, czego w Internecie
nie znajdziecie: pena komercyjna
wersja LeftHand Maa Ksigowo.
Ze wzgldu na ograniczenia redystrybucji niektrych programw (np.

Nowy Linux+ Extra!

nie wolno kopiowa LeftHand MK),


w tym numerze dodatki s umieszczone na CD 5 (tak wic pierwsze
4 CD, wystarczajce do zainstalowania Auroksa, mog by kopiowane
bez zmian i rozdawane np. uczniom
lub pracownikom firmy).
Numer ma objto 40 kolorowych
stron, 7 pyt CD i kosztuje 35 z.
Wkrtce po polskim wydaniem
pisma uka si wydania niemieckie,
francuskie i hiszpaskie.

WinModemy w Aurox Linux

o robi, jeli nie moemy uruchomi modemu w Auroksie?


Wiele z obecnie sprzedawanych modeli modemw to tzw. winmodemy
tanie, ale wymagajce specjalnych
sterownikw. Winmodem tym rni
si od prawdziwego modemu, e
wikszo zada wykonuje za niego
procesor. Na pytce CD doczonej
do takiego urzdzenia najczciej
zamieszczone s tylko sterowniki dla
rnych odmian Windows. Na szczcie do niektrych winmodemw
dostpne s rwnie sterowniki dla
naszego systemu operacyjnego.
Aby z nich skorzysta, musimy
sprawdzi, jaki ukad (chipset) stanowi serce naszego nabytku. Moemy
tego dokona uruchamiajc skrypt
ScanModem lub za pomoc jednego
z nastpujcych polece: /sbin/lspci,
/sbin/lspci -nv, cat /proc/pci.

www.linux.com.pl

Nowe wersje pakietw ze sterownikami do popularnych modemw


pojawiaj si m.in. pod adresem http:
//dag.wieers.com/apt/redhat/9/en/
i386/RPMS.dag/ dla uytkownikw
Aurox 9.x odpowiednie s pakiety dla Red Hat Linux 9. Wikszo
z tych pakietw tworzy odpowiednie urzdzenie w katalogu /dev/ (np.
dla SmartLinka jest to /dev/ttySL0,
a dla Lucenta /dev/ttyLT0). Trzeba
jeszcze rcznie dopisa w pliku /etc/
modules.conf opcje adowania odpowiedniego moduu, przykadowo dla
modemu SmartLink PCI jest to:
alias char-major-212 slmodem
alias slmodem slamrmo
options slmdm country=POLAND

http://linmodems.technion.ac.il/

Aurox na ibiblio.org
Zesp Auroksa nawiza wspprac
z jednym z najwikszych serwisw
ze zbiorami wolnodostpnej
informacji i oprogramowania
ibiblio.org. Inicjatywa ta powstaa
we wrzeniu 2000 roku w wyniku
wsppracy pomidzy Chapel Hill's
MetaLab (Uniwersytet Karoliny
Pnocnej w USA), znanym wczeniej
jako SunSITE, a Center for the
Public Domain. Jego zadaniem
jest wspomaganie tworzenia
i rozpowszechniania Wolnego
Oprogramowania i dokumentacji.
http://www.ibiblio.org/
Nowoci w Auroksie: Blender
Do Auroksa 9.2 wczona zostaa
najnowsza wersja ze stabilnej
serii Blendera: 2.28c. Blender to
profesjonalny pakiet do tworzenia
grafiki 3D, animacji, a nawet gier.
Gwn polsk stron powicon
Blenderowi jest http://www.blender.pl/.
Mona na niej znale m.in. polskie
wersje podrcznikw i poradnikw,
pobra najnowsze wersje programu
i dodatki oraz cign ciekawe
przykady (m.in. przykad gry
stworzonej w Blenderze).
http://www.blender.org/
Lepsze wsparcie dla laptopw
Firma Aurox Sp. z o.o. nawizaa
wspprac z kilkoma producentami
komputerw, m.in. Optimus S.A.
W rezultacie otrzymamy lepsze
wsparcie dla nowego sprztu, m.in.
obsug cech specyficznych dla
notebookw tych producentw.
http://www.optimus.com.pl/
Wine w Auroksie
Aurox zawiera Wine implementacj
API Windows dostpn na licencji
LGPL.W wydaniu 9.2 naszej dystrybucji
znajdziecie wersj 20031016.
Wine pozwala na uruchamianie
niektrych aplikacji Windows na
Linuksie. Zawiera m.in. wstpn
implementacj bibliotek zgodnych
z DirectX. Domylna konfiguracja
podczas pierwszego uruchomienia
(polecenie wine <nazwa programu>)
tworzy w katalogu domowym
uytkownika podkatalog .wine,
a w nim plik konfiguracyjny config,
odpowiedniki Rejestru Windows
(pliki *.reg) oraz podkatalog
c, ktrego zawarto aplikacje
uruchamiane przez Wine widz jako
dysk C: systemu Windows. Jeli
plik *.exe z Windows jest oznaczony
jako wykonywalny, to mona go
uruchomi klikajc na niego.
http://www.winehq.com/

17

aktualnoci

rpm

Beep Music Player


Drakian
Z problemem brakujcych pakietw
mona sobie radzi w rny
sposb: wyszukiwa dodatkowe
repozytoria, zgasza zapotrzebowanie
w ramach Mandrake Club, a nawet
przygotowywa je samodzielnie.
Niezym sposobem jest take
przenoszenie ich z innych dystrybucji.
Tak wanie postpili twrcy archiwum
Drakian, ktry jest zbiorem pakietw
Debiana, przeksztaconych do formatu
RPM za pomoc programu Alien. Nie
naley w zwizku z tym spodziewa
si 100% zgodnoci, ale jego autorom
zaleao przede wszystkim na kolekcji
pakietw dla Zope i Pythona 2.1, a w
tym zakresie inicjatywa sprawdzia
si znakomicie. Repozytorium dodaje
si do swoich zasobw jako root
poleceniem: urpmi.addmedia drakian
http://www.nexedi.org/static/
RPMS/ with synthesis.hdlist.cz.

http://www.drakian.org/
Ser wer f tp.leo.org
Bardzo dobre repozytorium pakietw
dla Mandrake Linux znajduje si na
serwerze ftp.leo.org. Jest to jedno
z pierwszych miejsc, z ktrych
mona byo pobra spakowan
przegldark Mozilla Firebird 0.7
i zestaw Mozilla 1.5, czy nawet nieco
wysz wersj OpenOffice.org, ktre s
nieosigalne z Cookera. Odpowiednie
pakiety znajduj si wprawdzie w sekcji
eksperymentalnej (unsupported ), jednak
pracuj stabilnie.
ftp://ftp.leo.org/pub/comp/os/unix/linux/
Mandrake/Mandrake-devel/unsupported/
MandrakeClub/9.2/i586/
Mandrake 10 na hor yzoncie
Uytkownicy zabrali si za instalowanie
i wykorzystywanie w codziennej pracy
Mandrake 9.2, tymczasem twrcy
dystrybucji przygotowuj ju warsztat
do planowanego na marzec wydania
Mandrake Linux 10. Podstawowym
narzdziem ich pracy bd strony
Wiki (Wiki Wiki Web), ktre od
zwykych stron WWW rni si
moliwoci bezporedniej edycji. Wiki
Mandrake 10 zawiera ju list rzeczy
do zrobienia, list ycze, podstron
o portach na rne procesory
oraz stworzon zawczasu stron
o najczciej zgaszanych bdach.
Jest te agenda wyda testowych
gdy to czytacie, powinno by ju
dostpne pierwsze z nich (jedno lub
dwupytowe), zbudowane na rwnie
testowym jdrze Linuksa z nowej
serii 2.6.
http://qa.mandrakesoft.com/twiki/bin/
view/Main/Mandrake10

18

eep Music Player (BMP) to


nowy odtwarzacz muzyczny dla
Linuksa i jego pobratymcw. Nie tyle
zreszt nowy, co odnowiony: bazuje
na kodzie popularnego odtwarzacza
XMMS w wersji 1.2.8, ale do dziaania
wymaga bibliotek GNOME 2. Pocztkowo nieoficjalne odgazienie XMMS
(nazw XMMS-GTK2 zmieniono na
BMP na danie 4Front Technologies),
szybko stao si samodzielnym programem wchaniajcym wiele poprawek i rozszerze. Dziki wykorzystaniu mechanizmw nowego GNOME,
moliwe jest wywietlanie fantazyjnych
czcionek (wida je na zrzucie ekranu),
a zgodno z XMMS oznacza midzy
innymi moliwo zakadania na BMP
tych samych skrek take z bogatej kolekcji WinAmpa, cho tylko
z serii 2.x (wielbiciele WinAmpa 3
powinni poczeka na XMMS2, spodziewany w 2004 r.). Artur Frysiak
z PLD stworzy niedawno projekt przenoszenia rozmaitych wtyczek z XMMS

Nowe wcielenie XMMS!

do BMP, co, ze wzgldu na zasadnicze podobiestwo obu odtwarzaczy,


nie stanowi zbyt wielkiej trudnoci.
W kolejce na przeniesienie czekaj
midzy innymi wtyczki do obsugi
plikw OGG, LIRC, XMMS-KDE oraz
wtyczka do normalizacji dwiku,
a ju w tej chwili dziaa XMMS-owa
wtyczka do odsuchiwania plikw
muzycznych typu MP4.
http://beepmp.sourceforge.net/
http://svn.pld-linux.org/svn/bmpplugins/trunk/

Biblioteczka Mandrake

a stronach Mandrake Linux pojawiy si cztery nowe poradniki


obsugi aplikacji dla zwykych uytkownikw systemu. Z braku polskich
wersji, musimy na razie zadowoli si
ich anglojzycznymi wersjami. Mona
oczywicie z poytkiem dla wszystkich przetumaczy je lub przygotowa samodzielnie. Poradniki zawieraj
ilustrowane minikursy komunikacji
przez LinNeighborhood (przydatnego
zwaszcza w sieciach lokalnych z Windows, ktrych uytkownicy korzystaj
z komunikatora WinPopup), rysowania
wykresw przy pomocy programu Dia
(specjalnie do tego przeznaczonego),
w peni graficznej instalacji i konfiguracji wasnego serwera WWW na
dystrybucyjnym Advanced Extranet
Server (powstajcym na bazie Apache),
oraz konfiguracji biurka dziaajcego
w bardzo popularnym rodowisku graficznym KDE. Jest szansa, e wkrtce
do biblioteczki doczy take bardzo

KDE skonfigurowane przy pomocy


instrukcji z poradnika

dobry podrcznik instalacji i konfiguracji programw pod Mandrake.


http://www.mandrakelinux.com/en/
demos/tutorials/linneighborhood/
http://www.mandrakelinux.com/en/
demos/tutorials/dia/
http://www.mandrakelinux.com/en/
demos/tutorials/webwizard/
http://www.mandrakelinux.com/en/
demos/tutorials/desktopconfig/
http://www.zebulon.org.uk/
ICML0.HTML

stycze 2004

dzia prowadzi: Daniel Ko


rpm@linux.com.pl

Bluehawk ISO

andrakeSoft tym razem dugo


kaza czeka na nowe wydanie swojej dystrybucji. To olbrzymie opnienie spowodowao, e
przez ten czas narosa caa gra
poprawek bezpieczestwa do teoretycznie nowej dystrybucji: jest ich
ju w sumie ponad kilkadziesit
megabajtw! Z tego powodu warto
zainteresowa si obrazami ISO
przygotowanymi samodzielnie przez
jednego z uytkownikw Mandrake,
Zdenka Mazanca, znanego jako Bluehawk. W skad jego zestawu, poza
poprawkami (take tymi dla napdw LG, nieobecnymi w oficjalnej
wersji), wchodz rwnie dodatkowe
sterowniki i oprogramowanie, wic
zamiast 3 pyt mamy do wypalenia a 4. Pita wersja tych obrazw
zawiera midzy innymi kolejne jdro

Eclipse nowoczesne IDE, napisane


w Javie, obsugujce rne jzyki
programowania

Linuksa ze zbliajcej si nieuchronnie stabilnej serii 2.6 (2.6.0-test9),


rodowisko programistyczne Eclipse,
zdobywajce ostatnio coraz wiksz
popularno, oraz pakiet Jakarta.
http://mandrake.contactel.cz/people/
bluehawk/iso/

Fedora Core 1 Yarrow

edora Project, dystrybucja oficjalnie wspierana przez Red Hata,


ktra kontynuuje zakoczon niedawno synn dystrybucj tej firmy, wydaa
pierwsz stabiln wersj Fedora Core
o nazwie kodowej Yarrow. Fedora
Core 1 nie odbiega od dotychczasowej linii Red Hata, zarwno w zaletach (jeszcze bardziej wygadzony
interfejs uytkownika), jak i wadach
(zamierzony brak w standardowej
wersji pakietw obsugi formatu MP3),
przynosi przy tym wiele ciekawych
nowoci, takich jak obsuga Bluetootha i ACPI, odtwarzacz multimediw
Rythmbox, wtyczki Javy dla Mozilli
skompilowane przez GCC 3.2, rozszerzona obsuga niektrych kart graficznych ATI, wczesne uruchamianie
w trybie graficznym, moliwo zdalnej instalacji przez VNC, oraz obsuga
nieoficjalnych repozytoriw pakietw
przez instalator aplikacji Up2date.
Nowa dystrybucja nie dla wszystkich jednak oznacza rado. Naukowcy
pracujcy od 1998 roku nad projektem
Flexible Digital Object and Repository
Architecture (w skrcie Fedora) pro-

www.linux.com.pl

Fedora Core 1

testuj przeciw uyciu nazwy Fedora


przez Red Hata, a dokadniej przeciw
zakusom na formalne zastrzeenie tej
nazwy przez Red Hata w amerykaskim Urzdzie Patentowym, zwaszcza
w wietle planw prowadzenia cisej
kontroli wykorzystywania tego znaku
towarowego. Firma odmwia uznania
roszcze ze strony uniwersytetw,
wic sprawa pozostaje na razie nierozstrzygnita.

Lista mirrorw
Na bardzo praktyczny pomys wpad
jeden z uytkownikw Mandrake:
na swojej stronie domowej zaoy
prosty monitor ledzcy stan
dostpnoci rozmaitych serwerw
lustrzanych (tzw. mirrorw) tej
dystrybucji. Robot ledzi, czy dany
serwer jest w ogle dostpny, oraz
czy pliki w jego repozytorium s
aktualne i w komplecie. Wpisy na
licie s oznaczane dat i godzin
wykonania testu.
http://extasia.u-strasbg.fr/~blindaue/
mirrors.php
MakeCD
W Linuksie nie jestemy skazani
na pomysy dystrybutorw,
a odrobina samodzielnego wysiku
moe si nieraz bardzo opaci.
Dziki skryptowi MakeCD mona
z przygotowanego zbioru pakietw
stworzy i wypali wasne pytki
z Mandrake! Domylnie skrypt
produkuje obrazy o wielkoci 650
MB (niektre starsze napdy CDROM nie radz sobie z adowaniem
systemu z pyt o wikszej
pojemnoci), ale mona to zmieni.
Bardzo przydatn opcj jest
ograniczanie iloci pyt, a zmieniajc
pliki z reklamwkami w prosty
sposb staniemy si niezalenym
dystrybutorem Linuksa.
http://qa.mandrakesoft.com/twiki/bin/
view/Main/MakeCD
Mandrake4Chemistr y
Za pomoc popularnych dystrybucji
mona atwo tworzy wasne
zestawy aplikacji linuksowych,
dostosowanych do konkretnych
potrzeb. Kanadyjczyk Austin Acton
jest autorem zestawu programw
przydatnych chemikom, zebranego
pod nazw Mandrake4Chemistry.
Celem projektu jest wyszukiwanie
wolnych i darmowych aplikacji
chemicznych oraz zachcanie do
agodzenia restrykcyjnych licencji
autorw pozostaych aplikacji. Austin
jest take domorosym muzykiem
na jego stronie znajdziemy midzy
innymi piosenk powicona
nadchodzcej premierze jdra 2.6.
http://groundstate.ca/mdk4chem/
index.html
http://hedera.linuxnews.pl/_news/2003/
11/05/_long/2273.html

http://hedera.linuxnews.pl/_news/
2003/11/05/_long/2275.html
http://hedera.linuxnews.pl/_news/
2003/11/26/_long/2330.html

19

aktualnoci

Wyprawa ku GNOME 2.6


rozpoczta
Na dzie przed kocem listopada
zostaa wydana pierwsza wersja
testowa GNOME 2.5. Wydanie to
stanowi pocztek serii, ktra powinna
doprowadzi do oficjalnej wersji 2.6
dokadnie w najblisze wito Kobiet
(8 marca). Cho wszystkich chtnych
do testowania i zgaszania bdw
zachcamy do skompilowania
i przetestowania wydania (mona
to zrobi w sposb cakowicie
automatyczny dziki GARNOME),
to przestrzec naley, i nie tylko
zawiera ono prawdopodobnie spor
liczb bdw, ale rni si moe
od GNOME 2.6 nawet zestawem
oferowanych aplikacji lista oficjalnie
zaproponowanych moduw zawiera
szereg pozycji, ktre po zaakceptowaniu
mog zaowocowa doczeniem
w kolejnym wydaniu dodatkowych
aplikacji. http://www.gnome.org/start/2.5/
http://www.gnome.org/%7Ejdub/
garnome/
Sodipodi++
Niejednokrotnie pisalimy ju o Sodipodi,
programie do tworzenia grafiki,
napisanego przez zdolnego Estoczyka,
Laurisa Kapliskiego. Wydawaoby
si, e dotychczas jego projekt rozwija
si bardzo dobrze, a jednak okazuje
si, e nie wszyscy w peni podzielaj
t opini. Na przeomie padziernika
i listopada grupa programistw
postanowia wykorzysta istniejcy
kod Sodipodi i utworzy nowy projekt
o nazwie Inkscape. Jako gwny
powd rozdwojenia projektu autorzy
Inkscape podaj ch wyprbowania
zupenie nowych rozwiza, ktre
trudno byoby zastosowa w obecnym
kodzie Sodipodi, ale bardziej widoczne
s gwne zaoenia przyjte dla obu
projektw: Inkscape, w odrnieniu od
Sodipodi, rozwijane ma by w jzyku
C++, co pozwoli na zmniejszenie iloci
kodu oraz atwiejsze wprowadzanie
zmian; nowy projekt zakada rwnie
cilejsz integracj ze rodowiskiem
GNOME, m.in. jego interfejs ma by
zgodny z wytycznymi opisanymi
w dokumencie GNOME HIG (Human
Interface Guidelines). Pierwszy miesic
prac nad Inkscape mona oceni bardzo
pozytywnie. Kody rdowe zostay
zmienione tak, aby moliwa bya ich
kompilacja kompilatorem C++, a take
wprowadzono spore zmiany w interfejsie,
ktre m.in. eliminuj dodatkowe okno
z ikonami, a zastpuj je standardowym
paskiem menu i paskami narzdziowymi
w oknie obrazu.
http://www.inkscape.org/

20

gnome

Co zobaczymy w Evolution 2.0?

volution pakiet do komunikacji


grupowej rozwijany przez Ximiana sta si ju standardowym skadnikiem instalacji rodowiska GNOME,
podobnie jak przegldarka WWW czy
meneder plikw. Nic wic dziwnego,
e Evolution zosta w kocu oficjalnie
zaproponowany jako jeden z moduw zaplanowanego na marzec 2004
wydania GNOME 2.6. Aby moliwe
byo wczenie pakietu do kolejnej
wersji GNOME, nastpio odpowiednie dopasowanie jego harmonogramu wyda, zgodnie z ktrym ju
3 marca 2004 bdziemy mogli cieszy
si wersj 2.0.
Z punktu widzenia uytkownika
programu najwiksz zmian jest
zupenie nowy ukad interfejsu programu: zamiast jednego drzewa zawierajcego foldery pocztowe, informacje
o kontaktach i kalendarze, zastosowano odrbne drzewa ze skadnikami
kadego z komponentw, pomidzy
ktrymi mona si przecza.
Kalendarz pozwala w nowej
wersji na jednoczesne wywietlanie
terminw pochodzcych z rnych
rde, np. od wielu osb, przy czym
terminy kadej z nich oznaczone s
innym kolorem.
Cay interfejs programu zosta
dostosowany do wymaga zdefiniowanych w GNOME HIG, a w ramach
procesu dostosowawczego zrezygnowano z wykorzystania czci wasnych elementw sterujcych na rzecz
standardowych udostpnianych przez
GTK+, co daje wraenie wikszej
spjnoci z innymi aplikacjami (np.
w przypadku drzewa folderw).
Kolejn z bardzo widocznych
zmian jest obsuga przez program
protokou S/MIME (wersji protokou
pocztowego MIME, obsugujcego
szyfrowanie i podpisywanie listw).
Do przesyania zaszyfrowanych informacji nie jest wic ju potrzebne
uruchamianie GPG, a takie operacje,
jak sprawdzanie podpisu s w peni
zintegrowane z programem. Moliwe
jest te zarzdzanie list certyfikatw,
ich importowanie itp.

Obsuga S/MIME w nowym Evolution


obejmuje rwnie moliwo zarzdzania
certyfikatami

Najwaniejsza zmiana w Evolution 2.0 ukryta jest jednak zupenie


przed okiem uytkownika, cho moe
premiowa w przyszoci powstaniem
wielu rozszerze programu. Evolution
zostao podzielone na dwie odrbne
czci. Pierwsz stanowi program
zapewniajcy dostp do danych, takich jak informacje o kontaktach czy
kalendarze (nosi on nazw evolutiondata-server). Druga cz programu
to interfejs graficzny, z ktrym ma do
czynienia uytkownik. Cz serwerowa udostpnia elegancki interfejs programistyczny w jzykach C oraz C#,
ktry pozwala dowolnym programom
np. na pobieranie informacji z ksiki
adresowej. Rozwizanie to sprawia, e
moliwe bdzie zintegrowanie Evolution z innymi aplikacjami poprzez
wspdzielenie rozmaitych obiektw
udostpnianych przez serwer danych.
Dziki zmianie architektury programu
moliwe bdzie (wczeniej opisywane tylko teoretycznie) np. wyczne
wykorzystywanie czci Evolution
sucej do obsugi poczty elektronicznej bez koniecznoci uruchamiania wszystkich skadnikw programu
(w tym odpowiedzialnych za kontakty i kalendarze), o co postuluje od
dawna wielu obecnych lub niedoszych uytkownikw programu. Tak
wic, cho produkt nie jest jeszcze
gotowy, ju dzi moemy oceni, e
ustalenie jego wersji na 2.0 nie jest ani
odrobin przesadzone i odpowiada
randze dokonanych zmian.
http://www.gnome.org/projects/
evolution/

stycze 2004

dzia prowadzi: Zbigniew Chyla


gnome@linux.com.pl

Wzbogacanie Nautilusa

autilus, gnomowy meneder


plikw i jedna z waniejszych
czci rodowiska graficznego, od
pocztku swego istnienia opiera si
na niezalenych komponentach, odpowiedzialnych za wywietlanie zawartoci folderw lub plikw. Z punktu
widzenia potencjalnych autorw, rozszerzanie Nautilusa byo jednak zadaniem niewdzicznym wymagao
tworzenia komponentw Bonobo lub
umieszczania wielu plikw w rozmaitych katalogach Nautilusa.
Sytuacj t postanowi zmieni
Dave Camp. W wersji rozwojowej
programu zaimplementowa on bardzo oglny mechanizm wtyczek,
opartych na bibliotekach dzielonych
i wykorzystujcych wycznie system
typw biblioteki GLib. Za podstaw
testw suy obecnie wtyczka umoliwiajca Nautilusowi na wspprac
z repozytorium CVS. Powoduje ona,

Obsug CVS-a dostpn obecnie


w Nautilusie przez specjalny widok
(Apotheke) zastpi wkrtce nowoczesna
wtyczka

e przy ikonach plikw pojawia si


symbol oznaczajcy stan pliku (np.
zmodyfikowany lokalnie), w widoku
listy widnieje kolumna informujca
o wersji lokalnego pliku, za z menu
kontekstowego mona wybra polecenie aktualizacji pliku lub zatwierdzenia dokonanych w nim zmian.
http://primates.ximian.com/~dave/log/

owcy nagrd

d czasu wydania GNOME 2.0,


obfitujcego w powane zmiany na poziomie platformy, prace
programistw skupiy si na rozwijaniu samych aplikacji. Okazuje si
jednak, e uytkownicy rodowiska
graficznego domagaj si nie tylko
zestawu sprawnie dziaajcych aplikacji, lecz rwnie opracowania ich
w taki sposb, aby wzajemnie ze
sob wsppracoway i integroway
si w wiksz cao. Na potrzeb
t odpowiedziaa Fundacja GNOME,
ktrej zadaniem jest czuwanie nad
kierunkami rozwoju rodowiska. Poparta finansowo przez firm Novell
(aktualnego waciciela Ximiana),
ogosia ona polowanie na nagrody
za integrowanie rodowiska (ang.
Desktop Integration Bounty Hunt).
Przedsiwzicie ma form konkursu
dla programistw, w ktrym przedstawiono szereg zada integracyjnych
do wykonania oraz wyznaczono
kwoty nagrd pieninych za wyko-

www.linux.com.pl

Komunikacja dowolnymi kanaami


integracja programw Evolution, Gaim i
GnomeMeeting

nanie kadego z nich. Osoby chcce zarobi na tworzeniu Wolnego


Oprogramowania musz si jednak
popieszy poprawki musz by
zatwierdzone do dnia zamroenia
interfejsu graficznego w przyszym
GNOME 2.6. Zgodnie z obecnym
harmonogramem, dzie ten przypada na 12 stycznia 2004.
http://www.gnome.org/bounties/

Nowy strumie muzyki


Autorzy projektu GStreamer
postawili kolejny krok na drodze
poprawiania obsugi multimediw
w przyszym GNOME 2.6. W wydanej
wanie wersji 0.7.2 platformy nie
tylko wyeliminowano mnstwo
bdw i wprowadzono zmiany
w architekturze (m.in. nowy system
adowania wtyczek), ale zawarto
rwnie wtyczki pozwalajce na
odtwarzanie plikw dwikowych
powszechnie wystpujcych
w wiecie systemw MacOS
czy Windows: WMA (Windows
Media Audio), AAC (Advanced
Audio Coding) oraz Quicktime
(tylko Sorensen 1). Dodatkowo
czciowo zaimplementowano
wtyczk do obsugi plikw wideo
w windowsowym formacie WMV
(Windows Media Video), cho na
razie moliwe jest odtworzenie przy
jej uyciu tylko niektrych plikw.
Obecnie z platformy GStreamer
korzysta nie tylko standardowy
odtwarzacz multimedialny GNOME
oraz program Rhythmbox, ale nawet
program do regulacji gonoci.
http://www.gstreamer.net/releases/0.7.2/
notice.php
OpenOffice.org wybiera GNOME
Twrcy projektu OpenOffice.org
przedstawili niedawno dokument,
ktry szczegowo przedstawia
zaoenia i plany zwizane z kolejn
znaczc wersj znanego pakietu
biurowego. Uytkownikw GNOME
zainteresuje z pewnoci fakt, i
jednym z kilku najwaniejszych
opisanych w dokumencie zaoe jest
integracja OpenOffice.org w wersji
dla systemw Linux/UNIX ze
rodowiskiem GNOME. Integracja ma
obejmowa wygld i zachowanie si
aplikacji, jak rwnie wykorzystanie
istniejcej infrastruktury GNOME
zamiast samodzielnego tworzenia
analogicznych rozwiza w ramach
OO w sposb niezaleny od
platformy (oznacza to m.in. uycie
biblioteki GNOME-VFS oraz
pobieranie informacji o domylnej
przegldarce WWW czy adresie
porednika sieciowego bezporednio
z konfiguracji GNOME). Wybr
rodowiska GNOME jako
podstawowego w systemach
uniksowych nie powinien dziwi,
gdy jest ono wykorzystywane
komercyjnie ju nie tylko przez
firm Sun, rozwijajc OOo, ale
i takie firmy, jak IBM czy Novell
http://tools.openoffice.org/releases/qconcept.html

21

aktualnoci

Quanta-3.2BE1
Zesp deweloperw edytora HTML
dla KDE QuantaPlus przedstawi
uytkownikom kolejn wersj ich dziea.
Tym razem jest to wersja Bleeding
Edge numer jeden, czyli bardzo
wczesna wersja testowa, przedstawiajca
zarys moliwoci kolejnego stabilnego
wydania 3.2. Co nowego? Przede
wszystkim nowy edytor arkuszy styli
oraz automatyczne zapisywanie plikw.
Trzeba zaznaczy, e nowe wydanie
wymaga Kdelibs w wersji z CVS
lub nadchodzcego 3.2 beta2.
http://quanta.sourceforge.net/main2.php?
newsfile=qberelease01
KDevelop najlepszy
Powody do dumy maj autorzy
rodowiska IDE dla KDE KDevelopa.
Z jakiego powodu? Projekt ten
zdoby 29.4% gosw w swojej kategorii,
wyprzedzajc tym samym takie
oprogramowanie, jak Eclipse czy Anjuta,
na stronach magazynu Linux-Magazin.
Niemiecki miesicznik podejmujc
decyzj opiera si na opinii jury, ktre
skadao si z autorw aplikacji dla KDE
oraz najwikszych osobistoci Linuksa,
m.in. Alana Coksa.
http://www.kdevelop.net/
http://www.linux-magazin.de/Artikel/
ausgabe/2003/12/award/award.html
KDE na targach COMDEX
Projekt KDE zaszczyca swoj
obecnoci niejedne ju targi
oprogramowania. Tym razem wybr
pad na targi COMDEX, ktre odbyy
si w tym roku w Las Vegas. Nie
zabrako na nim saw technologii
informatycznej, choby Billa Gatesa,
ktry da wykad na temat pozycji
Microsoft na rynku (wspomnia
oczywicie o zagroeniu ze strony
projektw Open Source). W ramach
KDE poruszono takie tematy, jak klient
pracy grupowej Kontact, Kiosk, czyli
najatwiejsze w obsudze rodowisko
graficzne we wszechwiecie oraz oglna
tematyka dotyczca stacji roboczych.
http://dot.kde.org/1069632528/
Nowe standardy
Ci, ktrzy interesuj si rozwojem KDE
od podszewki, wiedz ju zapewne,
jakie rewolucyjne zmiany dotkn
okna konfiguracji poszczeglnych
komponentw. Nowa struktura o nazwie
KConfig XT, ktra niedawno powstaa,
wyznacza nowy standard i jest bardzo
nowatorska. Szczegy dotyczce tych
rewelacji dostpne s przede wszystkim
w przewodniku, stworzonym na
potrzeby serwisu developer.kde.org.
http://developer.kde.org/documentation/
tutorials/kconfigxt/kconfigxt.html

22

kde

Rekall na GPL!

irma theKompany.com zaprezentowaa now wersj programu


Rekall. Now, bo tym razem opart na
licencji GNU GPL. Czym jest Rekall?
Jest to program do zarzdzania
bazami danych, stworzony z myl
o uytkownikach KDE.
Rekall bdzie teraz wspierany
przez deweloperw zwizanych z portalem www.rekallrevealed.org. Pomoc
ze strony uytkownikw w postaci
zgaszania bdw czy nawet podsyania atek autorom jest mile widziane.
Konkurencj dla Rekalla jest stosunkowo niedawno narodzony projekt
o nazwie Kexi, ktry jest skadnikiem
pakietu biurowego KOffice. Pomimo
tego, e Rekall jest projektem bardziej
dojrzaym, to deweloperzy Kexi bd
mobilizacj dla autorw konkurencji.
Istnieje zatem due prawdopodobiestwo, e za jaki czas otrzymamy
aplikacje zdolne do penej obsugi
wszelakich baz danych pod Linuksem.
Co potrafi Rekall w tej chwili? Oto
lista niektrych funkcji:

Rekall

wsparcie dla baz danych: MySQL,


PostgreSQL, IBM DB2 oraz ODBC;
dodawanie baz danych, zarzdzanie wpisami, tabelami, uytkownikami itd.;
importowanie/eksportowanie baz
danych;
wsparcie dla skryptowania (Python);
obsuga wtyczek.
http://www.rekallrevealed.org/

Gollum a KDE

u zdziwieniu wielu fanw KDE,


a zarazem dobrego kina, w rozszerzonej wersji DVD drugiej czci
filmu The Lord of The Rings, The
Two Towers, moemy zauway
obecno naszego ulubionego rowiska na komputerach twrcw grafiki! Film relacjonujcy proces tworzenia animacji przedstawia m.in.
scen z Gollumem i Samem, do
ktrej efekty specjalne (a gwnie
posta samego Golluma) zostay
stworzone przy uyciu aplikacji Maya,
dziaajcej pod kontrol KDE.
Zastosowanie takiego zestawu
wyszo z inicjatywy firmy Weta Digital. Jako ciekawostk pragn przedstawi fakt, i do tworzenia tekstur
oprcz programu GIMP zosta
uyty Adobe Photoshop, dziaajcy
pod kontrol emulatora CrossOver
Office. Twrcy CrossOver zgodzili si

Prace na Wadc Piercieni pod KDE

podobno zmieni swj projekt na tyle,


aby dziaa w nim Photoshop, za (sic!)
100 tysicy dolarw! Tak sum przekazaa firma US Film Industry, tylko
po to, aby cao oprogramowania
na komputerach twrcw grafiki do
Wadcy Piercieni dziaaa pod kontrol Linuksa. Warto podkreli, e
nie jest to debiut KDE w filmowych
przedsiwziciach.

stycze 2004

dzia prowadzi: Pawe Biliski


kde@linux.com.pl

Krusader 1.30

George Straikos ponownie...


Nie po raz pierwszy i zapewne
nie ostatni George Straikos udzieli
wywiadu, w ktrym przedstawia
sytuacj rozwoju KDE. Stowarzyszenie
USA Linux User Group przeprowadzio
wywiad z George'm, ktry w bardzo
pozytywnym wietle przedstawi
postpy przy pracach nad nowym
KDE 3.2.
http://www.usalug.org/
index.php?view=14

rusader, znany meneder plikw,


doczeka si kolejnej wersji, a co
za tym idzie wielu zmian, oczywicie
na lepsze. Kilka miesicy temu, na
amach dziau, ktry wanie czytacie,
pisaem o problemach ze znalezieniem
deweloperw zainteresowanych kontynuacj rozwoju Krusadera. Jaki czas
pniej zostao opublikowane nowe
wydanie Beta, w ktrym mona byo
zauway nieliczne poprawki, ale wielu
jego uytkownikw miao nadziej na
szybszy rozwj tego obiecujcego programu. I tak si stao. Nowa sia rozwojowa w postaci osb chtnych do
pomocy przy wsptworzeniu aplikacji
pozwolia na szybki start ku nowym
wydaniom. Nadszed czas na stabilne
wydanie oznaczone numerkiem 1.30.
Co nowego? Oto pena lista zmian
widocznych dla uytkownika:
tworzenie nowych plikw za pomoc skrtu [Shift]+[F4];
obsuga zakadek w kadym z paneli (listy plikw, poczenia ssh);
nowy sposb podgldu plikw za
pomoc skrtu [Shift]+[F3];
przechodzenie pomidzy panelami za pomoc skrtu [Shift]+[U ];
moliwo otwierania wiele plikw na raz (posiadajcych to samo rozszerzenie);
nowy system zakadek;
poprawki w tumaczeniach;
zmiany w systemie wyszukiwania
plikw.
Poza wyej wymienionymi innowacjami, poprawiono oczywicie bdy
dotyczce stabilnoci programu.
Instalacja Krusadera krok po kroku
Pobieramy rda programu z adresu
ht t p : //prdownloads. sourcefor ge.
net / kr usader / kr usader-1.30.tar.
gz?download (po wpisaniu tego adresu
zostaniemy poproszeni o wybr serwera lustrzanego). Otrzymane archiwum rozpakowujemy (polecenie tar),
najlepiej za pomoc konsolowego
Midnight Commandera. W katalogu,

www.linux.com.pl

Nowy Krusader w akcji

w ktrym rozpakowalimy Krusadera,


wykonujemy polecenia ./configure
prefix=`kde-config prefix` ; make.
Jeli cao procesu kompilacji przebiega bez problemw, przechodzimy do
umieszczenia wszystkich potrzebnych
plikw w podanym prefiksie KDE.
Robimy to jako uytkownik root,
wykonujc polecenie make install.
Po zakoczeniu procesu instalacji,
moemy usun rda programu (rozpakowany uprzednio katalog) i uruchomi program, np. wybierajc go
z menu KDE, podmenu Aplikacje.
Dla osb, ktre nie chc instalowa Krusadera kompilujc jego rda,
dostpne s gotowe pakiety binarne
dla niektrych dystrybucji, np. Mandrake 9.1, Fedora 1 czy SuSE 8.2.
Co nowego w kolejnych
wydaniach?
Obserwujc plik TODO, dowiemy si,
czego spodziewa si po kolejnych
wydaniach Krusadera. Z ciekawszych
rzeczy oznaczonych najwyszym priorytetem moemy znale midzy
innymi:
rewolucje w oknie preferencji;
pasek postpu przy odwieaniu;
dodanie okna z wynikami wyszukiwania, podobnego do tego, ktre
znamy z Midnight Commandera;
napisana od zera obsuga wsparcia dla protokou SMB;
wsparcie dla FTP proxy z nowym
oknem konfiguracji;
menu uytkownika.
http://krusader.sourceforge.net/

Precz z robakami ...


... osiadymi w rozwijajcym si
cay czas kliencie pracy grupowej
Kontact. 16 listopada odby si
dzie oczyszczania Kontactu od
wszelakich bdw. Rozpoczto prace
z 431 bdami (cznie dla KMail,
KAddressBook, KOrganizer, KNotes
i samego Kontacta), a zakoczono,
gdy liczba ta wynosia 419. Jest to
zupenie niezy wynik, szczeglnie,
gdy spojrze na czas, w jakim
wykonano tak czasochonn prac.
http://www.kdedevelopers.org/node/
view/241
Dla fanw Apple
Przegldajc serwis KDE-look.org,
mona zauway sporo tematw
nawizujcych do stylistyki MacOS
X. Jednym z nich jest niedawno
powstay styl o nazwie Baghira,
ktry bazuje na silniku Mosfet-Liquid
w wersji 0.9.6pre4. Jak do tej pory,
autorowi tematu udao si zdoby
uznanie ok. 87% odwiedzajcych
centrum tematw dla KDE jest to
wynik wiadczcy o uznaniu dla
styli tego typu wrd uytkownikw
KDE. Pomimo, e sam nie jestem
fanem tego typu wystroju biurka,
to zapraszam osoby o odmiennych
gustach do testowania nowego stylu.
http://kdelook.org/content/
show.php?content=8692
Nowe KDE.pl!
Od pewnego czasu mona przeglda
serwis KDE.pl ubrany w nowe szaty.
Poza zmianami dotyczcymi wygldu,
zmieniono przede wszystkim ukad
strony oraz uproszczono nawigacj.
Warto doda, i samo KDE.pl stao si
centrum informacji o tym rodowisku,
natomiast wszelkie nowoci ze wiata
K Desktop Environment dostpne s
pod adresem http://dot.kde.pl/. Zmiany
te maj na celu zlikwidowanie ryzyka
wamania si do systemu newsowego,
a take poprawienie czytelnoci
i zmian wizerunku serwisu,
w ktrym wszystko jest teraz bardziej
uporzdkowane i ma swoje miejsce.
http://www.kde.pl

23

linuxfresh

Lyrc

odczas suchania piosenek (szczeglnie obcojzycznych) nie zawsze udaje si dokadnie wychwyci
tre. Czasem chcielibymy ponuci razem z wykonawc,
lecz nie pamitamy dokadnie sw. Pomocne w takich
sytuacjach s liczne witryny zawierajce sowa piosenek
(lyrics). Wyszukiwanie ich nie jest jednak zawsze wygodne, a take wymaga otwierania przegldarki podczas
suchania muzyki. Z tego powodu powsta Lyrc, wtyczka
do programu XMMS, pobierajca z sieci sowa aktualnie
odtwarzanej piosenki i wywietlajca je w osobnym
okienku.
Starsza wersja Lyrc (0.1) udostpniona bya tylko
w wersji binarnej. Aktualna (0.2) zostaa ju udostpniona razem z kodem rdowym. Jak wic wida, program
dopiero si rozwija. Warto bliej si nim zainteresowa,
gdy to wanie dziki pomocy uytkownikw moe sta
si bardziej przydatny. Wtyczka korzysta z bazy tekstw
piosenek, umieszczonej na serwerze lyrc.com.ar. Jeli
napotkamy na piosenk, dla ktrej sw jeszcze nie ma
w bazie, moemy doda je samodzielnie. Jeli za w bazie
znajduje si kilka tekstw pasujcych do naszej piosenki, to bdziemy mogli wybra ten waciwy. Nie naley
obawia si, e podczas suchania ulubionych piosenek
wtyczka bdzie cigle pobieraa dane z Internetu raz
pobrane teksty przechowywane s w katalogu ~/.lyrics.
Obecnie Lyrc radzi sobie z pobieraniem danych o piosence z plikw mp3 (dziki znacznikom ID3), ogg i cieek
pyt audio (wykorzystuje plik ~/.xmms/cdinfo).
Kod rdowy wtyczki moemy pobra ze strony
projektu (http://sourceforge.net/projects/lyrc/ ). W chwili
pisania artykuu by to plik o nazwie lyrc-0.2.tar.gz. Jego
instalacja nie sprawia problemw. Po rozpakowaniu rde (tar xzvf lyrc-0.2.tar.gz), wystarczy w utworzonym
katalogu wyda polecenia make i make install (to drugie
z poziomu uytkownika root). Jeli jednak polecenie make

Nawet znajc sowa, prba zapiewania tej piosenki moe


doprowadzi do skrcenia jzyka

nie powiedzie si, naley upewni si, czy w systemie


mamy nastpujce programy: xmms-config, gtk-config
oraz xml2-config. W Auroksie znajduj si one odpowiednio w pakietach: xmms-devel, gtk+-devel oraz libxml2devel.
Po poprawnej instalacji moemy ju uruchomi XMMS
(Dwik i wideo > Odtwarzacz dwiku). Wtyczk Lyrc
znajdziemy w Preferencjach ([Ctrl]+[P ]), w zakadce Visualisation Plugins. Jeli chcemy go uruchomi, to po wybraniu go z listy, zaznaczamy pole Enable plugin.
Wydaje mi si, e warto wspiera rozwj tego programu, nawet gdyby miao to polega tylko na dodawaniu
tekstw piosenek, ktrych jeszcze nie ma na serwerze. Ju
teraz, dziki zaangaowaniu uytkownikw, dostpnych
jest wiele tekstw piosenek polskich wykonawcw.
http://sourceforge.net/projects/lyrc/
http://www.lyrc.com.ar/

LARPOMachine

idzielicie moe kiedy du grup ludzi przebranych w redniowieczne stroje, biegajcych po


ruinach zamkw i okolicznych lasach? A moe zamiast
strojw z epoki mieli na sobie wspczesne mundury
i wykonan z drewna bro? Jeli tak, to najpewniej mielicie do czynienia z uczestnikami LARP-a (Live Action
RolePlaying), czyli gry fabularnej na ywo.
Jeden z Mistrzw Gry, Matias Maki, postanowi uatwi sobie i innym organizowanie LARP-w. W tym celu
zacz pisa wasny system w PHP, ktry nazwa LARPOMachine. Projekt po osigniciu wersji 0.2 zosta udostpniony publicznoci do testowania. Chocia przed nim

24

jeszcze duga droga, zapowiada si ciekawie. W zaoeniu


ma pozwoli graczom na rejestrowanie si, zapoznawanie
z ogln fabu i tworzenie swoich postaci. Gracze bd
rwnie mogli przesya swoje zdjcia, co pozwoli im
zapamita wygld swoich towarzyszy, ktrych spotkaj
w czasie gry.
LARPOMachine budowany jest w oparciu o MySQL 4.0.16, PHP 4.3.3 oraz najnowsze repozytorium
PEAR, lecz powinien dziaa rwnie i ze starszymi wersjami MySQL i PHP.
http://freshmeat.net/projects/lom/

stycze 2004

dzia prowadzi: Piotr Machej


fresh@linux.com.pl

Brag

zytelnicy korzystajcy z serwerw grup dyskusyjnych


z pewnoci zdaj sobie spraw z istnienia tzw. grup
binarnych. Nie jest to moe najlepszy sposb na rozpowszechnianie plikw, lecz wci popularny. O ile jednak
mae pliki wysane na grup newsow mieszcz si zwykle w jednej wiadomoci (przykadowo fotografie koni na
alt.binaries.pictures.horses), o tyle z wikszymi jest ju problem. Pliki takie dzielone s na wiele mniejszych i hurtem
wysyane na grup. Czsto prowadzi to do tego, e w celu
zapoznania si z jednym plikiem, musimy cign kilkaset
wiadomoci, nastpnie zapisa doczone do nich pliki,
poczy je, dopiero rozpakowa...
No wanie, jest z tym troch roboty. A w dodatku powysze odbywa si przy zaoeniu, e na naszym serwerze
pojawiy si wszystkie czci pliku, co czsto jest tylko
pobonym yczeniem. Z tej przyczyny istnieje szereg programw mniej lub bardziej pomagajcych przy pobieraniu
wiadomoci z binarnych grup dyskusyjnych. Jednym z nich
jest Brag.
Brag dziaa w linii polece, lecz nie powinno to Czytelnikw zraa. Umoliwia on pobieranie wieloczciowych
zacznikw z wiadomoci na grupach newsowych. Jedn
z jego ciekawszych funkcji jest moliwo pobierania czci
jednego pliku z wielu rnych serwerw i z rnych grup.
Potrafi on dekodowa zaczniki zakodowane w uuencode,
MIME bas64 oraz yenc. wietnie nadaje si take do uruchamiania z Crona, dziki czemu moe pobiera pliki bez
naszej ingerencji. Oprcz wskazania grupy i serwera, moemy rwnie okreli (dziki wyraeniom regularnym), ktre
zaczniki maj by pobierane, a ktre absolutnie nie.
Ze strony domowej projektu (http://brag.sourceforge.net/
) moemy pobra zarwno pakiet rpm, jak i paczk tgz.
W przypadku pobrania tej drugiej (brag-1.4.1.tar.gz), po
rozpakowaniu archiwum wystarczy wyda polecenie make
install (z poziomu uytkownika root). Pakiet rpm instalujemy standardowo (rpm -Uvh brag-1.4.1-1.noarch.rpm).
Program wywoany bez parametrw (poleceniem brag)
sprbuje poczy si z serwerem okrelonym zmienn
rodowiskow NNTPSERVER oraz z grup, ktrej nazwa
znajduje si w zmiennej rodowiskowej NNTPGROUP. Jeli
grupy takiej nie ma, to domylnie zostanie uyta nazwa
alt.binaries.pictures.cemetaries. Poniewa raczej nie interesuje nas tematyka cmentarna, wic lepiej uywa parametrw. Podstawowe wywoanie to:
brag -s nazwa_serwera -g nazwa_grupy

Brag postara si poczy ze wskazanym serwerem, a nastpnie pobra z wyznaczonej grupy wszystkie zaczniki
binarne. Jeli plik binarny zostanie pobrany w caoci, to
umieszczony bdzie w katalogu ~/.brag/nazwa_serwera/
nazwa_grupy/finished/. Z kolei niekompletne fragmenty

www.linux.com.pl

Moemy wesprze rozwj Braga kupujc rne gadety

plikw znajd si w katalogu ~/.brag/nazwa_serwera_nazwa_grupy/unfinished/, rozdzielone na poszczeglne podkatalogi.


Wiele serwerw wymaga autoryzacji uytkownika. Dla
programu Brag to nie problem. Moemy w linii polece poda nazw uytkownika i haso, korzystajc z wywoania:
brag -l nazwa_uytkownika -p haso

Lepiej jednak (ze wzgldw bezpieczestwa) ograniczy si


do podawania w linii komend tylko nazwy uytkownika.
Haso natomiast naley umieci w pliku ~/.brag/nazwa_
serwera/passwd, w postaci nazwa_uytkownika:haso.
Wspomniaem wczeniej, e Brag umoliwia czenie
fragmentw pliku wysanych na rne grupy, a nawet
na rne serwery. Su do tego opcje -c i -C. Pierwsza
z nich pozwala na czenie fragmentw wysanych na
rne grupy. Fragmenty takie umieszczane s w katalogu
~/.brag/nazwa_serwera/unfinished/ (po skompletowaniu,
peny plik znajduje si w katalogu ~/.brag/nazwa_serwera/
finished/ ). Wane jest, e po uyciu tej opcji, wiadomoci
wysane na kilka grup (crosspost) bd pobierane tylko raz.
Druga opcja czy fragmenty wysane na t sam grup, ale
na rne serwery. Pliki umieszczane s w odpowiednich
podkatalogach katalogu ~/.brag/nazwa_grupy/.
Istnieje take moliwo uycia obydwu opcji rwnoczenie. W takim przypadku czone bd fragmenty pobierane z rnych grup i z rnych serwerw, a nastpnie
umieszczane w odpowiednich podkatalogach katalogu
~/.brag/all-servers/.
Jak wida, Brag jest programem bardzo uytecznym
i wygodnym. Z pewnoci przyda si tym Czytelnikom,
ktrzy czasem pobieraj wiksze pliki z grup binarnych.
http://brag.sourceforge.net/

25

wywiad

Wywiad z Alexandrem Peslyakiem


(Solar Designerem), twrc projektu
Openwall
Krzysztof Krawczyk (Linux+): Czy mgby przedstawi si Czytelnikom naszego pisma? Gdzie mieszkasz
i czym zajmujesz si na co dzie?
Alexander Peslyak (Openwall): Podczas wywiadw
wol mwi o rzeczach, ktre robi dla spoecznoci, ni
o sobie. Skoro jednak pytasz, mieszkam w Moskwie, gdzie
od 1997 roku pracuj jako administrator bezpieczestwa
w firmie DataForce ISP. Ponadto, pracuj jako niezaleny
konsultant ds. bezpieczestwa. W wolnym czasie zajmuje
si rozwijaniem rnych projektw, a poniewa mam wicej pomysw do realizacji ni jestem w stanie wykona, na
nic wicej nie mam czasu. Jeeli jednak znajd jaki czas
wolny od komputerw, powicam go onie.
KK: Dlaczego wszdzie korzystasz z pseudonimu Solar
Designer? Z czego to wynika?
AP: Nie ma adnego konkretnego powodu. Pseudonim
pochodzi ze wiata RPG i nie znaczy wiele, do czasu, gdy
ludzie zaczli rozpoznawa mnie wanie pod nim.
KK: Od duszego czasu prowadzisz projekt Openwall.
Kiedy to si zaczo i z kim wsppracujesz przy jego rozwijaniu?
AP: Od 6 lat wikszo czasu spdzam zajmujc si
komputerami i bezpieczestwem sieci. W szczeglnoci
rozwijam rne darmowe uniksowe narzdzia zwizane
z bezpieczestwem i staram si znajdowa bdy w ju
istniejcym oprogramowaniu. Projekt Openwall, ktry
rozpoczem w 1999 roku, jest rozwiniciem tych zainteresowa.
Chocia jestem autorem wikszoci oprogramowania
opublikowanego w ramach Openwalla, to nasz najwikszy
podprojekt, Openwall GNU/*/Linux (Owl), jest rozwijany
w zespole, ktremu przewodz. Owl jest systemem operacyjnym o zwikszonym bezpieczestwie, ktrego baz jest
Linux i oprogramowanie GNU, przeznaczonym gwnie dla
serwerw internetowych.
Aktualnie najbardziej aktywnymi deweloperami Owl
s, oprcz mnie, Michail Litvak, Rafa Wojtczuk (Nergal),
Dmitry V. Levin oraz Jarno Huuskonen.
KK: W ramach projektu Openwall przygotowujesz aty
na jdro Linuksa, w tym na seri 2.4, zwikszajce jego bezpieczestwo. Czemu nie wprowadzi tych zmian na stae do
jdra? Czy s takie plany? Czym rni si twoje poprawki
od rwnie popularnego GrSecurity?
AP: Niektre fragmenty tych atek s w rzeczywistoci
wczane do stabilnych jder, w przeciwnym razie rozmiar

26

Rysunek 1. Alexander Peslyak

moich atek wci by rs, ale s to poprawki bdw bezpieczestwa wykrytych w samym jdrze. Rzeczywicie,
rozszerzenia zwikszajce bezpieczestwo nie zostaj
wczane, ale ja nie spodziewam si zmiany tej sytuacji.
Jedn z przyczyn jest to, e te rozszerzenia mog spowodowa faszywe poczucie bezpieczestwa. Kto mgby
potem podj decyzj o nienaprawianiu dziury w systemie,
ktrym administruj, lub w oprogramowaniu, ktrym si
zajmuje, tylko z powodu tych rozszerze. Jeli tak si stanie,
bezpieczestwo bdzie w rzeczywistoci zmniejszone,
a nie zwikszone.
GrSecurity rozpoczto jako nieoficjalne przeniesienie
moich atek na jdro serii 2.4, o wiele wczeniej zanim
uznaem te jdra za przeznaczone do zastosowa produkcyjnych. W momencie, gdy zadecydowaem o oficjalnym
wsparciu jder 2.4, GrSecurity sta si ju du ogln
atk, ktra zawieraa wiele innych tego typu rozszerze
z rnych miejsc. Z caym szacunkiem dla Brada, ktry
rozpocz GrSecurity, wci uwaam, e niektre jego
rozszerzenia lub ich implementacje s zbyt wtpliwe, aby
je poleca. Oczywicie s tam take rozszerzenia, ktrych
nie ma w moich atkach, a s bardzo ciekawe. Mgbym je
nawet wczy do wasnych atek, gdybym je wci aktywnie rozwija, zamiast tylko utrzymywa.
Niektrzy czytelnicy mog zastanawia si, czy i dlaczego moje poprawki straciy dla mnie swoj wag. Tak jest
w istocie, gdy mam teraz Owla. Z poprawnie przygotowanym rodowiskiem uytkownika, nie s one ju tak bardzo
potrzebne.

stycze 2004

wywiad z solar designerem

Rysunek 2. Pracowa mona w rnych warunkach

KK: Wanie. Porozmawiajmy o Owlu, ktrego opublikowae ponad rok temu. Co si od tego czasu zmienio,
gdy jak na razie niewiele sycha o tej inicjatywie. Dla kogo
jest ta dystrybucja i do czego mona j wykorzysta?
AP: Pracuj nad Owl-current, a Owl 1.1 powinien si
ju ukaza, gdy ten wywiad zostanie opublikowany. Postanowiem nie wysya na BugTraqa ogosze o niewielkich
poprawkach bezpieczestwa, ktre wprowadzilimy w midzyczasie, chocia s one oczywicie zamieszczone w pliku
zmian (ang. changelog) Owl-current, oznaczone jako SECURITY-FIX, wraz z innymi duymi zmianami w systemie.
Owl jest przeznaczony przede wszystkim dla dowiadczonych administratorw systemw, ktrzy ceni sobie
bezpieczestwo swoich systemw. Inne przydatne zastosowania Owla mog wynika z dostpnoci w systemie
narzdzi sieciowych, deweloperskich oraz zwizanych
z bezpieczestwem, a take moliwoci atwego jego
przebudowania ze rde (make buildworld).
KK: A jak wyglda komercyjny aspekt tego zagadnienia.
Czy udaje Ci si sprzedawa t dystrybucj Linuksa. Czy jest
due zainteresowanie usug zdalnej instalacji? Czy oferujesz co jeszcze, np. audyt bezpieczestwa wewntrznej
sieci?
AP: Przyjmujemy zamwienia na pyty CD z Owlem.
Wikszo ludzi woli jednak skorzysta z darmowego
pobierania obrazw ISO. Usuga zdalnej instalacji, ktr
udostpniamy (kto uruchamia Owla, konfiguruje sie
i pozwala nam zdalnie dokoczy instalacj, zaczynajc
od podziau dysku na partycj), nie jest zbytnio popularna.

www.linux.com.pl

Prawdopodobnie wynika to z tego, e ludzie, ktrzy wybieraj Owla, nie s aktualnie tymi, ktrzy szukaliby takiego
rodzaju wsparcia.
Mylimy nad przygotowaniem i utrzymywaniem wersji
OEM Owla dla firm, ktre potrzebuj bezpiecznego systemu operacyjnego dla swoich serwerw sieciowych (ang.
network appliance serwers).
Tak, oferujemy inne usugi z zakresu wolnego oprogramowania i bezpieczestwa. Mam tu przykadowo na myli
odpatne tworzenie programw lub rozszerze oprogramowania uwzgldniajcych specyficzne wymagania klientw
(pniej zostaj udostpnione spoecznoci), audyty kodu
rdowego ukierunkowane na bezpieczestwo, rnego
rodzaju konsultacje oraz zdaln administracj systemem.
KK: Jakie oprogramowanie jest jeszcze tworzone
w ramach projektu Openwall? Czy planujesz co nowego?
AP: W ramach projektu Openwall jest tworzonych wiele
programw. W wikszoci s to elementy Owla, ktre s
dostpne take oddzielnie do wykorzystania w innych
systemach uniksowych. Wiele z nich jest w rzeczywistoci
wczanych do innych dystrybucji, take *BSD.
Najbardziej popularny jest mj zestaw narzdzi do hase,
w skad ktrego wchodzi: John the Ripper (narzdzie amice hasa), listy sw, Pam_passwdqc (modu sprawdzajcy
jako hasa) oraz implementacja Bcrypta (mj nowy system
szyfrowania hase, kompatybilny z tym z OpenBSD). Do
tego dochodzi Tcb, implementujcy alternatywny mechanizm zarzdzania hasami, dostpny w Owl, a zaprojektowany i wykonany gwnie przez Rafaa Wojtczuka.
Inne oprogramowanie to Scanlogd (demon wykrywajcy skanowanie portw), Popa3d (demon POP3 zaprojektowany z myl o bezpieczestwie), Msulogin (lepszy
program do logowania si w trybie pojedynczego uytkownika) oraz kilka moduw PAM.
Utrzymywanie i rozszerzanie istniejcego oprogramowania zabiera wiele czasu, zatem nie odwa si w tej
chwili obieca przygotowania cakiem nowych rozwiza.
Znaczce uaktualnienia istniejcych programw s wci
jednak opracowywane.
KK: Czy do projektu mona si jako zapisa i pomaga
Ci w jego rozwoju? Czy mona jeszcze jako inaczej wspiera projekt?
AP: Oczywicie, z chci zobacz wicej utalentowanych ludzi przyczajcych si do mojego zespou. Niektre
rzeczy, ktre musz by zrobione, s zawarte w dokumencie TODO z Owl-current. Poza zgaszaniem wasnego kodu,
przyjmujemy take datki w postaci pienidzy, sprztu lub
usug istotnych dla projektu. Zakup pyt CD z Owlem
i zamawianie patnych usug take jest du pomoc.
KK: Czy moesz powiedzie nam, co mylisz o projekcie
SE Linux? Jak bardzo koncepcyjnie rni si wasze rozwizania?
AP: SE Linux nie jest nawet podobny do Owla. Cytujc
opis ze stron WWW NSA, SE Linux jest po prostu przykadem, jak obowizkowe prawa dostpu, ktre ograniczaj
akcje dowolnego procesu, wczajc w to procesy super-

27

wywiad

Rysunek 3. Solar Designer (Alexander Peslyak) i Nergal (Rafa


Wojtczuk) podczas prezentacji Owla

uytkownika, mog by dodane do Linuksa. To bardzo


dobry pomys, ale nie z dziedziny, ktr si aktualnie
zajmuj. SE Linux jest przede wszystkim modyfikacj jdra,
a narzdzia do niego i poprawki ju istniejcych, maj rol
drugorzdn.
Gdybym mia rozwaa jego wykorzystanie w Owlu,
prawdopodobnie raczej wybrabym RSBAC.
KK: Z tego, co pamitam, bardzo aktywnie dziaae
kiedy na licie BugTraq. Czy co zmienio si od czasu, gdy
firm SecurityFocus przeja firma Symantec jesieni 2002
roku?
AP: Nie. Samo przejcie nie wpyno na moje postrzeganie BugTraqa w aden sposb. Powodem, dla ktrego
jestem tam mniej aktywny, jest moje priorytetowanie rzeczy
z powodu braku czasu oraz moje zrozumienie, e grupa
subskrybentw tej listy wzrosa do takiego stopnia, i dyskusje, w przeciwiestwie do ogosze, byyby ze zrozumiaych wzgldw uwaane za spamowanie, chyba e temat
byby bardzo nowy lub wart zainteresowania wikszoci
subskrybentw. W wikszoci przypadkw powstrzymuj si od komentarzy. Musiaby to by naprawd dobry
powd, abym wysa co do dziesitkw tysicy ludzi
jednoczenie (a moe jest ich ju ponad 100k?). To nie ma
nic wsplnego z dziaalnoci moderatorw Bugtraqa, lecz
moim samouwiadomieniem.
KK: Czy udzielasz si jeszcze w jakich innych projektach zwizanych z bezpieczestwem?
AP: Tak, i zgaszam poprawki zwizane z bezpieczestwem w projektach z nim nie zwizanych.
KK: Jak oceniasz bezpieczestwo popularnych dystrybucji Linuksa? Dla zwrcenia uwagi, niech bd to Debian,
Aurox i Mandrake.
AP: Nie znam Auroksa (zakadam, e jest to polska
wersja Red Hata).
Wiem, e zespoy tych trzech gwnych dystrybucji,
ktre wymienie (Debian, Red Hat i Mandrake), wykonuj dobr robot w usuwaniu zagroe, ktre zostay
im zgoszone. Gdy to robi, graj te fair w stosunku do

28

innych firm (i co waniejsze, ich uytkownikw), wczajc takie mae jak nasza, wsplnie ustalajc daty ujawnienia zagroenia.
Nie widz adnych znaczcych rnic w podejciu do
spraw bezpieczestwa w tych dystrybucjach. Z kolei dystrybucje, ktre s zlokalizowanymi klonami innej dystrybucji,
takie jak Aurox, s troszeczk z tyu i musz goni czowk. Ale to take nie stanowi duej rnicy.
W przeciwiestwie do Owla, adna z trzech wymienionych dystrybucji nie jest zbytnio chtna do przemylenia i przeprojektowania oprogramowania, ktre
wykorzystuj, w celu zwikszania jego bezpieczestwa.
W rzeczy samej, okazjonalnie akceptuj usprawnienia
dotyczce bezpieczestwa w postaci atek, ale, z kilkoma
wyjtkami, nie maj odwagi wprowadzi bezporednich
rodkw zwikszajcych bezpieczestwo, czego dobrym
przykadem jest wspomniany wczeniej Tcb proponowalimy go wszystkim trzem. Z tego powodu, ich
uytkownicy s w wikszej potrzebie bycia na bieco
z uaktualnieniami ni nasi.
KK: Jakie s obecnie, Twoim zdaniem, najwiksze
zagroenia dla bezpieczestwa systemw operacyjnych?
Wirusy, trojany, bdy w oprogramowaniu czy moe
spam? Czy jeste w stanie wytypowa najwiksz luk
w bezpieczestwie 2003 roku?
AP: To, co uwaa si za najwiksze zagroenie, zaley
od systemu operacyjnego, jego zakadanego wykorzystania, jego faktycznego wykorzystania, miejsca uytkowania
i osoby, ktra to robi. Kada z wymienionych przez ciebie
rzeczy moe nim by. Dla Owla i jego uytkownikw, np.
administratorw, s to tylko bdy w oprogramowaniu,
a i to gwnie w tym zewntrznym, instalowanym dodatkowo w Owlu.
Nie wydaje mi si, aby bya jedna najwiksza luka bezpieczestwa 2003 roku, chocia ilo przesyanej poczty
elektronicznej wci ronie, w tym niechcianej, a to jest
coraz bardziej dranice.
KK: Czy jest sens porwnywa bezpieczestwo Linuksa
z Windows, a jeli tak, jak to wyglda?
AP: Jest, szczeglnie w przypadku systemw biurkowych, gdzie mog istnie suszne powody wybrania Windowsa. Na systemach serwerowych zbyt rzadko jest powd,
aby wybra Windowsa.
Standardowa konfiguracja wielu dystrybucji Linuksa
moe wyglda podobnie do konfiguracji Windowsa nastawionej na bezpieczestwo, z trzema wyjtkami: na Linuksie jest lepsza separacja pomidzy kontem uytkownika
a administratora; pomidzy poszczeglnymi systemami
linuksowymi istnieje wiksza rnorodno, co utrudnia
rozprzestrzenianie si robakw i wirusw; liczba takich
robakw i wirusw jest mniejsza, a ich jako sabsza.
KK: To byoby zatem wszystko. Bardzo dzikuj za
powicony czas.
AP: Dzikuj za moliwo przedstawienia naszej
pracy.

stycze 2004

Linux+ 01/2003

Linux+ 02/2003

Linux+ 03/2003

Linux+ 04/2003

Linux+ 05/2003

Linux+ 06/2003

Linux+ 07/2003

Linux+ 08/2003

Numery archiwalne
Prosimy o przesanie kuponu poczt lub faksem.
Prosimy w odpowiednim polu zakreli numery, ktre Pastwo chc zamwi.
biae pola 15 z za egzemplarz

te pola 24 z za egzemplarz

10

11

12

1999

Linux+ 09/2003

Linux+ 10/2003

2000
2001
2002
2003
rocznik 1999 ( 8 numerw) 80 z
rocznik 2000 (12 numerw) 120 z
rocznik 2001 (12 numerw) 120 z
rocznik 2002 (12 numerw) 150 z
rocznik 2003 (12 numerw) 150 z

Imi i nazwisko, nazwa firmy ......................................................................


Dokadny adres: ........................................................................................
..................................................................................................................

Linux+ 11/2003

Linux+ 12/2003

L+ 01/2004

Wypenia patnik VAT. Owiadczam(y), e jestem(my) patnikiem VAT i upowaniam(y) Software-Wydawnictwo Sp. z o.o. do wystawienia faktury VAT bez podpisu
odbiorcy.

piecztka i podpis
Software-Wydawnictwo Sp. z o.o.
ul. Lewartowskiego 6, 00-190 Warszawa, Tel.: (22) 860 17 67

bezpieczestwo

Loop-AES szyfrowane
systemy plikw
Skarbimir Kwiatkowski

ady, kto uzyska nieautoryzowany dostp do


komputera, zwaszcza fizyczny, jest w stanie
pozna wszystkie tajemnice powierzone jego
dyskom twardym. Jak wobec tego zabezpieczy si przed ujawnieniem poufnych danych firmy lub
prywatnych sekretw, np. w przypadku kradziey notebooka albo gdy dostp do komputera maj osoby trzecie? Jest
na to rada.
Linux oferuje wiele mechanizmw ochrony danych
opartych na silnej kryptografii. Otwarto rde stanowi
gwarancj, e nikt nie zostawi w nich otwartej tylnej furtki.
To wana zaleta. Nie bez znaczenia jest te moliwo
dostosowania konfiguracji do potrzeb uytkownika w stopniu znacznie wikszym ni w przypadku czsto niezbyt
elastycznych produktw komercyjnych.
W dalszej czci artykuu przedstawi kilka modelowych rozwiza opartych na jednym z najwygodniejszych
narzdzi kryptograficznych w Linuksie module jdra LoopAES z wbudowan obsug szyfrowania. W odrnieniu od
takich programw, jak gpg, mcrypt lub ccat, nadajcych
si do szyfrowania pojedynczych plikw lub archiww,
Loop-AES pozwala na wygodne szyfrowanie duych porcji
danych, np. caych partycji (zarwno podstawowych, jak
i logicznych) lub systemw plikw utworzonych w zwykych plikach o niemal dowolnej wielkoci. Dostp do nich
uzyskujemy po wymagajcym autoryzacji montowaniu za
porednictwem urzdzenia loop. Do innych uytecznych
zastosowa moduu Loop-AES nale szyfrowanie partycji
wymiany (swap) oraz korzystanie z zabezpieczonych kryptograficznie pyt CD.
Niewtpliwym atutem tego moduu jest stosunkowo
dua elastyczno i przenono. Moemy go uy w systemach z jdrem z serii 2.0, 2.2, 2.4 oraz cho czasami
nie bez kopotw 2.6. Nie ma przy tym znaczenia, czy
korzystamy z jdra dystybucyjnego czy samodzielnie zbudowanego. Loop-AES nie wymaga take nakadania at na
rda jdra. Gdy obsuga urzdzenia blokowego loopback
nie zostaa wkompilowana w jdro lub sterownik tego urzO autorze:
Autor pracuje w Zakadzie Logiki i Semiotyki Uniwersytetu
Mikoaja Kopernika w Toruniu. Od kilku lat wykorzystuje
Linuksa, FreeBSD i Solaris w dziaalnoci zawodowej i pozazawodowej. Kontakt z autorem: autorzy@linux.com.pl.

30

Rysunek 1. Strona NIST powicona AES

dzenia zosta umieszczony w module, obejdzie si nawet


bez jego rekonfiguracji i rekompilacji.

Praca z szyfrowanym systemem


plikw
Z punktu widzenia uytkownika, praca z zaszyfrowanym
systemem plikw jeli pomin czynnoci zwizane z jego
przygotowaniem i montowaniem nie rni si niczym od
pracy na zwykej, niezabezpieczonej partycji. Proces szyfrowania danych jest "przezroczysty", odbywa si na poziomie
jdra i nie wymaga wykonywania dodatkowych czynnoci czy stosowania specjalnych narzdzi. Moemy wic
tworzy lub usuwa katalogi i pliki przy uyciu zwykych
polece systemowych (touch, mkdir, rm itp.), zapisywa
w nich dowolne dane, przenosi je z innych, niezaszyfrowanych partycji za pomoc standarowego polecenia cp albo
midzy panelami ulubionego menedera plikw. Dopiero
prba "podejrzenia" zawartoci zabezpieczonej partycji po
odmontowaniu uwiadomi nam, e wszystko to, co na niej
zapisalimy, prezentuje si jako zupenie nieczytelny gszcz
przypadkowych znakw.

stycze 2004

loop-aes
Co i jak szyfrowa?
Zanim wybierzemy konkretny model zastosowania LoopAES, warto zastanowi si biorc pod uwag rne
istotne okolicznoci nad szczegami rozwizania.
Jakie dane naprawd potrzebuj ochrony? Czy posiadamy
woln cz dysku, ktr moemy przeznaczy na partycj szyfrowan, czy raczej zaley nam na zabezpieczeniu
partycji ju istniejcych i wykorzystywanych? Czy chcemy
mie moliwo atwego usuwania lub przenoszenia
caoci zaszyfrowanych danych, np. na pytach CD? Czy
korzystamy z tej maszyny sami, czy wsplnie z innymi?
Ile spord tych osb ma mie dostp do wraliwych
danych? Czy wygodniej i bezpieczniej bdzie podzieli
je na czci dostpne z osobna dla kadego uprawnionego, czy moe uy wsplnej partycji chronionej hasem
dostpu albo kluczami GnuPG ? Czy potrzebujemy szyfrowanej partycji wymiany?
Ochrona prywatnoci lub tajemnic firmy jest wana,
ale starajmy si nie popada w paranoj. Uczestnicy grup
dyskusyjnych czasem pytaj: czy mog zaszyfrowa cae
drzewo katalogw?. Oczywicie mona to zrobi, pyta-

AES
Modu Loop-AES, autorstwa Fina Jariego Ruusu, implementuje
symetryczny szyfr blokowy Rijndael, ktry w 2000 r. zosta
wyoniony w konkursie ogoszonym przez National Institute of
Standards and Technology (NIST) jako nowy standard zaawansowanej kryptografii. Z tego powodu Rijndael zwany jest najczciej po prostu AES (Advanced Encryption Standard).
Zwycizca konkursu zastpi wysuony, zbyt powolny
i nie do bezpieczny algorytm DES. Oprcz kryteriw technicznych, AES musia speni warunki publicznej dostpnoci
specyfikacji, braku ogranicze natury patentowo-licencyjnej
oraz zapewni wysok wydajno. W finaowej pitce, prcz
opracowanego przez Belgw Joana Daemena i Vincenta Rijmena algorytmu Rijndael, znalazy si rwnie algorytmy Serpent
i Twofish, stosowane w dodatkowych moduach z projektu
Loop-AES.
Algorytm AES uyty w module loop przetwarza niezaszyfrowany tekst na tekst zaszyfrowany o tej samej dugoci. Dane
szyfrowane s 128-, 192- lub 256-bitowym kluczem w 128bitowych blokach, co zapewnia bardzo silne rozproszenie,
a tym samym skuteczn ochron przed rozszyfrowaniem (Rysunek 2). Szyfrowanie blokw odbywa si w trybie CBC (Cipher
Block Chaining), a jako klucz suy skrt hasa podanego przez
uytkownika, obliczany funkcj skrtu SHA-256, SHA-384 lub
SHA-512.
Jak dotd, nie s znane przypadki zamania AES. Atak
siowy, polegajcy na sprawdzaniu wszystkich kluczy, jest
przy obecnych mocach obliczeniowych komputerw nieefektywny, a moliwo ataku algebraicznego dajcego szans
otrzymania rezultatw w rozsdnym czasie stanowi w tej
chwili zaledwie przedmiot kontrowersji wrd specjalistw.
Zainteresowanym szczegami polecam stron domow
projektu Rijndael, a take stron NIST, powicon tematyce
AES.

www.linux.com.pl

Rysunek 2. Schemat dziaania algorytmu AES

nie tylko, czy rzeczywicie warto. Poufne dane zajmuj na


og tylko pewn cz dysku, reszta to m.in. powszechnie uywane programy, ktrych rda s publicznie
dostpne. Szyfrujc wszystko bez wyboru, najprawdopodobniej zuyjemy niepotrzebnie cz mocy obliczeniowej maszyny i przysporzymy sobie kopotw zwizanych
z rekompilacj jdra, modyfikacj trybu uruchamiania
systemu itp. Z tego powodu odradzam ten pomys. Uparci
eksperymentatorzy znajd precyzyjn instrukcj w dokumentacji moduu Loop-AES.

Przygotowanie narzdzi
Przed rozpoczciem pracy z szyfrowanymi systemami
plikw, musimy zaopatrzy si w pliki rdowe, ktre
posu do zbudowania niezbdnych binariw:
rda moduu Loop-AES (loop-AES-latest.tar.bz2);
Warto rwnie zaopatrzy si w Ciphers (cipherslatest.tar.bz2), zawierajce rda dodatkowych moduw kryptograficznych, wsppracujcych z Loop-AES
(loop_serpent.o, loop_twofish.o i loop_blowfish.o),
oraz rda pomocniczego narzdzia Aespipe (aespipe-latest.tar.bz2), sucego do szyfrowania danych
w potoku (pipe). Ten ostatni program przyda si
nam, gdy bdziemy chcieli zaszyfrowa ju istniejc
i wykorzystywan partycj, na ktrej przechowujemy
pliki wymagajce ochrony. Aespipe i Ciphers stanowi
cz tego samego projektu Loop-AES.
rda zestawu narzdzi Util-linux (util-linux-2.12pre.
tar.bz2);
Programy mount, umount, losetup, swapon, swapoff
musz mie zaimplementowan obsug kryptograficzn, wic uyjemy odpowiednio poatanej wersji.
rda jdra lub co najmniej jego pliki nagwkowe (w
wielu dystrybucjach dostpne w osobnych pakietach),
pliki nagwkowe biblioteki glibc oraz kompilator
jzyka C (gcc).

31

bezpieczestwo

block/loop.o, a nastpnie wydajemy polecenie depmod -a.


Powinno to umoliwi instalacj Loop-AES.
Czas zbudowa modu. O ile pliki nagwkowe jdra
s zlokalizowane w typowym miejscu (/lib/modules/
`uname -r`/build, /usr/src/linux, /usr/src/linux-`uname
-r` lub /usr/src/kernel-source `uname -r`), to po rozpakowaniu archiwum wystarczy ograniczy si do wykonania polecenia make i zaktualizowania listy dostpnych
moduw:
tar jxvf loop-AES-latest.tar.bz2
cd loop-AES-v1.7e
su
make && depmod -a

Rysunek 3. Strona domowa projektu Loop-AES na serwerze


SourceForge

Przede wszystkim powinnimy sprawdzi, czy uywane


jdro systemu spenia wspomniany wczeniej warunek, t.j.
nie posiada statycznie wkompilowanego urzdzenia loop.
Jeli konfigurowalimy je i kompilowalimy wczeniej,
wystarczy zajrze do pliku .config w katalogu ze rdami.
Standardowe wersje jdra domylnie nie wczaj obsugi
loopback.
Jeeli uywamy jdra z dystrybucyjnego pakietu,
moemy poszuka jego konfiguracji (np. Debian umieszcza
stosowny plik z numerem jdra w katalogu /boot) albo po
prostu sprbowa zaadowa modu loop i/lub zamontowa
obraz dowolnej pyty CD z danymi.
Gdy wykonamy polecenie grep CONFIG_BLK_DEV_LOOP
/usr/src/linux/.config, odpowied "CONFIG_BLK_DEV_
LOOP is not set " oznacza, e moemy od razu zaj si
utworzeniem nowego moduu.
Gdy w konfiguracji znajdziemy "CONFIG_BLK_DEV_
LOOP=y ", to niestety bdzie potrzebne nowe jdro systemu. Po wydaniu polecenia make menuconfig, w katalogu
zawierajcym rda, w sekcji "Block devices" wyczamy
opcj "Loopback device support ". W sekcji "Loadable module
support " zaznaczamy "Enable loadable module support ",
a dla wygody, cho nie jest to konieczne, "Kernel module
loader " ("CONFIG_KMOD=y ").
W przypadku, gdy jdro zostao wyposaone w adowalny modu loop ("CONFIG_BLK_DEV_LOOP=m"), a z jakich
powodw nie chcemy budowa nowego jdra, moemy
sprbowa obej kopot w mao elegancki, lecz skuteczny
sposb. Usuwamy lub kopiujemy w bezpieczne miejsce
istniejcy modu /lib/modules/`uname -r`/kernel/drivers/

32

Jeli lokalizacja rde jest inna, to komenda make wymaga


podania cieki do odpowiedniego katalogu: make
LINUX_SOURCE=/sciezka/do/katalogu/ze/zrodlami/jadra.
W katalogu /lib/modules/`uname -r` znajdziemy teraz nowy
podkatalog block, a w nim nowy plik loop.o.
Aby doda moduy loop_serpent.o, loop_blowfish.o
i loop_twofish.o, w analogiczny sposb postpujemy
z archiwum ciphers-latest.tar.bz2. Zyskamy w ten sposb
dodatkowe silne algorytmy Serpent, Blowfish i Twofish.
Kady z nich moe by uywany z kluczem 128-, 192i 256-bitowym, a ponadto ostatni wystpuje rwnie
w postaci Twofish160.
Teraz przystpujemy do przygotowania narzdzi, ktre
pozwol nam w peni korzysta z nowego moduu (lub
moduw). Bdziemy potrzebowali zmodyfikowanych programw mount, umount i losetup, a take jeli planujemy
uywa szyfrowanej partycji wymiany swapon i swapoff.
Odpowiednia ata doczona jest do archiwum loopAES-latest.tar.bz2. W naszym przypadku jest to plik utillinux2.12pre.diff. Przed instalacj warto zadba o kopie
zapasowe. Moemy rwnie, jeeli np. zamierzamy ograniczy si jedynie do testw, umieci zbudowane programy
w innym katalogu. Pamitajmy jednak, e skrypty startowe
systemu, o ile ich nie zmodyfikujemy, bd korzystay ze
starych wersji. Typow procedur kompilacji i instalacji
potrzebnych narzdzi przedstawia Listing 1.

Szyfrowanie partycji
Wreszcie nadesza pora, aby wyprbowa przygotowane oprogramowanie! Na pocztek przedstawi przykad
najbardziej oczywisty, a przy tym prosty. Woln partycj
chcemy przeznaczy na szyfrowane dane. Przyjmuj, e
partycja zostaa ju wczeniej zaoona, np. fdiskiem.
W pierwszym kroku przyczamy partycj do urzdzenia loop. Za pomoc flagi -e okrelamy szyfr (zamiast
AES256 moe to by np. AES128 czy AES192, a jeli zbudowalimy moduy z Ciphers, take np. serpent128 czy
twofish256 ). Nie musimy wasnorcznie adowa moduu
loop, gdy zadba o to jdro systemu, o ile podczas konfiguracji zaznaczylimy "CONFIG_KMOD=y ". Natomiast

stycze 2004

loop-aes

Rysunek 4. Zabezpieczenie dostpu do klucza AES szyfrem niesymetrycznym przy pomocy GnuPG

moduy loop_serpent czy loop_twofish powinnimy


w razie potrzeby zaadowa poleceniem modprobe lub
insmod. Flaga -T informuje program, e ma dwukrotnie
pyta o haso. Polecenie wyglda wic tak:
losetup -e AES256 -T /dev/loopX /dev/hdaN

Tu i w dalszej czci artykuu X oznacza numer urzdzenia


loop, a N numer partycji. Osoby uywajce devfs powinny
Listing 1. Kompilacja i instalacja narzdzi z Util-linux
$ tar jxvf util-linux-2.12pre.tar.bz2
$ cd util-linux-2.12pre
$ patch -p1 <../loop-AES-v1.7e/util-linux-2.12pre.diff
$ CFLAGS=-O2 ./configure

odpowiednio dostosowa polecenia, wpisujc /dev/loop/0,


/dev/loop/7 itp. Dodajmy, e domylna liczba urzdze
loop w systemie wynosi osiem. W razie potrzeby moemy
zwikszy j za pomoc mknod nawet do 256.
Program losetup nie pozwoli na uycie hasa krtszego
ni dwadziecia znakw. To duo, ale wybierzmy je starannie, tak aby maksymalnie utrudni ewentualny atak
sownikowy.
Zakadamy na partycji system plikw ext2 (z pewnymi
ograniczeniami moe to by rwnie system plikw z ksigowaniem, np. ext3; w sprawie szczegw odsyam do
dokumentacji). Zwrmy uwag, e w tej operacji poredniczy loop, dlatego jako argument polecenia podajemy
/dev/loopX. Jeli wszystko przebiego poprawnie, odczamy urzdzenie i zakadamy katalog, ktry posuy nam do
montowania partycji. Opisane polecenia wygldaj tak:

$ make SUBDIRS="lib mount"


$ cd mount

mkfs -t ext2 /dev/loopX

$ strip -s mount umount losetup swapon

losetup -d /dev/loopX

$ su
# for prog in `which mount umount losetup swapon

mkdir /mnt/crypto

Moemy teraz zamontowa partycj:

swapoff`
> do echo "Tworz kopi zapasow $prog.sav"
> cp -p $prog $prog.sav

mount -t ext2 /dev/hdaN /mnt/crypto

> done

-o loop=/dev/loopX,encryption=AES256

# install -m 4755 -o root mount umount /bin


# install -m 755 losetup swapon /sbin
# rm -f /sbin/swapoff && ( cd /sbin && ln -s
swapon swapoff )

S
S

# for item in /usr/share/man/man8/{mount,umount,

Zamiast loop =/dev/loopX wystarczy poda po prostu


loop. System sam wybierze wolne urzdzenie. Polecenie
mount bez opcji powinno nam teraz pokaza m.in. co
takiego:

losetup,swapon,swapoff}.8.gz \

> /usr/share/man/man5/fstab.5.gz

/dev/hda7 on /mnt/crypto type ext2

> do echo "Tworz kopi zapasow $item"

(rw,loop=/dev/loop0,encryption=AES256)

> mv $item $item.sav


# install -m 644 mount.8 umount.8 losetup.8 swapon.8 \
> swapoff.8 /usr/share/man/man8

Jeli wolimy oszczdzi sobie wpisywania za kadym razem


dugiej komendy, powinnimy dopisa do /etc/fstab:

# install -m 644 fstab.5 /usr/share/man/man5


# mandb

/dev/hdaN /mnt/crypto ext2 defaults,noauto,

loop=/dev/loopX,encryption=AES256 0 0

www.linux.com.pl

33

bezpieczestwo

Nie potrzeba niczego wicej. To ju dziaa! Cho tego


w ogle nie dostrzegamy, pliki zapisane w katalogu /mnt/
crypto s szyfrowane i po odmontowaniu partycji bd niedostpne dla niepowoanych oczu.
Gdyby zaleao nam na wzmocnieniu ochrony partycji przed atakiem sownikowym, moglibymy dodatkowo
uy losowo wygenerowanego zarodka hasa oraz poda
liczb powtrze klucza (flagi -S i -C programu losetup).
Zarodek jest dodawany do wpisanego przez administratora hasa, zanim zostanie ono potraktowane nieodwracaln funkcj haszujc (f. skrtu), natomiast na skutek
podania po fladze -C liczby N, utworzony skrt hasa szyfrowany jest N tysicy razy przy uyciu algorytmu AES256. Zabiegi te s do skutecznym sposobem znacznego
spowolnienia ataku.
Losowy zarodek hasa moemy wybra uywajc przykadowo takiej kombinacji polece:
head -c 15 /dev/urandom | uuencode -m - |

awk 'NR == 2 {print}

Powinnimy otrzyma co w rodzaju: 8bqMfh75PZnMu+wwjyVq. Oczywicie za kadym razem ten cig bdzie inny. Wyjciowe polecenie losetup, od ktrego zaczlimy procedur
szyfrowania partycji, wygldaoby zatem tak:
Listing 2. Przykadowy plik /etc/fstab z wpisami
dotyczcymi montowania szyfrowanych systemw plikw
# /etc/fstab: statyczna informacja o systemach plikw.
# <system plikow><punkt montowania><typ><opcje> <dump>

losetup -e AES256 -T -S 8bqMfh75PZnMu+wwjyVq

-C 100 /dev/loopX /dev/hdaN

a do fstab wpisalibymy w takim przypadku:


/dev/hdaN /mnt/crypto ext2 defaults,noauto,

loop=/dev/loopX,encryption=AES256,itercountk=100,

pseed=8bqMfh75PZnMu+wwjyVq 0 0

Plik jak partycja


Zdarza si, e cay dysk jest ju podzielony na sformatowane partycje, z ktrych korzystamy, a wygospodarowanie wolnej czci wymagaoby duo stara. W takim
przypadku nic nie stoi na przeszkodzie, abymy utworzyli zaszyfrowan struktur katalogw w zwykym pliku,
ktry jak wiadomo, w Linuksie moe udawa urzdzenie blokowe, takie jak partycja na dysku twardym. Rozwizanie to ma i t dobr stron, e plik mona w razie
potrzeby przenie w inne miejsce na dysku albo nagra
na pyt CD.
Tworzymy zatem plik o wielkoci np. 700 MB,
a nastpnie poleceniem losetup podczamy go do urzdzenia loop - dziki czemu bdzie on traktowany jak
partycja i wybieramy haso. W dalszej kolejnoci formatujemy go, tworzc struktur systemu plikw ext2. Jako
rdo, z ktrego czyta program dd, moglibymy wykorzysta /dev/zero, ale lepiej uy /dev/urandom dd zapisze
wtedy cay plik losowo wybranymi znakami, co spowoduje, e podgldajc plik, nie bdzie mona zorientowa
si, w ktrym miejscu zaczynaj si i kocz zaszyfrowane
dane. Ostatecznie wyglda to tak:

<pass>
/dev/hda2 / ext3 errors=remount-ro 0 1
# szyfrowany swap
/dev/hda5 none swap sw,

dd if=/dev/urandom of=/jakis_katalog/crypto_file bs=4k

count=179200

losetup -e AES256 -T /dev/loopX /jakis_katalog/crypto_file

loop=/dev/loop0,encryption=AES256 0 0

mkfs -t ext2 /dev/loopX

proc /proc proc defaults 0 0


tmpfs /dev/shm tmpfs defaults 0 0
/dev/hda6 /usr ext3 defaults 0 0
/dev/hda7 /home reiserfs defaults 0 0
/dev/hda8 /scratch reiserfs defaults 0 0
/dev/fd0 /floppy auto user,noauto 0 0
/dev/cdrom /cdrom iso9660 ro,user,exec,noauto,
iocharset=iso8859-2 0 0
/dev/scd1/mnt/cdrw iso9660 ro,user,noauto,

/jakis_katalog/crypto_file /mnt/crypto ext2 defaults,

iocharset=iso8859-2 0 0
# szyfrowane urzdzenia
/dev/hda4 /mnt/crypto1 ext2 defaults,noauto,

gpgkey=/floppy/moj_klucz.gpg,gpghome=/floppy 0 0

S
noauto,encryption=AES256,loop=/dev/loop2, S

/dev/hda9 /mnt/crypto2 ext2 defaults,user,


gpgkey=/etc/kluczepub-crypto.gpg 0 0

/home/self/crypto_fs /mnt/crypto3 ext2 defaults,

34

noauto,loop,encryption=AES256 0 0

loop=/dev/loop1,encryption=AES256, S

noauto,user,loop,encryption=AES256 0 0

Oczywicie i tu znalazyby zastosowanie flagi -S i -C programu losetup (zarodek hasa i liczba iteracji). Pominem
je, aby nie komplikowa przykadw.
Na koniec zakadamy katalog, ktrego bdziemy
uywa podczas montowania i ewentualnie dodajemy do
/etc/fstab odpowiedni wpis:

Jeli chcemy umoliwi zwykym uytkownikom (znajcym


haso) montowanie szyfrowanego systemu plikw, dopisujemy ponadto do opcji montowania user. To samo dotyczy
poprzedniego przypadku szyfrowanej partycji.

Z kluczem GnuPG na dyskietce


Dostp do szyfrowanego systemu plikw moemy zabezpieczy dodatkowo kluczem GnuPG. Ide t przedstawia
pogldowo Rysunek 4. Nie ma wikszego znaczenia, czy

stycze 2004

loop-aes

system plikw zostanie utworzony wedug przedstawionej przed chwil recepty w duym pliku, czy na fizycznej
partycji.
Powinnimy posuy si dyskietk z systemem plikw
pozwalajcym ustala prawa dostpu, np. ext2. Jeeli uyjemy dyskietki dosowej, gpg bdzie zgasza bd.
Zaczynamy od zamontowania dyskietki i generujemy
par kluczy GnuPG, chyba e skorzystamy z ju posiadanych:
mount /dev/fd0 /floppy
gpg --gen-key --homedir /floppy

Poczenie komend head, uuencode i awk pozwoli utworzy


odpowiednio dugi, losowy cig znakw, ktry posuy
do szyfrowania systemu plikw. Otrzymane w ten sposb
haso zabezpieczamy szyfrem niesymetrycznym przy
pomocy gpg i zapisujemy na dyskietce:
head -c 45 /dev/random | uuencode -m - | awk 'NR == 2
{print}' | \
gpg --homedir /floppy -e -a -r "Imi Nazwisko" >

funkcj urzdzenia blokowego), do ktrej uytkownicy


wskazani przez administratora otrzymaj dostp na podstawie pary kluczy GnuPG. Kady z nich bdzie korzysta
z wasnych kluczy i, co za tym idzie, wasnego hasa.
Administrator (root) musi mie wygenerowan par
kluczy GnuPG i dysponowa kluczami publicznymi uytkownikw, ktrym chce przekaza prawo montowania.
Sprawdzamy to komend gpg list-public-keys. Jeli na
licie brak jest ktrej z tych osb, pomocne bdzie polecenie gpg --import plik_z_kluczem. Prawa odczytu tworzonych plikw najlepiej ograniczy zmieniajc domylne
ustawienia powoki poleceniem umask 077. Kolejne polecenia wygldaj nastpujco:
head -c 45 /dev/random | uuencode -m - | awk 'NR == 2

{print}' | gpg -e -a -r "Charlie Root" > S


/root/masterkey-crypto.gpg

losetup -e AES256 -K /root/masterkey-crypto.gpg

/dev/loopX /dev/hdaN
mkfs -t ext2 /dev/loopX
losetup -d /dev/loopX

W przypadku szyfrowania pliku, a nie partycji, pierwszy


czon naley zastpi jego nazw. Kolejne polecenia s
nastpujce:

Co zrobilimy? Czytelnik zapewne domyla si, e pierwsza


linia ma na celu otrzymanie losowego cigu znakw oraz
zaszyfrowanie go przy pomocy klucza GnuPG nalecego
do administratora. Wynik zapisywany jest w pliku /root/
masterkey-crypto.gpg. Nastpnie przyczamy partycj do
urzdzenia /dev/loopX. Wybieramy przy tym algorytm szyfrowania AES256, a flaga -K powoduje, e haso pobierane
z pliku masterkey-crypto.gpg jest przekazywane do programu gpg w celu odszyfrowania przed uyciem. Formatujemy
partycj i odczamy j od urzdzenia loopX.
Przechodzimy do /etc/fstab, dopisujc:

losetup -F /dev/loopX

/dev/hdaN /mnt/crypto2 ext2 defaults,user,noauto,

/floppy/moj_klucz.gpg

Do /etc/fstab dopisujemy poniszy wiersz:


/dev/hdaN

/mnt/crypto1 ext2 defaults,noauto,

loop=/dev/loopX,encryption=AES256, S

gpgkey=/floppy/moj_klucz.gpg,gpghome=/floppy 0 0

mkfs -t ext2 /dev/loopX

encryption=AES256,loop=/dev/loopX, S

losetup -d /dev/loopX

gpgkey=/etc/userkey-crypto.gpg 0 0

Flaga -F powoduje, e losetup pobiera opcje z /etc/fstab.


Drug komend formatujemy urzdzenie i po poprawnym
zakoczeniu tej operacji, resetujemy je.
O ile tylko istnieje docelowy katalog, moemy ju
zamontowa system plikw poleceniem mount /mnt/crypto.
Oczywicie, kada kolejna prba musi by poprzedzona
umieszczeniem dyskietki w napdzie i jej poprawnym
zamontowaniem. Naley jej strzec, gdy zgubienie albo
zniszczenie kluczy uniemoliwi raz na zawsze dostp do
zaszyfrowanych plikw. Z tego wzgldu rozsdniejsze jest
skopiowanie niezbdnych plikw na trwalszy ni dyskietka
nonik i odpowiednia modyfikacja cieek dostpu w /etc/
fstab.

Wielu uytkownikw, wiele kluczy


GnuPG
Teraz zajmiemy si bardziej skomplikowanym rozwizaniem. Przygotujemy szyfrowan partycj (lub plik penicy

www.linux.com.pl

Na koniec deszyfrujemy haso i szyfrujemy ponownie, tym


razem uywajc kluczy publicznych wybranych uytkownikw, a rezultat kierujemy do wymienionego w /etc/fstab
pliku userkey-crypto.gpg. Kade z nazwisk podajemy
w cudzysowach nastpujcych po fladze -r.
Dane te musz zgadza si z opisem kluczy. Wyglda
to tak:

S
S
gpg -e -a always-trust -r "Charlie Root"
-r "Jas Kowalski" -r "Joanna Malinowska" > S

gpg --decrypt < /root/masterkey-crypto.gpg |

/etc/userkey-crypto.gpg

Od tej chwili kady z uytkownikw wskazanych przez


administratora moe montowa partycj hdaN korzystajc
z wasnego klucza prywatnego i hasa GnuPG.
Aby zwikszy bezpieczestwo, naleaoby jeszcze
skoni uytkownikw, aby nie przechowywali klucza pry-

35

bezpieczestwo

watnego GnuPG na dysku tego komputera. W przeciwnym


przypadku ochrona bdzie na tyle skuteczna, na ile hasa
oka si odporne na atak. Niestety, w znacznym stopniu
zmniejsza to funkcjonalno tego rozwizania.

Co z partycj wymiany?
Zagroenie dla poufnoci danych i prywatnoci moe
take pochodzi ze strony partycji wymiany, na ktrej
system tymczasowo zapisuje dane. Jest bowiem prawdopodobne, e podczas pracy uprawnionego uytkownika,
gdy musz by one dostpne w formie niezaszyfrowanej,
system odoy je na partycji swap. Cay wysiek woony
w instalacj i skrupulatne uywanie zabezpiecze kryptograficznych moe wtedy atwo pj na marne, chyba e...
zaszyfrujemy take swap.
Modu Loop-AES pozwala na to, o ile nasz system jest
wyposaony w jdro z serii 2.4 lub nowsze. Decydujc si
na szyfrowanie partycji wymiany powinnimy pamita, e
obarczenie systemu, zwaszcza mocno obcionego, operacjami kryptograficznymi moe zmniejszy jego wydajno.
Najpierw wyczamy aktywne partycje wymiany poleceniem swapoff -a. Nastpnie modyfikujemy wpisy odnoszce si do partycji wymiany w /etc/fstab:
/dev/hdaN none swap sw,loop=/dev/loopX,encryption=AES128 0 0

Ten prosty zabieg pozwala nam ponownie uaktywni swap.


Robimy to poleceniem swapon -a, ktre przywracajc jego
dziaanie uyje losowego klucza i wykona komend mkswap
na wskazanym urzdzeniu loop.
Jeeli podczas ponownego uruchomienia systemu pojawi si komunikaty o bdzie podobne do poniszego:
insmod: modprobe: cannot create /var/log/ksymoops/
20031012.log Read-only file system
insmod: /lib/modules/2.4.22-grsec/block/loop.o: cannot
create /var/log/ksymoops/20031012.log Read-only file system

to dzieje si tak dlatego, e system aktywujcy partycj


wymiany jednoczenie aduje modu loop, a modprobe
prbuje zapisa informacj o tym w logach, cho partycja,
na ktrej si znajduj, nie zostaa jeszcze zamontowana do
zapisu.
Autor dokumentacji moduu Loop-AES proponuje w celu
pozbycia si tego bdu usun katalog /var/log/ksymoops.
Bez tego katalogu modprobe nie podejmie prby logowania
komunikatu o adowaniu moduu. Bardziej elegancki, cho
zapewne trudniejszy w realizacji, wydaje si pomys modyfikacji skryptw startowych w taki sposb, aby partycja
wymiany bya aktywowana nieco pniej, gdy moliwe ju
bdzie zapisywanie logw.

Istniejca partycja z danymi


Niewykluczone, e w praktyce natkniemy si na do
prozaiczny kopot: planujemy zaszyfrowa partycj,

36

Rysunek 5. Szyfrowanie istniejcej partycji, na ktrej


przechowujemy ju dane

z ktrej ju korzystamy i ktr zdylimy zapeni


wanymi danymi. Jak to zrobi nie tracc danych? Jeeli
reorganizacja dysku nie wchodzi w gr, a z jakich
powodw nie chcemy jej zastpowa duym plikiem,
z pomoc przyjdzie nam program Aespipe, stanowicy
niewielki, lecz uyteczny dodatek do Loop-AES (do jego
kompilacji wystarczy triada polece ./configure ; make ;
make install). Jak podpowiada nazwa, Aespipe potrafi
szyfrowa dane pobierane na wejciu. Pomys jego wykorzystania w tym przypadku polega na odczytaniu zawartoci partycji za pomoc dd, zaszyfrowaniu "w locie" (to
wanie rola Aespipe) i zapisaniu w tym samym miejscu
dysku.
Operacja jest nieco ryzykowna, wic lepiej zawczasu
przygotowa kopi zapasow caej partycji.
Zaczynamy od jej odmontowania. W kolejnym kroku
wpisujemy ponisze polecenie:
dd if=/dev/hdaN bs=64k | aespipe -e AES256 -T |

dd of=/dev/hdaN bs=64k conv=notrunc

Jak wida, dd odczytuje partycj i przekazuje wyjcie


do aespipe, ktrego zadaniem jest zaszyfrowanie tego,
co otrzyma przy uyciu wybranego algorytmu. Wynik
z kolei wdruje do ponownie uruchomionego dd w celu
zapisania na urzdzeniu, tym razem ju w postaci zaszyfrowanej. Podobnie jak we wczeniejszych przykadach
dotyczcych losetup, flaga -e pozwala nam wybra algorytm szyfrujcy, a -T powoduje, e Aespipe rozpoczynajc
dziaanie zapyta dwukrotnie o haso, ktrego chcemy
uy.

stycze 2004

loop-aes

Wariant dla ambitnych polega na wzmocnieniu zabezpiecze przez uycie zarodka hasa i iterowanym szyfrowaniu skrtu hasa. Wymaga on zastosowania znanych ju
z programu losetup opcji -S (dodanie wygenerowanego
zawczasu zarodka do hasa) oraz -C (liczba wskazujca, ile
tysicy razy szyfrowany jest skrt hasa). Cig otrzymany
z polecenia (tu: qwSIxpGIi6pZNAvj0e7w):
head -c 15 /dev/urandom | uuencode -m - | awk 'NR == 2

{print}'

zostanie uyty w kolejnym kroku jako zarodek hasa:


dd if=/dev/hdaN bs=64k | aespipe -e AES256 -T

-S qwSIxpGIi6pZNAvj0e7w -C 100 | dd of=/dev/hda2

bs=64k conv=notrunc

Po zakoczeniu operacji edytujemy opcje montowania w /etc/fstab, dodajc do linii dotyczcej tej partycji:
noauto,loop =/dev/loopX,encryption =AES256 i ewentualnie
itercountk=100,pseed = qwSIxpGIi6pZNAvj0e7w, o ile uylimy drugiego wariantu.
Mona rwnie wspomnie o innym ciekawym zastosowaniu Aespipe, mianowicie szyfrowaniu pyt CD, a cilej,
obrazw przygotowanych za pomoc Mkisofs. Tworzymy je
poleceniem:
mkisofs -V TAJNE -J -r nazwa_katalogu | aespipe

-e AES256 -T > image.raw

Po nagraniu mona zamontowa krek w taki sposb:


mount -t iso9660 /dev/cdrom /cdrom

-o loop=/dev/loopX,encryption=AES256

Rzecz jasna, dostp do niego bdziemy mieli tylko po


podaniu hasa i wycznie w systemach wyposaonych
w modu loop-AES.

Wydajno
Na koniec zacz kilka sw na temat wydajnoci. Niewtpliwie, dodatkowe obcienie komputera operacjami
szyfrowania danych w locie w mniejszym lub wikszym
stopniu musi wpyn na dziaanie systemu. Trzeba
jednak przyzna, e zarwno trafnie wybrany przez
autora projektu algorytm szyfrowania, jak i wykorzystanie urzdzenia loop, do skutecznie minimalizuj narzut
czasowy.
Ponadto, jeli zachowamy umiar, wpyw ten moe
pozosta niemal niezauwaalny. Potwierdzaj to dowiadczenia autora. Prby przeprowadzane na maszynach
z jednym procesorem Pentium 1 GHz lub Athlon 1700
MHz oraz 512 MB RAM, czyli do typowych, przy jednoczesnym wykorzystaniu dwch szyfrowanych partycji
i jednego szyfrowanego pliku o wielkoci 1 GB, prowadz
do wniosku, e komfort pracy nie zmniejsza si w istotny

www.linux.com.pl

sposb (oczywicie, to tylko subiektywna ocena). Jak si


wydaje, najbardziej optymalne z punktu widzenia wydajnoci jest szyfrowanie fizycznej partycji dysku.
W przypadku komputerw starych i powolnych albo
bardzo przecionych pozostaje rozway uycie opcji
lo_nice i lo_prealloc.
Pierwsza z nich, o domylnej wartoci -20, pozwala modyfikowa priorytet zada. Mona j zmniejszy
w /etc/modules.conf (np. options loop lo_nice =-5).
Druga opcja odpowiada za liczb 4-kilobajtowych
stron pamici operacyjnej przeznaczanych dla urzdze
/dev/loopX w chwili montowania. Domylna warto
wynosi 125. Moemy j zwikszy lub zmniejszy globalnie, dopisujc do /etc/modules.conf np. options loop
lo_prealloc =200. Moemy rwnie zrnicowa wielko
RAM-u prealokowan przez poszczeglne urzdzenia:
options loop lo_prealloc=100,3,200,4,250.

Pierwsza liczba oznacza zmniejszon warto domyln, nastpne pary liczb nadpisuj j, przeznaczajc dla
loop3 200 stron pamici, a dla loop4 250 (skadnia dopuszcza co najwyej cztery takie pary).

Uwagi kocowe
Staraem si przedstawi zalety omawianych narzdzi
moliwie wszechstronnie. Nie zamykam przy tym oczu na
wady loop-AES. Zalicza si do nich zwaszcza uciliwo
dodatkowych zabiegw zwizanych z kompilacj i instalacj niezbdnych binariw, co gorsza, pocigajca za sob
ingerencj w integralno systemu pakietowego. Sdz
jednak, e korzyci warte s podejmowania tego wysiku.
Jeli Czytelnik nie czuje si w peni przekonany o poytkach pyncych ze stosowania zaawansowanej kryptografii, by moe samodzielne prby, do ktrych gorco
zachcam, stan si czynnikiem przesdzajcym.

W Sieci:

Strona projektu loop-AES:


http://loop-aes.sourceforge.net/projects/loop-aes/
Strona domowa projektu Rijndael:
http://www.esat.kuleuven.ac.be/~rijmen/rijndael/
Strona NIST powicona AES:
http://csrc.nist.gov/CryptoToolkit/aes/rijndael/
Strona entuzjastw algorytmu Rijndael:
http://rijndael.com/
rda moduu Loop-AES:
http://loop-aes.sourceforge.net/loop-AES-latest.tar.bz2
rda dodatkowych moduw:
http://loop-aes.sourceforge.net/ciphers-latest.tar.bz2
rda Aespipe:
http://loop-aes.sourceforge.net/aespipe-latest.tar.bz2
rda Util-linux:
ftp://ftp.kernel.org/pub/linux/utils/util-linux/util-linux2.12pre.tar.bz2

37

bezpieczestwo

Wzmacniamy jdro:
Openwall i GrSecurity
Micha Miszewski

ak wiadomo, za wikszo mechanizmw bezpieczestwa odpowiedzialne jest jdro systemu. Zapewnia ono prawidowe dziaanie procesw, podzia
uprawnie, przydzielanie pamici oraz wiele innych
funkcji, istotnych dla bezpiecznego funkcjonowania systemu. Te standardowe mechanizmy bezpieczestwa mona ulepszy przy uyciu wielofunkcyjnych
poprawek nakadanych na jdro systemowe. Przedstawi
dwie z nich: Openwall oraz bardziej od niego rozbudowany GrSecurity.
Warto zainstalowa jedno z opisywanych tu rozwiza, poniewa pozwalaj one m.in. na utrudnienie
wamywaczowi wykorzystania nowoodkrytego bdu,
gdy atka go poprawiajca nie jest jeszcze dostpna. Przykadem moe by luka typu przepenienie bufora (ang.
buffer overflow) w ProFTPd 1.2.7. Serwery z zainstalowanym GrSecurity lub Openwall nie byy wraliwe na atak
wykorzystujcy ten bd.

Openwall
Autorem tej atki zwikszajcej bezpieczestwo jdra
jest Solar Designer, twrca wielu rozwiza dotyczcych
bezpieczestwa, takich jak Owl (dystrybucja Linuksa)
czy John the Ripper (znany program do amania hase).
Pocztkowo Openwall powsta jako poprawka dla jder
z serii 2.0.x oraz 2.2.x. Od niedawna rozwijana jest take
wersja dla jder z gazi 2.4.x. Poprawka wprowadza
m.in. zabezpieczenia przed atakami typu przepenienie
bufora, ograniczenia w dostpie do systemu plikw /proc
oraz katalogw z flag +t.

Instalacja
Instalacj atki przedstawi na przykadzie jdra 2.4.22.
Proces instalacyjny dla kadej innej wersji przebiega analogicznie. Najpierw cigamy czyste rda jdra. Pakiety z jdrami dostarczane wraz z dystrybucjami czsto
zawieraj dodatkowe zmiany wprowadzone przez programistw zajmujcych si dan dystrybucj i mog wystpi
O autorze:
Autor jest komputerowym hobbyst. Linuksem zajmuje si
od 3 lat. Interesuje si programowaniem (C, Perl, PHP) oraz
rnymi aspektami bezpieczestwa systemw komputerowych. Kontakt z autorem: autorzy@linux.com.pl.

38

Rysunek 1. Konfiguracja jdra z Openwall

(cho nie musz) problemy integracji z atk Openwall.


Nastpnie pobieramy pakiet Openwall z oficjalnej strony
projektu. W naszym przypadku bdzie to plik linux2.4.22-ow1.tar.gz. Rozpakowujemy archiwa w katalogu
/usr/src, wchodzimy do katalogu ze rdami jdra systemowego i instalujemy poprawk wpisujc: patch -p1 <
/usr/src/linux-2.4.22-ow1/linux-2.4.22-ow1.diff.
Gdy wczymy konfigurator jdra (make config, make
menu config bad make xconfig w rodowisku X Window),
wrd standardowych sekcji powinno pojawi si dodatkowe menu Security options. Znajduj si w nim rozszerzenia oferowane przez Openwall.
W przypadku, gdy stosujemy poprawk na serwerze,
z ktrego korzysta wielu uytkownikw, zaleca si zaznaczenie wszystkich dodanych opcji. Jeli chcemy zabezpieczy stacj robocz, uywan tylko przez zaufane osoby,
wystarczy, e wczymy jedynie Non-executable user stack
area. Opcja ta zabezpieczy nas przed ewentualnymi prbami wykonania kodu exploita dla programu przyjmujcego
poczenia z zewntrz. Pozostae zabezpieczenia chroni
przed atakami lokalnymi, ktre na stacji roboczej raczej nie
bd mie miejsca. W ten sposb na pewno nie stracimy
kompatybilnoci z uywanymi programami i nie nastpi
odczuwalne zmiany w dziaaniu systemu.

GrSecurity
GrSecurity powstao jako przeniesienie poprawki Openwall
dla jder z gazi 2.4. atka rozwijana jest przez Bradleya
Spenglera. Tak jak w przypadku wczeniej omawianego
Openwalla, celem GrSecurity jest wprowadzenie dodatkowych zabezpiecze jdra systemowego. Do najwaniejszych z nich nale listy kontroli dostpu (Access Control
Lists, w skrcie ACL). Pozwalaj one m.in. na przydzielanie

stycze 2004

openwall i grsecurity

Opcje Openwall:

Non-executable user stack area niewykonywalny obszar


stosu. Jest to zabezpieczenie przed atakami polegajcymi
na przepenieniu bufora (ang. buffer overflow). Polegaj one
na wprowadzeniu do programu nadmiernej iloci danych
i nadpisaniu adresu zwrotnego aktualnie dziaajcej funkcji.
Prowadzi to do wykonania wprowadzonego kodu z uprawnieniami posiadanymi przez program, a w konsekwencji do
naruszenia bezpieczestwa systemu. Niewykonywalny stos
dodawany przez Openwall uniemoliwia przeprowadzenie
wikszoci tego typu atakw. Rozwizanie to nie zapewnia
jednak ochrony przed wykorzystaniem niezabezpieczonych
buforw do przerywania pracy aplikacji, wic zaznaczenie
tej opcji nie zwalnia administratora z koniecznoci aktualizowania niezabezpieczonych programw jest to jedynie
dodatkowa warstwa zabezpiecze.
Restricted links in /tmp opcja wprowadza dodatkowe
zabezpieczenia katalogw z atrybutem +t (sticky bit). Pliki
w takich katalogach mog tworzy wszyscy uytkownicy,
lecz kady moe modyfikowa i kasowa tylko te pliki, ktrych jest wacicielem. Typowym katalogiem tego typu jest
/tmp. Opisywana opcja nie pozwala na tworzenie w takich
katalogach twardych dowiza do plikw, do ktrych nie
ma si uprawnie. Uytkownik i tak nie mgby pniej
skasowa takich dowiza. Istniej ataki polegajce na
stworzeniu w katalogu /tmp dowizania do pliku istotnego z punktu widzenia bezpieczestwa (np. /etc/passwd)
i nadaniu mu odpowiedniej nazwy. Przewidujc nazw pliku
tymczasowego tworzonego przez proces z SUID-em, wamywacz jest w stanie spowodowa nadpisanie pliku, na ktry
wskazuje takie dowizanie.
Restricted FIFOs in /tmp opcja wprowadza dodatkowe
restrykcje dotyczce kolejek FIFO w katalogach z atrybutem

i blokowanie konkretnym procesom dostpu do rnych


zasobw, takich jak pliki czy komputery w sieci. Ponadto,
GrSecurity wprowadza dodatkowe restrykcje dla procesw
pracujcych w rodowisku chroot, zabezpieczenia przed
modyfikacj pamici i atakami typu przepenienie bufora,
trudniejsze do odgadnicia numery sekwencyjne pakietw
IP oraz logowanie istotnych operacji.

Instalacja
Podobnie jak w przypadku atki Openwall, potrzebujemy
czystych rde jdra systemowego i samego pakietu
GrSecurity. Po rozpakowaniu rde jdra i atki GrSecurity do katalogu /usr/src, nakadamy poprawk poleceniem
patch -p1 < grsecurity-1.9.12-2.4.22.patch. W menu konfiguracyjnym jdra powinna pojawi si sekcja GrSecurity,
z ktrej moemy wybra stopie zabezpiecze (Security
level ). Wybierajc niski (low) poziom bezpieczestwa, wczamy tylko te opcje, ktre na pewno nie bd powodoway niekompatybilnoci z nietypowym oprogramowaniem.
Stopie redni (medium) znacznie zwiksza bezpieczestwo, zachowujc zgodno z wikszoci programw.
Wymagane jest, aby inetd pracowa z GID 10 (zazwyczaj

www.linux.com.pl

+t. Po jej zaznaczeniu uytkownik bdzie mg zapisywa


dane tylko do tych kolejek, ktrych jest wacicielem.
Restricted /proc ograniczenie dostpu do systemu plikw
/proc. Po zaznaczeniu tej opcji, uytkownicy inni ni root
bd mogli zobaczy jedynie list wasnych procesw. Nie
bd mie take dostpu do listy pocze sieciowych
(netstat). Dodatkowo opcja ta uniemoliwia korzystanie
z polecenia dmesg.
Enforce RLIMIT_NPROC on execve(2) jdro umoliwia
ustalenie limitu iloci procesw dla uytkownika poprzez
wywoanie funkcji setrlimit(). Niestety limit ten jest sprawdzany tylko podczas wywoywania przez procesy funkcji
fork(). Jeli proces zmieni swj UID, moliwe jest przekroczenie ustalonego wczeniej limitu. Nie stanowi to duego
zagroenia, poniewa UID mog zmienia tylko procesy
uprzywilejowane, ale ma to znaczenie w przypadku programw SUID/SGID, ktre po wykonaniu uprzywilejowanych
operacji zmieniaj swj UID na UID uytkownika. Funkcja
fork() jest w nich zazwyczaj wywoywana przed zmian UID,
co pozwala na ominicie ograniczenia. Zaznaczenie tej
opcji zapobiega takim sytuacjom.
Destroy shared memory segments not in use usuwanie
nie uywanych fragmentw pamici dzielonej. Jdro pozwala na ustalenie limitu pamici wykorzystywanej przez jeden
proces, ale segmenty pamici dzielonej mog istnie bez
przypisanego procesu, co nie zalicza ich do tego limitu. Po
wkompilowaniu tej opcji, jdro bdzie usuwao segmenty
pamici dzielonej, gdy korzystajce z nich procesy zakocz dziaanie. Zabezpieczy to system przed moliwoci
zapenienia caej wolnej pamici.

grupa wheel ). Wybierajc wysoki poziom zabezpiecze


(high), wczamy wikszo opcji, jednak kosztem utraty
zgodnoci z niektrymi programami. Mona take wybra
opcj customized i samemu zaznaczy te funkcje, ktre
uznamy za przydatne.
Jeli administrujemy serwerem, w ktrym wielu uytkownikw ma dostp do powoki systemowej, koniecznie
zaznaczmy w Filesystem Protections opcj Proc restrictions,
Linking restrictions oraz FIFO restrictions. Utrudni to prby
przeprowadzania czci atakw lokalnych. Z tego samego
powodu warto take wczy opcje Enforce RLIMIT_NPROC
on execs, Dmesg restriction oraz Randomized PIDs (sekcja
Executable Protections). Jeli nie chcemy, aby uytkownicy wczali wasne programy i skrypty, moemy im tego
zabroni zaznaczajc Trusted path execution. Jeli posiadamy demony pracujce w chroot jail, powinnimy rozway
zaoenie czci lub wszystkich dodatkowych zabezpiecze
chroot-a (Chroot jail restrictions).
Instalujc GrSecurity na stacji roboczej, wystarczy,
e zaznaczymy Enforce non-executable pages. Tak
jak w przypadku Openwall, utrudni to prby wykonania exploita dla aplikacji przyjmujcych poczenia

39

bezpieczestwo

z zewntrz. Nie zaszkodzi wkompilowa take czci


zabezpiecze z sekcji Network protections, takich jak
w peni losowe pocztkowe numery sekwencyjne pakietw oraz Larger entropy pools, co polepszy jako liczb
losowych uywanych m.in. w kryptografii. Nie warto
natomiast instalowa zabezpiecze, przez ktre cz
popularnych programw przestanie dziaa. Przykadem
jest opcja Disable privileged I/O uniemoliwia ona uruchomienie serwera X Window.

Kompilacja
Po naoeniu na jdro jednej z atek, naley skompilowa
jdro. Proces ten przeprowadzamy w standardowy sposb,
wsplny dla kadej z dystrybucji Linuksa. Udajemy si wic
do katalogu /usr/src/katalog_ze_rdami_jdra/ i wykonujemy polecenia: make dep, make clean, make bzImage, make
modules, make modules_install. Pozostaje jeszcze wyda
polecenie depmod -a, ktre utworzy plik modules.dep
dla skompilowanych moduw. Jeli wszystko poszo po
naszej myli, w katalogu /usr/src/katalog_ze_rdami_
jdra/arch/i386/boot/ otrzymamy plik bzImage, ktry jest
naszym wanie skompilowanym jdrem systemowym. Jeli

Wybrane opcje GrSecurity:

40

Address Space Protection sekcja ta zawiera opcje utrudniajce przeprowadzanie atakw typu przepenienie bufora
oraz modyfikowanie pracujcego jdra systemowego (zabezpieczenia te polegaj midzy innymi na wprowadzeniu
niewykonywalnych stron pamici oraz losowym pooeniu
stosu);
ACL options opcje konfiguracyjne list kontroli dostpu;
Filesystem Protections opcje dotyczce ogranicze
dostpu do /proc, tworzenia dowiza i kolejek FIFO
w katalogach z flag +t oraz dodatkowych zabezpiecze
chroot;
Kernel Auditing opcje dotyczce logowania rnych zdarze w systemie, takich jak prby przekroczenia limitw,
zmiany katalogw, nazwy uruchamianych procesw itp.;
Executable Protections opcje zwizane z procesami,
takie jak losowe numery PID, blokada dostpu do dmesg
oraz restrykcje w uruchamianiu plikw wykonywalnych;
Network Protections dodatkowe zabezpieczenia TCP/IP,
takie jak losowe porty rdowe przy poczeniach, lepszy
algorytm wybierania pocztkowego numeru sekwencyjnego pakietw IP czy ograniczenie praw do tworzenia
gniazdek dla niektrych uytkownikw;
Sysctl support po zaznaczeniu tej opcji administrator
moe konfigurowa GrSecurity umieszczajc wartoci
1 lub 0 w specjalnych plikach w /proc/sys/kernel/
grsecurity/. Po wprowadzeniu zmian, trzeba je zablokowa
umieszczajc warto 1 w pliku grsec_lock. Linie konfigurujce GrSecurity musz znajdowa si w skryptach
startowych systemu. Skrypty te powinny by dostpne
tylko do odczytu, a root nie moe mie moliwoci dodawania moduw jdra oraz przeprowadzania bezporednich operacji I/O.

Rysunek 2. Konfiguracja jdra z GrSecurity

nie chcemy ryzykowa unieruchomienia systemu, nowy


plik z jdrem nagrywamy do katalogu /boot zmieniajc
jego nazw np. na bezpieczne. W tym celu wpisujemy:
cp

/usr/src/katalog_ze_rdami_jdra/arch/i386/boot/

/boot/bezpieczne. Musimy jeszcze tylko doda


opcj wyboru naszego bezpiecznego jdra w ustawieniach
menedera uruchamiania. Edytujemy w tym celu plik /etc/
grub.conf dodajc linijki:
bzImge

nazwa naszego nowego jdra;


miejsce na dysku, gdzie znajduje si
instalacja naszego Linuksa;
kernel /boot/bezpieczny ro root=LABEL=/ hdc=ide-scsi
cieka do naszego jdra;
initrd /boot/initrd-bezpieczny.img cieka do pliku
initrd.
title Bezpieczny
root (hd0,1)

Po ponownym uruchomieniu komputera, przy opcjach


wyboru systemu powinna pojawi si nowa opcja. Po jej
wybraniu bdziemy mogli cieszy si nowym jdrem.

Podsumowanie
Osobom chccym dodatkowo zabezpieczy swoj stacj
robocz z powodzeniem powinna wystarczy atka Openwall. Jest atwa w konfiguracji i z jej instalacj powinien
poradzi sobie kady, kto potrafi skompilowa jdro systemowe. Bardziej zaawansowani uytkownicy oraz administratorzy wikszych serwerw powinni wybra GrSecurity.
atki GrSecurity i Openwall pozwalaj znaczenie
ulepszy mechanizmy zabezpiecze w jdrze systemowym. Ich moliwoci powinien pozna kady administrator, ktry powanie traktuje sprawy bezpieczestwa
swojego systemu.

W Sieci:

Strona domowa projektu GrSecurity:


http://www.grsecurity.org/
Strona projektu Openwall:
http://www.openwall.com/linux/
Strona systemu Linux:
http://www.kernel.org/

stycze 2004

testy

SuSE Linux 9.0 Professional


Piotr Truszkowski

uSE Linux jest jedn z najpopularniejszych


komercyjnych wersji systemu Linux na wiecie.
Przemawia za ni ogromna ilo doczonego
oprogramowania, dobrej jakoci pomoc techniczna oraz uznanie, jakim cieszy si wrd uytkownikw.
Do testw otrzymalimy najnowsz, oznaczon numerkiem 9.0, wersj tego systemu, wyposaon w ponad 4000
pakietw dostpnych na piciu dystrybucyjnych pytach
CD bd zebranych na jednym, dwustronnym krku
DVD. W pudeku znajdziemy rwnie 2 grube podrczniki
w jzyku angielskim. Obok wersji Professional, dostpne s
take Personal i Update, ktre rni si iloci doczonego oprogramowania i podrcznikw.

Instalacja
Wspczesne dystrybucje Linuksa w znacznej wikszoci
przyzwyczaiy nas do prostej instalacji. Nie inaczej jest
w SuSE. Instalacja ogranicza si do kilku klikni myszk,
co pozwoli pocztkujcemu uytkownikowi na proste
i szybkie zainstalowanie systemu. Dla bardziej zaawansowanych uytkownikw, firma SuSE przygotowaa wiele
opcji, ktre pozwol w najdrobniejszych detalach dopasowa system do swoich potrzeb. Cao instalacji przebiega
w estetycznym rodowisku graficznym. Dla posiadaczy
sabszych komputerw przygotowano rwnie tryb tekstowy. Niestety, w trybie graficznym brak jest obsugi
jzyka polskiego. Miejmy nadziej, e w przyszej wersji
SuSE ulegnie to zmianie.

Pierwsze uruchomienie
Test systemu przeprowadzono na komputerze AMD
Athlon 1200 z 384 MB RAM, kart graficzn opart na
chipie Nvidia GeForce2 i kart dwikow Sound Blaster
Live! 5.1 Digital. System bez problemu wykry wszystkie
urzdzenia i poprawnie je skonfigurowa. Wacicieli
kart graficznych opartych o chipsety Nvidia z pewnoci
ucieszy fakt, i firma SuSE przygotowaa dla nich pakiet
RPM ze sterownikami. Mona go w bardzo prosty sposb
pobra dziki programowi YOU (YaST Online Update). Po
zalogowaniu do systemu, powita nas rodowisko graficzne KDE 3.1.4, ktre od lat jest w SuSE standardowym rodowiskiem pracy, najlepiej zintegrowanym z narzdziami
administracyjnymi producenta dystrybucji. Bez cienia
wtpliwoci mog powiedzie, e pod wzgldem estetycznym, domylny pulpit SuSE prezentuje si najlepiej ze
wszystkich znanych mi dystrybucji Linuksa.

42

Rysunek 1. SuSE Linux 9.0 Professional

YaST
Narzdziem administracyjnym w systemie SuSE Linux jest
program YaST. Pomoe on nam w konfiguracji wszystkich,
nawet najdrobniejszych ustawie dotyczcych naszego
systemu. Dziki modularnej budowie, moemy wyposay YaST-a tylko w te moduy, ktre s nam naprawd
potrzebne. Narzdzie administracyjne SuSE wyposaone
zostao m.in. w moduy do konfiguracji sprztu, instalacji/
usuwania/aktualizacji oprogramowania, konfiguracji rodowiska X Window oraz zarzdzania popularnymi serwerami
(m.in. Apache i Samba). YaST moe pracowa zarwno
w trybie graficznym, jak i tekstowym. Ten drugi z pewnoci

Podstawowe skadniki SuSE Linux 9.0:

Jdro 2.4.21;
KDE 3.1.4 i GNOME 2.2.2;
Samba 2.2.8a;
nowe moduy programu YaST: DNS, DHCP, TFTP, Apache,
Samba;
wsparcie dla Ipv6;
GCC 3.3.1;
Sun Java 1.4.1;
Glibc 2.3.2;
Apache 2.0.47;
RPM 4.1.1;

stycze 2004

suse linux 9.0 professional

Rysunek 2. Domylny pulpit SuSE Linux 9.0 Professional

Rysunek 3. YaST2

przyda si przy zdalnej administracji systemem. Cao sprawia wraenie bardzo spjnej i przemylanej konstrukcji.

innowacji dostpnych w zbliajcym si jdrze 2.6. Cech


wyrniajc SuSE 9.0 Professional od innych dystrybucji
jest fakt, i jdra dystrybucyjne przystosowane s zarwno
do pracy z procesorami 32 bitowymi, jak i 64 bitowymi,
produkowanymi przez firm AMD.
Ciekaw rzecz jest dostpny w systemie SuSE System
Doctor. Jego funkcja polega na naprawie uszkodzonego na
rne sposoby systemu. Postanowiem na wasnej skrze
przekona si o skutecznoci jego dziaania. W tym celu
skasowaem plik fstab, zawierajcy definicje dostpnych
systemw plikw, pozbyem si wpisw GRUB-a obecnych
w sektorze MBR, wykasowaem poow plikw systemowych oraz zepsuem ustawienia rodowiska X Window,
kasujc po drodze kilkanacie pakietw nie zwracajc
uwagi na obecne miedzy nimi zalenoci. Zrestartowaem system. SuSE System Doctor obecny jest na pierwszej
pytce CD. Aby go uruchomi, naley wystartowa komputer z owej pytki i z opcji instalacyjnych wybra Repair
system. Do wyboru bdziemy mieli kilkanacie opcji, m.in.
sprawdzenie wpisw w pliku fstab, punkty montowania
partycji, sprawdzenie ustawie menedera uruchamiania,
analiz bazy pakietw oraz wiele innych. Wybraem wszystkie testy. W trakcie naprawy program zada mi kilka pyta,
na ktre odpowiedziaem klikajc Accept bd Repair.
Po zakoczeniu naprawy mj system dziaa tak samo, jak
przed jego zepsuciem, a ja nie straciem adnych danych. Za
to narzdzie firmie SuSE naley si ogromny plus. Jest ono
niesamowitym uatwieniem dla pocztkujcych i zaawansowanych uytkownikw, ktrzy nie maj czasu zastanawia
si nad tym, co si zepsuo, a chc to po prostu naprawi.
W trakcie przeprowadzania testw system mimo naprawd duych obcie ani razu si nie zawiesi.
SuSE Linux 9.0 Professional mona poleci kademu,
kto ceni sobie stabilne i atwe w obsudze rodowisko
pracy. Polecamy.

Szybko, stabilno, innowacje


SuSE zawsze naleao do czowki pod wzgldem szybkoci,
stabilnoci i innowacji. Wszystkie pakiety dostpne w systemie zostay zoptymalizowane dla procesorw Pentium.
Nie uruchomimy wic tej wersji na komputerach klasy 386
i 486. SuSE przygotowao dwie wersje jdra 2.4.21, instalujce si w zalenoci od posiadanego przez nas procesora
mamy wersj zoptymalizowan zarwno dla procesorw
firmy AMD, jak i Intel. Zaaplikowano w nich take wiele
Producent: SuSE Gmbh, Niemcy
Dystrybutor (PL): SuPLIX Systemy komputerowe
ul. Kossutha 7 40-844 Katowice
Ceny (brutto):
SuSE 9 Professional: 489 PLN
SuSE 9 Personal: 296 PLN
SuSE 9 Update: 296 PLN

Plusy:

zmniejszanie/zwikszanie wielkoci partycji NTFS;


bardzo dobra detekcja sprztu;
obsuga wielu systemw plikw (w tym NTFS);
obsuga architektury 64 bitowej (AMD);
zaawansowane zarzdzanie pakietami;
szybko dziaania;
innowacje;
atwo obsugi i administracji;
Java i wtyczki do obsugi multimediw na stronach WWW
(Flash player, Real Media);
ogromna ilo oprogramowania dostpnego wraz z dystrybucj;
SuSE System Doctor.

Minusy:

brak instalacji i podrcznikw w jzyku polskim;


GNOME w wersji 2.2.

www.linux.com.pl

Dzikujemy firmie SuPLIX, dystrybutorowi systemu operacyjnego SuSE Linux, za udostpnienie egzemplarza do testw.
http://www.suplix.pl/

43

dla pocztkujcych

Praca z OpenSSH
Piotr Machej

dobie powszechnej dostpnoci Internetu coraz wicej osb zdaje sobie spraw
z czyhajcych w nim niebezpieczestw.
Miny ju czasy, gdy mona byo swobodnie korzysta z Telnetu nie martwic si, e kto podsucha nasze haso i wamie si nam na konto. Standardem
w czeniu si ze zdalnymi komputerami jest obecnie SSH
w wersji 2 (Secure SHell, czyli bezpieczna powoka).
W niniejszym artykule omwimy instalacj, konfiguracj i wykorzystanie programu OpenSSH, bezpatnej i wolnej
wersji oprogramowania obsugujcego protok SSH. Dziki
niemu moemy logowa si na zdalne maszyny i kopiowa
midzy nimi pliki bez obawy o to, e kto podsucha nasze
haso czy przesyane dane.

Przykad uycia
Graem wanie w Tux Racer, gdy na komrk przyszed
SMS od jednego ze znajomych. Prosi ze zami (wirtualnymi) w oczach o udostpnienie mu jakiego konta,
z ktrego mgby wchodzi na IRC bez ogranicze (bez
flagi restricted ).
Poniewa bardzo go lubi, od razu (no, prawie najpierw dojechaem do mety) przeczyem si na mj Multi
GNOME Terminal, aby zalogowa si na serwer stojcy
na drugim kocu Polski. Oczywicie do poczenia
wykorzystaem OpenSSH, a nie Telnet przecie nie
pozwol, aby kto mg podsucha moj transmisj. Po
podaniu hasa przeprowadziem rutynowe sprawdzenie,
czy z serwerem wszystko w porzdku (a jake, stoi bez
problemw ju drugi miesic od ostatniego wyczenia
prdu). Zalogowaem si na konto root, a nastpnie utworzyem znajomemu konto. Wysaem do niego wiadomo
z nazw uytkownika i hasem, ktre zmieni zaraz po
zalogowaniu. Po chwili otrzymaem od niego kolejnego
SMS-a. Powiadamia mnie w nim, e ju utworzy sobie
zgrabny tunel (korzystajc z OpenSSH), biegncy przez
mj serwer do serwera IRC. W ten sposb mg nadal
rozmawia z uyciem swojego ulubionego mIRC-a, a rwnoczenie wszystkim rozmwcom wydawao si, e jest

O autorze:
Autor zakoczy studia zaoczne na V roku Informatyki na
Politechnice Opolskiej. Z Linuksem (i oglnie systemami
uniksowymi) ma styczno od wielu lat. Obecnie administruje sieci blokow zoon z dziesiciu komputerw.
Kontakt z autorem: autorzy@linux.com.pl.

44

Rysunek 1. Na gwnej stronie projektu OpenSSH moemy


sprawdzi najnowszy numer wersji

zalogowany na moim serwerze. Oczywicie flagi restricted te ju nie mia.


Korzystajc z okazji sprawdziem jeszcze, co ciekawego
jest udostpnione w sieci lokalnej podczonej do zdalnego
serwera. Gdy znalazem (sdzc po nazwie) zestaw mangowych tapet, nie mogem si powstrzyma, aby nie pobra
ich do siebie. Oczywicie znw korzystajc z szyfrowanego
kanau. A pniej wrciem do przerwanego turnieju w Tux
Racer.

Instalacja serwera i klienta


Takie oprogramowanie, jak OpenSSH, znajduje si
w zasadzie w kadej wspczesnej dystrybucji Linuksa.
Jeli specjalnie nie wykluczylimy pakietw z instalacji, to
powinnimy mie je ju na dysku wtedy mona przej od
razu do rozdziau o konfiguracji. Chciabym jednak zwrci
uwag na pewn spraw. Ze wzgldw bezpieczestwa
naley dba o to, aby w systemie bya zainstalowana najbardziej aktualna wersja OpenSSH, jak rwnie i innych
kluczowych, naraonych na ataki programw. Sprbujmy
wic pobra i zainstalowa najnowsz wersj OpenSSH.

Numeracja wersji
Zaczynamy od uruchomienia przegldarki internetowej (przykadowo Mozilla) oraz otwarcia witryny http://predict.chem.uw.edu.pl/openssh/, ktra jest
zlokalizowanym w Polsce odpowiednikiem strony http:
//www.openssh.com/. Sprawdzamy na niej, jaki jest numer
najnowszej wersji programu (w chwili pisania artykuu jest
to numer 3.7.1). Nastpnie wybieramy odnonik "Linux,

stycze 2004

openssh

Solaris, FreeBSD, NetBSD, AIX, IRIX, HP-UX and many


more " znajdujcy si po lewej stronie pod napisem "For
other OS's" (Dla innych systemw operacyjnych). Moemy
rwnie po prostu otworzy witryn wpisujc adres http:
//predict.chem.uw.edu.pl/openssh/portable.html. Znajduje
si na niej spis serwerw FTP, z ktrych mona pobra
aktualne wersje oprogramowania.
Wybieramy serwer, ktry nam odpowiada (ja polecam
ftp://sunsite.icm.edu.pl/pub/OpenBSD/OpenSSH/
portable/ ), a nastpnie sprawdzamy, czy znajduje si na
nim aktualna wersja OpenSSH. W chwili pisania artykuu najnowszym plikiem by openssh-3.7.1p2.tar.gz. Jak
wida, numer wersji zgadza si z tym, ktry odczytalimy
na gwnej stronie (3.7.1). Znajdujca si po nim literka
p oznacza, e jest to wersja przenona, przeznaczona na
systemy inne ni OpenBSD (w tym rwnie dla Linuksa).
Aktualny plik pobieramy na dysk.
Uytkownicy dystrybucji Aurox zamiast pobiera wyej
wymieniony plik mog wej do podkatalogu rpm/RH90/
i pobra odpowiednie pakiety rpm (dla wersji 3.7.1 s to
pliki openssh-3.7.1p2-1.i386.rpm, openssh-askpass-3.7.1p21.i386.rpm,
openssh-askpass-gnome-3.7.1p2-1.i386.rpm,
openssh-clients-3.7.1p2-1.i386.rpm, openssh-server-3.7.1p2
-1.i386.rpm). Ewentualnie moemy pobra pakiet openssh3.7.1p2-1.src.rpm z podkatalogu rpm/SRPMS/ i samodzielnie go przebudowa.

Instalacja pakietw
Jeli pobralimy pakiety rpm, moemy zainstalowa je
w systemie. Potrzebujemy do tego uprawnie superuytkownika, wic zaczynamy od wydania polecenia su
- i podania hasa uytkownika root. Nastpnie przecho-

Kompilacja ze rde
W katalogu, w ktrym mamy plik ze rdami programu (w
naszym przykadzie jest to plik openssh-3.7.1p2.tar.gz), wydajemy polecenie tar xvzf openssh-3.7.1p2.tar.gz. Utworzy
ono podkatalog o nazwie openssh-3.7.1p2/ i umieci w nim
rozpakowane rda. Wchodzimy do katalogu poleceniem cd
openssh-3.7.1p2/.
Teraz moemy wyda polecenie ./configure. Domylnie
OpenSSH instaluje si w podkatalogach katalogu /usr/local/
(dokadne cieki zostan wypisane na ekranie). Jeli chcemy
to zmieni, moemy uy przykadowo polecenia ./configure
--prefix=/usr.
Nastpnie wydajemy polecenie make, co spowoduje przeprowadzenie waciwej kompilacji. Po jej zakoczeniu musimy
skorzysta z uprawnie uytkownika uprzywilejowanego.
Wydajemy polecenie su i podajemy haso uytkownika root,
a nastpnie przeprowadzamy instalacj OpenSSH poleceniem
make install.
Jeli chcemy skorzysta z innych opcji konfiguracyjnych,
moemy si z nimi zapozna wydajc polecenie ./configure
--help. Warto te zapozna si z plikami README i INSTALL
umieszczonymi w katalogu ze rdami.

www.linux.com.pl

Rysunek 2. Po wykonaniu ./configure naley sprawdzi,


czy ustawienia nam odpowiadaj

dzimy do katalogu, w ktrym znajduj si pobrane pakiety i wydajemy polecenie:

S
openssh-askpass-3.7.1p2-1.i386.rpm S

rpm -Uvh openssh-3.7.1p2-1.i386.rpm

openssh-askpass-gnome-3.7.1p2-1.i386.rpm

openssh-clients-3.7.1p2-1.i386.rpm S
openssh-server-3.7.1p2-1.i386.rpm

Jeli wolimy zbudowa pakiety samodzielnie, w katalogu


z pakietem rdowym (w naszym przykadzie z plikiem
openssh-3.7.1p2-1.src.rpm) wydajemy polecenie rpmbuild
--rebuild openssh-3.7.1p2-1.src.rpm. Jeli nie mamy w systemie programu rpmbuild, to powinnimy zainstalowa
pakiet rpm-build z drugiej pyty CD dystrybucji Aurox.
Po zakoczeniu budowania pakiety zostan umieszczone
w katalogu /usr/src/redhat/RPMS/i386/.
Uytkownicy dystrybucji opartych o inne systemy
pakietw mog samodzielnie skompilowa program (w
sposb opisany w Ramce Kompilacja) lub pobra go
z wykorzystaniem odpowiednich dla dystrybucji systemw
zarzdzania pakietami (przykadowo apt-get w Debianie).

Uruchomienie serwera
Po zainstalowaniu OpenSSH, plik serwera (sshd ) powinien
znajdowa si w katalogu /usr/sbin/ lub /usr/local/sbin/
zalenie od instalacji. Jeli mamy wtpliwoci, moemy
jego lokalizacj sprawdzi poleceniem which sshd, wywoanym z konta uytkownika root.
W dystrybucji Aurox moemy go uruchomi poleceniem /etc/rc.d/init.d/sshd start, a zatrzyma za pomoc
/etc/rc.d/init.d/sshd stop. Jeli zmieniamy konfiguracj
programu, powinnimy go zrestartowa. Suy do tego
polecenie /etc/rc.d/init.d/sshd restart.
Zwykle chcemy, aby serwer OpenSSH uruchamia si
przy starcie systemu. W tym celu uruchamiamy polecenie
ntsysv i upewniamy si, e przy pozycji sshd znajduje si
gwiazdka. Jeli nie, to zaznaczamy j i wciskamy OK.

45

dla pocztkujcych

W innych dystrybucjach skrypty te mog by w innych


katalogach lub moe ich w ogle nie by. Jeli nie wiemy,
jak poradzi sobie inaczej, to moemy uruchamia serwer
poleceniem /usr/sbin/sshd, restartowa go poleceniem
killall -HUP sshd, a wycza poprzez killall sshd.

Konfiguracja serwera
Pliki konfiguracyjne OpenSSH znajduj si w katalogu
/etc/ssh/. Podstawowym plikiem jest /etc/ssh/sshd_config.
Moemy edytowa go naszym ulubionym edytorem tekstowym (jak zwykle preferuj edytor Vim, ale kady moe
wybra taki, jaki lubi najbardziej).
Wikszo opcji w tym pliku ujta jest w komentarze (na
pocztku linii znajduje si znak #). S to opcje posiadajce
wartoci domylne. Jeli chcemy je zmieni, naley usun
znak # z pocztku wybranej linii i zmieni warto opcji.

Wybrane opcje konfiguracyjne serwera:

46

Port okrela, na jakim porcie serwer nasuchuje przychodzcych pocze (domylnie ustawiona na warto 22);
Protocol okrela, ktre wersje protokou SSH s obsugiwane przez serwer (domylnie obsugiwane s obie,
wic opcja przyjmuje warto 2,1);
ListenAddress wskazuje adresy, na ktrych serwer
nasuchuje przychodzcych pocze (domylnie nasuch
prowadzony jest na wszystkich dostpnych adresach);
LoginGraceTime wyznacza czas, po jakim serwer zrywa
poczenie, jeli uytkownik nie zdy si zalogowa
poprawnie (domylnie wynosi 2 minuty, a ustawienie tej
opcji na 0 wycza limit czasu);
PermitRootLogin okrela, czy mona logowa si
bezporednio na konto uytkownika root. Zalecane jest
ustawienie tej opcji na no, gdy utrudnia to zadanie
ewentualnemu wamywaczowi (najpierw musi zdoby
konto zwykego uytkownika). Oprcz wartoci yes i no
s dostpne jeszcze without-password oraz forcedcommands-only. Warto without-password sprawia,
e uytkownik root nie moe zalogowa si korzystajc
z hasa systemowego (nadal jednak moe uy klucza
publicznego). Z kolei forced-commands-only pozwala
mu na zautoryzowanie si z pomoc klucza publicznego,
jednak dopuszcza tylko wykonanie komendy podanej
w wywoaniu OpenSSH.
PubkeyAuthentication pozwala na autoryzacj z uyciem
klucza publicznego (domylnie ustawiona na yes (tak));
AuthorizedKeysFile wskazuje plik w katalogu domowym
uytkownika, ktry zawiera klucze publiczne osb mogcych logowa si na konto;
PasswordAuthentication pozwala na autoryzacj z uyciem hasa systemowego (domylnie ustawiona na yes
(tak));
PermitEmptyPasswords t opcj lepiej pozostawi ustawion na no, dziki czemu nie bdzie moliwe logowanie
si na konta z pustymi hasami;
Subsystem sftp konfiguruje dodatkow usug bezpiecznego transferu plikw (SFTP).

Rysunek 3. PuTTY jest bardzo wygodnym klientem SSH pod


Windows pozwala nawet korzysta z klucza prywatnego

Powstaje pytanie, ktre opcje zmienia. Pomimo tego,


e serwer dziaa dobrze nawet na domylnych opcjach,
warto dostosowa je do wasnych potrzeb. W ramce
wymieniem wybrane opcje konfiguracyjne. Bardziej
dociekliwym Czytelnikom polecam lektur podrcznika
systemowego (man sshd_config), w ktrym znajd opis
pozostaych opcji.

Konfiguracja klienta
Domylne opcje konfiguracyjne klienta s zwykle zadowalajce dla wikszoci uytkownikw. Wielu z nich
nie zdaje sobie jednak sprawy z iloci dostpnych opcji.
Gwnym plikiem konfiguracyjnym jest plik /etc/ssh/
ssh_config. Zawiera on ustawienia wsplne dla wszystkich uytkownikw. Oprcz tego, kady z uytkownikw
moe utworzy wasny plik konfiguracyjny o nazwie
~/.ssh/config oraz doda opcje podczas wpisywania polecenia w linii komend.
Kolejno pobierania danych przez OpenSSH jest nastpujca:
parametry podane w linii komend;
opcje zawarte w pliku konfiguracyjnym uytkownika
(~/.ssh/config);
opcje zawarte w systemowym pliku konfiguracyjnym
(/etc/ssh/ssh_config).
Dla kadej opcji pobierana jest tylko pierwsza napotkana warto (pozostae s ignorowane). Jeli wic jaka
opcja znajdzie si w kilku miejscach pliku ~/.ssh/config,
to zostanie jej przypisana pierwsza napotkana warto.
A jeli dodatkowo uytkownik ustawi opcj w linii
komend, to wszystkie jej wystpienia w plikach konfiguracyjnych zostan zignorowane.
Opcje w pliku konfiguracyjnym mog by pogrupowane w zalenoci od komputera, ktrego dotycz
rne opcje dla kadego komputera, z ktrym si czymy. Kada taka sekcja zaczyna si od linii o treci:

stycze 2004

openssh

Klienci pod Windows


Wielu uytkownikw nadal pracuje w systemach z rodziny Windows. Nawet uytkownicy Linuksa nieraz sigaj po okienka.
Nie s oni pozbawieni moliwoci korzystania z SSH. Jeli chc
poczy si z jakim zdalnym serwerem lub skopiowa z niego
plik, mog skorzysta z jednego z klientw SSH pod Windows.
Wybr jest dosy szeroki, ale wikszo programw jest patna
(zwykle udostpnione s jako shareware lub trial). Chlubnymi
wyjtkami s programy PuTTY oraz WinSCP.

PuTTY

Rysunek 4. WinSCP na pierwszy rzut oka bardzo przypomina


program Total Commander
Host nazwa.serwera

Naley wiedzie, e nazwa_serwera powinna by dokadnie t nazw, ktr wpisujemy w linii polece podczas uruchamiania OpenSSH. Wynika to z tego, e nazwa ta nie jest
konwertowana do postaci kanonicznej przed porwnaniem
z wartoci opcji Host. Jeli zaley nam, aby jakie opcje
dotyczyy wszystkich serwerw, to umieszczamy je w sekcji
Host *. Sekcja ta powinna znajdowa si na samym kocu
pliku (ze wzgldu na to, e pobierane s tylko pierwsze
wystpienia opcji).

Praca z OpenSSH
OpenSSH najczciej wykorzystujemy do bezpiecznego
logowania si na konta na zdalnych serwerach. W takim
przypadku wywoanie programu jest proste:
ssh uytkownik@adres.serwera

Ewentualnie moemy skorzysta z postaci:


ssh -l uytkownik adres.serwera

Jeli na zdalnym serwerze mamy tak sam nazw uytkownika, jak na lokalnym, moemy uywa skrconej postaci:
ssh adres.serwera

Jeli ze zdalnym komputerem czymy si po raz pierwszy,


pojawi si napis podobny do poniszego:
The authenticity of host '192.168.0.24 (192.168.0.24)'
can't be established.
RSA key fingerprint is 78:49:c7:a5:de:6b:6c:41:e6:
45:22:bd:87:b0:a4:c1.
Are you sure you want to continue connecting (yes/no)?

www.linux.com.pl

Jest to bardzo wygodny i funkcjonalny program. Istotne jest


rwnie to, e program ten jest w peni darmowy, a jego kod
jest publicznie dostpny. Jak od razu zauwaymy, jest to waciwie zestaw kilku programw. Z punktu widzenia przecitnego
uytkownika, najbardziej przydatne bd programy putty.exe,
pscp.exe i psftp.exe. Pierwszy z nich suy do logowania si na
zdalne maszyny z uyciem midzy innymi protokou SSH (stanowi niejako odpowiednik programu OpenSSH opisywanego
w artykule). Drugi i trzeci to kolejno odpowiedniki opisywanych
programw SCP i SFTP. Najlepiej po prostu pobra instalator
caoci (plik putty-0.53b-installer.exe moe by inny numer
wersji), dziki czemu bdziemy mieli zainstalowane wszystkie
pliki z wyjtkiem puttytel.exe (klient pozwalajcy tylko na poczenia z telnetem).

WinSCP
Tekstowe interfejsy programw SCP i PSCP mog zrazi uytkownikw przyzwyczajonych do posugiwania si myszk. Dla
nich wybawieniem bdzie WinSCP. Program ten, z wygldu
podobny do Total Commandera, pozwala na sprawne kopiowanie plikw pomidzy lokalnym i zdalnym komputerem. Obsuguje zarwno SCP, jak i SFTP.

Dla kadego komputera, z ktrym si czymy, OpenSSH


przechowuje w pliku ~/.ssh/known_hosts tzw. odcisk
palca (fingerprint). Podczas kadego poczenia warto
ta jest sprawdzana, co pozwala wykry potencjalne ataki
DNS spoofing. Jeli jestemy pewni, e czymy si do waciwego komputera, to wpisujemy yes i wciskamy [Enter ].
Warto zaznaczy, e przy tym pytaniu nie wystarczy
wpisa y musi to by cae sowo yes.
Po poczeniu zostaniemy zapytani o haso. Jeli
podamy je prawidowo, zostaniemy zalogowani na zdalnym
serwerze. Od tej chwili moemy pracowa tak, jakbymy
siedzieli przed ekranem zdalnego komputera (oczywicie
pomijajc ewentualne opnienia).

Wykonywanie polece
Czasem na zdalnym komputerze chcemy wykona tylko
jedno polecenie, przykadowo wywietli spis nawizanych pocze. Nie musimy wtedy uzyskiwa dostpu do
linii polece wystarczy, jeli zapoznamy si z wynikiem
dziaania polecenia. W tym celu do opisanych wczeniej
sposobw wywoania OpenSSH powinnimy dopisa
polecenie, ktre chcemy wykona na zdalnym komputerze, np.:

47

dla pocztkujcych

ssh gerard@192.168.0.35 netstat -nat

Wynik polecenia moemy zapisa w lokalnym pliku:


ssh 192.168.0.5 who > spis.txt

Oczywicie przy kadym z tych polece musimy poda


haso. Jeli wykonywanie polecenia trwa duej, a nie
chcemy mie zajtej dodatkowej konsoli, moemy spowodowa, e OpenSSH natychmiast po pobraniu hasa zostanie przeniesione w to. Suy do tego parametr -f, ktry
mona wykorzysta w nastpujcy sposb:
ssh -f -L gerard 192.168.4.75 sleep 20

Klucze czy hasa? Oto jest pytanie


Logujc si na zdalny serwer z pomoc OpenSSH mamy
pewien komfort psychiczny. Oto bowiem nasza transmisja
jest szyfrowana. Jestemy bezpieczni. Zaraz, czy na pewno?
A jeli kto zobaczy, jak wpisujemy haso? Tak, wtedy on

Wybrane opcje OpenSSH:

48

-1 wymusza prac w wersji 1. protokou SSH;


-2 wymusza prac w wersji 2. protokou SSH;
-C wcza kompresj danych (opacalne jedynie na
modemach i innych wolnych czach);
-f przenosi OpenSSH w to tu przed wykonaniem polecenia;
-F plik_konfiguracyjny wskazuje alternatywny plik konfiguracyjny uytkownika (zamiast domylnego ~/.ssh/
config);
-i nazwa_pliku wskazuje, ktry plik z kluczem prywatnym
ma by wykorzystany do autoryzacji;
-l nazwa_uytkownika podaje nazw uytkownika, na
ktrego konto chcemy si zalogowa;
-L port:host:port_hosta pozwala na przekierowanie
pocze z lokalnego komputera poprzez szyfrowany tunel
do zdalnego komputera, a nastpnie do komputera host
(wicej na ten temat w rozdziale Tworzenie tuneli);
-N powoduje, e zdalna komenda nie jest wykonywana
(opcja ta uyteczna jest waciwie tylko przy tworzeniu
tuneli i dziaa jedynie w wersji 2. protokou SSH);
-R port:host:port_hosta pozwala na przekierowanie
pocze ze zdalnego komputera poprzez szyfrowany
tunel do lokalnego komputera, a nastpnie do komputera
host;
-o opcje pozwala poda dodatkowe opcje (w postaci
uywanej w pliku konfiguracyjnym), dla ktrych nie ma
osobnych przecznikw;
-p port numer portu na zdalnym komputerze, z ktrym
chcemy si poczy;
-q blokuje drukowanie wszelkich ostrzee i komunikatw diagnostycznych;
-v drukuje dodatkowe komunikaty (przydatne podczas
rozwizywania problemw);
-V wywietla numer wersji programu.

rwnie moe zalogowa si na zdalnym serwerze (o ile


zna jego adres) wykorzystujc nasz nazw uytkownika
i poznane haso. Czy mona si przed tym jako zabezpieczy? W pewnym stopniu tak.
OpenSSH pozwala na wykorzystanie do logowania si
pary kluczy RSA lub DSA. Jeden z kluczy (zwany publicznym) przechowywany jest na serwerze, na ktry chcemy
si logowa. Natomiast drugi, zabezpieczony hasem
(zwany kluczem prywatnym) powinnimy przechowywa
na swoim koncie i absolutnie nie udostpnia go innym
uytkownikom.
Jakie s zalety takiego rozwizania? Jak ju wiemy,
w przypadku stosowania hasa systemowego, wystarczy,
gdy kto je odgadnie, podsucha lub w inny sposb si
z nim zapozna. To daje mu peny dostp do naszego konta
na zdalnym serwerze. A co, jeli pozna haso chronice
klucz prywatny? Nic. Bez samego klucza prywatnego haso
nic mu nie da. Podobnie, gdy uda mu si zdoby klucz
prywatny, musiaby jeszcze dodatkowo pozna chronice
go haso. Jak wic wida, jest to dodatkowa bariera dla
ewentualnego wamywacza.
Klucze RSA daj jeszcze jedn moliwo. Nie musimy
ustawia hasa chronicego klucz prywatny. W takim przypadku na zdalny komputer logujemy si wydajc jedno
polecenie (ssh uytkownik@adres.serwera) i nie musimy
nawet podawa adnego hasa. Jest to wygodne, lecz
moliwoci tej naley uywa ostronie jeli kto uzyska
dostp do naszego klucza prywatnego, to wszystkie zdalne
systemy, na ktrych umiecilimy nasz klucz publiczny,
bd stay dla niego otworem.
Stwrzmy teraz nasze klucze RSA. Wydajemy polecenie:
ssh-keygen -t rsa

Jako typ klucza moemy poda rsa1 (klucz RSA dla starszej
wersji SSH), rsa (klucz RSA dla SSH w wersji 2.) oraz dsa
(klucz DSA dla SSH w wersji 2.).
Zostajemy zapytani o nazw pliku, w ktrym ma
zosta zapisany klucz prywatny (domylnie jest to plik
~/.ssh/id_rsa), a nastpnie o chronice go haso. Haso
to powinno by trudne do odgadnicia. Najlepiej, jeli
bdzie miao co najmniej 10 znakw (w tym litery due
i mae oraz cyfry). Musi jednak rwnoczenie by atwe
do zapamitania, gdy zapomnianego hasa nie da si
odzyska w takim przypadku musimy generowa
klucze od nowa. Moemy nie ustawia hasa, jednak nie
jest to zalecane. Po powtrnym wpisaniu hasa klucze
s generowane i zapisywane na dysku. Klucz prywatny
domylnie znajduje si w pliku ~/.ssh/id_rsa, natomiast
klucz publiczny w pliku ~/.ssh/id_rsa.pub.
Jeli kiedy stwierdzimy, e chcemy zmieni haso
chronice nasz klucz prywatny, moemy to zrobi wydajc polecenie ssh-keygen -p -f ~/.ssh/id_rsa. Bedziemy
musieli poda dotychczasowe haso oraz (dwukrotnie)
nowe haso.

stycze 2004

openssh

No dobrze, mamy nasze klucze, ale co teraz z nimi


zrobi? Ot klucz prywatny (~/.ssh/id_rsa) pozostawiamy
w spokoju. Pod adnym pozorem nie udostpniamy go
nikomu. Natomiast klucz publiczny (~/.ssh/id_rsa.pub) przesyamy na zdalny komputer. Moemy tego dokona dowoln metod poprzez SCP, poczt czy przez wystawienie na
stronie WWW. Zamy, e uylimy SCP:
scp ~/.ssh/id_rsa.pub gerard@192.168.0.5:~/

Teraz

logujemy

si na zdalny komputer (ssh


gerard @192.168.0.5). Musimy umieci klucz publiczny
w pliku .ssh/authorized_keys (lub innym, jeli zmienialimy
warto opcji AuthorizedKeysFile w pliku /etc/ssh/sshd_
config). Plik ten przechowuje klucze publiczne wszystkich
uytkownikw, ktrzy mog si logowa na nasze konto
bez podawania hasa systemowego. Dokonujemy tego
poleceniem cat ~/id_rsa.pub >> ~/.ssh/authorized_keys.
Jeli plik wczeniej nie istnia, to zostanie utworzony.
Powinnimy wtedy zmieni prawa dostpu do niego poleceniem chmod 600 ~/.ssh/authorized_keys. Plik id_rsa.pub
moemy ju usun ze zdalnego serwera rm ~/id_rsa.pub.
Pozostawiamy go jednak w naszym katalogu ~/.ssh/ wraz
z kluczem prywatnym.
Teraz podczas logowania si na zdalny komputer
zamiast hasa systemowego bdziemy podawa haso chronice klucz prywatny. Nie jest ono przesyane sieci, wic
jest bezpieczniejsze od hasa systemowego.
Kluczy prywatnych moemy mie wicej i wykorzystywa je zalenie od potrzeb. Podczas wywoywania
programu OpenSSH (jak rwnie SCP) moemy wskaza
potrzebny nam plik z kluczem prywatnym korzystajc
z opcji -i. Przykadowe wywoanie programu mogoby

Wybrane opcje SCP:

-a wcza wywietlanie statystyk dla kadego pliku;


-A wycza wywietlanie statystyk dla kadego pliku;
-B wcza tryb wsadowy (nie pyta o hasa i frazy kodujce);
-C wcza kompresj;
-i nazwa_pliku wskazuje, ktry plik z kluczem prywatnym
ma by wykorzystany do autoryzacji;
-l liczba ogranicza szybko przesyania danych do
liczba kilobitw na sekund;
-o opcje pozwala przekaza dodatkowe opcje do programu OpenSSH;
-p chroni czasy modyfikacji, dostpu i prawa oryginalnego pliku;
-q wycza wywietlanie statystyk;
-Q wcza wywietlanie statystyk;
-r kopiuje rekursywnie cae katalogi;
-S cieka_dostpu wskazuje umiejscowienie programu
OpenSSH;
-v drukuje dodatkowe komunikaty (przydatne podczas
rozwizywania problemw).

www.linux.com.pl

mie posta:
ssh -l gerard -i ~/.ssh/id_rsa 192.168.0.5

Przypomn tylko, e aby logowanie si z uyciem kluczy


byo moliwe, to w konfiguracji serwera (plik /etc/ssh/sshd_
config) musi by ustawiona opcja PubkeyAuthentication
yes (domylnie ma wanie tak warto).

Bezpieczne przesyanie plikw,


czyli SCP
OpenSSH nie tylko pozwala nam na bezpieczn prac
w linii polece na zdalnym komputerze. Oprcz tego,
mamy do dyspozycji program SCP, dziki ktremu moemy
kopiowa pliki z i na zdalny komputer (a nawet pomidzy dwoma zdalnymi komputerami) z wykorzystaniem tej
samej autoryzacji, ktr oferuje OpenSSH. Oczywicie SCP
zapewnia rwnie takie samo bezpieczestwo komunikacji,
jak OpenSSH.
Podstawowe wywoanie programu SCP jest bardzo
proste: scp plik_rdowy plik_docelowy. Zarwno
plik_rdowy, jak i plik_docelowy, mog by podawane
w jednej z postaci:
nazwa_pliku (np. plik.txt);
host:nazwa_pliku (np. 192.168.0.1:/home/gerard/plik
.txt);
uytkownik@host:nazwa_pliku
(np. gerard@192.168.0.1:/home/gerard/plik.txt).
W drugim przypadku jako nazwa uytkownika na zdalnej
maszynie domylnie jest przyjmowana nazwa uytkownika, ktry wyda polecenie scp. Jeli wic chcemy skopiowa jaki plik ze zdalnego serwera, moemy skorzysta
z polecenia scp gerard @192.168.0.5:/etc/passwd .. Zostaniemy wtedy zapytani o haso uytkownika gerard,
a po jego poprawnym podaniu do biecego katalogu na
naszym lokalnym komputerze zostanie skopiowany plik
/etc/passwd z komputera o adresie 192.168.0.5.
W wywoaniu programu SCP moemy poda kilka
dodatkowych opcji, np. moe przyda si opcja -r,
odpowiadajca za rekursywne pobieranie podkatalogw.
Polecenie scp -r ~/drzewo/ gerard @192.168.0.5:las/ spowoduje, e podkatalog drzewo/ znajdujcy si w naszym
katalogu domowym zostanie skopiowany wraz z ca
zawartoci do podkatalogu las/ znajdujcego si w katalogu domowym uytkownika gerard na komputerze
o adresie 192.168.0.5.
Niektre pozostae opcje s wymienione w ramce
Wybrane opcje SCP.

FTP te moe by bezpieczne


Kopiowanie plikw z uyciem SCP jest bezpieczne, ale
czsto niezbyt wygodne. Wielu uytkownikw jest przyzwyczajonych do korzystania z FTP, ktre jednak przesya
hasa i dane niezabezpieczonym kanaem. W pakiecie

49

dla pocztkujcych

tera zdalnego bd przesyane (ju nie szyfrowane) do


komputera host na port port_hosta.

Zabezpieczenie poczty

Rysunek 5. Przez tunel moemy przesa praktycznie wszystko,


wliczajc w to strony WWW czy muzyk z radia internetowego

OpenSSH mamy do dyspozycji bezpieczny odpowiednik


FTP. Jest to program SFTP. W najprostszej postaci uruchamiamy go poleceniem:
sftp uytkownik@zdalny.serwer.ssh

Po podaniu hasa mamy do dyspozycji interfejs zbliony


do tego znanego z FTP. Po wpisaniu help uzyskujemy spis
dostpnych komend. Nie rni si one w zasadzie od
komend znanych z powoki.
SFTP moemy rwnie wykorzysta w sposb podobny
jak SCP do pobrania jednego lub kilku plikw (bez wchodzenia w tryb interaktywny):
sftp uzytkownik@zdalny.serwer.ssh:nazwa_pliku

Istotne dla dziaania SFTP jest, aby w konfiguracji zdalnego


serwera OpenSSH (w pliku /etc/sshd_config) znajdowaa si
linia o treci:
Subsystem sftp /usr/libexec/openssh/sftp-server

W domylnej konfiguracji linia ta jest obecna.

Tworzenie tuneli
Na pocztku artykuu (w rozdziale Sposb uycia) wspomniaem, e znajomy zrobi sobie tunel ze swojego komputera do mojego serwera, dziki czemu mg swobodnie
korzysta z IRC-a. Teraz nadszed czas, aby wyjani
dokadniej, na czym to polega, i jak mona zrobi to
samemu.
Program OpenSSH pozwala na wykorzystanie opcji
-L port_lokalny:host:port_hosta. Powoduje ona, e pomidzy portem port_lokalny na naszym komputerze a zdalnym komputerem zostanie utworzony szyfrowany tunel.
W przypadku poczenia si z portem port_lokalny pakiety bd wdrowa przez ten tunel, a nastpnie z kompu-

50

No dobrze, ale co nam to daje? Wiele usug nadal nie jest


szyfrowanych. Wyobramy sobie sytuacj, gdy pracujemy
w duej firmie. Firma ta posiada wasny serwer SSH oraz
serwer poczty znajdujce si w jednej sieci lokalnej (oba
s dostpne z Internetu). Jeli chcemy sprawdzi poczt
firmow z komputera domowego, przy standardowej konfiguracji czylibymy si programem pocztowym prosto
na port 110 (POP3) serwera pocztowego. W takim przypadku naraamy si na to, e kto podsucha nasz transmisj i zdobdzie nasze haso lub jakie tajemnice firmy.
Lepiej bdzie, gdy korzystajc z OpenSSH utworzymy
zabezpieczony tunel od naszego komputera do serwera
SSH firmy i wykorzystamy go do komunikacji z serwerem
poczty. Dziki temu transmisja bdzie niezabezpieczona
tylko na odcinku od serwera SSH do serwera poczty,
a przecie oba znajduj si w sieci firmowej, co znacznie
zmniejsza ryzyko podsuchu.
Sprbujmy zbudowa taki tunel. Odpowiednim do tego
poleceniem bdzie:
ssh -N -f -L 11234:adres.serwera.poczty:110

uytkownik@adres.serwera.ssh

Teraz zostaniemy zapytani o haso na konto uytkownik


na serwerze adres.serwera.ssh. Po jego podaniu program
OpenSSH zostanie przeniesiony w to (dziki opcji -f ).
Gdybymy nie dodali opcji -N, to oprcz stworzenia tunelu
zalogowalibymy si na zdalnym serwerze SSH. Tunel
istniaby wtedy tylko do czasu naszego wylogowania si.
Poniewa zaley nam przede wszystkim na tunelu, wic
uywamy opcji -N.
Pozostaje nam skonfigurowa program pocztowy tak,
aby nie czy si z komputerem adres.serwera.poczty na
porcie 110, lecz z komputerem localhost (a wic naszym
wasnym) na porcie 11234.
Powysza metoda sprawdza si jeszcze lepiej, gdy serwer
SSH i serwer poczty s uruchomione na jednym komputerze.
Wwczas wywoanie programu przyjmuje posta:
ssh -N -f -L 11234:localhost:110

uytkownik@adres.serwera.ssh.i.poczty

Nie powinien nas zmyli napis localhost w opcji -L. Odnosi


si on do zdalnego serwera SSH, a nie do naszego komputera
lokalnego. W powyszym przypadku tunel zapewnia nam
szyfrowanie transmisji przez ca drog, gdy na ostatnim
etapie transmisja odbywa si w obrbie jednego komputera.

Gdy nie wolno IRCowa


Do czego mog si nam jeszcze przyda tunele? Przypumy, e nasz komputer znajduje si w sieci lokalnej oddzie-

stycze 2004

openssh

lonej od Internetu zapor ogniow (firewall ). Administrator


tej zapory z pewnych wzgldw (przykadowo z polecenia
szefa) zablokowa cz portw i pozostawi tylko wybrane.
Na szczcie poczenia przez SSH s dozwolone (no bo
przecie jako trzeba pracowa).
Jeli w czasie przerwy w pracy zamiast je drugie niadanie wolimy porozmawia na IRC-u ze znajom, musimy
sobie jako poradzi. Pomog nam oczywicie tunele.
Warunkiem jest, e mamy konto na zdalnym komputerze
(umieszczonym poza nasz sieci lokaln), udostpniajcym serwer SSH.
Polecenie tworzce tunel ju znamy:

ssh -N -f -L 6669:poznan.irc.pl:6667
uytkownik@zdalny.serwer.ssh

Po podaniu hasa moemy uruchomi sobie IRC-a i poczy si z portem 6669 serwera localhost. Nasze poczenie
zostanie przekazane zabezpieczonym tunelem do zdalnego
serwera SSH, a stamtd przekierowane na port 6667 serwera poznan.irc.pl. Z punktu widzenia serwera poznan.irc.pl
(a wic i innych uczestnikw rozmowy na IRC-u) bdzie
si wydawao, e nasz program Irc jest uruchomiony na
komputerze zdalny.serwer.ssh.

Zakoczenie
Bezpieczestwo w Sieci jest obecnie spraw kluczow.
Nawet w takim oprogramowaniu jak OpenSSH zdarzaj
si dziury, wic naley pamita o czstej aktualizacji
najwaniejszych pakietw oraz obserwowaniu ogosze
o krytycznych bdach. Naley te zdawa sobie spraw,
e nawet najlepsze oprogramowanie moe nas nie uchroni przed atakami, gdy zwykle najsabszym ogniwem
jest czowiek. Jeli ustawimy atwe do odgadnicia haso,
to nikt go nie bdzie musia podsuchiwa po prostu je
wpisze.

W Sieci:

Strona domowa OpenSSH:


http://www.openssh.org/
Polski serwer lustrzany powyszej strony:
http://predict.chem.uw.edu.pl/openssh/
Pliki rpm na polskim serwerze FTP:
ftp://sunsite.icm.edu.pl/pub/OpenBSD/OpenSSH/
portable/rpm/RH90
rdowe pakiety rpm na polskim serwerze FTP:
ftp://sunsite.icm.edu.pl/pub/OpenBSD/OpenSSH/
portable/rpm/SRPMS
Strona domowa PuTTY:
http://www.chiark.greenend.org.uk/~sgtatham/putty/
Strona domowa WinSCP:
http://winscp.sourceforge.net/eng/
Troch teorii kryptografii:
http://www.bezpieczenstwoit.pl/Kryptografia.html

www.linux.com.pl

51

sprzt

Lm_sensors i Smartmontools
czujniki naszego komputera
Piotr Wolny

spczesne pyty gwne wyposaone s


w czujniki monitorujce prac zasilacza
i wentylatorw oraz temperatur: procesora, pyty gwnej i innych elementw.
Te dodatki kojarz si czsto z amatorami overclocking'u,
dla ktrych wane jest stae monitorowanie temperatury,
zwaszcza procesora, zmuszonego do pracy ponad nominalne moliwoci. Moda na overclocking powoli przemina, jednak czujniki w sprzcie pozostay. Gwnie dlatego,
e sens ich istnienia wykracza daleko poza wspomniane
wczeniej zastosowania, a okazuj si by bardzo potrzebne, zarwno w profesjonalnych systemach, jak i w zwykych, domowych komputerach.
Oczywicie przecitnemu uytkownikowi komputera
czy nawet administratorowi serwera nie jest potrzebna
wiedza na temat aktualnych napi, temperatur i obrotw wentylatorw w systemie. Wane jest, aby te wartoci
utrzymyway si w normie. Czujniki pozwalaj wanie na
szybkie odnotowanie, gdy co w systemie zaczyna odbiega
od normy, a to umoliwia szybk reakcj zanim dojdzie do
cakowitego zniszczenia sprztu. Najlepszym przykadem jest
oczywicie zacierajcy si wentylator procesora, co powinno
zosta odnotowane przez dwa czujniki (obrotw wentylatora
i temperatury procesora). Rwnie niebezpieczne s jednak
awarie zasilacza, ktre bardzo czsto objawiaj si najpierw
poprzez zmiany wytwarzanych przez niego napi.
Od samego sprztu cenniejsze bywaj dane. I tutaj producenci dyskw twardych rwnie wychodz naprzeciw
uytkownikom. Od duszego czasu nowe dyski twarde
wyposaane s w SMART Self-Monitoring, Analysis
and Reporting Technology, co mona przetumaczy jako
Technologia samokontroli, analizy i raportowania. Oprogramowanie dyskw twardych wyposaonych w SMART
potrafi przetestowa dysk, przewidujc awarie, ktre
z duym prawdopodobiestwem nastpi w przyszoci.
Niejako ,,przy okazji'' dyski twarde rwnie wyposaono
w czujniki temperatury i wielu innych parametrw pracy.
Dostp do danych niektrych czujnikw moemy uzyska
z poziomu BIOS-u komputera bd przy pomocy narzdzi
O autorze:
Autor jest politologiem i pracuje dla www.wzz.org.pl.
Linuksem zajmuje si mniej wicej od czasw jdra 2.0.20.
Kontakt z autorem: autorzy@linux.com.pl.

52

Rysunek 1. Program Lmcgi wywietla dane o sprzcie na stronie


WWW

dla MS Windows, dostarczanych na og przez producentw pyt gwnych, chipsetw bd dyskw twardych.
W Linuksie czujniki na pycie gwnej moemy odczytywa przy pomocy oprogramowania Lm_sensors (http://
www.lm-sensors.nu/ ), a informacje SMART dostpne s
dziki programom z projektu Smartmontools (http://smartmontools.sourceforge.net/ ).

Czujniki pyty gwnej


Producenci pyt gwnych najlepiej znaj swoje produkty,
wic s w stanie dostarczy uytkownikom MS Windows
aplikacje, ktre dziaaj dobrze z konkretnym sprztem.
Inaczej jest w przypadku Linuksa twrcy Lm_sensors
musieli sami napisa sterowniki do kilkudziesiciu rnych
ukadw, ktre odpowiedzialne s za odczyt i raportowanie wartoci z czujnikw, z pyt gwnych dziesitek producentw. Niestety, stworzenie bazy wiedzy o wszystkich,
czy przynajmniej wikszoci pyt gwnych, ktra umoliwiaaby uruchomienie lm_sensors bez koniecznoci wczeniejszej, pracochonnej konfiguracji, przerasta moliwoci
twrcw tego projektu. Problem polega na tym, i niemal
kada pyta gwna rni si od innych nie tylko zastosowanymi ukadami scalonymi, ale rwnie sposobem interpretacji odczytywanych danych. Uytkownik Linuksa musi
wic samodzielnie poradzi sobie z konfiguracj. Pomoc
w tym zakresie suy program sensors-detect, o ktrym
bdzie mowa pniej.

stycze 2004

lm_sensors

Za bezporedni odczyt danych z czujnikw pyty gwnej odpowiada pojedynczy ukad scalony. Pobrane dane
trafiaj do systemu operacyjnego poprzez magistral I2C
(lub SMBus). Potrzebujemy zatem:
modu jdra, sterujcy magistral I2C;

Instalacja ze rde
Czeka nas obowizkowa rekompilacja caego jdra Linuksa.
Najpierw bdziemy musieli naoy na jdro specjaln atk
z najnowsz wersj I2C oraz poprawkami dla wszystkich sterownikw korzystajcych z magistrali I2C. Instalacj przeprowadzamy wic w nastpujcych krokach:

cigamy i rozpakowujemy rda oficjalnego jdra


z www.kernel.org (najnowsza stabilna wersja w momencie
pisania tego artykuu to 2.4.22);
ze strony http://delvare.nerim.net/i2c/ cigamy unified patch for Linux 2.4.22 (i2c-2.8.1), czyli atk na
jdro, zawierajc I2C w wersji 2.8.1, oraz poprawki we
wszystkich sterownikach, wykorzystujcych I2C. Plik linux2.4.22-i2c-2.8.1.patch umieszczamy w katalogu /usr/src.
Jeli bdzie dostpna nowsza wersja jdra, musimy oczywicie zastosowa rwnie odpowiednio nowsz wersj
atki;
nakadamy atk np. poleceniem cd /usr/src/
linux-2.4.22; patch -p1 < ../linux-2.4.22-i2c-

2.8.1.patch;
konfigurujemy i kompilujemy nowe jdro. Przy konfiguracji
jdra, w dziale Character devices wybieramy I2C support,
zaznaczamy koniecznie jako moduy I2C support,
I2C device interface oraz I2C proc interface. Jeli mamy
kart telewizyjn, zaznaczamy rwnie I2C bit-banging
interfaces. Nie zaszkodzi rwnie, jeli zaznaczymy jako
moduy rwnie inne sterowniki z tego dziau;
uruchamiamy system na nowym jdrze, a nastpnie
cigamy i rozpakowujemy plik lm_sensors-2.8.1.tar.gz:
tar zxfvp lm_sensors-2.8.1.tar.gz; cd lm_sensors-

2.8.1;
w archiwum Lm_sensors nie ma skryptu configure, wic
moemy od razu wyda polecenie make. Jeli jednak
chcemy zmodyfikowa jakie opcje kompilacji, moemy
rcznie poprawi plik Makefile. Wszystkie opcje s w nim
dobrze udokumentowane. Niestety z aktualn wersj
nie mona wczy opcji nakazujcej skompilowanie
programu sensord;
instalacj kocz polecenie make install oraz uruchomienie programu mkdev.sh, ktry znajdziemy w katalogu
prog/mkdev dystrybucji rdowej lm_sensors. Oczywicie polecenia te wydajemy jako root.

Po tej operacji w systemie mamy cay szereg nowych moduw


jdra zarwno dodatkowe moduy magistral I2C w katalogu
/lib/modules/2.4.22/kernel/drivers/i2c/busses, jak i moduy
dla poszczeglnych ukadw scalonych sterujcych czujnikami,
w katalogu /lib/modules/2.4.22/kernel/drivers/i2c/chips.
Dodatkowo, w systemie pojawia si m.in. program sensors
prosta komenda umoliwiajca odczyt stanu czujnikw, oraz
sensors-detect program uatwiajcy konfiguracj pakietu.

www.linux.com.pl

Rysunek 2. Program Ksysguard, skonfigurowany do pokazania


zalenoci pomidzy obcieniem procesora a jego temperatur

modu jdra, sterujcy samym ukadem, do ktrego


podpite s czujniki;
plik konfiguracyjny /etc/sensors.conf, zawierajcy informacje, jak tumaczy dane z czujnika na rzeczywiste
wartoci.

Instalacja Lm_sensors
Wikszo dystrybucji Linuksa dostarcza pakiet Lm_sensors, jednake jego konfiguracja pozostaje w rkach uytkownika.
W Mandrake 9.2 pakiet lm_sensors-2.8.0-4mdk moemy
zainstalowa np. przy pomocy graficznego narzdzia do
instalacji pakietw. W Aurox 9.1 pakiet lm_sensors-2.6.55.i386.rpm (niestety troch starsza wersja) powinien zosta
zainstalowany razem z systemem, a jeli tak si nie stao,
moemy znale go na pierwszej pycie CD. Jeli korzystamy z ktrej z powyej wymienionych dystrybucji, moemy
od razu przej do czci Konfiguracja Lm_sensors.
Debian Woody rwnie dostarcza pakiety lm-sensors
(zawiera podstawowe programy narzdziowe) oraz lmsensors-source (z moduami jdra w postaci rdowej).
W przypadku tej dystrybucji instalacja pakietw jest nieco
trudniejsza chcemy postpowa zgodnie z zasadami dystrybucji Debian. Po zainstalowaniu pakietw lm-sensors
oraz lm-sensors-source musimy rozpakowa plik /usr/src/
lm-sensors.tar.gz i przy pomocy polecenia make-kpkg (z
pakietu kernelutils) skompilowa nowy pakiet z moduami
jdra: cd /usr/src/linux; make-kpkg --revision wersja1
modules_image. Oczywicie w /usr/src/linux musz znajdowa si rda aktualnie uywanego jdra i musimy uy
tej samej wersji kompilatora gcc, ktra zostaa uyta do zbudowania jdra. Jeli wszystko pjdzie dobrze, w katalogu
/usr/src/ znajdziemy pakiet Debiana z moduami jdra,
ktry instalujemy poleceniem dpkg -i <nazwa pliku.deb>.

Konfiguracja Lm_sensors
Nastpnym krokiem jest uruchomienie w konsoli jako
root programu sensors-detect. Sprbuje on zaadowa
rne moduy magistrali I2C oraz rne moduy obsugu-

53

sprzt

jce same czujniki, a znajdzie kombinacj, ktra dziaa na


danym systemie. W czasie tego testowania zadaje on uytkownikowi kilka pyta, proponujc zawsze jakie domylne
zachowanie. Przy pierwszej prbie moemy swobodnie mu
zaufa, odpowiadajc na wszystkie pytania naciniciem
klawisza [Enter].
Jeli wszystko pjdzie dobrze, program na kocu swojego dziaania wydrukuje, ktre moduy jdra s wymagane
do dziaania Lm_sensors. Wydruk ten ma posta gotowego fragmentu skryptu, ktry naley doczy do ktrego
z plikw uruchamianych przy starcie systemu. Na moim
systemie wyglda on tak, jak przedstawiono na Listingu 1.
Program zapyta rwnie o zgod na zmodyfikowanie pliku
/etc/sysconfig/lm_sensors. Jest to dobry pomys w pliku
tym rwnie znajdzie si lista moduw, ktre maj zosta
zaadowane. Jeli posiadamy dystrybucj Mandrake, to sam
plik /etc/sysconfig/lm_sensors wystarczy do automatycznego
adowania moduw przy starcie, gdy zawarty w tej dystrybucji skrypt /etc/init.d/lm_sensors po prostu przeczyta /etc/
sysconfig/lm_sensors i zaaduje niezbdne elementy. W przypadku innych dystrybucji moemy po prostu doczy fragment, podobny do tego z Listingu 1, do ktrego z plikw
startowych, lub zastosowa taki mechanizm, jak w Mandrake. W tym drugim przypadku musimy z dystrybucji rdowej Lm_sensors skopiowa plik prog/init/lm_sensors.init
do /etc/init.d/lm_sensors oraz oczywicie nada mu prawa
wykonywalnoci i spowodowa (np. jakim edytorem SysV),
aby by wykonywany przy starcie komputera.

Analiza otrzymanej konfiguracji


Fakt, e program sensors-detect zakoczy prac z sukcesem, nie oznacza, e na pewno wszystko jest gotowe
i dziaa. Czekaj nas pewne testy. Musimy sprawdzi, jakie
dane otrzymamy z kadego z ukadw, ktry zosta wykryty przez sensors-detect. W moim przypadku co wida
na Listingu 1 byy to tylko dwa ukady: eeprom oraz it87.
Program sensors-detect jest jednak daleki od doskonaoci
i u niektrych uytkownikw potrafi wykrywa znacznie
wicej ukadw ni rzeczywicie znajduje si w systemie.
Jeli sprbujemy odczyta dane z ukadu, ktrego nie ma,
program sensors zwrci kompletnie niedorzeczne wyniki.

Rysunek 3. Program GKreelM potrafi m.in. pokazywa


temperatur z czujnikw

adujemy wic wymienione wczeniej moduy i odczytujemy najpierw czujniki eeprom poleceniem: sensors eeprom-*.
W efekcie dostajemy jedynie mao uyteczne informacje na
temat zainstalowanych koci pamici w systemie. Modu ten
nie bdzie nam potrzebny, wic moemy usun go z listy
adowanych przy starcie. Nastpnie badamy kolejny ukad:
sensors it87-*. Wynik dziaania tej komendy na moim
systemie zamieciem na Listingu 2. Co prawda, na pierwszy rzut oka wydaje si, e wynik jest mao rozsdny (przy
ponad poowie wszystkich wartoci pojawia si ALARM),
ale okazao si, i jest to prawidowy modu jdra.

Modyfikacje w /etc/sensors.conf
Program sensors na moim systemie zwrci nieco dziwne
wyniki, wic warto przyjrze si konfiguracji w /etc/
sensors.conf. Jest to bardzo obszernie skomentowany plik,
ktry okrela konfiguracj kolejno dla wszystkich obsugiwanych ukadw. Mnie w tym przypadku interesowa
wycznie it87.
Zauwayem, i BIOS mojego komputera w ogle nie
pokazuje napi ujemnych -5 i -12. Program sensors pokazywa w tym zakresie niedorzeczne wyniki, wic doszedem do wniosku, i mj sprzt nie potrafi ich prawidowo
odczytywa. Podobnie zreszt z napiciem Stdby. Postanowiem zignorowa te napicia, dopisujc w /etc/sensors.conf
przy moim chip'ie linie:
ignore in5;
ignore in6;
ignore in7;

Listing 1. Kocowy wynik dziaania programu sensorsdetect


#----cut here---# I2C adapter drivers
modprobe i2c-viapro
modprobe i2c-isa
# I2C chip drivers

Nastpnie zauwayem, e napicie 3.3V jest dwukrotnie


zawyone. Tutaj pomocne okazay si komentarze w pliku
/etc/sensors.conf, ktre nakazuj w takim przypadku zakomentowanie jednej linii, co te uczyniem.
Kolejn rzecz do poprawienia byy odczyty obrotw
drugiego i trzeciego wiatraczka, ktrych nie posiadam.
Naleao wic dopisa linie:

modprobe eeprom
modprobe it87

ignore fan2;

# sleep 2 # optional

ignore fan3;

/usr/local/bin/sensors -s # recommended
#----cut here----

54

Ostatnim niepokojcym zjawiskiem byy za wysokie napicia Vcore oraz +12. W tym przypadku uyem woltomierza,

stycze 2004

lm_sensors

aby je porwna. Okazao si, e sensors ma racje. S


one za wysokie, wic czas kupi nowy zasilacz... Oczywicie w takim przypadku mona rwnie odpowiednio dostroi /etc/sensors.conf, aby dana warto bya uznawana
za normaln i nie wywoywaa alarmu.
Po kadej modyfikacji /etc/sensors.conf, aby zmiany
odniosy skutek, naley wyda polecenie sensors -s.
Ostatecznie wic, po zmodyfikowaniu /etc/sensors.conf,
wydaniu polecenia sensors -s oraz sensors, efekt jest
taki, jak na Listingu 3.

Samodzielne ustalanie posiadanego


sprztu
A co zrobi, gdy wyniki z ukadw wykrytych przez
sensors-detect nie s uyteczne. Zapewne oznacza to,
e nasz ukad lub magistrala I2C nie zostay rozpoznane
przez sensors-detect bd nie s przez niego obsugiwane,
przynajmniej w wersji, ktr posiadamy. W kadym razie,
musimy si dowiedzie, jaki ukad, odczytujcy dane z czujnikw, posiada nasza pyta gwna. Informacj t moemy
zdoby z nastpujcych rde:
instrukcja pyty gwnej moe wymienia nazw
ukadu w swojej specyfikacji bd w innym miejscu,
np. na diagramie opisujcym konstrukcj pyty;
moemy samodzielnie odszuka ukad na pycie gwnej jest to z reguy niewielki, kwadratowy scalak
o boku ok. 1-2 cm, a jego oznaczenie mona porwna
z list obsugiwanego sprztu, zamieszczon na stronach projektu Lm_sensors;
na stronie http://mbm.livewiredev.com/mobolist.html
znajdziemy list pyt gwnych i ich czujnikw dla
Listing 2. Wynik dziaania programu sensors przed
modyfikacj /etc/sensors.conf
# sensors it87-*
it87-isa-0290
Adapter: ISA adapter
Algorithm: ISA algorithm
VCore 1: +1.72 V (min = +1.42 V, max = +1.56 V) ALARM
VCore 2: +2.52 V (min = +2.40 V, max = +2.60 V)
+3.3V: +6.42 V (min = +3.12 V, max = +3.44 V) ALARM
+5V: +4.75 V (min = +4.72 V, max = +5.24 V)
+12V: +13.44 V (min = +11.36 V, max = +12.60 V) ALARM
-12V: -20.61 V (min = -12.63 V, max = -11.41 V) ALARM
-5V: -9.01 V (min = -5.28 V, max = -4.81 V) ALARM
Stdby: +1.88 V (min = +4.72 V, max = +5.24 V) ALARM
VBat: +2.03 V
fan1: 3199 RPM (min =

0 RPM, div = 2)

fan2: 0 RPM (min = 3000 RPM, div = 2) ALARM


fan3: 0 RPM (min = 3000 RPM, div = 2) ALARM
M/B Temp: +40C (low = +20C, high = +40C)
CPU Temp: +38C (low = +25C, high = +45C)
Temp3: +15C (low = +25C, high = +45C)

www.linux.com.pl

Rysunek 4. Strona domowa projektu Lm_sensors

programu MS Windows, ktry wykonuje podobn


funkcj.
Gdy wiemy ju, jaki ukad posiadamy, na stronie http://
www2.lm-sensors.nu/~lm78/supported.html moemy sprawdzi, czy nasz sprzt jest obsugiwany, a jeli tak, to od
ktrej wersji Lm_sensors. Warto odwiedzi rwnie stron
http://www2.lm-sensors.nu/~lm78/newdrivers.html, ktra
zawiera list sprztu, ktry dopiero bdzie obsugiwany
przez przysze wersje oraz tego, do ktrego z rnych
powodw nie planuje si napisa sterownikw.

Praktyczne uycie Lm_sensors


Oczywicie stan czujnikw mona sprawdza okazyjnie wydajc polecenie sensors. Inn moliwoci jest
uycie bardzo prostego programu Alarmwatch (http:
//www.dakotacom.net/~donut/ ). Potrafi on dziaajc w tle
stale monitorowa czujniki, aby w przypadku problemw
sygnalizowa je dwikiem z gonika systemowego lub/i
komunikatem w syslog'u. Instaluje si go bardzo prosto
wystarcz polecenia ./configure; make; make install.
Do jego dziaania oczywicie najpierw musimy skonfigurowa Lm_sensors. Gdy ju to zrobimy i sensors nie pokazuje
adnego alarmu, sprawdzamy warto pliku /proc/sys/dev/
sensors/<nazwa chip-a>/alarms. T liczb uywamy jako
ignorespec w wywoaniu alarmwatch, ktre moe wyglda
nastpujco: alarmwatch -B 5 it87-isa-0290 61702. Opcja
-B5 oznacza sygna dwikowy co 5 sekund, it87-isa0290 to pena nazwa chip-a, ktra pojawia si po wydaniu
komendy sensors, a cyfra 61702 to w moim przypadku
ignorespec, ktry uzyskaem w sposb podany wczeniej.
Dla niektrych uytkownikw ciekawym programem
moe by LMCgi. Jest to skrypt Perla, ktry wywietla informacje z Lm_sensors na stronie WWW. Jego konfiguracja jest
bardzo prosta i sprowadza si jedynie do zmiany nazwy
chip-a w rdach skryptu.
Wikszo uytkownikw bdzie zainteresowana
graficznymi nakadkami na Lm_sensors. Wrd nich
zapewne najpopularniejsze i najbardziej dostpne bd
Ksysguard Stranik systemu KDE oraz GKrellM przystosowany bardziej do rodowiska GNOME. Obydwie te

55

sprzt

GKrellM
Najbardziej rozbudowan aplikacj graficzn, suc do monitorowania systemu, jest GKrellM. Wyrnia si on duymi moliwociami (potrafi monitorowa kilkadziesit rnych wartoci
i jest atwo rozszerzalny poprzez wtyczki), a jego wygld mona
dostosowa do wasnych preferencji poprzez skrki (skins).
Uytkownicy Aurox Linux mog znale najnowsz wersj
wraz z dodatkami na freshrpms.net. Na tej stronie, po wybraniu Red Hat 9, naley cign pakiet fftw oraz pakiety
gkrellm, gkrellm-plugins, gkrellm-themes.
Po uruchomieniu aplikacji i naciniciu klawisza [F1],
moemy wybra, ktre parametry systemu chcemy mie na
bieco pod kontrol. Wrd kilkudziesiciu z nich, najpopularniejsze to oczywicie obcienie procesora i sieci, zajto
i praca dyskw oraz oczywicie czujniki komputera. Aby oglda wyniki ich odczytw w GKrellM, musimy najpierw skonfigurowa Lm_sensors, w przeciwnym razie w dziale Czujniki
(Sensors ) nie znajdziemy adnych pozycji do zaznaczenia.
GkrellM mona take uywa do innych zada, np. podgld
kamery internetowej, sprawdzanie, czy dany komputer odpowiada na pingi, informowanie o nowej poczcie, a nawet jako
mikser dwiku, tuner radiowy i wielu innych.
Pord wielu zalet tego programu trzeba wymieni pen
konfigurowalno, bardzo dobr pomoc (rwnie spolszczon),
ktr mona znale w zakadce Info przy kadej pozycji
w konfiguracji, oraz moliwo ustawienia wielu zaawansowanych parametrw, wycznie przy uyciu myszki.

aplikacje mona znale w wielu dystrybucjach Linuksa,


a konfiguruje si je bardzo atwo, przy pomocy myszki.
Dziki nim moemy zawsze mie na pulpicie podgld
naszych czujnikw.

Technologia SMART
Jeli nasz dysk twardy wspiera SMART, moemy z niego
wycign wiele ciekawych informacji. W tym celu
Listing 3. Wynik dziaania programu sensors po modyfikacji
/etc/sensors.conf

moemy posuy si programami smartctl oraz smartd.


Mona je znale w wikszoci dystrybucji Linuksa lub
cign z http://smartmontools.sourceforge.net/.
Zamy, e dysk, o ktrym chcemy si dowiedzie
wicej, to /dev/hda. Komenda smartctl -i /dev/hda poinformuje nas, czy nasz dysk wspiera SMART, oraz czy jego
obsuga jest wczona. Jeli jest wyczona, moemy j aktywowa komend smartctl -s on /dev/hda. Na pocztek
moemy zapyta dysk o jego stan:
smartctl -H /dev/hda

Ostatnia linia wyniku dziaania tej komendy powinna


wyglda tak:
SMART overall-health self-assessment test result: PASSED

Jeli zobaczymy tam FAILED zamiast PASSED, oznacza


to, e dysk ju uleg powanej awarii bd najprawdopodobniej ulegnie jej w cigu 24 godzin. Nawet jednak, gdy
dysk twierdzi, i jest sprawny, dobrze jest przeprowadzi
pewne testy. Przy pomocy polecenia smartctl -t long
/dev/hda moemy uruchomi, trwajcy okoo godziny, test
dysku. Krtszy test trwa poniej 10 minut uruchamiamy
poleceniem smartctl -t short /dev/hda. Testy te moemy
uruchamia w czasie normalnej pracy dysku, gdy s na nim
zamontowane partycje. Ich wynik moemy sprawdzi po
zakoczeniu poleceniem smartctl -l selftest /dev/hda.
Wszystkie informacje o dysku moemy uzyska wywoujc polecenie smartctl -a /dev/hda | less. Nie naley
jednak wpada w panik, gdy zobaczymy jakie bdy.
Wane jest zwrcenie uwagi na warto Reallocated_Sector_
Ct, ktra okrela, ile sektorw zostao przeniesionych przez
dysk z powodu bdw. Jeli mamy warto wiksz ni
zero, oznacza to powane problemy z dyskiem. Dodatkowo komenda ta pokazuje wiele ciekawych informacji, np.
aktualn temperatur dysku (Temperature_Celsius) czy ilo
godzin przepracowanych przez dysk.

W Sieci:

che:~# sensors it87-*


it87-isa-0290

Adapter: ISA adapter


Algorithm: ISA algorithm
VCore 1: +1.72 V (min = +1.42 V, max = +1.56 V) ALARM
VCore 2: +2.52 V (min = +2.40 V, max = +2.60 V)
+3.3V: +3.21 V (min = +3.13 V, max = +3.45 V)
+5V: +4.75 V (min = +4.72 V, max = +5.24 V)
+12V: +13.44 V (min = +11.36 V, max = +12.60 V) ALARM
VBat: +2.03 V
fan1: 3199 RPM (min =

0 RPM, div = 2)

M/B Temp: +40C (low = +20C, high = +40C)


CPU Temp: +38C (low = +25C, high = +45C)
Temp3: +16C (low = +25C, high = +45C)

56

Strona domowa projektu Lm_sensors:


http://www.lm-sensors.nu/
Strona domowa projektu Smartmontools:
http://smartmontools.sourceforge.net/
Program Alarmwatch:
http://www.dakotacom.net/~donut/
Strona domowa programu GKrellM:
http://web.wt.net/~billw/gkrellm/gkrellm.html
Strona domowa programu wyspecjalizowanego do odczytu temperatury z twardych dyskw:
http://coredump.free.fr/linux/hddtemp.php
Baza danych na temat czujnikw na poszczeglnych
pytach gwnych:
http://mbm.livewiredev.com/mobolist.html

stycze 2004

Wybierz swoj prenumerat:


Drodzy Prenumeratorzy!
Wsplnie z firm INTERNEWS, dystrybutorem i importerem
czasopism obcojzycznych, przygotowalimy dla Was atrakcyjn ofert zakupu prenumeraty ze znik wyszczeglnionych
w tabeli czasopism informatycznych.
Zamwienia i szczegowe informacje:
tel. (22) 853 60 23, 853 87 77. www.linux.com.pl.
W tym numerze polecamy:
Dr. Dobbs Journal jest wiodcym
magazynem dla deweloperw oprogramowania. Od ponad 25 lat jest
on najlepszym rdem informacji
dla profesjonalnych programistw,
pisanym i redagowanym przez programistw dla programistw. W DDJ
znajdziesz liczne algorytmy, wskazwki
przydatne podczas pisania programw, opracowania dotyczce podstawowych zagadnie z projektowania oprogramowania oraz
wszystkie listingi omawianych programw, co zagwarantuje Ci, e staniesz si jeszcze lepszym programist.
Dr. Dobbs Journal is the leading magazine for software developers. For more than 25 years it has been the
foremost source of software tools for the professional
programmer. It is written and edited by programmers for
programmers. With DDJ youll get algorithms, coding tips,
discussions of fundamental design issues, and program
listings guaranteed to make you a better programmer.

C/C ++ Users Journal jest magazynem powiconym praktycznym rozwizaniom dla programistw C/C++,
ktry omawia zaawansowane techniki
programowania w C, C++ oraz Javie.
Kade wydanie dostarcza szczegowych informacji o wymienionych
jzykach, stosowanych standardach
oraz programowaniu zorientowanym
obiektowo. Zajrzyj do CUJ, aby znale najlepsze oraz
najnowsze techniczne informacje o jzykach C i C++,
ktre wci s najlepszym wyborem podczas rozwijania
wspczesnego oprogramowania.
C/C ++ Users Journal is the magazine devoted to practical
solutions for C/C ++ programmers, providing advanced
techniques in C, C ++ and Java. Each issue provides
how-to articles with full source code, and in-depth information about languages, standards and object-oriented programming. Look to CUJ for the best and latest
in technical information on C and CC++, the language
of choice for contemporary software development.

www.linux.com.pl

Tytu czasopisma

obecna cena
cena
prenumeraty promocyjna
procznej prenumeraty
(brutto)
procznej

ACCESS OFFICE & VB ADVISOR


C-C++ USERS JOURNAL
COMP.SHOPPER CD
COMPUTER ARTS CD*
COMPUTER ARTS SPECIAL CD
COMPUTER GAMING WORLD CD
COMPUTER SHOPPER USA
CRE@TE ONLINE CD
DR.DOBB`S JOURNAL
DVD REVIEW
DYNAMIC GRAPHICS
HOME ENTERTAIMENT
INTELLIGENT ENTERPRISE
INTERNET MAGAZINE CD
LAPTOP
LINUX FORMAT CD*
LINUX JOURNAL
LINUX MAGAZINE
MAC FORMAT CD*
MAC USER
MACWORLD UK CD
MACWORLD USA CD
MSDN MAGAZINE
OFFICIAL PS2 MAGAZINE*
OFFICIAL UK PLAY`STATION CD*
PC ADVISOR CD
PC FORMAT CD*
PC FORMAT DVD*
PC GAMER CD*
PC MAGAZINE UK CD
PC MAGAZINE USA
PC PLUS CD
PC PRO CD
PC UTILITIES CD
PC WORLD USA
PC ZONE CD*
PERS.COMP.WOR.CD
PLAY MAG UK DVD*
PLAYSTATION WORLD DVD*
PRACTICAL INTERNET CD*
PSM2 DVD*
SOFTWARE DEWELOPMENT
SYS ADMIN
WEB PAGES CD
WHAT PC ? CD
WIRELESS BUSINESS & TECHNOLOGY

237,70
199,50
222,50
366,20
391,80
354,30
203,20
351,70
199,50
280,10
118,90
216,90
355,70
223,70
240,30
354,30
203,80
232,30
354,30
440,20
287,60
203,20
239,70
329,20
297,30
208,50
388,70
432,50
301,80
183,30
520,60
401,60
293,80
287,60
163,30
252,20
205,40
234,60
244,80
320,60
240,30
199,50
237,10
167,80
239,10
237,70

180,70
152,10
171,20
277,70
320,00
268,70
155,60
266,30
152,10
214,30
90,40
165,80
270,40
170,90
212,80
268,70
155,90
177,30
268,70
339,30
218,70
155,60
182,80
250,00
226,00
173,50
318,80
354,10
230,50
140,60
397,20
329,30
224,50
218,70
125,60
192,30
158,30
179,00
187,80
243,50
183,30
152,10
180,30
145,80
182,50
170,70

* wraz z kosztami wysyki zwykej (pln)

57

dla programistw

Pisanie bezpiecznych
programw
Marek Sawerwain

worzone obecnie programy to due i skomplikowane projekty. Bdy, ktre pojawiaj si w tak
zoonym kodzie, s niestety jego naturaln czci. Zazwyczaj mija sporo czasu, zanim zostan
wyeliminowane. Obecno czy nawet podejrzenie jakiegokolwiek bdu w programie jest niepokojce, jednak co
gorsza bdy w programach s czsto wykorzystywane do
przejcia kontroli nad systemem operacyjnym. Najczciej
stosuje si tzw. przepenienie bufora oraz bdy w obsudze pamici. Jednym ze sposobw eliminacji tego rodzaju
bdw jest zastosowanie odpowiedniego jzyka programowania, np. Javy. W wikszoci przypadkw programy
tworzone s jednak w jzykach C i C++, ktre co prawda
nie oferuj tak duego bezpieczestwa wykonania jak Java,
ale s wydajniejsze.
Powstao wiele dodatkowych rozwiza dla jzykw
C/C++, oferujcych lepsze zabezpieczenie przed bdami
zwizanymi z obsug pamici, jak rwnie z bezpiecznym
obsugiwaniem cigw znakw. Wikszo tych bibliotek
jest przeznaczona dla systemw uniksowych, w tym rwnie dla Linuksa. W tym artykule chciabym przedstawi
kilka bardzo cennych rozwiza, ktre pozwalaj tworzy
oprogramowanie wydajne oraz co wane znacznie bezpieczniejsze i odporne na wyjtkowe sytuacje.
Wszystkie omawiane w tym artykule biblioteki dziaaj
znakomicie pod Linuksem, ktry nadaje si znacznie lepiej
na platform do tworzenia bezpiecznych programw ni
choby Windows, bowiem liczne grono uytkownikw
konkretnych bibliotek powoduje, e znacznie szybciej
usuwane s bdy i poszerzane ich moliwoci. Co wicej,
niektre biblioteki jak do szeroko znana Electric Fence
- s przeznaczone wycznie dla systemw uniksowych.

Czy nasze programy s bezpieczne?


Na to pytanie mona odpowiedzie bardzo szybko: niestety nie. Im bardziej zoone oprogramowanie, tym wiksze
prawdopodobiestwo, e znajduj si w nim bdy. Bdy
wynikajce z przepenienia bufora dotycz nawet tak znaO autorze:
Autor zajmuje si tworzeniem oprogramowania dla WIN32
i Linuksa. Zainteresowania: teoria jzykw programowania
oraz dobra literatura.
Kontakt z autorem: autorzy@linux.com.pl.

58

Rysunek 1. Zawarto stosu przed i po zmianie zawartoci


zmiennej b

nych oraz dopracowanych programw, jak Apache, Sendmail, Wu-ftpd czy nawet OpenSSH. Ten rodzaj bdu nie
dotyczy tylko i wycznie aplikacji zwizanych z obsug
sieci. Pierwszy z brzegu przykad programu, ktry mona
przytoczy, to standardowy program Man, w ktrym ju
do dawno, bo w 1999 roku, wykryto taki bd.
Oglny zarys techniki przepenia bufora jest wrcz trywialny. Spjrzmy na tak funkcj:
void funkcja(char *t) {
int i,j;
char b[32];
strcpy(&b, ciag znakw);
strcpy(&b, t);
// operacje na zmiennej b
}

Wewntrzny bufor b moe okaza si zbyt may, jeli


parametr t bdzie zawiera zbyt duo znakw. Zapisanie
wikszej iloci danych spowoduje zmodyfikowanie stosu
(umieszczane s na nim rwnie zmienne lokalne), na
ktrym znajduje si adres powrotu z funkcji. Odpowiednio
preparujc dane mona ten adres zmodyfikowa Rysunek 1.
Bd przepenienia bufora w powyszej postaci do
czsto pojawia si w programach. Przykadem moe by
wietny program do odtwarzania plikw multimedialnych

stycze 2004

bezpieczne programy

MPlayer. Cakiem niedawno odkryto w tym programie


moliwo przepenienia bufora poprzez funkcj sprintf.
Bd znajdowa si w funkcji asf_http_request, w pliku
asf_streaming.c jej najistotniejsze fragmenty prezentuje
Listing 1.
Odpowiednio preparujc plik w formacie asf mona
umieci kod w adresach URL, a funkcja sprintf moe
doprowadzi do nadpisania zmiennej str i w efekcie adresu
powrotnego funkcji, poniewa reaguje tylko na ograniczenie w postaci znaku zero. Jej stosowanie jest wic tak samo
niebezpieczne jak pozostae funkcje dziaajce na cigach
znakw.
Rozwizaniem tego rodzaju bdw jest odpowiednia
alokacja pamici. Innym rozwizaniem jest zastosowanie
bibliotek do zarzdzania cigami znakw, w ktrych dugoci cigw znakw s dynamiczne. Jest to do skuteczne
rozwizanie. Czasem, jak w przypadku sprintf, mona
ograniczy liczb znakw. Z tego powodu poprawka
MPlayera w niefortunnym kodzie z Listingu 1 jest bardzo
prosta: sprintf( str, "Host: %.220s:%d", url->hostname,
url->port );.
Istniej take mechanizmy, ktre mona wbudowa
w kompilator, np. do kompilatora GCC w wersji 2.96
doczano atk o nazwie StackGuard, ktra chronia stos.
Nie rozwizuje to jednak wszystkich problemw (gwnie

Instalacja pakietw
Instalacja poszczeglnych bibliotek nie jest kopotliwa, pomimo,
e wymaga kompilacji. Wikszo dystrybucji niestety nie oferuje tych bibliotek, ale dziki obecnoci skryptu ./configure ich
instalacja sprowadza si do typowych trzech komend.
Jako pierwsze podajemy polecenie: ./configure --prefix=
/usr, aby dokona konfiguracji. Takie pakiety, jak SCSL czy
Vstr, nie wymagaj dodatkowych opcji, natomiast dla Libcwd
warto doda opcj --enable-magic. Pozostae moliwoci
w zakresie zarzdzania pamici powinny by domylnie wczone, cho zawsze mona wyda seri nastpujcych opcji,
takich jak --enable-alloc, --enable-marker, --enable-location. Po
konfiguracji wystarczy wyda polecenie make, aby rozpocz
kompilacj, a po zakoczeniu tego procesu make install, aby
zainstalowa biblioteki. Warto wyda rwnie polecenie ldconfig, aby odwiey plik zawierajcy spis dostpnych bibliotek
dynamicznych.
Z tego schematu wyamuje si pakiet Memwatch, gdy
s to zaledwie dwa pliki: memwatch.c oraz memwatch.h,
ktre naley doczy do wasnego projektu w sposb, ktry
opisaem w artykule. W przypadku pozostaych bibliotek, ich
doczenie polega na dodaniu nazw bibliotek dynamicznych,
ewentualnie definicji odpowiednich flag, np. dla Libcwd polecenie kompilacji przedstawia si nastpujco:
g++ -o app app.cc -lcwd

pod warunkiem, e biblioteki dynamiczne oraz pliki nagwkowe


zostay zainstalowane w typowych katalogach: /usr/lib oraz
/usr/include, czyli dla prefiksu /usr.

www.linux.com.pl

Listing 1. Fragmenty funkcji asf_http_request


HTTP_header_t * asf_http_request(streaming_ctrl_t
*streaming_ctrl) {
char str[250];
sprintf( str, "Host: %s:%d", server_url->hostname,
server_url->port );
sprintf( str, "Host: %s:%d", url->hostname, url->port );
}

zwizanych z alokacj pamici), a atka ta nie jest jeszcze


dostpna dla nowych wersji kompilatora GCC 3.x. Ponadto
StackGuard obnia wydajno wywoanie funkcji i powrt
z nich pociga za sob testy spjnoci stosu.

SCSL bezpieczna obsuga cigw


znakw
Interesujc bibliotek do obsugi cigw znakw jest Safe
C String Library (SCSL). Oferuje ona ponad dwadziecia
funkcji zwizanych z obsug cigw znakw ze szczeglnym uwzgldnieniem ochrony przed przepenieniem
bufora. Wprowadzono take pojcie zaufanego cigu
znakw, czyli techniki podobnej do trybu taint w Perlu.
Podczas operacji na cigach znakw, samoczynnie zmieniaj one swoj wielko. Z tego powodu nie trzeba obawia
si, i przekroczymy jaki zaoony wczeniej limit.
Biblioteka oferuje nam nowy typ danych o nazwie
safestr_t. Jej autorzy umoliwili konwersj do typu char *,
dziki czemu moliwa jest bezproblemowa wsppraca ze
standardowymi funkcjami. Autorzy zalecaj rozwane stosowanie tego mechanizmu.
Jeli tworzymy nowy cig znakw, to z poziomu SCSL
wykonujemy to nastpujco:
safestr_t str;
str = safestr_create("jaki cig znakw", 0);

Dziki konwersji do
konstrukcja:

char *

dopuszczalna jest nastpujca

safestr_t str;
str = safestr_alloc(10, 0);
strcpy((char *)str, "cig znakw duszy niz 10 znakw");

W takim przypadku jest to jawne proszenie si o kopoty,


poniewa nad przypisaniem nowej wartoci biblioteka SCSL
nie ma ju kontroli. Z tego powodu powinnimy unika
mieszania ze sob standardowych funkcji oraz pochodzcych z SCSL.
Wrd typowych funkcji, takich jak przydzielanie
pamici i wyznaczanie dugoci cigw znakw, do
naszej dyspozycji oddano take odpowiedniki printf
w typowych odmianach: fprintf, sprintf oraz vsprintf.
Niestety, brakuje odpowiednika scanf istnieje tylko

59

dla programistw

if (safestr_istrusted(cel)){

Listing 2. Wywietlenie komunikatu na ekranie

// cig posiada flag zaufania


}

#define VSTR_COMPILE_INCLUDE 1

else {

#include <vstr.h>

// cig nie posiada flagi zaufania

#include <unistd.h>

int main(int argc, char **argv)


{

Vstr_base *s=NULL;
if(!vstr_init())
return -1;

s=vstr_dup_cstr_buf(NULL, "Hello World!!!\n");


while (s->len) vstr_sc_write_fd(s, 1, s->len,
STDOUT_FILENO, NULL);
vstr_free_base(s);
vstr_exit();
}

return 0;

funkcja safestr_read-line, po ktrej mona spodziewa


si, e potrafi wczyta lini tekstu zakoczon znakiem
nowej linii bd EOF.
Jedn z ciekawszych moliwo SCSL jest utworzenie
cigu znakw tylko do odczytu. Wykonuje to funkcja
safestr_makereadonly. Autorzy oddali do naszej dyspozycji
take funkcj, ktra sprawdza, czy dany cig istotnie jest
przeznaczony tylko do odczytu:
safestr_t str;
str = safestr_create("jaki cig znakw", 0);
safestr_makereadonly(str);
if(safestr_isreadonly(str)) {
// cig znakw jest przeznaczony wycznie do odczytu }

Funkcj odwrotn jest safestr_makewritable. Powoduje


ona, e dany cig mona modyfikowa. Jeli bdziemy
stosowa tylko i wycznie funkcje SCSL, moemy mie
pewno, e dany cig znakw nie bdzie zmodyfikowany bez naszej wiedzy.
Drug przydatn technik s wspomniane wczeniej
zaufane cigi. Mona nada flag zaufania (ang. trusted )
na okrelony cig. Na zaufanym cigu mona oczywicie
wykonywa wszystkie operacje, jednak wasno zaufania bdzie aktywna, gdy pozostae cigi znakw take
bd miay t wasno. Wykonajmy operacj wstawiania
do cigu zaufanego jakiego innego cigu:

Interesujc funkcj jest safestr_memzero. Jej zadanie


jest identyczne z biblioteczn funkcj memset, przy czym
wypenia ona obszar pamici zerami. Wprowadzenie takiej
funkcji autorzy umotywowali nastpujco: stosujc siln
optymalizacj, kompilator moe usun wywoanie memset
czyszczce pami. Funkcja ta zostaa tak skonstruowana,
aby kompilator nie przeprowadzi na niej tego rodzaju optymalizacji.

Vstr inne spojrzenie na cigi znakw


O ile poprzednia biblioteka bya przeznaczona dla kadego,
kto chce poprawi bezpieczestwo obsugi cigw znakw,
to biblioteka Vstr jest przeznaczona do obsugi cigw
znakw w aplikacjach o charakterze sieciowym, gdzie istotnym aspektem jest odbir danych. Nie ma oczywicie przeciwwskaza, aby stosowa Vstr w programach oglnego
przeznaczenia. Wszystkie funkcje API zostay napisane tak,
aby moliwa bya praca w trybie nieblokujcym. Oznacza
to, e podczas wysyania cigu znakw choby na ekran
moe odbywa si to fragmentami. Co waniejsze, funkcje odczytujce cig znakw z dowolnego urzdzenia take
posiadaj tak wasno. Takich moliwoci nie oferowaa
poprzednia biblioteka SCSL jest ukierunkowana na zwikszenie bezpieczestwa typowych operacji.
Vstr oferuje rwnie ciekawe rozwizania w zarzdzaniu pamici przechowujc poszczeglne cigi znakw.
Co wicej, Vstr nie posiada wyrnionej reprezentacji
acucha znakw nie s one reprezentowane jako typ
Listing 3. Fragment kodu biblioteki Libmcrypt, zawierajcy
bd
static int internal_init_mcrypt(MCRYPT td, void *key,
int lenofkey, void *IV) {

const int *sizes = NULL;

sizes = mcrypt_enc_get_supported_key_sizes(td,
&num_of_sizes);
}
if (sizes != NULL){
// free(sizes); !!! le

safestr_t cel, tmp_str;


safestr_insert(cel, 10, tmp_str);

Jeli cig tmp_str nie posiada flagi zaufania, SCSL samoczynnie zdejmie flag zaufania z cigu cel. Wykonujc
wane operacje moemy sprawdza, czy nie doszo do
operacji na cigach znakw pozbawionych flagi zaufania:

60

} else {
}

if (ok == 0){
}

else {
}

free(sizes); // OK

stycze 2004

bezpieczne programy

Listing 4. Przykadowy kod poddany analizie przez


Memwatch
#include <stdio.h>
#include <signal.h>
#include "memwatch.h"
int main(int argc, char **argv)
{

mwStatistics(2);
char *p, *unalloc;

p=(char *) malloc(5);
unalloc=(char *) malloc(500);
strcpy(p, "12345");
printf("%s\n", p);
strcpy(p, "1234567");
printf("%s\n", p);
p=(char*)malloc(50);
free(p);
}

return 0;

char *,

ale raczej jako pojedyncze bloki bd wzy. Idea


jest bardzo podobna do dynamicznej listy. Cig znakw
jest przechowywany we fragmentach, ktre oczywicie
nie stanowi cigego obszaru, tak jak w typowej organizacji cigu dla jzyka C. W wikszoci atakw wykorzystuje si oglnie uznan organizacj acucha znakw.
Zmiana organizacji powoduje, e trudniej bdzie wykorzysta sposb dziaania funkcji dziaajcych na cigach
znakw. Dodatkowym walorem innej organizacji jest fakt,
e dziki temu autorzy biblioteki Vstr mogli do mocno
zoptymalizowa obsug cigw znakw. Biblioteka oferuje take typowe API, jak choby odpowiedniki funkcji
printf, zgodne z nowym standardem jzyka C, czyli C99.
Co wicej, mona wprowadzi take wasne symbole
formatujce.

Hello World po raz wtry


Cho wywietlenie komunikatu na ekranie mona zrealizowa za pomoc Vstr w bardziej cywilizowany
sposb, to kod z Listingu 2 oddaje bardzo dobrze sens tej
biblioteki. Wywietlamy komunikat za pomoc ptli typu
while maymi fragmentami. Przygotowaniem komunikatu
zajmuje si funkcja vstr_dup_cstr_buf, ktra w jednym
z argumentw przyjmuje typowy cig dla jzyka C, czyli
char *. Wysyanie zawartoci zmiennej s to zadanie funkcji
vstr_sc_write_fd. Jej zalet jest oczywicie tryb pracy. Pojedynczym wywoaniem wysyamy do urzdzenia (w tym
przypadku do strumienia stdout) fragment cigu znakw,
po czym aplikacja moe wykonywa inne czynnoci. O ile
wysyanie pojedynczego cigu znakw nie stanowi duego
obcienia, to wysyanie do kilku rnych rde ju moe.
Wykonywanie tej czynnoci maymi fragmentami oznacza
mniejsze obcienie procesora. Wbrew pozorom ma to
due znaczenie dla bezpieczestwa, gdy w jednym miejscu

www.linux.com.pl

odbieramy dane, a w innym musimy je przesa do wielu


odbiorcw. Niemoliwe staje si w takim przypadku przecienie programu operacjami wejcia/wyjcia.

Vstr i odbieranie danych


Gdy odczytujemy dowolny cig znakw, zazwyczaj posugujemy si funkcj scanf. Wad tej funkcji jest oczywicie
zupeny brak kontroli, ile danych zostanie odczytanych.
Rozwizaniem jest czytanie bezporednio funkcj read,
przy czym i tak samodzielnie trzeba napisa kod sprawdzajcy, ile znakw zostao odczytanych. Biblioteka Vstr
oferuje funkcj, ktra odczytuje dokadnie tyle bajtw
ile trzeba i podobnie jak w przykadzie z poprzedniego
akapitu, moe odczytywa dane fragmentami. Jest to
funkcja vstr_sc_read_iov_fd. Posiada ona a sze argumentw. Pierwszy to typ Vstr_base *, reprezentujcy cig
znakw. Drugi argument to miejsce, w ktrym ma zosta
doczony nowy fragment cigu znakw. Trzeci parametr
do deskryptor plikw. Nastpne dwa argumenty to minimalna i maksymalna ilo wzw, ktre przeznaczamy
na odczytywany cig znakw. W ostatnim parametrze
moemy poda adres bd wskazanie na zmienn,
w ktrej zostanie umieszczony ewentualny dodatkowy
kod bdu. Poniszy kod pozwala utworzy cig znakw
ze standardowego wejcia:
Vstr_base *read_str;
read_str=vstr_make_base (NULL);
while(vstr_sc_read_iov_fd(read_str, read_str->len,
STDIN_FILENO, 1, 16, NULL));

Listing 5. Wyniki ledzenia programu z Listingu 4


= MEMWATCH 2.71 Copyright (C) 1992-1999 Johan Lindh =
Started at Sun Nov 23 22:03:03 2003
Modes: __STDC__ 64-bit mwDWORD==(unsigned long)
mwROUNDALLOC==8 sizeof(mwData)==32 mwDataSize==32
statistics: now collecting on a line basis
Stopped at Sun Nov 23 22:03:03 2003
unfreed: <2> t1.c(14), 500 bytes at 003D25D0
{FE FE FE FE FE FE FE FE FE FE .......}
unfreed: <1> t1.c(13), 5 bytes at 003D2540
[overflowed]

{31 32 33 34 35 .. .. .. 12345}

Memory usage statistics (global):


N)umber of allocations made: 3
L)argest memory usage

: 555

T)otal of all alloc() calls: 555


U)nfreed bytes totals

: 505

Memory usage statistics (detailed):


Module/Line

Number

Largest

Total

Unfreed

t1.c

555

555

505

22

50

50

14

500

500

500

13

61

dla programistw

Listing 6. Przykadowe komunikaty wygenerowane przez


bibliotek Libcwd
MALLOC

: operator new[]

0x81a123a int [20], (size = 80);


zmienna p to tablica o 20 elementach
MALLOC

: delete[] 0x81a123a

t1.cc:24

int [20];

(sz = 80)

zmienna p to tablica o 20

elementach <unfinished>
COREDUMP:

delete[]: magic number corrupt!

Quit (core dumped)

Nie ma tu ograniczenia, ilu danych si spodziewamy, wic


ptla bdzie dziaa tak dugo, jak bd jakie dane do
odczytu. Okrelimy tylko ilo wzw, z ktrych skada
si cig, przy czym wzy mog mie dowoln dugo.
Zalet Vstr jest fakt, e wczytanie nowych fragmentw
nie bdzie wymaga czasochonnej alokacji czy realokacji
pamici.

Obsuga pamici
Drugim istotnym aspektem na drodze uzyskania bezpiecznej aplikacji jest poprawne zarzdzanie pamici. Aby
uczyni nasz program lepszym w tym wzgldzie, najlepiej
wprowadzi automatyczne zarzdzanie pamici wzorem
jzyka Java. Niestety, powoduje to obnienie wydajnoci.
Wizaoby to si take z koniecznoci modyfikacji samego
jzyka (czytelnikowi zainteresowanemu tak tematyk
polecam odwiedzi strony o jzykach D oraz Cyclone).
Do problemu mona podej inaczej. Program mona
wyposay w dodatkow bibliotek, ktra bdzie zajmowa si monitorowaniem operacji na pamici. Tego rodzaju
biblioteki s nazywane debugerami pamici (ang. memory
debuggers). ledz one wywoania standardowych funkcji,
takich jak malloc oraz free, bd operatorw new i delete
dla jzyka C++. Tego rodzaju bibliotek powstao bardzo
wiele i mona dosownie przebiera wrd dostpnych rozwiza. Wspln cech wielu z nich jest to, e mona pisa
program przy pomocy standardowych polece, takich jak
malloc i free. Podczas kompilacji odpowiedni flag nakazujemy podmian oryginalnych polece na pochodzce
z okrelonej biblioteki, uzyskujc w ten sposb ledzenie
obsugi pamici. Usuwajc definicj flagi podczas ponownej kompilacji przywracane s standardowe funkcje.
Wykrycie bdu w obsudze pamici jest znacznie trudniejsze ni w przypadku bufora, nawet jeli kod jest do
oczywisty, czego przykadem moe by bd w bibliotece
Libmcrypt, ktra (uwaga!) suy do obsugi szyfrw symetrycznych.
Bd, ktry popeniono w tej bibliotece, wiza si
z przydzieleniem pamici zmiennej sizes przez funkcj
mcrypt_enc_get_supported_key_sizes nigdzie nie bya
ona potem zwalniana. Co gorsza, jednym z pierwszych roz-

62

wiza tego bdu byo wstawienie funkcji free wewntrz


instrukcji if (sizes != NULL), co wydaje si logiczne
(oznaczone na Listingu 3 przez "!!!"). Tymczasem wewntrz
drugiej instrukcji warunkowej if (ok = = 0) zmienna sizes
nadal bya wykorzystywana (pod warunkiem, e nie przyjmuje wartoci NULL). Oczywicie prawidowym rozwizaniem jake oczywistym jest umieszczenie wywoania free
poza pierwsz i drug instrukcja warunkow.
Ten bd prowadzi ostatecznie do strat pamici, ale
wyobramy sobie, e gdzie indziej poprzez podobne niedopatrzenie nie byyby usuwane wskaniki na klucz. Taki
bd znaczco obniaby jako biblioteki, a bezpieczestwo szyfrowanych danych byoby bardzo niskie.
Zastosowanie odpowiednich monitorw pamici,
choby takich jak opisane poniej Memwatch dla jzyka
C i Libcwd dla C++, uatwioby odszukanie takiego bdu
kade wywoanie malloc czy free jest zliczane i ledzone.

Pakiet Memwatch
Memwatch to may pakiet skadajcy si z dwch plikw
rdowych: memwatch.c i memwatch.h, ktre mona doczy do naszej aplikacji, aby uzyska ledzenie wywoa
funkcji malloc i free.
Listing 4 zawiera przykad kodu, w ktrym zostay
popenione bdy w zarzdzaniu pamici. Dokadnie
cztery bdy, bowiem dwa razy kopiujemy duszy cig
znakw do zmiennej p, pami przydzielona zmiennej
unalloc nie zostaa zwolniona, natomiast zmienna p ma
dwukrotnie przydzielan pami.
API pakietu Memwatch zawiera wiele funkcji przydatnych przy bardziej zaawansowanej obsudze, ale
w naszym programie wystarczy doczy plik nagwkowy. Aby uzyska wicej informacji, wywoujemy funkcj
mwStatistics z parametrem 2. Jak wida, w pozostaej
czci kodu operacje na pamici s przeprowadzane
w standardowy sposb. Doczenie pakietu Memwatch
powinno wychwyci popenione przez nas bdy i tak
jest w istocie podczas kompilacji wystarczy zdefiniowa
dwie flagi: MEMWATCH oraz MEMWATCHSTDIO. Pierw-

Rysunek 2. Strona domowa biblioteki Vstr, ktra zawiera wiele


informacji zwizanych z bezpieczn obsug cigw znakw

stycze 2004

bezpieczne programy

sza definicja naturalnie uruchamia cay system ledzenia,


natomiast druga wprowadza moliwo odpowiedzi na
niespenione asercje. Wobec tego, kompilacja przedstawia
si nastpujco:

Listing 7. Badanie strat w pamici


libcw::debug::marker_ct *mkr =
new libcw::debug::marker_ct(znacznik 1);

gcc -DMEMWATCH -DMEMWATCH_STDIO t1.c memwatch.c -o t1 I.

// operacje na pamici
Debug(move_outside(mkr, p));

Gdy skompilujemy i uruchomimy program, pojawi si


plik z logiem, w ktrym znajd si informacje, jakie bdy
zostay wychwycone oraz opis zuycia pamici przez nasz
program. Dla kodu z Listingu 4 plik z logiem wyglda tak
jak na Listingu 5. Po sowie overflow zostay wymienione
linie, w ktrych nastpio przekroczenie wielkoci bufora.
Zostaa tam take umieszczona informacja, o ile bajtw
przekroczony zosta bufor. Dodatkowo, po sowie unfreed zostay wyszczeglnione zmienne, dla ktrych pami
nie zostaa zwolniona. Pakiet Memwatch wskazuje take
numery linii w kodzie rdowym, w ktrych nastpuje
przydzielenie pamici.
Zachcam, aby do jednego ze swoich wasnych programw pisanych w C podczy ten pakiet i przeledzi
zarzdzanie pamici. Moe si okaza, e gdzie pogubiy
si cenne bajty.
Oczywicie, moliwo uzyskania logu nie jest kocem
moliwoci Memwatch. Pakiet oddaje nam do dyspozycji
funkcj mwIsSafeAddr, ktr sprawdzimy, czy dany adres
jest bezpieczny. Poniszym kodem badamy, czy istnieje
moliwo zapisu danych pod zmienn wskanikow p,
lecz 100kB dalej wzgldem jej pocztku:
if( mwIsSafeAddr(p+(1024*100),1) ) {
*(p+(1024*100)) = 0;
}

W logu moemy take wprowadza wasne komentarze


makrem TRACE.
Pakiet Memwatch pomimo niewielkich rozmiarw
posiada wiele cennych moliwoci w zakresie ochrony
pamici. Bardzo cennym rozszerzeniem s asercje, ktre

if (libcw::debug::mem_blocks() > 0)
Dout(dc::warning, "Nie zwolniono pamici "
else
Dout(dc::malloc, "Brak strat w pamieci\n");
delete mkr;

mog funkcjonowa tak jak oryginalne asercje, czyli zatrzymywa natychmiast dziaanie programu. Wersja asercji
z pakietu Memwatch umoliwia jednak zadanie pytania,
czy wykonanie danej asercji ma by powtrzone bd
zignorowane, czy te ostatecznie przerwa wykonanie
programu.

Libcwd co dla mionikw C++


Rozwizania podobne do Memwatch istniej take dla
jzyka C++. Jednym z bardziej rozbudowanych jest biblioteka Libcwd. Nie jest to tylko i wycznie pakiet do monitorowania operacji na pamici, ale rwnie cay system
przeznaczony do ledzenia pracy aplikacji.
ledzenie operacji zawizanych z dynamicznym przydzielaniem pamici w przypadku C++ jest uatwione dziki
wasnociom samego jzyka. Przecienie operatorw
new oraz delete (oraz ich odmian nazywanych operatorami umieszczajcymi) powoduje, e wszelkie operacje
na pamici mona atwo monitorowa. Libcwd oferuje
ledzenie dosownie wszystkich operacji na pamici, dokonywanych przez nasz aplikacj nawet na poziome funkcji
bibliotecznych C++. Takich moliwoci nie dawa nam
pakiet Memwatch wiadczy to dobrze o jakoci biblioteki
Libcwd.
Libcwd oferuje take wykrywanie bdw charakterystycznych dla C++ , np. pomyki w uywaniu operatorw
do alokacji pamici zostanie zastosowany operator new,
a do usunicia delete [].
O ile stosowanie Memwatch ograniczao si do uywania malloc i free, to libcwd pozwala na wprowadzania dodatkowych komentarzy poprzez funkcje AllocTag.
Informacje te s uywane przez bibliotek w momencie
wykrycia nieprawidowoci, wic oprcz informacji,
w ktrej linii nastpi bd, moemy take poda komentarz, np.:
int N=20;
int* p = new int[N];
AllocTag(p, "zmienna p to tablica o << n

Rysunek 3. Strona domowa biblioteki Libcwd

www.linux.com.pl

Fakt, e zostaa zadeklarowana zmienna zostanie odnotowany w logu oraz umieszczony w komentarzu. Wykry-

63

dla programistw

Tabela 1. Spis funkcji operujcych na cigach znakw


Funkcja

Przeznaczenie
Safe C String Library

safestr_create

utworzenie cigu znakw

safestr_alloc

alokacja pamici dla cigu znakw

safestr_makereadonly

cig tylko do odczytu

safestr_isreadonly

test, czy cig jest przeznaczony tylko


dla odczytu

safestr_makewritable

ustala, e cig moe by modyfikowany

safestr_memzero

czyci pami

safestr_trust

ustala flag zaufania

safestr_istrusted

sprawdza, czy cig posiada flag


zaufania

safestr_insert

wstawia cig znakw


VStr

vstr_init

inicjalizacja biblioteki

vstr_exit

zakoczenie pracy biblioteki

vstr_sc_write_fd

zapis do pliku/gniazdka o podanym


uchwycie

vstr_sc_read_iov_fd

odczyt z pliku/gniazdka o podanym


uchwycie

vstr_dup_cstr_buf

kopia cigu znakw

vstr_make_base

utworzenie typu reprezentujcego


cig znakw

vstr_free_base

usunicie z pamici cigu znakw

wanie przez Libcwd przepenienia bufora rwnie jest


moliwe. Jak podaje autor, naley podczas konfiguracji
pamita o opcji --enable-magic, ktra powoduje, e
kady przydzielony blok jest wyposaany w specjalne
dodatkowe wartoci, tzw. magiczne liczby (ang. magic
number) na jego pocztku i kocu. Jeli zostan one
zamazane, to oczywicie oznacza to, e nastpia prba
przepenieniu bufora. Uzupenijmy kod o nastpujce
linie:
p[20]=0;

rzysta do sprawdzenia, czy nastpia utrata pamici. Po


utworzeniu znacznika mona wykonywa operacje przydzielenia i zwalniania pamici, ale gdy chcemy sprawdzi, czy mamy jakie straty, naley wywoa funkcj
move_outside i wskaza zmienn, od ktrej rozpoczto
operacje z pamici. Umoliwia to sprawdzenie za
pomoc mem_blocks (Listing 7), czy istniej jakie niezwolnione bloki. Trzeba pamita, e funkcje mem_blocks
oraz mem_size nie tylko bior pod uwag zmienne alokowane przez bibliotek standardow, a take cigi znakw
podawane w cudzysowach.
Biblioteka Libcwd oferuje jeszcze wicej moliwoci
zwizanych z samym procesem ledzenia, np. mona ledzi proces adowania bibliotek dynamicznych, odczytywa
zdefiniowane symbole oraz na podstawie adresu biblioteki
sprawdzi, ile pamici pod ten adres zostao przydzielonych. Zachcam do dalszej analizy Libcwd osobom tworzcym w C++, a take pocztkujcym, ktrym z pewnoci
pomoe tworzy lepsze oprogramowanie.

Podsumowanie
Temat tworzenia bezpiecznego oprogramowania jest
bardzo obszerny i mam nadziej, e udao mi si pokaza,
i dotyczy wielu aspektw zwizanych z obsug pamici
czy cigw znakw, a take przesyaniem danych.
Wystarczy uwiadomi sobie, e zwyka operacja
odczytywania znakw z wejcia jak krtko to pokazaem przy okazji biblioteki Vstr powinna by odpowiednio zaimplementowana. Istnieje jeszcze wiele bibliotek,
np. Electric Fence, gdzie test, czy nie przekroczono zakresu przydzielonej pamici jest wykonywany z uyciem
fizycznych moliwoci procesora do chronienia pamici
powoduje to, e ta biblioteka staje si bardzo skuteczna,
cho nie oferuje tak szerokich statystyk jak Memwatch
czy Libcwd.

W Sieci:

p[21]=0;
p[22]=0;
delete [] p;

W logu powinny znale si informacje podobne do


tych z Listingu 6. W pierwszej linii zostalimy poinformowani o przydzieleniu pamici. Druga linia dotyczy
wywoania operatora delete. Proces ten jednak nie
zosta zakoczony z powodu zmodyfikowania dodatkowych wartoci.
Do innych moliwoci Libcwd naley np. sprawdzanie, czy zmienna moe zosta pomylne usunita. Taki
test przeprowadza si funkcj test_delete. Biblioteka
oferuje rwnie znaczniki pamici, ktre mona wyko-

64

Biblioteka Safe C String Library:


http://www.zork.org/safestr/
Biblioteka Vstr:
http://www.and.org/vstr/
Strona autora pakietu Memwatch:
http://www.linkdata.se/
Biblioteka Libcwd:
http://libcwd.sourceforge.net/
Jzyk D rozwijany przez firm Digital Mars:
http://www.digitalmars.com/d/
Bezpieczny dialekt jzyka C Cyclone:
http://www.cs.cornell.edu/projects/cyclone/
Serwis zajmujcy si aspektami bezpieczestwa (zawiera
archiwa listy dyskusyjnej Bugtraq):
http://www.securityfocus.com/
Opis bdu w programie MPlayer:
http://www.securityfocus.com/archive/1/339330

stycze 2004

Praca dla Informatyka


Kategoria i opis

Ogoszenia
Poszukuj pracy w okolicach Oawy bd Wrocawia. Posiadam znajomo: Novell
NetWare6.0, MS Windows2000 Server, Citrix Metaframe, Linux, SQL Windows,
SQL Sys, SQL BaseExchange, CENTURA, dBase. Jestem zainteresowany
stanowiskiem administratora sieci, zabezpieczeniami, instalacj okablowa oraz
konfiguracj struktur sieciowych. Mj sta to 3,5 roku.
Kod 1073 A
H OBD PT
SS

administrator systemu

OBD

operator baz danych

analityk

programista

grafik komputerowy

PT

pomoc techniczna

handlowiec

PR

projektant

IS

inynier systemowy

SS

serwisant sprztu

kierownik projektu

TSI

meneder

twrca serwisw
internetowych

AN

Java Certified Programmer i Web Component Developer wemie udzia w projekcie


na terenie kraju.
Kod 1074 P PR TSI

Jestem dowiadczonym grafikiem i chtnie podejm si ciekawych zlece.


Kod 1083 G
K OBD P
PT
PR SS TSI

Mgr in. informatyki z 5-letnim dowiadczeniem podejmie prac.


Kod 1075 A AN IS
K
M
P
PT
PR SS TSI

Ambitny i szybko uczcy si mody administrator szuka pracy na Dolnym lsku.


Kod 1084 A SS

Student trzeciego roku informatyki na Uniwersytecie Warszawskim poszukuje


pracy w Warszawie lub Lublinie. Moje zainteresowania to: programowanie C/C++
i inne, bazy danych, witryny internetowe itd.
Kod 1076 A OBD P PT SS TSI

Szukam pracy jako administrator lub serwisant.


Kod 1085 A PT SS

Szukam pracy, najlepiej w zakresie zastosowa systemw typu *nix w automatyce


przemysowej.
Kod 1077 A
IS
P

Administrator baz danych i programista C++, Pascal i SQL szuka pracy


w wojewdztwie maopolskim.
Kod 1086 OBD P PR SS

Poszukuje pracy. Posiadam wysokie dowiadczenie oraz kwalifikacje w zakresie IT.


Kod 1078 G
H
IS
PT
SS

Dowiadczony programista Delphi (aplikacje bazodanowe), PHP. Take HTML,


DHTML, JavaScript i inne. Administracja WinNT, OS/400 i kilkoma serwerami DB.
Najlepiej Biaystok lub Warszawa.
Kod 1087 A OBD P

Prowadz usugi informatyczne (dziaalno gospodarcza). Podejm si realizacji


projektu zwizanego z systemem obsugi baz danych przez Internet (e-sklep,
internetowe biuro obsugi klientw, internetowy system obiegu dokumentw itp.).
Kod 1079 AN K
P
PR TSI

Kilkuletnie dowiadczenie w zarzdzaniu projektami wdroeniowymi systemw


ERP w firmach o zoonych strukturach; dowiadczenie w integracji sieci LAN,
WAN; znajomo zagadnie biznesowych.
Kod 1088 AN K
M
P
PR

Ukoczyem Wydzia Informatyki Stosowanej, uzyskujc tytu inyniera Informatyki


Stosowanej o specjalnoci Telekomunikacja. Temat mojej pracy to Zapory
ogniowe na platformie Linux. Poszukuje pracy dodatkowej w Warszawie.
Kod 1080 A
G
IS
K OBD P
SS TSI

Dowiadczony projektant i programista Java (J2EE, aplikacje internetowe),


C++ (Visual Studio), RDBMS podejmie prac sta lub kontraktow (preferowana
forma to kontraktowa praca zdalna).
Kod 1089 P PR TSI

Poszukuj pracy w stabilnej firmie IT na terenie Poznania. Interesuje mnie


administracja systemami (Linux, WinNT, Novell), projektowanie stron WWW
(PHP+MySQL), helpdesk oraz serwis.
Kod 1081 A OBD PT PR SS TSI

Student IV roku PWr, znajomo systemw operacyjnych SCO Unix(certyfikat),


Linux, bardzo dobra znajomo C/C++, Java, PHP+MySQL. Wrocaw lub praca
zdalna.
Kod 1090 A
P
PT
SS TSI

Dziesicioletnie dowiadczenie, konsultant ds. systemw MRP/ERP i baz danych.


Administracja i budowa sieci LAN/WAN, protokow TCP/IP. Programowanie
w C/C++, VB, Pascal, Delphi. Poszukuj pracy staej lub na zasadach wsppracy
podmiotw gospodarczych.
Kod 1091 A
IS
K
M OBD PT
PR

Mam 30 lat i due dowiadczenie jako administrator (MS Windows, Novell,


Solaris, Linux, BSD, Oracle, PostgreSQL, MySQL, LAN-WAN (Cisco , 3com) i inne).
Poszukuj staej lub dodatkowej pracy na terenie Grnego lska.
Kod 1082 A
IS OBD

www.linux.com.pl

65

dla graczy

Vega Strike
Krzysztof Wolski

zy kiedy bdzie mona podrowa statkiem


kosmicznym, odwiedza inne planety i handlowa towarami? Pewnie kiedy tak, cho na
pewno nie szybko. Gdyby jednak chcia sprbowa tego teraz, to gra Vega Strike jest wanie dla Ciebie.
Vega Strike to symulator statku kosmicznego. W grze
wcielasz si w rol pilota i handlowca, ktry podruje pomidzy planetami, kupuje i sprzedaje towary oraz
w razie potrzeby walczy z przeciwnikami. Musi on take
zadba o swj statek, np. naprawia uszkodzenia czy tankowa paliwo.

Instalacja
Pliki instalacyjne gry mona pobra ze strony http://vegastrike.sourceforge.net/files/. Na tej stronie odnajdziemy
wersje zarwno dla Linuksa, jak rwnie dla systemw
Windows oraz MacOS X. W momencie pisania tego artykuu najnowsz dostpn wersj bya 0.4.1D (wersja stabilna).
Pobierajc plik naley uzbroi si w cierpliwo, poniewa
gra zajmuje a 167 MB, wic uytkownicy sabszych cz
bd musieli odczeka dusz chwil.
Plik rozpakowujemy do wybranego przez nas katalogu,
a nastpnie w terminalu wpisujemy polecenia:
cd /cieka_dostpu/vegastrike-0.4.1-installer
./setup.sh

Podstawowy proces kompilacji nie wymaga posiadania


praw uytkownika root, ale skrypt, ktry instaluje skadniki
gry (root-setup.sh zostanie on automatycznie uruchomiony po zakoczeniu dziaania skryptu setup.sh), wymaga
podania hasa uytkownika root.
Uruchomienie gry to wpisanie polece:
vsinstall
vslauncher

Autorzy przewidzieli moliwo zakupu pyty CD z gr


zamwienia mona skada na stronie producenta.

O autorze:
Autor jest studentem czwartego roku na Politechnice lskiej na Wydziale Organizacji i Zarzdzania, specjalno
Informatyka w Przedsibiorstwie. W codziennych zastosowaniach wykorzystuje przede wszystkim system Linux.
Kontakt z autorem: autorzy@linux.com.pl.

66

Rysunek 1. Strona domowa Vega Strike http://vegastrike.sf.net/

Plik instalacyjny gry dla Linuksa zosta take zamieszczony na pycie B poprzedniego numeru Linux+. Jak wyglda sama gra, mona zobaczy korzystajc z Auroksa Live,
zamieszczonego na pycie A biecego numeru.

Jak gra
Po uruchomieniu gry wybieramy misj przycisk Select
Mission. Razem z gr zostao dostarczonych kilka gotowych, m. in. te dla kilku graczy. Dla przykadu z otwartego
okienka wybieramy plik explore_universe.mission.
Now gr rozpoczynamy po klikniciu przycisku New
Game. Oprcz rozpoczcia nowej gry, mamy rwnie
moliwo wczytania gry zapisanej, wczytania stanu gry
z auto-zapisu, a take zmiany opcji, przeczytania pomocy
i zamknicia okna. Klikamy wic na New Game i po chwili
widzimy miejsce, w ktrym znajduje si nasz statek, cel
misji oraz zapisy z komputera pokadowego.
Na pocztku misji nasz statek znajduje si na ldowisku.
Na kadej planecie mamy moliwo sprawdzenia opcji
zwizanych z misj. Kliknicie tu po prawej stronie statku
spowoduje przejcie do komputera (Mission Computer),
w ktrym moemy dowiedzie si czego wicej o misji,
ktr wykonujemy, przejrze wiadomoci oraz dokona
operacji zapisu stanu gry, wczytania oraz opuszczenia gry.
Kliknicie po lewej stronie statku spowoduje przejcie do
opcji zwizanych ze sprzeda i zakupem towarw, surowcw czy materiaw (Cargo Computer). Przegldamy tam
stany naszych zapasw, decydujemy o tym, co chcemy
sprzeda (Sell ) lub co chcemy kupi (Buy, przy czym
moemy zakupi wiksz ilo jednostek danego towaru
klikajc na Buy 10).

stycze 2004

vega strike

Sterowanie

Rysunek 2. Statek na planecie

Oczywicie wszystkiego tego moemy dokona, gdy


posiadamy odpowiedni ilo gotwki. W jaki sposb
mona zarobi pienidze? Na przykad przez zakup, przewiezienie na inn planet, a nastpnie sprzeda towarw,
surowcw czy materiaw. Naley pamita, e aby przemieszcza si pomidzy planetami, naley posiada odpowiedni ilo paliwa, ktre mona zakupi na planecie.
Warto jeszcze wspomnie, e po wyldowaniu na planecie moemy odwiedzi pokj (Weapons Room), w ktrym
moemy zmienia wyposaenie naszego statku w zakresie
broni. Pokj ten znajduje si po lewej stronie ekranu z widokiem ldowiska. Po prawej stronie ldowiska znajduje si
pomieszczenie rozrywkowe, ale mogce przynie rwnie
nieco istotnych informacji jest to bar (Bar), w ktrym
mona porozmawia np. z sympatyczn barmank.
Jeli chcemy wystartowa, naciskamy myszk na statku
i po chwili nasz statek znajduje si w przestrzeni kosmicznej. Obserwujc otoczenie z wntrza statku, widzimy informacje z komputera, po prawej stronie cel misji, a po lewej
bro. U dou znajduje si radar oraz wybrany cel naszej
podry.
Podrujc pomidzy planetami mona natkn si na
wrogie statki, ktre oczywicie naley zniszczy.
Gra zapewnia take tryb dla wielu graczy. Cho taki z prawdziwego zdarzenie nie jest jeszcze dostpny, to mona
pogra w dwch graczy na jednym komputerze. W takim
przypadku ekran dzielony jest na dwie czci.

Sterowanie statkiem odbywa si przy pomocy klawiszy ze


strzakami (moemy rwnie sterowa statkiem za pomoc
myszki).
Klawisz [+] suy do przyspieszania, [-] do zwalniania, a [t]
do wyboru celu, do ktrego chcemy lecie.
Klawiszem [a] uruchamiamy autopilota, ktry pokieruje
nas do wybranego celu.
Do strzelania suy klawisze [Spacja], ktry odpala dziako,
oraz [Enter], odpalajcy rakiety.
Aby wyldowa na planecie, musisz j najpierw ustawi
jako swj cel (przy pomocy klawisza [t]). Nastpnie naley
nacisn klawisz [0], aby uzyska pozwolenie. Gdy statek
znajduje si ju odpowiednio blisko planety, naley nacisn
klawisz [d].
Caa obszerna lista znajduje si w dokumentacji. Moemy
rwnie nacisn kombinacj klawiszy [Shift]+[m], aby zobaczy t list w czasie gry.

Podsumowanie
Vega Strike wyrnia si bardzo adn i estetyczn grafik.
Gra dziaa pynnie w rozdzielczoci 1024x768 (testowaem
na sprzcie Athlon 1.4 GHz, 512 MB DDR, GeForce2 64
MB). Oczywicie gra jest rwnie udwikowiana, co
oznacza, e podczas zabawy syszymy efekty dwikowe
i muzyk.
Gra pozwala rwnie na tworzenie nowych misji, budowanie nowych statkw oraz projektowanie nowych broni.
Teoretycznie moe wic istnie nieskoczona ilo misji.
Wydaje mi si, e gra Vega Strike w znakomity sposb
wykorzystuje moliwoci, ktre posiadaj wspczesne komputery, a przede wszystkim pozwala na granie
pod kontrol ulubionego systemu, czyli Linuksa. Wicej
takich gier, jak VegaStrike, dopracowanych i dostpnych
za darmo, spowoduje, e Linux bdzie zdobywa coraz
wicej zwolennikw nie tylko wrd zaawansowanych
uytkownikw.

Minimalne wymagania sprztowe


Minimalne wymagania gry Vega Strike s nastpujce:

procesor Pentium 200 MHz;


karta graficzna z akceleracj 3D (na stronie domowej
projektu znajduje si lista kart, z ktrymi gra na pewno
bdzie wsppracowaa mona tam odnale m.in. kilka
rnych modeli kart ATI Radeon czy NVIDIA GeForce);
gbia kolorw ekranu 16-bitowa.

Gra zostaa opublikowana na licencji GNU GPL.


Rysunek 3. Podr w przestrzeni

www.linux.com.pl

67

warto przeczyta

dzia prowadzi: Piotr Truszkowski


piotrt@linux.com.pl

Perl
Autor: Reuven M. Lerner
Tumaczenie: M. Michalski, S. Dzieniszewski
ISBN: 83-7361-169-X
Tytu oryginau: Core Perl
Format: B5, stron: 456
Data wydania: 09/2003
<<AUTOR
|
Cena ksiki: 49.00 z

FIT=BOTTOM>>

Jzyk Perl sta si jednym z najpopularniejszych jzykw programowania na wiecie. Zawdzicza to


swojej prostej konstrukcji, szerokiej skali wykorzystania i niezej szybkoci dziaania. Ksika Reuvena
Lernera, zatytuowana po prostu Perl i pochodzca z serii Core, przedstawia czytelnikowi aspekty
zwizane z filozofi dziaania tego popularnego jzyka i pokazuje, jak stworzy za jego pomoc
gotowe rozwizania. Pomimo tego, e autor adresuje ksik do programistw, nie tylko oni znajd
tutaj wiele ciekawych i bardzo przydatnych informacji. Dziki przejrzystemu jzykowi autora i ciekawemu podejciu do tematu, Perl z pewnoci moe zainteresowa take osoby, ktre zastanawiaj
si nad wyborem odpowiedniego i przenonego jzyka programowania do stworzenia swoich wasnych projektw. Autor omawia Perla
zaczynajc od podstaw i z kadym kolejnym rozdziaem wprowadza czytelnika dalej. W dalszej kolejnoci przeczytamy m.in. o podstawowych funkcjach wejcia/wyjcia, pracy z plikami, klasach znakw, tworzeniu obiektw i pracy z nimi, wsppracy z protokoami
sieciowymi i o wielu innych aspektach pracy z Perlem. Ksik t z pewnoci mona poleci zarwno zaawansowanym programistom
Perla, jak i pocztkujcym, ktrzy chc szybko pozna ten jzyk, a nie maj czasu na czytanie nudnych podrcznikw, gdzie zamiast
praktyki otrzymaj czsto nudn teori. Polecam.

Hack I.T. Testy bezpieczestwa danych


Autorzy: T.J. Klevinsky, Scott Laliberte, Ajay Gupta
Tumaczenie: Witold Kurylak, Przemysaw Szeremiota
ISBN: 83-7361-232-7
Tytu oryginau: Hack I.T. - Security Through Penetration Testing
Format: B5, stron: 464
Data wydania: 10/2003
Cena ksiki: 55.00 z
Bezpieczny serwer internetowy to swoista wizytwka dobrego administratora sieci komputerowej.
Czsto jednak bywa tak, e pomimo duych umiejtnoci, zawsze znajdzie si jaki problem, ktry
przeoczymy. Na taki wanie moment czekaj hakerzy. Ksika T.J. Klevinskiego, Scotta Laliberta
i Ajaya Gupta Hack I.T - Testy bezpieczestwa danych przedstawia nam wiele aspektw tworzenia
bezpiecznego serwera i stojcej za nim sieci komputerowej. Dowiemy si z niej m.in o sabych punktach systemw operacyjnych, najczstszych bdach w popularnych serwerach (BIND, Sendmail),
zobaczymy, jak przeprowadzi testy penetracyjne sieci przez internet i poczenie telefoniczne oraz
poznamy aplikacje majce na celu uatwi prac kademu administratorowi sieci i ograniczy do minimum ewentualne prawdopodobiestwo wamania do systemu/sieci. Ksika skupia si na systemach Linux i Windows serii NT, wic moe by przydatn pozycj dla
osb, ktre korzystaj z tych dwch rozwiza. Do ksiki doczono pyt CD zawierajc omwione w tytule oprogramowanie.

Bestsellery Merlina
Lista najlepiej sprzedajcych si ksiek informatycznych
w sklepie internetowym www.merlin.pl, w miesicu listopadzie:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.

Wybierz czerwon piguk. Nauka, filozofia i religia w Matrix, Wyd. Helion, 2003
Nauka programowania dla pocztkujcych. Turbo Pascal K. Walczak, A. Stuziska-Walczak, Wyd. W&W, 2003
Google dla praktykw Andrzej Szewczyk, Wyd. Mikom, 2003
Delphi 5 Professional. Object Pascal Andrzej Marciniak, Wyd. Nakom, 2000
Fotografia cyfrowa. Edycja zdj Scott Kelby, Wyd. Helion, 2003
Zintegrowane systemy informatyczne w praktyce Piotr Adamczewski, Wyd. Mikom, 2003
Flash samouczek dla nieinformatykw Anna Owczarz, Wyd. Help, 2003
Microsoft Access 2002 Visual Basic dla aplikacji krok po kroku (+CD-ROM) Evan Callahan, Wyd. Read Me, 2002
Windows server 2003. Vadamecum administratora William R. Stanek, Wyd. Promise, 2003
Jzyk ANSI C Brian W. Kernighan, Dennis M. Ritchie, Wydawnictwa Naukowo-Techniczne, 2003

www.linux.com.pl

69

Zainwestuj w siebie, zainwestuj w swojego pracownika

PRENUMERATA TO NAJLEPSZY WYBR


ZAMWIENIE
Prosimy wypeni czytelnie i przesa faksem na numer: (22) 860 17 71 lub listownie na adres Software-Wydawnictwo Sp. z o.o.,
Lewartowskiego 6, 00-190 Warszawa, e-mail: pren@software.com.pl. Przyjmujemy te zamwienia telefoniczne: (22) 860 17 67

Imi i Nazwisko

Stanowisko
* jeeli jeste ju klientem firmy Software-Wydawnictwo Sp. z o.o. wystarczy, e podasz swj numer
ID kontrahenta; jeeli nie posiadasz takiego numeru, podaj swe dane w tabeli Dane teleadresowe

ID kontrahenta*

Upowaniam firm Software-Wydawnictwo Sp. z o.o. do wystawienia faktury VAT bez podpisu odbiorcy

Piecz firmy i podpis

Dane teleadresowe
Nazwa firmy

Dokadny adres
Telefon (wraz z numerem kierunkowym)

Faks (wraz z numerem kierunkowym)

Adres e-mail

Numer NIP firmy

Tytu pisma

Aurox
Numery specjalne Linux+ Extra! z dystrybucj Aurox Linux

Linux+
Miesicznik uytkownikw systemw linuksowych

Liczba
kolejnych
numerw

Liczba
zamawianych
prenumerat

Od numeru
pisma
lub miesica

Opata w z
Oferta dla szk: 99 z

Oferta standardowa: 119 z

12

*
Oferta dla prenumeratorw Linux+ lub Software 2.0: 198 z

Linux+ Extra!
Numery specjalne z dystrybucjami Linuksa

Linux w szkole
Kwartalnik o stosowaniu Linuksa w edukacji

8
Oferta standardowa: 232 z

99 z

W sumie
(liczba prenumerat * cena)

* 180 z prenumerata roczna (12 numerw) Linux+ dla studentw i osb prywatnych
* 250 z prenumerata roczna (12 numerw) Linux+ dla firm
UWAGA! Nadesanie zamwienia jest jednoczenie zobowizaniem do zapaty!

SOFTWARE-WYDAWNICTWO SP. Z O.O.


ul. Lewartowskiego 6, 00-190 Warszawa, e-mail: pren@software.com.pl

You might also like