Koble til en virtuell server via SSH og SFTP. Koble til server via SSH og SFTP Koble til via ssh via kitt

Hva er SSH og hvorfor trenger du det?

Secure shell (SSH) er nettverksprotokoll, gir skallfunksjoner på en ekstern maskin via en sikker kanal. SSH kommer med ulike sikkerhetsforbedringer, inkludert bruker-/vertautentisering, datakryptering og dataintegritet, noe som gjør populære angrep som avlytting, DNS/IP-spoofing, dataforfalskning og tilkoblingskapring umulig osv. Ftp-, telnet- eller rlogin-brukere som bruker en protokoll som overfører data i klartekst anbefales sterkt for å bytte til SSH.

OpenSSH er en åpen kildekode-implementering kildekode SSH-protokoll, som lar deg kryptere tilkoblingen på nettverket ved hjelp av et sett med programmer. Hvis du vil ha SSH på Linux, kan du installere OpenSSH, som består av en OpenSSH-server og klientpakker.

OpenSSH server-/klientpakker kommer med følgende verktøy:

  • OpenSSH-server: sshd (SSH-demon)
  • OpenSSH-klient: scp (sikker ekstern kopi), sftp (sikker filoverføring), slogin/ssh (sikker ekstern pålogging), ssh-add (fullføring av privat nøkkel), ssh-agent (autentiseringsagent), ssh-keygen (administrasjon av autentiseringsnøkkel) ).
Installerer OpenSSH server og klient på Linux

Hvis du vil installere OpenSSH-serveren/klienten og konfigurere OpenSSH-serveren til å starte automatisk, følger du følgende instruksjoner, som varierer avhengig av distribusjonen.

Debian, Ubuntu eller Linux Mint

$ sudo apt-get install openssh-server openssh-klient

På Debian-baserte systemer vil OpenSSH starte automatisk ved oppstart når det er installert. Hvis OpenSSH-serveren av en eller annen grunn ikke starter automatisk ved systemstart, kan du kjøre følgende kommando for å eksplisitt legge til ssh til oppstarten ved systemstart.

$ sudo update-rc.d ssh standarder

Fedora eller CentOS/RHEL 7

$ sudo yum -y installer openssh-server openssh-klienter $ sudo systemctl start sshd-tjeneste $ sudo systemctl aktiver sshd.service

CentOS/RHEL 6

$ sudo yum -y installer openssh-server openssh-clients $ sudo service sshd start $ sudo chkconfig sshd på

Arch Linux

$ sudo pacman -Sy openssh $ sudo systemctl start sshd-tjenesten $ sudo systemctl aktiver sshd.service

Sette opp en OpenSSH-server

Hvis du vil konfigurere OpenSSH-serveren, kan du redigere den systemomfattende konfigurasjonsfilen som ligger i /etc/ssh/sshd_config.

Det er et par OpenSSH-alternativer som kan være av interesse:
Som standard lytter sshd på port 22 og lytter etter innkommende ssh-tilkoblinger. Ved å endre standardporten for ssh kan du forhindre ulike automatiserte hackerangrep.
Hvis maskinen din har mer enn ett fysisk nettverksgrensesnitt, kan det være lurt å sjekke hvilket som er knyttet til sshd, for dette kan du bruke alternativet ListenAddress. Dette alternativet bidrar til å forbedre sikkerheten ved å begrense innkommende SSH til bare et spesifikt grensesnitt.

HostKey /etc/ssh/ssh_host_key

HostKey-alternativet bestemmer hvor den personlige vertsnøkkelen er plassert.

PermitRootLogin-nr

PermitRootLogin-alternativ – om root kan logge på systemet via ssh.

Tillat brukere alice bob

Ved å bruke alternativet AllowUsers kan du selektivt deaktivere ssh-tjenesten for visse Linux-brukere. Du kan spesifisere flere brukere, atskilt med mellomrom.

Etter at /etc/ssh/sshd_config har blitt endret, sørg for å starte ssh-tjenesten på nytt.

For å starte OpenSSH på nytt på Debian, Ubuntu eller Linux Mint:

$ sudo /etc/init.d/ssh restart

For å starte OpenSSH på nytt på Fedora, CentOS/RHEL 7 eller Arch Linux:

$ sudo systemctl start sshd.service på nytt

For å starte OpenSSH på nytt på CentOS/RHEL 6:

$ sudo service sshd omstart

Hvordan koble til SSH

Kobler til SSH fra Linux

Linux-brukere trenger ikke å installere flere programmer.

Kobler til SSH fra Windows

Skjult for gjester

.

Cygwin er mer enn bare en SSH-klient. Det er en kraftig kombinator som støtter mange Linux-kommandoer. For eksempel gjør Cygwin det veldig enkelt å lage SSL-sertifikater (akkurat som Linux). I Windows, for å lage selvsignerte sertifikater, må du danse med en tamburin. I Cygwin er det veldig praktisk å bruke cURL (trenger ikke installere noe separat) osv. De som mangler det på Windows kommandolinje og Linux-programmer vil finne et utsalgssted i Cygwin.

Det er enkelt å installere Cygwin. La oss gå til

Skjult for gjester

Og last ned

Skjult for gjester

Skjult for gjester

En liten fil vil lastes ned - dette er installasjonsprogrammet. Grafisk installasjonsprogram. Selv om den inneholder et stort antall alternativer, er de alle ganske enkle og mange er kjent fra andre grafiske installatører. Hvis noe ikke er klart, klikker du bare på "Neste". Kanskje bare følgende vindu kan føre til forvirring:

Alle elementene som er tilgjengelige for installasjon er presentert her. Vi trenger ikke å forstå dem akkurat nå. Fordi de mest populære er allerede merket for installasjon. Og hvis noe mangler i fremtiden, kan du enkelt installere det du trenger.

SSH-tilkobling (vanlig for Linux og Windows)

Linux-brukere åpner konsollen, Windows-brukere skriver inn Cygwin.

SSH trenger følgende informasjon for å koble til:

  • IP eller vertsnavn
  • portnummer
  • Brukernavn
  • bruker passord
To av disse parameterne kan SSH gjette: brukernavn og portnummer. Hvis en port ikke er spesifisert, antas standardporten. Hvis en bruker ikke er spesifisert, brukes samme navn som på systemet som tilkoblingen gjøres fra. For eksempel er vertsadressen for tilkoblingen 192.168.1.36. Hvis jeg ringer

Ssh 192.168.1.36

Jeg ser følgende

Alex@MiAl-PC ~ $ ssh 192.168.1.36 Autentisiteten til verten "192.168.1.36 (192.168.1.36)" kan ikke fastslås. ECDSA-nøkkelfingeravtrykket er SHA256:sIxZeSuiivoEQ00RXAQHx8sxfxfxfxfxfxrfxfxfxfxfxfxfxfxfxfxfxfxrfxfxfxfxfxfxfxfxfxfxfxfxfxfxfxfxfxfxfxfxfxfxfxfxfxfxfxfxfxfxfxfxfxfxfxfxfxfxfxfxfxfxfxfxfxfxfxfxfxfxfxfxfxfxfkobler til ( Ja Nei)?

Siden jeg kobler til verten for første gang, er det en ukjent vert. De spør meg om jeg vil fortsette. Jeg ringer ja:

Advarsel: Lagt "192.168.1.36" (ECDSA) permanent til listen over kjente verter. [e-postbeskyttet]"s passord:

Ok, vert 192.168.1.36 er lagt til listen over kjente verter. Jeg blir bedt om et passord for brukeren Alex. Siden det ikke er en slik bruker på serveren med SSH, men jeg klikker Ctrl+C(for å bryte) og skriv inn kommandoen sammen med brukernavnet til det eksterne systemet. Brukeren legges inn før adressen til den eksterne maskinen og er atskilt fra adressen med @-symbolet. @-symbolet på engelsk leses som at og kan oversettes som "in". De. ta opp [e-postbeskyttet] kan tolkes som "mial bruker på maskin 192.168.1.36".

Ssh [e-postbeskyttet]

Alex@MiAl-PC-invitasjonen ble erstattet av mial@mint-invitasjonen. Dette betyr at vi allerede er på den eksterne maskinen, det vil si at vi allerede har opprettet en tilkobling. Hvis du trenger å spesifisere en port (hvis den er forskjellig fra standarden), må porten spesifiseres etter -p-bryteren. For eksempel slik:

Ssh [e-postbeskyttet]-s 10456

Etter å ha koblet til, blir vi møtt med noe som dette:

