SuSE - Linux 6.3-7.x
Konfiguration des IP-Masquerading.


Ich habe das so gelöst: (bis einschließlich Kernelversion 2.2.18)
Ab Kernel-Version 2.4.x wurde das Maquerading geaendert (siehe weiter unten)

Man schreibt sich in /sbin/init.d eine Datei masquerade.startmit folgendem Inhalt:

echo "Starting Masquerading on ppp0"#
/sbin/ipchains -A user_msq -s 0/0 -d 0/0 -j MASQ
/sbin/ipchains -A forward -s 192.168.2.0/24 -d 0/0 -i ppp0 -j user_msq
/sbin/insmod ip_masq_ftp
/sbin/insmod ip_masq_cuseeme
/sbin/insmod ip_masq_irc
/sbin/insmod ip_masq_vdolive
/sbin/insmod ip_masq_raudio
/sbin/insmod ip_masq_quake
echo "Masquerding started ........."
Damit das Masquerding automatisch beim nächsten Bootvorgang gestartet wird, macht man in
/sbin/init.d/boot.local folgenden Eintrag:
# Here you should add things, that should happen directly after booting
# before we're going to the first run level.
#
/sbin/init.d/masquerade.start
Den Linux-Rechner bootet man jetzt am besten neu durch Eingabe von reboot.
Nach dem erneuten Booten kann jeder Schülerrechner  WWW, Telnet und FTP zu einem
entfernten Rechner im Internet durchführen.


Masquerade bei Kernel-Version 2.4.x/SuSE 7.x (mit ip_tables)
# /usr/sbin/masquerading2.4
# Masquerading fuer SuSE-Kernel 2.4 Version 7.1
# neues Verfahren mit iptables
# hierzu muss iptables aus der Serie sec installiert sein !
# danach funktioniert www, ftp, telnet usw. im gesamten
# provaten Netz
# (C) 2001 by R. Bernert
# --------------------------------------------------
modprobe iptable_nat
# In der NAT-Tabelle (-t nat) eine Regel fuer alle an ppp0 (-o ppp0)
# ausgehenden Pakete hinter dem Routing (POSTROUTING), die maskiert
# werden sollen, anhaengen (-A).
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
# IP-Forwarding aktivieren
echo 1 > /proc/sys/net/ipv4/ip_forward
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp


Masquerading mit Personal-Firwall ab SuSE-Linux 7.x,Kernel-Version 2.4.x
# /etc/rc.config.d/firewall.rc.config
# Masquerading bei SuSE-Linux 7.x Kernel 2.2.18 bzw. 2.4
# ------------------------------------------------------------
# Installiere: ipchains und SuSEFirewall aus dem Paket /sec
# in /etc/rc.config (START_FW="yes") setzen
# Rechner neu booten (die Fehlermeldungen des Firewalls koennen
# ignoriert werden
# Nach dem Verbindungsaufbau wird in /etc/ip-up der Firewall
# automatisch gestartet
# FTP ist nur im passiven Modus moeglich !!!
# ------------------------------------------------------------
FW_DEV_WORLD="ppp0"
FW_DEV_INT="eth0"
FW_DEV_DMZ=""
FW_ROUTE="yes"
FW_MASQUERADE="yes"
FW_MASQ_NETS="192.168.2.0/24"
FW_MASQ_DEV="$FW_DEV_WORLD"
FW_PROTECT_FROM_INTERNAL="no"
FW_AUTOPROTECT_GLOBAL_SERVICES="no"
FW_SERVICES_EXTERNAL_TCP=""
FW_SERVICES_EXTERNAL_UDP="" # Common: domain
FW_SERVICES_EXTERNAL_IP="" # For VPN/Routing which END at the firewall!!
#
FW_SERVICES_DMZ_TCP=""  # Common: smtp domain
FW_SERVICES_DMZ_UDP=""  # Common: domain syslog
FW_SERVICES_DMZ_IP=""  # For VPN/Routing which END at the firewall!!
#
FW_SERVICES_INTERNAL_TCP="" # Common: ssh smtp domain
FW_SERVICES_INTERNAL_UDP="" # Common: domain syslog
FW_SERVICES_INTERNAL_IP="" # For VPN/Routing which END at the firewall!!
FW_TRUSTED_NETS=""
FW_SERVICES_TRUSTED_TCP="" # Common: ssh
FW_SERVICES_TRUSTED_UDP="" # Common: syslog time ntp
FW_SERVICES_TRUSTED_IP="" # For VPN/Routing which END at the firewall!!
FW_ALLOW_INCOMING_HIGHPORTS_TCP="yes" # Common: "ftp-data" (sadly!)
FW_ALLOW_INCOMING_HIGHPORTS_UDP="yes" # Common: "DNS" or "domain ntp"
FW_SERVICE_DNS="yes" # if yes, FW_SERVICES_*_TCP needs to have port 53

FW_SERVICE_DHCLIENT="no" # if you use dhclient to get an ip address
    # you have to set this to "yes" !
