iptables

Iptable kezdőknek

Iptable kezdőknek
Az Iptables alapvetően a Linux rendszerekhez használt fő tűzfal, vannak olyan alternatívák, mint az nftable, de az Iptables továbbra is a fő, nagyon rugalmas, mivel közvetlen parancsokat fogad el a felhasználótól, szükség esetén betölthet és kirakhat szabályokat a tűzfal házirendjének növelése érdekében pontosság.

Valójában nem is kell ismernie az Iptable szintaxisát a használatához, vannak olyan grafikus eszközei, mint a Firewall Builder, amelyek szükségtelenné tehetik a tanulási folyamatot, de ha a Linux adminisztrációs ismereteinek bővítése kívánatos, akkor az Iptables az első lépés a gyakorlatban felügyelheti a biztonságot Linux alatt, és még könnyebben kezelheti a CISCO vagy a Fortigate biztonsági eszközöket és hasonlókat.

Az Iptables alapvetően lehetővé teszi, hogy utasítsa a rendszerét egy kapcsolat elfogadására, visszautasítására vagy továbbítására a kiválasztott paraméterektől függően, például az összes kapcsolat X-portra történő átirányítására egy másik IP-címre, az adott IP-ből, IP-tartományból érkező összes kapcsolat blokkolására vagy fogadja el az összes engedélyt az engedélyezőlistán szereplő IP-címekről, sok egyéb funkció mellett.

Ebben az oktatóanyagban megtudhatjuk, hogyan védhetjük meg a webkiszolgálót, hogyan továbbíthatunk kapcsolatokat a belső IP-címekre a helyi hálózatunkról, és hogyan kínálhatunk konkrét szolgáltatásokat csak az engedélyezőlistán szereplő IP-címekre.

Az Iptables telepítése

Az iptables Debian / Ubuntu rendszerekre történő telepítéséhez futtassa az „apt update && apt install iptables” parancsot rootként vagy „sudo” előtaggal, mint a következő képen.

HTTP és HTTPS portok megnyitása

Először az összes ACCEPT házirendet adhatja hozzá, amelyet a webszerver kezd.

iptables -A BEMENET -p tcp --port 80 -j ELFOGADÁS
iptables -A BEMENET -p tcp --port 443 -j ACCEPT

A hozzáadott szabályok megtekintéséhez futtassa az „iptables -L” futtatást

Hol:

Iptable-k = meghívja a programot
-A = hozzáad egy szabályt
BEMENET = bejövő forgalom
-o = protokoll
-ddport = célport
-j = adja meg a „célt”, a cél egyfajta házirend: ACCEPT, DROP, Queue vagy RETURN.

Ezután a fenti kép mintáján azt mondjuk az Iptables számára, hogy adjon hozzá egy szabályt a TCP protokollon keresztül bejövő forgalomhoz, és fogadja el a 80 és 443 portokat.

A „Paraméter hozzáadásával megváltoztathatjuk a parancsot, hogy a kapcsolatot csak egy adott IP-ről fogadjuk el-s”:

iptables -A BEMENET -s 127.0.0.1 -p tcp --port 80 -j ELFOGADÁS

Hol:

s = forrás
Iptable -L = felsorolja az összes iptables betöltött szabályt
Iptable -L -v = ugyanez a bőbeszédűséggel.

Tűzfalunkat is tesztelhetjük az nmap segítségével:

Amint láthatjuk, a 80-as port mind az „iptables -L”, mind az Nmap szerint nyitva van.

Megjegyzés: Az Nmap használatával kapcsolatos további információkért olvassa el a bemutatónkat

A szerver védelme

# Nyissa meg a HTTP és a HTTPS szolgáltatásokat.
iptables -A BEMENET -p tcp --port 80 -j ELFOGADÁS
iptables -A BEMENET -p tcp --port 443 -j ACCEPT
# Nyissa meg az SSH port szolgáltatást
iptables -A BEMENET -p tcp --port 22 -m csatlakozási sáv --ctstate ÚJ, BEÁLLÍTOTT -j ACCEPT

Az új paraméterek:

-m = jelentése "egyezik", és az Iptable kiterjesztéseinek hívására szolgál, például a conntrack, amely nem része az iptable alapvető funkcióinak.