Linux mint 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1 (2015-05-24) x86_64 Programmene inkludert i Debian GNU/Linux-systemet er fri programvare; de nøyaktige distribusjonsvilkårene for hvert program er beskrevet i de individuelle filene i /usr/share/doc/*/copyright. Debian GNU/Linux leveres med ABSOLUT INGEN GARANTI, i den grad det er tillatt av gjeldende lov. Siste pålogging: Tue Jun 16 15:32:25 2015 fra 192.168.1.35

Det følger at den eksterne maskinen er Linux Mint, med kjerne 3.16, 64-bit versjon. Også viktig informasjon om tidspunktet for siste pålogging og IP-adressen som tilkoblingen skjedde fra. Hvis klokkeslettet og IP-adressen er ukjent for deg og du er den eneste brukeren, er systemet kompromittert og du må iverksette passende tiltak.

La oss skrive noen kommandoer for å være sikker på hvor vi er og hvem vi er: pwd, [B]uname -a etc.:

For å avslutte økten (logg ut), ring

Eller klikk Ctrl+D.

Logg inn på SSH uten å angi passord

For det første er det bare mer praktisk. For det andre er det tryggere.

Først må vi lage rsa-nøkler. Hvis du er en Linux-bruker, har du det bra. Hvis du er en Windows-bruker, men du ikke lyttet til mine råd og valgte PuTTY, så har du et problem og tenker selv hvordan du skal løse det. Har du Cygwin, så er også alt i orden.

Hvis du klarte å logge på det eksterne systemet, logg ut. Etter det, ring

Ssh-keygen -t rsa

Vi blir bedt om et filnavn, vi trenger ikke skrive inn noe, standardnavnet vil bli brukt. Den ber også om et passord. Jeg skriver ikke inn passordet.

Nå på den eksterne maskinen må vi opprette en .ssh-katalog. Utførelse av kommandoen på en ekstern maskin vil bli diskutert nedenfor. For nå, bare kopier kommandoen, ikke glem å endre IP-adressen og brukernavnet til ditt eget:

Ssh [e-postbeskyttet] mkdir.ssh

Nå må vi kopiere innholdet i filen id_rsa.pub til den eksterne maskinen. Dette er veldig enkelt å gjøre (ikke glem å endre dataene til dine egne):

Katt .ssh/id_rsa.pub | ssh [e-postbeskyttet]"cat >> .ssh/authorized_keys"

Nå logger vi bare på og de ber oss ikke om noe passord lenger. Og det vil alltid være slik nå.

Utføre kommandoer på en ekstern server uten å opprette en shell-økt

I tillegg til å åpne en shell-sesjon på et eksternt system, lar ssh deg også utføre individuelle kommandoer på det eksterne systemet. For eksempel, for å kjøre trekommandoen på en ekstern vert kalt remote-sys og vise resultatene på det lokale systemet, gjør du dette:

Ssh remote-sys tre

Mitt virkelige eksempel:

Ssh [e-postbeskyttet] tre

Ved å bruke denne teknikken kan du gjøre interessante ting, som å kjøre en ls-kommando på et eksternt system og omdirigere utdataene til en fil på det lokale systemet:

Ssh remote-sys "ls *" > dirlist.txt

Ekte eksempel:

Ssh [e-postbeskyttet]"ls *" > dirlist.txt cat dirlist.txt

Legg merke til de enkle anførselstegnene i kommandoen ovenfor. Dette gjøres fordi vi ikke vil at stiutvidelse skal gjøres på lokal maskin; fordi vi trenger denne kjøringen på et eksternt system. Dessuten, hvis vi ønsker å omdirigere standardutdata til en fil på den eksterne maskinen, kan vi sette omdirigeringssetningen og filnavnet i enkle anførselstegn:

Ssh remote-sys "ls * > dirlist.txt"

Overføre standard utdata fra lokal maskin til ekstern maskin via ssh

Et like interessant alternativ for å utføre kommandoer er gitt litt høyere:

Katt .ssh/id_rsa.pub | ssh [e-postbeskyttet]"cat >> .ssh/authorized_keys"

  • Cat-kommandoen leser og viser innholdet i .ssh/id_rsa.pub-filen, som ligger på den lokale maskinen, linje for linje.
  • | (pipe) sender det som vil vises på standard utgang til en annen kommando.
  • I stedet for en kommando som vil behandle strengene som sendes til den, opprettes en tilkobling til det eksterne systemet (ssh [e-postbeskyttet]).
  • eksternt system linjer kommer som cat >> .ssh/authorized_keys-kommandoen er gitt. De. Innholdet i standardutdataene skrives linje for linje til .ssh/authorized_keys-filen som ligger på den eksterne maskinen.
Åpne et grafikkprogram på en ekstern datamaskin

Det neste trikset krever to Linux-datamaskiner. Dessverre takler ikke selv Cygwin dette trikset. Dessuten må begge Linux-systemene ha et grafisk brukergrensesnitt.

Tunnelering med SSH

Blant annet som skjer når en forbindelse etableres med en ekstern vert via SSH, er opprettelsen av en kryptert tunnel som dannes mellom det lokale og det eksterne systemet. Vanligvis brukes denne tunnelen til å sikre at kommandoer skrevet på den lokale maskinen blir sikkert overført til en ekstern maskin, og resultatet sendes også sikkert tilbake.

I tillegg til denne grunnleggende funksjonaliteten tillater SSH-protokollen at de fleste typer trafikk kan sendes over en kryptert tunnel, og skaper en slags VPN (virtuelt privat nettverk) mellom lokale og eksterne systemer.

Den kanskje mest brukte av disse funksjonene er muligheten til å kringkaste trafikken til X Window-systemer. På et system som kjører en X-server (dette er maskiner som har et grafisk brukergrensesnitt), er det mulig å kjøre et X-klientprogram (en grafisk applikasjon) på et eksternt system og se resultatene av driften på det lokale systemet. Det er enkelt å gjøre. For eksempel vil jeg koble til den eksterne verten remote-sys og på den vil jeg kjøre xload-programmet. Samtidig vil jeg kunne se den grafiske utgangen til dette programmet på den lokale datamaskinen. Dette gjøres slik:

Ssh -X remote-sys xload

Ekte eksempel:

Ssh -X [e-postbeskyttet] gedit

De. SSH starter med -X-bryteren. Og så starter programmet rett og slett. Se på skjermbildet.

Jeg bruker Kali Linux. Jeg har logget på en ekstern datamaskin via SSH. Etter det kjørte jeg gedit-programmet. Dette programmet er kanskje ikke engang på Kali Linux, men det er definitivt på Linux Mint, som er det jeg koblet til. Jeg kan se resultatet av dette programmet på skjermen som om programmet kjørte lokalt. Men igjen, jeg vil at du skal forstå dette, det er ikke noe gedit-program som kjører på den lokale datamaskinen. Hvis jeg vil lagre resultatet av gedit (eller et hvilket som helst annet program som er åpnet på denne måten), viser det seg at det fungerer i miljøet til den eksterne datamaskinen, ser filsystemet, osv. Dette er praktisk når du vil konfigurere ekstern datamaskin ved hjelp av et grafisk grensesnitt.

Du vil lære hvordan du overfører et bilde fra hele skrivebordet i samme artikkel senere, i avsnittet "Hvordan konfigurere VNC via SSH".

På noen systemer krever dette trikset bruk av -Y-alternativet i stedet for -X-alternativet.

Kopiere fra/til en ekstern datamaskin (scp og sftp)

scp

OpenSSH-pakken inkluderer også to programmer som bruker en kryptert SSH-tunnel til å kopiere filer over nettverket. Første program - scp("sikker kopi") - brukes oftere, som det lignende cp-programmet for kopiering av filer. Den mest merkbare forskjellen er at kilden til filen kan være den eksterne verten etterfulgt av et kolon og plasseringen av filen. For eksempel, hvis vi ønsket å kopiere et dokument kalt document.txt fra hjemmekatalogen vår til remote-sys i gjeldende arbeidskatalog på vårt lokale system, kunne vi gjøre dette:

Scp remote-sys:document.txt . document.txt 100 % 177 0,2KB/s 00:00

Ekte eksempel:

# slett filen på den lokale maskinen hvis den eksisterer rm dirlist.txt # opprett en fil på den eksterne maskinen ssh [e-postbeskyttet]"ls * > dirlist.txt" # sjekk for tilstedeværelse ssh [e-postbeskyttet]"ls -l" # kopier den til den lokale maskinen scp [e-postbeskyttet]:dirlist.txt. # sjekk innholdet cat dirlist.txt

  • [e-postbeskyttet]- brukernavn og ekstern vert,
  • . (punkt) betyr at filen må kopieres til gjeldende arbeidskatalog på den eksterne serveren, men filnavnet forblir det samme, dvs. nfile.txt
  • Memo:

    Slik kopierer du en fil fra B til A når du er logget på B:
    scp /path/to/file brukernavn@a:/path/to/destination
    Kopiere en fil fra B til A når du er logget på A:
    scp brukernavn@b:/path/to/file /path/to/destination

    sftp

    Det andre programmet for å kopiere filer over SSH er sftp. Som navnet antyder, er det en sikker erstatning for ftp-program. sftp fungerer som det originale ftp-programmet. Men i stedet for å sende inn klartekst, bruker den en kryptert SSH-tunnel. En viktig fordel med sftp fremfor ftp er at det ikke krever en kjørende FTP-server på en ekstern vert. Det krever bare en SSH-server. Dette betyr at enhver ekstern maskin som er tilkoblet via en SSH-klient også kan brukes som en FTP-lignende server. Her er en eksempeløkt:

    Alex@MiAl-PC ~ $ sftp [e-postbeskyttet] Koblet til 192.168.1.36. sftp> ls dirlist.txt newfile.txt nfile.txt temp Videoer Dokumenter Nedlastinger Bilder Musikk Offentlige skrivebordsmaler sftp> lls dirlist.txt nfile.txt sftp> ls temp temp/TakeMeHome sftp> cd temp/ sftp> get TakeMeHome Fetching mial/temp/TakeMeHome til TakeMeHome sftp> bye

    SFTP-protokollen støttes av mange grafiske filbehandlere som finnes i Linux-distribusjoner. Ved å bruke både Nautilus (GNOME) og Konqueror (KDE), kan vi legge inn URIer (lenker) som starter med sftp:// i hopplinjen og jobbe med filer som ligger på et eksternt system som kjører en SSH-server.

    Hallo! Jeg er interessert i spørsmålet: hvordan kobler du via SSH til hjemmedatamaskinen din via Internett. Jeg har en FreeSSHd-server installert hjemme. Slik jeg forstår det, må jeg på en eller annen måte åpne port 22 på den eksterne IP-en? Alex

    Ja, behovet melder seg ofte. Jeg snakket om mange ting i den artikkelen, men her vil vi utelukkende snakke om SSH, siden Alex vennligst ga oss denne muligheten. Dessuten er jeg selv utrolig interessert i SSH, og her er det også på Windows... mmm.

    Hva er SSH og hvorfor er det nødvendig?

    Poenget er at SSH er det S sikre SH ell. Protokoll for sikker tilgang til kontrollskallet. Derfor gir den tilgang spesifikt til kommandolinjen, fordi Shell er oversatt som skall og her i betydningen tekstkontrollskall. Men generelt sett er denne protokollen kjent for det faktum at den lar all annen trafikk passere i den, og i kryptert form. Dermed er protokollen for sikker tilkobling til filsystem kalt SFTP og kjører på toppen av SSH. Men den kan tunnelere absolutt alle andre tilkoblinger - enten det er HTTP eller til og med RDP. I hovedsak viser det seg å være en "VPN på kneet".

    Her har Alex allerede gjort halve arbeidet, han installerte og lanserte det på hjemmedatamaskin FreeSSHd. Dette lar deg koble til Windows via SSH. I dette tilfellet sies "tillater" veldig sterkt. Fordi denne løsningen fungerer på Windows på en eller annen måte. For det første har den ikke et anstendig tekstgrensesnitt - en kommandolinje for kontroll.

    I det minste den vanlige - cmd - lar deg gjøre lite med den eksterne maskinen. Det finnes også Powershell – dette er en mer moderne og kraftig løsning. Freesshd lar deg endre konsollen til powershell, men jeg kunne ikke koble til den. Jeg koblet til CMD - men det er helt ubrukelig:

    For det andre, i tilfellet med FreeSSHd, klarte jeg ikke å koble til en Windows-datamaskin selv via et lokalt nettverk, for ikke å snakke om å koble til via Internett. Eller rettere sagt, det er mulig å koble til, men tjenesten fryser og krasjer; du vil ikke kunne administrere Windows-verten på denne måten.

    Derfor antar jeg at Alex trengte en ssh-server på Windows for å koble til filsystemet eller bruke det som en VPN, og proxyer noe over SSH. Selv om jeg tviler på at FreeSSHd vil tillate dette. Fordi for det tredje: den lagrer ikke engang innstillingene; når du starter tjenesten på nytt, går alt galt. Generelt håper jeg virkelig at Alex vil fortelle oss i kommentarene hvorfor han trengte dette.

    Hvordan ellers kan du kjøre SSH på Windows?

    Det finnes en mer brukbar løsning - Powershelserver. Selv om den også har feil, krasjer den i det minste ikke. Derfor vil jeg anbefale å bruke den til å koble til via SSH til Windows-servere.

    For det første fungerer det stabilt uten krasj. Og gjennom den kan du virkelig kontrollere vinduer via powershell.

    Alle innstillinger lagres normalt. De samme funksjonene er tilgjengelige som i FreeSSHd og enda flere - du kan bruke SCP - dette er å kopiere filer over SSH.

    Men det mest elegante er konsollen! Det fungerer, mine herrer!

    Jeg koblet til enkelt, uten noe oppstyr med å legge til brukere (dette må gjøres i freesshd). Og det enkleste kommandoenå se rutetabellen fungerte perfekt og ga den nødvendige informasjonen. Frisssh "falt" for meg akkurat da jeg prøvde å se netstat -rn

    Her kan du virkelig se at russiske tegn ikke vises. Så det er enkelt å sette opp med oss, jeg stiller bare inn kodingen jeg trenger på powershellserver, starter på nytt, kobler til på nytt...

    Innstilling av koding i Powershellserver

    Nå har vi full SSH og kan administrere Windows fullt ut via konsollen.

    Microsoft vil lage sin egen SSH-løsning

    Microsoft annonserte forresten allerede i sommer at den kom til å utvikle seg innfødt SSH-støtte for Powershell i nye versjoner av Windows. Det er nyhetskunngjøringer på Habré og på pcweek (og mer). Derfor kan vi bare se frem til denne landemerkebegivenheten, siden den virkelig vil være et gjennombrudd for arbeidet med heterogene nettverk.

    Jeg sjekket ikke de andre funksjonene - sftp og scp, men av en eller annen grunn er jeg sikker på at de også vil fungere utmerket.

    Hvordan åpne en SSH-port utenfra?

    Så vi har kommet til den hemmelige tingen som denne artikkelen ble startet for i utgangspunktet. Jeg vil svare på leserens spørsmål.

    Portvideresending på en ruter eller modem

    For å koble til en datamaskin fra utsiden, må du virkelig gjøre NAT, eller, i et bestemt tilfelle, . Hvordan du gjør dette avhenger av enheten som brukes som gateway. Dette kan være et ADSL-modem eller . I de fleste tilfeller kan du enkelt finne detaljerte instruksjoner for enheten din ved spørsmål som "port forwarding device_model" eller "videresending av porter device_model»

    Slik ser det ut på min Zyxel Keenetic Lite hjemmeruter:

    Og slik ser det ut på et ADSL-modem med funksjonaliteten til Linksys WAG200G-ruteren for hånden:

    I tillegg kan det hende at dette ikke er teknisk mulig hos noen leverandører fordi de ikke gir "hvitt" .

    Videresending av en port til en ekstern server ved hjelp av en SSH-tunnel

    I dette tilfellet kan det være mulig å koble til via SSH den eneste måten— fra en lokal Windows-maskin (den samme som vi ønsker å koble til via SSH) til en ekstern server. I dette tilfellet må du ha SSH-tilgang til en server på Internett.

    Sette opp en "omvendt" SSH-tunnel

    Slik videresending kan enkelt gjøres ved hjelp av en enkel SSH-klient Putty (det finnes også) Deretter kan du koble til denne svært eksterne serveren via den videresendte porten.

    Det er egentlig en løkke her. Vi åpner en SSH-sesjon fra Windows til en ekstern server, og inne i denne forbindelsen tunnelerer vi selve SSH-porten til Windows Powershellserver (eller FreeSSHd) til lokal port 3322 til den eksterne serveren. Og i samme økt kobler vi nå tilbake til Windows på Powershell gjennom denne samme porten 3322... Jeg håper du ikke er forvirret. Men... Dette er magi, venner! :) SSH-tunneler er en spesiell verden, med deres hjelp kan du gjøre utrolige ting, åpne slike dører at alle sikkerhetsvaktene ville gråt bittert om de plutselig fikk vite om alt dette... Men jammen.

    Vel, hvis du trenger å dele Windows SSH-porten med verden, er det nok å spesifisere ip_server:3322 som destinasjon i de omvendte tunnelinnstillingene. Du vil kunne koble til Windows via SSH fra hvor som helst der det er tilgang til denne serveren.

    Hvordan sjekke om porten videresendes riktig?

    Veldig enkelt. Du må sjekke om den er åpen. Når det gjelder SSH åpen port vil svare med en melding om versjonen. Mest den enkleste måten portsjekk - telnet-verktøy.

    Bare skriv på kommandolinjen, atskilt med mellomrom:

    telnet-domene_eller_IP-port

    Hvis porten er tilgjengelig, vil du se noe slikt:

    SSH-svar hvis port tilgjengelig

    Hvis porten er utilgjengelig av en eller annen grunn, vil du se enten "tilkobling nektet" eller "tilkoblingstidsavbrudd". I det første tilfellet vil det være momentant, og betyr at porten er stengt av en brannmur.

    I det andre tilfellet vil det se ut som et "heng" og kan vare opptil flere minutter - telnet-klienten vil prøve å etablere en tilkobling. Dette kan også bety blokkering av en brannmur, men av en annen type. Enten ganske enkelt at den angitte verten er utilgjengelig eller at porten på den er stengt.

    Hvis du var i stand til å koble til via telnet, trykk på tastekombinasjonen Ctrl+] og enter slutte, deretter Enter. Ellers vil du ikke kunne avbryte økten og må åpne et nytt konsollvindu hvis du fortsatt trenger det.

    Denne artikkelen er merket som uferdig. Se merknad på slutten av artikkelen.

    Denne artikkelen er viet klienten og serveren til en sikker terminal (sikkert skall) i Ubuntu, deres konfigurasjon og bruk. SSH er en spesiell nettverksprotokoll som lar deg få ekstern tilgang til en datamaskin med høy grad av tilkoblingssikkerhet. Du kan lese mer om ssh-protokollen.

    Beskrivelse av driftsprinsipper og bruksområder

    I utgangspunktet er SSH implementert i form av to applikasjoner - en SSH-server og en SSH-klient Ubuntu bruker en gratis implementering av en SSH-klient og -server - OpenSSH. Ved tilkobling gjennomgår klienten en autorisasjonsprosedyre med serveren og en kryptert forbindelse opprettes mellom dem. OpenSSH-serveren kan fungere med både ssh1- og ssh2-protokollene. ssh1-protokollen anses for øyeblikket som usikker, og bruken frarådes sterkt. Jeg utelater bevisst ulike tekniske detaljer i protokollen, siden hovedformålet med denne veiledningen er å beskrive dens konfigurasjon og bruk. Det er mange artikler på Internett om selve protokollen, prinsippene for dens drift, krypteringsalgoritmer, etc., for eksempel kan du lese om det i detalj.

    Installasjon

    Installere OpenSSH Du kan bruke kommandoen fra terminalen:

    sudo apt-get install ssh

    ssh-metapakken inneholder både en klient og en server, men denne vil mest sannsynlig kun installere serveren, siden klienten allerede er inkludert i Ubuntu som standard.

    Server Tuning

    SSH installasjon-serveren blir automatisk registrert ved oppstart. Du kan kontrollere start, stopp eller omstart ved hjelp av kommandoene:

    sudo service ssh stop| start| omstart

    Hovedkonfigurasjonsfilen for en SSH-server er filen /etc/ssh/sshd_config, som bare kan leses eller redigeres av superbrukeren. Etter hver endring i denne filen, må du starte ssh-serveren på nytt for å bruke slike endringer.

    Eksempel på standard SSH-serverkonfigurasjon i Ubuntu:

    # Et eksempel på en åpen ssh-serverkonfigurasjon med russiske # # kommentarer..2010. # # # # # # Legende : # # Med "standard" mener vi oppførselen til sshd når # # direktivet ikke er eksplisitt spesifisert. Det er verdt å merke seg at i Ubuntu # # inneholder sshd_config-filen allerede en rekke innstillinger som # # er standardinnstillingene for Ubuntu spesifikt. # # Slike innstillinger er spesifisert i denne filen. # # # ############################################ ############# ################ Adresse/portinnstillinger osv. ########### ##################################### # ###################### # # ## Havn ###################### ### ########################### # # # Port brukt. Du kan spesifisere flere, for eksempel: # # Port 22 # # Port 23 # # Port 24 # # Det anbefales å bruke en ikke-standard port, fordi # # standard skannes ofte av roboter for potensielle # # hull. Kan utelates hvis spesifisert # # via en adresse. Se også ListenAddress-parameteren. # # # Port 22 # # ## ListenAddress ####################################### ### # # # Nettverksadresse som serveren lytter til. Adressen kan # # skrives slik: # # ListenAddress host|IPv4_addr|IPv6_addr # # ListenAddress host|IPv4_addr:port # # ListenAddress :port # # Hvis ingen port er spesifisert, vil sshd lytte på denne adressen og # # på port spesifisert i alternativet Port. Hvis du # # vil bruke ListenAddress uten å spesifisere en port, må # # Port-alternativet gå foran ListenAddress-alternativet. Hvis ikke # # er spesifisert, lytter som standard på alle lokale # # adresser. Du kan angi flere adresser. # # # ## AdresseFamilie ########################################## # # # Spesifiserer hvilken IP-adressefamilie som skal # # brukes av sshd. Mulige alternativer: # # "any" - enhver # # "inet" (kun IPv4) # # "inet6" (kun IPv6) # # Standard - "any". # AddressFamily inet # # ## UseDNS ######################################### # ######## # # # Spesifiserer om sshd skal sjekke vertsnavnet og # # bruke det vertsnavnet for å sjekke IP-adressen sendt av klienten mot # # mottatt fra DNS. # # Standardverdien er "ja". # # # ############################################ ############ ############# Brukertilgangsinnstillinger ############## ####### ############################################### ### # # # Å tillate/ikke tillate en bruker bestemmes av # # DenyUsers, AllowUsers, DenyGroups og AllowGroups-direktivene. # # i dette tilfellet går sjekken fra topp til bunn langs kjeden: # # ## DenyUsers ## # # || # # ## Tillat brukere ## # # || # # ## DenyGroups ## # # || # # ## AllowGroups ## # # Bare bruker- og gruppenavn aksepteres, numeriske # # identifikatorer (bruker-ID) gjenkjennes ikke. Riktig # # opptak av flere brukere/grupper etter tur, atskilt med # # mellomrom. Hvis skrevet i formen bruker@vert, blir # # brukeren og verten sjekket separat, dette lar # # begrense tilgangen til visse brukere fra # # visse verter. Det er verdt å huske at # # DenyUsers og AllowUsers-direktivene tar brukerens # # navn som en parameter, mens DenyGroups og AllowGroups tar # # gruppenavnet. Se PATTERNS i man ssh_config for mer # # informasjon om skjemaene for registrering av bruker- og gruppenavn. # # # ## DenyUsers ########################################## ### # # # Liste over BRUKERE som IKKE KAN bruke sshd. # # Standard - ikke spesifisert = ingen er utestengt. De. hvis # # en bruker er spesifisert her, vil han bli nektet tilgang # # til ssh-serveren. # # # ## Tillat brukere ########################################## ## # # # Liste over BRUKERE som KAN bruke sshd, # # Som standard - ikke spesifisert = tillatt for alle. De. hvis # # minst én bruker er spesifisert, er ssh-tilgang til serveren # # kun tilgjengelig for den brukeren. # # # ## DenyGroups ########################################## ## # # # Liste over GRUPPER som IKKE skal brukes av sshd. # # Standard - ikke spesifisert = ingen gruppe er forbudt. # # Det er hvis minst én gruppe er spesifisert, vil brukere # # inkludert i denne gruppen bli nektet tilgang til ssh # #-serveren. # # # ## Tillat grupper ########################################## # # # # Liste over GRUPPER som sshd KAN bruke. # # Standard - ikke spesifisert = tillatt for alle. De. hvis # # minst én gruppe er spesifisert, vil bare de brukerne# # som er inkludert i den få tilgang til ssh-serveren.# # # ################## # ############################################### ### Alternativer som bestemmer tilkoblingsstatus ############# ############################# ####### ####################### # # ## TCPKeepAlive ############# ######### ####################### # # # Indikerer om systemet trenger å sende TCP-meldinger til klienten # # for å opprettholde forbindelsen. Hvis du sender disse pakkene, # # kan du finne ut om forbindelsen er brutt. Dette betyr imidlertid også # # at forbindelsen kan bli brutt i tilfelle et # # kortvarig rutebrudd og # # dette er veldig irriterende for noen. På den annen side, hvis # # slike meldinger ikke sendes, kan økter på serveren # # vare på ubestemt tid, og skape "spøkelse"-brukere # # og sluke serverressurser. Standardverdien er "ja",# # dvs. sende slike meldinger. For å deaktivere sending av # # slike meldinger, sett verdien til "nei". Tidligere ble dette # # alternativet kalt KeepAlive. Det er verdt å merke seg at # # det er sikrere måter å sjekke statusen til # # en tilkobling (se nedenfor). # # # TCPKeepAlive ja # # ## ClientAliveCountMax #################################### # Angir antall meldinger til klienter som sshd # # sender på rad uten å motta noe svar fra # # klienten. Hvis terskelen er nådd og # # klienten ikke svarer, vil sshd koble fra klienten og avslutte # # ssh-økten. Det er verdt å merke seg at bruken av slike # # meldinger er helt forskjellig fra TCPKeepAlive-direktivet. # # Meldinger til/fra klienter sendes over en kryptert # # kanal og er derfor ikke utsatt for forfalskning. Meldinger # # TCPKeepAlive er utsatt for forfalskning. Klienten i live # #-mekanismen er spesielt verdifull i tilfeller der serveren og klienten trenger # # for å vite når tilkoblingen har blitt inaktiv. Standard # # verdi er 3. I tilfelle ClientAliveInterval # # er satt til 15 og ClientAliveCountMax er igjen på # # standard, vil klienter som ikke reagerer bli frakoblet etter omtrent # # 45 sekunder. Dette direktivet fungerer bare for # # ssh2-protokollen. # # # ## ClientAliveInterval ##################################### # # # sett tidsintervallet i sekunder. Hvis det ikke er noen kommunikasjon med klienten i løpet av # # dette intervallet, sender sshd # # en melding over en kryptert kanal som ber om et # # svar fra klienten. Standard er 0, dvs. # # ikke send slike meldinger. Dette direktivet fungerer bare # # for ssh2-protokollen. # # # ############################################ ############ ################ Generelle autentiseringsalternativer ################ ## ############################################### ######## # # ## AuthorizedKeysFile #################################### # # # # Spesifiserer en fil som inneholder offentlige nøkler # # som brukes til å autentisere brukere. # #-direktivet kan inneholde tokens av formen %M, som settes inn under # # tilkoblingsetableringsprosessen. # # Følgende tokens er definert: # # %% - erstattet med bokstaven "%" # # %h - erstattet med hjemmekatalogen # # til den autentiserte brukeren # # %u - erstattet med navnet på den autentiserte brukeren # # Dermed kan nøkkelfilen spesifiseres som # # på en absolutt måte (dvs. én delt fil med nøkler), og # # dynamisk - avhengig av brukeren (dvs. én # # fil for hver bruker). # # Standard er ".ssh/authorized_keys". # # Eksempel på en nøkkelfil i brukerens hjemmemappe: # # AuthorizedKeysFile %h/.ssh/authorized_key # # Eksempel på en delt fil: # # AuthorizedKeysFile /etc/ssh/authorized_keys # # Se beskrivelsen av filen authorized_keys for mer informasjon. # # # ## ChallengeResponse Authentication ########################## # # # # # # Angir om autentisering av utfordringssvar # # skal tillates). Alle # # typer autentisering fra login.conf støttes. Standard er "yes", # # dvs. tillate. # # På Ubuntu - deaktivert av sikkerhetsgrunner. # # # ChallengeResponse Authentication no # # ## HostbasedUsesNameFromPacketOnly ######################## # # # # Angir hvordan serveren skal hente klientens vertsnavn # # når et autentiseringsskjema basert på vertsverifisering. # # Hvis satt til "yes", vil sshd # # bruke vertsnavnet gitt av klienten når det sjekkes for samsvar i filene # # ~/.shosts, ~/.rhosts eller /etc/hosts.equiv. # # (utfører omvendt DNS-oppløsning) Hvis satt til "nei" # # - vil sshd løse navnet fra selve TCP-tilkoblingen. # # Standard er "nei". # # # ## IgnorerRhosts ########################################## # # # Forhindrer bruk av .rhosts og .shosts-filer # # i vertsbasert autentisering. # # (RhostsRSAAautentisering eller vertsbasert autentisering). # # Filene /etc/hosts.equiv og /etc/ssh/shosts.equiv er fortsatt # # i bruk. # # Standard er "ja". # # # IgnoreRhosts yes # # ## IgnoreUserKnownHosts ################################## # # # Indikerer om sshd skal ignorere bruker # # "kjente verts"-fil ~/.ssh/kjente_verter under # # vertsbasert autentiseringsprosess # # (RhostsRSAAautentisering eller Hostbased Authentication). # # Standard er "nei". # # # ## PermitBlacklistedKeys ################################# # # # Angir om sshd skal aksepteres nøkler svartelistet # # som kompromitterte (kjente kompromitterte # # nøkler (se ssh-vulnkey)). Hvis satt til "ja" - # # vil autentiseringsforsøk med slike nøkler bli logget # # og akseptert, hvis satt til "nei" - vil # # autentiseringsforsøk bli avvist. # # Standard er "nei". # # # ## PermitEmptyPasswords ########################################## I tilfelle av tillatt autentisering med ved å bruke et passord , # # indikerer om pålogging med et tomt passord er mulig. # # Standard er "nei". # # # PermitEmptyPasswords no # # ## PermitRootLogin ##################################### # # # # Indikerer om ssh-pålogging som superbruker # # (root) er mulig. Kan ta følgende verdier: # # "ja" - superbrukeren kan logge inn. Det # # gjeldende globale autentiseringsskjemaet brukes. # # # # "uten passord" - superbrukeren kan logge inn. # # Passordautentisering vil bli deaktivert for det. # # # # "forced-commands-only" - superbrukeren vil kunne logge på med # # autentisering basert på en offentlig nøkkel og # # bare hvis han sender kommandoen som kreves for å bli utført. # # Dette er nyttig for å lage sikkerhetskopier, # # selv når normal (dvs. ikke via ssh) # # superbrukerpålogging er deaktivert. Alle andre # # autentiseringsmetoder for superbrukeren vil bli blokkert. # # # # "nei" - superbrukeren kan ikke bruke ssh til # # pålogging. # # # # Standardverdien er "ja". # # # PermitRootLogin ja # # ## Protokoll ###################################### ######## # # # Spesifiserer hvilken protokoll sshd skal bruke. # # Mulige verdier for '1' og '2' er henholdsvis ssh1 og ssh2 # #. Samtidig skriving er mulig, i så fall # # bør verdiene skilles med komma. # # Standard er “2.1”. # # Det er verdt å merke seg at rekkefølgen på protokollene i # #-oppføringene ikke bestemmer prioriteten, fordi klienten velger hvilken # # av flere protokoller foreslått av serveren # # skal bruke. "2,1"-oppføringen er helt identisk # # med "1,2"-oppføringen. # # # Protokoll 2 # # ## UsePAM ####################################### ########## # # # Aktiverer PAM-grensesnittet (Plugbar autentiseringsmodul # #-grensesnitt). Hvis satt til "ja", vil alle autentiseringstyper # # i tillegg til behandling av sesjon og kontomodul # # PAM-autentisering bli brukt basert på # # utfordring-svar (ChallengeResponse Authentication og # # Password Authentication) Fordi # # challenge-response-autentisering i PAM har generelt den samme rollen # # som passordautentisering, du bør deaktivere # # enten PasswordAuthentication eller # # ChallengeResponseAuthentication. Det er verdt å merke seg at # # hvis UsePAM-direktivet er aktivert, vil du ikke kunne kjøre # # sshd som en annen bruker enn root. # # Standardverdien er "nei". # # # Bruk PAM ja # # ## Passordautentisering ################################# # # # Angir om aktivert om autentisering med # # passord. # # Standard er "ja". # # # ## Vertsnøkkel ########################################## ##### # # # Spesifiserer filen som inneholder den private vertsnøkkelen # # som brukes av SSH. Standard er /etc/ssh/ssh_host_key # # for ssh1-protokollen og /etc/ssh/ssh_host_rsa_key og # # /etc/ssh/ssh_host_dsa_key for ssh2-protokollen. Det er # # verdt å merke seg at sshd ikke vil bruke en fil # # som er tilgjengelig for andre enn brukeren. Du kan # # bruke flere filer med nøkler, nøklene er "rsa1" - # # for ssh1-protokollen og "dsa"/"rsa" for ssh2-protokollen. # # # HostKey /etc/ssh/ssh_host_rsa_key HostKey /etc/ssh/ssh_host_dsa_key # # ############################# ### ########################### ########## Alternativer for SSH-protokoll versjon 1 (ssh1) ### ########## #################################### ### ################### # Det anbefales IKKE på det sterkeste å bruke ssh1-protokollen.# # ssh2-protokollen er mye sikrere enn ssh1 # ### ######## ######################################## ####### # # ## KeyRegeneration Interval ############################### # # # For ssh1-protokoll - én gang på et bestemt tidspunkt # # genereres en ny midlertidig server # #-nøkkel automatisk (hvis en har blitt brukt). Dette gjøres for å # # forhindre at avlyttede økter blir dekryptert for å # # senere logge på maskinen med parameterne for disse øktene og # # stjele nøklene. En slik nøkkel er ikke lagret noe sted (den er lagret i # # RAM). Dette direktivet spesifiserer # # levetiden til nøkkelen i sekunder, hvoretter den vil # # bli generert igjen. Hvis verdien er satt til 0 - # #, vil ikke nøkkelen bli generert igjen. # # Standardverdien er 3600 (sekunder). # # # KeyRegenerationInterval 3600 # # ## RhostsRSAAautentisering ################################ # # # Angir om autentisering basert på # # rhosts eller /etc/hosts.equiv filer i forbindelse med vellykket # # vertsautentisering via RSA. # # Bare relevant for ssh1-protokollen. # # Standard er "nei". # # # RhostsRSAAautentisering nr # # ## RSAAautentisering ##################################### ## # # # Indikerer om "ren" RSA-autentisering er tillatt. # # Bare relevant for ssh1-protokollen. # # Standard er "ja". # # # RSAAautentisering ja # # ## ServerKeyBits ##################################### ### # # # Definerer antall biter i serverens midlertidige nøkkel for # # ssh1-protokollen. Minimumsverdien er 512. # # Standardverdien er 1024. # ServerKeyBits 768 # # ############################### # ########################## ########### SSH-protokoll versjon 2 (ssh2) alternativer ## ## ######## ###################################### ### ################## # # ## Chiffer ###################### ## #################### # # # Indikerer krypteringsalgoritmene som er tillatt for # # ssh2-protokollen. Flere algoritmer må være # # atskilt med komma. Støttede algoritmer: # # “3des-cbc”, “aes128-cbc”, “aes192-cbc”, “aes256-cbc”, # # “aes128-ctr”, “aes192-ctr”, “aes256-ctr”, “ arcfour128", # # "arcfour256", "arcfour", "blowfish-cbc", "cast128-cbc". # # Som standard: # # aes128-cbc,3des-cbc, blowfish-cbc,cast128-cbc,arcfour128, # # arcfour256,arcfour,aes192-cbc,aes256-cbc,aes128-cbc, aes128-ctr, #es -ctr # # # ## Vertsbasert autentisering ################################# # # # Angir om autentisering er aktivert , basert på # # vertsbekreftelse. rhosts eller /etc/hosts.equiv er sjekket, # # og hvis vellykket, kombinert med en vellykket kontroll # # av den offentlige nøkkelen, er tilgang tillatt. Dette direktivet # # er det samme som RhostsRSAAautentiseringsdirektivet og # # er kun egnet for ssh2-protokollen. # # Standard er "nei". # # # Vertsbasert autentisering nr # # ## MAC-er ###################################### ############ # # # Indikerer en gyldig MAC-algoritme (melding # # autentiseringskode). MAC-algoritmen brukes # # av ssh2-protokollen for å beskytte dataintegriteten. Flere # # algoritmer må skilles med komma. # # Standard: # # hmac-md5,hmac-sha1, [e-postbeskyttet],hmac-ripemd160, # # hmac-sha1-96,hmac-md5-96 # # # ## Pubkey Authentication ########################## ########## # # # Indikerer om autentisering basert på # # offentlig nøkkel er tillatt. Bare relevant for ssh2-protokollen. # # Standard er "ja". # # # Pubkey-autentisering ja ############################################ # ############### ################### GSSAPI-alternativer ########### ## ############ ################################## ## ####################### # # ############ Gjelder bare for ssh2-protokollen #### #### ### # # ## GSSAPIAutentisering ##################################### ## # # # Indikerer om brukerautentisering # # er basert på GSSAPI. Standard er "nei", dvs. forbudt. # # # ## GSSAPIKeyExchange ########################################### Angir om nøkkelutveksling basert på # # GSSAPI er tillatt. Nøkkelutveksling med GSSAPI er ikke avhengig av # # ssh-nøkler når du bekrefter vertens identitet. # # Standard er "nei" - dvs. utveksling er forbudt. # # # ## GSSAPICleanupCredentials ############################## # # # Spesifiserer om # # brukerbuffer skal ødelegges automatisk av autentiseringslegitimasjon når # # økt avsluttes. # # Standard er "ja" - dvs. må destrueres. # # # ## GSSAPIStrictAcceptorCheck ############################## # # # Spesifiserer hvor streng identitetskontrollen skal være # # klient ved autentisering via GSSAPI. # # En verdi på "yes" får klienten til å autentisere seg til # # mottakende vertstjeneste på gjeldende vert. Verdien "nei" # # lar klienten autentisere ved hjelp av en hvilken som helst # # tjenestenøkkel. # # Standard er "ja". # # Det er verdt å merke seg at å sette dette til "nei" kan # # bare fungere med sjeldne Kerberos GSSAPI-biblioteker. # # # ############################################ ############ ################### Kerberos-alternativer ################ ########## ###################################### ### ################## # # ## Kerberosautentisering ###################### ### ######## # # # Indikerer om passordet # # gitt av brukeren for autentisering # # (PasswordAuthentication) krever validering i Kerberos KDC. # # For å bruke dette alternativet må serveren # # verifisere at KDC er sann. (Tjeneren trenger en # # Kerberos servtab som tillater verifisering av # # KDCs identitet) # # Standard er "nei". # # # ## KerberosGetAFSToken ###################################### # # # Hvis AFS er aktiv og brukeren har mottatt en Kerberos 5 TGT, # # om det skal forsøkes å skaffe et AFS-token før brukeren # # får tilgang til hjemmemappen sin. # # Standard er "nei". # # # ## KerberosOrLocalPasswd ################################# # # # Indikerer hva som skal gjøres i tilfelle av hvis autentisering # # via Kerberos mislykkes. Hvis # # verdi = "ja", vil passordet bli verifisert ved å bruke # # en hvilken som helst annen lokal autorisasjonsmekanisme, # # for eksempel /etc/passwd. # # Standard er "ja". # # # ## KerberosTicketCleanup ################################ # # # Indikerer om filen skal drepes automatisk med # # brukerbillettbuffer på slutten av økten. # # Standard er "ja". # # # ############################################ ############ ################# Omdirigeringsalternativer ################## # ## ############################################# ## ############ # # ## AllowAgentForwarding ############################# #### ### # # # Spesifiserer om du vil tillate eller deaktivere omdirigering til # # ssh-agent. Standard er "ja", dvs. tillate. # # Det er verdt å merke seg at deaktivering av omdirigering ikke vil # # øke sikkerheten med mindre brukere også # # nektes shell-tilgang, fordi de vil alltid kunne installere # # sine egne agentmotparter. # # # ## AllowTcpForwarding #################################### # # # Angir om tillate eller deaktivere TCP-omdirigering. # # Standard er "ja", dvs. tillate. Det er verdt å merke seg # # at som med AllowAgentForwarding, vil ikke deaktivering av # # omdirigering forbedre sikkerheten så lenge # # brukere har konsolltilgang, fordi de vil kunne # # installere analogene sine. # # # # # ## Gatewayporter ######################################## ## # # # Angir om eksterne verter skal tillate tilgang til # # videresendte porter. Som standard lytter sshd # # for tilkoblinger til videresendte porter bare på det lokale # # loopback-grensesnittet. Dette forhindrer andre eksterne # # verter fra å koble til de videresendte portene. Du kan # # bruke GatewayPorts for å la sshd # # gjøre dette. Direktivet kan ha 3 verdier: # # "nei" - bare tilbakekobling. # # "ja" - alle adresser. # # "klientspesifisert" - adresser spesifisert av klienten. # # # ## Åpen tillatelse ########################################### ## # # # Indikerer hvor TCP-portvideresending er tillatt. # # Spesifisering av en omdirigering må ha en av # # følgende former: # # PermitOpen host:port # # PermitOpen IPv4_addr:port # # PermitOpen :port # # Flere oppføringer kan spesifiseres ved å skille dem med mellomrom. # # Argumentet "any" kan brukes til å fjerne alle # # restriksjoner på portvideresending. Som standard er enhver # # omdirigering tillatt. # # # ## PermitTunnel ########################################## # # # Indikerer om omdirigering av tunenheter er tillatt. # # Kan ta verdier: # # "ja" # # "punkt-til-punkt" (3 nettverkslaget) # # “ethernet” (andre nettverkslag) # # “no” # # Verdien “yes” tillater både “point-to-point” # # og “ethernet”. Standard er "nei". # # # ############################################ ############ ################## Loggingsalternativer ################# ### ############################################# ## ############ # # ## SyslogFacility ############################# ## ######### # # # Setter loggobjektkoden for å skrive meldinger til # # syslog fra sshd. Mulige verdier: # # DAEMON # # USER # # AUTH # # LOCAL0 # # LOCAL1 # # LOCAL2 # # LOCAL3 # # LOCAL4 # # LOCAL5 # # LOCAL6 # # LOCAL7 # # Standard er AUTH. # # # SyslogFacility AUTH # # ## LogLevel ###################################### ######## # # # Angir omfangsnivået til sshd-loggen. # # Mulige alternativer: # # STILLE # # STILLE # # FATAL # # FEIL # # INFO # # VERBOSE # # DEBUG # # DEBUG1 # # DEBUG2 # # DEBUG3 # # Standard er INFO. # # DEBUG og DEBUG1 er ekvivalente med hverandre. # # DEBUG2 og DEBUG3 setter de høyeste nivåene av debug # #-utdata. Logging på DEBUG-nivå truer # # brukerens personvern og anbefales ikke. # # # LoggLevel INFO # # ######################################### ################ ################## X11 omdirigering ############ ######## ######################################## # ################# # # ## X11Videresending ######################## ### ############### # # # Indikerer om X11-grafikkundersystem # # omdirigering er aktivert. Kan ta verdiene "ja" eller "nei". # # Standard er "nei". # # OBS - å aktivere enkel X11-omdirigering er # # en stor risiko for både serveren og klientene, fordi I # # en slik omdirigering aksepterer sshd proxy-skjermen # # tilkoblinger fra alle adresser. Bruk # # X11UseLocalhost-direktivet for å begrense tilgangen til # # Xs omdirigeringsserver. Det er verdt å merke seg at # # deaktivering av omdirigering ikke vil garantere at # # brukere ikke vil kunne omdirigere X11, fordi har # # konsolltilgang, installerer de alltid sin egen # # omdirigerer. X11 omdirigering vil # # automatisk deaktiveres hvis UseLogin # #-direktivet er aktivert. # # # X11Videresending ja # # ## X11UseLocalhost ##################################### ### # # # # Indikerer om sshd skal begrense omfanget av # # X11-videresending til en lokal tilbakekoblingsadresse, eller # # skal tillate adresser. Som standard - sshd # # "planter" X11 omdirigeringsserveren på lokal adresse # # og setter vertsnavndelen av DISPLAY-miljøvariabelen til # # "localhost". Det er verdt å merke seg at # # noen eldre X11-klienter kanskje ikke fungerer med disse # # innstillingene. Standard er "ja", dvs. omdirigering # # er begrenset av den lokale verten, verdien - "no" - deaktiverer # # restriksjoner. # # # ## XAuthLocation ########################################## # # # Spesifiserer hele banen til xauth-programmet. # # Standard er /usr/bin/X11/xauth. # # # ## X11DisplayOffset ########################################### Indikerer nummeret på den første skjermen som er tilgjengelig for sshd som en # # X11 omdirigering. Dette gjøres slik # # at omdirigerte X-er ikke overlapper med # # ekte. Standard er 10. # # # X11DisplayOffset 10 # # ##################################### ## ##################### ################## Ulike alternativer ##### ## ################## ############################ ##### ########################## # # ## Logg innGraceTime ############ ####### ######################## # # # Tid etter at serveren kobler fra # # brukeren hvis han ikke var i stand til logg på # # tilfredsstillende. Verdi 0 - lar brukeren # # logge på på ubestemt tid. Standard er 120 (sekunder). # # # Logg innGraceTime 120 # # ## MaxAuthTries ###################################### ### #### # # # Indikerer maksimalt antall autentiseringsforsøk # # tillatt per tilkobling. # # Når antallet mislykkede forsøk overstiger halvparten av # # spesifisert verdi, vil alle påfølgende forsøk # # bli logget. Standardverdien er 6. # # # ## MaxSessions ##################################### ####### # # # Angir maksimalt antall samtidige tilkoblinger # # for hver nettverkstilkobling. Standard er 10. # # # ## MaxStartups ####################################### ###### # # # Spesifiserer maksimalt antall samtidige # # uautoriserte tilkoblinger til sshd. Hvis # # antall tilkoblinger overskrider grensen, vil alle ytterligere # # tilkoblinger bli droppet inntil gjeldende # # tilkoblinger er fullført enten med vellykket autorisasjon # # eller tidsperioden spesifisert i # # LoginGraceTime-direktivet har utløpt. Standardverdien er 10. # # Du kan eventuelt stille inn tilkoblinger til å tilbakestille tidlig ved å # # spesifisere tre verdier som en parameter, atskilt # # med et kolon "start:rate:full" (for eksempel: "10:30 :60"). # # sshd vil avvise et tilkoblingsforsøk med en sannsynlighet lik # # "rate/100" (dvs. 30 % i vårt eksempel) hvis det allerede er # # "start" (10) uautoriserte tilkoblinger. # # Sannsynligheten øker lineært og eventuelle # # tilkoblingsforsøk vil bli avvist hvis antallet uautoriserte # # tilkoblinger når "full" (60). # # # ## Komprimering ########################################## # # # # Indikerer om datakomprimering er aktivert. Kan være # # "ja" - komprimering er aktivert. # # "forsinket" - komprimering er forsinket til # # brukeren er vellykket autentisert. # # "nei" - komprimering er deaktivert. # # Standard er "forsinket". # # # ## BrukLogg på ########################################## #### # # # Angir om pålogging skal brukes for en # # interaktiv økt. Standardverdien er "nei". # # Det er verdt å merke seg at pålogging aldri har blitt brukt til å # # utføre eksterne kommandoer. Legg også merke til at # # bruk av pålogging vil gjøre det umulig å bruke # # X11Forwarding-direktivet, fordi pålogging ikke vet hva # # skal gjøre med xauth. Hvis # # UsePrivilegeSeparation-direktivet er aktivert, vil det bli deaktivert etter # # autorisasjon. # # # ## UsePrivilegeSeparation #################################### # # # Angir om sshd bør skille privilegier. Hvis ja # #, vil en uprivilegert underordnet # # prosess bli opprettet først for innkommende nettverkstrafikk. Etter vellykket # # autorisasjon vil en annen prosess bli opprettet med rettighetene # # til den påloggede brukeren. Hovedformålet med # # rettighetsseparasjon er å forhindre misbruk av tilgangsrettigheter. # # Standardverdien er "ja". # # # UsePrivilegeSeparation yes # # ## StrictModes ###################################### ### ##### # # # Indikerer om sshd skal sjekke tilgangs- og # # eierskapsmodus for brukermapper og filer før # # lar brukeren logge på. Dette er vanligvis fordi # # nybegynnere ofte gjør filene skrivbare # # av alle. Standard er "ja". # # # StrictModes ja # # ## AcceptEnv ####################################### ####### # # # Spesifiserer hvilke miljøvariabler som sendes # # av klienten som vil bli akseptert. Se SendEnv-alternativet i klienten. # # Det er verdt å merke seg at det kun er mulig å sende variabler # # for ssh2-protokollen. Variabler er spesifisert etter navn, # # masker kan brukes ('*' og '?'). Du kan spesifisere # # flere variabler atskilt med mellomrom, eller dele AcceptEnv i # # flere linjer. Vær forsiktig - noen # # miljøvariabler kan brukes til å omgå # # forbudte brukermiljøer. Bruk dette # #-direktivet nøye. Som standard godtas ingen # # brukermiljøvariabler. # # # AcceptEnv LANG LC_* # # ## PermitUserEnvironment ################################# # ## Spesifiserer om sshd skal akseptere # # ~/.ssh/environment og alternativet environment= i # # ~/.ssh/authorized_keys. Standard er "nei". Det er verdt å merke seg # # at aktivering av miljøbehandling kan gi # # brukere muligheten til å omgå restriksjoner i noen # # konfigurasjoner som bruker mekanismer som # # LD_PRELOAD. # # # # # ## PidFile ######################################### # ####### # # # Spesifiserer en fil som inneholder prosess-ID # # (prosess-ID, PID) til SSH-demonen. # # Standard - /var/run/sshd.pid # # # # # ## PrintLastLog ############################# ############# # # # Spesifiserer om sshd skal vise dato og klokkeslett # # for siste økt når brukeren logger interaktivt. # # Standard er "ja". # # # PrintLastLog ja # # ## PrintMotd ####################################### ####### # # # Spesifiserer om sshd skal vise /etc/motd # # når en bruker logger på interaktivt. På noen # # systemer (for eksempel Ubuntu) vises denne informasjonen også # # av skallet. # # Standardverdien er "ja". # # # PrintMotd no # # ## Banner ####################################### ########## # # # Indikerer hvilken fil som inneholder et tekstbanner som # # vil bli vist til brukeren FØR # # autentiseringsprosedyren. Alternativet er kun tilgjengelig for ssh2-protokollen.# # Som standard - viser ikke noe. # # På Ubuntu inneholder issue.net-filen uttrykket Ubuntu (versjon), # # for eksempel, for karmic er det "Ubuntu 9.10". Kan # # brukes til å desorientere mulige angripere, # # ved å skrive der, for eksempel "My D-Link Interet Router" =) # # # Banner /etc/issue.net # # ## ChrootDirectory ###### ##### ############################# # # # Hvis spesifisert, gir banen til # # chrooted etter autentisering. Banen og alt dens # # innhold må samsvare med mapper # # som eies av superbrukeren og ikke # # kunne skrives av andre brukere. # # Banen kan inneholde etiketter som erstattes under # # autentiseringsprosessen: # # %% - erstattet med bokstaven "%" # # %h - erstattet med hjemmekatalogen # # til den autentiserte brukeren # # %u - erstattet med navnet på den autentiserte brukeren # # chroot -mappen skal inneholde alle nødvendige filer og # # mapper for brukerøkten. En interaktiv # # økt krever minimum: # # et skall, vanligvis sh # # grunnleggende enheter i /dev som: # # null, zero, stdin, stdout, stderr, arandom og tty # # for en dataoverføringsøkt med ingen sftp # # tilleggsinnstillinger ikke nødvendig hvis # # intern sftp-serverprosess brukes. Se undersystem for # # mer informasjon. Som standard utføres ikke chroot. # # # ## ForceCommand ########################################## # # # Fører til at den angitte kommandoen blir utført. Ignorerer # # alle kommandoer sendt av klienten eller skrevet til # # ~/.ssh/rc. Kommandoen kalles fra brukerens # #-skall med alternativet -c. Egnet for å starte et skall, # # kommando eller undersystem. Mest nyttig i en # # Match-blokk. Kommandoen som opprinnelig ble utstedt av klienten er lagret # # i miljøvariabelen SSH_ORIGINAL_COMMAND. Hvis du # # spesifiserer "internal-sftp"-kommandoen, vil # # interne sftp-serveren startes, som ikke trenger de ekstra # # filene og mappene beskrevet i ChrootDirectory-direktivet. # # # ## Undersystem ########################################## ### # # # Definerer og konfigurerer et eksternt delsystem (for eksempel # # filoverføringsdemon). # # Argumentene er navnet og kommandoen (med mulige # # argumenter) som vil bli utført når du ber om # # undersystemer. Kommandoen sftp-server starter "sftp" - # # filoverføringsundersystemet. I tillegg kan du spesifisere # # "intern-sftp" som undersystemet - som vil starte # # den interne sftp-serveren. Dette kan i stor grad forenkle # # konfigurasjon når du bruker # # ChrootDirectory-direktivet. Som standard kalles ingen undersystemer # #. Bare relevant for ssh2-protokollen. # # # Undersystem sftp /usr/lib/openssh/sftp-server # # ################################ ############################ ##################### Kamp Blokkér ########################### #################### ## ################################### # # # Jeg flyttet den spesielt til slutten av filen for å gjøre det mer praktisk # # skriv samsvarsregler. # # MadKox. # # # # Match-direktivet representerer starten på en betinget # # blokk. Hvis alle kriteriene spesifisert i # # Match-linjen er oppfylt, utføres direktivene på påfølgende linjer i blokken, # # slik at verdiene til de globale direktivene i # # sshd_config-filen kan omgås for tilfellet som er kriterier for # # Match-direktivet. En blokk anses å være alle linjer som kommer etter linjen # # med kriteriet (Match - lines) til neste matchlinje # # eller til slutten av filen. Match-direktivets argument er ett eller # # flere par med kriterieoppføringer. Mulige typer oppføringer: # # Bruker # # Gruppe # # Vert # # Adresse # # Oppføringer kan inneholde enten enkeltverdier # # (for eksempel Bruker=bruker) eller flere verdier # # atskilt med komma (Bruker=bruker1 ,bruker2). Regulære uttrykk beskrevet i # # PATTERNS-delen av ssh_config-filen kan også brukes # #. Oppføringer i # # adressekriteriene kan inneholde adresser i CIDR # # (Adresse/Maskelengde, f.eks. "192.0.2.0/24" eller # # "3ffe:ffff::/32") notasjon. Det er verdt å merke seg at den angitte # # maskelengden må samsvare med adressen, og for # # lang/kort for adressen vil ikke fungere. # # Match kan bare bruke # # et spesifikt sett med direktiver som direktiver: # # AllowTcpForwarding # # Banner # # ChrootDirectory # # ForceCommand # # GatewayPorts # # GSSAPIAuthentication # # Hostbased Authentication # # KbdInteractiveAuthentication # # KerberosAuthentication # # MaxAuthentication # # Passordautentisering # # PermitOpen # # PermitRootLogin # # RhostsRSAAautentisering # # RSAAautentisering # # X11DisplayOffset # # X11Videresending # # X11UseLocalHost #

    Du kan kopiere teksten ovenfor til din egen sshd_config og bruke den senere for konfigurasjon.

    I seg selv er en feilkonfigurert SSH-server en enorm sårbarhet i sikkerheten til systemet, siden en mulig angriper har muligheten til å få nesten ubegrenset tilgang til systemet. I tillegg har sshd mange ekstra nyttige alternativer som det er tilrådelig å aktivere for å forbedre brukervennligheten og sikkerheten.

    Port, ListenAddress og AddressFamily

    Disse tre parameterne bestemmer på hvilke porter og adresser serveren din vil lytte etter innkommende tilkoblinger. For det første er det fornuftig, hvis mulig, å begrense familien av adresser som behandles til de som faktisk brukes, dvs. hvis du bare bruker IPv4, deaktiverer IPv6, og omvendt. Dette kan gjøres ved å bruke AddressFamily-parameteren, for eksempel (for å tillate IPv4 og nekte IPv6):

    AdresseFamilie inet

    For det andre er det tilrådelig å endre standardporten (22) som sshd lytter på. Dette skyldes det faktum at mange nettverksskannere De prøver hele tiden å koble til port 22 og i det minste få tilgang ved å bruke brute-forcing pålogginger/passord fra databasen deres. Selv om du har deaktivert passordautentisering, tetter disse forsøkene loggene kraftig og (i store mengder) kan det påvirke hastigheten til ssh-serveren negativt. Hvis du av en eller annen grunn ikke vil endre standardporten, kan du bruke ulike eksterne verktøy for å bekjempe brute forces, for eksempel fail2ban, og innebygde, som MaxStartups.
    Du kan angi porten enten som en absolutt verdi for alle grensesnitt ved å bruke portdirektivet, eller som en spesifikk verdi for hvert grensesnitt ved å bruke ListenAddress-direktivet. For eksempel:

    Port 2002

    ListenAddress 192.168.0.1:2003 ListenAddress 192.168.1.1:2004

    Nekt ekstern tilgang for superbruker

    Som standard er root-tilgang forbudt med passord (med nøkkel er det mulig) - alternativet PermitRootLogin er satt til uten passord . Men forutsatt at brukeren som er lagt til under systeminstallasjonen som standard i Ubuntu har muligheten til å løse alle administrative oppgaver via sudo, oppretter muligheten rot tilgang til systemet via ssh - ser urimelig ut (selv med nøkkelautentisering). Det anbefales å slå den helt av. dette alternativet, eller bruk det bare i tvungen kommandomodus. Du kan deaktivere root-tilgang slik:

    PermitRootLogin-nr

    Passordautentisering

    Passordautentisering, som er tillatt som standard, er praktisk talt den mest primitive metoden for autorisasjon i sshd. På den ene siden forenkler dette konfigureringen og tilkoblingen av nye brukere (brukeren trenger kun å kjenne sin systempålogging/passord), på den andre siden kan passordet alltid gjettes, og brukere unnlater ofte å lage komplekse og lange passord . Spesielle roboter skanner konstant ssh-servere som er tilgjengelige fra Internett og prøver å logge på dem ved å bruke brute-forcing pålogginger/passord fra databasen deres. Det anbefales på det sterkeste å ikke bruke passordautentisering. Du kan deaktivere det slik:

    Passordautentiseringsnr

    Hvis du av en eller annen grunn fortsatt ønsker å bruke passordautentisering, sørg for at ingen kan logge på med et tomt passord. For å gjøre dette, sett PermitEmptyPasswords-direktivet:

    PermitEmptyPasswords no

    Protokollene SSH1 og SSH2

    Som allerede nevnt, kan sshd fungere med SSH1- og SSH2-protokollene. Bruk av usikker SSH1 frarådes imidlertid sterkt. Du kan tvinge sshd til å fungere bare med SSH2-protokollen slik:

    Autentisering basert på SSH2 RSA-nøkler

    Den mest foretrukne autorisasjonsmetoden er autentisering basert på SSH2 RSA-nøkler. Med denne metoden genererer brukeren et par nøkler på sin side, hvorav den ene nøkkelen er hemmelig og den andre er offentlig. Den offentlige nøkkelen kopieres til serveren og brukes til å bekrefte brukerens identitet. For mer informasjon om hvordan du oppretter et nøkkelpar og hvordan du plasserer dem på serveren, se beskrivelsen av SSH-klienten. Du kan aktivere offentlig nøkkelautentisering slik:

    PubkeyAuthentication ja

    Serveren må vite hvor den skal lete etter brukerens offentlige nøkkel. En spesiell fil authorized_keys brukes til dette. Syntaksen kan være som følger:

    # Kommentarer skrives kun på en ny linje # generelt utseende for oppføringer i filen autorised_keys # [alternativer] key_type (ssh-rsa eller ssh-dss) very_long_string_uforståelig for den vanlige mannen [login@host] ssh-rsa AAAAB3Nza...LiPk == [e-postbeskyttet] from="*.sales.example.net,!pc.sales.example.net" ssh-rsa AAAAB2...19Q== [e-postbeskyttet] command="dump /home",no-pty,no-port-forwarding ssh-dss AAAAC3...51R== example.net permitopen="192.0.2.1:80",permitopen="192.0.2.2:25" ssh -dss AAAAB5...21S== tunnel="0",command="sh /etc/netstart tun0" ssh-rsa AAAA...== [e-postbeskyttet]

    Du kan spesifisere enten én delt fil med nøkler, eller én fil for hver bruker. Sistnevnte metode er mer praktisk og sikker, fordi du for det første kan spesifisere forskjellige nøkkelkombinasjoner for hver bruker, og for det andre begrense tilgangen til brukerens offentlige nøkkel. Du kan spesifisere en fil med nøkler ved å bruke AuthorizedKeysFile-direktivet:

    AuthorizedKeysFile %h/.ssh/my_keys

    for skjemabrukeren - fil
    eller

    AuthorizedKeysFile /etc/ssh/authorized_keys

    for et opplegg med en delt fil. Som standard ser SSH-klienten etter nøkler i filen ~/.ssh/authorized_keys.

    Mer om sikkerhet

    Tilleggsinnstillinger

    Brukere og grupper.

    Hvis du har mange brukere som "bor" på serveren din, og du vil tillate tilgang via ssh til bare noen få av dem, kan du bruke direktivene DenyUsers, AllowUsers, DenyGroups og AllowGroups. For mer informasjon om disse direktivene, se kommentarene i sshd_config-eksemplet.

    Alternativer for tilkoblingsstatus

    Som standard, blant metodene for å bestemme tilkoblingstilstanden, er bare TCP-tilkoblingskontrollmetoden aktivert - TCPKeepAlive, men sshd kan bestemme tilkoblingstilstander på mer praktiske og sikre måter. Se den tilsvarende delen i sshd_config-eksemplet for flere detaljer.

    Opptreden. MaxStartups

    Port Forwarding

    X11 omdirigering

    På serveren, i filen /etc/ssh/sshd_config, sett parameteren (aktivert som standard):

    ForwardX11 ja

    På klienten setter du parameterne i filen /etc/ssh/ssh_config (deaktivert som standard):

    ForwardAgent ja ForwardX11 ja

    Du kan kjøre den på klienten slik: ssh yurauname@serverip firefox . Eller gå først til ssh yurauname@serverip og kjør deretter for eksempel sudo synaptic .

    SFTP

    sshd har en innebygd SFTP-server som standard. SFTP-protokoll (SSH Filoverføring Protocol) - SSH-protokoll for overføring av filer. Den er designet for å kopiere og utføre andre filoperasjoner over en pålitelig og sikker tilkobling. Som regel brukes SSH2-protokollen som basisprotokollen som gir forbindelsen. For å aktivere SFTP-støtte, legg til linjen i sshd_config

    Undersystem sftp /usr/lib/openssh/sftp-server

    Som standard er SFTP-støtte aktivert.

    Ved å bruke kriterier. Match direktiv

    Sette opp en SSH-klient

    Pålogging med nøkkel anses som den sikreste, og i de fleste tilfeller er denne funksjonen aktivert på serversiden, så det kreves ingen superbrukerrettigheter for å bruke den. På klientmaskinen genererer vi en nøkkel:

    ssh-keygen -t rsa

    Vi blir bedt om å skrive inn et passord for å beskytte nøkkelfilen (det viser seg å være nyttig hvis filen faller i feil hender). Hvis vi skal kjøre skript via SSH, lar vi det stå tomt. Vi overfører den offentlige nøkkelen til serveren med kommandoen

    Ssh-copy-id -i ~/ .ssh/ id_rsa.pub bruker@ server

    Det er det, du kan komme inn.

    Når ssh kjører på en ikke-standard port:

    Ssh-copy-id -i ~/ .ssh/ id_rsa.pub "-p port bruker@server"

    Hvis det oppstår en feil: Dårlig port "umask 077; test -d .ssh || mkdir .ssh ; cat >> .ssh/authorized_keys"

    prøv å sette parameterne i anførselstegn:

    Ssh-kopi-id "-i /home/user/.ssh/id_rsa.pub "-p port bruker@server""

    Det er praktisk å bruke skjermverktøyet når du kobler til et eksternt system.

    Sette opp en ekstern ssh-katalog i Nautilus

    Montering av en ekstern katalog ved hjelp av sshfs

    Montering av en ekstern katalog til en lokal katalog

    sshfs bruker@ hostingserver.ru:/ home/ userdir ~/ sshfsdir

    Avmontering

    Fusermount -u ~/ sshsfdir

    SSH-aliaser

    Når du bruker flere servere med forskjellige tilgangsparametere (ikke-standard port, langt vertsnavn, annen pålogging enn den lokale osv.), er det noen ganger kjedelig å legge inn alle tilkoblingsinnstillingene på nytt hver gang. For å gjøre dette enklere kan du bruke aliaser.

    Innstillinger lagres i ~/.ssh/config for en enkelt bruker og i /etc/ssh/ssh_config globalt for alle brukere.

    Eksempel konfig. Flere servere kan beskrives. Flere detaljer i mann ssh_config(ikke å forveksle med sshd_config)

    Vertsaliasnavn # Vilkårlig vertsnavn Vertsnavn 1.2.3.4 # Du kan spesifisere både IP og vertsnavn (hvis DNS kjører) User YourUserName # Hvis brukeren ikke samsvarer med den lokale brukeren Port YourSSHPort # Hvis en ikke-standard port

    Etter dette kan du koble til serveren med kommandoen

    ssh AliasName

    ssh-agent

    Diagnostisere tilkoblingsproblemer

      Tilkoblingslogganalyse:

    ssh -vvv bruker@ vert

      Analyse av klient- og serverkonfigurasjonsfiler.

    Plasseringen av konfigurasjonsfilene finner du i

    Mann ssh mann sshd

    Bruke smartkort

    1. Å lage et sertifikat og eksportere en offentlig nøkkel, samt klientdelen på Windows + Putty SC, er beskrevet på nettstedet: http://habrahabr.ru/post/88540/ Key Manager-tillegget som er beskrevet der er kun tilgjengelig i eldre versjoner av Firefox. Testet på versjon 3.5 for Windows. Direkte lenke til tillegget: https://addons.mozilla.org/ru/firefox/addon/key-manager/

    2. Klargjøring av serveren. Du må sørge for at sshd-konfigurasjonen tillater autentisering ved hjelp av offentlige nøkler. For å gjøre dette, må du spesifisere verdien av "PubkeyAuthentication"-parameteren til "yes" i "sshd_config"-filen. Deretter legger vi til vår offentlige nøkkel hentet tidligere (på én linje) til filen "~/.ssh/authorized_keys". Vær oppmerksom på at ".ssh/authorized_keys"-filen ligger i hjemmekatalogen til brukeren som deretter vil logge på med den offentlige nøkkelen.

    3. Klientdel på Linux. Du må gjenoppbygge OpenSSH-pakken uten parametere. Det anbefales kun å spesifisere katalogprefikser, for eksempel –prefix=/usr. Du bør også merke deg at konfigurasjonsfilene vil være i /usr/etc. Før du starter trenger du følgende pakker: opensc-lite-devel, zlib-devel, openssl-devel. Installer smartkortdriveren. For enkelhets skyld, i ssh_config-konfigurasjonen (må ikke forveksles med sshd_config), spesifiser banen til pkcs-biblioteket: PKCS11Provider=<путь к библиотеке>

    4. Kjør ssh user@host på klienten. Hvis smartkortet (token) er tilkoblet, vil du bli bedt om et passord og logget på SSH-sesjonen.

    Mulige problemer ved hjelp av

    Den vanlige tastekombinasjonen Ctrl + S, brukt i mange redaktører for å lagre rettelser, når du arbeider i en terminal med en ssh-server, vil føre til utførelse av XOFF-kommandoen, som overfladisk ligner en sesjonsfrysing. Det er det imidlertid ikke. Serveren fortsetter å godta inndatategn og kommandoer, men viser det ikke på skjermen. For å komme ut av denne knipen, bruk bare kombinasjonen Ctrl + Q, for derved å slå på XON-modusen tilbake.

    Lenker

    Det vil si at bruker1 kan registreres både for seg selv - i filen /home/user1/.ssh/keys) og for en annen bruker, som vil tillate ham å logge inn fra datamaskinen både "under seg selv" og under "en annen"

    SSH (Secure Shell) er en nettverksprotokoll designet for ekstern serveradministrasjon og dataoverføring over TCP-krypterte tilkoblinger. De fleste hostingtjenester, også virtuelle, gir i dag tilgang via både FTP og SSH. Etter min mening er dette flott, SSH er mye mer praktisk og tryggere å bruke.

    Sette opp SSH

    Oppsettet vil finne sted for en dedikert server, VDS, VPS på Debian, Ubuntu. Konfigurasjonsfilen ligger her: /etc/ssh/sshd_config.
    Hvis du har vanlig hosting, bør alt være konfigurert som det skal, gå til seksjonen.

    Som standard trenger SSHD-demonen (som er det vi gjør endringer i) ingen innstillinger og fungerer fint. Vi vil kun gjøre et par små endringer for å begrense tilgangen til uønskede personer til serveren.

    Hvis du gjør feil endringer i konfigurasjonsfilen, kan du miste tilgangen til serveren via ssh, så sørg for at du har alternative alternativer for å få tilgang til den, for eksempel ved å bruke ISPManager-kontrollpanelet.

    Hvordan begrense SSH-tilgang

    Alle endringer er gjort i /etc/ssh/sshd_config
    For at endringene skal tre i kraft, må du

    Bytt port

    Havn 9724

    Nå, når du godkjenner, må du spesifisere 9724 i stedet for standard 22-port.
    Metoden er veldig enkel og effektiv mot de fleste enkle hackerroboter som banker på standardporter. Hovedsaken her er ikke å skape konflikt med andre tjenester og velge et nummer som åpenbart er ubrukt.

    Deaktiver kommunikasjon med den gamle protokollen

    Her definerer vi at kommunikasjon kun er mulig ved å bruke v2-protokollen

    Hvis du ikke er logget inn rot, før alle konsollkommandoer må du legge til sudo - det står for Erstatningsbruker og GJØR- bytt ut brukeren og gjør (under ham). For eksempel lar den deg utføre kommandoer som en superbruker rot.

    Reduser antall autorisasjonsforsøk

    MaxAuthTries 2

    Antall passordforsøk. Standard er 6. Hvis søket mislykkes, avsluttes kommunikasjonsøkten.

    Reduser autorisasjonsventetiden

    Logg innGraceTime 30s

    Som standard kan en autorisasjonsøkt vare i 120 sekunder. Etter denne tiden er det slutt. 2 minutter for autorisasjon er overkill; hele denne tiden holder serveren tilkoblingen åpen, noe som er veldig irrasjonelt. Et halvt minutt er nok.

    Lukk IP-tilgang

    Før du setter opp IP-restriksjoner, sørg for at i tilfelle feil i innstillingene og påfølgende utestengelse av din egen IP, vil du ha en alternativ måte å gjenvinne tilgang til serveren

    Hvis bare du trenger tilgang, er den enkleste og mest pålitelige måten å blokkere tilgang fra alle steder bortsett fra IP-en din eller, hvis den er dynamisk, IP-området.

    1. Åpne /etc/hosts.allow og legg til SSHD der: 192.168.1.1

      hvor 192.168.1.1 er din IP. Hvis du har en dynamisk IP, definer en IP med en subnettmaske og skriv ned subnettet i stedet for IP, for eksempel:

      SSHD: 192.168.0.0/16

    2. Åpne /etc/hosts.deny og legg til der: SSHD: ALL

    En annen måte å begrense tilgang via IP

    Du kan bruke følgende direktiv:

    Tillat brukere = *@1.2.3.4

    Her tillater vi kun tilgang for IP 1.2.3.4

    SSH-autorisasjon med nøkler

    Det vil være mye tryggere, mer praktisk og riktig å sette opp ssh-autorisasjon uten passord. For dette formålet vil nøkkelautorisasjon bli brukt.

    Så her er instruksjonene.

    Du kjøpte din første VPS, eller kanskje til og med en server med en gang. Du har sikkert et nettpanel for å administrere det. Men harde administratorer går alltid gjennom konsollen 😉 Derfor må vi lære hvordan vi gjør dette. I denne leksjonen vil vi installere PuTTY-programmet, koble til serveren via SSH-protokollen, og lære hvordan vi bestemmer den okkuperte og ledige plassen på serveren.

    Putty-program for å koble til en server via SSH-protokoll

    Last ned Putty fra nettstedet putty.org For meg selv laster jeg ned versjonen " For Windows på Intel x86 - PuTTY: putty.exe"

    Pakk ut arkivet og start programmet.

    Slik ser programvinduet ut etter oppstart. Jeg har allerede skrevet inn IP-adressen til serveren min i feltet "Vertsnavn (eller IP-adresse)":

    Skriv inn domenet eller IP-adressen til serveren din og klikk på "Åpne"-knappen. Et ledetekstvindu åpnes. Den ber oss om brukernavn og passord. Skriv først inn påloggingsinformasjonen din, deretter passordet ditt. Vær oppmerksom, når du skriver inn passordet, skrives ikke tegnene ut på skjermen, selv stjernene *** skrives ikke ut. Derfor skriver vi inn passordet som blindt. Enter og trykk Enter. Hvis passordet ble skrevet inn riktig, vil du bli logget på serveradministrasjonskonsollen. En linje med siste påloggingstid og informasjon om operativsystemet vises.

    Kommandoer i konsollen

    pwd

    df

    Kommandoen df viser mengden ledig og brukt plass på serveren, på tvers av alle monterte filsystemer

    du

    Du-kommandoen viser hvor mye plass en mappe eller fil tar opp.
    Eksempel på kommando:

    Du -h /home/

    Denne kommandoen viser hvor mye plass /home/-katalogen tar opp.

    Det er alt. Det første bekjentskapet med å koble til en server via SSH og kittprogrammet er over. Ved å bruke denne informasjonen kan du gå til serveren og se hvor mye plass dataene tar opp på den.



    
    Topp