21
IPTABLES Forrás: https://hu.wikipedia.org/wiki/Iptables http://szabilinux.hu/iptables/chapter7.html Gregor N. Purdy: Linux iptables zsebkönyv

IPTABLES - M-info.hu2017).pdf · 2 IPTABLES Mi az iptables? Netfilter a Linux rendszermagjának hálózati csomagok feldolgozására szolgáló alrendszer. Ennek beállítására

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

Page 1: IPTABLES - M-info.hu2017).pdf · 2 IPTABLES Mi az iptables? Netfilter a Linux rendszermagjának hálózati csomagok feldolgozására szolgáló alrendszer. Ennek beállítására

IPTABLES

Forrás:https://hu.wikipedia.org/wiki/Iptables

http://szabilinux.hu/iptables/chapter7.htmlGregor N. Purdy: Linux iptables zsebkönyv

Page 2: IPTABLES - M-info.hu2017).pdf · 2 IPTABLES Mi az iptables? Netfilter a Linux rendszermagjának hálózati csomagok feldolgozására szolgáló alrendszer. Ennek beállítására

2

IPTABLES

● Mi az iptables?● Netfilter a Linux rendszermagjának hálózati

csomagok feldolgozására szolgáló alrendszer. Ennek beállítására az iptables parancs használható.

● Csomagszűrő● Tűzfal● OSI modell 3. rétegében dolgozik

● Korábbi kerneleknél ipchains volt a parancs

Page 3: IPTABLES - M-info.hu2017).pdf · 2 IPTABLES Mi az iptables? Netfilter a Linux rendszermagjának hálózati csomagok feldolgozására szolgáló alrendszer. Ennek beállítására

3

IPTABLES

● OSI modell

Page 4: IPTABLES - M-info.hu2017).pdf · 2 IPTABLES Mi az iptables? Netfilter a Linux rendszermagjának hálózati csomagok feldolgozására szolgáló alrendszer. Ennek beállítására

4

IPTABLES

● Táblák és láncok● nat tábla láncai:

PREROUTING, OUTPUT, POSTROUTING

● filter tábla láncai: INPUT, FORWARD, OUTPUT

● mangle tábla láncai: PREROUTING, INPUT, FORWARD, OUTPUT, POSTROUTING

Page 5: IPTABLES - M-info.hu2017).pdf · 2 IPTABLES Mi az iptables? Netfilter a Linux rendszermagjának hálózati csomagok feldolgozására szolgáló alrendszer. Ennek beállítására

5

IPTABLES

● Láncok● INPUT:

● Bejövő csomagok● OUTPUT:

● Kimenő csomagok● FOWARD:

● Továbbítandó csomagok● PREROUTING, POSTROUTING:

● Csomagmódosításra szolgáló láncok, a „nat” és „mangle” tábla használja. Pl. címfordítás (NAT)

● Minden láncnak van egy alapértelmezett szabálya (policy):

● ACCEPT: engedélyezett, DROP: tiltott

Page 6: IPTABLES - M-info.hu2017).pdf · 2 IPTABLES Mi az iptables? Netfilter a Linux rendszermagjának hálózati csomagok feldolgozására szolgáló alrendszer. Ennek beállítására

6

IPTABLES

● A „filter” tábla● Alapértelmezett tábla, legfontosabb tábla.● Ha nincs megadva tábla az iptables parancsban,

akkor ebben dolgozik!● Láncai:

● INPUT● FORWARD● OUTPUT

● Egy hálókártya (munkaállomás) esetén az INPUT lánc használatos. Nem tud forward-olni.

Page 7: IPTABLES - M-info.hu2017).pdf · 2 IPTABLES Mi az iptables? Netfilter a Linux rendszermagjának hálózati csomagok feldolgozására szolgáló alrendszer. Ennek beállítására

7

IPTABLES

● A „nat” tábla● Címfordításkor használatos.● Több hálókártya van, router.● Láncai:

● PREROUTING● OUTPUT● POSTROUTING

● Internet felé címfordítás: POSTROUTING (SNAT)● Internet felől címfordítás: PREROUTING (DNAT)

Page 8: IPTABLES - M-info.hu2017).pdf · 2 IPTABLES Mi az iptables? Netfilter a Linux rendszermagjának hálózati csomagok feldolgozására szolgáló alrendszer. Ennek beállítására

8

IPTABLES

● A „mangle” tábla● Módosítások végezhetőek a TCP/IP csomagokban.● Pl. TOS, TTL, MARK, SECMARK, CONNSECMARK...● Láncai:

● PREROUTING● INPUT● FORWARD● OUTPUT● POSTROUTING

Page 9: IPTABLES - M-info.hu2017).pdf · 2 IPTABLES Mi az iptables? Netfilter a Linux rendszermagjának hálózati csomagok feldolgozására szolgáló alrendszer. Ennek beállítására

