Egyszerű IPTables konfiguráció és példák az Ubuntu 16.04-en

Bevezetés

iptablesegy hatékony eszköz a Linux kernel integrált tűzfalának beállítására. A legtöbb Ubuntu disztribúción előre telepítve van, de ha testreszabott Ubuntu verziót használ, vagy konténerben fut, valószínűleg manuálisan kell telepítenie.

sudo apt-get install iptables iptables-persistent

A telepítés után, ha a rendszer megkérdezi, hogy mentse-e az aktuális szabályokat, ez pillanatnyilag nem számít, mert később eltávolítani vagy új szabályokat fog létrehozni.

Tippek

A netcatparanccsal ( a kiszolgálótól eltérő számítógépen) tesztelheti, hogy melyik port van nyitva vagy zárva.

nc -z -w5 -v SERVER_IP PORT
  • nc a netcat parancs.
  • -z csak küldjön egy csomagot hasznos teher nélkül.
  • -w5 várjon legfeljebb 5 másodpercet a válaszra.
  • -v bőbeszédű mód.
  • Cserélje SERVER_IPki a szerver címét.
  • Cserélje PORTki a tesztelni kívánt portra, ha nyitva van (pl 22. ).

A szerveren a netstatparanccsal megtekintheti, hogy mely portok figyelnek éppen a kapcsolatokra.

sudo netstat -tulpn

Megjegyzés: Bár netstatpraktikus megoldás megtalálni azokat a portokat, amelyekkel dolgozni szeretne, tisztában kell lennie a kiszolgálóra jelenleg telepített alkalmazásokkal, és hogy mely portok figyelnek, nem kell minden portot engedélyeznie a netstatkimenetben .

Szintaxis

sudo iptables -A INPUT -p tcp -m tcp --dport 22 --m geoip --src-cc PE -j ACCEPT
  • -A INPUTadjunk hozzá egy szabályt a INPUTlánchoz, a lánc szabályok csoportja, az útmutatóban leginkább használt szabályok a INPUT, OUTPUTés a PREROUTING.
  • -p tcpbeállítva tcpprotokollként, amelyre ez a szabály vonatkozni fog, használhat más protokollokat is, például a udp, icmpvagy a all.
  • -m tcphasználja a tcpmodult. iptablesmodulokon keresztül támogatja a további szolgáltatásokat, amelyek közül néhány már előre telepítve van iptables, mások pedig, például a geoipmodul.
  • --dport 22a -val kezdődő parancsok --további opciókat jeleznek a korábban használt modulhoz, ebben az esetben azt mondjuk a tcpmodulnak, hogy csak a portra vonatkozzon 22.
  • -m geoiphasználja a geoipmodult. Ez országonként korlátozza a csomagokat (további információ az 5. lépésben).
  • --src-cc PEmondd meg a geoipmodulnak, hogy korlátozza a bejövő csomagokat a Peruból érkezőkre. További országkódokért keressen ISO 3166 country codesaz interneten.
  • -j ACCEPTaz -jargumentum megmondja iptables, hogy mi a teendő, ha egy csomag megfelel az előző argumentumokban megadott megszorításoknak. Ebben az esetben ACCEPTezek a csomagok lesznek , a többi opció a REJECT, DROPés így tovább. További lehetőségeket iptables jump targetstalálhat az interneten keresve .

1. Alapok

Sorolja fel az összes szabályt.

sudo iptables -L

Sorolja fel az összes parancsot, amelyet a jelenleg használt szabályok létrehozásához használtak, amelyek hasznosak a szabályok szerkesztéséhez vagy törléséhez.

sudo iptables -S

Egy adott szabály törléséhez válasszon egy szabályt a listából, sudo iptables -Sés cserélje ki -Aa következőre -D.

# -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT

sudo iptables -D INPUT -p tcp -m tcp --dport 22 -j ACCEPT

Sorolja fel az összes számozott szabályt a INPUTláncban.

sudo iptables -L INPUT --line-numbers

