SuSE Linux: Versionen 6.4 bis 7.1
Dieser Artikel bezieht sich auf eine ältere SuSE Linux Version.
Daher ist es möglich, dass die Informationen in diesem Artikel
nicht mehr auf dem neuesten Stand sind bzw. der Artikel nicht
mehr funktionierende Links enthält.
Kernel: Versionen ab 2.2
firewals
zu SuSEfirewall
geändert.
ipchains
geladen werden, da ab dem Kernel 2.4.x der gesamte Paketfiltercode neu konzeptioniert worden ist und ab jetzt das Tool iptables
zur Paketfilterkonfiguration benutzt wird. Ein Firewallscript, welches iptables
benutzt ist bereits in Arbeit. Besser ist es jedoch zur Zeit noch, auch SuSE Linux 7.1 mit dem kernel 2.2.18 als Firewall einzusetzen.
Dieses Vorgehen ermöglicht Rechnern aus dem internen Netz Zugriff aufs Internet, ohne daß eine Filterung stattfindet.
Achtung: Bitte beachten Sie, daß dieses Vorgehen zwar auf einfachste Art Internetzugriff für alle internen Rechner bietet, diese aber relativ schutzlos stehen lässt. Das bedeutet, Sie sollten diese Variante auf keinen Fall im Produktiven Einsatz benutzen.
Achtung 2: Ab SuSE Linux 7.1 sollten Sie diesen Weg nicht mehr nutzen, sondern personal-firewall
für das Masquerading einsetzen. (siehe weiter unten)
Aus diesem Grund werde ich auch in diesem Absatz nicht (!) erwähnen, daß /sbin/init.d
ab SuSE Linux 7.1 nach /etc/init.d
verschoben wurde und daher die Pfade in diesem Absatz nicht passen.
Das Paket ipchains (Serie sec) muß installiert sein.
Die Variable START_FW
in /etc/rc.config
setzten Sie auf "no"
.
Legen Sie die Datei /sbin/init.d/masquerade
mit folgendem Inhalt an:
Da hierbei sehr oft cut-and-paste Fehler im Zusammenhang mit dem Browser auftreten machen Sie das am besten mit Lynx und dem folgenden Befehl:
lynx -dump http://sdb.suse.de/sdb/de/html/sm_masq2.html > masqueradeDanach müssen Sie nur noch den Text vor und nach dem Script löschen.
#! /bin/sh . /etc/rc.config PROG="/sbin/ipchains" WORLD_DEV="ippp0" MODULES="ip_masq_autofw ip_masq_cuseeme ip_masq_ftp ip_masq_irc ip_masq_mfw \ ip_masq_portfw ip_masq_quake ip_masq_raudio ip_masq_user ip_masq_vdolive" LOADED_MODULES=$(lsmod|grep ip_masq|cut -d " " -f1) return=$rc_done if [ ! -x $PROG ] then echo -n "Start masquerading failed- install ipchains" return=$rc_failed echo -e "$return" exit 1 fi case "$1" in start) echo -n "Starting masquerading" echo "1" > /proc/sys/net/ipv4/ip_forward $PROG -F || return=$rc_failed $PROG -A forward -i $WORLD_DEV -j MASQ || return=$rc_failed for i in $MODULES;do insmod $i > /dev/null 2>&1 || return=$rc_failed; done echo -e "$return" ;; stop) echo -n "Shutting down masquerading" $PROG -F || return=$rc_failed test "$IP_FORWARD" = no && echo "0" > /proc/sys/net/ipv4/ip_forward for i in $LOADED_MODULES;do rmmod $i > /dev/null 2>&1 || return=$rc_failed; done echo -e "$return" ;; *) echo "Usage: $0 {start|stop}" exit 1 ;; esac test "$return" = "$rc_done" || exit 1 exit 0
Sie müssen "ippp0"
durch das richtige Device ersetzen, mit dem Sie die Verbindung zum Internet herstellen.
Das Verfahren geht natürlich auch genauso mit einem Analogen Anschluß und ppp0
Machen Sie die Datei ausführbar: chmod 700 /sbin/init.d/masquerade
.
Legen Sie die entsprechenden Links zum automatischen Starten in den entsprechenden Runlevels an:
ln -s ../masquerade /sbin/init.d/rc2.d/S99masquerade ln -s ../masquerade /sbin/init.d/rc2.d/K51masquerade ln -s ../masquerade /sbin/init.d/rc3.d/S99masquerade ln -s ../masquerade /sbin/init.d/rc3.d/K51masquerade
Ab dem nächsten Booten können Rechner aus dem internen Netz auf das Internet zugreifen, sofern bei diesen der Masqerading- Rechner als Default- Gateway eingetragen ist.
Ab SuSE Linux 7.1 ist die beste Lösung für einfaches Masquerading die Benutzung von personal-firewall
. Diese Variante ist auch sehr einfach zu konfigurieren, bietet aber einen gewissen Schutz für das interne Netz da am äußeren Device alle eingehenden Verbindungen abgelehnt werden.
Um diese Lösung zu benuzten muß das Paket personal-firewall
installiert sein. Bei einer Neuinstallation ist es in der Standardauswahl, bei einem Update von einer älteren SuSE Linux Version muß es eventuell nachinstalliert werden. Sie finden es in der Serie sec
.
Außerdem gibt es Update auf ftp://ftp.suse.com/pub/suse/i386/update/7.1/sec1/personal-firewall.rpm
Zur Konfiguration muß nur eine Variable angepasst werden:
REJECT_ALL_INCOMING_CONNECTIONS
in der Datei /etc/rc.config.d/security.rc.config
.
Mögliche Werte sind:
no
Alle Regeln werden gelöscht, Filterung und Masquerading finden nicht statt.
yes
Alle eingehenden Verbindungen werden abgelehnt.
ippp0
wenn Sie ISDN benutzen.
masq
wenn der Verkehr des internen Netzes maskiert werden soll. Damit wird alles maskiert, was über ein Interface kommt, welches nicht geblockt wird.
D.h. im Standardfall mit einer Netzwerkkarte eth0
und ISDN-Einwahl ippp0
würde der Eintrag ausschauen wie folgt um den gesamten Verkehr vom internen Netz über ippp0 zu maskieren und alle eingehenden Verbindungen von außen zu blocken:
Hier finden Sie nur eine kurze Beschreibung der Einstellungen in
/etc/rc.config.d/firewall.rc.config
.
Folgende Pakete müssen installiert sein:
Die Variable START_FW=
in /etc/rc.config
setzten Sie auf "yes"
, damit die Firewallscripte beim Booten ausgeführt werden.
Wenn Ihr Firewall ein Einwahlrechner mit dynamischen IP-Adressen ist, müssen Sie den Aufruf von /sbin/SuSEfirewall
in das Script /etc/ppp/ip-up
eintragen.
test -x /etc/ppp/ip-up.local && /etc/ppp/ip-up.local $*
test -x /etc/ppp/ip-down.local && /etc/ppp/ip-down.local $*
test -x /etc/ppp/ip-up.local && /etc/ppp/ip-up.local $*
test -x /etc/ppp/ip-down.local && /etc/ppp/ip-down.local $*
Benutzen Sie SuSE Linux 7.0 oder 7.1, so stehen bereits vorbereitete Einträge in /etc/ppp/ip-up
.
Sie müssen dann nur die Variable START_FW
in /etc/rc.config
auf yes
setzen.
Sollten Sie beim Booten des Rechners Fehlermeldungen über fehlende Devices erhalten, so können Sie diese ignorieren, da
die wirklichen Regeln erst bei der Einwahl gesetzt werden.
Alle sonstigen Einstellungen nehmen Sie in /etc/rc.config.d/firewall.rc.config
vor.
Bitte beachten Sie unbedingt die folgenden Hinweise:
Für die Konfiguration, Einrichtung und Wartung Ihres Firewalls können wir Ihnen keine Hilfestellung im Rahmen des Installationssupports gewähren.
Lesen Sie auch unbedingt die Dokumentation unter /usr/doc/packages/firewals
bei SuSE Linux 6.4 bzw. /usr/share/doc/packages/firewals
bei SuSE Linux 7.0 bzw. /usr/share/doc/packages/SuSEfirewall/
bei SuSE Linux 7.1 und im Handbuch Kapitel 6.7 und 18.
Wenn Sie nur diese Einstellungen vornehmen und SuSEfirewall verwenden, ist Ihr System aber keineswegs per se sicher!
Es gibt keine Lösung die Sie einfach installieren und damit vor allem Bösen aus dem Netz geschützt sind.
secumod
.
tripwire
gute Dienste leisten, und benutzen Sie zusätzlich das Paket seccheck
von den CDs.
FW_DEV_WORLD
FW_DEV_WORLD="ippp0"
FW_DEV_INT
FW_DEV_INT="eth0"
FW_DEV_DMZ
FW_ROUTE
auf "yes" setzen und das Forwarding der angebotenen Dienste mit FW_FORWARD_TCP
und FW_FORWARD_UDP
erlauben.FW_DEV_INT="eth2"
FW_ROUTE
"yes"
, wenn Sie eine direkte Verbindung (ohne Proxy- Dienste auf dem Firewall) zwischen Rechnern aus dem internen Netz, dem Internet und/ oder dem DMZ zulassen wollen.FW_MASQUERADE
aktivieren oder mit FW_FORWARD_*
konfigurieren, welche Dienste weitergeleitet werden sollen.IP_FORWARD
in /etc/rc.config
.
FW_MASQUERADE
, FW_MASQ_NETS
und FW_MASQ_DEV
FW_MASQUERADE
Diese Option setzen Sie auf "yes", wenn Rechner aus dem internen Netz mit privaten IP- Adressen (z.B.: 192.168.x.x) direkten Zugang zum Internet ohne Proxy- Dienste haben sollen.FW_DEV_INT
, FW_MASQ_NETS
, FW_MASQ_DEV
und FW_ROUTE="yes"
gesetzt sein.
FW_MASQ_NETS
Tragen Sie hier alle Rechner/ Netze ein, die per Masquerading Zugriff auf Internet erhalten sollen.FW_MASQ_NETS="192.168.1.1 192.168.2.0/24"
für den Rechner 192.168.1.1 und das Class C Netz 192.168.2.x .
FW_MASQ_DEV
Hier sollten Sie die ausgehende Schnittstelle angeben, an der maskiert werden soll.FW_MASQ_DEV="$FW_DEV_WORLD"
FW_PROTECT_FROM_INTERNAL
"yes"
gesetzt ist, können Rechner aus internen Netzen nur auf ausdrücklich freigegebene Dienste (FW_*_SERVICES_INTERNAL
) des Firewalls zugreifen."no"
gesetzt ist, kann jeder Benutzer aus dem internen Netz zum Firewall verbinden und diesen angreifen.FW_DEV_INT
gesetzt sein.
FW_AUTOPROTECT_GLOBAL_SERVICES
0.0.0.0:23
wird gesichert, jedoch 10.0.0.01:53
nicht.FW_*_SERVICES_*
deaktiviert werden.
FW_SERVICES_*
FW_PROTECT_FROM_INTERNAL="no"
"123 524"
für die Ports 123 und 524.
"3200:3299"
für alle Ports von 3200 bis 3299.
/etc/services
aufgelöst werden können, z.B.: "smtp telnet"
.
FW_TRUSTED_NETS
und FW_SERVICES_TRUSTED_*
.FW_TRUSTED_HOSTS
: Rechner/ Netze aus dem Internet denen Sie vertrauen und die Zugriff auf bestimmte interne Dienste bekommen sollen.FW_TRUSTED_HOSTS="192.168.1.1 192.168.2.0/24"
für den Rechner 192.168.1.1 und das Class C Netz 192.168.2.x .
FW_SERVICES_TRUSTED_*
bestimmen die Dienste auf Ihrem Firewall, auf die diese Rechner/ Netze Zugriff erhalten.FW_ALLOW_INCOMING_HIGHPORTS_*
"yes"
, keiner darf "no"
oder:
/etc/services
aufgelöst werden können.FW_ALLOW_INCOMING_HIGHPORTS_UDP
sollte "dns"
enthalten, damit Ihre in /etc/resolv.conf
eingetragenen Nameserver Anfragen beantworten können.
"ftp-data"
in FW_ALLOW_INCOMING_HIGHPORTS_TCP
eingetragen sein. FW_SERVICE_*
yes
, wenn Sie den entsprechenden Dienst auf dem Firewall anbieten/ benötigen.
FW_SERVICE_DNS
stellen Sie auf yes
, wenn Sie einen Nameserver auf dem Firewall betreiben.FW_SERVICES_*_*
für das entsprechende Netz den Port 53 freigeben (oder domain
), von dem aus Anfragen gestellt werden dürfen.
FW_SERVICE_DHCLIENT
stellen Sie auf yes
, wenn Sie den DHCP-Client auf dem Firewall benutzen müssen.
FW_SERVICE_DHCPD
stellen Sie auf yes
, wenn Sie einen DHCP- Server auf dem Firewall betreiben.
FW_SERVICE_SAMBA
stellen Sie auf yes
, wenn Sie Samba auf diesem Rechner nutzen (Server oder Client). Soll der Rechner als Samba-Server laufen, so muß noch zusätzlich der Port 139 in den entsprechenden Variablen FW_SERVICES_*_TCP
eingetragen werden. Auf einem Firewall sollte aber keine Samba-Server laufen.
FW_FORWARD_*
"12.12.12.0/24,13.13.13.13,25"
Zugriffe aus dem externen Netz 12.12.12.0/24 auf den Port 25 des internen Rechners 13.13.13.13 weiter.
FW_LOG_*
FW_KERNEL_SECURITY
FW_STOP_KEEP_ROUTING_STATE
yes
setzen.FW_ROUTE=yes
muß natürlich gesetzt sein.
FW_ALLOW_PING_*
"yes"
oder "no"
.
Folgende Optionen sollten Sie auf den Standardeinstellungen belassen oder nur ändern, wenn Sie genau wissen was Sie tun:
FW_FORWARD_MASQ_*
FW_FORWARD_MASQ_TCP="0/0,1.2.3.4,80"
FW_REDIRECT_*
192.168.0.0/24,0/0,80,3128
alle ausgehenden Webanfragen aus dem internen Netz 192.168.0.0/24 an den Port 3128 von Squid auf dem Firewall um.
FW_ALLOW_FW_TRACEROUTE
FW_UDP_ALLOW_INCOMING_HIGHPORTS
gesetzt.
FW_ALLOW_FW_PING="yes"
FW_MASQ_MODULES
FW_ROUTE
und FW_MASQUERADE
gesetzt sein.
FW_CUSTOMRULES
/etc/rc.config.d/firewall-custom.rc.config