home: www.staschke.de Author: Marc Delling 02.12.2001 last Update: 16.02.2002 v 1.0


Masquerading / Firewall mit 2.4.x Kernel und IPTABLES

2001-11-13/Marc Delling


B. Copyright

1 Anmerkung

2 Konfiguration




Masquerading / Firewall mit 2.4.x Kernel und IPTABLES

2001-11-13/Marc Delling


1 Anmerkung


1.1 Eine kleine Warnung;-)

Diese Dokumentation richtet sich an den schon etwas erfahrenen Linux Anwender. Man sollte sich bewusst sein, was man hier tut, und vor allem wissen was man tut und es auch verstehen, was man getan hat. Das ist wichtig, um eventuelle Sicherheitsrisiken richtig abschätzen zu können. Hier aufgeführt sind nur im groben die wichtigsten Schritte, auf die Systemsicherheit wird hier nicht weiter eingegangen.
Diese Dokumentation ist als grobe Richtlinie gedacht, als Denkanstoss, nicht als Anleitung! Die Verfeinerung und Verbesserung der Konfiguration muss jeder selbst vornehmen, an sein eigenes System anpassen.

Alles geschieht in eigener Verantwortung. Der Author haftet nicht für eventuelle Schäden am System oder sonst wo!
Wer damit nicht einverstanden ist, der möge bitte nicht weiterlesen.

2 Konfiguration:


2.1 Was soll erreicht werden?

Viele Manuals und HOWTOs im Netz sagen, Paketfiltering und NAT wären jetzt komplett unterschiedliche Dinge und würden getrennt behandelt. Einige mögen von einem ominösen Tool namens ipnatctl gehört haben, mit dem man jetzt das Masquerading konfiguriert. Lange nicht alle der interessierten Bastler haben das Tool je gefunden. Von denen dürften sich einige gewundert haben, da§ das Paket mit 2.4.14 nicht kompiliert. Also, was ist hier los?

Kurz: Politik ist los. Ursprünglich gab es die Netfilter-Gruppe mit den beiden Fraktionen der Paketfilter und die der Paketmangler. Die einen entwickelten iptables ursprünglich nur als Paketfilter, die anderen entwickelten ipnatctl für die Weiterleitung, Umleitung und Veränderung von Packeten.

Es gab jedoch ein paar in der Paketfilter-Fraktion, die es für besser hielten Paketfiltering, Paketmangling, Network Adress Translation (NAT) bzw. für Heimnetze mit dynamischen IPs das seit Linux Urzeiten bekannte Masquerading in einer generischen Lösung zusammenzufassen.

Das Programm hei§t: iptables. Das macht jetzt alles. Jaja, Politik ist ein dreckiges Geschäft, man lese die Autorenliste am Ende der Manpage!

Zur Nutzung der Paketmanglingfunktionen gibt es in den aktuellen Versionen von iptables zwei zusätzliche 'chains': POSTROUTING und PREROUTING. Die NAT-Tabelle und auch das MASQUERADE (als 'target') sind hier zu finden. Ich verweise auf die Man-Page.

Es gibt jetzt sogar Möglichkeiten zur 'stateful inspection' von Verbindungen.
Ob sie so mächtig sind, wie die Tools aus der BSD-Welt, kann ich noch nicht sagen. Ich hab es bis jetzt nur überflogen, aber so leicht wie mit dem BSD ipfilter ist ein 'keep state' scheinbar noch nicht einzurichten.


2.2 Es folgt das Shellscript mit weiteren Kommentaren:


In der Auflistung unten sind die (teilweise optionalen) Kernelmodule, die für den Betrieb einer iptables-Firewall nötig sind.

Kernelmodule: (insmod)
ip_conntrack.o
ip_nat.o
ip_tables.o
ip_conntrack_ftp.o
ip_nat_ftp.o
ipt_REDIRECT.o
ipt_REJECT.o
iptable_filter.o
iptable_nat.o
ipt_MASQUERADE.o

Die Liste ist nicht vollständig, für das Paketmangling zum Beispiel werden noch weitere Module benötigt. Die Module müssen vor Ausführung von iptables geladen sein. Ob 'demand-loading' der Kernelmodule in iptables inzwischen funktioniert habe ich nicht getestet.

Meine Empfehlung ist jedoch ein statischer Kernel. Ein statischer 2.4.12 mit kompletten Netzfunktionen ohne den überflüssigen anderen Kram ist kleiner als 700k, das schafft kein aktueller modularer Distributionskernel!

