Packete forwarden

MosesD18

Member
Hallo!

Ein Webserver mit Port 700 auf einem Client im LAN, OpenBSD 3.0 mit pf-firewall (NAT). Was nun?

Ich habe bereits vieles versucht, viel gestöbert und gelesen, viel selbst ausprobiert,... aber ich krieg's nicht hin!

Bei der 3.0er-Version habe ich noch 2 Dateien:
/etc/nat.conf
/etc/pf.conf

Die Firewall so läuft perfekt. Nur...
In meiner pf.conf:
pass in on $Ext proto tcp from any to any port 700 keep state
pass out on $Ext proto tcp from any to any port 700 keep state

in meiner nat.conf
rdr on $Ext proto tcp from any to any port 700 -> 192.168.0.2 port 700
rdr on $Ext proto tcp from 192.168.0.2 to any port 700 -> $Ext port 700

Aber das funzt nicht. Hat da einer Ahnung von???

::THX!!
==> MosesD18
 
Ich habe die Variable tun0, die die aktuelle IP (vom Provider) enthält. DialUp: ich habe das pppoe -i <EXTERNE NETZWERKKARTE>, läuft über ppp.

Danke für Reply!

MosesD18
 
Originally posted by MosesD18
Die Firewall so läuft perfekt. Nur...
In meiner pf.conf:
pass in on $Ext proto tcp from any to any port 700 keep state
pass out on $Ext proto tcp from any to any port 700 keep state

in meiner nat.conf
rdr on $Ext proto tcp from any to any port 700 -> 192.168.0.2 port 700
rdr on $Ext proto tcp from 192.168.0.2 to any port 700 -> $Ext port 700

Probier mal in die nat.conf folgende rules zu packen:
Code:
rdr on tun0 proto tcp from any to (tun0) port 700 -> 192.168.0.2 port 700
nat on tun0 from 192.168.0.0/24 to any -> tun0
Desweiteren noch in deine pf.conf folgende Regel:
Code:
pass in on tun0 inet proto tcp from any to 192.168.0.2 port 700 keep state

Gruß
 
tach ...

Wenn ich dich richtig verstehe möchtest du gerne deinen webserver online erreichbar haben?

Also Standard maessigläuft HTTPD auf port 80.
Folglich werden alle Standard Requests auf 80 geschickt. Es sei denn man kann seinem Browser was anderes verklickern. z.b. 700

... daraus folgt, jemand der mit nem Standard Browser auf deinen Router einen http request macht möchte gerne port 80 und nicht 700 erreichen.

folglich muesste dein redirect etwa so aussehen:

rdr on $Ext proto tcp from any to tun0 port 80 -> 192.168.0.2 port 700


Ich würde dir übrigens stark empfehlen auf 3.2 (bzw. bald 3.3) upzudaten. Der Grund ist einach das die nat.conf und pf.conf zusammengelegt wurden, was das insgesamte Verständniss docht vereinfacht. Bei mir wars jedenfalls so.
Dann würde nämlich auch klar werden, das man bei einem redirect kein pass ruleset für diese paktete anlegen muss.

(Hoffe ich erzähle auch keinen Scheiss hier, aber soweit ich weis, ist das so. Wenn das nicht so ist und ich mich irre, bitte laut schreien.)


keine Garantien für obiges redirect, aber so aus der kalten Hose würde ich sagen auf nem 3.2 OBSD erreicht der was du brauchst.


p.s.: Warum überhaupt 700 ??
 
RDR=>OK, Frage zu Update auf 3.2

Hey oversize!

Gestern habe ich's endlich hinbekommen. Meine redirectings waren syntax-mäßig immer richtig gewesen, aber es hatte trotzdem nie funktioniert! Das lag daran, dass ich eine sehr "stealth" Firewall habe, die einige Sachen unnötigt geblockt hat! Aber jetzt geht's endlich! (Port 700 und Webserver habe ich nur zum Redirect-Test benutzt!)

Aber jetzt noch eine Frage zu Deiner Empfehlung auf 3.2...
Gerne würde ich ja updaten, aber ich habe keine Ahnung, wie man das macht und ich habe Angst, dass meine Einstellungen von Programmen (wie SAMBA, Firewall, Webmin,...) bei einem Update verloren gehen!

Kannst Du mir sagen, wie man das schrittweise macht???

;) THX!!!

MosesD18
 
hm ...
ok, erstmal Jesus saves ... will sagen, mach ein Backup aller Daten die du auf keinen Fall verlieren willst. Zur Sicherheit.
(z.b. Conf Files)
dann hohlst du dir sourcen und ports am besten über cvs.
cvsup kann ich dir nicht erklären weil ichs net benutze.

Ausserdem übernehme ich keine Verantwortung. :)
Wenn ich Fehler einbaue (und jemand erkennt diese), bitte laut schreien. Danke.

zu 3.2-STABLE:

Erstmal brauchst du nen CVS Server
ne Liste vorhandener CVS Server findest du auf: http://www.openbsd.org/anoncvs.html
Da gibts übrigens auch alles was ich hier poste nochma zum
nachlesen.

