IPTABLES

Iptables er brannmuren i linux, som er svært kraftig. Men mangen synst det er litt tungvindt. Masse mulig, men kan du grunnprinsippane er det egentlig ikkje så gale.

Merk att ein brannmur egentlig kunn er eit sett med reglar. Den samanliknar pakken med reglane i dei forkjellige “chains” inne i forkjellige “table”. Vist regelen stemmer vil den då gjere valgt handling på den pakken.

Figuren til høgre er eit godt bilde over kvarleis iptables fungerer, den er egentlig litt overdreven altså der det står “mangle” er sjelden brukt i dag. Det som er i mest bruk er filter table og nattable.

filter

INPUT: alt som skall til di maskin

FORWARD: om du har pakkeforwarding aktivert skjem all traffik din boks routa vidare i gjøna her

OUTPUT: ALT du sender går her

NAT

NAT står får Network Address Translation og er akkurat det. Den oversetter, eller endrer ein pakke-header til noko anna.

Altså du har ein server som brannmur som får ein request på offentlig ip 158.38.48.1:2222 og du har ein pc bak NAT som har ein ssh-server med ip 10.0.0.10 Ved hjelp av NAT kan du då oversette headeren i pakken fra 158.38.48.1:2222 til 10.0.0.10:22. YAY pakkeforwarding!

' NAT chains '

POSTROUTING: Akkurat det det er, her vil oversettinga skje FØR pakken blir routa

PREROUTING: Samme her, berre omvendt. Pakken blir routa først SÅ blir den skreve om

Det er og 2 til “CHAINS” i Table NAT, som er INPUT og OUTPUT som er lite brukt og er relativt like dei i filter Table.

iptables har egentlig ein veldig simpel konstruksjon

iptables -t filter -A INPUT -d 10.0.0.1 -j DROP

-t = 'CHAIN' -A = 'append rule' -d = 'destination' -j = 'ACTION'

Det du gjere her er å legge til ein regel i INPUT som ser etter pakker med -destinasjon 10.0.0.1 om pakken skall til 10.0.0.1 “-j” vil blir pakken droped

Det som er mellom ' A INPUT ' og ' -J DROP ' er det du leiter etter, skall du finne ALLE tcp pakker blir det ' -p tcp ' skall du droppe eit heilt nettverk blir det ' -s 158.38.48.0/24 ' (-s = source) og det er selfølgelig mulig å kombinere dei forkjellige.

iptables -I FORWARD -s 10.0.0.0/24 -p tcp –dport 80 -j DROP

Den der vil forhindre alle klienter med ip 10.0.0.1-10.0.0.254 til å benytte seg av destinasjons port 80. Altså dei kjem seg ikkje på web (http) tho https vil funke.

-I er ikkje så langt i fra -A, INSERT mot APPEND. INSERT blir regelen lagt in øverst, APPEND blir den lagt til nederst. –dport er destination port, og –sport er source port.

Listing og sletting

Liste alle regler i table 'filter'

iptables -L

Liste alle nat regler

iptables -t nat -L

Flushing av regler, fjærne alle regler i valgt table

iptables -F

iptables -t nat -F

Er alltid mulig å spesifisere nermare

iptables -t nat -F PREROUTING

iptables -t nat -L PREROUTING

Sletting av regler '-D' index, eller spesifikk regel.

iptables -D FORWARD 1

iptables -D FORWARD -s 10.0.0.0/24 -j DROP

NAT

Kjelder: man iptables