You are on page 1of 33

IDZ DO

PRZYKADOWY ROZDZIA
SPIS TRECI

KATALOG KSIEK
KATALOG ONLINE
ZAMW DRUKOWANY KATALOG

TWJ KOSZYK
DODAJ DO KOSZYKA

CENNIK I INFORMACJE
ZAMW INFORMACJE
O NOWOCIACH
ZAMW CENNIK

CZYTELNIA
FRAGMENTY KSIEK ONLINE

Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl

Sieci komputerowe.
Kompendium
Autor: Karol Krysiak
ISBN: 83-7197-942-8
Format: B5, stron: okoo 448

Omwienie teoretycznych podstaw sieci komputerowych


Szczegowy opis dziaania sieci opartych na TCP/IP i innych protokoach
Najnowsze technologie: sieci bezprzewodowe, protok IPv6
Praktyczne wskazwki dotyczce zabezpieczania sieci
Omwienie wszystkich popularnych usug sieciowych: od HTTP do SNMP
Czsto zdarza si, e administrator sieci rozpoczynajc swoj pierwsz prac nie jest do
niej przygotowany. Jego wiedza jest fragmentaryczna i bardzo teoretyczna, a zetknicie
z rzeczywistymi potrzebami okazuje si duym zaskoczeniem. Musi szybko uzupeni
braki w swoich wiadomociach, uporzdkowa je i zdoby narzdzia do rozwizywania
napotkanych problemw.
Ksika, ktr trzymasz w rku, zawiera informacje, ktre umoliwi Ci szybkie
przygotowanie si do penienia obowizkw administratora sieci. To rdo informacji,
do ktrego zawsze bdziesz mg wrci, aby przypomnie sobie zasad dziaania
i waciwoci charakterystyczne dla wprowadzanej w twojej sieci technologii. Nie jest
bowiem prawd, e administrator sieci musi zna na pami cae tomy parametrw
sieciowych, moliwe sposoby konfiguracji. Musi mie rdo, w ktrym znajdzie
potrzebne informacje. Takim rdem stanie si dla Ciebie ta ksika, opisujca m.in.:
Podstawowe narzdzia administratora sieci
Topologie i modele budowy sieci
Najwaniejsze technologie stosowane przy budowie sieci
Sieci wiatowodowe i bezprzewodowe
Standard Ethernet
Protokoy warstwy internetowej, adresowanie i routing, IPv6
Usugi warstwy aplikacji: DNS, SMTP, POP, IMAP, FTP, HTTP, SSL, Telnet, SSH
i inne
Protokoy Token Ring, FDDI, IPX, ISDN, PPP, xDSL, Frame Relay, ATM, sieci oparte
na telewizji kablowej
Zagadnienia zwizane z administracj sieciami LAN
Sposoby zabezpieczania sieci komputerowych, konfiguracj zapr sieciowych
i postpowanie w razie wykrycia wamania

Spis treci
Wstp ............................................................................................. 11
Rozdzia 1. Sieci komputerowe .......................................................................... 23
1.1. Podzia sieci komputerowych w zalenoci od rozmiaru.......................................23
1.2. Topologie sieci komputerowych ........................................................................24
Topologia sieci.................................................................................................24
Topologia fizyczna ...........................................................................................24
Topologia logiczna ...........................................................................................25
1.3. Model ISO/OSI ................................................................................................26
1.4. Model protokou TCP/IP...................................................................................28

Rozdzia 2. Warstwa dostpu do sieci rodzaje nonikw................................. 33


2.1. Najwaniejsze technologie ................................................................................33
2.2. Przewd koncentryczny ....................................................................................35
Zastosowania sieci 10Base-2 .............................................................................38
2.3. Skrtka UTP ....................................................................................................39
Wymagania dla instalacji speniajcej zaoenia CAT-5...........................................44
2.4. wiatowd......................................................................................................45
Budowa wiatowodu........................................................................................45
Zasada dziaania wiatowodu ...........................................................................46
wiatowd wielomodowy ................................................................................46
wiatowd jednomodowy ................................................................................47
Zcza wiatowodowe......................................................................................47
Standardy transmisji wiatowodowych ..............................................................49
2.5. Sieci bezprzewodowe. Wireless LAN standard 802.11 ..........................................49

Rozdzia 3. Warstwa dostpu do sieci standard Ethernet................................ 59


3.1. Historia ...........................................................................................................59
3.2. Dziaanie protokou ..........................................................................................59
Metody transmisji.............................................................................................59
Norma IEEE 802.3...........................................................................................60
Wydajno sieci Ethernet 10 Mb/s .....................................................................63
3.3. Budowa ramki Ethernet ....................................................................................64
Protok LLC ..................................................................................................66
3.4. Zasady konstruowania sieci Ethernet ..................................................................68
Reguy dla Ethernetu (10 Mb/s).........................................................................68
Reguy dla Fast Ethernetu (100 Mb/s) ................................................................72
Reguy dla Gigabit Ethernetu (1 000 Mb/s) ........................................................73

Sieci komputerowe. Kompendium


3.5. Technologie .....................................................................................................73
Full-duplex ......................................................................................................73
MAC Control...................................................................................................74
Automatyczne negocjowanie parametrw cza...................................................75
1000Base-T.....................................................................................................76
VLAN.............................................................................................................76
Sygnay i kodowanie ........................................................................................80
3.6. Protok ARP protok okrelania adresw.....................................................82
Proxy-ARP......................................................................................................83
Reverse-ARP...................................................................................................83
Zapobieganie zdublowaniu adresw IP ..............................................................84
Pakiet protokou ARP.......................................................................................84
Polecenia do manipulacji tablic ARP................................................................86
3.7. Urzdzenia sieciowe dziaajce w warstwie dostpu do sieci ................................88
Karta sieciowa .................................................................................................88
Modem ...........................................................................................................89
Transceiver......................................................................................................89
Konwerter nonikw ........................................................................................90
Regenerator (repeater) ......................................................................................90
Koncentrator (hub)...........................................................................................90
Most (bridge)...................................................................................................94
Przecznik (switch) .........................................................................................95

Rozdzia 4. Warstwa Internetu........................................................................... 99


4.1. Protok IP ......................................................................................................99
Zadania speniane przez protok IP................................................................. 100
Cechy protokou IP ........................................................................................ 100
Budowa datagramu IP .................................................................................... 100
4.2. Adresowanie IP.............................................................................................. 103
Klasy adresw w TCP/IP ................................................................................ 107
Bezklasowe routowanie midzydomenowe (CIDR) ........................................... 107
Adresy specjalne i klasy nieroutowalne ............................................................ 112
Nadawanie adresw IP interfejsowi sieciowemu ............................................... 113
4.3. Routowanie datagramw IP............................................................................. 117
Tablica routingu ............................................................................................. 120
Polecenia suce do manipulacji tablic routingu ............................................. 122
Routing rdowy........................................................................................... 124
4.4. Protok ICMP............................................................................................... 126
Zadania protokou ICMP ................................................................................ 126
Format nagwka ICMP.................................................................................. 127
Pola Typ i Kod komunikatu ICMP .................................................................. 128
Polecenia wykorzystujce protok ICMP ........................................................ 131
4.5. IPv6 wersja szsta protokou IP .................................................................. 134
Nagwek IPv6 .............................................................................................. 135
Adres IPv6 .................................................................................................... 136
4.6. Urzdzenia pracujce w warstwie Internetu ...................................................... 137
Router........................................................................................................... 137

Rozdzia 5. Warstwa transportowa................................................................... 139


5.1. Port, gniazdo.................................................................................................. 139
5.2. Protok UDP ................................................................................................ 141
5.3. Protok TCP................................................................................................. 142
tcpdump ........................................................................................................ 145
netstat ........................................................................................................... 150

Spis treci

Rozdzia 6. Usugi warstwy aplikacji................................................................. 155


6.1. DNS.............................................................................................................. 155
Rejestrowanie wasnej domeny........................................................................ 158
Oglne informacje o serwerach DNS ............................................................... 159
Jak to w rzeczywistoci dziaa?........................................................................ 160
Konfiguracja hosta ......................................................................................... 162
Rekordy zasobw........................................................................................... 165
Serwery DNS ................................................................................................ 167
Konfiguracja serwera BIND............................................................................ 167
Sterowanie demonem named........................................................................... 175
Kwestie bezpieczestwa.................................................................................. 179
Format komunikatu DNS ................................................................................ 182
Programy uytkowe diagnostyka ................................................................. 184
6.2. SMTP ........................................................................................................... 192
Serwery SMTP .............................................................................................. 193
Sprawdzanie dziaania serwera ........................................................................ 195
Protok MIME ............................................................................................. 201
Bezpieczestwo ............................................................................................. 203
6.3. POP .............................................................................................................. 204
Sprawdzanie dziaania serwera ........................................................................ 205
Serwery POP ................................................................................................. 206
6.4. IMAP............................................................................................................ 207
Sprawdzanie dziaania serwera ........................................................................ 207
Serwery IMAP............................................................................................... 209
6.5. FTP .............................................................................................................. 210
Tryby pracy FTP............................................................................................ 210
Komunikacja z serwerem................................................................................ 212
Obsuga programu ftp ..................................................................................... 214
Serwery......................................................................................................... 215
Bezpieczestwo ............................................................................................. 216
6.6. HTTP............................................................................................................ 217
Protok HTTP .............................................................................................. 217
Sprawdzanie dziaania serwera HTTP .............................................................. 218
Serwery......................................................................................................... 219
Bezpieczestwo ............................................................................................. 221
6.7. SSL .............................................................................................................. 222
Certyfikaty .................................................................................................... 223
Uproszczona zasada dziaania SSL .................................................................. 223
Dugo klucza............................................................................................... 224
Wykorzystanie pakietu stunnel ........................................................................ 224
6.8. Telnet............................................................................................................ 225
6.9. SSH .............................................................................................................. 225
6.10. Finger.......................................................................................................... 227
6.11. Auth............................................................................................................ 227
6.12. NNTP ......................................................................................................... 228
6.13. SNMP ......................................................................................................... 228
Rnice pomidzy wersjami SNMP................................................................. 231
Bezpieczestwo ............................................................................................. 231
6.14. IRC ............................................................................................................. 232
6.15. Whois.......................................................................................................... 232
6.16. NTP ............................................................................................................ 235
6.17. Syslog ......................................................................................................... 237

Sieci komputerowe. Kompendium


6.18. Bootps, DHCP ............................................................................................. 238
Nagwek DHCP ........................................................................................... 239
Proces uzyskiwania konfiguracji...................................................................... 241
Konfiguracja klientw DHCP.......................................................................... 242
Serwery DHCP .............................................................................................. 244
6.19. NetBIOS...................................................................................................... 248
Wyszukiwanie nazw NetBIOS ........................................................................ 250
Optymalizacja................................................................................................ 251
Bezpieczestwo ............................................................................................. 252
6.20. Urzdzenia sieciowe pracujce w warstwie aplikacji ........................................ 252
Komputer ...................................................................................................... 252
Serwer .......................................................................................................... 253

Rozdzia 7. Inne protokoy ............................................................................... 255


