natd ---> tierische probleme.......bitte helft

darmon

Well-Known Member
hallo zusammen,

also mein problem besteht darin, ich möchte gerne mit meinem windows rechner über meine bsd kiste ins internet. soweit sogut, aber ich schaffe es nicht mit meinem w2k rechner online zu kommen. auf dem bsd rechner läuft ppp einwandfrei auch die ipfw dürfte keine probleme machen. ich kann nämlich von meinem bsd rechner nach draussen pingen........auch den w2k rechner kann ich pingen genauso umgekehrt.
meine natd ist auch am laufen...

kaiser# ps ax |grep natd
212 ?? Is 0:00.00 /sbin/natd -dynamic -n tun0 -f /etc/firewall/natd.conf


meine natd.conf sieht folgendermasen aus:

redirect_port tcp 192.168.0.2:80 192.168.0.1:80
redirect_port udp 192.168.0.2:80 192.168.0.1:80
#redirect_port tcp 192.168.0.1:22 22
#redirect_port udp 192.168.0.1:22 22
#redirect_port tcp 192.168.0.1:21 21
#redirect_port udp 192.168.0.1:21 21

redirect_address 192.168.0.2 192.168.0.1
~
192.168.0.1 ist der w2k rechner (auch wenn ich die stellung der beiden ips vertausche gehts nicht)


....ich glaube auch an was es liegen könnte das das ganze nicht funktioniert habe aber leider zu wenig erfahrung um meine idee in die tat umzusetzten.
ich glaube der bsd rechner weiss nicht wie er die anfrage welche auf rl0 erhählt weiter zur rl1 leiten soll.

hier ist die netzwerk konfig:

kaiser# ifconfig -a
rl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet 192.168.0.2 netmask 0xffffff00 broadcast 192.168.0.255
ether 00:e0:7d:7d:b7:1f
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
rl1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 00:e0:7d:74:7b:99
media: Ethernet autoselect (none)
status: no carrier
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
inet 127.0.0.1 netmask 0xff000000
tun0: flags=8010<POINTOPOINT,MULTICAST> mtu 1500


(hier ist ppp nicht gestartet........., geht aber sonst ohne probleme)

...........lange rede kurzer sinn, kann es sein das mir die routerfunktion fehlt???????
wenn ja sagt mir doch bitte wie ich mein problem lösen kann, hab mich schon lange durch google und foren gewältzt, hat aber bis jetzt nicht ´s gebracht.......


meine rc.conf sieht so aus:

# -- sysinstall generated deltas -- # Thu Sep 11 23:23:51 2003
# Created: Thu Sep 11 23:23:51 2003
# Enable network daemons for user convenience.
# Please make all changes to this file, not to /etc/defaults/rc.conf.
# This file now contains just the overrides from /etc/defaults/rc.conf.
hostname="kaiser.wimmer.net"
ifconfig_rl0="up"
kern_securelevel_enable="NO"
keymap="german.iso"
linux_enable="YES"
sendmail_enable="NONE"
sshd_enable="YES"
syslogd_enable="YES"
syslogd_flags="-ss"
clear_tmp_enable="YES"
update_motd="NO"
ppp_nat="YES"


####### Netzwerk Konfiguration ###########

ifconfig_rl0="inet 192.168.0.2 netmask 255.255.255.0"

###### FIREWALL ###########
firewall_enable="YES"
firewall_script="/etc/ipfwrules"
firewall_logging="YES"

###### NAT-Dienste ###########
natd_program="/sbin/natd"
natd_enable="YES"
natd_interface="tun0"
natd_flags="-dynamic -n tun0 -f /etc/firewall/natd.conf"

gateway_enable="YES"





danke schonmal

darmon
 
Was ist beim W2K Rechner als Gateway eingetragen?
Hast Du beim W2K Rechner auch die Nameserver Deines Providers eingetragen?
 
Morgäähn,
also bei meinem w2k rechner ist unter eigenschaften bei der netzwerkumgebung, die ip der bsd kiste als gateway eingetragen und bei dem nameserver ( DNS ) hab ich die ip von der telekom eingetragen, also die 217. 5.98.173. meinem iexplorer, weise ich an er soll sich über einen proxy verbinden (ip der bsd kiste). aber es klappt nicht, leider...........
 
