Linux kan have et ry for sikkerhed, men det er ikke perfekt. Mange distributioner har heller ikke de bedste sikkerhedsstandarder, så det er bedst at implementere nogle bedste metoder til sikkerhed. Et sådant eksempel bruger en firewall.

Der er et par muligheder for firewalls i Linux, men de fleste er faktisk bare wrappers omkring iptables. Til denne vejledning viser vi dig, hvordan du arbejder med iptables direkte.

Hvad er Iptables?

Iptables er Linux-kernel firewall. Den leveres med alle Linux-distributioner, og det er den mest direkte måde at styre trafik, der kommer ind og ud af din computer.

Iptables har et ry for at være kompleks, og det kan være. Du behøver ikke at vide alt om iptables til at bruge det effektivt på dit skrivebord. Du skal bare have nogle grundlæggende kendskab til, hvordan det virker, og hvordan dets regler er struktureret.

Relateret : Sådan håndteres og konfigureres firewall i Linux

Kommandostruktur

Alle iptables regler følger den samme grundlæggende struktur. Hver regel er en enkeltlinjekommando til iptables, der fortæller det, hvordan man kan håndtere trafik på en bestemt port. Se eksemplet nedenfor:

 -A INPUT -i eth0 -p tcp -m state --state OPSTILLET, RELATERET --Sport 80 -J ACCEPT 

Det kan se meget ud, men det er virkelig nemt, når du bryder det ned. For det første begynder denne regel med -A fordi den vil føje til dine iptables regler.

Dernæst angiver -i flag den grænseflade, som reglen er beregnet til. I dette tilfælde er det eth0 . Når du skriver dine egne regler, skal du sørge for, at du ved, hvilken grænseflade du er forbundet med dit netværk igennem.

Det følgende flag, -p, navngiver protokollen. Denne regel gælder for tcp, som er webtrafik.

-m flag er lidt anderledes. Det er vant til at hævde, at der er en betingelse, der skal opfyldes for at trafikken ikke kan afvises. Tilstanden i denne regel er staten.

Stat er faktisk det næste flag. Du skal give - --state en liste over acceptable stater skrevet i alle hætter og adskilt med kommaer. Denne regel accepterer både nye og etablerede forbindelser.

Det andet til sidste flag er her - --sport . Det står for "source port", og det fortæller iptables hvor trafikken kommer fra. Der er også et --dport der står for "destinationsport". Det bruges til OUTPUT regler til håndtering af, hvilken --dport der kommer fra.

Endelig er der -j flag. Det fortæller iptable hvilken handling at "hoppe" til. I dette tilfælde skal den ACCEPT den trafik, der opfylder de tidligere betingelser.

Brug af en fil

Du kan indtaste dine regler i iptables manuelt en efter en. Det er utroligt kedeligt, og det er meget nemt at miste om hvor du er og hvad du laver. Det er meget bedre at oprette en reglerfil, som du kan importere til iptables på én gang.

Det er ligegyldigt, hvor du opretter filen. Folk gør dem endda i /tmp biblioteket, fordi iptables gemmer resultatet, efter at det er importeret.

Opret din fil. Denne vejledning skal bruge /tmp/iptables-ip4 . I filen tilføj følgende to linjer. Alle dine regler vil gå imellem dem.

 * filter # Dine regler her COMMIT 

Opret dine regler

Du kan begynde at oprette dine regler. Det er kun forslag. Selvfølgelig, hvis du kører andre tjenester eller har brug for andre porte åbne, kan du helt sikkert justere nogle ting eller tilføje dine egne regler.

loopback

Loopback-grænsefladen er en intern grænseflade, som Linux bruger.

 -A INPUT -i lo -j ACCEPT-A OUTPUT -o lo -j ACCEPT 

Ping

Dette er et spørgsmål om præference. Mange mennesker kan ikke lide at tillade ping overhovedet på deres desktops. Det kan dog være nyttigt at få det til at teste forbindelser. Hvis du vil tillade ping, skal du tilføje reglerne nedenfor. Hvis du ikke gør det, skal du udelukke dem.

 -A INPUT -i eth0 -p icmp -m-tilstand -Stat NEW --ICPP-type 8 -J ACCEPT -A INPUT -i eth0 -p icmp -m state --state OPSTILLET, RELATERET -J ACCEPT-A OUTPUT - o eth0 -p icmp -j ACCEPT 

Internettet

Du vil selvfølgelig gerne være i stand til at oprette forbindelse til internettet. På den anden side vil du ikke tillade forbindelser, der stammer fra internettet.

 -A INPUT -i eth0 -p tcp -m state -state OPSTILLET, RELATERET --Sport 80 -J ACCEPT -A INPUT -i eth0 -p tcp -m state --Stat ESTABLISHED, RELATED --port 443 -j ACCEPT -A OUTPUT -o eth0 -p tcp -m tcp --dport 80 -j ACCEPT -A OUTPUT -o eth0 -p tcp -m tcp - port 443 -j ACCEPT 

