Firewall FREESCO
oraz opis komendy
ipfwadm


Administrowanie firewalem we FREESCO bazuje na komendzie ipfwadm służacej do administrowania regułami przepływu pakietów. Wyróżnia się trzy kierunki przepływu pakietów wejściowy input -I, wyjściowy output -O oraz przkazywania forward -F ponadto polecenie to pozwala zliczac ruch pakietow oraz ustawić połączenia maskowane masquerade pozwalające przyłączyć do jednego adresu "publicznego" wiele maszyn z "prywatnymii" adresami. Polecenie to nie ustawia przepływu pakietów, nie decyduje ono gdzie dany pakiet ma trafić, do którego interfejsu sieciowego. Sprawdza tylko jak pakiet, który się pojawił na wejściu Firewala (I, O, F) odpowiada odpowiednim regułom wejściowym, wyjściowym i przepływu i natej podstawie decyduje czy go przepuścić, nie przepuścić lub zamaskować. Jedynie w przypadku polecenia -F -m (maskarada) zmieniany jest w pakiecie adres żródłowy na adres interfejsu przez który jest on wysyłany w świat.

Polecenie ipfwadm
Na poczatek przedstawię tekst helpu ipfwadm:

[LINUX] ipfwadm -h

-ipfwadm 2.3.0, 1996/07/30

ipfwadm -A [direction] command [options] (accounting)
ipfwadm -F command [options] (forwarding firewall)
ipfwadm -I command [options] (input firewall)
ipfwadm -O command [options] (output firewall)
ipfwadm -M [-s | -l] [options] (masquerading entries)
ipfwadm -h (print this help information))
Commands:
-i [policy)
insert rule (no policy for accounting rules)
-a [policy]
append rule (no policy for accounting rules)
-d [policy)
delete rule (no policy for accounting rules)
-l
list all rules of this category
-z
reset packet/byte counters of all rules of this category
-f
remove all rules of this category
-p policy
change default policy (accept/deny/reject)
-s tcp tcpfin udp
set masuerading timeout values
-c
check acceptance of IP packet
Options:
-P
protocol (either tcp, udp, icmp, or all)
-S address[/mask] [port ...]
source specification
-D address[/mask] [port ...]
destination specification
-V address
network interface address
-W name
network interface name
-b
bidirectional match
-e
extended output mode
-k
match TCP packets only when ACK set
-m
masquerade packets as coming from local host
-n
numeric output of addresses and ports
-o
turn on kernel logging for matching packets
-r [port]
redirect packets to local port (transparent proxying)
-t and xor
and/xor masks for TOS field
-v
verbose mode
-x
expand numbers (display exact values)
-y
match TCP packets only when SYN set and ACK cleared




Ogólna składnia:

ipfwadm kategoria komendy parametry [opcje]

Kategorie
-A [kierunek]
Ustawienie liczemia ruchu, gdzie jako kierunek można podac in, out, both, domyślnym jest both.
-I
Reguła wejściowa
-O
Reguła wyjściowa
-F
Reguła przekazywania
-M [-l | -s]
Ustawienie maskarady. Ta kategoria moze być używana tylko z komendą -l i -s
Komendy
-f
Kasuje wszystkie reguły w danej kategorii
-a [polityka]
Dodanie nowej reguly; reguła jest dopisywana na koniec listy. Dla reguł liczenia ruchu polityki nie podaje się. Dla reguł firewala trzeba podać: accept, deny lub reject. Gdy nazwy źródłowa i/lub docelowa stanowią więcej niż jeden adres, reguła będzie spełniona dla każdej możliwej kombinacji adresów.
-i [polityka]
Wstawienie nowej reguły; reguła jest wstawiana na początek listy. Patrz opis komendy -a
-d [polityka]
Usunięcie istniejącej reguły. Składnia musi być identyczna z kasowaną konendą append/insert. Podane parametry musza odpowiadać dokładnie parametrom w podanym w kasowanej komendzie append lub insert, w przypadku niedopasowania reguła nie zostanie skasowana z listy.Zostanie skasowane tylko pierwsza pasująca reguła.
-p polityka
Ustawienie polityki domyślnej. Polityka domyślna jest stosowana gdy nie ma pasujących reguł.Ta komenda jest prawidłowa w polączeniu z -I, -O, -F.
polityka:
accept
Zezwolenie na odbiór, wysłanie lub przesłanie pasujących pakietów
deny
Nie pozwala na odbiór, wysłanie lub przesłanie pasujących pakietów
reject
Nie pozwala na odbiór, wysłanie lub przesłanie pasujących pakietów i wysyła komunikat błędu do hosta, który przesłał pakiet.
-l
Wylistowanie wszystkich reguł z wybranej kategorii. Może być łączona z komendą -z (kasowanie liczników) w takim wypadku liczniki bajtów i pakietów będa skasowane po wylistowaniu ich wartości O ile nie podano opcji -x licznik pakietów i bajtów (gdy będzie wyświetlany opcja -e) bedzie podawal liczbę K lub M gdzie 1K =1000 i 1 M =1000K (w zaokrągleniu).
-z
Kasuje liczniki pakietów/bajtów dla wszystkich wpisow w danej kategorii. Może być stosowana w połączeniu z komendą -l
-s tcp tcpfin udp
Ustwia wartosci czasu utrzymywania polączeń maskowanych. Komenda ma trzy parametry reprezentujące kolejno czas rozłaczenia (w sekundach) dla nie aktywnej sesji TCP, zakończonej sesji TCP i nieaktywnej sesji UDP. Komenda uzywana tylko w polączeniu z -M
-c
Sprawdzenie czy pakiet IP będzie zaakceptowany czy odrzucony przez wybrany typ firewalla w połączeniu z -I, -O, -F
Parametry

Następujące parametry mogą być używane w połaczeniu z komendami -a, -i, -d, -c.
-P protokół
protokół może mieć wartość tcp, udp, icmp lub all, All oznacza wszystkie protokóły, jast także domyślnym gdy nie podaje się tego parametru. Parametr wymagany dla komendy -c, all nie może być użyty z komendą -c.
-S adres[/maska] [port...]
Źrodło pakietu. Adres można podać jako nazwę hosta, nazwę sieci lub bezpośrednio adres IP. Maskę można podać bezpośrednio lub w postaci liczby np. masce 255.255.255.0 odpowiada 24. Jesli nie podano, maska przyjmuje wartość 32. Można określić, którego portu (portów, zakresu portów) dotyczy reguła, w takim przypadku trzeba podać parametr -P okreslający protokół (numeracja portów przypisana jest do protokółów). Wprzypadku ICMP pole portu używane jest do podania typu pakietu ICMP. Można podać jeden port , liste portów, lub zakres portów w postaci pierwszyport:ostatniport. Gdy parametr nie jest podany jako adres/maskę domyślna przyjmuje 0.0.0.0/0 pasujący do wszystkich adresów.
-D adres[/maska] [port...]
Adres docelowy. Tworzony w taki sam sposób jak dla parametru -S, Uwaga typ ICMP jest niedozwolony w polączeniu z parametrem -D, typ ICMP może być podany tylko po parametrze -S
-V adres
Określa adres iterfejsu sieciowego, na którym pakiet jest odbierany (-I) lub wysyłany (-O), podany jako nazwa hosta lub bezpośrednio adres IP. Gdy nie jest podany przyjmowany jest adres 0.0.0.0. Parametr konieczny dla komendy -c
-W nazwa
Określa nazwę interfejsu sieciuowego na którym pakiet jest odbierany (-I) lub wysyłany (-O).Gdy nie jest podany przyjmowana jest nazwa pusta, pasująca do wszystkich interfejsów, Parametr konieczny dla komendy -c.
Pozostałe opcje
-b
Tryb dwukierunkowy, dla tej opcji pasuje ruch w obie strony pomiedzy żródłem i celem. Ta opcja dzieła w połączeniu z z komendami -i, -a, -d.
-o
Pasujące pakiety są zapisywane w logu jądra.
-y
Opcja filtruje pakiety TCP. Pasuja tylko te, które mają ustawiony bit SYN i wyzerowany ACK.(opcja ignoruje pakiety innych typów). Działa w połaczeniu z komendami -a, -i, -d.
-e
Opcja powoduje, że komenda list pokazuje także adresy interfejsów i opcje reguł, a dla reguł firewala także liczniki pakietów i bajtów oraz maski TOS. W połączeniu z -M wyświetla dodatkowo initseq delta prevd. Pracuje tylko w połączeniu z -l
-x
Wyświetla pełne wartości liczników pakietów i bajtów. Daje efekt gdy wyświetlane są liczniki.
-t maska_and maska_or
Ustawienie bitów TOS
-k
Opcja filtruje pakiety potwierdzenia TCP. Pasują pakiety będące potwierdzeniem odbioru pakietów próbujących zestawić połączenie TCP, które mają ustawoony bit ACK. (opcja ignoruje pakiety innych typów). Działa w połaczeniu z komendami -a, -i, -d.
-v
Drukje dodatkowe infotmację o regule i pakietach. Opcja daje efekt w połączeniu z komendami -a, -i, -d i -c.
-m
Pakiety akceptowane przez regułę będą maskowane i wysyłane jako pochodzące z lokalnego hosta. Pakiety powracające są demaskowane automatycznie omijając firewall przekazujący. Dziala w połączeniu z -F i polityką accept
-n
Adresy IP i numery portów będa wypisywane w formacie numerycznym. Domyślnie program wyświetla nazwy hostów, sieci i usług.
-r [port]
Przeźroczyste PROXY. Przekierowuje pakiety na lokalny port. Działa w połączeniu z -I i polityką accept

