Slik sikrer du ditt Linux-skrivebord med Iptables
Linux kan ha et rykte om sikkerhet, men det er ikke perfekt. Mange distribusjoner har heller ikke de beste sikkerhetsstandardene, så det er best å implementere noen gode metoder for sikkerhet. Et slikt eksempel bruker en brannmur.
Det er noen alternativer for brannmurer i Linux, men de fleste er egentlig bare wrappers rundt iptables. For denne veiledningen vil vi vise deg hvordan du arbeider med iptables direkte.
Hva er Iptables?
Iptables er Linux-kjernebrannmuren. Den leveres med alle Linux-distribusjoner, og det er den mest direkte måten å kontrollere trafikk som kommer inn og ut av datamaskinen.
Iptables har et rykte for å være komplisert, og det kan være. Du trenger ikke å vite alt om iptables å bruke det effektivt på skrivebordet ditt, skjønt. Du trenger bare litt grunnleggende kunnskap om hvordan det fungerer og hvordan reglene er strukturert.
Relatert : Hvordan håndtere og konfigurere brannmur i Linux
Kommandostruktur
Alle iptables-reglene følger samme grunnleggende struktur. Hver regel er en enkeltlinjekommando til iptables som forteller det hvordan man skal håndtere trafikk på en bestemt port. Ta en titt på eksemplet nedenfor:
-A INPUT -i eth0 -p tcp -m state -state OPSTATT, RELATERT --Sport 80 -J ACCEPT
Det kan se ut som mye, men det er veldig enkelt når du knuser det ned. Først begynner denne regelen med -A
fordi den vil legge til på iptables-reglene.
Deretter angir -i
flagg grensesnittet som regelen er for. I dette tilfellet er det eth0
. Når du skriver dine egne regler, må du sørge for at du vet hvilket grensesnitt du er koblet til nettverket ditt gjennom.
Følgende flagg, -p
, heter protokollen. Denne regelen gjelder for tcp
, som er webtrafikk.
-m
flagget er litt annerledes. Det er vant til å hevde at det er en tilstand som må oppfylles for at trafikken ikke skal avvises. Tilstanden i denne regelen er staten.
Stat er faktisk det neste flagget. Du må gi - --state
en liste over akseptable stater skrevet i alle kapsler og skilt med kommaer. Denne regelen aksepterer både nye og etablerte forbindelser.
Den nest til siste flagg er her - --sport
. Det står for "source port", og det forteller iptables hvor trafikken kommer fra. Det er også et --dport
som står for "destinasjonsport". Det brukes til OUTPUT
regler for håndtering av hvilken --dport
som kommer fra.
Til slutt er det -j
flagget. Det forteller iptable hvilken handling å "hoppe" til. I dette tilfellet bør det ACCEPT
trafikken som oppfyller de forrige forholdene.
Bruke en fil
Du kan legge inn reglene dine i iptables manuelt en etter en. Det er utrolig kjedelig, og det er veldig enkelt å miste oversikten over hvor du er og hva du gjør. Det er mye bedre å lage en regelfil som du kan importere til iptables på en gang.
Det spiller ingen rolle hvor du lager filen. Folk gjør dem til og med i /tmp
katalogen fordi iptables lagrer resultatet etter at det er importert.
Lag din fil. Denne veiledningen skal bruke /tmp/iptables-ip4
. I filen legger du til følgende to linjer. Alle reglene dine går mellom dem.
* filter # Dine regler her COMMIT
Opprett dine regler
Du kan begynne å sette opp reglene dine. Dette er bare forslag. Åpenbart, hvis du kjører andre tjenester eller trenger andre porter åpne, kan du helt sikkert justere noen ting eller legge til egne regler.
Loopback
Loopback-grensesnittet er et internt grensesnitt som Linux bruker.
-A INPUT -i lo -j ACCEPT-A OUTPUT -o lo -j ACCEPT
Ping
Dette er et spørsmål om preferanse. Mange mennesker liker ikke å tillate ping i det hele tatt på sine skrivebord. Det kan imidlertid være nyttig å få det til å teste tilkoblinger. Hvis du vil tillate ping, legger du til reglene nedenfor. Hvis du ikke gjør det, utelukk dem.
-En INPUT -i eth0 -p icmp -m-tilstand -Status NEW --ICPP-type 8 -J ACCEPT -A INPUT -i eth0 -p icmp -m state -state OPPSTILLET, RELATERT -J ACCEPT-A OUTPUT - o eth0 -p icmp -j ACCEPT
Nettet
Du vil åpenbart ønske å kunne koble til nettet. På baksiden av det, vil du ikke tillate tilkoblinger som kommer fra Internett.
-En INPUT -i eth0 -p tcp -m-tilstand -Stat ESTABLISHED, RELATED --Sport 80 -J ACCEPT -A INPUT -i eth0 -p tcp -m state -state OPSTATTE, RELATERTE --port 443 -j ACCEPT -A OUTPUT -o eth0 -p tcp -m tcp --port 80 -j ACCEPT-A OUTPUT -o eth0 -p tcp -m tcp - port 443 -j ACCEPT
Du skal også tillate DNS-tilkoblinger slik at datamaskinen din kan bruke nettadresser i stedet for bare IP-adresser fordi det ikke ville være veldig praktisk. Erstatt ruteren din IP-adresse for den som brukes her.
-A INPUT -i ens3-s 192.168.1.1 -p utp --port 53 -m state -state OPSTATT, RELATERT -J ACCEPT-OUTPUT -o ens3 -d 192.168.1.1 -p utp --port 53 -m utp-j aksepterer
Tid
De fleste Linux-skrivebord bruker NTP til å angi og vedlikeholde systemtiden fra Internett. Du må tillate at datamaskinen din kobler til en NTP-server for å få tiden.
-A INPUT -i eth0 -p utp -m state -state OPPSTILLET, RELATERT --port 123 -j ACCEPT -A OUTPUT -o eth0 -p utp -m utp --sport 123 -j ACCEPT
Printing
Med mindre du bruker en USB-skriver eller en ekstern utskriftsserver, må du aktivere tilkoblinger til CUPS.
-A INPUT -p utp -m utp - port 631 -j ACCEPT -A INPUT -p tcp -m tcp --port 631 -j ACCEPT -A OUTPUT -p utp -m utp --port 631 -j ACCEPT -A OUTPUT -p tcp -m tcp --port 631 -j ACCEPT
e-post
Du vil sikkert også kunne sende og motta e-post. E-post kan være vanskelig. Portene tillatt her er SSL-e-postportene. Hvis du trenger å bruke usikret e-post, skal du erstatte de portene.
# IMAP -A INPUT -i eth0 -p tcp -m state -state OPPSTILLET, RELATERT --port 993 -j ACCEPT-A OUTPUT -o eth0 -p tcp -m tcp - port 993 -j ACCEPT # POP3 -A INPUT -i eth0 -p tcp -m state -state OPSTATTE, RELATERTE --port 995 -j ACCEPT-A OUTPUT -o eth0 -p tcp -m tcp --port 995 -j ACCEPT # SMTP -A INPUT -i eth0 -p tcp -m state -state OPSTATTE, RELATERTE --port 465 -j ACCEPT -A OUTPUT -o eth0 -p tcp -m tcp --port 465 -j ACCEPT
SSH
For å fullt ut kunne utnytte SSH-tilkoblinger må du tillate både inngang og utdata over SSH.
# Input -A INPUT -i ens3 -p tcp -m state -state NYTT, OPPSTILLET --port 22 -j ACCEPT-A OUTPUT -o ens3 -p tcp -m state -state ESTABLISHED --port 22 -j ACCEPT # Output -A OUTPUT -o ens3 -p tcp -m state -state NYTT, OPPSTART --port 22 -j ACCEPT -A INPUT -i ens3 -p tcp -m state -state OPPSTILLET --port 22 -j ACCEPT
DHCP
De fleste Linux-stasjonære PCer bruker DHCP til automatisk å motta en IP-adresse fra en ruteren. DHCP bruker sine egne porter, så de må også være tilgjengelige. Hvis du bruker en statisk IP, trenger du ikke disse reglene.
-A INPUT -i eth0 -p utp -m state -state OPPSTILLET, RELATERT --Sport 67:68 -J ACCEPT -A OUTPUT -o eth0 -p utp -m utp --dport 67:68 -j ACCEPT
Avvis alt annet
Til slutt vil du fortelle iptables å avvise absolutt alt du ikke uttrykkelig tillot i reglene ovenfor.
-A INPUT -J REJECT-A FORWARD -J REJECT-A OUTPUT -J REJECT
Etter alt, bør reglene dine se ut som disse.
Importerer reglene dine
Du har nå en fullt funksjonell iptables-reglerliste. Du trenger bare å gi den av til iptables å bruke.
Hvis noen regler er lagt til over tid, fjern dem ut. Etter disse kommandoene ser du standardverdiene som tillater alt.
sudo iptables -F && sudo iptables -X
Med de som er borte, kan du gjenopprette de nye fra filen du opprettet.
sudo iptables-gjenopprette </ tmp / itpables-ip4
Datamaskinen bruker nå de nye iptables-reglene. Du kan sjekke dem ut.
sudo iptables -S
De er imidlertid ikke permanente ennå. Hvis du starter datamaskinen på nytt nå, kommer du til å ha en veldig dårlig tid.
Gjør dem permanent
Det er flere måter å gjøre reglene permanente. De er forskjellige for hver distribusjon. Denne veiledningen skal fokusere på Debian- og Ubuntu-baserte systemer, siden de er de mest populære.
Det finnes en pakke, kalt iptables-persistant
, som håndterer lagring og gjenoppretting av iptables. Alt du trenger å gjøre er å installere det.
sudo apt installere iptables-vedvarende
Under installasjonen vil pakken spørre deg om du vil lagre konfigurasjonen. Velg "Ja".
I fremtiden, hvis du vil legge til regler, kan du lagre igjen ved å kjøre følgende kommando.
sudo service netfilter-vedvarende lagre
Du har nå kontroll over trafikken som strømmer gjennom datamaskinen. Det er sikkert mer som du kan gjøre med iptables, men du bør føle deg trygg på grunnleggende først.