PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : iptables



uwer
03.09.02, 14:52
habe folgende ports freigegeben, die fuer teamspeak im i-net verwendung finden sollen:

## Port 8765 aus dem Internet freigeben
iptables -A INPUT -i $PPP -p tcp --dport 8765 -j ACCEPT

## Port 8766 aus dem Internet freigeben
iptables -A INPUT -i $PPP -p udp --dport 8766 -j ACCEPT

## wird durch geroutet aus dem netz !
iptables -A INPUT -i eth0 -s 192.168.1.0/24 -d 0.0.0.0/0 -j ACCEPT
iptables -A FORWARD -i eth0 -s 192.168.1.0/24 -d 0.0.0.0/0 -j ACCEPT

##hier sollen die port's noch mal akzeptiert werden (diese regeln habe ich schon ausgeklammert und wieder eingefuegt)
es funktioniert nicht !

iptables -A INPUT -i $PPP -p tcp --dport 8765 -j ACCEPT
iptables -A FORWARD -i $PPP -p tcp --dport 8765 -j ACCEPT

iptables -A INPUT -i $PPP -p udp --dport 8766 -j ACCEPT
iptables -A FORWARD -i $PPP -p udp --dport 8766 -j ACCEPT

nicht's geht : host refused connection
bis auf die fehlermeldung, die kommt mit sicherheit ! :mad:

dann habe das jetzt mal anders rum probiert ;)

da ja -s die ursprungsaddy ist und -d die zieladdy dachte ich mir halt mal so, da ja die ganze ka**e aus dem i-net kommt.

iptables -A INPUT -i eth0 -s 0.0.0.0/0 -d 192.168.1.0/24 -j ACCEPT
iptables -A FORWARD -i eth0 -s 0.0.0.0/0 -d 192.168.1.0/24 -j ACCEPT

denken bringt nichts habe ich gemerkt !:mad:

haette da vielleicht jemand ne idee :confused:

ps. hatte da schon einmal so ein aehnliches thema, wurde aber geloescht, warum weiss ich nicht :confused:

*NACHTRAG*

thema wurde gar nicht geloescht :D das problem lag wieder einmal zwischen stuhl und tastatur :D :mad:

Kung
03.09.02, 17:12
hi,

für ne Fehler- Analyse wäre es hilf reich wenn du Log-Files posten würdest!

du gibbst nur Pakete frei die von außen kommen??

zum freigeben der ausgehenden Pakete die Benötigt werden
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT


und um die restlichen Pakete zu loggen:
iptables -A INPUT -j LOG
iptables -A OUPUT -j LOG
iptables -A FORWARD -j LOG


cya

uwer
03.09.02, 18:32
...Kung :D

wird morgen gleich mal probiert, da die kiste im geschaeft steht. :D

dann gibt das auch die log files :D

uwer
04.09.02, 07:58
...jetzt bald nichts mehr !?

gestern hat er in den log files noch schoen geschrieben abgewiesenes paket und heute kommt nur noch das :

Sep 4 08:47:30 linuxrouter kernel: IN= OUT=eth0 SRC=192.168.1.250 DST=192.168.1.23 LEN=244 TOS=0x00 PREC=0x00 TTL=64 ID=10620 PROTO=TCP SPT=22 DPT=1177 WINDOW=5840 RES=0x00 ACK PSH URGP=0

oder

Sep 4 08:47:28 linuxrouter pppd[14666]: sent [LCP EchoReq id=0xeb magic=0x5bd1dc7]
Sep 4 08:47:28 linuxrouter pppd[14666]: rcvd [LCP EchoRep id=0xeb magic=0x1d3e1ea3]

das problem ist, dass die 1.23 meine addy ist und die 1.250 gehoert dem router und der rechner auf dem teamspeak laeuft erscheint erst gar nicht in den log files !:mad:

@ kung

diese zeile habe ich noch mit eingefuegt :

iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

aber daran hat es auch nicht gelegen :ugly:

uwer
04.09.02, 10:31
...sieht so aus

der router hat die 192.168.1.250
mein rechner hat die 192.168.1.23 hier wird der router ueber das proggi "putty.exe" administriert.
der rechner auf dem team speak laeuft hat die 192.168.1.26

