Avatar billede super_g Nybegynder
22. juni 2008 - 21:48 Der er 4 kommentarer og
1 løsning

Iptables: Hvordan omdirigerer jeg til en lokal SSH tunnel?

Jeg har en router jeg har installeret linux på.
Jeg bruger bl.a. routeren til at lave SSH tunneller.
Jeg har fået lavet en SSH-tunnel til routeren fra en ekstern maskine. Denne tunnel er af remote typen og der er oprettet en tunnel som modtager forbindelser på 127.0.0.1:1234 på routeren.
Problemet er at jeg ønsker at forbinde til denne SSH-tunnel direkte via TCP/IP fra de maskiner der er forbundet til routeren.
Jeg har ikke kunne få dette til at virke ved at markere "Accept server-side port forwardings" i min SSH-klient til windows.

Jeg går ud fra at man kan løse dette problem ved hjælp af iptables, men ved bare ikke lige præcis hvad kommandoen hedder og det er her jeg ønsker hjælp.
Jeg ønsker at kunne connecte fra lan-siden af routeren med TCP/IP til 10.0.0.1:8080 (som er routerens ip). Denne connection skal så forbinde til 127.0.0.1:1234 på routeren og forhåbelig forsætte ud af en eksisterende SSH-tunnel og ud til hvor den nu er beregnet.

Hvilken iptables linie skal jeg skrive i min /etc/firewall.user for at få dette til at virke?

Her er et dump af min nuværende konfiguration:
root@Router:/etc/init.d# iptables -L
Chain INPUT (policy DROP)
target    prot opt source              destination
DROP      all  --  anywhere            anywhere            state INVALID
ACCEPT    all  --  anywhere            anywhere            state RELATED,ESTABLISHED
DROP      tcp  --  anywhere            anywhere            tcp option=!2 flags:SYN/SYN
input_rule  all  --  anywhere            anywhere
input_wan  all  --  anywhere            anywhere
LAN_ACCEPT  all  --  anywhere            anywhere
ACCEPT    icmp --  anywhere            anywhere
ACCEPT    gre  --  anywhere            anywhere
REJECT    tcp  --  anywhere            anywhere            reject-with tcp-reset
REJECT    all  --  anywhere            anywhere            reject-with icmp-port-unreachable

Chain FORWARD (policy DROP)
target    prot opt source              destination
DROP      all  --  anywhere            anywhere            state INVALID
TCPMSS    tcp  --  anywhere            anywhere            tcp flags:SYN,RST/SYN TCPMSS clamp to PMTU
ACCEPT    all  --  anywhere            anywhere            state RELATED,ESTABLISHED
forwarding_rule  all  --  anywhere            anywhere
forwarding_wan  all  --  anywhere            anywhere
ACCEPT    all  --  anywhere            anywhere
ACCEPT    all  --  anywhere            anywhere

Chain OUTPUT (policy DROP)
target    prot opt source              destination
DROP      all  --  anywhere            anywhere            state INVALID
ACCEPT    all  --  anywhere            anywhere            state RELATED,ESTABLISHED
output_rule  all  --  anywhere            anywhere
ACCEPT    all  --  anywhere            anywhere
REJECT    tcp  --  anywhere            anywhere            reject-with tcp-reset
REJECT    all  --  anywhere            anywhere            reject-with icmp-port-unreachable

Chain LAN_ACCEPT (1 references)
target    prot opt source              destination
RETURN    all  --  anywhere            anywhere
ACCEPT    all  --  anywhere            anywhere

Chain forwarding_rule (1 references)
target    prot opt source              destination

Chain forwarding_wan (1 references)
target    prot opt source              destination

Chain input_rule (1 references)
target    prot opt source              destination

Chain input_wan (1 references)
target    prot opt source              destination
ACCEPT    tcp  --  anywhere            anywhere            tcp dpt:22

Chain output_rule (1 references)
target    prot opt source              destination
Avatar billede langbein Nybegynder
23. juni 2008 - 16:55 #1
Med mindre jeg misforstår spørsmålet så behøver man ikke å gjøre noe annet med iptables enn å åpne for den porten som ssh serveren kjører med.

Man kan da umidelbart accesse prosesser inne på serveren og inne på for eksempel lan via tunellen.

Det er også mulig i noen grad å accesse targets ute på internett via tunnellen, men det er noen servere for eksempel "senser" at det er en indirekte forbindelse via en ssh tunell og som derfor ikke vil akseptere requesten. Hvorfor det er slik det vet jeg ikke. Har bare observert at det skjer. Tunneller inn til lan og inn på de lokale prosessene inne på gatewayen eller tunnellesn endepunkt pleier alltid å fungere.

Mulig jeg ikke har forstått spørsmålet 100 % men har i alle fall aldri vært ute for å måtte bruke iptables i en slik sammenheng. Mener der i mot å huske at jeg en gang forsøkte å bruke iptables i en slik sammenheng og at det ikke fungerte.
Avatar billede lassebm Nybegynder
23. juni 2008 - 18:12 #2
Hvis du har oprettet tunnelen ville jeg mene du skal tillade forward trafik på routeren fra LAN'et.
Avatar billede langbein Nybegynder
25. juni 2008 - 13:23 #3
Nei. Hvis linux boksen kjorer som router, saa vil pakker via tunnelen (som er teminert paa linux routeren) bare kjore gjennom input og output chain. (Med mindre man har opprettet noen egne custom chains og kjort trafikken gjennom disse.) Ved normal maate aa kjoere tunnelling med roteren som termineringspunkt saa vil trafikken ikke kjoere gjennom forward chain.
Avatar billede super_g Nybegynder
08. juli 2008 - 20:30 #4
Der er åbnet for alle porte fra LAN-siden ind på routeren, men jeg kan stadig ikke connecte til SSH-tunnellen.
Avatar billede super_g Nybegynder
19. november 2010 - 09:26 #5
Lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester