ipchains

IPCHAINS(8)							   IPCHAINS(8)



JMENO
       ipchains - Konfigurace IP firewallu

POUZITI
       ipchains -[ADC] retezec pravidlo [volby]
       ipchains -[RI] retezec cislo_pravidla pravidlo [volby]
       ipchains -D retezec cislo_pravidla [volby]
       ipchains -[LFZNX] [retezec] [volby]
       ipchains -P retezec cil [volby]
       ipchains -M [ -L | -S ] [volby]

POPIS
       Ipchains	 slouzi	 k  nastaveni,	 udrzovani  a  sledovani firewallovych
       pravidel v Linuxovem jadru.  Tato pravidla lze rozdelit do 4 kategorii:
       pravidla	 pro  pakety prichozi (input chains), odchozi (output chains),
       pakety  predavane  dale	(forward   chains)   a	 pravidla   definovana
       uzivatelem.

       Pro kazdou z techto kategorii je udrzovana samostatna tabulka pravidel,
       z  nichz	 kterekoliv  muze  odkazovat  na dalsi, uzivatelem  definovana
       pravidla.

       Dalsi podrobnosti viz.  ipfw(4).

CILE (TARGETS)
       Firewallove  pravidlo  urcuje jednak vlastnosti paketu a dale jeho cil.
       Pokud  paket  danemu  pravidlu  svymi   vlastnosti    neodpovida,    je
       testovan	 nasledujicim  pravidlem;  pokud  vyhovuje,  bude zkontrolovan
       pravidlem urcenym parametrem cil (target), coz muze byt pravidlo, ktere
       nadefinoval  uzivatel  nebo  jedna  ze specialnich hodnot ACCEPT, DENY,
       REJECT, MASQ, REDIRECT, nebo RETURN.
       ACCEPT znamena, ze paket muze firewallem projit.	 DENY znamena,	ze  se
       paket  zahodi.  REJECT je v podstate to same jako DENY, ale je snadneji
       laditelny a vuci druhe strane slusnejsi,	 nebot	ji  odesle  zpet  ICMP
       zpravu informujici o zahozeni paketu. (pozor: DENY and REJECT znamenaji
       pro ICMP pakety totez). [Pozor: neni to pravda;	nastaveni  REJECT  pro
       ICMP ucini ICMP port nedostupnym!]
       MASQ  je pouzitelny pouze v uzivatelem definovanych pravidlech a pravi-
       dlech pro pruchod paketu (forward chains) a pouze v pripade,  ze	 jadro
       bylo  zkompilovano  s volbou CONFIG_IP_MASQUERADE.  Takove paketu budou
       upraveny (maskaradovany) jakoby pochazely z lokalniho pocitace a pakety
       prichazejici  zpet  budou  automaticky  odmaskaradovany	aniz by musely
       projit sadou pravidel pro pruchod.
       REDIRECT lze pouzit jen v pravidlech  pro  vstup	 (input	 chains)  a  v
       uzivatelskych pravidlech. Pro pouziti je nutne mit jadro zkompilovane s
       volbou CONFIG_IP_TRANSPARENT_PROXY.  Tyto pakety budou presmerovany  na
       mistni  port  pouze  v  pripade,	 ze byly odeslany na vzdaleny pocitac.
       Pokud je presmerovani nastaveno	na  port  0  (vychozi  hodnota),  bude
       cilovy  port tyz jako mel byt port na vzdalenem pocitaci. Jako parametr
       vsak lze pouzit cislo portu, na ktery ma byt paket presmerovan.
       Jestlize byla vycerpana	vsechna	 uzivatelska  pravidla	nebo  vyhovuje
       pravidlo s cilem RETURN, pak se pokracuje dalsim pravidlem v predchozim
       (volajicim) retezci pravidel. Pokud se  dojde  az  na  konec  vnoreneho
       retezce	pravidel  nebo	vyhovi	pravidlo  s cilem RETURN, pak je dalsi
       cesta paketu dana cilem pro cely retezec pravidel (chain policy).

