Author Archives: Artur

FECN i BECN

podrozdział tej pracy magisterskiej powstał na podstawie następującej literatury:

[1] Raj Jain, „Congestion Control And Traffic Management In ATM Netowrks: Recent Advances and A Survey”

[3] Kai-Yeung Siu, Hong-Yi Tzeng: “Intelligent Congestion Control for ABR Service in ATM Networks”

[4] Fang Lu, “ATM Congestion Control”

Algorytm sterowania przeciążenia typu FECN (Forward explicit congestion notification) jest przykładem algorytmu używającego jako sprzężenia zwrotnego, bitu EFCI (explicit forward congestion indication) w nagłówku komórki ATM.

Rysunek 7. Zasada działania algorytmu FECN

W metodzie tej przełącznik monitoruje długość kolejki w buforze. Jeżeli długość kolejki przekroczy ustalony próg (oznaczający możliwość wystąpienia przeciążenia) przełącznik ustawia bit EFCI dla danych komórek. Urządzenie końcowe, które otrzymało komórki z zaznaczonym bitem EFCI, generuje ramkę kontrolną, informującą o wystąpieniu przeciążenia i wysyła ją do nadawcy.  Nadawca używa informacji zawartej w ramce kontrolnej do zmniejszenia lub zwiększenia prędkości transmisji.

Rysunek 7 pokazuje zasadę działania algorytmu FECN. Przełącznik 2 wykrywa przeciążenie (kolejka w buforze przekroczyła dany próg) i ustawia bit EFCI dla wszystkich komórek należących do pierwszego kanału wirtualnego. Odbiorca po dostaniu komórek z bitem EFCI generuje i wysyła komórkę sterującą (RM) informującą nadawcę o fakcie wystąpienia przeciążenia. Nadawca, jeżeli otrzyma komórkę RM, zmniejszy prędkość transmisji danych.

Podobnym algorytmem sterowania przeciążeniem, jest algorytm zwany backward explicit congestion notification -BECN. Algorytm różni się tylko tym, że komórka sterująca RM jest generowana przez urządzenie, które wykryło przeciążenie (przełącznik) a nie tylko przez urządzenie odbiorcze.  Oczywistą zaletą metody BECN nad FECN jest szybsza reakcja na wystąpienie przeciążenia. Następną zaletą jest niezależność od systemu końcowego (w algorytmie FECN odbiorca generuje RM), ponieważ urządzenia sieciowe same generują komórki sterujące. Jednak metoda BECN wymaga od bardziej rozbudowanych przełączników, potrafiących nie tylko generować komórki sterujące ale także filtrować informacje o przeciążeniu. Proces filtrowania informacji o przeciążenia jest niezbędny, aby móc zapobiec nadmiernej liczbie generowanych komórek sterujących.

Rysunek 8. Zasada działania algorytmu BECN

W obydwóch algorytmach FECN i BECN, przełącznik wykrywa przeciążenie, kiedy długość kolejki przekroczy dany próg. Nadawca, jeżeli odebrał komórkę sterującą zmniejsza prędkość transmisji danych. Prędkość ta może być automatycznie zwiększona przez źródło, jeżeli nadawca nie otrzymał komórki sterującej przez z góry określony czas, do prędkości ustalonej podczas ustanawiania połączenia (PCR). Największą wadą obydwu metod jest brak odporność na niektóre sytuacje, np. jeżeli podczas przeciążenia komórka sterująca nie będzie mogła dotrzeć do nadawcy, to nadawca nie wiedząc o wystąpieniu zwiększy swoją prędkość transmisji, co spowoduje jeszcze większe przeciążenie.

Proces instalacji Joomla

Do stworzenia naszego serwisu wykorzystana zostanie Joomla! w wersji JoomlaPE 1.0.12a. Jest to stabilna wersja programu, którego następcą jest Joomla! 1.5. Instalacja Joomla! jest procesem złożonym z kilku kroków, lecz nie jest on zbyt skomplikowany. W pierwszej kolejności musimy ściągnąć pakiet instalacyjny z adresu [joomla.pl] i uruchomić plik instalacyjny, który rozpakuje pliki do wybranego przez nas katalogu.

Kiedy mamy już potrzebne pliki w wymaganym miejscu, uruchamiamy przeglądarkę WWW i wpisujemy w nią adres naszego serwisu, w naszym przypadku jest to adres localhost. System automatycznie rozpozna, że serwis nie jest jeszcze poprawnie skonfigurowany i przekieruje na pierwszą stronę instalatora z testem przedinstalacyjnym. Sprawdzone tu zostaną wymagania odnośnie serwera oraz praw dostępu do plików i katalogów Joomla!. Mamy więc szansę, aby w razie niespełnienia któregoś z wymagań nanieść jeszcze odpowiednie poprawki w ustawieniach naszego serwera.

