Upload
others
View
9
Download
0
Embed Size (px)
Citation preview
IPTABLES
Forrás:https://hu.wikipedia.org/wiki/Iptables
http://szabilinux.hu/iptables/chapter7.htmlGregor N. Purdy: Linux iptables zsebkönyv
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
3
IPTABLES
● OSI modell
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
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
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.
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)
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
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
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
11
IPTABLES
● Az „iptables” parancs● Feltételek megadása:
-m modulename
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.
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
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
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
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.
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
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
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
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
21
IPTABLES
Köszönöm a figyelmet!