VOLBY (OPTIONS)
       Volby programu ipchains se deli do nekolika ruznych skupin.

   PRIKAZY (COMMANDS)
       Prikazy specifikuji ruzne akce, ktere se maji provest; jednim  prikazem
       muze  byt  provedena  pouze  jedna  jedina  akce; ostatni by musely byt
       provedeny postupne pomoci dalsich prikazu. Kazdou dlouhou verzi prikazu
       a oznaceni volby lze zkratit; je nutno pouzit tolik znaku, aby ipchains
       dokazal jednoznacne urcit, o kterou volbu se jedna.

       -A, --append
	      Prida  jedno  ci	vice  pravidel	na  konec  vybraneho   retezce
	      pravidel.	 Pokud lze oznaceni odesilatele a/nebo prijemce paketu
	      prelozit na vice nez jednu  adresu,  bude	 pravidlo  pridano  do
	      vsech moznych kombinaci adres.

       -D, --delete
	      Smaze  jedno  nebo  vice	pravidel  z urceneho retezce pravidel.
	      Tento prikaz ma dve syntaxe: prikaz muze byt urcen bud poradovym
	      cislem  pravidla	v  retezci  (prvni  ma	cislo 1) nebo muze byt
	      pravidlo urcene ke smazani cele vypsano (najde se odpovidajici).

       -R, --replace
	      Nahradi  pravidlo	 ve  vybranem  retezci. Pokud neni jednoznacne
	      urcen adresat  a/nebo  prijemce,	prikaz	selze.	Pravidla  jsou
	      cislovana od 1.

       -I, --insert
	      Vlozi  na	 urcene	 misto	ve  vybranem  retezci  jedno  ci  vice
	      pravidel.	 Pokud ma  pravidlo  cislo  1,	pak  bude  vlozeno  na
	      zacatek retezce.

       -L, --list
	      Vypise vsechna pravidla v retezci. Pokud neni urcen retezec, pak
	      se vypisi vsechna pravidla. Lze take pouzit volbu -Z (zero), kdy
	      nemuze  byt  urcen  zadny	 retezec.  Vystup  prikazu  je pak dan
	      dalsimi argumenty.

       -F, --flush
	      Prikaz smaze vsechna pravidla v retezci.

       -Z, --zero
	      Vynuluje pocitadla paketu a bytu ve vsech retezcich. Lze	pouzit
	      volbu  -L,  --list  (list)  pro  vypsani	pocitadel  pred jejich
	      vynulovanim; pokud je to provedeno, nelze zadat  urcity  retezec
	      (budou vsechny zobrazeny a ihned vynulovany).

       -N, --new-chain
	      Vytvori  novy  retezec  (uzivatelsky)  se	 zadanym jmenem. Nesmi
	      existovat cil se stejnym nazvem.

       -X, --delete-chain
	      Smaze urceny uzivatelem nadefinovany retezec pravidel. Na	 tento
	      retezec  nesmi  existovat	 zadne odkazy (pokud existuji pravidla
	      odkazujici na takove pravidlo, musi byt nejdrive odstranena nebo
	      nahrazena	 novymi).   Pokud  neni	 zadan zadny parametr, dojde k
	      odstraneni vsech retezcu, ktere byly definovany uzivatelem.

       -P, --policy
	      Nastavi cil pro zadany retezec. Pouzitelne parametry: viz	 kapi-
	      tola  TARGETS  Tento parametr lze pouzit pouze u neuzivatelskych
	      retezcu. Cilem nesmi byt zadny z retezcu	(ani  uzivatelsky  ani
	      neuzivatelsky).

       -M, --masquerading
	      Tato  volba zobrazi vsechny prave maskaradovana spojeni (ve spo-
	      jeni s volbou  -L	 option)  nebo	nastavi	 parametry  jadra  pro
	      maskaradovani (s volbou) -S

       -S, --set tcp tcpfin udp
	      Meni  hodnoty prodlev u maskaradovani. Prikaz musi mit 3 parame-
	      try, ktere urcuji prodlevu (v sekundach) pro  TCP	 spojeni,  TCP
	      spojeni  po  obdrzeni  FIN  paketu  a pakety UDP. Nulova hodnota
	      nektereho z parametru znamena, ze se ma ponechat	soucasna  hod-
	      nota. Tuto volbu lze pouzit pouze s parametrem -M

       -C, --check
	      Zkontroluje   dany  paket	 vybranym  retezcem  pravidel.	Je  to
	      uzitecne pro  testovani  zda  jdou  k  testovani	tohoto	paketu
	      pouzity  stejne  rutiny  jadra  jako  k  testovani  "skutecnych"
	      sitovych paketu.	Lze  pouzit  pro  zkouseni  jak	 uzivatelskych
	      retezcu  tak  retezcu  vestavenych.  Stejne  parametry  jako  se
	      pouzivaji pro urceni pravidel se pouzivaji k  vytvoreni  paketu,
	      ktery  ma	 byt otestovan. Parametry -s (source [odesilatel]), -d
	      (destination  [prijemce]),  -p  (protocol	 [protokol]),  and  -i
	      (interface [sitove rozhrani]) jsou povinne.

       -h, --help
	      Vypise  strucny  popis  syntaxe  prikazu.	 Pokud napr. nasleduje
	      slovo icmp, pak je vypsan seznam jmen ICMP.

       -V, --version
	      Vypise verzi programu ipchains.

   PARAMETRY
       Nasledujici parametry slouzi pro specifikaci pravidel (stejne  jako  se
       pouzivaji v prikazech add, delete, replace, append a check).

       -p, --protocol[!] protocol
	      Urcuje protokol pravidla nebo paketu, ktery ma byt zkontrolovan.
	      Lze pouzit nasledujici protokoly: tcp, udp, icmp nebo  all.   Je
	      mozne  pouzit  i	ciselnou  hodnotu,  ktera reprezentuje jeden z
	      techto protokolu nebo take  jmeno	 protokolu  z  /etc/protocols.
	      Argument	"!" pred protokolem invertuje vyznam. Cislo 0 je ekvi-
	      valentem k all.  Protokol all vyhovi vsem protokolum a je pouzit
	      jako  vychozi,  pokud neni specifikovan zadny protokol all nelze
	      pouzit v zadne kombinace s prikazem check.

       -s, --source, --src [!] addresa[/maska] [!] [port[:port]]
	      Urceni odesilatele.  Adresa muze to  byt	bud  jmeno  hostitele,
	      jmeno  site  nebo IP adresa.  Maska muze byt bud maska site nebo
	      cislo, ktere urcuje zleva pocet jednicek v  masce	 site.	 Napr.
	      maska 24 odpovida 255.255.255.0.	Argument "!" neguje vyznam.
	      Oznaceni	odesilatele  muze  obsahovat i port nebo typ ICMP. Lze
	      pouzit bud jmeno sluzby, cislo portu, ciselne oznaceni typu ICMP
	      nebo jedno ze slovnich oznaceni typu ICMP, ktere vypise prikaz
	       ipchains -h icmp
	      Mnoho  z	techto jmen oznacuje jak typ tak kod, pricemz ICMP kod
	      je po parametru -d neplatny. Ve zbytku odstavce port znamena bud
	      specifikaci  portu  nebo	typ  ICMP.   Rozsah  portu  lze	 urcit
	      pouzitim formatu port:port.  Pokud neni zadan prvni port, je  za
	      nej  dosazena  "0";  pri	absenci	 koncoveho  portu  je dosazeno
	      "65535".
	      Porty lze specifikovat pouze v kombinaci s tcp, udp,  nebo  icmp
	      protokoly.   "!"	pred  oznacenim portu neguje vyznam.  Pokud je
	      pouzit prikaz check je nutne zadat jeden port a s parametrem  -f
	      (fragment) nelze zadat zadny port.

       --source-port [!] [port[:port]]
	      Tento  parametr  umozni  zvlast  urcit zdrojovy port nebo rozsah
	      portu.  Podrobnosti viz. vyse parametr -s --sport

       -d, --destination, --dst [!] address[/mask] [!] [port[:port]]
	      Urceni prijemce.	Detaily k syntaxi viz. podrobnosti k parametru
	      -s  (source).  Pro  ICMP	ktere  nema  porty, "destination port"
	      oznacuje numericky ICMP kod.

       --destination-port [!] [port[:port]]
	      Pomoci teto volby lze urcit porty. Podrobnosti viz. parametr  -s
	      Zkracene lze tento parametr zapsat --dport

       --icmp-type [!] jmeno_typu
	      Slouzi  ke specifikaci typu ICMP. (pouziti -h icmp vypise platna
	      jmena ICMP typu). Je to vhodnejsi nez pridavani  do  specifikace
	      prijemce.

       -j, --jump cil
	      Tento parametr urcuje cil pravidla; tj. co se ma s paketem delat
	      pokud tomuto pravidlu vyhovi. Cilem muze byt uzivatelem  defino-
	      vany  retezec  pravidel  (ne  vsak  ten  jehoz  soucasti je toto
	      pravidlo) nebo jeden ze specialnich cilu, ktery primo urcuje  co
	      se  bude	s  paketem  dit dal. Pokud tento parametr chybi, pak i
	      kdyz paket pravidlu vyhovi dojde pouze k inkrementaci pocitadla,
	      ale nijak to neovlivni jeho cestu.

       -i, --interface [!] name
	      Volitelne	 lze  zadat  jmeno  sitoveho  rozhrani skrze ktere byl
	      paket obdrzen (pro pakety testovane v retezci pro vstup -	 input
	      chain)  nebo  skrze  ktere bude pokracovat dale (forward chain).
	      Pokud parametr chybi,  vyhovi  jakekoliv	rozhrani.  "!"	obraci
	      vyznam.  Jestlize oznaceni rozhrani konci znakem "+", pak vyhovi
	      vsechna rozhrani ktera zacinaji urcenymi znaky.

       [!]  -f, --fragment
	      Pri pouziti tohoto parametru budou testovany pouze druhe a dalsi
	      casti  fragmentovaneho paketu. Nelze zadnym zpusobem urcit zdro-
	      jovy nebo cilovy port paketu (nebo typ ICMP), proto paket	 nevy-
	      hovi  zadnemu  pravidlu,	ktere  jej bude specifikovat. Znak "!"
	      invertuje vyznam.

   DALSI VOLBY
       Dale je mozno pouzit nasledujici rozsirujici volby:

       -b, --bidirectional
	      Obousmerny rezim. Pravidlu vyhovi IP pakety v obou  smerech;  Je
	      to   totez   jako	  opakovane   pouziti  pravidla	 s  prohozenym
	      odesilatelem a prijemcem. Neznamena to, ze  pokud	 povolite  TCP
	      SYN  pakety  ven,	 tak  -b  umozni vstup non-SYN paketu dovnitr:
	      zpetna pravidla jsou stale tataz pravidla, ktera byla zadana.  Z
	      toho  vyplyva, ze obvykle byva jednodussi nepouzivat -b a vypsat
	      jednotliva pravidla.

       -v, --verbose
	      Upovidany vystup. Prikaz pro vypis s touto volbou vypise	adresy
	      rozhrani,	 volby	u  pravidel (pokud existuji) a masky TOS. Dale
	      jsou vypsana pocitadla paketu a bytu s priponami 'K', 'M' or 'G'
	      pro  1000,  1,000,000  a 1,000,000,000 nasobky (viz. parametr -x
	      pro zmenu). V kombinaci s parametrem -M, se navic vypisi	infor-
	      mace  souvisejici	 s  cisly  delta  sekvence.   Pro pripojovani,
	      vkladani, mazani a nahrazovani dojde k vypsani detailnich infor-
	      maci o pravidlech.

       -n, --numeric
	      Ciselny  vystup.	 IP  adresy  a	cisla  portu  budou  vypsana v
	      ciselnem formatu. Bezne se je program snazi  prelozit  na	 jmena
	      hostitelu, siti nebo sluzeb.

       -l, --log
	      Zapne  logovani  vyhovujicich  paketu.  Pokud  je	 tato  volba u
	      pravidla nastavena, jadro Linuxu bude  vypisovat	informace  (IP
	      hlavicky) o vsech vyhovujicich paketech pres printk().

       -o, --output [maxsize]
	      Kopiruje	vyhovujici  pakety  na	userspace  zarizeni. Slouzi to
	      hlavne  vyvojarum,  kteri	 by  si	 chteli	 hrat  s  firewally  v
	      userspace.  Volitelny argument maxsize urcuje limit kopirovanych
	      paketu v bytech. Tato volba je platna  pouze  pokud  bylo	 jadro
	      kompilovano s volbou CONFIG_IP_FIREWALL_NETLINK.

       -m, --mark markvalue
	      Oznacovani   vyhovujicich	 paketu.  Pakety  mohou	 byt  oznaceny
	      32bitovou hodnotou, ktera muze (jednou) zmenit zpusob, jak se  s
	      nimi  bude  manipulovat. Pokud nejste kernel hacker, patrne se o
	      to nebude zajimat.  Pokud parametr  markvalue  zacina  "+"  nebo
	      "-",  pak	 tato  hodnota bude prictena nebo odectena od aktualni
	      hodnoty znaceni paketu (zacina nulou).

       -t, --TOS andmask xormask
	      Masky pouzivane pro upravy TOS  pole  v  IP  hlavicce.  Jestlize
	      paket  vyhovuje  pravidlu,  jeho TOS pole je bitove vynasobeno s
	      prvni maskou a vysledek je pote bitove secten s  druhou  maskou.
	      Maska  se	 zadava	 jako sestnactkova osmibitova hodnota. Protoze
	      LSB v poli TOS musi zustat nezemneny (RFC	 1349),	 jsou  hodnoty
	      TOS,  ktere  by  mohly  zmenu  zpusobit,	odmitnuty  stejne jako
	      vsechna pravidla, ktera  vzdy  meni  vice	 nez  jeden  TOS  bit.
	      Pravidla,	 ktera	nastavuji  vice	 TOS  bitu  pro urcite pakety,
	      posilaji na standardni vystup hlaseni, ktera  muzeme  ignorovat,
	      pokud  vime,  ze na pakety s takovymi hodnotami TOS nebudou tato
	      pravidla aplikovana.  Je samozrejme,  ze	manipulace  s  TOS  je
	      bezvyznamna pokud ma pravidlo cil DENY nebo REJECT.

       -x, --exact
	      Uplna  cisla.   Vypisuje	skutecne hodnoty paketovych a bytovych
	      pocitadel	 misto	 jejich	  zaokrouhleni	 ve   tvaru   K	  (pro
	      1000nasobek), M (1000K), G (1000M). Tato volba ma vyznam pouze s
	      prikazem -L.

       [!] -y, --syn
	      Vyhovuji pouze TCP pakety s nastavenym SYN bitem a nulovymi  ACK
	      a	 FIN bity. Tyto pakety jsou pouzivany pri zadostech o navazani
	      TCP spojeni;  napr.  zablokovani	takovych  paketu  na  rozhrani
	      neumozni	 prichozi  TCP	spojeni,  ale  odchozi	spojeni	 budou
	      normalne fungovat.  Tato volba ma vyznam pouze pokud je pouzivan
	      protokol TCP. Pokud je pred -y "!", pak se obraci vyznam.

       --line-numbers
	      Pri  vypisu  pravidel  prida  cisla  radku  na  zacatky  kazdeho
	      pravidla podle jeho umisteni v retezci.

       --no-warnings
	      Zakaze veskera hlaseni.

