Wku

Hur tunnel genom en brandvägg

Ibland är det praktiskt att kunna ansluta till din hemdator från jobbet, eller möjligen även från ett internetcafé från en avlägsen del av världen. I gamla dagar, kanske du har konfigurerat modemet att svara efter den 10: e ringen, och anslut dig till 300bps till din dator, nuförtiden, med DSL och bredband höghastighetsanslutningar, du troligen har en brandvägg förhindra någon form av inkommande åtkomst. Visst, du kan inaktivera eller "slå hål på" brandväggen, men om du har tillgång till en "server" redan är ansluten till Internet, är här en alternativ metod som är säkrare.

Steg

Hur tunnel genom en brandvägg. På din GNU / Linux eller Macintosh-dator, lägg till följande rad i slutet av din / etc / inittab.
Hur tunnel genom en brandvägg. På din GNU / Linux eller Macintosh-dator, lägg till följande rad i slutet av din / etc / inittab.
  1. 1
    På din GNU / Linux eller Macintosh-dator, lägg till följande rad i slutet av din / etc / inittab:
    tunl: 345: respawn:/ usr / bin / ssh-n-N-T-R 6789: localhost: 22 me@my.remote.server
    Ersätt "mig" med ditt användarnamn på fjärrservern, och 'my.remote.server "med den verkliga värdnamnet eller IP-adressen till servern. Om du har Windows, se Tips för förslag.
    Du måste först ha etablerat denna anslutning "för hand", inrätta delad autentisering, för att det ska fungera utan uppsikt, om du inte kan skriva samma linje som börjar med "/ usr / bin / ssh" vid roten kommandotolken och har det ansluter du till fjärrservern utan någon ytterligare inmatning, kommer detta inte att fungera.
  2. 2
    Starta om init processen att aktivera den linje du just lagt:
    # Init q
  3. 3
    Från jobbet, eller från någon avlägsen plats på Internet, försöker ansluta till din dator via ssh. Det är en process i två steg:
    $ Ssh me@my.remote.server
    Sedan, när den är ansluten:
    $ Ssh-p 6789 home @ localhost
    Ersätt "hem" i detta exempel med ditt användarnamn på din hemdator.

Tips

  • Förstå inittab posten:
    • init är den primära usermode uppgiften på ett Unix-system, och inittab är konfigurationsfilen som berättar vad man ska göra.
    • tunl är helt enkelt ett namn, en förkortning för "tunnel", som anger vad denna process är. Det måste vara unikt i inittab. Om tunneln inte fungerar, kan du försöka förkorta detta till två bokstäver, eller, i fallet med OpenWRT, att bli av med det helt och hållet.
    • 345 de runlevels där denna process ska vara aktiv, nätverk måste aktiveras i alla fall, så runlevel 3 (möjligen 2) bör vara tillräckligt för att tunneln ska upprättas. I fallet med OpenWRT bör det troligen utelämnas
    • respawn om SSH-tunnel avbrott för någon anledning (routing problem, server ner) du vill att den ska hämta sig automatiskt, "respawn" berättar det att fortsätta att försöka
  • Om datorn kör Windows snarare än en Unix smak, installera en billig router som kan köra OpenWRT, DD-WRT, eller annan liknande fri GNU / Linux-variant, ansluter den till datorn mellan DSL-eller kabelmodemet och datorn (er). Denna metod har en fördel även för Linux-eller Mac-datorer, eftersom dessa routrar är mycket energieffektivt: du kan lämna dem på medan du är borta, lämna datorn och sedan starta om datorn on-demand med WOL (wake-on -lan). Den inittab posten för OpenWRT är typiskt
    :: Respawn:/ usr / bin / ssh-n-N-T-R 6789: localhost: 22 me@my.remote.server
    (Eliminerar de första två fälten i posten)
    För att detta ska fungera måste du installera OpenSSH, ersätter dropbear OpenSSH,> installerat som standard, och installera WOL.. När du har ssh WOL> ed i routern, vaknar du sedan datorn med:
    # Wol-v-p 9 00:11:22:33:44:55
    hjälp, naturligtvis, din egen dators MAC-adress (som du har fastställt på förhand och kodade, med det kommandot, i ett manus som lagras på routern).
  • Ett alternativt sätt att koppla in ett steg till fjärr-maskin, utan att ändra serverns inställningar:
    • ssh-t me@my.remote.server 'ssh-t-p 6789 home @ localhost'
  • Med Windows, kommer du också att behöva installera en SSH-server för att ansluta till den med hjälp av denna metod., Ett gratis GNU skikt för Windows, kommer med sshd.
  • Om du vill kunna koppla in ett steg till den interna maskin bör inittab linjen vara något annorlunda:
    • tunl: 345: respawn:/ usr / bin / ssh-n-N-T-R 0:6789: localhost: 22 me@my.remote.server
    • Den "0:" före 6789 berättar sshd att lyssna på alla gränssnitt på den bortre änden, inte bara localhost
    • Du kommer också att behöva byta (eller lägga till) en option i fjärrmaskinens sshd setup (/ etc / ssh / sshd_config på Debian):
    • GatewayPorts clientspecified # är "nej" som standard
    • Sedan "HUP" servern så att den läser om konfigurationen:
    • kill-HUP $ (</ var / run / sshd.pid)
    • Då du ansluter i ett steg: ssh-p 6789 home@my.remote.server
  • Förstå alternativen ges till ssh tunneln processen:
    • -N förhindrar att läsa från stdin, som används för bakgrundsprocesser
    • -N berättar ssh inte avrätta en avlägsen kommando (främst för port forwarding / tunnel)
    • -T inaktivera pseudo-tty tilldelningen, kanske inte nödvändigt men gör inte ont
    • -R-port: host: hostport port forwarding, 6789: localhost: 22 innebär att, på fjärrservern, ansluta till localhost: 6789 faktiskt ansluter dig till port 22 (sshd) på hemdatorn.