PL Linux+ 2005 01 (osiol NET) www!OSIOLEK!com

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.
ext2, ext3, iso9660, ntfs, umsdos, reiserfs
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: i386, ARM, SPARC 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,
ps, grep, vi, kill) 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
Fear, Uncertainty, Doubt, 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-
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,
arm, sparc 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

W

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, DHCP, DNS 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

W

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.
Z 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
amd64, hppa, ppc, sparc, x86 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: chargen, chargen-
udp
, daytime, daytime-udp, echo, echo-
udp
, finger, imap, imaps, innd, ipop2,
ipop3, named, netfs, ntalk, ntpd, pop3s,
swat, talk, time, time-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 rsh, rexec,
rcp, rlogin 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 ipop3pop3s.

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 SSH, WWW, FTP, 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 CPAN: Net::RawIP, Net:
: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. DAGhttp://
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
i 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]+[N ].
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
i 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]+[C ] (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]+[C ]).
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
i 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
i 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 (CSSCascading 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
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
w 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
i 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 HTML, PHP, 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 [E ]. 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 Action) Re-
ject
(Service) http (From) komputerkole-
gi
(To) firewall. 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 (DoSDenial 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
z 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

W

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 Linuksa, Windows 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 (DoSDenial 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
w

$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ę glibc. Zawsze 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 RAID, gdyż 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
/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
i 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. Aurox, Man-
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

Wyszukiwarka

Podobne podstrony:
ebooks pl kuchnia chinska smaczna kuchnia (osiol net) www!osiolek!com MLUGDZSKZRNXOUI7HFWDTIEXZZNVC
ebooks pl protokol dyplomatyczny (osiol net) www!osiolek!com FKG5SHDMRF5677A56HIVVENTAASJF33RB6J5AJQ
ebooks PL Kuchnia Potrawy Swiatowej Slawy (osiol NET) www!OSIOLEK!com
ebooks pl minolta dimage s414 instrukcja obslugi %28osiol net%29 www%21osiolek%21com JOS4WYIPVHLIL64
ebooks pl komputer czesto zadawane pytania (osiol net) www!osiolek!com VTBCVB2K6QJVMKFZSVSCXCDOIBMU
Ebooks Pl Minolta Dimage 5,7 Instrukcja Obslugi (Osiol Net) Www!Osiolek!Com
ebooks pl kuchnia jedz wazywa i owoce 5x dziennie (osiol net) www!osiolek!com J6XTT4Q2OWJ4YMJHETOX6H
ebooks pl izrael szahak zydowskie dzieje i religia (osiol net) www!osiolek!com K4JR63CNYAHM563FCCIFW
ebooks pl kodak easyshare ls443 instrukcja obslugi (osiol net) www!osiolek!com P3J7TPN5UZ7UOUWJEDC5M
eBooks PL English Repetytorium Tematyczno Leksykalne 1 (osiol NET) www!OSIOLEK!com ZRYXXAAU6REGACX5
Ebooks Pl Olympus C 765 Ultrazoom Instrukcja Obslugi (Osiol Net) Www!Osiolek!Com
eBooks PL Kuchnia Indyjska Smaczna Kuchnia (osiol NET) www!OSIOLEK!com MZJ64Z6NNEW6KUOUJFYI2LQMSB5O
ebooks pl canon eos 300,300date instrukcja obslugi (osiol net) www!osiolek!com T6JP4LSAWPVGFTQGOGZQH
ebooks pl lampa blyskowa canon speedlite 420ex instrukcja obslugi (osiol net) www!osiolek!com 7HV5WE
ebooks pl lampa blyskowa metz mecablitz 40mz 2 instrukcja obslugi (osiol net) www!osiolek!com XZJ7YW
ebooks pl kuchnia poradnik domowy przepisy czytelnikow 3 2004 (osiol net) www!osiolek!com NC743AFFQ
eBooks PL Olympus C 700 UltraZoom Instrukcja Obslugi (osiol NET) www!OSIOLEK!com
ebooks pl auto na gaz taktyka dzialan ratowniczych (osiol net) www!osiolek!com BOELIIRP6OQYHGBVNCYN
ebooks pl canon a60 a70 instrukcja obslugi 1 (osiol net) www!osiolek!com CUTUV3WL2FPKPQB4JFU3VPY6SZX

więcej podobnych podstron