dodatek typy pakietów ICMP
0 - powtórzenie odpowiedzi
3 - cel nieosiągalny
4- żródło nie aktywne
5 - przkierowanie
8 - żądanie powtórzenia
11 - czas upłynął
12 problem z parametrem
13 - żądanie znacznika czasu
14 - wysłanie znacznika czasy w odpowiedzi
15 - żądania informacji
16 - wysłania informacji w odpowiedzi
17 - żądanie maski adresu
18 - wysłanie maski adresu w odpowiedzi



To co najważniejsze przykłady i ich opis



Uwaga ogólna o tworzeniu firewala
Bardzo ważne jest odpowiednia kolejność reguł tak aby reguły ogólne znalazły się na końcu listy natomiast szczególowe na początku. (liste możemy w każdej chwili otrzymać wpisując ipfwadm -I/O/F -l[nex]). Bo jeśli komuś pozwolimy na wejście przez regułe ogólną to regułą szczególową podaną później mu nie zabronimy.

ipfwadm -I -f
ipfwadm -O -f
ipfwadm -F -f
To co robi się na początku wyczyszczenie wszystkich reguł.

Ipfwadm -I -p deny
Ipfwadm -O -p deny
Ipfwadm -F -p deny
Ustawienie domyślnej polityki firewali wejściowego, wyjściowego i przekazującego na deny czyli odrzucamy wszystko.

ipfwadm -I -a accept -W eth0 -S 192.168.0.0/24
ipfwadm -I -a accept -V 192.168.0.1 -S 192.168.0.0/255.255.255.0

Obie te komendy robia to samo wpisują na koniec listy firewala wejściowego zezwolenie na przesyłanie pakietów, których źródłem jest nasza sieć 192.168.0.0/24 przyłączono do interfejsu eth0 o adresie 192.168.0.1. Ponieważ nie podaliśmy adresu docelowego program przyjmie 0.0.0.0 czyli wszystkie możliwe adresy.


ipfwadm -I -a deny -P tcp -S 192.168.0.3 -D 0.0.0.0/0 80
Kolega z 192.168.0.3 podpadł nam to odcinamy mu strony www (port 80) na całym świecie. Gdybyśmy wpisali reguły w takiej kolejności jak podałem to niestety zabronienie by nie zadziałało bo wcześniejsza reguła ogólna pakiet by przepuściła. W takim wypadku należy zastosowaź komendę -i deny insert (wstaw). Podawanie adresy lub nazwy interfejsu sieciowego -W, -V nie jast konieczne, jesli pakiet taki pojawi się na jakimkolwiek interfejsie zostanie odrzucony.

