Firewall
Einrichten einer Firewall unter SuSE Linux
1. Was ist eigentlich eine Firewall ?
In der Informatik wird eine Firewall als Bezeichnung für einen Computer benutzt, der die Schnittstelle zwischen zwei Computernetzen darstellt, und gleichzeitig bestimmte Bereiche eines Computernetzes vor Angriffen und/oder unerwünschten Zugriffen schützt.
2. Warum wird eine Firewall benötigt ?
Durch zunehmende Vernetzung von Firmen, Privathaushalten, Schulen, anderen öffentlichen Einrichtungen und deren Anbindungen an das globale Internet, müssen diese "lokalen und kleinen" Netze (sogenannte LANs, Local Area Networks) vor Angriffen und Viren, zum Beispiel aus dem Internet, geschützt werden.
Doch vergessen Sie nicht: "Der Angreifer sitzt nicht immer im Internet".
Eine Firewall kann jedoch nur vor Angriffen schützen wenn diese auch durch die Firewall gehen. Deshalb muss sichergestellt werden, daß die Firewall der einzige Computer zwischen den angrenzenden Netzen ist.
3. Vorraussetzungen
Um eine SuSE Firewall einzurichten, benötigen Sie einige Netzwerkkenntnisse, wie
z.B.: Was sind Ports, IP Adressen und Dienste.
Sie sollten wissen, wie man Netzwerkkarten mittels YAST hinzufügt und IP
Adressen vergibt.
Aber auch ein lauffähiges Linux System sollten Sie besitzen.
*** Sehr Wichtig ***
Sie sollten wissen, welche Dienste Sie benutzen möchten und welche Ports diese beanspruchen.
Falls Ihnen dies nicht bekannt ist, können Sie in der /etc/services nachlesen, welcher Port welchen Dienst beansprucht.
4. Installtion
4.1 Einrichtung von zwei Netzwerkkarten
Ich gehe davon aus, daß Sie schon eine Netzwerkkarte in Ihrem System installiert und konfiguriert haben.
Jetzt möchten wir eine zweite Netzwerkkarte hinzufügen.
4.1.1 PCI Karten
Falls Sie zwei PCI Netzwerkkarten besitzen, ist die Einrichtung kein Problem, da dort der IRQ und I/O Port automatisch erkannt wird.
4.1.2 ISA Karten
Wenn Sie zwei ISA Netzwerkkarten besitzen, kommt es bei der Einrichtung zu einem kleinen Problem. Die zweite ISA Netzwerkkarte wird von Linux nicht mehr gesucht und demnach auch nicht mehr gefunden. Dieses Problem können wir folgendermaßen beheben:
--> Administration des Systems
--> Kernel- und Bootkonfiguration
--> LILO konfigurieren.
Fügen Sie in der Append - Zeile folgenden Eintrag hinzu.
"ether=[IRQ],[IO],[DEVICE]"
Für IRQ tragen Sie z.B.: 10 ein, dann läuft
Ihre Netzwerkkarte auf IRQ 10.
Beim IO tragen Sie z.B.: 0x300 ein, dann wird
die Netzwerkkarte auf dem Port 0x300 angesprochen.
Das Device ist dann z.B.: eth1
Falls Sie mehr als zwei ISA Netzwerkkarten in Ihrem Rechner haben, müssen Sie die Append - Zeile folgendermaßen ändern.
"ether=[IRQ],[IO],eth1 ether=[IRQ],[IO],eth2" usw.
Meine Append - Zeile sieht folgendermaßen aus:
"ether=10,0x300,eth1 ether=5,0x320,eth2".
Drücken Sie dann auf "Weiter", und YAST wird die Konfigurationsdateien ändern.
Starten Sie dann Ihr System neu, damit die Änderungen von LILO übernommen werden.
( Dies ist der einzige Neustart bei Linux )
4.2 Konfiguration von den Netzwerkkarten
Gehen Sie in YAST
--> Hardware in System integrieren
--> Netzwerkkarte konfigurieren.
Eine Netzwerkkarte sollte schon konfiguriert sein. Das sollte dann beispielsweise so aussehen.

