Wkuno

Hvordan tunnel gjennom en brannmur

Noen ganger er det praktisk å kunne koble til maskinen hjemme fra jobb, eller muligens fra en internettkafé fra en avsidesliggende del av verden. I gamle dager, kanskje du har satt opp modemet til å svare etter den 10. ringen, og koble deg på 300bps til datamaskinen, i dag, med DSL og bredbånd høyhastighets-tilkoblinger, du høyst sannsynlig ha en brannmur som hindrer enhver form for inngående tilgang til. Jada, kan du deaktivere eller "hull i" brannmuren, men hvis du har tilgang til en "server" allerede er koblet til Internett, her er en alternativ metode som er mer sikker.

Trinn

Hvordan tunnel gjennom en brannmur. På gnu / linux eller Macintosh-maskin, legge til følgende linje i slutten av / etc / inittab.
Hvordan tunnel gjennom en brannmur. På gnu / linux eller Macintosh-maskin, legge til følgende linje i slutten av / etc / inittab.
  1. 1
    På gnu / linux eller Macintosh-maskin, legge til følgende linje i slutten av / etc / inittab:
    tunl: 345: respawn:/ usr / bin / ssh-n-N-T-R 6789: localhost: 22 me@my.remote.server
    Erstatt "meg" med ditt brukernavn på den eksterne serveren, og 'my.remote.server "med den faktiske vertsnavn eller IP-adressen til serveren. Hvis du har Windows, kan du se Tips for forslag.
    Du må først har etablert denne sammenheng "for hånd", sette opp felles nøkkel-autentisering, for at det skal fungere uten tilsyn, hvis du ikke kan skrive den samme linjen som begynner med '/ usr / bin / ssh' ved roten kommandolinjen og koble den har du til den eksterne serveren uten ytterligere innspill, vil dette ikke fungere.
  2. 2
    Start init prosessen for å aktivere linjen du nettopp la til:
    # Init q
  3. 3
    Fra jobben, eller fra en ekstern Internett-sted, prøv å koble til datamaskinen via ssh. Det er en to-trinns prosess:
    $ Ssh me@my.remote.server
    Deretter, når du er koblet:
    $ Ssh-p 6789 hjem @ localhost
    Erstatt "hjem" i dette eksemplet med ditt brukernavn på datamaskinen.

Tips

  • Forstå inittab oppføring:
    • init er den primære UserMode oppgave på et Unix-system, og inittab er konfigurasjonsfilen som forteller den hva den skal gjøre.
    • tunl er bare et navn, en forkortelse for "tunnel", som viser hva denne prosessen er. Det må være unikt i inittab. Hvis tunnelen ikke fungerer, kan du prøve å forkorte dette til to bokstaver, eller, i tilfelle av OpenWRT, bli kvitt det helt.
    • 345 de køyrenivå hvor denne prosessen bør være aktiv, nettverk må være satt på i alle fall, så driftsnivå 3 (muligens to) bør være tilstrekkelig for tunnelen skal etableres. I tilfelle av brukeOpenWRT, bør dette utelatt
    • respawn hvis ssh tunnel pauser for uansett grunn (routing problemer, server ned) som du vil den skal reetablere seg automatisk; "respawn" forteller det å fortsette å prøve
  • Hvis datamaskinen kjører Windows i stedet for et Unix smak, installere en billig router som kan kjøre OpenWRT, DD-WRT, eller en annen lignende GNU / Linux-varianten, plugge den inn i systemet mellom DSL-eller kabelmodem og datamaskinen (e). Denne metoden har en fordel også for Linux eller Mac-maskiner, som disse ruterne er svært energieffektiv: du kan la dem på mens du er borte, forlater maskinen av og deretter starte datamaskinen on-demand bruke WOL (wake-on -lan). Den inittab oppføring for brukeOpenWRT vil typisk være
    :: Respawn:/ usr / bin / ssh-n-N-T-R 6789: localhost: 22 me@my.remote.server
    (Eliminerer de første to feltene i oppføringen)
    For at dette skal fungere, må du installere openssh, erstatte dropbear openssh,> pakken installert som standard, og installere wol.. Når du har ssh wol> ed inn i ruteren, du da reaktivere datamaskinen med:
    # Wol-v-p 9 00:11:22:33:44:55
    hjelp, selvfølgelig, din egen PC MAC-adresse (som du har bestemt på forhånd og kodet, med denne kommandoen, til et script som er lagret på ruteren).
  • En alternativ måte å koble i ett trinn til den eksterne maskinen, uten å endre server setup:
    • ssh-t me@my.remote.server 'ssh-t-p 6789 hjem @ localhost'
  • Med Windows, trenger du også å installere en SSH server for å koble seg til den ved hjelp av denne metoden., Et gratis GNU lag for Windows, kommer med sshd.
  • Hvis du ønsker å være i stand til å koble på ett trinn til intern maskin, bør inittab linjen være litt annerledes:
    • tunl: 345: respawn:/ usr / bin / ssh-n-N-T-R 0:6789: localhost: 22 me@my.remote.server
    • "0:" før 6789 forteller sshd å lytte på alle grensesnitt på den andre enden, ikke bare localhost
    • Du må også endre (eller legge til) en opsjon i den eksterne maskinen sshd oppsett (/ etc / ssh / sshd_config på Debian):
    • GatewayPorts clientspecified # er "nei" som standard
    • Deretter "hup" serveren så det rereads konfigurasjonen:
    • kill-HUP $ (</ var / run / sshd.pid)
    • Så du kobler i ett trinn: ssh-p 6789 home@my.remote.server
  • Forstå alternativene gitt til ssh tunnel prosessen:
    • -N forhindrer leser fra stdin, som brukes for bakgrunnsprosesser
    • -N forteller ssh ikke å gjennomføre en ekstern kommando (primært for port forwarding / tunneling)
    • -T deaktivere pseudo-TTY tildeling, er kanskje ikke nødvendig, men gjør ikke vondt
    • -R-port: host: hostport port forwarding, 6789: localhost: 22 betyr at, på den eksterne serveren, koble til localhost: 6789 faktisk kobler deg til port 22 (sshd) på hjemme-PC.