Firewall im insbesonderen iptables

#0
26.09.2004, 19:19
Ehrenmitglied

Beiträge: 831
#1 Firewall im insbesonderen iptables

1.Sinn und Zweck einer Firewall
2.Kurzerklärung ipfwadm & ipchains & iptables + Kernelcompilern
3.Save und Restore iptables/ipchains
4.Unterschied zwischen iptables und ipchains
5.Der Befehl ipchains
6.Der Befehl iptables
7.IPtable-save & IPtable-restore (inkl. chains)
8.Filtermöglichkeiten des Packetfilters in der Theorie



1. Sinn und Zweck einer Firewall
Eine Firewall ist ein Sicheres System zwischen einem Internen und Externen (Internet) Netzwerk System.
Nach diversen Regeln wird bestimmt ob und wohin der Datenverkehr fließen darf, oder ob er gänzlich gesperrt werden soll.
Blocken von Böswilligen und unabsichtlich schädlichen Daten, überprüfen von Daten die rein und rausgehen ist die Hauptaufgabe einer FW.
Doch auch das Masquerading ist ein interessanter Punkt. Mehrere Ips werden zu einer (meist) öffentlichen IP zusammengefasst.
Meist aus Kostengründen, aber auch ein gewisser Schutz besteht nun, da unser Netzwerk leicht versteckt ist.
Da alles über die FW geht, ist eine leichte und gute Verteidigungslinie ausbaubar.
Um Virtuelle Server zu erstellen ist Portforwarding ein guter Ansatzpunkt.


2. Kurzerklärung ipfwadm & ipchains & iptables +
Kernelcompilern

Ip-FW's und Masquerade gab es schon lange. Bei Linux sind diese Programme Kernelabhängig. Linux baut auf einem Kernel auf. Das Herz. Ohne ihn würde nichts laufen.
Jeder Kernel hat eine Nummer.
2.0.x hatte denn Befehl ipfwadm.
2.2.x Ipchains
2.4.x Iptables
Sollte die Firewallunterstützung nicht im Kernel vorhanden sein, so kommt der Befehl "make config" ins spiel.
Folgendes sollte dann eincompilert werden.
Auf 2.0 gehe ich nicht ein, da es dem Stande der
Technik nicht mehr entspricht.

2.2
"Network Firewall"
"TCP/IP networking"
"IP:firewalling"
"IP:transparant proxy support"
"IP:masquerading"
"ICMP masquerading"

2.4
"Network packet filtering (replaces ipchains)"
"IPtables support (required for filtering/masq/NAT)"
"Packet filtering"

Es gibt mehrere erweiterte Target- und Muster-Regel-Module, die auch eincompilern werden können.


3. Save und Restore iptables/ipchains
Wenn die Regeln für ipchains fertig sind, können sie
diese mit ipchains-save speichern.
Der Befehl ipchains-restore restauriert die Regeln
nach einem Neustart.
Das gleiche gilt für die iptables.
iptables-save && iptables-restore.


4. Unterschied zwischen iptables und ipchains
iptables sind abwärtskompatible zu ipchains.
Einstellbar über netfilter.
iptables sind denn ipchains ähnlich, aber stark
erweitert.


8. Filtermöglichkeiten des Packetfilters in der Theorie

Empfohlene Filtermöglichkeiten

- Gefälschte Adressen erkennen

-- Externes Interface

--- LAN-Adressen
Private Klasse A 10.0.0.0-10.255.255.255
Private Klasse B 172.16.0.0-172.31.255.255
Private Klasse C 192.168.0.0-192.168.255.255

--- Broadcast
0.0.0.0
255.255.255.255

-- Externes wie Internes Interface

--- Klasse A (Null-Netzwerk)
0.0.0.0-0.255.255.255

--- Local-Link
169.254.0.0-169.254.255.255

--- Testnet (Für Testzwecke)
192.0.2.0-192.0.2.255 (Nicht mit Priv. Klass C zu
verwechseln)

--- Klasse D (Multicast-Adressen)
224.0.0.0-239.255.255.255

--- Klasse E
240.0.0.0-247.255.255.255

--- Loopback
127.0.0.0-127.255.255.255 (besser als
localhost=127.0.0.1 bekannt)

--- Die eigene Adresse
Die Adresse des Internen Interfaces sollte nicht auf dem Externen erscheinen und umgekehrt

- Geheimer Scan (Stealth Scan)

-- TCP 3 Wege Handshake
SYN, ACK, RST, FIN usw. sind FLAGS
SYN = Verbindungsaufbau
ACK = Bestätigung
RST = Reset (Verbindungsabbruch)


Täter: SYN
Opfer: SYN,ACK
Täter: RST

Ein Normaler TCP Handshake würde aber so aussehen
CLIENT: SYN
SERVER: SYN,ACK
CLIENT: SYN

SYN, ACK, RST, FIN usw. sind FLAGS
SYN = Verbindungsaufbau
ACK = Bestätigung
RST = Reset (Verbindungsabbruch)


