Dokumentacja Programatora kluczy USB Szyfratora IPSec Gateway



Podobne dokumenty
4. Podstawowa konfiguracja

Konfiguracja aplikacji ZyXEL Remote Security Client:

Na podstawie: Kirch O., Dawson T. 2000: LINUX podręcznik administratora sieci. Wydawnictwo RM, Warszawa. FILTROWANIE IP

OBSŁUGA I KONFIGURACJA SIECI W WINDOWS

Spis treści. 1 Moduł RFID (APA) 3

Optimus ABA IPSec + Windows 2000/XP + Terminal ABAX-2. Instrukcja tworzenia połącze ń szyfrowanych.

Problemy techniczne SQL Server

11. Autoryzacja użytkowników

Konfiguracja bezpiecznego tunelu IPSec VPN w oparciu o bramę ZyWall35 i klienta ZyXEL RSC (Remote Security Client).

VPN Host-LAN IPSec X.509 z wykorzystaniem DrayTek Smart VPN Client

Internet. Bramka 1 Bramka 2. Tunel VPN IPSec

Moduł Ethernetowy. instrukcja obsługi. Spis treści

Konfiguracja zapory ogniowej w trybie standardowym na module SCALANCE S623

Bezpieczeństwo Systemów Komputerowych. Wirtualne Sieci Prywatne (VPN)

Bezpieczeństwo systemów informatycznych

Instrukcja konfiguracji funkcji skanowania

Zadanie1: Odszukaj w serwisie internetowym Wikipedii informacje na temat zapory sieciowej (firewall) oraz oprogramowania iptables.

Instrukcja logowania do systemu e-bank EBS

Instrukcja instalacji i obsługi modemu ED77 pod systemem operacyjnym Windows 98 SE (wydanie drugie)

ABA-X3 PXES v Podręczna instrukcja administratora. FUNKCJE SIECIOWE Licencja FDL (bez prawa wprowadzania zmian)

iptables/netfilter co to takiego?

Instrukcja konfiguracji programu Fakt z modułem lanfakt

podstawowa obsługa panelu administracyjnego

12. Wirtualne sieci prywatne (VPN)

Skrócona instrukcja konfiguracji skanowania iwysyłania wiadomości

Wykład 2: Budowanie sieci lokalnych. A. Kisiel, Budowanie sieci lokalnych

Co to jest iptables?

Instalacja i konfiguracja pakietu iptables

Konfiguracja IPSec Brama IPSec w Windows 2003 Server

Połączenie VPN LAN-LAN IPSec X.509 (stały IP > stały IP)

Brinet sp. z o.o. wyłączny przedstawiciel DrayTek w Polsce

bla bla Guard podręcznik użytkownika

Instrukcja wgrywania aktualizacji oprogramowania dla routera Edimax LT-6408n

1 Moduł Diagnostyki Sieci

Vigor 2900 ZyWall 70 konfiguracja połączenia LAN-LAN (IPSec)

Połączenie VPN Host-LAN IPSec wykorzystaniem routera Vigor jako klienta VPN

SERWER AKTUALIZACJI UpServ

Posiadając dwa routery z serii Vigor 2200/2200X/2200W/2200We postanawiamy połączyć dwie odległe sieci tunelem VPN. Przyjmujemy następujące założenia:

PODSTAWOWA KONFIGURACJA LINKSYS WRT300N

Instrukcja konfiguracji urządzenia TL-WA830RE v.1

Dokumentacja szyfratora ABA IPSec Gate. Paweł Krawczyk

Instrukcja obsługi aplikacji MobileRaks 1.0

Zdalna obsługa transcievera. H A M R A D I O D E L U X E R e m o t e S e r v e r C o n f i g u r a t i o n

Połączenie VPN Host-LAN IPSec z wykorzystaniem Windows Vista/7. 1. Konfiguracja routera. 2. Konfiguracja klienta VPN. 3. Zainicjowanie połączenia

VComNet Podręcznik użytkownika. VComNet. Podręcznik użytkownika Wstęp

Synchronizator plików (SSC) - dokumentacja

Kierunek: technik informatyk 312[01] Semestr: II Przedmiot: Urządzenia techniki komputerowej Nauczyciel: Mirosław Ruciński

ZADANIE.02 Podstawy konfiguracji (interfejsy) Zarządzanie konfiguracjami 1,5h

Przygotowanie urządzenia:

Włączanie/wyłączanie paska menu

1 Moduł Konfigurowanie Modułu

Minimalna wspierana wersja systemu Android to zalecana 4.0. Ta dokumentacja została wykonana na telefonie HUAWEI ASCEND P7 z Android 4.

Pracownia internetowa w każdej szkole (edycja Jesień 2007)

Wykład 3 Filtracja i modyfikacja pakietów za pomocą iptables.

Połączenie VPN Host-LAN IPSec wykorzystaniem DrayTek Smart VPN Client

Laboratorium Ericsson HIS NAE SR-16

Najprostsza odpowiedź, jaka przychodzi mi do głowy to, z powodu bezpieczeństwa.

Projektowanie bezpieczeństwa sieci i serwerów

Połączenie VPN LAN-LAN IPSec (zmienny IP > zmienny IP)

Instrukcja połączenia z programem Compas LAN i import konfiguracji

Kadry Optivum, Płace Optivum. Jak przenieść dane na nowy komputer?

Instrukcja połączenia z programem Compas LAN i import konfiguracji

Następnie kliknąć prawym klawiszem myszy na Połączenie sieci bezprzewodowej i wybrać Wyłącz.

Połączenie VPN Host-LAN SSL z wykorzystaniem przeglądarki. 1. Konfiguracja serwera VPN 1.1. Ustawienia ogólne 1.2. Konto SSL 1.3. Grupa użytkowników

Definiowanie filtrów IP

Brinet sp. z o.o. wyłączny przedstawiciel DrayTek w Polsce

Windows W celu dostępu do i konfiguracji firewall idź do Panelu sterowania -> System i zabezpieczenia -> Zapora systemu Windows.

Instalacja sterownika portu USB

Symfonia Produkcja Instrukcja instalacji. Wersja 2013

Wprowadzenie 5 Rozdział 1. Lokalna sieć komputerowa 7

Router programowy z firewallem oparty o iptables

xchekplus Przewodnik Użytkownika

Zestawienie tunelu VPN po protokole IPSec pomiędzy klientem VPN - Draytek Smart VPN Client za NAT-em, a routerem Draytek

Ćwiczenie 5a Sieć komputerowa z wykorzystaniem rutera.

KOMPUTEROWY SYSTEM WSPOMAGANIA OBSŁUGI JEDNOSTEK SŁUŻBY ZDROWIA KS-SOMED

Instrukcja instalacji nośników USB w systemie internetowym Alior Banku

Rysunek 1: Okno z lista

Konfiguracja połączenia sieciowego w menu dekoderów.

Instrukcja oryginalna Urządzenie posiada oznaczenie MODUŁ KOMUNIKACYJNY CENTRAL WENTYLACYJNYCH. WebManipulator

Płace Optivum. 1. Zainstalować serwer SQL (Microsoft SQL Server 2008 R2) oraz program Płace Optivum.

Połączenie VPN LAN-LAN IPSec (stały IP > stały IP)

Telefon AT 530 szybki start.

Autor: Szymon Śmiech. Protokół IPSec oferuje kilka nowych funkcji w systemach z rodziny Windows Server Oto niektóre z nich:

2014 Electronics For Imaging. Informacje zawarte w niniejszej publikacji podlegają postanowieniom opisanym w dokumencie Uwagi prawne dotyczącym tego

Protokół IPsec. Patryk Czarnik

Instrukcja instalacji Control Expert 3.0

Moduł Ethernetowy EL-ETH. Instrukcja obsługi

SERWER AKTUALIZACJI UpServ

Koncentrator VPN. Konfiguracja OpenVPN. +Sieci hybrydowe. Dotyczy wersji oprogramowania 3.7 Wersja dokumentu: 1.0

Kadry Optivum, Płace Optivum. Jak przenieść dane na nowy komputer?

Internetowy serwis Era mail Aplikacja sieci Web

Dokumentacja administratora ABA SecureBridge. Sławomir Jasek

Zadanie1: Odszukaj w Wolnej Encyklopedii Wikipedii informacje na temat NAT (ang. Network Address Translation).

Ćwiczenie 5b Sieć komputerowa z wykorzystaniem rutera.

ARP Address Resolution Protocol (RFC 826)

1. Wstęp. Wizualizacja połączenia

Ćwiczenie Konfiguracja statycznych oraz domyślnych tras routingu IPv4

Ćwiczenie 6 Przełącznik zarządzalny T2500G-10TS (TL-SG3210).

Konfiguracja i uruchomienie usługi Filtry adresów IP dla użytkowników Centrum Usług Internetowych dla Klientów Banku Spółdzielczego w Łęcznej.

Transkrypt:

Dokumentacja Programatora kluczy USB Szyfratora IPSec Gateway Grzegorz Łabuzek grzesiekl@aba.krakow.pl 19 marca 2003 Wersja Programatora kluczy USB: 0.9.5 Wersja dokumentacji: 0.9.5

Spis treści 1. Wprowadzenie...4 2. Ogólny opis rozwiązania...4 2.1. Interfejsy zewnętrzne...4 2.2. Zarządzanie...4 3. Oprogramowanie do tworzenia i zapisywania konfiguracji dla ABA IPSec Gateway...5 3.1. Pierwsze uruchomienie...5 3.2. Zmiana Kodu dostępu...5 3.3. Zmiana daty i czasu systemowego...5 3.4. Tworzenie konfiguracji...5 3.4.1. Zakładka Ogólnie...6 3.4.2. Zakładka Sieć...9 3.4.3. Zakładka IPSec...11 3.4.4. Zakładka Tunele...13 3.4.5. Zakładka PPP...16 3.4.6. Zakładka USB...18 3.5. Zapisywanie konfiguracji...19 3.6. Odczytywanie konfiguracji...19 3.7. Zarządzanie plikami konfiguracyjnymi...19 3.8. Zapis konfiguracji na klucz USB...20 3.9. Przeglądanie dziennika zdarzeń (logów)...20 3.10. Odczyt konfiguracji z klucza USB...20 3.11. Baza hostów...21 2

4. Przykładowa konfiguracja krok po kroku...24 4.1. Tunel AH: tryb transportowy end-to-end...25 4.1.1. Podstawowe parametry - zakładka Ogólnie...25 4.1.2. Parametry interfejsów sieciowych - zakładka Sieć...25 4.1.3. Parametry tuneli - zakładka Tunele...26 4.1.4. Zapisywanie konfiguracji...26 4.1.5. Uruchomienie wygenerowanej konfiguracji...28 4.2. Tunel AH: tryb tunelowy end-to-end...28 4.2.1. Modyfikujemy ustawienia tunelu - zakładka Tunele...28 4.3. Tunel AH: tryb tunelowy end-to-end z kompresją...29 4.4. Tunel AH: tryb tunelowy VPN...30 4.5. Tunel ESP: tryb tunelowy VPN...32 4.6. RSA z identyfikatorem "adres IP"...33 4.7. RSA z identyfikatorem tekstowym...35 4.8. Tunele dynamiczne...37 5. Klucze USB (Zewnętrzna pamięć FLASH)...39 6. Klucze RSA...39 7. Przechowywanie kluczy RSA i konfiguracji zapisanej lokalnie....39 8. Aktualizacja oprogramowania...40 9. Formatowanie kluczy USB...40 10. Logowanie błędów...40 Dodatek A...41 Dodatek B...42 Dodatek C...59 Dodatek D...61 Dodatek E...62 3

1. Wprowadzenie Programator kluczy USB jest urządzeniem specjalizowanym, służącymtylko i wyłączniedo tworzenia i zapisywania konfiguracji szyfratora IPSec Gateway na zewnętrzną pamięć FLASH (klucz USB). Urządzenie jest tak zaprojektowane, aby zminimalizować możliwość nieautoryzowanego dostępu. W tym celu programator zostałcałkowiciepozbawiony obsługi sieci. Zaprogramowane klucze USB są wykorzystywane do przechowywania konfiguracji szyfratorów IPSec Gateway. 2. Ogólny opis rozwiązania Jako podstawę sprzętową wybrano ogólnodostępną platformę PC. Klucz USB stanowi pamięć FLASH z interfejsem USB umożliwiający połączenie z programatorem. Programator pracuje na bazie zmodyfikowanego systemu Linux, uruchamianego z pamięci FLASH i działającego wyłącznie w pamięci operacyjnej urządzenia. 2.1. Interfejsy zewnętrzne Urządzenie posiada: 2-4 interfejsów Uniwersal Serial Bus (USB) przeznaczonych do podłączenia zewnętrznej pamięci FLASH USB (Klucz USB) Interfejs Ethernet 10Base-T/100Base-TX (nieobsługiwany przez system operacyjny) Interfejs szeregowy 2.2. Zarządzanie W urządzeniu przewidziana jest jedynie możliwość zmiany daty oraz czasu systemowego, wszelkie inne parametry są predefiniowane i nie podlegają zmianie w trakcie użytkowania. 4

3. Oprogramowanie do tworzenia i zapisywania konfiguracji dla ABA IPSec Gateway Oprogramowanie to zostało stworzone jako graficzny konfigurator w celu uproszczenia procesu tworzenia konfiguracji szyfratorów. 3.1. Pierwsze uruchomienie Konfigurator jest uruchamiany poprzez wybranie polecenia Programator z menu Start. W pierwszej kolejności program poprosi o podanie Kodu dostępu. Podczas pierwszego uruchomienia urządzenia należy podać kod test1234. Kod ten należy zaraz po uruchomieniu konfiguratora zmienić. Minimalna długość kodu dostępu to osiem znaków. 3.2. Zmiana Kodu dostępu Z menu System wybieramy opcję Zmień kod dostępu, następnie podajemy aktualny, oraz nowy kod. UWAGA: Ze względów bezpieczeństwa kod dostępu musi się składać z minimum sześciu znaków, zalecane jest aby kod składał się z ośmiu znaków. 3.3. Zmiana daty i czasu systemowego Podczas pierwszego uruchomienia należy ustawić datę oraz czas systemowy. Ustawienia te są niezbędne do poprawnego funkcjonowania Dziennika zdarzeń. Wykonuje się to poprzez wybranie z menu System opcji Ustawienia daty i czasu. Datę należy podać w formacie [rok - miesiąc - dzień], a czas [godzina - minuta]. 3.4. Tworzenie konfiguracji Programator pozwala na utworzenie konfiguracji dla pojedynczego szyfratora i zapis tejże konfiguracji na klucz USB. Utworzoną konfigurację można także przechowywać lokalnie - na wewnętrznej pamięci FLASH. 5

3.4.1. Zakładka Ogólnie Ustawiamy tu ogólne parametry pracy szyfratora. Nazwa Hosta - Ustawia nazwę systemu. Zalecane jest, by nazwa nie miała więcej niż 16 znaków i składała się wyłącznie z liter oraz cyfr. Zalecane jest aby to pole wypełnić jako pierwsze. Możliwe jest wybranie hosta z listy hostów utworzonej za pomocą bazy hostów opisanej w punkcie 3.11. W tym celu przyciskamy przycisk Wybierz z listy. Na liście widnieje nazwa hosta wraz z jego identyfikatorem klucza RSA podanym w nawiasach. UWAGA: W przypadku gdy wygenerujemy klucz RSA bez podawania nazwy hosta, w oknie tym pojawi się tylko identyfikator klucza RSA. Wybieramy interesująca nas nazwę hosta i przyciskamy przycisk Ok. 6