9

IPTABLES

● Az „iptables” parancs● Általában az INPUT láncban szűrünk.● Ha az adott csomag egyik szabályra sem illeszkedik,

akkor az alapértelmezett (default policy) érvényesül.● Legfontosabb paraméterek:

-F : minden szabályt töröl a láncból, ha a lánc elmarad, a tábla összes láncából

-L : kilistázza a szabályokat, ha a lánc elmarad, az INPUT láncét

-P : megadja a beépített lánc policy-ját (default policy)

-N : saját láncot hoz létre

-X : töröl egy saját láncot

-A : a szabályt a lánc végére szúrja be

-I : a szabályt a lánc elejére szúrja be -t : a tábla, amiben dolgozik, ha nincs megadva, akkor a „filter” tábla

Page 10: IPTABLES - M-info.hu2017).pdf · 2 IPTABLES Mi az iptables? Netfilter a Linux rendszermagjának hálózati csomagok feldolgozására szolgáló alrendszer. Ennek beállítására

10

IPTABLES

● Az „iptables” parancs● Feltételek megadása:

-s : küldő IP címe (forrás, source)

-d : címzett IP címe (cél, destination)

--sport : küldő port

--dport : címzett port

-i : fogadó interfész, csatoló (pl. eth0)

-o : kiküldő interfész, csatoló (pl. eth1)

-p : csomag protokoll: tcp, udp, icmp

-m : iptables modul betöltése

Page 11: IPTABLES - M-info.hu2017).pdf · 2 IPTABLES Mi az iptables? Netfilter a Linux rendszermagjának hálózati csomagok feldolgozására szolgáló alrendszer. Ennek beállítására

11

IPTABLES

● Az „iptables” parancs● Feltételek megadása:

-m modulename

Page 12: IPTABLES - M-info.hu2017).pdf · 2 IPTABLES Mi az iptables? Netfilter a Linux rendszermagjának hálózati csomagok feldolgozására szolgáló alrendszer. Ennek beállítására

12

IPTABLES

● Az „iptables” parancs● Célok megadása:

-j <cél> : A csomagcél megadása● Cél lehet:

● ACCEPT: elfogadott csomag, feldolgozás befejezése.

● DROP: eldobott csomag, feldolgozás befejezése

● REJECT: visszautasított csomag, kezdeményező oldal felé egy „icmp” értesítő üzenet is elküldésre kerül. Feldolgozás befejezése.

● LOG: kernel szinten naplózásra kerül (--log-level, --log-prefix). Feldolgozás folytatódik.

Page 13: IPTABLES - M-info.hu2017).pdf · 2 IPTABLES Mi az iptables? Netfilter a Linux rendszermagjának hálózati csomagok feldolgozására szolgáló alrendszer. Ennek beállítására

13

IPTABLES

● Az „iptables” parancs● Célok megadása:

-j <cél> : A csomagcél megadása● Cél lehet a „nat” táblán:

● SNAT: SNAT – forráscím fordítás● DNAT: DNAT – célcím fordítás● MASQUERADE: forráscím maszkolás

Page 14: IPTABLES - M-info.hu2017).pdf · 2 IPTABLES Mi az iptables? Netfilter a Linux rendszermagjának hálózati csomagok feldolgozására szolgáló alrendszer. Ennek beállítására

14

IPTABLES

● „iptables” példák● Naplózás:

iptables -A INPUT -j LOG --log-prefix "IPTABLES_input " --log-level debug

Rendszernaplóban:Nov 7 08:55:21 szerver1 kernel: [ 1888.333958] IPTABLES_input IN=eth0 OUT= MAC=d4:be:d9:53:23:85:f8:d1:11:3b:ab:1c:08:00 SRC=216.58.209.163 DST=192.168.1.11 LEN=40 TOS=0x00 PREC=0x00 TTL=57 ID=3457 PROTO=TCP SPT=443 DPT=57184 WINDOW=0 RES=0x00 RST URGP=0

● Tűzfalszabályok törléseiptables -P INPUT ACCEPT # minden bejövő csomagot engedünkiptables -P OUTPUT ACCEPT # minden kimenő csomagot engedünkiptables -F # törlünk minden szabálytiptables -X # törlünk minden saját láncotiptables -Z # törlünk minden számlálótiptables -P FORWARD DROP # a csomagtovábbítást tiltjuk

Page 15: IPTABLES - M-info.hu2017).pdf · 2 IPTABLES Mi az iptables? Netfilter a Linux rendszermagjának hálózati csomagok feldolgozására szolgáló alrendszer. Ennek beállítására

15

IPTABLES

● „iptables” példák● Munkaállomás tűzfalszabályai:

iptables -A INPUT -i lo -j ACCEPT # gepen beluli kommunikaciot engedjukiptables -A OUTPUT -o lo -j ACCEPT # gepen beluli kommunikaciot engedjukiptables -A OUTPUT -j ACCEPT # mindent kiengedunkiptables -N admin # sajat lanc ssh-nak

# INPUT lanciptables -A INPUT -m pkttype --pkt-type mcast -j DROP # a munkaallomas nem hasznal multicastot

iptables -A INPUT -m conntrack --ctstate INVALID -j DROP # a megszunt kapcsolathoz tartozo csomagot eldobjuk

iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT # a mar letrejott kapcsolatok csomagjai bejohetnek

iptables -P INPUT DROP # ha egy csomag beengedesere nincs szabaly, eldobjukiptables -A INPUT -p icmp --icmp_type echo_request -j ACCEPT # pingiptables -A INPUT -p tcp --dport ssh -j admin # az ssh-t csak bizonyos gepekrol fogadjukiptables -A INPUT -j LOG --log-prefix "IPTABLES_input " --log-level debug # logoljuk a probalkozasokat

# admin lanciptables -A admin -p tcp -m iprange --src-range 192.168.1.2-192.168.1.254 -j ACCEPT # az ssh-t csak helyi halobol engedjukiptables -A admin -j LOG --log-prefix "IPTABLES_admin " --log-level debug # logoljuk a probalkozasokatiptables -A admin -s 0/0 -j DROP # eldobjuk a csomagot, amire nincs beengedo szabaly

Page 16: IPTABLES - M-info.hu2017).pdf · 2 IPTABLES Mi az iptables? Netfilter a Linux rendszermagjának hálózati csomagok feldolgozására szolgáló alrendszer. Ennek beállítására

16

IPTABLES

● „iptables” példák● NAT szerver tűzfalszabályai:

# a megszunt kapcsolathoz tartozo csomagot eldobjuk:iptables -A FORWARD -m conntrack --ctstate INVALID -j DROP

# a mar letrejott kapcsolatok csomagjait engedjuk:iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

# a belso halobol mindenki kimehet:iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT

# MASQUERADE a kimeno csatolo elsodleges cimen NAT-ol:iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

● SNAT: statikus IP címek esetén● MASQUERADE: dinamikus IP címek esetén (pl. ppp)

● A MASQUERADE feldolgozza az IP címváltozást, de erőforrásigényes.

Page 17: IPTABLES - M-info.hu2017).pdf · 2 IPTABLES Mi az iptables? Netfilter a Linux rendszermagjának hálózati csomagok feldolgozására szolgáló alrendszer. Ennek beállítására

17

IPTABLES

● Az „iptables” telepítés

● Debian alapú rendszerek esetén:● apt install iptables

● RedHat alapú rendszerek esetén:● yum install iptables● dnf install iptables

Page 18: IPTABLES - M-info.hu2017).pdf · 2 IPTABLES Mi az iptables? Netfilter a Linux rendszermagjának hálózati csomagok feldolgozására szolgáló alrendszer. Ennek beállítására

18

IPTABLES

● Az „iptables” szabályok konfigurálása

● Szolgáltatás indítás, leállítás, státusz● systemctl start iptables● systemctl stop iptables● systemctl status iptables

● Beállítások (szabályok) mentése● iptables-save

● Beállítások (szabályok) visszatöltése● iptables-restore

Page 19: IPTABLES - M-info.hu2017).pdf · 2 IPTABLES Mi az iptables? Netfilter a Linux rendszermagjának hálózati csomagok feldolgozására szolgáló alrendszer. Ennek beállítására

19

IPTABLES

● Az „iptables” szabályok konfigurálása

● Lehet shell szkriptet írni.● Konfigurációs fájlba beállítható (RedHat alapú rdsz.):

● /etc/sysconfig/iptables# Generated by iptables-save…*filter:INPUT ACCEPT [0:0]:FORWARD ACCEPT [0:0]:OUTPUT ACCEPT [0:0]-A INPUT -p udp -m udp –sport 161 -j ACCEPT-A INPUT -p tcp –dport 21 -j DROPCOMMIT

Page 20: IPTABLES - M-info.hu2017).pdf · 2 IPTABLES Mi az iptables? Netfilter a Linux rendszermagjának hálózati csomagok feldolgozására szolgáló alrendszer. Ennek beállítására

20

IPTABLES

● Frontend, felhasználói réteg

● A könnyebb kezelhetőség, konfigurálás érdekében készült egy kezelői felület: firewalld

http://www.firewalld.org

Page 21: IPTABLES - M-info.hu2017).pdf · 2 IPTABLES Mi az iptables? Netfilter a Linux rendszermagjának hálózati csomagok feldolgozására szolgáló alrendszer. Ennek beállítására

21

IPTABLES

Köszönöm a figyelmet!