SOUBORY
       /proc/net/ip_fwchains
       /proc/net/ip_masquerade

DIAGNOSTIKA
       Nejruznejsi chyby jsou zobrazovany  na  standardnim  chybovem  vystupu.
       Pri  spravne  funkci  je	 navratova hodnota 0. Chyby, ktere jsou zrejme
       zpusobeny nespravnymi parametry prikazu maji  navratovou	 hodnotu  2  a
       ostatni chyby maji navratovou hodnotu 1.


CHYBY
       Jestlize	 je  vstupem  terminal a je vlozeno nebo pripojeno pravidlo do
       retezce pravidel pro dale predavane pakety (forward chain),  neni  pov-
       olen  IP forwarding a je pouzit parametr --no-warnings je na standardni
       vystup vypsana zprava, ze predavani paketu nebude fungovat dokud	 nedo-
       jde k naprave. To ma pomoci uzivatelum, kteri nevedi o nutnosti IP for-
       wardingu (coz neexistovalo v jadrech 2.0).

       Neexistuje zpusob jak vynulovat zaroven	paketove  a  bytove  pocitadlo
       pomoci jedineho retezce. Jedna se o omezeni jadra.

       Detekce	smycek neni v ipchains hotova; pakety ve smycce budou zahozeny
       a zapsany do logu, ale je to to prvni co se naleznete  pokud  vytvorite
       smycku.

       Vyklad  toho, co se deje pri oznacovani paketu je umyslne nejasny dokud
       nevyjde dokumentace popisujici rutiny pro praci s pakety v jadrech 2.1.

       Nelze  vynulovat	 pocitadla pravidel pro retezce (policy) tj. ty, ktere
       patri do neuzivatelskych (built-in) retezcu.