Hasło - Ustawia nowe hasło do konsoli administracyjnej. Hasło może mieć dowolną długość, składać się z dużych i małych liter, cyfr i znaków "_./-". Hasło jest przechowywane w konfiguracji w postaci zaszyfrowanej standardowym algorytmem crypt wykorzystującym algorytm DES. Minimalna długość hasła to osiem znaków. Automatyczne wylogowanie - Ustawia czas w minutach, po którym sesja administracyjna będzie automatycznie wylogowana w razie braku aktywności użytkownika (domyślnie 10 minut). Serwer nazw - Ustawia adres IP serwera DNS, z którego będzie korzystał szyfrator. NTP - NTP kontroluje mechanizm synchronizacji czasu wysokiej dokładności po protokole NTP (Network Time Protocol). Należy określić adres zdalnego serwera NTP. Częstotliwość określa częstotliwość synchronizacji w minutach (domyślnie co godzinę). UWAGA: Urządzenie posługuje się czasem GMT. Syslog - Włącza lub wyłącza wewnętrzny proces informowania administratora o wydarzeniach systemowych, które są wysyłane na konsolę. Opcjonalnie można podać adres IP serwera syslog, na który będą przesyłane komunikaty. Telnet - Włącza lub wyłącza serwer zdalnego logowania telnet. UWAGA: W przypadku udostępnienia usługi telnet urządzenie bezwzględnie powinno być zabezpieczone hasłem. Telnet jest podatny na podsłuch oraz inne ataki sieciowe, zalecane jest używanie tej usługi wyłącznie wewnątrz tuneli IPSec. Opcja Chroniony wymusza połączenie telnet przez tunel IPSec. 7

Serwer KRL Włącza lub wyłącza serwer kluczy anulowanych, który udostępnia innym szyfratorom listę kluczy anulowanych. Listę tą można edytować naciskając przycisk Edytuj. Do listy kluczy anulowanych możemy dodać klucze wybierając je z listy kluczy w bazie kluczy publicznych, lub ręcznie wpisując ośmioznakowy identyfikator klucza. 8

3.4.2. Zakładka Sieć Umożliwia konfigurację parametrów interfejsów sieciowych, routingu, oraz firewall'a. Interfejsy Sieciowe - Nazwa interfejsu może być jedną z poniżej wymienionych (niektóre modele szyfratora mogą posiadać mniej interfejsów): eth0 eth1 eth2 eth3 pierwszy interfejs Ethernet drugi interfejs Ethernet trzeci interfejs Ethernet czwarty interfejs Ethernet W polu Lista skonfigurowanych interfejsów widzimy dodane interfejsy z ich adresami. Dodawanie interfejsów - Należy wybrać odpowiedni interfejs, a następnie podać jego adres. UWAGA: adresy należy podawać w notacji prefiksowej (patrz Dodatek A Format prefiksowy) 9

Routing - e trasę do sieci docelowej przez router. Adres sieci powinien być podany w notacji prefiksowej (patrz Dodatek A Info prefiks), adres routera jako sam IP - bez maski. Firewall - Ustawia tryb pracy filtra. Parametr auto ustawia automatyczne filtrowanie pakietów, parametr ręcznie pozwala na edycję pliku iptables. Opis sposobów konfiguracji filtra pakietów iptables znajduje się w Dodatku B Konfiguracja filtra pakietów Ustawienia parametrów interfejsów NAT - Włącza lub wyłącza translacje adresów (maskaradę) dla wszystkich wychodzących danych z danego interfejsu. Chroniony - Włącza lub wyłącza opcje blokowania ruchu niezaszyfrowanych pakietów przez dany interfejs. Separacja - Włącza lub wyłącza wybiórcze przekazywanie pakietów pomiędzy różnymi interfejsami szyfratora. Należy zaznaczyć do którego interfejsu pakiety mają być przekazywane, pozostałe interfejsy nie będą otrzymywały żadnych pakietów. 10

3.4.3. Zakładka IPSec Umożliwia konfigurowanie parametrów IPSec, oraz dodawanie do bieżącej konfiguracji kluczy RSA z bazy kluczy, lub generowanie nowych. TOS - Jeśli aktywna jest opcja TOS, to tunel będzie miał taką samą wartość TOS (Type of Service) jak przesyłane wewnątrz oryginalne pakiety. Jeśli wyłączona jest opcja TOS, to wartość ta będzie zawsze ustawiona na zero (zachowanie domyślne). ICMP - Jeśli włączona jest opcja ICMP, to router będzie wysyłał komunikaty ICMP informujące inne hosty o konieczności fragmentacji pakietów, jeśli będą one większe niż dopuszczalny limit wynikający z parametrów tunelu. Jeśli opcja ICMP nie jest włączona, router nie będzie wysyłał żadnych komunikatów, a zbyt duże pakiety będą gubione. Domyślnie komunikaty takie są wysyłane. Ważność IKE - Parametr ten określa czas w minutach po którym renegocjowany będzie każdy tunel ISAKMP. 11

Ważność IPSec - Parametr ten określa czas w minutach po którym renegocjowany będzie klucz sesyjny każdego tunelu IPSec. Zalecane wartości to 60 do 480 minut (1-8 godzin). Opcje IKE Opcje te ustawiają parametry protokołu IKE. Ustawia się tu jakie algorytmy mają być wykorzystywane do szyfrowania, uwierzytelniania oraz grupy Diffie-Hellmana. Opcje ESP - Opcje te ustawiają parametry protokołu ESP. Ustawia się tu jakie algorytmy mają być wykorzystywane do szyfrowania i uwierzytelniania. Baza kluczy publicznych - W polu tym umieszczane są identyfikatory wszystkich kluczy publicznych znajdujących się w bazie kluczy. Identyfikatory kluczy składają się z identyfikatora klucza RSA oraz nazwy hosta zawartej w nawiasach. Klucze dodane do konfiguracji - W polu tym umieszczone są identyfikatory wszystkich kluczy dodanych do bieżącej konfiguracji. Możliwe jest dodanie kluczy do konfiguracji na dwa sposoby, poprzez dodanie klucza z bazy (przycisk ), lub poprzez wygenerowanie nowego klucza. Możliwe jest także usunięcie danego klucza z konfiguracji (przycisk Usuń), oraz wyświetlenie całego klucza publicznego (przycisk Klucz). Klucz prywatny - W polu tym umieszczony jest identyfikator klucza prywatnego, który należy dla każdej nowej konfiguracji wygenerować. Możliwe jest opcjonalne podanie długości klucza RSA, (domyślnie 1024 bity). Wygenerowany klucz jest automatycznie dodawany do bazy kluczy, oraz do bieżącej konfiguracji. W konfiguracji może być zapisany tylko jeden klucz prywatny. Zalecane jest żeby przed wygenerowaniem nowego klucza nadać nazwę hostowi (zakładka Ogólnie, pole Nazwa hosta), aby do klucza została dołączona nazwa hosta. KRL - Polecenia krl służą do zarządzania mechanizmem weryfikacji listy anulowanych kluczy (Key Revocation List). W polu Adres należy podać pełny adres URL z którego będzie pobierana lista. Parametr Czas określa czas w minutach co jaki lista będzie sprawdzana. 12

3.4.4. Zakładka Tunele Umożliwia konfigurowanie tuneli IPSec Dodawanie tunelu - Poszczególne tunele są identyfikowane nazwami (identyfikatorami), które mają znaczenie wyłącznie lokalne i są uznaniowe. W polu Adres należy podać adres IP szyfratora docelowego. Możliwe jest podanie adresu jako any w takim przypadku przyjmowane będą połączenia ze wszystkich adresów. Ustawianie parametrów tunelu 13

Kompresja - Włącza lub wyłącza używanie kompresji IPComp w danym tunelu. Ustawienie po drugiej stronie musi być identyczne. ESP - Włącza lub wyłącza protokół ESP (Encapsulation Security Payload), czyli podstawowy tryb szyfrowania i uwierzytelnienia w IPSec. Jest to protokół domyślny i zalecany. AH - Włącza lub wyłącza protokół AH (Authentication Header), czyli protokół zapewniający wyłącznie uwierzytelnienie pakietów (bez szyfrowania). Można go używać razem z ESP. PFS - Włącza lub wyłącza bezpieczną renegocjację kluczy sesyjnych Aktywny/Pasywny - Określa zachowanie nowo utworzonego tunelu. Tunel z opcja Aktywny będzie próbował nawiązać połączenie z drugą stroną od razu po inicjalizacji urządzenia. Tunel z opcją Pasywny oczekuje biernie na przychodzące połączenia ISAKMP lub pojawienie się ruchu IP w relacji objętej wymogiem szyfrowania co spowoduje nawiązanie takiego połączenia. Tunelowy/Transportowy - Włącza tryb tunelu IPSec, tunelowy lub transportowy. Tryb transportowy może być używany wyłącznie w sieciach lokalnych w bezpośredniej komunikacji pomiędzy dwoma hostami. Domyślnym i zalecanym trybem jest tryb tunelowy. Dynamiczny/Statyczny - Tunele dynamiczne są konfigurowane i inicjalizowane za każdym nawiązaniem połączenia przez ppp, a po jego zerwaniu są usuwane. Tunele statyczne są konfigurowane na stałe, ale wymagają działającego routingu oraz stałych adresów IP w momencie ich konfiguracji. Klucz publiczny - Włącza lub wyłącza używanie kluczy publicznych. Włączając opcje uwierzytelniania poprzez klucz RSA należy wybrać klucz publiczny RSA zdalnego szyfratora. W polu listy umieszczone są wszystkie klucze dodane do bieżącej konfiguracji. Hasło - Przypisuje danemu tunelowi nowy klucz, używany do uwierzytelnienia systemu po drugiej stronie (klucz skonfigurowany tam musi być identyczny). Możliwe jest używanie uwierzytelniania za pomocą hasła współdzielonego (shared secret) jednocześnie z uwierzytelnianiem za pomocą kluczy RSA. Minimalna długość hasła to osiem znaków. Route - Ustawia lub kasuje routing do podanej sieci przez szyfrowany tunel do routera id. Adresy docelowych sieci powinny być podawane w formacie prefiksowym (patrz Dodatek A Info prefiks). Lroute - Ustawia lub kasuje routing do podanej sieci, jaki będzie oferowany klientowi przez tunel IPSec. 14

Id - Ustawia identyfikator ISAKMP zdalnego routera. Domyślnie używanym identyfikatorem jest jego adres IP. Lid - Ustawia identyfikator lokalnego systemu, który będzie prezentowany zdalnemu systemowi podczas sesji ISAKMP. Domyślnie używanym identyfikatorem jest adres IP. 15

3.4.5. Zakładka PPP Umożliwia konfigurowanie usługi PPP Włączone - Włącza lub wyłącza obsługę PPP na drugim porcie szeregowym (COM2). Echo - Włącza lub wyłącza obsługę LCP Echo, czyli funkcji sprawdzającej co określony interwał czasu (30 sekund) aktywność łącza PPP. W razie stwierdzenia jego zaniku (brak odpowiedzi na 3 kolejne pakiety Echo) podejmowana jest próba renegocjacji PPP. Użyj domyślnej bramy - Włącza lub wyłącza automatyczne ustawianie domyślnego routingu przez nawiązany tunel PPP. Po jego nawiązaniu zdalny router staje się domyślną bramą dla lokalnego systemu. Opcja ta działa wyłącznie jeśli nie jest ustawiony alternatywny routing domyślny. Kompresja Deflate - Włącza lub wyłącza obsługę kompresji Deflate. Włączanie obu naraz nie jest zalecane. Kompresja musi być obsługiwana przez obie strony połączenia. Skrypt - Włącza lub wyłącza korzystanie ze skryptu służącego do komunikacji z modemem, na przykład przekazanie komend powodujących inicjalizację i nawiązanie połączenia ze zdalnym modemem, po którym następnie zestawiane jest PPP. Autoryzacja użytkownika - Włącza lub wyłącza wymóg uwierzytelnienia się zdalnego systemu w stosunku do lokalnego routera. Uwierzytelnienie następuje po protokole PAP (Password Authentication Protocol). Wymagane jest wcześniejsze ustawienie nazwy zdalnego użytkownika i hasła. Protokół PAP przesyła te dane otwartym tekstem, nie powinny więc one być informacjami wrażliwymi. Protokół PAP należy traktować jako zabezpieczenie o charakterze pomocniczym. 16

Użytkownik - nazwa zdalnego użytkownika niezbędna do funkcjonowania protokołu PAP Hasło - hasło zdalnego użytkownika niezbędne do funkcjonowania protokołu PAP MTU - Ustawia wielkość MTU (Maximum Transmit Unit) dla zestawionego połączenia PPP. Domyślna wartość to 1500. Adres lokalny:zdalny - Ustawia adresy IP jakie będą negocjowane dla obu końców połączenia PPP. Domyślnie lokalny system zaakceptuje każdy adres zaproponowany przez drugą stronę. Parametr lokalny określa adres PPP proponowany dla lokalnego systemu, zdalny dla zdalnego. Można pominąć jeden z adresów. 17

3.4.6. Zakładka USB Umożliwia konfigurowanie parametrów z jakimi będzie pracował szyfrator odnoszących się do klucza USB. Po włożeniu [Import konfiguracji Nic] - Opcja ta określa sposób traktowania konfiguracji zapisanej w urządzeniu po włożeniu klucza USB - parametr Import konfiguracji spowoduje nadpisanie całej dotychczasowej konfiguracji konfiguracją z klucza. Parametr Nic spowoduje wyłącznie udostępnienie klucza do odczytu przez urządzenie (np. w celu ręcznego zaimportowania konfiguracji lub upgradu). Po wyjęciu [Restart Reset Nic] - Opcja ta określa zachowanie urządzenia po wyjęciu klucza USB. Parametr Restart spowoduje skasowanie całej konfiguracji i ponowne uruchomienie urządzenia. Parametr Reset spowoduje wyłącznie skasowanie całej konfiguracji i wyzerowanie stanu urządzenia (adresów sieciowych, tuneli IPSec). Parametr Nic nie spowoduje żadnej akcji po wyjęciu klucza. UWAGA: Kasowaniu podlegają wyłącznie dane znajdujące się w pamięci operacyjnej urządzenia. Dane zapisane w pamięci FLASH nie są zmieniane. Modyfikacje z konsoli [Możliwy zapis Tylko do odczytu Konsola wyłączona] - Opcja ta określa możliwość zapisywania na lokalną pamięć FLASH danych zaimportowanych z klucza USB. Parametr Możliwy zapis umożliwia zapisanie tych danych lokalnie, parametr Tylko do odczytu powoduje, że pozostają one wyłącznie w pamięci operacyjnej i nie mogą być zapisane lokalnie. Parametr Konsola wyłączona wyłącza konsole administracyjną. 18

3.5. Zapisywanie konfiguracji Istnieje możliwość zapisania utworzonej konfiguracji lokalnie, w tym celu należy wybrać opcje Zapisz z belki w dolnej części okna konfiguratora, następnie należy podać nazwę pliku z jakim zostanie zapisana konfiguracja. Do nazw pliku zostanie dołączone rozszerzenie.kpu 3.6. Odczytywanie konfiguracji Możliwe jest także odczytanie konfiguracji zapisanej lokalnie. Należy wybrać opcje Odczytaj, a następnie wybrać plik z jakiego chcemy wczytać konfigurację. Możliwy jest odczyt jedynie plików z rozszerzeniem.kpu 3.7. Zarządzanie plikami konfiguracyjnymi Możliwe jest usuwanie zbędnych plików konfiguracyjnych, w tym celu z menu Programator wybieramy opcję Zarządzanie plikami konfiguracyjnymi. W celu usunięcia danego pliku wybieramy go z listy i przyciskamy przycisk Usuń, możliwe jest usuwanie kilku plików na raz większą ilość plików zaznaczamy trzymając wciśnięty klawisz Ctrl. Nad przyciskiem Zamknij podana jest ilość wolnego miejsca na dysku FLASH, taka sama informacja jest dostępna w menu Informacje 19

