Tunnel SSH forbindelser over SSL Bruke 'Stunnel' On Debian 7 /Ubuntu 13.10

stunnel er utviklet for å fungere som en SSL-kryptering wrapper mellom ekstern klient og lokale (inetd-oppstart) eller en ekstern server. Den kan brukes til å legge SSL funksjonalitet til brukte inetd nisser som pop2, POP3 og IMAP-servere uten noen endringer i programmene kode. Stunnel bruker OpenSSL-biblioteket for kryptografi, så det støtter uansett kryptografiske algoritmer er kompilert inn i biblioteket. I enkle ord, kan tunnel brukes til å slå noen usikre port til en kryptert port.
I denne opplæringen, vil jeg beskrive hvordan tunnel SSH over SSL bruker tunnel. Oppsettet er ganske enkel. Du trenger tunnel installert både på klient-PC og en ekstern PC med sshd allerede kjører
Jeg bruker to systemer som nevnt nedenfor
Remote System:..

 Operativsystem: Debian 7IP adresse : 192.168.1.200/24Client(Local) System: 
 Operativsystem: Ubuntu 13.04 desktopIP adresse: 192.168.1.100/24Configure Remote System 
La oss installere tunnel pakke i vår Debian 7 serveren
.
 # apt-get install stunnel4Now la oss lage et SSL-sertifikat som vist nedenfor 
 # OpenSSL genrsa 1024 >.; stunnel.keySample utgang: 
 Generering RSA privat nøkkel, 1024 litt lang modulus .............................. .............. ++++++ ................... ++++++ e er 65 537 (0x10001 ) 
 # OpenSSL req -new -tasten stunnel.key -x509 -Days tusen utsjekking stunnel.crtYou vil bli bedt om å svare for et par spørsmål som Country, State, bedriftsinformasjon etc. 
 Du er i ferd med å bli bedt om å oppgi informasjon som vil være incorporatedinto sertifikatet request.What du er i ferd med å gå inn er det som kalles et unikt navn eller en DN.There er ganske mange felt, men du kan la noen blankFor noen felt der vil være en standardverdi, hvis du går inn, vil feltet være tomt .----- Navn Land (2 bokstavkode) [AU] '.': instate eller provinsen Name (fullt navn) [Noen-State]: TamilnaduLocality Navn (f.eks by) []: ErodeOrganization navnet (som selskap) [Internett Widgits Pty Ltd]: Navn unixmenOrganizational Unit (f.eks seksjon) []: TechnicalCommon navn (f.eks server FQDN eller navnet ditt) []: server.unixmen .comEmail Adresse []: [email protected] 
 # cat stunnel.crt stunnel.key > stunnel.pem # mv stunnel.pem /etc /tunnel /Nå må vi konfigurere tunnel til tunnel 443 (https) til 22 (ssh). Dette kan gjøres ved å opprette en ny fil stunnel.conf under /etc /tunnel /katalogen: 
 # vi /etc/stunnel/stunnel.confAdd følgende linjer: 
 pid = /var /run/stunnel.pidcert = /etc/stunnel/stunnel.pem[ssh]accept = 192.168.1.200:443connect = 127.0.0.1:22The over linjene sier tunnel som hvor du skal lete for sertifikatfilen og hvor du skal akseptere og frem ssh tilkoblinger. I vårt tilfelle vil tunnel akseptere innkommende trafikk på port 443 og videresende den tilbake til port 22. spar og lukk filen. 
Nå la oss gjøre det mulig tunnel service. For å gjøre det, redigere filen /etc /default /stunnel4:
 # vi /etc /default /stunnel4Change linjen Enabled = 0 til 1. 
 # /etc /default /tunnel # Julien LEMOINE < [email protected]> # september 2003 # Bytt til en å aktivere tunnel automatisk startupENABLED = 1FILES = ALTERNATIVER = "" # Bytt til en å aktivere ppp starte scriptsPPP_RESTART = 0Then start "/etc /tunnel /* conf." tunnel tjeneste kommandoen med: 
 # tjenesten stunnel4 startConfigure Local System 
Installer tunnel kommandoen med:
 $ sudo apt-get install stunnel4We trenger samme sertifikatfilen (stunnel.pem) fra eksternt system. Kopier eksterne systemet stunnel.pem fil til vår lokale system og lagre den på samme sted (dvs. /etc /tunnel) 
oppretter en ny fil stunnel.conf under /etc /tunnel /katalog.
 $ sudo vi /etc/stunnel/stunnel.confAdd følgende linjer: 
 pid = /var/run/stunnel.pidcert = /etc/stunnel/stunnel.pemclient=yes[ssh]accept=443connect= 192.168.1.200:443Save og lukk filen. Her 192.168.1.200 er vår eksterne systemet IP. 
Nå la oss gjøre det mulig tunnel service. For å gjøre det, redigere filen /etc /default /stunnel4:
 $ sudo vi /etc /default /stunnel4Change linjen Enabled = 0 til 1. 
 # /etc /default /tunnel # Julien LEMOINE < [email protected]> # september 2003 # Bytt til en å aktivere tunnel automatisk startupENABLED = 1FILES = ALTERNATIVER = "" # Bytt til en å aktivere ppp restart scriptsPPP_RESTART = 0Then "/etc /tunnel /* conf." starte tunnel tjeneste kommandoen med: 
 $ sudo tjenesten stunnel4 startTest SSH-tilkobling 