Ekran testu sprawdzającego czy nasza instalacja Joomla! ma odpowiednie przygotowane środowisko, składa się z trzech części (rys.13). Pierwsza mówi o konfiguracji samego serwera, druga o ustawieniach PHP, natomiast trzecia o prawach dostępu do plików. W następnym kroku należy zaakceptować licencję GNU/GPL/. Kolejny krok to wpisanie parametrów naszej bazy danych MySQL.

Nazwa hosta
(zwykle focaiftost)
Jlocalhost
Nazwa użytkownika
MySQL
Na przykład „root łub użytkownik
|root
nadany przez administratora serwera
Hasto użytkownika MySQL
1———
(Dla bezpieczeństwa hasło fffUSf być wpisane)
Nazwa bazy danych
MySQL
(Baza danych może być założona wcześniej)
|baza
Prefix tabel w bazie danych MySQL |ios_
Niektóre fiosty dopuszczają jedynie określone nazwy bazy przypisanej do serwisu. W takim przypadku użyj prefiksu tabei dla odróżnienia
kolejnych instalacji Joomiai
|— Usunąć istniejące
K tabele?
|— Zarchiwizować
1 tabele?
(kopie zapasowe bazy danych z poprzedniej instalacji Joomiai zostaną zamienione.)
ry Wczytać przykładowe dane?
Zainstaluj przykładowe dane, chyba ie jesteś doświadczonym użytkownikiem Joomiai i chcesz zacząć z pustą stroną. Nie odznaczaj tego, jeśii nie masz doświadczenia z Joomiai

Rysunek 14. Instalacja Joomla! – konfiguracja bazy danych MySQL

Następnie po pomyślnym zaimportowaniu bazy (rys.14) należy wpisać nazwę tworzonej strony internetowej. W kolejnym kroku wyświetla się wygenerowane hasło administratora – ze względów bezpieczeństwa należy je zmienić na własne hasło. Pozostałych ustawień nie zmienia się (rys. 15).

Rysunek 15. Instalacja Joomla! – podstawowe ustawienia użytkownika Ostatnią rzeczą jest usunięcie katalogu instalacyjnego. Po pomyślnym przejściu procesu instalacji otrzymujemy gotową witrynę z wczytanymi przykładowymi danymi.

Podstawowe informacje o sieci ATM

Technologia ATM (Asynchronous Transfer Mode) powstała w wyniku kompromisu między dwoma już funkcjonującymi technikami cyfrowej transmisji szerokopasmowej: STM (Synchronous Transfer Mode) i PTM (Packet Transfer Mode), łącząc zalety istniejących technologii przy jednoczesnej eliminacji większości wad tych systemów. Technika STM jest stosowana w sieciach ISDN, PTM zaś w lokalnych sieciach komputerowych. Wywodząca się z telekomunikacji technologia ATM jest coraz częściej postrzegana jako technika łącząca standard przekazów telekomunikacyjnych sieci SDH (Synchronous Digital Hierarchy) na poziomie warstwy fizycznej z różnymi sieciami komputerowymi.

Informacja w standardzie ATM jest przesyłana w postaci krótkich komórek o stałej długości (48 bajtów informacji + 5 bajtów nagłówka). Nagłówek jest niezbędny w celu zrealizowania przezroczystego transportu informacji użytkownika przez sieć ATM bez zakłóceń, straty czy też nadmiernego opóźnienia.

Standard ATM jest techniką telekomunikacyjną typu połączeniowego, co oznacza, że faza przesyłania informacji właściwej jest poprzedzona fazą zestawiania połączenia. W tej fazie wstępnej następuje negocjowanie kontraktu pomiędzy „klientem” sieci a „administracją” sieci. Na podstawie parametrów deklarowanych przez użytkownika (typ usługi, przewidywana przepływność), sieć decyduje, czy można zagwarantować odpowiedni poziom jakości obsługi dla nowopojawiającego się zgłoszenia i dla wszystkich innych aktualnie realizowanych. Zadeklarowane w fazie wstępnej parametry zgłoszenia mogą podlegać renegocjacji. Transmisja w sieci ATM odbywa się poprzez zestawienie łącza logicznego (kanał wirtualny, ścieżki wirtualne).

Projektowanie sieci komputerowej

4.1. Podstawowe wiadomości

