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

Podobne dokumenty
Router programowy z firewallem oparty o iptables

Sieci komputerowe. Tadeusz Kobus, Maciej Kokociński Instytut Informatyki, Politechnika Poznańska

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

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

Sieci komputerowe. Tadeusz Kobus, Maciej Kokociński Instytut Informatyki, Politechnika Poznańska

Zarządzanie bezpieczeństwem w sieciach

iptables -F -t nat iptables -X -t nat iptables -F -t filter iptables -X -t filter echo "1" > /proc/sys/net/ipv4/ip_forward

Co to jest iptables?

Instalacja i konfiguracja pakietu iptables

Tomasz Greszata - Koszalin

Konfiguracja zapory Firewall w systemie Debian.

Bezpieczeństwo w M875

Pakiet Iptables. Filtrowanie pakietów i filtrowanie stanowe

Warsztaty z Sieci komputerowych Lista 9

Zadanie1: Odszukaj w serwisie internetowym Wikipedii informacje na temat zapory sieciowej.

Iptables informacje ogólne

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

Sieci komputerowe. Tadeusz Kobus, Maciej Kokociński Instytut Informatyki, Politechnika Poznańska

iptables/netfilter co to takiego?

Pakiet Iptables. Filtrowanie pakietów i filtrowanie stanowe

Wdrażanie i zarządzanie serwerami zabezpieczającymi Koncepcja ochrony sieci komputerowej

Sieci komputerowe. Zajęcia 4 Bezpieczeństwo w sieciach komputerowych

Problemy techniczne SQL Server

Zadania do wykonania Firewall skrypt iptables

Warsztaty z Sieci komputerowych Lista 8

Bezpieczeństwo Systemów Telekomunikacyjnych 2014 / 2015 Bezpieczeństwo aplikacji sieciowych, Ataki (D)DoS Prowadzący: Jarosław Białas

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE. Opracowany na podstawie