7.1. Token Ring .................................................................................................... 255
7.2. FDDI ............................................................................................................ 256
7.3. IPX/SPX ....................................................................................................... 258
Budowa pakietu IPX ...................................................................................... 259
Adresy IPX ................................................................................................... 261
Protokoy uywane w IPX .............................................................................. 261
7.4. ISDN ............................................................................................................ 262
7.5. PPP............................................................................................................... 265
Ramka PPP ................................................................................................... 266
Dodatkowe moliwoci PPP ........................................................................... 267
Konfiguracja PPP w Linuksie .......................................................................... 267
7.6. xDSL ............................................................................................................ 273
ADSL ........................................................................................................... 274
RADSL ......................................................................................................... 275
SDSL............................................................................................................ 275
HDSL ........................................................................................................... 276
VDSL ........................................................................................................... 276
7.7. Frame Relay .................................................................................................. 276
Opis technologii Frame Relay.......................................................................... 276
Zasada dziaania FR ....................................................................................... 277
Format ramki Frame Relay.............................................................................. 279
Mechanizmy sieci FR ..................................................................................... 279
Parametry transmisji FR.................................................................................. 282
7.8. ATM............................................................................................................. 283
Waciwoci standardu ATM .......................................................................... 283
Interfejsy ATM.............................................................................................. 284
Rodzaje pocze w sieciach ATM .................................................................. 284
Komrka ATM .............................................................................................. 285
Usugi ATM .................................................................................................. 286
Model ATM .................................................................................................. 287
Klasy ruchu ................................................................................................... 288
Trasowanie ATM........................................................................................... 290
Dodatkowe moliwoci sieci ATM .................................................................. 290
7.9. Sieci w gniazdku zasilajcym PLC ................................................................. 291
Topologia sieci PLC....................................................................................... 291
Standardy PLC .............................................................................................. 292
Wady PLC .................................................................................................... 293
7.10. Sieci telewizji kablowych .............................................................................. 294
Standard MCSN/DOCSIS............................................................................... 294

Spis treci

Rozdzia 8. Administracja sieci LAN ............................................................... 297


8.1. Projektowanie sieci LAN................................................................................. 298
Struktura fizyczna sieci................................................................................... 298
Struktura logiczna sieci................................................................................... 301
8.2. Rozwizywanie problemw............................................................................. 303
Powana awaria ............................................................................................. 303
Uytkownik ................................................................................................... 304
Rady ............................................................................................................. 304
Problemy....................................................................................................... 306
8.3. Narzdzia administratora sieci ......................................................................... 308
Sniffery ......................................................................................................... 310
Analizatory sieci ............................................................................................ 315
SNMP........................................................................................................... 322
Inne .............................................................................................................. 322
Testowanie dostpnoci usug.......................................................................... 324
Skanery bezpieczestwa ................................................................................. 325
Inne narzdzia................................................................................................ 331
8.4. Wykorzystanie protokou SNMP ..................................................................... 331
Konfiguracja agenta snmpd ............................................................................. 332
Konfiguracja menedera MRTG...................................................................... 333
8.5. Zarzdzalne urzdzenia aktywne...................................................................... 336

Rozdzia 9. Bezpieczestwo............................................................................. 341


9.1. Polityka bezpieczestwa.................................................................................. 342
9.2. Najwaniejsze pojcia..................................................................................... 345
9.3. Konstrukcja sieci ............................................................................................ 357
9.4. Rozpoznanie terenu ........................................................................................ 363
Zbieranie danych............................................................................................ 363
Skanowanie ................................................................................................... 365
Metody ukrywania skanowania........................................................................ 369
Identyfikacja systemu operacyjnego................................................................. 372
9.5. Metody wama ............................................................................................. 377
Uzyskanie dostpu ......................................................................................... 378
Destabilizacja pracy ....................................................................................... 386
9.6. Zagroenia wewntrzne................................................................................... 390
Wykrywanie snifferw.................................................................................... 391
Sposoby omijania przecznikw ..................................................................... 392
Zasoby .......................................................................................................... 395
9.7. Podsumowanie............................................................................................... 396
Zachowanie podczas wamania........................................................................ 396

Rozdzia 10. Firewall ......................................................................................... 399


10.1. Rodzaje firewalli .......................................................................................... 399
Tradycyjne proxy (Traditional proxies) ............................................................ 399
Przezroczyste proxy (Transparent proxies)........................................................ 400
Tumaczenie adresw IP (NAT) ...................................................................... 400
Filtrowanie pakietw ...................................................................................... 400
10.2. Obsuga filtrowania pakietw w Linuksie........................................................ 401
Ipchains Linux 2.2 ..................................................................................... 402
Skadnia polecenia ipchains............................................................................. 403
Iptables Linux 2.4...................................................................................... 405
10.3. Tworzymy firewall ....................................................................................... 407
Podstawy ...................................................................................................... 408
Konfiguracja.................................................................................................. 409

10

Sieci komputerowe. Kompendium


Logi systemowe ............................................................................................. 416
Problemy z dziaaniem firewalla ...................................................................... 416
Wyczanie firewalla ...................................................................................... 416
10.4. Dodatkowe funkcje....................................................................................... 417
Ograniczenia na ICMP ................................................................................... 417
Jak przepuci now usug na przykadzie Direct Connect................................ 419
Ustawianie priorytetw pakietw..................................................................... 419
Wykrywanie skanowania za pomoc firewalla .................................................. 421
Wykrywanie NAT.......................................................................................... 422

Skorowidz...................................................................................... 425

Rozdzia 10.

Firewall
W tym rozdziale zajm si sposobami kompleksowego zabezpieczenia sieci komputerowej za pomoc techniki filtrowania datagramw (firewall) oraz tumaczenia adresw
sieciowych NAT (Network Address Translation). Nie przedstawi tutaj gotowego rozwizania, ale postaram si, aby zrozumia, w jaki sposb moesz stworzy co takiego dla
swojej sieci. Uwaam, e absurdem jest cignicie z sieci gotowego skryptu i uruchomienie go. Musisz rozumie, co robi twj firewall i jak dziaa lepiej, aby by prosty,
ale eby rozumia dokadnie jego dziaanie.
Kady firewall jest inny, tak jak kada sie jest inaczej zbudowana i rne s charaktery
i poziomy wiedzy ich administratorw. Twj firewall rozwija si wraz z tob, wraz ze
zwikszaniem si twojej wiedzy o zagroeniach i metodach przeciwdziaania im.
Zmienia si te wraz z wykrywaniem coraz nowszych zagroe. Jest to ywy organizm
stanowicy pierwsz lini ochrony dla twojej sieci, powi wic mu troch czasu i zaangaowania.

10.1. Rodzaje firewalli


Poniej przedstawi bardziej dokadny podzia firewalli ni podany w rozdziale 9. Opisz rwnie ich cechy, na podstawie ktrych jako administrator sieci bdziesz wybiera
odpowiedni rodzaj do potrzebnego ci zastosowania. Oczywicie dobr konkretnego firewalla z dostpnych na rynku pozostawiam ju tobie, zwaszcza e tryb wydawania ksiki
jest dugi, a zmiany moliwoci produktw dostpnych na rynku nastpuj bardzo szybko.

Tradycyjne proxy (Traditional proxies)


Jest to rodzaj firewalla poredniczcego; pakiety z sieci prywatnej nigdy nie wychodz
do Internetu i vice versa. Adresy IP w sieci prywatnej powinny by z klas nieroutowalnych. Jedynym sposobem poczenia si z Internetem jest wywoanie firewalla, poniewa jest on jedyn maszyn mogc czy si rwnoczenie z obiema sieciami. Urucha-

400

Sieci komputerowe. Kompendium

miamy jest na nim program zwany proxy, ktry tego dokonuje. Dla kadej usugi, ktra
ma by dostpna z Internetu, na firewallu musi by uruchomiony osobny program poredniczcy w jej wiadczeniu.
Komputery w sieci wewntrznej musz by specjalnie skonfigurowane w celu uzyskania dostpu do wybranych usug. Przykadowo, aby cign stron WWW, musz
poczy si z firewallem na port 8080, zalogowa si i zada potrzebnej strony. W tym
momencie uruchamia si odpowiedni program poredniczcy, ciga potrzebne dane
i przekazuje do odpowiedniego komputera w sieci lokalnej.

Przezroczyste proxy (Transparent proxies)


Jest to drugi rodzaj firewalla poredniczcego; pakiety z sieci prywatnej rwnie nigdy nie wychodz do Internetu i vice versa. Adresy IP w sieci prywatnej powinny by
z klas nieroutowalnych. Jedyn drog poczenia si z Internetem jest wywoanie firewalla, poniewa jest on jedyn maszyn, mogc czy si rwnoczenie z obiema sieciami. Uruchamiamy na nim program zwany transparent proxy, ktry tego dokonuje.
System operacyjny zamiast dokona routingu pakietw do Internetu, kieruje je do tego
programu. Dla kadej usugi, ktra ma by dostpna z Internetu, na firewallu musi by
uruchomiony osobny program poredniczcy w wiadczeniu takiej usugi.
Przezroczyste proxy jest bardziej wygodne dla uytkownikw i dla administratora. Klient
nie musi wiedzie o uyciu oprogramowania typu proxy i nie musi by specjalnie konfigurowany. Na przykad firewall jest skonfigurowany do przekierowywania (np. za pomoc polecenia ) wszystkich pocze do portu 80 na port 8080, na ktrym
pracuje tranparent proxy. Przy prbie pobrania dowolnej strony WWW transmisja przekierowywana jest na port 8080, a nastpnie wszystko odbywa si tak, jak w poprzednim
przykadzie.

Tumaczenie adresw IP (NAT)


Pakiety z sieci prywatnej nigdy nie wychodz do Internetu bez specjalnej obrbki i vice
versa. Adresy IP w sieci prywatnej powinny by z klas nieroutowalnych. W tym przypadku uywamy specjalnych funkcji zmieniajcych niektre pola transportowanych
pakietw (adres rdowy, port rdowy). Zostao to ju opisane wczeniej.

Filtrowanie pakietw
W tym przypadku nasza sie jest czci Internetu, pakiety mog porusza si bez zmian
poprzez obie sieci. Firewall na podstawie nagwkw protokow podejmuje decyzj,
czy przepuci dany pakiet, czy nie. Filtrowanie pakietw zastosowano, aby ograniczy
dostp z Internetu tylko do naszych wewntrznych serwerw i uniemoliwi dostp
do komputerw uytkownikw. Jeeli firewall ma moliwo ledzenia sesji protokow warstwy transportowej, nazywamy go firewallem z inspekcj stanu (statefull
instpection); czasami spotyka si w literaturze rwnie pojcie firewalla obwodw.

Rozdzia 10. Firewall

401

Ten typ firewalla ma najmniejsze moliwoci kontroli i autoryzacji dostpu, ale jest
rwnoczenie najbardziej elastyczny i wprowadza najmniej ogranicze dla uytkownikw z sieci wewntrznej. Nie ma potrzeby uruchamiania specjalnych programw poredniczcych.

10.2. Obsuga filtrowania pakietw


