Artykuły dotyczące tematu: how-to

dodany: 07.01.2013 | tagi: , ,

nmap – porty. Podstawowe techniki skanowania

8

W poprzednim artykule opisaliśmy, jak zainstalować i w podstawowym zakresie używać nmapa, popularnego skanera sieciowego. Tak jak obiecaliśmy, w tym można będzie dowiedzieć się więcej o technikach skanowania oraz uzupełnić braki w podstawowej wiedzy.

W większości przypadków niewymagających specjalnego pomyślunku, w zupełności wystarcza domyślny typ skanowania. Typów jest aż 15, a jeden z nich pozwala pozbyć się ograniczenia w postaci predefiniowanych ustawień i umożliwia dostęp do wszelkich flag TCP. Zatem niedoświadczony użytkownik może próbować trafić w odpowiedni typ, ale prawdopodobieństwo, że przeprowadzi pomyślne skanowanie jest niewielkie. Prawdziwy ekspert od razu wybierze ten właściwy (ewentualnie kombinację) do postawionego zadania. Jako że nmap to darmowe oprogramowanie, jedyną przeszkodą jest wiedza (a właściwie jej brak).

Większość rodzajów skanowania (jak ten próbujący wykryć system operacyjny opisany w poprzedniej części) jest dostępna tylko dla uprzywilejowanych użytkowników. Wynika to z faktu, że nmap zazwyczaj operuje na niskopoziomowych pakietach (z ang. raw) – ze względu na budowę systemów uniksopochodnych dostęp do nich jest wręcz niemożliwy dla szarych użytkowników. Sytuacja wygląda podobnie na Windowsach: istnieje prawdopodobieństwo, że system skorzysta z biblioteki WinPcap i obędzie się bez praw administratora. Jednak nmap dopiero pokazuje swoją siłę i elastyczność na koncie bez ograniczeń, a więc warto odpowiednio skonfigurować swój system operacyjny.

Należy pamiętać, że chociaż nmap stara się podawać jak najdokładniejsze wyniki, to są one oparte na informacjach zwracanych przez skanowane systemy. Dlatego otrzymane informacje mogą nie być wiarygodne i wprowadzać skaner w błąd. Zawsze należy podchodzić z pewną rezerwą do otrzymanych danych.

 

Porty

Zanim jednak przejdziemy do części dotyczącej typów skanowania, wrócimy na chwilę do podstaw, to znaczy do portów. Chociaż większość alternatywnych skanerów rozróżnia tylko otwarte i zamknięte porty, nmap rozpoznaje aż sześć różnych stanów. Niekoniecznie reprezentują one faktyczny stan portu – opisują tylko jak widzi je nmap. Może zdarzyć się tak, że wynik jednego skanowania wskaże port 93 jako otwarty, a drugi serwer umiejscowiony w zupełnie innym miejscu uzna go za filtrowany.

 

  • Otwarty

Aplikacja nasłuchująca na porcie akceptuje połączenia TCP i pakiety UDP. Zazwyczaj odnalezienie tego typu portów jest głównym celem skanowania. Każdy otwarty port może okazać się celem ataku. Pentesterzy chcą je wykorzystać, a administratorzy zamknąć lub zabezpieczyć w sposób niezauważalny dla użytkowników. Otwarte porty są również ciekawe ze względu na to, że wskazują jakie usługi są dostępne na serwerze.

 

  • Zamknięty

Taki port jest dostępny, czyli odbiera i odpowiada na pakiety wysłane przez skaner, ale żadna aplikacja nie korzysta z tego portu. Zamknięte porty służą zwykle do sprawdzenia czy maszyna jest dostępna w sieci, bywają też pomocne przy wykrywaniu systemu operacyjnego. Istnieje prawdopodobieństwo, że takowy port jest tak naprawdę filtrowany.

 

  • Filtrowany

Nmap nie może określić czy port jest otwarty z powodu filtrowania pakietów. Owym filtrem może okazać się sprzętowy firewall, router albo odpowiednie oprogramowanie. Takie porty dostarczają minimalnego zestawu informacji. Czasem odpowiadają komunikatem ICMP typu 3 kod 13 (destination unreachable: communication administratively prohibited), ale zwykle nawet taka odpowiedź jest filtrowana. Brak jakiejkolwiek odpowiedzi bardzo spowalnia skanowanie.

 

  • Niefiltrowany

