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

A Node.js állandó alkalmazások beállítása az Ubuntu 16.04 rendszeren

A Node.js állandó alkalmazások beállítása az Ubuntu 16.04 rendszeren

A Node.js alkalmazások méretezhetőségük miatt népszerűek. Több egyidejű folyamat több kiszolgálón történő futtatása alacsonyabb késleltetést és hosszabb üzemidőt eredményez

A Node.js telepítése forrásból az Ubuntu 14.04 rendszeren

A Node.js telepítése forrásból az Ubuntu 14.04 rendszeren

Építőeszközök telepítése Számos eszközre lesz szükség. Futtassa a következő parancsot: apt-get install make g++ libssl-dev git Node.js forrás letöltése It i

Az osTicket telepítése a CentOS 7 rendszeren

Az osTicket telepítése a CentOS 7 rendszeren

Más rendszert használ? Az osTicket egy nyílt forráskódú ügyfélszolgálati jegyértékesítő rendszer. Az osTicket forráskódja nyilvánosan a Githubon található. Ebben az oktatóanyagban

A Bro IDS telepítése Ubuntu 16.04-re

A Bro IDS telepítése Ubuntu 16.04-re

Más rendszert használ? Bevezetés A Bro egy hatékony nyílt forráskódú hálózatelemző keretrendszer. A Bros elsődleges célja a hálózati biztonság figyelése. Br

Setup a Minecraft PE Server on CentOS 6

Setup a Minecraft PE Server on CentOS 6

This article will teach you how to setup a Minecraft Pocket Edition server on CentOS 6. Setting up a Minecraft PE server is quite simple. First, install th

A GruntJS telepítése Debian 9 rendszeren

A GruntJS telepítése Debian 9 rendszeren

A GruntJS egy JavaScript-feladat futtató, amely a NodeJS tetejére íródott. Használható az alkalmazás ismétlődő feladatainak automatizálására, mint például a kicsinyítés, a fordítás

A ZNC telepítése és konfigurálása CentOS 7 rendszeren

A ZNC telepítése és konfigurálása CentOS 7 rendszeren

A ZNC egy ingyenes és nyílt forráskódú IRC kidobó, amely állandóan csatlakozik a hálózathoz, így az ügyfelek offline állapotban is fogadhatják az elküldött üzeneteket. Thi

A PM2 beállítása Ubuntu 16.04-en

A PM2 beállítása Ubuntu 16.04-en

A PM2 egy nagyon népszerű Node folyamatkezelő, amely megkönnyíti a NodeJS alkalmazások futtatását. A PM2 megkönnyíti az alkalmazások újraindítását, az összeomlás automatikus újraindítását

Installing HAProxy 1.7 on Debian 9.1 (Stretch)

Installing HAProxy 1.7 on Debian 9.1 (Stretch)

Using a Different System? HAProxy is a network software application that offers high availability, load balancing, and proxying for TCP and HTTP networ

A Strapi telepítése Ubuntu 16.04-re

A Strapi telepítése Ubuntu 16.04-re

Bevezetés A Strapi egy nyílt forráskódú NodeJS Content Management Framework, amely biztonságos és méretezhető, gyártásra kész API-alkalmazások létrehozására szolgál.

How to Install Unturned 2.2.5 on Ubuntu 16.04

How to Install Unturned 2.2.5 on Ubuntu 16.04

Using a Different System? Introduction In this guide, you will learn how to set up an Unturned 2.2.5 server on a Vultr VPS running Ubuntu 16.04. Note: Thi

A Ruby on Rails telepítése Ubuntu 14.04-re

A Ruby on Rails telepítése Ubuntu 14.04-re

A Ruby on Rails (RoR) egy Ruby programozási nyelven írt keretrendszer, amely lehetővé teszi a Ruby használatát HTML, CSS és hasonló programokkal kombinálva.

A Node.js és az Express telepítése Ubuntun

A Node.js és az Express telepítése Ubuntun

A Chrome V8 Engine által hajtott Node.js egy népszerű nyelv, amelyet gyorsan méretezhető alkalmazások készítésére használnak. Számos projektet támogatott már, többek között

Setup Mumble Server on Arch Linux

Setup Mumble Server on Arch Linux

This tutorial explains how to setup a Mumble server (Murmur) on Arch Linux. Everything done in this tutorial is done as the root user. Installation an

Setup a Counter-Strike: Global Offensive (CSGO) Server on Arch Linux

Setup a Counter-Strike: Global Offensive (CSGO) Server on Arch Linux

This tutorial explains how to setup a Counter-Strike: Global Offensive server on Arch Linux. This tutorial assumes that you logged in with a standard use

Az osTicket telepítése a Fedora 30 rendszeren

Az osTicket telepítése a Fedora 30 rendszeren

Más rendszert használ? Az osTicket egy nyílt forráskódú ügyfélszolgálati jegyértékesítő rendszer. Az osTicket forráskódja nyilvánosan a Githubon található. Ebben az oktatóanyagban

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

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

Bevezetés Az iptables egy hatékony eszköz a Linux kernelek integrált tűzfalának konfigurálására. A legtöbb Ubuntu disztribúcióra azonban előre telepítve van

Securely Deploy and Manage LXC Containers on Ubuntu 14.04

Securely Deploy and Manage LXC Containers on Ubuntu 14.04

LXC containers (Linux containers) are an operating system feature in Linux that can be used to run multiple isolated Linux systems on a single host. Thes

Az osTicket telepítése Debian 10 rendszeren

Az osTicket telepítése Debian 10 rendszeren

Más rendszert használ? Az osTicket egy nyílt forráskódú ügyfélszolgálati jegyértékesítő rendszer. Az osTicket forráskódja nyilvánosan a Githubon található. Ebben az oktatóanyagban

Az osTicket telepítése az Ubuntu 18.04 LTS rendszeren

Az osTicket telepítése az Ubuntu 18.04 LTS rendszeren

Más rendszert használ? Az osTicket egy nyílt forráskódú ügyfélszolgálati jegyértékesítő rendszer. Az osTicket forráskódja nyilvánosan a Githubon található. Ebben az oktatóanyagban

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.

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.

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 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é.

A macOS Catalina 10.15.4 kiegészítés frissítése több problémát okoz, mint a megoldás

A macOS Catalina 10.15.4 kiegészítés frissítése több problémát okoz, mint a megoldás

Az Apple a közelmúltban kiadott egy kiegészítést a macOS Catalina 10.15.4-hez a problémák megoldására, de úgy tűnik, hogy a frissítés több problémát okoz, ami a Mac gépek blokkolásához vezet. További információért olvassa el ezt a cikket