ipfwadm -I -c -V 192.168.0.1 -W eth0 -P tcp -S 192.168.0.3 4000 -D 0.0.0.0/0 80
Sprawdzamy czy udało sie zablokować, otrzymamy odpowiedz czy pakiet został zaakceptowany czy odrzucony. Konieczne jest przy komendzie -c podanie nazwy i adresu interfejsu sieciowego, protokółu, adresu i portu źródłowego i docelowego (można podać tylko jeden port żrodłowy i docelowy oczywiscie mogą to być różne porty)

ipfwadm -I -a accept -P tcp -S 192.168.0.3 -D 0/0 80
ipfwadm -I -a deny -P tcp -S 192.168.0.3 -D 0/0

Te dwie komendy zabraniają dostępu z adresu 192.168.0.3 do wszystkiego za wyjątkien stron www. Pierwsza zezwala na dostęp do portu 80 a druga zabrania dostępu do wszystkiego. Pakiety na port 80 przejdą, inne nie.

ipfwadm -I -i deny -P tcp -S 192.168.0.3 -D 0/0
ipfwadm -I -i aceept -P tcp -S 192.168.0.3 -D 0/0 80
Te dwie komendy robia dokładnie to samo co poprzednie, ale podane są w odwrotnej kolejności bo wykorzystuja komende -i i druga komenda znajdzie sie na liście przed pierwszą. Komendy -i musiny użyć gdy "ręcznie" dopisujemy reguły do działającego firewala. W takim wypadku znajda sie one na początku spisu reguł i będą sprawdzane w pierwszej kolejniości. Należy byc bardzo ostrożnym przy dopisywaniu nowych reguł zwłaszcza zezwalających ponieważ w przypadku zlego wpisu mozemy bardzo obniżyć bezpieczeństwo systemu np. wpisując:
ipfwadm -I -i accept -S0/0 pozbawiamy się w ogóle ochrony bo pierwsza sprawdzana reguła pozwala na dostęp wszystkich wszędzie na wszystkich protokółach i portach tak, że następne reguły choćby najbardziej wymyślne nie będą miały czego blokować i przepuszczać. W przypadku tworzenia firewala od podstaw wygodniej jest używać komendy-a ponieważ kolejność komend w pisanym skrypcie będzie odpowiadać ich kolejności w czasie sprawdzania reguł.

ipfwadm -I -i deny -W eth0 -S 192.168.0.0/24
ipfwadm -I -i accept -W eth0 -S 192.168.0.4
ipfwadm -I -i accept -W eth0 -S 192.168.0.12
ipfwadm -I -i accept -W eth0 -S 192.168.0.35
ipfwadm -I -i accept -W eth0 -S 192.168.0.78
ipfwadm -I -i accept -W eth0 -S 192.168.0.159
Pierwsza linia zabrania wszystkim z sieci 192.168.0.0/24 na interfejsie eth0 dostępu wszędzie, następne odblokowuja dostęp dla hostów .4, .12, .35, .78, 159. Gdybyśmy chcieli zastosowac komendę -a to pierwsza linia powinna znależć sie na końcu.

ipfwadm -F -a accept -W eth0 -S 192.168.0.0/24 -D 192.168.1.0/24
ipfwadm -F -a accept -W eth1 -S 192.168.1.0/24 -D 192.168.0.0/24
ipfwadm -F -a masquerad -S 192.168.0.0/24
ipfwadm -F -a masquerad -S 192.168.1.0/24
Posiadamy dwie sieci, pierwsze dwie reguły umożliwiają ruch pakietów miedzy tymi sieciami, pakiety wysyłane z tych sieci, które nie odpowiadają tym regułom zostana zamaskowane i wysłane "w świat" zgodnie z tabelą routingu (to załatwiają inne polecenia, któtymi tu się nie zajmujemy). Pierwsze dwie linie muszą być wprowadzone, ponieważ w przypadku ich braku pakiety przesyłane między sieciami były by maskowane (bez sensu, co nie :-)) )

Ustawianie parametrów czasowych maskarady