Rozrost Internetu, a wraz z nim rozwój technologii sieciowych spowodował, że coraz więcej instytucji oferuje możliwość dostępu do Internetu i jego zasobów. Obok firm zapewniających dostęp pojawiło się także dużo takich, które oferują zaprojektowanie, oraz implementację sieci na potrzeby użytkownika (dla firm, klientów indywidualnych itp.). Ponieważ usługa ta nie jest tania, bardzo dobrym rozwiązaniem jest samodzielne zaprojektowanie i wdrożenie sieci, jedyny koszt w takim wypadku związany jest z zakupem urządzeń sieciowych oraz ewentualnie medium.

Zaprojektowanie sieci komputerowej nie jest procesem trudnym, należy jedynie przestrzegać kilku zasad, do których należą między innymi wizja lokalna, wybór medium transmisyjnego, wybór topologii, dobór sprzętu itp. Wszystkie etapy pro­jektowanie opisałam w dalszej części tego rozdziału.

4.1.1. Określenie celów

W czasie projektowania zarówno sieci LAN jak i WLAN pierwszą rzeczą jaką trzeba zrobić jest określenie wymagań jakie sieć ta ma spełniać. Aby określić wymagania w pierwszej kolejności należy zastanowić się nad kilkoma aspektami sieci, a mianowicie:

  • przepustowości sieci – dobór takiej przepustowości, aby zagwarantować do­stęp do podstawowych usług oferowanych przez sieć komputerową kazdemu uzytkownikowi. Związany jest on z wyborem technologii (Rozdział 1.1.1), czy też standardu (Rozdział 1.2.1) jaki w sieci zostanie zastosowany;
  • liczby użytkowników – liczba klientów jaka ma z tej sieci korzystać, uwzględ­niając przyszły rozrost sieci;
  • medium transmisyjne – dokładnie opisane w punkcie 4.1.2. W przypadku wyboru transmisji bezprzewodowej, dodatkowo należy określić wymagania co do: zasięgu sieci, mobilności jak również bezpieczeństwa.

Następnie należy przeprowadzić wizję lokalną miejsca, w którym sieć ma zostać zaimplementowana. W czasie przeprowadzania wizji lokalnej powinno się zebrać informacje na temat samego budynku:

  • rozmieszczenia okien i drzwi,
  • wystąpienie nowych elementów działowych,
  • rozmieszczenia gniazdek elektrycznych,
  • określenia występowania okablowania strukturalnego,
  • określenia rodzaju materiału z jakiego zostały wykonane okna i drzwi (w przy­padku WLAN, gdyż niektóre materiały powodują osłabienie transmisji),
  • określenia rodzaju materiału z jakich zostały wykonane sufity i ściany, oraz ich grubości (w przypadku WLAN, gdyż niektóre materiały powodują osła­bienie transmisji).

W czasie określania wymagań jakie sieć ma spełniać należy ustalić priorytet po­szczególnych celów, gdyż może się zdarzyć, że nie wszystkie z nich możliwe są do osiągnięcia. W takim właśnie przypadku w pierwszej kolejności realizowane będą najważniejsze aspekty.

4.1.2. Wybór medium

Aby przetransmitować dane pomiędzy komputerami obecnie wykorzystuje się:

  • prąd elektryczny,
  • mikrofale,
  • fale świetlne,
  • fale radiowe.

Biorąc pod uwagę sposób transmisji danych, media transmisyjne dzielimy na: prze­wodowe i bezprzewodowe. Do przewodowych mediów (transmisja danych po­przez przewód) należą: kabel koncentryczny, skrętka oraz włókno światłowodowe. Natomiast do bezprzewodowych mediów (transmisja danych poprzez powietrze) zaliczamy: fale radiowe, mikrofale, promieniowanie podczerwone oraz łącza sate­litarne.

ciąg dalszy tej pracy magisterskiej nastąpi…

Projektowanie sieci komputerowych LAN i WLAN z uwzględnieniem telefonii VoIP

Streszczenie pracy

Niniejsza praca poświęcona jest projektowaniu lokalnych sieci komputerowych, przewodowych i bezprzewodowych, z uwzględnieniem technologii VoIP. Pierw­sza część pracy zawiera informacje związane zarówno z samymi sieciami kom­puterowymi, jak również zagadnieniami z nimi związanymi. Informacje zawarte w rozdziale pierwszym poświęcone są sieciom LAN oraz WLAN. W rozdziale dru­gim znajdują się informacje dotyczące protokołu TCP/IP, natomiast rozdział trzeci opisuje technologię VoIP. Druga część pracy poświęcona jest projektowaniu sieci LAN i WLAN, część ta składa się z dwóch rozdziałów. Rozdział czwarty opisuje sposób projektowania sieci komputerowych LAN i WLAN. Ostatni rozdział pra­cy został poświęcony zaprojektowaniu sieci komputerowej w szkole podstawowej, pokazuje on w jaki sposób należy projektować sieci komputerowe.

