86

Linux+_01_2005

Embed Size (px)

Citation preview

Page 1: Linux+_01_2005
Page 2: Linux+_01_2005
Page 3: Linux+_01_2005
Page 4: Linux+_01_2005
Page 5: Linux+_01_2005
Page 6: Linux+_01_2005
Page 7: Linux+_01_2005
Page 8: Linux+_01_2005

4 styczeń 2005

Spis treści

5www.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, [email protected]: Piotr Truszkowski, Marek Bettman, Michał NiwickiKierownik produkcji: Marta Kurpiewska, [email protected] CD/DVD: Krzysztof Krawczyk, Piotr TruszkowskiDział reklamy: Łukasz Łukaszewicz, [email protected], tel.: (22) 860 18 18 Prenumerata: Marzena Dmowska, [email protected], tel.: (22) 860 17 67Projekt graficzny okładki: Agnieszka Marchocka Projekt graficzny pisma: Marcin Ziółkowski, [email protected]ład: Marcin Ziółkowski, [email protected]

Adres korespondencyjny: Software-Wydawnictwo Sp. z o. o., 00-190 Warszawa, ul. Lewartowskiego 6e-mail: [email protected], 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łyuż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 KrawczykRedaktor Naczelny Linux+

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

wy internauta, gdy-bym zapytał go, czy boi się włamania do swojego komputera. Zbyt pewny siebie? Zdecydowanie. Bardzoprosto 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/DVDPiotr Truszkowski, Michał Niwicki

Jądro LinuxTomasz Torcz

DebianBartosz Feński, Tomasz Napierała

MandrakelinuxDaniel Koć

AuroxKarol 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 [email protected].

Zachęcam do lektury tego numeru.

Aktualności:

W bieżącym numerze :

man

drak

elin

uxne

wsy

16 NewsyWitold Kieraś

24 GentooWitold Kieraś

debi

an

Page 9: Linux+_01_2005

4 styczeń 2005

Spis treści

5www.lpmagazine.org

Spis treści

Oprogramowanie

Dvd::rip – ripper płyt DVDWitold 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ącychWitold 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 PHPPiotr 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 CSSPiotr 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 sieciowychPiotr 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 ekonomicznaMarek 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ństwaPiotr Machej

Podłączając nasz komputer do Internetulub 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 kruczkiGrzegorz 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 LVMPiotr Wolny

Linux wspiera dwa zaawansowane mecha-nizmy gromadzenia danych: Software RAIDoraz 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 internetowyMarek Sawerwain

Gdy planujemy przesyłać istotne informacjeprzez 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 YP3700Michał Niwicki

Temat miesiąca: Bezpieczeństwo

Bezpieczeństwo

Bezpieczne łączenie się z InternetemPiotr 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ędziMichał 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, unrmoraz gpart.

Wywiad

Wywiad z Przemysławem Tołpą,Sales Managerem w firmie AdaptecKrzysztof Krawczyk