Welche IP auf dem W2K Rechner gibst Du als Gateway an?
Kannst Du IPs anpingen?
Was sagt ein ping auf 213.146.112.85?
 
Hab zwar schon länger nichts mehr mit natd gemacht, aber müsste der folgende Eintrag in der natd.conf nicht die öffentliche IP beinhalten?

redirect_address 192.168.0.2 192.168.0.1

Gruß,

Ice
 
Deine rc.conf:
ifconfig_rl0="up"
ifconfig_rl0="inet 192.168.0.2 netmask 255.255.255.0"

Wo ist denn da Deine rl1? Diese hat, laut ifconfig, auch "no carrier".
Mach mal dies in Deiner /etc/rc.conf:
Code:
ifconfig_rl0="up" # <-- löschen
ifconfig_rl0="inet 192.168.0.2 netmask 255.255.255.0"
ifconfig_rl1="up"
Wobei "rl1" die Karte ist an der das DSL "Modem" hängt.
 
Mit natd leitet man Ports weiter.
Ich habe eine öffentliche IP, möchte den mailserver aber nicht auf dem Router, auf der Einwahlbüchse rennen lassen, dann leite ich den Port 25 auf die interne IP des Rechner weiter, auf der der MTA rennt. Ebenso mit httpd, dem esel, whatever.
Ansonsten brauchst Du das nicht wirklich.
 
Deshalb hat es mich ja auch gewundert, dass ALLE ports auf seinem internen Interface auf seinen Client weitergeleitet werden sollen.....
Oder hab ich das falsch interpretiert???
 
Aber stimmt auf jeden Fall, dass nach der gelisteten Config rl1 noch gar nicht aktiviert wurde.
Aber daran kann es eigentlich nicht liegen, denn sonst dürfte er doch gar keinen connect zum ISP kriegen, weil ja tun0 nicht auf ein Interface aufsetzen kann, das noch gar nicht existiert, oder?
 
Warum willst Du überhaupt einen Port auf die Windows Büchse mit der natd.conf weiterleiten?
Ich komme mit meinem iBook, meine Freundin mit W_XP auch ohne eine Weiterleitung in der natd.conf ins Netz.
Meine natd.conf (Auszug):
Code:
# http --> jail mawe 
redirect_port tcp 192.168.0.200:80 80
redirect_port udp 192.168.0.200:80 80
# smtp --> jail mawe
redirect_port tcp 192.168.0.200:25 25
redirect_port udp 192.168.0.200:25 25
# dns --> jail dns
redirect_port tcp 192.168.0.201:53 53
redirect_port udp 192.168.0.201:53 53
# pop --> jail mawe
redirect_port udp 192.168.0.200:110 110
redirect_port tcp 192.168.0.200:110 110

Er will doch einen Router, und das geht mit "gateway_enable="YES"
 
also wenn ich das "dsl-netzwerk-kabel" an meine bsd kiste anstecke liefert mir ifconfig folgendes:

$ ifconfig -a
rl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet 192.168.0.2 netmask 0xffffff00 broadcast 192.168.0.255
ether 00:e0:7d:7d:b7:1f
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
rl1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 00:e0:7d:74:7b:99
media: Ethernet autoselect (10baseT/UTP)
status: active
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
inet 127.0.0.1 netmask 0xff000000
tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1492
inet 217.232.165.169 --> 217.5.98.173 netmask 0xffffff00
Opened by PID 504


die ping befehle funktionieren auch.....

$ ping 213.146.112.85
PING 213.146.112.85 (213.146.112.85): 56 data bytes
64 bytes from 213.146.112.85: icmp_seq=0 ttl=56 time=137.589 ms
64 bytes from 213.146.112.85: icmp_seq=1 ttl=56 time=135.770 ms
64 bytes from 213.146.112.85: icmp_seq=2 ttl=56 time=135.546 ms
64 bytes from 213.146.112.85: icmp_seq=3 ttl=56 time=134.567 ms
64 bytes from 213.146.112.85: icmp_seq=4 ttl=56 time=135.594 ms
64 bytes from 213.146.112.85: icmp_seq=5 ttl=56 time=135.388 ms
^Z[2] + Suspended ping 213.146.112.85


