PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Masquarding mit 2.4 Kernel


EmpIRe
19.11.01, 19:08
Tja es geht einfach nicht.
Wenn ich Masquarding einrichte (alles nach dem SuSE Buch) bekomme ich vom Kernel (?) die Meldung das ich zum 2.2 Kernel wechseln soll weil der 2.4 das nicht Packt. Aber ich möchte beim 2.4 bleiben. Wie kann ich das trotzdem machen :confused:

Vielen Dank im vorraus, ist ziemlich wichtig weil mein Vater möchte langsam mal wieder auf nen IRC Server zugreifen können ;)

bluesky666
19.11.01, 20:41
Hi,

ist iptables installiert, er installiert ? Bei der Installation ist nämlich nur ipchains installiert, musst iptables nachinstallieren

hier nen kleines Script für Masquerading:

#!/bin/sh
iptables -t nat -A POSTROUTING -o ippp0 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward

ippp0 = isdn
ppp0 = dsl

mußt halt im script einstellen was Du hast jenachdem ob idsn oder dsl

gruß

Helge

EmpIRe
20.11.01, 11:32
Ok Danke. Werd ich ausprobieren

EmpIRe
25.11.01, 23:35
Funzt bei mir nicht :(

Ich bekomme dann immer die Fehlermeldungen:

/lib/modules/2.4.4-4GB/kernel/net/ipv4/netfilter/ip_tables.o: init_module: Devic
e or resource busy
Hint: insmod errors can be caused by incorrect module parameters, including inva
lid IO or IRQ parameters
/lib/modules/2.4.4-4GB/kernel/net/ipv4/netfilter/ip_tables.o: insmod /lib/module
s/2.4.4-4GB/kernel/net/ipv4/netfilter/ip_tables.o failed
/lib/modules/2.4.4-4GB/kernel/net/ipv4/netfilter/ip_tables.o: insmod ip_tables f
ailed
iptables v1.2.1a: can't initialize iptables table `nat': iptables who? (do you n
eed to insmod?)
Perhaps iptables or your kernel needs to be upgraded.


Was nun tun?:confused:

rfi
26.11.01, 06:52
Hi,

den Fehler hatte ich auch einmal, ich glaube er tritt auch dann auf, wenn du die ipchains-Module parallel geladen hast. Entferne mal mit YAST ipchains aus der Serie sec und teste dann nochmal.

Grüße
rfi

EmpIRe
26.11.01, 17:06
Hab ich grad entfernt, jetzt startet die SuSE Firewall aber nicht mehr und ich bekomme die gleiche Fehlermeldung mit iptables :(

rfi
26.11.01, 19:02
Hi,

und genau hier liegt dein Problem. Du setzt iptables-Statements ab und irgendwie läuft was mit ipchains. Wenn du die iptables-Docu liest, wirst du darauf hingewiesen, dass es ein Entweder/Oder gibt.

Ich würde in /etc/rc.config alle SuSE-Firewall-Aufrufe entfernen und mit einem einfachen Maskieren, wie oben beschrieben (bluesky66), mal die Pakete weiterleiten. Die Befehle nach dem Start in der Console eingeben und testen. Die Firewall kommt später noch.

Grüße
rfi

EmpIRe
27.11.01, 17:08
Danke es klappt :)

Wie ist das jetzt mit der Firewall? Muss ich jetzt die Personal nehmen?
Wäre nett wenn du mir hierbei auch nochmal helfen könntest ;)

rfi
27.11.01, 20:18
Hi,

die Firewall von SuSE ist natürlich nichts Schlechtes. Aber sie ist nichts anderes als eine Oberfläche, die über eine Auswertung die iptable-Statements absetzt, die du auch selbst schreiben kannst. Wenn du die Firewall selbst schreibst, hast du sie dann auch eher im Griff.

Wenn du das willst, mach' folgendes:

In /etc/ppp/ip-up schreibst du die Start- und Stop-Bedingung deiner Firewall rein:

ppp*)
.
.
ip-up)
/etc/myFirewall start
.
.
.
.
ip-down)
/etc/myFirewall stop
.
.
.

Achte darauf, dass diese Script-Aufrufe gleich am Anfang stehen.
Der erste Aufruf startet deine Firewall, wenn du die Verbindung herstellst.
Der zweite Aufruf löscht deine Firewall-Regeln, wenn aus irgendeinem Grund die Verbindung beendet wird (das ist nicht unbedingt unumstritten, wenn sich hier auch Firewallregeln für das Intranet befinden).