Du skal også tillade DNS-forbindelser, så din computer kan bruge webadresser i stedet for kun IP-adresser, fordi det ikke ville være meget praktisk. Erstat din routerens IP-adresse til den, der bruges her.

 -A INPUT -i ens3 -s 192.168.1.1 -p udp --port 53 -m state -state OPSTILLET, RELATERET -J ACCEPT -A OUTPUT -o ens3 -d 192.168.1.1 -p udp --port 53 -m udp -j ACCEPT 

Tid

De fleste Linux-stationære computere bruger NTP til at indstille og vedligeholde systemtiden fra internettet. Du skal tillade din computer at oprette forbindelse til en NTP-server for at få tid.

 -A INPUT -i eth0 -p udp -m state -state OPSTILLET, RELATERET --port 123 -j ACCEPT -A OUTPUT -o eth0 -p udp -m udp --sport 123 -j ACCEPT 

Trykning

Medmindre du bruger en USB-printer eller en ekstern printerserver, skal du aktivere forbindelser til CUPS.

 -A INPUT -p udp -m udp --dport 631 -j ACCEPT -A INPUT -p tcp -m tcp --dport 631 -j ACCEPT -A OUTPUT -p udp -m udp --port 631 -j ACCEPT -A OUTPUT -p tcp -m tcp --port 631 -j ACCEPT 

E-mail

Du vil sikkert også kunne sende og modtage e-mail. Email kan være vanskelig. De havne, der tillades her, er SSL-e-mail-porte. Hvis du skal bruge usikret e-mail, skal du erstatte de pågældende porte.

 # IMAP -A INPUT -i eth0 -p tcp -m state -state OPSTILLET, RELATERET --port 993 -j ACCEPT -A OUTPUT -o eth0 -p tcp -m tcp --dport 993 -j ACCEPT # POP3 -A INPUT -i eth0 -p tcp -m tilstand - statlig OPSTILLET, RELATERET --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 OPSTILLET, RELATERET --port 465 -j ACCEPT -A OUTPUT -o eth0 -p tcp -m tcp --port 465 -j ACCEPT 

SSH

For fuldt ud at udnytte SSH-forbindelser skal du tillade både input og output over SSH.

 # Input -A INPUT -i ens3 -p tcp -m state --stat NYHED, OPSTILLET --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 --stat NYHED, OPSTILLET --port 22 -j ACCEPT -A INPUT -i ens3 -p tcp -m state -state ESTABLISHED --port 22 -j ACCEPT 

DHCP

De fleste Linux-stationære computere bruger DHCP til automatisk at modtage en IP-adresse fra en router. DHCP bruger sine egne porte, så de skal også være tilgængelige. Hvis du bruger en statisk IP, behøver du ikke disse regler.

 -A INPUT -i eth0 -p udp -m state -state OPSTILLET, RELATERET --Sport 67:68 -J ACCEPT -A OUTPUT -o eth0 -p udp -m udp --dport 67:68 -j ACCEPT 

Afvis alt andet

Endelig vil du fortælle iptables at afvise absolut alt, hvad du ikke udtrykkeligt tillod i ovenstående regler.

 -A INPUT -J REJECT-A FORWARD -J REJECT-A OUTPUT -J REJECT 

Efter alt skal dine regler se ud som disse.

Importerer dine regler

Du har nu en fuldt funktionel iptables regler liste. Du skal bare aflevere det til iptables at bruge.

Hvis nogle regler er blevet tilføjet over tid, rydde dem ud. Efter disse kommandoer kan du se de standardindstillinger, der tillader alt.

 sudo iptables -F && sudo iptables -X 

Med de væk, kan du gendanne de nye fra den fil, du oprettede.

 sudo iptables-gendan </ tmp / itpables-ip4 

Din computer bruger nu de nye iptables-regler. Du kan tjekke dem ud.

 sudo iptables -S 

De er dog ikke permanente endnu. Hvis du genstarter din computer nu, vil du have en virkelig dårlig tid.

Gør dem permanent

Der er flere måder at gøre reglerne permanente på. De er forskellige for hver distribution. Denne vejledning vil fokusere på Debian- og Ubuntu-baserede systemer, da de er de mest populære.

Der findes en pakke, kaldet iptables-persistant, der håndterer at gemme og genoprette iptables. Alt du skal gøre er at installere det.

 sudo apt installere iptables-vedholdende 

Under installationen spørger pakken dig om du vil gemme din konfiguration. Vælg "Ja".

I fremtiden, hvis du vil tilføje regler, kan du gemme igen ved at køre følgende kommando.

 sudo service netfilter-vedvarende gemme 

Du har nu kontrol over trafikken, der flyder gennem din computer. Der er sikkert mere, du kan gøre med iptables, men du bør føle dig sikker på det grundlæggende først.