Drücken Sie jetzt auf F3 und wählen Sie eth1. Dort dürfte bei "Art der Netzwerkkarte" nichts stehen. Tragen Sie dort Ihre zweite Netzwerkkarte ein.
Drücken Sie auf "Weiter", und YAST ändert die Konfigurationsdateien für Sie.
Verlassen Sie YAST, und starten Sie ihr Netzwerk neu mit dem Befehl
>> /etc/rc.d/network restart
Falls alles geklappt hat, sollte bei Ihnen folgendes stehen.
Shutting down network device eth1 done Shutting down network device eth0 done Setting up network device eth0 done Setting up network device eth1 done
Kommen bei Ihnen "failed" Nachrichten, wiederholen Sie die Netzwerkkarteneinrichtung, die im Schritt 4.2 beschrieben wurde. Aber fügen Sie noch in der Zeile "Option zum Laden des Modules" die Werte Ihrer Netzwerkkarte hinzu.
z.B.: iqr=[IRQ] io=[IO] Port
Bei IRQ tragen Sie dann den IRQ ihrer Karte ein. Wiederholen Sie dies bei der Einstellung des IO Ports.
Wenn Ihre beiden Netzwerkkarten funktionieren, können wir mit dem 5. Schritt fortfahren.
5. Konfiguration der SuSE Firewall
5.1. Benötigte Pakete
Um die Firewall konfigurieren zu können, benötigen Sie folgende Pakete :
ipchains
firewalls
beide aus dem Paket security.
Falls Sie diese Pakete schon installiert haben, lesen Sie ab Menüpunkt 5.2 weiter.
Installation der Pakete:
Gehen Sie in YAST
--> Installation festlegen/starten
--> Konfiguration ändern/erstellen
Und begeben Sie sich in das Menü "Sicherheitsrelevante Software".

Installieren Sie dort das Paket firewalls.
5.2 Konfiguration des Firewalls mit Hilfe von YAST
Starten Sie YAST
--> Administration des Systems
--> Konfigurationsdatei verändern