Taki port jest dostępny, ale nmap nie potrafi określić jego faktycznego stanu. (Tylko pozornie – więcej informacji w następnym artykule).

 

  • Otwarty/filtrowany

Nmap nie jest w stanie określić czy port jest otwarty, czy filtrowany, zazwyczaj przez to, że pakiet dociera do portu, ale skaner nie otrzymuje odpowiedzi. Może to znaczyć, że filtr zablokował połączenie albo odpowiedź.

 

  • Zamknięty/filtrowany

Analogicznie do powyższego opisu, z tą różnicą, że stan ten może wystąpić tylko podczas skanowania IP ID.

Tyle teorii. Podchodząc do tematu portów bardziej praktycznie, nmap oferuje 2 godne uwagi przełączniki. Jednym z nich jest -p, który służy do zdefiniowania konkretnego lub konkretnych portów. Poza podawaniem ich indywidualnie, można podać zakres jak w przypadku adresów IP, na przykład: -p 20-39 przeskanuje porty z zakresu od 20 do 39. Jeżeli parametrem będzie sam myślnik (-p-), nmap przeskanuje wszystkie porty od 1 do 65535.

Ponadto można określić konkretny protokół. T: dla TCP, U: dla UDP, S: dla SCTP oraz P: dla IP. Na przykład -p U:52,92,T:20-39,80 przeskanuje porty UDP 52 i 92 oraz TCP z zakresu 20-39 oraz 80. Do takiego skanowania należy jeszcze podać odpowiedni typ skanowania.

Kolejnym przełącznikiem jest -F, który na podstawie pliku nmap-services ogranicza liczbę skanowanych portów z 1000 najpopularniejszych do 100. Pozwala to bardzo przyśpieszyć skanowanie, ale skutkiem ubocznym może być pominięcie niestandardowego, chociaż otwartego portu. Coś za coś.

 

Podstawowe techniki skanowania

Z teoretyczną i praktyczną wiedzą dotyczącą portów można w końcu zapoznać się z różnymi technikami skanowania portów. Pominę techniki pozwalające ukryć IP użytkownika – w końcu wykonujemy skany maszyn/sieci za zgodą właściciela, nie ma powodów do krycia się, prawda?

Jedyna metoda, która nie wymaga praw administratora, to skanowanie TCP (przełącznik -sT). Jest ona wybierana automatycznie, jeżeli użytkownik nie ma uprawnień do wysyłania niskopoziomowych pakietów raw. W takim przypadku nmap używa systemowej funkcji connect(), czyli prosi system operacyjny o nawiązanie połączenia z określonym przez użytkownika celem. Zamiast odczytywać odpowiedzi “z kabla” używając niskopoziomowych odwołań, skaner używa do tego wysokopoziomowego interfejsu, tak jak większość sieciowych aplikacji, jakimi są przeglądarki internetowe albo programy P2P.

Nmap ma mniejszą kontrolę nad wywołaniami connect niż nad surowymi pakietami, przez co jest mniej wydajny. System operacyjny wykonuje pełne połączenie z portem. W efekcie skanowanie jest przeprowadzane wolniej, potrzebne jest więcej pakietów, aby otrzymać takie same dane co przy połowicznym otwieraniu połączeń (opisanym poniżej). Jest również bardziej prawdopodobne, że skanowana maszyna odnotuje nawiązanie połączenia w dzienniku systemowym.

Domyślnym i najpopularniejszym sposobem skanowanie jest skanowanie TCP SYN (przełącznik -sS). Nie jest tak bez powodu. Takie skanowanie jest przeprowadzone szybko – w sieci nieograniczonej zaporami nmap jest w stanie odpytać tysiące portów na sekundę. Ponadto działa z każdym stosem zgodnym z TCP. Dodatkowo jest ono względnie dyskretne i niezauważalne, bo skaner nigdy nie nawiązuje pełnego połączenia TCP.

Właśnie dlatego metoda ta bywa nazywana skanowaniem z połowicznym otwieraniem połączeń. Skaner wysyła pakiet SYN, zupełnie tak jak przy otwieraniu normalnego połączenia i czeka na odpowiedź. Jeżeli w odpowiedzi zostaje otrzymany pakiet SYN/ACK lub SYN (bez flagi ACK), znaczy to, że port jest otwarty – jeżeli RST (reset) to port jest zamknięty. Jeżeli nmap nie otrzymuje żadnej odpowiedzi po kilku zapytaniach lub otrzymuje błąd ICMP (unreachable error typu 3, kod 1, 2, 3, 9, 10 lub 13), port zostaje uznany za filtrowany.