Tym razem postanowiliśmy porozmawiać z przedstawicielem firmy Adaptec, dobrzeznanej z produkcji kontrolerów pamięcimasowych (SCSI, SATA, RAID) oraz kartsieciowych (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

Page 10: Linux+_01_2005
Page 11: Linux+_01_2005
Page 12: Linux+_01_2005

CD A / DVD B aktualnościopis CD/DVD

8 styczeń 2005

Mozilla Firefox 1.0Najnowsza 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/

SimutransGra 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.0Program 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.75Profesjonalny 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.9Darmowy 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.6Narzę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.0Jest 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.0Atrakcyjny wygaszacz ekranu 3D. Przedstawia sceny z życia pingwina na bezludnej wyspie. Umożliwia również tworzenie własnych scenariuszy.

Recovery Is Possible (RIP)

Tradycyjne 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

QEMU 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

Page 13: Linux+_01_2005
Page 14: Linux+_01_2005

CD B / DVD Baktualnościopis CD/DVD

10 styczeń 2005

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

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

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

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

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

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

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

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

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

Snort 2.2.0 i 2.3.0RC1Popularny 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-6629Sterowniki do popularnych kart graficznych.http://www.ati.comhttp://www.nvidia.com

Trustix Secure Linux 2.2

Trustix 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

Page 15: Linux+_01_2005
Page 16: Linux+_01_2005

opis DVD

12

DVD A

styczeń 2005

Aurox 10.1 Quicksilver – europejska dystrybucja Linuksa

Na 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.

PodsumowanieJak 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 MHPentium 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 pracyAurox do nauki Aurox do zabawy

Pierwsze wrażenieNieczę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ówTwó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-

Page 17: Linux+_01_2005
Page 18: Linux+_01_2005

DVD Baktualności

14 styczeń 2005

opis DVD

Mandrakelinux 10.1 OfficialNajpopularniejsza 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.10Program służący do odzyskiwania danych.http://www.garloff.de/kurt/linux/ddrescue/

G4L 0.14Ghost 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 20041011Klon kultowej gry Railroad. Budujemy własną kolej.http://freerails.sourceforge.net/

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

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

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

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

Q DVD-Author 0.0.8Zamierzasz 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-pre2Najnowsza 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.3Bootowalna 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/

Page 19: Linux+_01_2005
Page 20: Linux+_01_2005

newsaktualnościaktualności

News

16 styczeń 2005

[email protected]

17

dział prowadzi: Witold Kieraś

www.lpmagazine.org

NewsOpenBSD 3.6Oczekiwana 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&liChannelID=1&liFlavourID=1&sSearch=&nPage=1

Koders.comPod 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 DesktopNovell 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

Ostatnio 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

Page 21: Linux+_01_2005

newsaktualnościaktualności

News

16 styczeń 2005

[email protected]

17

dział prowadzi: Witold Kieraś

www.lpmagazine.org

NewsNawigacja GPS na LinuksieTomTom 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 UniiGeorg 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.htmlhttp://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

Page 22: Linux+_01_2005

jądro linuxaktualnościaktualności

News

18 styczeń 2005

Emulacja PS/2 dla myszy USB problematycznaNa 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 sysfsInną 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

Podsystem 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

Page 23: Linux+_01_2005

[email protected] dział prowadzi: Tomasz Torcz

19www.lpmagazine.org

NewsPakietowe nagrywanie płytPo 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 /devPliki 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)

Mechanizm 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/

Page 24: Linux+_01_2005

debianaktualnościaktualności

News

20 styczeń 2005

[email protected]

21www.lpmagazine.org

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

NewsDebian Stable zaktualizowanyJoey 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.htmlhttp://www.debian.org/News/2004/20041026

Problematyczna wersja shareware XChatGiacomo 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.htmlhttp://lists.debian.org/debian-legal/2004/10/msg00373.html

Spowolnienie list dyskusyjnych DebianaPascal 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.storyhttp://lists.debian.org/debian-announce/debian-announce-2004/msg00000.html

Aktualizacja SargeFrank 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

Page 25: Linux+_01_2005

debianaktualnościaktualności

News

20 styczeń 2005

[email protected]

21www.lpmagazine.org

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

NewsAktualizacje Debiana przez BitTorrentArnaud 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 SkolelinuxPetter 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 DebianieThomas 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...

Zeszł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

Page 26: Linux+_01_2005

mandrakelinuxaktualnościaktualności

News

22

[email protected] dział prowadzi: Daniel Koć

styczeń 2005

Mandrakelinux 10.1 Official27 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 GNOMEWielu 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 ZooNajlepszym 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

Page 27: Linux+_01_2005

auroxaktualnościaktualności [email protected]

23www.lpmagazine.org

dział prowadzi: Karol Kozimor

NewsNowości w AuroksieW 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łkuNiedł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 TeamZapoczą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 AuroksemNakł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

Jednym 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 [email protected].

AmaroK w Auroksie

Zgodnie 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

Page 28: Linux+_01_2005

gentooaktualnościaktualności

News

24

[email protected] 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łkuGdy 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.3Zgodnie 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

Nowa 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

Konferencja 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

Page 29: Linux+_01_2005
Page 30: Linux+_01_2005

bezpieczeństwo

26 styczeń 2005

Bezpieczne łączenie się z InternetemPiotr Machej

Jeś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ługiGeneralna 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/DVDNa 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

Page 31: Linux+_01_2005