POZNAMKY
       Program ipchains se znacne lisi od programu  ipfwadm  (autor  Jos  Vos)
       tim,  ze pouziva nove IP firewallove konstrukce. Je nadstavbou programu
       ipfwadm a obecne pouziva mapovani prikazu 1:1. Verim, ze	 nove  prikazy
       budou  srozumitelnejsi.	Nicmene	 je zde mnoho zmen, o kterych byste se
       meli informovat.

       S fragmenty se pracuje ruzne. Vsechny  fragmenty	 krome	prvniho	 mohly
       prochazet  (coz je obvykle bezpecne); nyni je mozne je filtrovat.  Zna-
       mena to, ze byste pravdepodobne meli pridat  jednoznacne	 pravidlo  pro
       akceptovani  fragmentu  pokud  prechazite  na  ipchains.	 Tez  je dobre
       podivat se na stary  system  pocitacich	pravidel,  ktera  kontrolovala
       odesilatele  a  prijemce	 portu	0xFFFF	(0xFF pro ICMP), coz byl stary
       zpusob pro pocitani fragmentu.

       Pocitaci pravidla jsou ted jednoduse pripojena ke vstupnim a  vystupnim
       retezcum (input a output chain); stare chovani lze simulovat takto:
	ipchains -N acctin
	ipchains -N acctout
	ipchains -N acctio
	ipchains -I input -j acctio
	ipchains -I input -j acctin
	ipchains -I output -j acctio
	ipchains -I output -j acctout
       Timto  se  vytvori tri uzivatelske retezce, acctin, acctout and acctio,
       ktere budou obsahovat pravidla pro pocitani (mohou  byt	bez  parametru
       -j, takze pakety jednoduse projdou).

       Cil  MASQ  nebo	REDIRECT,  ktery  je jadrem povazovan za nevhodny (tj.
       neprochazejici pres retezce pro vstup (input chain) nebo pruchod	 (for-
       ward chain), zpusobi zaznam do syslogu a paket bude zahozen.

       Stary  zpusob  porovnavani  SYN	a ACK (ktere bylo drive ignorovano pro
       jine nez TCP pakety)  byl  upraven;  volba  SYN	neplati	 pro  pravidla
       tykajici se jinych nez paketu TCP.

       Volba  pro porovnani ACK (parametr -k se uz nepouziva; kombinace s !  a
       -y je ekvivalentni).

       Nyni jiz nelze zadat  masku  TOS,  ktera	 nastavi  nebo	zmeni  nejmene
       vyznamny	 TOS  bit;  drivejsi  masky  TOS byly, pokud se o to pokusily,
       jadrem zmeneny.

       S parametrem -b se nyni jednoduse pracuje vlozenim nebo	smazanim  dvo-
       jice pravidel s prohozenym odesilatelem a prijemcem.

       Sitove rozhrani nelze urcit jeho adresou - musi se zadat jeho jmeno.

VIZ TAKE
       ipfw(4)

AUTOR
       Rusty  Russell  <rusty@linuxcare.com>.  Dekuji take Hansu Perssonovi za
       podrobne precteni a korektury; chtel bych, aby cetl vsechny moje	 dalsi
       dokumenty!

PREKLAD
       Jan Jasansky (jan.jasansky@pslib.cz).



			       February 8, 1998			   IPCHAINS(8)

Personal Tools