bekötés = Lehetővé teszi a kapcsolatokra vonatkozó információk nyomon követését, például meghatározott címeket, vagy ebben az esetben a kapcsolat állapotát. Ezt óvatosan kell használni, mivel sok szabály a kiszolgálók megvédésére egyes támadásoktól a conntrack-et használja, miközben használatát a hardver korlátozza, és ilyen korlátozás használható a szerver erőforrásainak túlterhelésére.

-ctstate = meghatározza a szabály állapotát, hogy megfeleljen, a lehetséges állapotok: ÚJ, LÉTREHOZOTT, KAPCSOLÓDÓ és ÉRVÉNYTELEN.

# Védje SSH szolgáltatását a durva erőszakos támadások ellen, csak egy adott IP engedélyezésével
az iptables -A INPUT -p tcp -s X eléréséhez.x.x.X --port 22 -m bekötés --ctstate ÚJ,
LÉTREHOZOTT -J ELFOGADÁS
# A csatlakozási kísérletek korlátozásával védje SSH szolgáltatását a durva erőszakos támadások ellen
Iptable -A INPUT -p tcp -m tcp --port 22 -m conntrack --ctstate NEW -j 22-test
Iptables -A 22-teszt -m legújabb --name CSATLAKOZÁSOK - set --mask 255.255.255.255 - forrás
Iptables -A 22-teszt -m legújabb --name CSATLAKOZÁSOK - check --mask 255.255.255.255
--rsource --seconds 30 --hitcount 3 -j 22-protection
Iptable -A 22-teszt -j ACCEPT
Iptable -A 22-védelem -j DROP

Hol:
Az első írásban a szabály azt mondja:-m conntrack -ctstate ÚJ ” ami azt jelenti, hogy ha a kapcsolat új, akkor adja át a „22-teszt” szabályt.

A második sor azt mondja, hogy a csomagok maszkolják a 255-et.255.255.255 nevet nevezzük CSATLAKOZÁSOK .

A harmadik sor azt mondja, ha a CSATLAKOZÁSOK 30 másodpercen belül több mint háromszor, a tűzfal folytatja a lánc alkalmazását 22-védelem. A negyedik sor azt mondja, ha a CSATLAKOZÁSOK 30 másodpercen belül nem tűnt háromszor többnek, elfogadható.
Ötödik sor, amely a 22-védelem lánc azt mondja, hogy ejtsen CSATLAKOZÁSOK ha 30 másodpercen belül háromszor többnek tűnik.

Végül lehetővé teszi az összes nem elfogadott kapcsolat megtagadását, és engedélyezzük az összes kimenő forgalmat:

iptables -P OUTPUT ACCEPT
iptables -P INPUT DROP

Ahol a -P a cél láncát jelenti, ne feledje, hogy a cél a házirend, ACCEPT, DROP, Queue vagy RETURN. Ebben az esetben azt mondjuk, hogy a kimenő forgalom alapértelmezett házirendje az elfogadás, a bejövő forgalomhoz pedig az alapértelmezett visszautasítás, hacsak a korábbi szabályokban nem adtunk meg mást. Ez egy nagyon alapvető tűzfal, amely nem tartalmaz sok támadásra vonatkozó szabályokat, tanulási és nem termelési célokra. A cikk végén csatolok egy tűzfalat, amelyet a kiszolgálón gyártáshoz használtam, megjegyzéseket fűz az egyes szabályokhoz.

CSATLAKOZÁS MEGHATÁROZÁSA KÜLÖNLEGES KIKÖTŐHÖZ EGY KONKRÉT IP-CÍMRE

Ez nagyon hasznos azoknak az asztali felhasználóknak is, akik egy adott eszközön keresztül szeretnék kapcsolatot létrehozni, még a játékosok számára is hasznos lehet, általában a router beállításaiból tesszük, de tegyük fel, hogy az útválasztó eszköz Iptables-t futtat.

iptables -A PREROUTING -t nat -p tcp -d X.x.x.X --port 8080 -j DNAT - célállomásig
Y.Y.Y.Y: 80
iptables -A POSTROUTING -t nat -p tcp -j SNAT - az X forrásra.x.x.x