Durch den Frühzeitigen RST kommt keine vollständige TCP Verbindung zu Stande.
Nun könnten alle Fälle 'SYN SYN,ACK RST' z.B. eine Sperrung der IP hervorrufen welches das weitere Portscanning verhindern würde.
Denkbar wäre auch das sperren einzelner Riskanter
Dienste (Ports) für diese IP (BIND, FTP ...)

-- Weitere Stealth Scans

--- SYN FIN gleichzeitig
'SYN,FIN SYN,FIN'

--- Keine FLAGS
''

--- FIN RST gleichzeitig
'FIN,RST FIN,RST'

--- FIN ohne ACK
'ACK,FIN FIN'

Weitere Infos : http://www.ietf.org/rfc/rfc793.txt

- ICMP UNREACHABLE
ICMP ist ein ping
Diese können gesperrt werden.
Der Vorteil liegt darin das bei schnellen und grossen Scans der HOST als Down registriert wird und somit ein klein wenig Unsichtbarer ist.
Trotz allem ist es möglich diese Filtervariante mit speziellen Scanmethoden zu erkennen.

- Policy
Verhalten einer Packetfilterfirewall für ein IP Packet welches in keine der Regeln passt.

-- Policy Externes Interfaces
Alle Packete sollten verworfen werden, welche nicht explizit erlaubt sind.
Als Auswahl gibt es 'DROP' welches alles einfach ignoriert und 'REJECT' wo eine Fehlermeldung zurückschickt.
Im Allgemeinen wird empfohlen DROP zu verwenden da so der Traffic geringer gehalten wird und die Antworten nicht für nicht legitime Zwecke verwendet werden können.

-- Policy Internes Interface
Für Anfänger ist es einfacher alles auf 'ACCEPT' zu setzen.
Einen gesteigerten Sicherheitsstandard erreichen wir aber mit 'REJECT' (zurückweißen) und 'DROP' ignorieren.

- Sperren von sources routed Packeten

- Protokollierung
Logs können für alle gefährlichen Packete geschrieben werden (Stealth Scan, Source Routing, gefälschte Adressen)

- Limit
Erstellen von LIMITS welches die Anzahl von z.B. 5 Pings die Minute haben nie geschadet.


Autor : poiin2000@yahoo.de
WebSeite: http://linux.regionnet.de
__________
http://linux.regionnet.de/ - http://www.pf-lug.de/ - http://www.4logistic.de/ - http://www.pfenz.de
Seitenanfang Seitenende
26.09.2004, 21:29
Moderator
Avatar joschi

Beiträge: 6466
#2 Hey poiin.....riesig !!! Kommt so unerwartet . ;)
__________
Durchsuchen --> Aussuchen --> Untersuchen
Seitenanfang Seitenende
27.09.2004, 15:33
Member
Avatar Xeper

Beiträge: 5289
#3 Hmm ja das ist gut ;)
Eventuell ist das ja was für www.different-thinking.de
Hab jetzt zwar nicht alles durchgelesen, strikt ist loopback und localhost nicht das gleiche aber ich denke das ist schon okay so ;)
__________
E-Mail: therion at ninth-art dot de
IRC: megatherion @ Freenode
Seitenanfang Seitenende
27.08.2005, 10:13
...neu hier

Beiträge: 10
#4 gut, interessant und aufschlussreich, nur eine Frage:

Zitat

Ein Normaler TCP Handshake würde aber so aussehen
CLIENT: SYN
SERVER: SYN,ACK
CLIENT: SYN

kenn ich nicht, in meinen Logs steht immer

Zitat

CLIENT: SYN
SERVER: SYN,ACK
CLIENT: ACK

bitte um Aufklärung
air
Seitenanfang Seitenende
24.10.2005, 22:49
...neu hier

Beiträge: 7
#5

Zitat

air sentry postete
gut, interessant und aufschlussreich, nur eine Frage:

Zitat

Ein Normaler TCP Handshake würde aber so aussehen
CLIENT: SYN
SERVER: SYN,ACK
CLIENT: SYN

kenn ich nicht, in meinen Logs steht immer

Zitat

CLIENT: SYN
SERVER: SYN,ACK
CLIENT: ACK

bitte um Aufklärung
air
das mit dem SYN zum schluss ist falsch...

es muss heißen:
CLIENT: SYN <client_sequenznummer>
SERVER: ACK <client_sequenznummer+1> SYN <server_seqeuenznummer>
CLIENT: ACK <server_sequenznummer+1>
dann ist der tcp-threeway-handshake abgeschlossen und eine "ende zu ende" verbindung zwischen client und server aufgebaut...

der sinn des ganzen ist es, eine methode zu schaffen, pakete einer verbindung zuzuordnen und zu vermeiden, dass jemand die verbindung "klaut" (tcp-hijacking)...
d.h. wenn der server ein ACK <sequenznummer> an den client geschickt hat, muss der client sein nächstes packet, dass er zum server schickt, mit der tcp-sequenznummer senden, die der server zuvor "ge-ack-t" hat...

natürlich wie so oft eine maßnahme, die gut ist, aber nicht perfekt, denn es gibt sequenznummernattacken, die funktionieren :-)

Gruß, Markus
Dieser Beitrag wurde am 24.10.2005 um 22:53 Uhr von mmuessig editiert.
Seitenanfang Seitenende