3.8. Zapis konfiguracji na klucz USB Należy wybrać opcje Zapisz na klucz, po czym należy włożyć sformatowany klucz (Patrz Formatowanie kluczy USB). Następnie zostaniemy poproszeni o podanie PIN. UWAGA: Ze względów bezpieczeństwa PIN należy wygenerować wybierając opcje Generuj, lub podać minimum 8 znaków, zalecane jest aby PIN miał długość 16 znaków. Dla szyfratora z podłączoną normalna klawiaturą (101/104 klawisze) PIN może się składać z dowolnych znaków, natomiast gdy do szyfratora jest podłączony jedynie PIN PAD zestaw możliwych znaków jest ograniczony do występujących na klawiaturze numerycznej. Po zatwierdzeniu przyciskiem OK należy poczekać, aż pojawi się komunikat, Proszę wyjąć klucz USB, proces zapisu konfiguracji jest wtedy zakończony i należy wyjąć klucz z programatora. 3.9. Przeglądanie dziennika zdarzeń (logów) Z menu System wybieramy opcje Przegląd logów, otwiera się okno z zapisami zdarzeń. Dziennik ten ze względów na małą pojemność lokalnej pamięci FLASH należy czyścić co pewien okres czasu, aby nie dopuścić do zajęcia całego wolnego miejsca w pamięci. 3.10. Odczyt konfiguracji z klucza USB Możliwe jest odczytanie konfiguracji z klucza USB jedynie w celu jej weryfikacji. W tym celu z menu Klucz USB wybieramy opcje Konfiguracja na kluczu. W otwartym oknie wybieramy opcje Odczytaj z klucza, następnie należy podać PIN. Odczytana konfiguracja jest w postaci takiej jak występuje na kluczu (baza danych w postaci: klucz wartość ). 20

3.11. Baza hostów Baza hostów ma za zadanie ułatwienie generowania konfiguracji poprzez wcześniejsze wygenerowanie kluczy RSA dla wszystkich hostów. W rzeczywistości baza ta jest to baza kluczy RSA, ale jest ona podana w sposób taki aby łatwo było generować klucze z jednoznacznym przypisaniem do konkretnego hosta. Okno bazy hostów można otworzyć na trzy sposoby: podczas uruchamiania programatora w oknie kodu dostępu zaznaczamy opcję Otwórz bazę hostów w oknie listy hostów przyciskając przycisk Otwórz bazę hostów wybierając z menu Programator opcję Baza hostów UWAGA: Nie jest zalecane otwieranie bazy przy jednocześnie otwartej zakładce IPSec lub oknie Parametry tunelu. 21

Nazwa hosta - w polu tym podajemy nazwę hosta. Zalecane jest, by nazwa nie miała więcej niż 16 znaków i składała się wyłącznie z liter oraz cyfr. Długość klucza RSA - w polu tym podajemy długość klucza RSA, domyślną wartością jest 1024 bity. Lista hostów na liście tej widnieją nazwy wszystkich hostów które znajdują się w bazie, wraz z ich identyfikatorami kluczy RSA (podanym w nawiasach). UWAGA: W przypadku gdy wygenerujemy klucz RSA bez podawania nazwy hosta, w oknie tym pojawi się tylko identyfikator klucza RSA. - przycisk ten służy do dodania hosta do bazy. Automatycznie - opcja ta pozwala na dodanie większej liczby hostów na raz. Hosty są generowane automatycznie a ich nazwy składają się z prefiksu i numeru porządkowego (np. Prefiks = test, numer = 10, nazwa hosta = test10). W oknie tym mamy możliwość określenia prefiksu, liczby hostów jaka ma być wygenerowana, numeru od którego automat ma zacząć przydzielać nazwy, oraz długości klucza RSA. Długość klucza RSA będzie taka sama dla wszystkich wygenerowanych hostów. Usuń umożliwia usunięcie danego hosta z bazy wraz z jego kluczem RSA (prywatnym i publicznym) Generuj ponownie klucz RSA umożliwia ponowne wygenerowanie klucza RSA (o długości podanej w polu powyżej) dla wybranego hosta. 22

4. Przykładowa konfiguracja krok po kroku Bieżący rozdział jest przewodnikiem mającym w praktycznych przykładach pokazać sposoby tworzenia konfiguracji szyfratora Optimus ABA IPSec Gateway za pomocą Programatora Kluczy USB. Tworzona w tym rozdziale przykładowa konfiguracja daje taki sam efekt jak konfiguracja opisana w rozdziale 5 dokumentacji szyfratora Optimus ABA IPSec Gateway. Konfiguracja sieci testowej Konfiguracja przykładowej sieci przedstawia się następująco: 23

4.1. Tunel AH: tryb transportowy end-to-end Tryb transportowy jest w praktyce wykorzystywany rzadko poza sieciami lokalnymi, podobnie jak rzadko jest w ogóle wykorzystywany protokół AH wszystkie jego funkcje plus szyfrowanie zapewnia ESP. Kombinacja jednak trybu transportowego z protokołem AH ma jedna zasadnicza zaletę jest bardzo przejrzysta podczas podsłuchiwania jej za pomocą analizatora sieci. Zaczynając od niej będziemy wzbogacać tunel o kolejne elementy dochodząc do konfiguracji stosowanych w praktyce. Konfiguracja szyfratora test1 4.1.1. Podstawowe parametry - zakładka Ogólnie Opis Komendy konsoli szyfratora Programator kluczy USB Nazwa szyfratora hostname test1 w okienko Nazwa hosta wpisujemy test1 Hasło konsoli password KSR87a9W w okienko Hasłowpisujemy KSR87a9W Włączenie usługi Telnet service telnet zaznaczamy opcje Telnet UWAGA: włączenie usługi Telnet może narazić na kompromitacje szyfrator w razie odgadnięcia hasła. Usługa ta jest ponadto wrażliwa na rozmaite ataki sieciowe (podsłuch, przejecie sesji) i należy z niej korzystać wyłącznie w ramach zaufanej sieci lub wewnątrz tunelu IPSec. 4.1.2. Parametry interfejsów sieciowych - zakładka Sieć Opis Komendy konsoli szyfratora Programator kluczy USB Adres interfejsu Ethernet interface eth0 10.1.1.76/24 wybieramy interfejs eth0 i w okienku Adres wpisujemy: 10.1.1.76/24 dodajemy interfejs przyciskiem Routing domyślny route default 10.1.1.120 w okienko Adres docelowy wpisujemy: 0.0.0.0/0 w okienko przez router wpisujemy: 10.1.1.120 dodajemy routing przyciskiem 24

4.1.3. Parametry tuneli - zakładka Tunele Dodawanie tunelu Konfigurujemy tunel AH w trybie transportowym end-to-end, czyli jedynymi użytkownikami szyfrowanego tunelu będą jego końce: Opis Komendy konsoli szyfratora Programator kluczy USB Adres IP końca tunelu peer test2 192.168.1.1 w okienko Identyfikator: wpisujemy test2 w okienko Adres: 192.168.1.1 dodajemy tunel przyciskiem Ustawienia parametrów tunelu Zaznaczamy wybrany tunel z listy i przyciskamy przycisk Ustaw Opis Komendy konsoli szyfratora Programator kluczy USB Hasło współdzielone ISAKMP peer test2 secret hu3yohaima zaznaczamy opcje Hasło w okienko wpisujemy: hu3yohaima Włączamy AH peer test2 ah zaznaczamy opcje AH Wyłączamy ESP peer test2 noesp odznaczamy opcje ESP Włączamy tryb peer test2 transport wybieramy opcje Transportowy transportowy Uruchomienie tunelu peer test2 enable Generując konfigurację za pomocą programatora nie musimy dbać o kolejność wykonywanych czynności - najpierw włączenia AH, a następnie wyłączenia ESP, które jest zawsze włączane domyślnie (tunel nie może istnieć bez AH lub ESP). Domyślnym trybem jest tryb tunelowy, konieczne jest zatem jawne włączenie trybu transportowego. Faktyczne uruchomienie tunelu odbywa się automatycznie zaraz po zaimportowaniu konfiguracji z klucza przez szyfrator. 4.1.4. Zapisywanie konfiguracji Tak wygenerowaną konfigurację należy zapisać na klucz USB wybierając z dolnego paska opcje Zapisz na klucz. Konfigurację tą powinno się także zapisać lokalnie - ułatwia to wprowadzanie zmian - w tym celu należy wybrać opcje Zapisz i określić nazwę pliku w jakim zostanie zapisana konfiguracja. 25

Konfiguracja szyfratora test2 Konfiguracja szyfratora test2 przebiega analogicznie jak szyfratora test1 - w związku z tym przedstawimy tylko pokrótce wszystkie czynności. Opis Komendy konsoli szyfratora Programator kluczy USB Parametry podstawowe - zakładka Ogólnie Nazwa szyfratora hostname test2 w okienko Nazwa hosta wpisujemy test2 Hasło konsoli password HTN30gl4 w okienko Hasłowpisujemy HTN30gl4 Włączenie usługi Telnet service telnet zaznaczamy opcje Telnet Adres interfejsu Ethernet Parametry interfejsów sieciowych - zakładka Sieć interface eth0 192.168.1.1/24 wybieramy interfejs eth0 i w okienku Adres wpisujemy: 192.168.1.1/24 dodajemy interfejs przyciskiem Routing domyślny route default 192.168.1.254 w okienko Adres docelowy wpisujemy: 0.0.0.0/0 w okienko przez router wpisujemy: 192.168.1.254 dodajemy routing przyciskiem Dodawanie tunelu - zakładka Tunele Adres IP końca tunelu peer test1 10.1.1.76 w okienko Identyfikator: wpisujemy test1 w okienko Adres: 10.1.1.76 dodajemy tunel przyciskiem Ustawienia parametrów tunelu Hasło współdzielone ISAKMP peer test1 secret hu3yohaima zaznaczamy opcje Hasło w okienko wpisujemy: hu3yohaima Włączamy AH peer test1 ah zaznaczamy opcje AH Wyłączamy ESP peer test1 noesp odznaczamy opcje ESP Włączamy tryb peer test1 transport wybieramy opcje Transportowy transportowy Uruchomienie tunelu peer test1 enable Wygenerowaną konfigurację należy zapisać na klucz USB. 4.1.5. Uruchomienie wygenerowanej konfiguracji Mając wygenerowane dwa klucze USB możemy je włączyć do interfejsu USB szyfratora, który po włożeniu klucza zapyta się o PIN wprowadzony w czasie zapisywania konfiguracji na klucz. Po wpisaniu prawidłowego PIN-u szyfrator nawiąże połączenie z drugim szyfratorem tworząc tunel o podanych parametrach. 26

4.2. Tunel AH: tryb tunelowy end-to-end Wprowadzamy modyfikacje do poprzedniej konfiguracji w postaci włączenia trybu tunelowego zamiast transportowego. Konfiguracja szyfratora test1 Należy wczytać zapisaną lokalnie konfigurację wybierając opcje Odczytaj i wskazując plik z zapisaną konfiguracją szyfratora test1. 4.2.1. Modyfikujemy ustawienia tunelu - zakładka Tunele Wybieramy tunel z listy i przyciskamy Ustaw Opis Komendy konsoli szyfratora Programator kluczy USB Włączamy tryb tunelowy peer test2 tunnel wybieramy opcje Tunelowy Reaktywacja tunelu peer test2 enable Zapisujemy konfigurację na klucz USB i lokalnie. Konfiguracja szyfratora test2 Wczytujemy konfigurację szyfratora test2 Modyfikujemy ustawienia tunelu - zakładka Tunele Opis Komendy konsoli szyfratora Programator kluczy USB Włączamy tryb tunelowy peer test1 tunnel wybieramy opcje Tunelowy Reaktywacja tunelu peer test1 enable Zapisujemy konfigurację na klucz USB i lokalnie. Mamy wygenerowane dwa nowe klucze USB, na których mamy zmodyfikowaną konfigurację. 27

4.3. Tunel AH: tryb tunelowy end-to-end z kompresją Wprowadzamy modyfikacje do poprzedniej konfiguracji włączając kompresje IPComp. Konfiguracja szyfratora test1 Opis Komendy konsoli szyfratora Programator kluczy USB Wczytujemy konfigurację wybieramy opcje Odczytaj Ustawienia parametrów tunelu Włączamy kompresje peer test2 compress zaznaczamy opcje Kompresja Reaktywacja tunelu peer test2 enable Zapis konfiguracji Zapisujemy konfigurację na klucz USB wybieramy opcje Zapisz na klucz Zapisujemy konfigurację lokalnie wybieramy opcje Zapisz Konfiguracja szyfratora test2 Opis Komendy konsoli szyfratora Programator kluczy USB Wczytujemy konfigurację wybieramy opcje Odczytaj Ustawienia parametrów tunelu Włączamy kompresje peer test1 compress zaznaczamy opcje Kompresja Reaktywacja tunelu peer test1 enable Zapis konfiguracji Zapisujemy konfigurację na klucz USB wybieramy opcje Zapisz na klucz Zapisujemy konfigurację lokalnie wybieramy opcje Zapisz 28

4.4. Tunel AH: tryb tunelowy VPN Do poprzedniej konfiguracji wprowadzamy zasadnicze zmiany, polegające na wprowadzeniu pakietów z zewnętrznych sieci do tunelu pomiędzy szyfratorami test1 i test2. W tej typowej dla wirtualnych sieci prywatnych (Virtual Private Network) konfiguracji szyfratory pełnia role bram zabezpieczających (security gateways). Aktualna konfiguracja przedstawiać się będzie tak: Konfiguracja Na każdym z szyfratora konfigurujemy drugi interfejs Ethernet, prowadzący do zabezpieczanych sieci. Wyłączamy kompresje i pozostajemy przy protokole AH dla ułatwienia analizy pakietów. Równocześnie jednak musimy wskazać szyfratorom dresy sieci, z których dane maja być przesyłane przez tunele IPSec. Służą do tego polecenia: lroute, wskazujące sieć zabezpieczoną przyłączoną do lokalnego szyfratora, oraz route, określające jaka sieć znajduje się za szyfratorem zdalnym. Konfiguracja szyfratora test1 Opis Komendy konsoli szyfratora Programator kluczy USB Wczytujemy konfigurację wybieramy opcje Odczytaj Parametry interfejsów sieciowych - zakładka Sieć Konfigurujemy interfejsy do zabezpieczanych sieci int eth1 10.1.2.1/24 wybieramy interfejs eth1 i w okienku Adres wpisujemy: 10.1.2.1/24 dodajemy interfejs przyciskiem Ustawienia parametrów tunelu Włączamy kompresje peer test2 compress zaznaczamy opcje Kompresja Wskazanie lokalnych peer test2 lroute 10.1.2.0/24 zaznaczamy opcje lroute sieci Wskazanie zdalnych sieci peer test2 route 192.168.2.0/24 Reaktywacja tunelu Zapisujemy konfigurację na klucz USB Zapisujemy konfigurację lokalnie peer test2 enable Zapis konfiguracji w okienko wpisujemy: 10.1.2.0/24 zaznaczamy opcje route w okienko wpisujemy: 192.168.2.0/24 wybieramy opcje Zapisz na klucz wybieramy opcje Zapisz 29