Chociaż większość popularnych usług korzysta z protokołu TCP, usługi UDP (takie jak DNS albo DHCP) są równie często spotykane. Ponieważ skanowanie portów UDP jest wolniejsze i bardziej skomplikowane, niektórzy pentesterzy pomijają sprawdzanie ich. Jest to oczywiście błąd, bo usługi nasłuchujące na UDP bywają niezabezpieczone i bardzo wątpliwe, że atakujący sieć o nich zapomni. Na szczęście nmap umożliwia skanowanie również tych portów. Przełącznikiem uruchamiającym ten typ skanu jest -sU i może być on łączony ze skanami TCP (jak -sS), aby przeprowadzić jak najbardziej kompleksowy audyt.

Podczas skanowania portów UDP nmap wysyła pakiet do każdego określonego portu. Dla niektórych popularnych usług nasłuchujących na portach takich jak 53 i 161 zawierają one informacje specyficzne dla działającej usługi, jednak dla większości wysyłane są puste nagłówki. Jeżeli w odpowiedzi nmap otrzymuje błąd ICMP (unreachable error, typ 3, kod 3), port jest zamknięty, jeżeli typ3, kod 1, 2, 9, 10 lub 13 – port oznaczony jest jako filtrowany. Jeżeli nasłuchująca usługa odpowie pakietem UDP, port jest otwarty. Może się zdarzyć, że nmap przy kolejnym połączeniu nie otrzyma żadnej odpowiedzi – wtedy port jest oznaczony jako otwarty/filtrowany. W takim wypadku funkcja wykrywania usług (-sV) może pomóc zidentyfikować rzeczywisty stan portu.

Największym wyzwaniem podczas skanowania UDP jest przeprowadzenie go jak najszybciej. Otwarte i filtrowane porty rzadko jakkolwiek odpowiadają, przez co nmap jest zmuszony do oczekiwania na odpowiedź i wysłania kolejnych pakietów, aby upewnić się czy połączenie zostało przerwane. Zamknięte porty okazują się jeszcze większym problemem – zwykle w odpowiedzi wysyłany jest błąd ICMP, ale Linux i Solaris ograniczają szybkość wysyłania pakietów ICMP. Na przykład kernel Linuksa w wersji 2.4.20 ogranicza je do jednego na sekundę. Nmap potrafi wykrywać takie ograniczenia i celowo zwalnia skanowanie, aby zapobiec zaśmiecaniu celu zbędnymi pakietami. Niestety, przeskanowanie wszystkich portów UDP przy ograniczeniu do jednej odpowiedzi na sekundę powoduje, że pełny skan trwa ponad 18 godzin. Jedynym obejściem tego problemu jest skanowanie w pierwszej kolejności popularnych portów, skanowanie wielu maszyn równolegle lub użycie —host-timeout aby pominąć wolniejsze cele.

Skanowanie protokołu IP pozwala określić, jakie protokoły (TCP, ICMP, IGMP, itd.) są dostępne na docelowych maszynach. Technicznie rzecz biorąc nie jest to skanowanie portów, ponieważ nmap sprawdza kolejne numery protokołów zamiast portów TCP lub UDP. Jednak przełącznik -sO nadal umożliwia określenie poszczególnych numerów za pomocą -p i na tym cechy wspólne z portami się kończą.

Skanowanie protokołów działa analogicznie do skanowania UDP, lecz zamiast iteracji po kolejnych numerach portów, w nagłówkach pakietów zmienia się ośmiobitowy numer określający protokół. Poza tym nagłówki są zwykle puste, nie zawierają żadnych informacji, nawet poprawnych dla danego protokołu. Wyjątkami są TCP, UDP, ICMP, SCTP i IGMP. Część systemów nie wysłałaby pustego nagłówka przez wymienione protokoły. Zamiast oczekiwać na odpowiedź ICMP unreachable, nmap czeka na ICMP protocol unreachable error. Jeżeli otrzyma odpowiedź z danego protokołu, jest on otwarty, jeżeli błąd ICMP typu 3, kod 2 – zamknięty. W przypadku otrzymania błędu ICMP innego typu lub kodu, protokół oznaczony jest jako filtrowany (jednocześnie potwierdzają, że protokół ICMP jest otwarty). W przypadku braku odpowiedzi protokół jest otwarty/filtrowany.