@asg soll ich des mit der netzwerkkarte rl1 noch versuchen, ich glaube die funktioniert soweit?????

bei dem w2k rechner geb ich die ip der bsd kiste (192.168.0.2) als gateway an.
 
Bist Du Dir sicher, dass Du in der Datei /etc/ipfwrules einen "divert"-Eintrag hast?

add divert natd all from 192.168.0.1 to any via tun0

Gruß,

Ice
 
Sorry, schlecht formuliert:

Genau das wollte ich doch sagen: Für was soll das Portforwarding bei ihm gut sein?
Und kann es nicht gerade dadurch Probz geben, weil er alle ports von 192.168.0.2 auf seinen Client 192.168.0.1 umlenkt?
 
@darmon
Ja, so sieht Deine ifconfig nun gut aus.
Und den Ping haste von der W2K Kiste gemacht? Nein. Die soll ja ins Netz kommen.
Als Gateway gibst Du bei der W2K Box dann die interne IP Deiner BSD Box an, also 192.168.0.2.

Ansonsten, Ice sagte es schon, hast Du bei IPFW eine Regel drin, die erstmal alles verbietet: "ipfw add deny log ip from any to any".
Dann geht auch nix. Zu Deine Box.

Hast Du unter /etc/ipfwrules denn Deine eigenen Regeln drin?
Hier:
http://www.bsdforen.de/forums/showthread.php?s=&threadid=148&highlight=ipfw
gibt es ein kleines schmutziges howto dazu.
 
Ich würde mal die /etc/ipfwrules mit den minimal Einstellung laufen lassen, um sicherzustellen, dass Du Dich nicht selbst blockst:

/sbin/ipfw -f flush
/sbin/ipfw add divert natd all from any to any via tun0
/sbin/ipfw add pass all from any to any

Dann könntest Du den natd mal manuell mit der Option -v starten, um zu sehen, ob die Pakete überhaupt beim natd ankommen.

Gruß,

Ice
 
hallo,

also erstmal n gewaltiges mercy an Ice und asg !!!!!!!!!!!!!
ihr wart mir eine gute hilfe, bin auch kurz davor das problem zu lösen. ich glaub meine ipfwrules sind nicht so ganz koscher und stimmen nicht ganz überein. als ich mal die minimal conf von ice benutzt habe und den natd gestartet hab mit -v konnte ich sehen das die pakete ankamen. ich pingte auf der w2k box heise.de in der cmd-zeile und der natd auf der bsd box zeigte mir folgendes an:

Out [UDP] [UDP] 192.168.0.1:1249 -> 217.5.98.173:53 aliased to
[UDP] 217.232.146.224:1249 -> 217.5.98.173:53
Out [UDP] [UDP] 192.168.0.1:1249 -> 217.5.98.173:53 aliased to
[UDP] 217.232.146.224:1249 -> 217.5.98.173:53
Out [UDP] [UDP] 192.168.0.1:1249 -> 217.5.98.173:53 aliased to
[UDP] 217.232.146.224:1249 -> 217.5.98.173:53
Out [UDP] [UDP] 192.168.0.1:1249 -> 217.5.98.173:53 aliased to
[UDP] 217.232.146.224:1249 -> 217.5.98.173:53
Out [UDP] [UDP] 192.168.0.1:1249 -> 217.5.98.173:53 aliased to
[UDP] 217.232.146.224:1249 -> 217.5.98.173:53
In [UDP] [UDP] 213.97.135.132:3445 -> 217.232.146.224:1434 aliased to
[UDP] 213.97.135.132:3445 -> 217.232.146.224:1434
Out [ICMP] [ICMP] 217.232.146.224 -> 213.97.135.132 3(3) aliased to
[ICMP] 217.232.146.224 -> 213.97.135.132 3(3)
Out [UDP] [UDP] 192.168.0.1:1250 -> 217.5.98.173:53 aliased to
[UDP] 217.232.146.224:1250 -> 217.5.98.173:53
Out [UDP] [UDP] 192.168.0.1:1250 -> 217.5.98.173:53 aliased to
[UDP] 217.232.146.224:1250 -> 217.5.98.173:53
Out [UDP] [UDP] 192.168.0.1:1250 -> 217.5.98.173:53 aliased to
[UDP] 217.232.146.224:1250 -> 217.5.98.173:53
In [UDP] [UDP] 141.151.191.54:1025 -> 217.232.146.224:137 aliased to
[UDP] 141.151.191.54:1025 -> 217.232.146.224:137
Out [ICMP] [ICMP] 217.232.146.224 -> 141.151.191.54 3(3) aliased to
[ICMP] 217.232.146.224 -> 141.151.191.54 3(3)


