natd routing

nichtskoenner

Active Member
Hallo zusammen,

nach folgender Anleitung habe ich meinen Router
installiert:
http://www.bsdforen.de/forums/showthread.php?s=&threadid=148

Verwende ich das Originalfirewallscript /etc/rc.firewall
funktioniert ein ping ins Internet.

Bei dem verwendeten Script tut sich garnichts. Weder
in den messages noch im firewalllog sind Ansätze zu
finden. Daher poste ich euch mal folgende Ausgaben:
ifconfig:
##################################################################
ed0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 inet 192.168.0.50 netmask 0xffffff00 broadcast 192.168.0.255 inet6 fe80::200:b4ff:feb4:bd69%ed0 prefixlen 64 scopeid 0x1 ether 00:00:b4:b4:bd:69

ep0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 inet6 fe80::2a0:24ff:fe5c:608c%ep0 prefixlen 64 scopeid 0x2 ether 00:a0:24:5c:60:8c media: Ethernet 10baseT/UTP

ppp0: flags=8010<POINTOPOINT,MULTICAST> mtu 1500

sl0: flags=c010<POINTOPOINT,LINK2,MULTICAST>mtu552

faith0: flags=8002<BROADCAST,MULTICAST> mtu 1500

lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x6
inet 127.0.0.1 netmask 0xff000000

tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1492 inet 217.88.197.178 --> 217.5.98.92 netmask 0xffffffff Opened by PID 58
############################################################

Also funktioniert der ppp definitiv und ep0 bekommt eine
IP zugewiesen.

Nun noch die Ausgabe von netstat -r
###########################################################
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 217.5.98.92 UGSc 2 8 tun0
localhost localhost UH 0 0 lo0
192.168.0 link#1 UC 4 0 ed0
192.168.0.1 link#1 UHLW 1 1559 ed0
server 00:80:ad:ac:31:c1 UHLW 0 0 ed0 936
bsd 00:00:b4:b4:bd:69 UHLW 0 2 lo0
192.168.0.255 ff:ff:ff:ff:ff:ff UHLWb 3 29 ed0
217.5.98.92 217.88.197.178 UH 3 0 tun0

Internet6:
Destination Gateway Flags Netif Expire
localhost localhost UH lo0
fe80::%ed0 link#1 UC ed0
fe80::200:b4ff:feb 00:00:b4:b4:bd:69 UHL lo0
fe80::%ep0 link#2 UC ep0
fe80::2a0:24ff:fe5 00:a0:24:5c:60:8c UHL lo0
fe80::%lo0 fe80::1%lo0 Uc lo0
fe80::1%lo0 link#6 UHL lo0
ff01:: localhost U lo0
ff02::%ed0 link#1 UC ed0
ff02::%ep0 link#2 UC ep0
ff02::%lo0 localhost UC lo0
ff02::%tun0 fe80::200:b4ff:feb UC tun0
#######################################################

Das default-gateway scheint auch okay zu sein.
Ich gehe davon aus, dass ich einen Fehler beim
Firewalling geacht habe. Die Rules sind in args Posting
zu sehen. Lediglich meine DNS-Server habe ich angepasst
und mein internes Interface (ed0) für xl0 eingesetzt.

Während des Startvorganges scheinen die Regeln
eingelesen zu werden, da die einzelnen Rules zu sehen
sind.
Welche AUsgaben müsstet ihr noch haben, damit ihr mir
weiterhelfen könnt ?

Danke Gruß
nichtskoenner
 
wie sehen die rules aus? Paste die mal bitte.
Bzw. die Ausgabe von "ipfw list" und "ipfw show".
 
Hallo,
ich muß zugeben, dass ich die Rules fast blind übernommen
habe, um erst einmal zu testen, ob das NATten funktioniert.
Ein Ping ins interne Netz funktioniert.
Naja, ich werde auf alle Fälle noch ein paar Tutorials lesen.

Dann meldet der ppp bei folgendem Eintrag den Fehler unknown
comand: Eintrag ->disable vicomp . Ich habe ihn nun herausgenommen
und nun funktioniert ppp.

Ebenso verhält sich das System recht merkwürdig wenn ich in
der sysctl.conf folgenden Eintrag mache:
sysctl -w net.inet.ipforwarding=1
Während des Bootvorganges erscheinen sehr viele Meldungen, die
so schnell nicht zu erkennen sind. dmesg spuckt auch nur einen
Teil aus.

Nagut, Hauptsache ist, dass ich bald von meinem Linuxrouter auf
BSD umstellen kann :-)) Die Performance interessiert mich doch sehr.
Übrigens fahre ich jetzt 4.9 - das Upgrade hat ohne Probleme geklappt.