Słowa kluczowe

lokalne sieci komputerowe, bezprzewodowe sieci komputerowe, protokół między- sieciowy, protokół sterowania transmisją, transmisja głosu w pakietach IP

Keywords

Local Area Networks, Wireless LAN, Internet Protocol, Transmission Control Protocol, Voice over IP

Klasyfikacja tematyczna według UKD

621.3 – Elektrotechnika. Elektronika.

Konfiguracja serwera proxy

Jedną z ważniejszych rzeczy jest pamięć o konieczności dodania serwera proxy do /etc/inetd.conf. Aby móc odpowiedzieć na żądania należy dopisać następującą linię:

socks stream tcp nowait nobody /usr/local/etc/sockd sockd

Konfiguracja serwera proxy

Program SOCKS potrzebuje dwóch oddzielnych plików konfiguracyjnych. Jeden z nich mówi o tym komu udzielić dostępu a drugi w jaki sposób przekazywać żądania do właściwego serwera proxy. Plik decydujący o dostępie powinien znajdować się na serwerze. Plik dotyczący przekazywania dostępu (routingu) powinien znajdować się na każdej z maszyn Unixowych. W wypadku DOSa i częściowo MaCów komputery powinny mieć swój własny routing.

Plik dostępu (Access File)

W wersji 4.2 Beta SOCSKsów plik dostępu nazywa się ” sockd.conf ” . powinien zawierać dwie linie: zezwolenia i zakazu. Każda z linii posiada trzy pozycje:

identyfikator (permit/deny)

adres IP

modyfikator adresu

Identyfikator to permit lub deny Generalnie powinno się użyć obu: każdy we właściwej linii. Adres IP powinien zawierać czterobajtowy adres w typowej dal IP notacji. np. 192.168.2.0. Modyfikator adresu także jest normalnym IP i pracuje jak maska. Rozwinięcie tego adresu da 32 bity (1 albo zero).

Na przykład, w tej linii:

permit 192.168.2.23 255.255.255.255

administrator zezwala na dostęp maszynom w których adres pasuje co do bitu z zadanym: pasuje tu tylko 192.168.2.23

permit 192.168.2.0 255.255.255.0

administrator zezwala na dostęp maszynom z gdyby od 192.168.2.0 do 192.168.2.255, w formie całej klasy C.

Nie powinno się zamieszczać następującej linii:

permit 192.168.2.0 0.0.0.0

dającej dostęp dla wszystkich adresów.

Tak więc pierwsza linia daje zezwolenie dla tych adresów którym chcemy go dać, a druga zakazuje reszcie. Aby zezwolić na dostęp wszystkim z klasy 192.168.2.xxx potrzeba linii:

permit 192.168.2.0 255.255.255.0

deny 0.0.0.0 0.0.0.0

Należy zwrócić uwagę na pierwsze ” 0.0.0.0 ” w linii zakazu. Z maską 0.0.0.0 taki adres nie istnieje. Wszystkie zera zostały tam wprowadzone bo są łatwe do zapisu.

Dopuszczalne jest umieszczenie większej ilości jeden zapisów w każdej z linii. Konkretni użytkownicy mogą ponadto otrzymać lub tracić prawo dostępu. jest to wykonywane przy pomocy autentyfikacji przy pomocy ident.

Tablica trasowania

Tablica routingu w SOCS jest nazywana socks.conf.

Tablica routingu mówi klientom SOCKS kiedy używać socks a kiedy nie. Na przykład, w naszej sieci 192.168.2.3 nie potrzebuje używania socks do połączenia z 192.168.2.1. Po prostu łączy się bezpośrednio, za pomocą Ethernetu, definiuje się automatycznie 127.0.0.1 jako loopback. Oczywiste jest, że nie potrzebujemy rozmawiać przez ścianę ogniową z samym sobą.

Występują trzy typy rekordów:

  • deny
  • direct
  • sockd

Denymówi SOCKS kiedy ma odmówić żądaniu. Rekord ten ma takie same trzy pola jak sockd.conf: identyfikator, adres i maska. Ogólnie, dopóki jest to modyfikowane przez sockd.conf, maska w pliku dostępu jest ustawiona na 0.0.0.0. Jeśli chcemy pozwolić na dzwonienie do siebie możemy to zrobić tutaj.Rekord directmówi które do których adresów nie używać SOCKS. Te adresy będą doręczone bez serwera proxy.

