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.