ipfwadm -M -s tcp tcpfin udp

tcp
Czas przerwy w sesji tcp, jak dlugo polaczenie tcp może pozostawać zestawione bez przesyłania danych
tcpfin
Czas jaki połaczenie tcp pozostanie w tablicy po rozłaczeniu.
udp
Czas przerwy w sesji udp, jak dlugo połaczenie udp może pozostawać zestawione bez przesyłania danych




Przekierowanie



ipfwadm -I -i accept -P tcp -S 192.168.0.0/24 -r 80
Komenda ta powoduje, że wszystkie wywołania z sieci 192.168.0.0/24 dokądkolwiek są kierowane na 80 port (www) serwera dokładniejszy opis wykorzystania tej komendy znajduje sie tu


Do przekierowania portów z sieci Inet na komputery w sieci lokalnej służą dwie komendy:
- ipportfw - przekierowujaca jeden port
- ipautofw - przekierowująca zakres portów

ipportfw
Usage: ipportfw -A -[t|u] l.l.l.l/lport -R a.a.a.a/rport  dodaje wpis
ipportfw -D -[t|u] l.l.l.l/lport kasuje wpis
ipportfw -C kasuje tablice
ipportfw -L listowanie tablicy

l.l.l.l to adres lokalnego interfejsu odbierającego pakiety.
a.a.a.a adres hosta do którego przekierowujemy połaczenie.
lport to port z którego przekierowujemy.
rport to port na ktory przekierowujemy.
ipportfw -A -t 217.99.200.123/1550 -R 192.168.0.4/1550
Komenda ta powoduje, że wszystkie wywolania z sieci inet na interfejsie ppp0 skierowane do portu tcp 1550 będa kierowane (tunelowane) bezpośrednio do hosta w sieci eth0 192.168.0.4 na jego port 1550. Ma to zastosowanie przy połaczeniach typu p2p np. rozmowa głosowa GG, przy stawianiu serwerów gier, radia w winampie itp. gdy zdalny komp stwierdza, my jesteśmy za firewallem i nie może się z nami połączyć.Uwaga użytkownicy freesco, przekierowanie należy sprawdzać z sieci internet, nie dzała z sieci lokalnej !!! We freesco 0.2.7 przekierowania wpisuje się do pliku /mnt/router/ect/forward.cfg lub setup 47:
#_47x._[Port_forwarding_AKA_export_services]
#_
#_tcp|udp,incoming_port,local_computer_IP_addr/port
#_tcp|udp,port_wchodzący,IP_lokalnego_komputera/port
#_
#_Example:_t,80,192.168.168.2/80
#_this_will_open_worldwide_web_server_on_local_computer_192.168.168.2
#_
#_Example:_t,21,192.168.168.3/21
#_this_will_open_worldwide_ftp_server_on_local_computer_192.168.168.2
#_
#_Comment_must_be_on_separate_line_start_with_"#_"_and_should_not_have_spaces
t,1550,10.3.51.67/1550
t,1551,10.3.51.62/1551

ipautofw
Użycie:  ipautofw komenda opcje

Komendy:
-A dodaj nową pozycję do tabeli autoforwardingu
-D usuń pozycję z tabeli autoforwardingu
-F wyczyść tabelę autoforwardingu


opcje:
-r (typ)(niski)(wysoki) forwarding portów od (niski) do (wysoki) użwanych
przez protokół (typ) (tcp lub udp)

-h (host) adres IP komputera odbierającego forwardowane pakiety

-d (typ)(niski)(wysoki) określa zakres portów które nie będą używały domyślnego
(wysokiego 60000+) zakresu portów używanych przez maskaradę.

-p (typ)(wid)(host)(ukr) ustawia odbijanie z widocznego portu (wid) do hosta (adres IP}
za maskaradą na port podany w parametrze (ukr)

-c (type)(port) określa kontrolny port i protokoł

-u Do _not_ require that a host connect within
15 seconds of triggering the control port

