Bekijk de volledige versie : SSh, ftp und andere Ports an Router weiterleiten
Hallo!
Eins mal vorweg, ich habe diesen Router seit einer Woche und hatte schon x-wrt, dd-wrt und nun openoleg drauf und ich muss sagen, ich bin mit oleg´s Firmware am zufriedensten!
dd-wrt finde ich zwar am schönsten und dort sieht man auch ALLE Geräte welche am Router hängen (fehlt mir leider sonst überall oder ich sehs nicht).
Die HOWTO´s sind auch einfach Top und haben mir schon sehr weit geholfen!
Jedenfalls, habe ich zu dem ssh weiterleiten nix gefunden, bzw das was ich gefunden habe, funktioniert nicht!
Ich will vom Internet (firma) per ssh (putty) auf meinen router connecten um Programme zu starten, etc..
Desweiteren will ich ftp auch von außen zugreifen.
Ich habe Port 22 und Port 21 in der Nat Konfiguration aufn Router (192.168.0.1) weitergeleitet, aber das zeigt keine Auswirkung!
Leite ich zB Port 23 auf die dbox weiter, komme ich dort hin.
Achja und seitdem ich den User auf root wieder umbenannt hatte (wegen nfs) geht der standard ftp nicht mehr!
Proftp geht auch nicht mehr! Wenn ich den starte (also proftpd ausführe) kommt nix! In der Prozessliste taucht auch nix auf und per ftp komm ich nicht mehr hin..
Jedenfalls würde ich dann noch ein Programm auf dem router lassen was auf Port 11280 läuft und das von außen auch zugreifbar machen!
Also wie/was muss ich einstellen damit ich direkt auf den Router von außen zugreifen kann?
PS.: In der GUI habe ich schon weitergeleitet und den Thread mit dem SSH Tunnel habe ich auch durch..
PPS.: Kann sich einer erklären warum mein ftp nicht mehr funktioniert? (Habe samba2 installiert und dadurch ja xinet installiert, kann das mit dem was zum tun haben?)
Nachtrag: Also habe mir jetzt eine eigene stupid-ftpd.conf erstellt (da im /tmp nie eine da ist) und den stupid-ftpd in post-boot eingetragen! Zumindest der ftp Server läuft wieder, aber wie kann ich nun von außen drauf zugreifen?
Das hier funktioniert: http://wl500g.info/showpost.php?p=61764&postcount=4
Wenn nicht: Stimmt die IP des Routers? Erlaubt die Firma ausgehende Verbindungen auf Port22? Irgend etwas blockiert da noch!
wengi
Naja, so sieht meine konfig aus!
Ich habe ja alles nach den Anleitungen gemacht, aber es will nicht klappen! Habe die Ports ja brav hinzugefügt!
DNAT tcp -- anywhere anywhere tcp dpt:XXX23 to:192.168.0.45:23
NAT tcp -- anywhere anywhere tcp dpt:XXX22 to:192.168.0.1:22
DNAT tcp -- anywhere anywhere tcp dpt:ssh to:192.168.0.1:22
DNAT tcp -- anywhere anywhere tcp dpt:8029 to:192.168.0.1:80
Also wenn ich iptables -L -t nat sage!
Das Port weiterleiten auf die dbox (.45) klappt wunderbar! Und ssh funktioniert weder über port XXX22 noch über port 22 alleine! Auf die dbox komme ich, also sind die Ports in der Firma nicht generell gesperrt!
Desweiteren kommen meine Freunde (die daheim sind und nicht in einer Firma) via putty auch nicht drauf!
Das weiterleiten vom Port 8029 auf 80 für das WebInterface klappt aber!!
Und der ftp (stupid-ftpd) kann von außen auch zugegriffen werden, obwohl ich nie was weiterleite für Port 21...
Nachtrag: Dort steht ja bei protokoll leer lassen! Das geht aber nicht, es gibt BOTH, TCP, UDP, OTHER aber kein leeres Feld!
So, habe die Lösung gefunden ;)
Wie schon in dem Thread hier: http://wl500g.info/showthread.php?t=7314
Wird ein iptables -D INPUT -j DROP gemacht!
Dieses löscht einem die komplette DROP Regel weg (also das automatische verwerfen von Paketen).
Danach kam ich auf die gewünschten Ports hin! Da ich aber den Router net offen stehen lassen wollte, habe ich im /usr/local/sbin/post-boot noch das hier eingetragen (ok, es hätte eigentlich in post-firewall gehört, aber die Datei habe ich noch nicht ;) - außerdem geht dann der Tab nicht mehr so gut, weil 2 post Dateien im Verzeichnis sind, aber das ist ne andere Geschichte).
# Adding to iptables - cause of routing table, just port www/ftp is routed to asus router
# removing to drop any paket
iptables -D INPUT -j DROP
# Adding all tcp ports open for asus - should not be used because of security pr
# iptables -A INPUT -j ACCEPT --destination asus
# Adding custom ports to open for asus
# telnet access via port 23
# iptables -A INPUT -j ACCEPT -p tcp --dport 23 --destination asus
# ssh access via port 22
iptables -A INPUT -j ACCEPT -p tcp --dport 22 --destination asus
# MirtaLoader access via port XXX80
iptables -A INPUT -j ACCEPT -p tcp --dport XXX80 --destination asus
# Adding again to block any paket which is not in rule
iptables -A INPUT -j DROP
Also mein Router heißt "asus".
Zuert löscht man die allg. Drop Regel raus
Jetzt könnte man eine allg. ACCEPT Regel für den Router machen.
Das wäre dies hier: iptables -A INPUT -j ACCEPT --destination asus
Da ich aber net auf alle Ports lauschen will, trage ich nur die ein, die ich brauche!
Das sind der ssh port und der telnet Port. Diese wiederrum lauschen natürlich nicht am Standardport.
Aber das ist hier egal. Man gibt einfach die Ports in die Regel, in der die endgültigen Programme laufen(nachher sieht man das ich von XXX24 auf Port 23 leite - man muss aber nur Port 23 freigeben)!!
Jetzt wieder die allg. block Regel eintragen, damit man nicht belästigt wird ;)
Natürlich muss man in der GUI noch die Ports weiterleiten, welche man per iptables -L -t nat dann sieht!
DNAT tcp -- anywhere anywhere tcp dpt:XXX80 to:192.168.0.1:XXX80
DNAT tcp -- anywhere anywhere tcp dpt:XXX24 to:192.168.0.1:23
DNAT tcp -- anywhere anywhere tcp dpt:XXX22 to:192.168.0.1:22
Anscheinend ist das nur bei Verbindungen direkt aufn Router! Da meine Weiterleitungen (VNC, Telnet auf die dbox, ftp auf die dbox, cs mit dbox) geklappt hatte!
Nachtrag: Wichtig ist das bei --destination asus euer Router steht.
Denn wenn ihr nix angebt, dann ist das offen nach außen mit dem Port! Deswegen hat bei mir auch immer der ftp geklappt, da die Regel so aussieht:
ACCEPT tcp -- anywhere asus tcp dpt:www
ACCEPT tcp -- anywhere anywhere tcp dpt:ftp
Dh, auf den Port 80 (www) kann nur der Router zugreifen. Ich habe im WebInterface eingestellt, das auf Port 8029 gehen soll! Der Router leitet port 8029 brav auf Port 80 um und laut der Regel darf er dann auf Port 80 zugreifen! Würde hier statt asus, anywhere stehen, wäre es nach außen offen!
Beim FTP ist hier ein anywhere! Dadurch kann man auf ftp auch immer zugreifen!!! (also ftp IP ging ja immer)
Wenn man sich mit dem iptables beschäftigt, wird einem so einiges klar ;)
Zum testen könntet ihr das hier machen (ACHTUNG!! DAS IST NUR ZUM TESTEN UND VERSTEHEN!!! NICHT UNBEDINGT NACHMACHEN!!)
Zuerst mit iptables -L schauen was gesperrt, etc ist (sind die ersten paar Zeilen - man muss halt Hostnamen, Ports, etc anpassen..)
iptables -D INPUT -j DROP
iptables -D INPUT -j ACCEPT -p tcp --dport 80 --destination asus #löschen des Eintrages 80 für den Host asus
iptables -A INPUT -j ACCEPT -p tcp --dport 80 # allg hinzufügen, so steht nachher anywhere
iptables -D INPUT -j ACCEPT -p tcp --dport 21 # löschen des allg. Ftp Zugangs
iptables -A INPUT -j ACCEPT -p tcp --dport 21 --destination asus# nur noch interner FTP Zugang
iptables -A INPUT -j DROP
So, jetzt solltet ihr auch auf das Webinterface mit Port 80 kommen (man sieht nur nen Unterschied wenn der WebZugang nicht auf Port 80 war)
Und ftp geht jetzt nur noch im internen Netzwerk!
Man sollte diese Regeländerung vielleicht in das SSH Tunnel Howto aufnehmen! (also das adden der Regel für den ssh zugang)
Nachtrag2: Das steht ja sogar so in der englischen HowTO nur sind die Parameter verdreht.. Naja, hatte ich woll nen Abschreibfehler oder sonstwas, da es mit der Anleitung nicht so richtig wollte...
Aber wenigstens isses jetzt auf Deutsch erklärt :D
newbiefan
03-09-2007, 20:30
Finde ich echt gut....;)
ich denke, das Löschen am Amfang
iptables -D INPUT -j DROP
und das wieder Hinzufügen am Ende
iptables -A INPUT -j DROP
ist nicht notwendig.
Hauptsache die allgemeine DROP Regel bleibt erhalten
Doch genau das ist das wichtigste!
Den die Regeln werden von oben nach unten abgearbeitet! Und wenn du jetzt schon eine allg. Drop Regel hast, die alles verwirft und nachher das erlaubst, kommt der dort nie hin!
Doch genau das ist das wichtigste!
Den die Regeln werden von oben nach unten abgearbeitet! Und wenn du jetzt schon eine allg. Drop Regel hast, die alles verwirft und nachher das erlaubst, kommt der dort nie hin!
dann probiers mal mit -I (insert) statt -A (append) ;)
iptables -D INPUT -j ACCEPT -p tcp --dport 80 --destination asus #löschen des Eintrages 80 für den Host asus
iptables -I INPUT -j ACCEPT -p tcp --dport 80 # allg hinzufügen, so steht nachher anywhere
iptables -D INPUT -j ACCEPT -p tcp --dport 21 # löschen des allg. Ftp Zugangs
iptables -I INPUT -j ACCEPT -p tcp --dport 21 --destination asus# nur noch interner FTP Zugang
bei mir funktioniert das
Naja, das ist ja klar ;)
Weil -I einfügt und -A hinten dazuhängt! Ich wusste halt net das es -I auch gibt :P Aber so würds auch gehen, hast recht ^^