Számozott szabály törlése.

sudo iptables -D INPUT 2

Az összes szabály törléséhez.

sudo iptables -F

Figyelmeztetés: megszakadhat a kapcsolat, ha SSH-n keresztül csatlakozik .

Csak a OUTPUTlánc szabályait törölje .

sudo iptables -F OUTPUT

2. Hozzon létre kezdeti szabályokat

Engedélyezés SSHa eth0felületen

sudo iptables -A INPUT -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT
  • -i eth0 szabály alkalmazása egy adott felületre, ha engedélyezni szeretné, hogy bármely felületről távolítsa el ezt a parancsot.

A bejövő csomagok korlátozása egy adott IP-re (pl 10.0.3.1/32. ).

sudo iptables -A INPUT -i eth0 -s 10.0.3.1/32 -p tcp -m tcp --dport 22 -j ACCEPT
  • -s 10.0.3.1/32 megad egy IP/alhálózatot, amelyről engedélyezi a kapcsolatokat.

Állítsa be az alapértelmezett láncszabályokat.

Figyelmeztetés: a folytatás előtt győződjön meg arról, hogy a megfelelő SSH-szabályokat alkalmazta, ha távoli kiszolgálón dolgozik .

sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP 
sudo iptables -P OUTPUT ACCEPT 
  • -P INPUT DROP letilt minden bejövő csomagot (azaz senki nem fog tudni csatlakozni a futó szerverekhez, mint például az Apache, SQL stb.).
  • -P FORWARD DROP letilt minden továbbított csomagot (azaz amikor a rendszert routerként használja).
  • -P OUTPUT ACCEPTengedélyezi az összes kimenő csomagot (azaz amikor végrehajt egy HTTPkérést).

Minden forgalom engedélyezése a loopback felületen ( ajánlott ).

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

3. Legyen a szabályok tartósak

Mentse el az aktuális iptablesszabályokat.

sudo netfilter-persistent save
sudo netfilter-persistent reload

Ha egy tárolóban fut, a netfilter-persistentparancs valószínűleg nem fog működni, ezért újra kell konfigurálnia a iptables-persistentcsomagot.

sudo dpkg-reconfigure iptables-persistent

4. Engedélyezze a kimenő kapcsolatokat

DNS-lekérdezések engedélyezése.

sudo iptables -A OUTPUT -p tcp --dport 53 -m state --state NEW -j ACCEPT
sudo iptables -A OUTPUT -p udp --dport 53 -m state --state NEW -j ACCEPT

A statemodul segítségével engedélyezheti RELATEDés ESTABLISHEDkimenő csomagokat.

sudo iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

Engedélyezze a kívánt portokat; ebben az esetben HTTPportok.

sudo iptables -A OUTPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT

További portok, amelyeket érdemes használni.

  • FTP: tcp a 21-es porton
  • HTTPS: tcp a 443-as porton
  • DHCP: udp a 67-es porton
  • NTP: udp a 123-as porton

Megjegyzés: Ha engedélyezni szeretné, apt-getszükséges lehet a FTPés aHTTPS .

Engedélyezze a visszaadott forgalmat csak a RELATEDmár meglévő ESTABLISHEDkapcsolatokhoz ( ajánlott, mert néha kétirányú kommunikációra van szükség).

sudo iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
Egyéb hasznos szabályok

Külső ping kérések engedélyezése.

sudo iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
sudo iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT

Előre forgalom eth0port 2200a 10.0.3.21:22(hasznos, ha azt szeretné, hogy ki egy SSH szervert futtató tároló belsejében).

sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 2200 -j DNAT --to-destination 10.0.3.21:22

Ha SSH használatával sikeresen bejelentkezik a szerverére, akkor állandó kapcsolat jön létre (azaz nem jön létre új kapcsolat, még akkor sem, ha 1 óránál hosszabb ideig csatlakozik). Ha nem sikerül, és újra megpróbál bejelentkezni, új kapcsolat jön létre. Ez blokkolja a folyamatos SSH-bejelentkezési kísérleteket az új kapcsolatok óránkénti korlátozásával.