Nå er vi godt å gå. Du vil være i stand til å koble til den eksterne maskinen ved hjelp av kommandoen:
 $ ssh sk @ localhost -V -p 443Sample utgang: 
 OpenSSH_6.1p1 Debian-4, OpenSSL 1.0.1c 10 May 2012debug1: Reading konfigurasjonsdata /etc /ssh /ssh_configdebug1: /etc /ssh /ssh_config linje 19: Bruk av alternativene for * debug1: Tilkobling til localhost [127.0.0.1] port 443.debug1: Connection established.debug1: identitet fil /home /sk/.ssh/id_rsa skriver -1debug1: identitet fil /home/sk/.ssh/id_rsa-cert skriver -1debug1: identitet fil /home/sk/.ssh/id_dsa skriver -1debug1: identitet fil /home /sk /.ssh /id_dsa-cert typen -1debug1: identitet fil /home/sk/.ssh/id_ecdsa typen -1debug1: identitet fil /home/sk/.ssh/id_ecdsa-cert typen -1debug1: Remote protokoll versjon 2.0, ekstern programvareversjon OpenSSH_6.0p1 Debian-4debug1: kamp: OpenSSH_6.0p1 Debian-fire klapp OpenSSH * debug1: Aktivere kompatibilitetsmodus for protokollen 2.0debug1: Lokal versjon string SSH-2.0-OpenSSH_6.1p1 Debian-4debug1: SSH2_MSG_KEXINIT sentdebug1: SSH2_MSG_KEXINIT receiveddebug1: kex: server- > klient AES128-ctr HMAC-md5 nonedebug1: kex: klient- > server AES128-ctr HMAC-md5 nonedebug1: sende SSH2_MSG_KEX_ECDH_INITdebug1: forventer SSH2_MSG_KEX_ECDH_REPLYdebug1: Server vertsnøkkel: ECDSA 78: 05: ba: 1b: 73: 02 : 75: 86: 10: 33: 8c: 0f: 21: 61: d4: dedebug1: Host '[localhost]: 443' er kjent og matcher ECDSA verten key.debug1: Funnet nøkkelen i /home/sk/.ssh /known_hosts: 12debug1: ssh_ecdsa_verify: signatur correctdebug1: SSH2_MSG_NEWKEYS sentdebug1: forventer SSH2_MSG_NEWKEYSdebug1: SSH2_MSG_NEWKEYS receiveddebug1: Roaming ikke tillatt etter serverdebug1: SSH2_MSG_SERVICE_REQUEST sentdebug1: SSH2_MSG_SERVICE_ACCEPT receiveddebug1: autentisering som kan fortsette: publickey, passworddebug1: Neste autentiseringsmetode: publickeydebug1: Trying private nøkkelen: /home/sk/.ssh/id_rsadebug1: Prøver privat nøkkel: /home/sk/.ssh/id_dsadebug1: Prøver privat nøkkel: /home/sk/.ssh/id_ecdsadebug1: Neste autentiseringsmetode: passwordsk @ localhost passord: # ## Skriv inn din eksterne systemet brukeren passworddebug1: Authentication lyktes (passord) .Authenticated til localhost ([127.0.0.1]: 443) .debug1: kanal 0: ny [klient-session] debug1: Ber om [email protected]: Legge inn interaktiv session.debug1: Sende environment.debug1: Sende env LC_PAPER = en_IN.UTF-8debug1: Sende env LC_ADDRESS = en_IN.UTF-8debug1: Sende env LC_MONETARY = en_IN.UTF-8debug1: Sende env LC_NUMERIC = en_IN.UTF-8debug1 : Sende env LC_TELEPHONE = en_IN.UTF-8debug1: Sende env LC_IDENTIFICATION = en_IN.UTF-8debug1: Sende env LANG = en_US.UTF-8debug1: Sende env LC_MEASUREMENT = en_IN.UTF-8debug1: Sende env LC_TIME = en_IN.UTF-8debug1 : Sender env LC_NAME = en_IN.UTF-8Linux server 3.2.0-4-486 # 1 Debian 3.2.51-1 i686The programmene som følger med Debian GNU /Linux-system er fri programvare; de ​​eksakte distribusjonsvilkårene for hvert program er beskrevet i theindividual filer i /usr/share/doc/*/copyright.Debian GNU /Linux kommer med ABSOLUTT INGEN GARANTI, til extentpermitted av gjeldende law.You ha ny mail.Last innlogging: Man 30 desember 15:12:22 2 013 fra localhostsk server: ~ $ Eller du kan ganske enkelt bruke kommandoen: 
 $ ssh -p 443 sk @ localhostSample utgang: 
 sk @ localhost passord: Linux server 3.2.0-4-486 # 1 Debian 3.2.51-1 i686The programmene som følger med Debian GNU /Linux-system er fri programvare; de ​​eksakte distribusjonsvilkårene for hvert program er beskrevet i theindividual filer i /usr/share/doc/*/copyright.Debian GNU /Linux kommer med ABSOLUTT INGEN GARANTI, til extentpermitted av gjeldende law.You ha ny mail.Last innlogging: Man 30 desember 15:22:08 2 013 fra localhostsk @ server: ~ $ Nå vil du være i stand til å gjøre ssh tilkobling til eksternt system , men all trafikk tunnel gjennom SSL. 
Du er ferdig nå! Du kan SSH til den eksterne systemet selv når ssh standard 22 er blokkert av brannmuren
referanselinker.
Tunnel hjemmeside