eine Ausgabe von ipfw list:
00010 divert 8668 ip from any to any via tun0
00110 deny log logamount 100 tcp from any to any 6000 in recv tun0
00210 allow ip from any to any via lo0
00310 allow ip from any to any via ed0
00410 allow tcp from any to any out xmit tun0 setup
00510 allow tcp from any to any via tun0 established
00610 allow log logamount 100 tcp from any to any 80 setup
00710 allow log logamount 100 tcp from any to any 22 setup
00810 allow log logamount 100 tcp from any to any 25 setup
00910 allow log logamount 100 tcp from any to any 21 setup
01010 allow log logamount 100 tcp from any to any 1022 setup
01110 reset log logamount 100 tcp from any to any 113 in recv tun0
01210 allow udp from any to 217.5.115.77 53 out xmit tun0
01310 allow udp from any to 194.25.2.129 53 out xmit tun0
01410 allow tcp from any to 217.5.115.77 53 out xmit tun0
01510 allow tcp from any to 194.25.2.129 53 out xmit tun0
01610 allow udp from 217.5.115.77 53 to any in recv tun0
01710 allow udp from 194.25.2.129 53 to any in recv tun0
01810 allow tcp from 217.5.115.77 53 to any in recv tun0
01910 allow tcp from 194.25.2.129 53 to any in recv tun0
02010 allow log logamount 100 icmp from any to any in recv tun0 icmptype 3
02110 allow log logamount 100 icmp from any to any in recv tun0 icmptype 8
02210 allow icmp from any to any
02310 deny log logamount 100 tcp from any to any 0-1000 in recv tun0 setup
02410 deny log logamount 100 tcp from any to any 2049 in recv tun0 setup
02510 deny log logamount 100 tcp from any to any 12345 in recv tun0
02610 deny log logamount 100 tcp from any to any 20034 in recv tun0
02710 deny ip from any to any
65535 deny ip from any to any

Die Ausgabe von ipfw show:
00010 0 0 divert 8668 ip from any to any via tun0
00110 0 0 deny log logamount 100 tcp from any to any 6000 in recv tun0
00210 50 5198 allow ip from any to any via lo0
00310 44 4838 allow ip from any to any via ed0
00410 0 0 allow tcp from any to any out xmit tun0 setup
00510 0 0 allow tcp from any to any via tun0 established
00610 0 0 allow log logamount 100 tcp from any to any 80 setup
00710 0 0 allow log logamount 100 tcp from any to any 22 setup
00810 0 0 allow log logamount 100 tcp from any to any 25 setup
00910 0 0 allow log logamount 100 tcp from any to any 21 setup
01010 0 0 allow log logamount 100 tcp from any to any 1022 setup
01110 0 0 reset log logamount 100 tcp from any to any 113 in recv tun0
01210 0 0 allow udp from any to 217.5.115.77 53 out xmit tun0
01310 0 0 allow udp from any to 194.25.2.129 53 out xmit tun0
01410 0 0 allow tcp from any to 217.5.115.77 53 out xmit tun0
01510 0 0 allow tcp from any to 194.25.2.129 53 out xmit tun0
01610 0 0 allow udp from 217.5.115.77 53 to any in recv tun0
01710 0 0 allow udp from 194.25.2.129 53 to any in recv tun0
01810 0 0 allow tcp from 217.5.115.77 53 to any in recv tun0
01910 0 0 allow tcp from 194.25.2.129 53 to any in recv tun0
02010 0 0 allow log logamount 100 icmp from any to any in recv tun0 icmptype 3
02110 0 0 allow log logamount 100 icmp from any to any in recv tun0 icmptype 8
02210 0 0 allow icmp from any to any
02310 0 0 deny log logamount 100 tcp from any to any 0-1000 in recv tun0 setup
02410 0 0 deny log logamount 100 tcp from any to any 2049 in recv tun0 setup
02510 0 0 deny log logamount 100 tcp from any to any 12345 in recv tun0
02610 0 0 deny log logamount 100 tcp from any to any 20034 in recv tun0
02710 0 0 deny ip from any to any
65535 0 0 deny ip from any to any

meine rc.conf:
gateway_enable="YES"
hostname="bsd.intern"
ifconfig_ed0="inet 192.168.0.50 netmask 255.255.255.0"
inetd_enable="YES"
kern_securelevel="2"
kern_securelevel_enable="NO"
keymap="german.iso"
linux_enable="NO"
moused_enable="YES"
moused_port="/dev/cuaa0"
moused_type="microsoft"
nfs_server_enable="NO"
sendmail_enable="NO"
sshd_enable="YES"
#firewall_type="OPEN"
firewall_enable="YES"
#firewall_script="/etc/rc.firewall"
firewall_script="/etc/firewall/mywall"
firewall_logging="YES"
natd_program="/sbin/natd"
natd_enabled="YES"
natd_interface="tun0"
natd_flags="-dynamic -f /etc/firewall/natd.conf"
#ppp_nat="NO"
ppp_enable="YES"
ppp_mode="ddial"
#ppp_mode="auto" waere dial on demand
ppp_profile="default"
ifconfig_ep0="up"