27

bezpieczeństwobezpieczny 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ługJak 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ówOglą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 SSHJeś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ć

Page 32: Linux+_01_2005

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 systemuPomimo 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ługiJeś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-

Page 33: Linux+_01_2005

29

bezpieczeństwobezpieczny 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 AfickaGłó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 plikachW 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ć zmianyw 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ć, jakiezmiany zaszły podczas instalacji oprogramo-wania, to należy uruchomić polecenieupdate zarówno przed, jak i po instalacji.

Kilka uwagSprawdzanie 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 sieciowaJednym 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

Page 34: Linux+_01_2005

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 zaporyPo 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 SnortaProgram Snort możemy pobrać ze strony domowej projektu (http://www.snort.org/ ),

Rysunek 5. Afick wydaje się być godnym następcą sławnego Tripwire

Page 35: Linux+_01_2005

31

bezpieczeństwobezpieczny 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 komputeraJeś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ńczenieWię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/

Page 36: Linux+_01_2005

bezpieczeństwo

32 styczeń 2005

Odzyskiwanie danych – sposoby i przegląd narzędziMichał Niwicki

Na 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śnikaZanim 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_rescueGdy 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/DVDNa płycie CD/DVD znajduje się

oprogramowanie omawiane w artykule.

Page 37: Linux+_01_2005

33

bezpieczeństwonarzę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_rescueKopiowanie 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 GpartJeś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 GpartPonieważ 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)

Page 38: Linux+_01_2005

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 GpartJak 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 unrmRadziliś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.

ProfilaktykaWię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.

PodsumowanieUtrata 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

Page 39: Linux+_01_2005
Page 40: Linux+_01_2005

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: [email protected] 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:

Page 41: Linux+_01_2005

1 2 3 4 5 6 7 8 9 10 11 122000

2001

2002

2003

2004

2004

2004

Numery archiwalneProsimy 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

/200

5

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)

Page 42: Linux+_01_2005

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 linuksowychma zdecydowanie duży potencjał. Nawetobecnie klastry linuksowe konkurująz superkomputerami – więcej na ten

Przemysław Tołpa

Page 43: Linux+_01_2005

39

wywiadwywiad z Przemysławem Tołpą

www.lpmagazine.org

temat można znaleźć na stronach CERNpod 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

Page 44: Linux+_01_2005

gnomeaktualnościoprogramowanie

40 grudzień 2004 41www.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 konfiguracjaNa 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

Page 45: Linux+_01_2005

gnomeaktualnościoprogramowanie

40 grudzień 2004 41www.lpmagazine.org

GNOME News

GIMP 2.2 coraz bliżejTwó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/2051http://www.gimp.org/

GNOME-owy FirefoxNa 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.1Od 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 PublishingPowstał 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.2Grisbi 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.

RippowaniePo 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.

PodsumowanieTo 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/

Page 46: Linux+_01_2005

kdeaktualnościoprogramowanie

42 styczeń 2005 43www.lpmagazine.org

KDE News

KGpg – menedżer kluczy szyfrujących

Tym, 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 kluczeJeś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

Page 47: Linux+_01_2005

kdeaktualnościoprogramowanie

42 styczeń 2005 43www.lpmagazine.org

KDE News

Książka dostępna w sieciKsiąż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.4Wydano 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 HydrogenLinux 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=7846http://hydrogen.sourceforge.net/

Nuvola 1.0Znany 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.2Powstał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.0Jesteś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.

PodsumowanieKGpg 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

Page 48: Linux+_01_2005

linuxfreshaktualnościoprogramowanie

44 styczeń 2005 45www.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 jegopomocą 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

Page 49: Linux+_01_2005

linuxfreshaktualnościoprogramowanie

44 styczeń 2005 45www.lpmagazine.org

FRESH News

PostgreSQL AutoDoc 1.24Program 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.3MPFC 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.3Grają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 041013Thunder&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 grupytestów. O każdym z nich możemynajpierw poczytać. Drugi odnośnikpozwala 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

Page 50: Linux+_01_2005

linuxfreshaktualnościoprogramowanie

46 styczeń 2005 47www.lpmagazine.org

FRESH News