sudo iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --set
sudo iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 3600 --hitcount 4 -j DROP

Átirányítása kérelmek port 443a port 4430(hasznos, ha azt szeretné, hogy kötődik a port 443nélkül root).

sudo iptables -t nat -A PREROUTING -i ens3 -p tcp --dport 443 -j REDIRECT --to-port 4430
sudo iptables -A INPUT -p tcp -m tcp --dport 4430 -m geoip --src-cc PE -j ACCEPT
  • ens3 a hálózati interfész.
  • -m geoip országblokk modul (lásd az 5. lépést).

Figyelmeztetés: Ne használja lo, az operációs rendszer eldob minden, a loopback felületre átirányított csomagot .

5. Teljes országok engedélyezése vagy letiltása

5.1 Telepítés xtables-addons

A xtables-addonsmodult többféle módszerrel telepítheti , nyugodtan használja az Önnek legmegfelelőbb telepítési módot.

  • Telepítés a segítségével apt-get.

    sudo apt-get install xtables-addons-common
    
  • Telepítés a segítségével module-assistant.

    sudo apt-get install module-assistant xtables-addons-source
    sudo module-assistant --verbose --text-mode auto-install xtables-addons
    
  • Telepítés forrásból.

    sudo apt-get install git bc libncurses5-dev libtext-csv-xs-perl autoconf automake libtool xutils-dev iptables-dev
    git clone git://git.code.sf.net/p/xtables-addons/xtables-addons
    cd xtables-addons
    ./autogen.sh
    ./configure
    make
    sudo make install
    

Építsen fel egy "országok" adatbázist.

sudo apt-get install libtext-csv-xs-perl unzip
sudo mkdir /usr/share/xt_geoip
sudo /usr/lib/xtables-addons/xt_geoip_dl
sudo /usr/lib/xtables-addons/xt_geoip_build -D /usr/share/xt_geoip *.csv
sudo rm GeoIPCountryCSV.zip GeoIPCountryWhois.csv GeoIPv6.csv

Indítsa újra a rendszert.

sudo reboot

A xtables-addonssikeres telepítés után az első újraindítás után futtassa, depmodkülönben az országblokkolás nem fog megfelelően működni (ez csak az első alkalommal szükséges).

sudo depmod 

Hozzon létre egy szkriptet a címen /etc/cron.monthly/geoip-updateraz geoipadatbázis havi frissítéséhez .

#!/usr/bin/env bash
# this script is intended to run with sudo privileges