w Linuksie
Linux jest typowym systemem sieciowym; moliwoci filtrowania pakietw pojawiy
si w nim bardzo wczenie, bo ju w wersji 1.1. Alan Cox po prostu w 1994 roku przenis z BSD kod uywanego tam ipfw. Jos Vos rozbudowa ten kod i w jdrach wersji 2.0
pojawio si narzdzie  
do kontroli regu filtrowania. W 1998 roku dla wersji 2.2
Paul Russell i Michael Neuling mocno zmienili kod jdra i wprowadzili nowe narzdzie
. W 1999 roku dla jder w wersji 2.4 kod podsystemu sieciowego zosta przepisany od nowa, wprowadzono wiele przydatnych moliwoci: zaawansowany routing
(rwnie w oparciu o adres rda pakietu), zarzdzanie pasmem oraz cakiem now
cian ogniow. Do zarzdzania firewallem zostao przeznaczone nowe polecenie
  . Musisz mie wczony (wkompilowany) w jdrze modu netfilter oraz zainstalowany pakiet iptables.
Tabela 10.1. Porwnanie funkcjonalnoci ipchains i iptables
Ipchains
Moliwe
kryteria
selekcji
pakietw

Iptables

Adres rdowy IP
Adres docelowy IP
Protok (TCP,UDP) i port lub zakres portw
Protok ICMP i komunikat
Zaistnienie fragmentacji
Wartoci bitw TOS
Pakiety z flag SYN
Moliwo okrelania regu
symetrycznych (odwrotnych) 
Adres sprztowy interfejsu MAC
Dowolna kombinacja flag TCP
Kryterium czstotliwoci nadchodzcych
pakietw (zabezpieczenie przeciwko DoS)
Waciciel pakietu w systemie

Funkcjonalno

Inspekcja stanu, ledzenie sesji dla


protokow TCP, UDP, ICMP
Uproszczona translacja adresw, tzw.
Masquerading

Pena funkcjonalno NAT

Moliwo logowania pakietw

Moliwo konfigurowania wygldu


(i poziomu) logw
Obsuga IPv6

402

Sieci komputerowe. Kompendium

Pamitaj, e pakiet ipchains nie jest ju rozwijany, a do iptables cigle pojawiaj si


nowe dodatki. Jest to gwny powd, poza o wiele wiksz funkcjonalnoci, dla ktrego skupi si na tym pakiecie. Jeli brak jest funkcji, ktrych potrzebujesz, sprbuj zajrze do zbioru dodatkw do nazwie Patch-o-Matic; list najnowszych mona przeczyta pod adresem http://www.netfilter.org/documentation/pomlist/pom-extra.html. Najciekawsze dodatki umoliwiaj ograniczanie liczby pocze z jednego IP, selekcjonowanie pakietw w zalenoci od opcji IP, okrelanie rozmiaru pakietu.

Ipchains Linux 2.2


W tym podrozdziale zamieszczam skrcony opis obiegu datagramw IP w jdrach
wersji 2.2. Nastpny podrozdzia jest powicony projektowi netfilter i dokadniej opisuje dziaanie   uywanego w jdrach wersji 2.4.
 jest linuksowym poleceniem uywanym do konfiguracji regu firewalla i tumaczenia adresw IP (NAT). Zastpio ono starsze  
. Aby mc wykorzysta kom-

puter z systemem operacyjnym Linuks do filtrowania pakietw, naley skompilowa


jdro systemu z opcjami (dla jdra z serii 2.2):

 

 

Aby stwierdzi, czy jdro ma prawidowo wkompilowan obsug filtrowania datagramw, naley sprawdzi, czy w katalogu /proc/net/ istnieje plik ip_fwchains, zawierajcy
konfiguracj regu firewalla.
Przy konfigurowaniu firewalla za pomoc polecenia , podstawowym pojciem
jest acuch (chain). acuch jest to zbir regu filtrujcych, na podstawie ktrych podejmowana jest decyzja, czy pakiet zostanie przepuszczony, czy te usunity. Istniej
trzy standardowe acuchy: input, forward i output, ponadto uytkownik moe tworzy wasne acuchy.
Rysunek 10.1.
Obieg pakietw
w Linuksie 2.2

Droga datagramw IP poprzez firewall jest bardzo skomplikowana. Na samym pocztku drogi pakietu sprawdzana jest suma kontrolna datagramw (checksum), nastpnie
testowane s one pod ktem deformacji (sanity). Pniej pakiety przechodz przez
acuch wejciowy (input chain) i jeli trzeba, podlegaj odwrotnemu procesowi NAT

Rozdzia 10. Firewall

403

(demasquerade), czyli adres routera usuwany jest z pola adres docelowy i zastpowany adresem IP docelowego komputera w sieci prywatnej. Dalej na podstawie tablicy
routingu (routing decision) lub protokou routujcego podejmowana jest decyzja o dalszym losie pakietu. Procesy lokalne (local process) mog odbiera pakiety po etapie routowania i wysya pakiety poprzez etap routowania i bezporednio acuch wyjciowy
(output chain). Jeli pakiet nie zosta utworzony przez proces lokalny, jest dodatkowo
sprawdzany w acuchu przejciowym (forward chain). Jeli proces lokalny bdzie si
komunikowa z innym procesem lokalnym, kieruje pakiet przez acuch wyjciowy (output chains) do interfejsu lo (lo interface - loopback). Kady z pakietw opuszczajcych
komputer musi zosta sprawdzony przez reguy zawarte w acuchu wyjciowym (output chain).

Skadnia polecenia ipchains


Pokrtce przedstawi podstawow skadni polecenia . Dokadny opis pozostaych opcji znajduje si w publikacji http://www.tldp.org/HOWTO/IPCHAINSHOWTO.html
Po poleceniu  nastpuje opcja okrelajca jego dziaanie:
 (Flush) usuwa wpisy z wymienionego pniej acucha,
 (Append) dodaje now regu do acucha,
 (Insert) wstawia now regu do acucha na podane miejsce,
 (Delete) usuwa regu z acucha.

Nastpnie wystpuj wpisy okrelajce rdo i cel transmisji:


 (source) rdo,

(destination) cel.

Adresy mog by podawane jako nr IP lub nazwa oraz jako zakresy, np.
 adres rdowy rwny 192.168.23.24,

  adres rdowy pochodzcy z sieci 192.168.23.0

o 24-bitowej masce,

 !!!!!! zapis rwnowany poprzedniemu,
  dowolny adres.

Wikszo opcji umoliwia zastosowanie negacji logicznej, na przykad  "##


oznacza wszystkie komputery poza lokalnym. Protok moe by podawany jako numer
pobrany z pliku /etc/protocols lub nazwa (tcp, udp, icmp), nie jest wane, czy uyjesz
maych, czy te wielkich liter:
$
 protok UDP,

404

Sieci komputerowe. Kompendium

Mona rwnie podawa numer portu, dla ktrego ukadamy regu:


%&'  ruch protokoem TCP z dowolnego adresu z portu

23 (telnet).
Moemy definowa rwnie zakresy portw:
%&'( ruch protokoem TCP z adresu 192.168.1.6

z portw o numerach 20, 21, 22 i 23,


)'
 ( ruch protokoem UDP do komputerw

z sieci 192.168.1.0/24 na wysokie porty (porty o numerach 1024 i wicej).


Rwnie dobrze moemy poda nazw portu: %&'  .
Okrelamy interfejs sieciowy, ktrego dotyczy regua:
  karta sieciowa eth0,
 * oznacza wszystkie interfejsy zaczynajce si na eth.

Aby wczy zapisywanie pakietw do logw systemowych, musimy doda do reguy


flag .
Flaga + specyfikuje, co naley wykona z pakietem pasujcym do reguy. Jeli nie ma
tej flagi, to regua jest uywana do prostego zliczania pakietw j speniajcych. Dziaaniami, ktre moemy zleci, s:
+&&,'% podejmuje decyzj o przepuszczeniu pakietu pasujcego do reguy,
+,-. natychmiast likwiduje pakiety pasujce do reguy,
+/,0,&% likwiduje pakiety, wysyajc do nadawcy komunikat ICMP

o nieosigalnoci celu,
+123 stosuje uproszczon odmian NAT, nazywan czasem maskarad

(jdro musi by skompilowane z IP Masquerading enabled); opcja prawidowa


jedynie dla acucha forward,
+/,/,&%$ 45#4 $ przekierowuje pakiet na lokalny port; opcja musi

by uyta w acuchu INPUT i mona jej uywa jedynie dla protokow


TCP i UDP,
+/,%)/- powoduje natychmiastowe osignicie koca acucha.

Ustalamy polityk dla acucha. Polityka okrela, co naley zrobi z pakietem nie pasujcym do adnej z zawartych w nim regu:
    

Przedstawi teraz przykadow konfiguracj; naley j traktowa jedynie jako przykad


podany w celu przedstawienia sposobu konstruowania regu firewalla:

  !" " # $% & $'# $$$(
)%) * 
)%) * $
)%) * +$,",-

Rozdzia 10. Firewall

405

 ,.,$" ,  $, /" , 0& ,,$0$ ,$1


)%) *  *  * 234525456)47 *- 6565656)6 86 *'   9 8686
 :"$, "0$   $ " ;*
)%) * ;*
 $-" ,0 -$   ;*
 <"$#  ,;'  ,",!" =>9
)%) * ;* * 6565656)6 ; *- 2345254526 2647? *'  9
 <"$#  ,;' -$ ,",!" =>9
)%) * ;* * 2345254526 *- 6565656)6 ; *'  9
 <"$#  ,;'  ,",!"

)%) * ;* * 6565656)6 """ *- 2345254522 2647? *'  9


 <"$#  ,;' -$ ,",!"

)%) * ;* * 234525456)47 2647? *- 6565656)6 """ *'  9


 <"$#  ,;'  ,",!" =
)%) * ;* * : * 6565656)6 - *- 234525456)47 *'  9
 ,.,$" .!"   #$.#' -$   ;*
)%) *  * 234525456)47 *- 6565656)6 *' ;*
 @$+0,'  9
  -$.$'  9  ,   #$.#' -$  #$.#'
)%) * +$,",- * 234525456)47 *- 234525456)47 *'  9
  -$.$'  9 -# ,  "A,
)%) * +$,",- * 475375256)47 *- 6565656)6 *'  9
 -$.$'  9 -# ,   ""&,'  "A,
)%) * +$,",- * 234525456)47 *- 6565656)6 *' > =B
  $"!#  '..$#".  ,
)%) * ;*   

Iptables Linux 2.4


Polskie tumaczenie dokumentu HOWTO do iptables znajdziesz na stronie http://mr0vka.
eu.org/tlumaczenia/index.html. Powiniene si z nim zapozna, zanim zaczniesz czyta
dalszy cig tego dziau. Przeczytaj rwnie pozostae tumaczenia pojawiajce si na
stronie ukasza Bromirskiego http://mr0vka.eu.org naprawd warto. Zajrzyj rwnie na stron domow pakietu netfilter http://www.netfilter.org. Taaaak. Wiedziaem,
e nie bdzie ci si chciao czyta takiej iloci tekstu. Dobrze, zatem postaram si omwi pokrtce, jak wdruj pakiety w jdrze 2.4.
Podstawowym pojciem jest acuch (chain). acuch jest to zbir regu filtrujcych.
Istniej trzy standardowe acuchy: input, forward i output oraz acuchy dodatkowe,
prerouting i forward. Ponadto uytkownik moe tworzy wasne acuchy. acuch jest
list regu, do ktrych po kolei jest porwnywany pakiet. Jeli pakiet pasuje do ktrej
z regu, wykonywana jest akcja zdefiniowana wewntrz niej. Reguy definiujemy wanie poleceniem   . Jeli pakiet nie pasuje do adnej reguy, wykonywana jest
akcja zdefiniowana w polityce danego acucha. Tylko acuchy podstawowe i dodatkowe maj wasn polityk, acuchy utworzone przez uytkownika nie maj wasnej polityki, a pakiet po przejciu przez taki acuch wraca do miejsca (do acucha), z ktrego zosta wywoany.