-i Insecure mode; any host many connect after implied by not
using the -c option or implied by using the -h option once
the control port has been triggered
Niestety nie wiem co poeta miał na mysli w tych opcjach :-((

-v Tryb gadający, podaje wiecej informacji

Dzieki Mis' za tłumaczenie
Jesli ktoś ma dodatkowe informacje proszę o mail :-))

ipautofw -A -r tcp 4000 5000 -h 192.168.0.3
Komenda ta powoduje, że wszystkie wywolania z sieci inet skierowane do portów 4000 - 5000 będa kierowane (tunelowane) bezpośrednio do hosta 192.168.0.3 na jego porty 4000 - 5000.


W przypadku stosowania dodatkowych wpisów firewalla należy sprawdzic czy przekierowane porty nie są blokowane przez firewall.


Listowanie reguł




Ogółna składnia polecenia listującego reguły

ipfwadm -[O/I/ F/M] -l [nex]
W poleceniu listujacym reguły trzeba podać koniecznie, krórego firewala dotycza I, O, F lub M- listowanie wpisów maskarady, opcje -l oznaczajaca litowanie oraz mozna podać dodatkowo:
-n spowoduje ona, że adresy nie bedą podawane w postaci nazwy np. wp.pl ale adresu IP np. 192.168.0.3.
-e dodatkowo zostaną wyświetlone liczniki, informacje o opcjach, nazwie i adresie interfejsu, krórego dotyczy reguła
-x dziala w polączeniu z -e, liczniki wyświetlane są dokladnie a nie w zaokrągleniu do tysaca (K) i miliona (M).

ipfwadm -I -l
IP firewall input rules, default policy: reject
type prot source destination ports
acc icmp anywhere xxx.xxx.xxx.xx l 0,3,4,11,12
deny icmp anywhere anywhere 5
deny icmp anywhere anywhere 13:255
deny icmp anywhere anywhere any
rej tcp anywhere anywhere any -> ftp
rej tcp anywhere anywhere any -> 1114
rej udp anywhere anywhere any -> 1114
acc all anywhere anywhere n/a
acc all anywhere anywhere n/a


ipfwadm -I -ln
IP firewall input rules, default policy: reject
type prot source destination ports
acc icmp 0.0.0.0/0 217.99.200.123 0,3,4,11,12
deny icmp 0.0.0.0/0 0.0.0.0/0 5
deny icmp 0.0.0.0/0 0.0.0.0/0 13:255
deny icmp 0.0.0.0/0 0.0.0.0/0 *
rej tcp 0.0.0.0/0 0.0.0.0/0 * -> 21
rej tcp 0.0.0.0/0 0.0.0.0/0 * -> 1114
rej udp 0.0.0.0/0 0.0.0.0/0 * -> 1114
acc all 0.0.0.0/0 0.0.0.0/0 n/a
acc all 0.0.0.0/0 0.0.0.0/0 n/a

ipfwadm -I -le
IP firewall input rules, default policy: reject
pkts bytes type prot opt tosa tosx ifname ifaddress source destination ports
22 1248 acc icmp ---- 0xFF 0x00 ppp0 any anywhere x.x.x.x 0,3,4,11,12
0 0 deny icmp ---o 0xFF 0x00 ppp0 any anywhere anywhere 5
0 0 deny icmp ---o 0xFF 0x00 ppp0 any anywhere anywhere 13:255
12 480 den icmp ---o 0xFF 0x00 ppp0 any anywhere anywhere any
3 180 rej tcp --yo 0xFF 0x00 ppp0 any anywhere anywhere any -> ftp
0 0 rej tcp --yo 0xFF 0x00 ppp0 any anywhere anywhere any -> 1114
0 0 rej udp --yo 0xFF 0x00 ppp0 any anywhere anywhere any -> 1114
1274 166K acc all ---- 0xFF 0x00 lo any anywhere anywhere n/a
0 0 acc all ---- 0xFF 0x00 any 1.1.1.1 anywhere anywhere n/a