echo 'Removing old database---------------------------------------------------'
rm -rf /usr/share/xt_geoip/*
mkdir -p /usr/share/xt_geoip

echo 'Downloading country databases-------------------------------------------'
mkdir /tmp/geoip-updater
cd /tmp/geoip-updater
/usr/lib/xtables-addons/xt_geoip_dl

echo 'Building geoip database-------------------------------------------------'
/usr/lib/xtables-addons/xt_geoip_build -D /usr/share/xt_geoip *.csv

echo 'Removing temporary files------------------------------------------------'
cd /tmp
rm -rf /tmp/geoip-updater

Tedd /etc/cron.monthly/geoip-updatervégrehajthatóvá.

sudo chmod +x /etc/cron.monthly/geoip-updater

5.2 Példaszabályok

_Megjegyzés: Ha iptables: No chain/target/match by that namehibaüzenetet kap egy geoipszabály alkalmazásakor , akkor lehetséges, hogy xtables-addonsa telepítés nem megfelelő. Próbálkozzon másik telepítési módszerrel.

Blokkolja az összes bejövő csomagot Kínából, Hongkongból, Oroszországból és Koreából.

sudo iptables -A INPUT -m geoip --src-cc CN,HK,RU,KR -j DROP

A 80fenti országok kivételével mindenhonnan bejövő csomagok engedélyezése a porton .

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

Csak Peruból engedélyezze a bejövő csomagokat az ens3interfészen a porton 22(bátran válassza ki azt az országkódot, amelyről csomagokat szeretne fogadni, például USaz Egyesült Államok esetében).

sudo iptables -A INPUT -i ens3 -p tcp -m tcp --dport 22 -m geoip --src-cc PE -j ACCEPT

443Csak Peruból engedélyezze a bejövő csomagokat a porton .

sudo iptables -A INPUT -p tcp -m tcp --dport 443 -m geoip --src-cc PE -j ACCEPT

Hagyj kommentárt

Egyéni Windows ISO létrehozása frissítésekkel az NTLite használatával

Egyéni Windows ISO létrehozása frissítésekkel az NTLite használatával

Ez az oktatóanyag végigvezeti Önt a Vultrs rendszerekkel kompatibilis Windows ISO létrehozásának folyamatán. Itt megtanulhatja az <>Windows ISO<> előállításának lépéseit az NTLite segítségével.

A gépek felemelkedése: Az AI valós világbeli alkalmazásai

A gépek felemelkedése: Az AI valós világbeli alkalmazásai

A mesterséges intelligencia nem a jövőben, hanem itt a jelenben. Ebben a blogban Olvassa el, hogyan hatott a mesterséges intelligencia alkalmazások különböző ágazatokra.

DDOS támadások: Rövid áttekintés

DDOS támadások: Rövid áttekintés

Ön is DDOS támadások áldozata, és tanácstalan a megelőzési módszereket illetően? Olvassa el ezt a cikket a kérdések megoldásához.

Gondolkozott már azon, hogyan keresnek pénzt a hackerek?

Gondolkozott már azon, hogyan keresnek pénzt a hackerek?

Talán hallottál már arról, hogy a hackerek sok pénzt keresnek, de elgondolkodtál már azon, hogyan kereshetnek ennyi pénzt? beszéljük meg.

A Google forradalmi találmányai, amelyek megkönnyítik az életét.

A Google forradalmi találmányai, amelyek megkönnyítik az életét.

Szeretné látni a Google forradalmi találmányait, és azt, hogy ezek a találmányok hogyan változtatták meg minden mai ember életét? Ezután olvassa el a blogot, és nézze meg a Google találmányait.

Essential péntek: Mi történt az AI-vezérelt autókkal?

Essential péntek: Mi történt az AI-vezérelt autókkal?

Az önvezető autók koncepciója, hogy mesterséges intelligencia segítségével kerüljenek az utakra, már egy ideje álmunk. De számos ígéret ellenére sehol sem látszanak. Olvassa el ezt a blogot, hogy többet megtudjon…

Technológiai szingularitás: az emberi civilizáció távoli jövője?

Technológiai szingularitás: az emberi civilizáció távoli jövője?

Ahogy a tudomány gyors ütemben fejlődik, átveszi erőfeszítéseink nagy részét, megnő annak a kockázata is, hogy alávetjük magunkat egy megmagyarázhatatlan szingularitásnak. Olvassa el, mit jelenthet számunkra a szingularitás.

A Big Data Reference Architecture Layerek funkciói

A Big Data Reference Architecture Layerek funkciói

Olvassa el a blogot, hogy a legegyszerűbb módon ismerje meg a Big Data Architecture különböző rétegeit és azok funkcióit.

Az adattárolás fejlődése – Infografika

Az adattárolás fejlődése – Infografika

Az adatok tárolási módjai az Adatok születése óta alakulhatnak. Ez a blog egy infografika alapján mutatja be az adattárolás fejlődését.

Az okosotthoni eszközök 6 lenyűgöző előnye az életünkben

Az okosotthoni eszközök 6 lenyűgöző előnye az életünkben

Ebben a digitálisan vezérelt világban az intelligens otthoni eszközök az élet döntő részévé váltak. Íme az intelligens otthoni eszközök néhány elképesztő előnye, hogyan teszik életünket érdemessé és egyszerűbbé.