Hosting WWW Bezpieczeństwo hostingu WWW. Dr Michał Tanaś (

Problemy techniczne SQL Server. Jak odblokować porty na komputerze-serwerze, aby umożliwić pracę w sieci?

Instrukcja instalacji Control Expert 3.0

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

Zapora systemu Windows Vista

Zapory sieciowe i techniki filtrowania danych

Iptables. Krzysztof Rykaczewski. 15/11/06 1

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

Instrukcja do programu Roger Licensing Server v1.0.0 Rev. A

Puk, puk! Kto tam? Eeeee... Spadaj!

R o g e r A c c e s s C o n t r o l S y s t e m 5

Instrukcja do programu Roger Licensing Server v1.0.0 Rev. A

Tomasz Greszata - Koszalin

Projektowanie bezpieczeństwa sieci i serwerów

Linux. iptables, nmap, DMZ

Sieci Komputerowe Translacja adresów sieciowych

MONITOROWANIE WINDOWS Z NETCRUNCHEM 7 P A G E 1

Najczęściej występujące problemy z instalacją i konfiguracją i ich rozwiązania.

Ćwiczenie Konfiguracja statycznych oraz domyślnych tras routingu IPv4

Zadanie z lokalnych sieci komputerowych. 1. Cel zajęć

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

ZABEZPIECZENIE PRZED ZMIANĄ ADRESU IP PRZEZ UŻYTKOWNIKA Andrzej Angowski UCI, UMK Toruń

KONFIGURACJA USŁUGI ZSIMED NA SERWERZE ZDALNYM

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

Instrukcja dla instalatora systemu SMDP Enterprise/Professional

Internetowy serwis Era mail Aplikacja sieci Web

Linux Elementy instalacji. 1 Podział dysku na partycje. 2 Konfiguracja sprzętu (automatycznie) 3 Założenie użytkowników

11. Autoryzacja użytkowników

Instalacja Linuksa i podstawowa konfiguracja. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Usługi sieciowe systemu Linux

Ko n f i gura cja p ra cy V ISO z bazą SQL S e rve r

Tworzenie maszyny wirtualnej

Systemy programowych zapór sieciowych (iptables)

Firewalle, maskarady, proxy

CONFidence 13/05/2006. Jarosław Sajko, PCSS

Kancelaria instalacja sieciowa

Przykłady wykorzystania polecenia netsh

Zabezpieczenia w systemach Linux. Autorzy: Krzysztof Majka, Mirosław Mika IVFDS

Poziomy wymagań Konieczny K Podstawowy- P Rozszerzający- R Dopełniający- D Uczeń: - zna rodzaje sieci - zna topologie sieciowe sieci

Instrukcja korzystania z systemu IPbaza. oraz konfiguracji urządzeń

Joomla! Instalacja. Pobierz pakiet instalacyjny. instalacji XAMPP

Instrukcja instalacji programu SYSTEmSM

Laboratorium - Konfigurowanie zapory sieciowej systemu Windows 7

Instrukcja instalacji aplikacji i konfiguracji wersji sieciowej. KomKOD

Klient poczty elektronicznej - Thunderbird

Instalacja NOD32 Remote Administrator

Aneks do instrukcji obsługi routera Asmax Br-804v II

System kontroli dostępu ACCO NET Instrukcja instalacji

Przypisywanie adresów IP do MAC-adresów

WINDOWS Instalacja serwera WWW na systemie Windows XP, 7, 8.

SERWER AKTUALIZACJI UpServ

LeftHand Sp. z o. o.

Wireshark analizator ruchu sieciowego

Firewall bez adresu IP

Systemy operacyjne. Zasady lokalne i konfiguracja środowiska Windows 2000

Sieci komputerowe laboratorium

Routing - wstęp... 2 Routing statyczny... 3 Konfiguracja routingu statycznego IPv Konfiguracja routingu statycznego IPv6...

Program dla praktyki lekarskiej

Laboratorium - Przeglądanie tablic routingu hosta

Dokonaj instalacji IIS opublikuj stronę internetową z pierwszych zajęć. Ukaże się kreator konfigurowania serwera i klikamy przycisk Dalej-->.

Kalipso wywiady środowiskowe

Jak stworzyć stronę WWW drużyny harcerskiej. dh Paweł Wnuk

PLAN KONSPEKT. do przeprowadzenia zajęć z przedmiotu. Konfigurowanie systemu Linux do pracy w sieci IP

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

Firewalle, maskarady, proxy

T: Zabezpieczenie dostępu do komputera.

- udostępnić anonimowym użytkownikowi Internetu pliki przez serwer FTP,

Firewall'e. Cele firewalli

Ściana ogniowa w systemie operacyjnym LINUX. Autor: Gładysz Krystian IVFDS

Korzystanie z edytora zasad grupy do zarządzania zasadami komputera lokalnego w systemie Windows XP

Instrukcja obsługi programu Monitor Wydruków

SERWER AKTUALIZACJI UpServ

Transkrypt:

Ten artykuł, ma pomóc w zrozumieniu podstaw działania filtra pakietów iptables. Podstawowa konfiguracja firewalla, na przykładzie iptables w systemie Linux. Ludzie często sądzą, że firewall zapewnia pełną ochronę. Są w błędzie. W większości przypadków źle skonfigurowany firewall zapewnia mniej ochrony niż nie posiadanie firewalla w ogóle. Ponadto każdy firewall należy traktować jak zwykły, podatny na błędy program. Należy zatem poważnie przemyśleć jego używanie i dokładnie sprawdzić czy jest nam potrzebny. Należy również spisać dokładnie jakiego typu ma to być firewall, określić reguły jego działania oraz użytkowników jacy będą z niego korzystać. Autor tego artykułu, nie bierze odpowiedzialności, za skorzystanie z poniżej zaprezentowanego skryptu. Pamiętaj że robisz to na własną odpowiedzialność. Iptables jest filtrem pakietów (głównie używanym jako firewall bądź router) dla systemu operacyjnego GNU/Linux. Co to jest filtr pakietów? Filtr pakietów, to oprogramowanie, które sprawdza nagłówki pakietów w trakcie przechodzenia przez maszynę i decyduje o tym czy pakiet zostanie upuszczony na podłogę (ang. DROP), zaakceptowany (ang, ACCEPT), czy też odrzucony (REJECT). Gdy pakiet zostaje odrzucony, zostaje on odesłany z powrotem do źródła, powiadamiając o tym nadawcę. Dlaczego warto filtrować pakiety? Najprostsza odpowiedź, jaka przychodzi mi do głowy to, z powodu bezpieczeństwa. Jak to działa? Kernel rozpoczyna pracę z trzema listami reguł w tabeli filtrującej. INPUT opisuje działania dla pakietów przychodzących, OUTPUT dla wychodzących i FORWARD (ang. przekazywanie) dla pakietów przechodzących pomiędzy kilkoma interfejsami. Każda reguła mówi, jeśli nagłówek pakietu wygląda tak, to zrobimy z tym pakietem następującą rzecz. Jeśli reguła nie pasuje do pakietu, sprawdzana jest następna. Na koniec, jeśli nie ma więcej reguł, kernel sprawdza politykę (ang. policy) danego łańcucha (listy reguł). W systemie w którym dba się o bezpieczeństwo, polityka mówi zwykle kernelowi by odrzucał (DROP ) pakiet. Gdy pakiet dociera do maszyny (np. przez kartę Ethernetową), kernel sprawdza najpierw adres przeznaczenia pakietu (operację tą nazywamy routingiem.) 1. Jeśli pakiet przeznaczony jest do tego komputera, zostaje przepuszczony do łańcucha 1 / 6

INPUT. Jeżeli zostanie zaakceptowany, otrzyma go proces do którego był adresowany. 2. W innym przypadku, jeśli kernel nie ma włączonego przekazywania, lub nie wie jak przekazać pakiet, jest on odrzucany. Natomiast jeśli przekazywanie jest włączone i pakiet jest przeznaczony do innego interfejsu sieciowego (jeśli w ogóle masz jeszcze jeden), pakiet przechodzi do łańcucha FORWARD. Jeśli zostaje zaakceptowany, zostanie wysłany dalej. 3. Na koniec, program pracujący na tym komputerze może również wysyłać własne pakiety. Przejdą one od razu do łańcucha OUTPUT, jeśli stwierdzi on że zaakceptuje pakiet, przechodzi on do właściwego interfejsu sieciowego. 4. Tworzymy podstawowy skrypt firewalla. Uruchamiamy terminal. Sprawdzamy czy mamy ip tables zainstalowane w systemie, wpisując polecenie: dpkg -l iptables Jeśli w naszym systemie brakuje iptables, przechodzimy na konto administratora (root) Kod: su Następnie instalujemy, iptables wpisując poniższe polecenie: aptitude update && aptitude install iptables Wszystkie poniższe polecenia, należy wykonywać jako root. Aby sprawdzić, jakie są ustawione domyślne reguły w systemie, wpisujemy: iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination Jak widzimy powyżej, domyślnym ustawieniem firewalla w Debianie Etch jest polityka akceptowania wszystkich pakietów przychodzących, forwardowanych (routowanych) oraz wychodzących. Aby zmienić ten stan rzeczy, stwórzmy teraz, podstawowy skrypt: touch /etc/init.d/firewall && chmod +x /etc/init.d/firewall && pico /etc/init.d/firewall 2 / 6

Powyższe polecenie tworzy w podanej ścieżce plik firewall, nadaje mu prawo do wykonywania, oraz zostaje on otworzony w prostym edytorze pico. Teraz przepiszmy poniższy kod: iptables -F iptables -X iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -i lo -j ACCEPT Zapiszmy zmiany, oraz sprawmy aby nasz firewall uruchamiał się od razu po inicjalizacji kernela. update-rc.d firewall defaults 90 Teraz omówimy sobie powyższy skrypt. Poniższe polecenia oczyszczają tablicę, z poprzednio wpisanych reguł. Opcja (-F) usuwa wszystkie reguły z łańcucha, natomiast (-X) usuwa wszystkie dowiązania do innych tablic, utworzone przez użytkownika. iptables -F iptables -X Poniższe komendy, domyślnie blokują wszystkie przychodzące, przechodzące pakiety które nie zaznaczymy jako pożądane, oraz akceptują wychodzące pakiety. Komenda -P [łańcuch] [polityka] ustawia domyślną politykę w danym łańcuchu. iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT 3 / 6

Podstawowe wyjątki w łańcuchu INPUT. IP tables pozwala nam na sprawdzenie stanów połączeń, np. czy jest to nowepołączenie, istniejące czy może połączenie powiązane z już istniejącym? Poprzez poniższe polecenie, pozwalamy na wszystkie istniejące już połączenia, oraz połączenia które są powiązane z istniejącymi już połączeniami. iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT Następna reguła, dopuszcza przychodzące lokalne pakiety. W poniższym poleceniu widzimy lo. Lo to skrót który w Linuksie oraz Uniksach, przypisywany jest do narzędzia która nazywa się pętla zwrotna (ang. loopback) jej adres to 127.0.0.1, posiadasz go nawet wtedy gdy nie masz żadnego połączenia sieciowego. Kiedy korzystamy z loopback? Gdy uzyskujemy dostęp do lokalnych serwisów, jak np. przeglądanie swojego własnego serwera. Czyli jeśli chcemy mieć dostęp do swoich własnych usług, (do których zazwyczaj chcemy mieć dostęp) musimy dodać regułę trusts do urządzenia loopback. -A [łańcuch] [reguła] dodaje nową regułę do łańcucha. W naszym przypadku dodajemy nową regułę do łańcucha INPUT. -i [interfejs] sprawia że, dana reguła dotyczy tylko pakietów przychodzących z danego interfejsu. Interfejs to fizyczne urządzenie do którego pakiety przychodzą (-i) i z którego wychodzą (-o). Należy zwrócić uwagę że, pakiety które podróżują w łańcuchu INPUT, nie mają interfejsu wyjściowego, tylko wejściowy. iptables -A INPUT -i lo -j ACCEPT Powyższy kod, służy do ustawienia dość mocnej zapory, która pewnie niektórym użytkownikom będzie odpowiadać. Jednakże, zapewne wielu z was, korzysta z dodatkowych usług, takich jak sieci p2p, czy też np. mysql. Aby móc nadal wykorzystywać te i inne usługi, musimy rozbudować ten skrypt. Zezwalamy na dostęp. Najbardziej użyteczne według mnie są dwa sposoby: 1. Podanie adresu IP ( "-s" opcje) 2. Podanie portu ("--dport" opcje) Gdy chcę, aby wszyscy użytkownicy sieci, mieli dostęp do mojego serwera (port 80, TCP) piszę 4 / 6

następującą regułkę: iptables -A INPUT -p tcp --dport 80 -j ACCEPT Jeśli chcę otworzyć port 22 (obsługa zdalnych bezpiecznych połączeń ssh) piszę: iptables -A INPUT -p tcp --dport 22 -j ACCEPT Natomiast jeśli chcę, żeby port 22, był otwarty tylko dla wybranego numeru IP piszę: iptables -A INPUT -p tcp -s (adres_ip) -j ACCEPT Natomiast Bittorent, wykorzystuje zarówno tcp jak i udp. Zatem nasze regułka będzie wyglądała następująco: (stosuje założenie, że potrzebne porty które powinny być otwarte będą z przedziału 10000 10020) iptables -A INPUT -p tcp --dport 10000:10020 -j ACCEPT iptables -A INPUT -p udp --dport 10000:10020 -j ACCEPT Uruchamianie zapory siecowej. /etc/init.d/firewall Po wykonaniu powyższego polecenia, zapora będzie aktywna. Natomiast wyniki naszej pracy możemy obejrzeć, korzystając z polecenia: iptables -L -n --line-numbers Chain INPUT (policy DROP) num target prot opt source destination 1 ACCEPT 0 0.0.0.0/0 0.0.0.0/0 2 ACCEPT 0 0.0.0.0/0 0.0.0.0/0 state RELATED, ESTABLISHED 3 ACCEPT tcp 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 5 / 6

4 ACCEPT tcp 0.0.0.0/0 0.0.0.0/0 tcp dpt:22 5 ACCEPT tcp 0.0.0.0/0 0.0.0.0/0 tcp dpts:10000 :10020 6 ACCEPT udp 0.0.0.0/0 0.0.0.0/0 udp dpts:10000 :10020 Chain FORWARD (policy DROP) num target prot opt source destination Chain OUTPUT (policy ACCEPT) num target prot opt source destination Dobrym rozwiązaniem dla podwyższenia bezpieczeństwa jest stosowanie programu fail2ban.je go działanie to ciągła analiza logów i dopisywanie regół do IPTABLES oraz hosts.deny. 6 / 6