A fenti szabályok a NAT-ra (Network Address Translation) hivatkoznak, hogy meghatározzák a TCP protokollon keresztüli kapcsolatokat az X címre.x.x.Az X és a 8080 port át lesz irányítva Y címre.Y.Y.Y, 80-as port. A második szabály meghatározza, hogy a válaszokat a forráscímre kell küldeni (X.x.x.X). Használhatjuk ezeket a szabályokat az IP-kamerához való hozzáférés engedélyezéséhez, az online játékok külső hálózatokon történő engedélyezéséhez stb.

Ez az oktatóprogram a kezdőket kívánta bemutatni az Iptables-nek, és csak korlátozott számú alapvető funkciót magyaráz meg. Az alábbiakban egy jól megtervezett tűzfal mintáját láthatja, amelyet egy termelési kiszolgálóhoz használtak. Ez magában foglalja a már látott szabályokat, a bonyolultabb szabályokat, többek között a DDoS támadások megelőzésére.
A következő bemutató a helyi hálózatokon belüli szippantásról szól, de egy következő bemutatón az alábbiakban ismertetem a tűzfalra alkalmazott néhány szabályt.  Köszönjük, hogy követte a LinuxHint alkalmazást.com, folyamatosan kövess minket az Iptables és általában a Linux frissítéseivel kapcsolatban.

Bónusz: A gyártási tűzfal mintája