Konfiguracja szyfratora test2 Opis Komendy konsoli szyfratora Programator kluczy USB Wczytujemy konfigurację wybieramy opcje Odczytaj Parametry interfejsów sieciowych - zakładka Sieć Konfigurujemy interfejsy do zabezpieczanych sieci int eth1 192.168.2.1/24 wybieramy interfejs eth1 i w okienku Adres wpisujemy: 192.168.2.1/24 dodajemy interfejs przyciskiem Ustawienia parametrów tunelu Włączamy kompresje peer test1 compress zaznaczamy opcje Kompresja Wskazanie lokalnych sieci peer test1 lroute 192.168.2.0/24 zaznaczamy opcje lroute w okienko wpisujemy: Wskazanie zdalnych sieci peer test1 route 10.1.2.0/24 Reaktywacja tunelu Zapisujemy konfigurację na klucz USB Zapisujemy konfigurację lokalnie peer test1 enable Zapis konfiguracji 192.168.2.0/24 zaznaczamy opcje route w okienko wpisujemy: 10.1.2.0/24 wybieramy opcje Zapisz na klucz wybieramy opcje Zapisz Opcje lroute i route sterują polityką szyfrowania na każdym z szyfratorów. Pierwsze z nich nakazuje szyfrować cały ruch pochodzący z wskazanej sieci, drugie ruch skierowany do zdalnej sieci. Pominiecie opcji lroute powoduje przyjęcie założenia, ze źródłem ruchu podlegającego ochronie jest lokalny szyfrator. Analogicznie w przypadku braku polecenia route zakłada się ze zdalny szyfrator jest celem wrażliwych danych. W konfiguracji przedstawionej powyżej szyfrowaniu będzie podlegał tylko ruch pomiędzy sieciami 10.1.2.0/24 i 192.168.2.0/24, bo tak nakazują opcje lroute i route. Patrząc z perspektywy szyfratora test1, pakiet ping wysłany z zewnętrznego adresu szyfratora (10.1.1.76) nie należy do żadnej z chronionych sieci wymienionych powyżej. Powinien wiec być wysłany normalnie, bez szyfrowania. Aby zapewnić ten konkretny zakres ochrony należałoby stworzyć kolejny tunel pomiędzy 10.1.1.76 (brak lroute) i 192.168.2.0/24 (route do tej sieci). Nie ma to jednak praktycznego sensu, jeśli nie będzie faktycznie wrażliwego ruchu generowanego z szyfratora test1 do tej sieci. Najprostszym sposobem by zobaczyć szyfrowany ruch jest oczywiście wysłanie danych z jednej sieci chronionej do drugiej, czyli tak jak miałoby się to odbywać w środowisku produkcyjnym. Jednak zaimplementowne na szyfratorach polecenie ping posiada możliwość wysyłania pakietów z innym niż domyślny źródłowym adresem IP. 30

4.5. Tunel ESP: tryb tunelowy VPN Do powyższej konfiguracji wprowadzamy istotna zmianę - zamiast protokołu AH zastosujemy ESP, zapewniający ochronę integralności oraz autentyczności pakietów oraz dodatkowo ich szyfrowanie. Konfiguracja szyfratora test1 Opis Komendy konsoli szyfratora Programator kluczy USB Wczytujemy konfigurację wybieramy opcje Odczytaj Ustawienia parametrów tunelu Włączamy ESP peer test2 esp zaznaczamy opcje ESP Wyłączamy AH peer test2 noah odznaczamy opcje AH Reaktywacja tunelu peer test2 enable Zapis konfiguracji Zapisujemy konfigurację wybieramy opcje Zapisz na klucz na klucz USB Zapisujemy konfigurację lokalnie wybieramy opcje Zapisz Konfiguracja szyfratora test2 Opis Komendy konsoli szyfratora Programator kluczy USB Wczytujemy konfigurację wybieramy opcje Odczytaj Ustawienia parametrów tunelu Włączamy ESP peer test1 esp zaznaczamy opcje ESP Wyłączamy AH peer test1 noah odznaczamy opcje AH Reaktywacja tunelu peer test1 enable Zapis konfiguracji Zapisujemy konfigurację wybieramy opcje Zapisz na klucz na klucz USB Zapisujemy konfigurację lokalnie wybieramy opcje Zapisz Generując konfigurację za pomocą programatora nie musimy dbać o kolejność wykonywanych czynności - włączenie ESP i dopiero później wyłączenie AH. 31

4.6. RSA z identyfikatorem "adres IP" We wszystkich wyżej wymienionych konfiguracjach strony tuneli były uwierzytelniane za pomocą hasła współdzielonego, które musi być identyczne na obu końcach każdego tunelu. W przypadku szyfratorów, z których wychodzi wiele tuneli zarządzanie hasłami staje się zadaniem skomplikowanym. Ponadto, uwierzytelnienie za pomocą haseł można stosować wyłącznie gdy adresy IP komunikujących się szyfratorów są stałe, metoda ta nie nadaje się zatem do uwierzytelniania szyfratorów wdzwaniających się do Internetu z dynamicznie przydzielanymi adresami IP. W takich wypadkach należy skorzystać z uwierzytelnienia za pomocą kluczy RSA. Metoda ta posiada następujące cechy: Każdy szyfrator musi posiadać swój klucz prywatny oraz związany z nim klucz publiczny Każdy szyfrator musi posiadać klucze publiczne wszystkich szyfratorów, do których będzie nawiązywał połączenia IPSec Strony połączeń mogą przedstawiać się za pomocą adresów IP lub identyfikatorów tekstowych. Te ostatnie wykorzystuje się, gdy adres IP nie jest stały. Aby przejść na uwierzytelnienie po kluczach RSA konieczne jest wygenerowanie kluczy prywatnych dla każdego z szyfratorów, a następnie dokonać wymiany kluczy publicznych. Klucze publiczne maja postać długich ciągów znaków (nap. 0sAQNcmZbb7qn12...). Dla ułatwienia zarządzania kluczami w konfiguracji szyfratora wykorzystuje się identyfikatory kluczy będące krótkimi liczbami szesnastkowymi (np. F2570af1). Wszelkie operacje na kluczach RSA w programatorze (wyświetlanie, kasowanie, dodawanie do tunelu) wykonuje się na identyfikatorze. UWAGA: Ze względu na konieczność wygenerowania kluczy RSA szyfratorów możemy skorzystać z bazy hostów i najpierw wygenerować wszystkie hosty wraz z kluczami RSA Generowanie hostów i kluczy RSA - okno Baza hostów Opis Komendy konsoli szyfratora Programator kluczy USB Otwieramy bazę hostów z menu Programator wybieramy opcję Baza hostów Szyfrator test1 Dodawanie hosta wraz z kluczem RSA w pole nazwa hosta wpisujemy test1 i przyciskamy przycisk możemy także zmienić długość klucza RSA Dodawanie hosta wraz z kluczem RSA Szyfrator test2 w pole nazwa hosta wpisujemy test2 i przyciskamy przycisk możemy także zmienić długość klucza RSA 32

Konfiguracja szyfratora test1 Opis Komendy konsoli szyfratora Programator kluczy USB Wczytujemy konfigurację wybieramy opcje Odczytaj Zakładka Ogólnie Wybieramy z bazy hosta przyciskamy przycisk Wybierz z listy i wybieramy z listy test1 Parametry IPSec - zakładka IPSec Dodanie klucza publicznego drugiej strony na każdym z szyfratorów ipsec pub add 0sAQLbW60kNiU11... Z listy Baza kluczy publicznych wybieramy identyfikator klucza publicznego szyfratora test2 i dodajemy go poleceniem do aktualnie generowanej konfiguracji. Wskazanie identyfikatorów kluczy publicznych w konfiguracji tuneli Wyłączenie konfiguracji za pomocą hasła współdzielonego Reaktywacja tunelu Zapisujemy konfigurację na klucz USB Zapisujemy konfigurację lokalnie Ustawienia parametrów tunelu peer test1 pubkey b26a016f peer test1 nosecret peer test1 enable Zapis konfiguracji zaznaczamy opcje Klucz publiczny i z listy dostępnych kluczy wybieramy klucz szyfratora test2 odznaczamy opcje Hasło wybieramy opcje Zapisz na klucz wybieramy opcje Zapisz 33

Konfiguracja szyfratora test2 Opis Komendy konsoli szyfratora Programator kluczy USB Wczytujemy konfigurację wybieramy opcje Odczytaj Zakładka Ogólnie Wybieramy z bazy hosta przyciskamy przycisk Wybierz z listy i wybieramy z listy test2 Parametry IPSec - zakładka IPSec Dodanie klucza publicznego drugiej strony na każdym z szyfratorów ipsec pub add 0sAQNcmZbb7qn12... Z listy Baza kluczy publicznych wybieramy identyfikator klucza publicznego szyfratora test1 i dodajemy go poleceniem do aktualnie generowanej konfiguracji. Wskazanie identyfikatorów kluczy publicznych w konfiguracji tuneli Wyłączenie konfiguracji za pomocą hasła współdzielonego Reaktywacja tunelu Zapisujemy konfigurację na klucz USB Zapisujemy konfigurację lokalnie Ustawienia parametrów tunelu peer test2 pubkey f2570af1 peer test2 nosecret peer test2 enable Zapis konfiguracji 4.7. RSA z identyfikatorem tekstowym zaznaczamy opcje Klucz publiczny i z listy dostępnych kluczy wybieramy klucz szyfratora test1 odznaczamy opcje Hasło wybieramy opcje Zapisz na klucz wybieramy opcje Zapisz Uwierzytelnienie kluczami RSA identyfikowanymi przez adresy IP jest możliwe tylko wówczas, gdy adresy te są stałe. W przypadkach, kiedy zmieniają się one dynamicznie konieczne jest zastosowanie identyfikatorów niezależnych od adresów IP, będących jednoznacznymi i wybranymi przez administratorami nazwami. Szyfratory obsługują dwa rodzaje identyfikatorów tekstowych: identyfikatory będące nazwa domen ową (nap. gw.aba.krakow.pl), które muszą jednak rozwiązywać się poprawnie w DNS identyfikatory typu użytkownik@host W większości przypadków praktyczniejsze jest korzystanie z identyfikatorów drugiego typu. Rekonfiguracja w tym wypadku ogranicza się do wskazania odpowiednich identyfikatorów po każdej ze stron. Polecenie lid określa lokalny identyfikator, którym szyfrator będzie się przedstawiał do drugiego końca tunelu. Polecenie id określa spodziewany identyfikator zdalnego szyfratora. 34

Konfiguracja szyfratora test1 Opis Komendy konsoli szyfratora Programator kluczy USB Wczytujemy konfigurację wybieramy opcje Odczytaj Ustawienia parametrów tunelu Konfiguracja lokalnych identyfikatorów peer test2 lid admin@test1 zaznaczamy opcje Lid i w okienko wpisujemy: Konfiguracja identyfikatorów zdalnych szyfratorów Reaktywacja tunelu Zapisujemy konfigurację na klucz USB Zapisujemy konfigurację lokalnie Konfiguracja szyfratora test2 peer test2 id kravietz@test2 peer test2 enable Zapis konfiguracji admin@test1 zaznaczamy opcje Id i w okienko wpisujemy: kravietz@test2 wybieramy opcje Zapisz na klucz wybieramy opcje Zapisz Opis Komendy konsoli szyfratora Programator kluczy USB Wczytujemy konfigurację wybieramy opcje Odczytaj Ustawienia parametrów tunelu Konfiguracja lokalnych identyfikatorów peer test1 lid kravietz@test2 zaznaczamy opcje Lid i w okienko wpisujemy: Konfiguracja identyfikatorów zdalnych szyfratorów Reaktywacja tunelu Zapisujemy konfigurację na klucz USB Zapisujemy konfigurację lokalnie peer test1 id admin@test1 peer test1 enable Zapis konfiguracji kravietz@test2 zaznaczamy opcje Id i w okienko wpisujemy: admin@test1 wybieramy opcje Zapisz na klucz wybieramy opcje Zapisz 35

4.8. Tunele dynamiczne Tunele dynamiczne charakteryzują się co najmniej jedna z poniższych cech: maja charakter tymczasowy, tzn. mogą być inicjalizowane w momencie nawiązania łączności przez modem i kończone w momencie jej zerwania maja zmieniające się, przydzielane dynamicznie adresy IP Konfiguracja szyfratora centrala Opis Komendy konsoli szyfratora Programator kluczy USB Parametry podstawowe - zakładka Ogólnie Konfiguracja nazwy szyfratora host centrala w okienko Nazwa hosta wpisujemy centrala Ustawienie hasła pass jhalgm81 w okienko Hasłowpisujemy jhalgm81 Parametry interfejsów sieciowych - zakładka Sieć Adres IP Ethernet int eth0 217.96.88.199/28 wybieramy interfejs eth0 i w okienku Adres wpisujemy: 217.96.88.199/28 dodajemy interfejs przyciskiem Routing domyślny route default 217.96.88.194 w okienko Adres docelowy wpisujemy: 0.0.0.0/0 w okienko przez router wpisujemy: 217.96.88.194 dodajemy routing przyciskiem Parametry IPSec - zakładka IPSec Generowanie kluczy prywatnych ipsec sec gen wybieramy opcje Generuj (opcjonalnie możemy podać długość klucza) Zapisujemy konfigurację lokalnie Zapis konfiguracji wybieramy opcje Zapisz 36

Konfiguracja szyfratora dialup Opis Komendy konsoli szyfratora Programator kluczy USB Parametry podstawowe - zakładka Ogólnie Konfiguracja nazwy routera host dialup w okienko Nazwa hosta wpisujemy dialup Ustawienie hasła pass yuq1ma3 w okienko Hasło wpisujemy yuq1ma3 Parametry interfejsu ppp - zakładka PPP Włączamy obsługe PPP zaznaczamy opcje Włączone Edycja konfiguracji modemu ppp chat zaznaczamy opcje Skrypt i przyciskamy przycisk Edytuj Użytkownik i hasło PPP ppp auth ppp ppp w pole Użytkownik wpisujemy: ppp w pole Hasłowpsujemy: ppp Domyślny routing przez PPP ppp defroute zaznaczamy opcje Użyj domyślnej bramy Aktywacja PPP ppp enable Parametry IPSec - zakładka IPSec Generowanie kluczy prywatnych ipsec sec gen wybieramy opcje Generuj (opcjonalnie możemy podać Wymiana kluczy publicznych ipsec pub add... Dodawanie tunelu - zakładka Tunele Adres zdalnego szyfratora peer centrala 217.96.88.199 długość klucza) Z listy Baza kluczy publicznych wybieramy identyfikator klucza publicznego szyfratora test2 i dodajemy go poleceniem do aktualnie generowanej konfiguracji. w okienko Identyfikator: wpisujemy test1 w okienko Adres: 217.96.88.199 dodajemy tunel przyciskiem Ustawienia parametrów tunelu Tunel dynamiczny peer centrala dynamic wybieramy opcje Dynamiczny Klucze publiczne peer centrala pubkey... zaznaczamy opcje Klucz publiczny i z listy dostępnych kluczy wybieramy klucz szyfratora test1 Identyfikator lokalny peer centrala lid dial@dialup zaznaczamy opcje Lid i w okienko wpisujemy: dial@dialup Identyfikator zdalny Aktywacja tunelu Zapisujemy konfigurację na klucz USB Zapisujemy konfigurację lokalnie peer centrala id cen@centrala zaznaczamy opcje Id i w okienko wpisujemy: cen@centrala peer centrala enable Zapis konfiguracji wybieramy opcje Zapisz na klucz wybieramy opcje Zapisz 37