Cssed – edytor arkuszy stylów CSS

Coraz 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

Page 51: Linux+_01_2005

linuxfreshaktualnościoprogramowanie

46 styczeń 2005 47www.lpmagazine.org

FRESH News

CbrPager 0.9.4CbrPager 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.6PvPGN 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.13Twó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/htmlformsgenerationandvalidation/

Getmail 4.2.2Pojawił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

Page 52: Linux+_01_2005

linuxfreshaktualnościoprogramowanie

48 styczeń 2005 49www.lpmagazine.org

FRESH News

Vuurmuur – konfigurator zapór sieciowych

Każ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 stronydomowej 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 konfiguracjinależ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 maprzypisanego interfejsu. Jeśli dodaliśmyjuż 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

Page 53: Linux+_01_2005

linuxfreshaktualnościoprogramowanie

48 styczeń 2005 49www.lpmagazine.org

FRESH News

tu przypisać. W tym celu wciskamyklawisz [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.5Mił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.2aTen 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.72Childsplay 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 2Czy 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/

Page 54: Linux+_01_2005

gryaktualnościoprogramowanie

50 styczeń 2005 51www.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 uruchamianieAby 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ą.

InterfejsPo 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

Page 55: Linux+_01_2005

gryaktualnościoprogramowanie

50 styczeń 2005 51www.lpmagazine.org

GAMES News

Freeciv 2.0.0 beta 4Freeciv 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.2Wystartował 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.4The 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 3339Firma 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

GraNaszym 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.

PodsumowanieSimutrans 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].

Page 56: Linux+_01_2005

dla początkujących

52 styczeń 2005

Nessus – skaner bezpieczeństwaPiotr Machej

Gdy 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życiaOkoł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/DVDNa płycie CD/DVD zamieścili-

śmy oprogramowanie omawiane w artykule.

Rysunek 1. Nowe wersje Nessusa pozwalają przeprowadzać również testy lokalne i przyrostowe

Page 57: Linux+_01_2005

53

dla początkującychnessus

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 NessusaPrzed 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://f tp.gwdg.de/pub/linux/misc/nessus/nessus-2.2.0/nessus-installer/ ) i pobieramyz niego plik nessus-installer.sh. Terazjuż 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

Page 58: Linux+_01_2005

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 odrazu 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 NessusaPo 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żenieSkaner 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.

Page 59: Linux+_01_2005

55

dla początkującychnessus

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ówPora 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

Page 60: Linux+_01_2005

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 nichmoże być istotna. Przykładowo, może okazać się, że jedna z usług, pomimonaszych 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 oprogramowanieNessus, 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 testyW 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 alarmyNależ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

Page 61: Linux+_01_2005

57

dla początkującychnessus

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 wykrytaprzez wtyczkę opisaną na stroniehttp://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) dotyczybłę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ńczenieZabezpieczanie 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.

Page 62: Linux+_01_2005

58

dla początkujących

styczeń 2005 59www.lpmagazine.org

dla początkującychsztuczki i kruczki

Sztuczki i kruczkiGrzegorz Niewęgłowski

Synchronizowanie czasu i daty z serwerami w InternecieWygodnym 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ówWiele 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 tymTrueType). 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 dosekcji 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

Page 63: Linux+_01_2005

58

dla początkujących

styczeń 2005 59www.lpmagazine.org

dla początkującychsztuczki 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 PowerS

Management BIOS

135 = /dev/rtc Real Time Clock

139 = /dev/openprom SPARC OpenBootS

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 ~/ChoicesNietypowe 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ądraUmieszczasz 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

Page 64: Linux+_01_2005

sprzęt

60 styczeń 2005

ProgramowyRAID oraz LVMPiotr Wolny

Coraz 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 LVMHistorycznie, 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 autorzeAutor 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:

[email protected]

DVDPo uruchomieniu Linux+ Live

DVD można przetestować oma-wiane zagadnienia.

Na płycie CD/DVDNa 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