iptables -F
# ---- Engedélyezze a rossz hibaüzenetek védelmét
/ proc / sys / net / ipv4 / icmp_ignore_bogus_error_responses engedélyezése
# ---- Kapcsolja be a fordított út szűrését. Biztonságosabb, de megszakítja az aszimmetrikus útválasztást és / vagy az IPSEC-t
engedélyezze a / proc / sys / net / ipv4 / conf / * / rp_filter parancsot
# ---- Ne fogadja el a forrás által irányított csomagokat. A forrás útválasztást ritkán használják legitim módon
célból tiltsa le a / proc / sys / net / ipv4 / conf / * / accept_source_route fájlt
# ---- Tiltsa le az ICMP átirányítás elfogadását, amely felhasználható az útválasztási táblák megváltoztatására
disable / proc / sys / net / ipv4 / conf / * / accept_redirects
# ---- Mivel nem fogadunk el átirányításokat, ne küldjünk átirányítási üzeneteket sem
tiltsa le a / proc / sys / net / ipv4 / conf / * / send_redirects parancsot
# ---- Hagyja figyelmen kívül a lehetetlen címmel rendelkező csomagokat
tiltsa le a / proc / sys / net / ipv4 / conf / * / log_martians fájlt
# ---- Védelmet nyújt a sorszámok becsomagolása ellen, és segíti az oda-vissza idő mérését
engedélyezze a / proc / sys / net / ipv4 / tcp_timestamps parancsot
# ---- Segítség a szinkron árvíz DoS vagy DDoS támadásokkal szemben a kezdeti opciók kiválasztásával
A TCP sorozatszámok engedélyezik a / proc / sys / net / ipv4 / tcp_syncookies alkalmazást
# ---- Használjon Selective ACK-t, amellyel jelezheti, hogy hiányoznak bizonyos csomagok
tiltsa le a / proc / sys / net / ipv4 / tcp_sack fájlt
modprobe nf_conntrack_ipv4
modprobe nf_nat
# modprobe nf_conntrack_ipv6
# modprobe nf_conntrack_amanda
# modprobe nf_nat_amanda
modprobe nf_conntrack_h323
modprobe nf_nat_h323
modprobe nf_conntrack_ftp
modprobe nf_nat_ftp
# modprobe nf_conntrack_netbios_ns
# modprobe nf_conntrack_irc
# modprobe nf_nat_irc
# modprobe nf_conntrack_proto_dccp
# modprobe nf_nat_proto_dccp
modprobe nf_conntrack_netlink
# modprobe nf_conntrack_pptp
# modprobe nf_nat_pptp
# modprobe nf_conntrack_proto_udplite
# modprobe nf_nat_proto_udplite
# modprobe nf_conntrack_proto_gre
# modprobe nf_nat_proto_gre
# modprobe nf_conntrack_proto_sctp
# modprobe nf_nat_proto_sctp
# modprobe nf_conntrack_sane
modprobe nf_conntrack_sip
modprobe nf_nat_sip
# modprobe nf_conntrack_tftp
# modprobe nf_nat_tftp
# modprobe nf_nat_snmp_basic
# Most elkezdhetjük a kiválasztott szolgáltatások hozzáadását a tűzfalszűrőnkhöz. Az első ilyesmi
egy localhost interfész iptables -A INPUT -i lo -j ACCEPT
# Azt mondtuk a tűzfalnak, hogy az összes bejövő tcp jelzővel ellátott csomagot NINCSENKÉNT vegye el, és csak EJTse el.
iptables -A BEMENET -p tcp ! -m conntrack --ctstate ÚJ -j DROP
# Azt mondjuk az iptables számára, hogy adjunk hozzá (-A) szabályt a bejövő (INPUT) ponthoz - az SSH az 50683 porton működik
helyett 22.
iptables -A BEMENET -p tcp -m tcp --port 50683 -j ACCEPT
iptables -A BEMENET -p tcp -m tcp -specifikus ip --port 50683 -j ACCEPT
iptables -A INPUT -p tcp -m tcp -specifikus ip --port 50683 -j ACCEPT
iptables -A INPUT -p tcp -m tcp -specifikus ip --port 50683 -j ACCEPT
iptables -A INPUT -p tcp --dport 50683 -m conntrack --ctstate NEW -m legújabb --set
--név SSH -j ELFOGADÁS
iptables -A INPUT -p tcp --port 50683 -m friss --update --seconds 60 --hitcount 4
--rttl --name SSH -j LOG --log-prefix "SSH_brute_force"
iptables -A INPUT -p tcp --port 50683 -m friss --update --seconds 60 --hitcount 4
--rttl --name SSH -j DROP
iptables -A INPUT -p tcp --dport 50683 -m conntrack --ctstate NEW -m legújabb --set
--név SSH
iptables -A INPUT -p tcp --port 50683 -m conntrack --ctstate ÚJ -j SSH_WHITELIST
iptables -A INPUT -p tcp --dport 50683 -m conntrack --ctstate NEW -m legújabb --update
--másodperc 60 --hitcount 4 --rttl --name SSH -j ULOG --ulog-prefix SSH_bru
iptables -A INPUT -p tcp --dport 50683 -m conntrack --ctstate NEW -m legújabb --update
--másodperc 60 --hitcount 4 --rttl --name SSH -j DROP
# Most engedélyezem az imap-ot és az smtp-t.
-BEMENET -p tcp --dport 25 -j ELFOGADÁS
# Lehetővé teszi a pop-ot és a kapcsolatokat
-BEMENET -p tcp --dport 110 -j ELFOGADÁS
-BEMENET -p tcp --port 995 -j ELFOGADÁS
############ IMAP és IMAPS #############
-BEMENET -p tcp - 146 -port -j ELFOGAD
-BEMENET -p tcp --port 993 -j ELFOGADÁS
########### MYSQL #####################
iptables -A BEMENET -i eth0 -p tcp -m tcp --port 3306 -j ELFOGAD
########## R1soft CDP rendszer ################
iptables -A INPUT -p tcp -m tcp -specifikus ip --port 1167 -j ACCEPT
############### kimenő #####################
iptables -I INPUT -m conntrack --ctstate LÉTREHOZOTT, KAPCSOLÓDÓ -j ACCEPT
### Folyamatos engedélyezés, bejövő blokkolás nincs meghatározva ###
iptables -P OUTPUT ACCEPT
iptables -P INPUT DROP
iptables -L -n
iptables-save | tee / etc / iptables.teszt.szabályok
iptables-restore < /etc/iptables.test.rules
#service iptables újraindul
Telepítse a legújabb Dolphin Emulator for Gamecube & Wii szoftvert Linuxra
A Dolphin Emulator segítségével a kiválasztott Gamecube & Wii játékokat játszhatja Linux személyi számítógépeken (PC). Mivel a Dolphin Emulator szaba...
A GameConqueror Cheat Engine használata Linux alatt
A cikk tartalmaz egy útmutatót a GameConqueror csaló motor Linux alatt történő használatáról. Sok olyan felhasználó, aki Windows-on játszik játékot, g...
A legjobb játékkonzol emulátorok Linuxhoz
Ez a cikk felsorolja a Linux számára elérhető népszerű játékkonzol-emulációs szoftvereket. Az emuláció egy szoftver-kompatibilitási réteg, amely játék...