Podsumowując: mamy trzy pola: identyfikator, adres i maska.

direct 192.168.2.0 255.255.255.0

W ten sposób kierujemy bezpośrednio cały ruch w chronionej sieci.

Rekord z sockdmówi komputerowi które z hostów są serwerem SOCKS

Składnia jest następująca:

sockd @=<serverlist> <IP address> <modifier>

Należy uwagę na fragment: @= . Pozwala on na wprowadzenie listy serwerów proxy. W naszym przykładzie używamy tylko jednego. Ale możemy mieć wiele w celu zwiększenia przepustowości i obniżenia możliwości awarii.

Pola adresu IP i maski działają jak w innych przykładach. Specyfikujemy adres i zakres jego obowiązywania DNS zza firewalla. Do ustawienie usługi DNS zza firewalla potrzeba jedynie ustawienia DNS na maszynie z firewallem i inne maszyny za firewallem będą go używały.
Współpraca z serwerami proxy

Aby nasze aplikacje działały z serwerami proxy potrzebujemy dwóch różnych telnetów (jeden do komunikacji bezpośredniej drugi przez serwer proxy). SOCKS przychodzą z instrukcją jak obsługiwać (sockified) program, i z kilkoma programami przygotowanymi według odpowiednich zasad. Jeśli używamy sockified (nieprzetłumaczalne) wersji gdziekolwiek bezpośrednio, SOCKS automatycznie przełączy nas na właściwą wersję. Z tego powodu trzeba zmienić nazwy wszystkich programów w naszej chronionej sieci i zstąpić je wersjami sockified. Finger stanie się finger.orig, telnet stanie się telnet.origi tak dalej. Musimy powinformować SOCKS o każdym w pliku include/socks.h.

Dobre programy są w stanie dostarczać tablic trasowania i same przełączyć się do pracy w trybie sockified. Jednym z nich jest Netscape Navigator. Możemy używać serwerów proxy przez wprowadzenie adresu serwera (192.168.2.1 w naszym wypadku) w polu SOCKs w Menu Proxies. Każda aplikacja potrzebuje przynajmniej minimalnej informacji o tym co jest serwerem proxy.

Serwer proxy

Dopóki wszystkie trzy poziomu będą możliwe do pracy w ramach wyznaczonych zadań będą potrzebowały dostępu do sieci. Zewnętrzna sieć jest połączona bezpośrednio z internetem, tak więc nie ma tu zastosowania dla serwera pośredniczącego. Sieci Mercenary i Troop znajdują się za ścianą ogniową więc potrzebny jest im serwer proxy. Konfiguracja obu jest bardzo podobna. Oba mają takie same adresu IP. Jedyna różnica polega na nieco innych parametrach.

  1. Nie każdy może użyć serwera plików dla dostępu do Interntu, ponieważ wystawia to go na wirusy i ataki.
  2. Nie chcemy zezwolić sieci Troop na dostęp do WWW.

Po założeniu powyższych kryteriów w pliku sockd.conf w linuxie w sieci Troop znajdzie się następująca linia.

deny 192.168.2.17 255.255.255.255

a w stacji przeznaczonej dla Mercenary:

deny 192.168.2.23 255.255.255.255

W stacji linuxowej sieci Troop należy umieścić wpis:

deny 0.0.0.0 0.0.0.0 eq 80

Ta linia informuje o zabronionym dostępie dla wszystkich maszyn próbującym się dostać do portu równego (eq) 80 (http). Nadal pozwalamy  na dostęp do wszystkich usług z wyjątkiem WWW.

Teraz oba pliki powinny zawierać linie:

permit 192.168.2.0 255.255.255.0

by zezwolić wszystkim komputerom z sieci 192.168.2.xxx na użycie tego serwera pośredniczącego zamiast tego który został zakazany (np. serwer plików i dostęp do WWW z sieci Troop).

W sieci Troop w pliku sockd.confpowinien wyglądać następująco:

  • deny 192.168.2.17 255.255.255.255
  • deny 0.0.0.0 0.0.0.0 eq 80
  • permit 192.168.2.0 255.255.255.0

a w sieci Mercenary w ten sposób:

  • deny 192.168.2.23 255.255.255.255
  • permit 192.168.2.0 255.255.255.0

Takie ustawienia powinny zakończyć konfigurację wszystkiego.

Każda z sieci jest teraz izolowana, z prawidłowymi ustawieniami interakcji.

Przygotowanie Windows NT do połączenia z Internetem