...........auf meiner w2k kiste bekam ich aber die fehlermeldung unbekannter host( hab keine firewall auf w2k am laufen).

wie funktioniert eigentlich die datenübergabe von rl1 auf rl0 sodass die daten ins netz gelangen können ???????? würd mich mal interesieren.


gruss

darmon
 
Nimm mal Deine ganzen natd rules raus. Also nenn einfach Deine natd.conf um. Und dann nochmal probieren.
rl1 auf rl0 geht mittels "gateway_enable".
 
Mir fällt gerade auf, dass Dein Nameserver-Eintrag anscheinend nicht stimmt:
Zumindest kann ich die IP, die Du angegeben hast nicht auflösen.
Benutz doch mal einen dieser (T-Online) DNS:

194.25.2.129
212.185.253.9

Gruß,

Ice
 
Ähem ... hallöchen liebe FreeBSD-User ;)

Ich will eure Bemühungen seitens natd nicht ad absurdum führen, jedoch gibt es da einen wesentlich einfacheren Weg, NAT auf einer Kiste laufen zu lassen, damit eine andere "ins Internet kann".

Die Antwort auf alle Fragen mag immer 42 sein ;), jedoch ist die
beste Antwort auf die NAT-Frage, meiner bescheidenen
Meinung nach, immer noch OpenBSD's PF. Und eine Portierung für
FreeBSD gibt es schon lange und mittlerweile ist die Funktionalität in der Verson 2.2 dieselbe wie beim nativen PF.

Also hier erst einmal der Link und weiter unten meine Empfehlung
zur Einrichtung einer funktionierenden NAT: http://pf4freebsd.love2party.net/

So mache ich es unter OpenBSD, wenn ich eine andere Kiste ins
Netz bringen will:

vi /etc/pf.conf

in dieser Folgendes eingeben:
Code:
$int_if="DEINE_INTERNE_KARTE"
$ext_if="DEINE_EXTERNE_KARTE"
$int_net="DEIN_INTERNES_NETZWERK" --> am besten 192.168.0.0/24


# NAT Regeln

nat on $ext_if from $int_net to any --> ($ext_if)

pass in all keep state      # ---> diese Regeln sollten NUR
pass out all keep state    # in absolut vertrauenswürdigen
                                        # Umgebungen eingesetzt 
werden, ansonsten sich gut über die zahlreichen
Filtermöglichkeiten bei PF informieren.

Jetzt gibst du deiner Win-Kiste eine IP aus dem Bereich
192.168.0.0/24 (z.B. 192.168.30.25) und als
Gateway richtest du die IP der internen Karte ein
(die auch im internen Bereich liegen und dasselbe Subnetz haben muss ... also in diesem Falle z.B. 192.168.30.1).

Die interne und externe Karte musst du unter FreeBSD als
eine logische Brücke zusammenfassen lassen, damit die
Pakete vor der einen auf die andere weitergeleitet werden können. Wie es bei FBSD genau geht, kann ich dir nicht
genau sagen, aber bestimmt wissen es andere hier. :)

Dann musst du noch in der rc.conf das Pakete-Forwarding
einschalten (oder sonst, wo es notwenfig ist ... FBSD hat ja viele rc's).

Ich kenne leider nicht den genauen Kernel-Befehl, aber bestimmt helfen dir versierte FBSD-User hier weiter.)

PF mit pfctl -e starten und die Regeln laden.