Tak oto zapoznaliśmy się z najczęściej spotykanymi technikami skanowania (nie tylko) portów. W połączeniu z podstawowymi informacjami zawartymi w poprzednim artykule, wiedzy spokojnie wystarczy na podstawowy audyt własnej sieci lub sprzętu. Oczywiście nie są to wszystkie sposoby skanowania – istnieją bardziej pokrętne, wykorzystujące dosłownie informacje zawarte w RFC lub przeciwnie, używające informacji, których w opisanych standardach zabrakło. Ale o tym w następnym artykule.

dodany: 27.12.2012 | tagi: , ,

nmap – pozornie prosty skaner sieciowy

1

Jeżeli kiedykolwiek staniesz przed wyzwaniem audytu bezpieczeństwa swojej sieci albo jednego lub więcej serwerów, to z całą pewnością natkniesz się na narzędzie o nazwie nmap – pozornie prosty skaner sieciowy. Chociaż z podstawowymi funkcjami poradzi sobie każdy laik, nie warto ograniczać swojej wiedzy. Dzięki poprawnie przeprowadzonemu skanowaniu, można znaleźć od wielu naprawdę prostych błędów w konfiguracji usług po niechciany malware.

Długo by opisywać wszystkie zalety nmapa. Jedną z nich jest licencja, na jakiej jest upowszechniany, czyli GNU GPL. Dzięki temu bez problemu może być używany jednocześnie na Windowsie, Linuksie, Solarisie lub BSD. Oczywiście opis instalacji na każdej platformie zająłby niepotrzebne miejsce – tym razem ograniczymy się do systemów operacyjnych firmy z Redmond, debianopochodnych dystrybucji Linuksa oraz Mac OS X od Apple. Ponadto poradnik skupia się na używaniu nmapa za pomocą linii poleceń, bez nakładek graficznych.

W czasie powstawania tego artykułu najnowszą wersją nmapa jest 6.25 i do tego wydania prowadzą wszelkie linki do instalatorów.

Instalacja na Windows
Najłatwiej jest zainstalować nmapa na Windowsie XP, Vista i 7 oraz edycjach serwerowych 2003 i 2008. Chociaż uruchomienie nmapa na starszych wydaniach nie jest niemożliwe, to jest na tyle problematyczne, że lepiej z tego zrezygnować. Natomiast użytkownicy najnowszego dzieła Microsoftu muszą na razie obejść się smakiem.
Ponadto nmap jest raczej narzędziem uniksowym, przez co wersje windowsowe mają pewne ograniczenia:
Nie da się skanować maszyny, z której uruchamiany jest nmap. Jest to znana restrykcja Windowsa, na którą nie znaleziono skutecznego rozwiązania.
Nmap umożliwia niskopoziomowe skanowanie jedynie przez interfejsy ethernetowe (wraz z bezprzewodowymi kartami 802.11 oraz wieloma klientami VPN), przez co niemożliwe jest użycie połączeń RAS takich jak PPP.

Istnieją inne metody, wypadające gorzej na Windowsie, ale ogólnie wydajność wygląda podobnie jak na Linuksie.

Wracając do meritum, istnieją dwie metody instalacji nmapa: z archiwum zip oraz z instalatora. Jak łatwo się domyślić, to ta druga jest prostolinijna i polecana początkującym użytkownikom. Instalator można pobrać tutaj.

Po instalacji:

  1. Upewnij się, że Twoje konto ma uprawnienia administratora.
  2. Z menu Start wybierz Uruchom i w nowym oknie wpisz cmd.
  3. W wierszu poleceń przejdź do katalogu, w którym zainstalowany jest nmap. (Jeżeli pierwszy raz jesteś w konsoli, cd służy do zmiany katalogu.)
  4. Uruchom nmap.exe z pożądanymi przełącznikami i parametrami (o których dowiesz się w dalszej części artykułu).