In /etc muss natürlich das Firewall-Script: myFirewall, wie später folgt, erstellt werden.

Ich habe hier eine abgespeckte Version meiner Firewall beigepackt. Sie macht so das Notwendige.

Zunächst holt sie deine vom Provider aktuell zugewiesene IP.
In LOCALNET= schreibst du deinen internen Netzwerk-IP-Bereich rein.
IF_INT ist dein internes Interface (Netzwerkarte Intranet).

Dann werden einige Kernel-Parameter gesetzt, die man auch in /etc/rc.config setzen könnte.

Nun kommt so ein bisschen Weiterleiten und Wegwerfen. BattleCom zeigt, wie man Ports in das Intranet an einen Rechner weiterleiten kann.

Natürlich findest du hier im Forum jede Menge Firewalls, die wesentlich besser sind als diese Rumpflösung. Das wäre dann dein Ding, dich da schlau zu machen.

Kopiere die folgenden Zeilen also nach /etc/myFirewall und mache das Script myFirewall mit: chmod +x myFirewall startbar.

Nach dem nächsten Verbindungsaufbau sollte der Kram laufen.

Viel Glück
rfi







#!/bin/sh

IPTABLES=/usr/sbin/iptables
SBIN=/usr/sbin
IF_INT=eth0
IF_EXT=ppp0
LOCALNET="10.0.0.0/24"
EXT_IP=`ifconfig ppp0|grep "inet addr"|cut -d':' -f2|cut -d' ' -f1`

base=${0##*/}
link=${base#*[SK] [0-9] [0-9]}
#
case "$1" in

start)

#
# reset the default policies
#
$IPTABLES -F
$IPTABLES -t nat -F

# Kernel
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/ip_dynaddr

#
# Default Policy auf DENY
#
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT DROP
$IPTABLES -P FORWARD DROP
#
# Postrouting
#
$IPTABLES -A POSTROUTING -t nat -o $IF_EXT -j SNAT --to $EXT_IP
#
# Prerouting
#
$IPTABLES -A PREROUTING -t nat -i $IF_INT -s $LOCALNET -j ACCEPT
$IPTABLES -A PREROUTING -t nat -i $IF_EXT -p tcp -m state --state related,established -j ACCEPT
$IPTABLES -A PREROUTING -t nat -i $IF_EXT -p udp -m state --state related,established -j ACCEPT
#
# BattleCom
#
$IPTABLES -A PREROUTING -t nat -d $EXT_IP -p tcp --destination-port 2300:2400 -i $IF_INT -j DNAT --to 10.0.0.5
$IPTABLES -A PREROUTING -t nat -d $EXT_IP -p udp --destination-port 2300:2400 -i $IF_INT -j DNAT --to 10.0.0.5
$IPTABLES -A PREROUTING -t nat -d $EXT_IP -p tcp --destination-port 47624 -i $IF_INT -j DNAT --to 10.0.0.5:47624
#
# Forward
#
$IPTABLES -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
$IPTABLES -A FORWARD -t filter -i $IF_INT -o $IF_EXT -j ACCEPT
$IPTABLES -A FORWARD -t filter -i $IF_EXT -o $IF_INT -m state --state related,established -j ACCEPT
#
# zusätzliche OUTPUT rules
#
$IPTABLES -A OUTPUT -p all -o $IF_EXT -j ACCEPT
#
# zusätzliche INPUT rules (icmp)
#
$IPTABLES -A INPUT -p icmp -m icmp --icmp-type 0 -i $IF_EXT -j ACCEPT
$IPTABLES -A INPUT -p icmp -m icmp --icmp-type 3 -i $IF_EXT -j ACCEPT
$IPTABLES -A INPUT -p icmp -m icmp --icmp-type 4 -i $IF_EXT -j ACCEPT
$IPTABLES -A INPUT -p icmp -m icmp --icmp-type 8 -i $IF_EXT -j ACCEPT
$IPTABLES -A INPUT -p icmp -m icmp --icmp-type 11 -i $IF_EXT -j ACCEPT
$IPTABLES -A INPUT -p icmp -m icmp --icmp-type 12 -i $IF_EXT -j ACCEPT
#
# zusätzliche INPUT rules
#
$IPTABLES -A INPUT -i $IF_INT -j ACCEPT
$IPTABLES -A INPUT -p tcp --destination-port 22 -m tcp -i $IF_EXT -j ACCEPT
$IPTABLES -A INPUT -p udp --destination-port 22 -m udp -i $IF_EXT -j ACCEPT
$IPTABLES -A INPUT -p tcp --source-port 42 -m state --state ESTABLISHED -i $IF_EXT -j ACCEPT
$IPTABLES -A INPUT -p udp --source-port 42 -m state --state ESTABLISHED -i $IF_EXT -j ACCEPT
$IPTABLES -A INPUT -p tcp --source-port 21 -m state --state ESTABLISHED -i $IF_EXT -j ACCEPT
$IPTABLES -A INPUT -p tcp --source-port 20 -m state --state ESTABLISHED -i $IF_EXT -j ACCEPT
#$IPTABLES -A INPUT -p udp -s icq.mirabilis.com --source-port 4000 -i $IF_EXT -j ACCEPT
$IPTABLES -A INPUT -p tcp --source-port 1024: -m state --state ESTABLISHED -i $IF_EXT -j ACCEPT
$IPTABLES -A INPUT -p tcp --source-port 25 -m state --state ESTABLISHED -i $IF_EXT -j ACCEPT
$IPTABLES -A INPUT -p udp --source-port 25 -m state --state ESTABLISHED -i $IF_EXT -j ACCEPT
$IPTABLES -A INPUT -p tcp --source-port 110 -m state --state ESTABLISHED -i $IF_EXT -j ACCEPT
$IPTABLES -A INPUT -p udp --source-port 110 -m state --state ESTABLISHED -i $IF_EXT -j ACCEPT
#
$IPTABLES -A INPUT -t filter -p 50 -j ACCEPT
$IPTABLES -A INPUT -t filter -p 51 -j ACCEPT
$IPTABLES -A INPUT -t filter -p udp --dport 500 -j ACCEPT
#
$IPTABLES -A OUTPUT -o $IF_INT -j ACCEPT
$IPTABLES -A INPUT -p all -i lo -j ACCEPT
$IPTABLES -A OUTPUT -p all -o lo -j ACCEPT
$IPTABLES -A FORWARD -p all -o lo -j ACCEPT
$IPTABLES -A INPUT -p all -i dummy0 -j ACCEPT
$IPTABLES -A OUTPUT -p all -o dummy0 -j ACCEPT
$IPTABLES -A FORWARD -p all -o dummy0 -j ACCEPT
#
# alles was rausfällt ins Log schreiben
#
$IPTABLES -A INPUT -p all -j LOG --log-level info --log-prefix "firewall"
$IPTABLES -A OUTPUT -p all -j LOG --log-level info --log-prefix "firewall"
$IPTABLES -A FORWARD -p all -j LOG --log-level info --log-prefix "firewall"
;;

stop)

