środa, 27 kwietnia 2011

Snort rules

Moduł sygnatur

Główny mechanizm systemu detekcji zagrożeń polega na dopasowaniu przetworzonych pakietów i ich zrekonstruowanych strumieni z bazą sygnatur. System detekcji porównuje cechy pakietu ze zbiorem reguł. Po dopasowaniu, zostaje podjęta odpowiednia akcja. Do porównywalnych cech należą atrybuty główne - adresy, porty źródłowe i docelowe oraz opcje pomocnicze: flagi TCP identyfikujące np. żądania związane z WWW, różne typy pakietów ICMP, opcje IP czy wreszcie sama treść pakietu. Na razie w głównej części reguł możliwe jest śledzenie protokołów IP, ICMP, TCP i UDP. Autorzy przewidują rozszerzenie Snorta o następne protokoły sieciowe, m.in. IPX, GRE, czy protokoły wymiany informacji między routerami - RIP, OSPF oraz IGRP.

Reguły identyfikowania ataku pozwalają na podjęcie pięciu rodzajów akcji: przepuszczenia pakietu (pass), zapisania informacji do dziennika (log), ogłoszenia alarmu (alert), alarmowania i podjęcia do działania innej dynamicznej reguły (activate) i pozostanie w spoczynku do czasu aktywowania przez regułę activate, po czym działanie jako reguła log (dynamic).

Sygnatury Snorta zazwyczaj składają się z dwóch głównych sekcji - nagłówka i ciała (treści). Nagłówek określa m.in., jaką akcję należy podjąć po przypasowaniu reguły, informacje o wykorzystanym protokole, adresy bądź porty źródłowe i docelowe. Ciało reguły pozwala rozwinąć informacje zawarte w nagłówku, tu także podaje sią treść wzbudzanych alarmów i różnego rodzaju informacje dodatkowe (np. odniesienia do bazy z opisami danego naruszenia, tzw. referencje - Bugtraq, CERT czy CVE).

Najprostsze sygnatury obejmują wskazanie akcji, protokołu, kierunku, adresów i portów będących przedmiotem obserwacji, jak np. poniższa reguła, stanowiąca reakcję na próbę skorzystania z usługi pop3 (port 110):

log tcp any any -> 192.168.1.0/24 110

W sygnaturach można umieszczać zmienne zdefiniowane jako adresy sieci (wg CIDR) lub porty zapisane w pliku konfiguracyjnym snort.conf:

log tcp $EXTERNAL_NET -> $HOME_NET 110

W podanych powyżej regułach wykorzystany był jednokierunkowy operator "->". Język sygnatur umożliwia zadeklarowanie reguły, który dopasuje pakiety poruszające się w obu stronach operatorem dwukierunkowym "<>", np.:

alert tcp any any <> $HOME_NET 23

Do zasadniczej części reguły można dodać ograniczone okrągłymi nawiasami pole opcjonalne (tzw. ciało), zawierające definicję bardziej złożonych i wyrafinowanych działań związanych z przejęciem danego pakietu. Użytkownik może także sformułować własny komunikat, np.:

log tcp $EXTERNAL_NET -> $HOME_NET 110 \
("msg: Proba polaczenia z pop3";)

Podjęte działania nie muszą być ograniczone do pojedynczej czynności. Średnik separuje deklaracje poszczególnych działań, jak w poniższym przykładzie, w którym opcją content testowana jest treść przesyłanego strumienia TCP, a w razie odnotowania podejrzanego ciągu znaków generowany jest odpowiedni komunikat:

alert tcp any any -> 192.168.1.0/24 80 (content: "/cgi-bin/phf"; \
msg: "PHF probe!";)

Opcji content można użyć nawet kilka razy w jednej regule. Pozwala to na wyszukiwanie wielu różnych ciągów znaków w obrębie przesyłanych treści.

Warto nadmienić, iż do przeszukania treści pakietów i reasemblowanych strumieni używany jest obecnie najbardziej efektywny algorytm - Boyera-Moore'a, którego wydajność rośnie wraz z długością poszukiwanych ciągów. Możliwość rekonstrukcji całych strumieni transmisji TCP, wglądu w warstwę aplikacyjną i efektywne wyszukiwanie treści pozwala na walkę przy użyciu Snorta również z zainfekowanymi załącznikami elektronicznych listów. Oprócz przeszukiwania treści pakietów możemy badać pod różnymi kątami ich nagłówki, m.in. pola i kody ICMP, pole TTL, rozmiary fragmentacji czy numery sekwencji.

Bardzo silną konstrukcją w regułach Snorta jest możliwość aktywowania kolejnych reguł po pierwszym dopasowaniu. Konstrukcja ta nosi nazwę activate/dynamic rules i wygląda w następujący sposób:

activate tcp any any -> $HOME_NET 143 (flags: PA; content: \
"|E8C0FFFFFF|bin|;activates: 1; msg: "IMAP buffer overflow!";)
dynamic tcp any any -> $HOME_NET 143 (activated_by: 1; count: 50;)

Opcje activates i activated_by wiążą reguły activate i dynamic. W powyższym przykładzie wykrycie ataku typu buffer overflow na serwer IMAP powoduje uruchomienie kolejnej, dynamicznej reguły, która zbiera treść następnych 50 pakietów (opcja count) w celu późniejszej analizy. Druga opcja w reguły dynamicznej jest obligatoryjna - reguła zawierająca wyłącznie opcję dowiązania do innej, macierzystej konstrukcji jest bezużyteczna.

Następne godne uwagi parametry, to resp i react wspierają mechanizm elastycznego reagowania na atak. Opcja resp może doprowadzić do zerwania połączenia, np. poprzez wysłanie do atakującego komunikatu ICMP o niedostępności trasy do zaatakowanego komputera, natomiast react służy do blokowania dostępu do usług związanych z WWW.

Naprawa systemu pliku

System plików to mechanizm organizowania różnych typów pamięci masowej (dysków twardych, płyt CD/DVD i innych) i prezentowania ich użytkownikowi. Każdy system plików składa się z kilku elementów. Blok startowy (boot block) zawiera informacje potrzebne do uzyskania przez system dostępu do systemu plików. Superblok zawiera informacje o strukturze samego systemu plików (długość i położenie tablic i-węzłów, rozmiar grup cylindrów itd.). Lista i-węzłów (inode list) to zbiór struktur danych, zawierających informacje o poszczególnych plikach w systemie (co gdzie jest itd.). Blok danych - obszar na nasze dane.
System plików może być zamontowany lub odmontowany (dostępny lub nie). Systemy plików do montowania w czasie rozruchu systemu zawiera plik /etc/fstab a listę zamontowanych obecnie nośników - /etc/mtab.

PONIŻSZYCH POLECEŃ OPERUJĄCYCH NA PARTYCJACH PROSZĘ NIE WYKONYWAĆ DLA ZABAWY/PRAKTYKI... MOGĄ USZKODZIĆ ISTNIEJĄCE SYSTEMY PLIKÓW - ZNISZCZYĆ NASZEGO LINUXA (JEŻELI UŻYTE NIEPOPRAWNIE/NIEPOTRZEBNIE ITD.)


debugfs opcje
Sprawdza i debuguje system plików ext2/3. Jest to polecenie interaktywne i stosujemy je na partycje odmontowane lub zamontowane "tylko do odczytu" (rw, read only). Źle zastosowane może uszkodzić poprawny system plików... Przykłady:
debugfs -w /dev/hda1
Co sprawdzi system plików na pierwszej partycji i naprawi w miarę możliwości napotkane błędy (debugfs pracuje w trybie odczytu i zapisu).
debugfs -R show_super_stats /dev/hda1
Co wyświetli zawartość superbloku pierwszej partycji.
Opcje:

-w urządzenie - otwiera system plików w trybie do odczytu i zapisu
-R polecenie - wykonuje polecenie i kończy działanie
-R help - wyświetla listę poleceń dla -R



df
Wyświetla rozmiar wolnej i wykorzystanej przestrzeni w systemie plików. Przykłady:
df -h


e2fsck opcje urządzenie
Służy do sprawdzania wewnętrznej spójności partycji typu ext2 i 3. Polecenie to potrafi w miarę możliwości naprawić błędy. Aby wymusić sprawdzanie spójności:
e2fsck -f /dev/hda3

Opcje:

-a - automatycznie naprawia system plików jeżeli to możliwe
-c - znajduje i oznacza wszystkie uszkodzone bloki w systemie plików



.

fsck opcje urządzenie/punkt montowania
Sprawdza i naprawia system plików linuksa. Jako cel możemy podać nazwę urządzenia lub jego punkt montowania. Przykłady:
fsck -N /mnt/hda2
Opcje:

-N - pokazuje co zostałoby zrobione/naprawione lecz nie dokonuje żadnych zmian
-A - za jednym zamachem próbuje sprawdzić wszystkie systemy plików wymienione w /etc/fstab
-a - naprawia system plików bez pytania o potwierdzenie
-r - naprawia system plików pytając o potwierdzenie.



mount opcje urządzenie punkt montowania
Montuje systemy plików. Przykłady:
mount -t vfat /dev/hda1 /mnt/win
mount -t reiserfs /dev/hda2 /mnt/linux2
mount -t iso9660 /dev/sr0 /media/cdrom
Pierwsze polecenie montuje partycję FAT (w linuxie oznaczaną jako vfar), drugie partycję linuksową reiserfs a trzecie płytę CD/DVD (iso9660). Opcje:

-t typ systemu plików - Określa typ systemu plików
-a - za jednym zamachem próbuje zamontować wszystkie systemy plików wymienione w /etc/fstab
-r - montuje system plików w trybie tylko do odczytu.
-w - montuje system plików w trybie do oczytu i zapisu



rdev
[ROOT] Wyświetla linię z pliku /etc/mtab dla bierzącego głównego systemu pliów (nazwę urządzenia na którym jest system z którego korzystamy). Przykłady:
rdev


umount punkt montowania
Odmontowuje systemy plików. Przykłady:
umount /mnt/win

Polecenie dd

Polecenie dd to narzędzie do niskopoziomowego kopiowania bit po bicie. Działa w ten sposób, że kopiuje bit po bicie źródło if= do lokalizacji of=. Można określić ile bajtów ma być przekopiowanych.

To copy a hard disk, one would use the following command (whilst root):

dd if=/dev/hdx of=/dev/hdy

Tworzenie obrazu ISO partycji;

dd if=/dev/hda1 of=/katalog/obraz_partycji1.iso

i odtwarzanie partycji:

dd if=/katalog/obraz_partycji1.iso of=/dev/hda1

Wykonanie komendy dd if=/dev/hda1 spowoduje wyrzucenie zawartości partycji na standardowe wyjscie, zatem mozemy w locie skompresować obraz:

dd if=/dev/hda1 | gzip > /katalog/obraz_parycji1.gz

Przywracanie partycji ze skomresowanego obrazu:

gzip -dcv obraz_partycji1.gz | dd of=/dev/hda1

w tym przypadku dd pobiera dane ze standardowego wejścia i zapisuję na partycji.

Tworzenie kopii MBR:

dd if=/dev/hda of=/katalog/mbr_backup bs=512 count=1

Generowanie pliku z losowymi danymi 1GB:

dd if=/dev/urandom of=1gb.random bs=512 count=2097152

Tworzenie obrazu płyty kompaktowej

dd if=/dev/cdrom of=/katalog/obraz_plyty.iso

wtorek, 26 kwietnia 2011

Szyfrowanie poczty w Thunderbird

W kategorii: bezpieczeństwo danych, zabezpieczenia, gpg, thunderbird, e-mail, szyfrowanie
Bezpieczeństwo-pocztyPo przeczytaniu dowiesz się:

*

Dlaczego warto szyfrować komunikację e-mail.
* Na jakiej zasadzie funkcjonuje szyfrowanie wiadomości z wykorzystaniem oprogramowania GPG.
* Jaka jest różnica pomiędzy kluczem prywatnym a publicznym?
*

Jak skonfigurować szyfrowanie wiadomości e-mail w programie pocztowym Thunderbird (w środowisku Windows).
* Jak za pomocą dwóch kliknięć wysyłać szyfrowane e-maile.

Jeśli tekst będzie dla Ciebie przydatny, prosimy o umieszczenie linku do artykułu na Twojej stronie www.
Wstęp

Poczta elektroniczna jest niezmiernie wygodnym i popularnym sposobem komunikacji. Nagminnie jednak, za pośrednictwem e-maili przesyłane są takie poufne informacje jak:

* szczegółowe dane osobowe Klientów,
* strategiczne plany przedsiębiorstwa,
* inne informacje (np. listy płac), do których dostęp powinny mieć tylko uprawnione osoby.

Informacje te często nie są w żaden sposób chronione - mogą być przechwytywane, a następnie odczytywane przez osoby postronne.

Jednym z popularnych, a zarazem relatywnie prostych sposobów na zapewnienie poufności e-maili, jest szyfrowanie wiadomości.

W artykule zostanie pokazany sposób konfiguracji klienta pocztowego, umożliwiający tworzenie i odczytywanie zaszyfrowanych informacji. W tym celu wykorzystane zostanie następujące oprogramowanie:

* Klient poczty Thunderbird.
* Oprogramowanie szyfrujące GPG (the GNU Privacy Guard).
* Dodatek do Thunderbird o nazwie Enigmail.

Wszystkie wskazane powyżej programy są dostępne bezpłatnie - również do użytku komercyjnego. Co więcej, obsługa oprogramowania możliwa jest w języku polskim.
Lista oprogramowania

Poniżej przedstawiamy listę oprogramowania, które można bezpłatnie pobrać ze wskazanych stron producentów. W kolejnym kroku określimy w jaki sposób zainstalować i skonfigurować poniższe aplikacje.
Klient poczty - Thunderbird.

Jest to znany program do obsługi poczty, stworzony przez twórców przeglądarki internetowej Firefox. Thunderbirda w polskiej wersji językowej można pobrać tutaj.
Oprogramowanie kryptograficzne - GPG (the GNU Privacy Guard).

Oprogramowanie to nie będzie wykorzystywane bezpośrednio - odpowiednie wywołania wykonywane będą bez naszego udziału - poprzez program Thunderbird.

Wersję dla systemu Windows można pobrać tutaj (sekcja Binaries, "GnuPG 1.4.9 compiled for Microsoft Windows").

Można również skorzystać z Bezpośredniego linku do pobrania wersji 1.4.9 GPG.
Enigmail - rozszerzenie do Thunderbird.

Enigmail umożliwia bardzo proste korzystanie z funkcjonalności GPG w kliencie pocztowym Thunderbird. Dzięki Enigmail nie musimy znać, skomplikowanej składni wywołań programu GPG.

Najnowszą wersję - zawierającą polskie tłumaczenie interface - można pobrać bezpłatnie ze strony producenta.
Instalacja oprogramowania

Klient poczty Thunderbird oraz GPG - posiadają programy instalacyjne, które zapewniają szybką i niewymagającą zaangażowania instalację.

Dodatek Enigmail można zainstalować poprzez wybranie w Thunderbird, z menu głównego, opcji: Narzędzia -> Dodatki, a następnie kliknięcie przycisku "Zainstaluj".
szyfrowanie-poczty-thunderbird-instalacja-enigmail



Po wybraniu pobranego przez nas wcześniej pliku instalacyjnego Enigmail (np. enigmail-0.95.7-tb+sm.xpi) oraz restarcie Thunderbird, dodatek jest gotowy do użycia - dostępna staje się nowa pozycja menu głównego: OpenPGP.

Zanim przejdziemy do omawiania konfiguracji Thunderbird, warto poruszyć kwestie dotyczące tzw. kluczy szyfrujących wykorzystywanych w procesie szyfrowania wiadomości.
Klucze: publiczny i prywatny

Środowisko, którego konfigurację omawia artykuł opiera się na tak zwanej kryptografii asymetrycznej. W skrócie, pojęcie wiąże się z wykorzystaniem dwóch kluczy szyfrujących:

* Klucza publicznego
* Klucza prywatnego

Klucz publiczny służy do szyfrowania danych. Jego nazwa (publiczny) umożliwia zapamiętanie, że klucz może być publicznie dostępny dla wszystkich. Jeśli ktoś chce zaszyfrować do mnie informację - wykorzystuje mój klucz publiczny. Każdy może posiadać mój klucz publiczny, więc każdy może zaszyfrować do mnie informację.

Klucz prywatny służy do deszyfrowania danych. Jego nazwa (prywatny) przypomina, że nie powinien być znany nikomu poza właścicielem. Jeśli chcę odszyfrować wysłaną do mnie informację - wykorzystuję klucz prywatny - znany tylko mi. W ten sposób tylko ja mogę odszyfrować przesłaną do mnie zaszyfrowaną wiadomość.

Uwaga: klucz prywatny może służyć również do podpisu cyfrowego wiadomości, a klucz publiczny do jego weryfikacji. W niniejszym tekście nie będziemy jednak zajmować się tym zagadnieniem.

Powyższa para kluczy generowana jest każdorazowo dla użytkownika, który chce korzystać z możliwości szyfrowania wiadomości. Zatem naszą pierwszą czynnością po zainstalowaniu odpowiedniego oprogramowania, będzie wygenerowanie tej pary kluczy.
Konfiguracja Thunderbird - generacja kluczy

Zakładamy, iż czytelnik skonfigurował już odpowiednie konto pocztowe (opcje: Narzędzia -> Konfiguracja kont -> Dodaj konto) i może wysyłać oraz odbierać nieszyfrowaną pocztę.

Jak wspomnieliśmy wcześniej, pierwszym punktem na drodze do korzystania z szyfrowanych e-maili jest wygenerowanie pary kluczy - prywatnego i publicznego. Można to wykonać korzystając z opcji:

OpenPGP ->Zarządzanie kluczami -> Generowanie -> Nowa para kluczy.

Uwaga: Przy pierwszym odwołaniu opcji Zarządzanie kluczami zostanie wywołany kreator. Na potrzeby poniższego artykułu - nie sugerujemy korzystać z kreatora.

W oknie generowania klucza powinniśmy uzupełnić następujące dane:

* Hasło zabezpieczające klucz prywatny.
Hasło powinno być odpowiednio skomplikowane i trudne do odgadnięcia.
* Okres ważności klucza.
Domyślnie okres ważności to 5 lat. Rekomendujemy zmienić tą wartość na o wiele mniejszą, np. 6 miesięcy.

Thunderbird - generacja kluczy

W związku procedurą generacji haseł mogą nasunąć się następujące pytania:

* W jakim celu dodatkowo zabezpieczać klucz prywatny?
Otóż jeśli ktoś uzyska dostęp do naszego klucza prywatnego - jest m.in. w stanie odszyfrować wysłane do nas wiadomości. Hasło to dodatkowe zabezpieczenie przed uzyskaniem dostępu do klucza prywatnego przez niepowołane osoby.

* Co zrobić w przypadku uzyskania dostępu do klucza prywatnego przez inne osoby?
Wygenerować nową parę kluczy, oraz poprosić wszystkich zainteresowanych o usunięcie z programów pocztowych naszego wcześniejszego klucza i dodanie klucza nowego.

* Dlaczego warto zmienić okres ważności klucza na krótki?
Procedura wymiany pary kluczy po kompromitacji (np. upublicznieniu) klucza prywatnego jest uciążliwa. Krótki okres ważności powoduje zmniejszenie przedziału czasowego, w którym skompromitowany klucz może być przedmiotem nadużyć (np. max 6 miesięcy, zamiast domyślnej wartości 5 lat).

Szyfrowanie danych

Jak wspomnieliśmy wcześniej, aby zaszyfrować do kogoś wiadomość, należy skorzystać z klucza publicznego adresata. Klucze publiczne przekazywane są najczęściej w formie pliku tekstowego (umieszczanego na stronie www lub przesyłanego w e-mailu).

Aby przetestować poprawność szyfrowania, wykorzystać można nasz klucz publiczny dostępny tutaj (umożliwiający przesyłanie szyfrowanych maili na adres: securitum@securitum.pl).

Klucz publiczny można zaimportować wybierając z menu głównego Thunderbird:

OpenPGP -> Zarządzanie kluczami -> Plik -> Import kluczy z pliku

Import klucza publicznego



Po zaimportowaniu klucza dostępny jest on na liście kluczy i gotowy do użycia. Warto zauważyć iż zaimportowany klucz skojarzony jest z konkretnym adresem e-mail (np. z securitum@securitum.pl).

Jeśli chcemy zaszyfrować e-mail, wystarczy podczas tworzenia wiadomości, w menu OpenPGP zaznaczyć opcję "Wyślij z szyfrowaniem". Po zredagowaniu maila i naciśnięciu "Wyślij", wiadomość zostanie zaszyfrowana automatycznie (przy założeniu, że wcześniej zaimportowaliśmy klucz publiczny adresata do którego wysyłamy e-mail).

Thunderbird - wysylka szyfrowanej poczty



Podsumowując: aby wysłać zaszyfrowany e-mail należy:

* Poprosić adresata e-maila o klucz publiczny.
* Zaimportować klucz publiczny do Thunderbirda.
* Przy wysyłaniu maila do osoby, zaznaczyć opcję "Wyślij z szyfrowaniem".

Jak umożliwić innym wysyłanie do nas szyfrowanych maili?

W skrócie - należy przekazać swój klucz publiczny. W ogólności można to zrealizować z wykorzystaniem dwóch metod:
Za pośrednictwem E-mail

Najprostszy sposób przekazania klucza publicznego to wysłanie e-maila, zawierającego w załączniku klucz.

Pisząc nowy e-mail zaznaczamy opcję: OpenPGP -> Załącz mój klucz publiczny.

Jak wskazuje powyższa opcja, do takiego e-maila automatycznie zostanie dołączony załącznik zawierający klucz publiczny. Jeśli adresat używa Thunderbirda, wystarczy, że kliknie prawym przyciskiem myszy na załącznik i wybierze opcję "Importuj klucz OpenPGP". W tym momencie adresat może wysyłać do nas szyfrowaną pocztę.

Thunderbird - wysylka klucza publicznego


Przekazując plik

* Wybieramy opcję: OpenPGP-> zarządzanie kluczami.
* Klikamy prawym przyciskiem na naszym kluczu i wybieramy opcję eksport kluczy do pliku.
* Na pytanie "Czy chcesz włączyć klucz prywatny do zapisywanego pliku z kluczami OpenPGP" należy odpowiedzieć: NIE. Przypominamy: nazwa "klucz prywatny", podpowiada że nie powinniśmy nikomu przekazywać tego klucza.
* Zapisany plik dostarczamy (np. za pośrednictwem pendrive) osobom, które chcą do nas wysyłać szyfrowaną korespondencję.

Z wykorzystaniem serwera kluczy

* W managerze zarządzania kluczami (OpenPGP -> Zarządzanie Kluczami) odpowiednie opcje dostępne są w menu (Serwer Kluczy).
* Jest to elastyczna metoda wymiany kluczy, jednak koniecznie wymaga potwierdzenia czy pobrany przez nas klucz jest poprawny (patrz weryfikacja klucza - na końcu tekstu).


Jak odczytać zaszyfrowaną wiadomość?

Jeśli ktoś prześle do nas szyfrowaną pocztę, po wybraniu danego e-maila, pojawi się okno z prośbą o wpisanie hasła do klucza prywatnego. Po wpisaniu poprawnego hasła, e-mail zostanie automatycznie odszyfrowany i pokazany w analogicznej formie jak korespondencja nieszyfrowana.
Podsumowanie

* Aby móc przesyłać i odczytywać zaszyfrowane treści wystarczy wykonać kilka prostych operacji:

1. Zainstalować odpowiednie oprogramowanie.
2. Wygenerować parę kluczy (prywatny i publiczny).
3. Zapamiętać hasło chroniące klucz prywatny.
4. Udostępnić klucz publiczny - w celu umożliwienia wysyłania do nas komunikacji szyfrowanej.

* Klucz publiczny może (i powinien) być udostępniany publicznie. Korzystają z niego wszyscy, którzy chcą przesyłać do nas szyfrowaną pocztę
* Klucz prywatny nie powinien być nikomu udostępniany. Służy do odszyfrowywania poczty.

Dodatkowe sposoby zwiększające bezpieczeństwo (dla zaawansowanych).

Przedstawiona w powyższym tekście procedura szyfrowania poczty elektronicznej, istotnie zwiększa bezpieczeństwo przesyłanych maili. Szczególnie w przypadku przesyłania danych o krytycznej istotności, bezpieczeństwo to można podnieść stosując poniższe techniki.
Weryfikacja instalowanego oprogramowania

Aby zwiększyć bezpieczeństwo całej procedury warto weryfikować instalowane binaria - np. poprzez kontrolę sumy SHA-1.
Weryfikacja importowanych kluczy

Przekazując klucze publiczne, rekomendujemy weryfikować ich autentyczność. Przykładowe sposoby weryfikacji:

* Poprzez weryfikację ID klucza (przykładowe ID: 0x2B8D5361).
* Poprzez weryfikację odcisku palca klucza (przykładowy odcisk: 6AA2 F30B 7536 5491 FF01 C56C 9A30 0444 2B8D 5361).
* W przypadku wysyłki e-mailem klucza publicznego, powyższe dane można zweryfikować np. telefonicznie.
* Poprzez fizyczne przekazanie klucza publicznego do osoby zainteresowanej.

Wykorzystanie oprogramowania antywirusowego.

Poza ochroną przed wirusami stacji roboczej, oprogramowanie takie jest w stanie wykryć również aplikacje typu malware, umożliwiające np. wrogie przejęcie dostępu do klucza prywatnego.

Jak sprawdzić czy dany adres email istanieje ??

Jeśli nie pamiętasz nazwy domeny, przywołaj okno wiersza poleceń i wpisz:

Nslookup -q=mx [nazwa_domeny]

W ten sposób sprawdzisz, czy za ten adres odpowiada serwer pocztowy. Zmiennną [nazwa_domeny] zastąp nazwą domeny, np. pcworld.pl. Jeśli na liście wyników w wierszu mail exchanger= jest wyszczególniony co najmniej jeden adres, jest serwer pocztowy.

Jednak już nie tak prosto ustalić, czy na serwerze pocztowym istnieje określone konto pocztowe i określony adresat. Najwygodniej zrobisz to korzystając z tego serwisu internetowego:

http://www.email-unlimited.com/tools/verify-email.aspx

Alternatywnie możesz sprawdzić adres za pomocą konsoli tekstowej. Otwórz ją i wpisz następujące polecenia:

telnet [mail.server.pl] 25
helo hi
mail from: [twój_adres_pocztowy]
rcpt to: [adres_do_sprawdzenia]
quit


Zamiast zmiennych podanych w nawiasach wpisz żądane adresy pocztowe. Każdy wiersz potwierdź naciśnięciem klawisza [Enter]. Po wpisaniu rcpt to: serwer może zwrócić komunikat mailbox unavailable, jeśli adres nie istnieje. Komunikatem recipient ok potwierdzi dostępność adresu. Dokładne brzmienie komunikatów zależy jednak od serwera pocztowego, więc mogą się one różnić od podanych.

środa, 20 kwietnia 2011

screen

$ screen program
$ screen -S nazwa #jeżeli chcemy nazwać screen jakoś sensownie, przydaje się gdy mamy kilka screenów)

$ screen -r nazwa

$ screen -dr nazwa

$ screen -S nazwa -d -m program

Skrót klawiszowy Akcja
Ctrl-a d Usypia screen'a zachowując wszystkie aplikacje w tle
Ctrl-a c Tworzy nowe okno z powłoką systemową
Ctrl-a n Przechodzi do następnego okna
Ctrl-a [spacja] Przechodzi do następnego okna
Ctrl-a p Przechodzi do poprzedniego okna
Ctrl-a " Wyświetla listę okien
Ctrl-a A Zmienia nazwę aktywnego okna
Ctrl-a S Dzieli konsolę na 2 części
Ctrl-a [TAB] Przenosi kursor do kolejnej części podzielonego ekranu
Ctrl-a X Zamyka aktywną część podzielonego ekranu
Ctrl-a x Blokada screena aż do wpisania hasła
Ctrl-a K zabicie aktywnego okna"

Konfiguracja mieści się w pliku .screenrc w $HOME

#wyłączyć wiadomość powitalną
startup_message off
#duży bufor przewijania
defscrollback 5000
#pasek statusu w ostatniej linijce
caption always "%{= kw}%-w%{= BW}%n %t%{-}%+w %-= @%H - %D %d %M - %c"
#Skrót Ctrl-a przy częstym używaniu staje się męczący.
#Można go zmienić na inny nie wymagający użycia Ctrl,
#np. na `. Samo ` w oknie mozna uzyskac przez ``
escape "``"
#w oknie nr 1 uruchomić emacsa bez buforu przewijania
screen -h 0 1 emacs -nw
# wyłączyć migający ekran po wciśnięciu
vbell off

----------------------------------------------------------------------------

Podaj emulacji ANSI/VT100, umożliwiając uruchamianie wielu pełnoekranowym pseudo-terminali z jednego terminalu rzeczywistym i pozwalając manipulować i zapisać ekran wejścia i wyjścia, kopiowanie i wklejanie między oknami, itd.
-a -

Include all capabilities in each window's termcap. Uwzględnij wszystkie możliwości w każdym oknie w termcap.

-A -A

Adapt all windows to the size of the current terminal. Dostosowanie wszystkich okien do rozmiaru bieżącego terminala. Default is to try to use the previous window size. Domyślnie jest to, aby spróbować użyć poprzedniego rozmiaru okna.

-c file -C plik

Use file as the configuration file instead of the default $HOME/.screenrc . Użyj pliku jako pliku konfiguracyjnego zamiast domyślnego $ HOME / .screenrc.

-d -D

Detach session running elsewhere. Odłącz sesję pracy gdzie indziej. With -r , reattach to this terminal. Z-r, ponownie podłączyć do tego terminala. With -R , reattach to this terminal or create it if it doesn't already exist. Z-R, ponownie podłączyć do tego terminala lub go utworzyć, jeśli nie istnieje. With -RR , use the first session when reattaching if more than one session is available. Z-RR, należy użyć pierwszej sesji podczas ponownego podłączania jeśli więcej niż jedna sesja jest dostępny.

-D -D

Detach session running elsewhere, logging out before detaching. Odłącz sesję pracy gdzie indziej, wylogowanie się przed odłączeniem. With -r , reattach to this terminal. Z-r, ponownie podłączyć do tego terminala. With -R , reattach to this terminal or create it if it doesn't already exist. Z-R, ponownie podłączyć do tego terminala lub go utworzyć, jeśli nie istnieje. With -RR , do whatever is necessary to create a new session. Z-RR, robić, co jest niezbędne do stworzenia nowej sesji.

-e xy -E xy

Change command characters. Zmiana znaków polecenia. Specify x as the command character (default Ctrl-a ) and y as the character that generates a literal command character (default a ). Określ x jako znak komendy (domyślnie Ctrl-a) i y jako znak, który generuje literalny znak komendy (domyślnie). Specify in caret notation (eg, -e ^Pp to set Ctrl-p as the command character, which is useful for emacs -mode shell ). Określ w daszek zapisu (np.-e ^ Pp ustawić Ctrl-p jako znak komendy, co jest przydatne dla powłoki trybu emacs).

-f , -fn , -fa -F,-fn-fa

Turn flow control on, off, or to automatic-switching mode. Włącz kontrolę przepływu włączona, wyłączona, tryb automatyczny lub przełączania.

-h num -H num

Specify the size of the history scrollback buffer. Określa rozmiar bufora przewijania historii.

-i -I

Cause the interrupt key (usually Ctrl-c ) to interrupt the display immediately when flow control is on. Bo klawisz przerwania (zwykle Ctrl-c), aby przerwać wyświetlanie natychmiast gdy jest kontrola przepływu. Use of this option is discouraged. Używanie tej opcji nie jest zalecane.

-l , -ln -L,-ln

Turn login mode on or off for /etc/utmp updating. Włącz logowanie lub wyłącza tryb do / etc / utmp aktualizacji.

-ls , -list -Ls,-list

Print list of pid.tty.host strings identifying screen sessions. Wypisuje pid.tty.host ciągi identyfikacji sesji screen.

-L -L

Tell screen that automargin terminal has a writable last position. Powiedz ekranie terminala automargin ma zapisu ostatniej pozycji.

-m -M

Ignore the $STY environment variable and create a new session. Zignoruj ​​$ STY zmienna i utworzyć nową sesję. With -d , start session in detached mode; useful for scripts. Z-d, sesja rozpocznie się indywidualny tryb; przydatne dla skryptów. With -D , start session in detached mode but don't fork a new process; the command exits if the session terminates. Z-D, rozpoczęcie sesji w trybie indywidualny, lecz nie rozwidla nowego procesu; polecenie zakończyło się gdy kończy się sesja.

-O -O

Use optimal output mode for terminal rather than true VT100 emulation. Użyj optymalny tryb wyjściowy dla terminala niż prawdziwy emulacji VT100.

-p window -P oknie

Preselect the specified window if it exists. Wybierz wstępnie określonego okna, jeśli istnieje.

-q -Q

Suppress error message printing on startup. błąd wstrzymywanie drukowania komunikat przy starcie. Exit with nonzero return code if unsuccessful. Wyjście z kodem powrotu niezerowe w razie porażki.

-r [ pid.tty.host ] -R [pid.tty.host]

-r sessionowner /[ pid.tty.host ] r sessionowner-/ [pid.tty.host]

Resume detached session. Resume indywidualny sesji. No other options except -d or -D can be specified. Żadnych innych możliwości poza-d lub-D może być określony. With sessionowner , resume another user's detached session; requires setuid root. Z sessionowner, wznowić innego użytkownika indywidualny sesji; wymaga setuid root.

-R -R

Attempt to resume the first session found, or start a new session with the specified options. Próba wznowienia pierwszej sesji, lub jego rozpoczęciem nowej sesji z określonych opcji. Set by default if screen is run as a login shell. Domyślnie ustawione jeśli screen jest uruchamiany jako powłoki.

-s shell -S powłoka

Set the default shell, overriding the $SHELL environment variable. Ustaw domyślną powłokę, zastępując $ zmiennej SHELL.

-S name Nazwa-S

Specify a name for the session being started. Podaj nazwę dla sesji jest uruchomiona.

-t name -T nazwa

Set the window's title. Ustaw tytuł okna.

-T term -T termin

Set $TERM to term instead of "screen". Ustaw $ TERM termin zamiast "screen".

-U -U

Run in UTF-8 mode and set the default for new windows to UTF-8.ctrl . Uruchom w trybie UTF-8 i ustawić domyślną dla nowych okien na UTF-8.ctrl.

-v -V

Print version information and exit. Drukuj informację o wersji i zakończ.

-wipe [ match ] -Wipe [dopasowanie]

Like -ls , but remove destroyed sessions instead of marking them dead. Jak-ls, ale usunąć zniszczone sesje zamiast zaznaczać je martwe. If a match is specified, it should be in the same form as the argument to the -r option. Jeśli mecz jest określony, powinno być w tej samej formie jako argument do opcji-r.

-x -X

Attach to a session that is not detached. Dołącz do sesji, że nie jest odłączony. Requires multi-display mode. Wymaga wielu trybu wyświetlania.

-X -X

Run specified command in specified session. Uruchom określonego polecenia w określonej sesji. Requires multi-display mode, and session must not be password-protected. Wymaga tryb wyświetlania na wielu ekranach, a sesja nie może być chroniony hasłem.

TCPDUMP

tcpdump
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes

21:57:29.004426 IP 192.168.1.2.1034 > valve-68-142-64-164.phx3.llnw.net.27014: UDP, length 53
21:57:31.228013 arp who-has 192.168.1.2 tell 192.168.1.1
21:57:31.228020 arp reply 192.168.1.2 is-at 00:04:75:22:22:22 (oui Unknown)
21:57:38.035382 IP 192.168.1.2.1034 > valve-68-142-64-164.phx3.llnw.net.27014: UDP, length 53
21:57:38.613206 IP valve-68-142-64-164.phx3.llnw.net.27014 > 192.168.1.2.1034: UDP, length 36

To display the verbose output:

#tcpdump -v
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes

22:00:11.625995 IP (tos 0x0, ttl 128, id 30917, offset 0, flags [none], proto: UDP (17), length: 81) 192.168.1.2.1034 > valve-68-142-64-164.phx3.llnw.net.27014: UDP, length 53
22:00:20.691903 IP (tos 0x0, ttl 128, id 31026, offset 0, flags [none], proto: UDP (17), length: 81) 192.168.1.2.1034 > valve-68-142-64-164.phx3.llnw.net.27014: UDP, length 53
22:00:21.230970 IP (tos 0x0, ttl 114, id 4373, offset 0, flags [none], proto: UDP (17), length: 64) valve-68-142-64-164.phx3.llnw.net.27014 > 192.168.1.2.1034: UDP, length 36
22:00:26.201715 arp who-has 192.168.1.2 tell 192.168.1.1
22:00:26.201726 arp reply 192.168.1.2 is-at 00:04:11:11:11:11 (oui Unknown)
22:00:29.706020 IP (tos 0x0, ttl 128, id 31133, offset 0, flags [none], proto: UDP (17), length: 81) 192.168.1.2.1034 > valve-68-142-64-164.phx3.llnw.net.27014: UDP, length 53
22:00:38.751355 IP (tos 0x0, ttl 128, id 31256, offset 0, flags [none], proto: UDP (17), length: 81) 192.168.1.2.1034 > valve-68-142-64-164.phx3.llnw.net.27014: UDP, length 53

Network interfaces available for the capture:

#tcpdump -D
1.eth0
2.any (Pseudo-device that captures on all interfaces)
3.lo

To display numerical addresses rather than symbolic (DNS) addresses:

#tcpdump -n
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes

22:02:36.111595 IP 192.168.1.2.1034 > 68.142.64.164.27014: UDP, length 53
22:02:36.669853 IP 68.142.64.164.27014 > 192.168.1.2.1034: UDP, length 36
22:02:41.702977 arp who-has 192.168.1.2 tell 192.168.1.1
22:02:41.702984 arp reply 192.168.1.2 is-at 00:04:11:11:11:11
22:02:45.106515 IP 192.168.1.2.1034 > 68.142.64.164.27014: UDP, length 53
22:02:50.392139 IP 192.168.1.2.138 > 192.168.1.255.138: NBT UDP PACKET(138)
22:02:54.139658 IP 192.168.1.2.1034 > 68.142.64.164.27014: UDP, length 53
22:02:57.866958 IP 125.175.131.58.3608 > 192.168.1.2.9501: S 3275472679:3275472679(0) win 65535

To display the quick output:

#tcpdump -q
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes

22:03:55.594839 IP a213-22-130-46.cpe.netcabo.pt.3546 > 192.168.1.2.9501: tcp 0
22:03:55.698827 IP 192.168.1.2.9501 > a213-22-130-46.cpe.netcabo.pt.3546: tcp 0
22:03:56.068088 IP a213-22-130-46.cpe.netcabo.pt.3546 > 192.168.1.2.9501: tcp 0
22:03:56.068096 IP 192.168.1.2.9501 > a213-22-130-46.cpe.netcabo.pt.3546: tcp 0
22:03:57.362863 IP 192.168.1.2.1034 > valve-68-142-64-164.phx3.llnw.net.27014: UDP, length 53
22:03:57.964397 IP valve-68-142-64-164.phx3.llnw.net.27014 > 192.168.1.2.1034: UDP, length 36
22:04:06.406521 IP 192.168.1.2.1034 > valve-68-142-64-164.phx3.llnw.net.27014: UDP, length 53
22:04:15.393757 IP 192.168.1.2.1034 > valve-68-142-64-164.phx3.llnw.net.27014: UDP, length 53

Capture the traffic of a particular interface:

tcpdump -i eth0
To capture the UDP traffic:

#tcpdump udp
To capture the TCP port 80 traffic:

#tcpdump port http
To capture the traffic from a filter stored in a file:

#tcpdump -F file_name
To create a file where the filter is configured (here the TCP 80 port)

#vim file_name
port 80
To stop the capture after 20 packets:

#tcpdump -c 20
To send the capture output in a file instead of directly on the screen:

#tcpdump -w capture.log
To read a capture file:

#tcpdump -r capture.log
reading from file capture.log, link-type EN10MB (Ethernet)

09:33:51.977522 IP 192.168.1.36.40332 > rr.knams.wikimedia.org.www: P 1548302662:1548303275(613) ack 148796145 win 16527
09:33:52.031729 IP rr.knams.wikimedia.org.www > 192.168.1.36.40332: . ack 613 win 86
09:33:52.034414 IP rr.knams.wikimedia.org.www > 192.168.1.36.40332: P 1:511(510) ack 613 win86
09:33:52.034786 IP 192.168.1.36.40332 > rr.knams.wikimedia.org.www: . ack 511 win 16527

The captured data isn't stored in plain text so you cannot read it with a text editor, you have to use a special tool like TCPdump (see above) or Wireshark (Formerly Ethereal) which provides a graphical interface.

The capture.log file is opened with Wireshark.


To display the packets having "www.openmaniak.com" as their source or destination address:

#tcpdump host www.openmaniak.com
To display the FTP packets coming from 192.168.1.100 to 192.168.1.2:

#tcpdump src 192.168.1.100 and dst 192.168.1.2 and port ftp
To display the packets content:

#tcpdump -A
Packets capture during a FTP connection. The FTP password can be easily intercepted because it is sent in clear text to the server.

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ath0, link-type EN10MB (Ethernet), capture size 96 bytes
20:53:24.872785 IP ubuntu.local.40205 > 192.168.1.2.ftp: S 4155598838:4155598838(0) win 5840
....g....................
............
20:53:24.879473 IP ubuntu.local.40205 > 192.168.1.2.ftp: . ack 1228937421 win 183
....g.I@.............
........
20:53:24.881654 IP ubuntu.local.40205 > 192.168.1.2.ftp: . ack 43 win 183
....g.I@.......8.....
......EN
20:53:26.402046 IP ubuntu.local.40205 > 192.168.1.2.ftp: P 0:10(10) ack 43 win 183
....g.I@......`$.....
...=..ENUSER teddybear

20:53:26.403802 IP ubuntu.local.40205 > 192.168.1.2.ftp: . ack 76 win 183
....h.I@.............
...>..E^
20:53:29.169036 IP ubuntu.local.40205 > 192.168.1.2.ftp: P 10:25(15) ack 76 win 183
....h.I@......#c.....
......E^PASS wakeup

20:53:29.171553 IP ubuntu.local.40205 > 192.168.1.2.ftp: . ack 96 win 183
....h.I@.,...........
......Ez
20:53:29.171649 IP ubuntu.local.40205 > 192.168.1.2.ftp: P 25:31(6) ack 96 win 183
....h.I@.,...........
......EzSYST

20:53:29.211607 IP ubuntu.local.40205 > 192.168.1.2.ftp: . ack 115 win 183
....h.I@.?.....j.....
......Ez
20:53:31.367619 IP ubuntu.local.40205 > 192.168.1.2.ftp: P 31:37(6) ack 115 win 183
....h.I@.?...........
......EzQUIT

20:53:31.369316 IP ubuntu.local.40205 > 192.168.1.2.ftp: . ack 155 win 183
....h.I@.g...........
......E.
20:53:31.369759 IP ubuntu.local.40205 > 192.168.1.2.ftp: F 37:37(0) ack 156 win 183
....h.I@.h.....e.....
......E.

We see in this capture the FTP username (teddybear) and password (wakeup).

wtorek, 19 kwietnia 2011

Yakuake – inny terminal rodem z Quake’a

Skróty klawiszowe

* Shift+Alt+strzalki — zmiana rozmiaru okna
* Ctrl+Shift+N — nowa sesja
* Shift+ (lewo,prawo) — poruszanie się między sesjami
* Ctrl+Shift+(lewo,prawo) — zmiana pozycji sesji
* Ctrl+Shift+F — pelny ekran
* Ctrl+Alt+S — zmiana nazwy aktualnej sesji
* Shift+LPM — zaznaczanie i kopiowanie
* Ctrl+Shit+L — podzielenie okna w pionie
* Ctrl+Shit+T — podzielenie okna w poziomie

poniedziałek, 18 kwietnia 2011

VSFTPD

Konfiguracja vsftpd ( Very Secure FTP Server )
28 lip

Jest to prawdopodobnie najbezpieczniejszy i najszybszy UNIX’owy serwer FTP. Jego zaletami są m.in. prostota konfiguracji, bezpieczeństwo i szybkość (transfer jest o wiele większy niż w przypadku innych serwerów ftp). Dodatkowo warto wspomnieć, że w jego kodzie nie znaleziono „błędów krytycznych”. Używany jest m.in. na serwerach ftp.redhat.com, ftp.openbsd.org, ftp.suse.com, ftp.ximian.com, ftp.kde.org, ftp.debian.org, ftp.gnome.org, ftp.gnu.org i inne, co potwierdza tezę, że vsftpd jest zaufanym i dojrzałym narzędziem. Sama nazwa mówi za siebie – „vs” jest skrótem od Very Secure. Jeżeli chcesz mieć bezpieczny, wydajny i stabilny serwer FTP, powinieneś spróbować vsftpd.

Instalacja
# apt-get update
# apt-get install vsftpd

Konfiguracja
vsftpd pozwala nam na odpalenie wielu serwerów FTP jednocześnie na różnych portach, dzięki temu zyskujemy możliwość odpalenia serwera anonimowego osobno konfigurowalnego obok serwera produkcyjnego. Zmiana konfiguracji jednego lub wyłączenie nie zakłóci pracy drugiego. Postaram się przedstawić taką konfigurację w tym wpisie.

Standardowy plik konfiguracyjny vsftpd znajduje się w /etc/vsftpd.conf . Od razu po instalacji znajdziemy w nim sporo już gotowych ustawień, jednak polecałbym wykasować jego zawartość i stworzyć go od nowa. Oto niektóre z najważniejszych opcji jakie możemy wykorzystać podczas budowania własnego configa.

# Poziom z którego zostaje uruchomiony serwer
nopriv_user=

# Uruchamianie serwera w trybie standalone
listen=

# Określenie portu, na którym serwer ma nasłuchiwać (domyślnym jest port 21)
listen_port=

# Zabronienie na logowanie się użytkownikom anonimowym, domyślnie jest to YES
anonymous_enable=

# Zezwolenie na logowanie się użytkownikom lokalnym, domyślnie jest to NO
local_enable=

# Zezwolenie na zapis w katalogu użytkownika lokalnego
write_enable=

# Umask (w większości serwerów używany jest 022)
local_umask=

# Umask dotyczący anonimowych
anon_umask=022

# limit szybkości podawany jest w bajtach na sekundę, jeśli jest ustawiony na 0 to brak jakiegokolwiek limitu.
local_max_rate=

# Włączenie logowania
xferlog_enable=

# Ścieżka do pliku z logami
xferlog_file=/var/log/vsftpd.log

# Maksymalna liczba połączonych użytkowników
max_clients=

# Maksymalna liczba użytkowników mogących się połączyć z tego samego adresu IP
max_per_ip=

# Banner, który będzie wyświetlany podczas logowania. W jego stworzeniu może być pomocny program app-misc/figlet.
banner_file=/etc/vsftpd/vsftpd.banner

# Ograniczenie użytkownikom do poruszania się jedynie w obrębie katalogu domowego
chroot_local_user=

# Katalog dla chroot’a
secure_chroot_dir=/var/chroot/vsftpd

# Dodanie użytkowników, którzy mogą poruszać się poza katalogiem domowym
chroot_list_enable=YES

# Dodajemy użytkownika z przywilejami poruszania się poza katalogiem domowym np:
# echo „użytkownik” >> /etc/vsftpd/chroot.list
chroot_list_file=/etc/vsftpd/chroot.list

# Serwer nie będzie pytał o hasło, podczas logowania na anonymous:
no_anon_password=

# Pozwalamy na download plików, które będą miały ustawione prawa do odczytu (readable):
anon_world_readable_only=

# Zabraniamy na upload plików:
anon_upload_enable=

# Ukrywamy prawdziwych użytkowników oraz grup dla plików lub katalogów
# (vsftpd zamieni je na nazwy użytkownika odpowiedzialnego za anonimowy ftp):
hide_ids=

# Pozwala na tworzenie katalogów
anon_mkdir_write_enable=

# Pozwala na kasowanie i zmienianie nazw katalogów przez anonimowych
anon_other_write_enable=

# Pozwala ograniczyć transfer dla anonimowych
anon_max_rate=

# Maxymalny czas bezczynności
idle_session_timeout=300

# Jeżeli jest ustawione na YES pozwala na ściąganie metodą ASCII
ascii_download_enable=

# Jeżeli jest ustawione na YES pozwala na wysyłanie metodą ASCII
ascii_upload_enable=NO

# Sam decydujesz czy mogą się łączyć Aktywnie czy Pasywnie
connect_from_port_20=NO

# Ustawione na NO zablokuje polecenia PORT i ustawi serwer w tryb pasywny (lepiej YES)
port_enable=YES

# Ustawione na YES loguje polecenia FTP wydawane przez użytkowników
log_ftp_protocol=NO

# Pozwala ograniczyć możliwość wydawania komand do minimum(możemy zabronić ściągania, sprawdzania wielkości plików itp), pełna lista możliwość tutaj -> http://www.nsftools.com/tips/RawFTP.htm
cmds_allowed=

# Ciekawą opcją jest także `user_config_dir`, która pozwala przyporządkować dowolnemu użytkownikowi w systemie konkretne opcje. Mogą to być np. takie opcje jak listen_address, banner_file, max_per_ip, max_clients, xferlog_file, vsftpd_log_file, itp. Definiujemy więc ścieżkę do takiego katalogu, oraz tworzymy go w systemie. Po zdefiniowaniu tej opcji w pliku konfiguracyjnym, vsftpd będzie automatycznie szukał pliku, który nosi taką samą nazwę jak użytkownik systemowy. Na przykład dla użytkownika `tomek` takim plikiem będzie /usr/local/etc/vsftpd/user_conf/tomek, w tym właśnie pliku będziemy ustawiać konkretne opcje dla tego użytkownika.
user_config_dir=/usr/local/etc/vsftpd/user_conf/

# Opcja ta pokazuje informację o procesie systemowym vsftpd, inaczej mówiąc pokazuje co dany użytkownik robi po połączeniu się z naszym serwerem
setproctitle_enable=YES

Przykładowe pliki vsftpd.conf
Przykład nr 1
Poniższa konfiguracja serwera FTP umożliwia łączenie użytkowników do swoich katalogów domowych. Mogą oni pobierać i wysyłać na swoje konta dane z prędkością do 5 KB/s w każdą stronę. Po poprawnym zalogowaniu się do swoich kont nie będą mogli wychodzić poza swój katalog domowy ze względów bezpieczeństwa. Istnieje możliwość dodania użytkowników którzy będą mogli poruszać się poza swoim katalogiem domowym. Zabronione jest również logowanie się anonimowych użytkowników.

nopriv_user=ftp
listen=YES
listen_port=21
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
local_max_rate=5120
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
max_clients=500
max_per_ip=2
banner_file=/etc/vsftpd/vsftpd.banner
chroot_local_user=YES
secure_chroot_dir=/var/chroot/vsftpd
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot.list

Przykład nr 2
Poniższy przykład pozwala na logowanie się użytkowników anonimowych, serwer działa na porcie 2121. Anonimowi oraz normalni mogą pobierać i wysyłać na swoje konta dane bez ograniczeń. Wszyscy mają zakaz opuszczania własnego katalogu. Dla anonimowych będzie to /var/ftp . Maksymalna ilość połączeń wynosi 5 a dla jednego IP jest to 2. Pliki zakazane na serwerze to *.mp3 i *.avi a katalog files. A pliki niewidoczne dla userów do *.doc i *.xls

nopriv_user=ftp
listen=YES
listen_port=2121
anonymous_enable=YES
local_enable=YES
ftpd_banner="Serwer vsFTPd wita"
xferlog_enable=YES
xferlog_file=/var/log/xferlog.log
xferlog_std_format=YES
chroot_local_user=YES
secure_chroot_dir=/var/ftp
no_anon_password=YES
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=NO
hide_ids=YES
local_umask=022
anon_umask=022
#limity liczby równoczesnych połączeń
max_clients=5
max_per_ip=2
idle_session_timeout=120
data_connection_timeout=900
deny_file={*.mp3,files/,*.avi}
hide_file={*.doc,*.xsl}

Przykład nr 3
Konto z możliwością logowania się tylko anonimowo. Można jedynie pobierać pliki bez ingerencje w nie.

listen=YES
anonymous_enable=YES
ftp_username=ftp
write_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
anon_world_readable_only=YES
anon_max_rate=0
idle_session_timeout=300
ascii_download_enable=NO
ascii_upload_enable=NO
connect_from_port_20=NO
port_enable=YES
hide_ids=NO
log_ftp_protocol=NO
syslog_enable=NO
max_per_ip=0
# cmds_allowed=
local_root=/usr/share/empty
nopriv_user=nobody
ftpd_banner=(vsFTPd 1.2.0)

Uruchamianie
Jeżeli posiadamy tylko jeden plik konfiguracyjny to możemy po prostu wydać polecenie /etc/init.d/./vsftpd start
Jeżeli posiadamy parę plików konfiguracyjnych to musimy każdy osobno załadować :
vsftpd /etc/vsftpd.conf.annonymus
vsftpd /etc/vsftpd.conf.normalny
vsftpd /etc/vsftpd.conf.bartek

To tyle;]

Tar - pakownie/rozpakowywanie

Kompresja tar.gz, bz i inne

Narzędzia i sposoby do pakowania i rozpakowywania archiwów:

Jedną z najczęściej wykonywanych przez nas czynności jest na pewno rozpakowywanie plików ściągniętych z internetu. Zazwyczaj są to pliki programów z rozszerzeniem tar.gz i tar.bz2 również zip oraz rar.
Poniżej podstawowe polecenia przy pakowaniu i rozpakowywaniu tych plików.
1. Rozpakowanie plików *.tar.gz:
- tar -xvzf nazwa_pliku.tar.gz
-x - extract,
-v - verbose (wypisywanie nazw wszystkich plików),
-z - archiwum skompresowane programem gzip,
-f - plik.
2. Rozpakowywanie plików typu *.bz2:
- tar -xvjf nazwa_pliku*tar.bz2
-xvf - jak wyżej,
-j - oznacza archiwum bz2.
3. Pakowanie ogólnie wygląda tak:
- tar -czf backup.tar.gz /katalog/do/spakowania,
- tar -cjf backup.tar.bz2 /katalog/do/spakowania.
4. Rozpakowywanie plików *.zip
- unzip nazwa_pliku.zip.
Pakowanie: zip -r backup.zip /katalog/do/spakowania.

Teraz parę praktycznych przykładów wykorzystania. Do testów wybrałem sobie katalog perl posiadający skrypty perla oraz zawierający jeszcze inny katalog również ze skryptami.
Załózmy, że często wykonujemy kopię tego samego katalogu i jest on zawsze nadpisywany, a chcemy aby za każdym razem archiwum było tworzone z aktualna datą. Mozemy oczywiści ją podawać ręcznie, ale gdy polecenie chcemy umieścić w skrypcie t może byc problem. Rozwiążemy go następująco:
tar -cvzf `date +'%d%m%y'`.tar.gz /home/rambix/perl.
Teraz inna sytuacja.
Co jakiś czas archiwizujemy sobie jakis katalog np. może to być /home, ale nie chcemy aby jakieś katalogi w nim się znajdujące ze wzgledu na ich rozmiar były pakowane (np. zawierające filmy muzyke itp.). Na przykładzie mojego katalogu perl, który zawiera jeszze katalog other robimyto tak:
tar -cvzf perl.tar.gz perl --exclude perl/other.

piątek, 15 kwietnia 2011

Polonizacja Debi@na

apt-get install locales

w okienku tore sie nam pojawi zaznaczamy
[*] pl_PL ISO-8859-2

i dajemy ok w nastepnym okienku ustawiamy kursor na
pl_PL


i ok

teraz instalujemy konfiguratora do localesow
apt-get install localeconf


na pytanie
Manage locale configuration files with debconf?

odpowiadamy [Yes]
na pytanie
Replace existing locale configuration files?

odpowiadamy [Yes]
z listy wybieramy
pl_PL ISO-8859-2

nastepnie [OK]
i zaznaczamy
[*] LC_COLLATE
[*] LC_CTYPE
[*] LC_MESSAGES
[*] LC_MONETARY
[*] LC_NUMERIC
[*] LC_TIME

nastepnie [OK]
na kolejnych ekranach powinno byc zaznaczone
pl_PL ISO-8859-2

jesli nie jest to zaznaczamy w/w pozycje
i 7 razy naciskamy klawisz [Enter]

jesli mamy juz w systemie locales i localeconf mozemy je przekonfigurowac piszac
dpkg-reconfigure locales
dpkg-reconfigure localeconf


aby dopelnic calosci przydalo by sie zainstalowac jaks czcionke pod konsole w standardzie ISO-8859-2 a wiec
apt-get install fonty

z listy wybieramy
iso2 (?rodkowa Europa)

środa, 13 kwietnia 2011

SCP

Copy the file "foobar.txt" from a remote host to the local host

$ scp your_username@remotehost.edu:foobar.txt /some/local/directory

Copy the file "foobar.txt" from the local host to a remote host

$ scp foobar.txt your_username@remotehost.edu:/some/remote/directory

Copy the directory "foo" from the local host to a remote host's directory "bar"

$ scp -r foo your_username@remotehost.edu:/some/remote/directory/bar

Copy the file "foobar.txt" from remote host "rh1.edu" to remote host "rh2.edu"

$ scp your_username@rh1.edu:/some/remote/directory/foobar.txt \
your_username@rh2.edu:/some/remote/directory/

Copying the files "foo.txt" and "bar.txt" from the local host to your home directory on the remote host

$ scp foo.txt bar.txt your_username@remotehost.edu:~

Copy multiple files from the remote host to your current directory on the local host

$ scp your_username@remotehost.edu:/some/remote/directory/\{a,b,c\} .

$ scp your_username@remotehost.edu:~/\{foo.txt,bar.txt\} .

scp Performance

By default scp uses the Triple-DES cipher to encrypt the data being sent. Using the Blowfish cipher has been shown to increase speed. This can be done by using option -c blowfish in the command line.

$ scp -c blowfish some_file your_username@remotehost.edu:~

It is often suggested that the -C option for compression should also be used to increase speed. The effect of compression, however, will only significantly increase speed if your connection is very slow. Otherwise it may just be adding extra burden to the CPU. An example of using blowfish and compression:

$ scp -c blowfish -C local_file your_username@remotehost.edu:~

środa, 6 kwietnia 2011

Statystyki interfejsów sieciowych - vnstat

Statystyki interfejsów sieciowych
25 marca 2011, Morfeusz888

Wiadomo, przez serwer przepływają ogromne ilości danych i dobrze jest mieć na nie wgląd. Ile danych wchodzi, ile wychodzi, jaka jest średnia prędkość. Jeżeli pracownicy skarżyli by się, że internet zwolnił, zawsze możemy sprawdzić, czy nie szwankuje któryś interfejs na serwerze albo czy wina leży gdzieś indziej. W tym artykule przedstawię Wam aplikację vnstat. Poznamy, proces instalacji oraz podstawy jej wykorzystania. Zapraszam do lektury.

Dla odmiany pokaże, jak monitorować statystyki na systemie Ubuntu Server.
Po pierwsze instalacja.

Program znajduje się w standardowym repozytorium dla Ubuntu. W takim razie nie pozostaje nam nic innego, jak wklepać polecenie:

sudo apt-get install vnstat

podać hasło do roota i czekać, aż się wszystko pobierze i po instaluje. Pierwszy krok mamy za sobą. Coś za łatwo idzie. Prawda ? :)
Konfiguracja

Vnstat został podczas instalacji automatycznie dodany do usług, które startują wraz z systemem. Teraz musimy utworzyć bazę danych dla każdego z interfejsów sieciowych. Składnia wygląda tak:

vnstat -u -i interfejs

Mówiąc bardziej po ludzku, aby utworzyć bazę danych dla interfejsu eth0 wpisujemy

vnstat -u -i eth0

i zatwierdzamy enterem. Stanie się on automatycznie domyślny interfejsem dla programu. To polecenie wykonujemy jeszcze z poziomu roota.

Jeżeli serwer posiada więcej, niż jeden interfejs sieciowy to postępujemy analogicznie jak dla powyższego przykładu, czyli:

vnstat -u -i eth1
vnstat -u -i eth2

Tyle by było z konfiguracji.
Przeglądamy statystyki.

Jeżeli ktoś byłby bardzo napalony i zaraz po utworzeniu bazy wpisał vnstat, to dostanie komunikat, że statystyki nie zostaną wyświetlone, gdyż program posiada za mało danych. Musimy odczekać, tak najlepiej godzinę,abyśmy nie musieli oglądać jedno znakowych cyfr i potem dziwić się dlaczego tak mało danych przelatuje przez serwer.

Jak podglądać statystyki? Niech jako przykład posłuży nam ten interfejs eth0.

Vnstat umożliwia nam pokazywanie statystyk z różnych przedziałów czasowych. A mianowicie.

* vnstat -q – pokazuje ogólnie to co się w bazie znajdujemorfeusz888_vnsta1
Rys 1. Działanie polecenia vnstat -q
* vnstat -h – pokazuje statystyki z ostatnich 12 godzinmorfeusz888_vnstat2
Rys 2. Działanie polecenia vnstat -h
* vnstat -d – pokazuje statystyki z ostatnich dnimorfeusz888_vnstat3
Rys 3. Działanie polecenia vnstat -d
* vnstat -m – pokazuje statystyki z ostatnich miesięcymorfeusz888_vnstat4
Rys 4. Działanie polecenia vnstat -m
* vnstat -w -pokazuje statystyki z ostatnich tygodnimorfeusz888_vnstat5
Rys 5. Działanie polecenia vnstat -w
* vnstat -t – wyświetla dni, w których interfejsy przesłały najwięcej danychmorfeusz888_vnstat6
Rys 6. Działanie polecenia vnstat -t
* vnstat -s – pokazuje krótkie informacje na temat statystykmorfeusz888_vnstat7
Rys 7. Działanie polecenia vnstat -s
* vnstat -l – pokazuje obciążenie danego interfejsu z czasie rzeczywistym
* vnstat –help – więcej poleceń tego typu

Pewnie się teraz zastanawiacie, co znaczą te dziwne literki typu rx itd. Aby było mi łatwiej tłumaczyć, posłużę się statystykami z dni.

morfeusz888_vnstat3
Rys 8. Przykładowe statystyki z dni

Kolumna day, wiadomo co oznacza, nie trzeba tłumaczyć. Kolumna z podpisem rx informuje nas, ile danych przez ten interfejs zostało otrzymanych. Kolumna tx – ile zostało wysłanych danych i avg. rate – jaka była średnia prędkość przysyłanych danych. Total, to wiemy – wszystko.
Ale ja chce obrazki.

Jeżeli kogoś nie satysfakcjonuje taka interpretacja, obco czuje się wśród tych cyferek w trybie tekstowym, to może sobie zainstalować graficzną nakładkę poprzez www. Jedyny problem to taki, że musi być zainstalowany serwer www oraz php. Ja z racjitego, że na Ubuntu Server podczas instalacji machnąłem już sobie LAMP-a, to nie muszę tego robić. Pokażę, jak to pobrać i zainstalować.

Po pierwsze musimy pobrać archiwum. Wpisujemy w konsoli

wget http://www.sqweek.com/sqweek/files/vnstat_php_frontend-1.5.1.tar.gz

Po pobraniu paczuszki należy ją wypakować. Wpisujemy:

tar -xvf vnstat_php_frontend-1.5.1.tar.gz

Gitara. Paczka jest wypakowana. Teraz wypadałoby zmienić jej nazwę na jakąś bardziej przyjazną:

mv vnstat_php_frontend-1.5.1 vnstatwww

Ok. Teraz kopiujemy folder do katalogu www serwera. W moim przypadku jest var/www.

sudo cp -r /home/ubuntuserver/vnstatwww /var/www/

Teraz dla potrzeb musimy wymedytować plik config.php. Wpisujemy

sudo nano /var/www/vnstatwww/config.php

Plik zawiera 72 linii kodu, z czego większość to komentarze. Nas najbardziej interesują linie:

* $language = ‘en’ ; – język interfejsu
* $iface_list = array(’eth0 ‘, ‘eth1 ‘, ’sixxs’); – interfejsy, jakie mają być wyświetlane

Język domyślnie jest jako holenderski, więc ja od razu zmieniłem na angielski. Nie ma języka polskiego. Zaś w iface dodałem następny interfejs eth1. Tutaj możemy śmiało dodawać tyle interfejsów, ile jest na serwerze.

Aby zobaczyć statystyki w trybie graficzny, w przeglądarce wpisujemy (jeżeli sprawdzamy to zdalnie) adres ip/vnstatwww czyli u mnie to jest http://192.168.0.11/vnstatwww/

Naszym oczom ukażą się statystyki

TrueCrypt

TrueCrypt — prawdziwe szyfrowanie
12 maja 2007, lipiec

Super opis
http://dyski.cdrinfo.pl/artykuly/truecrypt5/index.php



We wcześniejszym tekście opisywałem program Cryptsetup, który pozwalał nam na sprawne zaszyfrowanie naszych danych. Ktoś może zapytać: “Więc po co tracić czas i opisywać to samo, tylko wykonane w innym programie?”. Moja odpowiedź brzmi: “Po to, żeby użytkownik miał alternatywę i sam mógł zdecydować, którego programu chciałby użyć.” Ponadto TrueCrypt jest zdecydowanie łatwiejszy w użyciu, o czym przekonasz się w trakcie pracy z tym programem. Jeżeli jesteś zainteresowany odkrywaniem wspaniałych możliwości tego programu, zapraszam do lektury!

Autor: Marcin Lipiec

Krótkie przedstawienie funkcji programu

TrueCrypt jest darmowym programem, który szyfruje informacje “w locie” (ang. on-the-fly). W chwili pisania tekstu najnowsza wersja jest oznaczona numerkiem 4.3. Za pomocą TrueCrypt możesz zaszyfrować cały dysk, oddzielną partycję lub stworzyć szyfrowany folder. TrueCrypt nie tylko szyfruje całe zawartości plików, ale również ich nazwy i nazwy folderów w których się znajdują. Nie jest możliwe jest także odczytanie rozmiaru zaszyfrowanego folderu/dysku/partycji. W tym tekście pokażę jak zaszyfrować dowolny folder, znajdujący się na Twojej partycji. TrueCrypt dostępny jest zarówno na Windowsa i Linuksa.

Zalety TrueCrypt:

* tworzy zaszyfrowany wirtualny dysk i montuje go jak prawdziwy,
* szyfruje cały dysk, wybraną partycje/katalog a nawet USB,
* szyfrowanie następuje automatycznie, w locie i jest niewidzialne dla użytkownika,
* nie ma możliwości odczytania rozmiaru zaszyfrowanej partycji/katalogu,
* wykorzystuje m.in. takie algorytmy jak: AES-256, Serpent, Twofish,
* umożliwia stworzenie ukrytego wolumenu,
* tworzone wolumeny w żaden sposób nie różnią się od zwykłych danych,
* łatwy w obsłudze,
* wirtualne dyski tworzone przez TrueCrypt są całkowicie niezależne od systemu operacyjnego,
* klucze identyfikacyjne mogą być przechowywane na pendrivie.
* i wiele więcej…

Zabezpieczenie szyfrowanych danych może odbywać się na trzy sposoby:

* za pomocą wybranego przez Ciebie hasła,
* za pomocą specjalnego klucza,
* jednocześnie z użyciem hasła i klucza.

Ale co to jest ten klucz? Kluczem może być dowolny plik z Twojego dysku twardego np.: *.avi, *.mpg czy *.txt lub cały folder zawierający kilka plików. Uwaga! Lepiej być ostrożnym w używaniu jako klucza pliku tekstowego, ponieważ jeżeli zmienisz jego zawartość, zmieni się klucz, tym samym nie będziesz w stanie odszyfrować swoich danych. Co się stanie jak zgubisz klucz? Już nigdy nie odzyskasz swoich danych. Dlatego nie polecam wykorzystywania do identyfikacji tylko samego klucza. Najlepszą metodą jest użycie i klucza i hasła. W takim przypadku, gdy na przykład zgubimy klucz, mamy możliwość jego zmiany po wprowadzeniu odpowiedniego hasła i odwrotnie, jeżeli zapomnimy hasło, mamy możliwość jego zmiany po wskazaniu odpowiedniego klucza. Oczywiście żadne rozwiązanie nie jest idealne, ponieważ zawsze istnieje ryzyko, że zapomnisz hasło i zgubisz klucz.
Krótkie porównanie TrueCrypt i DM-Crypt

W rzeczywistości trudno stwierdzić, który z tych programów jest lepszy. Po żmudnym przeglądzie opisu opcji i rozważaniach stwierdziłem, że połączenie obu tych programów byłoby najlepszym rozwiązaniem. Oba programy pozwalają na stworzenie tzw. “kontenera” — kontener jest to szyfrowany plik, który działa tak jak katalog, więc możesz umieszczać w nim swoje pliki (przydatne rozwiązanie na przykład wtedy, gdy nie chcesz szyfrować całej partycji). Świetną zaletą obu programów jest również możliwość szyfrowania danych w czasie nagrywania ich na płytę CD lub DVD. Przy zmianie jądra Linuksa na nowszą wersję, będziesz musiał ponownie instalować moduł TrueCrypt, w przeciwieństwie do DM-Crypta. Z drugiej strony — w TrueCrypt możemy wykorzystać jednocześnie kilka algorytmów do szyfrowania! Działa on również na Windows, więc jeśli korzystasz z obu systemów, TrueCrypt będzie zdecydowanie lepszym wyborem. Jeżeli chcecie znaleźć bardzo szczegółowe informacje, zapraszam na stronę http://czytelnia.ubuntu.pl/index.php/2007/04/03/szyfrowane-systemy-plikow/. Znajdziesz tam świetny opis tych i innych programów.
Jak wybrać ten najlepszy klucz?

Osobiście nie polecam wybierania jako klucza plików czy folderów z naszego dysku. Najlepszą, więc metodą będzie użycie specjalnego generatora wbudowanego w TrueCrypt. RNG — Random Number Generator, bo taką nosi on nazwę, tworzy nam losowe dane o maksymalnej długości 320 bajtów i zapisuje je do wskazanego przez nas pliku. Jak odbywa się generowanie losowych danych? Jeżeli chodzi o Linuksa, RNG wykorzystuje dotego /dev/random lub /dev/urandom, czyli szumy powstałe przy używaniu urządzeń podłączonych do naszego komputera takie jak klawiatura czy myszka.
Jak działa TrueCrypt?

Cały proces szyfrowania jest zupełnie niewidzialny. W momencie kopiowania danego pliku na szyfrowany dysk, jego niewielkie kawałki (jeśli jest on zbyt duży np. film) kopiowane są najpierw do pamięci RAM a dopiero później zapisywane są w docelowym miejscu. Odszyfrowanie odbywa się na tej samej zasadzie, najpierw plik częściami kopiowany jest do pamięci RAM, następnie przekazywany jest użytkownikowi. TrueCrypt nigdy nie zapisuje nie zaszyfrowanych danych na dysku, zawsze dane szyfrowane są najpierw w RAM. Jest to bardzo wygodne rozwiązanie i zabezpiecza nas przed przypadkowym przechwyceniem plików.
Pobieramy TruceCrypt

Nowe wersje programu TrueCrypt znajdziesz zawsze na http://www.truecrypt.org. Aby TrueCrypt mógł działać poprawnie potrzebujemy także narzędzia jakim jest dmsetup. Dmsetup jest narzędziem, które umożliwia pracę z logicznymi dyskami zmapowanymi za pomocą sterownika device-mapper. Najnowszą wersję dmsetupa znajdziesz na http://sources.redhat.com/dm/. Gdy już masz wszystko pobrane, najpierw instalujemy narzędzie dmsetup:

tar zxvf device-mapper.twoja_wersja
cd device-mapper.twoja_wersja
./configure
make
make install

Jeżeli wszystko poszło bez problemów, instalujemy TrueCrypt:

tar zxvf truecrypt-twoja_wersja
cd truecrypt-twoja_wersja

Wchodzimy do katalogu Linux i instalujemy:

cd linux
./build.sh

Checking build requirements...
Building kernel module... Done.
Building truecrypt... Done.

Skrypt najpierw sprawdzi czy nasz system spełnia wymagania, może również zapytać nas o podanie paru informacji jeśli nie jest w stanie sam określić położenia określonych plików. Uwaga! Jeśli chcesz poprawnie zainstalować TrueCrypt, musisz mieć jądro 2.6.5 lub nowsze.

Następnie uruchamiamy:

./install.sh

Checking installation requirements...
Testing truecrypt... Done.

Install binaries to [/usr/bin]: wciskamy [Enter]
Install man page to [/usr/share/man]: wciskamy [Enter]
Install user guide and kernel module to [/usr/share/truecrypt]: [Enter]
Allow non-admin users to run TrueCrypt [y/N]:
jeżeli chcesz aby oprócz root'a
inni użytkownicy mogli także
korzystać z TrueCrypt wybierz y, jeśli nie N

Installing kernel module... Done.
Installing truecrypt to /usr/bin... Done.
Installing man page to /usr/share/man/man1... Done.
Installing user guide to /usr/share/truecrypt/doc... Done.
installing backup kernel module to /usr/share/truecrypt/kernel... Done.

Jeżeli wszystko przebiegło tak jak powyżej, możesz przejść dalej.
Generujemy klucz

Aby wygenerować klucz, wydajemy komendę:

truecrypt --keyfile-create key.txt możesz wybrać
inną nazwę klucza, rozszerzenie jest także dowolne

Is your mouse connected directly to computer where TrueCrypt is running?:
wpisz "Y", zostaniesz poproszony
o poruszanie myszką :)

Jeżeli wszystko poszło ok, dostaniesz komunikat: Keyfile created.
Tworzenie wirtualnego wolumenu

Aby utworzyć nowy wolumen, musimy zastanowić się nad jego nazwą oraz nad jego typem. Do wyboru mamy dwa typy: normalny(normal) i ukryty(hidden). Typ ukryty różni się od normalnego tym, że jest po prostu ukryty (także dane są rozmieszczane w inny sposób — więcej informacji znajdziesz na stronie TrueCrypt).

W konsoli wpisujemy:

truecrypt -c domowy.txt - tworzymy wolumen o nazwie domowy.txt,
uwaga rozszerzenie jakie wybierzesz jest zupełnie dowolne,
ja wybrałem *.txt, ponieważ dla napastnika trudniej
będzie odgadnąć, że ten plik to wolumen

Volume type:
1) Normal
2) Hidden
Select [1]: wybieramy jedynkę

Filesystem:
1) FAT
2) None
Select [1]: wybieramy dwójkę, ponieważ stworzymy
inny system plików na wolumenie
niż FAT, domyślnie FAT

Enter volume size (bytes - size/sizeK/sizeM/sizeG): 10M -
wybieramy wielkość
wolumenu, ja wpisałem 10 Mega

Hash algorithm:
1) RIPEMD-160
2) SHA-1
3) Whirlpool
Select [1]: wybieramy hash, ja polecam SHA-1,
domyślnie RIPEMD-160

Encryption algorithm:
1 ) AES
2 ) Blowfish
3 ) CAST5
4 ) Serpent
5 ) Triple DES
6 ) Twofish
7 ) AES-Twofish
8 ) AES-Twofish-Serpent
9 ) Serpent-AES
10 ) Serpent-Twofish-AES
11 ) Twofish-Serpent
Select [1]: wybieramy algorytm, domyślnie wybrany AES

Enter password for new volume 'domowy.txt':
wciskamy [Enter] jeżeli chcemy
aby hasła nie było
Re-enter password: ponownie wciskamy tylko [Enter]

Enter keyfile path [none]: tutaj wpisujemy ścieżkę do klucza,
jeżeli klucza nie mamy, zostawiamy puste
Enter keyfile path [finish]: zostajemy ponownie zapytani o ścieżkę
do klucza, w przypadku kiedy mamy kilka kluczy
podajemy następną ścieżkę, jeżeli wpisaliśmy
już wszystkie klucze, zostawiamy puste i [Enter]

TrueCrypt will now collect random data.

Is your mouse connected directly to computer where TrueCrypt is running?:
wciskamy "Y" jeżeli mamy podłączoną
myszkę do komputera, na potrzebny artykułu wpisz
"n" tak dla ciekawości, żeby
zobaczyć co się stanie

Please type at least 320 randomly chosen characters and then press Enter:

zostajemy poproszeni o wpisanie przynajmniej
320 przypadkowych znaków, jeżeli wpiszemy ich za
mało, program poinformuje nas ile
znaków jeszcze zostało do wpisania

Teraz zacznie się tworzenie wolumenu, czas trwania zależy od Twojego procesora i wielkości wolumenu jaką wpisałeś. Po zakończeniu otrzymasz komunikat: Volume created. W katalogu administratora powinien znajdować się plik “domowy.txt”. Możesz go otworzyć w edytorze tekstu, gratuluję jeżeli uda Ci się coś z niego odczytać.
Mapowanie wolumenu i tworzenie odpowiedniego systemu plików

Ponieważ w trakcie tworzenia wolumenu nie wybraliśmy jego dokładnego systemu plików, musimy teraz utworzyć system plików na wolumenie, ponieważ TrueCrypt do montowania używa linuksowego narzędzia mount, które wymaga podania typu plików.

Wpisujemy:

truecrypt /root/domowy.txt -k /root/key.txt
Enter password for '/root/domowy.txt':
jeżeli wcześniej nie podaliśmy
hasła do wolumenu to wciskamy tylko[Enter]

Ok. Aby sprawdzić czy mapowanie się udało wpisz: truecrypt -vl wyświetli informację o zmapowanych urządzeniach. Jeżeli nie wyświetli się żadna informacja, to znaczy, że coś poszło nie tak.

Teraz tworzymy system plików: mkfs.ext3 /dev/mapper/truecrypt0 — możesz wybrać dowolny system plików
System plików został stworzony.
Montowanie utworzonych wolumenów

Teraz, gdy już mamy utworzony system plików na wolumenie i jest on zmapowany, możemy go podmontować pod wybrany przez nas katalog.

W tym celu wykonujemy polecenia:

truecrypt -d /dev/mapper/truecrypt0
odmapowuje wolumen
mkdir szyfrowane -
tworzymy katalog szyfrowane, to właśnie pod niego będziemy podmontowywać
truecrypt /root/domowy.txt -k /root/key.txt /root/szyfrowane
podmontowuje wolumen pod szyfrowane katalogi

Gotowe! Od tej pory wszystkie dane zapisywane w katalogu “szyfrowane” będą szyfrowane.

A co zrobić kiedy chciałbyś zaszyfrować istniejący już katalog? Metoda ta jest trochę “łopatologiczna”. Po prostu przenieś chwilowo zawartość katalogu, który chcesz zaszyfrować, w inne miejsce, następnie podmontuj wolumen pod ten katalog i przywróć zawartość katalogu(skopiuj jego zawartość z powrotem). Pamiętaj, abyś w takiej sytuacji nadał odpowiedni rozmiar wirtualnemu wolumenowi, w przeciwnym przypadku nie pomieści on wszystkich danych. Rozmiar wolumenu powinien być nieco większy od rozmiaru katalogu.
Automatyczne montowanie po restarcie

Jak już pewnie się domyśliłeś, po restarcie komputera musisz ponownie zamontować wirtualny wolumen. Przyznam się, że jest prosty sposób, aby to zrobić. Przeglądając forum na stronie domowej projektu TrueCrypt natknąłem się na dwa sposoby:

* umieszczamy wpis w /etc/init.d lub w /etc/rc.d,
* tworzymy w katalogu domowym użytkownika plik .profile i odpowiednio go edytujemy.

My zajmiemy się sposobem drugim. Dlaczego? Przyczyna jest prosta. Załóżmy, że zabezpieczyłeś wirtualny wolumen nie tylko kluczem, ale i hasłem albo tylko hasłem. W takim wypadku wywołując program przez skrypty startowe zawarte w folderze init.d czy rc.d musiałbyś wywołać program z parametrem -p i podać hasło, co nie jest najmądrzejszym rozwiązaniem. W takiej sytuacji niepowołany użytkownik mógłby je przypadkowo odczytać.

Być może w Twoim katalogu domowym istnieje już plik .profile, jeśli nie:

touch .profile - tworzy pusty plik .profile

I dodaj do niego linijkę: truecrypt /root/domowy.txt -k /root/key.txt /root/szyfrowane
Zapisz zmiany i wyjdź z edytora. Teraz za każdym razem kiedy się zalogujesz truecrypt zapyta Cię o hasło (którego nie masz, ponieważ w tym przykładzie jesteśmy identyfikowani za pomocą klucza, więc wciskasz tylko [Enter]) i wirtualny wolumen zostaje zamontowany.
Czy mogę przechowywać klucz na pendrivie?

Tak, taka opcja jest możliwa i uwierz mi, nie jest to trudne. Pierwszą rzeczą jaką będziemy musieli wykonać jest automatyczne montowanie pendriva podczas startu systemu.Aby tego dokonać musimy edytować plik /etc/fstab. W tym celu w katalogu /mnt tworzymy katalog pendrive:

mkdir /mnt/pendrive

Musisz zorientować się pod jaką partycją masz pendrive. Włóż pendrive w USB i wykonaj polecenie dmesg > wynik.txt. Na końcu tego pliku powinieneś zobaczyć linijkę podobną to tej:


usb 1-1: configuration #1 chosen from 1 choice
uba: uba1

Jak widzisz, u mnie pendrive ukrywa się pod partycją /dev/uba1. U Ciebie może to być /dev/sda*.
Teraz należy zmodyfikować plik /etc/fstab. Dodajemy w nim linijkę:

/dev/uba1 /mnt/pendrive auto defaults 0 0

Wpisz: mount /mnt/pendrive.

Następnie przenosimy klucz na pendrive i edytujemy plik .profile zmieniając ścieżkę do klucza na /mnt/pendrive. Gotowe!
Teraz system sam montuje wirtualny wolumin po restarcie. Jakie są wady automatycznego montowania? Załóżmy, że masz młodsze (ciekawskie) rodzeństwo i nie chcesz, aby miało dostęp do niektórych części twojego systemu (bez względu czy pracujesz na Windowsie czy Linuksie). Jeżeli używasz autoryzacji tylko za pomocą klucza, a klucz masz zapisany gdzieś na dysku, po włączeniu komputera dane są już odszyfrowane. “Ale przecież ja przechowuję mój klucz na pendrivie”. A co będzie jeśli zapomnisz wyciągnąć pendriva po pracy?
Podsumowanie

W przyszłości projektanci TrueCrypt planują poszerzyć jego możliwości:

* zbudowanie wersji dla Mac OS,
* dodanie zewnętrznego modułu autoryzacji (będzie możliwość odszyfrowywania danych przez Internet),
* zbudowanie oficjalnego GUI (Graphical User Interface) dla TrueCrypt,
* i wiele więcej…

A czy istnieją jakieś nieoficjalne graficzne nakładki na TrueCrypt? Owszem, istnieją. Polecam zapoznanie się ze stroną http://code.google.com/p/truecryptgui/wiki/CurrentStatus. W celu zaczerpnięcia większej wiedzy zapraszam również na forum TrueCrypt.