Instalacja na Mac OS X
Chociaż użytkownicy Maców mogą bez problemów zainstalować nmapa za pomocą MacPorts i Finka, autorzy dostarczają instalator od Leoparda (10.5 wzwyż).

  1. Pobierz i otwórz nmap-6.15.dmg.
  2. Powinna wyświetlić się zawartość archiwum. Jeden z plików ma nazwę nmap-6.15.mpkg – uruchomienie go włączy instalator (od OS X 10.8 konieczne jest wybranie Otwórz z menu kontekstowego).
  3. Podążaj za kolejnymi krokami instalatora. Zostaniesz zapytany o swoje hasło – to dlatego, że nmap instalowany jest w katalogu systemowym.
  4. Po instalacji możesz odmontować i usunąć plik .dmg.

Teraz uruchom terminal i wpisz w nim sudo nmap i dodaj własne przełączniki i parametry.

Instalacja na debianopochodnych dystrybucjach Linuksa
Pakiet z nmapem jest dostępny w Debianie (i w większości pochodnych takich jak Ubuntu) w oficjalnych repozytoriach, a zatem wystarczy wydać polecenie:

Jak to jednak bywa z Debianem, w zależności od gałęzi, dostępne wydanie może być bardzo stare albo nieświeże. Można temu zaradzić własnoręczną kompilacją nowszej wersji ze źródeł lub konwersją pakietu rpm.

  1. Zainstaluj konwerter pakietów alien. Jest dostępny w oficjalnych repozytoriach.
  2. Pobierz odpowiedni pakiet .rpm w zależności od architektury swojego systemu: i386 lub amd64 (x86_64).
  3. Przekonwertuj pakiet .rpm na .deb, na przykład:
  4. Zainstaluj przekonwertowany pakiet:

Następne w terminalu wywołaj nmap z wybranymi przez siebie przełącznikami i parametrami.

Podstawy
Pamiętaj, aby wykonywać skany tylko tam, gdzie masz na to pozwolenie. Część administratorów nie przejmie się, jeżeli zrobisz to bez ich zgody. To nie znaczy, że można robić to bezkarnie. W poniższych przykładach posłużymy się specjalnym serwerem udostępnionym przez twórców nmapa (scanme.nmap.org).

Najprostszym użyciem nmapa jest: nmap scanme.nmap.org:

log1

Nie tak dużo informacji, prawda? Z powyższego zapisu można dowiedzieć się o IP maszyny oraz o trzech otwartych portach z serwerem ssh, WWW oraz protokole nping. Trochę więcej informacji można wydobyć za pomocą przełącznika -O (Uwaga, wymaga uprawnień administratora!):

log2

Po dodaniu nowego przełącznika, można dowiedzieć się więcej o skanowanej maszynie. Wiadomo zatem, że jest typowym serwerem, działającym pod kontrolą Linuksa w wersji od 2.6.38 do 3.0.

Oczywiście nmap byłby bardzo niewygodny, gdyby nie było możliwości skanowania wielu maszyn jednocześnie. Kolejne adresy można podawać po spacji, dozwolone jest określenie zakresu, na przykład 10.0.0.1-6 przeskanuje 10.0.0.1, 10.0.0.2… 10.0.0.6. Jeszcze szybciej można sprawdzić całą maskę (pod)sieci, np. 10.0.0.0/24.

Natomiast jeśli jesteś ciekaw z jakiego oprogramowania korzysta serwer, wypróbuj przełącznik -sV. W ten sposób wykonasz bardziej agresywne skanowanie próbujące wykryć wersje uruchomionych serwerów, a nawet wersję używanego systemu operacyjnego.

log3

Jak widać, testowy serwer korzysta z Ubuntu, serwera Apache w wersji 2.2.14 oraz OpenSSH 5.3p1. Pozornie mało przydatna funkcja, ale szybki skan pozwoli sprawdzić, czy wszystkie maszyny, którymi administrujemy, są aktualne lub mogą być zagrożone na ataki.

Tymczasem mamy nadzieję, że powyższy przegląd podstawowych sposobów używania nmapa okazał się przydatny. W następnych artykułach dowiecie się o technikach skanowania portów, wykrywaniu hostów w sieci czy optymizacji skanowania.

dodany: 03.12.2012 | tagi: ,

Prosty sposób na zabezpieczanie haseł

1

W poprzednim artykule nawiązałem do tematyki szyfrowania dysków i dbania o bezpieczeństwo własnych danych przechowywanych w komputerach. Już po napisaniu porównania dostępnych podejść pomyślałem, że warto też wspomnieć o powiązanym zagadnieniu, czyli o bezpieczeństwie haseł – istotnych elementów wszelkich mechanizmów ochrony dostępu do danych i urządzeń.