Die iptables Manpage ist aktuell aber nur ein grober Abri§ der Möglichkeiten, die sich mit iptables jetzt bieten und beinhaltet keine Praxisbeispiele, was ja auch eigentlich Zweck der HOWTOs ist. Au§erdem habe ich die Erwähnung der Möglichkeit zur Nutzung der -o Option für das POSTROUTING vermi§t.

Weiter unten zum Abtrennen ist der Scriptcode für eine rudimentäre Firewall mit Masquerading-Funktion. Dies ist wahrscheinlich das, was die meisten benötigen, die wie ich nach dem Umstieg auf den 2.4er Kernel erst einmal ratlos an die Decke gestarrt haben. Zur Erläuterung:

Zeile 18 verhindert das ein Rechner aus dem Internet eine Verbindung initiert.
     (Blockierung von syn-Packeten)

Zeilen 14, 20, 21 dienen zur Einengung der FORWARD-Regeln

Zeile 23 sorgt für die Maskierung des lokalen Subnetzes.

----[cut here]----------------------------------------------------------------

#!/bin/bash

# masq/fw ver7 2001-11-10 Marc Delling 

LAN="192.168.1.0/24"
ETH="eth0"
PPP="ippp0"
IPTABLES="/usr/sbin/iptables"

case "$1" in
	start)
		echo "1" > /proc/sys/net/ipv4/ip_forward
		
		$IPTABLES -P FORWARD DROP
		$IPTABLES -P INPUT ACCEPT
		$IPTABLES -P OUTPUT ACCEPT
		
		$IPTABLES -A INPUT -i $PPP -p tcp --syn -j DROP
		
		$IPTABLES -A FORWARD -i $ETH -s $LAN -d ! $LAN -j ACCEPT
		$IPTABLES -A FORWARD -i $PPP -s ! $LAN -d $LAN -j ACCEPT
		
		$IPTABLES -A POSTROUTING -j MASQUERADE -t nat -s $LAN -o $PPP
	;;
	
	stop)
		echo "0" > /proc/sys/net/ipv4/ip_forward
		
		$IPTABLES -F POSTROUTING -t nat
		$IPTABLES -F INPUT
		$IPTABLES -F OUTPUT
		$IPTABLES -F FORWARD
	;;
	
	status)
		$IPTABLES -L
		$IPTABLES -L POSTROUTING -t nat
	;;
	
	*)
		echo "Usage: $0 {start|stop|status}"
	;;
esac

exit 0

----[cut here]----------------------------------------------------------------

Abschlie§end werde ich jede Haftung ausschlie§en. Wenn man mich auf Irrtümer oder Vorschläge hinweisen möchte, möge er/sie sich mit mir kurzschlie§en.

In diesem Text gibt es keine Aussagen, sondern nur Meinungen. In diesem Text gibt es keine Erwähnungen irgendwelcher Markenzeichen von irgendwelchen Firmen.

...glaube ich

Und wenn, dann sind es eben die eingetragenen Markenzeichen irgendwelcher Firmen. Ach ja, jetzt fällts mir ein: Linux ist eingetragenes Markenzeichen von Linus Torvalds. Das Wort Linux gibt es drei mal in diesem Text.

Have a nice day... (sollte kein Zitat sein)



Copyright
Das Copyright für diese Seiten liegt bei Arnim Staschke, Flensburg, Germany. Für die Nutzung dieser Seiten auf anderen Rechnern oder die Verbreitung dieser Seiten gilt folgendes: Die Seiten duerfen in ihrer Ursprungsform unveraendert kostenlos weiterverbreitet werden, solange dieser Copyrighthinweis, der Name des Authors und die Herkunft erhalten bleibt. Die Weitergabe, die komerzielle Nutzung, auch in schriftlicher Form, gegen Gebühr oder gegen Entgelt ist untersagt, bzw. bedarf der ausdrücklichen schriftlichen Zustimmung des Authors. Links auf diese Dokumentation sowie das Kopieren auf Resourcen im Internet sind ausdruecklich erlaubt, solange ein deutlicher Hinweis auf die Herkunft und das Copyright, sowie ein Link auf die Originalseiten enthalten bleibt.


home
www.staschke.de
eMail
Arnim Staschke

made by staschke 02.12.2001