Professional Documents
Culture Documents
Linux a piractwo
komputerowe
Aktualnoci
10 Newsy
Krzysztof Krawczyk
Linux
12 Jdro
Maja Krlikowska
14 Debian
Grzegorz Prokopski
16 Aurox
Robert Gwczyski
18 RPM
Daniel Ko
20 GNOME
Zbigniew Chyla
22 KDE
Pawe Biliski
24 LinuxFresh
Piotr Machej
Krzysztof Krawczyk
Redaktor Naczelny Linux+
Miesicznik Linux+ (12 numerw w roku) jest wydawany przez Software-Wydawnictwo Sp. z o. o.
Redaktor naczelny: Krzysztof Krawczyk, krzysiek@linux.com.pl
Asystent redaktora: Piotr Truszkowski, piotrt@linux.com.pl
Producent: Marta Kurpiewska, marta@software.com.pl
Opracowanie CD: Krzysztof Krawczyk, Piotr Truszkowski
Dzia reklamy: Dagmara Witkowska, reklama@software.com.pl, tel.: (22) 860 18 79
Prenumerata: Marzena Dmowska, pren@software.com.pl, tel.: (22) 860 17 67
Projekt graficzny okadki: Marzena Turek-Ga, marzenat@software.com.pl
Projekt graficzny pisma: Marzena Turek-Ga, marzenat@software.com.pl
Skad: Sawomir Zadrony, slawekz@software.com.pl
Adres korespondencyjny:
Software-Wydawnictwo Sp. z o. o., 00-190 Warszawa, ul. Lewartowskiego 6
e-mail: redakcja@linux.com.pl, tel. (22) 860 18 18
Redakcja dokada wszelkich stara, aby publikowane w pimie i na towarzyszcych mu nonikach informacje i programy byy poprawne,
jednake nie bierze odpowiedzialnoci za efekty wykorzystania ich; nie gwarantuje take poprawnego dziaania programw shareware,
freeware i public domain. Uszkodzone podczas wysyki pyty wymienia dzia prenumeraty.
Wszystkie znaki firmowe zawarte w pimie s wasnoci odpowiednich firm i zostay uyte wycznie w celach informacyjnych.
Redakcja uywa systemu automatycznego skadu
Druk: Stella Maris
Pyty CD doczone do magazynu przetestowano programem AntiVirenKit firmy G DATA Software Sp. z o.o.
Sprzeda aktualnych lub archiwalnych numerw pisma po innej cenie ni wydrukowana na okadce bez zgody wydawcy jest
dziaaniem na jego szkod i skutkuje odpowiedzialnoci sdow.
stycze 2004
Temat miesica
Bezpieczestwo
Dla pocztkujcych
szyfrowane systemy
30 Loop-AES
plikw
z OpenSSH
44 Praca
Piotr Machej
Skarbimir Kwiatkowski
Gdy posiadamy poufne informacje, ktre chcemy
zabezpieczy przed niepowoanym dostpem, warto je
zaszyfrowa. Mona to zrobi chociaby przy pomocy
GnuPG, ale ciekawszym, wygodniejszym i pewniejszym
rozwizaniem jest przygotowanie specjalnej zaszyfrowanej partycji, na ktrej bd przechowywane kluczowe
dane. Z pomoc przychodzi nam wtedy modu jdra
o nazwie Loop-AES.
38
Wzmacniamy jdro:
Openwall i GrSecurity
Micha Miszewski
Jdra przygotowywane przez twrcw dystrybucji
Linuksa zazwyczaj maj ju naoone rne atki rozszerzajce ich moliwoci lub poprawiajce pewne funkcje.
Wprowadzane zmiany rzadko dotycz bezporednio
bezpieczestwa, dlatego warto rozway skorzystanie
z zestawu atek Openwall lub GrSecurity. W artykule
zosta przedstawiony proces nakadania takich atek oraz
nowe opcje konfiguracyjne jdra.
Testy
42 Piotr Truszkowski
Wywiad
z Alexandrem Peslyakiem
26 Wywiad
(Solar Designerem), twrc projektu
Openwall
Krzysztof Krawczyk
Osoby zainteresowane bezpieczestwem Linuksa na
pewno syszay o Solar Designerze, ktry od kilku
lat przygotowuje liczne narzdzia dla tego systemu
w ramach projektu Openwall. Z najbardziej znanych jego
produkcji mona wymieni John The Rippera (wykrywa
hasa atwe do zamania), atki na jdro Linuksa oraz
dystrybucj Owl. Postanowilimy porozmawia z nim na
temat projektu Openwall oraz najbliszych planw.
www.linux.com.pl
Sprzt
i Smartmontools
52 Lm_sensors
czujniki naszego komputera
Piotr Wolny
Gdy system zaczyna dziaa niestabilnie, niekoniecznie musi to by wina oprogramowania. Przyczyn
rwnie dobrze mog by problemy sprztowe. W takim
przypadku warto posiada oprogramowanie, ktre
korzystajc z czujnikw wbudowanych w urzdzenia,
pomogoby nam zdiagnozowa niepoprawnie pracujcy
element komputera. Tak rol peni LM_Sensors (pyty
gwne) oraz SmartMonTools (dyski twarde).
Dla programistw
bezpiecznych programw
58 Pisanie
Marek Sawerwain
Ataki przepenienia bufora s bardzo niebezpieczne,
gdy z ich pomoc mona szybko przej kontrol nad
systemem. Z tego powodu, piszc wasne programy,
trzeba pilnowa, aby nie powstaway niepoprawne
konstrukcje. Wygodniejszym rozwizaniem jest skorzystanie z gotowych bibliotek, ktre robi to za programist. W artykule zostay opisane dwa takie rozwizania:
SCSL oraz Vstr. Ponadto, zwrcono w nim uwag na
poprawne zarzdzanie pamici, w czym mog by
pomocne pakiety Memwatch oraz Libcwd.
Dla graczy
Strike
66 Vega
Krzysztof Wolski
Jeeli chcesz zosta pilotem statku kosmicznego, handlowa towarem i walczy z wrogimi statkami, zagraj
w gr Vega Strike. Wyrnia si ona bardzo dobr grafik i muzyk, a take wysok grywalnoci.
opis CD
pyta A
procesor Pentium;
napd CD-ROM o prdkoci minimum 32x;
minimum 128 MB pamici RAM;
mile widziane poczenie z sieci Internet.
Uwaga!
Redakcja nie ponosi odpowiedzialnoci za ewentualne
szkody powstae w wyniku uytkowania opisywanego
systemu i doczonego do niego oprogramowania. Zabronione jest uywanie doczonego oprogramowania na
szkod innych uytkownikw.
stycze 2004
pyta A
Ettercap 0.6b
www.linux.com.pl
Amap 4.5
Skaner pozwalajcy na identyfikacj
programw/usug dziaajcych na
portach innych ni standardowych.
http://www.thc.org/
Ethereal 0.9.16
Program do podsuchiwania ruchu
w sieci.
http://www.ethereal.com/
Ettercap po uruchomieniu
wsparcie dla HTTPS podsuchiwanie danych przesyanych poprzez bezpieczny protok SSL,
nawet poprzez PROXY;
podsuchiwanie nazw uytkownikw, hase oraz danych wysyanych poprzez Telnet, FTP, POP,
Rlogin, SSH1, ICQ, SMB, MySQL,
HTTP, NNTP, X11, Napster, IRC,
RIP, BGP, SOCKS 5, IMAP 4, VNC,
LDAP, NFS, SNMP, Half Life, Quake 3, MSN oraz YMSG;
filtrowanie pakietw i usuwanie
wybranych z nich ustawianie
filtrw, dziki ktrym mona
podsuchiwa ruch na podanych
przez siebie portach z moliwoci usuwania wybranych przez
siebie pakietw;
zgadywanie systemu operacyjnego
sprawdzanie, jakiego systemu
operacyjnego uywaj inni uytkownicy twojej sieci;
zabijanie pocze sprawdzanie,
czym zajmuj si obecni w sieci
ludzie oraz moliwo uruchomienia masowego zabijania pocze
dla danego uytkownika/w;
pasywne skanowanie sieci LAN
zdobywanie informacji o komputerach obecnych w sieci lokalnej
oraz wszystkich czynnociach,
ktre wykonuj ich waciciele;
wykrywanie obecnoci innych
snifferw sprawdzanie, czy jeste bezpieczny w czasie podgldania ruchu w sieci.
http://ettercap.sourceforge.net/
Bastille 2.1.1
Program uatwiajcy zabezpieczenie
systemu. Wycza zbdne usugi,
nakada odpowiednie prawa dostpu do
plikw/katalogw i robi wiele innych
rzeczy majcych na celu uatwienie ycia
administratorowi.
http://www.bastille-linux.org/
Cheops 0.60pre5
Narzdzie do zarzdzania sieci.
http://www.marko.net/cheops/
Firewall Builder
Program do konfiguracji iptables,
dziaajcy w rodowisku graficznym.
Pozwala tworzy bardzo dokadne
i zaawansowane konfiguracje.
http://www.fwbuilder.org/
FreeS/ WAN 2.04
Program do tworzenia wasnych sieci
prywatnych.
http://www.freeswan.org/
Fwlogwatch 0.9.3
Program analizujcy logi firewalla
i powiadamiajcy administratora
o podejrzanej sytuacji.
http://cert.uni-stuttgart.de/projects/
fwlogwatch/
GnuPG 1.2.3
Szyfrowanie plikw i listw.
http://www.gnupg.org/
GrSecurity 2.4.23
atka na jdro, majc na celu lepsze
zabezpieczenie tego kluczowego
elementu systemu operacyjnego.
http://www.grsecurity.net/
HPing2
Rozszerzona o nowe moliwoci wersja
popularnego programu Ping.
http://www.hping.org/
John The Ripper 1.6
Najnowsza wersja bardzo popularnego
amacza hase.
http://www.openwall.com/john/
Kerberos5 1.3.1
System autoryzacji szeroko
wykorzystywany na wiecie.
http://web.mit.edu/kerberos/www/
opis CD
pyta A
Nessus 2.0.9
dpowiednio zabezpieczony serwer jest swoist wizytwk dobrego administratora sieci. Wiadomo
jednak, e kady z nas popenia bdy i nie ma ludzi doskonaych. Dugie
godziny spdzone przy mozolnym
zabezpieczaniu serwera mog pj
na marne w wyniku przeoczenia jakiego bdu przy konfiguracji usugi,
bdnym ustawieniu praw dostpu do
plikw/katalogw bd tysicu innych
drobnych spraw. Z pomoc w takim
przypadku przychodzi Nessus. Jest
to popularny skaner zabezpiecze
serwera, ktry pomoe w odkryciu
bdw konfiguracji i poinformuje nas
o ewentualnych niezaatanych bdach w oprogramowaniu, oszczdzajc nam tym samym godzin czytania
Security Focus i poszukiwania sabych
ogniw systemu. Nie bez znaczenia jest
fakt, e Nessus naley do grona programw Open Source i dostpny jest
dla kadego bez jakichkolwiek opat
licencyjnych.
Nessus skada si zarwno z klienta, jak i serwera. Aby sprawdzi nasz
BitDefender 1.5.5
stycze 2004
pyta B
Knoppix 3.3
www.linux.com.pl
Knoppix po uruchomieniu
knoppix
lang = pl;
aktualnoci
10
aktualnoci
ISS Proventia
olska premiera nowej serii rozwiza bezpieczestwa sieciowego o nazwie Proventia miaa miejsce
5 listopada w Warszawie. Firma Internet Security Systems (ISS), producent
tych zintegrowanych urzdze zabezpieczajcych firm, oraz firma Veracomp S.A., ich dystrybutor w Polsce,
zaprezentoway zasad ich dziaania
oraz dostpne moliwoci.
Proventia to rozwizanie typu IPS
/ IDS (Intrusion Prevention System /
Intrusion Detection System), bdce
nastpc systemu RealSecure. Mona
je zainstalowa w miejscach, przez
ktre przechodzi cay ruch sieciowy.
stycze 2004
www.linux.com.pl
Scribus 1.1.3
Franz Schmid i jego zesp przyoyli
si do pracy nad now wersj
Scribusa, dziki czemu z wydania na
wydanie staje si to naprawd coraz
bardziej profesjonalne narzdzie
do skadu publikacji. Scribus 1.1.3
to wersja niestabilna, ale wystarczy
tylko wspomnie, e pojawi si
w niej zaawansowany edytor tekstu,
konwersja hiperczy w eksporcie
do PDF, zgodno mechanizmu
wtyczek z Pythonem 2.3 czy ustalanie
wielkoci czcionek z dokadnoci
do 1/10 punkta, aby narobi sobie
apetytu na wyprbowanie go.
http://web2.altmuehlnet.de/fschmid/
http://www.linuxnews.pl/_news/2003/
12/01/_long/2342.html
Strace
Kady programista, niewane,
czy profesjonalny projektant, czy
domorosy magik, moe spotka si
z sytuacj, gdy napisany program
kompiluje si, ale nie dziaa tak jak
powinien. W tym momencie na
scen wchodz narzdzia debugujce
(debuggery). Serwis DevChannel
przygotowa artyku wprowadzajcy
w arkana uytkowania strace. Artyku
przedstawia podstawy uruchamiania
debuggera oraz uczy, jak odczytywa
komunikaty wywietlane przez
program.
http://tools.devchannel.org/
article.pl?sid=03/10/24/2057246&mode
=thread&tid=46&tid=57
http://www.linuxnews.pl/_news/2003/
11/27/_long/2335.html
Tvtime
Ukazaa si kolejna wersja wietnego
programu do ogldania telewizji pod
Linuksem. Tvtime 0.9.12 przynosi
gwnie poprawki bdw zwizanych
z XMLTV. Aplikacja zawiera
wiele interesujcych rozwiza
polepszajcych obraz pochodzcy
z kart telewizyjnych. Wysok jako
uzyskano dziki wykorzystaniu
najlepszych algorytmw oferowanych
przez DScaler, ktre su do
przekadania telewizyjnego sygnau
z przeplotem na sygna bez przeplotu
(deinterlaced). Uytkownik ma
moliwo (przy pomocy podrcznego
menu) wyboru odpowiedniej metody
przetwarzania sygnau, co ma wpyw
na zuycie procesora i jako obrazu.
http://tvtime.sourceforge.net/
http://dscaler.org/
http://www.linuxnews.pl/_news/2003/
11/24/_long/2325.html
11
aktualnoci
Tylnym wejciem
Oficjalne rda jdra Linux trzymane
s w BitKeeperze, a repozytoriami
zawiaduje firma BitMover, midzy
innymi Larry McVoy; udostpniane
s te bramki do innych systemw
zarzdzania wersjami, midzy innymi
do CVS. Repozytoria te s bardzo cile
chronione, dlatego Larry McVoy prawie
od razu zauway prb wprowadzenia
backdoora do rde jdra przez
bramk CVS-ow. Zmiana w rdach
wygldaa jak atka wprowadzajca
dodatkowe sprawdzanie bdu, jednake
przy porwnaniu uid z 0 zamiast '=='
pojawio si '='.
http://lwn.net/Articles/57153
http://kerneltrap.org/node/view/1584
Zap mnie, jeli potrafisz
Deweloperzy Linuksa znacznie czciej
ni inni uytkownicy dowiadczaj
bdw jdra i gwnie dla nich
przeznaczone jest narzdzie Kmsgdump.
Jest ono atk na jdro, ktra uaktywnia
si jedynie w przypadku paniki jdra
(ang. kernel panic). Dziki tej atce
wszystkie produkowane w takiej sytuacji
informacje, ktre zwykle przetaczaj
si po ekranie, a potem znikaj,
zostaj zapamitane na dyskietce lub
skierowane na port rwnolegy.
http://lwn.net/Articles/59927
Poziomy bezpieczestwa
LSM jest atk pozwalajc na uywanie
rnych polityk bezpieczestwa
w systemie. Do tej pory bya ona
wykorzystywana w zasadzie jedynie
przez SE Linux, at firmowan przez
NSA. Niedawno dziki LSM zostaa
stworzona implementacja poziomw
bezpieczestwa przypominajca
rozwizanie z BSD. Dziki niej,
domylny poziom 0, oznaczajcy
brak jakiejkolwiek dodatkowej
polityki bezpieczestwa, moe zosta
podniesiony przez interfejs /proc.
http://lwn.net/Articles/59507/
Wykr ywacz problemw
Pod skrzydami OSDL powsta nowy
projekt, ktrego zaoeniem jest pomoc
deweloperom przy wykrywaniu
bdw, ktre mog znale si w jdrze
i uniemoliwi jego zbudowanie
w niektrych konfiguracjach. Projekt
ten nazywa si Linux Kernel Tinderbox
i bazuje mniej wicej na architekturze
klient-serwer. Klient Tinderbox ciga
nowe zmiany i prbuje je kompilowa,
a wyniki swoich poczyna kieruje do
serwera, ktry wywietla je w postaci
strony WWW.
http://kt.zork.net/kernel-traffic/
kt20031201_143.html#15
12
jdro linuksa
Linux 2.6
stycze 2004
Udev
2.4.23 i co dalej?
www.linux.com.pl
Z braku laku
Pontus Fuchs podesa na list linuxkernel informacj o stworzonym
przez siebie module jdra o nazwie
Nidswrapper, pozwalajcym
adowa sterowniki nids, zgodne
z API Windows. Stworzy ten modu,
poniewa niektrzy producenci wci
nie dostarczaj nawet binarnych,
przeznaczonych dla Linuksa,
sterownikw do swojego sprztu.
W jego przypadku byy to karty
WLAN. Stworzenie takiego moduu
nie rozwizuje bynajmniej problemu
obsugi tych kart w Linuksie, jest
jedynie doranym umoliwieniem
skorzystania z nich.
http://kt.zork.net/kernel-traffic/
kt20031201_143.html#2
Serial ATA w Linuksie
Serial ATA jest nowym interfejsem,
ktry ma zastpi dotychczas uywany
rwnolegy interfejs ATA, eliminujc
jego wady i niedoskonaoci. Grono
hakerw Linuksa z Jeffem Garzikiem
na czele pracuje nad implementacj
tego interfejsu dla jder 2.6.x. Jeff
uzna, e prace zaszy ju na tyle
daleko, e warto zacz poszukiwa
wikszej liczby testerw i podesa na
lkml dokument z dokadnym opisem
tego, co zostao ju zrobione, a co
jeszcze nie.
http://hedera.linuxnews.pl/_news/2003/
12/04/_long/2354.html
http://www.ussg.iu.edu/hypermail/
linux/kernel/0312.0/0597.html
Winna jest do_brk()
Pod koniec listopada i na pocztku
grudnia gono byo o wamaniach
na serwery projektw zwizanych
z Linuksem i Wolnym
Oprogramowaniem (debian.org,
savannah.gnu.org, ...). Za cz tych
problemw jest odpowiedzialny
niepozorny bd w funkcji do_brk().
Zabrako sprawdzenia poprawnoci
zakresu argumentw tej funkcji.
Bd wynik z przeoczenia:
w jdrach 2.2.x sprawdzanie
argumentw odbywao si wczeniej,
w funkcjach wywoujcych. Nikt nie
sdzi, e moe mie on powane
konsekwencje. Linus Torvalds
wprowadzi poprawk w jdrze 2.6.0test6, a Marcelo Tosatti kilka dni
pniej w 2.4.23-pre7. Wikszo
dystrybutorw nie zdecydowao si
umieci tej poprawki, wyjtkiem by
tu Red Hat/Fedora.
http://kerneltrap.org/node/view/1717
http://lists.debian.org/debian-develannounce/2003/debian-devel-announce-200311/msg00012.html
13
aktualnoci
debian
14
stycze 2004
iemal dokadnie w tym samym czasie, gdy miao miejsce wamanie na serwery Debiana,
ukazao si nowe podwydanie Debiana Woodiego 3.0r2. Kilkadziesit
poprawek dotyczcych bezpieczestwa, ktre si w nim znalazy, zostao
przeniesionych z security.debian.org,
gdzie byy dostpne od dnia wydania
poprawionego pakietu. Poprawiono
www.linux.com.pl
15
aktualnoci
aurox
16
stycze 2004
www.linux.com.pl
http://linmodems.technion.ac.il/
Aurox na ibiblio.org
Zesp Auroksa nawiza wspprac
z jednym z najwikszych serwisw
ze zbiorami wolnodostpnej
informacji i oprogramowania
ibiblio.org. Inicjatywa ta powstaa
we wrzeniu 2000 roku w wyniku
wsppracy pomidzy Chapel Hill's
MetaLab (Uniwersytet Karoliny
Pnocnej w USA), znanym wczeniej
jako SunSITE, a Center for the
Public Domain. Jego zadaniem
jest wspomaganie tworzenia
i rozpowszechniania Wolnego
Oprogramowania i dokumentacji.
http://www.ibiblio.org/
Nowoci w Auroksie: Blender
Do Auroksa 9.2 wczona zostaa
najnowsza wersja ze stabilnej
serii Blendera: 2.28c. Blender to
profesjonalny pakiet do tworzenia
grafiki 3D, animacji, a nawet gier.
Gwn polsk stron powicon
Blenderowi jest http://www.blender.pl/.
Mona na niej znale m.in. polskie
wersje podrcznikw i poradnikw,
pobra najnowsze wersje programu
i dodatki oraz cign ciekawe
przykady (m.in. przykad gry
stworzonej w Blenderze).
http://www.blender.org/
Lepsze wsparcie dla laptopw
Firma Aurox Sp. z o.o. nawizaa
wspprac z kilkoma producentami
komputerw, m.in. Optimus S.A.
W rezultacie otrzymamy lepsze
wsparcie dla nowego sprztu, m.in.
obsug cech specyficznych dla
notebookw tych producentw.
http://www.optimus.com.pl/
Wine w Auroksie
Aurox zawiera Wine implementacj
API Windows dostpn na licencji
LGPL.W wydaniu 9.2 naszej dystrybucji
znajdziecie wersj 20031016.
Wine pozwala na uruchamianie
niektrych aplikacji Windows na
Linuksie. Zawiera m.in. wstpn
implementacj bibliotek zgodnych
z DirectX. Domylna konfiguracja
podczas pierwszego uruchomienia
(polecenie wine <nazwa programu>)
tworzy w katalogu domowym
uytkownika podkatalog .wine,
a w nim plik konfiguracyjny config,
odpowiedniki Rejestru Windows
(pliki *.reg) oraz podkatalog
c, ktrego zawarto aplikacje
uruchamiane przez Wine widz jako
dysk C: systemu Windows. Jeli
plik *.exe z Windows jest oznaczony
jako wykonywalny, to mona go
uruchomi klikajc na niego.
http://www.winehq.com/
17
aktualnoci
rpm
http://www.drakian.org/
Ser wer f tp.leo.org
Bardzo dobre repozytorium pakietw
dla Mandrake Linux znajduje si na
serwerze ftp.leo.org. Jest to jedno
z pierwszych miejsc, z ktrych
mona byo pobra spakowan
przegldark Mozilla Firebird 0.7
i zestaw Mozilla 1.5, czy nawet nieco
wysz wersj OpenOffice.org, ktre s
nieosigalne z Cookera. Odpowiednie
pakiety znajduj si wprawdzie w sekcji
eksperymentalnej (unsupported ), jednak
pracuj stabilnie.
ftp://ftp.leo.org/pub/comp/os/unix/linux/
Mandrake/Mandrake-devel/unsupported/
MandrakeClub/9.2/i586/
Mandrake 10 na hor yzoncie
Uytkownicy zabrali si za instalowanie
i wykorzystywanie w codziennej pracy
Mandrake 9.2, tymczasem twrcy
dystrybucji przygotowuj ju warsztat
do planowanego na marzec wydania
Mandrake Linux 10. Podstawowym
narzdziem ich pracy bd strony
Wiki (Wiki Wiki Web), ktre od
zwykych stron WWW rni si
moliwoci bezporedniej edycji. Wiki
Mandrake 10 zawiera ju list rzeczy
do zrobienia, list ycze, podstron
o portach na rne procesory
oraz stworzon zawczasu stron
o najczciej zgaszanych bdach.
Jest te agenda wyda testowych
gdy to czytacie, powinno by ju
dostpne pierwsze z nich (jedno lub
dwupytowe), zbudowane na rwnie
testowym jdrze Linuksa z nowej
serii 2.6.
http://qa.mandrakesoft.com/twiki/bin/
view/Main/Mandrake10
18
Biblioteczka Mandrake
stycze 2004
Bluehawk ISO
www.linux.com.pl
Fedora Core 1
Lista mirrorw
Na bardzo praktyczny pomys wpad
jeden z uytkownikw Mandrake:
na swojej stronie domowej zaoy
prosty monitor ledzcy stan
dostpnoci rozmaitych serwerw
lustrzanych (tzw. mirrorw) tej
dystrybucji. Robot ledzi, czy dany
serwer jest w ogle dostpny, oraz
czy pliki w jego repozytorium s
aktualne i w komplecie. Wpisy na
licie s oznaczane dat i godzin
wykonania testu.
http://extasia.u-strasbg.fr/~blindaue/
mirrors.php
MakeCD
W Linuksie nie jestemy skazani
na pomysy dystrybutorw,
a odrobina samodzielnego wysiku
moe si nieraz bardzo opaci.
Dziki skryptowi MakeCD mona
z przygotowanego zbioru pakietw
stworzy i wypali wasne pytki
z Mandrake! Domylnie skrypt
produkuje obrazy o wielkoci 650
MB (niektre starsze napdy CDROM nie radz sobie z adowaniem
systemu z pyt o wikszej
pojemnoci), ale mona to zmieni.
Bardzo przydatn opcj jest
ograniczanie iloci pyt, a zmieniajc
pliki z reklamwkami w prosty
sposb staniemy si niezalenym
dystrybutorem Linuksa.
http://qa.mandrakesoft.com/twiki/bin/
view/Main/MakeCD
Mandrake4Chemistr y
Za pomoc popularnych dystrybucji
mona atwo tworzy wasne
zestawy aplikacji linuksowych,
dostosowanych do konkretnych
potrzeb. Kanadyjczyk Austin Acton
jest autorem zestawu programw
przydatnych chemikom, zebranego
pod nazw Mandrake4Chemistry.
Celem projektu jest wyszukiwanie
wolnych i darmowych aplikacji
chemicznych oraz zachcanie do
agodzenia restrykcyjnych licencji
autorw pozostaych aplikacji. Austin
jest take domorosym muzykiem
na jego stronie znajdziemy midzy
innymi piosenk powicona
nadchodzcej premierze jdra 2.6.
http://groundstate.ca/mdk4chem/
index.html
http://hedera.linuxnews.pl/_news/2003/
11/05/_long/2273.html
http://hedera.linuxnews.pl/_news/
2003/11/05/_long/2275.html
http://hedera.linuxnews.pl/_news/
2003/11/26/_long/2330.html
19
aktualnoci
20
gnome
stycze 2004
Wzbogacanie Nautilusa
owcy nagrd
www.linux.com.pl
21
aktualnoci
Quanta-3.2BE1
Zesp deweloperw edytora HTML
dla KDE QuantaPlus przedstawi
uytkownikom kolejn wersj ich dziea.
Tym razem jest to wersja Bleeding
Edge numer jeden, czyli bardzo
wczesna wersja testowa, przedstawiajca
zarys moliwoci kolejnego stabilnego
wydania 3.2. Co nowego? Przede
wszystkim nowy edytor arkuszy styli
oraz automatyczne zapisywanie plikw.
Trzeba zaznaczy, e nowe wydanie
wymaga Kdelibs w wersji z CVS
lub nadchodzcego 3.2 beta2.
http://quanta.sourceforge.net/main2.php?
newsfile=qberelease01
KDevelop najlepszy
Powody do dumy maj autorzy
rodowiska IDE dla KDE KDevelopa.
Z jakiego powodu? Projekt ten
zdoby 29.4% gosw w swojej kategorii,
wyprzedzajc tym samym takie
oprogramowanie, jak Eclipse czy Anjuta,
na stronach magazynu Linux-Magazin.
Niemiecki miesicznik podejmujc
decyzj opiera si na opinii jury, ktre
skadao si z autorw aplikacji dla KDE
oraz najwikszych osobistoci Linuksa,
m.in. Alana Coksa.
http://www.kdevelop.net/
http://www.linux-magazin.de/Artikel/
ausgabe/2003/12/award/award.html
KDE na targach COMDEX
Projekt KDE zaszczyca swoj
obecnoci niejedne ju targi
oprogramowania. Tym razem wybr
pad na targi COMDEX, ktre odbyy
si w tym roku w Las Vegas. Nie
zabrako na nim saw technologii
informatycznej, choby Billa Gatesa,
ktry da wykad na temat pozycji
Microsoft na rynku (wspomnia
oczywicie o zagroeniu ze strony
projektw Open Source). W ramach
KDE poruszono takie tematy, jak klient
pracy grupowej Kontact, Kiosk, czyli
najatwiejsze w obsudze rodowisko
graficzne we wszechwiecie oraz oglna
tematyka dotyczca stacji roboczych.
http://dot.kde.org/1069632528/
Nowe standardy
Ci, ktrzy interesuj si rozwojem KDE
od podszewki, wiedz ju zapewne,
jakie rewolucyjne zmiany dotkn
okna konfiguracji poszczeglnych
komponentw. Nowa struktura o nazwie
KConfig XT, ktra niedawno powstaa,
wyznacza nowy standard i jest bardzo
nowatorska. Szczegy dotyczce tych
rewelacji dostpne s przede wszystkim
w przewodniku, stworzonym na
potrzeby serwisu developer.kde.org.
http://developer.kde.org/documentation/
tutorials/kconfigxt/kconfigxt.html
22
kde
Rekall na GPL!
Rekall
Gollum a KDE
stycze 2004
Krusader 1.30
www.linux.com.pl
23
linuxfresh
Lyrc
odczas suchania piosenek (szczeglnie obcojzycznych) nie zawsze udaje si dokadnie wychwyci
tre. Czasem chcielibymy ponuci razem z wykonawc,
lecz nie pamitamy dokadnie sw. Pomocne w takich
sytuacjach s liczne witryny zawierajce sowa piosenek
(lyrics). Wyszukiwanie ich nie jest jednak zawsze wygodne, a take wymaga otwierania przegldarki podczas
suchania muzyki. Z tego powodu powsta Lyrc, wtyczka
do programu XMMS, pobierajca z sieci sowa aktualnie
odtwarzanej piosenki i wywietlajca je w osobnym
okienku.
Starsza wersja Lyrc (0.1) udostpniona bya tylko
w wersji binarnej. Aktualna (0.2) zostaa ju udostpniona razem z kodem rdowym. Jak wic wida, program
dopiero si rozwija. Warto bliej si nim zainteresowa,
gdy to wanie dziki pomocy uytkownikw moe sta
si bardziej przydatny. Wtyczka korzysta z bazy tekstw
piosenek, umieszczonej na serwerze lyrc.com.ar. Jeli
napotkamy na piosenk, dla ktrej sw jeszcze nie ma
w bazie, moemy doda je samodzielnie. Jeli za w bazie
znajduje si kilka tekstw pasujcych do naszej piosenki, to bdziemy mogli wybra ten waciwy. Nie naley
obawia si, e podczas suchania ulubionych piosenek
wtyczka bdzie cigle pobieraa dane z Internetu raz
pobrane teksty przechowywane s w katalogu ~/.lyrics.
Obecnie Lyrc radzi sobie z pobieraniem danych o piosence z plikw mp3 (dziki znacznikom ID3), ogg i cieek
pyt audio (wykorzystuje plik ~/.xmms/cdinfo).
Kod rdowy wtyczki moemy pobra ze strony
projektu (http://sourceforge.net/projects/lyrc/ ). W chwili
pisania artykuu by to plik o nazwie lyrc-0.2.tar.gz. Jego
instalacja nie sprawia problemw. Po rozpakowaniu rde (tar xzvf lyrc-0.2.tar.gz), wystarczy w utworzonym
katalogu wyda polecenia make i make install (to drugie
z poziomu uytkownika root). Jeli jednak polecenie make
LARPOMachine
24
stycze 2004
Brag
Brag postara si poczy ze wskazanym serwerem, a nastpnie pobra z wyznaczonej grupy wszystkie zaczniki
binarne. Jeli plik binarny zostanie pobrany w caoci, to
umieszczony bdzie w katalogu ~/.brag/nazwa_serwera/
nazwa_grupy/finished/. Z kolei niekompletne fragmenty
www.linux.com.pl
25
wywiad
26
moich atek wci by rs, ale s to poprawki bdw bezpieczestwa wykrytych w samym jdrze. Rzeczywicie,
rozszerzenia zwikszajce bezpieczestwo nie zostaj
wczane, ale ja nie spodziewam si zmiany tej sytuacji.
Jedn z przyczyn jest to, e te rozszerzenia mog spowodowa faszywe poczucie bezpieczestwa. Kto mgby
potem podj decyzj o nienaprawianiu dziury w systemie,
ktrym administruj, lub w oprogramowaniu, ktrym si
zajmuje, tylko z powodu tych rozszerze. Jeli tak si stanie,
bezpieczestwo bdzie w rzeczywistoci zmniejszone,
a nie zwikszone.
GrSecurity rozpoczto jako nieoficjalne przeniesienie
moich atek na jdro serii 2.4, o wiele wczeniej zanim
uznaem te jdra za przeznaczone do zastosowa produkcyjnych. W momencie, gdy zadecydowaem o oficjalnym
wsparciu jder 2.4, GrSecurity sta si ju du ogln
atk, ktra zawieraa wiele innych tego typu rozszerze
z rnych miejsc. Z caym szacunkiem dla Brada, ktry
rozpocz GrSecurity, wci uwaam, e niektre jego
rozszerzenia lub ich implementacje s zbyt wtpliwe, aby
je poleca. Oczywicie s tam take rozszerzenia, ktrych
nie ma w moich atkach, a s bardzo ciekawe. Mgbym je
nawet wczy do wasnych atek, gdybym je wci aktywnie rozwija, zamiast tylko utrzymywa.
Niektrzy czytelnicy mog zastanawia si, czy i dlaczego moje poprawki straciy dla mnie swoj wag. Tak jest
w istocie, gdy mam teraz Owla. Z poprawnie przygotowanym rodowiskiem uytkownika, nie s one ju tak bardzo
potrzebne.
stycze 2004
KK: Wanie. Porozmawiajmy o Owlu, ktrego opublikowae ponad rok temu. Co si od tego czasu zmienio,
gdy jak na razie niewiele sycha o tej inicjatywie. Dla kogo
jest ta dystrybucja i do czego mona j wykorzysta?
AP: Pracuj nad Owl-current, a Owl 1.1 powinien si
ju ukaza, gdy ten wywiad zostanie opublikowany. Postanowiem nie wysya na BugTraqa ogosze o niewielkich
poprawkach bezpieczestwa, ktre wprowadzilimy w midzyczasie, chocia s one oczywicie zamieszczone w pliku
zmian (ang. changelog) Owl-current, oznaczone jako SECURITY-FIX, wraz z innymi duymi zmianami w systemie.
Owl jest przeznaczony przede wszystkim dla dowiadczonych administratorw systemw, ktrzy ceni sobie
bezpieczestwo swoich systemw. Inne przydatne zastosowania Owla mog wynika z dostpnoci w systemie
narzdzi sieciowych, deweloperskich oraz zwizanych
z bezpieczestwem, a take moliwoci atwego jego
przebudowania ze rde (make buildworld).
KK: A jak wyglda komercyjny aspekt tego zagadnienia.
Czy udaje Ci si sprzedawa t dystrybucj Linuksa. Czy jest
due zainteresowanie usug zdalnej instalacji? Czy oferujesz co jeszcze, np. audyt bezpieczestwa wewntrznej
sieci?
AP: Przyjmujemy zamwienia na pyty CD z Owlem.
Wikszo ludzi woli jednak skorzysta z darmowego
pobierania obrazw ISO. Usuga zdalnej instalacji, ktr
udostpniamy (kto uruchamia Owla, konfiguruje sie
i pozwala nam zdalnie dokoczy instalacj, zaczynajc
od podziau dysku na partycj), nie jest zbytnio popularna.
www.linux.com.pl
Prawdopodobnie wynika to z tego, e ludzie, ktrzy wybieraj Owla, nie s aktualnie tymi, ktrzy szukaliby takiego
rodzaju wsparcia.
Mylimy nad przygotowaniem i utrzymywaniem wersji
OEM Owla dla firm, ktre potrzebuj bezpiecznego systemu operacyjnego dla swoich serwerw sieciowych (ang.
network appliance serwers).
Tak, oferujemy inne usugi z zakresu wolnego oprogramowania i bezpieczestwa. Mam tu przykadowo na myli
odpatne tworzenie programw lub rozszerze oprogramowania uwzgldniajcych specyficzne wymagania klientw
(pniej zostaj udostpnione spoecznoci), audyty kodu
rdowego ukierunkowane na bezpieczestwo, rnego
rodzaju konsultacje oraz zdaln administracj systemem.
KK: Jakie oprogramowanie jest jeszcze tworzone
w ramach projektu Openwall? Czy planujesz co nowego?
AP: W ramach projektu Openwall jest tworzonych wiele
programw. W wikszoci s to elementy Owla, ktre s
dostpne take oddzielnie do wykorzystania w innych
systemach uniksowych. Wiele z nich jest w rzeczywistoci
wczanych do innych dystrybucji, take *BSD.
Najbardziej popularny jest mj zestaw narzdzi do hase,
w skad ktrego wchodzi: John the Ripper (narzdzie amice hasa), listy sw, Pam_passwdqc (modu sprawdzajcy
jako hasa) oraz implementacja Bcrypta (mj nowy system
szyfrowania hase, kompatybilny z tym z OpenBSD). Do
tego dochodzi Tcb, implementujcy alternatywny mechanizm zarzdzania hasami, dostpny w Owl, a zaprojektowany i wykonany gwnie przez Rafaa Wojtczuka.
Inne oprogramowanie to Scanlogd (demon wykrywajcy skanowanie portw), Popa3d (demon POP3 zaprojektowany z myl o bezpieczestwie), Msulogin (lepszy
program do logowania si w trybie pojedynczego uytkownika) oraz kilka moduw PAM.
Utrzymywanie i rozszerzanie istniejcego oprogramowania zabiera wiele czasu, zatem nie odwa si w tej
chwili obieca przygotowania cakiem nowych rozwiza.
Znaczce uaktualnienia istniejcych programw s wci
jednak opracowywane.
KK: Czy do projektu mona si jako zapisa i pomaga
Ci w jego rozwoju? Czy mona jeszcze jako inaczej wspiera projekt?
AP: Oczywicie, z chci zobacz wicej utalentowanych ludzi przyczajcych si do mojego zespou. Niektre
rzeczy, ktre musz by zrobione, s zawarte w dokumencie TODO z Owl-current. Poza zgaszaniem wasnego kodu,
przyjmujemy take datki w postaci pienidzy, sprztu lub
usug istotnych dla projektu. Zakup pyt CD z Owlem
i zamawianie patnych usug take jest du pomoc.
KK: Czy moesz powiedzie nam, co mylisz o projekcie
SE Linux? Jak bardzo koncepcyjnie rni si wasze rozwizania?
AP: SE Linux nie jest nawet podobny do Owla. Cytujc
opis ze stron WWW NSA, SE Linux jest po prostu przykadem, jak obowizkowe prawa dostpu, ktre ograniczaj
akcje dowolnego procesu, wczajc w to procesy super-
27
wywiad
28
innych firm (i co waniejsze, ich uytkownikw), wczajc takie mae jak nasza, wsplnie ustalajc daty ujawnienia zagroenia.
Nie widz adnych znaczcych rnic w podejciu do
spraw bezpieczestwa w tych dystrybucjach. Z kolei dystrybucje, ktre s zlokalizowanymi klonami innej dystrybucji,
takie jak Aurox, s troszeczk z tyu i musz goni czowk. Ale to take nie stanowi duej rnicy.
W przeciwiestwie do Owla, adna z trzech wymienionych dystrybucji nie jest zbytnio chtna do przemylenia i przeprojektowania oprogramowania, ktre
wykorzystuj, w celu zwikszania jego bezpieczestwa.
W rzeczy samej, okazjonalnie akceptuj usprawnienia
dotyczce bezpieczestwa w postaci atek, ale, z kilkoma
wyjtkami, nie maj odwagi wprowadzi bezporednich
rodkw zwikszajcych bezpieczestwo, czego dobrym
przykadem jest wspomniany wczeniej Tcb proponowalimy go wszystkim trzem. Z tego powodu, ich
uytkownicy s w wikszej potrzebie bycia na bieco
z uaktualnieniami ni nasi.
KK: Jakie s obecnie, Twoim zdaniem, najwiksze
zagroenia dla bezpieczestwa systemw operacyjnych?
Wirusy, trojany, bdy w oprogramowaniu czy moe
spam? Czy jeste w stanie wytypowa najwiksz luk
w bezpieczestwie 2003 roku?
AP: To, co uwaa si za najwiksze zagroenie, zaley
od systemu operacyjnego, jego zakadanego wykorzystania, jego faktycznego wykorzystania, miejsca uytkowania
i osoby, ktra to robi. Kada z wymienionych przez ciebie
rzeczy moe nim by. Dla Owla i jego uytkownikw, np.
administratorw, s to tylko bdy w oprogramowaniu,
a i to gwnie w tym zewntrznym, instalowanym dodatkowo w Owlu.
Nie wydaje mi si, aby bya jedna najwiksza luka bezpieczestwa 2003 roku, chocia ilo przesyanej poczty
elektronicznej wci ronie, w tym niechcianej, a to jest
coraz bardziej dranice.
KK: Czy jest sens porwnywa bezpieczestwo Linuksa
z Windows, a jeli tak, jak to wyglda?
AP: Jest, szczeglnie w przypadku systemw biurkowych, gdzie mog istnie suszne powody wybrania Windowsa. Na systemach serwerowych zbyt rzadko jest powd,
aby wybra Windowsa.
Standardowa konfiguracja wielu dystrybucji Linuksa
moe wyglda podobnie do konfiguracji Windowsa nastawionej na bezpieczestwo, z trzema wyjtkami: na Linuksie jest lepsza separacja pomidzy kontem uytkownika
a administratora; pomidzy poszczeglnymi systemami
linuksowymi istnieje wiksza rnorodno, co utrudnia
rozprzestrzenianie si robakw i wirusw; liczba takich
robakw i wirusw jest mniejsza, a ich jako sabsza.
KK: To byoby zatem wszystko. Bardzo dzikuj za
powicony czas.
AP: Dzikuj za moliwo przedstawienia naszej
pracy.
stycze 2004
Linux+ 01/2003
Linux+ 02/2003
Linux+ 03/2003
Linux+ 04/2003
Linux+ 05/2003
Linux+ 06/2003
Linux+ 07/2003
Linux+ 08/2003
Numery archiwalne
Prosimy o przesanie kuponu poczt lub faksem.
Prosimy w odpowiednim polu zakreli numery, ktre Pastwo chc zamwi.
biae pola 15 z za egzemplarz
te pola 24 z za egzemplarz
10
11
12
1999
Linux+ 09/2003
Linux+ 10/2003
2000
2001
2002
2003
rocznik 1999 ( 8 numerw) 80 z
rocznik 2000 (12 numerw) 120 z
rocznik 2001 (12 numerw) 120 z
rocznik 2002 (12 numerw) 150 z
rocznik 2003 (12 numerw) 150 z
Linux+ 11/2003
Linux+ 12/2003
L+ 01/2004
Wypenia patnik VAT. Owiadczam(y), e jestem(my) patnikiem VAT i upowaniam(y) Software-Wydawnictwo Sp. z o.o. do wystawienia faktury VAT bez podpisu
odbiorcy.
piecztka i podpis
Software-Wydawnictwo Sp. z o.o.
ul. Lewartowskiego 6, 00-190 Warszawa, Tel.: (22) 860 17 67
bezpieczestwo
Loop-AES szyfrowane
systemy plikw
Skarbimir Kwiatkowski
30
stycze 2004
loop-aes
Co i jak szyfrowa?
Zanim wybierzemy konkretny model zastosowania LoopAES, warto zastanowi si biorc pod uwag rne
istotne okolicznoci nad szczegami rozwizania.
Jakie dane naprawd potrzebuj ochrony? Czy posiadamy
woln cz dysku, ktr moemy przeznaczy na partycj szyfrowan, czy raczej zaley nam na zabezpieczeniu
partycji ju istniejcych i wykorzystywanych? Czy chcemy
mie moliwo atwego usuwania lub przenoszenia
caoci zaszyfrowanych danych, np. na pytach CD? Czy
korzystamy z tej maszyny sami, czy wsplnie z innymi?
Ile spord tych osb ma mie dostp do wraliwych
danych? Czy wygodniej i bezpieczniej bdzie podzieli
je na czci dostpne z osobna dla kadego uprawnionego, czy moe uy wsplnej partycji chronionej hasem
dostpu albo kluczami GnuPG ? Czy potrzebujemy szyfrowanej partycji wymiany?
Ochrona prywatnoci lub tajemnic firmy jest wana,
ale starajmy si nie popada w paranoj. Uczestnicy grup
dyskusyjnych czasem pytaj: czy mog zaszyfrowa cae
drzewo katalogw?. Oczywicie mona to zrobi, pyta-
AES
Modu Loop-AES, autorstwa Fina Jariego Ruusu, implementuje
symetryczny szyfr blokowy Rijndael, ktry w 2000 r. zosta
wyoniony w konkursie ogoszonym przez National Institute of
Standards and Technology (NIST) jako nowy standard zaawansowanej kryptografii. Z tego powodu Rijndael zwany jest najczciej po prostu AES (Advanced Encryption Standard).
Zwycizca konkursu zastpi wysuony, zbyt powolny
i nie do bezpieczny algorytm DES. Oprcz kryteriw technicznych, AES musia speni warunki publicznej dostpnoci
specyfikacji, braku ogranicze natury patentowo-licencyjnej
oraz zapewni wysok wydajno. W finaowej pitce, prcz
opracowanego przez Belgw Joana Daemena i Vincenta Rijmena algorytmu Rijndael, znalazy si rwnie algorytmy Serpent
i Twofish, stosowane w dodatkowych moduach z projektu
Loop-AES.
Algorytm AES uyty w module loop przetwarza niezaszyfrowany tekst na tekst zaszyfrowany o tej samej dugoci. Dane
szyfrowane s 128-, 192- lub 256-bitowym kluczem w 128bitowych blokach, co zapewnia bardzo silne rozproszenie,
a tym samym skuteczn ochron przed rozszyfrowaniem (Rysunek 2). Szyfrowanie blokw odbywa si w trybie CBC (Cipher
Block Chaining), a jako klucz suy skrt hasa podanego przez
uytkownika, obliczany funkcj skrtu SHA-256, SHA-384 lub
SHA-512.
Jak dotd, nie s znane przypadki zamania AES. Atak
siowy, polegajcy na sprawdzaniu wszystkich kluczy, jest
przy obecnych mocach obliczeniowych komputerw nieefektywny, a moliwo ataku algebraicznego dajcego szans
otrzymania rezultatw w rozsdnym czasie stanowi w tej
chwili zaledwie przedmiot kontrowersji wrd specjalistw.
Zainteresowanym szczegami polecam stron domow
projektu Rijndael, a take stron NIST, powicon tematyce
AES.
www.linux.com.pl
Przygotowanie narzdzi
Przed rozpoczciem pracy z szyfrowanymi systemami
plikw, musimy zaopatrzy si w pliki rdowe, ktre
posu do zbudowania niezbdnych binariw:
rda moduu Loop-AES (loop-AES-latest.tar.bz2);
Warto rwnie zaopatrzy si w Ciphers (cipherslatest.tar.bz2), zawierajce rda dodatkowych moduw kryptograficznych, wsppracujcych z Loop-AES
(loop_serpent.o, loop_twofish.o i loop_blowfish.o),
oraz rda pomocniczego narzdzia Aespipe (aespipe-latest.tar.bz2), sucego do szyfrowania danych
w potoku (pipe). Ten ostatni program przyda si
nam, gdy bdziemy chcieli zaszyfrowa ju istniejc
i wykorzystywan partycj, na ktrej przechowujemy
pliki wymagajce ochrony. Aespipe i Ciphers stanowi
cz tego samego projektu Loop-AES.
rda zestawu narzdzi Util-linux (util-linux-2.12pre.
tar.bz2);
Programy mount, umount, losetup, swapon, swapoff
musz mie zaimplementowan obsug kryptograficzn, wic uyjemy odpowiednio poatanej wersji.
rda jdra lub co najmniej jego pliki nagwkowe (w
wielu dystrybucjach dostpne w osobnych pakietach),
pliki nagwkowe biblioteki glibc oraz kompilator
jzyka C (gcc).
31
bezpieczestwo
32
Szyfrowanie partycji
Wreszcie nadesza pora, aby wyprbowa przygotowane oprogramowanie! Na pocztek przedstawi przykad
najbardziej oczywisty, a przy tym prosty. Woln partycj
chcemy przeznaczy na szyfrowane dane. Przyjmuj, e
partycja zostaa ju wczeniej zaoona, np. fdiskiem.
W pierwszym kroku przyczamy partycj do urzdzenia loop. Za pomoc flagi -e okrelamy szyfr (zamiast
AES256 moe to by np. AES128 czy AES192, a jeli zbudowalimy moduy z Ciphers, take np. serpent128 czy
twofish256 ). Nie musimy wasnorcznie adowa moduu
loop, gdy zadba o to jdro systemu, o ile podczas konfiguracji zaznaczylimy "CONFIG_KMOD=y ". Natomiast
stycze 2004
loop-aes
Rysunek 4. Zabezpieczenie dostpu do klucza AES szyfrem niesymetrycznym przy pomocy GnuPG
losetup -d /dev/loopX
$ su
# for prog in `which mount umount losetup swapon
mkdir /mnt/crypto
swapoff`
> do echo "Tworz kopi zapasow $prog.sav"
> cp -p $prog $prog.sav
> done
-o loop=/dev/loopX,encryption=AES256
S
S
losetup,swapon,swapoff}.8.gz \
> /usr/share/man/man5/fstab.5.gz
(rw,loop=/dev/loop0,encryption=AES256)
loop=/dev/loopX,encryption=AES256 0 0
www.linux.com.pl
33
bezpieczestwo
Powinnimy otrzyma co w rodzaju: 8bqMfh75PZnMu+wwjyVq. Oczywicie za kadym razem ten cig bdzie inny. Wyjciowe polecenie losetup, od ktrego zaczlimy procedur
szyfrowania partycji, wygldaoby zatem tak:
Listing 2. Przykadowy plik /etc/fstab z wpisami
dotyczcymi montowania szyfrowanych systemw plikw
# /etc/fstab: statyczna informacja o systemach plikw.
# <system plikow><punkt montowania><typ><opcje> <dump>
loop=/dev/loopX,encryption=AES256,itercountk=100,
pseed=8bqMfh75PZnMu+wwjyVq 0 0
<pass>
/dev/hda2 / ext3 errors=remount-ro 0 1
# szyfrowany swap
/dev/hda5 none swap sw,
count=179200
loop=/dev/loop0,encryption=AES256 0 0
iocharset=iso8859-2 0 0
# szyfrowane urzdzenia
/dev/hda4 /mnt/crypto1 ext2 defaults,noauto,
gpgkey=/floppy/moj_klucz.gpg,gpghome=/floppy 0 0
S
noauto,encryption=AES256,loop=/dev/loop2, S
34
noauto,loop,encryption=AES256 0 0
loop=/dev/loop1,encryption=AES256, S
noauto,user,loop,encryption=AES256 0 0
Oczywicie i tu znalazyby zastosowanie flagi -S i -C programu losetup (zarodek hasa i liczba iteracji). Pominem
je, aby nie komplikowa przykadw.
Na koniec zakadamy katalog, ktrego bdziemy
uywa podczas montowania i ewentualnie dodajemy do
/etc/fstab odpowiedni wpis:
stycze 2004
loop-aes
system plikw zostanie utworzony wedug przedstawionej przed chwil recepty w duym pliku, czy na fizycznej
partycji.
Powinnimy posuy si dyskietk z systemem plikw
pozwalajcym ustala prawa dostpu, np. ext2. Jeeli uyjemy dyskietki dosowej, gpg bdzie zgasza bd.
Zaczynamy od zamontowania dyskietki i generujemy
par kluczy GnuPG, chyba e skorzystamy z ju posiadanych:
mount /dev/fd0 /floppy
gpg --gen-key --homedir /floppy
/dev/loopX /dev/hdaN
mkfs -t ext2 /dev/loopX
losetup -d /dev/loopX
losetup -F /dev/loopX
/floppy/moj_klucz.gpg
loop=/dev/loopX,encryption=AES256, S
gpgkey=/floppy/moj_klucz.gpg,gpghome=/floppy 0 0
encryption=AES256,loop=/dev/loopX, S
losetup -d /dev/loopX
gpgkey=/etc/userkey-crypto.gpg 0 0
www.linux.com.pl
S
S
gpg -e -a always-trust -r "Charlie Root"
-r "Jas Kowalski" -r "Joanna Malinowska" > S
/etc/userkey-crypto.gpg
35
bezpieczestwo
Co z partycj wymiany?
Zagroenie dla poufnoci danych i prywatnoci moe
take pochodzi ze strony partycji wymiany, na ktrej
system tymczasowo zapisuje dane. Jest bowiem prawdopodobne, e podczas pracy uprawnionego uytkownika,
gdy musz by one dostpne w formie niezaszyfrowanej,
system odoy je na partycji swap. Cay wysiek woony
w instalacj i skrupulatne uywanie zabezpiecze kryptograficznych moe wtedy atwo pj na marne, chyba e...
zaszyfrujemy take swap.
Modu Loop-AES pozwala na to, o ile nasz system jest
wyposaony w jdro z serii 2.4 lub nowsze. Decydujc si
na szyfrowanie partycji wymiany powinnimy pamita, e
obarczenie systemu, zwaszcza mocno obcionego, operacjami kryptograficznymi moe zmniejszy jego wydajno.
Najpierw wyczamy aktywne partycje wymiany poleceniem swapoff -a. Nastpnie modyfikujemy wpisy odnoszce si do partycji wymiany w /etc/fstab:
/dev/hdaN none swap sw,loop=/dev/loopX,encryption=AES128 0 0
36
stycze 2004
loop-aes
Wariant dla ambitnych polega na wzmocnieniu zabezpiecze przez uycie zarodka hasa i iterowanym szyfrowaniu skrtu hasa. Wymaga on zastosowania znanych ju
z programu losetup opcji -S (dodanie wygenerowanego
zawczasu zarodka do hasa) oraz -C (liczba wskazujca, ile
tysicy razy szyfrowany jest skrt hasa). Cig otrzymany
z polecenia (tu: qwSIxpGIi6pZNAvj0e7w):
head -c 15 /dev/urandom | uuencode -m - | awk 'NR == 2
{print}'
bs=64k conv=notrunc
Po zakoczeniu operacji edytujemy opcje montowania w /etc/fstab, dodajc do linii dotyczcej tej partycji:
noauto,loop =/dev/loopX,encryption =AES256 i ewentualnie
itercountk=100,pseed = qwSIxpGIi6pZNAvj0e7w, o ile uylimy drugiego wariantu.
Mona rwnie wspomnie o innym ciekawym zastosowaniu Aespipe, mianowicie szyfrowaniu pyt CD, a cilej,
obrazw przygotowanych za pomoc Mkisofs. Tworzymy je
poleceniem:
mkisofs -V TAJNE -J -r nazwa_katalogu | aespipe
-o loop=/dev/loopX,encryption=AES256
Wydajno
Na koniec zacz kilka sw na temat wydajnoci. Niewtpliwie, dodatkowe obcienie komputera operacjami
szyfrowania danych w locie w mniejszym lub wikszym
stopniu musi wpyn na dziaanie systemu. Trzeba
jednak przyzna, e zarwno trafnie wybrany przez
autora projektu algorytm szyfrowania, jak i wykorzystanie urzdzenia loop, do skutecznie minimalizuj narzut
czasowy.
Ponadto, jeli zachowamy umiar, wpyw ten moe
pozosta niemal niezauwaalny. Potwierdzaj to dowiadczenia autora. Prby przeprowadzane na maszynach
z jednym procesorem Pentium 1 GHz lub Athlon 1700
MHz oraz 512 MB RAM, czyli do typowych, przy jednoczesnym wykorzystaniu dwch szyfrowanych partycji
i jednego szyfrowanego pliku o wielkoci 1 GB, prowadz
do wniosku, e komfort pracy nie zmniejsza si w istotny
www.linux.com.pl
Pierwsza liczba oznacza zmniejszon warto domyln, nastpne pary liczb nadpisuj j, przeznaczajc dla
loop3 200 stron pamici, a dla loop4 250 (skadnia dopuszcza co najwyej cztery takie pary).
Uwagi kocowe
Staraem si przedstawi zalety omawianych narzdzi
moliwie wszechstronnie. Nie zamykam przy tym oczu na
wady loop-AES. Zalicza si do nich zwaszcza uciliwo
dodatkowych zabiegw zwizanych z kompilacj i instalacj niezbdnych binariw, co gorsza, pocigajca za sob
ingerencj w integralno systemu pakietowego. Sdz
jednak, e korzyci warte s podejmowania tego wysiku.
Jeli Czytelnik nie czuje si w peni przekonany o poytkach pyncych ze stosowania zaawansowanej kryptografii, by moe samodzielne prby, do ktrych gorco
zachcam, stan si czynnikiem przesdzajcym.
W Sieci:
37
bezpieczestwo
Wzmacniamy jdro:
Openwall i GrSecurity
Micha Miszewski
ak wiadomo, za wikszo mechanizmw bezpieczestwa odpowiedzialne jest jdro systemu. Zapewnia ono prawidowe dziaanie procesw, podzia
uprawnie, przydzielanie pamici oraz wiele innych
funkcji, istotnych dla bezpiecznego funkcjonowania systemu. Te standardowe mechanizmy bezpieczestwa mona ulepszy przy uyciu wielofunkcyjnych
poprawek nakadanych na jdro systemowe. Przedstawi
dwie z nich: Openwall oraz bardziej od niego rozbudowany GrSecurity.
Warto zainstalowa jedno z opisywanych tu rozwiza, poniewa pozwalaj one m.in. na utrudnienie
wamywaczowi wykorzystania nowoodkrytego bdu,
gdy atka go poprawiajca nie jest jeszcze dostpna. Przykadem moe by luka typu przepenienie bufora (ang.
buffer overflow) w ProFTPd 1.2.7. Serwery z zainstalowanym GrSecurity lub Openwall nie byy wraliwe na atak
wykorzystujcy ten bd.
Openwall
Autorem tej atki zwikszajcej bezpieczestwo jdra
jest Solar Designer, twrca wielu rozwiza dotyczcych
bezpieczestwa, takich jak Owl (dystrybucja Linuksa)
czy John the Ripper (znany program do amania hase).
Pocztkowo Openwall powsta jako poprawka dla jder
z serii 2.0.x oraz 2.2.x. Od niedawna rozwijana jest take
wersja dla jder z gazi 2.4.x. Poprawka wprowadza
m.in. zabezpieczenia przed atakami typu przepenienie
bufora, ograniczenia w dostpie do systemu plikw /proc
oraz katalogw z flag +t.
Instalacja
Instalacj atki przedstawi na przykadzie jdra 2.4.22.
Proces instalacyjny dla kadej innej wersji przebiega analogicznie. Najpierw cigamy czyste rda jdra. Pakiety z jdrami dostarczane wraz z dystrybucjami czsto
zawieraj dodatkowe zmiany wprowadzone przez programistw zajmujcych si dan dystrybucj i mog wystpi
O autorze:
Autor jest komputerowym hobbyst. Linuksem zajmuje si
od 3 lat. Interesuje si programowaniem (C, Perl, PHP) oraz
rnymi aspektami bezpieczestwa systemw komputerowych. Kontakt z autorem: autorzy@linux.com.pl.
38
GrSecurity
GrSecurity powstao jako przeniesienie poprawki Openwall
dla jder z gazi 2.4. atka rozwijana jest przez Bradleya
Spenglera. Tak jak w przypadku wczeniej omawianego
Openwalla, celem GrSecurity jest wprowadzenie dodatkowych zabezpiecze jdra systemowego. Do najwaniejszych z nich nale listy kontroli dostpu (Access Control
Lists, w skrcie ACL). Pozwalaj one m.in. na przydzielanie
stycze 2004
openwall i grsecurity
Opcje Openwall:
Instalacja
Podobnie jak w przypadku atki Openwall, potrzebujemy
czystych rde jdra systemowego i samego pakietu
GrSecurity. Po rozpakowaniu rde jdra i atki GrSecurity do katalogu /usr/src, nakadamy poprawk poleceniem
patch -p1 < grsecurity-1.9.12-2.4.22.patch. W menu konfiguracyjnym jdra powinna pojawi si sekcja GrSecurity,
z ktrej moemy wybra stopie zabezpiecze (Security
level ). Wybierajc niski (low) poziom bezpieczestwa, wczamy tylko te opcje, ktre na pewno nie bd powodoway niekompatybilnoci z nietypowym oprogramowaniem.
Stopie redni (medium) znacznie zwiksza bezpieczestwo, zachowujc zgodno z wikszoci programw.
Wymagane jest, aby inetd pracowa z GID 10 (zazwyczaj
www.linux.com.pl
39
bezpieczestwo
Kompilacja
Po naoeniu na jdro jednej z atek, naley skompilowa
jdro. Proces ten przeprowadzamy w standardowy sposb,
wsplny dla kadej z dystrybucji Linuksa. Udajemy si wic
do katalogu /usr/src/katalog_ze_rdami_jdra/ i wykonujemy polecenia: make dep, make clean, make bzImage, make
modules, make modules_install. Pozostaje jeszcze wyda
polecenie depmod -a, ktre utworzy plik modules.dep
dla skompilowanych moduw. Jeli wszystko poszo po
naszej myli, w katalogu /usr/src/katalog_ze_rdami_
jdra/arch/i386/boot/ otrzymamy plik bzImage, ktry jest
naszym wanie skompilowanym jdrem systemowym. Jeli
40
Address Space Protection sekcja ta zawiera opcje utrudniajce przeprowadzanie atakw typu przepenienie bufora
oraz modyfikowanie pracujcego jdra systemowego (zabezpieczenia te polegaj midzy innymi na wprowadzeniu
niewykonywalnych stron pamici oraz losowym pooeniu
stosu);
ACL options opcje konfiguracyjne list kontroli dostpu;
Filesystem Protections opcje dotyczce ogranicze
dostpu do /proc, tworzenia dowiza i kolejek FIFO
w katalogach z flag +t oraz dodatkowych zabezpiecze
chroot;
Kernel Auditing opcje dotyczce logowania rnych zdarze w systemie, takich jak prby przekroczenia limitw,
zmiany katalogw, nazwy uruchamianych procesw itp.;
Executable Protections opcje zwizane z procesami,
takie jak losowe numery PID, blokada dostpu do dmesg
oraz restrykcje w uruchamianiu plikw wykonywalnych;
Network Protections dodatkowe zabezpieczenia TCP/IP,
takie jak losowe porty rdowe przy poczeniach, lepszy
algorytm wybierania pocztkowego numeru sekwencyjnego pakietw IP czy ograniczenie praw do tworzenia
gniazdek dla niektrych uytkownikw;
Sysctl support po zaznaczeniu tej opcji administrator
moe konfigurowa GrSecurity umieszczajc wartoci
1 lub 0 w specjalnych plikach w /proc/sys/kernel/
grsecurity/. Po wprowadzeniu zmian, trzeba je zablokowa
umieszczajc warto 1 w pliku grsec_lock. Linie konfigurujce GrSecurity musz znajdowa si w skryptach
startowych systemu. Skrypty te powinny by dostpne
tylko do odczytu, a root nie moe mie moliwoci dodawania moduw jdra oraz przeprowadzania bezporednich operacji I/O.
/usr/src/katalog_ze_rdami_jdra/arch/i386/boot/
Podsumowanie
Osobom chccym dodatkowo zabezpieczy swoj stacj
robocz z powodzeniem powinna wystarczy atka Openwall. Jest atwa w konfiguracji i z jej instalacj powinien
poradzi sobie kady, kto potrafi skompilowa jdro systemowe. Bardziej zaawansowani uytkownicy oraz administratorzy wikszych serwerw powinni wybra GrSecurity.
atki GrSecurity i Openwall pozwalaj znaczenie
ulepszy mechanizmy zabezpiecze w jdrze systemowym. Ich moliwoci powinien pozna kady administrator, ktry powanie traktuje sprawy bezpieczestwa
swojego systemu.
W Sieci:
stycze 2004
testy
Instalacja
Wspczesne dystrybucje Linuksa w znacznej wikszoci
przyzwyczaiy nas do prostej instalacji. Nie inaczej jest
w SuSE. Instalacja ogranicza si do kilku klikni myszk,
co pozwoli pocztkujcemu uytkownikowi na proste
i szybkie zainstalowanie systemu. Dla bardziej zaawansowanych uytkownikw, firma SuSE przygotowaa wiele
opcji, ktre pozwol w najdrobniejszych detalach dopasowa system do swoich potrzeb. Cao instalacji przebiega
w estetycznym rodowisku graficznym. Dla posiadaczy
sabszych komputerw przygotowano rwnie tryb tekstowy. Niestety, w trybie graficznym brak jest obsugi
jzyka polskiego. Miejmy nadziej, e w przyszej wersji
SuSE ulegnie to zmianie.
Pierwsze uruchomienie
Test systemu przeprowadzono na komputerze AMD
Athlon 1200 z 384 MB RAM, kart graficzn opart na
chipie Nvidia GeForce2 i kart dwikow Sound Blaster
Live! 5.1 Digital. System bez problemu wykry wszystkie
urzdzenia i poprawnie je skonfigurowa. Wacicieli
kart graficznych opartych o chipsety Nvidia z pewnoci
ucieszy fakt, i firma SuSE przygotowaa dla nich pakiet
RPM ze sterownikami. Mona go w bardzo prosty sposb
pobra dziki programowi YOU (YaST Online Update). Po
zalogowaniu do systemu, powita nas rodowisko graficzne KDE 3.1.4, ktre od lat jest w SuSE standardowym rodowiskiem pracy, najlepiej zintegrowanym z narzdziami
administracyjnymi producenta dystrybucji. Bez cienia
wtpliwoci mog powiedzie, e pod wzgldem estetycznym, domylny pulpit SuSE prezentuje si najlepiej ze
wszystkich znanych mi dystrybucji Linuksa.
42
YaST
Narzdziem administracyjnym w systemie SuSE Linux jest
program YaST. Pomoe on nam w konfiguracji wszystkich,
nawet najdrobniejszych ustawie dotyczcych naszego
systemu. Dziki modularnej budowie, moemy wyposay YaST-a tylko w te moduy, ktre s nam naprawd
potrzebne. Narzdzie administracyjne SuSE wyposaone
zostao m.in. w moduy do konfiguracji sprztu, instalacji/
usuwania/aktualizacji oprogramowania, konfiguracji rodowiska X Window oraz zarzdzania popularnymi serwerami
(m.in. Apache i Samba). YaST moe pracowa zarwno
w trybie graficznym, jak i tekstowym. Ten drugi z pewnoci
Jdro 2.4.21;
KDE 3.1.4 i GNOME 2.2.2;
Samba 2.2.8a;
nowe moduy programu YaST: DNS, DHCP, TFTP, Apache,
Samba;
wsparcie dla Ipv6;
GCC 3.3.1;
Sun Java 1.4.1;
Glibc 2.3.2;
Apache 2.0.47;
RPM 4.1.1;
stycze 2004
Rysunek 3. YaST2
przyda si przy zdalnej administracji systemem. Cao sprawia wraenie bardzo spjnej i przemylanej konstrukcji.
Plusy:
Minusy:
www.linux.com.pl
Dzikujemy firmie SuPLIX, dystrybutorowi systemu operacyjnego SuSE Linux, za udostpnienie egzemplarza do testw.
http://www.suplix.pl/
43
dla pocztkujcych
Praca z OpenSSH
Piotr Machej
dobie powszechnej dostpnoci Internetu coraz wicej osb zdaje sobie spraw
z czyhajcych w nim niebezpieczestw.
Miny ju czasy, gdy mona byo swobodnie korzysta z Telnetu nie martwic si, e kto podsucha nasze haso i wamie si nam na konto. Standardem
w czeniu si ze zdalnymi komputerami jest obecnie SSH
w wersji 2 (Secure SHell, czyli bezpieczna powoka).
W niniejszym artykule omwimy instalacj, konfiguracj i wykorzystanie programu OpenSSH, bezpatnej i wolnej
wersji oprogramowania obsugujcego protok SSH. Dziki
niemu moemy logowa si na zdalne maszyny i kopiowa
midzy nimi pliki bez obawy o to, e kto podsucha nasze
haso czy przesyane dane.
Przykad uycia
Graem wanie w Tux Racer, gdy na komrk przyszed
SMS od jednego ze znajomych. Prosi ze zami (wirtualnymi) w oczach o udostpnienie mu jakiego konta,
z ktrego mgby wchodzi na IRC bez ogranicze (bez
flagi restricted ).
Poniewa bardzo go lubi, od razu (no, prawie najpierw dojechaem do mety) przeczyem si na mj Multi
GNOME Terminal, aby zalogowa si na serwer stojcy
na drugim kocu Polski. Oczywicie do poczenia
wykorzystaem OpenSSH, a nie Telnet przecie nie
pozwol, aby kto mg podsucha moj transmisj. Po
podaniu hasa przeprowadziem rutynowe sprawdzenie,
czy z serwerem wszystko w porzdku (a jake, stoi bez
problemw ju drugi miesic od ostatniego wyczenia
prdu). Zalogowaem si na konto root, a nastpnie utworzyem znajomemu konto. Wysaem do niego wiadomo
z nazw uytkownika i hasem, ktre zmieni zaraz po
zalogowaniu. Po chwili otrzymaem od niego kolejnego
SMS-a. Powiadamia mnie w nim, e ju utworzy sobie
zgrabny tunel (korzystajc z OpenSSH), biegncy przez
mj serwer do serwera IRC. W ten sposb mg nadal
rozmawia z uyciem swojego ulubionego mIRC-a, a rwnoczenie wszystkim rozmwcom wydawao si, e jest
O autorze:
Autor zakoczy studia zaoczne na V roku Informatyki na
Politechnice Opolskiej. Z Linuksem (i oglnie systemami
uniksowymi) ma styczno od wielu lat. Obecnie administruje sieci blokow zoon z dziesiciu komputerw.
Kontakt z autorem: autorzy@linux.com.pl.
44
Numeracja wersji
Zaczynamy od uruchomienia przegldarki internetowej (przykadowo Mozilla) oraz otwarcia witryny http://predict.chem.uw.edu.pl/openssh/, ktra jest
zlokalizowanym w Polsce odpowiednikiem strony http:
//www.openssh.com/. Sprawdzamy na niej, jaki jest numer
najnowszej wersji programu (w chwili pisania artykuu jest
to numer 3.7.1). Nastpnie wybieramy odnonik "Linux,
stycze 2004
openssh
Instalacja pakietw
Jeli pobralimy pakiety rpm, moemy zainstalowa je
w systemie. Potrzebujemy do tego uprawnie superuytkownika, wic zaczynamy od wydania polecenia su
- i podania hasa uytkownika root. Nastpnie przecho-
Kompilacja ze rde
W katalogu, w ktrym mamy plik ze rdami programu (w
naszym przykadzie jest to plik openssh-3.7.1p2.tar.gz), wydajemy polecenie tar xvzf openssh-3.7.1p2.tar.gz. Utworzy
ono podkatalog o nazwie openssh-3.7.1p2/ i umieci w nim
rozpakowane rda. Wchodzimy do katalogu poleceniem cd
openssh-3.7.1p2/.
Teraz moemy wyda polecenie ./configure. Domylnie
OpenSSH instaluje si w podkatalogach katalogu /usr/local/
(dokadne cieki zostan wypisane na ekranie). Jeli chcemy
to zmieni, moemy uy przykadowo polecenia ./configure
--prefix=/usr.
Nastpnie wydajemy polecenie make, co spowoduje przeprowadzenie waciwej kompilacji. Po jej zakoczeniu musimy
skorzysta z uprawnie uytkownika uprzywilejowanego.
Wydajemy polecenie su i podajemy haso uytkownika root,
a nastpnie przeprowadzamy instalacj OpenSSH poleceniem
make install.
Jeli chcemy skorzysta z innych opcji konfiguracyjnych,
moemy si z nimi zapozna wydajc polecenie ./configure
--help. Warto te zapozna si z plikami README i INSTALL
umieszczonymi w katalogu ze rdami.
www.linux.com.pl
S
openssh-askpass-3.7.1p2-1.i386.rpm S
openssh-askpass-gnome-3.7.1p2-1.i386.rpm
openssh-clients-3.7.1p2-1.i386.rpm S
openssh-server-3.7.1p2-1.i386.rpm
Uruchomienie serwera
Po zainstalowaniu OpenSSH, plik serwera (sshd ) powinien
znajdowa si w katalogu /usr/sbin/ lub /usr/local/sbin/
zalenie od instalacji. Jeli mamy wtpliwoci, moemy
jego lokalizacj sprawdzi poleceniem which sshd, wywoanym z konta uytkownika root.
W dystrybucji Aurox moemy go uruchomi poleceniem /etc/rc.d/init.d/sshd start, a zatrzyma za pomoc
/etc/rc.d/init.d/sshd stop. Jeli zmieniamy konfiguracj
programu, powinnimy go zrestartowa. Suy do tego
polecenie /etc/rc.d/init.d/sshd restart.
Zwykle chcemy, aby serwer OpenSSH uruchamia si
przy starcie systemu. W tym celu uruchamiamy polecenie
ntsysv i upewniamy si, e przy pozycji sshd znajduje si
gwiazdka. Jeli nie, to zaznaczamy j i wciskamy OK.
45
dla pocztkujcych
Konfiguracja serwera
Pliki konfiguracyjne OpenSSH znajduj si w katalogu
/etc/ssh/. Podstawowym plikiem jest /etc/ssh/sshd_config.
Moemy edytowa go naszym ulubionym edytorem tekstowym (jak zwykle preferuj edytor Vim, ale kady moe
wybra taki, jaki lubi najbardziej).
Wikszo opcji w tym pliku ujta jest w komentarze (na
pocztku linii znajduje si znak #). S to opcje posiadajce
wartoci domylne. Jeli chcemy je zmieni, naley usun
znak # z pocztku wybranej linii i zmieni warto opcji.
46
Port okrela, na jakim porcie serwer nasuchuje przychodzcych pocze (domylnie ustawiona na warto 22);
Protocol okrela, ktre wersje protokou SSH s obsugiwane przez serwer (domylnie obsugiwane s obie,
wic opcja przyjmuje warto 2,1);
ListenAddress wskazuje adresy, na ktrych serwer
nasuchuje przychodzcych pocze (domylnie nasuch
prowadzony jest na wszystkich dostpnych adresach);
LoginGraceTime wyznacza czas, po jakim serwer zrywa
poczenie, jeli uytkownik nie zdy si zalogowa
poprawnie (domylnie wynosi 2 minuty, a ustawienie tej
opcji na 0 wycza limit czasu);
PermitRootLogin okrela, czy mona logowa si
bezporednio na konto uytkownika root. Zalecane jest
ustawienie tej opcji na no, gdy utrudnia to zadanie
ewentualnemu wamywaczowi (najpierw musi zdoby
konto zwykego uytkownika). Oprcz wartoci yes i no
s dostpne jeszcze without-password oraz forcedcommands-only. Warto without-password sprawia,
e uytkownik root nie moe zalogowa si korzystajc
z hasa systemowego (nadal jednak moe uy klucza
publicznego). Z kolei forced-commands-only pozwala
mu na zautoryzowanie si z pomoc klucza publicznego,
jednak dopuszcza tylko wykonanie komendy podanej
w wywoaniu OpenSSH.
PubkeyAuthentication pozwala na autoryzacj z uyciem
klucza publicznego (domylnie ustawiona na yes (tak));
AuthorizedKeysFile wskazuje plik w katalogu domowym
uytkownika, ktry zawiera klucze publiczne osb mogcych logowa si na konto;
PasswordAuthentication pozwala na autoryzacj z uyciem hasa systemowego (domylnie ustawiona na yes
(tak));
PermitEmptyPasswords t opcj lepiej pozostawi ustawion na no, dziki czemu nie bdzie moliwe logowanie
si na konta z pustymi hasami;
Subsystem sftp konfiguruje dodatkow usug bezpiecznego transferu plikw (SFTP).
Konfiguracja klienta
Domylne opcje konfiguracyjne klienta s zwykle zadowalajce dla wikszoci uytkownikw. Wielu z nich
nie zdaje sobie jednak sprawy z iloci dostpnych opcji.
Gwnym plikiem konfiguracyjnym jest plik /etc/ssh/
ssh_config. Zawiera on ustawienia wsplne dla wszystkich uytkownikw. Oprcz tego, kady z uytkownikw
moe utworzy wasny plik konfiguracyjny o nazwie
~/.ssh/config oraz doda opcje podczas wpisywania polecenia w linii komend.
Kolejno pobierania danych przez OpenSSH jest nastpujca:
parametry podane w linii komend;
opcje zawarte w pliku konfiguracyjnym uytkownika
(~/.ssh/config);
opcje zawarte w systemowym pliku konfiguracyjnym
(/etc/ssh/ssh_config).
Dla kadej opcji pobierana jest tylko pierwsza napotkana warto (pozostae s ignorowane). Jeli wic jaka
opcja znajdzie si w kilku miejscach pliku ~/.ssh/config,
to zostanie jej przypisana pierwsza napotkana warto.
A jeli dodatkowo uytkownik ustawi opcj w linii
komend, to wszystkie jej wystpienia w plikach konfiguracyjnych zostan zignorowane.
Opcje w pliku konfiguracyjnym mog by pogrupowane w zalenoci od komputera, ktrego dotycz
rne opcje dla kadego komputera, z ktrym si czymy. Kada taka sekcja zaczyna si od linii o treci:
stycze 2004
openssh
PuTTY
Naley wiedzie, e nazwa_serwera powinna by dokadnie t nazw, ktr wpisujemy w linii polece podczas uruchamiania OpenSSH. Wynika to z tego, e nazwa ta nie jest
konwertowana do postaci kanonicznej przed porwnaniem
z wartoci opcji Host. Jeli zaley nam, aby jakie opcje
dotyczyy wszystkich serwerw, to umieszczamy je w sekcji
Host *. Sekcja ta powinna znajdowa si na samym kocu
pliku (ze wzgldu na to, e pobierane s tylko pierwsze
wystpienia opcji).
Praca z OpenSSH
OpenSSH najczciej wykorzystujemy do bezpiecznego
logowania si na konta na zdalnych serwerach. W takim
przypadku wywoanie programu jest proste:
ssh uytkownik@adres.serwera
Jeli na zdalnym serwerze mamy tak sam nazw uytkownika, jak na lokalnym, moemy uywa skrconej postaci:
ssh adres.serwera
www.linux.com.pl
WinSCP
Tekstowe interfejsy programw SCP i PSCP mog zrazi uytkownikw przyzwyczajonych do posugiwania si myszk. Dla
nich wybawieniem bdzie WinSCP. Program ten, z wygldu
podobny do Total Commandera, pozwala na sprawne kopiowanie plikw pomidzy lokalnym i zdalnym komputerem. Obsuguje zarwno SCP, jak i SFTP.
Wykonywanie polece
Czasem na zdalnym komputerze chcemy wykona tylko
jedno polecenie, przykadowo wywietli spis nawizanych pocze. Nie musimy wtedy uzyskiwa dostpu do
linii polece wystarczy, jeli zapoznamy si z wynikiem
dziaania polecenia. W tym celu do opisanych wczeniej
sposobw wywoania OpenSSH powinnimy dopisa
polecenie, ktre chcemy wykona na zdalnym komputerze, np.:
47
dla pocztkujcych
48
Jako typ klucza moemy poda rsa1 (klucz RSA dla starszej
wersji SSH), rsa (klucz RSA dla SSH w wersji 2.) oraz dsa
(klucz DSA dla SSH w wersji 2.).
Zostajemy zapytani o nazw pliku, w ktrym ma
zosta zapisany klucz prywatny (domylnie jest to plik
~/.ssh/id_rsa), a nastpnie o chronice go haso. Haso
to powinno by trudne do odgadnicia. Najlepiej, jeli
bdzie miao co najmniej 10 znakw (w tym litery due
i mae oraz cyfry). Musi jednak rwnoczenie by atwe
do zapamitania, gdy zapomnianego hasa nie da si
odzyska w takim przypadku musimy generowa
klucze od nowa. Moemy nie ustawia hasa, jednak nie
jest to zalecane. Po powtrnym wpisaniu hasa klucze
s generowane i zapisywane na dysku. Klucz prywatny
domylnie znajduje si w pliku ~/.ssh/id_rsa, natomiast
klucz publiczny w pliku ~/.ssh/id_rsa.pub.
Jeli kiedy stwierdzimy, e chcemy zmieni haso
chronice nasz klucz prywatny, moemy to zrobi wydajc polecenie ssh-keygen -p -f ~/.ssh/id_rsa. Bedziemy
musieli poda dotychczasowe haso oraz (dwukrotnie)
nowe haso.
stycze 2004
openssh
Teraz
logujemy
www.linux.com.pl
mie posta:
ssh -l gerard -i ~/.ssh/id_rsa 192.168.0.5
49
dla pocztkujcych
Zabezpieczenie poczty
Tworzenie tuneli
Na pocztku artykuu (w rozdziale Sposb uycia) wspomniaem, e znajomy zrobi sobie tunel ze swojego komputera do mojego serwera, dziki czemu mg swobodnie
korzysta z IRC-a. Teraz nadszed czas, aby wyjani
dokadniej, na czym to polega, i jak mona zrobi to
samemu.
Program OpenSSH pozwala na wykorzystanie opcji
-L port_lokalny:host:port_hosta. Powoduje ona, e pomidzy portem port_lokalny na naszym komputerze a zdalnym komputerem zostanie utworzony szyfrowany tunel.
W przypadku poczenia si z portem port_lokalny pakiety bd wdrowa przez ten tunel, a nastpnie z kompu-
50
uytkownik@adres.serwera.ssh
uytkownik@adres.serwera.ssh.i.poczty
stycze 2004
openssh
ssh -N -f -L 6669:poznan.irc.pl:6667
uytkownik@zdalny.serwer.ssh
Po podaniu hasa moemy uruchomi sobie IRC-a i poczy si z portem 6669 serwera localhost. Nasze poczenie
zostanie przekazane zabezpieczonym tunelem do zdalnego
serwera SSH, a stamtd przekierowane na port 6667 serwera poznan.irc.pl. Z punktu widzenia serwera poznan.irc.pl
(a wic i innych uczestnikw rozmowy na IRC-u) bdzie
si wydawao, e nasz program Irc jest uruchomiony na
komputerze zdalny.serwer.ssh.
Zakoczenie
Bezpieczestwo w Sieci jest obecnie spraw kluczow.
Nawet w takim oprogramowaniu jak OpenSSH zdarzaj
si dziury, wic naley pamita o czstej aktualizacji
najwaniejszych pakietw oraz obserwowaniu ogosze
o krytycznych bdach. Naley te zdawa sobie spraw,
e nawet najlepsze oprogramowanie moe nas nie uchroni przed atakami, gdy zwykle najsabszym ogniwem
jest czowiek. Jeli ustawimy atwe do odgadnicia haso,
to nikt go nie bdzie musia podsuchiwa po prostu je
wpisze.
W Sieci:
www.linux.com.pl
51
sprzt
Lm_sensors i Smartmontools
czujniki naszego komputera
Piotr Wolny
52
dla MS Windows, dostarczanych na og przez producentw pyt gwnych, chipsetw bd dyskw twardych.
W Linuksie czujniki na pycie gwnej moemy odczytywa przy pomocy oprogramowania Lm_sensors (http://
www.lm-sensors.nu/ ), a informacje SMART dostpne s
dziki programom z projektu Smartmontools (http://smartmontools.sourceforge.net/ ).
stycze 2004
lm_sensors
Za bezporedni odczyt danych z czujnikw pyty gwnej odpowiada pojedynczy ukad scalony. Pobrane dane
trafiaj do systemu operacyjnego poprzez magistral I2C
(lub SMBus). Potrzebujemy zatem:
modu jdra, sterujcy magistral I2C;
Instalacja ze rde
Czeka nas obowizkowa rekompilacja caego jdra Linuksa.
Najpierw bdziemy musieli naoy na jdro specjaln atk
z najnowsz wersj I2C oraz poprawkami dla wszystkich sterownikw korzystajcych z magistrali I2C. Instalacj przeprowadzamy wic w nastpujcych krokach:
2.8.1.patch;
konfigurujemy i kompilujemy nowe jdro. Przy konfiguracji
jdra, w dziale Character devices wybieramy I2C support,
zaznaczamy koniecznie jako moduy I2C support,
I2C device interface oraz I2C proc interface. Jeli mamy
kart telewizyjn, zaznaczamy rwnie I2C bit-banging
interfaces. Nie zaszkodzi rwnie, jeli zaznaczymy jako
moduy rwnie inne sterowniki z tego dziau;
uruchamiamy system na nowym jdrze, a nastpnie
cigamy i rozpakowujemy plik lm_sensors-2.8.1.tar.gz:
tar zxfvp lm_sensors-2.8.1.tar.gz; cd lm_sensors-
2.8.1;
w archiwum Lm_sensors nie ma skryptu configure, wic
moemy od razu wyda polecenie make. Jeli jednak
chcemy zmodyfikowa jakie opcje kompilacji, moemy
rcznie poprawi plik Makefile. Wszystkie opcje s w nim
dobrze udokumentowane. Niestety z aktualn wersj
nie mona wczy opcji nakazujcej skompilowanie
programu sensord;
instalacj kocz polecenie make install oraz uruchomienie programu mkdev.sh, ktry znajdziemy w katalogu
prog/mkdev dystrybucji rdowej lm_sensors. Oczywicie polecenia te wydajemy jako root.
www.linux.com.pl
Instalacja Lm_sensors
Wikszo dystrybucji Linuksa dostarcza pakiet Lm_sensors, jednake jego konfiguracja pozostaje w rkach uytkownika.
W Mandrake 9.2 pakiet lm_sensors-2.8.0-4mdk moemy
zainstalowa np. przy pomocy graficznego narzdzia do
instalacji pakietw. W Aurox 9.1 pakiet lm_sensors-2.6.55.i386.rpm (niestety troch starsza wersja) powinien zosta
zainstalowany razem z systemem, a jeli tak si nie stao,
moemy znale go na pierwszej pycie CD. Jeli korzystamy z ktrej z powyej wymienionych dystrybucji, moemy
od razu przej do czci Konfiguracja Lm_sensors.
Debian Woody rwnie dostarcza pakiety lm-sensors
(zawiera podstawowe programy narzdziowe) oraz lmsensors-source (z moduami jdra w postaci rdowej).
W przypadku tej dystrybucji instalacja pakietw jest nieco
trudniejsza chcemy postpowa zgodnie z zasadami dystrybucji Debian. Po zainstalowaniu pakietw lm-sensors
oraz lm-sensors-source musimy rozpakowa plik /usr/src/
lm-sensors.tar.gz i przy pomocy polecenia make-kpkg (z
pakietu kernelutils) skompilowa nowy pakiet z moduami
jdra: cd /usr/src/linux; make-kpkg --revision wersja1
modules_image. Oczywicie w /usr/src/linux musz znajdowa si rda aktualnie uywanego jdra i musimy uy
tej samej wersji kompilatora gcc, ktra zostaa uyta do zbudowania jdra. Jeli wszystko pjdzie dobrze, w katalogu
/usr/src/ znajdziemy pakiet Debiana z moduami jdra,
ktry instalujemy poleceniem dpkg -i <nazwa pliku.deb>.
Konfiguracja Lm_sensors
Nastpnym krokiem jest uruchomienie w konsoli jako
root programu sensors-detect. Sprbuje on zaadowa
rne moduy magistrali I2C oraz rne moduy obsugu-
53
sprzt
adujemy wic wymienione wczeniej moduy i odczytujemy najpierw czujniki eeprom poleceniem: sensors eeprom-*.
W efekcie dostajemy jedynie mao uyteczne informacje na
temat zainstalowanych koci pamici w systemie. Modu ten
nie bdzie nam potrzebny, wic moemy usun go z listy
adowanych przy starcie. Nastpnie badamy kolejny ukad:
sensors it87-*. Wynik dziaania tej komendy na moim
systemie zamieciem na Listingu 2. Co prawda, na pierwszy rzut oka wydaje si, e wynik jest mao rozsdny (przy
ponad poowie wszystkich wartoci pojawia si ALARM),
ale okazao si, i jest to prawidowy modu jdra.
Modyfikacje w /etc/sensors.conf
Program sensors na moim systemie zwrci nieco dziwne
wyniki, wic warto przyjrze si konfiguracji w /etc/
sensors.conf. Jest to bardzo obszernie skomentowany plik,
ktry okrela konfiguracj kolejno dla wszystkich obsugiwanych ukadw. Mnie w tym przypadku interesowa
wycznie it87.
Zauwayem, i BIOS mojego komputera w ogle nie
pokazuje napi ujemnych -5 i -12. Program sensors pokazywa w tym zakresie niedorzeczne wyniki, wic doszedem do wniosku, i mj sprzt nie potrafi ich prawidowo
odczytywa. Podobnie zreszt z napiciem Stdby. Postanowiem zignorowa te napicia, dopisujc w /etc/sensors.conf
przy moim chip'ie linie:
ignore in5;
ignore in6;
ignore in7;
modprobe eeprom
modprobe it87
ignore fan2;
# sleep 2 # optional
ignore fan3;
/usr/local/bin/sensors -s # recommended
#----cut here----
54
Ostatnim niepokojcym zjawiskiem byy za wysokie napicia Vcore oraz +12. W tym przypadku uyem woltomierza,
stycze 2004
lm_sensors
0 RPM, div = 2)
www.linux.com.pl
55
sprzt
GKrellM
Najbardziej rozbudowan aplikacj graficzn, suc do monitorowania systemu, jest GKrellM. Wyrnia si on duymi moliwociami (potrafi monitorowa kilkadziesit rnych wartoci
i jest atwo rozszerzalny poprzez wtyczki), a jego wygld mona
dostosowa do wasnych preferencji poprzez skrki (skins).
Uytkownicy Aurox Linux mog znale najnowsz wersj
wraz z dodatkami na freshrpms.net. Na tej stronie, po wybraniu Red Hat 9, naley cign pakiet fftw oraz pakiety
gkrellm, gkrellm-plugins, gkrellm-themes.
Po uruchomieniu aplikacji i naciniciu klawisza [F1],
moemy wybra, ktre parametry systemu chcemy mie na
bieco pod kontrol. Wrd kilkudziesiciu z nich, najpopularniejsze to oczywicie obcienie procesora i sieci, zajto
i praca dyskw oraz oczywicie czujniki komputera. Aby oglda wyniki ich odczytw w GKrellM, musimy najpierw skonfigurowa Lm_sensors, w przeciwnym razie w dziale Czujniki
(Sensors ) nie znajdziemy adnych pozycji do zaznaczenia.
GkrellM mona take uywa do innych zada, np. podgld
kamery internetowej, sprawdzanie, czy dany komputer odpowiada na pingi, informowanie o nowej poczcie, a nawet jako
mikser dwiku, tuner radiowy i wielu innych.
Pord wielu zalet tego programu trzeba wymieni pen
konfigurowalno, bardzo dobr pomoc (rwnie spolszczon),
ktr mona znale w zakadce Info przy kadej pozycji
w konfiguracji, oraz moliwo ustawienia wielu zaawansowanych parametrw, wycznie przy uyciu myszki.
Technologia SMART
Jeli nasz dysk twardy wspiera SMART, moemy z niego
wycign wiele ciekawych informacji. W tym celu
Listing 3. Wynik dziaania programu sensors po modyfikacji
/etc/sensors.conf
W Sieci:
0 RPM, div = 2)
56
stycze 2004
C/C ++ Users Journal jest magazynem powiconym praktycznym rozwizaniom dla programistw C/C++,
ktry omawia zaawansowane techniki
programowania w C, C++ oraz Javie.
Kade wydanie dostarcza szczegowych informacji o wymienionych
jzykach, stosowanych standardach
oraz programowaniu zorientowanym
obiektowo. Zajrzyj do CUJ, aby znale najlepsze oraz
najnowsze techniczne informacje o jzykach C i C++,
ktre wci s najlepszym wyborem podczas rozwijania
wspczesnego oprogramowania.
C/C ++ Users Journal is the magazine devoted to practical
solutions for C/C ++ programmers, providing advanced
techniques in C, C ++ and Java. Each issue provides
how-to articles with full source code, and in-depth information about languages, standards and object-oriented programming. Look to CUJ for the best and latest
in technical information on C and CC++, the language
of choice for contemporary software development.
www.linux.com.pl
Tytu czasopisma
obecna cena
cena
prenumeraty promocyjna
procznej prenumeraty
(brutto)
procznej
237,70
199,50
222,50
366,20
391,80
354,30
203,20
351,70
199,50
280,10
118,90
216,90
355,70
223,70
240,30
354,30
203,80
232,30
354,30
440,20
287,60
203,20
239,70
329,20
297,30
208,50
388,70
432,50
301,80
183,30
520,60
401,60
293,80
287,60
163,30
252,20
205,40
234,60
244,80
320,60
240,30
199,50
237,10
167,80
239,10
237,70
180,70
152,10
171,20
277,70
320,00
268,70
155,60
266,30
152,10
214,30
90,40
165,80
270,40
170,90
212,80
268,70
155,90
177,30
268,70
339,30
218,70
155,60
182,80
250,00
226,00
173,50
318,80
354,10
230,50
140,60
397,20
329,30
224,50
218,70
125,60
192,30
158,30
179,00
187,80
243,50
183,30
152,10
180,30
145,80
182,50
170,70
57
dla programistw
Pisanie bezpiecznych
programw
Marek Sawerwain
worzone obecnie programy to due i skomplikowane projekty. Bdy, ktre pojawiaj si w tak
zoonym kodzie, s niestety jego naturaln czci. Zazwyczaj mija sporo czasu, zanim zostan
wyeliminowane. Obecno czy nawet podejrzenie jakiegokolwiek bdu w programie jest niepokojce, jednak co
gorsza bdy w programach s czsto wykorzystywane do
przejcia kontroli nad systemem operacyjnym. Najczciej
stosuje si tzw. przepenienie bufora oraz bdy w obsudze pamici. Jednym ze sposobw eliminacji tego rodzaju
bdw jest zastosowanie odpowiedniego jzyka programowania, np. Javy. W wikszoci przypadkw programy
tworzone s jednak w jzykach C i C++, ktre co prawda
nie oferuj tak duego bezpieczestwa wykonania jak Java,
ale s wydajniejsze.
Powstao wiele dodatkowych rozwiza dla jzykw
C/C++, oferujcych lepsze zabezpieczenie przed bdami
zwizanymi z obsug pamici, jak rwnie z bezpiecznym
obsugiwaniem cigw znakw. Wikszo tych bibliotek
jest przeznaczona dla systemw uniksowych, w tym rwnie dla Linuksa. W tym artykule chciabym przedstawi
kilka bardzo cennych rozwiza, ktre pozwalaj tworzy
oprogramowanie wydajne oraz co wane znacznie bezpieczniejsze i odporne na wyjtkowe sytuacje.
Wszystkie omawiane w tym artykule biblioteki dziaaj
znakomicie pod Linuksem, ktry nadaje si znacznie lepiej
na platform do tworzenia bezpiecznych programw ni
choby Windows, bowiem liczne grono uytkownikw
konkretnych bibliotek powoduje, e znacznie szybciej
usuwane s bdy i poszerzane ich moliwoci. Co wicej,
niektre biblioteki jak do szeroko znana Electric Fence
- s przeznaczone wycznie dla systemw uniksowych.
58
nych oraz dopracowanych programw, jak Apache, Sendmail, Wu-ftpd czy nawet OpenSSH. Ten rodzaj bdu nie
dotyczy tylko i wycznie aplikacji zwizanych z obsug
sieci. Pierwszy z brzegu przykad programu, ktry mona
przytoczy, to standardowy program Man, w ktrym ju
do dawno, bo w 1999 roku, wykryto taki bd.
Oglny zarys techniki przepenia bufora jest wrcz trywialny. Spjrzmy na tak funkcj:
void funkcja(char *t) {
int i,j;
char b[32];
strcpy(&b, ciag znakw);
strcpy(&b, t);
// operacje na zmiennej b
}
stycze 2004
bezpieczne programy
Instalacja pakietw
Instalacja poszczeglnych bibliotek nie jest kopotliwa, pomimo,
e wymaga kompilacji. Wikszo dystrybucji niestety nie oferuje tych bibliotek, ale dziki obecnoci skryptu ./configure ich
instalacja sprowadza si do typowych trzech komend.
Jako pierwsze podajemy polecenie: ./configure --prefix=
/usr, aby dokona konfiguracji. Takie pakiety, jak SCSL czy
Vstr, nie wymagaj dodatkowych opcji, natomiast dla Libcwd
warto doda opcj --enable-magic. Pozostae moliwoci
w zakresie zarzdzania pamici powinny by domylnie wczone, cho zawsze mona wyda seri nastpujcych opcji,
takich jak --enable-alloc, --enable-marker, --enable-location. Po
konfiguracji wystarczy wyda polecenie make, aby rozpocz
kompilacj, a po zakoczeniu tego procesu make install, aby
zainstalowa biblioteki. Warto wyda rwnie polecenie ldconfig, aby odwiey plik zawierajcy spis dostpnych bibliotek
dynamicznych.
Z tego schematu wyamuje si pakiet Memwatch, gdy
s to zaledwie dwa pliki: memwatch.c oraz memwatch.h,
ktre naley doczy do wasnego projektu w sposb, ktry
opisaem w artykule. W przypadku pozostaych bibliotek, ich
doczenie polega na dodaniu nazw bibliotek dynamicznych,
ewentualnie definicji odpowiednich flag, np. dla Libcwd polecenie kompilacji przedstawia si nastpujco:
g++ -o app app.cc -lcwd
www.linux.com.pl
Dziki konwersji do
konstrukcja:
char *
safestr_t str;
str = safestr_alloc(10, 0);
strcpy((char *)str, "cig znakw duszy niz 10 znakw");
59
dla programistw
if (safestr_istrusted(cel)){
#define VSTR_COMPILE_INCLUDE 1
else {
#include <vstr.h>
#include <unistd.h>
Vstr_base *s=NULL;
if(!vstr_init())
return -1;
return 0;
sizes = mcrypt_enc_get_supported_key_sizes(td,
&num_of_sizes);
}
if (sizes != NULL){
// free(sizes); !!! le
Jeli cig tmp_str nie posiada flagi zaufania, SCSL samoczynnie zdejmie flag zaufania z cigu cel. Wykonujc
wane operacje moemy sprawdza, czy nie doszo do
operacji na cigach znakw pozbawionych flagi zaufania:
60
} else {
}
if (ok == 0){
}
else {
}
free(sizes); // OK
stycze 2004
bezpieczne programy
mwStatistics(2);
char *p, *unalloc;
p=(char *) malloc(5);
unalloc=(char *) malloc(500);
strcpy(p, "12345");
printf("%s\n", p);
strcpy(p, "1234567");
printf("%s\n", p);
p=(char*)malloc(50);
free(p);
}
return 0;
char *,
www.linux.com.pl
{31 32 33 34 35 .. .. .. 12345}
: 555
: 505
Number
Largest
Total
Unfreed
t1.c
555
555
505
22
50
50
14
500
500
500
13
61
dla programistw
: operator new[]
: delete[] 0x81a123a
t1.cc:24
int [20];
(sz = 80)
zmienna p to tablica o 20
elementach <unfinished>
COREDUMP:
Obsuga pamici
Drugim istotnym aspektem na drodze uzyskania bezpiecznej aplikacji jest poprawne zarzdzanie pamici. Aby
uczyni nasz program lepszym w tym wzgldzie, najlepiej
wprowadzi automatyczne zarzdzanie pamici wzorem
jzyka Java. Niestety, powoduje to obnienie wydajnoci.
Wizaoby to si take z koniecznoci modyfikacji samego
jzyka (czytelnikowi zainteresowanemu tak tematyk
polecam odwiedzi strony o jzykach D oraz Cyclone).
Do problemu mona podej inaczej. Program mona
wyposay w dodatkow bibliotek, ktra bdzie zajmowa si monitorowaniem operacji na pamici. Tego rodzaju
biblioteki s nazywane debugerami pamici (ang. memory
debuggers). ledz one wywoania standardowych funkcji,
takich jak malloc oraz free, bd operatorw new i delete
dla jzyka C++. Tego rodzaju bibliotek powstao bardzo
wiele i mona dosownie przebiera wrd dostpnych rozwiza. Wspln cech wielu z nich jest to, e mona pisa
program przy pomocy standardowych polece, takich jak
malloc i free. Podczas kompilacji odpowiedni flag nakazujemy podmian oryginalnych polece na pochodzce
z okrelonej biblioteki, uzyskujc w ten sposb ledzenie
obsugi pamici. Usuwajc definicj flagi podczas ponownej kompilacji przywracane s standardowe funkcje.
Wykrycie bdu w obsudze pamici jest znacznie trudniejsze ni w przypadku bufora, nawet jeli kod jest do
oczywisty, czego przykadem moe by bd w bibliotece
Libmcrypt, ktra (uwaga!) suy do obsugi szyfrw symetrycznych.
Bd, ktry popeniono w tej bibliotece, wiza si
z przydzieleniem pamici zmiennej sizes przez funkcj
mcrypt_enc_get_supported_key_sizes nigdzie nie bya
ona potem zwalniana. Co gorsza, jednym z pierwszych roz-
62
Pakiet Memwatch
Memwatch to may pakiet skadajcy si z dwch plikw
rdowych: memwatch.c i memwatch.h, ktre mona doczy do naszej aplikacji, aby uzyska ledzenie wywoa
funkcji malloc i free.
Listing 4 zawiera przykad kodu, w ktrym zostay
popenione bdy w zarzdzaniu pamici. Dokadnie
cztery bdy, bowiem dwa razy kopiujemy duszy cig
znakw do zmiennej p, pami przydzielona zmiennej
unalloc nie zostaa zwolniona, natomiast zmienna p ma
dwukrotnie przydzielan pami.
API pakietu Memwatch zawiera wiele funkcji przydatnych przy bardziej zaawansowanej obsudze, ale
w naszym programie wystarczy doczy plik nagwkowy. Aby uzyska wicej informacji, wywoujemy funkcj
mwStatistics z parametrem 2. Jak wida, w pozostaej
czci kodu operacje na pamici s przeprowadzane
w standardowy sposb. Doczenie pakietu Memwatch
powinno wychwyci popenione przez nas bdy i tak
jest w istocie podczas kompilacji wystarczy zdefiniowa
dwie flagi: MEMWATCH oraz MEMWATCHSTDIO. Pierw-
stycze 2004
bezpieczne programy
// operacje na pamici
Debug(move_outside(mkr, p));
if (libcw::debug::mem_blocks() > 0)
Dout(dc::warning, "Nie zwolniono pamici "
else
Dout(dc::malloc, "Brak strat w pamieci\n");
delete mkr;
mog funkcjonowa tak jak oryginalne asercje, czyli zatrzymywa natychmiast dziaanie programu. Wersja asercji
z pakietu Memwatch umoliwia jednak zadanie pytania,
czy wykonanie danej asercji ma by powtrzone bd
zignorowane, czy te ostatecznie przerwa wykonanie
programu.
www.linux.com.pl
Fakt, e zostaa zadeklarowana zmienna zostanie odnotowany w logu oraz umieszczony w komentarzu. Wykry-
63
dla programistw
Przeznaczenie
Safe C String Library
safestr_create
safestr_alloc
safestr_makereadonly
safestr_isreadonly
safestr_makewritable
safestr_memzero
czyci pami
safestr_trust
safestr_istrusted
safestr_insert
vstr_init
inicjalizacja biblioteki
vstr_exit
vstr_sc_write_fd
vstr_sc_read_iov_fd
vstr_dup_cstr_buf
vstr_make_base
vstr_free_base
Podsumowanie
Temat tworzenia bezpiecznego oprogramowania jest
bardzo obszerny i mam nadziej, e udao mi si pokaza,
i dotyczy wielu aspektw zwizanych z obsug pamici
czy cigw znakw, a take przesyaniem danych.
Wystarczy uwiadomi sobie, e zwyka operacja
odczytywania znakw z wejcia jak krtko to pokazaem przy okazji biblioteki Vstr powinna by odpowiednio zaimplementowana. Istnieje jeszcze wiele bibliotek,
np. Electric Fence, gdzie test, czy nie przekroczono zakresu przydzielonej pamici jest wykonywany z uyciem
fizycznych moliwoci procesora do chronienia pamici
powoduje to, e ta biblioteka staje si bardzo skuteczna,
cho nie oferuje tak szerokich statystyk jak Memwatch
czy Libcwd.
W Sieci:
p[21]=0;
p[22]=0;
delete [] p;
64
stycze 2004
Ogoszenia
Poszukuj pracy w okolicach Oawy bd Wrocawia. Posiadam znajomo: Novell
NetWare6.0, MS Windows2000 Server, Citrix Metaframe, Linux, SQL Windows,
SQL Sys, SQL BaseExchange, CENTURA, dBase. Jestem zainteresowany
stanowiskiem administratora sieci, zabezpieczeniami, instalacj okablowa oraz
konfiguracj struktur sieciowych. Mj sta to 3,5 roku.
Kod 1073 A
H OBD PT
SS
administrator systemu
OBD
analityk
programista
grafik komputerowy
PT
pomoc techniczna
handlowiec
PR
projektant
IS
inynier systemowy
SS
serwisant sprztu
kierownik projektu
TSI
meneder
twrca serwisw
internetowych
AN
www.linux.com.pl
65
dla graczy
Vega Strike
Krzysztof Wolski
Instalacja
Pliki instalacyjne gry mona pobra ze strony http://vegastrike.sourceforge.net/files/. Na tej stronie odnajdziemy
wersje zarwno dla Linuksa, jak rwnie dla systemw
Windows oraz MacOS X. W momencie pisania tego artykuu najnowsz dostpn wersj bya 0.4.1D (wersja stabilna).
Pobierajc plik naley uzbroi si w cierpliwo, poniewa
gra zajmuje a 167 MB, wic uytkownicy sabszych cz
bd musieli odczeka dusz chwil.
Plik rozpakowujemy do wybranego przez nas katalogu,
a nastpnie w terminalu wpisujemy polecenia:
cd /cieka_dostpu/vegastrike-0.4.1-installer
./setup.sh
O autorze:
Autor jest studentem czwartego roku na Politechnice lskiej na Wydziale Organizacji i Zarzdzania, specjalno
Informatyka w Przedsibiorstwie. W codziennych zastosowaniach wykorzystuje przede wszystkim system Linux.
Kontakt z autorem: autorzy@linux.com.pl.
66
Plik instalacyjny gry dla Linuksa zosta take zamieszczony na pycie B poprzedniego numeru Linux+. Jak wyglda sama gra, mona zobaczy korzystajc z Auroksa Live,
zamieszczonego na pycie A biecego numeru.
Jak gra
Po uruchomieniu gry wybieramy misj przycisk Select
Mission. Razem z gr zostao dostarczonych kilka gotowych, m. in. te dla kilku graczy. Dla przykadu z otwartego
okienka wybieramy plik explore_universe.mission.
Now gr rozpoczynamy po klikniciu przycisku New
Game. Oprcz rozpoczcia nowej gry, mamy rwnie
moliwo wczytania gry zapisanej, wczytania stanu gry
z auto-zapisu, a take zmiany opcji, przeczytania pomocy
i zamknicia okna. Klikamy wic na New Game i po chwili
widzimy miejsce, w ktrym znajduje si nasz statek, cel
misji oraz zapisy z komputera pokadowego.
Na pocztku misji nasz statek znajduje si na ldowisku.
Na kadej planecie mamy moliwo sprawdzenia opcji
zwizanych z misj. Kliknicie tu po prawej stronie statku
spowoduje przejcie do komputera (Mission Computer),
w ktrym moemy dowiedzie si czego wicej o misji,
ktr wykonujemy, przejrze wiadomoci oraz dokona
operacji zapisu stanu gry, wczytania oraz opuszczenia gry.
Kliknicie po lewej stronie statku spowoduje przejcie do
opcji zwizanych ze sprzeda i zakupem towarw, surowcw czy materiaw (Cargo Computer). Przegldamy tam
stany naszych zapasw, decydujemy o tym, co chcemy
sprzeda (Sell ) lub co chcemy kupi (Buy, przy czym
moemy zakupi wiksz ilo jednostek danego towaru
klikajc na Buy 10).
stycze 2004
vega strike
Sterowanie
Podsumowanie
Vega Strike wyrnia si bardzo adn i estetyczn grafik.
Gra dziaa pynnie w rozdzielczoci 1024x768 (testowaem
na sprzcie Athlon 1.4 GHz, 512 MB DDR, GeForce2 64
MB). Oczywicie gra jest rwnie udwikowiana, co
oznacza, e podczas zabawy syszymy efekty dwikowe
i muzyk.
Gra pozwala rwnie na tworzenie nowych misji, budowanie nowych statkw oraz projektowanie nowych broni.
Teoretycznie moe wic istnie nieskoczona ilo misji.
Wydaje mi si, e gra Vega Strike w znakomity sposb
wykorzystuje moliwoci, ktre posiadaj wspczesne komputery, a przede wszystkim pozwala na granie
pod kontrol ulubionego systemu, czyli Linuksa. Wicej
takich gier, jak VegaStrike, dopracowanych i dostpnych
za darmo, spowoduje, e Linux bdzie zdobywa coraz
wicej zwolennikw nie tylko wrd zaawansowanych
uytkownikw.
www.linux.com.pl
67
warto przeczyta
Perl
Autor: Reuven M. Lerner
Tumaczenie: M. Michalski, S. Dzieniszewski
ISBN: 83-7361-169-X
Tytu oryginau: Core Perl
Format: B5, stron: 456
Data wydania: 09/2003
<<AUTOR
|
Cena ksiki: 49.00 z
FIT=BOTTOM>>
Bestsellery Merlina
Lista najlepiej sprzedajcych si ksiek informatycznych
w sklepie internetowym www.merlin.pl, w miesicu listopadzie:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Wybierz czerwon piguk. Nauka, filozofia i religia w Matrix, Wyd. Helion, 2003
Nauka programowania dla pocztkujcych. Turbo Pascal K. Walczak, A. Stuziska-Walczak, Wyd. W&W, 2003
Google dla praktykw Andrzej Szewczyk, Wyd. Mikom, 2003
Delphi 5 Professional. Object Pascal Andrzej Marciniak, Wyd. Nakom, 2000
Fotografia cyfrowa. Edycja zdj Scott Kelby, Wyd. Helion, 2003
Zintegrowane systemy informatyczne w praktyce Piotr Adamczewski, Wyd. Mikom, 2003
Flash samouczek dla nieinformatykw Anna Owczarz, Wyd. Help, 2003
Microsoft Access 2002 Visual Basic dla aplikacji krok po kroku (+CD-ROM) Evan Callahan, Wyd. Read Me, 2002
Windows server 2003. Vadamecum administratora William R. Stanek, Wyd. Promise, 2003
Jzyk ANSI C Brian W. Kernighan, Dennis M. Ritchie, Wydawnictwa Naukowo-Techniczne, 2003
www.linux.com.pl
69
Imi i Nazwisko
Stanowisko
* jeeli jeste ju klientem firmy Software-Wydawnictwo Sp. z o.o. wystarczy, e podasz swj numer
ID kontrahenta; jeeli nie posiadasz takiego numeru, podaj swe dane w tabeli Dane teleadresowe
ID kontrahenta*
Upowaniam firm Software-Wydawnictwo Sp. z o.o. do wystawienia faktury VAT bez podpisu odbiorcy
Dane teleadresowe
Nazwa firmy
Dokadny adres
Telefon (wraz z numerem kierunkowym)
Adres e-mail
Tytu pisma
Aurox
Numery specjalne Linux+ Extra! z dystrybucj Aurox Linux
Linux+
Miesicznik uytkownikw systemw linuksowych
Liczba
kolejnych
numerw
Liczba
zamawianych
prenumerat
Od numeru
pisma
lub miesica
Opata w z
Oferta dla szk: 99 z
12
*
Oferta dla prenumeratorw Linux+ lub Software 2.0: 198 z
Linux+ Extra!
Numery specjalne z dystrybucjami Linuksa
Linux w szkole
Kwartalnik o stosowaniu Linuksa w edukacji
8
Oferta standardowa: 232 z
99 z
W sumie
(liczba prenumerat * cena)
* 180 z prenumerata roczna (12 numerw) Linux+ dla studentw i osb prywatnych
* 250 z prenumerata roczna (12 numerw) Linux+ dla firm
UWAGA! Nadesanie zamwienia jest jednoczenie zobowizaniem do zapaty!