Wiadomością na dobry początek jest, że domyślnie skonfigurowany Windows NT nie współpracuje z najbardziej niebezpiecznymi usługami Internetu. Niestety, chwyty pozwalające skutecznie zaatakować UNIX, są często równie skuteczne przeciwko Windows NT.
Zanim zaczniemy analizę pojęć i problemów związanych z ochroną systemów współpracujących z Internetem, przejrzymy krótko wewnętrzne rozwiązania, chroniące sieć Windows NT. Można je podzielić na cztery podstawowe grupy:

  1. Weryfikacja procesu rejestracji.
  2. Ochrona obiektów.
  3. Prawa użytkownika
  4. Nadzór.

Bezbłędnie skonfigurowane podsystemy ochronne Windows NT gwarantują bardzo bezpieczne środowisko sieciowe dla lokalnych i rozległych sieci korporacyjnych. Nawet doskonałe narzędzia Windows NT nie dają pełnej gwarancji bezpieczeństwa w związku z działalnością hakerów.

Zabezpieczanie firewalla

Firewall nie spełnia swojego zadania jeśli zostawia otwarte okno dla ataków przez nieużywane usługi. Hakerzy mogą zdobyć twierdzę i zmodyfikować ją dla swoich potrzeb.

Ważnym krokiem jest wyłączenie niepotrzebnych usług.. Plik /etc/inetd.conf kontroluje rzecz o nazwie ,,super serwer” – kontroluje uruchamianie usług na żądanie.

Kompletnie wyłączamy: netstat, systat, tftp, bootp oraz finger, kiedy już to zrobimy wysyłamy sygnał HUP do procesu inetd komendą: ” kill -HUP < pid > ” , gdzie < pid > jest numerem procesu inetd. Spowoduje to powtórne przeczytanie przez inetd pliku konfiguracyjnego (inetd.conf) i restart.

W tym miejscu możemy sprawdzić czy jesteśmy w stanie dostać się do portu obsługującego netstat telnet localhost 15 Jeśli otrzymamy wynik z netstata oznacza to, że zrestartowanie inetd nie odbyło się prawidłowo.

Konfiguracja filtrowania IP (IPFWADM)

By zacząć konfigurację filtrowania IP administrator musi włączyć przesyłanie pakietów IP w swoim jądrze i jego system powinien odsyłać wszystko co mu zostanie przesłane. Nasza tablica trasowania powinna być ustawiona i administrator powinien mieć dostęp tak wewnątrz jak do zewnętrznej Sieci. Domyślnie IP Forwarding w jądrze systemu odsyła wszystko. Dlatego nasze skrypty startowe firewalla powinny rozpoczynać swoja pracę od zakazania dostępu dla wszystkich i zerwania wszelkich połączeń dozwolonych w poprzednim uruchomieniu ipfw.

# Ustawianie rozliczania i odsyłania pakietów IP
#  Forwarding
# Domyślnie  wszystkie usługi są zakazane.
ipfwadm -F -p deny
# Zerwij wszystkie połączenia
ipfwadm -F -f
ipfwadm -I -f
ipfwadm -O -f

W tym momencie mamy doskonały firewall, który nie przepuszcza niczego. Bez wątpliwości pewna cześć usług powinna być przesyłana (tego dotyczy następny przykład) [1].

# przesyłanie poczty do naszego MTA
ipfwadm -F -a accept -b -P tcp -S 0.0.0.0/0 1024:65535 -D 192.1.2.10
25

# przesyłanie połączeń pocztowych do innych MTA
ipfwadm -F -a accept -b -P tcp -S 196.1.2.10 25 -D 0.0.0.0/0
1024:65535

# przesyłanie WWW do naszego serwera
/sbin/ipfwadm -F -a accept -b -P tcp -S 0.0.0.0/0 1024:65535 -D
196.1.2.11 80

# przesyłanie WWW do serwerów zewnętrznych
/sbin/ipfwadm -F -a accept -b -P tcp -S 196.1.2.* 80 -D 0.0.0.0/0
1024:65535

# przesyłanie ruchu DNS
/sbin/ipfwadm -F -a accept -b -P udp -S 0.0.0.0/0 53 -D
196.1.2.0/24

Jeśli administrator jest  zainteresowany rozliczaniem ruchu przechodzącego przez jego firewall, może zastosować niżej przedstawiony skrypt, który liczy każdy z pakietów.

# Zerwanie wszystkich połączeń
ipfwadm -A -f
# Rozliczanie
/sbin/ipfwadm -A -f
/sbin/ipfwadm -A out -i -S 196.1.2.0/24 -D 0.0.0.0/0
/sbin/ipfwadm -A out -i -S 0.0.0.0/0 -D 196.1.2.0/24
/sbin/ipfwadm -A in -i -S 196.1.2.0/24 -D 0.0.0.0/0
/sbin/ipfwadm -A in -i -S 0.0.0.0/0 -D 196.1.2.0/24


