Sådan opsættes en firewall med iptables på Ubuntu og CentOS

I denne vejledning skal vi vise dig, hvordan du opretter en firewall med iptables på en Linux VPS kører Ubuntu or CentOS som et operativsystem. Iptables er et administrationsværktøj til IPv4 pakkefiltrering og NAT, og det bruges til at oprette og administrere tabellerne af IPv4 pakkefilterregler i Linux-kernen.

Korrekt konfiguration og opsætning af en firewall er en af ​​de vigtigste og afgørende ting, du skal gøre med sikre din server.

Med iptables defineres flere forskellige pakke-matchende tabeller, og hver tabel kan indeholde et antal indbyggede kæder såvel som nogle kæder defineret af brugeren. Kæderne er faktisk lister over regler, der matcher sæt af pakker, og hver regel angiver hvad man skal gøre med det matchede pakke.

Standardtabellen er filtrere bord og den indeholder de indbyggede kæder INPUT, FORWARD og OUTPUT. INPUT-kæden bruges til pakker, der er bestemt til lokale stikkontakter, FORWARD-kæden bruges til pakker, der føres gennem kassen, mens OUTPUT-kæden anvendes til lokalt genererede pakker.

Opret forbindelse til din server via SSH og list de regler, der er defineret i en bestemt kæde, ved hjælp af følgende syntaks:

sudo iptables -L CHAIN

Udskift CHAIN ​​med en af ​​de indbyggede kæder for at se de definerede regler. Hvis der ikke vælges nogen kæde, vises alle kæder i udgangen.

sudo iptables -L Chain INPUT (politik ACCEPT) target prot opt ​​kilde destination Kæde FREM (politik ACCEPT) target prot opt ​​kilde destination Chain OUTPUT (politik ACCEPT) target prot opt ​​kilde destination

Firewall-reglerne angiver, hvad man skal gøre med en bestemt pakke, hvis den passer til bestemte kriterier, og hvis pakken ikke svarer til kriterierne, vil den næste firewall-regel, der er defineret i kæden, blive undersøgt. Dette er en meget vigtig ting at vide, når du definerer firewallreglerne, fordi du nemt kan låse dig selv af din server, hvis du definerer reglen, som accepterer pakker fra din lokale IP-adresse efter blokeringsreglen.

De mål, du kan bruge til firewallreglerne, er ACCEPT, DROP, QUEUE og RETURN. ACCEPT vil lade pakken igennem, DROP vil droppe pakken, QUEUE vil videresende pakken til brugerrummet, mens RETURN stopper pakkens passage af den aktuelle kæde og vil genoptages ved næste regel i den foregående kæde. Standardkædepolitikken definerer hvad der skal gøres med en pakke, hvis den ikke svarer til en bestemt firewallregel. Som du kan se i udgangen af ​​den første kommando, er standardpolitikken for alle indbyggede kæder indstillet til ACCEPT. ACCEPT vil lade pakken gå igennem så grundlæggende er der ingen beskyttelse.

Før du tilføjer specifikke regler, skal du tilføje følgende:

sudo iptables -A INPUT -m conntrack --ctstate OPSTILLET, RELATERET -J ACCEPT

Dette forhindrer de forbindelser, der allerede er etableret til at blive droppet, og din nuværende SSH-session forbliver aktiv.

Tilføj derefter regler for at tillade trafik på din loopback-grænseflade:

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

Tillad derefter adgang til din server via SSH til din lokale IP-adresse, så kun du kan få adgang til serveren:

sudo iptables -A INPUT -s 111.111.111.111 -p tcp --port 22 -J ACCEPT

Hvor 111.111.111.111 er din lokale IP-adresse og 22 er lytterporten til din SSH-dæmon. Hvis din lokale IP-adresse ændres dynamisk, er det bedst at udelade -s 111.111.111.111 del og brug en anden metode til at beskytte SSH-tjenesten mod uønsket trafik.

sudo iptables -A INPUT -p tcp --port 22 -J ACCEPT

Tillad derefter adgang til dine vigtige tjenester som HTTP / HTTPS-server:

sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT

Stuck et sted? Få en VPS fra os og vi vil sikre din server korrekt og konfigurere en firewall gratis for dig!

Nu skal du liste de nuværende regler og kontrollere, om alt er OK. For detaljeret output kan du bruge følgende kommando:

sudo iptables -nvL

Hvis du har andre tjenester, som du vil tillade adgang til det, er det bedst at gøre det nu. Når du er færdig, kan du indstille standardpolitikken for den INPUT-indbyggede kæde til DROP.

sudo iptables -P INPUT DROP

Dette vil droppe enhver pakke, der ikke stemmer overens med brandvandsreglerne. Det endelige output skal svare til følgende:

Kæde INPUT (politik DROP 0 pakker, 0 bytes) pkts bytes target prot opt-in ud kilde destination 0 0 ACCEPTERE alle - * * 0.0.0.0 / 0 0.0.0.0 / 0 ctstate RELATEREDE, NEDSAT 0 0 ACCEPTERE alle - lo * 0.0.0.0 / 0 0.0.0.0 / 0 0 0 ACCEPT tcp - * * 0.0.0.0 / 0 0.0.0.0 / 0 tcp dpt: 22 0 0 ACCEPT tcp - * * 0.0.0.0 / 0 0.0.0.0 / 0 tcp dpt: 80 0 0 ACCEPT tcp - * * 0.0.0.0 / 0 0.0.0.0 / 0 tcp dpt: 443 Chain FREM (politik ACCEPTERE 0 pakker, 0 bytes) pkts bytes target prot opt-in ud kilde destination Chain OUTPUT (politik ACCEPTERE 0 pakker, 0 bytes) pkts bytes target prot opt-in ud kilde destination 0 0 accepterer alle - * lo 0.0.0.0 / 0 0.0.0.0 / 0

Men hvis du nu genstarter serveren vil du miste alle de firewallregler du definerede, så det er virkelig vigtigt at gøre reglerne permanente.

Hvis du bruger en Ubuntu VPS du skal installere en ekstra pakke til dette formål. Gå videre og installer den nødvendige pakke ved hjælp af følgende kommando:

sudo apt-get installer iptables-vedholdende

On Ubutnu 14.04 Du kan gemme og genindlaste firewallreglerne ved hjælp af kommandoerne nedenfor:

sudo /etc/init.d/iptables-persistent gem sudo /etc/init.d/iptables-persistent reload

On Ubuntu 16.04 brug følgende kommandoer i stedet:

sudo netfilter-vedvarende gem sudo netfilter-vedvarende genindlæsning

Hvis du bruger en CentOS VPS Du kan gemme firewallreglerne ved hjælp af kommandoen nedenfor:

service iptables gemme

Kilde

Giv en kommentar

Dette websted bruger Akismet til at reducere spam. Lær, hvordan dine kommentardata behandles.