Linux firewall - iptables

Iptables

Soubor:Iptables3.jpeg

Soubor:iptables.gif

  • iptables -[ADC] chain rule-specification [options]
  • iptables -I chain [rulenum] rule-specification [options]
  • iptables -R chain rulenum rule-specification [options]
  • iptables -D chain rulenum [options]
  • iptables -[LFZ] [chain] [options]
  • iptables -N chain
  • iptables X [chain]
  • iptables -P chain target [options]
  • iptables -E old-chain-name new-chain-name

Targets

  • ACCEPT ... paket projde
  • DROP ... paket se zahodí
  • QUEUE ... paket se předá do userspace (pokud je to povolený v kernelu)
  • RETURN ... paket se vrátí do předchozího řetězce

Tabulky

  • -t, --table table ... specifikuje, se kterou tabulkou se bude pracovat (kernel autoloadne modul)
  • filter ... výchozí tabulka, obsahuje chainy INPUT (pakety do stroje), FORWARD (skrz), OUTPUT (ven)
  • nat ... pro pakety vytvářející nová spojení, PREROUTING, OUTPUT, POSTROUTING
  • mangle ... INPUT, FORWARD, POSTROUTING

Příkazy

  • -A,--append chain rule-specification ... přidání pravidla do určitého chainu
  • -D,--delete chain rule-specification ... smaže určité pravidlo
  • -D,--delete chain rulenum ... smaže pravidlo na řádku rulenum
  • -I,--insert chain [rulenum] rule-specification ... vloží pravidlo na řádek rulenum
  • -R,--replace chain rulenum rule-specification ... nahradí pravidlo na řádek rulenum
  • -L,--list [chain] ... vypíše všechna pravidla nebo pravidla v uričém chainu (s -n nedělá DNS lookups)
  • -F,--flush [chain] ... smaže pravidle (v chainu)
  • -Z,--zero [chain] ... vymaže počítadla paketů
  • -N,--new-chain chain ... založí nový chain
  • -X,--delete-chain [chain] ... mazání řetězců
  • -P,--policy chain target ... nastavení polici pro vestavěné řetězce
  • -E,--rename-chain old new .. přejmenování
  • -h .. help

Parametry

  • -p,--protocol [!] protocol ... tcp,udp,icmp,all,číslo
  • -s,--source [!] address[/mask] ... zdrojová adresa, alias --src
  • -d,--destination [!] address[/mask] ... cílová adresa, alias --dst
  • -j,--jump target ... co dělat s paketem
  • -i,--in-interface [!] name ... jméno rozhraní na kterém paket přijímáme (eth+ = všechny rozhraní s názvem "eth"), jen pro pakety vstupující do INPUT,FORWARD,PREROUTING
  • -o,--out-interface [!] name ... jméno rozhraní na kterém paket odesíláme, FORWARD,OUTPUT,POSTROUTING
  • [!] -f,--fragment ... platí pro fragmenty, s ! platí jen pro hlavičky (první paket) nebo nefragmentované pakety
  • -c,--set-counters PKTS BYTES ... nastavuje paket a bytes počítadla (během INSERT,APPEND,REPLACE)
  • -v,--verbose ... ukecanost
  • -n,--numeric ... nedělá dns dotazz
  • -x,--exact ... plná čísla, nepřepočítává countery při listu na MB, GB, etc
  • --line-numbers ... při listingu zobrazuje čísla řádek (rulenum)
  • --modprobe=command ... při vkládání pravidel nahraje moduly

match extensions pro tcp

  • --source-port [!] port[:port] ... zdrojový port nebo rozsah portů, alias --sport
  • --destination-port [!] port[:port] ... cílový port nebo rozsah portů, alias --sport
  • --tcp-flags [!] mask comp ... match pro pakety s příznakem, SYN ACK FIN RST URG PSH ALL NONE
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST SYN ... platí jen pro pakety se SYN flagem nasteveno a ACK,FIN a RST nenastaveno
  • [!] --syn ... match pro pakety se SYN bez ACK a FIN
  • --tcp-option [!] number ... match pokud je TCP option nastaveno
  • --mss value[:value] ... match TCP SYN nebo SYN/ACK se specifickou hodnotou MSS (max velikosti paketu)

match extensions pro udp

  • --source-port [!] port[:port] ... zdrojový port nebo rozsah portů, alias --sport
  • --destination-port [!] port[:port] ... cílový port nebo rozsah portů, alias --sport

match extensions pro icmp

  • --icmp-type [!] typename ... match pro určité icmp (iptables -p icmp -h)
  • --mac-source [!] address ... match pro mac adresu ve formátu xx:xx:xx:xx:xx:xx pro PREROUTING,FORWARD,INPUT

match extensions pro limit

  • --limit rate ... def 3/hour (/second,/minute,/hour,/day)
  • --limit-burst number ... maximum paketů co jsou match pro pravidlo na začátku, def 5

Layer 7 filter modul ipt_layer7

iptables ... -m layer7 --l7proto jmeno -j ...

QoS pro typ protokolu

iptables -t mangle -A POSTROUTING -m layer7 --l7proto imap -j MARK --set-mark 3
tc filter add dev eth0 protocol ip parent 1:0 prio 1 handle 3 fw flowid 1:3

Pocet paketu, ve kterych layer7 filter cmucha se nastavuje v

/proc/net/layer7_numpackets
echo 16 > /proc/net/layer7_numpackets

 

[editovat] Odkazy

  • 0 användare blev hjälpta av detta svar
Hjälpte svaret dig?

Relaterade artiklar

Kolik mohu dostat IP adres?

Mohu mít k serveru více než 1 IPv4 adresu? Ano, avšak maximální počet IPv4 adres k vyhrazenému...

Linux - parametry kernelu

Linux Kernel Boot Parameters

Linux firewall - fail2ban

Fail2ban   Nástroj na blokování útočníků automaticky...

Linux kernel

Sysctl   zapnuti ochrany kernelu (execshield) kernel.exec-shield=1...

Linux - tip and tricks

Linux networking   lsof -Pnl +M -i4 ss -s ss -l ss -pl ss -o state established '(...