ipfwadm -I -lex
IP firewall input rules, default policy: reject
pkts bytes type prot opt tosa tosx ifname ifaddress
source destination ports
22 1248 acc icmp ---- 0xFF 0x00 ppp0 0.0.0.0
0.0.0.0/0 217.99.200.123 0,3,4,11,12
0 0 deny icmp ---o 0xFF 0x00 ppp0 0.0.0.0
0.0.0.0/0 0.0.0.0/0 5
0 0 deny icmp ---o 0xFF 0x00 ppp0 0.0.0.0
0.0.0.0/0 0.0.0.0/0 13:255
12 480 deny icmp ---o 0xFF 0x00 ppp0 0.0.0.0
0.0.0.0/0 0.0.0.0/0 *
3 180 rej tcp --yo 0xFF 0x00 ppp0 0.0.0.0
0.0.0.0/0 0.0.0.0/0 * -> 21
0 0 rej tcp --yo 0xFF 0x00 ppp0 0.0.0.0
0.0.0.0/0 0.0.0.0/0 * -> 1114
0 0 rej udp --yo 0xFF 0x00 ppp0 0.0.0.0
0.0.0.0/0 0.0.0.0/0 * -> 1114
1492 194429 acc all ---- 0xFF 0x00 lo 0.0.0.0
0.0.0.0/0 0.0.0.0/0 n/a
0 0 acc all ---- 0xFF 0x00 * 1.1.1.1
0.0.0.0/0 0.0.0.0/0 n/a