Dein abgeändertes Firewallskript:
#test
#damit natd funktioniert
ipfw add 10 divert natd all from any to any via tun0

#blockiert den port 6000 (x)
ipfw add deny log tcp from any to any 6000 in recv tun0
ipfw add allow ip from any to any via lo0
ipfw add allow ip from any to any via ed0

#erlaubt alle Verbindungen welche von hier initiiert wurden
ipfw add allow tcp from any to any out xmit tun0 setup

#wenn die Verbindung einmal hergestellt wurde, erlaube
#diese offen zu stehen
ipfw add allow tcp from any to any via tun0 established

ipfw add allow log tcp from any to any 80 setup
ipfw add allow log tcp from any to any 22 setup
ipfw add allow log tcp from any to any 25 setup
ipfw add allow log tcp from any to any 21 setup
ipfw add allow log tcp from any to any 1022 setup

#sendet RESET zu allen ident packets
ipfw add reset log tcp from any to any 113 in recv tun0

#erlaubt ausgehende DNS queries NUR auf die beiden
#angegebenen Server
ipfw add allow udp from any to 217.5.115.77 53 out xmit tun0
ipfw add allow udp from any to 194.25.2.129 53 out xmit tun0

ipfw add allow tcp from any to 217.5.115.77 53 out xmit tun0
ipfw add allow tcp from any to 194.25.2.129 53 out xmit tun0

#erlaubt die Antwort der DNSanfragen
ipfw add allow udp from 217.5.115.77 53 to any in recv tun0
ipfw add allow udp from 194.25.2.129 53 to any in recv tun0

ipfw add allow tcp from 217.5.115.77 53 to any in recv tun0
ipfw add allow tcp from 194.25.2.129 53 to any in recv tun0

#loggt ICMPanfragen der Kiddies
ipfw add allow log icmp from any to any in recv tun0 icmptype 3
ipfw add allow log icmp from any to any in recv tun0 icmptype 8
#ICMP erlauben
ipfw add allow icmp from any to any

#blockiert alle Anfragen auf ports unter 1000
ipfw add deny log tcp from any to any 0-1000 in recv tun0 setup
#2049 ==NFS
ipfw add deny log tcp from any to any 2049 in recv tun0 setup

#loggt netbux connections
ipfw add deny log tcp from any to any 12345 in recv tun0
ipfw add deny log tcp from any to any 20034 in recv tun0

#alles andere verbieten
ipfw add deny ip from any to any

Gruß
und wie immer ein fettes Dankeschön
 
Funktioniert es denn nun?
Wenn nicht, dann interessiert die Ausgabe von ipfw show && list wenn die "nicht" funktionierenden Rules aktiviert sind
 
Hallo asg,

nein, es funktioniert noch nicht. Ebenso habe ich die confs und
rules gepostet, mit denen es nicht funktioniert - weder nat noch ping extern -

Lediglich der Ausschalter für die vjkomp ist nun auch richtig gesetzt. Der
ppp arbeitete ja ohne diese Option auch schon vorher. Ich wollte euch
das mit dem ppp nur mitteilen, damit ihr nicht unnötige Zeit verschwendet.

Freundlicher Gruß
 
Hallo,

ich habe Folgendes herausgefunden:
Kommentiere ich in meinem firewallscript (mywall) diese Zeile aus:
ipfw add 10 divert natd all from any to any via tun0

funktioniert ein ping z.b. an www.suse.de

Der Fehler ist also dort zu suchen.

Eine Eingabe von "ipfw add 10 divert natd all from any to any via tun0"
erhält folgende Ausgabe:
00010 divert 8668 ip from any to any via tun0

Ich suche nun selber nach einer Problemlösung, würd mich aber
sehr über einen eventuellen Tip freuen.

so long nichtskoenner
 
Danke für die Antworten
In meiner rc.conf steht: ppp_nat="NO"

Ja, der natd wird doch benötigt wenn mein Server
maskieren soll. In der natd.conf habe ich noch keine
rules, da ich das forwarding eventuell später für port 4662
brauche. Zum Routen brauche ich doch aber den natd, oder ?

Ich muß nun leider immer den Linuxrouter
herunterfahren und den BSDRouter hochfahren, aber
ich war der Meinung, dass natd unter den Prozessen
zu finden war.
Ich schaue gleich nach...Moment

nichtskoenner
 
