Bruke Iptables på Linux
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å Linux-distribusjonen, men kjører ikke noen regler. Du finner verktøyet her på de fleste distribusjoner:
/ Sbin / iptables
Blokkering av 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 tillatelsesregler.
/ 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 eventuelle 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 å bruke port-porten og legge til porten til tjenesten du vil blokkere. I dette eksemplet vil vi blokkere mysql-porten:
/ sbin / iptables -A INPUT -p tcp --port 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 --port 3306 -j ACCEPT
Vise gjeldende regler
Du kan vise gjeldende regler ved å bruke følgende kommando:
/ sbin / iptables -L
Dette bør gi deg en utgang som ligner på følgende:
Angi alt - 10.10.10.0/24 hvor som helst TROP tcp - hvor som helst tcp dpt: ssh DROP tcp - hvor som helst tcp dpt: mysql
Den faktiske utgangen vil bli litt lenger, selvfølgelig.
Sletting av gjeldende regler
Du kan rydde ut alle gjeldende regler ved hjelp av flush-parameteren. Dette er veldig nyttig hvis du må 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 legg til iptables standard
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 stopp
Init-skriptet håndterer detaljene for å 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 lagre
I tillegg kan du gjenopprette brannmuren til forrige lagrede tilstand (i tilfelle hvor 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 panikk
Advarsel: Ikke start panikkmodusen hvis du er koblet til serveren din via SSH; du vil bli frakoblet! Den eneste gangen du burde sette iptables i panikkmodus er mens du er fysisk foran datamaskinen.