Zwykle użytkownicy komputerów korzystają ze standardowych i dostępnych mechanizmów, nie zastanawiając się, czy są one wystarczające i czy nie ma potencjalnego zagrożenia włamaniem. Wielu z nas konfiguruje hasło do profilu, będąc przekonanym, że nie jest możliwe uzyskanie dostępu do konta i kradzież danych. Wydaje nam się, że skoro mamy ustawione „trudne” hasło składające się z liter, cyfr i znaków specjalnych to nic się nie wydarzy.

Niestety, hasła do profili i kont nie są tak bezpieczne jak byśmy chcieli, a najsłabszym ogniwem jest zawsze człowiek. Nawet jeśli ustawimy niesamowicie trudne hasło, zaszyfrujemy dane na dysku i zainstalujemy kilka zabezpieczeń, zawsze ktoś może się domyślić jakie mamy hasło lub wejść w jego posiadanie nielegalnie. Wystarczy chwila nieuwagi, kartka z hasłem przyklejona koło monitora i jesteśmy w kłopocie. Działa to analogicznie do przyklejania numerów PIN do kart płatniczych (lub nanoszenia ich pisakiem na karcie (sic!).

Konto do profilu to jedne z wielu wrót do naszych danych – mamy przecież konta e-mailowe, na portalach społecznościowych, dostęp do konta bankowego przez internet. Zastanówcie się teraz przez chwilę, jak przechowujecie hasła do tych wszystkich usług i miejsc – czy pamiętacie wszystkie? A może notujecie je sobie w plikach tekstowych? Może trzymacie je w notatkach albo w programach pocztowych? Jaki sposób by nie był – po zalogowaniu do konta jest pełny dostęp do tych danych (chyba że zaszyfrujecie plik w którym są zapisane tak jak opisywałem poprzednio).

Przechowywanie haseł jest o tyle niewdzięczne, że często oprócz samego hasła musimy pamiętać także login, lokalizację usługi, nazwę schematu bazy danych czy inne powiązane informacje, bez których samo hasło jest bezużyteczne. Jeżeli wszystkie te dane zapiszemy np. w jednym niezaszyfrowanym pliku tekstowym, to w przypadku niepowołanego dostępu do niego przez inne osoby, będziemy mieli duży problem.

Rozwiązaniem, które jest popularne i odpowiada dokładnie potrzebom przechowywania haseł są programy z grupy „menedżerów haseł” (ang. Password Managers). Część z Was, drodzy Czytelnicy, pewnie wie o co chodzi lub przynajmniej o tym słyszała. Są to proste lub bardziej skomplikowane aplikacje instalowane na komputerze (lub dostarczane np. z systemem operacyjnym lub innymi programami), które umożliwiają bezpieczne zapisywanie wszelkich haseł, numerów kart kredytowych, loginów, PIN-ów itp. i zabezpieczenie dostępu do tych wszystkich danych jednym głównym hasłem (niestety nie da się tego uniknąć :-)).

Oprócz tego istnieją dodatkowe funkcjonalności – generatory haseł, zabezpieczenie przed złośliwym oprogramowaniem typu keylogger, wirtualne klawiatury w trakcie wpisywania hasła i inne opcje, ale przede wszystkim – dane są zaszyfrowane w bardzo bezpieczny sposób.

Przykładem takiego oprogramowania może być program KeePass, który oferuje naprawdę wszystko, co potrzeba i jest wygodny w użyciu. Po zapisaniu haseł możemy je łatwo skopiować do wykorzystania w formularzach, a przechowywane dane można na różne sposoby porządkować i uzupełniać. Sama aplikacja po uruchomieniu prezentuje się tak jak na poniższej ilustracji:

Dodawanie nowego hasła do bazy aplikacji jest trywialne i sprowadza się do wypełnienia jednego ekranu, przedstawionego na poniższej ilustracji:

Jest także dostępny generator haseł, który zapewnia odpowiednią ich zawartość i poziom bezpieczeństwa tak wysoki, jak sami zdecydujemy że ma być:

Powyżej zaprezentowana aplikacja jest jedną z wielu, a opisałem ją dlatego, że do tej pory się na niej nie zawiodłem i sprawdziła się w każdej typowej sytuacji, a co najważniejsze jest darmowa (open source) i zapewnia odpowiedni poziom bezpieczeństwa. Istnieje sporo alternatywnych rozwiązań, zarówno bezpłatnych, jak i komercyjnych i myślę, że warto spróbować także innych aplikacji, zanim powierzymy jednej z nich swoje dane.

Niezależnie od wybranego rozwiązania, warto na pewno skorzystać z jakiegokolwiek „menedżera haseł”. Trudno jest upilnować wszystkie liczne hasła, loginy i inne ważne dane tradycyjnymi sposobami (kartka, notes, plik tekstowy). Dzięki zastosowaniu takiej aplikacji, mamy wszystko w jednym miejscu i pod ręką.

Jak ze wszystkimi rozwiązaniami – to ma jedną naprawdę istotną wadę – jeśli zapomnimy hasło główne do pliku z danymi to możemy się pogodzić z faktem utraty wszystkich zapisanych danych – są zaszyfrowane. Ale to chyba jest mniej prawdopodobne niż zapomnienie połowy z tych haseł, które przechowujemy,  szczególnie, że wiele usług wymusza cykliczną zmianę, hasła np. co 30 dni. Pewnym ułatwieniem może być możliwość wykorzystania hasła do np. profilu w systemie Windows (przykładowo KeePass to oferuje) – wybór należy do użytkownika.

Dla porównania możliwości różnych aplikacji zamieszczam poniżej kilka linków – znajdziecie tam zestawienia i recenzje różnych rozwiązań i będziecie mogli łatwiej znaleźć coś dla siebie:

http://password-management-software-review.toptenreviews.com

http://lifehacker.com/5042616/five-best-password-managers

http://www.pcmag.com/article2/0,2817,2407168,00.asp

http://www.infoworld.com/d/security/review-7-password-managers-windows-mac-os-x-ios-and-android-189597

dodany: 20.11.2012 | tagi: ,

Jak stworzyć tunel SSH?

3

SSH (Secure Shell) jest następcą protokołu Telnet. Oba protokoły służą do terminalowego łączenia się ze zdalnymi komputerami. Zdalnym komputerem jest obecnie najczęściej serwer (dedykowany lub wirtualny), który służyć może zarówno jedynie jako tak zwane konto shell, lub jako serwer świadczący więcej usług (www/e-mail). Często zdarza się, że posiadając konto hostingowe u popularnego dostawcy tego typu usług, dostajemy także dostęp do serwera po SSH. Połączenie takie pozwala wykonywać operacje (w określonym przez administratora zakresie) bezpośrednio na serwerze.

Zdalny komputer, np. serwer wirtualny, posiada własny, stały adres IP. Często jest to adres IP z innego kraju, co ma na przykład wpływ na dostęp do treści ograniczanych według kraju, z którego następuje połączenie (np. YouTube). Opcja tworzenia tunelu do serwera przydatna jest także w przypadku, kiedy pracujemy nad budowaniem aplikacji, która ma działać na serwerze zdalnym – możemy się z nim połączyć i wywoływać usługę w lokalnej przeglądarce tak, jakby działała na naszym komputerze. Warto mieć zatem możliwość skorzystania z posiadanego serwera lub konta hostingowego, jako pośrednika (proxy). Nie jest to ani trudne, ani kosztowne, ani czasochłonne.

Do stworzenia tunelu, który będzie łączył naszą przeglądarkę z pośrednikiem (czyli naszym serwerem lub kontem hostingowym), użyjemy otwartej aplikacji PuTTY. PuTTY to narzędzie, które pozwala w łatwy, graficzny sposób nawiązywać połączenia SSH (i nie tylko). PuTTY można pobrać za darmo ze strony projektu. Użytkownicy systemów Linux znajdą najprawdopodobniej PuTTY w repozytoriach swojej dystrybucji. W przypadku aplikacji pobranej ze strony projektu i przeznaczonej dla użytkowników systemów operacyjnych z rodziny Windows, nie jest konieczna instalacja. PuTTY uruchamia się od razu z pobranego pliku.

W kategorii Session programu (domyślna kategoria zaraz po starcie), określamy serwer z którym będziemy się łączyć (czyli serwer, który będzie naszym pośrednikiem). Możemy wprowadzić nazwę hosta lub adres IP serwera. Jeżeli dostawca usługi lub administrator serwera określili inny port dostępu po SSH niż standardowy (22), to w polu Port należy zmienić wartość na odpowiednią.