erwuenscht ist, das rechner von aussen ueber den router auf teamspeak zugreifen koennen aber es funzt nicht und mit den log files kann ich NICHTS anfangen :ugly:

tomes
04.09.02, 10:33
nur mal folgendes probieren wenn du einen Clienten betreibst:
Pakete von innen freigeben --> nach aussen
iptables -A input -i eth0 -j ACCEPT
iptable -A forward -o $PPP -p tcp --dport 8765:8766 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
das selbe fuer udp
Dann den Input von aussen frei machen:
iptables -A INPUT -i $PPP -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i $PPP -m state --state NEW,INVALID -j REJECT

Du hast bei deinen Regeln nur dport und sport verwechselt.

## Port 8765 aus dem Internet freigeben
iptables -A INPUT -i $PPP -p tcp --dport 8765 -j ACCEPT
Wenn was aus dem Internet kommt ist es der Source Port == sport, wenn was rausgeht ist es der Destination Port == dport

T;o)Mes

P.S.: Wenn du einen Server betreibst, solltest du dich mal ein wenig intensiver mit DNAT und SNAT beschaeftigen.

uwer
04.09.02, 12:00
hier nochmal die einstellungen, da ich mir nicht ganz sicher bin ob ich dich richtig verstanden habe oder die einstellungen nicht stimmen. :confused:

## Alle Etablierten IP-Verbindungen erlauben.
iptables -A INPUT -i eth0 -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -i $PPP
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -i $PPP
iptables -A FORWARD -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT -i $PPP
iptables -A FORWARD -o $PPP -p udp --sport 8765:8766 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -o $PPP -p tcp --sport 8765:8766 -m state --state NEW,ESTABLISHED,RELATED -J ACCEPT
iptables -A INPUT -i $PPP -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -a INPUT -i $PPP -m state --state NEW,INVALID -j REJECT

## Port 8765 aus dem Internet freigeben
iptables -A INPUT -i $PPP -p tcp --sport 8765 -j ACCEPT

## Port 8766 aus dem Internet freigeben
iptables -A INPUT -i $PPP -p udp --sport 8766 -j ACCEPT

## LAN darf komplett auf das Internet zugreifen
iptables -A INPUT -i eth1 -s 192.168.1.0/24 -d 0.0.0.0/0 -j ACCEPT
iptables -A FORWARD -i eth1 -s 192.168.1.0/24 -d 0.0.0.0/0 -j ACCEPT

iptables -A INPUT -i $PPP -p tcp --sport 8765 -j ACCEPT
iptables -A OUTPUT -m $PPP -p tcp --sport 8765 -j ACCEPT
iptables -A FORWARD -i $PPP -p tcp --sport 8765 -j ACCEPT

iptables -A INPUT -i $PPP -p udp --sport 8766 -j ACCEPT
iptables -A OUTPUT -m $PPP -p udp --sport 8766 -j ACCEPT
iptables -A FORWARD -i $PPP -p udp --sport 8766 -j ACCEPT

DAU ALARM :ugly:

Los_Andros
04.09.02, 12:23
hi,
ich bin mir nicht ganz sicher,
aber das mit dem Routing funktioniert so nicht, ausser Du hast feste IP-Adressen von Deinem Provider. Falls Du keine festen IP's hast, muss Dein Router Deine IP('s) maskieren, also durch die IP ersetzen, die Dir dein Provider gegeben hat.

Verwende dafür Masquerading
es reicht einfach folgender Befehl

iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

damit wird alls von innen nach aussen geroutet

(kommentier aber besser nur aus und lösch Deine EInträge nicht, ich möchte nicht schuld sein, wenn etwas nicht mehr geht)

uwer
04.09.02, 12:38
@ los_andros

iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

sorry,
aber diese zeile steht schon drin, daran kann es also nicht liegen :D

tomes
04.09.02, 12:39
verwirrend.
1.

iptables -A OUTPUT -m $PPP -p tcp --sport 8765 -j ACCEPT
-m Interface ??? Verschrieben ???
-m Modul (limit,state)
2. um raus zu natten --> siehe Los_Andros
3. siehe dir mal die schoene Zeichnung von gerount an:
http://www.linuxinfoserver.de/forums/showthread.php?s=&threadid=43337&highlight=iptables
4. fuer das weiterleiten von Pakete aus dem Internet ins locale Netz sieh dir bitte folgendes mal an:
http://www.linuxia.de/lt-netfilter.en.html#nat
Vor allem suche mal im Forum nach PREROUTING alias DNAT.