Das wärs dann auch.

Wenn du mehr Infos über PF haben möchtest, dann besuche bitte
http://www.openbsd.org oder schaue dir mal meine eigene
PF-FAQ an die ich in der Howto-Sektion unter OpenBSD abgelegt
habe. Ich hoffe, dass ich dir damit helfen konnte.

Wenn du aber nichts mit PF zu tun haben möchtest, dann sag es
bescheid und ich lösche diesen Beitrag. :)

Grüße und viel Erfolg

CW
 
Zuletzt bearbeitet:
hallo CW,

ne lösch den traed auf keinen fall...........
werde mir zwar nicht deswegen PF installieren, da es mit natd doch auch gehen müsste........., aber wenn ich bald verzweifel, probier ichs aus

@ice was für ein DNS eintrag meinst du denn?????

kann es sein, weil ich ppp_nat in der rc.conf aktiviert habe, dass dadurch der natd gestört wird ????

so long.....
 
und die antwort ist doch 42 !!!!!!!

hat alles schon geklappt, der einzige fehler war, wie ice schon richtig vermutet hat. wieder mal basierend auf der windows seite und zwar war die DNS in der netzwerk konfig falsch nachdem ich die 212.185.253.9 eingetragen hab hat alles wunderbar geklappt..........


danke nochmal für die hilfe !!!!!! :o))
 
Original geschrieben von darmon
und die antwort ist doch 42 !!!!!!!

hat alles schon geklappt, der einzige fehler war, wie ice schon richtig vermutet hat. wieder mal basierend auf der windows seite und zwar war die DNS in der netzwerk konfig falsch nachdem ich die 212.185.253.9 eingetragen hab hat alles wunderbar geklappt..........


danke nochmal für die hilfe !!!!!! :o))

Schön!

Freut mich, dass es auch so geklappt hat. :)

Vielleicht probierst du irgendwann mal pf doch. Hat einige
wirklich gute Features, die sehr nützlich für dich sein können.

Grüße

CW
 
Nunja, seine FW hat ja bisher keine wirkliche Regel, die natd.conf braucht er auch nicht, warum sollte es dann für ihn einige nützliche features bei PF geben? ;-)
 
Und vor allem seit wann hilft eine Bridge bei NAT? Und ist gar zwingend Vorraussetzung. Ein ganz einfach NAT Setup bekommt man unter freeBSD mit mindestens ebensowenig Zeilen config hin wie oben beschriebenes pf Beispiel.
PF hat eine nette Syntax und einige sehr Klasse Features, ja.

Aber wir wollen doch bitte bei der Wahrheit bleiben.
 
Original geschrieben von CW
Ähem ... hallöchen liebe FreeBSD-User ;)

Servus mein OBSD User ;-).

Die Antwort auf alle Fragen mag immer 42 sein ;), jedoch ist die
beste Antwort auf die NAT-Frage, meiner bescheidenen
Meinung nach, immer noch OpenBSD's PF.
[...]

Das braucht es nicht.

So mache ich es unter OpenBSD, wenn ich eine andere Kiste ins
Netz bringen will:
vi /etc/pf.conf
in dieser Folgendes eingeben:
Code:
$int_if="DEINE_INTERNE_KARTE"
$ext_if="DEINE_EXTERNE_KARTE"
$int_net="DEIN_INTERNES_NETZWERK" --> am besten 192.168.0.0/24
# NAT Regeln
nat on $ext_if from $int_net to any --> ($ext_if)
pass in all keep state      # ---> diese Regeln sollten NUR
pass out all keep state    # in absolut vertrauenswürdigen
                                        # Umgebungen eingesetzt 
werden, ansonsten sich gut über die zahlreichen
Filtermöglichkeiten bei PF informieren.

Ich gebe hierbei...

Dann musst du noch in der rc.conf das Pakete-Forwarding
einschalten (oder sonst, wo es notwenfig ist ... FBSD hat ja viele rc's).

...in der rc.conf, wie schon geschrieben, und wie er auch schon gemacht hat, "gateway_enable=YES"" ein, oder setze die entsprechende sysctl variable.
 
Zurück
Oben