ipfwadm -M -ln
IP masquerading entries
prot expire source destination ports
tcp 11:59.95 192.168.0.4 216.234.109.21 1999 (64862) -> 8000
Uwaga z powodu blędu w kodzie ipfwadm po wydaniu polecenia
ipfwadm -M -l[nex]
gdy w tablicy maskarady jest zapisane połączenie maskowane ICMP (np PING) zamiast spisu otrzymujemy błąd:
[LINUX] ipfwadm -M -l
IP masquerading entries
ipfwadm: unexpected input data
Try `ipfwadm -h' for more information.
Tu możesz pobrać poprawione przez Jeremian ipfwadm. Do niego proszę kierować uwagi i informację o błedach. Polecenie nie jest jeszcze dobrze przetestowane :-))
Użytkownicy freesco wpisują:
[Linux] snarf http://zciech.w.interia.pl/ipfwadm
pilk po nadaniu atrybutu
[Linux]chmod 755 ipfwadm
należy umieścić w katalogu /mnt/router/fix


Liczenie ruchu



Ogółna składnia polecenia liczącego ruch pakietów IP jest następująca

ipfwadm -A [ kierunek ] [ polecenie ] [ parametry ]
kierunek przyjmuje jedną z wartości in, out lub both. Są to kierunki ruchu z punktu widzenia serwera, więc in oznacza dane przychodzace z sieci do serwera, out dane wysłane do sieci. Kierunek both stanowi sume danych przychodzacych i wychodzacych.Znajduje sie tu pewna pułapka dla niedoświadczonego użytkownika, który piszac regułe:

ipfwadm -A both -a -S 192.168.0.2 -D 0/0
mysli, że reguła będzi zliczała ruch wchodzacy i wychodzacy z hosta 192.168.0.2 do i z sieci. Tak sie jednak nie stanie ponieważ regule odpowiadac będą tylko pakiety wysłane z 192.168.0.2 do sieci, natomiast przychodzace z sieci zliczane nie będa. Reguła więc zlicza de fakto ruch in. Nasuwa się więc pytanie co w takiej sytuacji robić. Z pomocą przychodzi nam opcja -b oznaczająca, że do reguły pasuja pakiety wysłane ze 192.168.0.2 do kogokolwiek, jak również przysyłane z sieci do 192.168.0.2 a o to nam chodzilo. Poprawna reguła wygłada tak:

ipfwadm -A both -a -S 192.168.0.2 -D 0/0 -b
Przy komendach -a, -i, -d w regułach zliczania nie podaje się polityki.
Ruch mozemy zliczać w dowolny sposób, w/g hostów, interfejsów, portów:

ipfwadm -A both -a -W eth0
ipfwadm -A both -a -W eth0 -P tcp -S 0/0 www -b
ipfwadm -A both -a -P tcp -D 192.168.0.0/24 21 -b
Gdy ustawiliśmy już reguły zlicznia, chcieli byśmy zobaczyś rezultaty zliczania. Najprostrzym sposobem jest podanie komendy:

ipfwadm -A -l [nex]
ipfwadm -A -l

w wyniku otrzymujemy:
IP accounting rules
pkts bytes dir prot source destination ports
4431 3386K i/o all anywhere anywhere n/a
17 781 i/o all xxx.xxx anywhere n/a
1585 1249K i/o all yyy.xxx anywhere n/a

ipfwadm -A -ln

w wyniku otrzymujemy:
IP accounting rules
pkts bytes dir prot source destination ports
1710 1135K i/o all 0.0.0.0/0 0.0.0.0/0 n/a
17 781 i/o all 192.168.0.2 0.0.0.0/0 n/a
220 123K i/o all 192.168.0.4 0.0.0.0/0 n/a

ipfwadm -A -le

w wyniku otrzymujemy:
IP accounting rules
pkts bytes dir prot opt ifname ifaddress source destination ports
10864 8611K i/o all b--- any any anywhere anywhere n/a
40 2230 i/o all b--- any any xxx.xxx anywhere n/a
4781 3860K i/o all b--- any any yyy.xxx anywhere n/a
dir
Kierunek, krórego dotyczy reguła in, out, i/o
prot
Protokoły
opt
Zakodowana postać opcji używanych w wywołaniu ipfwadm
ifname
Nazwa interfejsu sieciowego
ifaddress
Adres interfejsu siecowego

Domyslnie ipfwadm wyświetla liczniki pakietow i bajtow w skróconej postaci, w zaokrągleniu do tysiaca (K) lub miliona (M), Jesli chcemy otzrymać dokladny wynik używamy opcji -x:

ipfwadm -A -lex
IP accounting rules
pkts bytes dir prot opt ifname ifaddress source destination ports
3249 2761623 i/o all b--- any any anywhere anywhere n/a
18 1010 i/o all b--- any any xxx.xxx anywhere n/a
1623 1380316 i/o all b--- any any yyy.xxx anywhere n/a

Zerowanie liczników
Liczniki pozostawione same sobie po pewnym czasie przepełnia się i trudno będzie ustalić rzeczywista wartośc ruchu. Aby temu zapobiec należy je kasować, złuży do tego opcja -z:

ipfwadm -A -z
Można połaczyć odczytywanie liczników z ich kasowaniem:

ipfwadm -A -lz

Po przełaczeniu karty sieciowej w tryb przechwytywania (promiscuous) za pomaca ifconfig:
eth0      Link encap:10Mbps Ethernet  HWaddr 00:30:4F:17:28:32
inet addr:192.168.0.1 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1

Można tworzyć reguły zliczania ruchu między hostami znajdującymu się w sieci, podłaczonych do naszego interfejsu sieciowego np:

ipfwadm -A both -a -S 192.168.0.2 -D 192.168.0.4 -b
ipfwadm -A -ln

IP accounting rules
pkts bytes dir prot source destination ports
118 43425 i/o all 192.168.0.2 192.168.0.4 n/a




Tu jest rozebrany na czynniki pierwsze skrypt /mnt/routetr/rc/rc_masq z pakietu freesco

Przykład użycia skryptu /mnt/router/rc/rc_user do blokowania niektórych hostów

Jeśli masz jakieś uwagi, pytania lub sugestie to napisz do mnie

Oryginalne żródła ipfwadm

Dla pogłębienia i poszerzenia wiedzy o sieci, TC/IP, uslugach itd, itp, polecam Linux - przewodnik administratora sieci autorzy Olaf Krch i Terry Dawson dzieki której to publikacji poznałem tą piękną komendę :-)))


A teraz trochę komercji :-)
Jesłi zawarte na tej stronie informacje przydały Ci do czegoś to proszę kliknij na baner

[Allegro.pl - Twój serwis aukcyjny, z nami zrobisz najlepsze interesy!]

Zostaniesz przeniesiony w magiczny świat Aukcji internetowych ;-)





Zciech 06.03.2003

<< | losowa> | lista> | >>
  


Do 06.03.2003 - 9.340 odwiedzin
Od 06.03.2003