Page 65: Linux+_01_2005

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 czypartycji jako urządzeń blokowych w sys-temie (np. urządzenie zamontowanejako /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 RAIDProgramowy 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 standardowo 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 dystrybucjiInstalatory 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

Page 66: Linux+_01_2005

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-0Najpierw 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-1Załóżmy, że postanowiliśmy zmienić swojąkonfigurację, tworząc RAID-1 w miejsceRAID-0 – tak naprawdę dopiero RAID-1jest 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ówzamontowanego na macierzy (np. umount/var/www). Następnie wykonujemy ko-mendę raidstop /dev/md0. Dopierowtedy możemy zmieniać układ partycjina 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

Page 67: Linux+_01_2005

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-5Stworzenie 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 systemieTo, 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

Page 68: Linux+_01_2005

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 dyskiDla 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-aLogical 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

Page 69: Linux+_01_2005

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 krokiPierwszą 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 lubwię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żdymz nich nagrane zostanie tylko 16 kB. Jak łatwo się domyśleć, taka konfiguracjazwiększa nawet wielokrotnie prędkośćtransferu danych. Suma pojemnościdysków jest dodawana, ale powinny onebyć 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ą

Page 70: Linux+_01_2005

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óryda 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.

Page 71: Linux+_01_2005

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 akcjiW 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 dyskZałóż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 świeciepowinniśmy dodać przynajmniej dwiepartycje na różnych urządzeniach, two-rząc na nich najpierw RAID-1. Na po-trzeby demonstracji w tym artykuleposłużymy się jednak prostym przy-kładem z jedną partycją.

Zaczynamy do zainicjowania partycji:

# pvcreate /dev/sda3

Physical volume "/dev/sda3" successfullyS

created

Następnie rozszerzamy grupę wolumi-nów o nowe urządzenie:

# vgextend dyski_IDE /dev/sda3

Volume group "dyski_IDE" successfullyS

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

Page 72: Linux+_01_2005

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 jakoparametr tego programu podać punkt zamontowania (np. xfs_growfs /bazy).

Inne manipulacje dyskamiW 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.

SnapshotWykonywanie 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ństwazajmie 10 minut. Zakładamy, że w ciągu tych 10 minut na partycji z /homeuż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_backupS

/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 -L200MS

-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_backupS

/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ńczenieStosowanie RAID-a i LVM-a może bardzouł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/

Page 73: Linux+_01_2005
Page 74: Linux+_01_2005

dla programistów

70 styczeń 2005

Pyro i OpenSSL – bezpiecznykomunikator internetowyMarek Sawerwain

Gdy 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ątekNajważ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 PyroProgram 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 nazwietest_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 autorzeAutor zajmuje się tworzeniem

oprogramowania dla WIN32 i Linuksa. Zainteresowania:

teoria języków programowania oraz dobra literatura.

Kontakt z autorem: [email protected]

Na płycie CD/DVDNa płycie CD/DVD znajdują się wykorzystywane biblioteki, kod

źródłowy programu oraz wszyst-kie listingi z artykułu.

Page 75: Linux+_01_2005

71

dla programistówpython/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_classS

(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 PyroW 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ówNasza 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ć.

Page 76: Linux+_01_2005

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.getProxyForURIS

("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 serweraJak 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.setNewConnectionValidatorS

(printCertValidator())

Listing 2. Pełny kod serwera oparty o protokół SSL

#! /usr/bin/env python

import sys

import Pyro.core

import Pyro.naming

import Pyro.util

import Pyro.protocol

from Pyro.errors import PyroError,NamingError

from Pyro.protocol import getHostname

import test_obj

class test_obj_class(Pyro.core.ObjBase, test_obj.test_obj):

def __init__(self):

Pyro.core.ObjBase.__init__(self)

class printCertValidator(Pyro.protocol.BasicSSLValidator):

def checkCertificate(self,cert):

if cert is None:

return (0,3)

print "Cert Subject: %s" % cert.get_subject()

return (1,0)

##### main program #####

Pyro.core.initServer()

Pyro.config.PYRO_TRACELEVEL=3

Pyro.config.PYRO_NS_HOSTNAME='localhost'

Pyro.config.PYRO_LOGFILE='server_log'

ns=Pyro.naming.NameServerLocator().getNS()

daemon=Pyro.core.Daemon(prtcol='PYROSSL')

daemon.setNewConnectionValidator(printCertValidator())

daemon.useNameServer(ns)

uri=daemon.connect( test_obj_class(), "test_obj")

print "Server is ready. Let's go!!!"

daemon.requestLoop()

Listing 1. Postać klasy test_obj

class test_obj:

def m1(s, string):

print "Metoda m1 parametr:", string

return "Długość ciągu znaków: "+str(len(string))

def m2(s, number):

print "Metoda m2 parametr:", number

return "Kwadrat liczby:"+str(number*number)

Page 77: Linux+_01_2005

73

dla programistówpython/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 chcemyzaakceptować certyfikat, to jako war-tość powrotną zwracamy parę (1,0).W przypadku odrzucenia certyfikatu,za pomocą słowa return musimyprzekazać 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 klientaW 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.getProxyForURIS

("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ówBezpieczeństwo komunikacji ściśle zależyod utworzonych certyfikatów. Z tegopowodu, 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

Page 78: Linux+_01_2005

74

dla programistów

styczeń 2005

w katalogu Apps. Pojawia się on w dwóchwersjach: 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 dlaserwera 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/pythonimport sysimport Pyro.coreimport Pyro.namingfrom Pyro.EventService.Clients import Publisher

# identyczna postać jak na Listingu 2class printCertValidator(Pyro.protocol.BasicSSLValidator):class TalkSrv(Pyro.core.ObjBase, Publisher):

Pyro.core.initServer()Pyro.config.PYRO_TRACELEVEL=3Pyro.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(TalkSrv(), "TalkSrv")

print "TalkServer is ready."daemon.requestLoop()

Otrzymaliśmy wszystkie niezbędne dane, aby utworzyć certyfikat dla klienta. Niestety, musimy samodziel-nie przenieść pewne dane z plików wygenerowanych przez skrypt CA.sh i program openssl. Kopiujemy cześć opisującą certyfikat (Listing 3 przed-stawia ogólną postać tych plików)

Page 79: Linux+_01_2005

75

dla programistówpython/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 niemieli 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. Mamnadzieje, ż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 komunikatorWiemy, jak wygenerować certyfikat orazw jaki sposób należy napisać progra-my serwera i klienta. Oznacza to, żebez ż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

Page 80: Linux+_01_2005

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 sysimport Pyro.utilimport Pyro.corefrom Pyro.EventService.Clients import Subscriberfrom threading import Thread

import gobjectimport gtkimport 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=3Pyro.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

*/

PodsumowanieDołą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żyrównież od certyfikatów. Jeśli stosujemySSL, 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

Page 81: Linux+_01_2005

aktualności [email protected]ęgozbiór

77www.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ś ([email protected])

1. Optymalizacja systemu Windows – J. Ballew, J. Duntemann, Wyd. Helion, 20042. Thinking in Java. Wydanie 3. Edycja polska – B. Eckel, Wyd. Helion, 20043. ABC fotografii cyfrowej – Ł. Oberlan, Wyd. Helion, 20044. Photoshop CS. Ćwiczenia z ... , Wyd. Mikom, 20045. Krótki kurs architektury i organizacji komputerów – W. Komorowski, Wyd. Mikom, 20046. Programowanie Asembler IBM PC – P. Abel , Wyd. Read Me, 20047. Microsoft Exchange Server 2003 - Vademecum Administratora - W. R. Stanek, Wyd. APN Promise, 20048. Grafika 3D. Modelowanie i rendering od podstaw, Wyd. Axel Springer, 20049. Systemy operacyjne. Szkoła programowania – W. Stallings, Wyd. Robomatic, 200410. Mój pierwszy komputer, Wyd. Help, 2004

Bestsellery MerlinaLista najlepiej sprzedających się książek informatycznychw 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 ([email protected])

Page 82: Linux+_01_2005

testy

78 styczeń 2005 79

testyyopy

www.lpmagazine.org

YOPY YP3700Michał Niwicki

Gdy 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żeniePierwszą 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

Page 83: Linux+_01_2005

testy

78 styczeń 2005 79

testyyopy

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 pracaYOPY 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.

PodsumowanieYOPY 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

Page 84: Linux+_01_2005
Page 85: Linux+_01_2005
Page 86: Linux+_01_2005