Konfiguracja szyfratora centrala Opis Komendy konsoli szyfratora Programator kluczy USB Wczytujemy konfigurację wybieramy opcje Odczytaj Parametry IPSec - zakładka IPSec Wymiana kluczy publicznych ipsec pub add... Z listy Baza kluczy publicznych wybieramy identyfikator klucza publicznego szyfratora test2 i dodajemy go poleceniem do aktualnie generowanej konfiguracji. Tunel dynamiczny Adres zdalnego szyfratora Dodawanie tunelu - zakładka Tunele peer dialup1 any w okienko Identyfikator: wpisujemy test1 w okienko Adres: any dodajemy tunel przyciskiem Ustawienia parametrów tunelu Klucze publiczne Peer dialup1 pubkey... zaznaczamy opcje Klucz publiczny i z listy dostępnych kluczy wybieramy klucz szyfratora test1 Identyfikator lokalny Peer dialup1 lid cen@centrala zaznaczamy opcje Lid i w okienko wpisujemy: cen@centrala Identyfikator zdalny Peer dialup1 id dial@dialup zaznaczamy opcje Id i w okienko Aktywacja tunelu Zapisujemy konfigurację na klucz USB Zapisujemy konfigurację lokalnie Peer dialup1 enable Zapis konfiguracji wpisujemy: dial@dialup wybieramy opcje Zapisz na klucz wybieramy opcje Zapisz UWAGI: Tunele ze specjalnym adresem docelowym any działają wyłącznie w trybie biernym, tj. nie mogą inicjować połączeń Konfiguracja modemu to skrypt zawierający komendy AT (Hayes) inicjalizujące modem oraz powodujące nawiązanie połączenia. Przykładowy skrypt dla dialupu POLPAK-T (0202122) z wyjściem przez wewnętrzny numer 9: ATZ OK ATDT9w0202122 CONNECT Dynamiczny routing domyślny przez PPP może być uruchomiony tylko wówczas, gdy nie jest ustawiony inny, statyczny routing domyślny. Autoryzacja po PPP jest możliwa tylko przy pomocy protokołu Password Authentication Protocol (PAP). 38

5. Klucze USB (Zewnętrzna pami ęć FLASH) Konfiguracja na kluczach USB jest przechowywana w postaci zaszyfrowanego pliku bazodanowego. Szyfrowanie odbywa się algorytmem 3DES-EDE-CBC z kluczem 168 bitów wprowadzonym z podawanego przez użytkownika PIN-u za pomocą funkcji skrótu SHA1, z dodaniem 64-bitowego modyfikatora. Pełen opis procedury szyfrowania konfiguracji za pomocą szyfru 3DES znajduje się w dokumentacji Szyfratora IPSec Gateway. 6. Klucze RSA Opis kluczy RSA znajduje się w dokumentacji Szyfratora IPSec Gateway. 7. Przechowywanie kluczy RSA i konfiguracji zapisanej lokalnie. Oprogramowanie do tworzenia konfiguracji ma również możliwość zapisywania utworzonej konfiguracji lokalnie, także lokalnie przechowywana jest baza kluczy RSA. Mając na uwadze konieczność ochrony tych danych przed nieuprawnionym dostępem wprowadziliśmy szyfrowanie wszelkich danych przechowywanych lokalnie. Szyfrowanie to odbywa się algorytmem 3DES-EDE-CBC z kluczem 168 bitów wprowadzonym z podawanego przez użytkownika Kodu dostępu za pomocą funkcji skrótu SHA1, z dodaniem 64-bitowego modyfikatora w taki sam sposób w jaki szyfrowana jest konfiguracji na kluczu USB. W ten sam sposób przechowywany jest także dziennik zdarzeń. 8. Aktualizacja oprogramowania Możliwa jest aktualizacja oprogramowania stacji programującej klucze USB, w tym celu należy mieć przygotowany klucz USB z nowym oprogramowaniem. Proces przygotowywania klucza z oprogramowaniem zawarty jest w Dodatku D. W celu dokonania aktualizacji wybieramy z menu System opcje Aktualizacja oprogramowania. Po kliknięciu przycisku OK. należy poczekać aż pojawi się okienko podsumowujące. Aby zostało załadowane nowe oprogramowanie należy zrestartować stacje programującą. 39

9. Formatowanie kluczy USB Używane w szyfratorach IPSec Gateway klucze USB muszą być odpowiednio sformatowane - zawierać system plików MINIX. W celu sformatowania klucza USB wybieramy z menu Klucz USB opcje Formatowanie klucza. Po kliknięciu przycisku OK. należy poczekać aż pojawi się okienko podsumowujące. 10. Logowanie błędów Możliwe jest włączenie funkcji logowanie błędów, w tym celu w menu System zaznaczamy opcję Włączenie logowania błędów. Funkcja ta w przypadku zarejestrowania błędu zapisuje na klucz USB plik z informacjami dla programisty o zaistniałym błędzie, w tym celu podczas zamykania Programatora poprosi on o włożenie klucza USB na który zostanie zapisany ten plik. Plik ten jest zapisywany w postaci jawnej niezaszyfrowanej. Wszelkie błędy prosimy zgłaszać pod adres grzesiekl@aba.krakow.pl w celu ich poprawienia i uzyskania informacji o sposobach ich rozwiązywania 40

Dodatek A Format prefiksowy Format prefiksowy adresów IP ma postać aaa.bbb.ccc.ddd/mm, gdzie ostatni człon mm oznacza ilość bitowych jedynek w masce podsieci (tzw. długość prefiksu). Jest to skrócona postać maski, podawana razem z adresem IP. Poniższa tabelka pozwala na szybką konwersję pomiędzy długością prefiksu, a tradycyjnym formatem. PRZYKŁADY Długość prefiksu Maska podsieci 30 255.255.255.252 29 255.255.255.248 28 255.255.255.240 27 255.255.255.224 26 255.255.255.192 25 255.255.255.128 24 255.255.255.0 23 255.255.254.0 22 255.255.252.0 21 255.255.248.0 20 255.255.240.0 19 255.255.224.0 18 255.255.192.0 17 255.255.128.0 16 255.255.0.0 192.168.1.1/24 Adres hosta 192.168.1.1 w podsieci o masce 255.255.255.0. 10.1.1.103/28 Adres hosta 10.1.1.103 w podsieci o masce 255.255.255.240. 41

Dodatek B Konfiguracja filtra pakietów Filtrowanie pakietów w Linuksie 2.4 Rusty Russell, lista pocztowa netfilter@lists.samba.org Oryginał tego dokumentu znajduje się pod adresem: http://netfilter.samba.org/unreliable-guides/packet-filtering-howto/index.html Wersja polska: Łukasz Bromirski Oryginał tego tłumaczenia znajduje się pod adresem: http://www.prosys.com.pl/~szopen/tlumaczenia/iptables.html Dokument ten opisuje zastosowanie narzędzia iptables w filtrowywaniu niepożądanych pakietów, w systemach Linuks z jądrem 2.4 Na potrzeby szyfratora OPTIMUS ABA IPSec Gateway tekst opracował Grzegorz Łabuzek grzesiekl@aba.krakow.pl 42

Spis treści 1. Więc co to jest Filtr Pakietów?...44 2. Używanie iptables...44 2.1. Operacje na pojedynczej regule...45 2.2. Specyfikacja filtrowania...46 2.2.1. Wskazanie adresów IP: źródłowego i docelowego...46 2.2.2. Inwersja...46 2.2.3. Protokół...46 2.2.4. Interfejs...47 2.2.5. Fragmenty...47 2.2.6. Rozszerzenia do iptables: Nowe testy sprawdzające...48 2.2.6.1. Rozszerzenia TCP...48 2.2.6.1.1. Wyjaśnienie flag TCP...49 2.2.6.2. Rozszerzenia UDP...49 2.2.6.3. Rozszerzenia ICMP...49 2.2.6.4. Inne rozszerzenia testowe...49 2.2.6.5. Test stanu (state)...52 2.3. Cel ('target')...53 2.3.1. Łańcuchy zdefiniowane przez użytkownika...53 2.3.2. Rozszerzenia do iptables: Nowe cele...54 2.3.3. Specjalne cele wbudowane...55 2.4. Operacje na całym łańcuchu...55 2.4.1. Tworzenie nowego łańcucha...55 2.4.2. Kasowanie łańcucha...56 2.4.3. Opróżnianie łańcucha...56 2.4.4. Listowanie zawartości łańcucha...56 2.4.5. Resetowanie (zerowanie) liczników...56 2.4.6. Określanie polityki (policy)...57 3. Porady w projektowaniu filtra pakietów...57 43

1. Więc co to jest Filtr Pakietów? Filtr pakietów to takie oprogramowanie, które sprawdza nagłówki pakietów w trakcie jak docierają do maszyny na której działa i decyduje o ich losie. Może zdecydować, że pakiet zostanie odrzucony (DROP, tzn. tak jakby pakiet nigdy nie dotarł), zaakceptowany (ACCEPT, tzn. pozwoli mu się przejść), lub coś bardziej skomplikowanego. Narzędzie iptables rozmawia z kernelem i mówi mu jakie pakiety filtrować. I dopóki nie jesteś programistą, albo zbyt ciekawski, tyle informacji będzie ci potrzeba by zajmować się filtrowaniem pakietów. 2. Używanie iptables Osoby zainteresowane większą ilością szczegółowych informacji na temat konfiguracji iptabels odsyłam do podręcznika (man iptables) - znajdującego się zwykle w każdej dystrybucji Linuxa. Ci z was których znają ipchains mogą po prostu zajrzeć do sekcji 10; oba narzędzia są bardzo podobne. Jest jednak parę innych rzeczy, które możesz zrobić przy użyciu iptables. Zaczynasz z trzema wbudowanymi łańcuchami, INPUT, OUTPUT i FORWARD, których nie możesz skasować. Spójrzmy na listę możliwych operacji na całych łańcuchach: Stworzenie nowego łańcucha (-N). Skasowanie pustego łańcucha (-X). Zmiana zasady dla wbudowanego łańcucha (-P). Wylistowanie reguł w łańcuchu (-L). Wyczyszczenie reguł z łańcucha (-F). Wyzerowanie liczników pakietów i bajtów we wszystkich regułach w łańcuchu (-Z). Jest również parę sposobów na manipulowanie regułami w środku łańcuchów: Dodanie nowej reguły do łańcucha (-A). Wstawienie nowej reguły na wskazanej pozycji w łańcuchu (-I). Wymiana reguły na wskazanej pozycji w łańcuchu (-R). Skasowanie reguły na wskazanej pozycji w łańcuchu (-D). Skasowanie pierwszej pasującej reguły z łańcucha (-D). 44

2.1. Operacje na pojedynczej regule Manipulowanie regułami to bułka z masłem filtrowania pakietów. Najczęściej będziesz zapewne dodawał (-A) i kasował (-D). Inne komendy (-I dla wstawiania i -R do zamieniania) są prostymi rozwinięciami tych koncepcji. Każda reguła jest zestawem warunków które pakiet musi spełnić, oraz zawiera informację co zrobić jeśli tak jest (czyli cel ('target') pakietu [Uwaga od tłumacza: słowo 'cel' niezbyt tu pasuje ale słownictwo opierające się na analogii mogłoby mylić się z adresami źródłowym i przeznaczenia. Przepraszam]). Na przykład, możesz chcieć odrzucać wszystkie pakiety ICMP nadchodzące z adresu IP 127.0.0.1. W tym przypadku naszymi warunkami są zatem: protokołem musi być ICMP, a adresem źródłowym 127.0.0.1. Naszym celem będzie 'DROP'. 127.0.0.1 to interfejs pętli zwrotnej, który posiadasz nawet wtedy gdy nie masz żadnego połączenia sieciowego. Możesz użyć programu 'ping' by wygenerować pakiety takie jak powyżej (polecenie wysyła pakiety ICMP typ 8 (żądanie echa) na które wszystkie współpracujące hosty odpowiedzą pakietem ICMP typu 0 (echo)). Dzięki temu polecenie to jest wygodne dla testów. # ping -c 1 127.0.0.1 PING 127.0.0.1 (127.0.0.1): 56 data bytes 64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.2 ms --- 127.0.0.1 ping statistics --- 1 packets transmitted, 1 packets received, 0% packet loss round-trip min/avg/max = 0.2/0.2/0.2 ms # iptables -A INPUT -s 127.0.0.1 -p icmp -j DROP # ping -c 1 127.0.0.1 PING 127.0.0.1 (127.0.0.1): 56 data bytes --- 127.0.0.1 ping statistics --- 1 packets transmitted, 0 packets received, 100% packet loss # Widać powyżej że pierwszy ping dociera (opcje '-c 1' poleca wysłanie tylko jednego pakietu). emy teraz (-A) do łańcucha INPUT regułę, która mówi że pakiety z 127.0.0.1 ('-s 127.0.0.1') protokołu ICMP ('-p icmp') powinny zostać przeznaczone do wyrzucenia ('-j DROP'). Testujemy następnie działanie naszej reguły, wykonując drugi ping. Nastąpi pauza po której program się podda, po krótkim oczekiwaniu na odpowiedź która nigdy nie nadejdzie. Możemy skasować naszą regułę na dwa sposoby. Po pierwsze, ponieważ wiemy że jest to jedyna reguła w łańcuchu wejściowym, możemy użyć numerowania reguł, tak jak poniżej: # iptables -D INPUT 1 # Co spowoduje skasowanie reguły numer 1 w łańcuchu wejściowym (INPUT). Drugi sposób to dokładne przepisanie odpowiednika poleceń po opcji -A, ale zamiast opcji -A podajemy opcję -D. Przydaje się to w przypadku gdy masz skomplikowany zestaw reguł i nie chce ci się liczyć ich wszystkich by dojść do tego że to reguła numer 37 której chcesz się pozbyć. W tym wypadku użyjemy: # iptables -D INPUT -s 127.0.0.1 -p icmp -j DROP # Składnia polecenia -D musi dokładnie odpowiadać opcjom które podałeś przy poleceniu -A (lub -I czy -R). Jeśli istnieje wiele identycznych reguł w tym samym łańcuchu, tylko pierwszy pasujący zostanie wykasowany. 45