406

Sieci komputerowe. Kompendium

Rysunek 10.2.
Obieg pakietw
w Linuksie 2.4

Jeli porwnasz ten schemat z algorytmem dla ipchains, zuwaysz, jak bardzo zosta on
uproszczony i logicznie przemylany. Pakiet sprawdzany jest najpierw w acuchu PREROUTING. Nastpnie podejmowana jest decyzja Routing decision, czy pakiet skierowany jest do komputera lokalnego. Przechodzi wtedy przez acuch INPUT i dociera
do procesw lokalnych Local process. Drug moliwoci jest, e pakiet jest skierowany do jednej z sieci, do ktrych dany komputer jest routerem. W takim przypadku
podejmowana jest decyzja o routingu danego pakietu (w uproszczeniu definiowana
karta sieciowa, przez ktr naley dany pakiet dalej przesa) i pakiet trafia do acucha
FORWARD. Pakiety wygenerowane przez procesy lokalne (np. przegldark WWW
wysyajc zapytanie o stron) przechodz przez acuch OUTPUT. Nastpnie wszystkie
pakiety przechodz przez acuch POSTROUTING i s wysyane na karty sieciowe.
Przedstawione powyej acuchy s dodatkowo rozdzielone pomidzy tablice. zawierajce niektre z nich. Pierwsz jest tabela mangle, suca do zmieniania zawartoci
pakietw przechodzcych przez nasz firewall. Nastpnie pakiety przechodz przez tabel nat, w ktrej definiujemy rne rodzaje translacji adresw NAT. Ostatni jest
najczciej uywana tabela filter. Definiujemy w niej reguy filtrowania pakietw, czyli
podstawowy kod naszego firewalla. Nie wszystkie acuchy istniej w poszczeglnych tabelach.
Do tabeli mangle (polecenie:     6 ) nale acuchy:
 PREROUTING,
 OUTPUT.

Do tabeli nat (polecenie:     ) nale acuchy:


 PREROUTING - DNAT (destination nat) podmieniany jest adres docelowy

pakietw,
 POSTROUTING - SNAT (source nat) podmieniany jest adres rdowy

pakietw,
 OUTPUT - DNAT dla pakietw generowanych przez procesy lokalne.

Domyln tabel jest filter (polecenie:    nie trzeba uywa przecznika  ),
nale do niej acuchy:
 INPUT,
 OUTPUT,
 FORWARD.

Rozdzia 10. Firewall

407

Nie bd omawia skadni   , jest ona bardzo rozbudowana i zajaby zbyt duo
miejsca. Ponadto zostao to bardzo dobrze zrobione w wymienionym wczeniej dokumencie HOWTO (z polskim tumaczeniem). Podczas tworzenia firewalla postaram si
omwi uywane przeze mnie konstrukcje. Jeli co wyda ci si niejasne, zajrzyj do
HOWTO lub na stron manuala (   ).

10.3. Tworzymy firewall


Postanowiem omwi tworzenie firewalla na konkretnym, praktycznym przykadzie.
Poniewa jednak niezbyt dobrym pomysem na pocztek byoby tworzenie rozbudowanego firewalla, przedstawi czsto spotykan sytuacj.
Zakadamy ma sie lokaln zoon, podczon poprzez Ethernet do Internetu. Oczywicie rzadko si zdarza, aby nasze cze stae byo skrtk. Jednak ze wzgldu na przejrzysto, przedstawi takie rozwizanie. Tak czy inaczej jest to tylko szablon i aby go
zastosowa w praktyce, bdziesz go musia podda znacznym modyfikacjom. Aby zminimalizowa koszty, utworzymy firewall na tej samej maszynie, co router najczciej tak si wanie robi, konstruujc rozwizanie oparte na Linuksie. Takie rozwizanie daje nam du elastyczno, moemy korzysta z moliwoci nowego kodu sieciowego jdra 2.4: zarzdza pasmem przydzielanym komputerom w sieci lokalnej i konkretnym usugom, stosowa routing rdowy i czy to wszystko z rozbudowanymi
moliwociami firewalla opartego na   . Zawsze najlepszym wyjciem jest, gdy
firewall jest dedykowanym serwerem, na ktrym nie ma uruchomionych adnych dodatkowych usug. Dziki temu nie ma moliwoci (przynajmniej teoretycznie) wamania do niego. Na maszyn speniajc tego typu zadania dla niewielkiej sieci czsto wystarczy stare 486DX i jakie 16 MB RAM-u. Zdobycie tego typu maszyny nie powinno
nastrcza wielkich kopotw.
Jeli nie masz dysku twardego, to moesz poszuka jakiej jednodyskietkowej dystrybucji Linuksa lub BSD przystosowanej do penienia roli routera i firewalla.
Jednodyskietkowe dystrybucje przeznaczone do tworzenia routera i firewalla:
http://www.freesco.org,
http://www.freesco.arx.pl/linux/ polska strona dystrybucji Freesco
przystosowanej do SDI,
http://www.linuxrouter.org,
http://www.coyotelinux.com,
http://www.floppyfw.org.

Jednak wtedy najpewniej nie bdziesz mg skorzysta z konfiguracji opisanej poniej wersje jednodyskietkowe Linuksw s wykonywane najczciej na jdrach serii 2.2. Moesz wtedy korzysta jedynie z polecenia . Jeli chodzi o wybr dystrybucji, to nie jest to zbyt wany element, wybierz najbardziej wygodn dla siebie. Jeli

408

Sieci komputerowe. Kompendium

dystrybucj bdziesz czsto aktualizowa, powyczasz wszystkie usugi sieciowe, to


zabezpieczenie powinno by wystarczajce. Oczywicie dyskusyjne jest pozostawienie
dziaajcego demona SSH do administracji. Jeli jest to konieczne, zainstaluj jak najnowsz wersj stabiln i cigle dbaj o szybk aktualizacj rde, ktre oczywicie samodzielnie skompilujesz. Nie uywaj pakietu binarnego otrzymanego z dystrybucj. Ponadto postaraj si wytyczy cieki, z ktrych bdziesz korzysta podczas administracji
i podczas implementacji firewalla pozwl na dostp do SSH tylko z konkretnych adresw IP. Jeli podajesz adresy w sieci lokalnej, zdefiniuj adresy MAC kart sieciowych
zamiast adresw IP.

Podstawy
Router (i firewall), ktry konfigurujemy, ma dwie karty sieciowe; jedn eth0 na
zewntrz z numerem IP przydzielonym przez naszego dostawc usug i drug eth1
do naszej sieci lokalnej, ktrej IP sami sobie konfigurujemy. Jeli masz cze SDI,
to najprawdopodobniej musisz wymieni wpis eth0 na ppp0. Cay opis przedstawi dla
dystrybucji Slackware, jednak jak ju napisaem, nie jest wane, jakiej dystrybucji uyjesz, ale jak j skonfigurujesz. Nigdy nie naley pozostawia konfiguracji domylnej.
Rysunek 10.3.
Sie, dla ktrej
napiszemy firewall

eth0
przydzielony numer IP: 10.20.30.40
z mask 8 bitw czyli: 255.0.0.0
gateway (router): 10.20.30.1
eth1
przyjmujemy numer IP: 192.168.1.1
z mask 24 bity 255.255.255.0
Przykadowy komputer w sieci wewntrznej konfigurujemy:
numer IP: 192.168.1.2
z mask 255.255.255.0

Rozdzia 10. Firewall

409

gateway (router): 192.168.1.1


serwery DNS ustawiamy na zalecane przez dostawc usug.
W przypadku Slackwarea wyremowaem (postawiem na pocztku wiersza #) ze skryptu
/etc/rc.d/rc.inet1 wszystko poza wierszem:
 $. ., )),5-),52
C=9 > D ))C=9 > D

Nastpnie konfigurujemy standardowe urzdzenie lo, dopisujc do tego pliku:






     

W moim przypadku wczamy potrzebne moduy do kart sieciowych 3Com:




  

A nastpnie przechodzimy do konfiguracji tyche kart sieciowych i routingu.



     
   

    

  !"   
  !" 

Dalej musimy wczy NAT dla pakietw z sieci lokalnej wychodzcych na zewntrz.


 #
 #


 ##
    $ %&'(%)'*+, 
- . &+$' 

 /
 -
00 1 
23#
 
    

 -

'#  #
4#  wczamy moduy do irca (jeli bd nam potrzebne).   

uruchamia SNAT pakietw, ktry podmienia adres rdowy pakietw z naszej sieci wewntrznej na adres 10.20.30.40. Oczywicie odbywa si to w acuchu POSTROUTING
w tabeli nat, co wida w strukturze tego polecenia. W tym momencie pakiety z naszego
przykadowego komputera o adresie 192.168.1.2, wychodzc w Internet (z karty eth0)
wydaj si pochodzi z adresu 10.20.30.40. Aby to zadziaao, musimy jeszcze uruchomi proces routingu dzieje si to w nastpnym wierszu, gdzie zmieniamy odpowiedni warto w katalogu /proc. Nastpnie uruchamiamy nasz skrypt firewall.start. Na
koniec uruchamiamy demona ssh (najlepiej w wersji 2), abymy mogli administrowa
naszym routerem z zewntrz. Jest to koniec naszego skryptu /etc/rc.d/rc.inet1, uruchamiajcego podstawowe funkcje sieciowe. W tym momencie zaczynamy pisanie skryptu
firewalla /etc/rc.d/firewall.start.

Konfiguracja
Podstawow zasad przy pisaniu regu firewalla jest:
najpierw stawiamy barier nie do przebycia dla wszystkich pakietw, a nastpnie
wybijamy w niej przejcia tylko dla takiego ruchu, ktry chcemy przepuci.

410

Sieci komputerowe. Kompendium

W skrcie: co nie jest dozwolone jest zabronione, czyli po pierwsze wybieramy poczenia do naszego routera z Internetu, ktre bd moliwe. Poza tym tak naprawd
powinnimy rwnie cile zdefiniowa rodzaje usug w Internecie, z ktrych mog
korzysta komputery znajdujce si w sieci lokalnej, oraz poczenia, ktre komputery
z sieci lokalnej mog wykonywa do routera. Poniewa omawiamy najprostszy przypadek, nie bd na razie komplikowa sytuacji i zao, e kierownictwo firmy nie wykazao zrozumienia i uytkownicy maj mie dostp do wszystkich usug udostpnianych
w Internecie.
Zagroenia wynikajce z takiego postpowania opisywaem w poprzednich rozdziaach.
Aby przypomnie, podam przykad, gdy na komputerze w sieci lokalnej pojawi si jaki
trojan. Przy silnie restrykcyjnym firewallu, gdyby trojan prbowa nawiza poczenie
na zewntrz, zostaoby ono uniemoliwione przez firewall i mielibymy o tym informacj w logach systemowych. Oczywicie istniej trojany wykorzystujce np. port 80
(http), ktry raczej musimy przepuci. Oznacza to, e na komputerach lokalnych nie
moemy zaniedba podstawowych zasad bezpieczestwa i musimy zainstalowa jakie
(czsto uaktualniane) oprogramowanie antywirusowe.
Tak wic zaczynamy. W katalogu /etc/rc.d/ tworzymy sobie skrypt firewall.start, ktry
jest uruchamiany z pliku rc.inet1. Dla wikszoci dystrybucji Linuksa moemy uruchamianie firewalla umieci w pliku /etc/rc.d/rc.local. Moja konfiguracja zostaa oparta
na opisie ze strony: http://www.sns.ias.edu/~jns/security/iptables oczywicie dokonaem w niej duych zmian. Nie bd tworzy skryptu sparametryzowanego jest on
zbyt mao przejrzysty dla celw demonstracji, a ponadto gdy zagldamy do niego po
kilku miesicach, jest trudniejszy w analizie. Przed poleceniami   wystpujcymi
w skrypcie powiniene dopisa pen bezwzgldn ciek dostpu, np. $4 #  
  