Suchen Sie die Variablen, die mit "FW_" beginnen. Diese sind die Variablen, um die SuSE Firewall zu konfigurieren.
Im Nachfolgenden werde ich jede einzelne Variable erläutern.
1. START_FW
Setzen Sie diese Variable auf "yes", wenn Sie die SuSE Firewall starten möchten.
2. FW_DEV_WORLD
Tragen Sie hier alle Netzwerkschnittstellen ein, die mit der "unsicheren" Seite des Netzwerkes verbunden sind (z.B.: dem Internet)
z.B.: ippp0, eth0, eth1 usw.
3. FW_DEV_INT
Tragen Sie hier alle Netzwerkschnittstellen ein, die mit der sicheren Seite des Netzwerkes verbunden sind.
z.B.: ippp0, eth0, eth1 usw.
4. FW_DEV_DMZ
Tragen Sie hier alle Netzwerkschnittstellen ein, die mit der DMZ (Demilitariesierte Zone) verbunden sind
z.B.: ippp0, eth0, eth1 usw.
Damit ist das Netzwerk gemeint, welches an die Firewall angeschlossen ist. Die Rechner, die sich in diesem Netzwerk befinden, sollen Dienste nach außen hin zur Verfügung stellen (z.B.: Mail, FTP, News, usw.). Diese Rechner benötigen eine offizielle IP Adresse, die dann über die Firewall geroutet werden.
Falls Sie diese Variable auf yes setzen, müssen Sie auch die Variable FW_ROUTE auf yes setzen und das Forwarding der Dienste erlauben ( FW_FORWARD_*)
5. FW_ROUTE
Falls Ihre Firewall eine direkte Verbindung zum Internet oder zur DMZ hat (ohne Proxy Dienste), setzen Sie
diese Variable auf yes.
Ebenfalls müssen die Variablen FW_MASQUERADE oder FW_FORWARD_*, auf die Dienste die, weitergeleitet werden sollen, geändert werden.
6. FW_MASQUERADE, FW_MASQ_NETS und FW_MASQ_DEV
Ist Ihre Firewall direkt mit dem Internet verbunden und Sie möchten mit ihren Clients ins Internet ohne Proxydienst, dann ändern Sie die Variable FW_MASQUERADE=yes.
Diese Optionen setzt Ihre internen verwendeten IP Adressen in offizielle Adressen um. Somit hat es den Anschein, daß die Anfragen an das Internet von der Firewall gestellt wurden.
Um Masquerading zu nutzen, müssen Sie die Variable FW_ROUTE auf yes setzen.
In der Variable FW_NETS tragen Sie alle Rechner und/oder Netze ein, die per Masquerading Zugriff auf das Internet erhalten sollen.
z.B.: 192.168.10.0/24 192.168.1.1
Diese Zeile bedeutet, das der Rechner 192.168.1.1 und das Class C Netz 192.168.10.x /255.255.255.0 maskierten Zugriff auf das Internet haben.
In der Variable FW_DEV tragen Sie alle ausgehenden Schnittstellen ein, die maskiert
werden sollen.
z.B.: ippp0, eth1
7. FW_PROTECT_FROM_INTERNAL
Setzen Sie diese Variable auf yes, dann können Rechner aus dem internen Netz
nur auf ausdrücklich freigegebene
Dienste zugreifen, die Sie in den Variablen FW_*_SERVICES_INTERNAL angeben.
Setzen Sie diese Option auf no, werden alle Dienste, die auf ihrer Firewall laufen, zum internen Netz freigeben.
8. FW_AUTOPROTECT_GLOBAL_SERVICES
Diese Option sichert Dienste (TCP und UDP), die an allen Netzwerkadressen der Firewall
(nicht nur an speziell definierten) auf Verbindung warten.
Diese Option kann für einzelne Dienste mit den Optionen FW_*_SERVICES_* deaktiviert
werden.
9. FW_SERVICES_*
Tragen Sie hier alle Dienste ein, die von den entsprechenden Netzwerken genutzt werden können.
Beispiel:
Möchten Sie nach außen (Internet) nur die Ports 80 und 25 freigeben aber nach innen (interne Netzwerk) die Ports 80 25 137-139 und
10000 freigeben, so müssen Sie die Variabeln folgendermaßen setzen:
FW_SERVICES_EXTERNAL_TCP= 80 25
FW_SERVICES_INTERNAL_TCP= 80 25 137:139 10000
Sie können auch Dienste freigeben, die über die Datei /etc/services aufgelöst werden können.
z.B.:
FW_SERVICES_EXTERNAL_TCP= www smtp
FW_SERVICES_INTERNAL_TCP= www smtp 137:139 10000
Portbereiche können mit Doppelpunkt getrennt werden. Z.B. werden die Ports 1 bis 1024 dann folgendermaßen angegeben: 1:1024
10. FW_TRUSTED_NETS und FW_SERVICES_TRUSTED
Hier tragen Sie alle Rechner/Netze aus dem Internet ein, die
Zugriffe auf bestimmte Dienste haben sollen.
z.B.: FW_TRUSTED_NETS = 10.128.71.55 10.128.7.0/16
Dieses bedeutet, daß der Rechner 10.128.71.55 und das Netzwerk 10.128.7.0 im Subnetz 255.255.0.0 Zugriff auf die freigegebenen Dienste haben.
Die Dienste, die Sie freigeben möchten, fügen Sie in der Variable FW_SERVICES_TRUSTED hinzu. Die Ports/Portbereiche werden nach denselben Regeln eingetragen wie 9.
11. FW_ALLOW_INCOMING_HIGHPORTS_*
Diese Variable definiert die Verhaltensweise bei Zugriffen auf unprivilegierte
Ports (über 1023).
Möglichkeiten der Eingabe
Jeder darf = yes; keiner darf = no
oder Tragen Sie die Namen ein, die über /etc/services aufgelöst werden können.
Sie sollten FW_ALLOW_INCOMING_HIGHPORTS_UDP
auf dns stellen, wenn Anfragen von Nameservern beantwortet werden können.
Zu empfehlen ist noch die Variable FW_ALLOW_INCOMING_HIGHPORTS_TCP
auf ftp-data zu stellen, um ftp im passiven Modus zu benutzen.
12. FW_SERVICE_*
Stellen Sie den entsprechenden Dienst auf yes, wenn
Sie diesen Dienst auf der Firewall anbieten möchten.
Denken Sie daran, daß sie, wenn Sie einen Dienst
auf yes stellen, den entsprechenden Port in der FW_SERVICES_* freigeben.
z.B.: für DNS muß der Port 53 in der FW_SERVICES_* mit freigeben werden.
13. FW_FORWARD
Hier geben Sie an, ob aus dem Internet oder der DMZ auf das interne Netz zugegriffen werden darf.
Die Eingabeart besteht aus 3 Regeln, die jeweils mit Komma getrennt werden, und zwei Regeln werden mit einem Leerzeichen getrennt.
z.B.: FW_FORWARD = 10.128.7.4,192.168.10.1,25
Dieser Eintrag bedeutet, daß alle Anfragen an den Port 25 von 10.128.7.4 auf den Port 25 der IP 192.168.10.1 weitergeleitet werden.
Sie können auch Anfragen von ganzen Netzen an einen Port, auf einen internen
Rechner weiterleiten.
z.B.: FW_FORWARD = 10.128.7.0/24, 192.168.10.1,25
14. FW_FORWARD_MASQ_*
Hier können Sie definieren, welche Rechner/Netze von außen
auf maskierte Rechner auf das interne Netz zugreifen dürfen.
Die Eingabeart ist die gleiche wie 13.
15. FW_STOP_KEEP_ROUTING_STATE
Falls Sie eine temporäre Internetverbindung haben, stellen
Sie diese Variable auf yes.
Dadurch wird beim Entladen der Regeln das Routing nicht abgestellt, damit eine neue automatische Einwahl erfolgen kann.
Die Variablen FW_LOG, FW_KERNEL_SECURITY, FW_ALLOW_PING, FW_ALLOW_FW_TRACEROUTE, FW_MASQ_MODULES, FW_CUSTOMRULES sollten Sie nur ändern, wenn Sie wissen, was Sie tun.
5.3 Eine Beispielkonfigurationsdatei
| /etc/rc.config.d/firewall.rc.config |
FW_START=yes
FW_DEV_WORLD=eth0
FW_DEV_INT=eth1
FW_DEV_DMZ
FW_ROUTE=yes
FW_MASQUERADE=yes
FW_MASQ_NETS=192.168.10.0/24
FW_MASQ_DEV=eth0
FW_PROTECT_FROM_INTERNAL=yes
FW_AUTOPROTECT_GLOBAL_SERVICES=yes
FW_SERVICES_EXTERNAL_TCP=www smtp 137:139 3128
FW_SERVICES_EXTERNAL_UDP=domain
FW_SERVICES_DMZ_TCP
FW_SERVICES_DMZ_UDP
FW_SERVICES_INTERNAL_TCP=www smtp 137:139 3128 10000 3000
FW_SERVICES_INTERNAL_UDP=domain
FW_TRUSTED_NETS
FW_SERVICES_TRUSED_TCP
FW_SERVICES_TRUSED_UDP
FW_ALLOW_INCOMING_HIGHPORTS_TCP=yes
FW_ALLOW_INCOMING_HIGHPORTS_UDP=yes
FW_SERVICE_DNS=yes
FW_SERVICE_DHCP_CLIENT=no
FW_SERVICE_SAMBA=no
FW_FORWARD_TCP
FW_FORWARD_UDP
FW_FORWARD_MASQ_TCP
FW_FORWARD_MASQ_UDP
FW_REDIRECT_TCP
FW_REDIRECT_UDP
FW_LOG_DENY_CRIT=yes
FW_LOG_DENY_ALL=no
FW_LOG_ACCEPT_CRIT=yes
FW_LOG_ACCEPT_ALL=no
FW-KERNEL_SECURITY=yes
FW_STOP_KEEP_ROUTING_STATE=no
FW_ALLOW_PING_FW=yes
FW_ALLOW_PING_DMZ=no
|
Anmerkungen zu diesem Artikel
| [3] | Die SuSE Firewall lässt mich nicht raus! | Mebuh | 08-5-2003 |
| [1] | SuSE firewall2 läßt keinen upload zu | DisastersMaster | 05-5-2003 |
Eigene Anmerkung eintragen