2.2. Specyfikacja filtrowania Widzieliśmy już jak używać opcji '-p' by wskazać protokół, i '-s' dla wskazania adresu źródłowego, ale są jeszcze inne opcje których możemy użyć by scharakteryzować pakiet. Poniżej znajdziesz wyczerpujące kompendium. 2.2.1. Wskazanie adresów IP: źródłowego i docelowego Adresy IP źródłowy ('-s', '--source' lub '--src') i docelowy ('-d', '--destination' lub '-- dst') mogą być podane na cztery sposoby. Najczęstszym jest użycie pełnej nazwy, takiej jak 'localhost' czy 'www.linuxhq.com'. Drugim sposobem jest podanie numerycznego adresu IP, takiego jak np. '127.0.0.1'. Trzeci i czwarty sposób pozwalają na wskazanie grup adresów IP, takich jak '199.95.207.0/24' lub '199.95.207.0/255.255.255.0'. Oba przykłady wskazują na adresy od '199.95.207.0' do '199.95.207.255' włącznie; cyfry po znaku '/' określają które części adresu IP są ważne. '/32' czy inaczej '/255.255.255.255' jest domyślne (tzn. każda liczba w adresie musi dokładnie pasować). By wskazać jakikolwiek adres IP używa się '/0', tak jak poniżej: [ NOTKA: `-s 0/0' jest tu ca kowicie zbdne. ] # iptables -A INPUT -s 0/0 -j DROP # Takich konstrukcji używa się rzadko, bo efekt jest dokładnie taki sam jak tego polecenia bez opcji '-s'. 2.2.2. Inwersja Wiele flag, włączając w to '-s' (lub '--source', czyli adres źródłowy) i '-d' (lub '-- destination', czyli adres przeznaczenia) może mieć swoje argumenty poprzedzone przez '!' (wymawiane 'not' czyli 'nie') by sprawdzało adresy NIE równe tym podanym. Na przykład '- s! localhost' dotyczy wszystkich pakietów które nie pochodzą z interfejsu localhost. 2.2.3. Protokół Protokół podaje się po parametrze '-p' (lub '--protocol'). Protokół może być numerem (jeśli znasz wartości numeryczne protokołów IP) lub nazwą dla 'TCP', 'UDP' i 'ICMP'. Wielkość liter jest nieważna, więc 'tcp' działa tak samo jak 'TCP'. Nazwa protokołu może być poprzedzona przez znak '!' by wskazać na wszystkie oprócz wymienionego, tak jak na przykład '-p! TCP' (warunek dotyczy wszystkich protokołów prócz TCP). 46

2.2.4. Interfejs Opcje '-i' (lub '--in-interface' czyli interfejs wejściowych) i '-o' (lub '--out-interface' czyli interfejs wyjściowy) używane są dla wskazania interfejsu. Interfejs to fizyczne urządzenie do którego pakiety przychodzą ('-i') i z którego są wysyłane ('-o'). Możesz użyć programu ifconfig by wylistować interfejsy które są 'podniesione' (tzn. aktualnie pracujące). Pakiety podróżujące w łańcuchu INPUT (wejściowym) nie mają interfejsu wyjściowego, więc podanie opcji '-o' w regule w tym łańcuchu spowoduje że nie będzie ona pasować do żadnego pakietu. Podobnie, pakiety podróżujące przez łańcuch OUTPUT nie mają interfejsu wejściowego, więc podanie opcji '-i' w regule tego łańcucha nie będzie pasowała. Tylko pakiety podróżujące przez łańcuch FORWARD mają zarówno interfejs wejściowy i wyjściowy. Można również wskazywać interfejsy które nie istnieją; reguły nie będą pasować dopóki interfejs który sprawdzają nie zostanie podniesiony. Jest to szczególnie użyteczne w przypadku połączeń PPP (zwykle interfejs to ppp0) i podobnych. Można również wskazać interfejs kończąc jego nazwę przez '+' co spowoduje że reguła będzie pasowała do wszystkich interfejsów których nazwa zaczyna się od podanego ciągu znaków. Na przykład, by wskazać regułę która pasuje do wszystkich interfejsów PPP użyć należy polecenia '-i ppp+'. Interfejs może być poprzedzony przez '!' co spowoduje że pasować będą pakiety które nie pasują do wskazanego interfejsu. 2.2.5. Fragmenty Czasami pakiet jest zbyt duży by zmieścić się cały w jednostce transmisji. Kiedy się tak dzieje, jest on dzielony na fragmenty i wysyłany jako osobne pakiety. Komputer docelowy składa fragmenty by zrekonstrukować cały pakiet. Problem z fragmentami polega na tym, że pierwszy fragment posiada komplet pól nagłówka (IP+TCP, UDP i ICMP) który można sprawdzać, ale następne fragmenty mają tylko podzbiór nagłówków (IP bez dodatkowych pól specyficznych protokołów które przenosi pakiet). W związku z tym niemożliwe jest analizowanie pewnych informacji z nagłówków fragmentów (tak jak robi się to dla typowych pakietów TCP, UDP i ICMP). Jeśli prowadzisz śledzenie połączeń lub NAT, to wszystkie fragmenty zostaną najpierw złożone a dopiero później przekazane do kodu filtrującego pakiety, więc nie powinieneś się martwić fragmentami. W każdym innym przypadku ważne jest by zrozumieć jak fragmenty traktowane są przez reguły filtrujące. Każda reguła która ma sprawdzić informacje których nie posiadamy dla danego pakietu, nie będzie pasowała. Oznacza to, że tylko pierwszy fragment traktowany jest tak jak można by się tego spodziewać. Drugi pakiet i kolejne już nie będą. W związku z tym reguła '-p TCP --sport www' (podająca port źródłowy 'www') nigdy nie będzie pasowała do fragmentu pakietu (innego niż pierwszy fragment pakietu). Nie będzie również pasować reguła odwrotna '-p TCP --sport! www'. Możesz jednak dodać reguły specjalnie dla drugiego i następnych fragmentów, poprzez użycie opcji '-f' (lub '--fragment'). Poprawne jest również dodanie reguły która nie pasuje do drugiego i następnych fragmentów, przez poprzedzenie opcji '-f' opcją '!'. Zwykle uważa się za bezpieczne umożliwienie drugiemu i następnym fragmentom przejść, ponieważ filtrowanie zajmie się pierwszym fragmentem i w związku z tym zapobiegnie złożeniu pakietu na maszynie docelowej; z drugiej strony znane były pluskwy które powodowały zawieszanie się maszyn tylko poprzez wysyłanie do nich fragmentów. To twoja decyzja. Mała uwaga do specjalistów od sieci: pakiety zniekształcone (TCP i UDP które są zbyt krótkie by kod ściany ogniowej mógł odczytać porty, czy ICMP w których do odczytania jest kod lub typ) są również wyrzucane gdy prowadzone są takie analizy. Dokładnie tak samo jest 47

z fragmentami TCP które rozpoczynają się od pozycji 8. Jako przykład, poniższa reguła wyrzuci wszystkie fragmenty przeznaczone dla 192.168.1.1: # iptables -A OUTPUT -f -d 192.168.1.1 -j DROP # 2.2.6. Rozszerzenia do iptables: Nowe testy sprawdzające iptables są rozszerzalne, co oznacza że funkcjonalność zarówno kernela jak i narzędzia iptables może być rozszerzana by dodać nowe opcje. Niektóre rozszerzenia są standardowe, inne są trochę bardziej egzotyczne. Oczywiście, mogą być one dodawane przez innych ludzi i dystrybuowane niezależnie dla użytkowników niszowych. Fizycznie rozszerzenia znajdują się zwykle w podkatalogu modułów kernela, tak jak na przykład '/lib/modules/2.3.15/net'. Są ładowane na żądanie gdy kernel został skompilowany z opcją CONFIG_KMOD, więc nie powinno być potrzeby ładowania ich ręcznie. Rozszerzenia do narzędzia iptables są współdzielonymi bibliotekami, które znajdują się zwykle w '/usr/local/lib/iptables/', choć dystrybucje mogą umieścić je w katalogach takich jak '/lib/iptables/' czy '/usr/lib/iptables'. Rozszerzenia mogą należeć do jednego z dwóch typów: nowych celów, lub nowych testów (porozmawiamy o nowych celach za moment). Niektóre protokoły oferują automatycznie nowe testy: aktualnie są nimi TCP, UDP i ICMP tak jak pokażemy to poniżej. Możesz dla nich podać nowe testy w linii poleceń po opcji '-p', który ładuje rozszerzenie. Dla samodzielnych nowych testów, używa się opcji '-m' by załadować rozszerzenie, po której dostępne są nowe opcje. By uzyskać pomoc dla rozszerzenia, użyj opcji ('-p', '-j' lub '-m') by je załadować, po której dodasz '-h' lub '--help', np.: # iptables -p tcp --help 2.2.6.1. Rozszerzenia TCP Rozszerzenia TCP ładowane są automatycznie gdy podano opcję '-p tcp'. ą one następujące opcje (z których żadna nie pasuje do fragmentów). --tcp-flags po którym następuje opcjonalne '!', następnie dwa ciągi flag, pozwala na filtrowanie na podstawie specyficznych dla TCP flag. Pierwszy ciąg flag jest maską: listą flag które chcesz sprawdzić. Drugi string flag mówi które powinny być ustawione. Na przykład, # iptables -A INPUT --protocol tcp --tcp-flags ALL SYN,ACK -j DROP mówi że sprawdzone powinny zostać wszystkie flagi ('ALL' to synonim dla 'SYN,ACK,FIN,RST,URG,PSH'), ale tylko flagi SYN i ACK powinny być ustawione. Istnieje również argument 'NONE' który oznacza że nie może być żadnej flagi. --syn Opcjonalnie poprzedzone przez '!', jest skrótem dla '--tcp-flags SYN,RST,ACK SYN'. --source-port po którym następuje opcjonalne '!', następnie jeden port TCP lub zakres portów. Porty można podawać w postaci numerycznej lub przez nazwy takie jak w '/etc/services'. Zakresy mogą być albo dwoma nazwami rozdzielonymi przez ':', lub (by wskazać na porty większe lub równe wskazanym) przez port i dodany ':', lub najpierw ':' a potem port (by wskazać porty mniejsze lub równe wskazanemu portowi). 48

--sport jest synonimem dla '--source-port'. --destination-port --dport oznaczają dokładnie to co powyżej, ale wskazują na porty przeznaczenia a nie źródłowe. --tcp-option po którym następuje opcjonalne '!' i numer, pasuje do opcji TCP równej podanemu numerowi. Pakiet który nie posiada kompletnego nagłówka TCP jest wyrzucany automatycznie jeśli poda się tą opcję. 2.2.6.1.1. Wyjaśnienie flag TCP Czasami użyteczne jest by zezwolić połączenia TCP w jednym kierunku ale nie w drugim. Na przykład, możesz chcieć zezwolić na połączenia do zewnętrznego serwera WWW, ale nie połączenia od tego serwera. Naiwnym rozwiązaniem byłoby blokowanie pakietów TCP nadchodzących z tego serwera. Niestety, połączenia TCP wymagają by pakiety mogły poruszać się w jedną i w drugą stronę. Rozwiązaniem jest blokowanie tylko pakietów używanych do nawiązania połączenia. Nazywa się je pakietami SYN (dobrze, technicznie rzecz biorąc są to pakiety z ustawioną flagą SYN i zgaszonymi flagami RST i ACK, ale nazywamy je pakietami SYN by było krócej). Poprzez zabronienie ruchu tylko tym pakietom, możemy zapobiec takim połączeniom u samego ich źródła. Używa się do tego opcji '--syn': która jest dozwolona tylko dla reguł które wskazują na protokół TCP. Na przykład, by wskazać połączenia TCP z 192.168.1.1: -p TCP -s 192.168.1.1 --syn Flagę tą można odwrócić poprzedzając ją '!', co oznacza że chodzi nam o każdy pakiet różny od tych które inicjują połączenie. 2.2.6.2. Rozszerzenia UDP Są one ładowane automatycznie po podaniu '-p udp'. Udostępniają opcję '--source-port', '- -sport', '--destination-port' i '--dport', dokładnie takie same jak dla TCP powyżej. 2.2.6.3. Rozszerzenia ICMP Są one ładowane automatycznie po podaniu '-p icmp'. Udostępniają one tylko jedną nową opcję: --icmp-type po którym następuje opcjonalne '!', a następnie albo nazwa typu pakietu icmp (np. 'hostunreachable'), numeryczny typ ( np. '3') lub numeryczny typ i kod rozdzielone przez '/' (np. '3/3'). Listę dostępnych nazw typów pakietów icmp można uzyskać pisząc '-p icmp --help'. 2.2.6.4. Inne rozszerzenia testowe Inne rozszerzenia w paczce netfiltera są rozszerzeniami demonstracyjnymi, które (jeśli je zainstalowano) mogą być wywołane poprzez opcję '-m'. mac Moduł ten musi być wskazany przez '-m mac' lub '--match mac'. Używa się go do sprawdzania źródła Ethernetowego (tzw. adresu MAC) adresu nadchodzącego pakietu i w związku z tym używa się tego modułu tylko do pakietów przechodzących przez łańcuchy PREROUTING lub INPUT. Udostępnia on tylko jedną opcję: --mac-source po którym następuje opcjonalny '!' a następnie ethernetowy adres w postaci zapisu heksdecymalnego rozdzielonego dwukropkami, np. '--mac-source 00:60:08:91:CC:B7'. limit Moduł ten musi być wskazany przez '-m limit' lub '--match limit'. Używa się go do ograniczania częstotliwości testów, tak jak ograniczanie wiadomości generowanych do 49

logów. Spowoduje że pasować będą pakiety tylko z taką częstotliwością jak podana w tej opcji w czasie jeden sekundy (domyślnie 3 krotnie na godzinę, z serią 5). Moduł umożliwia podanie dwóch argumentów opcjonalnych: --limit po którym następuje numer; podaje maksymalną średnią ilość testów które są dopuszczone w ciągu sekundy. Oprócz numeru można podać również jednostki, używając '/second' (na sekundę), '/minute' (na minutę), '/hour' (na godzinę), '/day' (na dzień) lub ich części (tak jak opcja '5/second' może zostać skrócone przez '5/s'). --limit-burst po którym następuje numer, podaje maksymalną serię (ilość pakietów) po której powyższy limit zacznie działać. Używa się tego testu zwykle w połączeniu z celem LOG by zrealizować ograniczone logowanie. By zrozumieć jak to działa, popatrzmy jak działa następująca reguła, która loguje pakiety z domyślnymi limitami: # iptables -A FORWARD -m limit -j LOG Gdy pierwszy raz dochodzimy do reguły, pakiet jest logowany; tak naprawdę, ponieważ domyślną serią jest 5, pierwsze pięć pakietów zostanie załadowane. Następnie, minie dwadzieścia minut zanim zalogowany zostanie następny pakiet pasujący do tej reguły, niezależnie od tego ile pakietów do niej dotrze. Jednocześnie, każde dwadzieścia minut które minie bez pakietu który pasowałby do tej reguły, odnowiony zostanie jeden numer z serii; jeśli żaden pakiet nie dotrze do reguły w ciągu 100 minut, seria zostanie w pełni odnowiona; na początek, tam gdzie zaczęliśmy. Notatka: nie możesz obecnie stworzyć reguły która odnawia się wolniej niż w ciągu 59 godzin, więc jeśli ustawisz średnią szybkość na jeden na dzień, to twój współczynnik serii musi być mniejszy niż 3. Możesz również użyć tego modułu by zapobiec rozmaitym atakom Denial of Service, z większym współczynnikiem częstotliwości by zwiększyć szybkość reakcji. Zabezpieczenie przed powodzią SYN (Syn-flood): # iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT Skaner portów Furtive: # iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit -- limit 1/s -j ACCEPT Ping of death: # iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT 50

Moduł ten działa jak 'drzwi histerii', tak jak na rysunku poniżej. rate (pkt/s) ^.---. / DoS \ / \ Edge of DoS -...:...\... = (limit * /: \ limit-burst) / : \.-. / : \ / \ / : \ / \ End of DoS - /...:...:.../...\.../. = limit : :`-' `--' -------------+-----+--------------+------------------> time (s) LOGIC => Match Didn't Match Match Powiedzmy że testujemy jeden pakiet na sekundę z serią pięciu pakietów, ale pakiety zaczynają przychodzić w tempie czterech na sekundę przez trzy sekundy, a potem znowu w ciągu trzech sekund. <--Flood 1--> <---Flood 2---> Total ^ Line -- YNNN Packets Rate -- YNNN mum -- YNNN 10 Maxi -- Y -- Y -- Y -- YNNN - YNNN 5 Y Y Key: Y -> Matched Rule Y N -> Didn't Match Rule Y Y 0 +--------------------------------------------------> Time (seconds) 0 1 2 3 4 5 6 7 8 9 10 11 12 Widać że pierwszym pięciu pakietom umożliwiamy przekroczenie częstotliwości jednego pakietu na sekundę, ale następnie zaczyna działać opcja limitowania. Jeśli nastąpi pauza, umożliwia się na kolejną serię ale nie powyżej maksymalnej częstotliwości ustawionej w regule (jeden pakiet na sekundę po tym jak wykorzystano serię). 51

owner (ang. właściciel) Ten moduł stara się ustalić pewne charakterystyki twórcy pakietu, dla pakietów generowanych lokalnie. Jego użycie jest możliwe tylko w łańcuchu OUTPUT, a nawet nie dla wszystkich pakietów (takich jak odpowiedzi na ICMP ping) które mogą nie mieć właściciela, a w związku z tym nie będą pasowały. --uid-owner userid (właściciel uid, identyfikator właściciela) Pasuje dla pakietów stworzonych przez proces ze wskazanym efektywnym (numerycznym) identyfikatorem użytkownika. --gid-owner groupid (właściciel grupy, identyfikator grupy) Pasuje dla pakietów stworzonych przez proces ze wskazanym efektywnym (numerycznym) identyfikatorem grupy. --pid-owner processid (właściciel pid, identyfikator procesu) Pasuje dla pakietów stworzonych przez proces ze wskazanym efektywnym (numerycznym) identyfikatorem procesu. --sid-owner sessionid (właściciel sid, identyfikator sesji) Pasuje dla pakietów stworzonych przez proces we wskazanej grupie sesji. unclean (ang. dosłownie brudny) Jest to eksperymentalny moduł którego używa się przez podanie '-m unclean' lub '--match unclean'. Wykonuje różne losowe testy sprawdzające na pakiecie. Moduł ten nie był sprawdzany i nie powinien być używany jako test związany z bezpieczeństwem (prawdopodobnie sprawia że wszystko wygląda jeszcze gorzej, ponieważ sam może mieć pluskwy). Nie udostępnia żadnych opcji. 2.2.6.5. Test stanu (state) Najbardziej użytecznym testem jest ten dostarczany przez rozszerzenie 'state', który interpretuje analizę śledzenia połączeń modułu 'ip_conntrack'. Zaleca się generalnie jego wykorzystanie. Podanie w regule opcji '-m state' udostępnia dodatkową opcję '--state', która jest listą oddzielonych stanów do przetestowania (opcja '!' wskazuje na pakiety nie pasujące do wskazanych stanów). Stanami które można sprawdzać są: NEW (NOWY) Pakiet który tworzy nowe połączenie ESTABLISHED (NAWIĄZANY) Pakiet który należy do istniejącego połączenia (np. pakiet odpowiedzi, lub pakiet wychodzący w połączeniu które otrzymało już odpowiedzi). RELATED (ZWIĄZANY) Pakiet który jest związany z istniejącym połączeniem, ale nie jest jego częścią, tj. np pakiet z błędem ICMP, lub (jeśli załadowany jest moduł FTP) pakiet ustanawiający połączenie ftp dla danych. INVALID (BŁĘDNY) Pakiet który nie może być zidentyfikowany z jakiś powodów: mogą to być wyczerpanie się pamięci, lub błędy ICMP które nie należą do żadnego znanego połączenia. Generalnie, pakiety tego typu powinno się odrzucać. 52

2.3. Cel ('target') Znamy już testy które możemy przeprowadzić na pakiecie, potrzebujemy zatem sposobu by wskazać co robić z pakietami które pasują do naszych testów. Nazywa się to celem reguły. Są dwa proste wbudowane cele : DROP (wyrzucić) i ACCEPT (zaakceptować). Już je widzieliśmy. Jeśli reguła pasuje do pakietu a jej cel jest jednym z tych dwóch, nie analizuje się już innych reguł: los pakietu został już określony. Istnieją jeszcze dwa inne typy celów: rozszerzenia i łańcuchy zdefiniowane przez użytkownika. 2.3.1. Łańcuchy zdefiniowane przez użytkownika Bardzo potężną własnością którą iptables dziedziczy z ipchains jest możliwość tworzenia przez użytkownika nowych łańcuchów, oprócz wbudowanych (INPUT, FORWARD i OUTPUT). Zgodnie z przyjętą konwencją, wszystkie łańcuchy generowane przez użytkownika pisane są małymi literami by odróżnić je od wbudowanych (opiszemy jak tworzyć nowe łańcuchy użytkownika w sekcji 7.5). Kiedy do reguły dociera pakiet który pasuje, a cel tej reguły zdefiniowany jest jako łańcuch zdefiniowany przez użytkownika, rozpoczyna on podróż przez reguły z łańcucha zdefiniowanego przez użytkownika. Jeśli w obrębie tego łańcucha los pakietu nie zostanie zdecydowany, przemierzanie reguł rozpoczyna się w pierwotnym łańcuchu tam gdzie zostało przerwane (dokładnie od następnej reguły). Czas na trochę rysunków ASCII. Rozważmy dwa (śmiesznie proste) łańcuchy: INPUT (łańcuch wbudowany) i test (łańcuch zdefiniowany przez użytkownika). `INPUT' `test' ---------------------------- ---------------------------- Rule1: -p ICMP -j DROP Rule1: -s 192.168.1.1 -------------------------- -------------------------- Rule2: -p TCP -j test Rule2: -d 192.168.1.1 -------------------------- ---------------------------- Rule3: -p UDP -j DROP ---------------------------- Rozważmy pakiet TCP nadchodzący z 192.168.1.1 i wysłany do 1.2.3.4. Wchodzi on do łańcucha INPUT, i rozpoczyna się sprawdzanie. Reguła 1 (Rule1) nie pasuje, natomiast druga tak. Ponieważ cel zdefiniowany jest jako 'test', następna reguła która jest sprawdzana pochodzi z łańcucha 'test'. Pierwsza reguła w tym łańcuchu pasuje ale nie podaje celu, więc sprawdzana jest następna reguła. Ona nie pasuje i osiągany jest koniec łańcucha 'test'. Wracamy do łańcucha INPUT, w którym ostatnio sprawdzaliśmy regułę drugą, teraz więc sprawdzamy trzecią która również nie pasuje. 53

Zatem droga pakietu wygląda w sposób następujący: v `INPUT' / `test' v ------------------------ --/ ----------------------- ---- Rule1 / Rule1 ----------------------- /- ---------------------- --- Rule2 / Rule2 -------------------------- -----------------------v---- Rule3 /--+ / ------------------------ --- v Łańcuchy zdefiniowane przez użytkownika mogą jako cel wskazywać inne łańcuchy również zdefiniowane przez użytkownika (ale nie mogą tworzyć pętli: twój pakiet zostanie wyrzucony jeśli okaże się że jest sprawdzany w pętli). 2.3.2. Rozszerzenia do iptables: Nowe cele Innym typem celu jest rozszerzenie. Rozszerzenie składa się z modułu kernela i opcjonalnych rozszerzeń iptables które zapewniają opcje dla linii poleceń. Jest kilka takich rozszerzeń w standardowej dystrybucji netfiltera: LOG Moduł ten zapewnia logowanie w kernelu pasujących pakietów. Udostępnia następujące opcje: --log-level (poziom logowania) Po którym następuje nazwa poziomu logowania lub odpowiednik numeryczny. Prawidłowymi nazwami są (wielkość liter nie jest ważna) 'debug', 'info', 'notice', 'warning', 'err', 'crit', 'alert' i 'emerg', którym odpowiadają cyfry od 7 do 0. Sprawdź stronę podręcznika syslog.conf by dowiedzieć się co oznaczają poszczególne poziomy. --log-prefix (prefix dla logowania) po którym następuje ciąg do 29 znaków, który dodawany jest do logowanej informacji by umożliwić jej jednoznaczną identyfikację. Moduł ten używany jest najczęściej z testem limit, dzięki czemu nie zaśmiecasz sobie logów. REJECT (ODRZUĆ) Moduł ten ma takie samo działanie jak 'DROP', poza tym że to nadawcy pakietu odsyłany jest pakiet ICMP 'port unreachable'. Weź jednak pod uwagę fakt, że błąd ICMP nie zostanie odesłany jeśli (sprawdź RFC 1122): Pakiet którego dotyczy ta reguła jest wiadomością ICMP o błędzie, lub nieznanym typem wiadomości ICMP Pakiet którego dotyczy ta reguła był drugim lub dalszym fragmentem Wysłaliśmy już ostatnio zbyt dużo wiadomości o błędach ICMP do tego nadawcy Do REJECT można również dodać opcjonalny argument '--reject-with' który pozwala na zadeklarowanie jaki dokładnie pakiet ICMP ma zostać odesłany zamiast domyślnego 'port unreachable'. Sprawdź stronę podręcznika. 54

2.3.3. Specjalne cele wbudowane Są dwa wbudowane specjalne cele: RETURN (POWRÓT) i QUEUE (KOLEJKA). RETURN ma dokładnie ten sam efekt jak zakończenie sprawdzania łańcucha: dla reguły w łańcuchu wbudowanym sprawdzana jest wtedy polityka. Dla reguły we zdefiniowanym przez użytkownika łańcuchu, oznacza to przejście do poprzedniego łańcucha, zaraz po regule która spowodowała skok do tego łańcucha. QUEUE to cel który kolejkuje pakiety dla przetwarzania w przestrzeni użytkownika. Żeby można było ten cel zastosować, potrzebne są jeszcze dwa składniki: program obsługujący kolejkę (handler), który zajmie się mechaniką przekazywania pakietów pomiędzy kernelem i przestrzenią użytkownika (userspace); oraz aplikacja działająca w przestrzeni użytkownika, która będzie potrafiła obsłużyć przyjęcie, prawdopodobnie manipulację, oraz wyda jakiś werdykt co do dalszego losu pakietu Standardowym programem obsługującym kolejki dla IPv4 jest w iptables moduł ip_queue, który dystrybuowany jest z kernelem i oznaczony jako eksperymentalny. Poniżej przedstawiono krótki przykład jak użyć iptables z kolejką pakietów do przetwarzania w przestrzeni użytkownika: # modprobe iptable_filter # modprobe ip_queue # iptables -A OUTPUT -p icmp -j QUEUE W powyższych regułach, pakiety ICMP generowane lokalnie (tak jak na przykład przy użyciu polecenia ping) przekazywane są do modułu ip_queue, który stara się dostarczyć pakiety do aplikacji działającej w przestrzeni użytkownika. Jeśli nie ma takiej aplikacji, pakiety są wyrzucane. By napisać taką aplikację, należy użyć API libipq. Dystrybuowana jest ona razem z iptables. Kod przykładowy znajduje się w narzędziach testsuite (np. redirect.c) z CVS. Status modułu ip_queue może być sprawdzony przez wywołanie: /proc/net/ip_queue Maksymalna długość kolejki (tzn. ilość pakietów dostarczonych do przestrzeni użytkownika bez odpowiedzi) może być kontrolowana przez: /proc/sys/net/ipv4/ip_queue_maxlen Domyślną wartością jest 1024. Kiedy zostaje osiągnięty limit, nowe pakiety będą wyrzucane dopóki długość kolejki nie spadnie poniżej wartości maksymalnej. Dobre protokoły takie jak TCP interpretują wyrzucane pakiety jako tłok i prawdopodobnie dadzą sobie spokój gdy kolejka się wypełni. Można oczywiście trochę poeksperymentować by wyznaczyć idealną maksymalną długość kolejki dla określonej sytuacji, jeśli domyślna wartość jest zbyt mała. 2.4. Operacje na całym łańcuchu Bardzo przydatną opcją w iptables jest możliwość grupowania reguł w łańcuchy. Możesz je nazwać jak chcesz, ale zalecam raczej używanie małych liter by nie pomylić ich z wbudowanymi łańcuchami i celami. Nazwy ograniczone są do 31 liter. 2.4.1. Tworzenie nowego łańcucha Stwórzmy nowy łańcuch. Ponieważ jestem kolesiem z wyobraźnią, nazwijmy go 'test'. Możemy użyć albo '-N' albo '--new-chain': # iptables -N test # Proste. Możesz teraz dodać do niego swoje reguły tak jak to już opisano. 55

2.4.2. Kasowanie łańcucha Kasowanie łańcucha również jest proste, używając opcji '-X' lub '--delete-chain'. A dlaczego '-X'? Cóż, wszystkie dobre literki były już zajęte. # iptables -X test # Jest jednak parę ograniczeń dotyczących kasowania łańcuchów: muszą być puste (patrz punkt 2.4.3.) i nie mogą być wskazywane jako cel w innej regule. Nie możesz również skasować żadnego z trzech wbudowanych łańcuchów. Jeśli nie podasz nazwy łańcucha, skasowane zostaną w miarę możliwości wszystkie łańcuchy zdefiniowane przez użytkownika. 2.4.3. Opróżnianie łańcucha Istnieje oczywiście również sposób by wykasować wszystkie reguły z łańcucha. Używa się do tego opcji '-F' (lub '--flush'). # iptables -F FORWARD # Jeśli nie wskażesz konkretnego łańcucha, opróżnione zostaną wszystkie. 2.4.4. Listowanie zawartości łańcucha Możesz wylistować reguły w łańcuchu, używając opcji '-L' (lub '--list'). Pozycja 'refcnt' przy każdym łańcuchu zdefiniowanym przez użytkownika podaje numer reguł które odwołują się do tego łańcucha. Wartość ta musi być równa zero (a łańcuch musi być pusty), by taki łańcuch można było skasować. Jeśli pominięto nazwę łańcucha, wylistowane zostaną wszystkie łańcuchy, nawet te puste. Istnieją trzy opcje które mogą towarzyszyć opcji '-L'. Opcja '-n' (numerycznie) jest o tyle przydatna, że zapobiega sprawdzaniu nazw odpowiadającym adresom IP przez iptables, co może spowodować duże zwłoki jeśli twój DNS (a zakładamy że używasz DNS jak większość ludzi) nie jest prawidłowo skonfigurowany, lub odfiltrowałeś zapytania DNS. Powoduje ona również podanie portów TCP i UDP numerycznie zamiast nazw. Opcja '-v' pokazuje wszystkie detale reguł, takie jak liczniki pakietów i bajtów, porównania TOS (Type of Service, czyli Typu Usługi) i interfejsy. Bez tej opcji wszystkie te informacje zostaną pominięte. Zwróć uwagę że liczniki pakietów i bajtów drukowane są przy użyciu suffiksów 'K', 'M' lub 'G', dla odpowiednio 1000, 1,000,000 i 1,000,000,000. Poprzez użycie opcji '-x' (rozwiń liczby) można uzyskać pełne liczby, bez względu na to jak są duże. 2.4.5. Resetowanie (zerowanie) liczników Czasami przydatne jest móc wyzerować liczniki. Wykonuje się to przy użycie opcji '-Z' (lub '--zero'). Rozważ poniższe: # iptables -L FORWARD # iptables -Z FORWARD # W powyższym przykładzie pewna liczba pakietów mogłaby przejść pomiędzy wydaniem polecenia z opcją '-L' a '-Z'. W związku z tym, możesz tych opcji używać razem, by wyzerować liczniki dokładnie w momencie ich wyświetlenia. 56

2.4.6. Określanie polityki (policy) Wspomnieliśmy już co dzieje się gdy pakiet dociera do końca wbudowanego łańcucha, kiedy rozmawialiśmy o tym jak pakiet podróżuje przez łańcuchy. W tym przypadku o losie pakietu decyduje polityka dla łańcucha. Tylko wbudowane łańcuchy (INPUT, OUTPUT i FORWARD) mają przypisaną politykę, ponieważ jeśli pakiet dociera do końca łańcucha zdefiniowanego przez użytkownika, sprawdzanie wraca do poprzedniego łańcucha. Polityka może być ACCEPT (AKCEPTOWAĆ) lub DROP (WYRZUCIĆ), na przykład: # iptables -P FORWARD DROP # 3. Porady w projektowaniu filtra pakietów Na arenie bezpieczeństwa komputerowego zwykle za powszechną mądrość uważa się blokowanie wszystkiego a dopiero potem otwieraniu odpowiednich portów w miarę jak stają się potrzebne. Mówi się o tym zwykle 'to co nie jest wyraźnie dozwolone, jest zabronione'. Zalecam to podejście, jeśli bezpieczeństwo jest twoim największym priorytetem. Nie uruchamiaj żadnych usług których nie musisz mieć, nawet jeśli wydaje ci się że zablokowałeś do nich dostęp. Jeśli budujesz dedykowaną ścianę ogniową, rozpocznij od zera z blokowaniem wszystkich pakietów, potem dodawaj usługi i reguły które pozwolą im działać. Zalecam również bezpieczeństwo 'w głąb': połącz tcp-wrappers (dla połączeń do filtra pakietów), proxy (dla połączeń przechodzących przez filtr pakietów), weryfikację drogi (route verification) i filtrowanie pakietów. Weryfikacja drogi ma miejsce wtedy, gdy pakiet dociera z niewłaściwego interfejsu i jest odrzucany: na przykład, twoja sieć wewnętrzna ma adresy 10.1.1.0/24, a pakiet z takim adresem dociera do filtra pakietów przez interfejs zewnętrzny - powinien zostać odrzucony. Może to zostać włączone dla jednego interfejsu (ppp0) tak jak niżej: # echo 1 > /proc/sys/net/ipv4/conf/ppp0/rp_filter # Lub dla wszystkich istniejących i przyszłych interfejsów tak jak niżej: # for f in /proc/sys/net/ipv4/conf/*/rp_filter; do # echo 1 > $f # done # Debian robi to domyślnie jeśli jest to możliwe. Jeśli masz routing asymetryczny (tzn. spodziewasz się pakietów nadchodzących z dziwnych kierunków), będziesz prawdopodobnie musiał wyłączyć takie filtrowanie na tych interfejsach. Logowanie jest użyteczne w trakcie konfigurowania ściany ogniowej, gdy coś nie działa, ale na działającej ścianie ogniowej zawsze połącz logowanie z opcją 'limit', by zapobiec zalaniu twoich logów. Zalecam również z całego serca śledzenie połączeń dla systemów w których bezpieczeństwo jest sprawą priorytetową: wprowadza pewne opóźnienia, ponieważ śledzone są wszystkie połączenia, ale jest to bardzo przydatne w kontrolowaniu dostępu do twoich sieci. Być może będziesz musiał załadować moduł 'ip_conntrack.o' jeśli twój kernel nie ładuje modułów automatycznie albo jeśli nie jest on już wbudowany w kernel. Jeśli chcesz śledzić dokładnie skomplikowane protokoły, musisz załadować odpowiedni moduł wspomagający (np. 'ip_conntrack_ftp.o'). 57

# iptables -N no-conns-from-ppp0 # iptables -A no-conns-from-ppp0 -m state --state ESTABLISHED,RELATED -j ACCEPT # iptables -A no-conns-from-ppp0 -m state --state NEW -i! ppp0 -j ACCEPT # iptables -A no-conns-from-ppp0 -i ppp0 -m limit -j LOG --log-prefix 'Bad packet from ppp0:' # iptables -A no-conns-from-ppp0 -i! ppp0 -m limit -j LOG --log-prefix 'Bad packet not from ppp0:' # iptables -A no-conns-from-ppp0 -j DROP # iptables -A INPUT -j no-conns-from-ppp0 # iptables -A FORWARD -j no-conns-from-ppp0 Budowanie dobrej ściany ogniowej jest poza tematem tego HOWTO, ale moją radą jest 'bądź minimalistą'. Zajrzyj do Security HOWTO po więcej informacji o testowaniu i sprawdzaniu twojej maszyny. 58

Dodatek C Błędy Błąd montowania Objawy: Montowanie klucza USB nie powiodło się. Możliwe przyczyny i rozwiązania: Klucz USB nie jest prawidłowo podpięty aby upewnić się, że został podłączony prawidłowo, należy sprawdzić zachowanie się diody na obudowie klucza (podczas podłączania klucza do portu USB dioda ta powinna się zapalić). Klucz USB zawiera nieprawidłowy system plików klucz należy sformatować posługując się funkcją Formatowanie klucza W biosie komputera została wyłączona obsługa magistrali USB kierując się instrukcją załączoną przez producenta sprzętu, należy włączyć magistralę USB. Błąd partycjonowania podczas wykonywania funkcji Formatowanie klucza Objawy: Partycjonowanie nie powiodło się Możliwe przyczyny i rozwiązania: Klucz USB nie jest prawidłowo podpięty aby upewnić się, że został podłączony prawidłowo, należy sprawdzić zachowanie się diody na obudowie klucza (podczas podłączania klucza do portu USB dioda ta powinna się zapalić). W biosie komputera została wyłączona obsługa magistrali USB kierując się instrukcją załączoną przez producenta sprzętu, należy włączyć magistralę USB. Error no value given for parametr in to crypt Błąd spowodowany nieprawidłowym użyciem funkcji crypt należy zaktualizować oprogramowanie. Inne błędy: Error: mout: wrong fs type, bad option, bad superblock, on /dev/sda1, or too many mounted file systems. Błąd spowodowany próbą podmontowania klucza USB z nieprawidłowym systemem plików należy sformatować klucz posługując się funkcją Formatowanie klucza Error bad listbox index : must be active, anchor, end, @x, y or a number. Błąd spowodowany nie wybraniem żadnej pozycji z listy należy wybrać z listy wyboru element. Error: mount: Brak medium Błąd wynika z nieprawidłowego załadowania sterownika urządzenia USB, należy ponowić próbę, jeżeli błąd nadal występuje należy sprawdzić czy magistrala USB jest włączona w biosie komputera. 59

Error: mount: /dev/sda1 is not a valid block device Błąd wynika ze źle podłączonego klucza USB aby upewnić się, że został podłączony prawidłowo, należy sprawdzić zachowanie się diody na obudowie klucza (podczas podłączania klucza do portu USB dioda ta powinna się zapalić). 60

Dodatek D Procedura nagrywania pliku aktualizacji na klucz USB UWAGA: Plik na kluczu USB musi mieć zawsze nazwę upgrade.gz MS Windows UWAGA: W przypadku Windows 98 SE najpierw należy zainstalować sterowniki, w przypadku wyższych wersji nie jest to konieczne. Wersje Windows 95 nie posiadają obsługi urządzeń USB, podobnie wczesne wersje Windows 98. Wkładamy klucz do dowolnego portu USB, system windows sam rozpozna urządzenie i odpowiednio je zainstaluje. System doda dodatkowy napęd, oznaczony jako wyjmowalny. Formatujemy dodany napęd wybierając (jesli to możliwe) system plików FAT. Kopiujemy plik upgrade.gz na uprzednio sformatowany napęd. Proces jest zakończony i możemy wyjąć klucz USB i przystąpić do aktualizacji oprogramowania. Linux Aby system poprawnie współpracował z kluczami USB, skonfigurowane jądro z serii 2.4.x. Wymagane moduły to: SCSI support SCSI disc support Support for USB UHCI USB Mass Storage support MINIX fs support mależy mieć odpowiednio Procedura przygotowania klucza: Wkładamy klucz do dowolnego portu USB Wydajemy polecenie modprobe usb-storage urządzenie zostanie zamontowane jako /dev/sda Tworzymy partycję linux-ową (kod 83)lub minix-ową (kod 81) np. urzywając polecenia fdisk /dev/sda Formatujemy dysk poleceniem mkfs.minix /dev/sda1 Montujemy uprzednio sformatowany dysk poleceniem mount -t minix /dev/sda1 /katalog_docelowy Kopiujemy plik upgrade.gz do katalogu w którym zamontowaliśmy dysk Odmontowyjemy dysk poleceniem umount /katalog_docelowy Proces jest zakończony i możemy wyjąć klucz USB i przystąpić do aktualizacji oprogramowania. 61

Dodatek E Przykładowa konfguracja Dodatek ten ma na celu pokazanie sposobów tworzenia przykładowych konfiguracji, zarówno przy użyciu konsoli szyfratora, jak i programatora kluczy USB. Każda z przykładowych konfiguracji jest tworzona od podstaw. Przykłady zostały tak dobrane, aby ukazać jak najwięcej możliwych kombinacji, przy użyciu maksymalnej liczby opcji. Przykład 1 Przykładowa konfiguracjia szyfratorów łączących dwie sieci, z użyciem serwerów Syslog i KRL. Jako metoda uwierzytelnienia została wybrana opcja hasła współdzielonego (shared secret). Konfiguracja przykładowej sieci przedstawia się następująco: 62

1. Szyfrator test1 1.1. Podstawowa konfiguracja Opis Komendy konsoli szyfratora Programator kluczy USB Podstawowe parametry - zakładka Ogólnie Nazwa szyfratora hostname test1 w okienko Nazwa hosta wpisujemy test1 Hasło konsoli password KSewR87a w okienko Hasło wpisujemy KSewR87a Parametry interfejsów sieciowych - zakładka Sieć Adres interfejsu Ethernet interface eth0 10.1.1.1/24 wybieramy interfejs eth0 i w okienku Adres wpisujemy: 10.1.1.1/24 dodajemy interfejs przyciskiem Adres interfejsu Ethernet interface eth1 192.168.1.1/24 wybieramy interfejs eth1 i w okienku Adres wpisujemy: 192.168.1.1/24 dodajemy interfejs przyciskiem Parametry tuneli - zakładka Tunele Adres IP końca tunelu peer test2 192.168.1.2 w okienko Identyfikator: wpisujemy test2 w okienko Adres: 192.168.1.2 dodajemy tunel przyciskiem Ustawienia parametrów tunelu Hasło współdzielone ISAKMP peer test2 secret hu3yohaima zaznaczamy opcje Hasło w okienko wpisujemy: hu3yohaima Wskazanie zdalnych sieci peer test2 route 10.2.2.0/24 zaznaczamy opcje route w okienko wpisujemy: 10.2.2.0/24 Wskazanie lokalnych sieci peer test2 lroute 10.1.1.0/24 zaznaczamy opcje lroute w okienko wpisujemy: 10.1.1.0/24 Uruchomienie tunelu peer test2 enable 63

1.2. Włączenie usługi Syslog Opis Komendy konsoli szyfratora Programator kluczy USB Podstawowe parametry - zakładka Ogólnie Włączenie usługi Syslog service syslog level normal zaznaczamy opcje Syslog Normalnie Podajemy adres serwera Syslog service syslog remote 10.1.1.111 wpisujemy w pole Adres serwera Syslog 10.1.1.111 Parametry tuneli - zakładka Tunele Adres IP końca tunelu peer syslog 192.168.1.2 w okienko Identyfikator: wpisujemy syslog w okienko Adres: 192.168.1.2 dodajemy tunel przyciskiem Ustawienia parametrów tunelu Hasło współdzielone peer syslog secret wjr2gted zaznaczamy opcje Hasło ISAKMP Wskazanie lokalnych sieci Uruchomienie tunelu peer syslog lroute 10.1.1.0/24 peer syslog enable w okienko wpisujemy: wjr2gted zaznaczamy opcje lroute w okienko wpisujemy: 10.1.1.0/24 64

1.3. Włączenie serwera KRL Opis Komendy konsoli szyfratora Programator kluczy USB Podstawowe parametry - zakładka Ogólnie Włączenie Serwera KRL service krl zaznaczamy opcje Serwer KRL emy klucze do listy kluczy anulowanych service krl edit przyciskamy przycisk Edytuj Ustawienie serwera KRL Ustawiamy czas odświeżania listy KRL Parametry IPSec - zakładka IPSec ipsec krl server adres 192.168.1.1 zaznaczamy opcje Adres serwera KRL w pole wpisujemy 192.168.1.1 ipsec krl frequency 3 w polu Czas wpisujemy 3 Parametry tuneli - zakładka Tunele Adres IP końca tunelu peer krl 192.168.1.2 w okienko Identyfikator: wpisujemy krl w okienko Adres: 192.168.1.2 dodajemy tunel przyciskiem Ustawienia parametrów tunelu Hasło współdzielone ISAKMP peer krl secret e3ffgted zaznaczamy opcje Hasło w okienko wpisujemy: e3ffgted Włączamy AH peer krl ah zaznaczamy opcje AH Wyłączamy ESP peer krl noesp odznaczamy opcje ESP Włączamy tryb peer krl transport wybieramy opcje Transportowy transportowy Uruchomienie tunelu peer krl enable Zapis konfiguracji Zapisujemy konfigurację na klucz USB Zapisujemy konfigurację lokalnie wybieramy opcje Zapisz na klucz wybieramy opcje Zapisz 65

2. Szyfrator test2 2.1. Podstawowa konfiguracja Opis Komendy konsoli szyfratora Programator kluczy USB Podstawowe parametry - zakładka Ogólnie Nazwa szyfratora hostname test2 w okienko Nazwa hosta wpisujemy test2 Hasło konsoli password H9TbN30n w okienko Hasło wpisujemy H9TbN30n Parametry interfejsów sieciowych - zakładka Sieć Adres interfejsu Ethernet interface eth0 10.2.2.2/24 wybieramy interfejs eth0 i w okienku Adres wpisujemy: 10.2.2.2/24 dodajemy interfejs przyciskiem Adres interfejsu Ethernet interface eth1 192.168.1.2/24 wybieramy interfejs eth0 i w okienku Adres wpisujemy: 192.168.1.2/24 dodajemy interfejs przyciskiem Parametry tuneli - zakładka Tunele Adres IP końca tunelu peer test1 192.168.1.1 w okienko Identyfikator: wpisujemy test1 w okienko Adres: 192.168.1.1 dodajemy tunel przyciskiem Ustawienia parametrów tunelu Hasło współdzielone ISAKMP peer test1 secret hu3yohaima Wskazanie zdalnych sieci peer test1 route 10.1.1.0/24 Wskazanie lokalnych sieci Uruchomienie tunelu peer test1 lroute 10.2.2.0/24 peer test1 enable zaznaczamy opcje Hasło w okienko wpisujemy: hu3yohaima zaznaczamy opcje route w okienko wpisujemy: 10.1.1.0/24 zaznaczamy opcje lroute w okienko wpisujemy: 10.2.2.0/24 66

2.2. Włączenie usługi Syslog Opis Komendy konsoli szyfratora Programator kluczy USB Podstawowe parametry - zakładka Ogólnie Włączenie usługi Syslog service syslog level normal zaznaczamy opcje Syslog Normalnie Podajemy adres serwera Syslog service syslog remote 10.1.1.111 wpisujemy w pole Adres serwera Syslog 10.1.1.111 Parametry interfejsów sieciowych - zakładka Sieć Dodanie routingu route 10.1.1.0/24 192.168.1.1 w pole Adres docelowy wpisujemy 10.1.1.0/24 w pole przez router wpisujemy 192.168.1.1 Parametry tuneli - zakładka Tunele Adres IP końca tunelu peer syslog 192.168.1.1 w okienko Identyfikator: wpisujemy syslog w okienko Adres: 192.168.1.1 dodajemy tunel przyciskiem Ustawienia parametrów tunelu Hasło współdzielone peer syslog secret wjr2gted zaznaczamy opcje Hasło ISAKMP Wskazanie zdalnych sieci Uruchomienie tunelu peer syslog route 10.1.1.0/24 peer syslog enable w okienko wpisujemy: wjr2gted zaznaczamy opcje route w okienko wpisujemy: 10.1.1.0/24 67

2.3. Włączenie serwera KRL Opis Komendy konsoli szyfratora Programator kluczy USB Parametry IPSec - zakładka IPSec Ustawienie serwera KRL ipsec krl server adres 192.168.1.1 zaznaczamy opcje Adres serwera KRL Ustawiamy czas odświeżania listy KRL w pole wpisujemy 192.168.1.1 ipsec krl frequency 3 w polu Czas wpisujemy 3 Parametry tuneli - zakładka Tunele Adres IP końca tunelu peer krl 192.168.1.1 w okienko Identyfikator: wpisujemy krl w okienko Adres: 192.168.1.1 dodajemy tunel przyciskiem Ustawienia parametrów tunelu Hasło współdzielone ISAKMP peer krl secret e3ffgted zaznaczamy opcje Hasło w okienko wpisujemy: e3ffgted Włączamy AH peer krl ah zaznaczamy opcje AH Wyłączamy ESP peer krl noesp odznaczamy opcje ESP Włączamy tryb peer krl transport wybieramy opcje Transportowy transportowy Uruchomienie tunelu peer krl enable Zapis konfiguracji Zapisujemy konfigurację na klucz USB Zapisujemy konfigurację lokalnie wybieramy opcje Zapisz na klucz wybieramy opcje Zapisz 68

Przykład 2 Przykładowa konfiguracjia szyfratorów łączących cztery sieci, z użyciem serwerów Syslog i KRL. Jako metoda uwierzytelnienia została wybrana opcja kluczy RSA. Szyfratory pracują w topologii każdy z każdym. Połączone są do sieci globalnej (internet) poprzez routery dostępowe, za wyjątkiem szyfratora Test3, który do internetu podłączony jest poprzez modem. Konfiguracja przykładowej sieci przedstawia się następująco: 69