E)%)
$. ., )),5-)+,"##5,
;$-,$% %#
;$-,$% $,.
;$-,$% $,.+
%# * :9 
%# * :9:9 
%# * 
 

Najpierw prbujemy adowa moduy, ktre mog si nam przyda. Bardzo wanym moduem jest conntrack, umoliwiajcy ledzenie pocze. Dziki niemu moemy stwierdzi, ktre pakiety nie s poprawnymi pakietami danego poczenia. Modu conntrack
potrafi ledzi, poza oczywistym protokoem TCP, ktry jest protokoem poczeniowym, rwnie protokoy UDP i ICMP. Lista aktualnie ledzonych pocze znajduje si
w pliku /proc/net/ip_conntrack. W ostatnich 3 wierszach ustawilimy polityk podstawowych acuchw na DROP w tym momencie nasz router nie odbiera i nie przepuszcza adnych pakietw, moesz to sprawdzi. Teraz wykonamy wstpn konfiguracj parametrw jdra wpywajcych na dziaanie stosu TCP/IP w Linuksie. Jeli z uwag
przeczytae wczeniejsze rozdziay, a zwaszcza ten dotyczcy bezpieczestwa, bdziesz rozumia, co robi te parametry i przeciwko jakim atakom s zabezpieczeniem.
 F2G
A; $-$"-  0
)%)$ H2H I ),$)))J7);$0$,##

Rozdzia 10. Firewall

411

 F4G ,$ ,- .;  =;,+


)%)$ H2H I ),$)))J7);$0$,%,$-
 FKG  .'; -0,;!"   $'A H$, ,$H
)%)$ H6H I ),$)))J7)$+)##)$,,$
 F7G  ,';'; .$" > ,-L .!, ;$0A ;M A %#&
,$0
)%)$ H6H I ),$)))J7)$+)##),-,
 FNG
A; $,$& ,- .$;.; > ,,$,
)%)$ H2H I ),$)))J7);0$,%$0,,$,,$
 FOG
# #$0$" -" F$$+-L $, ,$-L ,-,G .$"
)%)$ H2H I ),$)))J7)$+)##)#$0;,
 FPG
. .,  %- ,';$"# .$"     
  %# ,$0L ' $ $,$ ,- $$+0;
$ H2H I ),$)))J7)$+)##),+#,

Poniewa w jdrach serii 2.4 automatyczna defragmentacja przyjmowanych pakietw


jest wczana domylnie, ju nie musimy tego uruchamia. W wierszu 1 informujemy
nasz router, aby nie odpowiada na zapytania ICMP echo czyli router nie bdzie
odpowiada na pingi. Warto si nad tym zastanowi, poniewa postpowanie takie jest
niezgodne z zaleceniami IETF. Podaj ten wpis w celach edukacyjnych, poniewa moe
si zdarzy, e bdziesz chcia go uy.
W wierszu 2 uniemoliwiamy odpowiedzi ICMP Echo reply na pakiety rozgoszeniowe
(broadcast), w efekcie czego bronimy si przed atakiem typu Smurf. Atak ten polega na
tym, e atakujcy wysya pakiety ICMP echo request skierowane na adresy broadcastowe naszej sieci. Wszystkie komputery naszej sieci odpowiadaj na takie pakiety,
co najczciej powoduje silne przecienie sieci. Bardzo czsto adres rdowy takiego
pakietu jest zmieniony i ustawiony na rzeczywist ofiar, ktra otrzymuje nagle duo
pakietw z odpowiedziami typu echo-reply. Jeli w ten sposb zostanie zaatakowanych
kilka podsieci, cze ofiary moe ulec zapchaniu.
W wierszu 3 powiadamiamy jdro systemu, aby nie akceptowao pakietw source routed.
Atakujcy moe uy tego typu pakietw, aby udawa, e jest z wntrza naszej sieci,
lecz ruch ten byby kierowany z powrotem wzdu cieki, po ktrej do nas dotar. Opcje
te rzadko s uywane w zgodnych z prawem celach.
W wierszu 4 zabraniamy zmieniania naszej tablicy routingu na podstawie pakietw ICMP
redirect.
W wierszu 5 powodujemy, e nasz host nie bdzie reagowa na faszywe komunikaty
o bdach.
Wiersz 6 powoduje, e informacja o wszelakich dziwnych (podejrzanych) pakietach
znajdzie si w logach systemowych. Moe to by niebezpieczne, poniewa nie mamy
wpywu na czstotliwo zapisw i zmasowany atak takimi pakietami moe przepeni nasze logi.

412

Sieci komputerowe. Kompendium

Standardowym mechanizmem jest ignorowanie pakietw pochodzcych z sieci nie znajdujcych si w naszej tablicy routingu, co odbywa si w wierszu 7. Oznacza to, e jeli na karcie eth1 jest zdefiniowana sie 192.168.1.0/24, to nie przyjmie ona pakietw
z adresu 10.1.23.32. Oczywicie karta eth0 bdzie przyjmowaa pakiety ze wszystkich adresw, poniewa jest poprzez ni dostp do naszej domylnej trasy (routera) rwnie pakiety z adresem rdowym naszej karty eth1. Musimy wic zadba za pomoc
filtrowania na firewallu, aby nie istniaa taka moliwo. Piszemy zatem dalszy cig
skryptu:
%# * :9 * #$ *'  9
%# * :9:9 *$ #$ *'  9

Pierwsze co umoliwiamy, to ruch na urzdzeniu lo (lopback), ktre jest wykorzystywane przez rne procesy lokalne. Temu ruchowi nie stawiamy adnych ogranicze.
Poniej tworzymy nowy acuch o nazwie syn-flood, ktry bdzie zabezpiecza nasz
router przed atakami typu DoS. Oczywicie jest bardzo prawdopodobne, e bdziesz
musia dobra (najczciej eksperymentalnie) czuo dziaania moduu limit.
%# * *+#$$%# * :9 * 6 *  ** *' *+#$$%# * *+#$$- *; #; **#; 2) **#;*%, 7 *'  9:
%# * *+#$$- *'  **#$0*#J# -%0 **#$0*,+1 H=* ? H
%# * *+#$$- *' 

W pierwszym wierszu tworzymy acuch o wymylonej przez nas nazwie syn-flood.


W drugim wierszu powodujemy, e wszystkie pakiety protokou TCP z ustawion flag
SYN pojawiajce si na karcie sieciowej eth0 i wdrujce przez acuch INPUT (skierowane bezporednio do naszego routera) zostan przekierowane do acucha syn-flood.
Pakiety z ustawion flag SYN (i w poprawnym poczeniu rwnie ack) su do nawizywania poczenia. W wierszu 3 zaczynamy zliczanie tych pakietw. Jeeli pojawi
si wicej ni jeden na sekund pakiet nawizujcy poczenie bezporednio z naszym
routerem, to po czterech takich pakietach regua 3 przestanie dziaa i przerzuca pakiety spowrotem (-+/,%)/-) do acucha INPUT. W takim przypadku zostan wykonane nastpne reguy. Regua 4 spowoduje, e informacja o takim pakiecie pojawi si
w logach systemowych z przedrostkiem: SYN-FLOOD: . Regua 5 spowoduje, e pakiet taki zostanie skasowany bez adnej dodatkowej reakcji ze strony naszego hosta.
Przydaoby si jeszcze ustawi ograniczenie limit na ilo pakietw zapisywan do
logw, bo w przypadku ataku DoS moe nam si zapeni przestrze dyskowa, zwaszcza e system moe nie nady z zapisywaniem zdarze do logw. Oto poprawna posta wiersza nr 4:
%# * *+#$$- *; #; **#; 2) **#;*%, 7 *'  **#$0*#J# -%0
**#$0*,+1 H=* ? H

W podanym wierszu te moemy poeksperymentowa z wartociami parametrw dotyczcych ograniczenia limit.


%# * :9 * 6 * ; *;  ** =9 Q =C L 9  *'  9
%# * :9:9 *$ 6 * ; *;  ** 
L =9 Q =C L 9  *'  9

Rozdzia 10. Firewall

413

Wiersze te zapewniaj nam przepuszczanie wczeniej nawizanych pocze protokou


ICMP (wiersz 1) i nawizywanie pocze pochodzcych z naszego hosta (wiersz 2).
Oczywicie mowa o poczeniach do i z routera, poniewa acuchy INPUT i OUTPUT
dotycz jedynie lokalnego hosta.
%# * :9 * 6 *  E ** *;  ** 
*'  **#$0*#J#
-%0 **#$0*,+1 H
? H
%# * :9 * 6 *  E ** *;  ** 
*' 