Wenn Du natd nicht nutzt, warum dann die rule mit natd und warum steht dann in Deiner rc.conf das er natd laden soll incl. der Datei in der die natd rules stehen?
Schmeiss die erste rule weg, und kommentiert natd aus Deiner rc.conf aus.
 
Also wenn ich das richtig mitgelesen habe, dann ist das Problem, dass Du weder natd noch ppp_nat richtig am Laufen hast.
Wenn Du die divert Regel in Deinen Filterregeln aktiviert hast, dann geht kein Ping raus, weil die Pakete dann zwar an den natd zugestellt werden, der aber aufgrund fehlender Regeln in der natd.conf nichts damit anzufangen weiß.
Laut erstem Posting ist der Eintrag "ppp_nat="NO" in Deiner rc.conf übrigens auskommentiert!!!
Du solltest also checken, dass sich da nicht evtl. beide in die Quere kommen.
 
oops, der natd scheint nicht zu laufen, wenn
ich nach ps -aux|grep nat
gehen darf.

Dem Posting von asg entnehme ich, dass ich natd nicht brauche.
Wie soll den aber sonst mein Router funktionieren ? Irgendwie leide
ich jetzt an Begriffstutzigkeit. Was sollte ich denn in die natd.conf
eintragen, damit mein Rechner 192.168.0.2 über das Gateway(den BSDRechner)
surfen kann ?

aha, ich glaube ich habe grundlegende Konfigurationsarbeit des natd
überlesen. Wie sollte ich denn natd konfigurieren, damit mein Teufelchen
endlich routet ?
intern 192.168.0.2 hat als Gateway meinen BSDRechner eingetragen. Dazu
sollte auf dem BSDRechner doch natd laufen ? Was fehlt dem natd ? Oder
habe ich etwas total falsch verstanden ?

Gruß
 
Original geschrieben von Ice
Also wenn ich das richtig mitgelesen habe, dann ist das Problem, dass Du weder natd noch ppp_nat richtig am Laufen hast.
Wenn Du die divert Regel in Deinen Filterregeln aktiviert hast, dann geht kein Ping raus, weil die Pakete dann zwar an den natd zugestellt werden, der aber aufgrund fehlender Regeln in der natd.conf nichts damit anzufangen weiß.
Laut erstem Posting ist der Eintrag "ppp_nat="NO" in Deiner rc.conf übrigens auskommentiert!!!
Du solltest also checken, dass sich da nicht evtl. beide in die Quere kommen.

Sorry, ich hatte sämtliche Variationen getestet. Es funktionierte
jedenfalls weder mit noch ohne dem Eintrag. Lese mir jetzt
aber natd-howtos durch.

Euer BSD-Anfänger
 
Hmmm, nach genauem Lesen, muss ich mich korrigieren. Durch den -dynamic Eintrag sollte natd eigentlich auch mit leerem Config-File funzen.
Kann es sein, dass Dein natd bereits vor dem ppp-connect gestartet wird?
Wenn beim Start von natd kein tun0 Interface existiert, kann er ja auch nicht auf dessen IP-Adresse maskieren!
Versuch doch mal nach erfolgtem Connect den natd von Hand zu killen (falls er läuft) und neu zu starten.

Prüfe auch nochmal, dass in der ppp.conf nicht sowas wie "nat enable yes" steht!
 
Sorry, wenn ich Dich da durcheinander gebracht habe. Du brauchst die natd-config erst, wenn Du dann ports forwarden willst oder Ähnliches! Ansonsten reicht Angabe des Interfaces (tun0) und -dynamic völlig aus!

Somit müsste dann minimal in Deiner rc.conf stehen:

ppp_nat="NO"
natd_enable="YES"
natd_interface="tun0"
natd_flags="-dynamic"

Dann muss natürlich auch die divert Regel in Deinem Regelsatz stehen!
 
Vielen Dank Ice,

ich werde Deine Tips ausprobieren und die Manpage
zu natd durchlesen.

Vielen Dank für die Hilfe.
Falls es irgendwen interessiert: Ich werde den Fehler dann
hier posten.

Gruß
 
Hallo BSD-Gemeinde,

natd_enabled="YES"
oder
natd_enable="YES" :-)
~~~

Dann war es kein Wunder, dass der natd nicht arbeiten
wollte. Ich hatte die Prozesse vorher wohl gegrept, als die
Syntax i.O. war.
Im Übrigen darf (in meinem Fall) die natd.conf wirklich nicht
ohne Rules angegeben werden.

Ein "natd -dynamic -interface tun0" funktionierte auf Anhieb- und
nun auch durch die rc.conf.

Vielen Dank für all eure Mühe !

nichtskoenner nun mit BSD-Router :-))
 
Zurück
Oben