- 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
Zostaniesz przeniesiony w magiczny
świat Aukcji internetowych ;-)
Zciech 06.03.2003
Do 06.03.2003 - 9.340 odwiedzin
Od 06.03.2003