Powysze wiersze wynikaj z pewnej niekonsekwencji w implementacji moduu conntrack sucego do ledzenia pocze w pakiecie netfilter. Modu ten pakiety TCP bez
flagi syn, a z ustawion flag ack uznaje za pakiety NEW, czyli nawizujce poczenie. W pierwszym z powyszych wierszy logujemy (zapisujemy do logw) pakiety
uznane za NEW (  -,7), nie posiadajce ustawionej flagi SYN ("). W kolejnym wierszu odrzucamy takie pakiety.
%# * :9 * 6 *+ *'  **#$0*#J# -%0 **#$0*,+1 H > 9=? H
%# * :9 * 6 *+ *' 

Podobna konstrukcja zastosowana jest w podanych reguach. Pakiety sfragmentowane


na wszelki wypadek (atak Jolt2) porzucamy, oczywicie uprzednio je logujc. Jeli
w logach systemowych bdziemy mieli informacje o usunitych poprawnych poczeniach posugujcych si sfragmentowanymi pakietami, to bdziemy musieli wyczy
te reguy.
Poniej mamy mae zabezpieczenie anty-spoofingowe (przeciw podszywaniu si pod inne
adresy ni wasne). W sumie niepotrzebne, ale nigdy nie wiadomo, czy nasz stos TCP/IP
nie ma jeszcze nie wykrytych bdw. Ponadto stosujc dodatkowo logowanie takich
pakietw, uzyskamy informacj o prbach spoofingu.
 .  -,; R,!-#$"; "$;  
%# * :9 * 6 * 265465K6576 *'   .  .  -,$" ,$$"#L ;#  ,,"$"
 %# * :9 * 6 * 26565656)8 *'   #
%# * :9 * 6 * 2P452O5656)24 *'   # Q
%# * :9 * 6 * 23452O85656)2O *'   # 
%# * :9 * 6 * 447565656)7 *'   ;#
%# * :9 * 6 *- 447565656)7 *'   ;#
%# * :9 * 6 * 476565656)N *'   ,,J%# * :9 * 6 * 24P565656)8 *'   #$
%# * :9 * 2 * - *- 23452O85254NN **-$, 2KP?2K8 *' 

Powysze reguy nie powinny nastrcza wtpliwoci. Na karcie eth0 nie powinny si
pojawi pakiety z pochodzce z:
 wiersz 2 naszego wasnego adresu, charakterystyczne dla ataku Land,
 wiersze 4 9 adresw zarezerwowanych; wyremowany zosta zakres 10.0.0.0/8,

w naszym przykadzie uywany przez kart eth0,


 wiersz 10 adresu interfejsu wewntrznego lo.

Niestety, najczciej komputery w naszej sieci lokalnej bd uyway protokou NetBIOS enkapsulowanego w TCP/IP. Protok ten silnie mieci wysya wiele broadcastw IP protokou UDP na porty 137 i 138. Abymy nie mieli logw systemowych

414

Sieci komputerowe. Kompendium

zarzuconych informacjami o dziaalnoci tego protokou, wpisujemy ostatni z powyszych regu. Oczywicie moemy (a nawet powinnimy) doda podobne reguy dotyczce
karty eth1. W kocu dochodzimy do regu okrelajcych, jakie poczenia mog by
nawizane bezporednio z naszym routerem.
   :9
%# * :9 *  **$, 2647? **-$, 44 *;  ** 
*'  9
%# * :9 *  **$, 2647? **-$, 22K *;  ** 
*'  S 9
**,'*" ;*$,*,%#
%# * :9 *;  ** =9 Q =C L 9  *'  9
%# * :9 *'  **#$0*#J# -%0 **#$0*,+1 H:9? H
%# * :9 *' 

Poniewa w powyszych reguach nie zdefiniowaem interfejsu sieciowego, bd one


dziaay na obu kartach sieciowych w naszym routerze. W drugim wierszu definiujemy
regu mwic: pakiety protokou tcp pochodzce z portw powyej 1023 skierowane
na port 22 (ssh) i uznane za NEW, czyli nawizujce poczenie, akceptujemy. Pozostae pakiety dla poczenia nawizanego za pomoc pakietu przepuszczonego przez
regu nr 2 zostan przepuszczone przez regu w wierszu 4. Mwi ona: pakiety, ktre
uznasz za nalece (ESTABLISHED) lub zwizane (RELATED) z ju istniejcym poczeniem, zaakceptuj. To jest wanie zaleta firewalli z inspekcj stanu (modu conntrack); moemy podczas konfiguracji firewalla operowa pojciami: nawizane poczenie, poprawne poczenie, pakiet nawizujcy poczenie itp. Pakiety nie
zaakceptowane przez te reguy zostan zalogowane (regua nr 5) i usunite (regua nr 6).
Oczywicie gdyby nie byo reguy nr 6, to zadziaaaby polityka acucha INPUT,
wczeniej ustawiona rwnie na DROP ale troch ostronoci nikomu nie zaszkodzi.
Gdybymy uruchomili na naszym routerze serwer WWW (czego oczywicie ze wzgldw bezpieczestwa nie polecam) wystarczyoby skopiowa regu nr 2 i wklei j
poniej tej reguy (w wierszu poprzedzajcym regu 4) i zmieni warto portu 22 na
80. Przypominam, e numery portw znajdziesz w pliku /etc/services.
Jak wczeniej pisaem, powiniene zdecydowa, z jakich adresw IP bdziesz administrowa swoim routerem i skonfigurowa swj firewall tak, aby pozwala jedynie na
poczenia z tych adresw. Zamy, e bdziesz czy si protokoem SSH2 jedynie
z komputera o adresie 192.168.1.2, znajdujcego si w twojej sieci lokalnej. Bardziej
restrykcyjna regua, w miejsce wiersza drugiego, bdzie miaa posta:
%# * :9 T 2 *  T 23452O85254 **$, 2647? **-$, 44 *; 
** 
*'  9

Moesz rwnie wykorzysta moliwo definiowania adresu MAC komputera uprawnionego do poczenia; po dokadniejszy opis zajrzyj do manuala lub HOWTO. Do
wytumaczenia pozostaje regua nr 3. Bardzo czsto rne serwery usug (np. ftp) pytaj
hosta, z ktrego si czymy, o nasze dane, za pomoc usugi ident dziaajcej na porcie 113. Jeeli nie byoby reguy 3, przykadowy serwer FTP wysaby pakiet na port 113
naszego routera i czeka na odpowied. Poniewa pakiet ten zostaby usunity przez
firewalla, nie otrzymaby adnej odpowiedzi. W kocu otrzymalibymy zgod na poczenie z serwerem FTP, ale czas oczekiwania byby dosy dugi. W wierszu 3 powodujemy, e na zapytania na port 113 protokou TCP generowany jest pakiet protokou ICMP z komunikatem: icmp-port-unreachable. Serwer FTP jest poinformowany,

Rozdzia 10. Firewall

415

e na naszym hocie usuga ident nie dziaa i ju bez dalszej zwoki pozwala nam si
zalogowa. Zwr rwnie uwag, e dla protokou UDP nie zostay zdefiniowane adne reguy, poniewa nie udostpniamy adnych usug z niego korzystajcych. Tak naprawd to udostpniamy jedynie ssh.
 # :9:9
%# * :9:9 *;  ** E U  *'  9
%# * :9:9 *'  **#$0*#J# -%0 **#$0*,+1 H:9:9? H
%# * :9:9 *' 

W tym acuchu rwnie powinnimy dokadnie zdefiniowa poczenia, ktre mona


nawizywa z naszego routera. Jednak w ten sposb sami sobie ograniczalibymy funkcjonalno naszego routera, a moe si zdarzy, e bdziemy mieli ochot troch poeksperymentowa z pakietami. Jednak oczywicie w normalnych warunkach zalecam
ustawienie bardziej restrykcyjnych regu na acuch OUTPUT. Regua w wierszu drugim akceptuje wszystkie pakiety nalece do poprawnych pocze. Skadnia   
-89 oznacza wszystkie wadliwe pakiety, nie nalece do poprawnego poczenia.
Skadnia   "-89 jest przeczeniem, oznacza wic wszystkie poprawne pakiety.
Regua 3 powoduje logowanie odrzuconych pakietw, a regua 4 ich usunicie.
   +$,",%# * 
 * 2 *  * 23452O85256)47 **$, 2647? *;  **

L =9 Q =C L 9  *'  9
%# * 
 * 2 * - * 23452O85256)47 **$, 2647? *;  **

L =9 Q =C L 9  *'  9
%# * 
 *$ 2 *  *- 23452O85256)47 **-$, 2647? *;  **
=9 Q =C L 9  *'  9
%# * 
 *$ 2 * - *- 23452O85256)47 **-$, 2647? *;  **
=9 Q =C L 9  *'  9
%# * 
 * ; *;  ** E U  *'  9
%# * 
 *'  **#$0*#J# -%0 **#$0*,+1 H
? H
%# * 
 *' 

W acuchu FORWARD definiujemy reguy dotyczce pakietw wdrujcych poprzez


nasz router. Reguy 2 i 3 oznaczaj: dla pocze protokow TCP i UDP wchodzcych na kart eth1 ( ) z adresw sieci lokalnej 192.168.1.0/24 z portw powyej 1023 przepu pakiety nawizujce poczenia (NEW), pakiety nalece do istniejcych pocze (ESTABLISHED) i pakiety zwizane z istniejcymi poczeniami
(RELATED). Oznacza to, e z sieci lokalnej moemy nawizywa dowolne poczenia.
Reguy 4 i 5 oznaczaj: dla protokow TCP i UDP wychodzcych z karty eth1 (# )
do sieci lokalnej 192.168.1.0/24 na porty powyej 1023 przepu pakiety nalece do
istniejcych pocze (ESTABLISHED) i pakiety zwizane z istniejcymi poczeniami (RELATED). W domyle nie przepuszczaj pakietw nawizujcych poczenia
do sieci lokalnej. Regua 6 pozwala na niczym nie ograniczony ruch pakietw protokou ICMP nalecych do poprawnych pocze. Jeli pojawi si jakie pakiety nie
nalece do istniejcego poczenia, nie zostan one przepuszczone. Ostatnie dwie reguy standardowo loguj i wycinaj wszystkie pozostae pakiety.
I oto mamy dziaajcy i w podstawowym stopniu zabezpieczajcy nasz sie firewall.
Jego dostosowanie do potrzeb rzeczywistej sieci pozostawiam oczywicie tobie. Nie
podawaem tutaj wszystkich aspektw jego konstrukcji, na ktre powiniene zwrci
uwag, poniewa chciaem zachowa jasn struktur konstrukcji firewalla. Jak pisaem
na pocztku tego rozdziau, nie jest to gotowy do zastosowania skrypt. Jest to pewien

416

Sieci komputerowe. Kompendium

przykad, ktry mia ci pokaza zasady tworzenia firewalla. Moesz si na nim oprze
jak na szkielecie, ale musisz go obudowa wasnymi reguami. Powiniene przeczyta
ponownie rozdzia dotyczcy bezpieczestwa, wypisujc sobie zagroenia, przed ktrymi powinien obroni twoj sie firewall, a nastpnie zaimplementowa t ochron
w formie polece w skrypcie. Warto zajrze na stron domow projektu netfilter i poprzeglda dokumentacj w poszukiwaniu przykadw, rnych nietypowych rozwiza itp. Kilka ciekawych zagadnie porusz w nastpnym podrozdziale.

Logi systemowe
Po uruchomieniu skryptu /etc/rc.d/firewall.start mamy dziaajcy poprawnie firewall.
Przydaoby si, abymy informacje o dziaaniu firewalla mieli w logach. W tym celu
wpisujemy na koniec pliku /etc/syslog.conf nastpujcy kod:
V5V )-J)24
V5V )J,)#$0)".$

i oczywicie restartujemy demona syslogd:


 .#### *C: #$0-

od tego momentu w pliku /var/log/wszystko (oraz na konsoli 12 Alt+F12) bdziemy mieli wszystkie logi systemowe. Naley uwaa, aby logi nam nie przepeniy partycji, czyli naley poprawnie skonfigurowa logrotate, ale to oczywicie znajdziecie
ju na stronach dotyczcych konfiguracji Linuksa.

Problemy z dziaaniem firewalla


Naley obserwowa logi systemu i patrze, co jest wycinane przez nasze reguy. Kady
wycity pakiet bdzie opatrzony przedrostkiem, ktry zdefiniowalimy w reguach,
np. #64:;</7/(;. Dziki temu atwo zorientujemy si, w ktrym miejscu
dzieje co niedobrego. Pamitaj, e niektre z usuwanych pakietw nie s logowane.
Jeli uyjesz:
 %# T T

otrzymasz list uruchomionych regu. Sprawd, czy nie wyglda inaczej, ni by si


spodziewa. Jeli do podanego polecenia dodasz przecznik =>, otrzymasz listing wraz
z licznikiem pakietw i bajtw objtych przez dan regu. Sprawd te iloci, zwracajc uwag na reguy usuwajce pakiety (DROP) bez ich wczeniejszego zalogowania.
Jeeli nie uda ci si znale nieprawidowo dziaajcej reguy, dopisz reguy logujce
wszystkie pakiety usuwane przez twj firewall.