FW_SERVICE_DHCPD="no" # set to "yes" if this server is a DHCP server
FW_SERVICE_SAMBA="no" # set to "yes" if this server uses samba as client
FW_FORWARD_TCP=""  # Beware to use this!
FW_FORWARD_UDP=""  # Beware to use this!
FW_FORWARD_IP=""  # Beware to use this!
FW_FORWARD_MASQ_TCP=""  # Beware to use this!
FW_FORWARD_MASQ_UDP=""  # Beware to use this!
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="no"
FW_STOP_KEEP_ROUTING_STATE="yes"
FW_ALLOW_PING_FW="yes"
FW_ALLOW_PING_DMZ="no"
FW_ALLOW_FW_TRACEROUTE="no"
FW_ALLOW_FW_SOURCEQUENCH="yes"
FW_MASQ_MODULES="autofw cuseeme ftp irc mfw portfw quake raudio user vdolive"



Masquerade bei SuSE-Linux 5.3 bis 6.0
Bis SuSE-Linux 6.0 war das Masquerding einfacher zu erreichen:
Hier eine kurze Anleitung (für diejenigen, die noch ein "altes" Linux benutzen :-)

Zuerst muss das Paket firewall aus der Serie n mit YAST installiert werden.

In der Konfigurationsdatei rc.config muss IP-Forwarding (ab Version 6.0) eingeschaltet werden.

#
# 2 you can configure at runtime, if the host may forward
# IP packages or not.  Is this host a router? (yes/no)
#
IP_FORWARD=yes
Der Kernel muss neu mit folgenden Einstellungen compiliert werden:
Promt for development and /or incomplete code/drivers (y)
Network options:
Network firewalling (y)
IP: masquerading (y)
Zudem muss Enalble Module Support eingeschaltet sein !

Nach der Compilierung gibt es in /etc/rc.config mehrere neue Einträge:
Bei mir sieht der entsprechende Abschnitt folgendermaßen aus:

# /etc/rc.config
MSQ_START="yes"
MSQ_NETWORKS="192.168.2.0/24"
MSQ_DEV="ippp0"
MSQ_MODULES="ip_masq_ftp ip_masq_irc ip_masq_vdolive"


Masquerade bei SuSE-Linux 4.3 bis 5.0
Mit zwei Scripts erreicht man auch bei den alten Versionen von SuSE-Linux das
Masquerading für ein lokales Netz.
Die IP-Adressen des lokalen Netzes lauten im folgenden Beispiel: 192.168.1.x

Es ist das Paket firewall aus der Serie n mit YAST zu installieren.
In der Konfigurationsdatei rc.config muss IP-Forwarding eingeschaltet werden.

#
# 2 you can configure at runtime, if the host may forward
# IP packages or not.  Is this host a router? (yes/no)
#
IP_FORWARD=yes
Hier nun die beiden Scripts (am Besten, man speichert diese in das Homeverzeichnis
von root:
Gestartet wird das Masquerading mit Masq_start:
# Masq_start
#IP-Masquerading mit ipfwadm (altes Verfahren: z.B.SuSE 4.3 - 5.x)
#von Bernd Baumann (za197@lehrer.uni-karlsruhe.de)

# Clear all rules
/sbin/ipfwadm -I -f
/sbin/ipfwadm -O -f
/sbin/ipfwadm -F -f

# Make deny default
/sbin/ipfwadm -I -p accept
/sbin/ipfwadm -O -p accept
/sbin/ipfwadm -F -p deny

# WWW sperren
# Sperrt z.B. den Port 80
# /sbin/ipfwadm -F -i deny   -P tcp -S 192.168.1.0/24 -D 0/0 80
# sperrt die Seite 212.65.1.98 (www.mannheim.de)
/sbin/ipfwadm -F -i deny   -P tcp -S 192.168.1.0/24 -D 212.65.1.98/32
# sperrt die Seite 212.59.41.5 (www.hannover.de)
/sbin/ipfwadm -F -i deny   -P tcp -S 192.168.1.0/24 -D 212.59.41.5/32

# Rest durchlassen. FTP geht aber nicht
/sbin/ipfwadm -F -a accept -P all -S 192.168.1.0/24 -D 0/0 -m -W eth0

# nun das FTP-Modul laden
/sbin/modprobe ip_masq_ftp

# list rules numeric output
/sbin/ipfwadm -F -ln

Zum Beenden des Masquerading dient das Script Masq_stop:
#Masq_stop
# © By Bernd Baumann

# Clear all rules
/sbin/ipfwadm -I -f
/sbin/ipfwadm -O -f
/sbin/ipfwadm -F -f

# Make deny default
/sbin/ipfwadm -I -p deny
/sbin/ipfwadm -O -p deny
/sbin/ipfwadm -F -p deny



Wenn soweit alles geklappt hat, wagt man sich an die Konfiguration des eigenen Intranets.


Roland Bernert, Dezember 1999