Ordne mal dein Script --> 2. Zeile u. 7. Zeile z.B.

T;o)Mes

Los_Andros
04.09.02, 12:50
hm????????
ich sitz leider nicht zu Hause, sonst könnte ich mal meine Regeln anschaun, aber irgendwie kommt mir das mit dem Routing komisch vor, kann sein, dass ich mich irre.

wichtig:
echo 1 > /proc/sys/net/ipv4/ip_forward
nicht vergessen,

http://www.adsl4linux.de ---> gute Anleitungen für Router und Firewalls mit DSL

uwer
04.09.02, 13:42
erst einmal ein fettes THX :D

+ iptables -A FORWARD -i ppp0 -p tcp --sport 8765 -j ACCEPT
+ iptables -A INPUT -i ppp0 -p udp --sport 8766 -j ACCEPT
+ iptables -A OUTPUT -m ppp0 -p udp --sport 8766 -j ACCEPT
iptables v1.2.2: Couldn't load match `ppp0':/usr/lib/iptables/libipt_ppp0.so: cannot open shared object file: No such file or directory

was bedeutet eigentlich diese meldung :confused:, die taucht mehrmals auf :confused: (nach dem ich ./firewall ausgefuehrt habe)

und wo kommt diese zeile hin, ich meine die muss doch bestimmt an einer bestimmten stelle stehen :confused:
echo 1 > /proc/sys/net/ipv4/ip_forward, ok diese zeile steht auch drin in der firewall :D aber mit
echo 0 > /proc/sys/net/ipv4/ip_forward

*NACHTRAG*

was mir noch aufgefallen ist. nach dem ich ./firewall ausfuehre kommt dies meldung:
+ iptables -A INPUT -i eth0 -s -d 0.0.0.0/0 -j ACCEPT
Bad argument `0.0.0.0/0'

dokumentiere ich diese zeile aus (mit ##) funzt kein i-net nehme ich die ## wieder weg erscheint zwar die fehlermeldung wieder aber das i-net funktioniert (das versteh wer will, ich noch nicht :ugly: )

dann, den port 8765 & 8766 habe ich freigegeben
iptables -A INPUT -i $PPP -p tcp --dport 8765 -j ACCEPT
iptables -A INPUT -i $PPP -p tcp --dport 8766 -j ACCEPT

dokumentiere ich diese zeile aus (mit ##):
+ iptables -A INPUT -i eth0 -p udp -s 192.168.1.0/255.255.255.0 --sport 1024:65535 -d --dport 8766 -j ACCEPT
bringt er das (obwohl die ports aufgemacht wurden):
Bad argument `8765' & `8766'

tomes
04.09.02, 15:13
zu1. --> der ersten Fehlemeldung
Nicht boese sein, aber hast du mein Posting davor gelesen ???


m Interface ??? Verschrieben ???
-m Modul (limit,state)
lese bitte ersteinmal folgende Seite:
http://www.tu-chemnitz.de/linux/Dokumentation/redhat-7.2/RH-DOCS/de/rhl-rg-de-7.2/s1-iptables-options.html

2. Mit echo 0 > /proc/sys/net/ipv4/ip_forward schaltest du das forwarding aus
0 == aus
1 == ein in diesem Fall
Zum Masquerading gehoert auch ein
echo "1" > /proc/sys/net/ipv4/ip_dynaddr
wenn du vom Provider eine dynamische IP bekommst.

3. Hast du dir mal die Links angeschaut die ich vorhin gennant habe ???
Die INPUT Regel ist nur fuer deinen Router/Firewall, deshalb sollte an dieser Stelle wenn schon, dann soetwas stehen:
iptables -A INPUT -i eth0 -s dein Netz -d IP deines Routers -j ACCEPT
oder gar keine -d Regel.

T;o)Mes

P.S.:
Zu deinem Nachtrag, siehe dir den obigen Link an und lese es.
Nach einem -d muss eine IP/Netz kommen und nicht einfach --dport

uwer
04.09.02, 20:14
thx, dass du mir die augen geoeffnet hast :D

muss anscheinend blind gewesen sein, sehe vor lauter wald die baeume nicht :eek:

so geht's mir nach 16 std. ( nicht durchgehend) firewall. na ja jetzt gehts schon wieder nach ner pause, bin schon wieder mittendrin :D

uwer
05.09.02, 14:34
habe jetzt mal noch die *.99.1 mit eingetragen

## Alle Etablierten IP-Verbindungen erlauben
iptables -A INPUT -i eth1 -s 192.168.99.1/32 -d 192.168.1.250/32 -j ACCEPT
iptables -A FORWARD -i eth1 -s 192.168.99.1/32 -d 192.168.1.250/32 -j ACCEPT

da ja die pakete auf diese ip auflaufen (vom modem)
das wird mir vom iptraffic monitor auch angezeigt das da jetzt was ankommt !

jetzt will ich die paket von *.250 auf die *.26 weitergeben
wenn ich jetzt aber diese zeilen noch mit einfuege (vielleicht ist da ein denkfehler) funzt das nicht !

iptables -A INPUT -i eth0 -s 192.168.1.250/32 -d 192.168.1.26/32 -j ACCEPT
iptables -A FORWARD -i eth0 -s 192.168.1.250/32 -d 192.168.1.26/32 -j ACCEPT

jetzt kommt zumindestens mal was an :D das freut mich und ich sehe endlich mal licht am ende des tunels :D jetzt muss das nur noch durch kommen aufs netz

@ tomes

habe mir die links mal angeschaut und natuerlich auch gelesen aber das sind zum teil noch boehmische doerfer, da hier (damit meine ich die firma hier) keiner ist der einem was erklaeren kann und rom wurde auch nicht an einem tag gebaut :D deshalb bin ich froh das es dieses forum gibt wo es profis gibt die sich mit dau's wir mir rumschlagen :D

tomes
05.09.02, 15:48
sollte in der Art so aussehen:
iptables -t nat -A PREROUTING -p tcp -i eth0 -j DNAT --to-destination 192.168.1.26:Port auf xx.1.26
oder so
iptables -t nat -A PREROUTING -p tcp --dport Port auf xx.1.26-i eth0 -j DNAT --to-destination 192.168.1.26

und nennt sich Portforwarding.
Was du da versuchst ist ein
(vielleicht ist da ein denkfehler)

Fuer Portforwarding gibt es im Forum schon eine Menge Beitraege. Du kannst dir auch die Regeln von anderen Server anschauen, meist sind bei den Beispiel-Regeln dann nur noch Port und IP zu aendern ;-)

T;o)Mes

P.S.: lesen bildet, richtig lesen bildet richtig ;)
Hier noch ein gutes Einsteiger Beispiel:
http://stud.fh-wedel.de/~ia3419/beispiel.html

uwer
05.09.02, 21:59
... is ja der hit :eek:


Original geschrieben von tomes
und nennt sich Portforwarding.

wieder was dazu gelernt :D

thx, da durchforste ich morgen mal das board, ma gugn was es da so alles gibt :D

uwer
06.09.02, 12:25
habs jetzt probiert mit :

iptables -A PREROUTING -t nat -p tcp --dport 8765 -j DNAT --to 192.168.1.26:8765
iptables -A PREROUTING -t nat -p udp --dport 8766 -j DNAT --to 192.168.1.26:8766

aber es passiert nichts ! :confused:

bin ich zu bleed oder was :ugly: :confused:

in meiner verzweiflung habe ich auch das probiert :

iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 8765:8766 -j DNAT --to 192.168.1.26:8765
iptables -t nat -A PREROUTING -i ppp0 -p udp --dport 8765:8766 -j DNAT --to 192.168.1.26:8766

und

iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 8765:8766 -j DNAT --to 192.168.1.26:8765
iptables -t nat -A PREROUTING -i eth1 -p udp --dport 8765:8766 -j DNAT --to 192.168.1.26:8766

ich nehme alles zurueck, thx tomes

es funzt doch mit :

iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 8765:8766 -j DNAT --to 192.168.1.26:8765
iptables -t nat -A PREROUTING -i ppp0 -p udp --dport 8765:8766 -j DNAT --to 192.168.1.26:8766

gruss,
uwe

tomes
06.09.02, 13:20
Was lange waehrt ....

Jetzt kannst du anderen helfen wenn sie mit solchen *prob* kommen :D

T;o)Mes