[1] na podstawie R. Ziegler „Linux. Firewalls“

Podsumowanie pracy magisterskiej

Dzisiaj podsumowanie pracy magisterskiej o zaporach ogniowych. Miłego czytania!

Podstawowa zasada działania wszelkich systemów ochronnych jest: „To co nie jest jawnie dozwolone – jest zakazane”. Firewalle (zapory ogniowe) są instalowane miedzy sieciami w celu wymuszenia kontroli dostępu miedzy nimi. Generalnie rzecz ujmując, firewalle zabezpieczają przed nieautoryzowanym dostępem z zewnątrz do sieci lokalnej. Niektóre nawet mogą całkowicie blokować ruch pakietów z zewnątrz – dopuszczając ewentualnie pakiety poczty elektronicznej – zezwalając jednakże na swobodne komunikowanie się użytkowników sieci ze światem zewnętrznym

Na rynku dostępnych jest wiele produktów sprzedawanych pod nazwa „Firewall”, lecz różnią się one poziomem oferowanych zabezpieczeń i przede wszystkim jakością. Przy zakupie lub budowie systemu zabezpieczeń trzeba wiedzieć przede wszystkim co zamierzamy chronić. Ochrona polega na trudnych wyborach między bezpieczeństwem z jednej strony, a użytecznością i kosztami z drugiej. Bezpieczeństwo jest odwrotnie proporcjonalne do użyteczności i kosztów. Im bezpieczniejszy system, tym jest trudniejszy w obsłudze i więcej w nim ograniczeń. Odpowiednio wzrastają również koszty administracji i konserwacji. Aby skutecznie balansować między bezpieczeństwem a przydatnością, trzeba dokładnie określić przedmiot podlegający ochronie.

Na przykład, jeśli ustawiamy serwer Web Centralnej Agencji Wywiadowczej, który będzie podłączony do sieci wewnętrznej agencji, to bezpieczeństwo jest problemem najwyższej wagi. Konfigurowany przez nas system może być furtką dla osób próbujących zagrozić bezpieczeństwu narodowemu USA. Z drugiej strony zaawansowana ochrona serwera Web małej firmy, sprzedającej pluszowe niedźwiadki może się po prostu nie opłacać. Jedna rzecz jest bezdyskusyjna – obydwa z tych serwerów powinny być chronione  – kwestią drugorzędna w jaki sposób ochrona ma być zaprojektowana. Duże korporacje mogą pozwolić sobie na projektowanie i wdrożenie drogich systemów dla małych firm i instytucji pozostają darmowe systemy typu Linux i oprogramowanie typu freeware i shareware.

Przy wyborze i projektowaniu zapór sieciowych stare przysłowie branżowe nie traci nic z aktualności: „Cena zabezpieczeń nie może przekraczać kosztów związanych z usunięciem szkód, jeśli zagrożenie się urzeczywistni”.

Systemowe filtrowanie TCP/IP

Aby wykorzystać systemowe rozwiązania ochronne TCP/IP, należy uruchomić panel sterowania i dwukrotnie kliknąć na ikonie Network, celem otwarcia odpowiedniego okna. Następnie kliknąć na etykiecie Protocols i wybrać z listy zainstalowanych protokołów pozycję TCP/IP. W oknie Microsoft TCP/IP Properties wybrać kartę IP Adressed, a następnie wcisnąć znajdujący się na niej przycisk Advanced, co spowoduje otwarcie się okna Advanced IP Adressing. Zaznaczyć pole wyboru Enable Security, znajdujące się w górnej części okna dialogowego, a następnie wcisnąć przycisk Configure. Wyświetli się okno TCP/IP Security To nowe narzędzie można śmiało określić mianem „zapory sieciowej dla ubogich”. Umożliwia relatywnie obszerne filtrowanie wywołań portów i protokołów, co skutecznie utrudnia próby włamanie się do sieci.

Konfigurowanie ochrony TCP/IP wybranego komputera, należy zacząć od wyboru właściwego adaptera sieciowego. Jeśli komputer jest wyposażony w więcej niż jedną kartę sieciową, to pomyłka może spowodować zablokowanie dostępu dla użytkowników z domen upoważnionych. Dla każdego protokołu możemy wybrać jedną z dwóch podstawowych opcji: Permit All lub Permit Only (zezwolenie dla wszystkich lub dla wybranych) Permit All – umożliwia komunikację za pośrednictwem określonego protokołu poprzez wszystkie porty serwera. Permit Only – umożliwia wybór portów, które będą akceptowały połączenie i przesyłały pakiety do serwera.

