background image
background image
background image
background image
background image
background image
background image
background image

4

styczeń 2005

Spis   

treści

5

www.lpmagazine.org

Spis  

treści

8

Miesięcznik Linux+ (12 numerów w roku) 

jest wydawany przez 

Software-Wydawnictwo Sp. z o. o. 

Redaktor naczelny: Krzysztof Krawczyk, 

krzysiek@lpmagazine.org

Redaktorzy: 

Piotr Truszkowski, Marek Bettman, Michał Niwicki

Kierownik produkcji: Marta Kurpiewska, 

marta@software.com.pl

Opracowanie CD/DVD: Krzysztof Krawczyk, 

Piotr Truszkowski

Dział reklamy: Łukasz Łukaszewicz, 

reklama@lpmagazine.org, 

tel.: (22) 860 18 18 

Prenumerata: Marzena Dmowska, 

pren@software.com.pl, 

tel.: (22) 860 17 67

Projekt graficzny okładki: 

Agnieszka Marchocka 

Projekt graficzny pisma: Marcin Ziółkowski, 

marcin@software.com.pl

Skład: Marcin Ziółkowski, 

marcin@software.com.pl

Adres korespondencyjny: 

Software-Wydawnictwo Sp. z o. o., 

00-190 Warszawa, 

ul. Lewartowskiego 6

e-mail: redakcja@lpmagazine.org, 

tel. (22) 860 18 18 

Redakcja dokłada wszelkich starań, aby publiko-

wane w piśmie i na towarzyszących mu nośnikach 

informacje i programy były poprawne, 

jednakże nie bierze odpowiedzialności za efekty 

ich wykorzystania. 

Redakcja nie udziela pomocy technicznej 

dotyczącej zamieszczanego oprogramowania. 

Płyty uszkodzone podczas wysyłki wymienia dział 

prenumeraty.

Wszystkie znaki firmowe zawarte w piśmie 

są własnością odpowiednich firm i zostały

użyte wyłącznie w celach informacyjnych.

Druk: Stella Maris

Redakcja używa systemu 

automatycznego składu
Płyty dołączone do magazynu przetestowano 

programem AntiVirenKit firmy G DATA Software 

Sp. z o.o.

Redakcja zabezpiecza swoje dane korzystając 

ze sprzętu firmy Tandberg Data udostępnionego 

przez Veracomp SA.

18

20

22

23

Mnie to nie dotyczy!?

Sprzedaż aktualnych lub archiwalnych numerów 

pisma po innej cenie niż wydrukowana na okład-

ce – bez zgody wydawcy – jest działaniem na jego 

szkodę i skutkuje odpowiedzialnością sądową.

Krzysztof Krawczyk

Redaktor Naczelny Linux+

T

ak mógłby stwier-
dzić  przypadko-

wy  internauta,  gdy-
bym  zapytał  go,  czy 
boi  się  włamania  do 
swojego  komputera. 
Zbyt  pewny  siebie? 
Zdecydowanie. Bardzo
prosto włamać się do 

kogoś,  kto  jest  na  stałe  podłączony  do 
Sieci i nie dba o bezpieczeństwo swojego 
systemu. To tak, jakby nie zamykał drzwi 
do własnego mieszkania czy samochodu.

Ilość  błędów  związanych  z  bezpie-

czeństwem,  które  są  wykrywane  każde-
go  miesiąca,  jest  zatrważająca.  Wystar-
czy  zapoznać  się  bliżej  z  jednym  z  nich, 
poszukać eksploita lub napisać go samo-
dzielnie,  a  następnie  znaleźć  potencjalną 
ofiarę. Zdziwilibyście się, jak bardzo admi-
nistratorzy serwerów internetowych zanie-
dbują  swoje  obowiązki  –  nie  uaktualnia-
ją oprogramowania, nie przeglądają logów 
systemowych i nie analizują własnych sys-
temów. Wiele z przestępstw internetowych 
nie  jest  upubliczniane  (czytaj:  zgłaszane 

Opis 

zawartości 

płyt CD/DVD

Piotr Truszkowski, Michał Niwicki

Jądro Linux

Tomasz Torcz

Debian

Bartosz Feński, Tomasz Napierała

Mandrakelinux

Daniel Koć

Aurox

Karol Kozimor

policji) ze względu na reputację poszkodo-
wanego. W takim świecie żyjemy.

Czy  możemy  coś  poradzić  na  to? 

Oczywiście, dlatego ten numer Linux+ jest 
skoncentrowany na zagadnieniach bezpie-
czeństwa.  Piotrek  Machej  w  swoich  arty-
kułach stara się udzielić kilku dobrych rad. 
Zachęcam  do  zastosowania  się  do  nich. 
Raz  wprowadzone  w  życie  mają  szansę 
stać się zwyczajem.

Na  płytach  DVD  zamieściliśmy  dwie 

najpopularniejsze  europejskie  dystrybucje 
Linuksa: Auroksa 10.1 (mocno poprawiony 
względem poprzedniego wydania: gorąco 
polecam, gdyż sam używam w pracy) oraz 
Mandrakelinuksa 10.1 (używam w domu).

Przy okazji pragnę zawiadomić, że po-

szukujemy autorów artykułów, więc zain-
teresowane osoby proszę o zgłoszenie się 
do  mnie  pod  adresem  krzysiek@lpmaga-
zine.org
.

Zachęcam do lektury tego numeru.

Aktualności:

W bieżącym numerze                           : 

m

an

dr

ak

eli

nu

x

ne

w

sy

16

Newsy

Witold Kieraś

24

Gentoo

Witold Kieraś

de

bi

an

background image

4

styczeń 2005

Spis   

treści

5

www.lpmagazine.org

Spis  

treści

  Oprogramowanie

Dvd::rip 

– ripper płyt DVD

Witold Kieraś

Często  potrzebujemy  przekonwertować 
filmy  z  płyt  DVD  do  formatów  dających 
się odtworzyć przez osoby nie posiadające 
odpowiedniego napędu. Pokażemy, jak tego 
dokonać przy użyciu programu Dvd::rip.

KGpg – menedżer 

kluczy szyfrujących

Witold Kieraś

Projekt Gnu Privacy Guard (GPG) powstał, 
aby udostępnić silną i nowoczesną krypto-
grafię  zwykłemu  użytkownikowi  kompu-
tera  domowego.  Prawdopodobnie  najlep-
szą nakładką graficzną na tę aplikację jest 
KGpg, który omówimy w artykule. 

Gubed – debugger 

skryptów w PHP

Piotr Machej

Pracując nad większymi projektami w PHP 
na pewno przyda się nam dobry debugger 
tego  języka.  Gubed  pozwala  prześledzić 
działanie  skryptu  linijka  po  linijce,  dzięki 
czemu łatwo znajdziemy błąd w kodzie.

Cssed – edytor arkuszy 

stylów CSS

Piotr Machej

CSS, czyli kaskadowe arkusze stylów, stały 
się już niemal standardem przy tworzeniu 
stron WWW. Cssed pomoże nam stworzyć 
odpowiednie  definicje  nawet  do  bardzo 
rozbudowanych projektów.

Vuurmuur – konfigurator 

zapór sieciowych

Piotr Machej

Konfiguracja  zapory  sieciowej  (firewall) 
może  nastręczyć  nie  lada  problemów. 
Dużym  ułatwieniem  w  takim  przypad-
ku może być Vuurmuur – program wspo-
magający  tworzenie  regułek  iptables  oraz 
ipchains.

Simutrans

– gra ekonomiczna

Marek Bettman

Jeśli  znudził  nas  już  Medal  of  Honor 
i  Quake,  to  może  spróbujmy  pokiero-
wać dużą firmą transportową. Simutrans 
to świetna gra ekonomiczna, wzorowa-
na na nieśmiertelnym Transport Tycoon 
Deluxe.

26

  Dla początkujących

Nessus 

– skaner bezpieczeństwa

Piotr Machej

Podłączając  nasz  komputer  do  Internetu
lub  sieci  lokalnej,  musimy  odpowiednio 
zadbać o zabezpieczenia na wypadek wła-
mania. Nessus jest skanerem, który pozwo-
li  wykryć  w  naszym  systemie  te  miejsca, 
które są podatne na atak z sieci.

Sztuczki i kruczki

Grzegorz Niewęgłowski

Podczas pracy z Linuksem mogą przydać się 
różnego rodzaju sztuczki i kruczki. Ich zna-
jomość również świadczy o tym, czy użytko-
wnik jest początkujący, czy zaawansowany.

  Sprzęt

Programowy RAID 

oraz LVM

Piotr Wolny

Linux wspiera dwa zaawansowane mecha-
nizmy gromadzenia danych: Software RAID
oraz  Logical  Volume  Manager.  Przy  ich 
pomocy  możemy  zwiększyć  wydajność 
pamięci masowej, a także poprawić bezpie-
czeństwo przechowywanych informacji.

  Dla programistów

Pyro i OpenSSL – bezpieczny 

komunikator internetowy

Marek Sawerwain

Gdy planujemy przesyłać istotne informacje
przez Internet, to wprowadzenie szyfrowa-
nia danych w naszych aplikacjach rozpro-
szonych jest bardzo ważnym zagadnieniem.
W artykule pokazujemy, jak w prosty spo-
sób stworzyć własny komunikator w stylu 
Gadu-Gadu, obsługujący szyfrowanie.

  Testy

YOPY YP3700

Michał Niwicki

Temat miesiąca: Bezpieczeństwo

  Bezpieczeństwo

Bezpieczne łączenie się 

z Internetem

Piotr Machej

Internet nie jest miejscem bezpiecznym. 
Aby móc spać spokojnie, należy zastoso-
wać się do kilku podstawowych zasad. 
W  artykule  przedstawiamy  najważniej-
sze zagadnienia, na które należy zwró-
cić uwagę przy podłączaniu komputera 
z Linuksem do Sieci.

Odzyskiwanie danych

– sposoby 

i przegląd narzędzi

Michał Niwicki

Na  pewno  każdy  z  nas  stanął  lub  stanie 
przed  problemem  odzyskiwania  utraco-
nych  danych  –  przez  nieuwagę,  awarię 
bądź  atak.  W  takiej  sytuacji  nieocenio-
ne  mogą  stać  się  takie  programy,  jak: 
dd_rescue, dd_rhelp, mondorescue, unrm
oraz gpart
.

  Wywiad

Wywiad 

z Przemysławem Tołpą,

Sales Managerem w firmie 

Adaptec

Krzysztof Krawczyk

Tym razem postanowiliśmy porozmawiać 
z przedstawicielem firmy Adaptec, dobrze
znanej  z  produkcji  kontrolerów  pamięci
masowych  (SCSI,  SATA,  RAID)  oraz  kart
sieciowych  (NAC).  W  naszej  rozmowie 
skupiliśmy się na wsparciu wymienionych 
produktów  w  systemach  linuksowych.

40

42

44

46

48

50

52

58

60

70

78

32

38

background image
background image
background image

CD A / DVD B 

aktualności

opis CD/DVD

8

styczeń 2005

Mozilla Firefox 1.0

Najnowsza wersja popularnej 
przeglądarki internetowej. Umożliwia 
blokadę wyskakujących okienek 
(ang. popups), panelowe przeglądanie 
stron oraz automatyczną instalację 
niezbędnych wtyczek (ang. plugins). 
Posiada interfejs w języku polskim.
http://www.firefox.pl/

Simutrans

Gra strategiczno-ekonomiczna 
polegająca na rozbudowie 
infrastruktury drogowej, kolejowej 
i morskiej. Zadaniem gracza jest 
budowanie połączeń między 
fabrykami i miastami w celu 
zapewnienia jak najlepszego 
transportu towarów i ludzi.
http://www.simutrans.de/

Nessus 2.2.0

Program jest zaawansowanym 
skanerem bezpieczeństwa. To 
kompleksowe narzędzie służy do 
wykrywania ewentualnych luki 
w systemie bezpieczeństwa sieci 
komputerowych. Wykorzystuje 
kilka tysięcy znanych reguł ataków 
najczęściej wykorzystywanych 
do przejęcia kontroli nad obcym 
systemem.
http://www.nessus.org/

Nmap 3.75

Profesjonalny skaner sieciowy. 
Umożliwia kontrolowanie i badanie 
wybranych urządzeń sieciowych 
poprzez protokół IP. Potrafi rozpoznać 
prawie 1500 systemów operacyjnych 
i ponad 2000 tysiące portów.
http://www.nmap.org/

OpenSSH 3.9

Darmowy program realizujący 
szyfrowane połączenia między 
dwoma komputerami. Zapewnia 
bezpieczeństwo przesyłania 
danych, autoryzację połączeń oraz 
autentykację.
http://www.openssh.org/

John the Ripper 1.6

Narzędzie służące do wykrywania 
słabych haseł. Potrafi łamać hasła 
dostarczone w wielu formatach (DES, 
MD5, Blowfish, NT LM).

Snort 2.2.0

Jest to sieciowy system wykrywania 
włamań. Dostarcza wszelkich 
niezbędnych informacji 
o podejrzanych działaniach w sieci. 
Umożliwia łatwiejszą analizę danych 
niż w przypadku programu Tcpdump.
http://www.snort.org/

TuxSaver 1.0

Atrakcyjny wygaszacz ekranu 3D. 
Przedstawia sceny z życia pingwina na 
bezludnej wyspie. Umożliwia również 
tworzenie własnych scenariuszy.

Recovery Is Possible (RIP)

T

radycyjne  dystrybucje  Linuksa  koja-
rzą  się  nam  z  przyjaznym  środowi-

skiem graficznym, szeregiem użytecznych 
programów  do  pracy  i  rozrywki  oraz 
mniej  lub  bardziej  skomplikowaną  pro-
cedurą  instalacyjną.  Jakie  szanse  ma  za-
tem system, który komunikuje się z użyt-
kownikiem jedynie za pomocą zwykłego 
terminala i w którym nie ma użytecznych 
aplikacji biurowych? Taki właśnie jest RIP 
– dystrybucja wyposażona w liczne apli-
kacje  służące  do  odzyskiwania  danych 

i w efekcie stanowiąca profesjonalne na-
rzędzie do ratowania systemu. Szanse ma 
bardzo duże, gdyż za pomocą RIP-a bez 
problemów  naprawimy  uszkodzone  par-
tycje  systemowe,  odzyskamy  utracone 
dane,  czy  naprawimy  pliki  konfiguracyj-
ne  już  zainstalowanej,  aczkolwiek  z  róż-
nych  powodów  niedziałającej  dystrybu-
cji Linuksa. Ta dystrybucja posiada wspar-
cie  dla  różnych  systemów  plików,  m.in. 
ext2ext3iso9660ntfsumsdosreiserfs 
oraz vfat.

QEMU

Q

EMU  to  darmowa  wersja  prostego 
i  szybkiego  emulatora  procesora. 

Potrafi  pracować  w  dwóch  trybach:  peł-
nej  emulacji  systemu  (full  system  emula-
tion
) oraz w trybie użytkownika (user mo-
de emulation
).

Pełna  emulacja  pozwala  na  urucho-

mienie  różnych  systemów  operacyjnych 
bez  konieczności  restartowania  kompu-
tera  –  wystarczy,  że  na  wejściu  progra-
mu  podamy  jako  parametr  nazwę  pliku 
zawierającego obraz systemu, który chce-
my uruchomić, oraz wskażemy, dla jakie-
go urządzenia był ten obraz przeznaczony 
(dyskietka, cdrom, dysk twardy).

Tryb  użytkownika  jest  przeznaczony 

do  uruchamiania  aplikacji  przeznaczo-
nych  dla  różnych  procesorów.  Obecna 

wersja programu pozwala emulować pro-
cesory: i386ARMSPARC i PowerPC, ale 
twórcy QEMU zastrzegają, że prace zwią-
zane z ich emulacją są jeszcze w fazie te-
stów.

Godnym  uwagi  jest  fakt,  że  QEMU 

potrafi emulować różnoraki sprzęt. Dzię-
ki temu użytkownik nie tylko może uru-
chomić  system  operacyjny  wewnątrz  in-
nego systemu, ale także wskazać urządze-
nia i ich parametry, które mają być rozpo-
znawane przez ten system (np. karty sie-
ciowe, karty dźwiękowe itp).

Na  płycie  CD  znajdziecie  obrazy 

dwóch  systemów,  które  można  urucho-
mić  za  pomocą  QEMU:  FreeDOS  oraz 
Mandrakelinux 10.0.
http://www.qemu.org/

Morphix pod QEMU

background image
background image

CD B / DVD B

aktualności

opis CD/DVD

10

styczeń 2005

Mozilla Firefox 1.0

Najpopularniejsza na świecie 
przeglądarka internetowa 
oparta o silnik renderujący 
Gecko.
http://www.mozilla.org/products/
firefox/central.html

VLC 0.8.1

Konkurencyjny do MPlayer-a 
i Xine odtwarzacz filmów, wraz ze 
wszystkimi niezbędnymi kodekami.
http://www.videolan.org/vlc

Python 2.4c1

Jeden z najpopularniejszych 
języków skryptowych na świecie.
http://www.python.org

Linux 2.6.9

Jądro systemowe w najnowszej 
wersji. Warto dokonać 
aktualizacji, chociażby z uwagi 
na mechanizm kexec.
http://www.kernel.org

Ethereal 0.10.7

Popularny sniffer, czyli 
program przechwytujący 
dane krążące w zamkniętych 
sieciach LAN.
http://www.ethereal.com

Firewall Builder 2.0.3

Najnowsza wersja programu, 
którego graficzny interfejs i wygoda 
użycia pozwolą nam zaprojektować 
firewalla marzeń.
http://www.fwbuilder.org

PPRacer 0.2

Pingwin w nietypowym wyścigu 
z czasem.
http://www.planetpenguin.de/
bereich-20.html

Nessus 2.2.0

Profesjonalny program do robienia 
audytów bezpieczeństwa, zarówno 
w małych, jak i dużych sieciach 
LAN.
http://www.nessus.org

Freeciv

Darmowa wersja wielkiego 
hitu lat 90. Budujemy własną 
cywilizację.
http://www.freeciv.org

Snort 2.2.0 i 2.3.0RC1

Popularny program przyjazny 
dla administratorów sieci, mniej 
przyjazny dla włamywaczy. Innymi 
słowy – wykrywacz wszelkiej maści 
intruzów.
http://www.snort.org

ATI 3.14.6 i NVIDIA 1.0-6629

Sterowniki do popularnych kart 
graficznych.
http://www.ati.com
http://www.nvidia.com

Trustix Secure Linux 2.2

T

rustix  to  bezpieczna  dystrybucja  Li-
nuksa, zoptymalizowana pod kątem 

pracy  na  serwerach.  Zawiera  starannie 
dobrane  oprogramowanie,  umożliwiają-
ce uruchomienie serwera WWW, serwe-
ra poczty, bazy danych i wielu innych. Na 
rynku  dostępnych  jest  wiele  dystrybucji, 
o których producenci mówią: bezpieczne
Czym  wyróżnia  się  Trustix?  Zasadniczo, 
dwoma  elementami:  wielkością  i  sposo-
bem aktualizacji.

W  przypadku  systemów  serwero-

wych chyba wszyscy są zgodni – rozmiar 
jest istotny. Im dystrybucja po instalacji 
jest  mniejsza,  tym  lepiej.  Takie  dbanie 
o  rozmiar  ma  swoje  uzasadnienie 
–  mniejsza  ilość  oprogramowania  na-
rażonego  na  błędy,  mniej  czasochłon-
na  aktualizacja  i  większy  porządek 
w systemie, a tym samym prostsza admi-
nistracja.  Trustix  ma  się  czym  pochwa-
lić. Po domyślnej instalacji, nie zawiera-
jącej różnego rodzaju serwerów, zajmuje 
niewiele ponad 100 MB i zawiera tylko 
i wyłącznie aplikacje niezbędne do dzia-
łania systemu. Dzięki starannemu dobra-
niu  wszelkiego  rodzaju  zależności  po-
między  pakietami,  nie  będziemy  mieli 
sytuacji, gdy instalując którąś z aplikacji, 
zostanie zainstalowana również ogrom-
na  ilość  innych,  z  których  prawdopo-
dobnie nigdy nie będziemy korzystać.

Drugim  ciekawym  elementem  jest 

narzędzie  do  aktualizacji  systemu  o  na-
zwie  Swup  (The  Secure  SoftWare  Upda-
ter
). Dzięki temu oprogramowaniu prze-
prowadzimy bezpieczną aktualizację sys-
temu (obsługa protokołów http, https, ftp 
i  file,  również  z  autoryzacją,  integracja 
z GnuPG), zainstalujemy dodatkowe opro-
gramowanie  bądź  usuniemy  te,  z  któ-
rego już nie korzystamy. Przejdźmy do te-
go,  co  uwielbiają  zarówno  administrato-
rzy sieci, jak i zwykli użytkownicy Linuk-
sa – omówienia oprogramowania zawar-
tego  w  dystrybucji.  Na  Trustiksa  składa-
ją się m.in:

–   jądro  2.4.27  z  licznymi  dodatkami, 

zwiększającymi jego bezpieczeństwo,

–   Apache 2.0.52,
–   IPTables 1.2.11,
–   MySQL 4.1.7,
–   OpenSSH 3.9p1,
–   OpenSSL 0.9.7e,
–   PHP 5.0.2,
–   Postfix 2.1.5,

–   PostgreSQL 8.0.0beta4,
–   Samba 3.0.7.

Ponieważ  Trustix  jest  dystrybucją  typo-
wo  serwerową,  nie  znajdziemy  w  niej 
środowiska  X  Window.  Zaskoczeni  bę-
dą również Ci, którzy są przyzwyczajeni 
do najpopularniejszego linuksowego me-
nedżera plików, czyli programu Midnight 
Commander
 – po prostu brak go. Jednak 
wszyscy Ci, którzy największy nacisk kła-
dą  na  bezpieczeństwo  i  zastanawiają  się 
nad dystrybucją Linuksa przeznaczoną na 
serwer produkcyjny, będą zadowoleni.

W tym miejscu dochodzimy do kolej-

nej  ważnej  rzeczy  –  Trustix  nie  jest  sys-
temem  dla  początkujących  administrato-
rów. Pomimo łatwej do przeprowadzenia 
instalacji (znana z Red Hata/Fedory i Au-
roksa
 Anaconda działająca w trybie tek-
stowym),  sama  administracja  systemem 
wymaga  pewnej  znajomości  Linuksa. 
Mam tutaj na myśli znajomość chociażby 
podstawowych komend systemowych (ls
psgrepvikill) i aplikacji (vi), jak rów-
nież umiejętność czytania podręczników 
systemowych  (man)  i  ręcznej  edycji  pli-
ków konfiguracyjnych.

Trustix  Linux  2.2  to  profesjonalna 

dystrybucja,  dzięki  której  administrato-
rzy nauczą się więcej niż na innych, bar-
dziej przyjaznych początkującym, dystry-
bucjach, a zaawansowani administratorzy 
poczują  się  bardziej  bezpieczni.  Wydaje 
mi  się,  że  warto  zainstalować  Trustiksa 
z jeszcze jednego powodu. W natłoku naj-
różniejszych dystrybucji przedstawianych 
jako serwerowe, które po instalacji wita-
ją  nas  fajerwerkami  graficznymi  i  spra-
wiają  wrażenie  powolnych,  Trustix  nie-
sie ze sobą ducha Linuksa sprzed lat. Ta-
kiego, którego pamiętają tylko Ci najstar-
si, i tego, którego ostatnim dystrybucjom 
tak bardzo brakuje. Zapewniam Cię dro-
gi  Czytelniku,  że  warto  poczuć  ten  kli-
mat. Na płycie DVD B dostępny jest ob-
raz ISO systemu.

Ekran powitalny instalatora Trustiksa

background image
background image

opis DVD

12

DVD A 

styczeń 2005

Aurox 10.1 Quicksilver – europejska dystrybucja Linuksa

N

a  początku  grudnia  zakoń-
czono prace związane z wy-
daniem nowej wersji Aurok-
sa
  o  nazwie  kodowej 

Quicksilver. Jak się okazało, ta dystrybu-
cja, bazująca w dużym stopniu na Fedo-
rze
, wyprzedziła ją pod wieloma wzglę-
dami, stając się w coraz większym stop-
niu  niezależnym  produktem.  Usunięto 
wiele błędów, wykorzystano nową wersję 
instalatora (Anaconda 10) oraz zaktuali-
zowano lub dodano wiele nowych pakie-
tów.  Część  oprogramowania  zastąpiono 
w  pełni  funkcjonalnymi  odpowiednika-
mi,  bez  ograniczeń  patentowych  narzu-
canych w USA. Jednocześnie programiści 
Auroksa  dodali  wiele  skryptów  ułatwia-
jących  instalację  dodatkowych  sterow-
ników, których nie można było włączyć 
do standardowej procedury instalacyjnej 
(NVidia, ATI).

W  nowym  Auroksie  poprawiono 

także  wszelkie  błędy  związane  z  prawi-
dłową detekcją sprzętu. Dzięki zastąpieniu 
statycznego  deva  dynamicznym  udevem 
oraz  dodaniem  szeregu  aplikacji,  które 
z  nim  współpracują  (hotplug,  hal,  gamin 
oraz  gnome-volume-manager),  możliwe 
jest automatyczne dodawanie i konfigura-
cja urządzeń, takich jak np. aparaty cyfro-
we czy zewnętrzne karty pamięci.

Dużym  atutem  Auroksa  jest  łatwość 

instalacji, konfiguracji oraz prostota obsłu-
gi systemu. W efekcie, osobom przyzwy-
czajonym  do  używania  innych  syste-
mów  operacyjnych,  migracja  na  Linuk-
sa  nie  powinna  sprawić  trudności.  Co 
więcej,  programistom  udało  się  z  suk-
cesem  stworzyć  platformę  nadającą  się 
zarówno dla użytkowników stawiających 
pierwsze  kroki  w  świecie  Linuksa,  jak 
i dla ludzi, którzy tę fazę mają już za sobą 
– Aurox 10.1 to nie tylko programy biuro-
we. ale także szereg aplikacji sieciowych 
i narzędziowych. 

nie  instalowanym  środowiskiem  graficz-
nym  jest  X.org.  Użytkownik  ma  także  do 
wyboru dwa popularne środowiska graficz-
ne: KDE 3.3.1 oraz GNOME 2.8.1. Dodatko-
wo,  możliwe  jest  skorzystanie  z  lekkich 
menedżerów okien typu FluxBox czy Win-
dowMaker.
  Do  dyspozycji  mamy  również 
pakiet  biurowy  OpenOffice.org  1.1.2  oraz 
program do poczty elektronicznej i zarzą-
dzania  kalendarzem/kontaktami  –  Evolu-
tion 2.0.2
.

Podsumowanie

Jak cię widzą, tak cię piszą – brzmi popu-
larne  powiedzenie.  Koledzy  z  Auroksa 
przygotowali naprawdę ładną, łatwą, pro-
fesjonalną i w pełni funkcjonalną dystrybu-
cję Linuksa. Polecamy ją wszystkim Czytel-
nikom Linux+. Na płycie DVD znajduje się 
pełna  wersja  dystrybucji  Linuksa,  pakiety 
dodatkowe oraz źródła.

Wymagania systemowe:

Wymagania  minimalne  Auroksa  10.1dla 
pracy w trybie tekstowym:

•   procesor zgodny z Pentium, zaleca-

ny 200 MHz lub lepszy

•   pamięć 64 MB

Do pracy w trybie graficznym są potrzebne:

•   procesor: zalecany 400 MH

Pentium II lub lepszy

•   pamięć: minimum 128 MB, 

zalecane 256 MB

Niezbędne wolne miejsce na dysku:

•   instalacja minimalna: 1 GB
•   serwer: minimum 1.1 GB
•   biuro, szkoła i dom: 3 GB
•   stacja robocza: 3,5 GB
•   wszystkie pakiety: 8 GB

Dodatkowo wymagane jest miejsce 
na dane użytkownika.

Aurox do pracy

Aurox do nauki

Aurox do zabawy

Pierwsze wrażenie

Nieczęsto spotykamy się z sytuacją, w której 
jakiś  produkt  zachwyca  nas  od  samego 
początku. Tak właśnie jest z nowym Aurok-
sem!  Już  na  wstępie  naszym  oczom  uka-
zuje się instalator komunikujący się z nami 
w  dowolnym  europejskim  języku.  Prosta 
procedura instalacyjna i równie łatwa kon-
figuracja  szybko  pozwala  nam  rozpocząć 
pracę z nowym systemem.

Standardowo,  do  dyspozycji  mamy 

szereg  aplikacji  przydatnych  do  pracy 
w biurze (OpenOffice.org, Evolution, prze-
glądarka Firefox), liczne programy eduka-
cyjne  (KmPilot,  Kalzium)  i  rozrywkowe
(Ziemniaczany facet). Dodatkowo, w Auro-
ksie 10.1 znajdziemy wiele programów mul-
timedialnych, służących do słuchania i kom-
ponowania  muzyki  (GLAME,  Audacity), 
oglądania  filmów  (MPlayer,  Xine)  oraz 
pracy z plikami graficznymi (GIMP). Miłym 
zaskoczeniem jest łatwa instalacja dodatko-
wych programów i sterowników.

Instalacja dodatkowych 

pakietów

Twórcy  Auroksa  postarali  się  o  to,  aby 
użytkownik  systemu  nie  miał  najmniej-
szych  kłopotów  z  instalacją  sterowników 
kart graficznych (Nvidia, ATI), modemów, 
obsługi partycji NTFS, czy uruchomieniem 
aplikacji  Flash  i  Java.  Specjalnie  przygo-
towane  skrypty  pozwolą  jednym  polece-
niem  dodać  najbardziej  potrzebne  biblio-
teki i programy, dzięki czemu nawet osoby 
stawiające pierwsze kroki w Linuksie usły-
szą  z  głośników  dźwięk  w  formacie  mp3 
i obejrzą filmy avi

Co jest w środku?

Dystrybucja Aurox Linux 10.1 pracuje pod 
kontrolą jądra w wersji 2.6.9-10. W związ-
ku  ze  zmianami  licencyjnymi  XFree86
wiele  dystrybucji  nie  chce  dołączać  naj-
nowszych  wersji  tego  serwera,  a  domyśl-

background image
background image

DVD B

aktualności

14

styczeń 2005

opis DVD

Mandrakelinux 10.1 Official

Najpopularniejsza dystrybucja 
Linuksa na świecie, szczególnym 
uznaniem ciesząca się wśród 
początkujących użytkowników 
Linuksa. Aby zainstalować 
Mandrakelinux 10.1 Official
uruchom komputer z płytki 
DVD B, wpisz linux i naciśnij [Enter]
Jeśli podczas 
instalacji dodatkowego 
oprogramowania system poprosi 
Cię o pierwszą, drugą bądź 
trzecią płytę CD, nie przejmuj 
się – wystarczy nasza płytka DVD, 
na której zawarte są dane wszystkich 
trzech płytek instalacyjnych. Dobrej 
zabawy!
http://www.mandrakelinux.com/

DD_Rescue 1.10

Program służący do odzyskiwania 
danych.
http://www.garloff.de/kurt/linux/
ddrescue/

G4L 0.14

Ghost For Linux, czyli klon 
znanego posiadaczom Windows 
programu Norton Ghost
Dzięki niemu zrobisz 
w łatwy sposób kopię swojej partycji.
http://freshmeat.net/projects/g4l/

Freerails 20041011

Klon kultowej gry Railroad
Budujemy własną kolej.
http://freerails.sourceforge.net/

Aktualizacje

Aktualizacje dla systemu 
Mandrakelinux 10.1.
http://www.mandrakelinux.com/

WINE 20041019

Środowisko API Win32 
na Linuksie.
http://www.winehq.org/

RIP 11.4

System ratunkowy, uruchamiany 
z płyty, zbliżony do System Rescue 
CD. Zawiera oprogramowanie 
przydatne każdemu posiadaczowi 
komputera. 

Ballsmacker 1.0.0

Wirtualny bilard w środowisku 3D.
http://ballsmacker.sf.net/

Q DVD-Author 0.0.8

Zamierzasz uwiecznić jakieś 
wydarzenie w postaci filmu na płycie 
DVD?
Dzięki Q DVD-Author uzyska on 
eleganckie menu.
http://qdvdauthor.sourceforge.net/

GIMP 2.2-pre2

Najnowsza wersja najpopularniejszego 
programu graficznego w świecie 
Open Source.
http://www.gimp.org/

Linux+ Live

L

inux+ Live to dystrybucja Linuksa zna-
na  Czytelnikom  Linux+DVD,  urucha-

miana  z  płyty  DVD  i  nie  wymagająca  in-
stalacji na dysku twardym. W tym miesiącu 
przekazujemy w Wasze ręce garść progra-
mów związanych z bezpieczeństwem sieci:

–   Nmap  –  popularny  skaner  portów, 

dzięki któremu wykryjecie słabe punk-
ty serwerów;

–   Ettercap – bardzo rozbudowany sniffer, 

czyli podsłuchiwacz danych krążących 
w  zamkniętych  sieciach  LAN  (posia-
da dużą liczbę różnych wtyczek, które 
czynią  z  niego  prawdziwie  szpiegow-
ską maszynę);

–   Ethereal – kolejny sniffer, ale w prze-

ciwieństwie  do  wymienionego  przed 
chwilą Ettercapa, działa w trybie gra-
ficznym i posiada mniejszą liczbę wty-
czek (idealny dla początkujących);

–   Airsnort  –  jeszcze  jeden  sniffer,  ale 

tym  razem  zupełnie  inny  od  wymie-
nionych  wcześniej,  gdyż  działa  w  za-
mkniętych sieciach WLAN;

–   Ping – program wysyłający pakiet in-

formacji  i  żądający  odesłania  go  do 
wysyłającego  (pozwala  zbadać  istnie-
nie  połączenia  między  komputerami, 
drogę między nimi, czas potrzebny na 
przejście pakietu oraz sprawdzać, czy 
dany komputer pracuje w sieci);

–   Traceroute  –  program  posiadający 

funkcje podobne do tych oferowanych 
przez program Ping (idea jego działa-

nia jest następująca: z każdym wysła-
nym  pakietem  związany  jest  pewien 
licznik zawierający ,,czas życia''; jest on 
zmniejszany o jeden podczas przejścia 
przez każdy router; gdy osiągnie zero, 
pakiet jest zwracany do nadawcy jako 
,,przeterminowany'').

Patrząc od strony technicznej, Linux+ Live 
jest oparty o jądro 2.6.7 i KDE 3.2.3. Dzię-
ki  temu,  wymienione  wcześniej  oprogra-
mowanie wykorzystają również mniej za-
awansowani użytkownicy.

Pamiętajcie  o  jednym  –  jeśli  chcecie 

wykorzystać  Ettercapa,  Ethereala  czy  Air-
snorta, spytajcie najpierw o zgodę admini-
stratorów Waszej sieci. Podsłuchiwanie jest 
nielegalne. Redakcja nie odpowiada za ja-
kiekolwiek szkody wyrządzone przez wy-
mienione  oprogramowanie.  Życzymy  do-
brej,  a  przede  wszystkim  rozważnej  za-
bawy!
http://live.lpmagazine.org/

Linux+ Live po uruchomieniu

Kieszonkowy Linux

Damn Small Linux 0.8.3

Bootowalna  dystrybucja  Linuksa,  miesz-
cząca się na płytce o wielkości karty kre-
dytowej, zawierająca środowisko graficz-
ne  i  wiele  przydatnych  aplikacji?  Cze-
mu  nie.  Z  przyjemnością  przedstawiam 
Damn  Small  Linux  –  jedną  z  najmniej-
szych  dystrybucji  Linuksa.  Aż  dziw  bie-
rze,  jak  wiele  można  zmieścić  na  prze-
strzeni  50  MB.  Znajdziecie  tutaj  odtwa-
rzacz multimedialny XMMS, klienta pocz-
ty elektronicznej, klienta FTP, przeglądar-
kę internetową, arkusz kalkulacyjny, edy-
tor tekstu, komunikator internetowy oraz 
menedżera plików. Jeśli dodamy do tego 
możliwość  instalacji  na  dysku  twardym 
i  urządzeniu  PenDrive,  wychodzi  nam 
obraz  dystrybucji  idealnej  dla  słabszych 
komputerów,  wyposażonych  w  proceso-
ry 486 i wczesne Pentium. To wspaniały 

sposób na to, aby mieć swój ulubiony sys-
tem zawsze przy sobie. Nagrany na spe-
cjalnie przygotowanej płytce, zmieści się 
do  portfela  czy  kieszeni.  Rewelacja.  Sys-
tem został umieszczony na płycie w for-
mie obrazu ISO.
http://www.damnsmalllinux.org/

background image
background image

news

aktualności

aktualności

News

16

styczeń 2005

news@lpmagazine.org

17

dział prowadzi: Witold Kieraś

www.lpmagazine.org

News

OpenBSD 3.6

Oczekiwana wersja 3.6 systemu 
OpenBSD w końcu ujrzała światło 
dzienne. Główne nowości w stosunku 
do poprzedniej wersji to wsparcie 
dla nowej platformy sprzętowej 
luna88k, obsługa wielu procesorów na 
platformach i386 i amd64, zwiększona 
wydajność i funkcjonalność NFS oraz 
zwiększona funkcjonalność Border 
Gateway Protocol Daemon
.
http://www.openbsd.org/36.html

Bristol na Open Source?

Władze miejskie Bristolu planują 
wyposażyć 5000 komputerów 
w oprogramowanie Open Source. 
Ostateczne decyzje zostaną pojęte 
dopiero po debacie na posiedzeniu rady 
miasta. Zmiany miałyby objąć 5000 
komputerów, na których pojawiłby się 
zintegrowany pakiet StarOffice 7 firmy 
Sun Microsystems, zamiast dotychczas 
używanych programów Corel Word 
Perfect
Lotus 1-2-3 oraz Microsoft Office
Zgodnie z wyliczeniami urzędników, 
przejście na oprogramowanie Open 
Source pozwoliłoby zaoszczędzić ponad 
milion funtów w ciągu najbliższych 
pięciu lat.
http://www.computerweekly.com/
articles/article.asp?liArticleID=134508&
liArticleTypeID=1&liCategoryID=6&liC
hannelID=1&liFlavourID=1&sSearch=
&nPage=1

Koders.com

Pod adresem Koders.com można znaleźć 
nowy projekt będący wyszukiwarką 
źródeł oprogramowania Open Source. 
Ma ona ułatwić pracę programistom, 
którzy będą mogli porównać, jak dany 
problem, który napotkali w swojej 
pracy, rozwiązali inni. Oprócz słów 
kluczowych, kryterium wyszukiwania 
może być język programowania 
i licencja, na której kod jest dostępny. 
Serwis Newsforge przeprowadził 
wywiad z twórcą tego projektu, 
Darrenem Rushem 
http://www.newsforge.com/
article.pl?sid=04/11/01/1927212

Novell Linux Desktop

Novell ogłosił niedawno, że jego nowy 
produkt, oparty na SUSE 9 Novell 
Linux Desktop 9
, jest już dostępny. Jest 
to system przeznaczony dla klienta 
korporacyjnego i dostępny jest wraz 
ze wsparciem technicznym, a także 
szkoleniami dla pracowników. Dostępny 
ma być w sieci sprzedaży partnerów 
Novella. Jego sugerowana cena to $50 
wraz z rocznymi uaktualnieniami 
i poprawkami. Za darmo dostępna jest 
trzydziestodniowa wersja próbna 
(trzy obrazy ISO).
http://www.novell.com/products/desktop/
eval.html

3 x Novell

O

statnio często, w różnych kontekstach,
wspomina  się  o  firmie  Novell,  któ-

ra w stosunkowo niedługim czasie, dzięki 
swojej zdecydowanej strategii na rynku IT, 
stała się linuksowym potentatem.

Nic dziwnego, że to właśnie Novell po-

czuł  się  w  obowiązku  odeprzeć  zarzuty 
wystosowane przez Microsoft przeciwko Li-
nuksowi w kampanii Get the Facts (Poznaj 
fakty  –
  przechrzczonej  szybko  przez  śro-
dowisko Open Source na Get the FUD, od 
FearUncertaintyDoubt, czyli Strach, Nie-
pewność i Zwątpienie). Specjalnie stworzo-
na w tym celu strona już w pierwszych sło-
wach nie pozostawia wątpliwości co do te-
go, że Novell nie ma zamiaru łatwo odda-
wać pola: W ostatnim czasie opublikowano 
opinie  podważające  przydatność  systemu 
Linux do zastosowań w przedsiębiorstwach. 
Informacje zebrane w tym miejscu pomogą 
lepiej zrozumieć motywację, jaka stoi za ty-
mi opiniami, i właściwie ocenić rzeczywi-
stą wartość Linuksa dla sieci korporacyjnej.
 
Zaraz po tym autorzy przechodzą do rze-
czy  –  w  pięciu  kolejnych  rozdziałach,  za-
tytułowanych  kolejno:  Dlaczego lepiej wy-
brać Linuksa, a nie Windows
O czym Mi-
crosoft nie mówi
Nadeszła pora na Linuk-
sa
Chodzi o swobodę wyboru oraz Dlacze-
go  jeśli  Linux,  to  Novell?
,  punkt  po  punk-
cie  podważają  argumentację  firmy  z  Red-
mond, zawartą w jej (nie)sławnej kampanii 
informacyjnej. Novell przekonuje, że Linux, 
to nie tylko niskie koszty, ale również bez-
pieczeństwo i przyszłość. Firma nie omiesz-
kała przy tym wspomnieć o swoim progra-
mie zabezpieczenia klientów przed roszcze-
niami patentowymi. Oczywiście, linuksową 
alternatywą  dla  platformy  Microsoftu  jest 
w tym dokumencie niemal zawsze komer-
cyjna dystrybucja SUSE, przejęta niedawno 
przez Novella. Trudno się temu dziwić – za-
równo kampania Microsoftu, jak i kontratak 
Novella,  są  skierowane  przede  wszystkim 
do klienta korporacyjnego, który potrzebu-
je rozwiązań sprawdzonych w warunkach 
produkcyjnych  oraz  wsparcia  techniczne-
go  ze  strony  producenta.  Pod  tym  wzglę-

dem SUSE wydaje się być całkiem dobrą al-
ternatywą.

Kilka dni po premierze strony interneto-

wej odpierającej zarzuty Microsoftu, w ser-
wisach linuksowych znów pojawiła się na-
zwa  firmy  Novell.  Niejakim  zaskoczeniem 
dla wielu była informacja o odejściu jedne-
go z jej głównych menedżerów, Chrisa Sto-
ne'a
, który, jak mówi, postanowił poświęcić 
się teraz innym wyzwaniom zawodowym. 
Chris był głównym autorem strategii linuk-
sowej Novella – to głównie dzięki jego sta-
raniom i pracy Novell przejął najpierw fir-
mę  Ximian,  producenta  oprogramowania 
Open Source, a następnie SUSE, producen-
ta znanej komercyjnej dystrybucji Linuksa. 
To  właśnie  za  kadencji  Stone'a  Novell  stał 
się potentatem na rynku oprogramowania 
Open  Source,  wykorzystując  pewne  nie-
zdecydowanie ze strony konkurencji, głów-
nie Sun Microsystems. Dzięki swojej platfor-
mie opartej na SUSE i Ximianie, Novell rzu-
cił rękawicę Microsoftowi na rynku korpo-
racyjnym. Nie wydaje się, aby odejście Sto-
ne'a miało wpłynąć na zmianę strategii fir-
my – Novell w każdym razie zdecydowanie 
zapowiada kontynuację.

Trzecia  informacja  dotyczącą  Novella 

jest chyba najbardziej interesująca dla samej 
firmy.  Na  drugiej  dorocznej  imprezie Tech 
Innovators
  czasopismo  VARBusiness  przy-
znało  Novellowi  nagrodę  "Największy  in-
nowator w dziedzinie sytemu Linux w ro-
ku 2004" (2004 Top Innovator Award for Li-
nux
)  za  jej  system  SUSE  LINUX  Enterpri-
se Server 9
. Pakiet SUSE LINUX Enterprise 
Server 9 znalazł się wśród 460 produktów 
zgłoszonych do konkursu przez 50 dostaw-
ców produktów informatycznych dla przed-
siębiorstw.

Oby  więc  Novell  nie  zwalniał  tempa 

– dla dobra Linuksa...

http://www.novell.com/linux/truth/
http://7thguard.net/news.php?id=4198

Novell na swojej stronie internetowej 

prostuje “fakty”

Między innymi dzięki przejęciu firmy 

SUSE, Novell stał się linuksowym 

potentatem

background image

news

aktualności

aktualności

News

16

styczeń 2005

news@lpmagazine.org

17

dział prowadzi: Witold Kieraś

www.lpmagazine.org

News

Nawigacja GPS na Linuksie

TomTom GO to system nawigacji 
samochodowej GPS, działający 
w oparciu o Linuksa. Można dzięki 
niemu korzystać z dwuwymiarowego 
oraz trójwymiarowego widoku 
drogi, a także z systemu 
informowania kierowcy (zarówno 
przy pomocy tekstu, jak i głosu) 
o kierunku jazdy. Urządzenie można 
zamontować na tablicy rozdzielczej 
lub przedniej szybie samochodu, 
a producent twierdzi, że jest to 
najmniejsze tego typu urządzenie 
dostępne obecnie na rynku.
http://www.linuxdevices.com/articles/
AT6929528271.html

Za duży wybór?

W serwisie Newsforge ukazał się 
artykuł Vinoda Vijayarajana pt. 
Too many cooks in Linux? Autor 
twierdzi w nim, że głównym 
problemem dla osób migrujących 
z monolitycznego systemu Windows 
na Linuksa jest zbyt duża liczba 
decyzji, jakie muszą podjąć jeszcze 
zanim zaczną pracować w nowym 
środowisku. Najpoważniejszą jest 
oczywiście wybór dystrybucji. 
Postuluje stworzenie zbioru 
standardów dotyczących przede 
wszystkim instalacji i procesu 
konfiguracji systemu, aby nowy 
użytkownik nie czuł się przytłoczony 
brakiem zgodności dystrybucji 
Linuksa na płaszczyźnie interfejsu. 
Artykuł spotkał się ze zdecydowaną 
krytyką czytelników – główną zaletą 
Linuksa jest właśnie możliwość 
wyboru, a rezygnowanie z niej 
w imię upodabniania się do 
produktów MS wydaje się być tym, 
czego obecni użytkownicy Linuksa 
bardzo by sobie nie życzyli.

Przeciwko patentom w Unii

Georg Greve, prezydent Free 
Software Foundation Europe

wystosował list otwarty do  
desygnowanego niedawno nowego 
przewodniczącego Komisji 
Europejskiej José Manuel'a Barroso
Powołuje się on na badania 
przeprowadzone przez poważne 
firmy, jak PricewaterhouseCoopers 
oraz Deutsche Bank, dotyczące 
szkodliwego wpływu na gospodarkę 
jakie niesie za sobą przegłosowanie 
dyrektywy o możliwości 
patentowania oprogramowania, 
oraz zachęca do sprzeciwu wobec 
wprowadzenia patentów na 
"wynalazki realizowane za pomocą 
komputera".
http://fsfeurope.org/projects/swpat/
letter-20041101.en.html
http://7thguard.net/
news.php?id=4194

Adobe a sprawa linuksowa

A

dobe Systems, znany producent opro-
gramowania,  nie  może  pochwalić 

się  bogatą  kolekcją  programów  działają-
cych  na  platformie  linuksowej.  W  zasa-
dzie jedynym rodzynkiem jest Adobe Re-
ader
, ale i tutaj nie jest najlepiej – wersja 
dla Linuksa jest mocno spóźniona w sto-
sunku do wersji dla Windows i Mac OS X.
Być może w niedługiej przyszłości to się 
zmieni.  Firma  Adobe  Systems  przystąpi-
ła  do  konsorcjum  przemysłowego  Open 
Source  Development  Labs
,  które  zatrud-
nia m.in. Linusa Torvaldsa. Adobe, zgod-
nie  z  informacjami,  jakie  zdobyli  dzien-
nikarze  serwisu  CNET  News.com,  działa 
w konsorcjum w grupie roboczej zajmują-
cej się Linuksem w zastosowaniach biur-
kowych. 

Firma  zaprzecza  jakoby  chciała  stwo-

rzyć linuksowe wersje swoich flagowych 
produktów, takich jak Photoshop czy Illu-
strator
, a jedynie zapowiada uaktualnienie 
Adobe Readera do wersji 6.0, czyli takiej 
jak dla Windows i Mac OS X. Pam Deziel

Diabełek powraca – FreeBSD 5.3

D

ługo oczekiwane nowe wydanie naj-
popularniejszego  systemu  z  rodziny 

BSD,  FreeBSD  5.3,  jest  już  dostępne.  Jak 
podkreślają  deweloperzy,  jest  to  pierw-
sze stabilne wydanie z gałęzi 5.x – stabilne 
w  sensie  produkcyjnym,  tzn.  nie  testu-
je się w nim nowych rozwiązań technolo-
gicznych, ale dostarcza system gotowy do 
wdrażania. Do tej pory twórcy zalecali, ja-
ko stabilniejszą, gałąź 4.x systemu.

Od  dość  dawna  FreeBSD  pozostaje 

w cieniu Linuksa, jako ten drugi system ty-
pu Open Source. Dzieje się tak głównie za 
sprawą tego, że FreeBSD skupiło wokół sie-
bie mniejszą społeczność – zarówno dewe-
loperów,  jak  i  użytkowników.  Wśród  sys-
temów z rodziny BSD to właśnie FreeBSD 
uchodzi za najlepiej rozwinięty i najbardziej 
wszechstronny – jest niezwykle ceniony na 
serwerach, ale ma też swoich zwolenników 
w zastosowaniach biurkowych. Niezwykle 
liberalna  licencja  BSD  pozwala  na  wyko-
rzystywanie jego kodu także w projektach 
typu closed source,  przez  co  FreeBSD  ma 
swój wkład w rozwój komercyjnych syste-
mów, takich jak MacOS X czy Solaris. 

Co nowego we FreeBSD 5.3? Znajdzie-

my  w  nim  między  innymi  serwer  X.org 
w  wersji  6.7,  a  także  środowiska  graficz-
ne  GNOME  2.6.2  i  KDE  3.3.0.  Środowi-

Demon Beastie to maskotka systemu 

FreeBSD

sko programistyczne zostało uaktualnione 
do GCC 3.4.2, Binutils 2.15 i GDB 6.1. Do 
ciekawych nowości należy też z pewnością 
możliwość  korzystania  z  niektórych  kart 
sieciowych  przy  wykorzystaniu  sterowni-
ków dla MS Windows. Udało się również 
podnieść  wydajność  systemu  na  maszy-
nach wieloprocesorowych.

FreeBSD  to  bardzo  ciekawa  alterna-

tywa  dla  Linuksa.  Zainteresuje  z  pewno-
ścią również tych, którzy chcieliby się na-
uczyć  czegoś  więcej  na  temat  systemów 
z rodziny Unix. Mimo zdecydowanie mniej-
szej popularności, FreeBSD ma też niemały 
wpływ na Linuksa – wystarczy wspomnieć 
choćby dystrybucję Gentoo, której podsta-
wowy mechanizm Portage wzorowany był 
właśnie na rozwiązaniach podpatrzonych 
w tym systemie.
http://www.freebsd.org/releases/5.3R/
announce.html

dyrektor  do  spraw  promocji  produktów 
w  Adobe  Systems,  uważa,  że  linuksowe 
wersje produktów jej firmy nie znalazły-
by zbyt wielu kupców. Jej zdaniem Linux 
to bardzo ciekawy rynek, ale na razie je-
dynie dla branży programistycznej. Klien-
tów zainteresowanych tworzeniem grafiki 
pod Linuksem jest zbyt mało, aby firmie 
opłacało się tworzyć wersję dużych apli-
kacji na tę platformę. Dodatkowo, konku-
rencja ze strony produktów darmowych, 
jak choćby GIMP, również, zdaniem Dez-
iel, zniechęca do takich posunięć.

Firma  Adobe  Systems  jest  bardzo  ta-

jemnicza,  gdyż  oficjalnie  potwierdzi-
ła  jedynie  przystąpienie  do  konsorcjum 
OSDL.  Nie  ulega  jednak  wątpliwości,  że 
zaczęła  się  interesować  Linuksem  i  chce 
stworzyć  dla  siebie  strategię  postępowa-
nia  na  tym  rynku.  Z  pewnością  najbliż-
sze tygodnie przyniosą nam ciekawe in-
formacje na ten temat.

http://www.linux.pl/?id=news&show=1715

background image

jądro linux

aktualności

aktualności

News

18

styczeń 2005

Emulacja PS/2 dla myszy USB 

problematyczna

Na LKML pojawił się problem 
z obsługą myszy. Specjaliści od 
USB i podsystemu wejścia, Greg 
Kroah-Hartman
 i Vojtech Pavlik
błyskawicznie zdiagnozowali go 
jako wynik włączenia w BIOS-
ie emulacji PS/2 dla urządzeń 
wskazujących podłączanych 
przez USB. Jest ona konieczna 
o obsługi klawiatury i myszy 
w programie uruchomieniowym, 
przed załadowaniem Linuksa, 
ale później stanowi problem. 
Sterownik PS/2 przejmuje tak 
emulowane urządzenie i nie oddaje 
go podsystemowi USB, co owocuje 
problemami z zapanowaniem nad 
kursorem myszy. Okazało się, że 
stosowne łatki od pewnego czasu 
znajdują się w drzewie -mm, ale nie są 
włączane automatycznie – wymagają 
specjalnego parametru w linii 
poleceń jądra. Deweloperzy zgodnie 
stwierdzili, że muszą jak najszybciej 
trafić do głównego drzewa i być 
aktywowane automatycznie.
http://lkml.org/lkml/2004/10/1/11

Odchudzenie sysfs

Inną ciekawostką, która w końcu 
trafiła do drzewa Linusa, jest łatka 
nazwana sysfs backing store. Pozwala 
ono zaoszczędzić pamięć marnowaną 
przez system plików sysfs. Znikanie 
pamięci nie jest błędem tego systemu, 
a jedynie konsekwencją używania 
przez niego ogólnych wywołań VFS 
do stworzenia hierarchii katalogów 
i plików. Takie podejście powoduje 
traktowanie przez VFS drzewa 
/sys jak każdego innego punktu 
montowania, wraz z wynikającymi 
z tego zagadnieniami cache'owania. 
Obowiązująca dla sysfs filozofia 
,,jeden plik - jedna wartość'' owocuje 
olbrzymią ilością plików, katalogów 
i łączy symbolicznych, co potrafi 
zmarnować spore ilości pamięci, która 
znajduje się w fizycznej RAM i nie 
może zostać przesłana na partycję 
wymiany.
Łatka włączona do jądra tworzy 
katalogi i pliki w /sys dopiero w 
momencie dostępu do nich. Usuwa 
także te, którymi w ostatnim czasie 
nikt się nie interesował. Autor na 
swojej maszynie testowej odzyskał 145 
megabajtów (sic!) pamięci, ale należy 
zaznaczyć, że dysponuje naprawdę 
ogromnym systemem z mnóstwem 
urządzeń. 
Z tej zmiany zadowoleni powinni 
być zarówno właściciele większych, 
bogato wyposażonych komputerów, 
jak i ci, którzy używają Linuksa 
w zastosowaniach wbudowanych, 
gdzie liczy się każdy bajt pamięci.
http://lwn.net/Articles/69523/

Asynchroniczny podsystem kryptograficzny

P

odsystem dostarczający operacji kry-
ptograficznych jest dostępny w Linu-

ksie  już  od  jakiegoś  czasu.  I  chociaż
spełnia swoje zadania dobrze, to nie jest 
idealny. Największym problemem jest je-
go  synchroniczność  –  po  wywołaniu 
funkcji  kryptograficznej,  kod  musi  ocze-
kiwać  na  jej  wykonanie.  Mogłoby  się  to 
wydawać oczywiste, ale należy brać pod 
uwagę  sytuacje,  w  których  szyfrowanie 
czy  liczenie  funkcji  skrótu  jest  wykony-
wane przez dodatkową kartę, tzw. akce-
lerator  kryptograficzny.  Czas,  gdy  akce-
lerator  dokonuje  przekształceń,  procesor 
marnuje  na  bezproduktywne  czekanie. 
Jest to tym większa strata, im szybszą jed-
nostką CPU dysponujemy.

Rozwiązaniem  jest  wprowadzenie 

asynchroniczności.  Przekazawszy  zada-
nie do wykonanie karcie rozszerzeń, pro-
cesor może dalej wykonywać kod. Akce-
lerator zakończywszy działanie informuje 
jądro o tym fakcie. Sprzęt i oprogramowa-
nie mogą działać równocześnie, uzysku-
jąc pełną prędkość.

Rozszerzenia  standardowej  warstwy 

kryptograficznej  o  działalność  asynchro-
niczną podjął się Evgeniy Polyakov, wzo-
rując się na rozwiązaniu obecnym w sys-
temie OpenBSD. Łatka, którą zaprezento-
wał,  umożliwia  stworzenie  kilku  kolejek 
(dla każdego urządzenia kryptograficzne-
go i obliczeń na procesorze), przypisywa-
nie poszczególnych szyfrowanych sesji do 
konkretnych kolejek, migrację między ko-
lejkami, a nawet przekazywanie sesji mię-
dzy  urządzeniami  –  przydatne  np.  gdy 
jedno z nich dokonuje szyfrowania, a in-
ne cyfrowego podpisania. 

Wszystkie sesje kryptograficzne są za-

rządzane  przez  proces  szeregujący,  dba-
jący  o  optymalne  wykorzystanie  do-
stępnych  zasobów.  W  najprostszej  im-
plementacji  przydziela  on  nowe  zadania 
w pierwszej kolejności tym urządzeniom, 
które mają najkrótszą kolejkę oczekujących 
sesji. Asynchroniczne API poprzez system 
wtyczek daje dużą elastyczność dołączania 
bardziej  skomplikowanych  algorytmów 
przydziału  zadań.  Długość  kolejek  może 
być uzależniona od szybkości dokonywa-
nia przekształceń przez dane urządzenie, a 
ta z kolei może być mierzona przez jądro 
przy załadowaniu modułu. Na wybór urzą-
dzenia mogą wpływać również inne czyn-
niki, np. długość pakietu przeznaczonego 
do zaszyfrowania. Okazuje się bowiem, że 

zestawienie transferu po szynie (np. PCI) 
do urządzenia może zająć więcej czasu niż 
sama  operacja  szyfrowania.  W  skrajnych 
przypadkach, krótkie pakiety szybciej zo-
staną przetworzone przez CPU niż przesła-
ne do karty. Podobne dylematy rozwiązy-
wano już w przeszłości. Przykładem mo-
że  być  kopiowanie  odebranych  pakietów 
z buforów karty sieciowej do pamięci RAM. 
W przypadku większych porcji, jądro wy-
korzystuje DMA, a małe pakiety są kopio-
wane przez procesor – większy narzut cza-
sowy rekompensuje zapamiętanie krótkich 
pakietów w pamięci podręcznej proceso-
ra, co znacznie przyspiesza kolejne opera-
cje na odebranych danych.

Wprowadzone  rozszerzenie  spotkało 

się z ciepłym przyjęciem, bo jest krokiem 
w kierunku zwiększenia możliwości kryp-
tograficznych Linuksa. Pojawiły się prośby 
o stworzenie API dla przestrzeni użytkow-
nika, zgodnego z tym obecnym w rodzi-
nie systemów *BSD. Jest to oczywiście uza-
sadnione – nie ma sensu utrudniać prze-
noszenia oprogramowania między platfor-
mami. Dodatkowym plusem, przemawia-
jącym za wspólnym interfejsem, jest umie-
jętność  korzystania  z  niego  przez  biblio-
tekę  OpenSSL.  Gdyby  interfejs  powstał, 
wszystkie  napisane  programy,  używające 
OpenSSL, niemal automatycznie uzyskały-
by obsługę sprzętowych akceleratorów.

Pełne wykorzystanie asynchronicznego 

API w jądrze pociąga za sobą konieczność 
przepisania fragmentów kodu. Pojawiły się 
obawy, że to ogromna ilość pracy, biorąc 
pod  uwagę  stos  IPSec.  Jamal Hadi Salim 
stwierdził  jednak,  że  wymagane  przerób-
ki nie są aż tak duże. Spora jest natomiast 
szansa szybkiego włączenia asynchronicz-
nego, kryptograficznego API do jądra.
http://lists.logix.cz/pipermail/cryptoapi/
2004/000165.html 

Akcelerator kryptograficzny Sun Crypto 

Accelerator 1000 PCI Card

background image

kernel@lpmagazine.org

dział prowadzi: Tomasz Torcz

19

www.lpmagazine.org

News

Pakietowe nagrywanie płyt

Po długim okresie utrzymywania poza 
jądrem, w końcu zostały włączone 
zmiany umożliwiające pakietowe 
nagrywanie płyt, tj. nagrywanie na 
nośnikach optycznych, tak jak na 
dyskietkach. Po skojarzeniu napędu 
z pseudourządzeniem, można je 
podmontować i po prostu skopiować 
pliki przeznaczone do nagrania. 
Zalecany jest do tego system plików 
UDF, ale można użyć dowolnego 
obsługiwanego przez Linuksa. 
Niedogodnością może być brak 
obsługi błędów w bieżącej wersji 
sterownika, co wymusza używanie 
w pełni sprawnych płyt CD.

Pełna losowość w /dev

Pliki reprezentujące urządzenia 
w katalogu /dev są powiązane 
ze sterownikami w jądrze przez 
dwa numerki, tzw. major i minor. 
Od dawna obowiązuje sztywne 
przypisanie. 
Z punktu widzenia deweloperów jądra 
przypisane na sztywno numery nie 
mają większego sensu. Jest to zbiór 
magicznych wartości, na które trzeba 
uważać i łatwo przy nich popełnić 
błędy. Niektórzy za błąd uważają 
przydzielenie dyskom SCSI tylko 4 
bitów na numerowanie partycji, co 
ogranicza maksymalną ich liczbę 
do 16 (dyski IDE mogą mieć nawet 64 
partycje).
Pomysł odrzucenia przypisanych na 
stałe numerków co jakiś czas pojawia 
się na liście dyskusyjnej twórców 
Linuksa. Ostatnio przypomniał go 
Carl-Daniel Hailfinger i obiecał nawet 
stworzenie łatki, która przeniesie 
numerki urządzeń w dziedzinę 
losowości. Pomoże to zlokalizować 
sterowniki, które stworzono opierając 
się na błędnych założeniach 
dotyczących numerów urządzeń. 
Jest tylko jedno ale: aby działanie 
systemu nadal było możliwe, 
wewnętrzne zdanie jądra co do 
numeracji musi pokrywać się 
z zawartością katalogu /dev. Istnieją 
co najmniej dwa mechanizmy, 
które to umożliwiają, zajmujące się 
dynamicznym wypełnianiem tego 
katalogu: pseudo system plików devfs 
(obecnie na wymarciu) 
i zdobywający coraz większość 
popularność udev. Obydwa 
dbają o stworzenie plików-
urządzeń na podstawie informacji 
o numerach otrzymanej z jądra, 
więc aktualnej. Wymuszenie ich 
używania może nie pasować 
użytkownikom przyzwyczajonym 
do statycznego /dev, których 
systemy po wprowadzeniu 
losowości po prostu przestaną się 
uruchamiać.

Stos Linuksowych Modułów Bezpieczeństwa (LSM)

M

echanizm  Linux  Security  Module 
jest  bardzo  zaawansowany  i  daje 

wiele  możliwości  zabezpieczania  syste-
mu przez odpowiednio napisane modu-
ły. Niektóre z powstałych rozszerzeń po-
zwalają nawet zwiększyć funkcjonalność 
Linuksa zaledwie ocierając się o bezpie-
czeństwo.  Przykładem  może  być  wspo-
mniany w zeszłym miesiącu moduł dają-
cy dostęp do szeregowania czasu rzeczy-
wistego  zwykłym  użytkownikom.  Wy-
korzystując  LSM,  można  także  w  pew-
nym stopniu profilować działanie syste-
mu. Daje on dostęp do wnętrza systemu 
i jest w miarę elastyczny, chociaż posia-
da bolączkę, poważnie ograniczającą je-
go zastosowania. Jego konstruktorzy do-
łączyli do wielu struktur danych, używa-
nych  w  jądrze,  pole  typu  void * ,  które-
go  zadaniem  jest  przechowywanie  da-
nych związanych z zabezpieczeniem da-
nego obiektu. Dodajmy, że danych spe-
cyficznych  dla  bieżącego  modułu  LSM. 
I  tu  właśnie  wpadamy  na  ograniczenie 
postawione przez autorów – nie można 
w prosty sposób załadować dwóch LSM, 
gdyż  ich  wspólne,  nienadzorowane  od-
wołania do pola informacyjnego w naj-
lepszym razie nie dadzą pożądanych re-
zultatów. W najgorszym mogą doprowa-
dzić do obniżenia bezpieczeństwa chro-
nionych  zasobów,  a  nawet  niestabilno-
ści systemu.

Celowo  uniemożliwiono  proste  zała-

dowanie dwóch modułów. Chcąc skorzy-
stać  z  różnych  LSM  naraz,  należy  zaim-
plementować w nich obsługę nakładania. 
Wiąże się to z kolei z koniecznością napi-
sania kodu obsługującego wszystkie miej-
sca, w których następuje konsultacja jądra 
z modułami bezpieczeństwa. Jest ich bar-
dzo dużo, więc zazwyczaj autorzy zajmu-
ją  się  tylko  swoim  modułem,  całkowicie 
ignorując pozostałe.

Nawet jeśli twórca pomyślał o wszyst-

kich potrzebnych zaczepach (hooks) i ob-
słudze  nakładania  innych  modułów  na 
swój,  powraca  kwestia  pojedynczego 
pola  informacyjnego.  Współdzielenie  go 
przez nałożone na siebie moduły wyma-
ga sporego wysiłku.

Spróbował  temu  zaradzić  Serge  Hal-

lyn. Wykorzystał opcjonalne funkcje po-
mocnicze  nakładania  do  możliwie  naj-
większej  separacji  modułów  od  siebie. 
Pojedynczy  wskaźnik  void *  zamienił  na 
tablicę wskaźników, domyślnie czteroele-

mentową. Daje to możliwość współpracy 
czterech LSM, kosztem zwiększenia zaję-
tości  pamięci  i  spowolnienia  niektórych 
operacji.

Standardowo,  działanie  Linux  Secu-

rity  Modules  polega  na  odwołaniu  się 
do  konkretnego  modułu  w  ostatniej  fa-
zie  przyznawania  dostępu  do  zasobu. 
W przypadku plików najpierw są spraw-
dzane  uprawnienia  pliku  oraz  ewentu-
alna  możliwość  jego  otwarcia  w  trybie 
odczyt/zapis (zależy to również od opcji 
montowania),  a  jeśli  po  tych  standardo-
wych  testach  użytkownik  ma  przyzna-
ny  dostęp,  konsultowany  jest  LSM.  Mo-
duł,  kierując  się  sobie  tylko  znaną  wie-
dzą, ma jeszcze szansę zabronić dostępu. 
W przypadku kilku załadowanych modu-
łów, wystarczy brak zgody tylko jednego, 
aby dostęp nie powiódł się.

Czy  to  dobry  rozwiązanie?  Inni  de-

weloperzy  nie  są  do  niego  przekonani. 
Moduły  nie  wiedzące  o  sobie  nawza-
jem mogą zachowywać się w nieprzewi-
dziany  sposób.  A  nieprzewidywalność 
jest  ortogonalna  do  możliwości  zapew-
nienia  bezpieczeństwa.  Z  właściwym 
rozwiązaniem  wystąpił  James  Morris
Według  niego  nie  należy  dopuszczać
do  konieczności  jednoczesnego  stosowa-
nia  kilku  modułów  bezpieczeństwa. 
Jedynym  załadowanym  powinien  być 
moduł  SELinux.  Był  to  pierwszy  użyt-
kownik  szkieletu  bezpieczeństwa  LSM. 
W  jego  projekcie  brano  pod  uwagę 
maksymalną  elastyczność  konfiguracji. 
SELinux  działa  na  zasadzie  narzucenia 
zasad  określonych  w  polityce  bezpie-
czeństwa  załadowanej  do  jądra  z  pli-
ku.  Ustalanie  jej  jest  dosyć  elastyczne, 
ale nie przewidziano wszystkich możli-
wości  nadzorowania  systemu,  stąd  po-
wstanie  innych  niż  SELinux  modułów 
bezpieczeństwa. Morris starał się skiero-
wać  deweloperów  raczej  na  dopisywa-
nie brakującej funkcjonalności do SELi-
nux niż tworzenie własnych, ograniczo-
nych do jednej lub kilku funkcji modu-
łów LSM.

Rozwiązanie  to,  chociaż  wymusza 

uznanie  SELinux  za  podstawowy  moduł 
bezpieczeństwa,  jest  zdecydowanie  lep-
sze niż złożenie razem kilku słabo ze so-
bą  współpracujących  fragmentów  nieza-
leżnego kodu.

http://lwn.net/Articles/110432/

background image

debian

aktualności

aktualności

News

20

styczeń 2005

debian@lpmagazine.org

21

www.lpmagazine.org

dział prowadzi: T. Napierała, B. Feński

News

Debian Stable zaktualizowany

Joey Schulze ogłosił kolejną, trzecią już 
aktualizację gałęzi stabilnej Debiana. 
Od wydania ostatniej aktualizacji 
w listopadzie 2003 roku zebrało się 
sporo poprawek bezpieczeństwa. 
Obecna aktualizacja, o nazwie 3.0r3, 
poprawia 212 błędów bezpieczeństwa 
w pakietach. Nowe obrazy 
instalacyjnych płyt Debiana zawierają 
już wszystkie poprawki.
http://lists.debian.org/debian-
announce/debian-announce-2004/
msg00000.html
http://www.debian.org/News/2004/
20041026

Problematyczna wersja 

shareware XChat

Giacomo Catenazzi zauważył, że 
na stronie WWW aplikacji XChat 
dostępna jest binarna wersja 
shareware programu dla systemu 
Windows. Aby odblokować wersję 
shareware, należy uiścić odpowiednią 
opłatę, ale kod źródłowy, wydany 
na licencji GPL, nie zawiera 
kodu odblokowującego. Istnieje 
prawdopodobieństwo, że może to być 
źródłem kłopotów dla Debiana.
http://lists.debian.org/debian-legal/
2004/10/msg00357.html
http://lists.debian.org/debian-legal/
2004/10/msg00373.html

Spowolnienie list 

dyskusyjnych Debiana

Pascal Hakim ogłosił, że listy 
dyskusyjne Debiana cierpią 
z powodu wielu serwerów poczty, 
które nie przetwarzają wiadomości 
wystarczająco szybko. Sytuację 
pogarszają dodatkowo wiadomości 
wysyłane na listę ogłoszeniową 
(debian-announce), która posiada 
ponad 28 tysięcy subskrybentów. 
Pascal ogłosił również, że grupa 
administratorów list wzbogaciła się 
o osobę Corda Beermanna.
http://www.redellipse.net/stuff/
Debian/Lists/debian-announce_and_
thundering_herds.story
http://lists.debian.org/debian-
announce/debian-announce-2004/
msg00000.html

Aktualizacja Sarge

Frank Lichtenheld ogłosił 
rezultaty swojej pierwszej aktualizacji 
z Woodiego do Sarge na platformie 
i386, a Andreas Barth podsumował 
problemy dla wszystkich platform. 
Niezgodność pomiędzy glibc 
i jądrem może sprawiać problemy 
również na architekturach hppa
armsparc i mips(el). W przypadku 
części z nich wystarczy najpierw 
zaktualizować jądro.
http://lists.debian.org/debian-kernel/
2004/10/msg00430.html

SkoleLinux

zamieszaniu  związanym  z  po-
jawieniem  się  rewolucyjnego

Ubuntu  niektórym  mogło  umknąć, 
że  jest  to  jedna  z  wielu  dystrybucji 
bazujących  na  Debianie.  Dokładnie, 
jedną  ze  115  pochodnych  Debiana. 
Wśród  nich  znajduje  się  także  Skole-
Linux
.  Niedawno  ukazała  się  jego  no-
wa wersja.

SkoleLinux  jest  wyspecjalizowa-

ną  dystrybucją,  powstającą  głównie 
w  Norwegii,  przeznaczoną  przede 
wszystkim  do  użytku  w  szkołach. 
W chwili obecnej zespół pracujący nad 
SkoleLinux  ściśle  współpracuje  z  de-
weloperami  Debiana  skupionymi  wo-
kół  projektu  debian-edu,  więc  można  
praktycznie  postawić  znak  równości 
między tymi dwiema odmianami.

SkoleLinux  jest  mieszaniną  pakie-

tów  pochodzących  z  Debiana  Woody, 
Sarge, wydania niestabilnego, a nawet 
z  serwisu  backports.org  (m.in.  Sam-
ba
). Zastosowanie wielu źródeł pakie-
tów jest częstym zabiegiem w wielu po-
chodnych  Debiana,  gdyż  pozwala  na 
korzystanie z funkcji, które są nieobec-
ne  w  wydaniu  stabilnym.  Dystrybucja 
została przystosowana do pracy w śro-
dowisku sieciowym oraz zawiera scen-
tralizowane narzędzia autoryzacji użyt-
kowników, składowania plików i admi-
nistracji.  Zarządzanie  systemem  odby-
wa się z poziomu interfejsu WWW (wy-
korzystano  w  tym  celu  zmodyfikowa-
ny pakiet Webmin). Współpraca końcó-
wek  sieciowych  odbywa  się  przy  po-
mocy  narzędzia  LTSP,  zdobywające-
go coraz większą popularność, co po-
zwala  na  wykorzystanie  starych  kom-
puterów,  będących  często  na  wyposa-
żeniu szkół.

SkoleLinux  posiada  cztery  profile 

możliwe do zainstalowania: 

–   główny  serwer  –  działają  na  nim 

usługi autentykacji, DHCPDNS itp. 
oraz są składowane pliki użytkow-
ników;

–   klient – terminal, korzystający z za-

sobów  innego  komputera  do  uru-
chamiania swoich procesów;

–   stacja robocza – umożliwia normal-

ną  pracę  i  służy  jednocześnie  za 
serwer aplikacji dla kilku klientów;

–   komputer  domowy  –  instaluje  sys-

tem  przeznaczony  do  użytku  do-

mowego, dodając wiele programów 
przydatnych uczniom.

Ciekawym  i  praktycznym  rozwiąza-
niem  jest  zastosowanie  pośrednich 
serwerów  terminali  (stacji  roboczych), 
umożliwiających  odciążenie  głównego 
serwera  w  przypadku  większych  sie-
ci.  Dla  średniej  wielkości  szkół  (dys-
ponujących  3  pracowniami  po  15  sta-
cji) oznacza to w praktyce konieczność 
posiadania  jedynie  czterech  wydaj-
nych komputerów. Mocniejsze kompu-
tery mogą jednocześnie pełnić rolę sta-
cji dla nauczycieli, przy czym termina-
le korzystające z ich zasobów nadal do 
autentykacji i składowania plików wy-
korzystują serwer centralny.

Instalacja,  opierająca  się  na  no-

wym  instalatorze  z  Sarge,  sprowadza 
się  do  odpowiedzi  na  kilka  nieskom-
plikowanych  pytań  oraz  wyboru  pro-
filu.  W  każdym  przypadku,  użytkow-
nik  po  instalacji  dysponuje  systemem 
praktycznie gotowym do użycia. Więk-
szość czynności administracyjnych od-
bywa się z wykorzystaniem specjalnie 
dostosowanego Webmina. Aktualizacja 
oprogramowania z zastosowaniem me-
chanizmów Debiana (apt) jest również 
dziecinnie łatwa.

SkoleLinux  ze  względu  na  swoją 

elastyczność,  niskie  koszty  wdrożenia 
oraz  łatwość  administracji,  nawet  dla 
początkujących  użytkowników,  wyda-
je  się  być  idealną  alternatywą  dla  go-
towych rozwiązań opartych o produk-
ty  zamknięte  i  drogie,  takich  jak  in-
tensywnie  promowany  Small  Business 
Server Microsoftu
.

http://www.skolelinux.org/

Administracja SkoleLinuksem poprzez 

Webmina

background image

debian

aktualności

aktualności

News

20

styczeń 2005

debian@lpmagazine.org

21

www.lpmagazine.org

dział prowadzi: T. Napierała, B. Feński

News

Aktualizacje Debiana 

przez BitTorrent

Arnaud Kyheng uruchomił dla Apta 
serwer proxy do sieci Bittorrent. Ze 
względów bezpieczeństwa, wykaz 
pakietów oraz pliki .torrent będą 
ściągane ze stałego serwera HTTP, 
tak jak zazwyczaj dzieje się to 
w przypadku pakietu, ale same 
pakiety będą pobierane przez protokół 
Bittorent i przekazywane do Apta.
http://lists.debian.org/debian-devel/
2004/10/msg01715.html

Jądro 2.6.9 w Sarge?

Andres Solomon ogłosił, 
że w repozytorium przygotował 
wymagane standardowe debianowe 
łatki dla jądra 2.6.9. W odpowiedzi 
Christoph Hellwig zasugerował, aby 
najpierw zająć się doprowadzeniem 
wersji 2.6.8 do lepszego stanu 
dla Sarge. Gdy ten etap zostanie 
ukończony, to rozpocznie się etap 
pracy nad 2.6.9.
http://lists.debian.org/debian-kernel/
2004/10/msg00355.html

Nowy Skolelinux

Petter Reinholdtsen przedstawił nowy 
obraz CD Skolelinux. Zawiera on 
ostatnio wprowadzone aktualizacje 
bezpieczeństwa, nowsze jądro 
i trochę nowych tłumaczeń. Baza 
rozpoznawanego sprzętu również 
została zaktualizowana.
http://www.skolelinux.org/portal/
index_html

Duży klaster Opteronów 

działający na Debianie

Thomas Lange poinformował 
o nowym klastrze o nazwie Sarek
zbudowanym na procesorach AMD 
Opteron i działającym na uniwersytecie 
Umel. Składa się ze 192 węzłów 
(384 procesory), a pracuje na nim 
64-bitowa wersja Debiana GNU/Linux 
na amd64 z jądrem 2.6. Klaster został 
w czerwcu 2004 roku sklasyfikowany 
na miejscu 165 w rankingu TOP 500.
http://www.hpc2n.umu.se/resources/
sarek.html

GNOME 2.8 w Sarge?

W imieniu zespołu GNOME, Jordi 
Mallach
 zapytał, czy może wgrać 
GNOME w wersji 2.8 do unstable 
– wersja ta została wydana już we 
wrześniu, gdy Sarge miał zostać 
zamrożony. Ponieważ od tamtej 
pory omawiany zbiór pakietów 
był poddawany testom i wielu 
użytkowników już go używa, wydaje 
się być gotowy do włączenia do 
nowej wersji stabilnej Debiana. Grupa 
zarządzająca wydaniem zgodziła się na 
włączenie GNOME 2.8.1 do unstable
skąd może zostać przeniesiony 
(częściowo lub w całości) do Sarge.
http://lists.debian.org/debian-release/
2004/11/msg00067.html

Echa Ubuntu...

Z

eszłomiesięczne  wydanie  dystrybu-
cji Ubuntu, czyli młodszego brata De-

biana, rozwijanego przez firmę Canonical 
Inc
., doprowadziło do szeregu dyskusji na 
temat modelu rozwoju samego Debiana.

Nikt nie ma wątpliwości, że Ubuntu to 

spory  krok  naprzód  względem  orygina-
łu i naturalnym wydaje się ciekawość de-
weloperów i zadawanie sobie pytania, jak 
to możliwe, że kilkudziesięciokrotnie mniej 
ludzi (aniżeli wolontariuszy Debiana) było 
w stanie poczynić takie postępy w tak krót-
kim czasie.

Z pewnością fakt, iż Canonical Inc. za-

trudnia programistów rozwijających dystry-
bucję (często również deweloperów Debia-
na) na pełny etat, nie pozostał bez znacze-
nia.  To  oczywiste,  że  nie  każdy  poświę-
ca  tyle  samo  czasu  na  pracę,  co  na  hob-
by. Ale czy to jedyny powód dla którego 
Ubuntu tak prężnie się rozwija? Jak zauwa-
żył  Jérôme Marant,  deweloperzy  Debiana 
używają  głównie  dystrybucji  niestabilnej, 
a  z  tego  powodu  często  nie  wiedzą,  jaki 
jest stan testowej. Deweloperzy Ubuntu na-
tomiast korzystają z dystrybucji, która przy-
gotowywana  jest  do  wydania,  a  więc  sa-
mi mają okazję przekonać się o jej błędach, 
a tym samym szybciej je poprawić. 

Z  tej  dyskusji  powstało  kilka  różnych 

koncepcji.  Jedną  z  nich  było  porzucenie 
dystrybucji testing w Debianie i mrożenie 
dystrybucji  niestabilnej.  Część  dewelope-
rów  sądzi,  że  to  bardziej  motywowałoby 
ludzi do pracy, ale takie rozwiązanie było 
już kiedyś stosowane i niestety, działało na-
wet gorzej niż obecne.

Clemens Schwaighofer zaproponował, 

aby oprócz linii testing, która w zamierze-
niu ma stać się wersją stabilną, stosować 
migawki (ang. snapshots), które miałyby się 
pojawiać raz na pół roku. Z pewnością nie 
oferowałyby one takiego bezpieczeństwa 
i stabilności, jak choćby w tym momencie 
Woody, ale byłyby aktualne. Ponadto, spo-

ro osób uważa, że testowe wydania Debia-
na są i tak bardziej stabilne niż finalne in-
nych dystrybucji. Taki projekt już istnieje 
i nazywa się Debian Desktop Distribution
Jest rozwijany w ramach projektu Debian 
i właściwie realizuje wizję Clemensa po-
przez  rozluźnienie  wymagań  dla  pakie-
tów przechodzących z dystrybucji niesta-
bilnej  oraz  przez  plany  regularnych  wy-
dań.

Marco d'Itri dla odmiany zaproponował 

usunięcie dystrybucji stabilnej i pozostawie-
nie wydawania jej zewnętrznym firmom lub 
innym ludziom, którym nie brakuje entuzja-
zmu i motywacji. Ten pomysł jednak szyb-
ko upadł, bo stabilna linia to coś z czego 
Debian jest znany i za co jest ceniony.

Ubuntu wspiera trzy architektury, pod-

czas gdy Debian wspiera ich aż 10, a pro-
wadzi prace nad przynajmniej dwoma ko-
lejnymi.  Sporo  komentarzy  dotyczyło  ak-
tywności  członków  projektu.  Debian  ma 
co  prawda  ponad  1300  wolontariuszy, 
ale część z nich to martwe dusze, a jesz-
cze  większa  część  jest  co  prawda  aktyw-
na, ale w stopniu, który ma raczej niewiel-
ki wpływ na postępy zbliżające wszystkich 
do kolejnego wydania stabilnego.

Do  jakich  wniosków  doprowadziła 

ta  dyskusja?  Do  takich  samych,  jak  każ-
da  tak  rozbudowana  dysputa  od  ostat-
nich  kilku  miesięcy,  a  mianowicie,  aby 
skupić się na wydaniu Sarge, a na zmiany 
przyjdzie czas później. Reasumując, zmia-
ny  zapewne  nastąpią,  ale  jak  bardzo  ra-
dykalne  będą,  tego  dzisiaj  nie  wie  nikt, 
bo i nie czas skupiać się na tym w chwi-
li  obecnej.  Cieszy  natomiast  fakt,  że  De-
bian  mimo  tego,  że  jego  ostatnie  stabil-
ne  wydanie  ujrzało  światło  dzienne  po-
nad 2 lata temu, nadal może być bazą dla 
tak  obiecujących  projektów,  jak  Ubun-
tu.  Jeszcze  bardziej  pocieszające  jest  to, 
że  już  w  tym  momencie  zaczęto  część 
zmian poczynionych przez Canonical Inc. 
przenosić  do  Debiana,  a  kilku  ich  pra-
cowników  zostało  oddelegowanych,  aby 
wspierać  rozwój  Ubuntu  poprzez  popra-
wianie niedociągnięć w samym Debianie.

Wygląda na to, że powstanie omawia-

nej  dystrybucji  przyniesie  korzyści  zarów-
no użytkownikom, którzy mogą już teraz 
spróbować “doszlifowanej” wersji Debiana, 
jak i macierzystemu projektowi, który prę-
dzej czy później wchłonie te poprawki. 

http://www.ubuntulinux.org/

Ubuntu – młodszy brat Debiana

background image

mandrakelinux

aktualności

aktualności

News

22

mandrakelinux@lpmagazine.org

dział prowadzi: Daniel Koć

styczeń 2005

Mandrakelinux 10.1 Official

27 października 2004 roku ukazało 
się wydanie Mandrakelinux 10.1 
Official
. Jest ono praktycznie takie 
samo, co opublikowane we wrześniu 
wydanie Community, ale dodatkowo 
zawiera zebrane w tym czasie 
poprawki. Official można polecać 
przede wszystkim użytkownikom 
oczekującym stabilności, np. 
administratorom serwerów oraz 
boleśnie odczuwającym tzw. “syndrom 
wersji .0”, a pozostali mogą liczyć, że 
aktualizacja do wersji Official poprawi 
błędy dystrybucji czające się dotąd 
w cieniu.
http://www.mandrakesoft.com/
products/101

Nowsze KDE i GNOME

Wielu użytkowników Linuksa lubi 
mieć zainstalowane najnowsze 
wersje programów, zwłaszcza 
tych biurkowych, gdyż stają się 
one wyraźnie wygodniejsze 
i lepsze dosłownie z wersji 
na wersję. Kalendarze wydań 
aplikacji i dystrybucji nie zawsze 
układają się korzystnie, więc 
Mandrakelinux 10.1Official wciąż 
zawiera środowiska KDE 3.2.x oraz 
GNOME 2.6.x, podczas gdy ukazało 
się już KDE 3.3.1 oraz GNOME 2.8.1 
– twórcy dystrybucji woleli postawić 
na jakość zamiast w ostatniej chwili 
dopuścić niedotestowane pakiety. 
Jak zwykle w takich sytuacjach, 
społeczność sama zadbała 
o nowe wersje i obie te nowinki 
można zainstalować na własne 
ryzyko z repozytorium pakietów 
przygotowanych przez Thaca.
http://rpm.nyvalls.se/index10.1.html

Wycieczka do Zoo

Najlepszym sposobem na poznanie 
Wolnego Oprogramowania jest 
osobisty, niezobowiązujący kontakt. 
Obok dystrybucji Linuksa startujących 
wprost z płyty CD, istnieje jeszcze 
inny podobny sposób – emulacja. Free 
OS Zoo
 to serwis zawierający obrazy 
takich gotowych do uruchomienia 
systemów operacyjnych. Do 
eksperymentów zalecane jest 
przynajmniej 256 MB pamięci oraz 
emulator QEMU, który według 
autorów strony zapewnia wydajność 
tylko od dwóch do czterech razy 
gorszą niż podczas pracy systemu na 
rzeczywistym sprzęcie, a więc całkiem 
przyzwoitą.
Wśród dostępnych obrazów znajduje 
się Mandrakelinux 10.0 na platformę 
x86, który wymaga ściągnięcia 
z sieci 355 MB – niestety, nie da się go 
użyć pod Windows 9x na partycjach 
FAT 16/32.
http://www.freeoszoo.org/

Q DVD-Author 0.8

Q

 

DVD-Author to aplikacja do obróbki 
menu samodzielnie przygotowywa-

nych płyt DVD. Jest to graficzna nakład-
ka na tekstowy program Dvdauthor, który 
zajmuje się właściwą generacją menu.

Za  pomocą  Q  DVD-Authora  można 

projektować menu, tworzyć przyciski oraz 
skalować  i  kolorować  wszystkie  obiekty. 
Każde  menu  można  zilustrować  ścieżką 
dźwiękową, co na pewno ożywi przeglą-
dy slajdów, które także da się w tym pro-
gramie złożyć z kolekcji zdjęć. Bardziej za-
awansowane  funkcje  programu  obejmu-
ją  importowanie  warstw  i  kombinowanie 
ich z obiektami menu za pomocą mecha-
nizmu masek, znanego z programów gra-
ficznych. Do tej samej kategorii zalicza się 
również  możliwość  ręcznej  modyfikacji 
poleceń  oraz  plików  XML,  zawierających 
opis naszego menu.

Obecnie  największe  wady  programu 

to brak możliwości ustawiania filmów jako 
przycisków menu oraz jako tła, a także brak 
obsługi wielu wersji napisów. Na szczęście, 
te dwie pierwsze funkcje są planowane już 
w najbliższych wydaniach aplikacji.

Najnowsza wersja programu wymaga 

do działania biblioteki Qt w wersji co naj-

mniej 3.2.0 oraz bibliotek Xine lub MPlay-
era.  W  dziale  podręczników  na  stronie 
domowej znajdziemy samouczek do pro-
gramu,  opisujący  tworzenie  złożonego 
menu DVD dla systemów PAL i NTSC, po 
angielsku,  francusku,  niemiecku,  polsku 
oraz hiszpańsku.

Instalacja  Q  DVD-Authora  z  wiersza 

poleceń  administratora  następuje  przez 
wpisanie 

urpmi  qdvdauthor

,  ale  trzeba 

mieć dopisane do źródeł pakietów sekcję 
Contrib z repozytorium Cooker.

http://qdvdauthor.sourceforge.net/ 

Q DVD-Author pomoże tylko w układaniu 

menu, a o jego estetykę musimy już 

zadbać sami...

VLC 0.8.0

gronie  kilku  najpopularniejszych 
odtwarzaczy  multimedialnych  dla 

Linuksa,  obok  MPlayera  i  Xine,  znajduje 
się  VLC  (dawniej:  VideoLAN Client).  Po-
dobnie  jak  jego  konkurenci,  obsługuje 
dużą ilość zarówno kontenerów multime-
dialnych (MPEG, AVI, MOV, Ogg, Matro-
ska, Real, DV, WAV, AC3, DTS, FLAC), ko-
deków obrazu (DivX 1/2/3, Theora, WMV, 
MJPEG, Indeo), napisów, jak i źródeł od-
twarzania (FTP, HTTP, RTP, MMS, kame-
ry,  DVB,  DVD,  VideoCD/SVCD);  działa 
także na kilku systemach operacyjnych. 

Wyjątkowym czyni go możliwość ob-

róbki i dalszego przekazywania strumie-
ni  multimedialnych.  Zasadnicze  funkcje 
VideoLAN  to  przerabianie  multimediów 
do plików w innym formacie oraz nada-
wanie w sieci jako serwer multimedialny. 
Taka zresztą była jego pierwotna funkcja: 
program  powstał  w  École  Centrale  Pa-
ris
 jako projekt studencki do nadawania 
strumieni w sieciach lokalnych.

W najnowszej wersji VLC został mię-

dzy innymi przepisany od nowa kod od-
czytywania  danych,  co  ma  pozwolić  na 

obsługę  wielu  źródeł  oraz  znacznie  po-
prawić  przeszukiwanie  strumieni,  zo-
stał przyspieszony start dzięki buforowa-
niu wtyczek oraz poprawiony kod biblio-
teki libvlc i obsługi napisów. Można tak-
że uruchamiać VLC w tle, tak jak klasycz-
ny serwer. Program jest dostępny w sek-
cji Contrib repozytorium Cooker, instalu-
je się go z wiersza poleceń administratora 
przez 

urpmi vlc

.

http://www.videolan.org/vlc/

Konwersja do innych formatów czy 

stworzenie w VLC lokalnego serwera 

multimediów jest bardzo prosta dzięki 

graficznemu asystentowi

background image

aurox

aktualności

aktualności

aurox@lpmagazine.org

23

www.lpmagazine.org

dział prowadzi: Karol Kozimor

News

Nowości w Auroksie

W ostatnim czasie nastąpiły 
w Auroksie poważne zmiany. 
Aurox Core Team odszedł 
Jarek Górny. W imieniu ACT 
chcielibyśmy podziękować mu za 
wspaniałą atmosferę i stworzenie 
warunków do powstania 
zgranego zespołu. Po zamknięciu 
Auroksa 10.1 pojawiło się wiele 
pytań o kształt dystrybucji i jej 
model rozwoju. Zgodnie 
z przyjętym planem, cykl 
rozwoju dystrybucji wydłuży 
się do 4-5 miesięcy, co pozwoli 
jeszcze dokładniej przetestować 
dystrybucję i znacznie 
zminimalizować liczbę błędów. 
W dalszym ciągu będą jednak 
wychodziły 4 wydania Auroksa 
w roku, co oznacza, że przez 
pewien okres rozwijane będą 
dwie wersje Auroksa jednocześnie.

Aurox w pudełku

Niedługo również pojawi się 
w sprzedaży Aurox w wersji 
pudełkowej. Będzie dostępny 
na DVD razem z 16-stronicową 
instrukcją. Płyta DVD będzie 
zawierała dodatki dostępne 
dotychczas tylko na piątej płycie 
wersji dołączanej do polskiego 
wydania pisma Linux+ Extra!
Równolegle pojawi się też Aurox 
preinstalowany na gotowych 
zestawach komputerowych. 
Pytajcie sprzedawców o pudełka 
lub komputery z Auroksem! Po 
więcej informacji zapraszamy 
na http://www.aurox.org/.

Aurox Security Team

Zapoczątkowana pewien czas 
temu współpraca z Linux Academy 
(http://www.linuxacademy.pl/ 
doprowadziła do powstania 
Aurox Security Team (http://
www.auroxsec.org/ 
), czyli zespołu, 
który będzie na bieżąco śledził 
wszelkie krytyczne błędy i dbał 
o wypuszczanie poprawionych 
wersji pakietów. Wszelkie błędy 
związane z bezpieczeństwem 
można już teraz zgłaszać na 
http://bugs.aurox.org/ 
w dziale Security.

Ćwiczenia z Auroksem

Nakładem Wydawnictwa 
MIKOM ukazał się podręcznik 
“Ćwiczenia z... Aurox Linux”. 
Podręcznik bazuje na 
Auroksie 9.4 i na około 100 
stronach ilustrowanych zrzutkami 
omawia instalację, konfigurację 
i używanie systemu oraz 
Internetu.
http://www.mikom.pl/ 

Aurox Recommended Hardware

J

ednym  z  najczęściej  pojawiających  się 
pytań zadawanych przez nowych użyt-

kowników  Linuksa  jest,  czy  dystrybucja 
X  zadziała  na  moim  sprzęcie.  Choć  Li-
nux  potrafi  już  obsłużyć  znaczną  więk-
szość urządzeń dostępnych na rynku, od-
powiedź na tak postawione pytanie nie za-
wsze jest prosta i wymaga czasem długo-
trwałych testów. Jest to szczególnie ważne 
w  przypadku  komputerów  przenośnych, 
z którymi Linux ciągle ma problemy. W ce-
lu  ułatwienia  przyszłym  użytkownikom 
Auroksa wyboru komputera bezproblemo-
wo współpracującego z tym systemem po-
wstał program Aurox Recommended Har-

dware. Ma on polegać na przeprowadze-
niu dokładnych testów na współpracę Au-
roksa z udostępnionym sprzętem, ewentu-
alne dostosowanie systemu do konfiguracji 
oraz monitorowanie współdziałania z ko-
lejnymi wydaniami Auroksa. Szczegółowe 
raporty z testów oraz spis sprzętu objęte-
go programem będzie dostępny na stronie 
http://www.aurox.org/.

Do program Recommended Hardware 

można zgłaszać nie tylko gotowe zestawy 
komputerowe, ale również taki sprzęt, jak 
drukarki, skanery, karty rozszerzeń oraz in-
ne peryferia. Szczegółowe informacje moż-
na otrzymać pisząc na aurox@aurox.org.

AmaroK w Auroksie

Z

godnie  z  życzeniami  użytkowników 
w  dystrybucji  pojawi  się  pakiet  od-

twarzaczem dźwięku  AmaroK. Łączy on 
w sobie przyjazny interfejs aplikacji typu 
WinAMP czy XMMS z łatwością manipu-
lowania listami odtwarzania w takich pro-
gramach, jak JuK. AmaroK idzie jednak o 
o krok dalej, prowadząc własną bazę da-
nych odtwarzanej muzyki i rejestrując ta-
kie dane, jak ilość czy data ostatniego od-
słuchania.  Na  podstawie  tych  informacji 
są  generowane  automatycznie  listy  od-
twarzania  ulubionych  utworów,  ostatnio 
słuchanych czy też niesłuchanych w ogó-
le.  Oprócz  tego,  odtwarzacz  potrafi  wy-
szukać i ściągnąć nam okładkę albumu w 
celu  łatwiejszej  identyfikacji  bogatej  ko-

lekcji plików, a także nagrać cały album 
na CD za pośrednictwem K3b.

Duże  możliwości  odtwarzacza  bio-

rą się w dużym stopniu z jego modular-
nej architektury. W obecnej wersji odtwa-
rzacz  posiada  wtyczki  do  obsługi  Arts 
(serwera dźwięku KDE), MAS (Media Ap-
plication Server
)  czy  GStreamera.  Są  też 
wtyczki do obsługi wizualizacji czy pro-
tokołów sieciowych. Warta wspomnienia 
jest  zaawansowana  obsługa  tagów  ID3  i 
możliwość  ich  zbiorowej  edycji.  Dzięki 
tym cechom AmaroK nadaje się doskona-
le  nie  tylko  do  odtwarzania  muzyki,  ale 
też do zarządzania kolekcją.

http://amarok.kde.org/

AmaroK w Auroksie

background image

gentoo

aktualności

aktualności

News

24

gentoo@lpmagazine.org

dział prowadzi: Witold Kieraś

styczeń 2005

Programiści Javy poszukiwani...

Jeśli jesteś doświadczonym 
programistą Javy, znasz dobrze J2EE 
i jesteś użytkownikiem Gentoo, to 
wiedz, że twoja ulubiona dystrybucja 
cię potrzebuje. W związku z rosnącym 
zainteresowaniem aplikacjami w Javie 
(mającą prawdopodobnie związek 
z powstaniem środowiska Eclipse
i liczbą zgłaszanych błędów, Karl 
Trygve Kalleberg 
z Gentoo Java team 
zgłosił ogromne zapotrzebowanie 
na takich programistów i wezwał 
wszystkich chętnych do udzielenia 
pomocy grupie.
http://www.gentoo.org/news/en/gwn/
20041101-newsletter.xml

... i Haskella również

W projekcie Gentoo również mile 
widziani są programiści dobrze 
znający język Haskell –  język 
funkcyjny oparty na rachunku 
Lambda.
http://www.gentoo.org/news/en/gwn/
20041025-newsletter
.xml

KDE kawałek po kawałku

Gdy wykonujemy polecenie 

emerge 

kde

, to po kilku godzinach oczekiwań 

(w zależności od parametrów 
naszego komputera), otrzymujemy 
gotowe środowisko KDE z całym 
dobrodziejstwem inwentarza, tzn. 
również z całą masą aplikacji, 
które należą do projektu, a których 
nigdy nie zamierzalibyśmy użyć. 
Dan Armak, znudzony ciągłym 
dopytywaniem deweloperów 
Gentoo, czy nie dałoby się czegoś 
z tym zrobić, postanowił wziąć 
sprawy w swoje ręce. Przygotował 
zestaw nieoficjalnych ebuildów
pozwalających na instalację 
pojedynczych aplikacji będących 
częścią KDE – dzięki nim można 
np. wykonać polecenie 

emerge 

konqueror

 lub 

emerge kmail

 

i cieszyć się najnowszą wersją tylko 
tych wybranych aplikacji.

Gentoo Linux 2004.3

Zgodnie z kalendarzem 
wydawniczym, ukazała się niedawno 
nowa wersja dystrybucji Gentoo, 
sygnowana numerem 2004.3. To 
ostatnie wydanie z 2004 roku nie 
przynosi rewolucyjnych zmian. 
Deweloperzy Gentoo od dłuższego 
czasu skupiają się przede wszystkim 
na udoskonalaniu narzędzi 
systemowych i płyt instalacyjnych. 
Gentoo 2004.3 wydano dla architektur 
amd64hppappcsparcx86 oraz, 
po raz pierwszy, dla ppc64. Obrazy 
płyt instalacyjnych można znaleźć 
na oficjalnych serwerach lustrzanych 
dystrybucji oraz w sieci BitTorrent.
http://www.gentoo.org/proj/en/releng/
release/2004.3/2004.3.xml

Portage 2.0.51

N

owa  wersja  Portage,  programu  naj-
istotniejszego  dla  działania  Gentoo, 

przynosi  więcej  nowości  niż  należałoby 
się tego spodziewać, wnioskując jedynie 
z nieznacznej zmiany numeru wersji. 

Po  pierwsze,  wprowadzono  możli-

wość automatycznego przekompilowania 
wszystkich  programów  po  wprowadze-
niu zmian we flagach USE. Służy do te-
go opcja 

--newuse

 – jeśli zmieniliśmy fla-

gi i chcemy, aby program Emerge znalazł 
i  przekompilował  wszystkie  programy, 
które tego wymagają, to wystarczy wydać 
polecenie: 

emerge --newuse --update --deep 

world. 

Portage  obsługuje  teraz  również 

sprawdzanie  podpisów  GPG  zawartych 
w  plikach  Manifest.  Dostępne  są  trzy 
poziomy  bezpieczeństwa.  Każdy  moż-
na uaktywnić przy pomocy flagi zmien-
nej    FEATURES  w  pliku  /etc/make.conf
I tak, jeśli chcemy włączyć tę funkcję w 
najmniej  restrykcyjnej  wersji,  to  wystar-
czy dodać w pliku make.conf linijkę: 

FE-

ATURES=”gpg”

.  W  tym  wariancie  Portage 

sprawdzi  jedynie  poprawność  podpisu 
cyfrowego. Dodanie linijki 

FEATURES=”gpg 

strict”

 zaostrzy reguły – program zare-

aguje  również  na  wszelkie  sytuacje  po-

tencjalnie  niebezpieczne,  np.  brak  pliku 
Manifest. Najbardziej restrykcyjny wariant 
to 

FEATURES=”gpg severe strict”

 – Porta-

ge zaakceptuje tylko te pliki Manifest, któ-
re zostały podpisane kluczami uznanymi 
przez  nas  za  bezpieczne.  Wariant  drugi 
wydaje się być rozsądnym wyborem – nie 
powoduje dodatkowych komplikacji (nie 
jest uciążliwy dla użytkownika), a jedno-
cześnie chroni przed instalacją pakietów 
zmodyfikowanych przez włamywaczy na 
serwerze lustrzanym.

W nowych plikach ebuild można te-

raz definiować testy poprawności kompi-
lacji wykonywane przed zainstalowaniem 
programu w systemie. Aby uaktywnić tę 
funkcję, dodajemy w pliku /etc/make.conf 
w zmiennej FEATURES flagę 

maketest

.

Oprócz tego, poprawiła się wyraźnie 

efektywność wyszukiwania zależności w 
drzewie Portage. Jak twierdzą dewelope-
rzy, w nowej wersji proces ten zabiera za-
ledwie jedną trzecią czasu, który potrzeb-
ny był dotychczas do wykonania tej czyn-
ności. Zachęcamy zatem do aktualizacji!

http://www.gentoo.org/news/20041021-
portage51.xml

Gentoo na Linux World Expo

K

onferencja  Linux  World  Expo,  któ-
ra  miała  miejsce  niedawno  w  nie-

mieckim Frankfurcie, to jedna z najwięk-
szych  imprez  linuksowych  skupiających 
się na komercyjnych zastosowaniach sys-
temu  spod  znaku  pingwina.  Odwiedzi-
ła ją niebagatelna liczba piętnastu tysięcy 
gości. Nie mogło zatem zabraknąć na niej 
przedstawicieli  Gentoo.  Nasza  ulubiona 
dystrybucja, za sprawą niemieckiej orga-
nizacji non-profit Förderverein Gentoo e.V. 
(adres  jej  strony  to:  http://www.gentoo-
ev.org/ 
), miała swoje stanowisko w pawi-
lonie  organizacji  niekomercyjnych  i  pro-
jektów  społecznościowych.  Zaprezento-
wano  m.in.  Gentoo  na  różnych  platfor-
mach – od x86 i PPC, aż po Ultra-Sparc 
czy Xeon. Najbardziej interesującą sprawą 
dla  odwiedzających  stoisko  Gentoo  by-
ło ewentualne wydanie czegoś w rodza-
ju  edycji  serwerowej  czy  też  Enterprise 
Gentoo
, która wyróżniałaby się stabilniej-
szą wersją drzewa Portage, wygodniejszą 
dla zastosowań produkcyjnych. Takie za-
potrzebowanie  nie  może  dziwić,  biorąc 
pod uwagę profil imprezy.

Na konferencji nie zabrakło deweloperów 

Gentoo

Z  okazji  konferencji,  deweloperzy 

przygotowali  specjalne  wydanie  Gen-
too  LiveCD
  dla  architektury  x86,  nazwa-
ne Fizzlewizzle, a z myślą o uczestnikach 
konferencji  wzbogacone  między  innymi 
o niemiecką lokalizację KDE. Jest ono do-
stępne również w Internecie, wraz z przy-
gotowaną do wydruku konferencyjną na-
klejką na płytę.
http://download.iansview.com/gentoo/
exhibitions/lwe-frankfurt/2004/livecd/
http://www.gentoo.org/news/en/gwn/
20041101-newsletter.xml

background image
background image

bezpieczeństwo

26

styczeń 2005

Bezpieczne 

łączenie się 

z Internetem

Piotr Machej

J

eśli ktoś jeszcze wierzy, że w dzisiej-
szych czasach jego komputer podłą-
czony do Internetu nie jest zagrożo-
ny,  to  powinien  natychmiast  zdjąć 

różowe  okulary.  Korzystając  z  ogólno-
światowej pajęczyny
, nie jesteśmy samot-
ni  –  wraz  z  nami  jest  tam  wiele  osób 
o bardzo różnych charakterach i potrze-
bach. Dlatego warto podjąć środki ostroż-
ności. Pozwoli nam to żeglować po Inter-
necie ze spokojem, że nasze dane nie są 
łatwe do wykradzenia lub zniszczenia.

Planowanie zabezpieczeń

Absolutnie  nie  powinniśmy  podłączać 
do Internetu komputera, który nie został 
jeszcze  zabezpieczony.  Może  wydawać 
się  nam,  że  jeśli  podłączymy  się  tylko 
na chwilkę, to nic się nie stanie. Jest to 
jednak bardzo złudne wrażenie. Włamy-
wacze bardzo często automatyzują swoją 
pracę,  uruchamiając  skrypty  okresowo 
sprawdzające  adresy  sieciowe  kompu-
terów.  Poszukują  w  ten  sposób  maszyn 
wrażliwych na znane im metody ataków 
(np. posiadających bardzo proste hasła). 
Może zdarzyć się, że nasz system zostanie 
spenetrowany już w minutę po zalogowa-
niu do sieci. Z tego powodu jak najwię-
cej  czynności  zabezpieczających  powin-
niśmy  dokonać  jeszcze  przed  skorzysta-
niem z Internetu.

Zanim  zabierzemy  się  za  umacnia-

nie  zabezpieczeń,  dobrze  jest  dokładnie 
zastanowić się, co chcemy osiągnąć. Czy 
chcemy zrobić z naszego komputera nie-
zdobytą twierdzę? A może tylko chcemy 
ochronić nasze zdjęcia z igraszek na łonie 
natury?  Istotne  jest  też,  czy  będziemy 
chcieli udostępniać jakieś zasoby innym 
użytkownikom  Internetu.  Jeśli  kompu-
ter będzie przeznaczony dla wielu anoni-
mowych użytkowników (np. jako anoni-
mowy serwer FTP), to zastosujemy inne 
zabezpieczenia  niż  wtedy,  gdy  do  kom-
putera  będziemy  chcieli  mieć  dostęp 
tylko my, razem z wybranymi kolegami.

Dobre  określenie  naszych  celów 

i  potrzeb  pozwoli  nam  lepiej  wykorzy-
stać zawarte w tym artykule informacje. 
Mając ciągle na myśli nasz cel, z łatwo-
ścią  wybierzemy  zabezpieczenia,  które 
musimy  zastosować,  i  pominiemy  te, 
z których możemy (lub nawet powinni-
śmy) zrezygnować.

Wykorzystywane usługi

Generalna zasada mówi, aby uruchamiać 
tylko  niezbędne  usługi.  Tak  naprawdę 
powinniśmy posunąć się nieco dalej i w 
ogóle nie instalować niepotrzebnego opro-
gramowania. Praktycznie każda z dystry-
bucji  podczas  instalacji  pozwala  nam  na 
wybór pojedynczych pakietów, z których 
chcemy korzystać. Warto poświęcić trochę 
czasu  na  lekturę  opisów  poszczególnych 
pakietów i wybranie tylko tych, które na 
pewno nam będą potrzebne.

Zysk  z  takiego  postępowania  jest 

podwójny.  Po  pierwsze,  oszczędzamy 
miejsce na dysku. Po drugie, zmniejsza-
my  liczbę  zainstalowanego  oprogramo-
wania.  Dzięki  temu  łatwiej  nam  będzie 
kontrolować  zmiany  w  systemie,  a  w 
dodatku możemy uniknąć instalacji pro-
gramów  znanych  z  problemów  z  bez-
pieczeństwem.  Warto  zastanowić  się 
nad  tym,  który  program  wykorzystamy 
do  realizacji  konkretnego  celu.  Przykła-
dowo,  jeśli  jest  nam  potrzebny  serwer 

Na płycie CD/DVD

Na płycie CD/DVD znajduje się 

oprogramowanie omawiane 

w artykule.

Rysunek 1. 

Na stronach serwisu SANS 

możemy znaleźć obszerne wskazówki 
dotyczące wykrywania intruzów

background image

27

bezpieczeństwo

bezpieczny internet

www.lpmagazine.org

pocztowy,  możemy  zainstalować  Send-
maila
  (dosyć  topornego  w  konfigura-
cji  i  mającego  w  przeszłości  sporo  pro-
blemów  z  bezpieczeństwem)  lub  szyb-
kiego  i  łatwego  w  konfiguracji  (a  przy 
tym bezpiecznego) Postfiksa. Również w 
przypadku pozostałego oprogramowania 
mamy różne alternatywy, nawet jeśli nie-
koniecznie są one dołączone do dystry-
bucji. Im bardziej zależy nam na bezpie-
czeństwie  naszego  systemu,  tym  więcej 
wysiłku powinniśmy włożyć w zainstalo-
wanie bezpiecznych aplikacji.

Uruchamianie usług

Jak  już  powiedziałem,  powinniśmy  uru-
chamiać tylko niezbędne usługi. Ale skoro 
zbędnych  nawet  nie  zainstalowaliśmy,  to 
o  co  chodzi?  Otóż  może  zdarzyć  się,  że 
nie ze wszystkich usług będziemy korzy-
stać  bez  przerwy.  Opiszę  tu  znany  mi 
przykład.  Mamy  komputer,  który  kiedyś 
był  podłączony  do  Internetu  za  pośred-
nictwem  sieci  lokalnej,  w  której  działały 
również komputery z systemem Windows
Do współdzielenia plików była wykorzy-
stywana  na  tym  komputerze  Samba.  Po 
jakimś  czasie  komputer  został  odłączony 
od sieci lokalnej i przyłączony do Interne-
tu  bezpośrednio.  Samba  pozostała  zain-
stalowana,  gdyż  przydaje  się  do  współ-
dzielenia plików z systemem Windows 98, 
uruchamianym  pod  kontrolą  VMWare
Ponieważ ta funkcjonalność jest wykorzy-
stywana okazjonalnie (raz na tydzień lub 
rzadziej),  więc  nie  ma  uzasadnienia  dla 
uruchamiania Samby przy starcie systemu. 
Dlatego też tego typu usługi powinny być 
wyłączone. Uruchamiamy je tylko wtedy, 
gdy są nam potrzebne.

Sposób  wybrania  usług,  które  mają 

być  uruchamiane  przy  starcie,  zależy 
od dystrybucji. W przypadku dystrybucji 
pochodzących  od  Red Hat  (na  przykład 
Fedora i Aurox) należy usunąć lub dodać 
odpowiednie łącza symboliczne w kata-
logu  /etc/rc.d/.  W  innych  dystrybucjach 
nazwa  katalogu  może  być  inna.  Można 
również wykorzystać do tego celu narzę-
dzie 

ntsysv

. Z kolei usługi uruchamiane 

przez  superserwer  Xinetd  można  wyłą-
czyć zmieniając opcję disable w plikach 
umieszczonych w katalogu /etc/xinetd.d/
Wyniki naszych działań można obserwo-
wać wpisując polecenie 

netstat  -nlutp

Wyświetli  ono  wszystkie  porty  TCP  i 
UDP,  na  których  nasłuchują  jakieś  pro-
gramy.  Oprócz  tego,  poznamy  nazwy 
tych programów.

Hasła użytkowników

Oglądaliście  film  Hakerzy  (Hackers)? 
Pomimo całej jego naiwności, było w nim 
trochę prawdy. Szczególnie w jednym miej-
scu, gdy pada pytanie o najpopularniejsze 
hasła  wykorzystywane  przez  użytkowni-
ków komputerów. Odpowiedzią były: love, 
secret, sex i god
. I taka jest prawda – wiele 
osób  lekceważy  znaczenie  haseł  i  wybie-
ra pierwsze z brzegu. No bo przecież, kto 
się domyśli, że wybrałem hasło misiek ? A 
przynajmniej łatwo mi je będzie zapamię-
tać. I rzeczywiście. Ale równie łatwo przyj-
dzie je odgadnąć włamywaczowi.

Zakładając proste hasło ułatwiamy mu 

życie. Nie musi się męczyć z wyszukiwa-
niem  luk  w  naszym  systemie  i  analizo-
waniu  sposobów  włamania  do  niego.  Po 
prostu  uruchamia  program  sprawdzający 
po kolei hasła ze słownika i idzie sobie na 
herbatę.  A  gdy  wróci,  nasz  komputer  nie 
ma już dla niego tajemnic. Ustawiajmy więc 
hasła  trudne  do  odgadnięcia,  ale  nadal 
łatwe do zapamiętania. Warto też samemu 
stosować różne programy do łamania haseł 
– właśnie w celu sprawdzenia, na ile nasze 
hasła  są  trudne  do  złamania.  Reguły  te 
dotyczą nie tylko haseł do kont na naszym 
komputerze. Każdy z użytkowników powi-
nien w ten sposób traktować również inne 
hasła – do skrzynki pocztowej, do portalu 
internetowego czy jakiejś gry sieciowej.

Pamiętajmy  też  o  tym,  aby  nigdzie 

(podkreślam – nigdzie!) nie używać takie-
go  samego  hasła,  jakie  broni  dostępu  do 
konta  użytkownika  root.  Co  do  innych 
haseł, to często trudno uniknąć ich dublo-
wania – choćby ze względu na ogranicze-
nia naszej pamięci. Należy jednak podcho-
dzić do tego z rozwagą. Jaki bowiem jest 
sens  zakładania  mocnego  hasła  na  nasze 
konto, jeśli używamy go również w kilku 
serwisach  internetowych,  gdzie  jest  ono 
przechowywane  otwartym  tekstem?  To 
prawdziwe zaproszenie dla włamywacza.

Oczywiście,  jeśli  nie  mamy  urucho-

mionego  serwera  SSH,  FTP  czy  Telnet 
(o  tym  ostatnim  lepiej  zapomnieć  –  nie 
instalujemy  go  i  nie  uruchamiamy),  to 
intruz próbujący dostać się do nas z Inter-
netu niewiele skorzysta z naszego hasła. 
Lepiej  być  przezornym  –  może  kiedyś 
uruchomimy  serwer,  albo  zaprosimy  do 
siebie  znajomego.  Warto  mieć  wtedy 
mocne, trudne do złamania hasła.

Bez haseł w SSH

Jeśli mamy uruchomiony serwer  SSH, do 
którego powinni mieć dostęp tylko wybra-

ni  użytkownicy,  warto  zabezpieczyć  się 
dodatkowo.  Po  pierwsze,  powinniśmy 
odpowiednio  skonfigurować  zaporę  sie-
ciową, aby można było logować się tylko z 
określonych komputerów. Nie zawsze jest 
to możliwe (szczególnie, jeśli dużo podró-
żujemy  i  logujemy  się  z  różnych  miejsc). 
Po drugie, możemy w ogóle uniemożliwić 
włamywaczom atak na hasła. Jest to moż-
liwe dzięki temu, że SSH pozwala na auto-
ryzację za pomocą pary kluczy. Jeśli każdy 
z  użytkowników  mających  dostęp  do 
naszego  komputera  będzie  dobrze  pilno-
wał swojego klucza prywatnego, a klucze 
publiczne będą umieszczone u nas, to spo-
kojnie  możemy  wyłączyć  obsługę  zwy-
kłych haseł. Dokonujemy tego wstawiając 
w pliku /etc/ssh/sshd_config linię o treści:

PasswordAuthentication no

Po zrestartowaniu serwera SSH użytkownik 
próbujący zalogować się bez odpowiednie-
go  klucza  powinien  zobaczyć  komunikat: 
Permission  denied  (publickey,keyboard-
interactive)
. Należy więc uważać, aby przy-
padkiem nie odciąć sobie dostępu do ser-
wera stojącego na drugim końcu kraju.

W  ten  sam  sposób  możemy  sami 

łączyć  się  ze  zdalnymi  serwerami  –  za-
miast wykorzystywać hasła (choćby prze-
syłane  przez  SSH),  korzystajmy  z  pary 
kluczy. Najpierw musimy je wygenerować. 
Zaczynamy od wydania polecenia:

ssh-keygen -t rsa

Zostaniemy  zapytani  o  nazwę  pliku, 
w którym ma być umieszczony klucz pry-
watny, a następnie o hasło. Tak, o hasło. Z 
zaletami i wadami wprowadzenia tu hasła 
możemy  zapoznać  się  w  ramce  Klucze  z 
hasłem czy bez?
 – na tej podstawie zdecy-
dujemy, czy wciśniemy tu klawisz [Enter], 
czy też jednak wpiszemy hasło. W wyniku 
powinniśmy uzyskać dwa pliki. Pierwszy z 
nich (domyślnie ~/.ssh/id_rsa) to klucz pry-

Rysunek 2. 

Część z tych nasłuchujących 

usług z pewnością można wyłączyć

background image

28

bezpieczeństwo

styczeń 2005

watny,  którego  należy  strzec  niczym  oka 
w  głowie.  Nikt  poza  nami  nie  powinien 
mieć  prawa  do  jego  odczytu,  a  najlepiej, 
jeśli przechowywać go będziemy tylko na 
zabezpieczonej  dyskietce.  Drugi  plik  (do-
myślnie ~/.ssh/id_rsa.pub) to klucz publicz-
ny,  którego  nie  musimy  chronić  –  każdy 
może mieć do niego dostęp.

Teraz  czas  skopiować  klucz  publicz-

ny  na  nasze  konto  na  zdalnym  serwerze. 
Gdy to zrobimy, logujemy się na to konto. 
Musimy upewnić się, że mamy tam katalog 
~/.ssh/. Jeśli nie, tworzymy go poleceniami:

mkdir .ssh/
chmod 700 .ssh/

Teraz pozostaje nam dodać klucz publicz-
ny  do  spisu  kluczy,  które  mogą  być 
wykorzystywane  do  łączenia  się  z  tym 
kontem:

cat id_rsa.pub >> .ssh/authorized_keys
chmod 600 authorized_keys

Należy upewnić się jeszcze, czy na zdal-
nym  serwerze  jest  włączona  obsługa 
kluczy  i  że  wykorzystywany  jest  wła-
śnie ten plik ze spisem kluczy. W pliku 
/etc/ssh/sshd_config  powinny  znajdować 
się następujące linie:

PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

Teraz już możemy opuścić to konto (

exit

i  spróbować  zalogować  się  ponownie. 
Tym razem powinien powitać nas napis: 
Enter passphrase for key z podaną ścież-
ką  do  klucza  prywatnego.  Po  wpisaniu 
hasła,  jakiego  użyliśmy  przy  tworzeniu 
klucza, zostaniemy zalogowani na nasze 
konto. Oczywiście, jeśli zdecydowaliśmy 
się nie chronić naszego klucza hasłem, to 
zostaniemy zalogowani bez pytania.

Gdy  kiedyś  zdecydujemy  się  zmie-

nić hasło do naszego klucza prywatnego, 
możemy to zrobić poleceniem 

ssh-keygen 

-c -f .ssh/id_rsa

.

Kontrola integralności 

systemu

Pomimo  wszelkich  zabezpieczeń,  jakie 
mogliśmy  stworzyć,  szczególnie  zdespe-
rowany  intruz,  prędzej  czy  później,  jest 
w  stanie  dostać  się  do  naszej  twierdzy. 
Musimy być świadomi, że jedyną w miarę 
skuteczną  formą  ochrony  naszego  kom-
putera jest odłączenie go od sieci i wsta-
wienie  do  szafy  pancernej.  Jeśli  jednak 
chcemy,  aby  nasz  komputer  był  podłą-
czony do Internetu, to musimy liczyć się 
z ewentualnym włamaniem.

W  takim  przypadku  najważniej-

sze  jest,  abyśmy  się  o  tym  dowiedzieli. 
Ponieważ intruz zazwyczaj będzie próbo-
wał ukryć swoją obecność w systemie, a 
następnie uzyskać jak najwięcej informa-
cji, prędzej lub później spróbuje podmie-
nić jakiś kluczowy plik systemowy. Może 
tego dokonać na przykład w celu wykra-
dzenia  hasła.  Jednym  z  najlepszych  spo-
sobów  na  wykrycie  podobnych  działań 
jest  kontrolowanie  integralności  syste-
mu. Polega to na tym, że (zaraz po insta-
lacji systemu) tworzymy bazę zawierającą 
informacje o istotnych plikach w systemie. 
Bazę tą przechowujemy w miejscu niedo-
stępnym  dla  włamywacza  (np.  na  płycie 
CD).  Później  pozostaje  nam  okresowo 
kontrolować zgodność plików ze stanem 

Zbędne usługi

Jeśli  mamy  wątpliwości,  które  usługi 
powinny być wyłączone, zapoznajmy się 
z poniższym spisem: chargenchargen-
udp
,  daytime,  daytime-udp,  echo,  echo-
udp
,  finger,  imap,  imaps,  innd,  ipop2
ipop3,  named,  netfs,  ntalk,  ntpd,  pop3s
swattalktimetime-udp.

Zawiera  on  te  usługi,  których  nie 

powinniśmy  włączać,  jeśli  nie  są  nam 
absolutnie potrzebne. Nie jest to spis kom-
pletny – oprócz podanych usług, możemy 
mieć  zainstalowane  inne  programy,  któ-
rych nie powinniśmy włączać bez potrze-
by, jak choćby różne serwery FTP (wu-ftpd
vsftpd) czy wszelkie usługi typu rshrexec
rcprlogin i inne z grupy usług o nazwach 
zaczynających się literą r (możemy je spo-
kojnie zastąpić programem ssh).

Jeśli  zaszłaby  konieczność  włącze-

nia jednej z wymienionych usług, w miarę 
możliwości powinniśmy wybierać wersję 
bezpieczniejszą.  Przykładowo,  zamiast 
imap  powinniśmy  wybrać  szyfrowaną 
wersję imaps, a zamiast ipop3 – pop3s.

Rysunek 3. 

John the Ripper to tylko 

jeden z wielu programów umożliwiających 
testowanie siły haseł

Testowanie haseł

W  większości  nowszych  dystrybucji  pod-
czas  wprowadzania  hasła  jest  prze-
prowadzana  jego  wstępna  kontrola 
(np.  z  wykorzystaniem  systemu  PAM), 
ale czasami system ogranicza się tylko do 
sugestii, że wprowadzane hasło nie speł-
nia odpowiednich norm (np. jest za krótkie 
lub zbyt oczywiste). Tak czy inaczej, jest to 
tylko wstępne rozpoznanie. Aby się prze-
konać, czy na pewno w naszym systemie 
hasła są trudne do złamania, musimy sko-
rzystać z innych narzędzi – łamaczy haseł.

Jednym z takich programów jest John 

the  Ripper.  Możemy  go  pobrać  ze  strony 
http://www.openwall.com/john/.  Po  jego 
zainstalowaniu  (zgodnie  ze  wskazówka-
mi  umieszczonymi  w  pliku  doc/INSTALL
wykonujemy  kopię  pliku  /etc/shadow 
i  umieszczamy  ją  w  jakimś  bezpiecznym 
katalogu  (pamiętajmy,  aby  przypadkiem 
nie  udostępnić  tego  pliku  niepowołanym 
osobom). Teraz wystarczy uruchomić pole-
cenie 

john  shadow

 (zakładając, że kopia 

pliku /etc/shadow znajduje się w bieżącym 
katalogu). Jeśli programowi uda się odgad-
nąć hasło, wyświetli je na ekranie wraz z 
nazwą  użytkownika.  Ponieważ  obliczenia 
mogą  trwać  bardzo  długo,  warto  czasem 
wcisnąć dowolny klawisz w celu sprawdze-
nia,  czy  program  nadal  działa  –  zostanie 
wyświetlony jego status. W dowolnej chwili 
możemy przerwać jego pracę kombinacją 
[Ctrl]+[c], a następnie wznowić poleceniem 

john -restore

.

Odgadnięte  hasła,  oprócz  wyświe-

tlenia  na  ekranie,  są  zapisywane 
w  pliku  john.pot,  umieszczonym  w  kata-
logu,  gdzie  znajduje  się  program  john
Możemy  je  wyświetlić  poleceniem 

john 

-show shadow

 (gdzie shadow wskazuje na 

naszą kopię pliku /etc/shadow).

Jeśli  chcemy  zwiększyć  szanse  na 

wykrycie  słabych  haseł,  powinniśmy 
pobrać z sieci pliki ze słownikami. Przykła-
dowy plik z listą słów w różnych językach 
jest do pobrania ze strony domowej John 
the  Ripper
,  a  jego  znacznie  rozszerzoną 
wersję  można  zamówić  za  odpowiednią 
opłatą.  Inne  zestawy  haseł  można  zna-
leźć  pod  adresem  ftp://ftp.ox.ac.uk/pub/
wordlists/
. Możemy je później wykorzystać 
wydając  polecenie 

john  -w=words.lst 

shadow

,  gdzie  world.lst  jest  pobranym  pli-

kiem ze słownikiem.

Warto też zapoznać się z plikiem doc/

EXAMPLES, gdzie podane są inne cieka-
we  sposoby  wywołania  programu  John 
the Ripper
.

zapisanym w bazie. Oczywiście, jeśli sami 
dokonamy zmian w plikach (na przykład 
ze względu na aktualizację oprogramowa-

background image

29

bezpieczeństwo

bezpieczny internet

www.lpmagazine.org

nia), to bazę musimy również uaktualnić. 
Jednym  z  programów  pozwalających  na 
kontrolowanie  integralności  systemu  jest 
Afick (Another File Integrity Checker).

Ponieważ nie jest on zazwyczaj dołą-

czany  do  dystrybucji  Linuksa,  musimy 
go  pobrać  ze  strony  domowej  (http:
//afick.sourceforge.net/ 
) lub z płyty dołą-
czonej do pisma. Jego instalacja nie spra-
wia  problemu,  a  w  przypadku  instalacji 
pakietu  RPM  od  razu  zostanie  zainicja-
lizowana baza. Na stronie domowej pro-
jektu możemy pobrać interfejs graficzny, 
ułatwiający  obsługę  programu,  a  także 
spełniający  to  samo  zadanie  moduł  do 
Webmina. Z tych dwóch możliwości oso-
biście polecam raczej moduł do Webmi-
na
 – po instalacji dostępny jest w sekcji 
System  pod  nazwą  Another  File  Integri-
ty Checker
.

Konfiguracja Aficka

Główny  plik  konfiguracyjny  programu 
Afick  to  plik  /etc/afick.conf.  Możemy  w 
nim określić ścieżki do bazy danych, histo-
rii i archiwum. Oprócz tego, możemy usta-
wić inne opcje konfiguracyjne, jak również 
wykluczyć z magazynowania w bazie pliki 
o określonych końcówkach (lub przedrost-
kach) nazw. Plik ten zawiera również spis 
katalogów, o których informacje są zapisy-
wane w bazie. W większości przypadków 

ustawienia domyślne powinny wystarczyć, 
lecz w razie potrzeby można je zmodyfi-
kować. Plik konfiguracyjny posiada dosyć 
obszerne i czytelne komentarze.

Wykrywanie zmian w plikach

W  celu  sprawdzenia,  czy  nie  nastąpiły 
zmiany w plikach systemowych, urucho-
miamy  polecenie 

/usr/bin/afick.pl  -k

 

(lub 

/usr/bin/afick.pl  --compare

).  Spo-

woduje  to  ponowne  przeanalizowanie 
wszystkich plików i porównanie informa-
cji o nich z zawartymi w bazie. Ewentual-
ne różnice zostaną wyświetlone na ekra-
nie.  Oczywiście,  możemy  tego  dokonać 
również  w  interfejsie  graficznym  (wci-
skając  przycisk  compare)  lub  w  module 
Webmina (w sekcji run Afick, zaznacza-
jąc w polu action wartość compare i wci-
skając przycisk Run Afick).

W przypadku wykrycia zmian w pli-

kach,  nie  powinniśmy  od  razu  pani-
kować.  Najpierw  upewnijmy  się,  czy 
sami  nie  dokonaliśmy  zmian  (mogli-
śmy  zapomnieć  uaktualnić  bazę).  Może 
okazać  się  również,  że  przechowujemy 
w bazie informacje o plikach zmieniają-
cych się dosyć często, a niezbyt istotnych 
–  w  takim  przypadku  należy  poprawić 
konfigurację  i  ponownie  zainicjalizować 
bazę  poleceniem 

/usr/bin/afick.pl  -i

 

(init  w  przypadku  interfejsu  graficznego 
i modułu Webmina).

Jeśli  zamierzamy  wprowadzić  zmiany

w systemie plików (np. uaktualnić oprogra-
mowanie), powinniśmy najpierw upewnić
się,  że  pliki  są  nienaruszone.  Następnie 
możemy  dokonać  niezbędnych  zmian, 
a później zaktualizować bazę poleceniem

/usr/bin/afick.pl  -u

 (update w przypad-

ku  interfejsu  graficznego  i  modułu  Web-
mina
). Polecenie to wyświetli nam wpro-
wadzone zmiany, a w bazie umieści infor-
mację o nowych plikach.

Jeśli chcemy dokładnie wiedzieć, jakie

zmiany zaszły podczas instalacji oprogramo-
wania,  to  należy  uruchomić  polecenie
update zarówno przed, jak i po instalacji.

Kilka uwag

Sprawdzanie  integralności  systemu  nie 
ma  większego  sensu,  jeśli  włamywacz 
ma dostęp do konfiguracji i bazy danych. 
Warto  plik  konfiguracyjny  i  bazę  prze-
chowywać np. na płycie CD, uaktualnia-
jąc ją w razie potrzeby.

Optymalnym  rozwiązaniem  jest  uru-

chamianie  programu  Afick  z  osobne-
go,  bezpiecznego  systemu  operacyjnego, 

np.  specjalnie  przygotowanej  dystrybu-
cji uruchamianej z płyty CD. Dzięki temu 
możemy  mieć  pewność,  że  włamywacz 
nie  mógł  zmodyfikować  naszego  progra-
mu,  ani  żadnej  części  systemu,  od  której 
on zależy.

Musimy zdawać sobie sprawę z tego, 

że  Afick  i  jemu  podobne  programy  nie 
uchronią  nas  przed  włamaniem  do  sys-
temu. Ich zadaniem jest jedynie dać nam 
znać,  że  włamanie  miało  miejsce.  Nie 
należy w tej mierze polegać tylko na inte-
gralności systemu – należy również kon-
trolować  dzienniki  systemowe  (logi),  jak 
i  uruchomione  usługi.  Warto  też  okreso-
wo  wykonywać  kopię  ważnych  dla  nas 
danych. Dzięki temu nie utracimy ich, ani 
z  powodu  jakiegoś  wandala,  ani  też  ze 
względu na przypadkową awarię sprzętu.

Zapora sieciowa

Jednym  z  najważniejszych  zabezpieczeń 
naszego  komputera  jest  zapora  sieciowa, 
zwana też ścianą ogniową (firewall). Jeśli 
prawidłowo  ją  skonfigurujemy,  będzie 
chroniła  porty  naszego  komputera  przed 
intruzami,  udostępniając  je  tylko  wybra-
nym  osobom.  Oczywiście,  my  będzie-
my mogli korzystać z Internetu bez ogra-
niczeń.

W  przypadku  aktualnych  dystrybucji 

Linuksa,  najczęściej  do  filtrowania  pakie-
tów jest wykorzystywany program IPTales.

Z  reguły  najlepszą  metodą  tworzenia 

zapory  sieciowej  jest  przyjęcie  zasady,  że 
blokujemy wszystkie pakiety z wyjątkiem 
tych,  które  rzeczywiście  chcemy  przepu-
ścić. Zasada jest słuszna, lecz w niektórych 
przypadkach może nam sprawić nieco kło-
potu.  Wyobraźmy  sobie  przykładowo,  że 
chcemy udostępniać użytkownikom Inter-
netu serwer SSHWWWFTP, a w dodat-
ku pragniemy dzielić się plikami z użyciem 
BitTorrenta. W takiej sytuacji może okazać 
się,  że  mniej  wysiłku  będzie  nas  koszto-
wać stworzenie zapory, która będzie bro-
niła  dostępu  tylko  do  wybranych  portów 

Klucze z hasłem czy bez?

Podczas tworzenia kluczy musimy zdecy-
dować,  czy  nasz  klucz  prywatny  będzie 
chroniony  hasłem,  czy  nie.  Można  się 
zastanawiać,  co  się  zyskuje,  zamienia-
jąc  jedno  hasło  (do  systemu)  na  drugie 
(do  klucza).  Już  odpowiadam  –  bardzo 
dużo. Przede wszystkim, ewentualny wła-
mywacz musiałby zdobyć zarówno nasze 
hasło,  jak  i  klucz  prywatny,  co  znacznie 
utrudnia  mu  zadanie.  Tym  bardziej,  że 
hasło chroniące klucz nie jest przesyłane 
przez sieć. W dodatku, możemy wykorzy-
stać ten sam klucz do łączenia się z wielo-
ma serwerami – a więc możemy korzystać 
w tym przypadku z jednego hasła.

A  jeśli  jednak  zdecydujemy  się  na 

stworzenie klucza bez hasła? Możemy tak 
zrobić, ale wtedy musimy jeszcze bardziej 
chronić nasz klucz prywatny. Jeśli komuś 
uda się uzyskać do niego dostęp, to będzie 
mógł połączyć się bez problemów wszę-
dzie  tam,  gdzie  z  tego  klucza  korzystali-
śmy. Dlatego jeśli tylko do naszego kom-
putera  ma  dostęp  więcej  osób,  to  lepiej 
założyć hasło, a w każdym razie zdawać 
sobie sprawę z niebezpieczeństwa.

Rysunek 4. 

Konfigurację Aficka możemy 

zmienić także z użyciem Webmina

background image

30

bezpieczeństwo

styczeń 2005

(np.  poczty  czy  Samby).  Należy  pamię-
tać, że tak zbudowana zapora nie będzie 
w  stanie  zablokować  możliwości  łączenia 
się  z  naszym  serwerem,  jeśli  zostanie  na 
nim zainstalowana jakaś tylna furtka (back-
door
).  Wybór  metody  tworzenia  zapory 
zależy więc tylko od naszych chęci i umie-
jętności.

Podczas projektowania zapory pamię-

tajmy  o  tym,  aby  zablokować  możli-
wość  łączenia  się  z  naszym  kompute-
rem z maszyn o adresach sieci lokalnej za 
pośrednictwem  interfejsu  łączącego  nas 
z  Internetem.  Zapobiegnie  to  przynajm-
niej części prób ataków przez podszywa-
nie (spoofing).

Jeśli nie odpowiada nam ręczne wpi-

sywanie  regułek,  możemy  skorzystać 
z  któregoś  z  interfejsów  graficznych. 
Jednym  z  ciekawszych  jest  Firewall  Buil-
der
,  którego  wersja  2.0.2  była  niedawno 
opisywana w Linux+. Program ten można 
pobrać ze strony domowej projektu (http://
www.fwbuilder.org/ 
) lub z płyty dołączo-
nej do gazety.

Testowanie zapory

Po  zbudowaniu  zapory  sieciowej  najważ-
niejsze  jest  jej  dokładne  przetestowanie. 
Niestety, IPTables nie obsługuje opcje -C
znanej z IPChains, pozwalającej na łatwe 
testowanie  reguł.  Musimy  więc  radzić 
sobie łącząc się z zaporą z różnych maszyn 
umieszczonych  w  Internecie  i  sieci  lokal-
nej  lub  korzystając  z  innego  oprogramo-
wania. Przykładowe programy, które mogą 
okazać się bardzo pomocne przy testowa-
niu  zapory,  to  HPing  i  Firewall Tester.  O 
programie  HPing  można  było  niedawno 
przeczytać w Linux+, więc zapoznajmy się 
z drugim z programów.

Firewall  Tester  to  zestaw  skryptów 

napisanych  w  Perlu,  które  można  wyko-
rzystywać  nie  tylko  do  testowania  jako-
ści  zapory  sieciowej,  ale  również  syste-
mów  wykrywania  włamań.  Do  działania 
Firewall  Tester  potrzebuje  trzech  modu-

łów dostępnych z CPANNet::RawIPNet:
:PcapUtils
 i NetPacket. Możemy je zainsta-
lować  poleceniem 

perl  -MCPAN  -e  'in-

stall  Net::RawIP'

  (odpowiednio  zmie-

niając  nazwę  modułu).  Na  komputerze, 
gdzie mamy zainstalowaną zaporę siecio-
wą, należy uruchomić polecenie 

./ftestd 

-i  eth0

  (gdzie  eth0  to  nazwa  interfejsu 

łączącego nas z siecią). Spowoduje to uru-
chomienie  sniffera  nasłuchującego  pakie-
tów wysyłanych przez klienta. Klienta naj-
lepiej  uruchomić  na  komputerze  znajdu-
jącym się bezpośrednio za zaporą siecio-
wą – służy do tego polecenie 

./ftest  -f 

ftest.conf

.  Najpierw  jednak  należy  przy-

gotować  odpowiedni  plik  konfiguracyjny, 
w którym wskażemy, jakie testy mają być 
wykonywane. Przykładowy plik ftest.conf 
jest dosyć dobrze opisany, więc nie powin-
niśmy  mieć  problemów  z  dostosowa-
niem  go  do  własnych  potrzeb.  Zwróćmy 
uwagę,  że  możemy  korzystać  zarówno 
z pojedynczych pakietów, np. 

192.168.0.5:

1025:192.168.0.1:21:A:TCP:0

, jak i z symu-

lowania  połączeń: 

connect=192.168.0.5:

1025:192.168.0.1:22:AP:TCP:0

.  Każdy  test 

powinniśmy  kończyć  sygnałem  zatrzy-
mania: 

stop_signal=192.168.0.5:80:

192.168.0.1:1025:S:TCP:0

.  Ważne,  aby  ten 

ostatni  pakiet  na  pewno  przeszedł  przez 
zaporę. W innym przypadku, jeśli na czas 
testów zmienialiśmy ustawienia TTL, to w 
przypadku  przerwania  działania  skryptu 
przed  otrzymaniem  sygnału  stop,  będzie-
my  musieli  przywracać  ustawienia  ręcz-
nie.  Po  zakończeniu  testu  należy  skopio-
wać pliki ftest.log z klienta i ftestd.log z ser-
wera w jedno miejsce, a następnie wyko-
nać  polecenie 

./freport  ftest.log  fte-

std.log

. W jego wyniku otrzymamy zesta-

wienie pakietów, które przeszły lub zostały 
zablokowane przez zaporę sieciową.

Podczas  testowania  zapory  powinni-

śmy  pamiętać,  aby  sprawdzić  ją  bardzo 
dokładnie. Jeśli w jakiejś regułce mamy zde-
finiowany zakres adresów IP, to sprawdza-
my zachowanie zapory zarówno dla adre-
sów granicznych, jak i leżących wewnątrz 
i  na  zewnątrz  zakresu.  Warto  przygoto-
wać  sobie  własne  skrypty  do  testowania 
zapory, dzięki czemu nie będziemy musieli 
wciąż powtarzać wpisywania tych samych 
komend.  Również  wprowadzanie  popra-
wek jest w takim przypadku łatwiejsze.

Systemy wykrywania 

włamań

Zapoznaliśmy się już z programem Afick
ale posiada on (podobnie jak inne ana-

lizatory  integralności  systemu)  pewną 
wielką  wadę  –  dzięki  niemu  dowiadu-
jemy  się  o  ataku,  który  już  doszedł  do 
skutku.  Cała  sztuka  polega  na  tym,  aby 
wykryć atak jeszcze w czasie jego prze-
prowadzania  i  odpowiednio  go  zablo-
kować.

Jednym  z  najlepszych  programów 

przeznaczonych  do  tego  celu  jest  Snort
Program nasłuchuje na wskazanych inter-
fejsach sieciowych, analizując pojawiające 
się tam pakiety. Analizowane są one pod 
kątem  informacji  istotnych  dla  bezpie-
czeństwa lub sprawnego funkcjonowania 
sieci. Dzięki skonfigurowaniu odpowied-
nich  preprocesorów,  możemy  polecić 
Snortowi wyszukiwanie informacji o pró-
bach skanowania portów, atakach zwią-
zanych  z  błędną  fragmentacją  pakietów 
IP,  czy  próby  ukrycia  ataków  poprzez 
zakodowanie adresów HTTP URI.

Następnie  pakiety  są  przekazywane 

do  modułu,  który  porównuje  je  z  regu-
łami  opisującymi  różne  znane  metody 
ataków  (tzw.  sygnaturami  ataków).  Do 
nas  należy  wybranie  sygnatur,  które 
będą potrzebne w naszym systemie. Sam 
Snort  nie  potrafi  określić,  czy  w  naszej 
sieci  połączenie  na  konkretny  port  jest 
legalne,  czy  też  powinien  je  traktować 
jako próbę włamania – o tym my decy-
dujemy podczas konfiguracji. Jeśli zosta-
nie  wykryty  atak,  Snort  może  zareago-
wać na wiele różnych sposobów. Oprócz 
powiadomienia  administratora  i  zapisa-
nia  informacji  o  ataku,  może  również 
podjąć  środki  zaradcze,  np.  przerywa-
jąc  połączenie  z  komputerem  potencjal-
nego włamywacza, a nawet odpowiednio 
zmieniając zaporę sieciową.

Z  takim  zabezpieczaniem  należy 

uważać,  gdyż  może  to  doprowadzić  do 
tego,  że  intruz  zdezorganizuje  naszą 
pracę symulując przeprowadzanie ataków 
z sieci, na których nam zależy. Można to 
oczywiście obejść odpowiednio modyfi-
kując nasze skrypty. Generalnie Snort nie 
jest może zbyt łatwy w konfiguracji, ale 
jeśli  sobie  z  tym  poradzimy,  to  uzyska-
my narzędzie porównywalne z produkta-
mi komercyjnymi. Dzięki niemu nie tylko 
będziemy  mogli  wykrywać  ataki,  ale 
również  dowiadywać  się  o  innych  pro-
blemach  w  naszej  sieci,  np.  związanych 
z błędami w oprogramowaniu.

Instalacja i obsługa Snorta

Program Snort możemy pobrać ze strony 
domowej projektu (http://www.snort.org/ ),

Rysunek 5. 

Afick wydaje się być godnym 

następcą sławnego Tripwire

background image

31

bezpieczeństwo

bezpieczny internet

www.lpmagazine.org

gdzie  dostępne  są  nie  tylko  źródła,  ale 
i pakiety binarne (RPM). Można też sko-
rzystać  z  pakietów  dostępnych  w  róż-
nych  repozytoriach  (np.  DAG  –  http://
dag.wieers.com/packages/snort/ 
).  Przed 
uruchomieniem  warto  sprawdzić,  czy 
Snort  będzie  oczekiwał  na  połączenia 
na  właściwym  interfejsie.  Informacja  ta 
umieszczona  jest  w  pliku  /etc/sysconfig/
snort
  w  linii 

INTERFACE="eth0"

.  Jeśli  do 

łączenia  z  siecią  wykorzystujemy  inny 
interfejs,  należy  poprawić  tą  wartość. 
Warto też sprawdzić konfigurację zawar-
tą  w  pliku  /etc/snort/snort.conf.  Później 
już  możemy  uruchomić  Snorta  polece-
niem 

/etc/rc.d/init.d/snortd  start

Jeśli  teraz  popatrzymy  do  pliku  /var/
log/messages
, od razu zobaczymy znacz-
ny przyrost liczby komunikatów. Oprócz 
tego,  pojawi  się  katalog  /var/log/snort/
Własnoręczna  analiza  tylu  komunika-
tów  nie  ma  sensu  –  lepiej  skorzystać  z 
gotowych narzędzi. Dostępne są one na 
stronie  http://www.snort.org/dl/contrib/ 
wraz z innymi narzędziami przydatnymi 
w zarządzaniu Snortem.

Zasady korzystania 

z komputera

Jeśli naprawdę zależy nam na bezpiecz-
nym korzystaniu z sieci, nie powinniśmy 
ograniczać się do jednorazowego zadba-
nia  o  bezpieczeństwo.  Każdego  dnia 
pojawiają  się  komunikaty  o  wykryciu 
kolejnych  błędów  w  oprogramowaniu. 
Część  z  tych  błędów  może  mieć  mniej-
sze  lub  większe  znaczenie  dla  bezpie-
czeństwa.  Jeśli  nie  zadbamy  o  uaktual-
nienia oprogramowania, cała nasza praca 
może  pójść  na  marne.  Czasem  przez 
naszą pomyłkę, zaniedbanie lub nieświa-
domość  możemy  otworzyć  włamywa-
czowi drogę do naszego systemu. Z tego 
powodu podczas codziennego korzysta-
nia  z  komputera  powinniśmy  stosować 
się do szeregu zaleceń:

•   Z  konta  superużytkownika  (root) 

korzystamy tylko w bardzo wyjątko-
wych okolicznościach. Nawet w przy-
padku  instalacji  oprogramowania  ze 
źródeł,  uprawnienia  administratora 
uzyskujemy  tylko  na  czas  potrzeb-
ny  do  uruchomienia  polecenia 

make 

install

.

•   Regularnie uaktualniamy system, inst-

alując  poprawione  wersje  oprogra-
mowania  (w  tym  również  jądra). 
Łączy  się  to  ze  śledzeniem  serwi-
sów  dotyczących  bezpieczeństwa, 
jak  również  stron  domowych  pro-
gramów zainstalowanych na naszym 
dysku.  Jeśli  dla  naszej  dystrybu-
cji  dostępne  są  serwery  z  aktuali-
zacjami, to powinniśmy z nich sko-
rzystać.

•   Nigdy  nie  instalujemy  oprogramo-

wania  pochodzącego  z  nieznane-
go  źródła.  Mam  tu  na  myśli  przy-
godnych  znajomych  spotkanych  na 
IRC,  czy  serwery  z  oprogramowa-
niem, o którym niewiele lub nic nie 
wiemy.  Nie  znaczy  to,  że  pobierając 
pliki z bardzo popularnych serwisów 
jesteśmy  całkiem  bezpieczni  –  zda-
rzały  się  już  przypadki  podrzucenia 
na  takie  serwery  oprogramowania  z 
koniami trojańskimi.

•   Przy instalowaniu programów powin-

niśmy w miarę możliwości sprawdzać 
podpisy PGP oraz sumy MD5 pobra-
nych plików. Pozwoli to upewnić się, 
że oprogramowanie otrzymaliśmy w 
takiej  postaci,  w  jakiej  zamierzyli  to 
autorzy.

•   Zawsze  stosujemy  hasła  trudne  do 

złamania.  Staramy  się  unikać  prze-
syłania  haseł  kanałami  niekodowa-
nymi  (np.  w  przypadku  korzystania 
z poczty należy używać szyfrowania 
SSL). Jeśli nie mamy możliwości prze-
syłania hasła w postaci zakodowanej, 
to należy zadbać, aby było ono uni-
kalne (nie powinniśmy go wykorzy-
stywać nigdzie indziej). Dzięki temu 
w  razie  jego  przechwycenia  przez 
włamywacza,  narażona  będzie  tylko 
jedna  usługa  (np.  zdalna  poczta),  a 
nie cały system.

•   Regularnie przeglądamy logi systemo-

we – samodzielnie lub z pomocą ana-
lizatorów logów, wysyłających powia-
domienia pocztą elektroniczną.

•   Wykonujemy  kopie  zapasowe  istot-

nych  danych.  Najlepiej  wykonywać 
je na płytach CD, lecz w razie braku 

nagrywarki powinniśmy kopie umie-
ścić na innej partycji, dysku lub kom-
puterze.

•   Nie 

udostępniamy 

komputera 

osobom,  których  nie  znamy  lub  do 
których nie mamy zaufania. Dotyczy 
to  nie  tylko  umożliwiania  dostępu 
przez SSH czy FTP, ale także dostępu 
fizycznego. Nie wykonujemy też żad-
nych  poleceń  podanych  nam  przez 
takie osoby, jeśli nie jesteśmy absolut-
nie pewni, co dane polecenie robi.

Zakończenie

Większość  prób  włamań  do  naszych 
komputerów jest wynikiem działania tzw. 
script kiddies, czyli osób – z reguły dość 
młodych  –  używających  gotowych  roz-
wiązań. Korzystają oni zazwyczaj z tych 
samych  źródeł  informacji  co  my,  zatem 
będąc  na  bieżąco  mamy  całkiem  sporą 
szansę,  że  nie  uda  im  się  spenetrować 
naszego systemu. Dbajmy o nasz system, 
a  wówczas  będziemy  mogli  z  czystym 
sumieniem  wędrować  po  naszej  global-
nej sieci. 

Rysunek 6. 

Snort jest wciąż rozwijany,

a na jego stronie można znaleźć obszerną 
dokumentację

W Internecie:

•   Afick:

http://afick.sourceforge.net/

•   Firewall Builder:

http://www.fwbuilder.org/

•   HPing:

http://wiki.hping.org/

•   Firewall Tester:

http://ftester.sourceforge.net/

•   Snort:

http://www.snort.org/

•   Lista dwudziestu najpoważniejszych 

zagrożeń dla bezpieczeństwa:
http://www.sans.org/top20/

•   SANS:

http://www.sans.org/

•   Secunia:

http://secunia.com/

•   SecurityFocus:

http://www.securityfocus.com/

•   CERT Coordination Center:

http://www.cert.org/

•   LinuxToday:

http://linuxtoday.com/

•   Artykuł o uwierzytelnianiu z wykorzy-

staniem kluczy w OpenSSH:
http://www.securityfocus.com/
infocus/1810
/

•   Serwis IPSec.pl:

http://ipsec.pl/

•   Serwis Hacking.pl:

http://hacking.pl/

background image

bezpieczeństwo

32

styczeń 2005

Odzyskiwanie danych 

– sposoby i przegląd 

narzędzi

Michał Niwicki

N

a pewno każdy z Was sta-
nął lub stanie przed proble-
mem  odzyskania  danych. 
Zazwyczaj  w  momencie, 

w którym uświadamiamy sobie, że stra-
ciliśmy istotne pliki, nie widzimy szansy 
na  ich  odratowanie  i  nie  podejmuje-
my  żadnych  działań.  Spotykamy  się 
z  dwiema  sytuacjami.  Pierwsza  wiąże 
się  z  fizycznym  uszkodzeniem  nośni-
ka  danych  (twardego  dysku,  dyskiet-
ki,  płyty  CD/DVD),  co  uniemożliwia 
nam  prawidłowe  odczytanie  zawarto-
ści całego pliku. Druga to taka, w której 
umyślnie lub nieumyślnie skasowaliśmy 
z dysku potrzebny nam plik i chcemy go 
odzyskać.  W  obu  przypadkach  istnieją 
sposoby i narzędzia pozwalające na cał-
kowite  lub  częściowe  odzyskanie  utra-
conych danych.

W  niniejszym  artykule  dokonamy 

przeglądu  kilku  popularnych  aplika-
cji  służących  do  odzyskiwania  danych 
–  uszkodzonych  bądź  usuniętych 
z naszego komputera.

Fizyczne uszkodzenie 

nośnika

Zanim przejdziemy do omówienia spo-
sobu  odzyskania  utraconych  danych 
z  uszkodzonego  nośnika,  wytłumaczy-
my najpierw, jak dochodzi do uszkodze-
nia nośnika i jaki ma to wpływ znajdu-
jące się na nim dane.

Tradycyjnie,  wszystkie  magnetycz-

ne  nośniki  danych  –  dyskietki,  twarde 
dyski,  taśmy  –  mogą  ulec  częściowe-
mu  rozmagnesowaniu  na  skutek  kon-
taktu  z  różnymi  urządzeniami  wytwa-
rzającymi  duże  pole  elektromagnetycz-
ne  (magnesy,  bramki  kontrolne  na  lot-
nisku,  telefony  komórkowe).  W  przy-
padku  płyt  CD/DVD  najczęściej  spo-

tykamy  się  z  fizycznym  uszkodzeniem 
jednej  z  optycznych  warstw  na  skutek 
zarysowania.

W obu sytuacjach, gdy dochodzi do 

utraty  części  (kilku  lub  kilkudziesię-
ciu  bajtów)  pliku  lub  systemu  plików, 
system  komunikuje  nam,  że  odczyt 
z  urządzenia  jest  niemożliwy  i  zaprze-
staje dalszych prób dostępu do danych.

Spróbujmy  zilustrować  przykładem 

zaistniały  problem.  Posiadamy  płytę, 
na której znajduje się dwugodzinny film 
w  pliku  o  łącznej  objętości  690  mega-
bajtów. Na skutek fizycznego uszkodze-
nia  (przypadkowe  zarysowanie  płyty) 
nie jest możliwy odczyt kilku ostatnich 
bajtów pliku, w efekcie czego program 
odtwarzający przerywa działanie przed 
najciekawszym fragmentem filmu.

Wiemy lub domyślamy się, że uszko-

dzeniu uległo jedynie kilka sekund cen-
nego  nagrania,  natomiast  kilkanaście 
pozostałych minut nadal znajduje się na 
płycie.  Stajemy  przed  problemem,  jak 
zmusić  program  do  odtworzenia  tego, 
co  znajduje  się  za  uszkodzonym  obsza-
rem.  Innymi  słowy,  chcemy,  aby  pro-
gram nie przerywał działania w przypad-
ku, w którym nie może odczytać zapisa-
nych danych.

DD_rescue

Gdy próba przekopiowania uszkodzone-
go pliku standardową metodą nie skutku-
je (tak dzieje się, gdy używamy standar-
dowej komendy 

cp

), z pomocą przycho-

dzi nam program DD_rescue.

Jego  zasada  działania  jest  prosta 

–  próbuje  odzyskać  uszkodzone  bajty 
pliku, a w przypadku, gdy nie może ich 
odczytać, nie przerywa swego działania, 
nie ucina uszkodzonego pliku i kontynu-
uje proces kopiowania.

Na płycie CD/DVD

Na płycie CD/DVD znajduje się 

oprogramowanie omawiane 

w artykule.

background image

33

bezpieczeństwo

narzędzia data recovery

www.lpmagazine.org

W efekcie otrzymujemy lekko uszko-

dzony,  ale  już  możliwy  do  odczytania 
plik,  który  nie  różni  się  rozmiarem  od 
oryginału, ale zawiera błędy w miejscu, 
w którym doszło do uszkodzenia nośni-
ka, z którego kopiowaliśmy.

Praca z dd_rescue

Kopiowanie  za  pomocą  dd_rescue  jest 
proste.  Wywołanie  programu  przybiera 
postać: 

dd_rescue  [opcje]  <plik_źró-

dłowy> <plik_docelowy>.

Jeśli  w  wyniku  działania  komen-

dy 

dd_rescue  plik_a  plik_b

  program 

skopiuje  pliki  bez  napotkania  na  błędy, 
powinien  wyświetlić  się  komunikat 
podobny do poniższego:

dd_rescue: (info): plik_a (0.8k): EOF
Summary for plik_a -> plik_b:
dd_rescue: (info): ipos: 0.8k,

S

             opos: 0.8k, xferd: 0.8k 
errs:0, errxfer: 0.0k, succxfer: 0.8k
+curr.rate: 15kB/s, avg.rate: 15kB/s,

S

             avg.load:  0.0%

Jeśli podczas procesu kopiowania przytra-
fią się błędy odczytu, pojawi się dodatko-
wa informacja dotycząca ilości uszkodzo-
nych bajtów i miejsca ich występowania.

Dodatkowe  przydatne  opcje  progra-

mu  to  kopiowanie  piku  od  określonej 
pozycji (w bajtach), kopiowanie zbioru 
danych od końca do początku, wyświe-
tlanie  pełnej  informacji  o  procesie 
odczytywania  i  zapisywania  przetwa-
rzanych danych oraz określenie górnej 
granicy  ilości  błędów,  po  osiągnięciu 
której praca programu jest przerywana.

Pewnym ułatwieniem w korzystaniu 

z programu DD_rescue jest skrypt napi-
sany z BASH-u – DD_rhelp. Jego działa-
nie opiera się na programie DD_rescue

ale  od  użytkownika  nie  jest  wymaga-
ne  podawanie  żadnych  dodatkowych 
opcji  –  wystarczy,  że  w  linii  poleceń 
wpiszemy: 

dd_rhelp  <plik_źródłowy> 

<plik_docelowy>

,  a  skrypt  domyślnie 

odzyska (jeśli tylko mu się uda) wszel-
kie utracone dane.

Skasowane pliki – jak 

sobie z nimi radzić

Zdarza  się,  że  na  skutek  pomyłki  lub 
celowego  działania  osób  trzecich  w 
wyniku operacji kasowania (plików lub 
partycji) straciliśmy część lub wszystkie 
nasze  dane.  Mogłoby  się  wydawać,  że 
wszystko stracone, ale i na takie przy-
padki  jest  rada.  W  najlepszym  razie 
może  okazać  się,  że  dane  są  w  100% 
odzyskiwalne, ale najczęściej spotkamy 
się z sytuacją, w której odzyskamy jedy-
nie  mniejszy  lub  większy  procent  ska-
sowanych zbiorów. Paradoksalnie, to co 
wygląda  bardzo  groźnie,  może  okazać 
się  łatwe  w  naprawie.  Najczęstszym 
omawianym  wyżej  przypadkiem  jest 
zamazanie  tablicy  partycji  dysku  twar-
dego  (tracimy  wszystko)  lub  skasowa-
nie  pliku/plików  komendą  rm

.

  Narzę-

dzia,  jakich  można  użyć  w  obu  przy-
padkach, przedstawię poniżej.

Namierzanie partycji programem 

Gpart

Jeśli z pewnych powodów zamazaliśmy 
tablicę  partycji  dysku  twardego  (dzieje 
się  tak  przykładowo  podczas  nieuważ-
nego dzielenia dysku na partycje), mimo 
że dysk wygląda tak, jakby nic na nim się 
nie znajdowało, nasze dane wciąż na nim 
są. Proces przywracania struktury dysku 
do pierwotnej postaci wymaga od użyt-
kownika  wiedzy  na  temat  tego,  jakiej 
wielkości i jakiego typu partycje znajdo-

wały się na nim przed zamazaniem tabli-
cy  partycji.  Problem  w  tym,  że  takimi 
informacjami  większość  użytkowników 
nie  dysponuje.  Tu  z  pomocą  przycho-
dzi Gpart – narzędzie, którego działanie 
wydaje się być proste: program analizu-
je  dane  zapisane  na  dysku  (jeszcze  nie 
skasowane)  i  na  ich  podstawie  próbuje 
odbudować tablicę partycji dysku.

Praca z narzędziem Gpart

Ponieważ  po  skasowaniu  partycji  nie 
mamy dostępu do żadnych danych, które 
się  na  dysku  znajdują,  nie  możemy  rów-
nież  uruchomić  Gparta.  W  takiej  sytu-
acji  powinniśmy  skorzystać  z  ratunko-
wej  dystrybucji  Linuksa  –  RIP.  Po  wło-
żeniu  do  napędu  CD/DVD  bootowalnej 
płyty  i  ponownym  uruchomieniu  kom-
putera, naszym oczom ukaże się ascetycz-
nie wyglądające okno terminala. Po zalo-
gowaniu się na konto administratora sys-
temu (root) mamy do dyspozycji kilkadzie-
siąt programów służących do odzyskiwa-

R

E

K

L

A

M

A

Wybrane parametry 

DD_rescue:

•  

-w

 – przerywa kopiowanie jeśli 

napotka na błędy

•  

-r

 – kopiowanie wsteczne 

(od końca pliku do początku)

•  

-v

 – wyświetla pełną informację 

o procesie kopiowania

•  

-q

 – nie wyświetla żadnych 

komunikatów

•  

-e x

 – przerywa działanie po 

osiągnięciu x błędów

•  

-s s

 – rozpoczyna kopiowanie pliku 

od s bajta

•  

-m m

 – kopiuje jedynie m bajtów

•  

-d

 – wykorzystuje bezpośredni 

dostęp do urządzenia blokowego 
(z pominięciem pamięci cache)

background image

34

bezpieczeństwo

styczeń 2005

nia i ratowania różnych systemów opera-
cyjnych. Nas interesuje Gpart.

Wydajemy  polecenie 

gpart  [opcje] 

urządzenie

 i czekamy na to, aż program 

przeanalizuje  nasz  nośnik  danych  pod 
względem  struktury  zapisanych  na  nim 
danych. Przykładowo:

# gpart /dev/hda

spowoduje, że narzędzie będzie analizo-
wało dysk /dev/hda.

Po  pewnym  czasie  (może  trwać  to 

nawet  kilkanaście  minut  –  w  zależności 
od tego jakiej wielkości posiadamy dysk) 
naszym oczom powinna ukazać się infor-
macja podobna do tej z Listingu 1.

Wynika  z  niej,  że  pierwsza  party-

cja jest typu ext2 i ma rozmiary 101 MB, 
podczas gdy druga partycja jest najpraw-
dopodobniej partycją wymiany (swap) o 
rozmiarach sięgających ponad 1 GB. 

Jeśli  przedstawione  informacje  uwa-

żamy  za  prawdziwe,  możemy  zapisać 
na  dysku  nową  tablicę  partycji  wydając 
polecenie:

# gpart -W /dev/hda /dev/hda

Parametr  /dev/hda  podajemy  dwa  razy, 
gdyż pierwszy mówi nam, jaka jest struk-
tura badanego dysku, a drugi zapisuje na 
wskazanym dysku tablicę partycji.

Po ponownym uruchomieniu kompu-

tera możemy od nowa cieszyć się zawar-
tością naszego dysku.

Więcej o Gpart

Jak  zobaczyliśmy,  w  niektórych  sytu-
acjach  potrafi  naprawić  strukturę  dysku, 
na  którym  po  zamazaniu  tablicy  party-
cji utworzono nowe partycje (jeszcze nie-
formatowane).  Dzieje  się  tak  dlatego,  że 
narzędzie to nie próbuje odzyskać zamaza-
nej tablicy partycji, lecz na podstawie roz-
kładu  danych  na  dysku  (analizuje  sektor 
po sektorze) stara się stworzyć tablicę par-
tycji na nowo. W efekcie, wydawać by się 

mogło, tragiczna w skutkach próba zmiany 
typu partycji z ext3 na swap zostanie pra-
widłowo  zdiagnozowana  przez  Gparta 
i naprawiona.

Mimo  swojej  niepozorności,  Gpart 

jest  potężnym  narzędziem,  które  potra-
fi  o  wiele  więcej  niż  opisaliśmy  powy-
żej. Obsługuje większość znanych typów 
partycji  –  począwszy  od  ext2,  ext3,  xfs
fat, poprzez stosowane w systemie Win-
dows
 ntfs i vfat, a skończywszy na party-
cjach LVM czy hpfs.

Gpart  jest  wyposażony  również 

w  szereg  dodatkowych  użytecznych 
opcji,  służących  przykładowo  do  spo-
rządzania kopii zapasowych sektora roz-
ruchowego,  a  także  do  odzyskiwania 
danych  z  formatowanych  partycji  (tylko 
w niektórych okolicznościach)

Praca z programem unrm

Radziliśmy,  jak  uporać  sobie  z  uszko-
dzonymi  fizycznie  nośnikami  danych, 
z zamazanymi systemami plików, a teraz 
przyszła kolej na odzyskiwanie skasowa-
nych plików. 

Pomocną  aplikacją  w  takich  sytu-

acjach  jest  unrm,  przypominający  nieco 
swoim działaniem program undelete, pra-
cujący w systemie DOS.

Jest to skrypt powłoki BASH, który na 

podstawie analizy i-węzłów potrafi przy-
wrócić skasowane pliki.

Jego działanie jest proste – wystarczy 

w wierszu poleceń wpisać z uprawnienia-
mi administratora systemu komendę 

unrm 

/dev/hda

, aby na ekranie pojawiła się lista 

plików możliwych do odzyskania.

Aplikacją posiada wiele dodatkowych 

parametrów ułatwiających wyszukiwanie 
utraconych  zbiorów.  Możliwe  jest  odzy-
skiwanie danych należących do jakiegoś 
użytkownika  (opcja  -u),  a  także  plików 
zawierających określony tekst (opcja -s). 

Podstawowym  problemem,  który 

pojawia  się  w  przypadku  skuteczne-
go  odzyskania  pliku,  jest  jego  zapis. 
Program  unrm  nie  przywraca  plików 

w  miejsce,  z  którego  zostały  usunięte 
(nie mylmy go zatem z katalogiem Śmiet-
nik
 w niektórych popularnych menedże-
rach  okien),  lecz  tworzy  plik  o  nazwie 

unrm.recovered/unrm.inode#

,  w  którym 

przy  odrobinie  szczęścia  znajdziemy 
nasze skasowane dane.

Profilaktyka

Większości problemów opisanych w arty-
kule  można  uniknąć.  Dobrym  nawy-
kiem  jest  sporządzenie  kopii  zapasowej 
MBR (512 bajtów – mieści się na każdej 
dyskietce).  Wystarczy  w  linii  poleceń 
z uprawnieniami administratora systemu 
wydać komendę:

# dd if=/dev/hda of=mbr bs=512 count=1

W efekcie otrzymamy plik o nazwie mbr 
zawierający kopię naszego sektora rozru-
chowego.

Powinniśmy  także  przyzwyczaić  się 

do  systematycznego  okresowego  sporzą-
dzania  kopii  zapasowej  najważniejszych 
plików  systemowych  (

tar  -cjvf  archi-

wum.tar.bz2  /etc

)  i  katalogu  użytkowni-

ków systemu (

tar -cjvf archiwum.tar.bz2 

/home

).

Wskazane jest również używanie sys-

temu plików z księgowaniem (zastąpmy 
tradycyjny  ext2  nowocześniejszym  roz-
wiązaniem  –  ext3),  aby  w  przypadku 
nagłego spadku napięcia nie trzeba było 
odzyskiwać bajta po bajcie.

Podsumowanie

Utrata  danych  jest  sytuacją,  która  może 
przytrafić  się  każdemu.  Istnieje  szereg 
narzędzi,  za  pomocą  których  możliwe 
jest  odzyskanie  skasowanych  zbiorów. 
Należy również pamiętać, że i te narzę-
dzia  mogą  zawieść  i  wtedy  niezbędna 
stanie  się  kosztowna  wizyta  w  specjali-
stycznym laboratorium.

Najlepszym rozwiązaniem wydaje się 

zachowanie szczególnej ostrożności pod-
czas kasowania plików i pracami związa-
nymi ze zmianami w tablicy partycji. 

W Internecie:

●   Strona domowa DD_rescue:

http://freshmeat.net/projects/
dd_rescue/

●   Strona projektu programu Gpart:
   http://www.stud.uni-hannover.de/

user/76201/gpart/

Listing 1: 

Wynik działania

 

programu Gpart:

Primary partition(1)
   type: 131(0x83)(Linux ext2 filesystem)
   size: 101mb 

#s(208776) s(63-208838)

   chs:  (0/1/1)-(207/2/57)d (0/1/1)-(207/2/57)r

Primary partition(2)
   type: 130(0x82)(Linux swap or Solaris/x86)
   size: 1019mb 

#s(2088448) s(208845-2297292)

   chs:  (207/3/1)-(1023/15/63)d (207/3/1)-(2279/0/61)r

background image
background image

Tytuł

Ilość numerów 

w roku

Ilość zamawianych 

prenumerat

Od numeru pisma 

lub miesiąca

Opłata w zł

z VAT

Software 2.0 (1 płyta CD)

Miesięcznik profesjonalnych programistów

12

250/ 180*

Software 2.0 Extra! (od 1 do 4 płyt CD lub DVD)

Numery tematyczne dla programistów

6

150 / 135**

Linux+ (2 płyty CD)

Miesięcznik o systemie Linux

12

250/180* 

Linux+DVD (2 płyty DVD)

Miesięcznik o systemie Linux

12

270/198* 

Linux w szkole (1 płyta CD)

Zastosowanie Linuksa w edukacji

4

99

Linux+Extra! (od 1 do 7 płyt CD lub DVD)

Numery specjalne z najpopularniejszymi dystrybucjami Linuksa

8

232/198**

PHP Solutions (1 płyta CD)

Dwumiesięcznik o zastosowaniach języka PHP

6

150

PHP Solutions (1 płyta CD) - Prenumerata .PRO***

Dwumiesięcznik o zastosowaniach języka PHP

6

445

Hakin9 (1 płyta CD)

Dwumiesięcznik o bezpieczeństwie i hakingu

6

135

Programy dla Twojej firmy (1 płyta CD)

Oprogramowanie dla małych i średnich przedsiębiorstw

6

135

.psd (1 płyta CD + film instruktażowy na DVD)

Dwumiesięcznik użytkowników programu Adobe Photoshop

6

140

Aurox Linux (7 płyt CD)

Magazyn z najpopularniejszym polskim Linuksem

4

119

W sumie

(liczba prenumerat x cena)

ZAMÓWIENIE PRENUMERATY

Dane osoby / firmy  zamawiającej

Imię i nazwisko

Stanowisko

ID kontrahenta*

* jeżeli jesteś już klientem firmy Software-Wydawnictwo Sp. z o.o. – wystarczy, że podasz swój numer ID kontrahenta; jeżeli nie posiadasz takiego numeru, podaj swe dane teleadresowe                      

Upoważniam firmę Software-Wydawnictwo Sp. z o.o. do wystawienia faktury VAT bez podpisu odbiorcy

Pieczęć firmy i podpis

Nazwa firmy

Dokładny adres

Telefon (wraz z numerem kierunkowym)

Faks (wraz z numerem kierunkowym)

Adres e-mail

Numer NIP firmy

Prosimy wypełnić czytelnie i przesłać 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ż zamówienia telefoniczne: 

(22) 860 17 67

* Cena prenumeraty rocznej dla osób prywatnych
** Cena prenumeraty rocznej dla osób prenumerujących już Software 2.0 lub Linux+
*** Wykupienie prenumeraty PHP Solutions w wersji .PRO za 445 złotych, upoważnia do zamieszczania na 

ostatnich stronach PHP Solutions ogłoszenia o wymiarach 5,4 na 2,7 cm (300 znaków) we wszystkich ko-

lejnych numerach obejmujących prenumeratę (standardowo: 6 numerów). 

UWAGA: Nadesłanie zamówienia jest jednocześnie zobowiązaniem do zapłaty.

www.stock.com.pl

  Jeżeli chcesz zapłacić katrą kredytową, wejdź na stronę 

naszego sklepu internetowego:

background image

        

1

2

3

4

5

6

7

8

9

10 11 12

2000
2001
2002
2003
2004
2004
2004

Numery archiwalne

Prosimy o przesłanie kuponu pocztą lub faksem.

Prosimy w odpowiednim polu zakreślić numery, które Państwo chcą zamówić.

białe pola – 15 zł za Linux+                 

 

 

                                  

 

– rocznik 2001 (12 numerów) – 120 zł
– rocznik 2002 (12 numerów) – 150 zł
– rocznik 2003 (12 numerów) – 150 zł
– rocznik 2004 (12 numerów) – 150 zł

Imię i nazwisko, nazwa firmy ..............................................................................
Dokładny adres: ....................................................................................................
.................................................................................................................................

Wypełnia  płatnik  VAT. 

Oświadczam(y),  że  jestem(śmy)  płatnikiem  VAT 

i upoważniam(y) Software-Wydawnictwo Sp. z o.o. do wystawienia faktury VAT 

bez podpisu odbiorcy.

pieczątka i podpis

Software-Wydawnictwo Sp. z o.o.

ul. Lewartowskiego 6, 00-190 Warszawa, Tel.: (22) 860 17 67

L+

 1/

20

05

niebieskie pola – 27.90 zł za Linux+ DVD

czerwone pola – 9,90 zł za Linux+ bez CD

żółte pola – 24 zł za Linux+

Linux+ 05/2004

(DVD, CD, bez CD)

zielone pola – 16.50 zł za Linux+ DVD

Linux+ 06/2004

(DVD, CD, bez CD)

Linux+ 07/2004

(DVD, CD, bez CD)

Linux+ 08/2004

(DVD, CD, bez CD)

Linux+ 09/2004

(DVD, CD, bez CD)

Linux+ 10/2004

(DVD, CD, bez CD)

Linux+ 11/2004

(DVD, CD, bez CD)

Linux+ 12/2004

(DVD, CD, bez CD)

background image

wywiad

38

styczeń 2005

Wywiad 

z Przemysławem Tołpą, 

menedżerem sprzedaży 

firmy Adaptec

Krzysztof  Krawczyk:

  Na  począt-

ku prosiłbym, abyś krótko przedstawił się 
naszym Czytelnikom.

Przemysław  Tołpa:  Jestem  mene-

dżerem  sprzedaży  w  firmie  Adaptec 
i jestem odpowiedzialny za rejon Europy 
Wschodniej  i  Bliskiego  Wschodu,  czyli 
także Polski i Czech.

KK:

 Jaki jest wasz stosunek do syste-

mu  Linux  oraz  w  ogólności  do  oprogra-
mowania Open Source?

PT: Dla  firmy  Adaptec  system  Linux 

jest  bardzo  ważny  –  większość  produk-
tów  sieciowych  i  rozwiązań  pamięci 
masowej  firmy  Adaptec  jest  wspierana 
na  Linuksie.  W  wielu  przypadkach  ste-
rowniki  dla  naszych  produktów  są  już 
zawarte  w  jądrze  systemu  Linux.  Zdaje-
my  sobie  sprawę  z  potrzeby  funkcjono-
wania i dalszego rozwoju oprogramowa-
nia Linux jako systemu operacyjnego dla 
przedsiębiorstw.

KK:

  Jakie  wsparcie  dla  systemów 

linuksowych posiadają wasze produkty?

PT:  Praktycznie  wszystkie  produk-

ty  firmy  Adaptec,  zarówno  sieciowe,  jak 
i  przeznaczone  do  pamięci  masowych, 
włączając  produkty  ATA,  Serial  ATA, 
RAID, SCSI, iSCSI oraz TOE/NAC, posia-
dają wsparcie dla systemu Linux i w wielu 
przypadkach sterowniki do nich są zawar-
te w jądrze systemu Linux. Jedynie część 
produktów  firmy  Adaptec,  tych  przezna-
czonych  na  podstawowy  rynek  konsu-
mencki,  oferujemy  jedynie  ze  wsparciem 
dla systemu Windows oraz Mac.

KK:

 Chciałbym jeszcze trochę skupić 

się na tym zagadnieniu. Jakiś czas temu 
kupiłem  kontroler  FireWire  do  swojego 
notebooka. Otrzymałem wraz z nim płytę 
CD  z  oprogramowaniem,  ale  nie  znala-
złem tam pakietów na Linuksa.

PT:  Użytkownicy  Linuksa  mają 

dostęp do sterownika OHCI. Jak można 

zobaczyć na stronach projektu Linux1394 
pod  adresem  http://www.linux1394.org/
hcl.php?class_id=2
, jest wiele produktów 
serii Adaptec FireWire, które współpracu-
ją z tym sterownikiem.

KK:

  Zgadza  się,  ale  użytkownik 

Linuksa mimo wszystko musi sam poszu-
kać rozwiązania. A kto zajmuje się two-
rzeniem nowych wersji sterowników? Czy 
macie  jakąś  wydzieloną  komórkę  linuk-
sową w ramach firmy?

PT:  Nasze  wsparcie  jest  wymagane 

zarówno  przez  naszych  klientów  OEM-
owych,  jak  również  nasze  kanały  dys-
trybucyjne.  Mamy  różne  zespoły  inży-
nierskie w różnych miejscach na świecie, 
skoncentrowanych wyłącznie lub częścio-
wo na tworzeniu linuksowych sterowni-
ków  dla  kontrolerów  Adapteca.  Wiemy, 
że istnieje duże zapotrzebowanie na nie 
dla systemów SUSE i Red Hat.

KK:

 Wróćmy do rozwiązań serwero-

wych. Jak wygląda wsparcie dla kontrole-
rów Serial ATA dla Linuksa?

PT: Wszystkie kontrolery naszej firmy 

posiadają  wsparcie  dla  systemu  Linux. 
Pełna lista sterowników jest zamieszczo-
na na naszej stronie internetowej: http://
www.adaptec.com/support/
  lub  http://
www.adaptec.pl/
. Przykładowo, kontrole-
ry Adaptec SATA dwu- i cztero-portowe, 
modele  1210SA  oraz  2410SA,  wspierają 
odpowiednio SUSE oraz Red Hat Linux. 
Również  najnowsze  kontrolery  8-  i  16-
portowe współpracują z tymi systemami. 
Nowe sterowniki oraz najnowsze wersje 
jądra  będą  nadal  zamieszczane  na  stro-
nach  internetowych  w  momencie,  gdy 
będą ogólnie dostępne.

KK: 

Czy jakieś wasze produkty wyko-

rzystują  Linuksa,  tak  jak  przykładowo 
serwer NAS firmy Raidtec?

PT:  Używamy  dostosowanej  wersji 

systemu  Linux  w  wielu  urządzeniach 

pamięci masowej. Dla przykładu podam 
urządzenie  pamięci  masowej  iSA  1500 
iSCSI-to-SATA,  w  której  została  ona 
wykorzystana.

KK:

 Z jakimi producentami systemów 

linuksowych współpracujecie?

PT:  Współpracujemy  ze  wszystkimi 

najważniejszymi  dystrybutorami  rozwi-
jającymi  system  Linux  na  świecie,  włą-
czając Red Hat, SUSE, TurboLinux i wielu 
innych.

KK:

  Jak  oceniacie  rynek  klastrów 

linuksowych  na  świecie?  Czy  mogą  one 
konkurować  z  dużymi  superkomputera-
mi i w jaki sposób?

PT:  Jesteśmy  przekonani,  że  kla-

stry  oparte  na  oprogramowaniu  Linux 
mają  przed  sobą  znakomitą  przy-
szłość,  a  rynek  klastrów  linuksowych
ma zdecydowanie duży potencjał. Nawet
obecnie  klastry  linuksowe  konkurują
z  superkomputerami  –  więcej  na  ten

Przemysław Tołpa

background image

39

wywiad

wywiad z Przemysławem Tołpą

www.lpmagazine.org

temat można znaleźć na stronach CERN
pod  adresem  http://ajt.iki.fi/writings/
cern/index_eng.html
  oraz  http://www.
interex.org/pubcontent/enterprise/mar00/
11ntrad.html
.

KK:

  Pod  koniec  zeszłego  roku  opra-

cowaliście technologię NAC, która wydała 
mi się dość interesująca. Jak jest zasada 
jej działania?

PT:  Ethernet  Networking  ewolu-

ował  od  10  Mb/na  sekundę  (Ethernet), 
przez  100  Mb/na  sekundę  (Fast  Ether-
net),  do  1,000  Mb/na  sekundę  (Giga-
bit Ethernet) oraz TCP/IP Offload Engi-
nes  (rozwiązanie  TOE)  –  są  to  kolejne 
generacje technologii sieciowej Ethernet. 
Firma  Adaptec  wprowadziła  na  rynek 
produkty  technologii  TOE  pod  nazwą 
NAC  (Network  Accelerator  Card  –  sie-
ciowa  karta  przyspieszająca),  np.  GigE 
NAC 7711C (oparty na rozwiązaniu mie-
dzianym) oraz GigE NAC 7711F (oparty 
na światłowodzie). Oba produkty zosta-
ły  zaprojektowane,  aby  maksymalizo-
wać wydajność sieci oraz obniżyć zuży-
cie  samego  procesora.  Poprzez  obsłu-

gę  stosu  TCP/IP  na  poziomie  sprzętu, 
na  karcie,  rozwiązanie  TOE  NAC  firmy 
Adaptec  umożliwia  eliminację  wąskie-
go  gardła  podczas  przetwarzania  TCP 
oraz  pozwala  procesorowi  kompute-
ra  poświęcić  więcej  cykli  na  przetwa-
rzanie  procesów  aplikacji  oraz  umożli-
wia zwiększenie szybkości obsługi sieci 
i wydajności systemu. Aplikacje, do któ-
rych jest przeznaczone rozwiązanie NAC, 
to m.in. aplikacje serwera danych, wyso-
kowydajne komputery przeznaczone do 
zadań technicznych, intensywnie wyko-
rzystywane bazy danych, kopie zapaso-
we oparte o LAN, pamięć masowa NAS 
oraz rozwiązania wideo.

KK:

  Jak  może  zostać  zastosowana 

technologia NAC? 

PT: Technologia NAC jest idealna dla 

wysokowydajnego środowiska informa-
tycznego,  włączając  klastry  oraz  udo-
stępnianie  plików  na  rynkach  werty-
kalnych,  takich  jak  np.  bio-informaty-
ka,  informatyka  działająca  na  potrze-
by  nauki,  wydobycie  ropy  i  gazu  oraz 
sektor  obronności.  Produkt  firmy  Ada-

ptec  TOE  NAC  7711  jest  rozwiązaniem 
przyspieszającym  działanie  sieci,  obni-
żającym  poziom  zaistniałych  opóźnień 
oraz  redukującym  stopień  zużywania 
procesora.  Technologia  NAC  zawiera 
specjalizowany układ scalony ASIC kie-
rujący TCP/IP oraz rozładowujący prze-
twarzanie TCP/IP z hosta i jest najszyb-
ciej  pracującym  i  najbardziej  wytrzy-
małym  rozwiązaniem  dostępnym  na 
rynku.  Technologia  NAC  redukuje 
w znaczącym stopniu obciążenie w sieci 
LAN, przedłużając czas działania serwe-
rów  oraz  maksymalizując  ich  wydaj-
ność.

KK: 

Dziękuję za rozmowę. 

W Internecie:

–   Strona domowa firmy Adaptec:

http://www.adaptec.com/

–   Strona firmy Adaptec poświęcona 

zagadnieniom Linuksa:
http://linux.adaptec.com/

–   Polski oddział firmy Adaptec:
   http://www.adaptec.pl/

R

E

K

L

A

M

A

background image

gnome

aktualności

oprogramowanie

40

grudzień 2004

41

www.lpmagazine.org

GNOME 

     

 News

Dvd::rip 

– ripper płyt DVD

D

vd::rip to napisana w Perlu, z uży-
ciem biblioteki GTK, nakładka gra-

ficzna  na  program  Transcode,  pozwalają-
ca  zgrać  filmy  z  płyt  DVD  do  pliku  .avi 
lub .mpeg.

Instalacja i konfiguracja

Na  stronie  projektu  są  dostępne  pakiety 
dla wielu dystrybucji Linuksa, a nawet dla 
FreeBSD i OpenBSD. Warto z nich skorzy-
stać,  pamiętając  jednak  o  zależnościach. 
Do uruchomienia Dvd::rip potrzebny bę-
dzie pakiet transcode, bez którego aplikja-
cja jest bezużyteczna. Należy również za-
instalować  ImageMagick.  Potrzebny  bę-
dzie  także  interpreter  Perla,  w  wersji  co 
najmniej 5.6.0, oraz moduł Perl GTK. War-
to również zainstalować takie pakiety, jak 
xvid4conf,  ogmtools,  subtitleripper,  dzię-
ki  którym  będziemy  dysponować  więk-
szą liczbą funkcji przy rippowaniu. Ponad-
to,  w systemie powinien być zainstalowa-
ny jeden z dwóch najpopularniejszych od-
twarzaczy  multimediów  (a  najlepiej  oby-
dwa), czyli MPlayer lub Xine

Jeśli  chcemy  instalować  program  ze 

źródeł,  to,  po  zainstalowaniu  wyżej  wy-
mienionych  aplikacji,  musimy  rozpako-
wać  skompresowane  źródła  poleceniem: 

tar  xfz  Video-DVDRip-<wersja>.tar.gz

przejść  do  utworzonego  katalogu  (

cd 

Video-DVDRip-<wersja>

) i wykonać w nim 

kolejno polecenia: 

perl  Makefile.PL

make 

i

 

make test

. Jeśli test przebiegnie pomyśl-

Witold Kieraś

nie,  możemy  wówczas  zainstalować  pro-
gram w systemie, wydając, jako root, pole-
cenie 

make install

. Program uruchamiamy 

poleceniem 

dvdrip

.

Przy  pierwszym  uruchomieniu  pro-

gramu ukaże się nam okno konfiguracji. 
Nie trzeba wszystkich pól uzupełniać od 
razu,  gdyż  można  do  konfiguracji  wró-
cić  później,  wybierając  z  menu  progra-
mu pozycję Edit>Edit Preferences... Pro-
gram  przechowuje  wszystkie  ustawienia 
w ukrytym pliku .dvdriprc, znajdującym 
się  w  katalogu  domowym  użytkownika, 
więc  najłatwiejszym  sposobem  na  przy-
wrócenie  ustawień  domyślnych  jest  wy-
kasowanie tego właśnie pliku.

Okno  konfiguracji  jest  podzielone  na 

kilka zakładek. W każdej zakładce na do-
le  znajduje  się  okno,  w  którym  na  zielo-
no są wypisane opcje skonfigurowane po-
prawnie,  a  na  czerwono  te,  których  jesz-
cze nie ustawiono. Niektórych z nich nie 
trzeba  ustawiać  w  ogóle,  jeśli  zdecyduje-
my, że nie chcemy korzystać z dostarcza-
nych przez nich funkcji. W każdej zakład-
ce mamy dostęp do przycisków Check all 
settings
 oraz Check settings on this page, po 
których  wciśnięciu  zostanie  sprawdzona 
poprawność  ustawień  odpowiednio  całe-
go programu i opcji konfigurowanych tyl-
ko w danej zakładce.

W  pierwszej  zakładce  (Filesystem

wskazujemy  kolejno  ścieżkę  do  napędu 
DVD  (zwykle  /dev/dvd  lub  /dev/cdrom), 
punkt  montowania  napędu  DVD  (praw-
dopodobnie /mnt/dvd/ lub /mnt/cdrom/ ), 
domyślny  katalog  dla  danych  programu 
(ustawiony  wedle  uznania  –  należy  pa-
miętać, aby użytkownik miał prawa zapisu 
i odczytu do tego katalogu), domyślny ka-
talog dla plików rip, w których są zapisy-
wane  projekty,  oraz  rozszerzenie  dla  pli-
ków w formacie OGG.

W  drugiej  zakładce  (Commands),  je-

śli  tylko  mamy  zainstalowane  odtwarza-
cze  Xine  i  MPlayer,  prawdopodobnie  nie 
musimy  nic  poprawiać.  Wyjątkiem  może 
być ostatnia rubryka dotycząca ścieżki do 
programu  rar  –  program  domyślnie  szu-

ka pliku wykonywalnego rar w katalogu 
/usr/local/bin/.

W trzeciej zakładce (CD Burning) mo-

żemy  zdefiniować  opcje  wypalania  płyt. 
W  większości  przypadków  będą  one  już 
ustawione poprawnie – wskazujemy ścież-
kę  do  urządzenia  nagrywającego,  numer 
urządzenia nagrywającego w formacie wy-
maganym przez program cdrecord (X,X,X
gdzie każdy X jest jest jakąś liczbą całkowi-
tą – wartości te można uzyskać wydając ja-
ko root polecenie 

cdrecord -scanbus

), oraz 

ścieżki  do  programów  cdrecord,  cdrdao
mkisofs i vcdimager (jeśli te programy są 
zainstalowane w systemie, a ich pliki wy-
konywalne są w standardowych ścieżkach 
dostępu, to wystarczy wpisać ich nazwę). 
W  omawianej  zakładce  możemy  jeszcze 
zdefiniować  szybkość zapisu (Writing spe-
ed
)  oraz  metodę  kasowania  zawartości 
nośników  CD-RW  (fast  lub  all).  W  kolej-
nej zakładce możemy jeszcze zdefiniować 
opcje  programu  nagrywającego  cdrdao 
– wybrać sterownik (można sprawdzić, ja-
ki sterownik obsługuje naszą nagrywarkę 
na stronie programu, pod adresem: http://
cdrdao.sourceforge.net/drives.html#dt
), ze-
zwolić  lub  nie  na  tzw.  overburning,  czy-
li  nagrywanie  na  obszarze  nośnika  wy-
kraczającym poza jego nominalną pojem-
ność,  oraz  zadecydować,  czy  po  zakoń-
czeniu  nagrywania  tacka  nagrywarki  ma 
się  wysuwać  automatycznie.  Należy  jed-
nak pamiętać, że program Dvd::rip oferu-
je tylko podstawowe funkcje nagrywania, 
zatem użytkownik nie powinien zrażać się 
ewentualnym  niepowodzeniem  w  konfi-
guracji tych opcji, ponieważ do nagrywa-
nia  można  wykorzystać  zewnętrzne,  bar-
dziej przyjazne, programy, np. K3b.

Przedostatnią 

zakładkę, 

Cluster 

options,  pomijamy  –  dotyczy  ona  wyko-
rzystywania  klastrów  do  rippowania  płyt 
DVD.  W  ostatniej  zakładce,  Miscellane-
ous options
, możemy zdefiniować domyśl-
ny kodek, wykorzystywany przy konwer-
sji filmów DVD, oraz domyślny format pli-
ków  wynikowych  konwersji.  Ustawienie 
opcji  Preferred  language  spowoduje,  że 

Rysunek 1. 

Konfiguracja programu jest 

bardzo prosta

background image

gnome

aktualności

oprogramowanie

40

grudzień 2004

41

www.lpmagazine.org

GNOME 

     

 News

GIMP 2.2 coraz bliżej

Twórcy GIMP-a, najpopularniejszego 
linuksowego programu do obróbki 
grafiki, nie zwalniają tempa. Po 
udanej wersji 2.0 przygotowują już 
wersję 2.2 – jej kolejne wersje testowe 
są dostępne w Internecie. Wśród wielu 
zapowiadanych zmian uwagę zwracają 
liczne udogodnienia w pracy, takie 
jak poprawienie interfejsu, znaczne 
ulepszenie obsługi techniki drag-and-
drop
 pomiędzy GIMP-em a innymi 
programami, oraz usprawnienie 
kopiowania i wklejania obiektów 
pomiędzy GIMP-em a programami 
zewnętrznymi, w tym OpenOffice.org 
Abiwordem.
http://gnomedesktop.org/node/2051
http://www.gimp.org/

GNOME-owy Firefox

Na fali popularności przeglądarki 
Firefox powstały tematy graficzne dla 
niej, upodabniające ją do natywnych 
programów GNOME.
http://gnomefx.mozdev.org/

GNOME 2.9.1

Od niedawna możemy cieszyć się 
wersją 2.8 środowiska GNOME, ale 
jego programiści nie marnują czasu 
i ostro zabierają się za tworzenie 
wersji 2.10. Na razie ukazała się 
pierwsza wersji środowiska w gałęzi 
rozwojowej, oznaczona numerem 2.9.1. 
Zakończenie prac nad wersją 2.10 
planowane jest na marzec 2005 roku. 
Deweloperzy zachęcają do testowania!
http://gnomedesktop.org/node/2021

GNOME Personal Web 

Publishing

Powstał niedawno projekt GNOME 
Personal Web Publishing
. mający na 
celu stworzenie narzędzia podobnego 
do znanego z MacOS X programu 
Personal Web Sharing. Ma on ułatwiać 
użytkownikowi publikowanie stron 
internetowych oraz wymianę plików 
zarówno w Internecie, jak i w sieciach 
lokalnych. Na razie program jest 
w wersji 0.0.2. Napisany jest w C# 
i, co za tym idzie, wymaga Mono.
http://gpws.sourceforge.net/

Grisbi 0.5.2

Grisbi to ciekawy program do 
zarządzania osobistymi finansami, 
napisany przy użyciu GTK 
i przeznaczony oczywiście dla 
GNOME. Dzięki programowi możemy 
zaplanować nasz domowy budżet na 
najbliższy miesiąc. Grisbi posiada 
też wersję dla platformy Win32. 
Program został napisany przez 
deweloperów z Francji i pierwotnie 
był przystosowany dla francuskiego 
użytkownika. Jego popularność 
wzrosła jednak z chwilą stworzenia 
angielskiej wersji programu. 
Deweloperzy wciąż jednak poszukują 
chętnych do przetłumaczenia 
Grisbi na inne języki. Program 
rozpowszechniany jest na licencji GPL.

program domyślnie będzie wybierał przy 
rippowaniu  ścieżkę  dźwiękową  w  zdefi-
niowanym  przez  nas  języku,  o  ile  oczy-
wiście na płycie DVD zapisane jest więcej 
niż  jedna  ścieżka  dźwiękowa  i  dostępna 
jest preferowana przez nas wersja języko-
wa. Całość ustawień zatwierdzamy przyci-
skiem OK.

Rippowanie

Po  pomyślnym  skonfigurowaniu  progra-
mu możemy zabrać się od razu do przete-
stowania jego działania. Z menu programu 
wybieramy File>New Project. Konfigura-
cja  projektu  przebiega  w  podobny  spo-
sób, jak konfiguracja programu – przecho-
dzimy kolejno od jednej zakładki do dru-
giej. W pierwszej z nich (Storage) wybiera-
my  nazwę  dla  projektu.  Po  wpisaniu  na-
zwy, kolejne pola, w których musimy po-
dać miejsce przechowywania plików VOB 
(film DVD) i plików AVI (przekonwertowa-
ny film), zostaną odpowiednio wypełnio-
ne (możemy je oczywiście zmienić). Mu-
simy  jeszcze  wybrać  sposób  rippowania 
–  przegranie  na  dysk  i  potem  konwersja 
(Rip data from DVD to harddisk before en-
coding
), konwersja w locie wprost z płyty 
DVD (Encode DVD on the fly) lub konwer-
sja  z  wykorzystaniem  obrazu  płyty  DVD 
przechowywanym  na  dysku  we  wskaza-
nym katalogu (Use existing DVD image lo-
cated in this directory:
).

W  drugiej  zakładce  (RIP  Title)  może-

my  już  przeglądać  zawartość  płyt  DVD 
–  jeśli  włożyliśmy  płytę  do  napędu,  to 
należy  wcisnąć  przycisk  Read  DVD  table 
of contents
, a w ramce poniżej ukażą się 
wszystkie ścieżki zapisane na płycie. Inte-
resuje nas ta najdłuższa (pierwsza pozycji 
w każdym wierszu to czas trwania ścież-
ki),  ewentualne  pozostałe  (jeśli  w  ogó-
le  są),  które  stanowią  dodatki  i  filmy  re-
klamowe.  W  rozwijanym  menu  po  pra-
wej stronie, możemy też wybrać domyśl-
ną dla rippowania, ścieżkę dźwiękową dla 
filmu. Należy pamiętać, że w kolejnych za-
kładkach przetwarzane będą ścieżki, które 
zostały  wskazane  w  tym  oknie.  Wciśnię-
cie przycisku RIP selected title(s)/chapter(s) 
spowoduje przegranie wskazanych ścieżek 
z płyty DVD na twardy dysk.

W  trzeciej  zakładce,  Clip  &  Zoom

decydujemy  o  parametrach  przycięcia 
i  zmiany  wielkości  obrazu.  Standardowo 
proces  ten  przebiega  w  trzech  krokach: 
pierwsze  cięcie  (1st  clipping),  powiększe-
nie (Zoom) i drugie cięcie (2nd clipping). 
Parametry  każdego  z  tych  kroków  mo-

GNOME 

     

 News

żemy  dobrać  samodzielnie  w  dolnej  czę-
ści okna. Każdemu z kroków odpowiada 
podgląd  dostępny  w  trzech  oddzielnych 
okienkach.

Czwarta  zakładka,  Subtitles,  dotyczy 

napisów  w  filmie  –  możemy  w  niej  wy-
brać jedną z wersji napisów, jeśli jest do-
stępnych kilka na płycie. Możemy też zmo-
dyfikować sposób ich wyświetlania (ram-
ka Render subtitle on movie).

Kolejna zakładka, Transcode, to konfi-

guracja opcji programu kodującego. Więk-
szość  z  nich  zdefiniowaliśmy  już  wcze-
śniej,  ale  możemy  je  tutaj  zmienić.  Prze-
ciętnego  użytkownika  zainteresuje  naj-
bardziej  ramka  Video  bitrate  calculation
w której definiujemy, na ilu nośnikach i ja-
kiej wielkości ma zmieścić się przekonwer-
towany  film.  Domyślne  wartości  to  dwie 
płyty  po  700  MB  każda.  Możemy  je  do-
brać według własnych preferencji. Na do-
le okna dostępnych jest kilka przycisków: 
Transcode  +  Split  przekonwertuje  wybra-
ne  ścieżki  i  stworzy  tyle  plików  wyjścio-
wych,  ile  wybraliśmy  nośników  dla  fil-
mu.  Przycisk  View  AVI  służy  do  podglą-
du  pliku  wyjściowego.  Proces  konwersji 
trwa  kilkanaście  do  kilkudziesięciu  mi-
nut  –  w  zależności  od  wielkości  filmu 
i parametrów komputera.

Przedostatnia zakładka, Burning, doty-

czy wypalania efektów rippowania na pły-
cie – definiujemy m.in. rodzaj płyty (zwy-
kły  obraz  ISO  9660,  (X)SVCD/CVD  lub 
(X)VCD). Zależy on od wybranego przez 
nas wcześniej kodeka – w przypadku stan-
dardowego formatu DivX będzie to opcja 
pierwsza. Możemy też nadać płycie etykie-
tę i zdefiniować szybkość zapisu.

Podsumowanie

To  tylko  pobieżny  przegląd  podstawo-
wych  i  najczęściej  wykorzystywanych 
możliwości  programu  Dvd::rip.  Zaawan-
sowanych  użytkowników  zainteresuje 
z pewnością tryb klastrowy – możliwość 
rozłożenia  zasobożernego  procesu  rippo-
wania płyt na kilka maszyn połączonych 
w sieć. Pewnym mankamentem programu 
jest  z  pewnością  język  interfejsu  –  Dvd::
rip przemówi do nas wyłącznie po angiel-
sku. Zrekompensować to może, przynajm-
niej  częściowo,  intuicyjny  układ  sterowa-
nia programem. Dużą zaletą programu jest 
również bardzo dobra dokumentacja, do-
stępna  na  stronie  internetowej  projektu 
– niestety również tylko po angielsku.

http://www.exit1.org/dvdrip/

background image

kde

aktualności

oprogramowanie

42

styczeń 2005

43

www.lpmagazine.org

KDE     

    

News

KGpg 

– menedżer kluczy 

szyfrujących

T

ym, którzy nie spotkali się z szyfro-
waniem asymetrycznym i podpisem 

cyfrowym,  należy  się  kilka  słów  wyja-
śnienia. Nie wnikając w szczegóły tech-
niczne, potrzebujemy zawsze dwóch po-
łączonych w parę kluczy – prywatnego 
(tajnego)  i  publicznego.  Klucza  tajne-
go  strzeżemy  jak  oka  w  głowie,  nato-
miast klucz publiczny rozdajemy wszyst-
kim chętnym – możemy go umieścić na 
swojej  stronie  internetowej  lub  na  spe-
cjalnym  serwerze.  Wszystko,  co  zosta-
ło  zaszyfrowane  naszym  kluczem  pu-
blicznym,  może  zostać  odszyfrowane 
wyłącznie  przy  pomocy  naszego  klu-
cza tajnego (takiej wiadomości nie moż-
na odszyfrować nawet kluczem publicz-
nym, którego użyto do jej zaszyfrowania 
– na tym zresztą polega siła kryptogra-
fii asymetrycznej). Zatem, jeśli ktoś bę-
dzie chciał przesłać nam poufną wiado-
mość, zaszyfruje ją naszym kluczem pu-
blicznym  i  prześle  e-mailem,  nie  mar-
twiąc się, że list może zostać przechwy-
cony.  W  gruncie  rzeczy  może  on  taką 
wiadomość  umieścić  nawet  na  publicz-
nie  dostępnym  serwerze  lub  (jeśli  bę-
dzie  miał  taki  kaprys)  jako  ogłoszenie 
w gazecie codziennej. Nie ma to znacze-
nia, ponieważ i tak odszyfrować ją bę-
dzie mógł tylko adresat, czyli posiadacz 
klucza tajnego.

Wraz z szyfrowaniem asymetrycznym 

dostępny  jest  również  podpis  cyfrowy. 
Podpisać  możemy  nim  zarówno  doku-
ment tekstowy, jak i plik binarny. Podpisu 
dokonujemy przy pomocy klucza prywat-
nego. Zweryfikować go możemy przy po-
mocy klucza publicznego – zatem auten-
tyczność podpisu może potwierdzić nie-
mal każdy. Nie można jednak zmienić za-
wartości dokumentu lub pliku bez złama-
nia poprawności podpisu. Jeśli podmieni-
my chociaż jeden bit, wówczas weryfika-
cja da wynik negatywny. Ponadto, podpi-
sanie kluczem publicznym da inny efekt 
niż  podpisanie  kluczem  tajnym  –  zatem 

Witold Kieraś

klucz  publiczny  nie  może  posłużyć  do 
sfałszowania podpisu.

Generujemy klucze

Jeśli  posiadamy  zainstalowane  środowi-
sko  KDE  przynajmniej  w  wersji  3.2,  to 
prawdopodobnie KGpg jest już zainstalo-
wane w systemie. 

Jeśli  posiadaliśmy  już  wcześniej  klu-

cze GnuPG w standardowej ścieżce (ka-
talog .gnupg/ w katalogu domowym), to 
KGpg wykryje je i będziemy mogli z nich 
normalnie korzystać. Jeśli jednak nie po-
siadamy kluczy, to będziemy je musieli te-
raz wygenerować. Aby wygenerować no-
wą parę kluczy, wybieramy z menu Klu-
cze–>Wygeneruj  parę  kluczy...
  lub  wci-
skamy  kombinację  klawiszy  [Ctrl]+[]. 
Musimy  teraz  wypełnić  kilka  pól  w  no-
wootwartym oknie. Nazwa to miejsce na 
nasze  imię  i  nazwisko  lub  pseudonim. 
W  polu  E-mail  wpisujemy  adres  poczty 
elektronicznej, z którego będziemy korzy-
stać  np.  przy  wysyłaniu  zaszyfrowanych 
listów. W polu Komentarz możemy (choć 
nie  musimy)  zamieścić  własne  uwagi  na 
temat  klucza.  Następnie  określamy  datę 
ważności  klucza,  czyli  czas,  po  którym 
klucz zostanie unieważniony (uznany za 
nieważny). W przypadku gdy generujemy 
klucze  jakiegoś  projektu  programistycz-
nego, warto określić rozsądny termin ich 
wygaśnięcia,  bo  może  mieć  to  krytycz-
ne znaczenie dla bezpieczeństwa nie tyl-
ko  naszego,  ale  i  innych  użytkowników 
projektu. Jeśli natomiast ma to być klucz 
wykorzystywany wyłącznie do korespon-
dencji prywatnej, to zwykle wybierzemy 
tutaj opcję Nigdy – wówczas wygeneruje-
my klucze bezterminowe. Rozmiar klucza 
to kolejny parametr decydujący o bezpie-
czeństwie – im większy klucz, tym lepszy. 
Autorzy GnuPG twierdzą, że klucz 1024-
bitowy  w  zupełności  wystarcza.  Zwykle 
to prawda, ale z drugiej strony jedyną nie-
dogodnością  większych  kluczy  jest  wy-
dłużony czas szyfrowania – jeśli nie pra-

cujemy  na  archaicznych  maszynach,  to 
raczej  nie  zauważymy  różnicy.  Propo-
nuję  wybrać  co  najmniej  klucz  2048-bi-
towy.  W  polu  Algorytm  najlepiej  pozo-
stawić  opcję  domyślną,  czyli  DSA  &  El-
Gamal
.  Niektórych  użytkowników  być 
może  skusi  przycisk  Tryb  eksperta.  Jest 
to  opcja  otwierająca  wirtualny  terminal 
i  rozpoczynająca  w  nim  proces  genero-
wania  kluczy  bezpośrednio  w  GnuPG. 
Mamy  wówczas  do  dyspozycji  wszyst-
kie opcje tego programu, ale w większo-
ści przypadków nie są nam one potrzeb-
ne. Po wciśnięciu przycisku OK zostanie-
my poproszeni o dwukrotne podanie ha-
sła  dla  pary  kluczy.  Ważne  jest,  aby  ha-
sło było ono odpowiednio długie (najle-
piej kilkunastoznakowe) i z pozoru bez-
sensowne  (zawierające  znaki  niealfanu-
meryczne),  aby  w  przypadku  wykrad-
nięcia  przez  kogoś  klucza  tajnego,  unie-
możliwić  tzn.  atak  słownikowy.  Po  za-
twierdzeniu hasła rozpoczyna się właści-
wy proces generowania kluczy. Im więk-
sze klucze generujemy, tym dłużej będzie 
on trwał - w przypadku kluczy 4096-bi-
towych na średniej klasy maszynie nawet 
kilkadziesiąt  sekund.  Dzieje  się  tak  dla-
tego, że generator liczb pseudolosowych 
potrzebuje zapełnić swój bufor losowymi 
danymi, a im większy klucz generujemy, 
tym  więcej  czasu  to  zajmuje.  Można  mu 
w tym pomóc poruszając w trakcie gene-
rowania  kluczy  myszką  i/lub  wciskając 

Rysunek 1. 

W KGpg możemy wygodnie 

zarządzać kluczami szyfrującymi

background image

kde

aktualności

oprogramowanie

42

styczeń 2005

43

www.lpmagazine.org

KDE     

    

News

Książka dostępna w sieci

Książka pod tytułem C++ 
GUI Programming with Qt 3

autorstwa Jasmina Blanchette'a, 
jednego z inżynierów firmy 
Trolltech, oraz menedżera 
dokumentacji, Marka Summerfielda
jest obecnie dostępna do ściągnięcia 
w postaci pliku PDF na stronie 
wydawcy.
http://phptr.com/title/0131240722#

KOffice 1.3.4

Wydano kolejną wersję 
poprawkową pakietu biurowego 
KOffice z gałęzi 1.3.x. Poprawiono 
w niej między innymi błąd filtra 
importu dokumentów PDF w 
KWordzie oraz przywrócono 
możliwość kompilacji w KDE 3.1.5 
Qt 3.1.2.
http://www.koffice.org/
announcements/changelog-1.3.4.php

Wprowadzenie do Hydrogen

Linux Jurnal opublikował 
artykuł pod tytułem An Introduction 
to Hydrogen
. Hydrogen jest 
zaawansowanym programem 
perkusyjnym napisanym przy 
użyciu biblioteki Qt, bardzo 
wysoko ocenianym przez 
użytkowników.
http://www.linuxjournal.com/
article.php?sid=7846
http://hydrogen.sourceforge.net/

Nuvola 1.0

Znany artysta grafik, David 
Vignoni,
 udostępnił niedawno 
wersję 1.0 popularnego zestawu 
ikon dla KDE swojego autorstwa 
o nazwie Nouva. Przyznać 
trzeba, że ikony robią wrażenie 
i ucieszą z pewnością każdego 
fana biurkowych “upiększaczy”. 
W skład zestawu wchodzi ponad 
sześciuset (!) ikon Davida.
http://www.kde-look.org/content/
show.php?content=5358

QGO 0.2.2

Powstały niedawno projekt QGO
klient starożytnej dalekowschodniej 
gry Go, napisany w Qt, rozwija 
się całkiem prężnie. Ostatnio 
udostępniono wersję 0.2.2 tego 
programu. QGO pozwala na grę 
z żywym przeciwnikiem w Sieci 
lub z programem, np. popularnym 
silnikiem do gry w Go o nazwie 
Gnugo.
http://qgo.sourceforge.net/

Tropical TuxSaver 1.0

Jesteście spragnieni trójwymiarowych 
wygaszaczy ekranu? Oto ukazała 
się właśnie wersja 1.0 wygaszacza 
o nazwie Tropical TuxSaver
Możemy teraz obserwować na 
naszych ekranach życie pingwina 
na tropikalnej wyspie lub na górze 
lodowej...
http://kde-apps.org/content/
show.php?content=4773

losowo na klawiaturze klawisze, które nie 
powodują drukowana znaków, tzn. [Tab], 
[Caps Lock], [Shift], [Ctrl] i [Alt]. Po wyge-
nerowaniu kluczy dobrze jeszcze zapisać 
do  pliku  tzw.  certyfikat  unieważnienia. 
W  przypadku  zapomnienia  hasła,  zagu-
bienia  lub  złamania  klucza  publicznego 
certyfikat ten może zostać rozpowszech-
niony  w  celu  poinformowania  innych, 
że ten klucz nie powinien być już więcej 
używany. Unieważniony klucz publiczny 
nadaje  się  nadal  do  potwierdzania  pod-
pisów wykonanych w przeszłości, ale nie 
będzie  nim  można  podpisać  dokumen-
tów w imieniu jego właściciela. Nadal bę-
dzie można odszyfrowywać stare wiado-
mości przy pomocy odpowiadającego mu 
klucza prywatnego.

I co dalej?

Klucz  możemy  modyfikować  po  jego 
wygenerowaniu.  Wystarczy  w  głównym 
oknie  KGpg  kliknąć  na  wybrany  klucz 
prawym  przyciskiem  myszy  i  odnaleźć 
opcję  Modyfikuj  klucz.  Możemy  modyfi-
kować  datę  ważności  klucza,  hasło  oraz 
stopień  zaufania.  Możemy  również  do-
dać do klucza nasze zdjęcie –wybieramy 
opcję Dodaj fotografię, a następnie wska-
zujemy plik ze zdjęciem. W menu kontek-
stowym dostępne są również takie opcje, 
jak eksport klucza tajnego do pliku (tak, 
abyśmy  mogli  zrobić  jego  kopię  zapaso-
wą)  czy  podpisanie  cudzego  klucza  pu-
blicznego (świadczy to o naszym przeko-
naniu, że klucz jest poprawny i należy do 
zaufanej osoby).

Teraz możemy w łatwy sposób zarzą-

dzać kluczami, a także szyfrować i pod-
pisywać  wiadomości  oraz  pliki.  Najwy-
godniej  użyć  do  tego  schowka  systemo-
wego. Wystarczy zaznaczyć zaszyfrowany 
tekst (wraz z nagłówkami), wcisnąć kom-
binację  klawiszy  [Ctrl]+[]  (kopiowanie 
do schowka), a następnie prawym przy-

ciskiem  myszy  kliknąć  na  ikonce  KGpg 
(kłódka)  w  tacce  systemowej  i  z  menu 
wybrać  Odszyfruj  zawartość  schowka
Otworzy  się  edytor  KGpg  i  poprosi  nas 
o podanie hasła. Jeśli hasło będzie prawi-
dłowe,  to  wyświetli  rozszyfrowaną  wia-
domość.  Podobnie  w  przypadku  szyfro-
wania  –  zaznaczamy  niezaszyfrowany 
tekst, kopiujemy go do schowka i w me-
nu  ikonki  wybieramy  Zaszyfruj  zawar-
tość  schowka
.  Wówczas  program  zapy-
ta nas, którego klucza ma użyć do zaszy-
frowania  wiadomości, a następnie wyko-
na zadanie w wewnętrznym edytorze. Za-
miast  kopiowania  do  schowka,  możemy 
użyć samego zaznaczania tekstu (bez ko-
nieczności wciskania klawiszy [Ctrl]+[]). 
W tym celu w menu głównego okna pro-
gramu  wybieramy:  Ustawienia–>Konfi-
guracja: KGpg...
, a następnie w zakładce 
Różne  zaznaczamy  opcję  Używanie  za-
znaczenia  myszy  zamiast  schowka
.  Po 
zrestartowaniu  programu  będziemy  mo-
gli już korzystać z tej funkcji.

KGpg,  jako  część  KDE,  jest  w  pełni 

zintegrowany z tym środowiskiem. Klika-
jąc na dowolny plik prawym przyciskiem 
myszy,  otrzymamy  w  menu  konteksto-
wym  opcję:  Działania–>Zaszyfruj  plik
wywołującą ten program.

Opcje  dostępne  w  menu  konfigu-

racji  są  raczej  intuicyjne  i  nie  powin-
ny  sprawić  użytkownikowi  problemów. 
Jedną  z  ciekawszych  funkcji  dostępnych 
w KGpg jest Niszczarka. W menu progra-
mu  wybieramy:  Ustawienia–>Konfigura-
cja:  KGpg...–>Różne
,  a  następnie  klika-
my przycisk Zainstaluj Niszczarkę. Na na-
szym pulpicie pojawi się ikona Niszczar-
ka
.  Służy  ona  do  skutecznego  zamazy-
wania  dokumentów,  których  chcemy  się 
pozbyć tak, aby nie można ich było od-
tworzyć na podstawie zapisów na dysku. 
O  przydatności  takiej  funkcji  boleśnie 
przekonał się w ostatnich miesiącach nie-
jeden polityk w naszym kraju.

Podsumowanie

KGpg  to  program,  który  za  pomocą  kil-
ku  kliknięć  myszą  udostępnia  użytkow-
nikowi  silne  narzędzie  kryptograficzne. 
Z pewnością przyda się ono nawet tym, 
którzy twierdzą, że nie mają nic do ukry-
cia, tym bardziej, że w świecie Wolnego 
Oprogramowania  podpisywanie  pakie-
tów  kluczami  PGP  to  podstawa  bezpie-
czeństwa.

http://developer.kde.org/~kgpg/

Rysunek 2. 

KGpg ma również wbudowany 

edytor

background image

linuxfresh

aktualności

oprogramowanie

44

styczeń 2005

45

www.lpmagazine.org

FRESH 

     

 News

Gubed 

– debugger skryptów w PHP

M

ówi się, że język PHP jest bardzo 
prosty.  Owszem,  łatwo  nauczyć 

się  podstaw,  a  wiele  rzeczy  można 
w nim zrobić na wiele sposobów. Pod-
czas  programowania  może  przytrafić 
się nam błąd. Szczególnie,  gdy pracu-
jemy  nad  jakimś  większym  projektem. 
W  takim  przypadku  z  pomocą  przy-
chodzą  debuggery.  Jednym  z  nich, 
przeznaczonym  do  analizowania  pro-
gramów  napisanych  w  PHP,  jest  Gu-
bed
.

Do czego może przydać się debug-

ger? Na pewno nie do szukania braku-
jącego  nawiasu  –  do  tego  w  zupełno-
ści  powinien  wystarczyć  dobry  edy-
tor  z  kolorowaniem  składni.  Jeśli  nasz 
program  działa  nie  do  końca  tak, 
jak powinien, zapętlając się w nieskoń-
czoność  lub,  przeciwnie,  nie  wyko-
nując  jakiejś  pętli  ani  razu,  to  wtedy 
właśnie    pora  na  debuggera.  Z  jego
pomocą  możemy  prześledzić  program 
krok  po  kroku,  obserwując  zmienia-
jące  się  wartości  zmiennych,  i  może 
w końcu dostrzeżemy, że znów zamiast 

= =

  w  warunku  wstawiliśmy 

=

.  Oczy-

wiście,  błąd  może  być  zupełnie  inny, 
i  niekoniecznie  tak  trywialny.  Zawsze 
jednak  mamy  większe  szanse  na  zna-
lezienie  go  obserwując  kod  podczas 
działania.

W  przypadku  debuggera  Gubed 

z  pewnością  ucieszy  nas  wiadomość, 
że  nie  są  wymagane  żadne  przerób-
ki  w  oprogramowaniu  serwera,  ani 
tym  bardziej  w  sprawdzanym  ko-
dzie.  Co  więcej,  możemy  uruchamiać 
Gubed  na  innym  komputerze  niż  te-
stowany  skrypt.  Przykładowo,  skrypt 
może  być  uruchamiany  na  serwe-
rze  linuksowym,  a  sam  Gubed  może 
działać na naszym domowym kompu-
terze z Windows (Gubed działa zarów-
no  w  środowisku  Linuksa,  jak  i  Win-
dows
).

Piotr Machej

Instalacja może sprawić nieco pro-

blemu. Tym bardziej, że ze względów 
bezpieczeństwa  lepiej  nie  dawać  do-
stępu  do  Gubed  nieupoważnionym 
osobom.  Jeśli  do  naszego  kompute-
ra  mają  dostęp  inni  użytkownicy  (za-
równo  zdalny,  jak  i  lokalny),  koniecz-
nie  powinniśmy  przeczytać  sekcję 
Security  zawartą  w  pliku  serverse-
tup.txt
.  Jeśli  jednak  nie  boimy  się  za-
grożeń lub potrafimy sobie z nimi po-
radzić,  to  możemy  zabrać  się  za  in-
stalację.  Ze  strony  domowej  pobiera-
my  plik  Gubed0.1.2.tar.gz,  a  następ-
nie  rozpakowujemy  go.  W  utworzo-
nym  katalogu  najpierw  zainteresu-
je  nas  podkatalog  Clients/wxGubed/
Wchodzimy do niego i wydajemy pole-
cenia: 

./autogen.sh

./configure

make

Jeśli  wszystko  przebiegnie  bez  pro-
blemów  (w  przypadku  Auroksa  wy-
magany  jest  pakiet  wxGTK-devel ),  to 
w  podkatalogu  src/  powinniśmy  zna-
leźć  plik  o  nazwie  gbdwxGubed.  Jest 

to nasz klient, z którego będziemy ko-
rzystać.

Teraz  pora  na  umieszczenie  kil-

ku  plików  w  głównym  katalogu  na-
szego  serwera  WWW.  W  tym  celu  po-
trzebujemy  uprawnień  administratora. 
Znajdując  się  w  katalogu  Gubed0.1.2/
wydajemy  polecenie 

cp  -r  Gubed/ 

/var/www/html/

 (zależnie od konfigura-

cji naszego serwera WWW, katalog do-
celowy może być inny).

Możemy  już  uruchomić  nasze-

go  klienta  poleceniem 

./gbdwxGubed

Oprócz  tego,  należy  uruchomić  prze-
glądarkę  internetową  i  wejść  do 
katalogu, w którym umieściliśmy skry-
pty Gubed (np. http://localhost/Gubed/ ).
W  ten  właśnie  sposób  będziemy  pra-
cować  –  z  pomocą  przeglądarki  bę-
dziemy  podawać,  jakie  skrypty  mają
być testowane (i będziemy obserwować 
wyniki  działania),  a  z  pomocą  klien-
ta  będziemy  śledzić  działanie  progra-
mu.

Rysunek 1. 

Gubed pozwala zapoznać się dokładnie z działaniem skryptu

background image

linuxfresh

aktualności

oprogramowanie

44

styczeń 2005

45

www.lpmagazine.org

FRESH 

     

 News

PostgreSQL AutoDoc 1.24

Program ten pozwala na zapisywanie 
do pliku XML informacji o bazie 
PostgreSQL, które później mogą 
być wykorzystane do stworzenia 
diagramu UML. Diagram taki (wraz 
z relacjami pomiędzy tabelami 
i informacjami opisowymi) można 
utworzyć wczytując plik XML do 
programu Dia. Oprócz plików XML
możemy zapisywać informacje 
o bazie w formatach HTML
GraphViz .dot, a także SGML 
(Docbook 4.1). Program 
współpracuje z każdą bazą opartą 
na PostgreSQL 7.x. W najnowszej 
wersji wprowadzono poprawki kilku 
błędów.
http://freshmeat.net/projects/
postgresql_autodoc/

MPFC 1.3.3

MPFC to działający w trybie 
tekstowym (w oparciu o bibliotekę 
Curses) odtwarzacz muzyki. Dzięki 
wykorzystaniu listy odtwarzania 
jest wygodniejszy w użyciu od 
programów typu mpg321. Program 
obsługuje wiele różnych formatów 
plików (wykorzystuje w tym celu 
wtyczki). W nowej wersji znacznie 
poprawiono system konfiguracji 
i wprowadzono dowiązania klawiszy.
http://freshmeat.net/projects/mpfc/

Exobius 0 0.3

Grając w rozbudowane gry 
z trójwymiarową grafiką, 
czasem zapominamy o prostych 
strzelaninach, od których wszystko 
się zaczęło. Próbą stworzenia takiej 
dwuwymiarowej gry jest właśnie 
Exobius 0. Gra zawiera obecnie 13 
poziomów, wypełnionych broniami 
i przeciwnikami. Pomimo wczesnej 
fazy rozwoju, gra jest już w pełni 
funkcjonalna – można przechodzić 
ją od początku do końca. 
Największym mankamentem jest 
niedokończona grafika, która jednak 
ma zostać poprawiona w następnych 
wydaniach. Warto zainteresować się 
tym tytułem, a może nawet wesprzeć 
autora w jego wysiłkach.
http://freshmeat.net/projects/
exobius0/

Thunder&Lightning 041013

Thunder&Lightning to futurystyczny 
symulator lotu. Pozwala nam zasiąść 
za sterami myśliwca i toczyć walki 
zarówno z innymi samolotami, jak 
i z czołgami. Ładna, trójwymiarowa 
grafika z pewnością ułatwi wczucie 
się w grę. Program jest wciąż w fazie 
rozbudowy – dopiero niedawno 
został udostępniony publiczności. 
Najnowsza wersja działa również 
pod Windows. Obecnie można 
latać jednym z dwóch dostępnych 
samolotów (tytułowe Thunder 
Lightning), lecz w przyszłości 
autor zamierza udostępnić więcej 
typów maszyn.
http://freshmeat.net/projects/tnl/

Przy pierwszym korzystaniu z Gubed 

warto uruchomić testy. Pozwoli to na za-
poznanie  się  z  możliwościami  progra-
mu. W tym celu na wyświetlonej stronie 
należy  wybrać  odnośnik  znajdujący  się 
w sekcji Gubed tests. Jeśli później zdecy-
dujemy  się  testować  własne  skrypty,  to 
skorzystamy z odnośnika specify script to 
debug
 (albo od razu wejdziemy na stronę 
http://localhost/Gubed/StartSession.php).
Mamy  do  dyspozycji  cztery  grupy
testów.  O  każdym  z  nich  możemy
najpierw  poczytać.  Drugi  odnośnik
pozwala  na  uruchomienie  skryptu  bez 
udziału  debuggera  –  dzięki  temu  mo-
żemy  zaobserwować  jego  działanie 
i  wynik.  Trzeci  odnośnik  to  wykonanie 
skryptu pod kontrolą Gubed. Po jego wy-
wołaniu należy przełączyć się na klienta. 
Musimy bowiem zdecydować, czy chce-
my obserwować wykonanie krok po kro-
ku  (przyciski  Step),  czy  też  wolimy  po-
zwolić skryptowi się wykonywać – przy-
cisk Run. W tym drugim przypadku za-
wsze  możemy  wcisnąć  przycisk  Pause
Warto przeczytać wszystkie wprowadze-
nia  do  testów.  Pouczają  one  między  in-
nymi o ustawieniach dotyczących reago-
wania na pojawiające się błędy. Wykonu-
jąc po kolei testy, nauczymy się korzystać 
z punktów kontrolnych (breakpoint), ob-
serwować  wywołania  funkcji  (tu  przy-
dadzą  się  przyciski  Step  Over,  Step  Into 
Step Out), konfigurować Gubed tak, aby 
zwracał uwagę na konkretne błędy oraz 
będziemy  mieli  okazję  śledzić  wartości 
zmiennych i ustawiać warunkowe punk-
ty kontrolne.

Analizowanie  własnego  skryptu 

przebiega  bardzo  podobnie  do  tego, 
co  robiliśmy  w  czasie  testów.  Skrypt 
należy  umieścić  gdzieś  pod  głównym 
drzewem  katalogu  serwera  WWW 
(a więc w naszym przykładzie w pod-
katalogu  katalogu  /var/www/html/ ). 
Następnie  ścieżkę  do  niego  podaje-
my  na  stronie  http://localhost/Gubed/
StartSession.php
,  po  czym  wciskamy 
przycisk  Debug  i  przechodzimy  do 
okna klienta Gubed. Tutaj możemy do 
woli analizować go krok po kroku, lub 
też ustawić punkty kontrolne w wątpli-
wych miejscach i pozwolić mu się wy-
konywać.

W  najnowszej  wersji  wprowadzono 

funkcje  Step  over  (wykonuje  funkcję, 
lecz nie śledzi jej wykonania), Step out 
(śledzi wykonanie funkcji krok po kro-
ku)  oraz  Backtrace.  Oprócz  tego,  po-
prawiono otwieranie skryptów z klien-
ta  oraz  dodano  listę  historii  do  Start-
Session
.
http://freshmeat.net/projects/gubed

Rysunek 2. 

Gubed może zostać zintegrowany z programem Quanta

Rysunek 3. 

Gubed analizujący skrypt PHP

background image

linuxfresh

aktualności

oprogramowanie

46

styczeń 2005

47

www.lpmagazine.org

FRESH 

     

 News

Cssed 

– edytor arkuszy stylów CSS

C

oraz  więcej  twórców  stron  WWW 
wykorzystuje w swej pracy kaskado-

we arkusze stylów (CSS – Cascading Sty-
le Sheets
).  Jest  to  godne  pochwały,  gdyż 
dzięki  temu  nie  tylko  oszczędzają  sobie 
mnóstwo  pracy,  ale  równocześnie  idą 
  z  duchem  czasu.  A  jeśli  tylko  wykażą 
trochę  wysiłku,  to  mogą  stworzyć  stro-
nę, którą nie tylko da się wygodnie oglą-
dać w dowolnej przeglądarce, ale również 
będzie  dostępna  dla  niepełnosprawnych 
(czy  to  korzystających  z  linijek  brajlow-
skich czy z syntezatorów mowy).

Cssed to program ułatwiający tworze-

nie  arkuszy  stylów.  Co  prawda,  obecnie 
potrafi podświetlać również składnie in-
nych  plików,  ale  nadal  pozostaje  edyto-
rem  plików  CSS.  Wśród  jego  zalet  war-
to wymienić podświetlanie i autouzupeł-
nianie. Program wyposażony jest również 
w  wiele  kreatorów  pomagających  przy 
tworzeniu najczęściej wykorzystywanych 
stylów  (np.  układu  marginesów  czy  ro-
dzaju  fontów).  Oczywiście,  Cssed  jest 
w stanie sprawdzić poprawność wpisane-
go kodu. Nie można mu również odmó-
wić  wygody  użytkowania  –  interfejs  jest 
przejrzysty i łatwy w obsłudze.

Program  możemy  zainstalować  za-

równo  z  pakietów  (dostępne  są  pakiety 
RPM i DEB), jak również ze źródeł. Naj-
wygodniejsza oczywiście jest ta pierwsza 
możliwość.  Po  zainstalowaniu  możemy 
uruchomić program poleceniem 

cssed

.

Po  uruchomieniu,  gdy  zaczyna-

my  pracę  z  nowym  dokumentem,  war-
to od razu ustawić odpowiednią czcion-
kę.  Dokonujemy  tego  wybierając  z  me-
nu Document pozycję Change font. War-
to też wybrać typ pliku, z jakim będzie-
my  pracować.  W  tym  celu  wskazujemy 
Document>Highlighting>CSS.  Oczy-
wiście,  jeśli  mamy  zamiar  tworzyć  in-
ny dokument (np. stronę WWW ), to za-
miast  CSS  wybieramy  HTML/PHP  lub 
inną  odpowiednią  wartość.  Jeśli  chce-

Piotr Machej

my  korzystać  z  autouzupełniania,  mu-
simy zaznaczyć opcję Document>Ena-
ble  autocompletion
  (ma  to  tylko  sens 
w  przypadku  CSS).  Przydatna  może 
się  też  okazać  opcja  Document–>Ena-
ble  folding
  –  szczególnie,  gdy  pracuje-
my  z  dłuższym  plikiem.  Pozwala  ona 
bowiem  zwijać  zawartość  poszczegól-
nych klas tak, że widoczny jest tylko na-
główek.  Warto  przy  tym  zauważyć,  że 
opcje  ustawiane  w  menu  Document  są 
charakterystyczne  dla  każdego  doku-
mentu  z  osobna  –  możemy  w  każdym 
z nich korzystać z innej czcionki i edyto-
wać inny typ pliku.

Wartości do naszego pliku stylów mo-

żemy  wprowadzać  na  kilka  sposobów. 
Najbardziej  podstawowy  to  wpisywa-
nie  wszystkich  wartości  ręcznie.  Do  te-
go jednak nie potrzebowalibyśmy Cssed
Jak już wiemy, możemy sobie pomóc au-
touzupełnianiem. Co ważne, pomaga ono 

nie tylko we wprowadzaniu nazw atrybu-
tów,  ale  również  ich  wartości.  Sugeruje 
bowiem  zarówno  możliwe  wartości,  jak 
i pozwala skorzystać z kreatora (np. z pa-
lety barw w przypadku kolorów czcionek 
lub  obramowań).  Kreator  możemy  rów-
nież  uruchomić  ręcznie,  wybierając  od-
powiednią  ikonę  z  paska  znajdującego 
się tuż nad dokumentem lub z menu CSS
Ostatnia możliwość wstawienia do doku-
mentu atrybutu wraz z wartością to sko-
rzystanie  z  drzewka  atrybutów  znajdują-
cego  się  po  prawej  stronie  dokumentu, 
w zakładce CSS.

Podczas edycji może przydać się nam 

pewna  wygodna  funkcja.  Wystarczy  za-
znaczyć  grupę  atrybutów,  które  chcemy 
modyfikować,  a  następnie  wybrać  opcję 
Tools>Scan  selector.  Wybrane  atrybu-
ty  znajdą  się  w  prawym  górnym  oknie, 
gdzie w wygodny sposób będziemy mo-
gli zmodyfikować ich wartości.

Rysunek 1. 

Nic dziwnego, że arkusz stylów użyty na stronie domowej Cssed nie zawiera 

błędów

background image

linuxfresh

aktualności

oprogramowanie

46

styczeń 2005

47

www.lpmagazine.org

FRESH 

     

 News

CbrPager 0.9.4

CbrPager to jeden z programów 
pozwalających przeglądać archiwa CBR, 
w których coraz częściej rozprowadzane 
są w sieci komiksy i mangi. Co prawda 
nie jest to program na miarę CDisplay, 
znanego z Windows, ale autor wciąż 
dodaje nowe funkcje. Program pozwala 
przeglądać pliki JPG, GIF i PNG. Oprócz 
podstawowych funkcji powiększania 
i zmniejszania widoku, posiada kilka 
ciekawych opcji konfiguracyjnych 
(np. możemy określić, czy przy przejściu 
do kolejnej strony ma być wyświetlona 
jej górna lub dolna część, czy też raczej 
ta, którą właśnie wyświetlaliśmy). 
Najnowsza wersja programu pozwala 
także określić, czy panel nawigacyjny 
ma być wyświetlany poziomo czy 
pionowo.
http://freshmeat.net/projects/cbrpager/

Player vs. Player Gaming 

Network 1.6.6

PvPGN to darmowe oprogramowanie 
emulujące serwer Battle.net. Dzięki 
niemu można w sieci lokalnej 
uruchomić serwer i pograć w takie 
gry, jak Diablo II czy Starcraft
Dostępne są statystyki gier, możliwość 
organizowania turniejów, jak również 
drabinki punktowe. W najnowszej 
wersji poprawiono szereg wykrytych 
błędów oraz dodano kilka nowych 
opcji, np. opcję pozwalającą ograniczyć 
dostęp do wybranych klientów.
http://freshmeat.net/projects/pvpgn/

HTML Forms generation and 

validation 2004.10.13

Twórcy stron WWW piszący 
PHP wcześniej lub później stają 
przed problemem stworzenia 
formularzy wraz z ich obsługą. 
Opisywana klasa PHP pozwala na 
generowanie takich formularzy wraz 
z odpowiednią obsługą z klawiatury 
oraz sprawdzaniem poprawności 
danych (zarówno po stronie serwera, 
jak i klienta). Jej funkcjonalność 
może być rozszerzana poprzez 
dodawanie klas-wtyczek. Wygląd 
wynikowych formularzy może być 
definiowany szablonami z użyciem 
PHP, zagnieżdżonego w HTML-u lub 
też silnika Smarty. Najnowsza wersja 
niesie ze sobą kilka poprawek, m.in. 
poprawiono działanie klasy przy 
wyłączonej opcji register_globals.
http://freshmeat.net/projects/htmlformsg
enerationandvalidation/

Getmail 4.2.2

Pojawiła się nowa wersja programu 
Getmail, który w zamierzeniu autora 
ma być prostą i bezpieczną alternatywą 
dla popularnego programu Fetchmail
Zmiany dotyczą poprawionej obsługi 
uszkodzonych plików oldmail
jak również zmiany prawdziwego 
i efektywnego identyfikatora 
użytkownika i grupy potomnego 
procesu odpowiedzialnego za 
dostarczanie poczty.
http://freshmeat.net/projects/getmail/

Inną przydatną funkcją są znaczniki. 

Podczas edycji dużych plików są one po 
prostu nieocenione. Jeśli podczas edycji 
często  skaczemy  pomiędzy  konkretny-
mi liniami poprawiając wartości, to wy-
starczy  kliknąć  na  marginesie  po  lewej 
stronie każdej z tych linii. Powinny po-
jawić się tam białe znaczniki. Teraz mo-
żemy  poruszać  się  pomiędzy  nimi  ko-
rzystając ze strzałek Previous Bookmark 
Next Bookmark, widocznych na pasku 
narzędzi.

W  dolnej  części  ekranu  mamy  dwie 

zakładki – Program output i Scratch Pad 
/ Static Pad
. Pierwsza z nich zawiera wy-
niki zwracane przez program, np. komu-
nikaty  o  błędach.  Szczególnie  przydatna 
jest podczas testowania poprawności ko-
du, czego dokonujemy wybierając z menu 
pozycję Tools> Validate only. Warto przy 
tym  mieć  włączone  numerowanie  linii 
(Document>View  line  numbers),  gdyż 
dzięki  temu  łatwiej  zlokalizować  błąd 
w  większym  pliku.  Druga  zakładka  za-
wiera  dwa  okna,  które  możemy  wyko-
rzystać na notatki. Mogą się one również 
przydać jako schowek – zaznaczony tekst 
można tu przeciągnąć z dokumentu, a na-
stępnie wkleić go do innego dokumentu 
(przeciągając go ponownie).

Jeśli  Cssed  spodoba  się  nam,  warto 

zmienić  jego  domyślne  ustawienia.  Każ-
dorazowe  ustawianie  opcji  w  menu  Do-
cument
  może  być  męczące.  Zamiast  te-
go  wybieramy  Edit>Preferences.  Tutaj, 
w  zakładce  Document  settings,  możemy 

ustawić  domyślne  wartości  dla  każdego 
dokumentu. Warto zaznaczyć opcje View 
line  numbers
  i  Enable  autocompletion
W zakładce Font ustawiamy odpowiada-
jącą nam czcionkę i zatwierdzamy ją przy-
ciskiem Apply. Pozostaje jeszcze zakładka 
Highlighting.  Tutaj  możemy  dokładnie 
określić,  jakie  kolory  powinny  być  uży-
te do podświetlania w konkretnych przy-
padkach.

Trzeba  przyznać,  że  Cssed  zapowia-

da  się  interesująco.  Już  w  tej  chwili  jest 
przyjemnym  edytorem  CSS,  a  autor  sta-
ra  się  jeszcze  bardziej  rozbudować  je-
go możliwości. Wśród najbardziej intere-
sujących  planów  można  wymienić  moż-
liwość  przeglądania  strony  WWW  z  na-
łożonym  stylem  w  zewnętrznej  przeglą-
darce  oraz  (uwaga!)  możliwość  tworze-
nia arkusza stylu na podstawie dokumen-
tu HTML. Chodzi tu o przetworzenie sta-
rych  znaczników  HTML  (np.  <font>)  na 
ich odpowiedniki w kaskadowych arku-
szach stylów.

W najnowszej wersji programu znacz-

nie  ulepszono  wsparcie  dla  różnych  ko-
dowań  znaków.  Dodano  też  schematy 
podświetleń  dla  innych  języków,  takich 
jak HTMLPHP, skrypty powłoki, Python 
i inne. Stworzono interfejs rozbudowywa-
ny wtyczkami i od razu udostępniono kil-
ka  wtyczek:  panel  przeglądania  plików, 
okno  terminala  VTE,  a  także  panel  wy-
szukiwania tekstu w plikach.

http://freshmeat.net/projects/cssed/

Rysunek 2. 

Oprócz Cssed, autor oferuje również kilka innych narzędzi pomocnych przy 

edycji arkuszy stylów

background image

linuxfresh

aktualności

oprogramowanie

48

styczeń 2005

49

www.lpmagazine.org

FRESH 

     

 News

Vuurmuur 

– konfigurator zapór 

sieciowych

K

ażdy,  kto  kiedyś  tworzył  zapo-
rę  ogniową  z  wykorzystaniem 

iptables lub ipchains, z pewnością zdaje 
sobie sprawę, że w pewnym momencie 
liczba regułek zaczyna przytłaczać. Z te-
go powodu wielu użytkowników wciąż 
szuka metod łatwiejszego tworzenia re-
guł  i  zarządzania  zaporą  sieciową.  Jed-
nym z ciekawszych pomysłów jest pro-
gram  Vuurmuur.  W  założeniu  program 
ten  ma  przetwarzać  regułki  zrozumia-
łe dla człowieka (np. Zablokuj połącze-
nia FTP z komputera Janka do serwera 
w  Internecie
)  na  reguły  zrozumiałe  dla 
komputera.  I  trzeba  przyznać,  że  radzi 
sobie z tym całkiem dobrze. Co więcej, 
pozwala również na przeglądanie logów 
w  bardziej  zrozumiałej  formie.  Począt-
kowa  konfiguracja  wymaga  trochę  wy-
siłku, ale i tak jest znacznie prostsza niż 
przekopywanie się przez dokumentację 
IPtables.  Z  pewnością  warto  się  z  nim 
bliżej zapoznać.

Piotr Machej

Po  pobraniu  archiwum  ze  strony

domowej programu powinniśmy je roz-
pakować. Należy uważać, gdyż nie jest 
tworzony  dodatkowy  katalog  –  pliki 
znajdą  się  w  bieżącym  katalogu.  Na-
stępnie uzyskujemy uprawnienia admi-
nistratora (poleceniem 

su -

 lub logując 

się na konto użytkownika root) i prze-
chodzimy  do  katalogu,  w  którym  roz-
pakowaliśmy archiwum. Nie wystarczy 
tu  polecenie 

su

  (bez  myślnika),  gdyż 

w takim przypadku najczęściej nie ma-
my  dostępu  do  polecenia  iptables  bez 
podawania  pełnej  ścieżki  –  a  taki  do-
stęp jest nam potrzebny podczas insta-
lacji. W najnowszej wersji mamy do dys-
pozycji skrypt instalacyjny, który wyko-
na  za  nas  większość  czynności.  Uru-
chamiamy go poleceniem 

./install.sh

a następnie odpowiadamy na kilka py-
tań  o  nazwy  katalogów.  W  większości 
przypadków  możemy  zatwierdzić  do-
myślne  ustawienia  (wystarczy  wcisnąć 

klawisz  [Enter]).  Teraz  musimy  chwilę 
poczekać,  aż  program  skompiluje  się 
i zainstaluje.

W  celu  dokończenia  konfiguracji

należy  uruchomić  program 

vuurmuur

_conf

.  Najlepiej  zacząć  od  ustawień 

ogólnych:  Vuurmuur  Config >Gene-
ral
. Możemy tu się upewnić, że ścieżki 
do programów ifconfig i iptables są pra-
widłowe,  a  także  sprawdzić  pozostałe 
ścieżki.  Do  wcześniejszego  menu  wy-
chodzimy  wciskając  klawisz  [F10 ].  Po-
dobnie  warto  sprawdzić  i  ewentualnie 
poprawić  wartości  w  pozostałych  sek-
cjach konfiguracyjnych (z naciskiem na 
Logging).

Teraz pora dodać interfejsy. Wycho-

dzimy do głównego menu i wybieramy 
Interfaces.  Klawiszem  [Insert]  możemy 
dodać  nową  pozycję.  Wpisujemy  na-
zwę  naszego  interfejsu.  Jest  to  nazwa, 
jaka  będzie  wykorzystywana  tylko 
w programie Vuurmuur – najlepiej, je-
śli będzie czytelna i krótka (np. inet dla 
interfejsu  łączącego  nas  z  Internetem 
lub  dom  dla  sieci  domowej).  W  kolej-
nym  oknie  możemy  wpisać  jego  adres 
IP (jeśli zaznaczymy pole Dynamic, to 
program spróbuje odczytać adres z sys-
temu) oraz nazwę urządzenia (Device). 
Możemy też dopisać komentarz.

W analogiczny sposób możemy do-

dać  strefy  (Zones).  Domyślnie  mamy 
zdefiniowane cztery – dmz (strefa zde-
militaryzowana), ext (zewnętrzna – In-
ternet),  lan  (sieci  lokalne)  i  vpn  (wir-
tualne  sieci  lokalne).  Wejdźmy  na  po-
czątek  do  strefy  ext.  Zobaczymy  spis 
sieci  (Networks),  składających  się  na 
tą  strefę.  Domyślnie  jest  tu  tylko  sieć 
internet,  ale  możemy  dodawać  inne. 
Wskażmy  sieć  internet  i  wciśnijmy 
klawisz  [].  Okazuje  się,  że  nie  ma
przypisanego interfejsu. Jeśli dodaliśmy
już  wcześniej  interfejs  łączący  nas 
z  Internetem,  to  teraz  możemy  go 

Rysunek 1. 

Z pomocą Vuurmuur możemy również przeglądać aktywne połączenia

background image

linuxfresh

aktualności

oprogramowanie

48

styczeń 2005

49

www.lpmagazine.org

FRESH 

     

 News

tu  przypisać.  W  tym  celu  wciskamy
klawisz [F6 ], następnie [Insert] i wska-
zujemy nasz interfejs. W miarę potrzeb 
możemy  też  ustawić  inne  opcje  doty-
czące  sieci,  po  czym  ustawiamy  war-
tość opcji Active na Yes.

Gdy dodamy inne sieci do pozosta-

łych  stref  (np.  naszą  sieć  osiedlową), 
należy do nich dodać konkretne adresy 
komputerów (Hosts). Komputery może-
my także łączyć w grupy (Groups), np. 
w celu określenia wspólnych reguł dla 
wszystkich  serwerów  pocztowych  lub 
dla nielubianych kolegów. Wszystkie te 
czynności  mają  na  celu  dokładne  opi-
sanie naszej sieci, dzięki czemu później 
będziemy  mogli  łatwo  tworzyć  odpo-
wiednie  regułki.  Ta  wstępna  konfigu-
racja  jest  dokładniej  opisana  na  stro-
nie  domowej  programu,  w  sekcji  User 
Manual
.

Następnie  możemy  przejść  do  do-

dawania  regułek  (Rules  w  głównym 
menu).  I  tutaj  właśnie  mamy  najprzy-
jemniejszą  część  zadania.  Po  wciśnię-
ciu [Insert], w większości pól możemy 
użyć klawisza spacji w celu wyświetle-
nia  możliwych  wartości.  Tak  więc,  je-
śli  chcemy  zablokować  koledze  połą-
czenie  HTTP  z  naszym  serwerem,  to 
ustawiamy kolejno: (w polu ActionRe-
ject
 (Servicehttp (Fromkomputerkole-
gi
 (Tofirewall. W nawiasach są umiesz-
czone  nazwy  pól,  w  których  należy 
umieszczać  następujące  po  nich  war-
tości.  Jeszcze  w  polu  Reject  type  usta-
wiamy  odpowiedni  typ  odmowy  (np. 

icmp-port-unreachable)  i  już  możemy 
wyjść  do  spisu  reguł  klawiszem  [F10 ]. 
Przy  okazji  warto  zauważyć,  że  użyli-
śmy tu oznaczenia komputera firewall
Jest  to  specyficzne  oznaczenie,  gdyż 
określa  komputer,  na  którym  zainsta-
lowana  jest  zapora.  Wszystkie  regułki 
z jego udziałem dotyczą połączeń przy-
chodzących  i  wychodzących,  podczas 
gdy  pozostałe  dotyczą  połączeń  prze-
syłanych (forwarded ).

Gdy  już  wszystko  mamy  skonfigu-

rowane,  możemy  uruchomić  właści-
wy  program  na  kilka  różnych  sposo-
bów.  Do  wyboru  mamy  uczynienie 
z niego demona (jest to zalecana opcja), 
jednorazowe  uruchomienie  w  celu  za-
ładowania  reguł  oraz  wygenerowa-
nie skryptu powłoki tworzącego reguł-
ki.  Odpowiednie  opcje  można  znaleźć 
po  uruchomieniu  polecenia 

/usr/bin/

vuurmuur  -h

.  W  katalogu  /usr/share/

vuurmuur/scripts/ można znaleźć przy-
kładowe  skrypty  startowe  oraz  odpo-
wiadające za rotację logów.

W  najnowszej  wersji  dodano  wy-

godny  skrypt  instalacyjny,  funkcję  po-
mocy  w  interfejsie  graficznym,  wspar-
cie dla wirtualnych interfejsów, komen-
tarze  dla  regułek  oraz  różne  ulepsze-
nia interfejsu GUI. Oprócz tego, reguł-
ki z włączonym logowaniem mogą mieć 
ustawione  ograniczenia,  co  powinno 
utrudnić  część  ataków  typu  odmowa 
usługi (DoS – Denial of Service).

http://freshmeat.net/projects/vuurmuur/

Rysunek 2. 

Na domowej stronie projektu można przeczytać dokładny opis systemu stref, 

sieci, grup i usług

FreeRails 0.2.5

Miłośnicy klasycznej już gry Railroad 
Tycoon
 z pewnością ucieszą się, 
że pojawiła się kolejna wersja gry 
FreeRails. Ta darmowa gra została 
zainspirowana dziełem niezrównanego 
Sida Meiera. Chociaż gra jest w fazie 
Alpha, z każdą wersją pojawia się 
w niej więcej funkcji. Tym razem 
m.in. dodano opcję automatycznego 
rozkładu jazdy, który może wybrać 
odpowiednie wagony zależnie od 
rodzaju ładunku oczekującego na stacji 
początkowej i zapotrzebowania na 
stacji docelowej.
http://freshmeat.net/projects/freerails/

GTorrentViewer 0.2a

Ten program pozwala na sprawdzenie 
i zmodyfikowanie plików .torrent 
bez konieczności rozpoczynania 
pobierania. Możliwe jest sprawdzenie 
plików (ile zostało do pobrania, 
na ile części są podzielone), jak 
również pobranie informacji 
trackera. Można też sprawdzić 
liczbę osób udostępniających pliki 
i je pobierających. W ostatnich 
wersjach wprowadzono obsługę 
drag&drop, jak również usunięto 
zależności od bibliotek libglade i libssl
Poprawiono także szereg błędów.
http://freshmeat.net/projects/
gtorrentviewer/

Childsplay 0.72

Childsplay to zestaw gier dla dzieci, 
zgodny z dewizą: bawiąc – uczy, 
ucząc – bawi. Program posiada 
wbudowane dwie gry (Memory 
i wprowadzanie liter) – pozostałe gry 
dostępne są w osobnym pakiecie. 
Dostępne gry są przeznaczone dla 
młodszych dzieci, które mogą tu 
poćwiczyć rozpoznawanie liter, 
podstawowe działania arytmetyczne, 
a także rozpoznawanie obrazków 
i dźwięków. W najnowszej wersji 
poprawiono szereg błędów i dodano 
nową grę do zestawu. Niektóre gry 
wykorzystują obecnie zlokalizowane 
pliki dźwiękowe.
http://freshmeat.net/projects/childsplay/

Aviascene 2

Czy przed wybraniem się w dalszą 
wyprawę nie chcielibyśmy mieć 
możliwości zapoznania się z rzeźbą 
terenu? Program Aviascene nam 
to umożliwia, ale na razie tylko 
dla niektórych rejonów Stanów 
Zjednoczonych. Dane o topografii 
terenu są wykorzystywane do 
zrenderowania obrazu. Następnie 
możemy udać się w wycieczkę 
pojazdem kołowym lub nawet 
samolotem. Możemy nawet 
wykorzystać współrzędne GPS do 
ustalania punktów kontrolnych. Jeśli 
nie zamierzamy wybierać się na 
wyprawę, zawsze możemy polatać 
sobie samolotem nad rzeczywistymi 
terenami.
http://freshmeat.net/projects/aviascene/

background image

gry

aktualności

oprogramowanie

50

styczeń 2005

51

www.lpmagazine.org

GAMES

     

 News

Simutrans 

– gra ekonomiczna

1994 roku wydano Transport Tyco-
on Deluxe
 – świetną strategię eko-

nomiczną, o niebywałej grywalności. Po-
mimo dziesięciu lat istnienia wciąż ma licz-
ne  grono  zwolenników  i  są  przygotowy-
wane  kolejne  wersje  poprawek  (Drexler 
Patch
). TTD ma swoje minusy – tylko jed-
na wielkość mapy oraz ograniczenia co do 
liczby pojazdów w grze. Niektórzy narze-
kają również na zbyt małą liczbę przedsię-
biorstw dostępnych w grze. Grą, która nie-
wątpliwie  zaspokoi  nawet  dość  wygóro-
wane wymagania najzagorzalszych fanów 
TTD, jest z pewnością Simutrans. W po-
równaniu  do  pierwowzoru,  posiada  wie-
le  rozszerzeń,  które  w  znaczący  sposób 
uatrakcyjniają  rozgrywkę.  Dostępne  są 
wersje dla LinuksaWindows oraz BeOS.

W  tym  miejscu  muszę  zaznaczyć,  że 

najnowszą  wersją  gry  jest  0.84.16.2.  Jak 
sam autor przyznaje, jest to jeszcze wer-
sja beta, więc nie należy dziwić się poten-
cjalnym błędom oraz niezgodnością dzia-
łania aplikacji z dokumentacją.

Simutrans  to  gra  ekonomiczna,  a  jej 

celem  jest  zbudowanie  jak  najwydajniej-
szej  infrastruktury  transportowej  dla  to-
warów i ludzi. Do dyspozycji mamy środ-
ki transportu lądowego (pociągi i samo-
chody) oraz wodnego (promy, tankowce, 
barki), ale niestety nie została jeszcze do-
dana  możliwość  korzystania  z  transpor-
tu powietrznego (autorzy przewidują ją w 
przyszłych wersjach).

Instalacja i uruchamianie

Aby zainstalować Simutrans, musimy ścią-
gnąć  ze  strony  www.simutrans.de  dwa 
pakiety: simubase-0_84_16_2.zip ( ok 1,6 
MB)  oraz  simulinux-0_84_16_2.tar.gz 
(ok  460  KB).  Następnie  rozpakowujemy 
pierwszy pakiet poleceniem 

unzip  simu-

base-0_84_16_2.zip

. W następnej kolejno-

ści rozpakowujemy drugie archiwum: 

tar 

-zxvf  simulinux-0_84_16_2.tar.gz

.  Jeżeli 

obie  czynności  wykonaliśmy  w  tym  sa-
mym  katalogu,  to  otrzymaliśmy  katalog 
simutrans,  zawierający  wszystkie  pliki 

Marek Bettman

potrzebne do uruchomienia gry. Gdy roz-
pakowywaliśmy pakiety w różnych kata-
logach, musimy przenieść plik simutrans
który  znajduje  się  w  katalogu  o  tej  sa-
mej  nazwie,  powstałym  po  rozpakowa-
niu drugiego pakietu, do katalogu simu-
trans
 z plikami gry. Po takich przygoto-
waniach możemy uruchomić grę polece-
niem 

~/simutrans/simutrans

,  ale  warto 

wiedzieć o paru przełącznikach:

• 

  -screensize 1024x768

 – podajemy roz-

dzielczość, w której zostanie urucho-
miona gra;

•  

-freeplay

 – bez tego parametru, jeśli 

stan  naszej  gotówki  zejdzie  poniżej 
zera, otrzymamy trzy miesiące (czasu 
gry)  na  zlikwidowanie  debetu,  a  po 
tym czasie, jeżeli nam się nie uda, na-
stąpi koniec gry;

•  

-refresh  x

  –  zmniejsza  ilość  po-

kazywanych 

klatek 

animacji, 

przez  co  gra  lepiej  działa  (np. 

-re-

fresh  2

  będzie  pokazywał  co  drugą 

klatkę,  co  powinno  przyspieszyć  grę 
o ok. 20%);

•  

-log

  –  wszystkie  komunikaty  z  dzia-

łania  gry  będą  zapisywane  w  logu 
–  opcja  przydatna,  jeśli  chcemy  po-
móc  deweloperom  i  w  razie  błędu 
móc przesłać pełny raport.

Kompletną listę przełączników oraz kilka 
dodatkowych informacji możemy znaleźć 
w pliku readme.txt, w katalogu z grą.

Interfejs

Po  uruchomieniu  gry  pojawią  się  dwa 
okna:  wybór  języka  oraz  menu  nowej 
gry. Trzeba zaznaczyć, że gra ma możli-
wość  wyświetlania  (prawie  wszystkich) 
elementów tekstowych po polsku, oprócz 
mini-mapy, na której, zamiast polskich li-
terek, w większości przypadków widzimy 
krzaczki.  Ponadto,  nawet  po  ustawieniu 
języka  na  Polski,  niektóre  napisy  są  po 
angielsku, ale nie przeszkadza to w więk-
szym stopniu w grze.

W  menu  nowej  gry  możemy  ustalić 

wielkość mapy, ilość miast, gęstość obiek-
tów  przemysłowych  (im  większa,  tym 
więcej znajdzie się ich na mapie), natęże-
nie  ruchu  drogowego,  topografię  terenu 
oraz  podstawowe  opcje  graficzne,  takie 
jak  widoczność  pieszych  i  używanie/
nieużywanie trybu dzień-noc. Należy pa-
miętać, że ustawienie wysokich wartości 
zmiennych może zwolnić działanie gry na 
słabych maszynach. Jeżeli jesteśmy zado-
woleni z ustawień, możemy kliknąć przy-
cisk Nowa gra i rozpocząć budowę nasze-
go własnego imperium transportowego.

Okno gry jest podzielone na trzy części:

•   pasek narzędzi – znajduje się na gó-

rze ekranu i zawiera ikony grup dzia-
łań dostępnych w grze, np. kliknięcie 
ikony Buduj kolej daje nam dostęp do 
menu  budowania  różnych  rodzajów 
torów, stacji, lokomotywowni oraz sy-
gnalizacji;

•    główne okno gry – tutaj faktycznie to-

czy się gra;

•   pasek statusu – zawiera aktualną datę 

i  czas  (w  grze),  pokazuje  aktualne 
współrzędne  kursora  na  mapie,  ilość 
posiadanych przez nas pieniędzy oraz 
szybkość  gry  (T=1.0  oznacza,  że  toczy 
się ona standardowym rytmem, ale mo-
żemy zwiększać i zmniejszać szybkość 
gry  klawiszami  [,]  i  [.]);  czasami  nad 
tym paskiem pojawiają się komunikaty 
z gry, np. o tym, że pociąg, który skiero-
waliśmy do zajezdni, już tam czeka.

Simutrans w pełnej okazałości 

background image

gry

aktualności

oprogramowanie

50

styczeń 2005

51

www.lpmagazine.org

GAMES

     

 News

Freeciv 2.0.0 beta 4

Freeciv to jedna z najbardziej 
znanych gier linuksowych, klon 
popularnej Civilization Sida Meiera. 
Obecne wydanie – 2.0.0 beta 4 
– jest jednym z ostatnich, 
przed opublikowaniem finalnej 
wersji 2.0. Lista zmian i ulepszeń 
jest bardzo długa (http://www.
freeciv.org/index.php/NEWS-beta
). 
Najważniejsze to usprawnienie gry 
sieciowej, lepsza AI przeciwników, 
nowe jednostki, nowy poziom 
trudności oraz wiele innych.
http://www.freeciv.org/

ZengaiaSpace 0.1.2

Wystartował nowy projekt: 
ZengaiaSpace – w zamierzeniu 
ma być rozbudowaną strategią, 
rozgrywaną on-line, na centralnym 
serwerze internetowym. W grze 
naszym zadaniem jest budowanie 
statków kosmicznych, zdobywanie 
planet, budowa nowych portów, 
walka z wrogami, podbój nowych 
planet i systemów słonecznych. 
Gra jest napisana w Javie, więc 
wymaga zainstalowanego w systemie 
środowiska dla aplikacji napisanych 
w tym języku.
http://www.mpc-donkey.de/index.php?
doc=zengaia.htm

The Black Legacy Darkness 0.7.4

The Black Legacy Darkness to 
nowy projekt z gatunku MMORPG 
(Massive Multiplayer Online Role 
Playing Game
). Jest to gra w realiach 
średniowiecznych, o świetnej 
grafice 3D. Używa bibliotek 
OpenGL oraz SDL. Obecnie 
jest jeszcze w fazie testów, ale 
udostępniono już duże miasto 
(w świecie gry) do zwiedzania. 
Co ciekawsze, można stworzyć 
swoje własne mapy w Blenderze
a następnie eksportować je do gry 
za pomocą skryptu eksportującego, 
napisanego w Pythonie.
http://www.black-legacy.com/

Unreal Tournament 2004 3339

Firma Epic Games wypuściła 
ostatnio kolejną – piątą już – łatę 
do gry Unreal Tournament 2004
Obecny pakiet jest kompatybilny 
z poprzednimi łatami i zawiera 
wszystkie poprawki z poprzednich 
wydań. Powinien być instalowany 
po Editors Choice Bonus Pack, 
ponieważ aktualizuje część 
kodu dodanego do gry po jego 
instalacji. Lista zmian jest dość 
długa, a poprawiono m.in. błędne 
efekty dźwiękowe i graficzne 
towarzyszące niektórym zdarzeniom 
w grze, a także błąd w przeglądarce 
serwerów, powodujący niepoprawne 
wyświetlanie typu gry.
http://www.unrealtournament.com/
news/view.php?id=2318

Gra

Naszym celem jest zarabianie na transpor-
cie towarów i ludzi. Obowiązuje tu  prosta 
zasada: im szybciej towar zostanie przewie-
ziony, tym więcej na tym zarobimy, ale pre-
mie za szybką dostawę bywają różne i cza-
sami spokojnie można zakupić tańszą i wol-
niejszą lokomotywę do obsługi danej linii, 
nie martwiąc się o straty (wysokości premii 
za  szybkość  dostawy  są  dostępne  po  na-
ciśnięciu  [Shift]+[g]).  Dobrze  jest  pamiętać 
o tym, że towar ma swoje miejsce przezna-
czenia i jeśli będziemy próbowali go prze-
wieźć  do  fabryki,  która  go  nie  przyjmuje, 
nic nie zarobimy, a będziemy stratni o kosz-
ty działania danego środka transportu. Te-
go, gdzie należy dowieźć dany towar, mo-
żemy  dowiedzieć  się  klikając  na  obiekcie 
produkcyjnym (kopalnia, fabryka ...) narzę-
dziem informacji [a]. W otrzymanym oknie 
znajdziemy opis, dokąd można transporto-
wać towary, oraz jakich towarów – i skąd 
–  dany  obiekt  wymaga  (informacje  te  są 
również dostępne na mini-mapie: po naje-
chaniu na dany obiekt pokażą się linie po-
kazujące, gdzie towary mogą być transpor-
towane). Musimy pamiętać, że aby fabryka 
zaczęła wytwarzać półprodukty, należy do-
starczyć  wszystkich  wymaganych  surow-
ców (np. aby móc transportować stal, naj-
pierw należy dostarczyć do huty rudę że-
laza i węgiel).

Jak zacząć?

Aby  uruchomić  nasze  pierwsze  połącze-
nie, wybieramy np. kopalnię węgla i elek-
trownię
.  Ponieważ  będziemy  transporto-
wać duże ilości surowca, stworzymy po-

łączenie  kolejowe.  Otwieramy  okno  bu-
dowy kolei i wybieramy rodzaj torów, jaki 
chcemy położyć, oraz zaznaczamy punkt 
początkowy i końcowy trasy. Gra automa-
tycznie zbuduje tory łączące oba punkty. 
Tworzymy też małą odnogę, gdzie stanie 
zajezdnia (depot). Gdy tory zostaną zbu-
dowane, z naszego konta zostanie odjęty 
koszt tej inwestycji. Teraz należy postawić 
stację – tu ważna uwaga: stację i zajezdnię 
dla pociągów można wybudować , tylko 
na istniejących torach. Gdy już mamy sta-
cję i zajezdnię, wciskamy [a] i klikamy na 
zajezdni.  Aby  kupić  nową  lokomotywę, 
klikamy  na  obrazek  wybranej  maszyny, 
przechodzimy do zakładki wagony i do-
bieramy  odpowiednie  wagony  do  trans-
portu węgla (jeżeli wybierzemy lokomo-
tywę na węgiel, pierwszym wagonem, ja-
ki dobierzemy, musi być węglarka). Teraz 
klikamy na przycisk Rozkład jazdy i usta-
lamy stacje, na których ma się zatrzymy-
wać pociąg. Mamy tu możliwość określe-
nia procentowego załadowania składu, na 
jaki będzie pociąg oczekiwał, nim ruszy 
w dalszą drogę. Gdy jesteśmy zadowoleni 
z ustawień, klikamy Start i nasz pierwszy 
pociąg wyjedzie na trasę.

Analogicznie  postępujemy  z  samo-

chodami:  budujemy  drogę,  przystanki, 
zajezdnię, kupujemy maszyny, wyznacza-
my trasę i uruchamiamy linię.

Z komunikacją wodną jest jeszcze ła-

twiej  –  musimy  tylko  zadbać,  aby  stacja 
początkowa  i  końcowa  znajdowały  się 
w tym samym akwenie razem ze stocznią, 
czyli depotem dla statków.

Podsumowanie

Simutrans  to  świetna  gra,  nawet  pomi-
mo błędów i wczesnej wersji. Jest to jed-
na  z  najciekawszych  gier,  z  jakimi  mia-
łem  do  czynienia  –  biorąc  pod  uwagę 
zarówno gry dla Windows, jak i Linuksa 
– i wprost nie mogę się już doczekać jej fi-
nalnej wersji.

Na  zakończenie  małe  ostrzeżenie: 

w obecnej wersji gry większość użytkow-
ników  nie  może  korzystać  z  funkcji  sta-
wiania  znaków  z  opisem  (etykieta),  po-
nieważ  powoduje  to  zamknięcie  gry. 
Drugą rzeczą, o której należy wspomnieć, 
jest  to,  że  czasami,  po  zakończeniu  gry, 
 X Window nie wraca do poprzedniej roz-
dzielczości. Możemy sobie z tym poradzić 
restartując serwer X, bądź uruchomić grę, 
na  moment,  w  domyślnej  rozdzielczości 
naszego systemu.
http://simutrans.de/

Przydatne skróty 

klawiaturowe:

•   [Shift]+[“] – włącza/wyłącza 

przezroczystość obiektów;

•   [Shift]+[3] – włącza/wyłącza siatkę 

na mapie;

•   [,] i [.] – zmiana szybkości gry;
•   [Shift]+[g] – okno z wartościami 

premii za szybki przewóz danego 
towaru;

•   [PgUp], [PgDown] – przybliżanie 

i oddalanie widoku;

•   aby wyświetlić okno ze wszystkim 

skrótami klawiaturowymi, należy 
nacisnąć [Control] lub [Shift
+ dowolna – jeszcze nie 
przypisana – litera, np. [Control]+[q].

background image

dla początkujących

52

styczeń 2005

Nessus – skaner 

bezpieczeństwa

Piotr Machej

G

dy  podłączamy  nasz  kom-
puter  do  Internetu,  uzysku-
jemy  dostęp  do  nieprzebra-
nych  zasobów.  Równocze-

śnie nasz komputer staje się dostępny dla 
innych użytkowników. Nie wszyscy z nich 
są nastawieni pokojowo. Trudno zresztą na 
to liczyć, biorąc pod uwagę wciąż rosną-
cą  liczbę  mieszkańców  globalnej  wioski. 
Z  tego  powodu  bardzo  ważne  jest,  aby 
zdawać  sobie  sprawę  z  zagrożeń,  które 
mogą  na  nas  czekać.  Jeszcze  ważniejsze 
jest, aby potrafić się przed nimi ochronić.

W  łataniu  powszechnie  znanych  luk 

bezpieczeństwa  znacznie  mogą  nam 
pomóc  wszelkiego  typu  skanery  bezpie-
czeństwa.  Programy  takie  mają  za  zada-
nie przetestowanie, czy system jest podat-
ny  na  określoną  metodę  ataku.  Powinni-
śmy skorzystać ze skanera (lub kilku ska-
nerów)  bezpieczeństwa  zaraz  po  zain-
stalowaniu  systemu.  Później  powinni-
śmy  powtarzać  tę  czynność  co  jakiś 
czas (np. co miesiąc). Pozwoli to wykryć 
znane już luki, więc będziemy mieli moż-
liwość załatać je zanim wykorzysta je wła-
mywacz.  Pamiętajmy  bowiem,  że  rów-
nież  "czarne  charaktery"  mogą  korzystać 
z takiego oprogramowania.

Jednym  z  bardziej  uniwersalnych 

(a przy tym otwartym i bezpłatnym) ska-
nerem  jest  Nessus.  Jego  wielką  zaletą 
jest  aktualność  oraz  łatwość  rozbudowy. 
Opiera  się  na  wtyczkach,  dzięki  czemu 
możemy  dodać  do  niego  własne  testy. 
Oprócz tego, możemy automatycznie uak-
tualniać listę wtyczek, dzięki czemu zosta-
ną one dołączone od razu po udostępnie-
niu.  Niniejszy  artykuł  ma  na  celu  popro-
wadzenie  Czytelników  przez  instalację 
i  konfigurację  Nessusa,  a  także  zwróce-
nie  uwagi  na  różne  aspekty  bezpieczeń-
stwa systemu.

Przykład użycia

Około  rok  temu,  rozmawiając  ze  znajo-
mymi na IRC, dowiedziałem się, że kom-

puter  jednego  z  nich  padł  ofiarą  ataku. 
Jak  się  okazało,  zainstalował  on  Linuk-
sa  i  będąc  święcie  przekonany,  że  to 
bezpieczny  system,  nie  podjął  żadnych 
dodatkowych kroków w celu jego zabez-
pieczenia.  Oczywiście,  gdy  w  wyniku 
ataku script-kiddies stracił dane na dysku, 
był pełen pretensji do naszego ulubione-
go  systemu.  Wytłumaczyliśmy  mu,  że 
system  dopiero  wtedy  jest  bezpieczny, 
gdy się o to samemu zadba. I że nie ma 
tu większego znaczenia, czy jest to Linux, 
czy  Windows.  Przy  okazji  postanowili-
śmy sprawdzić, który z naszych kompute-
rów jest lepiej zabezpieczony. Do testów 
wykorzystaliśmy Nessusa i okazało się, że 
mój system zajął dopiero trzecie miejsce 
(na pięć możliwych). Jak to mówią, leni-
stwo  nie  popłaca.  Oczywiście,  od  razu 
załatałem najgroźniejsze ze znalezionych 
luk  bezpieczeństwa  i  obiecałem  sobie, 
że będę częściej kontrolował system.

Analiza zabezpieczeń

Przede  wszystkim  musimy  odpowie-
dzieć sobie na pytanie, czy nasz system 
jest  dobrze  zabezpieczony.  Odpowiedź 
nie  jest  taka  prosta.  Włamywacz  ma  do 
dyspozycji szereg różnych technik, z któ-
rych warto wymienić wykorzystanie sła-
bych haseł, dziur w oprogramowaniu lub 
błędów  w  konfiguracji.  Nie  należy  rów-
nież zapominać o tym, że zwykle najsłab-
szym ogniwem jest człowiek – to my sami 

Na płycie CD/DVD

Na płycie CD/DVD zamieścili-

śmy oprogramowanie omawiane 

w artykule.

Rysunek 1. 

Nowe wersje Nessusa 

pozwalają przeprowadzać również testy 
lokalne i przyrostowe

background image

53

dla początkujących

nessus

www.lpmagazine.org

możemy  nieumyślnie  podać  intruzowi 
hasło lub wykonać przysłany przez niego 
kod, otwierając mu drogę do systemu.

Hasła powinny być łatwe do zapamię-

tania  i  trudne  do  odgadnięcia.  Nie  zawsze 
trudność  odgadnięcia  hasła  będzie  warun-
kiem  wystarczającym,  gdyż  jeśli  jest  ono 
przesyłane  przez  sieć  (np.  w  celu  zalogo-
wania  się  na  zdalną  maszynę  lub  autory-
zowania  się  w  serwisie  WWW),  to  może 
zostać  podsłuchane.  Z  tego  powodu  lepiej 
jest używać oprogramowania korzystającego 
z szyfrowanej transmisji, a w dodatku nigdy 
nie używać hasła systemowego do autoryza-
cji w innych serwisach.

Z  błędami  w  oprogramowaniu  trzeba 

zawsze  się  liczyć.  Praktycznie  każdy  pro-
gram,  bardziej  skomplikowany  niż  popu-
larny Hello World, może zawierać błąd – jest 
to  sprawa  naturalna.  Odpowiednie  wyko-
rzystanie  niektórych  błędów  może  pro-
wadzić  do  uzyskania  przez  intruza  więk-
szych  uprawnień  w  systemie  niż  miałby 
normalnie.  Może  też  pozwolić  na  uzyska-
nie dostępu do systemu, do którego intruz 
w  zwykłych  okolicznościach  nie  powinien 
mieć wcale dostępu. Takie błędy są wcześniej 
lub później ujawniane, a jeśli autorzy progra-
mu opiekują się swoim projektem, to publi-
kują  odpowiednie  poprawki.  W  przypad-
ku programów Open Source mogą to zrobić 
również inni programiści, a nawet my sami 
(o ile posiadamy odpowiednie umiejętności). 
Warto więc dbać o to, aby w systemie były 
zainstalowane jak najnowsze wersje oprogra-
mowania – szczególnie chodzi tu o progra-
my  najbardziej  narażone  na  atak,  takie  jak 
serwery WWW czy programy pocztowe.

Bardzo  często  zdarza  się,  że  użytkow-

nik  przez  własną  nieuwagę  lub  niewiedzę 
staje się ofiarą włamania lub zwykłej utraty 
danych. Swego czasu wiele osób korzystają-
cych z IRC miało zwyczaj doradzać nowym 
użytkownikom Linuksa zalogowanie się na 
konto root i wydanie polecenia 

rm -rf /

. Jeśli 

delikwent był łatwowierny, a na dodatek nie 
znał jeszcze podstawowych poleceń linukso-
wych, mogło skończyć się to dla niego nie-
zbyt  przyjemnie  (wspomniane  polecenie 
bez pytania kasuje wszystkie pliki na dysku). 
Jak  widać,  należy  mieć  mocno  ograniczo-
ne  zaufanie  do  tego,  co  mówią  inni  –  czy 
to na IRC, w listach elektronicznych, czy za 
pośrednictwem  komunikatora.  Nie  należy 
też  bez  namysłu  uruchamiać  zasłyszanych 
poleceń czy programów nadesłanych przez 
nie do końca zaufane osoby. To samo zresztą 
dotyczy podawania haseł czy udostępniania 
naszego komputera innym – jeśli to robimy, 

to  musimy  być  święcie  przekonani,  że  tej 
konkretnej osobie możemy zaufać.

Wspomniałem  o  błędach  konfigu-

racji.  Tu  w  zasadzie  również  wchodzi 
w  grę  czynnik  ludzki,  gdyż  błąd  w  kon-
figuracji  jest  zwykle  wynikiem  nasze-
go  przeoczenia,  pomyłki  w  planowaniu 
lub  po  prostu  nieznajomości  niektórych 
dostępnych  opcji.  Wyobraźmy  sobie  sytu-
ację,  gdy  wydaje  nam  się,  że  zabezpieczy-
liśmy  dobrze  nasz  komputer.  Założyliśmy 
dobre hasła, uruchomiliśmy zaporę sieciową 
i udostępniliśmy na zewnątrz tylko wybrane 
usługi. I wszystko byłoby w porządku, ale... 
w  zaporze  sieciowej  pomyliliśmy  kolejność 
dwóch  regułek.  I  to  wystarczy,  aby  działa-
ła nie do końca zgodnie z naszymi oczeki-
waniami – może przykładowo dawać dostęp 
do  portu,  który  miał  być  zablokowany. 
A włamywacz tylko czeka na takie okazje.

Instalacja Nessusa

Przed  zainstalowaniem  Nessusa  warto 
zadbać  o  to,  aby  w  systemie  były  zain-
stalowane  biblioteki  i  pliki  nagłówkowe 
OpenSSL.  W  przypadku  Auroksa  jest  to 
pakiet openssl-devel.

Zaczynamy  od  wejścia  na  stronę  do-

mową  programu  (http://www.nessus.org/ ). 
Wybieramy  sekcję  Download,  a  następ-
nie  odnośnik  Nessus  2.2  (w  chwili  pisa-
nia  artykułu  była  to  wersja  najnowsza). 
Z  wyświetlonej  strony  możemy  dowie-
dzieć się o trzech metodach instalacji Nessu-
sa
. My zdecydujemy się na drugą – prostą, 
a  równocześnie  bezpieczniejszą  od  najła-
twiejszej  metody.  W  sekcji  The  easy  and 
less  dangerous  way
  znajdziemy  spis  adre-
sów,  pod  którymi  możemy  znaleźć  insta-
lator.  Wybieramy  jeden  z  nich  (np.  http://
ftp.gwdg.de /pub/linux /misc/nessus/
nessus-2.2.0/nessus-installer/ 
)  i  pobieramy
z  niego  plik  nessus-installer.sh.  Teraz
już  wystarczy  wejść  do  katalogu,
w  którym  zapisaliśmy  plik  i  uruchomić 
go  poleceniem 

sh  nessus-installer.sh

.  Tę 

operację  wykonujemy  z  poziomu  zwykłe-
go użytkownika (nie wchodzimy na konto 
root).

Po  przeczytaniu  informacji  powital-

nej  możemy  wcisnąć  klawisz  [Enter].  Pro-
gram  zostaje  rozpakowany,  a  następnie 
jesteśmy  powiadomieni,  że  zostanie  utwo-
rzona  tymczasowa  powłoka  z  ustawio-
nym  bitem  SUID.  Pozwoli  to  instalatorowi 
w razie potrzeby na automatyczne korzysta-
nie  z  uprawnień  użytkownika  uprzywile-
jowanego.  Przyjmujemy  to  do  wiadomości 
wciskając klawisz [Enter], a następnie poda-

jemy  hasło  użytkownika  root  (przy  pyta-
niu  o  Root  Password).  Instalator  pyta  nas 
o  katalog,  w  którym  chcemy  zainstalo-
wać  Nessusa.  Klawiszem  [Enter]  zatwier-
dzamy  domyślny  wybór  (chyba,  że 
z  jakiegoś  powodu  chcemy  go  zmie-
nić  –  wówczas  wpisujemy  naszą  ścieżkę). 
Po  kolejnym  wciśnięciu  klawisza  [Enter
następuje  kompilacja  i  instalacja  programu 
(w  razie  konieczności  poprzedzona  usu-
nięciem  starszej  wersji).  Na  koniec  zostają 
wyświetlone ostatnie wskazówki i możemy 
opuścić  instalator  ponownym  wciśnięciem 
klawisza [Enter]. Jak widać, dzięki instalato-
rowi mogliśmy ograniczyć się do wciskania 
tylko  jednego  klawisza,  chociaż  pozostało 
przed nami jeszcze kilka czynności.

Najpierw  musimy  wygenerować  cer-

tyfikat,  który  będzie  wykorzystywa-
ny  do  szyfrowania  komunikacji  pomię-
dzy  serwerem  i  klientem  Nessusa.  W  tym 
celu  wydajemy  polecenie 

/usr/local/

sbin/nessus-mkcert

  (do  tego  już  potrze-

bujemy 

uprawnień 

superużytkowni-

ka,  więc  najpierw  korzystamy  z  polecenia 

su  -

  i  podajemy  hasło  użytkownika  root). 

Oczywiście, jeśli zainstalowaliśmy Nessusa w 
innym katalogu niż domyślny, to ścieżka do 
programu nessus-mkcert będzie odpowied-
nio  inna.  Kolejno  będziemy  musieli  podać 
następujące informacje:

•   termin ważności certyfikatu CA 

(w dniach),

•   termin ważności certyfikatu serwera 

(w dniach),

•   kod naszego państwa (np. dla Polski 

– PL),

•   nazwa naszego województwa lub 

powiatu,

•   nazwa miasta,
•   nazwa naszej organizacji.

Jeśli mamy wątpliwości, co powinniśmy 
wpisać,  możemy  skorzystać  z  wartości 

Rysunek 2. 

Nessus potrafi 

przeprowadzać równoczesne testy na 
różnych komputerach

background image

54

dla początkujących

styczeń 2005

domyślnych.  Po  przeczytaniu  informa-
cji  o  nazwach  plików,  w  których  zosta-
ły  zapisane  poszczególne  certyfikaty, 
możemy wcisnąć [Enter].

Teraz  musimy  dodać  użytkownika, 

który  będzie  mógł  korzystać  z  Nessusa
Nie opuszczając konta użytkownika root
wydajemy  polecenie 

/usr/local/sbin/

nessus-adduser

.  Podajemy  nazwę  użyt-

kownika, a następnie wybieramy sposób 
uwierzytelniania.  Prostsze  jest  korzysta-
nie z hasła niż z certyfikatu, więc wybie-
ramy tę pierwszą metodę (pass). Oczywi-
ście, należy też podać nasze hasło. Pamię-
tajmy jednak, aby nie było to takie samo 
hasło, jak do któregoś z naszych kont. Jeśli 
wybraliśmy  metodę  uwierzytelniania  za 
pomocą certyfikatu, to będziemy musieli 
odpowiedzieć na te same pytania, co przy 
tworzeniu  certyfikatu  Nessusa  (a  oprócz 
tego,  na  dwa  dodatkowe  –  o  nazwisko 
i imię oraz o adres e-mail).

Tworząc  użytkownika  możemy  od

razu nałożyć na niego ograniczenia. Doty-
czą  one  adresów  komputerów,  które 
może  testować  dany  użytkownik.  Jeśli 
nie  chcemy  ustalać  żadnych  ograniczeń, 
to  po  prostu  możemy  wcisnąć  kombi-
nację  klawiszy  [Ctrl]+[d].  W  innym  przy-
padku  możemy  wpisać  szereg  reguł 
(po jednej w każdej linii), np.:

accept 192.168.100.0/24
accept 192.168.5.1
default deny

Powyższe  linie  pozwalają  użytkow-
nikowi  na  testowanie  komputerów 
w  sieci  192.168.100.0/24  oraz  kompute-
ra  192.168.5.1.  Żadnego  innego  kompu-
tera  nie  będzie  mógł  przetestować,  gdyż 
domyślna  reguła  odmawia  mu  dostępu 
(default deny). Oczywiście, reguły można 
zbudować inaczej – zabronić dostępu do 
określonych  komputerów  i  pozwolić  do 
wszystkich pozostałych. Ciekawostką jest 
możliwość użycia słowa client_ip zamiast 

adresu  komputera.  W  jego  miejsce  pod-
stawiany jest adres komputera, z którego 
łączy  się  użytkownik  korzystający  z  Nes-
susa
. Dzięki temu łatwo można pozwolić 
użytkownikowi  tylko  na  testowanie  jego 
własnego komputera. Odpowiednie reguł-
ki wyglądają następująco:

accept client_ip
default deny

Wpisywanie regułek kończymy znaną już 
kombinacją [Ctrl]+[d]. Wprowadzone dane 
potwierdzamy wpisując y.

Przed  uruchomieniem  serwera  warto 

sprawdzić,  czy  nie  pojawiły  się  nowe 
wtyczki. Wydajemy polecenie 

/usr/local/

sbin/nessus-update-plugins

  –  jeśli  zosta-

ną znalezione nowe wtyczki, program je 
zainstaluje.  Oczywiście,  do  wykonania 
tego  polecenia  potrzebujemy  połączenia 
z Internetem.

Teraz  możemy  już  uruchomić  serwer 

Nessusa  poleceniem 

/usr/local/sbin/

nessusd -D

. Pojawi się informacja o łado-

waniu  wtyczek  (ang.  plugins).  Jeśli  nie 
zadbaliśmy  o  skompilowanie  Nessusa 
z obsługą OpenSSL, to może pojawić się 
kilka  ostrzeżeń.  Jeśli  zainstalowaliśmy 
wcześniej  wspomniany  pakiet  openssl-
devel
, to powinniśmy zobaczyć napis All 
plugins  loaded
.  Klienta  Nessusa  urucha-
miamy już z konta zwykłego użytkownika 
poleceniem 

/usr/local/bin/nessus

.

Konfiguracja Nessusa

Po uruchomieniu pokazuje się nam okno 
programu  z  kilkoma  zakładkami.  Na 
razie  interesuje  nas  tylko  pierwsza,  gdyż 
musimy  połączyć  się  z  serwerem  Nessu-
sa
. W polu Nessusd Host wpisujemy nazwę 
komputera,  na  którym  jest  uruchomiony 
serwer. Jeśli jest uruchomiony na kompu-
terze, z którego korzystamy, możemy po 
prostu wpisać 

localhost

. Pole Port pozo-

stawiamy bez zmian – Nessus standardo-
wo nasłuchuje na porcie 1241. W polach 
Login i Password wpisujemy nazwę i hasło 
użytkownika Nessusa (te, które wpisywa-
liśmy po wydaniu polecenia 

nessus-addu-

ser

). Teraz wystarczy wcisnąć przycisk Log 

in. Przy pierwszym uruchomieniu pojawi 
się informacja o certyfikacie. Sprawdzamy, 
czy  jest  on  poprawny,  tzn.  wyświetlone 
wartości zgadzają się z tym, co podawali-
śmy podczas jego tworzenia, a następnie 
zatwierdzamy go wciskając Yes.

Po zalogowaniu się zostaniemy prze-

niesieni  do  drugiej  zakładki  (Plugins), 

gdzie  możemy  zapoznać  się  ze  wszyst-
kimi  dostępnymi  wtyczkami.  Biorąc  pod 
uwagę, że jest ich obecnie sporo ponad 5 
tysięcy, mamy lekturę na dłuższy czas. Na 
szczęście,  jeśli  chcemy  przeprowadzić 
kompletny test, nie musimy czytać opisu 
wszystkich  wtyczek  (opisy  są  dostęp-
ne  po  wskazaniu  konkretnej  wtyczki). 
W  górnej  części  znajduje  się  spis  grup, 
natomiast  w  dolnej  spis  wtyczek  nale-
żących  do  danej  grupy.  Możemy  zazna-
czyć  wszystkie  wtyczki  wciskając  przy-
cisk Enable all. Należy zwrócić uwagę, że 
niektóre testy mają na celu destabilizację 
testowanego systemu (tzw. ataki odmowy 
usługi).  Jeśli  wolimy  nie  przeprowadzać 
aż  tak  niebezpiecznych  testów,  możemy 
je  wyłączyć  przyciskiem  Enable  all  but 
dangerous  plugins
.  Dodatkowo  możemy 
wyłączyć  całą  grupę  testów  związanych 
z odmową usługi (Denial of Service).

Oczywiście, nic nie stoi na przeszko-

dzie,  aby  przeprowadzić  tylko  pojedyn-
cze,  wybrane  testy.  W  tym  celu  wystar-
czy  najpierw  wcisnąć  przycisk  Disable 
all
, a następnie ze spisu wybrać potrzeb-
ne  nam  wtyczki.  Warto  przy  tym  zazna-
czyć opcję Enable dependencies at runti-
me
, dzięki czemu w razie potrzeby zosta-
ną  zaznaczone  inne  potrzebne  wtyczki 
(jeśli  są  potrzebne  do  działania  wybra-
nych przez nas testów). Dostępny przycisk 
Filter pozwala nam na wyświetlenie tylko 
wtyczek spełniających określone kryteria 
(np.  w  nazwie  lub  opisie  zawierających 
słowo ssh).

Następne  dwie  zakładki  (Prefs. 

i  Scan  options)  służą  do  ustawie-
nia  dokładniejszych  opcji.  Możemy  tu 
zdecydować,  jaka  technika  skanowa-
nia  portów  ma  być  zastosowana,  jakie 

Rysunek 3. 

Te systemy wymagają 

wprowadzenia jeszcze kilku zabezpieczeń

Ostrzeżenie

Skaner  systemowy  możemy  stosować 
tylko  względem  systemów  komputero-
wych i sieci, które należą do nas lub co 
do których uzyskaliśmy stosowną zgodę. 
Niezastosowanie się do tej zasady może 
grozić  niezbyt  przyjemnymi  konsekwen-
cjami, z odpowiedzialnością karną włącz-
nie.  O  ile  bowiem  trudno  podstawowe 
skanowanie  jednoznacznie  uznać  za 
próbę ataku, o tyle niektórzy administra-
torzy są na tym punkcie mocno przewraż-
liwieni.  Ponadto,  niektóre  testy  mogą 
doprowadzić  do  zawieszenia  niektórych 
usług, a to w przypadku systemów pro-
dukcyjnych nie może już być traktowane 
w kategorii żartu.

background image

55

dla początkujących

nessus

www.lpmagazine.org

nazwy użytkowników i hasła mają być 
użyte  przy  logowaniu  się  do  poszcze-
gólnych  usług  oraz  możemy  określić 
liczbę  testów  wykonywanych  w  tym 
samym  czasie.  Jest  tu  też  dostępna 
opcja Safe checks (domyślnie włączona). 
Powoduje  ona,  że  potencjalnie  groźne 
wtyczki  wykonują  "łagodniejsze"  testy, 
np. opierając się na rozpoznaniu wersji 
oprogramowania,  zamiast  na  własnych 
testach. Należy pamiętać, że nie wszyst-
kie  wtyczki  uwzględniają  tę  opcję.  Jej 
użycie może też prowadzić do pojawie-
nia się większej liczby fałszywych alar-
mów (więcej informacji w ramce Fałszy-
we  alarmy
).  Jeśli  nie  wiemy,  do  czego 
służy  dana  opcja,  lepiej  pozostawić  ją 
w domyślnym ustawieniu.

W  zakładce  Target  selection  może-

my  wreszcie  określić,  który  kompu-
ter chcemy skanować. Jego adres wpi-
sujemy  w  polu  Target(s).  Oczywiście, 
zamiast  pojedynczego  adresu  (np. 

127.0.0.1

) możemy od razu wpisać cały 

zakres  (np. 

192.168.0.1-192.168.2.50

 

lub 

192.168.10.1/24

).  Możemy  też 

wymienić  kilka  pojedynczych  kompu-

terów  i  kilka  zakresów  oddzielając  je 
przecinkami.

Te  opcje  powinny  nam  wystarczyć. 

Teraz już możemy wcisnąć widoczny na 
dole okna przycisk Start the scan. Otwo-
rzy się kolejne okno, w którym będziemy 
mogli obserwować przebieg skanowania 
poszczególnych  komputerów.  Gdy  ska-
nowanie  zakończy  się,  otwarte  zostanie 
okno z raportem.

Analiza wyników

Pora  sprawdzić,  co  znalazł  Nessus  na 
naszym  systemie.  Okno  raportu  podzie-
lone  jest  na  pięć  części.  Po  lewej  stro-
nie widzimy adresy testowanych podsieci 
(Subnet). Przy ich adresach można zauwa-
żyć znaczek określający, czy Nessus wykrył 
jakieś  problemy.  Ikona  żarówki  oznacza 
informację,  znak  ostrzeżenia  z  wykrzyk-
nikiem  oznacza  ostrzeżenie  dotyczące 
bezpieczeństwa,  a  znak  zakazu  wjazdu 
oznacza  potencjalną  lukę  w  bezpieczeń-
stwie.  Po  wybraniu  konkretnej  podsieci 
w okienku poniżej (Host) pojawi się spis 
przetestowanych komputerów należących 
do tej podsieci. Również tutaj możemy na 

pierwszy  rzut  oka  ocenić,  który  kompu-
ter  jest  najbardziej  zagrożony.  Po  zazna-
czeniu  adresu  komputera  w  umiesz-
czonym  na  górze  oknie  Port,  pojawi  się 
spis  znalezionych  portów  (ponownie 
z  informacją  o  zagrożeniach).  Wybranie 
jednego z nich sprawia, że w umieszczo-
nym  obok  okienku  Severity  zobaczymy 
listę zagrożeń uporządkowaną względem 
powagi.  Dopiero,  gdy  wskażemy  jedno 
z  nich,  w  głównej  części  okna  zobaczy-
my szczegółowy opis luki. Metody sorto-
wania w poszczególnych oknach możemy 

Rysunek 4. 

Z pomocą obszernego 

podręcznika możemy napisać własne 
wtyczki do Nessusa

R

E

K

L

A

M

A

background image

56

dla początkujących

styczeń 2005

dowolnie  zmieniać,  dzięki  czemu  znaj-
dywać  luki  w  inny  sposób.  Przykłado-
wo,  warto  zamienić  miejscami  pola  Port 
i  Severity,  ale  również  inne  kombina-
cje mogą dać ciekawe efekty – wszystko 
zależy  od  tego,  jakie  informacje  bardziej 
nas interesują.

Istotne  jest,  abyśmy  zapoznali  się 

ze  wszystkimi  informacjami  zawartymi 
w głównym oknie. W przypadku ostrzeżeń 
i  powiadomień  o  lukach  w  bezpieczeń-
stwie  otrzymujemy  opis  zagrożenia.  Przy-
kładowo,  w  sytuacji  wykrycia  przez  Nes-
susa
 serwera WWW Apache w wersji star-
szej  niż  2.0.51,  jesteśmy  powiadamiani  o 
jego wrażliwości na zdalny atak odmowy 
usługi  (DoS  –  Denial  of  Service).  Wersje 
te  są  również  podatne  na  atak  z  wyko-
rzystaniem  przepełnienia  bufora.  Oprócz 
takiego  opisu,  możemy  też  zobaczyć 
kilka dodatkowych rubryk. Adres podany 
w  See  also  pozwala  nam  zapoznać  się 
z  szerszym  opisem  błędu.  Najważniej-
sza  dla  nas  jest  zawartość  rubryki  Solu-
tion
, gdyż opisuje ona możliwe rozwiąza-
nie  problemu.  W  przypadku  wspomnia-
nego błędu rozwiązaniem jest uaktualnie-
nie  serwera  Apache  do  wersji  2.0.51  lub 

nowszej.  Dalej  możemy  dowiedzieć  się, 
jak duże ryzyko (Risk factor) jest związane 
z  danym  błędem.  W  tym  przypadku 
ryzyko  jest  wysokie  (High).  Najlepiej  jak 
najszybciej  uaktualnić  oprogramowanie. 
W  przypadku  innych  ostrzeżeń,  ryzyko 
może  być  średnie  (Medium)  lub  niskie 
(Low),  a  w  przypadku  informacji  o  bez-
pieczeństwie – nawet zerowe (None). Nie-
mniej, powinniśmy zapoznać się ze wszy-
stkimi  informacjami,  gdyż  każda  z  nich
może  być  istotna.  Przykładowo,  może 
okazać  się,  że  jedna  z  usług,  pomimo
naszych starań, nadal jest dostępna z Inter-
netu, a nie tylko z sieci lokalnej. Nie należy 
od razu podejmować czynności opisanych 
w  Solution  bez  zapoznania  się  z  całym 
opisem  problemu.  Może  bowiem  okazać
się,  że  w  ten  sposób  zablokujemy  sobie 
usługę,  na  której  nam  zależało,  a  co  do 
której  tylko  dostaliśmy  pewne  pouczenie 
(jak ma to miejsce w przypadku zainstalo-
wanego oidentd, potrzebnego do łączenia 
z niektórymi serwerami IRC).

Jeśli  chcemy  uzyskać  jeszcze  więcej 

informacji  na  temat  błędu,  możemy  sko-
rzystać z wartości podanych w rubrykach 
CVE i BID. Pierwsza z nich podaje sym-
bole,  według  których  możemy  wyszuki-
wać  informacje  na  stronie  Common Vul-
nerabilities  and  Exposures
  (pod  adre-
sem 

http://www.cve.mitre.org/cve/index

.html  wpisujemy  symbol  w  polu  CVE 
Name
). Druga podaje identyfikator błędu 
na  liście  BugTraq  (możemy  go  wpisać 
w  polu  Bugtraq  ID  na  stronie  http://
www.securityfocus.com/bid/bugtraqid/ 
).

Raport  ze  skanu  możemy  zapisać  na 

dysku korzystając z przycisku Save report
Do  wyboru  mamy  kilka  różnych  forma-
tów zapisu danych. Jeśli zdecydujemy się 
zapisać raport w formacie NBE, to później 
będziemy  mogli  go  ponownie  otworzyć 
w kliencie Nessusa. Jeśli natomiast chcemy 
później  obejrzeć  raport  wraz  z  różnymi 
wykresami i zestawieniami w przeglądar-
ce  internetowej,  to  powinniśmy  wybrać 
format HTML with Pies and Graphs.

Wyniki  skanowania  zależą  od  tego, 

jakie  opcje  dobierzemy.  Warto  zapoznać 
się  z  obszerną  dokumentacją  dostępną 
na  stronie  domowej  Nessusa,  aby  lepiej 
poznać  jego  możliwości  i  zastosowa-
nie  poszczególnych  opcji  konfiguracyj-
nych. Z pewnością sprawi to, że będzie-
my  mogli  lepiej  dobierać  ustawienia  do 
naszych potrzeb, co w rezultacie pozwo-
li  skuteczniej  zwiększyć  bezpieczeństwo 
systemu i sieci.

Dodatkowe 

oprogramowanie

Nessus,  oprócz  własnych  wewnętrz-
nych testów, może wykorzystywać kilka 
innych  programów.  Przykładowo,  pro-
gram  Nmap  może  być  użyty  do  skano-
wania  portów  i  wielu  bardziej  zaawan-
sowanych  operacji,  takich  jak  rozpozna-
wanie systemu operacyjnego. Jeśli zależy 
nam na przeprowadzeniu testów odpor-
ności  haseł  na  złamanie,  możemy  zain-
stalować program Hydra. Pozwoli on na 
wykonanie  prób  brutalnego  złamania 
haseł  (bruteforce  attack)  w  takich  usłu-
gach,  jak  Telnet,  WWW,  POP3,  IMAP 
i  inne.  Oprócz  tego,  można  wykorzy-
stać program Nikto – zapewnia on obsłu-
gę  specyficznych  ataków  i  testów  doty-
czących serwerów WWW i usług skryp-
tów CGI.

O  ile  program  Nmap  możemy  zna-

leźć  w  większości  dystrybucji  Linuksa, 
o  tyle  pozostałe  programy  raczej 
musimy  zainstalować  osobno.  Nie  są 
one  niezbędne  do  działania  Nessusa
ale  zwiększają  jego  funkcjonalność. 
Adresy ich stron domowych znajdują się 
w ramce W Internecie.

Przykładowe testy

W rozdziale Analiza wyników mogliśmy 
zapoznać się ze sposobem odczytywania 
wyników  testów.  Spróbujmy  teraz  zoba-
czyć kilka wyników z prawdziwego ska-
nowania  i  zastanowić  się,  jak  je  trakto-
wać.  Analizie  został  poddany  kompu-
ter  z  dosyć  dawno  instalowanym  sys-
temem,  tylko  w  razie  potrzeby  uzupeł-
nianym  nowymi  pakietami,  więc  zgło-
szeń błędów było dosyć dużo (7 luk, 18 
ostrzeżeń  i  39  informacji).  Raport  został 
zapisany w formacie HTML with Pies and 
Graphs
.

Na  pierwszej  stronie  raportu  został 

przedstawiony w formie graficznej pro-

Fałszywe alarmy

Należy  pamiętać,  że  Nessus  przepro-
wadza  analizę  na  podstawie  dostępnych 
informacji.  Może  się  okazać,  że  będą 
one niewystarczające lub doprowadzą do 
błędnych wniosków. Z tego powodu część 
ostrzeżeń, a nawet powiadomień o lukach 
w zabezpieczeniach, może okazać się fał-
szywa.

Może  się  tak  przykładowo  zdarzyć 

w sytuacji, gdy Nessus jest w stanie roz-
poznać  oprogramowanie  nasłuchujące 
na określonym porcie, ale nie umie usta-
lić  jego  wersji.  W  tym  przypadku  może 
ostrzec  o  błędach,  które  dotyczą  wcze-
śniejszych wersji tego programu niż zain-
stalowana w naszym systemie.

Inna sytuacja, gdy ostrzeżenie może 

być  fałszywe,  to  przypadek,  gdy  błąd 
sam  w  sobie  jest  groźny,  ale  ze  wzglę-
du  na  podjęte  przez  nas  inne  czynności 
(np.  odpowiedni  podział  dysku  na  party-
cje), w naszym systemie okazuje się być 
nieszkodliwy.

Nie da się wyliczyć wszystkich sytu-

acji,  gdy  Nessus  może  zwrócić  fałszy-
we  alarmy.  Dobrze  jest  uważnie  czytać 
opisy zgłoszeń i starannie je analizować. 
Nessus zwraca stosunkowo mało fałszy-
wych  alarmów,  ale  nie  należy  mu  ufać 
bezgranicznie.

Rysunek 5. 

W serwisie SecurityFocus 

możemy wyszukiwać informacje o lukach 
na podstawie różnych kryteriów

background image

57

dla początkujących

nessus

www.lpmagazine.org

W Internecie:

•   Strona domowa programu Nessus:

http://www.nessus.org/

•   Strona domowa programu Nmap:

http://www.insecure.org/nmap/
index.html

•   Strona domowa programu Hydra:

http://www.thc.org/releases.php

•   Strona domowa programu Nikto:

http://www.cirt.net/code/nikto.shtml

•   Wprowadzenie do Nessusa (artykuł 

autorstwa Harry'ego Andersona):
http://www.securityfocus.com/
infocus/1741

•   Lista BugTraq:

http://www.securityfocus.com/
archive/1

centowy  udział  poszczególnych  pozio-
mów  ryzyka.  Ponieważ  poziomy  High 
i  Medium  uzyskały  odpowiednio  po 
11%  i  28%,  to  odpowiednie  kroki 
powinno podjąć się jak najszybciej. Naj-
bardziej  zagrożonymi  usługami  oka-
zały  się  CVSpserver  i  usługa  działają-
ca  na  porcie  5432  (zidentyfikowana 
później  jako  PostgreSQL).  co  przedsta-
wił  kolejny  wykres.  W  celu  uzyskania 
dokładniejszych informacji powinniśmy 
przejść do części drugiej raportu, wska-
zując nazwę testowanego komputera.

Tu  możemy  zobaczyć  listę  otwar-

tych  portów.  Okazuje  się,  że  jest  ich 
aż  34,  z  czego  na  pięciu  Nessus  zna-
lazł  luki  bezpieczeństwa  (CVSpserver, 
MySQL,  HTTPS,  Microsoft-ds
  i  port 
5432,  wykorzystywany  przez  Postgre-
SQL
), a dla sześciu wyświetlił ostrzeże-
nia. Poza tym jedenaście portów zosta-
ło  opatrzonych  informacjami,  a  pozo-
stałe  zostały  tylko  zakomunikowane 
jako nasłuchujące. Zapoznajmy się naj-
pierw  z  dwoma  lukami  dotyczącymi 
serwera CVS.

Pierwsza  z  nich  została  wykryta

przez  wtyczkę  opisaną  na  stronie
http://cgi.nessus.org/plugins/dump.php3?id
=11970.
  Do  opisów  wtyczek  prowadzą 
odnośniki  umieszczone  w  polu  Nessus 
ID. Jest to ostrzeżenie przed błędem ist-
niejącym w CVS do wersji 1.11.10, mogą-
cym pozwolić intruzowi na wykonywa-
nie w systemie poleceń z uprawnienia-
mi użytkownika root. Ponieważ Nessus 
nie był w stanie określić numeru wyko-
rzystywanej  wersji  CVS,  pojawiło  się 
ostrzeżenie,  że  może  to  być  fałszywy 
alarm. Niestety, sprawdzenie w testowa-
nym systemie (

rpm -q cvs

) wykazało, że 

jednak jest on narażony na atak – zain-
stalowana wersja CVS to 1.11.2-10. Zale-
canym przez Nessusa (i w zasadzie naj-
lepszym)  rozwiązaniem  jest  aktualiza-
cja  oprogramowania  do  wersji  co  naj-
mniej 1.11.11.

Zanim  to  zrobimy,  zapoznajmy  się 

z opisem drugiej luki. Ta została wykry-
ta  przez  wtyczkę  opisaną  na  stro-
nie  http://cgi.nessus.org/plugins/dump.
php3?id=12265
.  Również  ta  luka  nie 
jest  mała  –  ze  względu  na  brak  termi-
natora NULL w źle sformatowanych cią-
gach tekstowych, intruz może wykony-
wać  pewne  polecenia  w  naszym  sys-
temie.  Zalecana  jest  aktualizacja  aż  do 
wersji  1.11.17,  a  więc  wyższej  niż  przy 
poprzedniej luce.

Obie  te  luki  umożliwiają  atak 

z zewnątrz, więc należą do najbardziej 
niebezpiecznej grupy. O ile w przypad-
ku  pierwszej  z  nich  nie  potwierdzono 
istnienia działających eksploitów, o tyle 
w przypadku drugiej taki kod istnieje.

Oprócz  nich,  Nessus  zgłosił  dwa 

ostrzeżenia  dotyczące  serwera  CVS. 
Pierwszy  z  nich  (http://cgi.nessus.org/
plugins/dump.php3?id=11947
)  dotyczy
błędu  sprawdzania  wprowadzanych 
danych,  mogącego  pozwolić  intruzo-
wi  na  tworzenie  katalogów  i  plików 
w  głównym  katalogu  systemu  plików 
przechowującego  drzewo  CVS.  Drugi 
z  kolei  (http://cgi.nessus.org/plugins/
dump.php3?id=12212
)  może  pozwalać 
na pobieranie plików RCS nawet spoza 
głównego katalogu CVS. Do poprawie-
nia  tych  błędów  powinno  wystarczyć 
uaktualnienie CVS do wersji 1.11.15 lub 
wyższej.

Korzystając  z  informacji  zawartych 

we  wszystkich  czterech  zgłoszeniach, 
ostatecznie  powinniśmy  się  zdecydo-
wać na wersję 1.11.17 lub wyższą.

Warto  zwracać  uwagę  na  komuni-

katy  informacyjne.  Właśnie  odnośnie 
serwera  CVS  został  wyświetlony  jeden 
taki  komunikat  (http://cgi.nessus.org/
plugins/dump.php3?id=10051
). Sugeruje 
on, aby zablokować dostęp z zewnątrz 
dla  portu  CVS.  Jest  to  mądre,  i  o  ile 
tylko  nie  musimy  udostępniać  serwera 
CVS osobom z sieci, powinniśmy dopi-
sać odpowiednią regułkę w zaporze sie-
ciowej.  Jeśli  koniecznie  musimy  udo-
stępnić  serwer,  to  powinniśmy  przy-
najmniej ograniczyć liczbę komputerów, 
które mogą się z nim łączyć. Warto też 
zauważyć,  że  powinno  to  automatycz-
nie zniwelować możliwość wykorzysta-
nia  przez  włamywacza  wymienionych 
wcześniej luk.

Innym  przykładem  portu,  który 

powinien  być  odfiltrowany  na  zapo-
rze  sieciowej,  jest  port  901,  należą-
cy  do  programu  SWAT.  O  ile  bowiem 
błąd  przedstawiony  w  ostrzeżeniu
(http://cgi.nessus.org/plugins/dump.
php3?id=10273
)  dotyczy  dosyć  starej 
wersji  2.0.7  (więcej  informacji  na  stro-
nie  http://www.securityfocus.com/bid/
1872
). o tyle rzeczywiście możliwe jest 
wykonanie  brutalnego  ataku  na  tę 
usługę.  Może  to  być  szczególnie  nie-
bezpieczne,  jeśli  hasła  Samby  są  zsyn-
chronizowane z hasłami systemowymi. 
Oczywiście,  zamiast  filtrować  port  na 

zaporze  sieciowej  możemy  po  prostu 
wyłączyć  SWAT  (o  ile  go  nie  potrze-
bujemy).

Jak widać, w celu wyrobienia sobie 

obrazu tego, co musimy zrobić, powin-
niśmy zapoznać się ze wszystkimi opi-
sami  błędów,  ostrzeżeniami,  a  nawet 
zwykłymi  informacjami.  W  przypad-
ku,  gdy  chodzi  o  bezpieczeństwo,  nie 
powinniśmy  pozwalać  sobie  na  nie-
dbałość. Poza tym, szkoda naszej pracy 
– gdybyśmy działali od razu po przeczy-
taniu  każdej  informacji,  to  serwer  CVS 
uaktualnialibyśmy  w  najgorszym  przy-
padku cztery razy.

Zakończenie

Zabezpieczanie  komputerów  i  sieci  to 
wyścig bez końca. Należy pamiętać, że 
istnieje pewna granica, której podczas 
zabezpieczania  nie  możemy  lub  nie 
powinniśmy przekroczyć. Jest to grani-
ca wygody naszej lub naszych klientów 
w  korzystaniu  z  systemu  lub  sieci. 
Nie ulega bowiem wątpliwości, że nie 
ma  sensu  zabezpieczać  komputera  do 
tego stopnia, że nikt nie będzie chciał 
z  niego  korzystać.  Jakie  dane  będzie-
my  wtedy  chronić?  Znalezienie  kom-
promisu  pomiędzy  wygodą  i  bezpie-
czeństwem  to  właśnie  nasze  zada-
nie.  Należy  do  niego  nie  tylko  zabez-
pieczenie  sprzętu  i  oprogramowania, 
ale  również  odpowiednie  wychowa-
nie użytkowników. Pamiętajmy zawsze 
o  tym,  że  łańcuch  zabezpieczeń  jest 
tak  silny,  jak  jego  najsłabsze  ogniwo. 
A najsłabszym ogniwem bardzo często 
okazuje się człowiek. 

background image

58

dla początkujących

styczeń 2005

59

www.lpmagazine.org

dla początkujących

sztuczki i kruczki

Sztuczki i kruczki

Grzegorz Niewęgłowski

Synchronizowanie czasu i daty 

z serwerami w Internecie

Wygodnym 

sposobem 

ustawiania 

daty  systemowej  jest  synchronizowa-
nie jej ze specjalnymi serwerami czasu. 
Dzięki  temu  mamy  poprawnie  działa-
jący,  co  do  sekundy,  zegar  systemo-
wy i na dodatek nie musimy przepro-
wadzać  tej  operacji  ręcznie  –  wystar-
czy  tylko  znaleźć  adres  odpowiednie-
go serwera. Najpopularniejsze są pole-
cenia  rdate  i  ntpdate  (odpowiednio 
z  pakietów  rdate  i  ntp).  Do  normal-
nych  zastosowań  wystarcza  rdate,  ale 
dla osób potrzebujących precyzji idącej 
w  milisekundy,  ntpdate  będzie  lep-
szym wyborem.

Dobrym źródłem aktualnego czasu 

jest  ntp.task.gda.pl.  Najpierw  warto 
sprawdzić,  czy  możemy  połączyć  się 
z serwerem i czy jego czas jest popraw-
ny. Zdalny czas odczytujemy tymi pole-
ceniami:

# rdate ntp.task.gda.pl
# ntpdate -q ntp.task.gda.pl

Jeśli  podawany  czas  jest  popraw-
ny,  możemy  zsynchronizować  według 
niego  własny  komputer.  Ten  krok 
wymaga już uprawnień superużytkow-
nika,  bo  przestawieniu  ulegnie  zegar 
systemowy Linuksa:

# rdate -s ntp.task.gda.pl
# ntpdate ntp.task.gda.pl

Taka  korekta  zniknie  jednak  zapew-
ne po restarcie komputera. Jest to spo-
wodowane  istnieniem  dwóch  osob-
nych  zegarów  –  jeden  z  nich  to  zegar 
utrzymywany  przez  Linuksa  w  trak-
cie jego pracy, a drugi jest wbudowany 
w  płytę  główną  i  podtrzymywany 
bateryjką  po  wyłączeniu  maszyny. 
Przy  uruchamianiu,  Linux  odczytuje 
jego  ustawienia  i  bazując  na  nich 
zaczyna  prowadzić  swój  własny  ze-

gar.  Synchronizacja  zmienia  tylko 
zegar  Linuksa,  ale  nadal  działa  nie-
skorygowany  zegar  płyty  głównej. 
Dlatego, aby zmiana była stała, należy 
po  synchronizacji  zegara  zapisać  jego 
ustawienia  w  zegarze  płyty  głów-
nej.  Wykonamy  to  programem  /sbin/
hwclock
,  który  wchodzi  w  skład  Util-
linux
:

# /sbin/hwclock –systohc

Wiele  dystrybucji  Linuksa  (choć  nie 
wszystkie)  wykonują  taką  czynność 
automatycznie przy wyłączaniu kompu-
tera, ale jeśli nie mamy co do tego pew-
ności,  to  lepiej  samodzielnie  zapisać 
ustawienia zegara po synchronizacji. 

X-Server i dostęp do fontów

Wiele  razy  spotykam  się  z  pytaniem: 
„A po co jest ten cały xfs ?”, w odniesie-
niu do tajemniczego programu potrzeb-
nego  X-om  do  pracy.  Xfs  jest  serwe-
rem  fontów.  To  oznacza,  że  w  opar-
ciu  o  swój  plik  konfiguracyjny,  defi-
niujący, gdzie położone są fonty, udo-
stępnia  je  X-om.  Ma  naturę  sieciową 
i  może  obsługiwać  wielu  klientów, 
więc możliwe jest uruchomienie poje-
dynczego serwera Xfs w sieci lokalnej 
i  takie  skonfigurowanie  X-ów  na 
innych  maszynach,  aby  wszystkie 
pobierały  od  niego  fonty.  Pozwa-
la  to  zaoszczędzić  miejsce  na  dysku 
(wielu  klientów  ma  wspólne  repozy-
torium fontów) i często ominąć pewne 
restrykcje  licencyjne  samych  fontów 
(korzysta  się  z  pojedynczej  kopii 
fontów).

Ale  czy  ma  to  sens  w  przypad-

ku  typowej  stacji  roboczej,  gdy  fonty 
leżą  na  lokalnym  dysku?  Kiedyś 
owszem,  gdyż  miało  to  swoje  uzasad-
nienie  –  tylko  zewnętrzne  serwery 
fontów umiały udostępniać fonty True-
Type
. Obecnie sam X-Server (nieważne, 
czy  wersja  XFree86,  czy  X.org)  dos-

konale  radzi  sobie  z  obsługą  fontów 
bitmapowych  i  skalowalnych  (w  tym
TrueType).  Można  więc  zrezygnować 
z  osobnego  serwera  fontów,  wyłą-
czając  jego  proces  i  zdając  się  na 
mechanizmy wbudowane w same X-y. 
Oszczędzi  to  trochę  zasobów,  a  uru-
chamianie  X-ów  stanie  się  prostsze 
(nie  trzeba  będzie  najpierw  urucha-
miać xfs).

Zmian  dokonujemy  w  pliku  kon-

figuracyjnym  X-ów,  czyli  /etc/X11/
XF86Config
 (lub xorg.conf ). Najpierw 
musimy  poprawić  sekcję  Files,  usu-
wając  z  niej  wiersz 

FontPath  "unix/:

7100"

  (lub  podobny).  Zamiast  niego 

wpisujemy bezpośrednio ścieżki dostę-
pu  do  katalogów  z  fontami  –  można 
posiłkować  się  zawartością  konfigu-
racji  Xfs,  zwykle  w  /etc/X11/fs/config
Powinniśmy  wpisać  te  katalogi  do
sekcji  Files  tak,  aby  wyglądała  po-
dobnie  do  tej  z  Listingu  1  (oczy-
wiście,  katalogi  z  fontami  mogą  być 
inne).

Oprócz  tego,  konieczne  może  być 

skorygowanie  sekcji  Module.  W  zależ-
ności  od  używanych  fontów,  musimy 
włączyć odpowiednie moduły:

Load "freetype"
Load "type1"
Load "bitmap"

Listing 1. 

Przykładowa sekcja “Files”

Section "Files"

   FontPath "/usr/lib/X11/fonts/misc"
   FontPath "/usr/lib/X11/fonts/

S

100dpi”

   FontPath "/usr/lib/X11/fonts/75dpi"
   FontPath "/usr/lib/X11/fonts/Type1"
   FontPath "/usr/share/fonts/

S

FantasyTTF"

EndSection

background image

58

dla początkujących

styczeń 2005

59

www.lpmagazine.org

dla początkujących

sztuczki i kruczki

Moduł  freetype  odpowiada  za  fonty 
TrueType (*.ttf ). Moduł type1 obsługuje 
fonty 

Adobe  Type1

  (*.afm,  *.pfm,  *.pfb), 

a  niezbędny  moduł  bitmap  fonty  bit-
mapowe (zwykle w plikach *.bdf ). Jeśli 
nie mamy zamiaru używać np. fontów 
Type1, to możemy pominąć ładowanie 
odpowiedniego modułu. 

Dlaczego mój Aterm/Eterm 

nie jest przezroczysty?

Nowi  użytkownicy  terminali  obsługu-
jących przezroczystość (np. Aterm lub 
Eterm
)  często  ze  zdziwieniem  zauwa-
żają, że tło, zamiast oczekiwanej prze-
zroczystości,  jest  całkiem  czarne. 
Wyjaśnienie  jest  proste  –  aby  prze-
zroczystość  mogła  zadziałać,  potrzeb-
na  jest  jakaś  tapeta  na  pulpicie.  Nie 
jest  to  jedyny  warunek,  gdyż  oprócz 
tego,  tapeta  musi  być  ustawiana 
specjalnym  programem,  przystoso-
wanym  do  wykonywania  w  pamię-
ci  operacyjnej  specjalnej  kopii  tapety 
na  użytek  przezroczystości.  Takimi 
programami  są  przykładowo  Esetroot 
(zwykle  rozprowadzany  razem  z  Eter-
mem
)  oraz  Habak  (używany  w  silnie 
zorientowanym  na  efekty  przezroczy-
stości  projekcie  Fvwm  Crystal ).  Uży-
wając  odpowiedniego  narzędzia  do 
ładowania  tapety,  bez  problemu  osią-
gniemy  np.  takiego  Aterma  jak  na 
Rysunku 1. 

Co znaczą symbole typu 

char-major-10-135 w logach?

Czasem  w  logach  jądra,  zwłaszcza  po 
pierwszych w życiu próbach samodziel-
nej kompilacji, pojawiają się komunika-
ty dotyczące niemożności załadowania 
modułu  np.  dla 

char-major-10-135

.  Co 

oznacza ten zapis?

Jest  to  sposób  oznaczenia  pliku 

urządzenia  w  /dev,  czyli  zapewne 

w  jądrze  zabrakło  obsługi  jakiegoś 
specyficznego  urządzenia.  W  tym 
przypadku  chodzi  o  urządzenie  typu 
char  (urządzenie  znakowe),  o  głów-
nym  (major)  numerze  równym  10 
oraz pobocznym (minor) równym 135. 
Na  szczęście,  ten  kod  da  się  prze-
łożyć  na  język  zrozumiały  dla  zwy-
kłego użytkownika – odpowiedzi mo-
żna  znaleźć  w  pliku  /usr/src/linux/
Documentation/devices.txt
  (jest  on 
częścią  dokumentacji  jądra).  Znajdu-
ją  się  w  nim  szczegółowe  tabele  opi-
sujące kombinacje numerków i typów. 
Najpierw  musimy  znaleźć  rozpiskę 
dla  głównego  numeru  10  urządzeń 
znakowych.  Szukanie  ciągu  10  char 
od  razu  zaprowadzi  nas  tam,  gdzie 
trzeba.  Teraz  wystarczy  odszukać 
pozycję  z  numerem  pobocznym  135. 
Oto  jak  wygląda  ten  fragment  doku-
mentacji:

(...)
134 = /dev/apm_bios   Advanced Power

S

 

Management BIOS

135 = /dev/rtc   Real Time Clock
139 = /dev/openprom   SPARC OpenBoot

S

PROM

Jak  widać,  numer  135  przypisany 
jest  urządzeniu 

/dev/rtc

,  czyli  Real 

Time  Clock.  Z  tymi  informacjami 
już  wiadomo,  której  funkcjonalności 
jądra  brakuje  i  co  musimy  dokompi-
lować. 

ROX-Filer i katalog ~/Choices

Nietypowe  położenie  katalogu 

~/Choices

 może być irytujące. Tradycyjnie, apli-
kacje  linuksowe  przechowują  swoje 
prywatne  dane  (zapisaną  konfigura-
cję) w katalogach ukrytych, o nazwach 
zaczynających się od kropki. ROX-Filer 
wyłamuje  się  z  tej  konwencji,  a  obec-
ność  tego  katalogu  bezpośrednio 

$HOME

  może  przeszkadzać.  Z  tego 

względu  autorzy  ROX-Filera  wprowa-
dzili możliwość przesunięcia tego kata-
logu. Opcja ta nie jest dostępna w kon-
figuratorze,  gdyż  jest  sterowana  przez 
zmienną  środowiskową 

CHOICESPATH

Jeśli  dodamy  do  swojego  ~/.bashrc 
wiersz:

export CHOICESPATH=$HOME/.Choices

i zmienimy nazwę katalogu 

Choices

 na 

.Choices

,  to  ROX-Filer  zacznie  zacho-

wywać się jak typowa linuksowa apli-
kacja.  Oczywiście,  możemy  użyć 
dowolnej innej ścieżki, ale 

~/.Choices

 

wydaje  się  być  naturalnym  wybo-
rem. 

Położenie katalogu ze źródłami 

jądra

Umieszczasz swoje źródła jądra w /usr/
src/linux 
?  A  ktoś  mówi,  że  to  zły 
nawyk?  Pora  to  wyjaśnić,  bo  dooko-
ła miejsca, w którym trzyma się źródła 
jądra,  narosło  już  dość  nieporozu-
mień.

Tak  naprawdę  chodzi  nie  o  jądro, 

lecz bibliotekę glibcZawsze integruje 
się ona z nagłówkami jądra, na którym 
jest  kompilowane,  również  z  częścią 
nagłówków Linuksa. I to o te nagłów-
ki chodzi. Po instalacji glibc powinny 
się  one  znajdować  w  /usr/include/
linux
  i  /usr/include/asm  (oraz  /usr/
include/asm-generic
 na nowszych sys-
temach). Do tych katalogów odwołują 
się nagłówki glibc i w katalogach tych 
powinny zawsze znajdować się kawał-
ki  tego  jądra,  na  którym  glibc  skom-
pilowano.

Aby zaoszczędzić miejsce na dysku, 

wiele  dystrybucji,  zamiast  kopiować 
pliki do 

/usr/include/linux

, po prostu 

robiło  tam  dowiązania  symbolicz-
ne  od  źródeł  jądra  w 

/usr/src/linux

Dzięki temu nie dublowało się plików, 
ale  dochodziło  do  potencjalnie  nie-
bezpiecznej  sytuacji  –  w  momen-
cie  aktualizacji  źródeł  jądra,  poprzez 
dowiązania  symboliczne  dochodzi-
ło  też  do  aktualizacji  części  nagłów-
ków  glibc  –  tyle,  że  samo  glibc  nic 
o tym nie wiedziało. W efekcie mogło 
dojść przez to do konfliktów nagłów-
ków  i  trudnych  do  przewidzenia 
awarii  w  nowo  kompilowanych  pro-
gramach.

Jeśli jesteśmy ciekawi, to sprawdź-

my,  jak  wyglądają  nasze  pliki  /usr/
include/linux
  itp.  –  jeśli  to  prawdzi-
we  katalogi,  to  spokojnie  możemy 
trzymać  źródła  najnowszego  jądra 
w  /usr/src/linux,  bo  nie  powodu-
je  to  podmieniania  nagłówków.  Jeśli 
jednak /usr/include/linux to nie kata-
log, a dowiązanie symboliczne prowa-
dzi  gdzieś  do  /usr/src/linux,  to  lepiej 
nie  zmieniajmy  tam  nic  i  źródła  naj-
nowszego  jądra  ściągniętego  z  http://
www.kernel.org
  rozpakowujmy  w  ja-
kimś innym miejscu. 

Rysunek 1. 

Aterm – uruchomiony 

przez wywołanie polecenia: 

# aterm -tr -rv -fn 9x15bold -sh 70

background image

sprzęt

60

styczeń 2005

Programowy

RAID oraz LVM

Piotr Wolny

C

oraz więcej spośród naszych 
komputerów  jest  wyposażo-
nych w więcej niż jeden dysk  
twardy. Tradycyjnie, zakłada-

my  na  tych  dyskach  kilka  partycji,  gdyż 
Linux  umożliwia  nam  montowanie  róż-
nych  części  systemu  plików  (np.  /usr  czy 
/home)  z  niezależnych  urządzeń.  Na  tym 
nie  kończą  się  możliwości  wykorzystania 
dysków  twardych  w  Linuksie.  Od  dawna 
nasz system wspiera dwa bardziej zaawan-
sowane mechanizmy gromadzenia danych: 
Software RAID oraz Logical Volume Mana-
ger
.  Przy  ich  pomocy  możemy  zwięk-
szyć wydajność pamięci masowej, a także 
poprawić  bezpieczeństwo  przechowy-
wanych  danych.  Choć  zarówno  Softwa-
re  RAID,  
jak  i  Logical  Volume  Manager 
(LVM), kojarzą się często z wielkimi serwe-
rami, wyposażonymi w dziesiątki dysków, 
to z powodzeniem możemy je wykorzysty-
wać również na domowych komputerach, 
wyposażonych w dwa, trzy dyski twarde. 
Ponadto,  LVM  jest  również  użyteczny 
z jednym dyskiem.

RAID a LVM

Historycznie,  starszym  rozwiązaniem  jest 
programowy RAID. Idea Redundant Arrays 
of Inexpensive Disks
 nie jest taka stara, gdyż 
pochodzi z 1987 roku. Opracowano wtedy 
koncepcję  łączenia  wielu  tanich  dysków 
w  jedno  duże  i  szybkie  urządzenie.  Aby 
awaria jednego z połączonych dysków nie 
powodowała utraty danych na całej macie-
rzy,  w  koncepcji  ujęto  dyski  nadmiarowe 
(ang.  redundant),  niezbędne  do  odtwo-
rzenia  danych,  w  przypadku  awarii.  Tra-
dycyjne  RAID  wykonuje  się  sprzętowo, 
najczęściej  łącząc  dyski  SCSI,  które,  po 
podłączeniu  do  komputera,  są  widocz-
ne  jako  jedno  urządzenie.  Linux  umożli-
wia  nam  budowę  RAID  poprzez  progra-
mowe  połączenie  dysków  w  macierze 
i  mogą  to  być  zarówno  urządzenia  SCSI, 
IDE,  jak  również  SATA.  Na  temat  popu-

larnych rodzajów RAID można przeczytać 
w ramce Poziomy RAID. Generalnie, RAID 
umożliwia:

•   zwiększenie bezpieczeństwa danych, 

jeśli  stosujemy  nadmiarowe  dyski 
(bez  nadmiarowych  dysków  nasz 
RAID jest bardziej podatny na awarię 
niż pojedyncze dyski);

•   szybkość  odczytu  i  zapisu  danych 

zwiększa  się,  jeśli  tylko  zastosujemy 
rozdzielanie  (ang.  striping)  danych 
na dwa lub więcej niezależnych urzą-
dzeń fizycznych;

•   połączenie  kilku  niezależnych  urzą-

dzeń  w  jeden  system  plików  może 
zwiększyć wygodę administracji sys-
temem w pewnych konfiguracjach.

Pamiętajmy jednak, że RAID ma pewne 
ograniczenia:

•   jedno utworzone urządzenie RAID nie 

może być dzielone na partycje, co cza-
sami powoduje konieczność konfigu-
rowania kilku RAID równocześnie;

O autorze

Autor hobbistycznie i zawodo-

wo zajmuje się Linuksem mniej 

więcej od czasów jądra 2.0.20. 

Obecnie pracuje w organiza-

cji społecznej. Poza Linuksem 

fascynuje go rock progresywny. 

Kontakt z autorem: 

autorzy@lpmagazine.org

 DVD

Po uruchomieniu Linux+ Live 

DVD można przetestować oma-

wiane zagadnienia.

Na płycie CD/DVD

Na płycie CD/DVD znajduje się 

oprogramowanie omawiane 

w artykule.

Rysunek 1. 

W Linuksie dyski różnego 

typu możemy łączyć w jedno urządzenie 
RAID lub LVM

background image

61

sprzęt

www.lpmagazine.org

software raid oraz logical volume manager

•   raz utworzony RAID nie może zostać 

rozszerzony na więcej dysków.

Dzięki  RAID,  to  co  komputer  widzi  jako 
jedno  urządzenie  blokowe,  może  być 
w istocie kombinacją kilku partycji na róż-
nych  dyskach  twardych.  Logical  Volume 
Manager  
idzie  znacznie  dalej.  Udostęp-
niane  przez  niego  urządzenia  blokowe 
nie  tylko  mogą  fizycznie  znajdować  się 
na dowolnej ilości dysków czy partycji, ale 
również  możliwe  jest  ich  łatwe  powięk-
szanie,  zmniejszanie  oraz  przenoszenie. 
To  tak,  jakby  jedna  tablica  partycji  obej-
mowała  nie  tylko  kilka  dysków,  ale  rów-
nież  umożliwiała  dodawanie/usuwanie, 
zwiększanie/zmniejszanie  partycji  bez 
żadnej przerwy w pracy systemu – czasem 
nawet  bez  odmontowania  partycji.  Możli-
we jest przy tym równie łatwe dokładanie 
kolejnych dysków. Reasumując, dzięki LVM 
otrzymujemy:

•   całkowitą  dowolność  w  przydzielaniu 

poszczególnych fizycznych dysków czy
partycji jako urządzeń blokowych w sys-
temie  (np.  urządzenie  zamontowane
jako  /home  może  składać  się  z  jedne-
go dysku IDE i połowy dysku SCSI);

•   możliwość łatwego zwiększania i zmnie-

jszania (jeśli system plików umożliwia 
to  drugie)  poszczególnych  urządzeń 
widzianych  przez  system  operacyjny 
oraz przenoszenia ich między dyskami 
(obejmuje to również łatwe dodawanie 
i odejmowanie dysków z systemu);

•   rozdzielanie (ang. striping) danych na 

dwa lub więcej niezależnych urządzeń 
fizycznych, aby zwiększyć wydajność;

•   funkcję  ułatwiającą  wykonywanie 

kopii bezpieczeństwa (snapshot).

Wadą linuksowego LVM-a jest brak możli-
wości stosowania nadmiarowych dysków, 
ale możemy połączyć go z programowym 
RAID-1,  aby  zapewnić  sobie  dodatkowe 
zabezpieczenie.

Tworzymy programowy 

RAID

Programowy  RAID  możemy  założyć  na 
co najmniej dwóch dowolnych partycjach. 
Aby miał on jakikolwiek sens, partycje te 
powinny znajdować się na osobnych dys-
kach. Zakładanie RAID na dwóch party-
cjach jednego dysku nie zwiększy bezpie-
czeństwa danych, ani nie przyspieszy ope-
racji dyskowych. Możemy łączyć w jeden 
RAID partycje z całkiem różnych dysków, 
np. IDE, SCSI czy SATA, ale z reguły taka 
hybryda  będzie  pracowała  z  prędko-
ścią  najwolniejszego  spośród  nich.  Jeśli 
chcemy  łączyć  dwa  dyski  IDE,  powinny 
one znajdować się na osobnych kanałach 
IDE  –  gdy  będą  połączone  jedną  taśmą, 
zauważymy wyraźny spadek wydajności.

Programowy RAID jest realizowany na 

poziomie jądra systemu. Musimy posiadać 
w jądrze wsparcie dla RAID. Przy konfi-
guracji  jądra,  w  dziale  Multi-device  sup-
port (RAID and LVM)
, powinniśmy zazna-
czyć  RAID  support  oraz  potrzebne  tryby 
RAID (możemy wszystkie). Najwygodniej 
jest wkompilować obsługę RAID na stałe 
do  jądra.  Możemy  również  nie  kompilo-
wać jądra samodzielnie i polegać na dys-
trybucyjnym  –  we  wszystkich  nowych 
dystrybucjach znajdziemy moduły linear, 
raid0,  raid5
  itd.,  potrzebne  do  działa-
nia naszej macierzy. Wystarczy polecenie 

cat /proc/mdstat

, aby dowiedzieć się, czy 

nasze jądro posiada wsparcie dla Software 
RAID
. Jeśli zobaczymy komunikat o braku 
pliku, musimy skonfigurować i skompilo-
wać nowe jądro własnoręcznie.

Programowy RAID jest dostępny w ją-

drze Linuksa od bardzo dawna – jest stan
dardowo  obecny  w  jądrach  z  serii  2.4.x 
i 2.6.x, ale istnieją łatki pozwalające używać 
go z jądrami 2.2.x, a nawet 2.0.x. Wszystkie 
opisane tutaj czynności wykonywałem na 
jądrze 2.6.9 – powinny one wyglądać iden-
tycznie  w  starszych  wersjach  jądra,  włą-
cznie z serią 2.4.x.

Poza  wsparciem  w  jądrze  systemu, 

będziemy  potrzebować  jeszcze  dwóch 
pakietów  z  oprogramowaniem:  mdadm 
oraz  raidtools  (w  Debianie  –  raidtools2). 
Ten pierwszy zawiera narzędzie do akty-
wowania  i  zatrzymywania  urządzeń 
RAID,  a  drugi  dostarcza  podstawowych 
narzędzi do tworzenia macierzy. Znajdzie-
my te pakiety we wszystkich popularnych 
dystrybucjach Linuksa.

Załóżmy,  że  nasz  system  operacyj-

ny jest zainstalowany na dysku sda, a na 
RAID chcemy przeznaczyć dyski IDE: hda 

i  hdd.  Na  obydwu  tych  dyskach  utwo-
rzyliśmy  partycje,  przy  czym  na  RAID 
mają być przeznaczone hda2 oraz hdd2
Zanim  rozpoczniemy  właściwą  pracę, 
możemy  przetestować  szybkość  działa-
nia  tych  dysków,  przed  zbudowaniem 
z nich macierzy. Jak na poważnie podejść 
do testowania wydajności dysków, korzy-
stając  z  programu  Bonnie++,  opisuję 
w  ramce  Jak  testować  dyski?.  Przy  pro-
jektowaniu  systemu,  w  którym  ważną 
rolę  odgrywa  wydajność  pamięci  maso-
wej, należy zawsze kierować się wskaza-
niami programu Bonnie++ lub podobne-
go. W tym artykule, aby szybko i obrazo-
wo pokazać różnice pomiędzy konfigura-
cjami  RAID,  posłużę  się  programem 

dd

Przykładowo,  po  utworzeniu  na  partycji 

RAID i LVM podczas 

instalacji dystrybucji

Instalatory większości nowoczesnych dys-
trybucji  umożliwiają  utworzenie  urządzeń 
RAID i LVM już podczas instalacji Linuksa. 
Przykładowo, w Aurox Linuksie wystarczy, 
że  wybierzemy  Partycjonowanie  ręczne 
Disk Druidem
 i będziemy mogli utworzyć 
RAID-a, LVM-a, a nawet LVM-a na RAID-
ie.  W  nowych  wersjach  Mandrakelinuksa 
również  musimy  wybrać  ręczny  podział 
na partycje, a później dodatkowo przełą-
czyć  się  na  tryb  zaawansowany.  Instala-
tor tej dystrybucji ma podobne możliwości, 
ale zdaje się, że nie pozwala na tworzenie 
LVM-a na RAID-ie.

Jeśli  wiemy,  jak  działają  urządze-

nia  RAID  oraz  LVM,  utworzenie  ich  przy 
pomocy  któregoś  z  tych  instalatorów 
nie  powinno  stwarzać  żadnych  proble-
mów.  Przykładowo,  aby  stworzyć  RAID 
w Aurox Linuksie, klikamy na RAID, wybie-
ramy  pierwszy  z  dysków  i  zaznaczamy 
utworzyć  partycję  programowego  RAID. 
Następnie to samo powtarzamy dla kolej-
nych dysków. Na zakończenie, jeszcze raz 
klikamy  na  RAID  i  wybieramy  utworzyć 
urządzenie  programowego  RAID.  Wtedy 
będziemy  mogli  podać  jego  typ,  punkt 
zamontowania  oraz  system  plików,  który 
zostanie  na  nim  utworzony.  LVM  tworzy-
my  podobnie  –  najpierw  tworzymy  jedną 
lub  kilka  partycji  typu  physical  volume 
LVM
, a później klikamy na LVM i tworzymy 
poszczególne woluminy logiczne.

Moje  doświadczenia  z  tworzeniem 

RAID-a  oraz  LVM-a  przez  instalatory 
dystrybucji  nie  są  zachęcające.  Polecam 
instalację  na  tradycyjnych  urządzeniach, 
a dopiero później stworzenie RAID-a czy 
LVM-a i przeniesienie na nie odpowiednich 
katalogów.

Rysunek 2. 

Sterowniki do RAID i LVM 

znajdziemy w jądrze Linuksa

background image

62

sprzęt

styczeń 2005

hda2  systemu  plików  ext2,  zamontowa-
niu jej w /mnt/test/, wykonałem komendy: 

cd  /mnt/test;

 

dd  if=/dev/zero  of=ska-

suj_mnie count=2000000

. W efekcie otrzy-

małem następującą prędkość zapisu linio-
wego jednego dużego pliku:

1024000000 bytes transferred 
in 28,490542 seconds 
(35941752 bytes/sec)

Przy  zastosowaniu  systemu  plików  ext3 
czas potrzebny dla wykonania tej opera-
cji urósł do 32,8 sekundy.

RAID-0

Najpierw  wypróbujemy  RAID-0.  Aby 
go  utworzyć,  musimy  napisać  plik  /etc/
raidtab
.  Na  początek  umieściłem  tam 
następujące wpisy:

raiddev /dev/md0
raid-level      0
nr-raid-disks   2
persistent-superblock 1
chunk-size     4
device          /dev/hda2
raid-disk       0
device          /dev/hdd2
raid-disk       1

Jak  widzimy,  ten  plik  nie  jest  skompli-
kowany.  Pierwsza  linia  określa,  które-
go  urządzenia  dotyczy  ta  konfigura-
cja.  Poza  md0  możemy  mieć  dowol-
nie  dużą  ilość  innych  urządzeń  (oczy-
wiście,  powinny  się  one  znajdować  na 
innych  partycjach).  Opcją  raid-level 
ustalamy  rodzaj  macierzy  –  w  tym 
przypadku RAID-0, czyli stripe. Jako nr-
raid-disk
 podajemy, ile partycji ma pracować 
w  tym  urządzeniu;  persistent-superblock 
spowoduje,  że  w  superbloku  podanych 
dalej  partycji  zostaną  zapisane  informa-
cje potrzebne do automatycznego wykry-

cia  tej  macierzy  podczas  uruchamiania 
się  jądra  systemu;  chunk-size  określa  w 
kilobajtach, na jakie najmniejsze jednost-
ki będą dzielone dane podczas zapisu na 
macierz (nie można jednoznacznie powie-
dzieć,  jaka  wartość  spowoduje  najlepszą 
wydajność, ale wstępnie możemy przyjąć, 
że będzie ona równa block size naszego 
systemu plików). Dalej wyliczamy i nume-
rujemy wszystkie użyte partycje.

Kolejnym  krokiem  jest  zmiana  przy 

pomocy  programu 

fdisk

  identyfikato-

rów  partycji,  na  których  będzie  działa-
ła  macierz.  Powinny  one  otrzymać  typ 
fd, czyli Linux raid auto. Bez tej czynno-
ści macierz będzie działać, ale nie zosta-
nie  automatycznie  wykryta  przez  jądro 
systemu.

Gdy  wszystko  jest  gotowe,  wykonu-

jemy  polecenie 

mkraid  /dev/md0

.  Oczy-

wiście,  w  jego  wyniku  utracimy  wszyst-
kie  dane,  które  mieliśmy  na  partycjach 
wymienionych w /etc/raidtab. W rezulta-
cie powinniśmy otrzymać coś takiego:

handling MD device /dev/md0
analyzing super-block
disk 0: /dev/hda2, 14659312kB, 
raid superblock at 14659200kB
disk 1: /dev/hdd2, 18922680kB,
raid superblock at 18922560kB

Jak widzimy, mimo, że partycje te różnią 
się wielkością, macierz została utworzona. 
Teraz możemy sprawdzić ją komendą 

cat 

/proc/mdstat

.  Powinniśmy  zobaczyć  np. 

coś takiego:

Personalities : [linear] [raid0] 
[raid1] [raid5] [raid6] [raid10]
md0 : active raid0 hdd2[1] hda2[0]
      33581760 blocks 4k chunks
unused devices: <none>

Od teraz urządzenie /dev/md0 traktujemy 
jak partycję dysku twardego. Możemy np. 
wykonać polecenia:

# mkfs.ext3 /dev/md0
# mount /dev/md0 /mnt/test/
# cd /mnt/test/
# dd if=/dev/zero of=
    skasuj_mnie count=2000000

Na moim systemie ten szybki test pokazał:

1024000000 bytes transferred 
in 18,410448 seconds 
(55620591 bytes/sec)

Widzimy prawie dwukrotny wzrost pręd-
kości  zapisu  tego  pliku  (z  32,8  do  18,4 
sekundy).  Podobna  macierz,  utworzo-
na  w  moim  komputerze  na  dyskach 
SATA,  poradziła  sobie  z  tym  zapisem 
w 14 sekund.

W  ten  sposób  otrzymaliśmy  urzą-

dzenie,  które  powinno  działać  znacz-
nie  szybciej  od  pojedynczego  dysku, 
zarówno  przy  operacjach  odczytu,  jak 
i  zapisu.  Możemy  zamontować  je 
w  dowolnym  miejscu  systemu  plików, 
w  którym  występuje  intensywne  użycie 
dysku, np. w /var/www. Wystarczy tylko 
odpowiedni  wpis  w  /etc/fstab  i  prze-
niesienie  starych  danych  na  nowe  urzą-
dzenie.  Jeśli  chcemy  używać  macierzy 
w  kilku  różnych  miejscach  systemu 
plików,  musimy  dołożyć  więcej  dysków 
lub  posiadane  dyski  podzielić  na  więcej 
partycji,  następnie  zdefiniować  w  /etc/
raidtab
 kolejne urządzenia /dev/md1, md2 
itd., wszystkie je zainicjować (

mkraid

), sfor-

matować oraz zamontować.

Jeśli  prawidłowo  zainstalowaliśmy 

pakiety  mdadmin  oraz  raidtools,  skryp-
ty  odpowiedzialne  za  zamykanie  syste-
mu  powinny  zatrzymać  macierz  (wyko-
nać  komendę 

raidstop

  z  odpowiednim 

parametrem),  zanim  nasze  dyski  zostaną 
odłączone  od  zasilania.  W  wielu  dystry-
bucjach  będzie  również  działało  powia-
damianie  pocztą  administratora  systemu 
o  awarii  któregoś  z  dysków.  Wspomnia-
ne pakiety mają jeszcze sporo więcej moż-
liwości – warto przejrzeć ich pliki konfi-
guracyjne w katalogach /etc/default/ oraz 
/etc/mdadm/.

RAID-1

Załóżmy, że postanowiliśmy zmienić swoją
konfigurację, tworząc RAID-1 w miejsce
RAID-0 – tak naprawdę dopiero RAID-1
jest prawdziwym RAIDgdyż w RAID-0 
nie  ma  nadmiarowych  dysków.  Zanim 
rozpoczniemy  tworzenie  nowego  urzą-
dzenia,  musimy  koniecznie  dezakty-
wować  poprzednie.  Pierwszym  kro-
kiem jest odmontowanie systemu plików
zamontowanego na macierzy (np. 

umount

/var/www

).  Następnie  wykonujemy  ko-

mendę 

raidstop 

/dev/md0

.  Dopiero

wtedy  możemy  zmieniać  układ  partycji
na  dyskach  i  tworzyć  nowe  macierze. 
Jeśli pominiemy te kroki, ani konfigura-
cja  nowej  macierzy,  ani  zmiany  w  ukła-
dzie partycji nie będą skuteczne – co naj-
wyżej mogą doprowadzić do bezpowrot-
nej utraty danych. 

Rysunek 3. 

Wszystkie potrzebne 

informacje do zbudowania RAID 
i LVM możemy znaleźć po angielsku 
w odpowiednich HOWTO

background image

63

sprzęt

www.lpmagazine.org

software raid oraz logical volume manager

Plik  konfiguracyjny  /etc/raidtab  dla 

RAID-1  jest  prawie  identyczny,  jak  dla 
RAID-0:

raiddev /dev/md0
raid-level      1
nr-raid-disks   2
persistent-superblock 1
chunk-size     4
device          /dev/hda2
raid-disk       0
device          /dev/hdd2
raid-disk       1

Następnie  wydajemy  polecenie 

mkraid 

/dev/md0

  i  dostajemy  w  efekcie  komu-

nikat:

handling MD device /dev/md0
analyzing super-block
disk 0: /dev/hda2, 14659312kB, 
raid superblock at 14659200kB
/dev/hda2 appears to be already 
part of a raid array -- use -f to
force the destruction of the 
old superblock
mkraid: aborted.

Jak  widać,  system  odmówił  stworzenia 
nowej macierzy na urządzeniach, na któ-
rych  poprzednio  utworzyliśmy  RAID-0. 
Jesteśmy jednak pewni, że chcemy całko-
wicie zniszczyć poprzednią macierz, więc 
wydajemy polecenie: 

mkraid -R /dev/md0

 

i otrzymujemy np.:

DESTROYING the contents of /dev/md0 
in 5 seconds, Ctrl-C if unsure!
handling MD device /dev/md0
analyzing super-block
disk 0: /dev/hda2, 14659312kB, 
raid superblock at 14659200kB
disk 1: /dev/hdd2, 18922680kB, 
raid superblock at 18922560kB

Od  teraz  urządzenie  /dev/md0  jest 
gotowe do użycia. Ma ono pojemność 14 
GB,  czyli  tyle  samo,  ile  mniejsza  z  uży-
tych  partycji.  Tworzymy  na  nim  system 
plików i sprawdzamy, jak działa. Komen-
da 

dd

, użyta identycznie jak w poprzed-

nich  przykładach,  tym  razem  potrzebo-
wała aż ponad 35 sekund na wykonanie 
swojego  zadania.  Widzimy,  że  RAID-1 
przy  operacji  zapisu  działa  nieznacznie 
wolniej niż pojedynczy dysk twardy. 

Kosztem  zmniejszenia  wydajności 

otrzymujemy  większe  bezpieczeństwo 
danych.  Gdy  jeden  z  dysków  ulegnie 
awarii,  macierz  będzie  pracowała  dalej, 
a w logach systemowych pojawi się infor-
macja o konieczności jego wymiany.

RAID-5

Stworzenie  RAID-5  nie  jest  wcale  trud-
niejsze  niż  RAID-0  i  RAID-1.  Przykła-
dowy  /etc/raidtab,  który  stworzyłem  na 
swoim komputerze, może wyglądać tak:

raiddev /dev/md0
raid-level      5

nr-raid-disks   4
persistent-superblock 1
chunk-size     4
device          /dev/hda2
raid-disk       0
device          /dev/hdd2
raid-disk       1
device          /dev/sda3
raid-disk       2
device          /dev/sdb9
raid-disk       3

Wydane  polecenie 

mkraid  -R  /dev/md0

 

pokazało:

DESTROYING the contents of /dev/md0 
in 5 seconds, Ctrl-C if unsure!
handling MD device /dev/md0
analyzing super-block
disk 0: /dev/hda2, 14659312kB, 
raid superblock at 14659200kB
disk 1: /dev/hdd2, 18922680kB, 
raid superblock at 18922560kB
disk 2: /dev/sda3, 39070080kB, 
raid superblock at 39070016kB

Integracja RAID/LVM 

w systemie

To,  gdzie  zamontujemy  nowo  powsta-
łe  urządzenia,  zależy  od  celu,  jaki  przy-
świecał nam przy konfiguracji LVM-a czy 
RAID-a, jak również od specyfiki nasze-
go systemu. Mogą one zarówno przyspie-
szyć dostęp do danych (jeśli korzystamy z 
rozdzielania dostępu na wiele fizycznych 
urządzeń), jak i usprawnić administrowa-
nie  miejscem  na  dysku  i  zwiększyć  bez-
pieczeństwo  danych.  Stosujmy  więc  go 
w  tych  miejscach,  gdzie  wymagana  jest  
któraś  z  tych  właściwości.  Pierwszymi 
lokalizacjami,  które  przychodzą  na  myśl 
są  /home  oraz  /var  –  z  reguły  tam  naj-
częściej  przewidzieliśmy  za  dużo  lub  za 
mało  miejsca  na  dysku,  a  także  tam  na 
ogół mamy najważniejsze dane. W przy-
padku, gdy nasze nowe urządzenie działa 
szybciej niż zwykłe dyski (dzięki wykorzy-
staniu strip), możemy zdecydować się na 
przeniesienie na niego katalogu /tmp – ist-
nieją aplikacje, które intensywnie go wyko-
rzystują, czy nawet /usr, co może minimal-
nie przyśpieszyć uruchamianie się progra-
mów na komputerze biurkowym. 

Aby przenieść dane z podstawowego 

urządzenia na nowe, możemy najprościej 
zamontować  go  w  tymczasowej  lokali-
zacji (np. /mnt/tmp) i użyć komendy, np. 

cp  -ax  /var/*  /mnt/tmp/

,  następnie 

opróżnić przykładowy katalog /var i uak-
tualnić /etc/fstab, aby właściwe urządze-
nie było montowane w tym miejscu. 

Rysunek 4. 

Przykładowa konstrukcja LVM

background image

64

sprzęt

styczeń 2005

disk 3: /dev/sdb9, 9775521kB, 
raid superblock at 9775424kB

Tak  utworzone  urządzenie  ma  rozmiar 
ok. 27 GB. Dlaczego? Musimy pomnożyć 
rozmiar  najmniejszej  z  użytych  partycji 
(9775521kB ~= 9GB) razy ilość dysków 
i odjąć rozmiar jednej partycji, potrzeb-
nej  na  dane  o  parzystości,  więc  9*4-
9=27.

Szybki  test,  przy  pomocy  komendy 

dd

 i urządzenia /dev/zero, zajął na moim 

systemie 20 sekund, więc RAID-5 działa 
szybciej niż pojedynczy dysk, ale oczy-
wiście wolniej niż RAID-0.

Zapasowe dyski

Dla zwiększenia bezpieczeństwa macierzy 
typu RAID-1 i RAID-5 (a także nieopisy-
wanych tutaj RAID-6 i RAID-10) możemy 
wykorzystać dyski zapasowe (spare disk). 
Taki  dysk  nie  jest  normalnie  używany  – 
żadne dane nie są zapisywane ani odczy-
tywane z niego. W momencie, gdy jeden 
z  dysków  zostanie  uszkodzony,  macierz 
automatycznie  odtworzy  jego  zawartość 
na  pierwszym,  dostępnym  spare  disk
Dzięki  temu  wyłączenie  systemu  w  celu 
wymiany  uszkodzonych  dysków  może 
zostać zaplanowane na znacznie później-
szy  termin  –  możemy  czekać  nawet  do 
kolejnej awarii któregoś dysku i nie straci-
my żadnych danych.

Aby dodać do macierzy dysk zapaso-

wy, wystarczy do /etc/raidtab dopisać np. 
takie linie:

device         /dev/sdd1
spare-disk     0

Tworzymy LVM-a

Logical Volume Manager sam w sobie nie 
jest  trudny  do  skonfigurowania.  To  co 
odstrasza od niego wielu użytkowników, 
to stosowana w nim terminologia. Zanim 

przystąpimy do pracy, musimy koniecznie 
przyswoić sobie kilka podstawowych ter-
minów, stosowanych w LVM-ie – bez tego 
dosyć szybko się pogubimy.

LVM tworzy dodatkową warstwę abs-

trakcji  pomiędzy  urządzeniami  pamięci 
masowej a systemem plików w systemie. 
W  efekcie,  pomiędzy  partycją  na  dysku 
a  systemem  plików  w  komputerze  poja-
wiają się dodatkowe terminy:

•   physical  volume  (PV)  –  wolumin 

fizyczny to po prostu dysk twardy lub 
częściej  partycja  na  dysku  twardym, 
ale  może  to  być  również  urządzenie 
programowego RAID-a;

•   volume  group  (VG)  –  grupa  wolumi-

nów  to  jeden  lub  kilka  woluminów 
fizycznych (mamy z nią do czynienia 
zawsze,  nawet  gdy  posiadamy  tylko 
jeden PV);

•   logical volume (LV) – wolumin logicz-

ny  (system  widzi  LV  jako  urządzenie 
blokowe, więc jeśli stosujemy LVM-a, 
system  plików  (np.  ext3)  zakładamy 
nie na partycji, ale na LV; podobnie, w 
systemie montujemy LV, a nie partycję; 
na jednej grupie woluminów tworzy-
my jeden lub więcej LV);

•   physical  extent  (PE)  i  logical  extent 

(LE)  –  ekstenty  fizyczny  i  logicz-
ny  (dane  na  woluminach  fizycznych 
i  logicznych  dzielone  są  na  mniejsze 
jednostki,  np.  po  4  MB;  wielkość  PE 
i LE są takie same).

Do  działania  LVM-a  potrzebujemy  w  ją-
drze  wsparcia  dla  Device  mapper.  Przy 
konfiguracji jądra znajdziemy go w dziale 

Multiple devices driver support. Z dostęp-
nych tam dodatkowych opcji powinniśmy 
zaznaczyć  przynajmniej  Snapshot  target 
oraz Mirror target – mimo, że są one ozna-
czone  jako  eksperymentalne,  to  są  już 
w powszechnym użyciu (najpierw musimy 
wybrać  Prompt  for  development  and/or 
incomplete  code/drivers
  w  dziale  Code 
maturity level options
).

Najwygodniej 

jest 

wkompilować 

LVM-a na stałe do jądra, ale w niektórych 
dystrybucjach  znajdziemy  go  w  posta-
ci modułu o nazwie dm-mod. Jeśli pole-
gamy na jądrze dystrybucyjnym, musimy 
tylko  załadować  ten  moduł.  Powinniśmy 
używać  jąder  z  serii  2.6.x,  gdyż  w  star-
szych, z serii 2.4.x, znajduje się poprzed-
nia generacja LVM-a, która posiada nieco 
mniejsze możliwości.

Poza  wsparciem  w  jądrze,  potrzebu-

jemy  również  zestawu  programów  do 
tworzenia  i  administracji  LVM.  Są  one 
z  reguły  w  pakiecie  o  nazwie  lvm2
a nie w pakiecie lvm lub lvm01, który jest 
przeznaczony do współpracy ze starszy-
mi  wersjami  jądra.  Używanie  złej  wersji 
programów  narzędziowych  może  ścią-
gnąć  na  nas  nieoczekiwane  problemy, 
więc zwróćmy uwagę, czy mamy zainsta-
lowany właściwy i tylko właściwy pakiet. 
Ponadto,  musimy  zainstalować  wszyst-
kie biblioteki, od których jest on zależny 
(zwłaszcza libdevmapper).

Wybór urządzeń

Przy  projektowaniu  macierzy  dyskowej 
musieliśmy  wybrać,  na  których  party-
cjach jakich dysków zostanie ona utworzo-
na. LVM może korzystać z poszczególnych 

Listing 1. 

Przykładowy raport, generowany przez vgdisplay

  --- Volume group ---
  VG Name               dyski_IDE
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               37,27 GB
  PE Size               4,00 MB
  Total PE              9540
  Alloc PE / Size       0 / 0
  Free  PE / Size       9540 / 37,27 GB
  VG UUID               OEEclx-9gIP-Oqyl-R1cH-9tkK-Mlm7-rWW4xi

Rysunek 5. 

Konfiguracja naszych 

urządzeń wymaga użycia poleceń, 
działających z linii komend

background image

65

sprzęt

www.lpmagazine.org

software raid oraz logical volume manager

partycji, identycznie jak RAID, ale możemy 
go  również  instalować  bezpośrednio  na 
niepodzielonym  na  partycje  dysku  (jeśli 
chcemy go w całości przeznaczyć do tego 
celu).  Ponadto,  możemy  również  skonfi-
gurować  LVM-a  na  urządzeniu  /dev/md0
czyli  na  dowolnym  typie  programowe-
go  RAID-a.  Jak  wcześniej  wspomniałem, 
LVM,  mimo  swoich  sporych  możliwości, 
nie obsługuje nadmiarowych dysków, więc 
jeśli skonfigurujemy LVM-a na RAID-1, to 
otrzymamy urządzenie, które łączy w sobie 
zalety jednego i drugiego – podwyższone 
bezpieczeństwo  danych  i  lepszą  elastycz-
ność w konfiguracji systemu.

W  dalszej  części  artykułu  podam, 

jak  łatwo  stworzyć  LVM-a  na  macierzy 
RAID-1. Jeśli chcemy utworzyć LVM-a na 
pojedynczym dysku czy partycji, wszyst-
kie  czynności  wykonujemy  identycz-
nie, podając tylko inne nazwy urządzeń. 
Zakładam,  że  utworzyliśmy  już  macierz 
RAID-1, tak jak opisywałem wcześniej.

Kolejne kroki

Pierwszą  czynnością  jest  oznaczenie 
wszystkich  urządzeń,  które  mają  stać  się 
częścią  jakiejś  grupy  woluminów  (VG). 
W  naszym  przypadku  wydajemy  pole-
cenie: 

pvcreate  /dev/md0

.  Jeśli  chcemy 

zainstalować  LVM-a  na  pojedynczej  par-
tycji,  np.  /dev/hdb3,  napiszemy 

pvcre-

ate  /dev/hdb3

,  a  gdy  przeznaczamy  na 

LVM-a cały dysk hdb – 

pvcreate /dev/hdb

W  tym  ostatnim  przypadku  powinniśmy 
najpierw  wymazać  z  tego  dysku  tablicę 
partycji, np. poleceniem 

dd  if=/dev/zero 

of=/dev/hdb  bs=1k  count=1

. Po wydaniu 

polecenia 

pvcreate

  powinniśmy  zoba-

czyć np. Physical volume "/dev/md0" suc-
cessfully  created.  
Polecenie  to  powtarza-
my  dla  wszystkich  urządzeń,  które  mają 
być  użyte  w  którejś  z  VG.  Spowodu-
je  ono  zapisanie  na  początkowych  sek-
torach  urządzenia  specyficznych  danych, 
identyfikujących  dane  urządzenie,  dzięki 
czemu,  jeśli  np.  zamienimy  dyski  sda 
sdb, LVM będzie działało nadal bez prze-

nazwę,  którą  możemy  dobrać  według 
własnego  uznania.  W  moim  przykładzie 
utworzyłem  VG  poleceniem 

vgcreate 

dyski_IDE /dev/md0

, które odpowiedziało 

komunikatem  Volume  group  "dyski_IDE" 
successfully  created
.  Nadałem  swojej 
grupie nazwę „dyski_IDE”. Jeśli nasz wolu-
min ma się rozciągać na więcej urządzeń, 
w tym poleceniu wymieniamy je wszyst-
kie,  np. 

vgcreate  dyski_IDE  /dev/hda3 

/dev/hdc4  /dev/sda5

.  Możemy  utworzyć 

więcej VG w jednym systemie (maksymal-
nie 99), ale oczywiście żadne urządzenie 
fizyczne nie może być w dwóch grupach. 
Przy okazji tworzenia VG możemy ustawić 

Rysunek 6. 

LVM pomaga nam lepiej zorganizować miejsce na dyskach

Poziomy RAID:

•  Liniowy (linear mode). W tym trybie dwie 

lub  więcej  partycji  dodawanych  jest  do 
siebie liniowo, aby utworzyć jedno duże 
urządzenie RAID. Podczas zapisu na to 
urządzenie, dane najpierw zapełnią całą 
pierwszą partycję (pierwszy dysk), póź-
niej  drugą  itd.  Pojemność  uzyskanego 
urządzenia  równa  jest  sumie  pojemno-
ści wszystkich użytych partycji. Partycje 
nie muszą mieć tego samego rozmiaru. 
Nie uzyskujemy zwiększenia prędkości, 
a awaria jednego dysku powoduje utratę 
danych z całej macierzy.

•   RAID-0  (stripe).  Pojemność  dwóch  lub

więcej urządzeń dodawana jest do sie-
bie, ale dane są zapisywane równocze-
śnie  na  wielu  urządzeniach  i  podobnie 
odczytywane.  Jeśli  mamy  w  ten  spo-
sób  połączone  trzy  dyski  i  ustaliliśmy 
rozmiar paska danych (ang. stripe size
na 16 kB, to przy nagrywaniu pliku o wiel-
kości 48 kB uruchomione zostaną wszy-
stkie  dyski  równocześnie  i  na  każdym
z nich nagrane zostanie tylko 16 kB. Jak 
łatwo  się  domyśleć,  taka  konfiguracja
zwiększa  nawet  wielokrotnie  prędkość
transferu  danych.  Suma  pojemności
dysków jest dodawana, ale powinny one
być takiej samej wielkości. Jeśli są różne,
na  wszystkich  dyskach  używana  jest 
tylko  pojemność  najmniejszego  z  nich.
Awaria  jednego  dysku  powoduje  utratę
danych z całej macierzy.

•  RAID-1  (mirror).  Identyczne  dane 

zapisywane  są  równocześnie  na 
dwóch  lub  więcej  dyskach.  Odczyt 
następuje  z  któregokolwiek  z  nich. 
Pojemność  takiej  macierzy  jest 
równa 

pojemności 

najmniejszej 

z użytych partycji. Prędkość zapisu jest 
nieco  mniejsza  niż  na  pojedynczym 
dysku.  W  przypadku  awarii  jednego 
dysku, system może pracować dalej, nie 
następuje żadna utrata danych.

•  RAID-5.  Wymaga  trzech  lub  więcej 

partycji.  Wielkość  powstałego  urzą-
dzenia  równa  się  sumie  rozmiarów 
wszystkich  użytych  partycji  minus  roz-
miar  jednej.  Jeśli  mamy  cztery  par-
tycje  po  15  GB,  uzyskujemy  45  GB 
miejsca.  Gdy  rozmiary  partycji  nie  są 
równe,  w  obliczeniach  stosujemy  wiel-
kość  najmniejszej  z  nich.  To  odejmo-
wane  miejsce  wykorzystywane  jest  do 
przechowywania  kontroli  parzystości 
z  urządzeń,  dzięki  czemu  w  przypad-
ku  awarii  jednego  z  dysków  możliwe 
jest  odtworzenie  wszystkich  danych. 
W  przypadku  równoczesnej  awarii 
dwóch dysków, dane zostaną bezpow-
rotnie utracone. Prędkość działania jest 
zbliżona  do  RAID-0,  ale  przy  zapisie 
jest minimalnie mniejsza, gdyż oblicza-
na jest „parzystość” danych (a dokład-
niej wykonywana jest operacja logiczna 
Exclusive OR na poszczególnych bitach 
ze wszystkich dysków).

Ponadto rzadko stosowane są:

•   RAID-4 – podobny do RAID-5, ale infor-

macja  o  parzystości  jest  zapisywana 
wyłącznie na jednym urządzeniu, przez 
co staje się ono wąskim gardłem. Powin-
no być dużo szybsze niż pozostałe.

•   RAID-6 – podobny do RAID-5, z jesz-

cze jednym dyskiem na dane o parzy-
stości,  dzięki  czemu  może  przetrwać 
równoczesną awarię dwóch dysków.

•   RAID-2, RAID-3 są podobne do RAID-

4,  ale  nie  przyjęły  się  i  nie  było  sensu 
zapewniać dla nich wsparcia w Linuksie.

•   RAID-10 – Jest to RAID-0, ale poszcze-

gólnymi jego elementami nie są partycje 
fizycznych dysków, a macierze RAID-1. 
Wymaga  więc  czterech  lub  większej 
liczby dysków.

szkód  (nie  dotyczy  to  mojego  systemu, 
w którym LVM powstaje na RAID-1).

Drugą  czynnością  jest  utworzenie 

grupy woluminów. Każda grupa ma swoją 

background image

66

sprzęt

styczeń 2005

rozmiar PE – według HOWTO domyślną 
wartością jest 32 MB, ale na moim syste-
mie 

vgcreate

 użył wartości 4 MB. Własną 

wartość  możemy  podać  przy  pomocy 
opcji  -s,  np. 

vgcreate  -s  32  /dev/md0

Podana liczba (domyślnie w megabajtach) 
musi być potęgą dwójki.

Następny krok to aktywacja woluminu. 

Przeprowadzamy  ją  poleceniem 

vgchan-

ge  --available  y  dyski_IDE

.  Powinno 

ono odpowiedzieć: 0 logical volume(s) in 

volume group "dyski_IDE" now active. Co 
ważne, od tego momentu skrypty, odpo-
wiadające  za  start  i  zamykanie  systemu, 
które zainstalowaliśmy razem z pakietem 
lvm2, będą opiekowały się naszym wolu-
minem, czyli aktywowały go przy starcie 
i  dezaktywowały  przy  zamykaniu  syste-
mu.

Po aktywacji VG możemy uzyskać cie-

kawe  informacje  na  jego  temat,  wydając 
komendę 

vgdisplay  dyski_IDE

. Wynik jej 

działania  na  moim  systemie  zamieściłem 
na  Listingu  1.  Widzimy,  że  nasz  rozmiar 
PE wynosi 4 MB (PE Size), a do dyspozycji 
mamy 9540 PE. Zwróćmy uwagę, że w tym 
przykładzie  LVM  widzi  tylko  jedno  urzą-
dzenie fizyczne (jest nim /dev/md0), mimo 
że faktycznie mamy dwa dyski.

Zbliżamy  się  do  końca.  Teraz  utwo-

rzymy woluminy logiczne. Jak wspomnia-
łem  wcześniej,  na  jednym  VG  możemy 
utworzyć  wiele  woluminów  logicznych 
(w  systemie  może  ich  być  maksymal-

nie 256). Woluminy logiczne (LV), podob-
nie  jak  grupy  woluminów  (VG),  mogą 
mieć  dowolne  nazwy,  wymyślone  przez 
nas. 

Przeanalizujmy  przykładowe  polece-

nie,  tworzące  LV: 

lvcreate  -l3000  -nka-

talogi_domowe  dyski_IDE

.  Ta  komenda 

utworzyła LV o nazwie „katalogi_domowe” 
i  rozmiarze  3000  PE,  czyli  na  moim  sys-
temie  12000  MB.  Nowy  wolumin  logicz-
ny  powstał  na  bazie  grupy  woluminów 
o  nazwie  „dyski_IDE”.  Domyślnie,  dane 
zapisywane  na  tym  woluminie  będą  zaj-
mowały  po  kolei  dostępne  miejsce  na 
poszczególnych  urządzeniach  fizycznych. 
Dostęp  do  tego  woluminu  otrzymujemy 
przez  plik  urządzenia  /dev/dyski_IDE/
katalogi_domowe
.  Jeśli  budujemy  LVM-a 
na  bazie  dwóch  lub  więcej  niezależnych 
urządzeń, możemy użyć opcji -i, aby sko-
rzystać  z  możliwości  rozdzielania  opera-
cji  dyskowych  (stripe)  na  kilka  urządzeń. 
Polecenie 

lvcreate -i2 -l3000 -nnazwa_LV 

nazwa_VG

  spowoduje,  że  dane  będą  roz-

dzielane  na  dwa  urządzenia.  Jeśli  mamy 
więcej urządzeń, z powodzeniem możemy 
zwiększyć ten parametr.

Na ogół, gdy korzystamy z LVM-a, nie 

interesuje nas, na które fizyczne urządze-
nie  trafią  dane  z  konkretnego  woluminu 
logicznego  –  mamy  bowiem  kilka  urzą-
dzeń,  połączonych  w  jednym  VG.  Mimo 
to, do polecenia 

lvcreate

 możemy dodać 

jeszcze jedną opcję, która określi, z które-
go  urządzenia  fizycznego  system  skorzy-
sta, gdy zacznie zapełniać nasz wolumen. 
Przykładowo, 

lvcreate -l3000 -nnazwa_LV 

nazwa_VG /dev/sdh1

 określi pierwsze użyte 

urządzenie  jako  /dev/sdh1.  Oczywiście, 
gdy skończy się tam miejsce, LVM zacznie 
korzystać z innych urządzeń.

Aby  usunąć  wolumin  logiczny,  wyda-

jemy polecenie 

lvremove  /dev/dyski_IDE/

katalogi_domowe

Najpierw musimy odmon-

tować systemy plików, jeśli jakieś zdążyli-
śmy już utworzyć i zamontować, korzysta-
jąc z /dev/dyski_IDE/katalogi_domowe.

Do  zmiany  nazwy  LV  możemy  użyć 

komendy 

lvrename

. Przydatny jest również 

program 

lvscan

, który pokaże nam infor-

macje  o  wszystkich  działających  wolumi-
nach logicznych.

Ja  na  swoim  systemie  utworzyłem 

od  razu  jeszcze  jeden  wolumin: 

lvcre-

ate  -l3000  -nlogi_systemowe  dyski_IDE

a następnie wydałem polecenie 

vgdisplay

które pokazało mi m.in. ilość wolnych PE:

Free  PE / Size       3540 / 13,83 GB

Rysunek 7. 

Wynik działania programu 

Bonnie++ po konwersji do html

 

Jak testować dyski?

Zapewne  wielu  użytkowników  Linuksa 
zna  narzędzie 

hdparm

.  Przy  jego  pomocy 

możemy m.in. sprawdzić szybkość liniowego 
transferu danych z dysku. To bardzo prosty 
test,  umożliwiający  porównywanie  różnych 
dysków  –  w  istocie  bardzo  niewiele  mówi 
nam o tym, jak wydajna będzie nasza pamięć 
masowa,  a  już  zupełnie  nie  nadaje  się  do 
testowania RAID-a czy LVM-a.

Nie  ma  jednego,  uniwersalnego  mierni-

ka prędkości dysku, ponieważ każdy system 
komputerowy jest inny – jedne ciągle odczytu-
ją pliki wielkości kilku gigabajtów, a inne dzie-
siątki tysięcy plików o wielkości kilku kilobaj-
tów. Na jednych równie ważna jak prędkość 
odczytu jest prędkość zapisu, a na innych nie 
ma ona znaczenia. Niektóre programy czytają 
dane liniowo, a inne wciąż przeszukują dysk. 
Z tego powodu mierząc wydajność pamięci 
masowej,  zawsze  musimy  brać  pod  uwagę 
konkretny system.

Najpopularniejszym  programem,  który

da  nam  więcej  informacji  na  temat  dzia-
łania  dysku  jest  Bonnie++  (http://www.
coker.com.au/bonnie++/
). Jeśli nie znajduje-
my go w swojej dystrybucji, możemy ściągnąć 
źródła z jego strony domowej, aby skompilo-
wać i zainstalować je tradycyjnymi komenda-
mi: 

./configure

make

make  install

. Pro-

gram ten testuje szybkość działania nie tyle 
samego twardego dysku, a systemu plików. 
Na testowanym dysku musimy założyć jakąś 
partycję,  utworzyć  na  niej  system  plików 
i  zamontować  w  systemie.  Następnie  prze-
chodzimy  do  katalogu,  gdzie  zamontowany 
jest testowany dysk (np. 

cd /mnt/test

) i uru-

chamiamy  program: 

bonnie++  -s  1000k 

-n  128  -b

.  Przy  pomocy  opcji  -s  1000k 

ustaliliśmy  wielkość  pliku,  który  utwo-
rzy  Bonnie++,  aby  sprawdzić  prędkości 
zapisu  i  odczytu  liniowego.  Opcja  -n  128 
określa,  jak  wiele  tysięcy  małych  plików 
(o  rozmiarze  zerowym)  ma  zostać  utwo-
rzonych, aby zmierzyć czas ich tworzenia, 
odczytu oraz kasowania. Ostatnia opcja -b 
wyłącza buforowanie zapisów, synchronizu-
jąc dysk po każdym z nich (fsync()), przez 
co  program  zachowuje  się  jak  popularne 
bazy SQL czy serwery SMTP, które czynią 
podobnie.

Po kilku lub kilkunastu minutach testów, 

program wydrukuje kilka linii – na początku 
będą dwie mało czytelne tabele z wynika-
mi, natomiast ostatnia linia zawiera wszyst-
kie  wyniki,  rozdzielone  przecinkami.  Aby 
uzyskać  ładną  i  czytelną  tabelę  z  wynika-
mi w formacie html, możemy użyć progra-
mu 

bon_csv2html

. Wczytuje on przez stan-

dardowe  wejście  ostatnią  linię  z  wydru-
ku  Bonnie++  i  drukuje  plik  html  na  stan-
dardowym wejściu. Możemy użyć go więc 
tak: 

echo <ostatnia lini z bonie++> |  

bon_csv2html >/tmp/dysk1.html

. Oczywi-

ście, interesującą nas długą linię z wynika-
mi działania Bonnie++ najwygodniej będzie 
zaznaczyć  i  wkleić  do  tej  komendy  przy 
pomocy myszki.

Wartości,  podawane  przez  Bonnie++

będą uzależnione nie tylko od dysku twar-
dego, ale również od zastosowanego syste-
mu plików (ext2/ext3), prędkości procesora, 
obciążenia systemu itd.

background image

67

sprzęt

www.lpmagazine.org

software raid oraz logical volume manager

Aby  zapełnić  całkowicie  swój  VG,  two-
rząc  ostatni  wolumin  logiczny,  powinie-
nem  podać  parametr  -l3540,  gdyż  tyle 
zostało  mi  jednostek  alokacji.  Wiedzia-
łem jednak, że dobrze jest zostawić sobie 
trochę  miejsca  na  snapshot'y,  o  których 
napiszę w dalszej części, więc wykonałem 
polecenie 

lvcreate -l3490  -nbazy_danych 

dyski_IDE

.

W tym momencie jesteśmy gotowi, aby 

sformatować  wszystkie  utworzone  urzą-
dzenia.  W  moim  systemie  przykładowe 
komendy mogą wyglądać tak:

mkfs.ext3 /dev/dyski_IDE/bazy_danych
mkfs.ext3 /dev/dyski_IDE/katalogi_domowe
mkfs.ext3 /dev/dyski_IDE/logi_systemowe

LVM w akcji

W tym momencie zapewne wielu Czytel-
ników zadaje sobie pytanie, po co wymy-
ślono LVM? Jak na razie dosyć długi opis 
doprowadził  nas  do  sytuacji,  w  której 
mamy zwyczajny system. Co prawda jest 
on zabezpieczony przed awarią jednego 
dysku twardego, ale to zasługa wyłącznie 
RAID-1,  a  nie  LVM.  Dodatkowo,  mamy 
spowolniony dostęp do dysku (prosty test 
z komendą 

dd

 na LVM-ie działa u mnie 

o  trzy  sekundy  dłużej  niż  na  samym 
tylko  RAID-1).  Oczywiście,  LVM  nie 
został  stworzony  po  to,  aby  mieć  fan-
tazyjne  nazwy  urządzeń.  Zobaczmy, 
jak  przy  jego  pomocy  administrować 
miejscem na dysku i jak wygodnie wyko-
nywać kopie bezpieczeństwa danych. 

Dodajemy dysk

Załóżmy, że zabrakło miejsca na urzą-
dzeniu  /dev/dyski_IDE/bazy_danych
Do  systemu  dołożyliśmy  nowy  dysk 
i  możemy  z  niego  wykorzystać  jedną 
partycję  –  /dev/sda3.  Oczywiście,  nie 
jest to najlepszy pomysł, bowiem nasze 
wcześniejsze urządzenia znajdują się na 
RAID-1,  więc  są  zabezpieczone  przed 
awarią jednego z dysków. Jeśli do całej 
grupy woluminów dodamy jedno urzą-
dzenie  fizyczne  bez  takiej  ochrony, 
w  przypadku  jego  awarii  stracimy 
wszystkie  dane.  W  realnym  świecie
powinniśmy dodać przynajmniej dwie
partycje na różnych urządzeniach, two-
rząc na nich najpierw RAID-1. Na po-
trzeby  demonstracji  w  tym  artykule
posłużymy  się  jednak  prostym  przy-
kładem  z jedną partycją.

Zaczynamy do zainicjowania partycji:

# pvcreate /dev/sda3
Physical volume "/dev/sda3" successfully

S

 

created

Następnie  rozszerzamy  grupę  wolumi-
nów o nowe urządzenie:

# vgextend dyski_IDE /dev/sda3
Volume group "dyski_IDE" successfully

S

 

extended

Przy pomocy komendy 

vgdisplay

 spraw-

dzamy efekt naszych działań. Fragment jej 
raportu u mnie wyglądał tak:

  VG Size               74,52 GB
  PE Size               4,00 MB
  Total PE              19078
  Alloc PE / Size       9540 / 37,27 GB
  Free  PE / Size       9538 / 37,26 GB

Możemy  w  tym  momencie  utworzyć  cał-
kiem  nowy  wolumin  logiczny  na  9538 
wolnych  PE,  ale  nie  o  to  nam  przecież 
chodzi,  bo  aktualnie  zabrakło  nam  miej-
sca  na  woluminie    zamontowanym 
w  /bazy.  Po  wykonaniu  komendy 

df  -h

 

aktualnie mamy:

/dev/mapper/dyski_IDE-bazy_danych 

S

   14G   13G  397M  98% /bazy

Aby  dodać  wszystkie  9538  wolne  PE  do 
tego woluminu, wydajemy komendę:

lvextend -l +9538  /dev/dyski_IDE/

S

                           bazy_danych

W  ten  sposób  powiększyliśmy  sam 
wolumin  logiczny,  co  możemy  spraw-
dzić  poleceniem 

lvscan

.  Teraz  musimy 

powiększyć  system  plików,  aby  obejmo-
wał  miejsce  na  całym  LV.  Istnieją  spe-
cjalne  łatki  na  jądro,  które  pozwalają  na 
wykonanie  tej  operacji  bez  odmontowa-
nia  systemu  plików,  ale  my  na  chwilkę 
zróbmy 

umount  /bazy/

  i  wydajmy  pole-

cenie 

resize2fs  -p  /dev/dyski_IDE/bazy

danych

.  Program  może  nas  popro-

sić,  abyśmy  sprawdzili  system  plików 
przed  zmianą  jego  rozmiaru,  więc 

R

E

K

L

A

M

A

background image

68

sprzęt

styczeń 2005

w  takim  przypadku  napiszemy:   

e2fsck 

-f  /dev/dyski_IDE/bazy_danych

  i  wyda-

my  komendę  resize2fs  ponownie.  Pozo-
staje  nam  teraz  tylko  zamontować 
LV  ponownie  i  sprawdzić,  co  pokaże 

df -h

. U mnie otrzymałem: 

/dev/mapper/dyski_IDE-bazy_

S

     danych 51G   13G   36G  27% /bazy

Operacja  trwała  bardzo  krótko  i  zakoń-
czyła  się  sukcesem.  Bez  LVM  koniecz-
na  byłaby  zapewne  modyfikacja  tablicy 
partycji  na  przynajmniej  jednym  dysku, 
a następnie mozolne przenoszenie danych. 
Wszystko  to  spowodowałoby  znacznie 
dłuższą przerwę w pracy systemu.

Powiększanie systemu plików jest moż-

liwe  nie  tylko  na  ext2/ext3.  Jeśli  korzy-
stamy  z  reiserfs,  w  analogiczny  sposób 
używamy  komendy 

resize_reiserfs  -f

W  przypadku  xfs  mamy  program 

xfs_

growfs

,  ale  istotna  różnica  polega  w  tym 

przypadku na tym, że powinniśmy pozo-
stawić system plików zamontowany, a jako
parametr  tego  programu  podać  punkt 
zamontowania (np. 

xfs_growfs /bazy

).

Inne manipulacje dyskami

W przypadku, gdy chcemy usunąć z sys-
temu jeden dysk (np. hdb) i mamy na tyle 
dużo  wolnego  miejsca  na  pozostałych, 
aby zmieścić tam wszystkie dane, wyda-
jemy  polecenie: 

pvmove  /dev/hdb

.  Teraz 

wszystkie  dane  z  hdb  zostały  przenie-
sione  na  pozostałe  dyski,  w  ramach  tej 
samej  grupy  woluminów  (VG).  Następ-
nie 

vgreduce  nazwa_VG  /dev/hdb

  powo-

duje,  że  dysk  nie  jest  już  członkiem  VG 
o nazwie nazwa_VG.

Gdy do systemu dodaliśmy nowy dysk 

dodany (np. sdf ), na który chcemy prze-
nieść dane ze starego (np. hdb), wydaje-
my polecenia:

# pvcreate /dev/sdf; vgextend dev /dev/sdf
# pvmove /dev/hdb /dev/sdf; vgreduce dev 

/dev/hdb

Wcześniej  powiększaliśmy  wolumin  lo-
giczny.  Oczywiście,  jest  możliwe  równie 
łatwe  zmniejszenie  go.  Problem  pojawia 
się  ze  zmniejszeniem  systemu  plików, 
bowiem  tylko  ext2/ext3  oraz  reiserfs 
pozwalają na taką operację. Przykładowo: 

# umount /home
# resize2fs /dev/dyski_IDE/katalogi_

S

domowe 524288

# lvreduce -L-1G  /dev/dyski_IDE/

S

                         katalogi_domowe
# mount /home

W tym przypadku, jako parametr progra-
mu 

resize2fs

,  musieliśmy  podać  nową 

wielkość systemu plików.

LVM zawiera również narzędzia do 

przenoszenia  grupy  woluminów  (VG) 
na inne komputery, gdyż nie wystarczy 
zwykłe  przełożenie  dysków.  Powin-
niśmy,  po  odmontowaniu  systemu 
plików i dezaktywacji VG (

vgchange --

activate n nazwa_VG

), wykonać polece-

nie 

vgexport nazwa_VG

, a następnie po 

przełożeniu dysku do nowego kompu-
tera – 

vgimport nazwa_VG

Snapshot

Wykonywanie  kopii  bezpieczeństwa 
trwa  dosyć  długo,  a  nie  każdy  może 
pozwolić sobie na zupełne zatrzymanie 
systemu na ten czas. Wtedy utrapieniem 
stają  się  pliki,  które  zostały  zmodyfi-
kowane  w  czasie  wykonywania  kopii. 
LVM udostępnia nam specjalny mecha-
nizm,  który  pozwala  na  obejście  tego 
problemu. 

Możemy  utworzyć  snapshot  aktual-

nego stanu któregoś z naszych wolumi-
nów logicznych. Snapshot jest dla admi-
nistratora  systemu  kolejnym  wolumi-
nem  logicznym,  zawierającym    kopię 
któregoś  z  LV.  Kopia  ta  nie  zmienia 
się,  nawet  jeśli  na  oryginale  wyko-
nywane  są  operacje  zapisu.  Oczywi-
ście, przy tworzeniu snapshota dane na 
nim  zawarte  nie  są  fizycznie  kopiowa-
ne  na  nowy  wolumin  logiczny.  Potrze-
bujemy  trochę  miejsca  na  danym  VG, 
aby  było  gdzie  zapisywać  informacje 
o  plikach,  które  zmieniły  się  od  czasu 
utrwalenia stanu woluminu logicznego. 
Jeśli  mamy  katalog  /home,  w  którym 
znajduje  się  20  GB  danych,  to  wiemy,
że zrobienie jego kopii bezpieczeństwa
zajmie 10 minut. Zakładamy, że w ciągu 
tych  10  minut  na  partycji  z  /home
użytkownicy  utworzą  lub  zmodyfikują 
co najwyżej 200 MB danych. Tyle wła-
śnie  miejsca  musimy  mieć  na  danej 
grupie woluminów. Snapshot tworzymy 
poleceniem:

# lvcreate -L200M -s -n tylko_backup

S

 

       /dev/dyski_IDE/katalogi_domowe

Jeśli używamy systemu plików xfs, pole-
cenie musi być nieco dłuższe: 

# xfs_freeze -f /home; lvcreate -L200M

S

 

    -s -n tylko_backup /dev/dyski_IDE/

S

    katalogi_domowe

W tym momencie możemy zamontować 
(tylko  do  odczytu)  wolumin  logiczny 
o  nazwie  „tylko_backup”,  który  zawiera 
kopię woluminu „katalogi_domowe”:

# mount /dev/dyski_IDE/tylko_backup

S

                             /mnt/backup/

Po  zakończeniu  wykonywania  kopii 
bezpieczeństwa,  wydajemy  polecenie: 

lvremove  -f  /dev/dyski_IDE/tylko_backup

.

Musimy  uważać,  aby  do  tego  czasu 
zmiany  na  woluminie  nie  przekroczy-
ły  rozmiaru  snapshotu  –  w  tym  przy-
kładzie 200 MB. Po przepełnieniu staje 
się  on  bowiem  bezużyteczny  i  podob-
nie trzeba traktować dane z niego sko-
piowane.

Zakończenie

Stosowanie RAID-a i LVM-a może bardzo
ułatwić  pracę  administratora  i  zwiększyć
bezpieczeństwo oraz wydajność systemu. 
Rozwiązania  te  często  powodują  jednak, 
że czynności niegdyś proste (np. przenie-
sienie  dysku  do  innego  komputera)  stają 
się znacznie bardziej skomplikowane, a w 
przypadku,  gdy  dochodzi  już  do  awarii 
któregoś  z  nich,  odzyskanie  danych  jest 
znacznie  trudniejsze.  Konieczne  staje  się 
zaopatrzenie  w  odpowiednie  narzędzia 
do ratowania systemu, które będą potra-
fiły  sobie  poradzić  z  systemami  plików 
na  takich  urządzeniach,  np.  mini-dys-
trybucja  (R)ecovery  (I)s  (P)ossible  Linux
Innymi słowy, rozwiązując pewne proble-
my,  dokładamy  sobie  często  cały  szereg 
nowych. 

W Internecie:

•   LVM HOWTO:

http://www.tldp.org/HOWTO/
LVM-HOWTO/

•   Software RAID HOWTO:

http://www.tldp.org/HOWTO/
Software-RAID-HOWTO.html

•   Dystrybucja ratunkowa, 

m.in. dla RAID i LVM:

 

http://www.tux.org/pub/people/

kent-robotti/looplinux/rip/

•   Strona domowa dystrybucji 

(R)ecovery (I)s (P)ossible Linux:
http://www.tux.org/pub/people/

 

kent-robotti/looplinux/rip/

background image
background image

dla programistów

70

styczeń 2005

Pyro i OpenSSL 

– bezpieczny

komunikator internetowy

Marek Sawerwain

G

dy planujemy przesyłać isto-
tne informacje poprzez Inter-
net,  to  wprowadzenie  szy-
frowania  danych  w  naszym 

aplikacjach  rozproszonych  jest  bardzo 
ważnym  zagadnieniem.  Istnieje  wiele 
bibliotek  wspomagających  nas  w  tym 
temacie. Jedną z najbardziej znanych jest 
OpenSSL.  Jest  ona  dostępna  we  wszyst-
kich  większych  dystrybucjach  Linuk-
sa.  Odpowiada  za  realizację  bezpiecz-
nych  kanałów  komunikacyjnych  w  opar-
ciu o protokół SSL i jest wykorzystywana 
przez  wiele  programów,  w  tym  przeglą-
darki WWW.

Zastosowanie biblioteki OpenSSL naj-

lepiej pokazać na przykładzie. W nume-
rze Linux+ 10/2003 prezentowałem prosty 
komunikator na wzór bardzo popularne-
go  Gadu-Gadu.  Jedną  z  niedoskonało-
ści tamtego programu była komunikacja 
bez jakiegokolwiek szyfrowania danych. 
W  tym  artykule  postaram  się  pokazać, 
jak  małym  kosztem  zmienić  ten  stan 
rzeczy.

Kilka postanowień 

na początek

Najważniejszym  zadaniem  będzie  doda-
nie  do  komunikatora  obsługi  szyfrowa-
nego  kanału.  Uprzedzając  dalszą  część 
artykułu, już teraz mogę zdradzić, iż jest 
to zadanie łatwe do wykonania. Głównie 
dlatego, iż Pyro znakomicie współpracu-
je z biblioteką OpenSSL.

Aby w naszym komunikatorze znala-

zła  się  obsługa  SSL,  wymagana  jest  jesz-
cze  instalacja  jednego  pakietu  o  nazwie 
M2Crypt. Kilka uwag na ten temat zawiera 
ramka Kompilacja i instalacja pakietów.

Pozostałe  założenia  naszego  progra-

mu  pozostają  niezmienione.  Nadal  jest 
to program napisany w Pythonie. Będzie 
korzystał z biblioteki GTK+ oraz z plików 

opisu interfejsu pochodzących z progra-
mu Glade.

Do  poprawnego  działania  będzie 

wymagał, tak jak poprzednio, dwóch uru-
chomionych  usług  Pyro:  serwera  nazw 
(usługę  uruchamiamy  poprzez  wydanie 
polecenia ns) oraz serwera zdarzeń (usługę 
należy uruchomić wydając polecenie es).

Warto  przedstawić  sposób  działa-

nia  naszej  aplikacji  w  postaci  schema-
tu, który znajduje się na Rysunku 1. Jak 
widać, mamy trzy specjalne serwery. Ser-
wery zdarzeń i nazw należą do systemu 
Pyro,  ale  główny  serwer,  nazwany  ser-
werem  rozmów,  musimy  napisać  samo-
dzielnie,  a  raczej  poprawić  kod,  doda-
jąc  obsługę  SSL,  bo  przecież  serwer  już 
wcześniej napisaliśmy.

Typowy serwer Pyro

Program  komunikatora  to  wbrew  pozo-
rom niewielka aplikacja. Łączny kod źró-
dłowy  serwera  i  klienta  to  tylko  7  kB 
tekstu  źródłowego  w  Pythonie.  Zanim 
wprowadzimy obsługę SSL do komunika-
tora, chciałbym przedstawić typową apli-
kację Pyro.

Listing 1 zawiera kod klasy o nazwie

test_obj

. Poprzez Pyro chcemy udostęp-

nić  tę  klasę  w  sieci  tak,  aby  inny  użyt-
kownicy  Pythona  mogli  ją  wykorzy-
stać  we  własnych  programach.  Pierwszą
czynnością jest definicja klasy (Listing 1),
którą  zapisujemy  w  oddzielnym  pliku 
o nazwie test_obj.py.

Istnieje  kilka  sposobów  na  napisanie 

serwera. Poniżej zaprezentuję sposób, który 
został użyty w komunikatorze. Pierwszym 
elementem  w  implementacji  serwera  jest 
dołączenie odpowiednich pakietów:

import Pyro.core
import Pyro.naming
import test_obj

O autorze

Autor zajmuje się tworzeniem 

oprogramowania dla WIN32 

i Linuksa. Zainteresowania: 

teoria języków programowania 

oraz dobra literatura. 

Kontakt z autorem: 

autorzy@lpmagazine.org

Na płycie CD/DVD

Na płycie CD/DVD znajdują się 

wykorzystywane biblioteki, kod 

źródłowy programu oraz wszyst-

kie listingi z artykułu.

background image

71

dla programistów

python/pyro/ssl

www.lpmagazine.org

Dwa  pierwsze  dotyczą  Pyro,  ale  ostatni 
pakiet to nasza klasa, którą mamy zamiar 
udostępnić.  W  tym  celu  w  serwerze 
definiujemy  specjalną  klasę  pośrednią 
w następujący sposób:

class test_obj_class

S

(Pyro.core.ObjBase, test_obj.test_obj):
   def __init__(self):
      Pyro.core.ObjBase.__init__(self)

Następnie  uruchomiamy  serwer  metodą 

initServer

:

Pyro.core.initServer()

W  przeciwieństwie  do  wcześniejszego 
kodu  serwera  komunikatora,  określa-
my jeszcze kilka dodatkowych informa-
cji.  Na  początku  określamy  ilość  infor-
macji, które będą zapisywane do pliku 
zdefiniowanego  za  pomocą  następnej 
linii:

Pyro.config.PYRO_TRACELEVEL=3
Pyro.config.PYRO_LOGFILE='server_log'

Później  określamy  komputer,  na  którym 
został uruchamiany serwer nazw:

Pyro.config.PYRO_NS_HOSTNAME='localhost'

Ustalenie adresu serwera nazw oraz serwe-
ra  zdarzeń  (

Pyro.config.PYRO_ES_HOSTNAME

jest szczególnie istotne, gdy będziemy testo-
wać program na komputerze, na którym nie 

ma zainstalowanej sieci i jest dostępny tylko 
adres lokalny 

127.0.0.1

.

Następnym  krokiem  w  implementa-

cji  serwera  jest  uzyskanie  obiektu  ser-
wera nazw:

ns=Pyro.naming.NameServerLocator().getNS()

Ostatnim  obiektem  do  utworzenia  jest 

daemon

:

daemon=Pyro.core.Daemon()

Konieczną  operacją  jest  podanie  mu 
obiektu  serwera  nazw  i  to  wykonujemy 
w następujący sposób:

daemon.useNameServer(ns)

Ostatnie  czynności  w  serwerze  polegają 
na podłączeniu naszego obiektu. W pierw-
szym  parametrze  wykorzystujemy  klasę 
pomocniczą 

test_obj_class

,  a  w  drugim 

ciąg  znaków  reprezentujący  nasz  obiekt, 
czyli 

test_obj

. Na koniec możemy wywo-

łać  metodę 

requestLoop

,  co  spowoduje 

uruchomienie  serwera.  Kod  tych  dwóch 
czynności przedstawia się następująco:

uri=daemon.connect(test_obj_class(), "test_obj") 
daemon.requestLoop()

Klient Pyro

W programie klienta, podobnie jak w ser-
werze,  na  początek  dołączamy  potrzeb-
ne pakiety:

Rysunek 1. 

Schemat działania komunikatora

Kompilacja oraz 

instalacja pakietów

Nasza aplikacja to dość mały program. 
Wielkość  jest  wynikiem  zastosowania 
kilku  bibliotek,  które  pozwalają  zaim-
plementować  całkiem  zgrabną  apli-
kację  minimalną  ilością  kodu.  Z  tego 
powodu, aby nasz komunikator zadzia-
łał,  potrzebny  jest  język  programowa-
nia Python oraz pakiet OpenSSL. Sam 
język, jak również bibliotekę, znajdzie-
my bez problemów w każdej dystrybucji 
Linuksa.  Autorzy  biblioteki  Pyro  zale-
cają  najnowszą  wersję  Pythona,  naj-
lepiej 2.3.3, oraz wersję OpenSSL nie 
starszą niż 0.9.7 (jeśli w dystrybucji jest 
starsza  wersja,  to  koniecznie  trzeba 
dokonać aktualizacji tego pakietu).

Biblioteki Pyro raczej nie znajdzie-

my, ale zanim przystąpimy do jej insta-
lacji,  należy  zainstalować  inną  biblio-
tekę  o  nazwie  M2Crypt.  Będzie  ona 
obsługiwać  połączenia  szyfrowane 
SSL. Biblioteka M2Crypto ma również 
swoje wymagania i do poprawnej kom-
pilacji wymaga pakietu SWIG w wersji 
przynajmniej  1.3.21.  Pakiet  SWIG  jest 
oferowany  przez  niektóre  dystrybucje, 
ale  gdy  pojawi  się  konieczność  jego 
kompilacji,  to  dzięki  skryptowi  confi-
gure
 sprawdza się ona do trzech pole-
ceń:

# ./configure –prefix=/katalog
# make
# make install

Proces kompilacji oraz instalacji pakie-
tu M2Crypto (jak również Pyro) sprowa-
dza się do dwóch poleceń:

# python setup.py build
# python setup.py install

Pamiętajmy,  aby  wcześniej  zainsta-
lować  wszystkie  pakiety  bezpośred-
nio  związane  z  interpreterem  Pytho-
na  oraz  pakiety  związane  z  biblioteką 
OpenSSL.

Nasz komunikator wymaga jeszcze 

jednej biblioteki do poprawnego działa-
nia, a mianowicie PyGTK+, gdyż wyko-
rzystujemy  GTK+  oraz  pakiet  libgla-
de
. Wiele dystrybucji, np. AuroxMan-
drakelinux
  czy  Fedora  Core,  zawiera-
ją odpowiednie pakiety – wystarczy je 
tylko doinstalować.

background image

72

dla programistów

styczeń 2005

import Pyro.util
import Pyro.core

Następnie inicjujemy klienta:

Pyro.core.initClient()

Później ustalamy parametry pomocnicze, 
takie  jak  adres  komputera,  na  którym 
znajduje się serwer nazw.

Gdy  to  zrobimy,  możemy  uzyskać 

referencję  do  zdalnego  obiektu.  Wyko-
rzystujemy metodę 

getProxyForURI

:

test = Pyro.core.getProxyForURI

S

                 ("PYRONAME://test_obj")

Po tych czynnościach metody ze zdalne-
go  obiektu  wywołujemy  tak  samo,  jak 
przy lokalnych obiektach:

print test.m1("Abcdef")
print test.m2(5)

Dodajemy obsługę SSL 

do serwera

Jak  widać,  napisanie  nieskompliko-
wanego  serwera  i  klienta  przy  zasto-
sowaniu  Pyro  to  dość  łatwe  zada-
nie.  Kod  źródłowy  biblioteki  zawie-
ra  wiele  przykładów,  które  polecam 
przejrzeć  czytelnikom,  którzy  w  tym 
momencie zainteresowali się tą biblio-
teką.  Naszym  głównym  zadaniem  jest 
jednak komunikacja za pomocą proto-
kołu SSL.

Listing 2 zawiera pełny kod serwera 

udostępniającego  obiekt 

test_obj

  przy 

zastosowaniu  protokołu  SSL.  Postać  ser-
wera  jest  bardzo  podobna  do  poprzed-
niego  przykładu,  w  którym  komunika-
cja jest jawna.

Pierwszą  różnicą  są  pakiety,  które 

dołączamy.  Istotny  jest 

Pyro.protocol

używany  w  klasie 

printCertValidator

Kolejna  różnica  kryje  się  w  tworzeniu 
obiektu 

daemon

. W argumencie konstruk-

tora podajemy wartość 

PYROSSL

:

daemon=Pyro.core.Daemon(prtcol='PYROSSL')

W  ten  sposób  nakazujemy  stosowanie 
protokołu SSL. 

Następnie  podłączamy  klasę 

print-

CertValidator

,  której  zadaniem  jest 

sprawdzenie poprawności certyfikatu:

daemon.setNewConnectionValidator

S

   (printCertValidator())

Listing 2. 

Pełny kod serwera oparty o protokół SSL

#! /usr/bin/env python

import

 

sys

import

 

Pyro

.

core

import

 

Pyro

.

naming

import

 

Pyro

.

util

import

 

Pyro

.

protocol

from

 

Pyro

.

errors

 

import

 

PyroError

,

NamingError

from

 

Pyro

.

protocol

 

import

 

getHostname

import

 

test_obj

class

 

test_obj_class

(

Pyro

.

core

.

ObjBase

test_obj

.

test_obj

):

   

def

 

__init__

(

self

):

      

Pyro

.

core

.

ObjBase

.

__init__

(

self

)

class

 

printCertValidator

(

Pyro

.

protocol

.

BasicSSLValidator

):

   

def

 

checkCertificate

(

self

,

cert

):

      

if

 

cert

 

is

 

None

:

         

return

 

(

0

,

3

)

      

print

 

"Cert Subject: %s"

 

%

 

cert

.

get_subject

()

      

return

 

(

1

,

0

)

##### main program #####

Pyro

.

core

.

initServer

()

Pyro

.

config

.

PYRO_TRACELEVEL

=

3

Pyro

.

config

.

PYRO_NS_HOSTNAME

=

'localhost'

Pyro

.

config

.

PYRO_LOGFILE

=

'server_log'

ns

=

Pyro

.

naming

.

NameServerLocator

()

.

getNS

()

daemon

=

Pyro

.

core

.

Daemon

(

prtcol

=

'PYROSSL'

)

daemon

.

setNewConnectionValidator

(

printCertValidator

())

daemon

.

useNameServer

(

ns

)

uri

=

daemon

.

connect

(

 

test_obj_class

()

"test_obj"

)

print

 

"Server is ready. Let's go!!!"

daemon

.

requestLoop

()

Listing 1. 

Postać klasy test_obj

class

 

test_obj

:

   

def

 

m1

(

s

string

):

      

print

 

"Metoda m1 parametr:"

string

      

return

 

"Długość ciągu znaków: "

+

str

(

len

(

string

))

   

def

 

m2

(

s

number

):

      

print

 

"Metoda m2 parametr:"

number

 

 

 return

 

"Kwadrat liczby:"

+str(

number

*

number

)

background image

73

dla programistów

python/pyro/ssl

www.lpmagazine.org

Kolejne  czynności  pozostają  niezmie-
nione w porównaniu do zwykłego ser-
wera.

Zajmijmy się teraz klasą 

printCert-

Validator

.  Zawiera  ona  jedną  metodę 

– 

checkCertificate

.  Musi  ona  zwrócić

pewne określone wartości. Jeśli chcemy
zaakceptować  certyfikat,  to  jako  war-
tość  powrotną  zwracamy  parę 

(1,0)

.

W  przypadku  odrzucenia  certyfikatu,
za  pomocą  słowa 

return

  musimy

przekazać  parę 

(0,  kod_błędu)

.  Przez 

kod_błędu

  rozumiemy  jedną  z  poniż-

szych wartości:

•  

Pyro.constants.DENIED_UNSPECIFIED

  

– dowolny powód błędu;

•    

Pyro.constants.DENIED_SERVERTOOBUSY

 

– serwer jest zbyt zajęty;

•  

Pyro.constants.DENIED_HOSTBLOCKED

  

– blokada komputera;

•  

Pyro.constants.DENIED_ SECURITY

 

– błąd związany z bezpieczeństwem.

Na Listingu 2, gdy nie ma certyfikatu, 
zwracamy parę 

(0,3)

, co oznacza błąd 

związany z bezpieczeństwem.

Jak  widzimy,  dodanie  obsługi  SSL 

wymaga  dołączenia  jednej  klasy  oraz 
kosmetycznych zmian w kodzie. Oprócz 
serwera,  musimy  wygenerować  certyfi-
katy dla serwera i klienta. Informacje o 
tym,  jak  tego  dokonać,  podam  w  dal-
szej części artykułu. Teraz zajmiemy się 
klientem.

Program klienta

W  programie  serwera  najważniej-
szą  zmianą  było  dodanie  w  kon-
struktorze  obiektu 

daemon

  informacji 

o  tym,  że  będziemy  korzystać  z  pro-
tokołu  SSL.  W  kliencie  nie  musimy 
wykonywać  żadnych  zmian!  Bibliote-
ka  Pyro  samodzielnie  wykryje  fakt,  że 
serwer korzysta z protokołu SSL i klient 
samoczynnie  przełączy  się  na  komu-
nikację  poprzez  SSL.  Z  tego  powodu 
uzyskanie  referencji  do  obiektu  nadal 
możemy wykonywać w ten sposób:

test1 = Pyro.core.getProxyForURI

S

   ("PYRONAME://test_obj")

Jeśli  jednak  chcemy  jawnie  określić 
komputer oraz fakt użycia przez nas pro-
tokołu  SSL,  to  możemy  w  wywołaniu 
metody 

getProxyForURI

  podać  pełne 

dane w następujący sposób:

test2 = Pyro.core.getProxyForURI
("PYROLOCSSL://localhost/test_obj")

Ostatni składnik w adresie to nazwa obie-
ktu,  którą  podaliśmy  w  drugim  argu-
mencie metody 

connect

 podczas rejestro-

wania naszej klasy w serwerze.

Jak widać, siłą Pyro jest automaty-

zacja  wielu  operacji.  Istotne  zmiany, 
które  należy  wprowadzić,  aby  zwięk-
szyć  bezpieczeństwo  aplikacji  Pyro, 
wykonujemy  tylko  po  stronie  serwe-
ra.  Uzbrojeni  w  tę  wiedzę  w  bardzo 
łatwy sposób możemy dokonać zmian 
w naszym komunikatorze.

Generowanie certyfikatów

Bezpieczeństwo komunikacji ściśle zależy
od  utworzonych  certyfikatów.  Z  tego
powodu,  zanim  zaczniemy  modyfiko-
wać  nasz  program,  wygenerujemy  sto-
sowne  certyfikaty.  Nie  jest  to  trudne, 
ale  musimy  znać  obsługę  programu 
openssl.  Możemy  ułatwić  sobie  zada-
nie,  jeśli  będziemy  korzystać  ze  skryp-
tu  pomocniczego,  dostępnego  w  kodzie 
źródłowym  pakietu  OpenSSL.  Potrzeb-
ny  skrypt  można  odnaleźć  wtedy 

Listing 3. 

Postać plików z certyfikatami dla protokołu SSL

Plik z głównym certyfikatem:

-----BEGIN CERTIFICATE-----

MIIDkjCCAvugAwIBAgIBA i tak dalej ....
-----END CERTIFICATE----- 

Plik client.pem:
-----BEGIN CERTIFICATE-----

MIIDvzCCAyigAwIBAgIBATANBgkqh i tak dalej ....
-----END CERTIFICATE----- 

-----BEGIN RSA PRIVATE KEY----- 
MIICXQIBAAKBgQC7ixGOs2Sq i tak dalej ...
-----END RSA PRIVATE KEY----- 
Plik server.pem:
-----BEGIN CERTIFICATE-----

MIIDvzCCAyigAwIBAgIBATANBgkqh i tak dalej ....
-----END CERTIFICATE----- 

-----BEGIN RSA PRIVATE KEY----- 
MIICXQIBAAKBgQC7ixGOs2Sq i tak dalej ...
-----END RSA PRIVATE KEY----- 

Rysunek 2. 

Nasza aplikacja podczas rozmowy

background image

74

dla programistów

styczeń 2005

w katalogu Apps. Pojawia się on w dwóch
wersjach:  dla  języka  Perl,  jako  plik 
o nazwie CA.pl, oraz jako zwykły skrypt 
BASH-a – CA.sh. My będziemy korzystać 
z  tego  drugiego  (jego  kopia  znajduje  się 
również na płycie CD/DVD).

Pierwszym  krokiem  jest  utworzenie 

certyfikatu  autoryzacji,  czyli  pliku  CA. 
Gdy korzystamy z pomocy skryptu CA.sh
wystarczy wydać krótkie polecenie:

# ./CA.sh -newca 

Skrypt utworzy kilka katalogów oraz plik 
z certyfikatem (znajdzie się on w katalo-
gu demoCA). Zostaniemy również popro-
szeni o wypełnienie kilku pól.

Następnie generujemy certyfikat żąda-

nia:

# ./CA.sh -newreq

Tutaj  ponownie  zostaniemy  poproszeni 
o  podanie  kilku  informacji.  Po  zakoń-
czeniu procesu powstanie plik o nazwie 
newreq.pem.  Następnym  krokiem  jest 
podpis certyfikatu żądania:

# ./CA.sh -sign

Powstanie plik o nazwie newcert.pem.

Teraz możemy odczytać frazę klucza 

i w tym celu wydajemy polecenie:

# openssl rsa < newreq.pem > newkey.pem

z  pliku  newcert.pem  do  pliku 
o nazwie client.pem, a następnie dołą-
czamy do niego opis klucza prywatnego 
z pliku newkey.pem.

Z certyfikatem przeznaczonym dla

serwera  postępujemy  w  podobny 
sposób,  ale  nie  generujemy  już  cer-
tyfikatu  autoryzacji  (jest  wspólny  dla 
klienta  i  serwera),  lecz  następny  cer-
tyfikat  żądania.  Podczas  wypełnia-
nia pól informacyjnych warto zwrócić 
uwagę na to, aby pole Common Name 
posiadało  inną  wartość  dla  klienta 
i dla serwera.

Po  zakończeniu  operacji  tworze-

nia  plików  client.pem  oraz  server.pem 
brakuje  nam  jeszcze  jednego  pliku, 
a  mianowicie  głównego  certyfikatu.  Znaj-
duje się on w katalogu demoCA pod nazwą 
cacert. Wystarczy ten plik przekopiować do 
katalogu,  w  którym  znajdują  się  pozostałe 
pliki naszej aplikacji. Zmieniamy nazwę pliku 
z  certyfikatem  na  ca.pem  oraz  kasujemy 
początkowe informacje o certyfikacie aż do 
linii rozpoczynającej certyfikat:

-----BEGIN CERTIFICATE-----

W  ten  sposób  dysponujemy  trzema  pli-
kami,  które  są  niezbędne  do  bezpiecz-
nej  komunikacji  pomiędzy  serwerem 
a klientem.

Rysunek 3. 

Strona domowa PYRO

Listing 4. 

Najważniejsze fragmenty programu serwera

#! /usr/bin/python

import

 

sys

import

 

Pyro

.

core

import

 

Pyro

.

naming

from

 

Pyro

.

EventService

.

Clients

 

import

 

Publisher

 

# identyczna postać jak na Listingu 2

class

 

printCertValidator

(

Pyro

.

protocol

.

BasicSSLValidator

):

class

 

TalkSrv

(

Pyro.core.ObjBase, Publisher

):

Pyro

.

core

.

initServer

()

Pyro

.

config

.

PYRO_TRACELEVEL

=

3

Pyro

.

config

.

PYRO_NS_HOSTNAME

=

'localhost'

P

yro.config.PYRO_LOGFILE

=

'server_log'

ns

=

Pyro

.

naming

.

NameServerLocator

()

.

getNS

()

daemon

=

Pyro

.

core

.

Daemon

(

prtcol

=

'PYROSSL'

)

daemon

.

setNewConnectionValidator

(

printCertValidator

())

daemon

.

useNameServer

(

ns

)

uri

=

daemon

.

connect

(

TalkSrv

()

"TalkSrv"

)

print

 

"TalkServer is ready."

daemon

.

requestLoop

()

Otrzymaliśmy  wszystkie  niezbędne 
dane,  aby  utworzyć  certyfikat  dla 
klienta.  Niestety,  musimy  samodziel-
nie  przenieść  pewne  dane  z  plików 
wygenerowanych  przez  skrypt  CA.sh 
i  program  openssl.  Kopiujemy  cześć 
opisującą  certyfikat  (Listing  3  przed-
stawia  ogólną  postać  tych  plików) 

background image

75

dla programistów

python/pyro/ssl

www.lpmagazine.org

z SSL zostały już omówione przy okazji 
poprzedniego  przykładu,  więc  musimy 
tylko  zadbać,  aby  pliki  z  certyfikata-
mi  znalazły  się  w  podkatalogu  certs
widocznym  z  poziomu  programu  ser-
wera oraz klienta.

Podobna sytuacja pojawia się w pro-

gramie  klienta  –  nie  zmieniamy  ele-
mentów  związanych  z  interfejsem 
graficznym,  a  sposób  implementa-
cji  klienta  jest  zgodny  z  przykłada-
mi,  które  podałem  na  początku  tego 
artykułu.

OpenSSL w C/C++

Gdy  chcemy  pisać  program  bezpośred-
nio w języku C/C++, to sposób korzysta-
nia z OpenSSL nie jest znacznie bardziej 
skomplikowany.  Ogólny  schemat  two-
rzenia  programu  klienta  wygląda  wtedy 
następująco:

/* utworzenie uchwytu SSL */
con=(SSL *)SSL_new();

Dla  tych  z  czytelników,  którzy  nie

mieli  styczności  z  takimi  plikami,  Li-
sting  3  przedstawia  schematycznie  postać
poszczególnych plików. Przenosimy wyra-
żenia znajdujące się pomiędzy liniami:

-----BEGIN CERTIFICATE-----
-----END CERTIFICATE----- 

bądź 

-----BEGIN RSA PRIVATE KEY-----
-----END RSA PRIVATE KEY----- 

w  przypadku  klucza  prywatnego.  Mam
nadzieje,  że  podane  informacje  pomogą 
we  własnym  tworzeniu  certyfikatów. 
Certyfikaty  z  płyty  CD/DVD  są  ważne 
do  listopada  2005  roku.  Okres  waż-
ności  certyfikatów  może  być  inny. 
W pliku CA.sh po początkowych komen-
tarzach natrafiamy na zmienną 

DAYS

:

DAYS="-days 365"

czyli  nasze  certyfikaty  będą  ważne 
przez  365  dni  od  momentu  utworzenia. 
Jeśli chcemy to zmienić, wystarczy podać 
inną liczbę dni.

Poprawiamy komunikator

Wiemy,  jak  wygenerować  certyfikat  oraz
w  jaki  sposób  należy  napisać  progra-
my  serwera  i  klienta.  Oznacza  to,  że
bez  żadnych  kłopotów  możemy  zmo-
dyfikować naszego komunikatora.

Zobaczmy, jak wygląda serwer. Isto-

tne dla nas fragmenty zawiera Listing 4. 
Klasa 

printCertValidator

 pozostała nie 

zmieniona  w  stosunku  do  poprzed-
nich  przykładów,  podobnie  jak  klasa 

TalkSrv

. Poszczególne metody klasy ser-

wera  również  nie  podlegają  żadnym 
zmianom.  Jak  widać  z  Listingu  4,  pro-
gram  serwera  nie  różni  się  niczym 
specjalnym  od  programu  z  Listingu  2. 
Włączenie  obsługi  SSL  następuje 
w  momencie  utworzenia  obiektu 

daemon

.  Wszystkie  detale    związane

R

E

K

L

A

M

A

background image

76

dla programistów

styczeń 2005

W Internecie:

•   Strona domowa pakietu Pyro:

http://pyro.sourceforge.net/

•   Strona domowa pakietu M2Crypto:

http://sandbox.rulemaker.net/
ngps/m2/

•   Strona domowa pakietu OpenSSL:

http://www.openssl.org/

•   Strona domowa języka Python:

http://www.python.org/

Listing 5. 

Najważniejsze fragmenty programu klienta

#! /usr/bin/python

import

 

sys

import

 

Pyro

.

util

import

 

Pyro

.

core

from

 

Pyro

.

EventService

.

Clients

 

import

 

Subscriber

from

 

threading

 

import

 

Thread

import

 

gobject

import

 

gtk

import

 

gtk

.

glade

your_nick

=

''

talks

=

{}

# identycznie, jak w poprzedniej wersji

def UpdateActiveList():
def

 

OnEndBTN

(*

args

):

def

 

OnTalkBTN

(*

args

):

def

 

OnCreateTalker

(*

args

):

def

 

OnEndNickBTN

(*

args

):

class

 

TalkSrvEvent

(

Subscriber

):

class

 

EventListener

(

Thread

):

class

 

Talker

:

main_win_xml

=

gtk

.

glade

.

XML

(

'MainWin.glade'

)

nick_win_xml

=

gtk

.

glade

.

XML

(

'NickWin.glade'

)

mainwin

=

main_win_xml

.

get_widget

(

"MainWin"

)

# pozostałe polecenie odczytujące referencje do widgetów

mySigID

=

gobject

.

signal_new

(

"create_talker"

gtk

.

Window

gobject

.

SIGNAL_RUN_LAST

,

S

    

gobject

.

TYPE_BOOLEAN

(

gtk

.

Window

gobject

.

TYPE_STRING

gobject

.

TYPE_STRING

))

# signal connect
#
# podłączanie obsługi sygnałów

EndNickBTN

.

connect

(

'clicked'

OnEndNickBTN

)

person_list_data

=

gtk

.

ListStore

(

gobject

.

TYPE_STRING

)

person_list

.

set_model

(

person_list_data

)

nick_column

=

gtk

.

TreeViewColumn

(

'Nick\'s', 

gtk.CellRendererText(), text=0

)

person_list.append_column

(

nick_column

)

mainwin.hide

()

Pyro.core.initClient

()

Pyro.config.PYRO_TRACELEVEL=

3

Pyro.config.PYRO_NS_HOSTNAME=

'localhost'

Pyro.config.PYRO_LOGFILE=

'client_log'

TalkSrv

 

=

 

Pyro

.

core

.

getProxyForURI

(

"PYRONAME://TalkSrv"

)

UpdateActiveList

()

nickwin

.

show

()

while

 

gtk

.

main_iteration_do

(

False

):

   

pass

 

OpenSSL  zostało  wyposażone  w  odpo-
wiednie  funkcje,  które  znacząco  uprosz-
czają ten problem, np. określenie certyfi-
katu to zadanie dla jednej funkcji: 

SSL_use_certificate(con,”server.cert”) 

W rezultacie wygląda to tak:

/* utworzenie uchwytu SSL */
con=(SSL *)SSL_new();
/* otwieramy zwykłe gniazdko 
do komunikacji sieciowej */
/* kojarzymy uchwyt gniazda 
z połączeniem SSL */
SSL_set_fd(con,s);
/* stosujemy klucz prywatny */
SSL_use_RSAPrivateKey(con,”server.rsa”);
/* określamy certyfikat */
SSL_use_certificate(con,”server.cert”);
/* nawiązujemy połączenie */
SSL_accept(con);
/*
stosując SSL_read() oraz SSL_write()
 wymieniamy informacje pomiędzy 
serwerem a klientem
*/

Podsumowanie

Dołączenie  obsługi  SSL  w  naszej  apli-
kacji  do  sieciowych  rozmów  okaza-
ło  się  zadaniem  łatwym.  Mam  nadzie-
ję,  że  każdy  na  podstawie  zaprezento-
wanych  przykładów  będzie  w  stanie 
samodzielnie  dołączyć  obsługę  SSL  do 
własnej  aplikacji  napisanej  z  zastoso-
waniem  Pyro.  Jak  widać,  sprowadza 
się  to  tylko  do  wygenerowania  cer-
tyfikatów  oraz  kilku  zmian,  głównie 
w kodzie serwera.

Bezpieczeństwo  komunikacji  zależy

również od certyfikatów. Jeśli stosujemy
SSL,  pamiętajmy  o  tym,  aby  zmieniać 
certyfikaty,  gdyż  w  ten  sposób  polep-
szamy  poziom  bezpieczeństwa  naszego 
programu. 

/* otwieramy zwykłe gniazdko do
 komunikacji sieciowej */
/* kojarzymy uchwyt gniazda 
z połączeniem SSL */
SSL_set_fd(con,s);
/* nawiązujemy połączenie */
SSL_connect(con); /*
stosując SSL_read() oraz SSL_write()

 wymieniamy informacje pomiędzy 
klientem a serwerem
*/

W przypadku serwera schemat korzysta-
nia z protokołu SSL jest równie prosty.

Problemem  może  wydawać  się  dołą-

czenie  certyfikatów,  ale  API  biblioteki 

background image

aktualności

piotrt@lpmagazine.org

księgozbiór

77

www.lpmagazine.org

dział prowadzi: Piotr Truszkowski

Kryptografia dla praktyków. Protokoły, algorytmy i programy źródłowe z języku C

To  już  drugie  wydanie  klasycznego  podręczni-
ka do kryptografii autorstwa Bruce’a Schneiera, 
znanego  specjalisty  od  zabezpieczeń  informa-
tycznych.  Schneier  to  nie  tylko  twórca  szyfrów 
(jest on autorem m.in. popularnego szyfru Bow-
fish, który dodatkowo udostępnił do wykorzysta-
nia bez żadnych opłat i licencji), ale i biznesmen 
– założyciel Counterpane Internet Security.

To  co  jest  najbardziej  cenne  w  tym  pod-

ręczniku  to  przystępność  wykładu.  Autor  nie 
wdaje  się  w  rozważania  czysto  matematyczne, 
nie przytacza skomplikowanych dowodów i, co 

za tym idzie, każe sobie wierzyć na słowo, ale 
z  punktu  widzenia  większości  użytkowników 
jest  to  zdecydowana  zaleta.  Specjaliści  będą 
oczywiście  rozczarowani,  ale  to  nie  dla  nich 
powstała ta książka. Kryptografia dla praktyków 
to przede wszystkim podręcznik dla osób, które 
z kryptografią nie miały do tej pory wiele do czy-
nienia, a które chciałyby się czegoś na jej temat 
dowiedzieć z kompetentnego źródła. Schneiero-
wi udało się uniknąć, częstego w takich przypad-
kach, zbytniego uproszczenia problemów.

Jak  na  praktyka  przystało,  nie  stroni  od 

problemów  politycznych  i  społecznych  zwią-
zanych  z  kryptografią  –  poświęca  tym  zagad-
nieniom  cały  rozdział  pt.  Rzeczywistość.  Nic 
w tym dziwnego, bo podręcznik Schneiera stał 
się swego czasu przedmiotem batalii zwolenni-
ków pełnego dostępu do silnej kryptografii prze-
ciwko  restrykcyjnemu  amerykańskiemu  prawu 
dotyczącemu  jej  eksportu.  Kuriozalne  przepisy 
pozwalają  bowiem  na  legalny  eksport  Krypto-
grafii dla praktyków w formie drukowanej, ale 
już nie na eksport zawartych w niej kodów źró-
dłowych  algorytmów  w  formie  elektronicznej 
(np. na dyskietce). Zainteresowani mogą o całej 

Fedora Core 2 dla każdego

Jeśli  zastanawiamy  się,  jak  zacząć  przygodę 
z Linuksem i jaką dystrybucję wybrać, to po-
mocna może okazać się książka Fedora Core 2

dla  każdego,  która  ukazała  się  nakładem 
wydawnictwa Helion w 2004 roku.

Pozycja  ta,  jak  sam  autor  tłumaczy,  jest 

przeznaczona dla osób, które nie miały wcze-
śniej styczności z systemami spod znaku pin-
gwina.  Została  napisana  jako  zbiór  godzin-
nych  lekcji,  z  których  dowiemy  się,  jak  zain-
stalować Fedorę i odpowiednio ją skonfiguro-
wać.  Poznamy  też  najpopularniejsze  progra-
my,  z  których  możemy  skorzystać  w  Linuk-
sie.  Publikacja  jest  świetnym,  kompletnym, 
a przede wszystkim przystępnym i ciekawym 
wprowadzeniem w świat Linuksa, ze szczegól-
nym uwzględnieniem dystrybucji Fedora Core. 
Dużym  atutem  książki  są  strony  oznaczone 
jako  Warsztat,  występujące  na  końcu  każde-

sprawie przeczytać na stronie internetowej http://
people.qualcomm.com/karn/export/.

Książka  podzielona  jest  na  pięć  części: 

Protokoły  kryptograficzne,  Techniki  krypto-
graficzne, Algorytmy kryptograficzne, wspomnia-
ny  już  rozdział  Rzeczywistość  oraz  wydzielone 
Programy  źródłowe  –  pięćdziesiąt  stron  kodu 
w  C,  który  przyda  się  każdemu  praktykowi. 
Pierwsze trzy to oczywiście prowadzony niemal 
od podstaw, bardzo przystępny wykład krypto-
grafii. Pozostałe dwie, choć tak od siebie różne, 
ucieszą przede wszystkim tych, dla którym kryp-
tografia nie jest tylko zabawką i czystym hobby.

Co  zatem  nowego  w  drugim  wydaniu  tej 

klasycznej już książki? Siedem nowych rozdzia-
łów, ponad 1600 nowych odnośników bibliogra-
ficznych  oraz  wiele  dodatkowych  algorytmów, 
w  tym  GOST,  Blowfish,  RC4  i  A5.  Tym  samym 
podręcznik zyskał około 50% objętości... Zachę-
cam do lektury.

Moja ocena: 

5/5

Recenzent: 

Witold Kieraś (witekk@lpmagazine.org)

1.  Optymalizacja systemu Windows – J. Ballew, J. Duntemann, Wyd. Helion, 2004

2.  Thinking in Java. Wydanie 3. Edycja polska – B. Eckel, Wyd. Helion, 2004

3.  ABC fotografii cyfrowej – Ł. Oberlan, Wyd. Helion, 2004

4.  Photoshop CS. Ćwiczenia z ... , Wyd. Mikom, 2004

5.  Krótki kurs architektury i organizacji komputerów – W. Komorowski, Wyd. Mikom, 2004

6.  Programowanie Asembler IBM PC – P. Abel , Wyd. Read Me, 2004

7.  Microsoft Exchange Server 2003 - Vademecum Administratora - W. R. Stanek, Wyd. APN Promise, 2004

8.  Grafika 3D. Modelowanie i rendering od podstaw, Wyd. Axel Springer, 2004

9.  Systemy operacyjne. Szkoła programowania – W. Stallings, Wyd. Robomatic, 2004

10. Mój pierwszy komputer, Wyd. Help, 2004

Bestsellery Merlina

Lista najlepiej sprzedających się książek informatycznych

w sklepie internetowym www.merlin.pl, w miesiącu listopadzie:

go  rozdziału.  Znajdziemy  tam  Quiz  z  odpo-
wiedziami,  oraz  ćwiczenia  do  samodzielne-
go wykonania.

Duża  pochwała  należy  się  także  redak-

cji  polskiego  wydania  za  szybkie  tłumacze-
nie książki (w Polsce została wydana w kilka 
miesięcy po premierze oryginału) oraz za frag-
menty umilające czytanie, jak choćby treść nie-
których zrzutów ekranu w rozdziale 12 i 13.

Fedor  Core  2  dla  każdego  to  naprawdę 

książka godna polecenia – aktualna, przystęp-
na i ciekawa – gorąco polecam.

Moja ocena:

 4+/5

Recenzent: 

Marek Bettman (marekb@lpmagazine.org)

background image

testy

78

styczeń 2005

79

testy

yopy

www.lpmagazine.org

YOPY YP3700

Michał Niwicki

G

dy  do  redakcji  przyniesio-
no nowego palmtopa YOPY
a  naczelny  wskazał  palcem 
na  mnie  i  powiedział  “ten 

sprzęt testujesz ty”, mojej radości nie było 
końca. Rzuciłem szybko okiem na specy-
fikację techniczną i wiedziałem, że mam 
do czynienia ze sprzętem z górnej półki. 
Imponowały nie tylko wysokie parame-
try urządzenia, ale przede wszystkim to, 
że  palmtop  pracował  pod  kontrolą  sys-
temu  operacyjnego  Linux.  Radość  nie 
trwała jednak długo; mój entuzjazm malał 
na każdym kroku – począwszy od wyję-
cia urządzenia z pudełka, a skończywszy 
na podłączeniu go do komputera.

Co w środku?

Pod obudową urządzenia znajduje się 32-
bitowy  procesor  Strong  ARM  RISC,  pra-
cujący z częstotliwością 206 MHz. Palm-
top posiada 128 MB pamięci RAM oraz 32 
MB  ROM.  Ponad  40  MB  jest  używane 

YOPY – palmtop ogromnych możliwości

do komputera stacjonarnego. Niewygod-
na była natomiast sama praca na YOPY-
m umieszczonym w stacji – każdorazowe 
dotknięcie  rysikiem  ekranu  powodowa-
ło znaczne odchylanie się do tyłu klapki 
z wyświetlaczem. Szkoda także, że urzą-
dzenia  nie  można  było  podłączyć  do 
komputera z pominięciem stacji dokują-
cej. Niewątpliwie, radość sprawiał system 
operacyjny  Linux,  pod  kontrolą  którego 
pracował YOPY, oraz widok uruchamia-
jących się X-ów.

Ale o co chodzi?

Bezpośrednio po włączeniu, YOPY prze-
mówił  do  mnie  w  języku  angielskim. 
Szkoda, bo na rynku polskim od jakiegoś 
czasu standardem są palmtopy posiadają-
ce polską lokalizację. Intuicyjnie sięgną-
łem po instrukcję obsługi, aby sprawdzić, 
jak zmusić urządzenie do prawidłowego 
wyświetlania  polskich  znaków.  Tu  spo-
tkała mnie kolejna przykra niespodzian-

Dane palmtopa:

–  Procesor: 206 MHz Strong ARM 

32-bit RISC Procesor

–  Pamięć: RAM 128MB, ROM 32MB
–  System: ARM LinupyTM Linux 

Distribution, X Window System

–  Wyświetlacz: 3.5" 240x320 True 

Color (65K) TFT LCD

–  Wymiary:10,3 x 6,9 x 2,5 

(centymetry)

–  Waga: 200 g
–  Bateria: 2300mAh Li-ion 

Polimerowe, ładowalne

Interfejs:

–   klawiatura (qwerty), przyciski 

nawigacyjne

–   złącze RS-232C / USB
–   port IrDA (115Kbps)
–   gniazdo Compact Flash II
–   złącze Multimedia Card
–   przycisk przewijania
–   mikrofon
–   złącze słuchawkowe 

(3.5 mm, stereo)

przez  system,  natomiast  reszta  pamięci 
jest przeznaczona na dane użytkownika. 
Do komunikacji ze światem jest wykorzy-
stywany  port  podczerwieni  albo  stacja 
dokująca, podłączana do komputera sta-
cjonarnego za pomocą portu USB. YOPY 
posiada również złącze Multimedia Card 
oraz  gniazdo  Compact  Flash  II.  Wszyst-
ko to kryje się w mieszczącej się w dłoni 
obudowie ważącej około 200g.

Pierwsze wrażenie

Pierwszą  rzeczą  po  wyjęciu  YOPY-ego 
z  pudełka,  która  rzuciła  mi  się  w  oczy, 
były  jego  gabaryty.  Palmtop,  mimo  że 
mieścił  się  w  dłoni,  był  gruby  i  posia-
dał topornie otwieraną klapkę, na której 
znajdował  się  kolorowy  3,5''  dotykowy 
wyświetlacz oraz tajemnicze diody mru-
gające za każdym razem, gdy zamykałem 
urządzenie.  Zaletą  testowanego  sprzętu 
była niewielkich rozmiarów stacja dokują-
ca, umożliwiająca podłączenie palmtopa 

background image

testy

78

styczeń 2005

79

testy

yopy

www.lpmagazine.org

ego z użytkownikiem nie jest ani trochę 
intuicyjna, osoby, które po raz pierwszy 
mają  do  czynienia  z  palmtopem,  mogą 
czuć się lekko zagubione. 

Zwykła praca

YOPY posiada wszystkie programy, które 
powinny  znaleźć  się  na  każdym  przy-
zwoitym  palmtopie.  Mamy  typowe  apli-
kacje  PIM  –  kalendarz,  zadania,  listy 
dnia,  kontakty  oraz  całą  gamę  dodat-
kowych  aplikacji  multimedialnych  oraz 
biurowych.  Potęgę  urządzenia  podkre-
śla  kompilator,  znajdujący  się  na  płycie 
CD,  umożliwiający  pisanie  na  kompute-
rze  stacjonarnym  własnych  programów 
działających na YOPY-m. 

Mimo,  że  na  palmtopie  zainstalowa-

ny jest system operacyjny Linux, standar-
dowo,  urządzenie  współpracuje  jedynie 
z Windowsami. W instrukcji obsługi ani 

Główną zaletą tego przyjemnego urządze-
nia mobilnego jest jego serce, czyli system 
Linux.  Nie  ukrywam,  że  już  na  samym 
początku Yopy zrobił na mnie dobre wra-
żenie. Może dlatego, że uwielbiam Linuk-
sa, a wszystko, co z nim związane, witam 
z  otwartymi  rękami,  a  może  dlatego,  że 
Yopy  to  po  prostu  bardzo  dobry  palmtop. 
Bardzo  dobry,  ale  nie  doskonały.  Może 
najpierw  o  wadach,  ponieważ  nic  tak  nie 
motywuje  producentów  sprzętu  do  stwo-
rzenia  lepszego  produktu,  niż  wyliczenie 
wad  na  łamach  poczytnego  czasopisma. 
Yopy jest słabo wykonany. Klapka lata na 
wszystkie  strony,  jakby  zaraz  miała  odle-
cieć,  materiały  są  niskiej  jakości,  a  pod-
czas  wybierania  opcji  za  pomocą  rysika, 
cały ekran odchyla sie tak mocno do tyłu, 
jakby miał się za chwilę złamać. Do tego 
dochodzi  instrukcja  w  języku  angielskim, 
brak polskiego interfejsu, braki w obsłudze 
urządzenia  pod  Linuksem  (co  jest  istnym 
paradoksem  –  Yopiego  wyposażonego 
w  system  Linux  łatwiej  zmusić  do  pracy 
w środowisku Windows!), a jeśli już czepiać 
się wszystkiego, to brakuje również głośni-
ków  stereo.  Skoro  Yopy  posiada  obsłu-
gę plików MP3, dlaczego musimy słuchać 
mono? Dobrze. Koniec narzekań. Yopy to 
bardzo fajny palmtop. Jeśli jesteście użyt-
kownikami Linuksa, poczujecie się jak ryba 
w wodzie. Pod maską szybki (206 MHz) pro-
cesor, dużo pamięci (128 RAM/32 ROM), 
dobrej  jakości  wyświetlacz  LCD,  potrafią-
cy  cieszyć  nasze  oczy  paletą  65  tysięcy 
kolorów, bardzo dobra bateria, która potrafi 
wytrzymać do 8 godzin ciągłej pracy, oraz 
klawiatura w standardzie QWERTY. Dzięki 
goszczącej  w  środku  dystrybucji  Lupy, 
możemy  skorzystać  z  ogromnego  repo-
zytorium pakietów dla Linuksa. Na płytce 
zawarto  oprogramowanie,  dzięki  które-
mu na naszym domowym pececie skom-
pilujemy sobie program i zainstalujemy go 
w Yopim. Prawda, że miłe? Z naszym palm-
topem możemy komunikować się poprzez 
podczerwień, gniazdo MMC i USB. Reasu-
mując, polecam Yopiego wszystkim użyt-
kownikom Linuksa i tym, którzy chcą mieć 
dobrego palmtopa, z solidnym systemem, 
który na wszelkiego rodzaju wirusy reagu-
je  wyciągnięciem  ostrzegawczego  znaku 
“Stop  –  tutaj  nie  macie  czego  szukać”. 
Ładny, stabilny, o dobrym stosunku jakości 
do ceny. Warto go chociaż zobaczyć.

Ocena: 4/5

Alternatywne spojrzenie 

Piotra Truszkowskiego

ka – dostarczona instrukcja obsługi była 
napisana  również  po  angielsku.  Biorąc 
pod  uwagę  fakt,  że  współpraca  YOPY-

słowem  nie  wspomniano  o  możliwości 
podłączenia  palmtopa  do  naszego  ulu-
bionego Linuxa. W efekcie, skorzystanie 
z  rozszerzeni  znajdujących  się  na  płycie 
CD może sprawiać problemy początkują-
cym użytkownikom urządzenia.

Podsumowanie

YOPY 3700 jest niewątpliwie palmtopem 
o  ogromnych  możliwościach.  Nieste-
ty, zlekceważenie przez producenta pol-
skiego  klienta  (chociażby  brak  instruk-
cji  obsługi  w  języku  polskim),  dyskwa-
lifikuje  urządzenie  na  rodzimym  rynku. 
Zaskakuje  również  brak  wsparcia  dla 
systemu  operacyjnego  Linux.  Ostatecz-
nie,  biorąc  pod  uwagę  wysoką  cenę 
YOPY-ego (ponad 2500 zł), nie zdziwił-
bym się, gdyby konsument wybrał urzą-
dzenia firm konkurencyjnych. 

Ocena: 3/5

R

E

K

L

A

M

A

background image
background image
background image