Firewall - Teil 3

5.7 Ein konkretes Beispiel1


Der folgende Abschnitt gibt einen Einblick in die Firewallkonfiguration an Hand eines konkreten Beispiels:

Eine Firewall verbindet ein kleines lokales Netz mit dem Internet. Die Verbindung zum Internet erfolgt über ein Modem. Die Rechner im lokalen Netz werden über eine Netzwerkkarte angesprochen. Die Rechner im lokalen Netz erhalten reservierte IP-Adressen aus dem reservierten Klasse C Adressbereich. Der Firewallrechner maskiert alle ausgehenden Verbindungen mit seiner offiziellen IP-Adresse, die vom Provider statisch vergeben wurde. Der Firewallrechner erlaubt den Zugriff auf folgende Dienste:
 

Alle anderen Dienste sind nicht gestattet und werden geblockt.
 

5.7.1 Variablen

Zu Beginn werden einige Variablen definiert, um das Firewallskript lesbarer und übersichtlicher zu gestalten.

ext_int="ppp0"
Schnittstelle zum Internet, das Modem

int_int="eth0"
Schnittstelle zum lokalen Netz, die Netzwerkkarte
 

ip_adr="195.20.195.212"
Die vom Provider vergebene statische IP-Adresse der Internetverbindung
 

ip_adr_lan="192.168.0.1"
IP-Adresse der internen Schnittstelle, der Netzwerkkarte zum lokalen Netz
 

lan="192.168.0.0/24"
Der Adreßbereich des lokalen Netzes
 

alles="any/0"
Alle IP-Adressen
 

lo_int="lo"
Das Loopback Interface, die interne lokale Netzwerkschnittstelle
des Firewallrechners
 

class_a="10.0.0.0/8"
Reservierter Bereich eines Klasse A Netzes.
 

class_b="172.16.0.0/12"
Reservierter Bereich eines Klasse B Netzes.
 

class_c="192.168.0.0/16"
Reservierter Bereich eines Klasse C Netzes. <
 

class_d="224.0.0.0/4"
Reservierter Bereich eines Klasse D Netzes
 

class_e="240.0.0.0/5"
Reservierter Bereich eines Klasse E Netzes
 

bcast_src="0.0.0.0"
 

bcast_dest="255.255.255.255"
 

priv_ports="0:1023"
Alle privilegierten Ports (0-1023)
 

unpriv_ports="1024:65535"
Alle unprivilegierten Ports (1024-65535)
 

DNS="195.20.202.1"
Nameserver des Providers
 

POP3="195.20.202.6"
POP3 Server des Providers
 

SMTP="195.20.202.6"
SMTP Server des Providers
 

5.7.2 Chains löschen

Zu Beginn werden die vorhandenen Regellisten gelöscht, um evtl. vorhandene alte Regeln zu entfernen:

Ipchains input -F
Ipchains output -F
Ipchians forward -F

Die Chains sind nun gelöscht. Es gelten keine Regeln mehr. Die Firewall ist sozusagen "nackt".
 

5.7.3 Default Policy definieren

Ipchains -P input DENY
Ipchains -P output REJECT
Ipchains -P forward REJECT

Die Default Policy der einzelnen Chains wird eingerichtet. Da eine "deny everything by default"-Strategie verfolgt wird, werden alle Pakete abgelehnt.

Kleiner Unterschied zwischen der input und output/forward Chain: Eingehende Pakete, für die keine Regel existiert, werden kommentarlos verworfen (deny), während ausgehende, sowie zwischen Schnittstellen weitergeleitete Pakete mit einer Fehlermeldung zurückgewiesen werden (reject). Der Angreifer erhält keinerlei Informationen darüber, ob ein kontaktierter Dienst überhaupt existiert oder nicht.

Die Firewall befindet sich jetzt in einem absolut geblockten Zustand. Sämtlicher Netzwerkverkehr wird in dieser Einstellung verhindert. Deshalb muß als nächstes der lokale Netzwerkdienst wieder freigeschalten werden.
 

5.7.4 Loopback Interface aktivieren

Ipchains -A input -i $lo_int -j ACCEPT
Ipchains -A output -i $lo_int -j ACCEPT