#
# reset the default policies in the filter table
#
$IPTABLES -F INPUT
$IPTABLES -F OUTPUT
$IPTABLES -P FORWARD
$IPTABLES -P INPUT ACCEPT
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD ACCEPT
$IPTABLES -t nat -F

;;

status)
$IPTABLES -v -L|less
;;

*)
echo "usage $0 start | stop"
;;

esac

exit 0

pucki
28.11.01, 08:34
Original geschrieben von rfi
Hi,


In /etc/ppp/ip-up schreibst du die Start- und Stop-Bedingung deiner Firewall rein:

ppp*)
.
.
ip-up)
/etc/myFirewall start
.
.
.
.
ip-down)
/etc/myFirewall stop
.
.
.

Achte darauf, dass diese Script-Aufrufe gleich am Anfang stehen.
Der erste Aufruf startet deine Firewall, wenn du die Verbindung herstellst.
Der zweite Aufruf löscht deine Firewall-Regeln, wenn aus irgendeinem Grund die Verbindung beendet wird (das ist nicht unbedingt unumstritten, wenn sich hier auch Firewallregeln für das Intranet befinden).



exit 0

oder:

du stopst die firewall nicht, sondern initialisierst sie nach dem verbindungsabbau mit den aktuellen ip`s neu.

dann sind die regeln weiterhin aktiv. das hat dann auch den vor- / nachteil, das kannst du dir aussuchen, daß bei einem neuaufbau der verbindung auch nur dann eine verbindung zustande kommt, wenn die regeln neu aufgebaut werden.

EmpIRe
28.11.01, 21:33
Danke für die Antworten!
Werde ich aber erst morgen ausprobieren. Schon bisl spät ;)