Dann brauchst du erstmal die Sourcen bzw. die Ports (Überspring das wenn du diese schon hast.

sourcen:
# cd /usr
# cvs -d $CVSROOT -q get -rOPENBSD_3_2 -P src

ports:
# cd /usr
# cvs -d $CVSROOT -q get -rOPENBSD_3_2 -P ports

Wenn du die Sourcen bzw. die Ports schon hast einfach updaten mittels:

sourcen:
# cd /usr/src
# cvs -d $CVSROOT -q up -rOPENBSD_3_2 -Pd

ports:
# cd /usr
# cvs -d $CVSROOT -q up -rOPENBSD_3_2 ports


Sooooo
Dann solltest unter /usr/src die kompletten Sourcen zu _3_2-STABLE haben bzw. unter /usr/ports die dazugehörigen Ports.
Es ist wichtig das du sourcen und ports "im einklang" hast. Also nicht versuchts den Portstree einer Version, auf dem System einer anderen Version (System 3.1 Ports 3.2 z.b. ...) laufen zu lassen. Es könnte dann unter Umständen zu merkwürdigen Fehlern kommen.

nun kannst dir deinen neuen Kernel (3.2-STABLE) "backen".
Eine GENERIC Kernel Configuration File ist immer dabei. Ich würde also bevor du etwas rumprobierst erstmal diesen Kernel bauen.
dazu:

# cd /usr/src/sys/arch/i386/conf
# vi GENERIC
# config GENERIC

das mit vi GENERIC habe ich nur eingebaut damit du fürs "Kernel konfiguren" weist wo du das tust, nämlich hier (in dieser File).
Du könntest dir (um den GENERIC Kernel zu behalten) auch einfach ne copy machen.

# cp GENERIC MYCUSTOMKERNEL

ok .. scheiss name, aber so iss vielleicht klarer ...
bei config müsstest du eben die Datei MYCUSTOMKERNEL nehmen damit du den geänderten (getunten) Kernel konfigurierst.

dann (nach config)

# cd ../compile/GENERIC
# make depend
# make

wobei GENERIC hier ein Verzeichniss ist und so heist, wie die
Datei die du config "übergeben" hast. Bei MYCUSTOMKERNEL eben dann

# cd ../compile/MYCUSTOMKERNEL
# make depend
# make

dann wird er erstmal ne weile rennen ... je nach CPU und System...


wenn alles gut läuft, also keine Fehler da stehen sondern du nach ner weile wieder an der console landest, kannst den vorhanden Kernel durch den eben neu gebauten erstezen undzwar so:
erstmal den vorhandenen kernel sichern:

# cp /bsd /bsd.old

dann den neuen "installileren"

# cp /usr/src/sys/arch/i386/compile/GENERIC/bsd /bsd

nun einmal booten und im besten Fall freuen ... :)
Du kannst checken obs geklappt hat, wenn du nach dem anmelden die MOTD genau durchliest. Da sollte (ganz oben) dann etwa folgendes Stehen:
OpenBSD 3.2-STABLE (build on $heute)
oder so ...

falls der Kernel nicht bootet, kannst du beim bootprompt einfach den alten kernel starten durch:

boot> bsd.old


den alten Kernel wiederherstellen (das er automatisch gebootet wird) würdest du durch erstezen des neuen Kernels durch den alten erreichen.

# rm /bsd
# mv /bsd.old /bsd


So hoffe das war einigermassgen verständlich, und nicht allzu viele Fehler eingebaut.
Wie schonmal gesagt, wenn ich mich irre, bitte mir sagen, ich lerne immer gerne dazu ... :) und möchte keinem was falsches sagen.

das ganze steht übrigens auch im FAQ unter:
http://www.openbsd.org/faq/


so long
have fun :)
 
sry, was vergessen:

$CVSROOT
ist logischerweise einer der CVS Server aus der obigen Liste.

falls du Änderungen in der rc.conf gemacht hast, werden diese, meine ich, verloren gehen. Es sei denn du hast alle deine rc.conf Änderungen in rc.conf.local eingetragen.

rc.conf.local wird nicht ersetzt.


Wie das mit den anderen conf files (samba, ftp etc.) ist kann ich dir leider nicht sagen, weil ich es nicht weiss. Aber du hast ja deine conffiles vorher gesichert ;)
 
ich hab nochma was ziemlich wichtiges vergessen, was mir auch erst heute nacht richtig klar wurde.
Nach obigem Teil hast du nur den Kernel gebaut.
Danach musst du noch das System selbst neu bauen.
dazu
# cd /usr/src
# make build

dieser Vorgang hat bei mir fast 3 Stunden gedauert.
ok, nun haste du das System auch gebaut, aber noch die alten conf files.
am besten ist es hier nun mergemaster zu verwenden. (fand ich jedenfalls)

/usr/ports/sysutils/mergemaster

also am besten vor dem ganz Gulasch hier schonmal installen ;)
das hatte ich nicht gemacht, und war etwas verwirrt.
Mergemaster erzeugt die neuen Sys conf files (zb.b rc.conf)
Und legt diese dann ab unter /var/tmp/tmproot
danach vergleicht es die neuen files mit den alten und fragt jeweils was es machen soll, mergen / deleten oder installen

hierzu einfach ma man mergemaster lesen :)

Falls das alles hier nu zu verpeilt ist,
kann ich dir nur das upgrade mini FAQ empfehlen.
http://www.openbsd.org/faq/upgrade-minifaq.html
 
Zurück
Oben