Wyłączenie niepotrzebnych portów jest silnym i ważnym sposobem zabezpieczania sieci. Po pierwsze, uniemożliwia hakerom zdobywanie informacji o systemie za pośrednictwem niektórych usług (przypomnijmy sobie „życzliwość” Telnetu). Po drugie, zapobiega wykorzystaniu zbędnych portów do ataku o nazwie SYN-Flood (zalanie potokiem pytań SYN), należącego do grupy „odmowa-usługi” (denial-of-service).

Agresja polega na przesłaniu do wybranego komputera, wywołania sieciowego o nazwie SYN, ze zmyślonym zwrotnym adresem IP, (technika znana jako oszustwo IP). Haker przesyła możliwie najwięcej wezwań, próbując zablokować maksymalną ilość zasobów atakowanej maszyny. Ta odbiera żądanie, wyznacza zasoby do obsługi nowego połączenia i odwzajemnia próbę kontaktu wezwaniem SYN-ACK.

Ponieważ sygnał SYN-ACK jest wysyłany pod nie istniejący adres, więc pozostaje bez odpowiedzi. Zaatakowany komputer kontynuuje próby odzyskania łączności. Microsoft Windows NT (zarówno 3.5, jak i 4.0) ponawia wezwanie SYN_ACK pięć razy (przy oryginalnych ustawieniach systemu). Okres oczekiwania na odpowiedź po pierwszej retransmisji sygnału wynosi 3 sekundy, po każdej kolejnej jest podwajany, zatem po piątej wynosi 48

sekund. Jeśli maszyna nie otrzyma odpowiedzi, to czeka kolejne 96 sekund, zanim zwolni zasoby czekające na transmisję. łączny czas blokowania zasobów wynosi 189 sekund. Do diagnozy ataku SYN-Flood można wykorzystać informacje o statusie połączeń. Wpisując w linii komend polecenie netstat -n -p -tcp, otrzymamy listę wszystkich trwających sesji komunikacyjnych swojego komputera. Jeśli wiele z nich jest w stanie SYN_RECEIVED, można przypuszczać, że staliśmy się obiektem agresji. Z dwóch wiadomości, dobra polega na tym, że haker stosujący ten typ ataku nie ma dostępu do systemu. Zła informacja, to ograniczona liczba połączeń, która mogą pozostawać w stanie SYN_RECEIVED. Jeśli limit zaatakowanego portu komputera jest wykorzystany, zazwyczaj wszystkie następne wezwania są ignorowane do czasu zwolnienia alokowanych zasobów.

Aby jak najlepiej chronić swój system, należy pozostawić aktywność jedynie tych portów, które są niezbędne do działania potrzebnych nam usług i aplikacji. Zazwyczaj powinniśmy wyłączyć wszystkie porty UDP o numerach mniejszych od 900, z wyjątkiem specyficznych, a koniecznych dla nas usług (na przykład FTP). W szczególności protokołu UPD nie powinny obsługiwać porty echo (7) oraz chargen (19), które są ulubionym celem ataku SYN-Flood.

Innym powszechnie znanym zagrożeniem jest działająca w systemie Windows komenda nbstat. Polecenie ujawnia ważne dane o systemie, takie jak nazwa domeny, czy nazwę serwera NetBIOS. Jeszcze gorzej, że owe informacje są udostępniane również użytkownikom korzystającym z anonimowego konta IIS (o ile oczywiście usługa IIS jest dostępna). Na szczęście, stosunkowo łatwo można odseparować świat zewnętrzny od usługi Nbstat. Wystarczy odłączyć porty 137 i 138 UDP oraz port 139 TCP na routerze lub zaporze sieciowej. Komenda jest wtedy całkowicie operatywna w sieci chronionej i niedostępna z zewnątrz. Jeśli komuś jeszcze mało problemów, to informujemy o kolejnej luce, tym razem w realizowanej przez Windows usłudze RPC. Użytkownik wykorzystując

Telnet poprzez port 135 może wprowadzić 10 losowych znaków i rozłączyć się, co w stu procentach zawiesi działanie CPU. Przeładowanie systemu rozwiązuje problem, ale jest to dość kosztowny sposób. Znane jest również zastosowanie tego samego chwytu do ogłupienia usług korzystających z dwu innych portów, mianowicie 53 oraz 1031.

Jeśli serwer DNS jest uruchomiony z portu 53, atak zawiesza go i konieczne jest ponowne uruchomienie systemu. Podobnie reaguje IIS napadnięty z portu 1031.