Wyczanie firewalla
Czasem istnieje potrzeba szybkiego wyczenia firewalla. Poniej zamieszczam zawarto skryptu czyszczcego ustawienia naszego firewalla. Pamitaj, e po uyciu tego
skryptu nadal dziaa NAT uruchomiony w skrypcie /etc/rc.d/rc.inet1, czyli komputery
z sieci lokalnej maj cigle dostp do Internetu. Dziki temu uytkownicy nie powinni
zauway tej operacji.

Rozdzia 10. Firewall

417

)),5-)+,"##5$
%# *
%# * ;0# *
%# * 
  9
%# * :9  9
%# * :9:9  9
%# *W *+#$$)%)$ H6H I ),$)))J7);$0$,##
)%)$ H6H I ),$)))J7);$0$,%,$-
)%)$ H2H I ),$)))J7)$+)##)$,,$
)%)$ H2H I ),$)))J7)$+)##),-,
)%)$ H6H I ),$)))J7);0$,%$0,,$,,$
)%)$ H6H I ),$)))J7)$+)##),+#,X
)%)$ H6H I ),$)))J7)$+)##)#$0;,

10.4. Dodatkowe funkcje


Ograniczenia na ICMP
Protok ICMP jest protokoem kontrolnym Internetu, ma bardzo due moliwoci,
a niestety nie zostay w nim zaimplementowane adne mechanizmy zwizane z bezpieczestwem. Ponadto protok ten moe by wykorzystany do rnorodnych atakw oraz
w celu zapewnienia komunikacji rnych mao przyjaznych programw. Omwi teraz
pokrtce zalecenia dotyczce ograniczania ruchu i potencjalne wykorzystanie poszczeglnych komunikatw ICMP. Naley tak skonfigurowa swj firewall, aby jedynie komputery udostpniajce usugi do Internetu mogy uywa komunikatw ICMP. Warto za
pomoc zarzdzania pasmem (w Linuksie 2.4 polecenie ) okreli maksymalne pasmo dostpne dla ruchu ICMP jako niewielk cz cakowitego. Wicej informacji o zarzdzaniu pasmem w systemie Linux znajdziesz pod w dokumencie Ksztatowanie Ruchu i Zaawansowany Routing pod adresem http://www.mr0vka.eu.org/docs; orygina
tego i nowsze dokumenty znajdziesz http://lartc.org.

ICMP Echo
Nie naley uniemoliwia ruchu tych pakietw. Oczywicie decyzja i tak zawsze naley
do ciebie. Dobrym pomysem jest filtrowanie pakietw tego typu skierowanych na adres rozgoszeniowy. Mona wprowadzi bardziej restrykcyjn polityk i zezwoli na
uywanie tego komunikatu jedynie pracownikom technicznym pionu utrzymania sieci.
Ciekawym pomysem jest ustawienie niestandardowego i dosy niskiego maksymalnego
rozmiaru pakietw przepuszczanych przez firewall i przeszkolenie pracownikw w uywaniu polecenia 6w celu generowania pakietw o takich wanie rozmiarach.

ICMP Echo reply


Czasami stosowana jest metoda komunikacji z wykorzystaniem tych komunikatw. Nie
bd one odpowiedzi na zapytania z wntrza DMZ, ale przedostan si poprzez firewalle nie dokonujce inspekcji stanu dla ICMP.

418

Sieci komputerowe. Kompendium

ICMP Timestamp
Moe zosta wykorzystany do wykrywania komputerw. Naley zupenie blokowa.

ICMP Information request


Moe zosta wykorzystany do wykrywania komputerw. Naley zupenie blokowa.

ICMP Parameter problem


Sfaszowany uszkodzony pakiet, wchodzc do naszej sieci, moe wywoa tak odpowied naszego serwera, ktra daje pewn informacj atakujcemu.

ICMP Redirect
Tego typu komunikaty, jeli ju mog si pojawi, to jedynie pomidzy routerami. Moe si zdarzy, e zmienimy router w naszej sieci (zadziaa jaki system awaryjny). Jeli
zmieni si rwnie tablica routingu poprzedniego routera, to bdzie on informowa za
pomoc takich komunikatw komputery prbujce nadal wysya swoje pakiety przez
niego o zmianie domylnej bramy. Najczciej moesz zupenie zablokowa takie komunikaty bez szkody dla swojej sieci.

ICMP Source quench


Nie s (jak na razie) niebezpieczne. Powinny by wysyane jedynie w odpowiedzi na
zbyt duy transfer.

ICMP Time exceeded


Komunikaty z kodem 0 uywane s do wykrywania routerw; wystarczy wysya pakiety z coraz mniejszym parametrem TTL, a router powinien odpowiedzie wanie tym
komunikatem z ustawionym kodem 0.
Jeli zaczniemy wysya pofragmentowane pakiety z brakujcym jednym z fragmentw, to badany host odpowie nam tym komunikatem z ustawionym kodem 1. Moe to
suy do wykrywania hostw w sieci.
Nie naley blokowa tych komunikatw.

ICMP Parameter problem


Moe by wykorzystywany do wykrywania hostw; wystarczy wysya pakiety z niewaciwymi wartociami, a komputery, ktre je odbior, powinny odpowiada tym komunikatem.

ICMP Address request, Address reply


Oba komunikaty naley blokowa. Nie ma powodu, dla ktrego miayby z zewntrz sieci
dociera do nas takie komunikaty.

Rozdzia 10. Firewall

419

Jak przepuci now usug


na przykadzie Direct Connect
Podam tutaj przykad przepuszczania przez firewalla usug typu komunikatory, narzdzia do wymiany plikw P2P. Podana wczeniej konfiguracja firewalla nie pozwoli nam na uywanie popularnego w Polsce programu DirectConnect na komputerach lokalnych. Zamy, e naszym zadaniem jest uruchomienie dostpu do tej usugi.
Moemy prbowa uruchomi klienta DC i obserwowa w logach, jakie pakiety s usuwane przez nasz firewall. Jednak dla niektrych protokow moe to by mudne zadanie, wic o wiele prociej jest uda si na stron producenta lub na jedn z polskich
stron powiconych DC. Znajdziemy tam opis potrzebnych ustawie. Przy DC ustawionym w tryb pasywny transfery z komputera lokalnego odbywaj si protokoem TCP
z wysokich portw na porty 411,412. Pozostaje nam zapisanie tego w postaci regu
iptables:
*  * 23452O85254 **$, 2647? *-  **-$, 722?724
*  *- 23452O85254 **-$, 2647? *  **$, 722?724

Okazuje si, e nasz firewall nie powinien ogranicza takich pocze. Niestety, okazao
si, e nadal s problemy z prac aplikacji. Sprawdmy wic, co jest usuwane przez
firewall. Po obserwacji logw okazuje si, e naley doda reguy przepuszczajce
rwnie poczenia korzystajce z UDP.
%# * 
 * 2 * - * 23452O85256)K6 **$, 722?72K *; 
** 
L =9 Q =C L 9  *'  9
%# * 
 *$ 2 * - *- 23452O85256)K6 **$, 722?72K *; 
** =9 Q =C L 9  *'  9

Jest to przykad rozwizywania problemw tego typu; myl, e nie raz bdziesz zmuszony do rekonfiguracji swojego firewalla, choby w celu przepuszczania komunikacji popularnych czatw z portali internetowych, opartych na komunikacji nawizywanej na wysokie porty. Podam jeszcze jeden bardzo przydatny przykad:
 :,# 9$,;
%# * 
 * 2 * - * 23452O85256)47 **$, 2647? **-$, PPPP
*;  ** 
L =9 Q =C L 9  *'  9

Ustawianie priorytetw pakietw


Niele byoby zapewni naszym pakietom jaki priorytet w Internecie. Poniewa TCP/IP
nie jest protokoem implementujcym zbyt dobrze QoS (Quality of Service) oraz w rzeczywistoci tylko niektre routery w sieci speniaj zaoenia RFC, wic nie spodziewaj
si cudw, ale nie zaszkodzi poustawia bity TOS (Type of Service) w nagwku protokou IP. Parametry podane dalej zgodne s z zaleceniami RFC 1060/1349. Po wpisaniu     # otrzymujemy list proponowanych wartoci bitw TOS:
- F1G
>;*# 2O F6126G
>1;*9,$0 8 F6168G
>1;*#%# 7 F6167G
>;*$ 4 F6164G
$,;#*=,J 6 F6166G

420

Sieci komputerowe. Kompendium

Pierwsze trzy bity pola TOS (bity pierwszestwa) s obecnie nie uywane. Najwaniejsze s nastpne cztery bity tego pola, ostatni nie jest uywany. Poprawny pakiet powinien mie ustawiony (o wartoci 1) jedynie jeden z tych bitw. Propozycja ustawie dla
poszczeglnych aplikacji zostaa zawarta w RFC 1340.
Tabela 10.2. Zalecane wartoci pola TOS
Aplikacja

000

Telnet,
Rlogin, Ssh
FTP
kontrola
dane

Minimalizacja opnie

Maksymalizacja
szybkoci

Maksymalizacja
poprawnoci

Minimalizacja kosztw

Warto
szesnastkowa

Minimize
Delay

Maximize
Throughput

Maximize
Reliability

Minimize
Cost

000

0x10

000
000

1
0

0
1

0
0

0
0

0
0

0x10
0x08

Dane masowe

000

0x08

TFTP

000

0x10

SMTP
faza komend
faza danych

000
000

1
0

0
1

0
0

0
0

0
0

0x10
0x08

DNS
pytanie UDP
pytanie TCP
transfer strefy

000
000
000

1
0
0

0
0
1

0
0
0

0
0
0

0
0
0

0x10
0x00
0x08

ICMP
bd
zapytanie

000
000

0
0

0
0

0
0

0
0

0
0

0x00
0x00

ICMP
odpowied

Taka sama warto, jak w odpowiadajcym zapytaniu

SNMP

000

0x04

BOOTP

000

0x00

NNTP

000

0x02

Na podstawie tych wartoci dopisujemy na kocu naszego skryptu   4


4 
 4 nastpujce wiersze:
 "; $-$"-$ % 9= " 0#$". 
%# * ;0# *  :9 *  * 23452O85256)47 **-$, 46 *' 9= ***
$ 8
%# * ;0# *  :9 *  * 23452O85256)47 **-$, 42 *' 9= ***
$ 2O
%# * ;0# *  :9 *  * 23452O85256)47 **-$, 44 *' 9= ***
$ 2O
%# * ;0# *  :9 *  * 23452O85256)47 **-$, 4K *' 9= ***
$ 2O
%# * ;0# *  :9 *  * 23452O85256)47 **-$, 4N *' 9= ***
$ 2O
%# * ;0# *  :9 *  * 23452O85256)47 **-$, NK *' 9= ***
$ 2O
%# * ;0# *  :9 * - * 23452O85256)47 **-$, NK *' 9= ***
$ 2O

Rozdzia 10. Firewall

421

%# * ;0# *  :9 *  * 23452O85256)47 **-$, 86 *' 9= ***


$ 8
%# * ;0# *  :9 * - * 23452O85256)47 **$, 722?72K *' 9= **
*$ 2O  
%# * ;0# *  :9 *  * 23452O85256)47 **-$, 722?72K *' 9= **
*$ 8  

