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
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
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
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
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-
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/
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-
mę Ximian, producenta oprogramowania
Open Source, a następnie SUSE, producen-
ta znanej komercyjnej dystrybucji Linuksa.
To właśnie za kadencji Stone'a Novell stał
się potentatem na rynku oprogramowania
Open Source, wykorzystując pewne nie-
zdecydowanie ze strony konkurencji, głów-
nie Sun Microsystems. Dzięki swojej platfor-
mie opartej na SUSE i Ximianie, Novell rzu-
cił rękawicę Microsoftowi na rynku korpo-
racyjnym. Nie wydaje się, aby odejście Sto-
ne'a miało wpłynąć na zmianę strategii fir-
my – Novell w każdym razie zdecydowanie
zapowiada kontynuację.
Trzecia informacja dotyczącą Novella
jest chyba najbardziej interesująca dla samej
firmy. Na drugiej dorocznej imprezie Tech
Innovators czasopismo VARBusiness przy-
znało Novellowi nagrodę "Największy in-
nowator w dziedzinie sytemu Linux w ro-
ku 2004" (2004 Top Innovator Award for Li-
nux) za jej system SUSE LINUX Enterpri-
se Server 9. Pakiet SUSE LINUX Enterprise
Server 9 znalazł się wśród 460 produktów
zgłoszonych do konkursu przez 50 dostaw-
ców produktów informatycznych dla przed-
siębiorstw.
Oby więc Novell nie zwalniał tempa
– dla dobra Linuksa...
http://www.novell.com/linux/truth/
http://7thguard.net/news.php?id=4198
Novell na swojej stronie internetowej
prostuje “fakty”
Między innymi dzięki przejęciu firmy
SUSE, Novell stał się linuksowym
potentatem
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
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
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/
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
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
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
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
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
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
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ć
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 ipop3 – pop3s.
Rysunek 3.
John the Ripper to tylko
jeden z wielu programów umożliwiających
testowanie siły haseł
Testowanie haseł
W większości nowszych dystrybucji pod-
czas wprowadzania hasła jest prze-
prowadzana jego wstępna kontrola
(np. z wykorzystaniem systemu PAM),
ale czasami system ogranicza się tylko do
sugestii, że wprowadzane hasło nie speł-
nia odpowiednich norm (np. jest za krótkie
lub zbyt oczywiste). Tak czy inaczej, jest to
tylko wstępne rozpoznanie. Aby się prze-
konać, czy na pewno w naszym systemie
hasła są trudne do złamania, musimy sko-
rzystać z innych narzędzi – łamaczy haseł.
Jednym z takich programów jest John
the Ripper. Możemy go pobrać ze strony
http://www.openwall.com/john/. Po jego
zainstalowaniu (zgodnie ze wskazówka-
mi umieszczonymi w pliku doc/INSTALL)
wykonujemy kopię pliku /etc/shadow
i umieszczamy ją w jakimś bezpiecznym
katalogu (pamiętajmy, aby przypadkiem
nie udostępnić tego pliku niepowołanym
osobom). Teraz wystarczy uruchomić pole-
cenie
john shadow
(zakładając, że kopia
pliku /etc/shadow znajduje się w bieżącym
katalogu). Jeśli programowi uda się odgad-
nąć hasło, wyświetli je na ekranie wraz z
nazwą użytkownika. Ponieważ obliczenia
mogą trwać bardzo długo, warto czasem
wcisnąć dowolny klawisz w celu sprawdze-
nia, czy program nadal działa – zostanie
wyświetlony jego status. W dowolnej chwili
możemy przerwać jego pracę kombinacją
[Ctrl]+[c], a następnie wznowić poleceniem
john -restore
.
Odgadnięte hasła, oprócz wyświe-
tlenia na ekranie, są zapisywane
w pliku john.pot, umieszczonym w kata-
logu, gdzie znajduje się program john.
Możemy je wyświetlić poleceniem
john
-show shadow
(gdzie shadow wskazuje na
naszą kopię pliku /etc/shadow).
Jeśli chcemy zwiększyć szanse na
wykrycie słabych haseł, powinniśmy
pobrać z sieci pliki ze słownikami. Przykła-
dowy plik z listą słów w różnych językach
jest do pobrania ze strony domowej John
the Ripper, a jego znacznie rozszerzoną
wersję można zamówić za odpowiednią
opłatą. Inne zestawy haseł można zna-
leźć pod adresem ftp://ftp.ox.ac.uk/pub/
wordlists/. Możemy je później wykorzystać
wydając polecenie
john -w=words.lst
shadow
, gdzie world.lst jest pobranym pli-
kiem ze słownikiem.
Warto też zapoznać się z plikiem doc/
EXAMPLES, gdzie podane są inne cieka-
we sposoby wywołania programu John
the Ripper.
zapisanym w bazie. Oczywiście, jeśli sami
dokonamy zmian w plikach (na przykład
ze względu na aktualizację oprogramowa-
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
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
31
bezpieczeństwo
bezpieczny internet
www.lpmagazine.org
gdzie dostępne są nie tylko źródła, ale
i pakiety binarne (RPM). Można też sko-
rzystać z pakietów dostępnych w róż-
nych repozytoriach (np. DAG – http://
dag.wieers.com/packages/snort/ ). Przed
uruchomieniem warto sprawdzić, czy
Snort będzie oczekiwał na połączenia
na właściwym interfejsie. Informacja ta
umieszczona jest w pliku /etc/sysconfig/
snort w linii
INTERFACE="eth0"
. Jeśli do
łączenia z siecią wykorzystujemy inny
interfejs, należy poprawić tą wartość.
Warto też sprawdzić konfigurację zawar-
tą w pliku /etc/snort/snort.conf. Później
już możemy uruchomić Snorta polece-
niem
/etc/rc.d/init.d/snortd start
.
Jeśli teraz popatrzymy do pliku /var/
log/messages, od razu zobaczymy znacz-
ny przyrost liczby komunikatów. Oprócz
tego, pojawi się katalog /var/log/snort/.
Własnoręczna analiza tylu komunika-
tów nie ma sensu – lepiej skorzystać z
gotowych narzędzi. Dostępne są one na
stronie http://www.snort.org/dl/contrib/
wraz z innymi narzędziami przydatnymi
w zarządzaniu Snortem.
Zasady korzystania
z komputera
Jeśli naprawdę zależy nam na bezpiecz-
nym korzystaniu z sieci, nie powinniśmy
ograniczać się do jednorazowego zadba-
nia o bezpieczeństwo. Każdego dnia
pojawiają się komunikaty o wykryciu
kolejnych błędów w oprogramowaniu.
Część z tych błędów może mieć mniej-
sze lub większe znaczenie dla bezpie-
czeństwa. Jeśli nie zadbamy o uaktual-
nienia oprogramowania, cała nasza praca
może pójść na marne. Czasem przez
naszą pomyłkę, zaniedbanie lub nieświa-
domość możemy otworzyć włamywa-
czowi drogę do naszego systemu. Z tego
powodu podczas codziennego korzysta-
nia z komputera powinniśmy stosować
się do szeregu zaleceń:
• Z konta superużytkownika (root)
korzystamy tylko w bardzo wyjątko-
wych okolicznościach. Nawet w przy-
padku instalacji oprogramowania ze
źródeł, uprawnienia administratora
uzyskujemy tylko na czas potrzeb-
ny do uruchomienia polecenia
make
install
.
• Regularnie uaktualniamy system, inst-
alując poprawione wersje oprogra-
mowania (w tym również jądra).
Łączy się to ze śledzeniem serwi-
sów dotyczących bezpieczeństwa,
jak również stron domowych pro-
gramów zainstalowanych na naszym
dysku. Jeśli dla naszej dystrybu-
cji dostępne są serwery z aktuali-
zacjami, to powinniśmy z nich sko-
rzystać.
• Nigdy nie instalujemy oprogramo-
wania pochodzącego z nieznane-
go źródła. Mam tu na myśli przy-
godnych znajomych spotkanych na
IRC, czy serwery z oprogramowa-
niem, o którym niewiele lub nic nie
wiemy. Nie znaczy to, że pobierając
pliki z bardzo popularnych serwisów
jesteśmy całkiem bezpieczni – zda-
rzały się już przypadki podrzucenia
na takie serwery oprogramowania z
koniami trojańskimi.
• Przy instalowaniu programów powin-
niśmy w miarę możliwości sprawdzać
podpisy PGP oraz sumy MD5 pobra-
nych plików. Pozwoli to upewnić się,
że oprogramowanie otrzymaliśmy w
takiej postaci, w jakiej zamierzyli to
autorzy.
• Zawsze stosujemy hasła trudne do
złamania. Staramy się unikać prze-
syłania haseł kanałami niekodowa-
nymi (np. w przypadku korzystania
z poczty należy używać szyfrowania
SSL). Jeśli nie mamy możliwości prze-
syłania hasła w postaci zakodowanej,
to należy zadbać, aby było ono uni-
kalne (nie powinniśmy go wykorzy-
stywać nigdzie indziej). Dzięki temu
w razie jego przechwycenia przez
włamywacza, narażona będzie tylko
jedna usługa (np. zdalna poczta), a
nie cały system.
• Regularnie przeglądamy logi systemo-
we – samodzielnie lub z pomocą ana-
lizatorów logów, wysyłających powia-
domienia pocztą elektroniczną.
• Wykonujemy kopie zapasowe istot-
nych danych. Najlepiej wykonywać
je na płytach CD, lecz w razie braku
nagrywarki powinniśmy kopie umie-
ścić na innej partycji, dysku lub kom-
puterze.
• Nie
udostępniamy
komputera
osobom, których nie znamy lub do
których nie mamy zaufania. Dotyczy
to nie tylko umożliwiania dostępu
przez SSH czy FTP, ale także dostępu
fizycznego. Nie wykonujemy też żad-
nych poleceń podanych nam przez
takie osoby, jeśli nie jesteśmy absolut-
nie pewni, co dane polecenie robi.
Zakończenie
Większość prób włamań do naszych
komputerów jest wynikiem działania tzw.
script kiddies, czyli osób – z reguły dość
młodych – używających gotowych roz-
wiązań. Korzystają oni zazwyczaj z tych
samych źródeł informacji co my, zatem
będąc na bieżąco mamy całkiem sporą
szansę, że nie uda im się spenetrować
naszego systemu. Dbajmy o nasz system,
a wówczas będziemy mogli z czystym
sumieniem wędrować po naszej global-
nej sieci.
Rysunek 6.
Snort jest wciąż rozwijany,
a na jego stronie można znaleźć obszerną
dokumentację
W Internecie:
• Afick:
http://afick.sourceforge.net/
• Firewall Builder:
http://www.fwbuilder.org/
• HPing:
http://wiki.hping.org/
• Firewall Tester:
http://ftester.sourceforge.net/
• Snort:
http://www.snort.org/
• Lista dwudziestu najpoważniejszych
zagrożeń dla bezpieczeństwa:
http://www.sans.org/top20/
• SANS:
http://www.sans.org/
• Secunia:
http://secunia.com/
• SecurityFocus:
http://www.securityfocus.com/
• CERT Coordination Center:
http://www.cert.org/
• LinuxToday:
http://linuxtoday.com/
• Artykuł o uwierzytelnianiu z wykorzy-
staniem kluczy w OpenSSH:
http://www.securityfocus.com/
infocus/1810/
• Serwis IPSec.pl:
http://ipsec.pl/
• Serwis Hacking.pl:
http://hacking.pl/
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.
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)
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
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:
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)
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
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
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
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/
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
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
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
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
linuxfresh
aktualności
oprogramowanie
46
styczeń 2005
47
www.lpmagazine.org
FRESH
News
Cssed
– edytor arkuszy stylów CSS
C
oraz więcej twórców stron WWW
wykorzystuje w swej pracy kaskado-
we arkusze stylów (CSS – Cascading Sty-
le Sheets). Jest to godne pochwały, gdyż
dzięki temu nie tylko oszczędzają sobie
mnóstwo pracy, ale równocześnie idą
z duchem czasu. A jeśli tylko wykażą
trochę wysiłku, to mogą stworzyć stro-
nę, którą nie tylko da się wygodnie oglą-
dać w dowolnej przeglądarce, ale również
będzie dostępna dla niepełnosprawnych
(czy to korzystających z linijek brajlow-
skich czy z syntezatorów mowy).
Cssed to program ułatwiający tworze-
nie arkuszy stylów. Co prawda, obecnie
potrafi podświetlać również składnie in-
nych plików, ale nadal pozostaje edyto-
rem plików CSS. Wśród jego zalet war-
to wymienić podświetlanie i autouzupeł-
nianie. Program wyposażony jest również
w wiele kreatorów pomagających przy
tworzeniu najczęściej wykorzystywanych
stylów (np. układu marginesów czy ro-
dzaju fontów). Oczywiście, Cssed jest
w stanie sprawdzić poprawność wpisane-
go kodu. Nie można mu również odmó-
wić wygody użytkowania – interfejs jest
przejrzysty i łatwy w obsłudze.
Program możemy zainstalować za-
równo z pakietów (dostępne są pakiety
RPM i DEB), jak również ze źródeł. Naj-
wygodniejsza oczywiście jest ta pierwsza
możliwość. Po zainstalowaniu możemy
uruchomić program poleceniem
cssed
.
Po uruchomieniu, gdy zaczyna-
my pracę z nowym dokumentem, war-
to od razu ustawić odpowiednią czcion-
kę. Dokonujemy tego wybierając z me-
nu Document pozycję Change font. War-
to też wybrać typ pliku, z jakim będzie-
my pracować. W tym celu wskazujemy
Document–>Highlighting–>CSS. Oczy-
wiście, jeśli mamy zamiar tworzyć in-
ny dokument (np. stronę WWW ), to za-
miast CSS wybieramy HTML/PHP lub
inną odpowiednią wartość. Jeśli chce-
Piotr Machej
my korzystać z autouzupełniania, mu-
simy zaznaczyć opcję Document–>Ena-
ble autocompletion (ma to tylko sens
w przypadku CSS). Przydatna może
się też okazać opcja Document–>Ena-
ble folding – szczególnie, gdy pracuje-
my z dłuższym plikiem. Pozwala ona
bowiem zwijać zawartość poszczegól-
nych klas tak, że widoczny jest tylko na-
główek. Warto przy tym zauważyć, że
opcje ustawiane w menu Document są
charakterystyczne dla każdego doku-
mentu z osobna – możemy w każdym
z nich korzystać z innej czcionki i edyto-
wać inny typ pliku.
Wartości do naszego pliku stylów mo-
żemy wprowadzać na kilka sposobów.
Najbardziej podstawowy to wpisywa-
nie wszystkich wartości ręcznie. Do te-
go jednak nie potrzebowalibyśmy Cssed.
Jak już wiemy, możemy sobie pomóc au-
touzupełnianiem. Co ważne, pomaga ono
nie tylko we wprowadzaniu nazw atrybu-
tów, ale również ich wartości. Sugeruje
bowiem zarówno możliwe wartości, jak
i pozwala skorzystać z kreatora (np. z pa-
lety barw w przypadku kolorów czcionek
lub obramowań). Kreator możemy rów-
nież uruchomić ręcznie, wybierając od-
powiednią ikonę z paska znajdującego
się tuż nad dokumentem lub z menu CSS.
Ostatnia możliwość wstawienia do doku-
mentu atrybutu wraz z wartością to sko-
rzystanie z drzewka atrybutów znajdują-
cego się po prawej stronie dokumentu,
w zakładce CSS.
Podczas edycji może przydać się nam
pewna wygodna funkcja. Wystarczy za-
znaczyć grupę atrybutów, które chcemy
modyfikować, a następnie wybrać opcję
Tools–>Scan selector. Wybrane atrybu-
ty znajdą się w prawym górnym oknie,
gdzie w wygodny sposób będziemy mo-
gli zmodyfikować ich wartości.
Rysunek 1.
Nic dziwnego, że arkusz stylów użyty na stronie domowej Cssed nie zawiera
błędów
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
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
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 (DoS – Denial of Service).
http://freshmeat.net/projects/vuurmuur/
Rysunek 2.
Na domowej stronie projektu można przeczytać dokładny opis systemu stref,
sieci, grup i usług
FreeRails 0.2.5
Miłośnicy klasycznej już gry Railroad
Tycoon z pewnością ucieszą się,
że pojawiła się kolejna wersja gry
FreeRails. Ta darmowa gra została
zainspirowana dziełem niezrównanego
Sida Meiera. Chociaż gra jest w fazie
Alpha, z każdą wersją pojawia się
w niej więcej funkcji. Tym razem
m.in. dodano opcję automatycznego
rozkładu jazdy, który może wybrać
odpowiednie wagony zależnie od
rodzaju ładunku oczekującego na stacji
początkowej i zapotrzebowania na
stacji docelowej.
http://freshmeat.net/projects/freerails/
GTorrentViewer 0.2a
Ten program pozwala na sprawdzenie
i zmodyfikowanie plików .torrent
bez konieczności rozpoczynania
pobierania. Możliwe jest sprawdzenie
plików (ile zostało do pobrania,
na ile części są podzielone), jak
również pobranie informacji
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/
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
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].
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
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
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.
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
56
dla początkujących
styczeń 2005
dowolnie zmieniać, dzięki czemu znaj-
dywać luki w inny sposób. Przykłado-
wo, warto zamienić miejscami pola Port
i Severity, ale również inne kombina-
cje mogą dać ciekawe efekty – wszystko
zależy od tego, jakie informacje bardziej
nas interesują.
Istotne jest, abyśmy zapoznali się
ze wszystkimi informacjami zawartymi
w głównym oknie. W przypadku ostrzeżeń
i powiadomień o lukach w bezpieczeń-
stwie otrzymujemy opis zagrożenia. Przy-
kładowo, w sytuacji wykrycia przez Nes-
susa serwera WWW Apache w wersji star-
szej niż 2.0.51, jesteśmy powiadamiani o
jego wrażliwości na zdalny atak odmowy
usługi (DoS – Denial of Service). Wersje
te są również podatne na atak z wyko-
rzystaniem przepełnienia bufora. Oprócz
takiego opisu, możemy też zobaczyć
kilka dodatkowych rubryk. Adres podany
w See also pozwala nam zapoznać się
z szerszym opisem błędu. Najważniej-
sza dla nas jest zawartość rubryki Solu-
tion, gdyż opisuje ona możliwe rozwiąza-
nie problemu. W przypadku wspomnia-
nego błędu rozwiązaniem jest uaktualnie-
nie serwera Apache do wersji 2.0.51 lub
nowszej. Dalej możemy dowiedzieć się,
jak duże ryzyko (Risk factor) jest związane
z danym błędem. W tym przypadku
ryzyko jest wysokie (High). Najlepiej jak
najszybciej uaktualnić oprogramowanie.
W przypadku innych ostrzeżeń, ryzyko
może być średnie (Medium) lub niskie
(Low), a w przypadku informacji o bez-
pieczeństwie – nawet zerowe (None). Nie-
mniej, powinniśmy zapoznać się ze wszy-
stkimi informacjami, gdyż każda z nich
może być istotna. Przykładowo, może
okazać się, że jedna z usług, pomimo
naszych starań, nadal jest dostępna z Inter-
netu, a nie tylko z sieci lokalnej. Nie należy
od razu podejmować czynności opisanych
w Solution bez zapoznania się z całym
opisem problemu. Może bowiem okazać
się, że w ten sposób zablokujemy sobie
usługę, na której nam zależało, a co do
której tylko dostaliśmy pewne pouczenie
(jak ma to miejsce w przypadku zainstalo-
wanego oidentd, potrzebnego do łączenia
z niektórymi serwerami IRC).
Jeśli chcemy uzyskać jeszcze więcej
informacji na temat błędu, możemy sko-
rzystać z wartości podanych w rubrykach
CVE i BID. Pierwsza z nich podaje sym-
bole, według których możemy wyszuki-
wać informacje na stronie Common Vul-
nerabilities and Exposures (pod adre-
sem
http://www.cve.mitre.org/cve/index
.html wpisujemy symbol w polu CVE
Name). Druga podaje identyfikator błędu
na liście BugTraq (możemy go wpisać
w polu Bugtraq ID na stronie http://
www.securityfocus.com/bid/bugtraqid/ ).
Raport ze skanu możemy zapisać na
dysku korzystając z przycisku Save report.
Do wyboru mamy kilka różnych forma-
tów zapisu danych. Jeśli zdecydujemy się
zapisać raport w formacie NBE, to później
będziemy mogli go ponownie otworzyć
w kliencie Nessusa. Jeśli natomiast chcemy
później obejrzeć raport wraz z różnymi
wykresami i zestawieniami w przeglądar-
ce internetowej, to powinniśmy wybrać
format HTML with Pies and Graphs.
Wyniki skanowania zależą od tego,
jakie opcje dobierzemy. Warto zapoznać
się z obszerną dokumentacją dostępną
na stronie domowej Nessusa, aby lepiej
poznać jego możliwości i zastosowa-
nie poszczególnych opcji konfiguracyj-
nych. Z pewnością sprawi to, że będzie-
my mogli lepiej dobierać ustawienia do
naszych potrzeb, co w rezultacie pozwo-
li skuteczniej zwiększyć bezpieczeństwo
systemu i sieci.
Dodatkowe
oprogramowanie
Nessus, oprócz własnych wewnętrz-
nych testów, może wykorzystywać kilka
innych programów. Przykładowo, pro-
gram Nmap może być użyty do skano-
wania portów i wielu bardziej zaawan-
sowanych operacji, takich jak rozpozna-
wanie systemu operacyjnego. Jeśli zależy
nam na przeprowadzeniu testów odpor-
ności haseł na złamanie, możemy zain-
stalować program Hydra. Pozwoli on na
wykonanie prób brutalnego złamania
haseł (bruteforce attack) w takich usłu-
gach, jak Telnet, WWW, POP3, IMAP
i inne. Oprócz tego, można wykorzy-
stać program Nikto – zapewnia on obsłu-
gę specyficznych ataków i testów doty-
czących serwerów WWW i usług skryp-
tów CGI.
O ile program Nmap możemy zna-
leźć w większości dystrybucji Linuksa,
o tyle pozostałe programy raczej
musimy zainstalować osobno. Nie są
one niezbędne do działania Nessusa,
ale zwiększają jego funkcjonalność.
Adresy ich stron domowych znajdują się
w ramce W Internecie.
Przykładowe testy
W rozdziale Analiza wyników mogliśmy
zapoznać się ze sposobem odczytywania
wyników testów. Spróbujmy teraz zoba-
czyć kilka wyników z prawdziwego ska-
nowania i zastanowić się, jak je trakto-
wać. Analizie został poddany kompu-
ter z dosyć dawno instalowanym sys-
temem, tylko w razie potrzeby uzupeł-
nianym nowymi pakietami, więc zgło-
szeń błędów było dosyć dużo (7 luk, 18
ostrzeżeń i 39 informacji). Raport został
zapisany w formacie HTML with Pies and
Graphs.
Na pierwszej stronie raportu został
przedstawiony w formie graficznej pro-
Fałszywe alarmy
Należy pamiętać, że Nessus przepro-
wadza analizę na podstawie dostępnych
informacji. Może się okazać, że będą
one niewystarczające lub doprowadzą do
błędnych wniosków. Z tego powodu część
ostrzeżeń, a nawet powiadomień o lukach
w zabezpieczeniach, może okazać się fał-
szywa.
Może się tak przykładowo zdarzyć
w sytuacji, gdy Nessus jest w stanie roz-
poznać oprogramowanie nasłuchujące
na określonym porcie, ale nie umie usta-
lić jego wersji. W tym przypadku może
ostrzec o błędach, które dotyczą wcze-
śniejszych wersji tego programu niż zain-
stalowana w naszym systemie.
Inna sytuacja, gdy ostrzeżenie może
być fałszywe, to przypadek, gdy błąd
sam w sobie jest groźny, ale ze wzglę-
du na podjęte przez nas inne czynności
(np. odpowiedni podział dysku na party-
cje), w naszym systemie okazuje się być
nieszkodliwy.
Nie da się wyliczyć wszystkich sytu-
acji, gdy Nessus może zwrócić fałszy-
we alarmy. Dobrze jest uważnie czytać
opisy zgłoszeń i starannie je analizować.
Nessus zwraca stosunkowo mało fałszy-
wych alarmów, ale nie należy mu ufać
bezgranicznie.
Rysunek 5.
W serwisie SecurityFocus
możemy wyszukiwać informacje o lukach
na podstawie różnych kryteriów
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.
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
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
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
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
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
63
sprzęt
www.lpmagazine.org
software raid oraz logical volume manager
Plik konfiguracyjny /etc/raidtab dla
RAID-1 jest prawie identyczny, jak dla
RAID-0:
raiddev /dev/md0
raid-level 1
nr-raid-disks 2
persistent-superblock 1
chunk-size 4
device /dev/hda2
raid-disk 0
device /dev/hdd2
raid-disk 1
Następnie wydajemy polecenie
mkraid
/dev/md0
i dostajemy w efekcie komu-
nikat:
handling MD device /dev/md0
analyzing super-block
disk 0: /dev/hda2, 14659312kB,
raid superblock at 14659200kB
/dev/hda2 appears to be already
part of a raid array -- use -f to
force the destruction of the
old superblock
mkraid: aborted.
Jak widać, system odmówił stworzenia
nowej macierzy na urządzeniach, na któ-
rych poprzednio utworzyliśmy RAID-0.
Jesteśmy jednak pewni, że chcemy całko-
wicie zniszczyć poprzednią macierz, więc
wydajemy polecenie:
mkraid -R /dev/md0
i otrzymujemy np.:
DESTROYING the contents of /dev/md0
in 5 seconds, Ctrl-C if unsure!
handling MD device /dev/md0
analyzing super-block
disk 0: /dev/hda2, 14659312kB,
raid superblock at 14659200kB
disk 1: /dev/hdd2, 18922680kB,
raid superblock at 18922560kB
Od teraz urządzenie /dev/md0 jest
gotowe do użycia. Ma ono pojemność 14
GB, czyli tyle samo, ile mniejsza z uży-
tych partycji. Tworzymy na nim system
plików i sprawdzamy, jak działa. Komen-
da
dd
, użyta identycznie jak w poprzed-
nich przykładach, tym razem potrzebo-
wała aż ponad 35 sekund na wykonanie
swojego zadania. Widzimy, że RAID-1
przy operacji zapisu działa nieznacznie
wolniej niż pojedynczy dysk twardy.
Kosztem zmniejszenia wydajności
otrzymujemy większe bezpieczeństwo
danych. Gdy jeden z dysków ulegnie
awarii, macierz będzie pracowała dalej,
a w logach systemowych pojawi się infor-
macja o konieczności jego wymiany.
RAID-5
Stworzenie RAID-5 nie jest wcale trud-
niejsze niż RAID-0 i RAID-1. Przykła-
dowy /etc/raidtab, który stworzyłem na
swoim komputerze, może wyglądać tak:
raiddev /dev/md0
raid-level 5
nr-raid-disks 4
persistent-superblock 1
chunk-size 4
device /dev/hda2
raid-disk 0
device /dev/hdd2
raid-disk 1
device /dev/sda3
raid-disk 2
device /dev/sdb9
raid-disk 3
Wydane polecenie
mkraid -R /dev/md0
pokazało:
DESTROYING the contents of /dev/md0
in 5 seconds, Ctrl-C if unsure!
handling MD device /dev/md0
analyzing super-block
disk 0: /dev/hda2, 14659312kB,
raid superblock at 14659200kB
disk 1: /dev/hdd2, 18922680kB,
raid superblock at 18922560kB
disk 2: /dev/sda3, 39070080kB,
raid superblock at 39070016kB
Integracja RAID/LVM
w systemie
To, gdzie zamontujemy nowo powsta-
łe urządzenia, zależy od celu, jaki przy-
świecał nam przy konfiguracji LVM-a czy
RAID-a, jak również od specyfiki nasze-
go systemu. Mogą one zarówno przyspie-
szyć dostęp do danych (jeśli korzystamy z
rozdzielania dostępu na wiele fizycznych
urządzeń), jak i usprawnić administrowa-
nie miejscem na dysku i zwiększyć bez-
pieczeństwo danych. Stosujmy więc go
w tych miejscach, gdzie wymagana jest
któraś z tych właściwości. Pierwszymi
lokalizacjami, które przychodzą na myśl
są /home oraz /var – z reguły tam naj-
częściej przewidzieliśmy za dużo lub za
mało miejsca na dysku, a także tam na
ogół mamy najważniejsze dane. W przy-
padku, gdy nasze nowe urządzenie działa
szybciej niż zwykłe dyski (dzięki wykorzy-
staniu strip), możemy zdecydować się na
przeniesienie na niego katalogu /tmp – ist-
nieją aplikacje, które intensywnie go wyko-
rzystują, czy nawet /usr, co może minimal-
nie przyśpieszyć uruchamianie się progra-
mów na komputerze biurkowym.
Aby przenieść dane z podstawowego
urządzenia na nowe, możemy najprościej
zamontować go w tymczasowej lokali-
zacji (np. /mnt/tmp) i użyć komendy, np.
cp -ax /var/* /mnt/tmp/
, następnie
opróżnić przykładowy katalog /var i uak-
tualnić /etc/fstab, aby właściwe urządze-
nie było montowane w tym miejscu.
Rysunek 4.
Przykładowa konstrukcja LVM
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
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ą
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.
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
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/
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.
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ć.
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
)
"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"
)
"Server is ready. Let's go!!!"
daemon
.
requestLoop
()
Listing 1.
Postać klasy test_obj
class
test_obj
:
def
m1
(
s
,
string
):
"Metoda m1 parametr:"
,
string
return
"Długość ciągu znaków: "
+
str
(
len
(
string
))
def
m2
(
s
,
number
):
"Metoda m2 parametr:"
,
number
return
"Kwadrat liczby:"
+str(
number
*
number
)
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
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"
)
"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)
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
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
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)
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
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