Denne veiledningen vil forsøke å forklare hvordan du bruker iptables på linux på lett å forstå språk.
innhold[gjemme seg]
|
Oversikt
Iptables er en regelbasert brannmur, som vil behandle hver regel i rekkefølge til den finner en som samsvarer.
Todo: inkludere eksempel her
bruk
Iptables-verktøyet er vanligvis forhåndsinstallert på din Linux-distribusjon, men kjører ikke noen regler. Du finner verktøyet her på de fleste distribusjoner:
/sbin/iptables
Blokkerer en enkelt IP-adresse
Du kan blokkere en IP ved å bruke parameteren -s, erstatte 10.10.10.10 med adressen du prøver å blokkere. Du merker i dette eksemplet at vi brukte -I parameteren (eller -insert fungerer også) i stedet for vedlegget, fordi vi vil sørge for at denne regelen vises først før noen tillatelser.
/sbin/iptables -I INPUT -s 10.10.10.10 -j DROP
Tillater all trafikk fra en IP-adresse
Du kan alternativt tillate all trafikk fra en IP-adresse ved å bruke samme kommando som ovenfor, men erstatte DROP med ACCEPT. Du må sørge for at denne regelen vises først, før noen DROP-regler.
/sbin/iptables -A INPUT -s 10.10.10.10 -j ACCEPT
Blokkering av en port fra alle adresser
Du kan blokkere en port helt fra å bli tilgang til via nettverket ved hjelp av -port-bryteren og legge til porten til tjenesten du vil blokkere. I dette eksemplet vil vi blokkere mysql-porten:
/sbin/iptables -A INPUT -p tcp --dport 3306 -j DROP
Tillat en enkelt port fra en enkelt IP
Du kan legge til kommandoen -s sammen med kommandoen -dport for å ytterligere begrense regelen til en bestemt port:
/sbin/iptables -A INPUT -p tcp -s 10.10.10.10 --dport 3306 -j ACCEPT
Vise gjeldende regler
Du kan se gjeldende regler ved å bruke følgende kommando:
/sbin/iptables -L
Dette bør gi deg en utgang som ligner på følgende:
Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT all -- 192.168.1.1/24 anywhere ACCEPT all -- 10.10.10.0/24 anywhere DROP tcp -- anywhere anywhere tcp dpt:ssh DROP tcp -- anywhere anywhere tcp dpt:mysql
Den faktiske produksjonen vil være litt lengre, selvfølgelig.
Rydde gjeldende regler
Du kan rydde ut alle gjeldende regler ved å bruke flush-parameteren. Dette er veldig nyttig hvis du trenger å sette reglene i riktig rekkefølge, eller når du tester.
/sbin/iptables --flush
Distribusjon Spesifikke
Mens de fleste Linux-distribusjoner inneholder en form for iptables, inkluderer noen av dem også wrappers som gjør ledelsen litt enklere. Oftest er disse "tilleggene" tatt i form av init-skript som tar seg av å initialisere iptables ved oppstart, men enkelte distribusjoner inkluderer også fullblåste wrapper-applikasjoner som forsøker å forenkle det vanlige tilfellet.
Gentoo
De iptables init script på Gentoo er i stand til å håndtere mange vanlige scenarier. For det første lar du deg konfigurere iptables for å laste ved oppstart (vanligvis hva du vil):
rc-update add iptables default
Ved hjelp av init-skriptet er det mulig å laste og slette brannmuren med en kommando som er lett å huske:
/etc/init.d/iptables start /etc/init.d/iptables stop
Init-skriptet håndterer detaljene om å fortsette din nåværende brannmurkonfigurasjon ved start / stopp. Dermed er brannmuren din alltid i staten du forlot den. Hvis du trenger å lagre en ny regel manuelt, kan init-skriptet også håndtere dette:
/etc/init.d/iptables save
I tillegg kan du gjenopprette brannmuren til forrige lagrede tilstand (i tilfelle der du eksperimenterte med regler og nå vil gjenopprette tidligere konfigurasjon av arbeid):
/etc/init.d/iptables reload
Endelig kan init-skriptet sette iptables i en "panikk" -modus, der all innkommende og utgående trafikk er blokkert. Jeg er ikke sikker på hvorfor denne modusen er nyttig, men alle Linux-brannmurer synes å ha det.
/etc/init.d/iptables panic
Advarsel: Ikke start panikkmodusen hvis du er koblet til serveren din via SSH; duvil bli frakoblet! Den eneste gangen du burde sette iptables i panikkmodus er mens du erfysisk foran datamaskinen.