Recenzje
Linux. Bezpieczeństwo. Receptury
Dla księgowości trzeba zrobić zdalny backup (szef kategorycznie żąda by był on szyfrowany, bo księgowość jest "twórcza"). Kolega koniecznie chce ściągać pocztę z firmy do domu, ale niekoniecznie tak by cała sieć osiedlowa mogła się później wymieniać co ciekawszymi sformułowaniami uzyskanymi z podsłuchu.
Te dwa zadania wydają się proste, dopóki nie zacznie się ich realizować. Na Google nasz administrator znajdzie informację, że najlepiej do szyfrowania sesji poczty nadaje się Stunnel. Za tą małą górką, której pokonanie było tak łatwe i trwało tyle co ściągnięcie kilkuset kilo kodu, ukazuje się jednak wielka i najeżona trudnościami góra - żeby użyć Stunnela trzeba zostać ekspertem od PKI, X.509 i SSL. Nauczyć się, jak generować certyfikaty CA, certyfikaty samopodpisujące się, certyfikaty klientów, odwołania certyfikatów i sto innych detali.
Książka Barretta, Silvermana i Byrnesa zawiera dokładny przepis jak to zrobić, a także kilkaset innych konkretnych receptur, jak zrealizować bardzo konkretne zadania - od szyfrowanego backupu, przez certyfikaty PKI, analizę logów po konfigurację Snort IDS.
Jest to książka napisana przez praktyków i dla praktyków - autorzy na 340 stronach przechodzą przez praktycznie wszystkie zadania, które czekają administratora Linuksa w związku z zabezpieczeniem systemu. Statystycznie rzecz biorąc, otwarcie tej książki w dowolnym, losowo wybranym miejscu pokazuje zadanie, które sam musiałem wykonać w ciągu ostatniego miesiąca lub będę zmuszony wykonać wkrótce.
Przechodząc od ogólników do konkretów - książka jest podzielona na dziewięć rozdziałów, z których każdy zawiera kilkadziesiąt receptur z tematu przewodniego danego rozdziału. Te tematy to kolejno:
- Wykrywanie nieautoryzowanych zmian w systemie - omawiane są metody sprawdzania integralności systemu plików za pomocą narzędzi takich jak Tripwrite, md5sum, mechanizmów wbudowanych w RPM a także na "obcym" systemie plików (windowsowy VFAT).
- iptables i ipchains - konfiguracja filtra pakietów dla kerneli 2.2 (ipchains) i 2.4 (iptables), bardzo przydatna ze względu na dokładne omówienie dobrej praktyki inżynierskiej jaką jest filtrowanie nieprawidłowego ruchu na routerach brzegowych. Omawia także filtrowanie po adresach sprzętowych (MAC) i inne, bardziej zaawansowane zadania związane z filtrem pakietów. Zaletą tej części książki jest wykorzystanie w przykładach potężnej funkcji iptables jaką jest rozpoznawanie stanów (stateful inspection).
- Kontrola dostępu do usług - ta część omawia konfigurację systemu (poza filtrem pakietów), pozwalającą na ograniczenie dostępu do usług udostępnianych przez inetd lub xinetd (dwa najpopularniejsze obecnie superdemony) oraz innych, samodzielnych demonów wykorzystujących libwrap (SSH).
- Systemy uwierzytelniania - przedstawione są typowe zadania związane z konfiguracją popularnych systemów uwierzytelniania użytkowników, a konkretnie PAM, Kerberos oraz zadania związane z infrastrukturą klucza publicznego czyli głównie obsługa certyfikatów dla SSL.
- Mechanizmy autoryzacji - wykonywanie zadań z uprawnieniami roota (sudo, su) oraz zdalnie (SSH), także w środowisku X Window (przypadek szczególny ze względu na konieczność przekierowania DISPLAY).
- Bezpieczne połączenia między systemami - omawia zaawansowane możliwości OpenSSH i SSH2 takie jak uwierzytelnianie kluczami publicznymi, wykorzystanie agenta SSH do przekazywania tych kluczy i tunelowanie połączeń po SSH. Zawiera przykłady wykorzystania SSH do bezpiecznego uruchamiania poleceń z prawami roota z crona lub skryptów, bardzo przydatne na przykład do wykonywania zdalnych backupów i innych zadań.
- Rozdział o ochronie plików dotyczy wszystkiego co jest związane z zabezpieczaniem danych za pomocą PGP (w implementacji GnuPG) - zarządzanie kluczami PGP, szyfrowanie, podpisywanie plików, szyfrowanie katalogów oraz wymianę kluczy między PGP i GnuPG.
- Rozdział o ochronie poczty elektronicznej pokazuje, jak włączyć szyfrowanie i podpisywanie wiadomości w prawie wszystkich popularnych uniksowych programach pocztowych. Omówiono przykłady dla Emacsa, Mozilli, Pine, Evolution, mutta, elma, MH i uniwersalny sposób dla programów korzystających z vi jako edytora. Druga część przykładów dotyczy bezpiecznego ściągania poczty po POP3 lub IMAP w tunelu SSL. Przedstawione przykłady dotyczą niestety tylko xinetd z natywnie wbudowaną obsługą SSL, można było się pokusić o pokazanie Stunnela.
- Ostatni rozdział pokazuje kilkadziesiąt typowych i nietypowych zadań związanych z monitorowaniem i testowaniem bezpieczeństwa systemu, od narzędzi do łamania słabych haseł, przez wyszukiwanie kont i plików z uprawnieniami roota, szukanie otwartych portów, obserwację ruchu sieciowego, korzystanie ze Snort IDS i analizę logów.
Formuła tego podręcznika pozwala zaoszczędzić czas - autorzy (podobnie jak nasz szef) nie oczekują, że staniemy się ekspertami w dziedzinie kryptografii znającymi wszystkie matematyczne podstawy tej nauki. Zamiast długich wstępów teoretycznych dają nam krótką i konkretną receptę, jak szybko i skutecznie wykonać dane zadanie.
Co ważniejsze, jak wykonać go bezpiecznie i w sposób zgodny z dobrą praktyką inżynierską, co jest nie do przecenienia w obecnej dobie szybkiego rozwoju informatyki. Opublikowane przepisy nie mają przy tym charakteru magicznego - każde polecenie jest krótko skomentowane i wynika w jasny sposób z opisu.
Kolejną zaletą książki jest brak wodolejstwa, będącego zmorą niektórych publikacji informatycznych, a przejawiającego się na przykład przedrukowywaniem manuali systemowych, instrukcji do programów czy drobiazgowym opisywaniem każdej jednej opcji danego narzędzia (nawet jeśli ostatnie potwierdzone informacje o jej użyciu pochodzą z zeszłego stulecia). Tutaj, na 340 stronach, nie ma bodaj jednej strony na której nie można byłoby znaleźć czegoś ciekawego i użytecznego.
Omawiane narzędzia można zastosować pod każdym systemem uniksowym, więc uzyskana praktyka nie będzie wyłącznie linuksocentryczna. Autorzy używają głównie Red Hata, co przejawia się m.in. w stosowaniu pakietów RPM i redhatowskich struktury systemu plików, ale nie ma to zasadniczego wpływu na konfigurację poszczególnych programów, które będą tak samo działać pod Red Hatem jak i pod Debianem.
Niestety omówiona została tylko konfiguracja Sendmaila, brak przynajmniej Postfixa lub Qmaila - serwerów pisanych od zera z myślą o bezpieczeństwie.
Bardzo spodobała mi się ogromna liczba zawartych w tekście sztuczek, pozwalających ułatwić sobie życie - jak praca z potokami, przekierowywanie wyjścia i wejścia programów itd. Wykonując receptury z tej książki każdy administrator podnosi swoje kwalifikacje przez przyswajanie sobie tej charakterystycznej dla systemów uniksowych elastyczności i uniwersalności.
Java. Tworzenie gier
Książka podzielona została na 19 obszernych rozdziałów. Czytając je, dowiadujesz się o znaczeniu wątków i synchronizacji w języku Java, poznajesz podstawy grafiki 2D i animacji, a także uczysz się programować muzykę (bądź odtwarzać pliki MP3). Po pewnym czasie umiesz już stworzyć interfejs użytkownika, zaprogramować prostą Sztuczną Inteligencję i pobawić się obiektami 3D. Dobra znajomość matematyki oraz języka angielskiego oczywiście też się przyda. Jednak by zaprojektować sympatyczną platformówkę, wystarczy logicznie myśleć i wiedzieć, co to za algorytm.
Tłumacz stanął na wysokości zadania, a czcionka jest dostatecznie wyraźna, by czytać książkę w autobusie. Całość wydało w Polsce wydawnictwo Helion w cenie 79.90 zł. Jeśli kupisz ją i napiszesz jakąś naprawdę fajną grę, daj nam znać!