Ostatnie dwa wiersze dotycz transmisji Direct Connect i s dobrane eksperymentalnie. Aby podejrze zawarto tabeli mangle, wpisujemy:     69. Dla
pocze z komputera lokalnego rwnie moemy poustawia TOS.
%# * ;0# * :9:9 *  **-$, 46 *' 9= ***$ 8
%# * ;0# * :9:9 *  **-$, 42 *' 9= ***$ 2O
%# * ;0# * :9:9 *  **-$, 44 *' 9= ***$ 2O
%# * ;0# * :9:9 *  **-$, 4K *' 9= ***$ 2O
%# * ;0# * :9:9 *  **-$, 4N *' 9= ***$ 2O
%# * ;0# * :9:9 *  **-$, NK *' 9= ***$ 2O
%# * ;0# * :9:9 * - **-$, NK *' 9= ***$ 2O
%# * ;0# * :9:9 *  **-$, 86 *' 9= ***$ 8

Wykrywanie skanowania za pomoc firewalla


Moemy utworzy reguy, ktre bd nam raportoway w logach fakt skanowania naszego
routera. Ponadto moemy wydzieli rodzaje skanw, aby mie informacj o metodach
uywanych przez agresora. Ponisze wpisy dodajemy przed acuchem syn-flood
w pliku /etc/rc.d/firewall.start.
 . : ;; ".,"M $$%$
%# * :9 *  ***+#0  *; #; **#; 26) **#;*
%, 7 *'  **#$0*#J# -%0 **#$0*,+1 H=@ : ? H
%# T :9 *  ***+#0  *' 
 ". .   
% +#0 = A $-',
%# * .
%# * :9 * 6 *  E ** *;  ** 
*' .
%# * . *  ***+#0 =9 *; #; **#; 26) **#;*
%, 7 *'  **#$0*#J# -%0 **#$0*,+1 H=@ U = ? H
%# * . *  ***+#0 =9 *' 
%# * . *  ***+#0 @ *; #; **#; 26) **#;*
%, 7 *'  **#$0*#J# -%0 **#$0*,+1 H=@ 9? H
%# * . *  ***+#0 @ *' 
%# * . *  ***+#0  *; #; **#; 26) **#;*
%, 7 *'  **#$0*#J# -%0 **#$0*,+1 H=@ ? H
%# * . *  ***+#0  *' 
%# * . *  ***+#0 L=CL: *; #; **#; 26) **#;*
%, 7 *'  **#$0*#J# -%0 **#$0*,+1 H=@ W> =*> ? H
%# * . *  ***+#0 L=CL: *' 
%# * . *  *; #; **#; 26) **#;*
%, 7 *'  **#$0*#J# -%0 **#$0*,+1 H=@  ? H
%# * . *' 

Skan SYN zostanie wykryty przez acuch syn-flood. Ostatnia regua zapewnia nam
logowanie wszystkich innych podejrzanych pakietw. Aby nie spowodowa zapchania
logw systemowych, zostay dodane parametry =   , dziki ktrym zapisywana bdzie tylko cz skanujcych nas pakietw. Oczywicie, jeli agresor ustawi polityk

422

Sieci komputerowe. Kompendium

skanowania w programie nmap np. na Paranoid, to zostanie wykryty jedynie pierwszy pakiet, a pozostae nie przekrocz czstotliwoci ustawionej w module limit. Z tego
powodu powiniene zwraca uwag na kady wpis w logach, jednak pamitaj, e dosy
czsto zdarzaj si pakiety nalece do uszkodzonych pocze, ktre mog powodowa
faszywy alarm. Uwzgldnij rwnie, e uywanie zaawansowanych moduw typu
limit powoduje wiksze zuywanie zasobw systemowych.

Wykrywanie NAT
Postanowiem opisa metody wykrywania, czy kto w naszej sieci nie udostpnia cza,
stosujc NAT. Postaram si poda metod, ktra w przypadku wstpienia na drog prawn moe stanowi dowd. Przedstawi rwnie metody zapobiegania wykryciu, ktre
moe zastosowa uytkownik cza.
Teraz nastpi krtkie omwienie metod wykrywania uruchomionej translacji adresw
NAT. Teoretycznie proces NAT jest nie do wykrycia, w rzeczywistoci jest wiele metod, ktrymi mona si posuy, aby go wykry. Mona podejrze zawarto pakietw
TCP i stwierdzi na przykad, e wewntrz nich adres rdowy (np. przy protokole ICQ)
komputera jest ustawiony na inny ni adres rdowy datagramu IP. Cho takie dziaanie ley oczywicie w zakresie moliwoci administratora sieci, jednak z punktu widzenia prawa jest nielegalne (nienaruszalno korespondencji, zachowanie prywatnoci)
i nie moe by uyte jako dowd. Oglnym wnioskiem z rnych dyskusji jest, e
administrator moe podglda jedynie nagwki protokow IP i TCP, UDP, ICMP.
Mona oczywicie na ich podstawie wnioskowa o dokonywanej maskaradzie, jednak nie
bdzie to stuprocentowy dowd. Przykadowo maskarada wykonywana przez jdro
Linuksa serii 2.2 dokonuje pocze z pewnego cile okrelonego zakresu portw zdefiniowanych w pliku /usr/src/linux/include/net/ip_masq.h (dla jdra rozpakowanego
w katalogu /usr/src/linux) w wierszach o treci:
-+ 9> =BQ  O2666
-+ 9> =B  F9> =BQ Y763OG

Oczywicie wystarczy zmieni te wartoci i przekompilowa jdro, aby zakres by zupenie inny. W nowym jdrze 2.4 moesz teraz uywa portw 61000 65095, nawet
jeli dziaa NAT. Kod maskarady zakada do tej pory, e ten zakres portw jest zarezerwowany do jego uytku, wic programy nie mogy go uywa. Z moich obserwacji
wynika, e w jdrach 2.4 NAT zosta rozwizany poprawnie i alokuje porty od 1024
wzwy czyli tak, jak powinien to robi normalny, pojedynczy komputer. Dla procesw lokalnych rwnie alokuje kolejne porty powyej 1024 i nie powoduje to konfliktw z portami zajtymi dla NAT-u.
Maskarada zmienia wartoci nagwka IP (adres) i protokow niszych TCP/UDP (port),
co powoduje zmian sum kontrolnych obu protokow. Niektre rodzaje oprogramowania NAT nie zmieniay tej sumy. Oczywicie aby to wykry, rwnie musisz przeczyta cay pakiet, do czego nie masz prawa. Czyli ponownie posiadasz informacj
o uywaniu NAT, ale nie moe ona by penoprawnym dowodem. Ponadto s rne
metody oparte na wykrywaniu systemu operacyjnego (fingerprinting) i porwnaniu z np.
rodzajem przegldarki WWW raportowanej przez protok HTTP. Przykadowo jeli
host zachowuje si jak Linux, a przegldark podan w nagwkach HTTP jest MS

Rozdzia 10. Firewall

423

IE, to sprawa jest prosta. Ta metoda rwnie jest bezprawna, poniewa musiaby odczytywa prywatn transmisj. Myl, e na podstawie analizy dziaania protokow
TCP/IP i protokow warstw wyszych mona wymyli jeszcze wiele metod na wykrywanie NAT.
Ciekaw metod jest sprawdzanie, czy badany host ma uruchomiony proces routingu,
ktry jest potrzebny do poprawnego dziaania NAT. Zamy, e adres podejrzanego
komputera to 192.168.1.100. Na swoim routerze konfigurujesz jak sie, do ktrej
testowany komputer rzekomo bdzie routerem.
 ,$ -- * 2545K56)47 0" 23452O8525266 2
 0 2545K57

Rwnoczenie (na drugiej konsoli) uruchamiasz sniffer. Jeli okae si, e testowany
komputer odpowiedzia na ping do ciebie, bdzie to oznaczao, e ma uruchomiony
routing. Jeli nie miaby routingu, nie powinien reagowa w aden sposb na pakiety
nie przeznaczone dla niego.
Jest jeszcze jeden, niemal pewny sposb na wykrycie NAT. Po prostu nasz firewall
jest oczywicie routerem, a kady router ma obowizek zmniejsza pole TTL w nagwku IP o 1. Uwzgldniajc, e komputery z systemem Windows wysyaj pakiety
z TTL = 128, to pakiety te, wychodzc z karty eth0 routera, bd miay ju ustawiony
TTL = 127. Mona to prosto sprawdzi:
 -; *J * * 6

Pakiety generowane lokalnie przez nasz router maj ustawion charakterystyczn dla
Linuksa warto TTL = 64. Aby zwikszy warto pola TTL o jeden, czyli ukry fakt
przechodzenia pakietw przez router, na kocu naszego skryptu konfigurujcego firewalla dodajemy wiersz:
 <"&.; $ 2 $# 99 .!" ,$-A ,   9
%# * ;0# *  :9 * 23452O85256)47 *' 99 **#* 2

Z miana wartoci TTL odbywa si w tabeli mangle (  6) w acuchu PREROUTING. Nie moemy wykorzysta acucha OUTPUT tej tabeli (innych acuchw ona nie posiada), poniewa zmieniaby on tylko pakiety wychodzce bezporednio z routera, a nie przechodzce przez niego. Ograniczamy pakiety zmieniane przez
regu do pochodzcych z komputerw w sieci lokalnej 192.168.1.0/24, na ktrych
dokonujemy procesu NAT. Niestety, najprawdopodobniej nie sprowadzi si to do wpisania dodatkowej reguy do pliku konfigurujcego firewalla. Najczciej w dystrybucjach Linuksa pakiet iptables jest bez aty (patch) udostpniajcej opcj +%%9. Aby j
wczy, bdziemy musieli pobra rda pakietu iptables, zainstalowa aty na jdro
Linuksa zawarte w pakiecie, skompilowa i zainstalowa nowe jdro oraz skompilowa samo iptables. Oczywicie wczeniej najlepiej jest usun pakiet iptables, ktry
mielimy zainstalowany wraz z nasz dystrybucj Linuksa.
Pakiet iptables cigamy ze strony domowej projektu netfilter http://www.netfilter.org.
Naley zajrze do FAQ i z podanych tam adresw cign iptables. Nastpnie przeczyta rozdzia dotyczcy patch-o-matic. Jest to system dodatkw do iptables; jednym z nich jest wanie ata TTL. Rozpakowujemy iptables i kompilujemy patche:

424

Sieci komputerowe. Kompendium


Z , *1J+ %#*254575,5%4
Z - %#*25457
 ;. *$*;

Otrzymamy list pyta, najpierw o pooenie rde jdra, na ktre chcemy zainstalowa dodatki, a nastpnie o to, czy chcemy uy kolejnych patchy zawartych w patch-o-matic. Powinnicie wybra te zwizane z TTL (moe rwnie inne, jeli spodobaj
si ci ich moliwoci), a nastpnie skompilowa i zainstalowa samo iptables:
 ;.
 ;. ##

Pniej czeka nas konfiguracja, kompilacja i instalacja nowego jdra, ale tego ju nie
bd omawia. Pamitaj jedynie, aby przy konfiguracji jdra zaznaczy (choby jako
moduy) elementy dotyczce iptables (a zwaszcza TTL). Oczywicie nie wszystkie musisz wkompilowywa bezporednio w jdro, ale to ju zaley od ciebie.

You might also like