Datenverkehr auf dem Loopback-Interface wird wieder möglich, da dieser für lokale Netzwerkdienste, wie die Erstellung von Logfiles oder X-Windows2 benötigt wird.
 

5.7.5 Schutz vor SYN Flooding

Folgende Zeilen aktivieren den im Kernel enthaltenen Schutz vor SYN Flooding DoS-Angriffen:3

Echo 1 > /proc/sys/net/ipv4/tcp_syncookies
For f in /proc/sys/net/ipv4/conf/*/rp_filter; do
echo 1 > $f
done
 

5.7.6 IP Forwarding aktivieren

Das im Linux Kernel integrierte IP Forwarding muß aktiviert werden, damit IP-Pakete von einem Netzwerkinterface an ein Anderes weitergeleitet werden können. Sonst ist es später nicht möglich, Pakete aus dem lokalen Netz ins Internet weiterzureichen.

echo "1" > /proc/sys/net/ipv4/ip_forward
 

5.7.7 IP Spoofing: eigene IP-Adresse

Ipchains -A input -i $ext_int -s $ip_adr -j DENY -l

Kommen aus dem Internet Pakete, die die IP-Adresse der eigenen externen Schnittstelle als Quelladresse aufweisen, sind diese gefälscht und sollten geblockt werden. Eine Regel für eingehende Pakete ist ausreichend, da alle ausgehenden Pakete, die an die eigene IP-Adresse gerichtet sind, automatisch am Loopback Interface auftauchen. Diese Pakete werden nie bis zur externen Schnittstelle gelangen.

Da es sich bei einem solchen Paket offensichtlich um einen Täuschungsversuch handelt, wird der Vorgang mitprotokolliert.
 

5.7.8 IP Spoofing: Loopback Interface

Ipchains -A input $ext_int -s $lo_int -j DENYIpchains -A output $ext_int -s $lo_int -j DENY -l
Beim Loopback Interface handelt es sich um eine lokale, interne Netzwerkschnittstelle des Computers. Deshalb sind eingehende und ausgehende Pakete mit dieser Quelladresse offensichtlich gefälscht. Sollt ein Benutzer des eigenen Netzes versuchen, diese IP-Adresse zu verwenden, wird dieses mitprotokolliert.
 

5.7.9 IP Spoofing: reservierte Adreßbereiche4

Ipchains -A input -i $ext_int -s $class_a -j DENY
Ipchains -A input -i $ext_int -d $class_a -j DENY
Ipchains -A output -i $ext_int -s $class_a -j DENY -l
Ipchains -A output -i $ext_int -d $class_a -j DENY -l

Ipchains -A input -i $ext_int -s $class_b -j DENY
Ipchains -A input -i $ext_int -d $class_b -j DENY
Ipchains -A output -i $ext_int -s $class_b -j DENY -l
Ipchains -A output -i $ext_int -d $class_b -j DENY -l

Ipchains -A input -i $ext_int -s $class_c -j DENY
Ipchains -A input -i $ext_int -d $class_c -j DENY
Ipchains -A output -i $ext_int -s $class_c -j DENY -l
Ipchains -A output -i $ext_int -d $class_c -j DENY -l

Pakete der reservierten Klassen A bis C sind für lokale Netze vorgesehen und werden im Internet nicht weitergeleitet. Diese Pakete sollten geblockt werden. Tauchen sie dennoch auf, handelt es sich um gefälschte Pakete.

Ipchains -A input -i $ext_int -s $class_d -j DENY -l
Ipchains -A output -i $ext_int -s $class_d -j REJECT -l

Adressen aus dem Bereich des reservierten Klasse D Netzes werden für Multicast-Anwendungen genutzt. Sie finden nur als Empfängeradresse Verwendung. Die oben aufgeführten Regeln blocken gefälschte Pakete ab, die als Quelladresse eine Multicastadresse enthalten.

Ipchains -A output -i $ext_int -d $class_d -j REJECT -l
Ipchains -A input -i $ext_int -d $class_d -j REJECT -l

Multicast Pakete spielen für das eigene Netz nur eine Rolle, wenn man an einem Multicastdienst teilnimmt, bzw einen solchen Dienst abonniert hat. Wenn nicht ist es besser sämtlichen Multicast Netzwerkverkehr zu blocken.5

Ipchains -A input -i $ext_int -s $class_e -j DENY -l

Die letzte Regel blockt eingehenden Netzwerkverkehr des Klasse E Netzes. Da dieser für Forschungs- und Entwicklungszwecke reserviert ist, haben solche Pakete im lokalen Netz nicht zu suchen.
 

5.7.10 IP Spoofing: IANA Adreßbereiche

ipchains -A input -i $EXTERNAL_INTERFACE -s 1.0.0.0/8 -j DENY -l
ipchains -A input -i $EXTERNAL_INTERFACE -s 2.0.0.0/8 -j DENY -l
ipchains -A input -i $EXTERNAL_INTERFACE -s 5.0.0.0/8 -j DENY -l
ipchains -A input -i $EXTERNAL_INTERFACE -s 7.0.0.0/8 -j DENY -l
ipchains -A input -i $EXTERNAL_INTERFACE -s 23.0.0.0/8 -j DENY -l
ipchains -A input -i $EXTERNAL_INTERFACE -s 27.0.0.0/8 -j DENY -l
ipchains -A input -i $EXTERNAL_INTERFACE -s 31.0.0.0/8 -j DENY -l
ipchains -A input -i $EXTERNAL_INTERFACE -s 37.0.0.0/8 -j DENY -l
ipchains -A input -i $EXTERNAL_INTERFACE -s 39.0.0.0/8 -j DENY -l
ipchains -A input -i $EXTERNAL_INTERFACE -s 41.0.0.0/8 -j DENY -l
ipchains -A input -i $EXTERNAL_INTERFACE -s 42.0.0.0/8 -j DENY -l
ipchains -A input -i $EXTERNAL_INTERFACE -s 58.0.0.0/8 -j DENY -l
ipchains -A input -i $EXTERNAL_INTERFACE -s 60.0.0.0/8 -j DENY -l
ipchains -A input -i $EXTERNAL_INTERFACE -s 65.0.0.0/8 -j DENY -l
ipchains -A input -i $EXTERNAL_INTERFACE -s 66.0.0.0/8 -j DENY -l
ipchains -A input -i $EXTERNAL_INTERFACE -s 67.0.0.0/8 -j DENY -l
ipchains -A input -i $EXTERNAL_INTERFACE -s 68.0.0.0/8 -j DENY -l
ipchains -A input -i $EXTERNAL_INTERFACE -s 69.0.0.0/8 -j DENY -l
ipchains -A input -i $EXTERNAL_INTERFACE -s 70.0.0.0/8 -j DENY -l
ipchains -A input -i $EXTERNAL_INTERFACE -s 71.0.0.0/8 -j DENY -l
ipchains -A input -i $EXTERNAL_INTERFACE -s 72.0.0.0/8 -j DENY -l
ipchains -A input -i $EXTERNAL_INTERFACE -s 73.0.0.0/8 -j DENY -l
ipchains -A input -i $EXTERNAL_INTERFACE -s 74.0.0.0/8 -j DENY -l
ipchains -A input -i $EXTERNAL_INTERFACE -s 75.0.0.0/8 -j DENY -l
ipchains -A input -i $EXTERNAL_INTERFACE -s 76.0.0.0/8 -j DENY -l
ipchains -A input -i $EXTERNAL_INTERFACE -s 77.0.0.0/8 -j DENY -l
ipchains -A input -i $EXTERNAL_INTERFACE -s 78.0.0.0/8 -j DENY -l
ipchains -A input -i $EXTERNAL_INTERFACE -s 79.0.0.0/8 -j DENY -l
ipchains -A input -i $EXTERNAL_INTERFACE -s 80.0.0.0/4 -j DENY -l
ipchains -A input -i $EXTERNAL_INTERFACE -s 96.0.0.0/4 -j DENY -l
ipchains -A input -i $EXTERNAL_INTERFACE -s 112.0.0.0/8 -j DENY -l
ipchains -A input -i $EXTERNAL_INTERFACE -s 113.0.0.0/8 -j DENY -l
ipchains -A input -i $EXTERNAL_INTERFACE -s 114.0.0.0/8 -j DENY -l
ipchains -A input -i $EXTERNAL_INTERFACE -s 115.0.0.0/8 -j DENY -l
ipchains -A input -i $EXTERNAL_INTERFACE -s 116.0.0.0/8 -j DENY -l
ipchains -A input -i $EXTERNAL_INTERFACE -s 117.0.0.0/8 -j DENY -l
ipchains -A input -i $EXTERNAL_INTERFACE -s 118.0.0.0/8 -j DENY -l
ipchains -A input -i $EXTERNAL_INTERFACE -s 119.0.0.0/8 -j DENY -l
ipchains -A input -i $EXTERNAL_INTERFACE -s 120.0.0.0/8 -j DENY -l
ipchains -A input -i $EXTERNAL_INTERFACE -s 121.0.0.0/8 -j DENY -l
ipchains -A input -i $EXTERNAL_INTERFACE -s 122.0.0.0/8 -j DENY -l
ipchains -A input -i $EXTERNAL_INTERFACE -s 123.0.0.0/8 -j DENY -l
ipchains -A input -i $EXTERNAL_INTERFACE -s 124.0.0.0/8 -j DENY -l
ipchains -A input -i $EXTERNAL_INTERFACE -s 125.0.0.0/8 -j DENY -l
ipchains -A input -i $EXTERNAL_INTERFACE -s 126.0.0.0/8 -j DENY -l
ipchains -A input -i $EXTERNAL_INTERFACE -s 217.0.0.0/8 -j DENY -l
ipchains -A input -i $EXTERNAL_INTERFACE -s 218.0.0.0/8 -j DENY -l

ipchains -A input -i $EXTERNAL_INTERFACE -s 219.0.0.0/8 -j DENY -l
ipchains -A input -i $EXTERNAL_INTERFACE -s 220.0.0.0/6 -j DENY -l

Die IANA unterhält eine große Anzahl von Adreßbereichen, die ebenfalls für andere Zwecke reserviert sind und nicht zur Verfügung stehen.6 Auch Pakete aus diesen Bereichen haben im eigenen Netzwerk nicht zu suchen.
 

5.7.11 IP Spoofing: Broadcast Adressen

Ipchains -A input -i $ext_int -s $bcast_dest -j DENY -l
Ipchains -A output -i $ext_int -d $bcast_src -j DENY -l

Bei 255.255.255.255 handelt es sich um die Broadcast Zieladresse. Ein Paket kann also nie diese Adresse als Quelladresse haben. Die obere Regel blockt diesen Netzwerkverkehr und hält ihn im Log fest. Die untere Regel gilt für Pakete, die als Ziel die Broadcast Quelladresse 0.0.0.0 haben. Auch diese Pakete sind offensichtlich gefälscht, werden deshalb geblockt und protokolliert.

Pakete, die als Ziel die Broadcast Quelladresse haben, werden häufig von Angreifern genutzt, um ein UNIX System zu identifizieren.7
 

5.7.12 ICMP Pakete

Da ICMP Pakete oft in DoS Angriffen verwendet werden, sind Sie nicht gerne gesehen. Es gibt jedoch 3 ICMP Pakettypen, die im Netzwerk eine wichtige Rolle spielen und ohne die sich negative Auswirkungen in der Netzwerkperformance ergeben können.


Dieser Pakettyp wird gesendet, wenn eine Quelle (gewöhnlich ein Router) Daten schneller sendet, als das Ziel diese verarbeiten kann. Source Quench ist eine einfache Art von Fließkontrolle auf IP-Netzwerkebene zwischen 2 Computern.

Das Ziel sendet eine Source Quench Nachricht. Das Ziel antwortet mit dem langsameren Senden von Paketen. Es hebt die Geschwindigkeit nun langsam wieder an, bis erneut eine Source Quench Nachricht des Ziel eintrifft.

Ipchains -A input -i $ext_int -p icmp -s $alles 4 -d $ip_adr -j ACCEPT
Ipchains -A output -i $ext_int -p icmp -s $ip_adr 4 -d $alles -j ACCEPT


Dieser Pakettyp wird gesendet, wenn ein ankommendes Paket illegale oder unerwartete Daten im Paketheader enthält oder wenn seine Prüfsumme nicht mit der generierten Prüfsumme des empfangenden Computers übereinstimmt.

Ipchains -A input -i $ext_int -p icmp -s $alles 12 -d $ip_adr -j ACCEPT
Ipchains -A output -i $ext_int -p icmp -s $ip_adr 12 -d $alles -j ACCEPT


Ein idealer Zustand einer Firewall wäre, ausgehende Pakete dieses Typs zu blocken, da Sie bei einem DoS Angriff vom angegriffenen Computer in riesigen Mengen generiert werden und ihn dadurch lahmlegen. Leider gibt es einen bestimmten Paketuntertyp (den Typ Fragmentation, engl. für Fragmentierung), der zur Bestimmung der optimalen Paketfragmentgröße genutzt wird. Blockt man ICMP Pakete vom Typ 3 dennoch, kann sich die Geschwindigkeit des Netzwerks erheblich verlangsamen.

Ipchains -A input -i $ext_int -p icmp -s $alles 3 -d $ip_adr -j ACCEPT
Ipchains -A output -i $ext_int -p icmp -s $ip_adr 3 -d $alles -j ACCEPT
 

5.7.13 Domain Name Service

Der Domain Name Service (DNS) löst Host- und Domainnamen in die zugehörige IP-Adresse auf. Ohne DNS können Computer in einem anderen Netzwerk nicht kontaktiert werden. Ein Nameserver wandelt z.B. den Computernamen
mail.neckar-alb.de in die IP-Adresse 195.20.202.6 um.

Man sollte nur den Zugriff auf den oder die DNS Server des eigenen Internet-Providers gestatten.

>DNS benötigt zur korrekten Funktion sowohl UDP als auch TCP Pakete, beide auf Port 53.
Eine Anfrage wird normalerweise über UDP ausgeführt. Diese Anfrage kann fehlschlagen, wenn die vom Server gesendete Antwort zu groß für ein UDP DNS Paket ist. Ist dies der Fall, wird die Anfrage über TCP wiederholt.

Ipchains -A input -i $ext_int -p udp -s $DNS 53 -d $ip_adr $unpriv_ports -j ACCEPT
Ipchains -A output -i $ext_int -p udp -s $ip_adr $unpriv_ports -d $DNS -j ACCEPT

Für die Anfrage per TCP, falls die Antwort des Servers zu groß ist:

Ipchains -A input -i $ext_int -p tcp -s $DNS 53 -d $ip_adr $unpriv_ports -j ACCEPT
Ipchains -A output -i $ext_int -p tcp -s $ip_adr $unpriv_ports -d $DNS 53 -j ACCEPT
 

5.7.14 Simple Mail Transfer Protocol

Das Simple Mail Transfer Protocol ist das Protokoll zum Versenden von Mails. SMTP ist dem TCP Port 25 zugewiesen. Mail wird vom Absender an den Mailserver des Providers gesendet, der dann bestimmt, ob die Mail an den Empfänger zugestellt werden kann.
Wichtig ist hier noch, daß der incoming Regel der negierte Parameter "-y" mitgegeben wird. Dies bedeutet, daß nur Pakete durchgelassen werden, die als Antwort auf einen von uns initiierten Verbindungsaufbau ankommen, z.B. eine Fehlermeldung des Mailservers.
Versuche des Mailservers eine Verbindung zu unserem Computer aufzubauen werden geblockt, da diese das SYN Flag gesetzt haben. Diese Pakete sind unerwünscht, da die Firewall keinen SMTP Dienst anbietet.

Ipchains -A input -i $ext_int -p tcp ! -y -s $SMTP 25 -d $ip_adr $unpriv_ports -j ACCEPT
Ipchains -A output -i $ext_int -p tcp -s $ip_adr $unpriv_ports -d $SMTP 25 -j ACCEPT
 

5.7.15 Post Office Protocol 3

Über das POP3 Protokoll werden Mails vom Mailserver des Providers abgeholt.8 Das POP3 Protokoll benutzt standardmäßig den TCP Port 110.
Wie schon beim SMTP Server werden auch hier Verbindungsanfragen des Servers blockiert.

Ipchains -A input -i $ext_int -p tcp ! -y -s $POP 110 -d $ip_adr $unpriv_ports -j ACCEPT
Ipchains -A output -i $ext_int -p tcp -s $ip_adr $unpriv_ports -d $POP 110 -j ACCEPT
 

5.7.16 Webzugriff und Secure Socket Layer

Webdienste basieren auf dem Hypertext Transfer Protocol. HTTP benutzt den TCP Port 80.
Die folgenden Regeln erlauben den uneingeschränkten Zugriff aus sämtliche Webserver im Internet:

Ipchains -A input -i $ext_int -p tcp ! -y -s $alles 80 -d $ip_adr $unpriv_ports -j ACCEPT
Ipchains -A output -i $ext_int -p tcp -s $ip_adr $unpriv_ports -d $alles 80 -j ACCEPT

Viele Seiten verwenden aus Sicherheitsgründen mittlerweile eine verschlüsselte Übertragung Ihrer Webseiten, z.B. um übermittelte Kreditkarteninformationen vor den Augen Dritter fernzuhalten.

Dies geschieht über ein weiteres Protokoll, das Secure Socket Protocol, kurz SSL.
SSL benutzt für seine Datenübertragung den TCP Port 443.

Um mit SSL verschlüsselte Ressourcen abzurufen, sind folgende Regeln nötig:

Ipchains -A input -i $ext_int -p tcp ! -y -s $alles 443 -d $ip_adr $unpriv_ports -j ACCEPT
Ipchains -A output -i $ext_int -p tcp -s $ip_adr $unpriv_ports -d $alles 443 -j ACCEPT
 

5.7.17 File Transfer Protocol

FTP ist immer noch der am häufigsten benutze Dienst zur Übertragung von Dateien. Auch webbasierte Schnittstellen zum FTP Dienst sind sehr verbreitet.

FTP benutzt zwei TCP Ports: Über Port 21 wird die Verbindung zum Server aufgebaut und Kommandos gesendet. Auf Port 20 findet der eigentliche Datenaustausch statt.

Nun gibt es zwei verschiedene Modi für den Datenaustausch:
 


Dies ist der alte Modus, der standardmäßig von FTP Programmen verwendet wird, die auf einen FTP Server zugreifen wollen. Beim normalen Modus startet der FTP Server eine Verbindungsanfrage, um den Datenaustausch zu starten.
 


Dieser Modus ist relativ neu. Er wird standardmäßig von Webbrowsern verwendet, die auf eine FTP Resosurce zugreifen. Beim passiven Modus werden beide Verbindungen, also Kontroll- und Datenverbindung, vom Client aus gestartet.

Die folgenden Regeln erlauben eine Verbindung zu einem beliebigen FTP Server:
Ipchains -A input -i $ext_int -p tcp ! -y -s $alles 21 -d $ip_adr $unpriv_ports -j ACCEPT
Ipchains -A output -i $ext_int -p tcp -s $ip_adr $unpriv_ports -d $alles 21 -j ACCEPT

Die Regeln für den normalen Modus:
Ipchains -A input -i $ext_int -p tcp -s $alles 20 -d $ip_adr $unpriv_ports -j ACCEPT
Ipchains -A output -i $ext_int -p tcp ! -y -s $ip_adr $unpriv_ports -d $alles 20 -j ACCEPT

Da beim normalen Modus der FTP Server die Verbindung startet, können ausgehende Pakete aus dem lokalen Netz, die eine Verbindung starten wollen (SYN Flag), geblockt werden.

Die Regeln für den passiven Modus:
Ipchains -A input -i $ext_int -p tcp ! -y -s $alles $unpriv_ports -d $ip_adr $unpriv_ports -j ACCEPT
Ipchains -A output -i $ext_int -p tcp -s $ip_adr $unpriv_ports -d $alles $unpriv_ports -j ACCEPT
 

5.7.18 Datenverkehr aus dem LAN ins Internet

Zu diesem Zeitpunkt haben Computer im lokalen Netz weder Zugang zur internen Netzwerkschnittstelle (die Netzwerkkarte) der Firewall noch zum Internet.

Die folgenden Regeln öffnen die Firewall für Pakete aus dem lokalen Netz:

Ipchains -A input -i $int_int -s $lan -j ACCEPT
Ipchains -A output -i $int_int -s $lan -j ACCEPT
 

5.7.19 NAT

Daten aus dem LAN können nun bis auf die Firewall vordringen. Der Weg ins Internet ist wegen der Vergabe von reservierten IP-Adressen der Klasse C jedoch nach wie vor verwehrt.

Die Pakete müssen nun mit der IP-Adresse der Firewall versehen werden. Dies geschieht durch Verwendung von Masquerading in der forward chain der Firewall.

Die forward chain wird von Paketen durchlaufen, die an einem Netzwerkinterface ankommen, und über ein anderes die Firewall wieder verlassen. Die Pakete müssen also beim Durchlaufen dieser chain mit einer gültigen IP-Adresse maskiert werden.

Folgende Regel maskiert alle Pakete des lokalen Netzes, die die Firewall auf der externen Netzwerkschnittstelle (also dem Modem) verlassen wollen, mit der IP-Adresse der Firewall:

Ipchains -A forward -i $ext_int -s $lan -j MASQ

Im ersten Moment erweckt diese Regel den Eindruck, daß nun alle Pakete die Firewall wieder verlassen dürfen, egal was für Regeln vorher für die output chain erstellt wurden. Es soll deshalb angemerkt werden, daß alle accept und deny Regeln der output chain der externen Schnittstelle der Firewall auf die Pakete nach dem Durchlaufen der forward Regelliste angewandt werden. Dadurch ist sichergestellt, daß nur die Pakete die Firewall verlassen können, die dazu auch die Erlaubnis haben.
 

5.7.20 Erstellen des Firewall Skripts

Das in den vorherigen Abschnitten erstellte Skript sollte im Verzeichnis /etc/rc.d der Firewall abgespeichert werden. Das Skript sollte dem Benutzer root zugeordnet sein, und nur er sollte Schreib- und Ausführungsrechte für die Datei besitzen. Anderen Benutzern sollte auf keinen Fall Lesezugriff auf die Datei gestattet werden ! Die Dateirechte lassen sich mit dem Kommando chmod ändern:

chmod 700 /etc/rc.d/<Name des Firewallskripts>

Zum automatischen Start des Skripts bei jedem Start des Rechners, läßt man es von einem anderen Startupskript, z.B. /etc/rc.d/rc.local, aufrufen.

Sollten Änderungen am Skript vorgenommen worden sein, oder möchte man die Firewall neu initialisieren, genügt ein erneuter Aufruf des Skripts durch

sh /etc/rc.d/<Name des Firewallskripts>
 
 

Verweise im Text

1 Vgl. Ziegler, Robert. Linux Firewalls
2 Bei X-Windows handelt es sich um die grafische Benutzeroberfläche von Linux.
3 Siehe Kapitel 3.3.1 - Flooding
4 Siehe Kapitel 2.1 - IP-Adresse
5 Mehr Informationen zur Funktionsweise von Multicast finden sich unter
   http://wwwipmulticast.com/community/whitepapers/howipmcworks.html
6 Von reservierten IANA Adreßbereichen zu reden ist eigentlich falsch, da deren Aufgaben vor einiger Zeit von der ICANN - Internet Corporation for Internet Names and Numbers - übernommen wurden. Dennoch soll hier weiterhin von IANA Adressen gesprochen werden.
7 Vgl. Ziegler, Robert. Linux Firewalls, S.70
8 Ein weiteres Protokoll zum Mailempfang ist das IMAP Protokoll. Dies ist jedoch weniger verbreitet, da hier die Mails auf dem Server des Providers gespeichert bleiben. Das setzt eine entsprechend hohe Speicherkapazität voraus und ist dadurch auch mit hohen Investitionen verbunden, was viele Provider abschreckt.
 
 
 
Feedback ist wichtig für die Verbesserung des Service
Autor: Felix Mack
Datum: 28. Dezember 2000 - Pro-Linux.de