Następnie przechodzimy do kategorii SSH/Tunels. W polu Source Port wybieramy port z którego korzystać będzie nasza lokalna przeglądarka internetowa, aby łączyć się z pośrednikiem (Proxy). Na ogół wybór pada np. na port 8080. Poniżej wybieramy opcje Dynamic oraz Auto i klikamy przycisk Add.

Kolejny etap, to połączenie z serwerem. Klikamy przycisk Open, który znajduje się u dołu okna programu. Automatycznie powinno otworzyć się okno terminala w którym wyświetli się pytanie o nazwę użytkownika na zdalnym komputerze (serwerze). Wpisujemy odpowiednią, nadaną przez administratora nazwę użytkownika i zatwierdzamy klawiszem Enter.

Następnie podajemy hasło do konta i ponownie zatwierdzamy klawiszem Enter. Powinien przywitać nas tekst powitalny terminala serwera/komputera, na kŧórym się zalogowaliśmy. W naszym przypadku jest to system Ubuntu Server 12.04.

Oczywiście możliwe jest logowanie za pomocą kluczy. Jednak jest to temat na zupełni inny poradnik.

Kolejnym krokiem jest skonfigurowanie przeglądarki internetowej w taki sposób, aby łączyła się ze światem poprzez stworzony przed chwilą tunel SSH. Przeglądarką, której użyjemy, będzie Firefox.

Otwieramy zatem przeglądarkę i przechodzimy do okna jej preferencji. Wybieramy ostatnią zakładkę: Zaawansowane, a następnie w sekcji Połączenie klikamy przycisk Ustawienia…

W oknie konfiguracji serwerów proxy wybieramy opcję ręcznej ich konfiguracji. Korzystamy z opcji Host SOCKS, wybierając wersję 5 i ustawiając konfigurację serwera proxy jak na zrzucie ekranu poniżej.

Powyższa konfiguracja wskazuje, że pośrednik (proxy) znajduje się na lokalnym komputerze (localhost), na porcie 8080. I to się zgadza, gdyż nasz tunel został stworzony na lokalnym komputerze i skonfigurowany został do połączenia na porcie 8080. Warto zwrócić uwagę na pole tekstowe Nie używaj proxy dla. Nazwy hostów i adresy IP wprowadzone w tym polu będą wykluczone z użycia pośrednika. Jeśli chcemy pracować np. na aplikacji działającej na zdalnym serwerze, ale w taki sposób, jakby była ona zainstalowana na lokalnym komputerze, to powinniśmy usunąć z tego pola obie wartości. Wtedy po wywołaniu w przeglądarce adresu localhost lub adresu IP 127.0.0.1, nawiążemy połączenie z komputerem (serwerem) zdalnym. Ustawienia oczywiście zatwierdzamy i zamykamy okno ustawień przeglądarki

W celu sprawdzenia czy nasz adres IP uległ zmianie i czy ruch kierowany jest przez tunel, możemy odwiedzić np. stronę http://www.whatismyip.com/.

Rozłączenie z tunelem następuje po prostu przez wyłączenie aplikacji PuTTY. Nalezy tez pamiętać o przywróceniu ustawień przeglądarki Firefox do poprzednich ustawień.

dodany: 01.10.2012 | tagi: , ,

Wprowadzenie do DRBD – Distributed Replicated Block Device

6
DRBD

Zapewne część z Was rozważała problem, jakim jest zapewnienie pełnej redundancji produkcji, zapewnienie odpowiedniego bezpieczeństwa danych oraz zapewnienie jak najkrótszego czasu niedostępności  serwisów. W takim przypadku należy zadbać od najniższego szczebla o redundancję. W wielu wypadkach zastosowanie macierzy dyskowych jest niewystarczającym krokiem do zapewnienia jak najwyższego współczynnika SLA. W takim momencie z pomocą przychodzi DRBD.

Czym jest DRBD? Sama nazwa mówi nam wszystko – DRBD czyli  Distributed Replicated Block Device jest rozwiązaniem programowym umożliwiającym replikację urządzeń blokowych takich jak dyski twarde, partycje, woluminy logiczne z wykorzystaniem sieci.

(więcej…)