Csatlakozzon egy virtuális szerverhez SSH-n és SFTP-n keresztül. Csatlakozás a szerverhez SSH-n és SFTP-n keresztül Csatlakozás ssh-n keresztül putty-n keresztül

Mi az SSH és miért van rá szüksége?

A Secure Shell (SSH) egy hálózati protokoll, amely shell-funkciókat biztosít egy távoli gép számára egy biztonságos csatornán keresztül. Az SSH különféle biztonsági fejlesztésekkel érkezik, beleértve a felhasználó/gazda hitelesítést, az adattitkosítást és az adatintegritást, ami lehetetlenné teszi az olyan népszerű támadásokat, mint a lehallgatás, a DNS/IP-hamisítás, az adathamisítás és a kapcsolateltérítés stb. Az adatokat tiszta szövegben továbbító protokoll esetén erősen ajánlott az SSH-ra váltani.

Az OpenSSH az SSH protokoll nyílt forráskódú megvalósítása, amely lehetővé teszi a hálózati kapcsolat titkosítását egy sor programon keresztül. Ha SSH-t szeretne Linuxon, akkor telepítheti az OpenSSH-t, amely egy OpenSSH-kiszolgálóból és ügyfélcsomagokból áll.

Az OpenSSH szerver/kliens csomagok a következő segédprogramokkal érkeznek:

  • OpenSSH szerver: sshd (SSH démon)
  • OpenSSH kliens: scp (biztonságos távoli másolat), sftp (biztonságos fájlátvitel), slogin/ssh (biztonságos távoli bejelentkezés), ssh-add (privát kulcs befejezése), ssh-agent (hitelesítési ügynök), ssh-keygen (hitelesítési kulcskezelés) ).
OpenSSH szerver és kliens telepítése Linuxra

Ha telepíteni szeretné az OpenSSH-kiszolgálót/klienst, és be szeretné állítani, hogy az OpenSSH-kiszolgáló automatikusan elinduljon, kövesse az alábbi utasításokat, amelyek a terjesztéstől függően változnak.

Debian, Ubuntu vagy Linux Mint

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

Debian alapú rendszereken a telepítés után az OpenSSH automatikusan elindul a rendszerindításkor. Ha valamilyen okból az OpenSSH-kiszolgáló nem indul el automatikusan a rendszer indításakor, akkor a következő parancs futtatásával kifejezetten hozzáadhatja az ssh-t a rendszerindításhoz.

$ sudo update-rc.d ssh defaults

Fedora vagy CentOS/RHEL 7

$ sudo yum -y install openssh-server openssh-clients $ sudo systemctl sshd szolgáltatás elindítása $ sudo systemctl sshd.service engedélyezése

CentOS/RHEL 6

$ sudo yum -y install openssh-server openssh-clients $ sudo service sshd start $ sudo chkconfig sshd on

Arch Linux

$ sudo pacman -Sy openssh $ sudo systemctl sshd szolgáltatás indítása $ sudo systemctl engedélyezése sshd.service

OpenSSH szerver beállítása

Ha be szeretné állítani az OpenSSH-kiszolgálót, szerkesztheti az /etc/ssh/sshd_config fájlban található, rendszerszintű konfigurációs fájlt.

Van néhány OpenSSH lehetőség, amelyek érdekesek lehetnek:
Alapértelmezés szerint az sshd a 22-es porton figyel, és figyel a bejövő ssh-kapcsolatokra. Az ssh alapértelmezett portjának megváltoztatásával megelőzheti a különféle automatizált hackertámadásokat.
Ha a gépen több fizikai hálózati interfész is van, érdemes megnézni, hogy melyik van társítva az sshd-vel, ehhez használhatja a ListenAddress opciót. Ez a beállítás javítja a biztonságot azáltal, hogy a bejövő SSH-t csak egy adott interfészre korlátozza.

HostKey /etc/ssh/ssh_host_key

A HostKey opció határozza meg, hogy hol található a személyes gazdagép kulcs.

PermitRootLogin sz

PermitRootLogin opció – a root be tud-e jelentkezni a rendszerbe ssh-n keresztül.

AllowUsers alice bob

Az AllowUsers opcióval szelektíven letilthatja az ssh szolgáltatást bizonyos Linux-felhasználók számára. Több felhasználót is megadhat, szóközökkel elválasztva.

Az /etc/ssh/sshd_config módosítása után feltétlenül indítsa újra az ssh szolgáltatást.

Az OpenSSH újraindítása Debian, Ubuntu vagy Linux Mint rendszeren:

$ sudo /etc/init.d/ssh újraindítás

Az OpenSSH újraindítása Fedora, CentOS/RHEL 7 vagy Arch Linux rendszeren:

$ sudo systemctl indítsa újra az sshd.service fájlt

Az OpenSSH újraindítása CentOS/RHEL 6 rendszeren:

$ sudo szolgáltatás sshd újraindítás

Hogyan csatlakozz az SSH-hoz

Csatlakozás az SSH-hoz Linuxról

A Linux-felhasználóknak nem kell további programokat telepíteniük.

Csatlakozás az SSH-hoz a Windows rendszerből

A vendégek elől rejtve

.

A Cygwin több, mint egy SSH-kliens. Ez egy hatékony kombináló, amely számos Linux-parancsot támogat. Például a Cygwin nagyon megkönnyíti az SSL-tanúsítványok létrehozását (csakúgy, mint a Linux). Windowsban az önaláírt tanúsítványok létrehozásához egy tamburával kell táncolnia. A Cygwin nagyon kényelmes a cURL használata (nem kell semmit külön telepíteni), stb. Akinek hiányzik a parancssor és a Linux-programok Windowson, az a Cygwinben talál konnektort.

A Cygwin telepítése egyszerű. Menjünk-hoz

A vendégek elől rejtve

És töltse le

A vendégek elől rejtve

A vendégek elől rejtve

Egy apró fájl fog letöltődni – ez a telepítő. Grafikus telepítő. Bár számos lehetőséget tartalmaz, ezek mindegyike meglehetősen egyszerű, és sok más grafikus telepítőből is ismert. Ha valami nem világos, kattintson a „Tovább” gombra. Talán csak a következő ablak okozhat zavart:

Itt bemutatjuk az összes telepíthető elemet. Nem kell most megértenünk őket. Mert a legnépszerűbbek már beépítésre vannak jelölve. És ha valami hiányzik a jövőben, könnyen telepítheti, amire szüksége van.

SSH-kapcsolat (Linux-on és Windows-on közös)

A Linux-felhasználók megnyitják a konzolt, a Windows-felhasználók pedig a Cygwin-t írják be.

Az SSH-nak a következő információkra van szüksége a csatlakozáshoz:

  • IP vagy gazdagépnév
  • portszám
  • Felhasználónév
  • felhasználói jelszó
Az SSH ezen paraméterek közül kettőt kitalál: a felhasználónevet és a portszámot. Ha nincs megadva port, a rendszer az alapértelmezett portot feltételezi. Ha nincs megadva felhasználó, akkor a rendszer ugyanazt a nevet használja, mint azon a rendszeren, amelyről a kapcsolat létrejön. Például a kapcsolat hosztcíme 192.168.1.36. Ha tárcsázom

Ssh 192.168.1.36

A következőt látom

Alex@MiAl-PC ~ $ ssh 192.168.1.36 A "192.168.1.36 (192.168.1.36)" gazdagép hitelessége nem állapítható meg. Az ECDSA-kulcs ujjlenyomata: SHA256:sIxZeSuiivoEQ00RXEAQHP Biztosan csatlakozni akar8 ing ( igen nem)?

Mivel először csatlakozom a gazdagéphez, ez egy ismeretlen gazdagép. Megkérdezik, hogy akarom-e folytatni. tárcsázom Igen:

Figyelmeztetés: „192.168.1.36” (ECDSA) véglegesen hozzáadva az ismert gazdagépek listájához. [e-mail védett]" jelszava:

Oké, a 192.168.1.36 gazdagép felkerült az ismerős gazdagépek listájára. Jelszót kérek Alex felhasználóhoz. Mivel nincs ilyen felhasználó a szerveren SSH-val, de kattintok Ctrl+C(törni), és írja be a parancsot a távoli rendszer felhasználónevével együtt. A felhasználó a távoli gép címe elé kerül, és a @ szimbólum választja el a címtől. A @ szimbólum angol nyelven a következőnek felel meg, és „in”-nek fordítható. Azok. rekord [e-mail védett]értelmezhető: "mial user a 192.168.1.36 gépen".

Ssh [e-mail védett]

Az Alex@MiAl-PC meghívót a mial@mint meghívó váltotta fel. Ez azt jelenti, hogy már a távoli gépen vagyunk, azaz már létrehoztuk a kapcsolatot. Ha meg kell adni egy portot (ha eltér a szabványostól), akkor a portot a -p kapcsoló után kell megadni. Például így:

Ssh [e-mail védett]-p 10456

Csatlakozás után valami ilyesmi fogad minket:

Linux mint 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1 (2015-05-24) x86_64 A Debian GNU/Linux rendszerhez tartozó programok ingyenes szoftverek; az egyes programok pontos terjesztési feltételei a /usr/share/doc/*/copyright fájlokban találhatók. A Debian GNU/Linux TELJESEN NINCS GARANCIA, a vonatkozó törvények által megengedett mértékig. Utolsó bejelentkezés: 2015. június 16. kedd 15:32:25 192.168.1.35-től

Ebből következik, hogy a távoli gép Linux Mint, 3.16-os kernel, 64 bites verzióval. Szintén fontos információ az utolsó bejelentkezés időpontja és az IP-cím, ahonnan a kapcsolat jött. Ha az idő és az IP ismeretlen számodra, és Ön az egyetlen felhasználó, akkor rendszere veszélybe került, és meg kell tennie a megfelelő lépéseket.

Írjunk be néhány parancsot, hogy megbizonyosodjunk arról, hol vagyunk és kik vagyunk: pwd, [B]uname -a stb.:

A munkamenet befejezéséhez (kijelentkezés) tárcsázza

Vagy kattintson Ctrl+D.

Jelentkezzen be az SSH-ba jelszó megadása nélkül

Először is, sokkal kényelmesebb. Másodszor, biztonságosabb.

Először is létre kell hoznunk az rsa kulcsokat. Ha Linux felhasználó vagy, akkor minden rendben van. Ha Ön Windows-felhasználó, de nem hallgatta meg a tanácsomat, és a PuTTY-t választotta, akkor van egy problémája, és gondolja át, hogyan oldja meg. Ha Cygwin van, akkor is minden rendben van.

Ha sikerült bejelentkeznie a távoli rendszerbe, jelentkezzen ki. Ezt követően tárcsázza

Ssh-keygen -t rsa

Kérünk egy fájlnevet, nem kell semmit beírnunk, az alapértelmezett név kerül felhasználásra. Jelszót is kér. Nem írom be a jelszót.

Most a távoli gépen létre kell hoznunk egy .ssh könyvtárat. A parancs távoli gépen történő végrehajtását az alábbiakban tárgyaljuk. Egyelőre csak másolja a parancsot, ne felejtse el megváltoztatni az IP-címet és a felhasználónevet a sajátjára:

Ssh [e-mail védett] mkdir.ssh

Most át kell másolnunk az id_rsa.pub fájl tartalmát a távoli gépre. Ezt nagyon könnyű megtenni (ne felejtse el megváltoztatni az adatokat a sajátjaira):

Cat .ssh/id_rsa.pub | ssh [e-mail védett]"macska >> .ssh/authorized_keys"

Most csak bejelentkezünk, és többé nem kérnek tőlünk semmilyen jelszót. És ez most mindig így lesz.

Parancsok végrehajtása távoli szerveren shell-munkamenet létrehozása nélkül

Amellett, hogy shell-munkamenetet nyit egy távoli rendszeren, az ssh lehetővé teszi egyedi parancsok végrehajtását is a távoli rendszeren. Ha például a tree parancsot egy remote-sys nevű távoli gépen szeretné futtatni, és az eredményeket megjeleníteni a helyi rendszeren, tegye a következőket:

Ssh remote-sys fa

Az igazi példám:

Ssh [e-mail védett] fa

Ezzel a technikával érdekes dolgokat hajthat végre, például futtathat egy ls parancsot egy távoli rendszeren, és átirányítja a kimenetet egy fájlba a helyi rendszeren:

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

Valódi példa:

Ssh [e-mail védett]"ls *" > dirlist.txt cat dirlist.txt

Jegyezze fel az idézőjeleket a fenti parancsban. Ez azért van, mert nem akarjuk, hogy az elérési út kibővítése a helyi gépen történjen; mert szükségünk van erre a végrehajtásra egy távoli rendszeren. Továbbá, ha a szabványos kimenetet át akarjuk irányítani egy fájlra a távoli gépen, akkor az átirányítási utasítást és a fájl nevét idézőjelbe helyezhetjük:

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

A szabványos kimenet átvitele a helyi gépről a távoli gépre ssh-n keresztül

A parancsok végrehajtására egy hasonlóan érdekes lehetőség egy kicsit magasabb:

Cat .ssh/id_rsa.pub | ssh [e-mail védett]"macska >> .ssh/authorized_keys"

  • A cat parancs soronként olvassa, és megjeleníti a helyi gépen található .ssh/id_rsa.pub fájl tartalmát.
  • | (pipe) átadja azt, ami a szabványos kimeneten jelenne meg egy másik parancsnak.
  • A neki átadott karakterláncokat feldolgozó parancs helyett egy kapcsolat jön létre a távoli rendszerrel (ssh [e-mail védett]).
  • A távoli rendszer fogadja azokat a vonalakat, amelyekhez a cat >> .ssh/authorized_keys parancs tartozik. Azok. a szabványos kimenet tartalma soronként a távoli gépen található .ssh/authorized_keys fájlba kerül.
Távoli számítógépen található grafikus program megnyitása

A következő trükkhöz két Linux-számítógép szükséges. Sajnos még Cygwin sem tudja kezelni ezt a trükköt. Ezenkívül mindkét Linux rendszernek rendelkeznie kell grafikus felhasználói felülettel.

Alagútépítés SSH-val

Többek között, ami akkor történik, amikor SSH-n keresztül kapcsolatot létesítenek egy távoli gazdagéppel, az egy titkosított alagút létrehozása, amely a helyi és a távoli rendszer között jön létre. Általában ezt az alagutat használják annak biztosítására, hogy a helyi gépen beírt parancsokat biztonságosan továbbítsák egy távoli gépre, és az eredményt is biztonságosan visszaküldjék.

Ezen az alapvető funkción túlmenően az SSH protokoll lehetővé teszi a legtöbb forgalom titkosított alagúton történő továbbítását, egyfajta VPN-t (virtuális magánhálózat) hozva létre a helyi és távoli rendszerek között.

Ezek közül a szolgáltatások közül talán a leggyakrabban használt lehetőség az X Window rendszerek forgalmának sugárzására. X szervert futtató rendszeren (ezek grafikus felhasználói felülettel rendelkező gépek) lehetőség van egy X kliensprogram (grafikus alkalmazás) futtatására a távoli rendszeren, és a helyi rendszeren megtekintheti működésének eredményét. Könnyű megtenni. Például csatlakozni akarok a távoli host remote-sys-hez, és azon szeretném futtatni az xload programot. Ezzel egyidejűleg a program grafikus kimenetét is láthatom a helyi számítógépen. Ez így történik:

Ssh -X remote-sys xload

Valódi példa:

Ssh -X [e-mail védett] gedit

Azok. Az SSH a -X kapcsolóval indul. És akkor a program egyszerűen elindul. Nézd meg a képernyőképet.

Kali Linuxon vagyok. Sikeresen bejelentkeztem egy távoli számítógépre SSH-n keresztül. Utána lefuttattam a gedit programot. Lehet, hogy ez a program nem is Kali Linuxon van, de Linux Minton biztosan van, amihez csatlakoztam. Ennek a programnak az eredményét úgy látom a képernyőn, mintha a program helyben futna. De még egyszer szeretném, ha megértenéd, a helyi számítógépen nem fut gedit program. Ha el akarom menteni a gedit (vagy bármely más, így megnyitott program) eredményét, akkor kiderül, hogy működik a távoli számítógép környezetében, látja annak fájlrendszerét stb. Ez akkor kényelmes, ha be szeretné állítani a távoli számítógép grafikus felületet használva.

Ugyanebben a cikkben később, a „VNC konfigurálása SSH-n keresztül” részben megtudhatja, hogyan lehet képet átvinni a teljes asztalról.

Egyes rendszereken ehhez a trükkhöz az -Y kapcsoló használata szükséges az -X opció helyett.

Másolás távoli számítógépről/távoli számítógépre (scp és sftp)

scp

Az OpenSSH-csomag két olyan programot is tartalmaz, amelyek titkosított SSH-alagutat használnak a fájlok hálózaton keresztüli másolására. Első program - scp("biztonságos másolat") - gyakrabban használják, mint a hasonló cp-program fájlok másolására. A legszembetűnőbb különbség az, hogy a fájl forrása lehet a távoli gazdagép, amelyet kettőspont követ, és a fájl helye. Ha például egy document.txt nevű dokumentumot szeretnénk átmásolni a saját könyvtárunkból a remote-sys-be a helyi rendszerünk aktuális munkakönyvtárában, akkor ezt megtehetjük:

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

Valódi példa:

# törölje a fájlt a helyi gépen, ha létezik rm dirlist.txt # hozzon létre egy fájlt a távoli gépen ssh [e-mail védett]"ls * > dirlist.txt" # ellenőrizze a jelenlétét ssh [e-mail védett]"ls -l" # másolja a helyi gépre scp [e-mail védett]:dirlist.txt. # ellenőrizze a tartalmát cat dirlist.txt

  • [e-mail védett]- felhasználónév és távoli gazdagép,
  • . (pont) azt jelenti, hogy a fájlt a távoli szerver aktuális munkakönyvtárába kell másolni, de a fájlnév változatlan marad, azaz nfile.txt
  • Memo:

    Fájl másolása B-ből A-ba, amikor bejelentkezett B-be:
    scp /elérési út/fájl felhasználónév@a:/útvonala/cél
    Fájl másolása B-ből A-ba, amikor bejelentkezett A-ba:
    scp felhasználónév@b:/fájl/elérési útja/cél/útvonal

    sftp

    A második program a fájlok másolására SSH-n keresztül sftp. Ahogy a neve is sugallja, ez egy biztonságos ftp programcsere. Az sftp úgy működik, mint az eredeti ftp program. Azonban ahelyett, hogy tiszta szöveget küldene, titkosított SSH-alagutat használ. Az sftp fontos előnye az ftp-vel szemben, hogy nem igényel futó FTP-kiszolgálót egy távoli gazdagépen. Csak SSH szerver kell hozzá. Ez azt jelenti, hogy bármely távoli gép, amely SSH-kliensen keresztül csatlakozik, FTP-szerű szerverként is használható. Íme egy példa munkamenet:

    Alex@MiAl-PC ~ $ sftp [e-mail védett] Csatlakozva a 192.168.1.36-hoz. sftp> ls dirlist.txt newfile.txt nfile.txt temp Videók Dokumentumok Letöltések Képek Zene Nyilvános asztali sablonok sftp> lls dirlist.txt nfile.txt sftp> ls temp temp/TakeMeHome sftp> cd temp/TakeMeHome mial/temp/TakeMeHome to TakeMeHome sftp> bye

    Az SFTP protokollt számos grafikus fájlkezelő támogatja, amelyek megtalálhatók a Linux disztribúciókban. A Nautilus (GNOME) és a Konqueror (KDE) használatával egyaránt megadhatjuk az sftp://-től kezdődő URI-kat (hivatkozásokat) az ugrósávban, és dolgozhatunk egy SSH-kiszolgálót futtató távoli rendszeren található fájlokkal.

    Helló! Érdekel a kérdés: hogyan lehet SSH-n keresztül csatlakozni otthoni számítógépéhez az interneten keresztül. Van otthon telepítve egy FreeSSHd szerverem. Ha jól értem, valahogy meg kell nyitnom a 22-es portot a külső IP-n? Alex

    Igen, gyakran felmerül az igény. Sok mindenről beszéltem abban a cikkben, de itt kizárólag az SSH-ról lesz szó, hiszen Alex kedvesen biztosította számunkra ezt a lehetőséget. Emellett engem is hihetetlenül érdekel az SSH, és itt van Windowson is... mmm.

    Mi az SSH és miért van rá szükség?

    A lényeg, hogy az SSH az S biztonságos SH ell. Protokoll a vezérlőhéjhoz való biztonságos hozzáféréshez. Ezért kifejezetten a parancssorhoz biztosít hozzáférést, mivel a Shell így van lefordítva héjés itt a jelentésben szövegvezérlő shell. De általánosságban ez a protokoll figyelemre méltó arról, hogy lehetővé teszi bármilyen más forgalom áthaladását rajta, és titkosított formában. Így a biztonságos fájlrendszer-kapcsolati protokoll neve SFTP, és az SSH-n fut. De teljesen bármilyen más kapcsolatot képes alagútba vezetni – legyen az HTTP vagy akár RDP. Lényegében kiderül, hogy ez egy „térdre húzódó VPN”.

    Itt Alex már elvégezte a munka felét: telepítette és elindította a FreeSSHd-t otthoni számítógépén. Ez lehetővé teszi, hogy SSH-n keresztül csatlakozzon a Windowshoz. Ebben az esetben az „engedélyezést” nagyon határozottan mondják. Mert Windowson ez a megoldás valahogy működik. Először is, nincs megfelelő szöveges felülete - parancssor a vezérléshez.

    Legalábbis a szokásos - cmd - segítségével keveset tehetsz a távoli géppel. Van még Powershell - ez egy modernebb és erősebb megoldás. A Freesshd lehetővé teszi, hogy a konzolt powershellre cseréld, de nem tudtam csatlakozni hozzá. Csatlakoztam a CMD-hez - de teljesen használhatatlan:

    Másodszor, a FreeSSHd esetében még helyi hálózaton sem tudtam csatlakozni egy Windows számítógéphez, nem beszélve az internetről. Illetve lehetséges a csatlakozás, de a szolgáltatás lefagy és összeomlik; így nem fogja tudni kezelni a Windows gazdagépet.

    Ezért feltételezem, hogy Alexnek szüksége volt egy ssh-kiszolgálóra a Windows rendszeren, hogy csatlakozzon a fájlrendszerhez, vagy VPN-ként használhassa, valamit proxyval SSH-n keresztül. Bár kétlem, hogy a FreeSSHd ezt megengedi. Mert harmadszor: nem is menti a beállításokat, a szolgáltatás újraindításakor minden elromlik. Általában nagyon remélem, hogy Alex a megjegyzésekben elmondja nekünk, miért volt szüksége erre.

    Hogyan lehet máshogy futtatni az SSH-t Windowson?

    Van egy működőbb megoldás - a Powershelserver. Bár vannak benne hibák is, de legalább nem omlik össze. Ezért azt javaslom, hogy SSH-n keresztül csatlakozzon a Windows szerverekhez.

    Először is, stabilan működik, összeomlás nélkül. És ezen keresztül valóban vezérelheti a Windowsokat powershell-en keresztül.

    Az összes beállítást a rendszer a szokásos módon menti. Ugyanazok a funkciók érhetők el, mint a FreeSSHd-ben, sőt még több is - használhatja az SCP-t - ez a fájlok másolása SSH-n keresztül.

    De a legsikkesebb a konzol! Működik, uraim!

    Könnyen csatlakoztam, anélkül, hogy a felhasználók hozzáadásával kellett volna foglalkoznom (ezt freesshd-ben kell megtenni). És ez az egyszerű parancs az útválasztási tábla megtekintéséhez tökéletesen működött, és megadta a szükséges információkat. A Frisssh pont akkor "leesett" nekem, amikor megpróbáltam megnézni a netstat -rn-t

    Itt tényleg látszik, hogy nem jelennek meg az orosz karakterek. Így nálunk könnyű beállítani, csak beállítom a szükséges kódolást a powershellserveren, újraindítom, újracsatlakozom...

    Kódolás beállítása a Powershellserverben

    Most már teljes SSH-val rendelkezünk, és teljes mértékben kezelhetjük a Windows-t a konzolon keresztül.

    A Microsoft elkészíti saját SSH-megoldását

    A Microsoft egyébként még nyáron bejelentette, hogy fejleszteni fog anyanyelvi SSH-támogatás a Powershell számára a Windows új verzióiban. Vannak hírek a Habrén és a pcweeken (és egyebeken). Ezért csak alig várjuk ezt a mérföldkőnek számító eseményt, hiszen ez valóban áttörést jelent majd a munkában heterogén hálózatok.

    Nem ellenőriztem a többi funkciót - az sftp-t és az scp-t, de valamiért biztos vagyok benne, hogy ezek is nagyszerűen fognak működni.

    Hogyan lehet megnyitni egy SSH portot kívülről?

    Elérkeztünk tehát ahhoz a titkos dologhoz, amiért ez a cikk eleve indult. Válaszolok az olvasó kérdésére.

    Port továbbítás útválasztón vagy modemen

    Ahhoz, hogy kívülről csatlakozhasson a számítógéphez, valóban NAT-ot kell végrehajtania, vagy adott esetben . Ennek módja az átjáróként használt eszköztől függ. Ez lehet ADSL modem vagy . A legtöbb esetben az eszközére vonatkozó részletes utasítások könnyen megtalálhatók az olyan lekérdezések segítségével, mint a „port forwarding eszköz_modell" vagy "port továbbítás eszköz_modell»

    Így néz ki a Zyxel Keenetic Lite otthoni útválasztómon:

    És így néz ki egy ADSL modemen a Linksys WAG200G router funkcionalitásával:

    Ezenkívül egyes szolgáltatóknál ez technikailag nem lehetséges, mert nem biztosítják a "fehér" szolgáltatást.

    Port továbbítása távoli kiszolgálóra SSH-alagút segítségével

    Ebben az esetben az egyetlen mód az SSH-n keresztüli csatlakozásra egy helyi Windows-gépről (ugyanaz, amelyre SSH-n keresztül szeretnénk csatlakozni) egy távoli szerverre. Ebben az esetben SSH-hozzáféréssel kell rendelkeznie az internet valamelyik kiszolgálójához.

    "Reverse" SSH alagút beállítása

    Az ilyen továbbítás könnyen elvégezhető egy egyszerű SSH kliens Putty segítségével (van is) Ezután a továbbított porton keresztül csatlakozhat ehhez a nagyon távoli szerverhez.

    Ez itt lényegében egy hurok. Nyitunk egy SSH-munkamenetet a Windows-ról egy távoli kiszolgálóra, és ezen a kapcsolaton belül a Windows Powershellserver (vagy FreeSSHd) SSH-portját a távoli kiszolgáló 3322-es portjához vezetjük. És ugyanabban a munkamenetben most ugyanezen a 3322-es porton keresztül csatlakozunk vissza a Powershell Windows rendszerhez... Remélem, nincs összetévedve. De... Ez varázslat, barátaim! :) Az SSH alagutak egy különleges világ, segítségükkel hihetetlen dolgokat lehet művelni, olyan ajtókat nyitni, hogy az összes biztonsági őr keservesen sírna, ha hirtelen megtudná ezt az egészet... De hát jó.

    Nos, ha meg kell osztani a Windows SSH portot a világgal, akkor elég az ip_server:3322-t megadni célként a fordított alagút beállításaiban. Bárhonnan csatlakozhat a Windowshoz SSH-n keresztül, ahol elérhető ez a szerver.

    Hogyan ellenőrizhető, hogy a port megfelelően van-e továbbítva?

    Nagyon egyszerű. Meg kell nézni, hogy nyitva van-e. SSH esetén a nyitott port üzenettel válaszol a verziójáról. A portok ellenőrzésének legegyszerűbb módja a telnet segédprogram.

    Csak írja be a parancssorba szóközzel elválasztva:

    telnet domain_or_IP port

    Ha a port elérhető, valami ilyesmit fog látni:

    SSH válasz, ha elérhető port

    Ha a port valamilyen okból nem elérhető, akkor a „kapcsolat megtagadva” vagy a „kapcsolat időtúllépése” üzenet jelenik meg. Az első esetben ez azonnali lesz, és azt jelenti, hogy a portot tűzfal zárja le.

    A második esetben „lefagyásnak” tűnik, és akár több percig is eltarthat – a telnet kliens megpróbál kapcsolatot létesíteni. Ez jelentheti a tűzfal általi blokkolást is, de más típusú. Vagy egyszerűen csak azt, hogy a megadott gazdagép nem elérhető, vagy a portja le van zárva.

    Ha telneten keresztül tudott csatlakozni, nyomja meg a Ctrl+] billentyűkombinációt, és írja be Kilépés, majd Enter. Ellenkező esetben nem tudja megszakítani a munkamenetet, és új konzolablakot kell nyitnia, ha továbbra is szüksége van rá.

    Ez a cikk befejezetlenként van megjelölve. Lásd a cikk végén található megjegyzést.

    Ez a cikk az Ubuntu biztonságos termináljának (secure shell) kliensének és kiszolgálójának, azok konfigurációjának és használatának szentelt. Az SSH egy speciális hálózati protokoll, amely lehetővé teszi a távoli hozzáférést a számítógéphez magas fokú kapcsolatbiztonsággal. Az ssh protokollról bővebben olvashat.

    A működési elvek és az alkalmazott alkalmazások leírása

    Az SSH alapvetően két alkalmazás formájában valósul meg - egy SSH-kiszolgáló és egy SSH-kliens. Csatlakozáskor a kliens engedélyezési eljáráson megy keresztül a szerverrel, és titkosított kapcsolat jön létre közöttük. Az OpenSSH szerver az ssh1 és az ssh2 protokollal is működhet. Az ssh1 protokoll jelenleg nem tekinthető biztonságosnak, és használata erősen nem ajánlott. Szándékosan kihagyom a protokoll különböző technikai részleteit, mivel ennek az útmutatónak a fő célja a konfiguráció és a használat leírása. Az interneten sok cikk található magáról a protokollról, működési elveiről, titkosítási algoritmusairól stb., részletesen olvashat róla.

    Telepítés

    Telepítés OpenSSH Használhatja a parancsot a terminálból:

    sudo apt-get install ssh

    Az ssh metacsomag egy klienst és egy szervert is tartalmaz, de ez nagy valószínűséggel csak a szervert telepíti, mivel a kliens alapértelmezés szerint már benne van az Ubuntuban.

    Szerver hangolás

    Telepítéskor az SSH-kiszolgáló automatikusan hozzáadódik az indításhoz. Az indítását, leállítását vagy újraindítását a következő parancsokkal szabályozhatja:

    sudo szolgáltatás ssh stop| start| újrakezd

    Az SSH-kiszolgáló fő konfigurációs fájlja az /etc/ssh/sshd_config fájl, amelyet csak a szuperfelhasználó olvashat vagy szerkeszthet. A fájl minden módosítása után újra kell indítania az ssh-kiszolgálót a módosítások alkalmazásához.

    Példa az Ubuntu alapértelmezett SSH-kiszolgáló konfigurációjára:

    # Példa nyílt ssh szerver konfigurációra orosz # # megjegyzésekkel..2010. # # # # # # Konvenciók: # # Az "alapértelmezett" alatt az sshd viselkedését értjük, amikor # # az irányelv nincs kifejezetten megadva. Érdemes megjegyezni, hogy az Ubuntuban # # az sshd_config fájl már számos olyan beállítást tartalmaz, amelyek # # az Ubuntu alapértelmezett beállításai. # # Ilyen beállítások vannak megadva ebben a fájlban. # # # ############################################## ############# ################ Cím/port beállítások stb. ########### ###################################### # ##################### # # ## Port ####################### ### ############################ # # # # Használt port. Többet is megadhat, pl.: # # Port 22 # # Port 23 # # Port 24 # # Nem szabványos port használata javasolt, mert # # A szabványt gyakran ellenőrzik a botok, és keresik a lehetséges lyukakat. Kihagyható, ha egy címen keresztül # # van megadva. Lásd még a ListenAddress paramétert. # # # 22-es port # # ## ListenAddress ####################################### ### # # # Hálózati cím, amelyen a szerver figyel. A cím # # így írható: # # ListenAddress host|IPv4_addr|IPv6_addr # # ListenAddress host|IPv4_addr:port # # ListenAddress :port # # Ha nincs megadva port, az sshd ezen a címen figyel, # # pedig a a Port opcióban megadott port. Ha # # a ListenAddress-t port megadása nélkül használja, akkor a # # Port opciónak meg kell előznie a ListenAddress opciót. Ha nincs # # megadva, akkor alapértelmezés szerint az összes helyi # # címen figyel. Több címet is megadhat. # # # ## CímCsalád ########################################### # # # Megadja, hogy az sshd melyik IP-címcsaládot # # használja. Lehetséges opciók: # # „any” - tetszőleges # # „inet” (csak IPv4) # # „inet6” (csak IPv6) # # Alapértelmezés - „bármilyen”. # CímCsalád inet # # ## UseDNS ######################################### # ######## # # # Megadja, hogy az sshd ellenőrizze-e a gazdagépnevet, és # # használja-e ezt a gazdagépnevet a kliens által küldött IP-cím ellenőrzésére a DNS-től kapott # # ellen. # # Az alapértelmezett érték „igen”. # # # ############################################## ############# ############# Felhasználói hozzáférési beállítások ############## ####### ################################################# ### # # # Egy felhasználó engedélyezését/tiltását a # # DenyUsers, AllowUsers, DenyGroups és AllowGroups direktívák határozzák meg. # # ebben az esetben az ellenőrzés fentről lefelé halad a lánc mentén: # # ## DenyUsers ## # # || # # ## AllowUsers ## # # || # # ## DenyGroups ## # # || # # ## AllowGroups ## # # Csak a felhasználó- és csoportnevek fogadhatók el, a numerikus # # azonosítók (UserID) nem ismerhetők fel. Több felhasználó/csoport helyes rögzítése egymás után, # # szóközzel elválasztva. Ha a user@host alakban írjuk, akkor # # a felhasználó és a gazdagép külön-külön be van jelölve, ez lehetővé teszi, hogy # # korlátozza a hozzáférést bizonyos felhasználókra # # bizonyos gépekről. Érdemes megjegyezni, hogy a # # DenyUsers és AllowUsers direktívák a felhasználó # # nevét veszik fel paraméterként, míg a DenyGroups és az AllowGroups a # # csoportnevet. A felhasználói és csoportnevek rögzítésére szolgáló űrlapokról # # lásd a MINTÁK részt a man ssh_config fájlban. # # # ## DenyUsers ########################################### ### # # # Azon FELHASZNÁLÓK listája, akik NEM használhatják az sshd-t. # # Alapértelmezett - nincs megadva = senki sincs kitiltva. Azok. ha itt # # van megadva egy felhasználó, akkor a rendszer megtagadja a hozzáférését az ssh szerverhez. # # # ## AllowUsers ########################################### ## # # # Az sshd-t használni tudó FELHASZNÁLÓK listája, # # Alapértelmezés szerint - nincs megadva = mindenki számára engedélyezett. Azok. ha # # legalább egy felhasználó meg van adva, az ssh hozzáférés a # # szerverhez csak az adott felhasználó számára érhető el. # # # ## DenyGroups ## # # # Azon CSOPORTOK listája, amelyeket NEM használhat az sshd. # # Alapértelmezett - nincs megadva = nincs tiltva csoport. # # Vagyis ha legalább egy csoport meg van adva, akkor az ebbe a csoportba tartozó # # felhasználók nem fognak hozzáférni az ssh # # szerverhez. # # # ## AllowGroups # # # # Az sshd által használható CSOPORTOK listája. # # Alapértelmezett - nincs megadva = mindenki számára engedélyezett. Azok. ha # # legalább egy csoport meg van adva, akkor csak a benne lévő felhasználók# # kapnak hozzáférést az ssh szerverhez.# # # ################### # ################################################ ### A kapcsolat állapotát meghatározó lehetőségek ############# ############################ ####### ######################### # # ## TCPKeepAlive ############## ######### ######################### # # # Azt jelzi, hogy a rendszernek kell-e TCP üzeneteket küldenie a kliensnek # # a kapcsolat fenntartása érdekében. Ha elküldi ezeket a csomagokat, # # meg tudja állapítani, hogy a kapcsolat megszakadt-e. Ez azonban # # azt is jelenti, hogy a kapcsolat megszakadhat # # pillanatnyi útválasztási kimaradás esetén, és # # ez egyesek számára nagyon bosszantó. Másrészt, ha # # nem küldenek ilyen üzeneteket, a kiszolgálón lévő munkamenetek # # korlátlan ideig tarthatnak, # # „szellem” felhasználókat hozva létre, és felemésztik a szerver erőforrásait. Az alapértelmezett érték „yes”,# # azaz. ilyen üzeneteket küldeni. # # ilyen üzenetek küldésének letiltásához állítsa az értéket „no”-ra. Korábban ezt a # # opciót KeepAlive-nak hívták. Érdemes megjegyezni, hogy # # vannak biztonságosabb módszerek is a # # kapcsolat állapotának ellenőrzésére (lásd alább). # # # TCPKeepAlive igen # # ## ClientAliveCountMax ##################################### # # # Beállítja az üzenetek számát az ügyfeleknek, amelyeket az sshd # # küld el egymás után anélkül, hogy választ # # kapna a klienstől. Ha eléri a küszöböt, és # # az ügyfél nem válaszol, az sshd leválasztja a klienst, és megszakítja az # # ssh munkamenetet. Érdemes megjegyezni, hogy az ilyen # # üzenetek használata teljesen eltér a TCPKeepAlive direktívától. # # A klienseknek szóló/az ügyfelektől érkező üzenetek titkosított # # csatornán keresztül érkeznek, ezért nem hajlamosak a hamisításra. A # # TCPKeepAlive üzenetek hajlamosak a hamisításra. Az ügyfél életben # # mechanizmus különösen értékes azokban az esetekben, amikor a kiszolgálónak és a kliensnek tudnia kell, hogy a kapcsolat mikor vált inaktívvá. Az alapértelmezett # # érték 3. Abban az esetben, ha a ClientAliveInterval # # értéke 15, és a ClientAliveCountMax értéke az alapértelmezett # # értéken marad, a nem válaszoló kliensek körülbelül # # 45 másodperc után lekapcsolódnak. Ez az utasítás csak # # az ssh2 protokollra működik. # # # ## ClientAliveInterval ######################################## # # # Készletek az időintervallum másodpercben. Ha ebben az időszakban # # nincs kommunikáció az ügyféllel, az sshd # # üzenetet küld egy titkosított csatornán, amely # # választ kér a klienstől. Az alapértelmezett 0, azaz. # # ne küldjön ilyen üzeneteket. Ez az utasítás # # csak az ssh2 protokollnál működik. # # # ############################################## ############# ################ Általános hitelesítési lehetőségek ################# ## ################################################# ######## # # ## AuthorizedKeysFile ##################################### # # # # Megad egy fájlt, amely # # a felhasználók hitelesítésére használt nyilvános kulcsokat tartalmazza. Az # # direktíva tartalmazhat %M formátumú tokeneket, amelyek a # # csatlakozási folyamat során kerülnek beszúrásra. # # A következő tokenek vannak definiálva: # # %% - a literális "%"-ra cserélve # # %h - lecserélve a hitelesített felhasználó # # főkönyvtárára # # %u - lecserélve a hitelesített felhasználó nevére # # Így a kulcsfájl megadható # #-ként abszolút módon (azaz egy megosztott fájl kulcsokkal), és # # dinamikusan - felhasználótól függően (azaz egy # # fájl minden felhasználó számára). # # Az alapértelmezett az „.ssh/authorized_keys”. # # Példa egy kulcsfájlra a felhasználó saját mappájában: # # AuthorizedKeysFile %h/.ssh/authorized_key # # Példa egy megosztott fájlra: # # AuthorizedKeysFile /etc/ssh/authorized_keys # # Lásd a Authorized_keys fájl leírását több információ. # # # ## ChallengeResponseAuthentication ########################### # # # # Megadja, hogy engedélyezi-e a kihívás-válasz hitelesítést # # ). A login.conf összes # # hitelesítési típusa támogatott. Az alapértelmezett "yes", # # azaz. lehetővé teszi. # # Ubuntu - biztonsági okokból letiltva. # # # ChallengeResponseAuthentication no # # ## HostbasedUsesNameFromPacketOnly ########################## # # # # Megadja, hogy a szerver hogyan szerezze be az ügyfél gazdagépnevét # # amikor a gazdagép ellenőrzésén alapuló hitelesítési séma. # # Ha "yes"-re van állítva, az sshd # # a kliens által megadott gazdagépnevet fogja használni, amikor egyezést keres a # # ~/.shosts, ~/.rhosts vagy /etc/hosts.equiv fájlokban. # # (fordított DNS-feloldás végrehajtása) Ha "no"-ra van állítva# # - az sshd magából a TCP-kapcsolatból fogja feloldani a nevet. # # Az alapértelmezés a "nem". # # # ## IgnoreRhosts ########################################### # # # Megakadályozza az .rhosts és .shost fájlok # # használatát a gazdagép alapú hitelesítésben. # # (RhostsRSAAuthentication vagy HostbasedAuthentication). # # Az /etc/hosts.equiv és /etc/ssh/shosts.equiv fájlok még # # használatban vannak. # # Az alapértelmezett „igen”. # # # IgnoreRhosts igen # # ## IgnoreUserKnownHosts ##################################### # # # Azt jelzi, hogy az sshd figyelmen kívül hagyja-e az # # "ismert hosts" ~/.ssh/known_hosts felhasználói fájlt a # # gazdagép alapú hitelesítési folyamat során (RhostsRSAAuthentication vagy HostbasedAuthentication). # # Az alapértelmezés a „nem”. ##### PermitBlacklisterKeys ########################################azt jelzi, hogy elfogadják -e az SSHD -t kulcsok feketelistán # # feltörtként (ismert-kompromittált # # kulcsok (lásd ssh-vulnkey)). Ha „igen”-re van állítva - # # hitelesítési kísérlet ilyen kulcsokkal naplózásra kerül # # és elfogadásra kerül, ha "nem" -re van állítva - # # hitelesítési kísérlet elutasításra kerül. # # Az alapértelmezés a „nem”. # # # ## Engedélyezze az ürítést jelszóval történő hitelesítés esetén a # # jelzi, hogy lehetséges-e a bejelentkezés üres jelszóval. # # Az alapértelmezés a „nem”. # # # PermitEmptyPasswords nem # # ## PermitRootLogin ####################################### # # # # Azt jelzi, hogy lehetséges-e az ssh bejelentkezés szuperfelhasználóként # # (root). A következő értékeket veheti fel: # # „yes” – a szuperfelhasználó bejelentkezhet. # # a jelenlegi globális hitelesítési séma kerül alkalmazásra. # # # # „jelszó nélkül” – a szuperfelhasználó bejelentkezhet. # # A jelszavas hitelesítés letiltásra kerül. # # # # „csak kényszerparancsok” – a szuperfelhasználó # # nyilvános kulcson alapuló hitelesítéssel és # # csak akkor tud bejelentkezni, ha átadja a végrehajtáshoz szükséges parancsot. # # Ez hasznos biztonsági mentések készítéséhez, # # még akkor is, ha a normál (azaz nem ssh-n keresztül) # # a szuperfelhasználói bejelentkezés le van tiltva. A szuperfelhasználó összes többi hitelesítési módszere # # blokkolva lesz.# # # # „nem” – a szuperfelhasználó nem használhatja az ssh-t a # # bejelentkezéshez. # # # # Az alapértelmezett érték „igen”. # # # PermitRootLogin igen # # ## Protokoll ###################################### ######## # # # Meghatározza, hogy az sshd melyik protokollt használja. # # Az '1' és '2' lehetséges értékei az ssh1 és ssh2 # #. Egyidejű írás is lehetséges, ebben az esetben # # az értékeket vesszővel kell elválasztani. # # Az alapértelmezés a „2.1”. # # Érdemes megjegyezni, hogy a # # bejegyzésekben a protokollok sorrendje nem határozza meg a prioritást, mert a kliens kiválasztja, hogy a szerver által javasolt protokollok közül # # melyiket használja. A "2,1" bejegyzés # # teljesen azonos az "1,2" bejegyzéssel. # # # 2. protokoll # # ## ####################################### ########## # # # Engedélyezi a PAM interfészt (Pluggable Authentication Module # # interfész). Ha "igen"-re van állítva, akkor minden hitelesítési típus # # a munkamenet és a fiókmodul feldolgozáson kívül # # PAM hitelesítés lesz # # kihívás-válasz (ChallengeResponseAuthentication és # # PasswordAuthentication) alapján használják, mert # # A kihívás-válasz hitelesítés a PAM-ban általában ugyanazt a szerepet tölti be, mint # # a jelszó-hitelesítést, ezért le kell tiltania a # # PasswordAuthentication vagy # # ChallengeResponseAuthentication-t. Érdemes megjegyezni, hogy # # ha a UsePAM direktíva engedélyezve van, akkor az # # sshd-t csak root felhasználóként futtathatja. # # Az alapértelmezett érték „nem”. # # # Használja PAM igen engedélyezve van-e a hitelesítés # # jelszóval. # # Az alapértelmezett „igen”. # # # ## HostKey ########################################### ##### # # # Megadja az SSH által használt # # privát hosztkulcsot tartalmazó fájlt. Az alapértelmezett érték az /etc/ssh/ssh_host_key # # az ssh1 protokollhoz, az /etc/ssh/ssh_host_rsa_key és # # /etc/ssh/ssh_host_dsa_key az ssh2 protokollhoz. # # Érdemes megjegyezni, hogy az sshd nem használ olyan fájlokat, amelyek # # a felhasználón kívül bárki számára elérhetők. A kulcsokkal # # több fájlt is használhat, a kulcsok a következők: „rsa1” - # # az ssh1 protokollhoz és „dsa”/“rsa” az ssh2 protokollhoz. # # # HostKey /etc/ssh/ssh_host_rsa_key HostKey /etc/ssh/ssh_host_dsa_key # # ############################## ### ############################ ########## Az SSH protokoll 1-es verziójának (ssh1) beállításai ### ########## #################################### ### ################### # ERŐSEN NEM AJÁNLOTT az ssh1 protokoll használata.# # Az ssh2 protokoll sokkal biztonságosabb, mint az ssh1 # ### ######## ######################################### ####### # # ## KeyRegenerationInterval ################################## # # # A ssh1 protokoll - egyszer egy bizonyos időpontban # # automatikusan létrejön egy új ideiglenes szerver # # kulcs (ha használt). Ez azért történik, hogy # # megakadályozza az elfogott munkamenetek visszafejtését, hogy # # később bejelentkezhessen a gépre ezen munkamenetek paramétereivel és # # ellopja a kulcsokat. Az ilyen kulcsot sehol nem tárolják (# # RAM-ban van tárolva). Ez a direktíva # # határozza meg a kulcs élettartamát másodpercben, amely után # # újra előállításra kerül. Ha az érték 0 - # # értékre van állítva, a kulcs nem generálódik újra. # # Az alapértelmezett érték 3600 (másodperc). # # # KeyRegenerationInterval 3600 # # ## RhostsRSAAuthentication ################################### # # # Azt jelzi, hogy a hitelesítés # # rhosts vagy /etc/hosts.equiv fájlok alapján, az RSA-n keresztüli sikeres # # gazdagép hitelesítéssel együtt. # # Csak az ssh1 protokollra vonatkozik. # # Az alapértelmezés a „nem”. # # # RhostsRSAA-hitelesítés nincs # # ## RSAA-hitelesítés ####################################### ## # # # Azt jelzi, hogy engedélyezett-e a "tiszta" RSA hitelesítés. # # Csak az ssh1 protokollra vonatkozik. # # Az alapértelmezett „igen”. # # # RSAA-hitelesítés igen # # ## ServerKeyBits ####################################### ### # # # Meghatározza a bitek számát a kiszolgáló ideiglenes kulcsában # # az ssh1 protokollhoz. A minimális érték 512. # # Az alapértelmezett érték 1024. # ServerKeyBits 768 # # ################################# # ########################### ########### SSH protokoll 2. verziója (ssh2) opciók ## ## ######## ######################################## ### ################### # # ## Rejtjelek ######################## ## ###################### # # # Az ssh2 protokollhoz # # engedélyezett titkosítási algoritmusokat jelzi. Több algoritmust # # kell vesszővel elválasztani. Támogatott algoritmusok: # # „3des-cbc”, „aes128-cbc”, „aes192-cbc”, „aes256-cbc”, # # „aes128-ctr”, „aes192-ctr”, „aes256-ctr”, „ arcfour128”, # # „arcfour256”, „arcfour”, „blowfish-cbc”, „cast128-cbc”. # # Alapértelmezés szerint: # # aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour128, # # arcfour256,arcfour,aes192-cbc,aes256-cbc,aes128-ctr, #2-cbc,aes128-ctr, #2-ctr,192 #5 -ctr # # # ## HostbasedAuthentication ################################### # # # Azt jelzi, hogy a hitelesítés megtörtént-e engedélyezve, # # gazdagép ellenőrzése alapján. rhosts vagy /etc/hosts.equiv be van jelölve, # # és ha sikeres, a nyilvános kulcs # # sikeres ellenőrzésével kombinálva a hozzáférés engedélyezett. Ez a # # direktíva megegyezik a RhostsRSAAuthentication direktívával, és a # # csak az ssh2 protokollhoz alkalmas. # # Az alapértelmezés a "nem". # # # Hostbased Authentication nincs # # ## MAC-ok ####################################### ############ # # # Érvényes MAC-algoritmust jelez (üzenet # # hitelesítési kód). A MAC algoritmust # # használja az ssh2 protokoll az adatok integritásának védelmére. Több # # algoritmust vesszővel kell elválasztani. # # Alapértelmezés: # # hmac-md5,hmac-sha1, [e-mail védett] ,hmac-ripemd160, # # hmac-sha1-96,hmac-md5-96 # # # ## PubkeyAuthentication ########################### ########## # # # Azt jelzi, hogy engedélyezett-e a # # nyilvános kulcson alapuló hitelesítés. Csak az ssh2 protokollra vonatkozik. # # Az alapértelmezett „igen”. # # # PubkeyAuthentication igen ############################################ # ############### #################### GSSAPI-beállítások ############ ## ############# ################################### ## ######################## # # ############# Csak az ssh2 protokollra vonatkozik #### #### ### # # ## GSSAPIAuthentication ##################################### ## # # # Azt jelzi, hogy a felhasználói hitelesítés # # GSSAPI-n alapul-e. Az alapértelmezett a "nem", azaz. tiltott. # # # ## GSSAPIKeyExchange ######################################## # # # Azt jelzi, hogy a # # GSSAPI-n alapuló kulcscsere engedélyezett-e. A GSSAPI-t használó kulcscsere nem # # támaszkodik az ssh-kulcsokra a gazdagép azonosságának ellenőrzéséhez. # # Az alapértelmezett a "nem" - azaz. csere tilos. # # # ## GSSAPICleanupCredentials ################################ # # # Megadja, hogy automatikusan törlődjön-e # # felhasználói gyorsítótár hitelesítési hitelesítő adatok, amikor # # munkamenet véget ér. # # Az alapértelmezett "igen" - azaz. meg kell semmisíteni. # # # ## GSSAPIStrictAcceptorCheck ################################ # # # Meghatározza, hogy milyen szigorú legyen a személyazonosság-ellenőrzés # # ügyfél a GSSAPI-n keresztül történő hitelesítéskor. # # A "yes" érték hatására az ügyfél hitelesít # # a fogadó gazdagép szolgáltatást az aktuális gazdagépen. A "no" # # érték lehetővé teszi az ügyfél számára, hogy bármely # # szolgáltatáskulccsal hitelesítsen. # # Az alapértelmezett "igen". # # Érdemes megjegyezni, hogy a "nem" értékre # # csak ritka Kerberos GSSAPI könyvtárakkal működik. # # # ############################################## ############# ################### Kerberos-beállítások ################# ########## ####################################### ### ################## # # ## KerberosAuthentication ######################## ### ######## # # # Azt jelzi, hogy a felhasználó által # # hitelesítéshez megadott jelszó # # (PasswordAuthentication) igényel-e érvényesítést a Kerberos KDC-ben. # # Ennek az opciónak a használatához a kiszolgálónak # # ellenőriznie kell, hogy a KDC igaz-e. (A szervernek szüksége van egy # # Kerberos kiszolgálólapra, amely lehetővé teszi a # # KDC identitásának ellenőrzését.) # # Az alapértelmezés a „nem”. # # # ## KerberosGetAFSToken ######################################## # # # Ha az AFS aktív, és a felhasználó Kerberos 5 TGT-t kapott, # # megkísérel-e egy AFS-jogkivonatot szerezni, mielőtt a felhasználó hozzáférhet a saját mappájához. # # Az alapértelmezés a „nem”. # # # ## KerberosOrLocalPasswd #################################### # # # Azt jelzi, hogy mit kell tenni ebben az esetben ha a Kerberoson keresztüli # # hitelesítés sikertelen. Ha # # value = "yes", a jelszó ellenőrzése # # bármely további helyi engedélyezési mechanizmus segítségével történik, # # például /etc/passwd. # # Az alapértelmezett „igen”. # # # ## KerberosTicketCleanup ################################### # # # # # # # # # # # # # Azt jelzi, hogy automatikusan meg kell-e állítani a fájlt # # felhasználói jegy gyorsítótárral a munkamenet végén. # # Az alapértelmezett „igen”. # # # ############################################## ############# ################# Átirányítási lehetőségek ################### # ## ############################################## ## ############# # # ## AllowAgentForwarding ############################## #### ### # # # Azt jelzi, hogy engedélyezni vagy letiltani kell-e az átirányítást # # ssh-agent. Az alapértelmezett "yes", azaz engedélyezve van. # # Érdemes megjegyezni, hogy az átirányítás letiltása nem # # növeli a biztonságot mindaddig, amíg a felhasználók # # shell hozzáférés is meg lesz tagadva, mivel mindig telepíthetik # # saját ügynökanalógjaikat. # # # ## AllowTcpForwarding ###################### # ############### # # # Azt jelzi, hogy engedélyezni vagy letiltani kell-e a TCP-átirányítást. # # Az alapértelmezett "igen", azaz engedélyezve. Érdemes megjegyezni, hogy # # mindkét AllowAgentForwarding esetén az # # átirányítás letiltása nem növeli a biztonságot mindaddig, amíg # # a felhasználók konzolhoz hozzáférnek, mert # # telepíthetik a megfelelőit. # # # # # ## GatewayPorts ######### ## ################################ # # # Megadja, hogy a távoli gazdagépek hozzáférjenek-e a # # továbbított portokhoz. Alapértelmezés szerint az sshd # # csak a helyi loopback interfészen figyeli a továbbított portokhoz való kapcsolatokat. Ez megakadályozza, hogy más távoli # # gazdagépek csatlakozzanak a továbbított portokhoz. A GatewayPorts segítségével # # engedélyezheti az sshd számára, hogy ezt megtegye. A direktíva 3 értéket vehet fel: # # "no" - csak visszahurkolás. # # "igen" - bármilyen cím. # # "clientspecified" - az ügyfél által megadott címek. # # # ## EngedélyMegnyitás ########################################### ## # # # Azt jelzi, hol engedélyezett a TCP port továbbítás. # # Az átirányítás megadásának a következő formákban kell # # lennie: # # PermitOpen host:port # # PermitOpen IPv4_addr:port # # PermitOpen :port # # Szóközökkel elválasztva több bejegyzés is megadható. # # Az „any” argumentum felhasználható a # # porttovábbítás összes korlátozásának eltávolítására. Alapértelmezés szerint minden # # átirányítás engedélyezett. # # # ## PermitTunnel ########################################### # # # Azt jelzi, hogy a tun eszközök átirányítása engedélyezett-e. # # A következő értékeket veheti fel: # # „yes” # # „point-to-point” (3. hálózati réteg) # # „ethernet” (2. hálózati réteg) # # „no” # # Az „igen” érték lehetővé teszi mindkét „pont” -to-point” # # és az „ethernet” egyszerre. Az alapértelmezett a „nem”. # # # ############################################## ############# ################## Naplózási lehetőségek ################## ### ############################################## ## ############# # # ## SyslogFacility ############################## ## ########## # # # Beállítja a naplóobjektum kódját az üzenetek # # syslog-ba írásához az sshd-ről. Lehetséges értékek: # # DAEMON # # USER # # AUTH # # LOCAL0 # # LOCAL1 # # LOCAL2 # # LOCAL3 # # LOCAL4 # # LOCAL5 # # LOCAL6 # # LOCAL7 # # Az alapértelmezett AUTH. # # # SyslogFacility AUTH # # ## LogLevel ####################################### ######## # # # Beállítja az sshd napló részletességi szintjét. # # Lehetséges lehetőségek: # # CSENDES # # CSENDES # # VÉGZETES # # HIBA # # INFO # # VERBOSE # # DEBUG # # DEBUG1 # # DEBUG2 # # DEBUG3 # # Az alapértelmezés az INFO. # # DEBUG és DEBUG1 egyenértékűek egymással. # # DEBUG2 és DEBUG3 állítja be a legmagasabb szintű hibakeresési kimenetet. A DEBUG szintű naplózás # # veszélyezteti a felhasználók adatait, és nem ajánlott. # # # LogLevel INFO # # ########################################## ################ ################### X11 átirányítás ############# ######## ######################################### # ################### # # ## X11 Továbbítás ########################## ### ################ # # # Azt jelzi, hogy az X11 grafikus alrendszer # # átirányítása engedélyezett-e. Felveheti az „igen” vagy a „nem” értéket. # # Az alapértelmezés a „nem”. # # Figyelem – az egyszerű X11 átirányítás engedélyezése # # nagy kockázatot jelent mind a szerver, mind a kliensek számára, mert Egy ilyen átirányításnál az sshd proxy display # # bármilyen címről fogad kapcsolatokat. Használja # # az X11UseLocalhost direktívát, hogy korlátozza a # # X átirányítási kiszolgálójához való hozzáférést. Érdemes megjegyezni, hogy # # az átirányítás letiltása nem garantálja, hogy # # a felhasználók nem tudják átirányítani az X11-et, mert # # konzol hozzáféréssel mindig telepítik a saját # # átirányítójukat. Az X11 átirányítás # # automatikusan le lesz tiltva, ha a UseLogin # # direktíva engedélyezve van. # # # X11 Továbbítás igen # # ## X11UseLocalhost ######################################## # # # # Azt jelzi, hogy az sshd korlátozza-e az # # X11 helyi hurokcímre történő továbbítását, vagy # # engedélyeznie kell-e bármilyen címet. Alapértelmezés szerint az sshd # # beállítja az X11 átirányítási kiszolgálót a # # helyi címre, és a # # DISPLAY környezeti változó gazdagépnév részét "localhost" értékre állítja. Érdemes megjegyezni, hogy # # néhány régebbi X11 kliens nem működik ezekkel a beállításokkal. Az alapértelmezett az "igen", azaz. a # # átirányítást a localhost korlátozza, a "no" érték letiltja a # # korlátozásokat. # # # ## XAuthLocation ########################################### # # # Megadja az xauth program teljes elérési útját. # # Az alapértelmezett érték /usr/bin/X11/xauth. # # # ## X11DisplayOffset ######################################## # # # Az sshd számára # # X11 átirányításként elérhető első képernyő számát jelzi. Ez azért történik, # # hogy az átirányított X-ek ne fedjenek át # # valódi X-eket. Az alapértelmezett 10. # # # X11DisplayOffset 10 # # ###################################### ## ##################### #################### Különféle lehetőségek ##### ## ############################################### ##### ############################ # # ## BejelentkezésGraceTime ############# ####### ######################## # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # Ha a szerver leválasztja a felhasználót, ha nem tudta jelentkezzen be # # kielégítően. 0 érték – lehetővé teszi a # # felhasználó számára, hogy korlátlan ideig bejelentkezzen. Az alapértelmezett érték 120 (másodperc). # # # LoginGraceTime 120 # # ## MaxAuthTries ####################################### ### #### # # # A csatlakozásonként engedélyezett # # hitelesítési kísérletek maximális számát jelzi. # # Ha a sikertelen kísérletek száma meghaladja a # # megadott érték felét, minden további kísérlet # # naplózásra kerül. Az alapértelmezett érték 6. # # # ## MaxSessions ###################################### ####### # # # Megadja az egyidejű kapcsolatok maximális számát # # minden hálózati kapcsolathoz. Az alapértelmezett 10. # # # ## MaxStartups ####################################### ###### # # # Megadja az sshd egyidejű # # illetéktelen csatlakozásainak maximális számát. Ha # # a kapcsolatok száma meghaladja a korlátot, minden további # # kapcsolat megszakad mindaddig, amíg a jelenlegi # # kapcsolatok be nem fejeződnek vagy sikeres # # engedélyezéssel, vagy a # # LoginGraceTime direktívában meghatározott időtartam le nem jár. Az alapértelmezett érték 10. # # Opcionálisan beállíthatja a kapcsolatok korai alaphelyzetbe állítását úgy, hogy # # adjon meg három értéket paraméterként, # # kettősponttal elválasztva: "start:rate:full" (például: "10:30" :60"). # # Az sshd # # „rate/100” valószínűséggel utasítja el a csatlakozási kísérletet (pl. példánkban - 30%), ha már van # # „start” (10) illetéktelen kapcsolat. # # A valószínűség lineárisan növekszik, és minden # # csatlakozási kísérlet elutasításra kerül, ha a jogosulatlan # # kapcsolatok száma eléri a „megtelt” (60). # # # ## Tömörítés ########################################### # # # # Azt jelzi, hogy az adattömörítés engedélyezve van-e. Lehet # # "igen" - a tömörítés engedélyezve van. # # "késleltetett" - a tömörítés késleltetett # # a felhasználó sikeres hitelesítéséig. # # "nem" - a tömörítés le van tiltva. # # Az alapértelmezett a "késleltetett". # # # ## Bejelentkezés használata ########################################### #### # # # Azt jelzi, hogy kell-e bejelentkezést használni egy # # interaktív munkamenethez. Az alapértelmezett érték a „nem”. # # Érdemes megjegyezni, hogy a bejelentkezést soha nem # # használták távoli parancsok végrehajtására. Vegye figyelembe azt is, hogy # # a login használata lehetetlenné teszi az X11Forwarding direktíva # # használatát, mert a bejelentkezés nem tudja, hogy # # mit kezdjen az xauth-tal. Ha a # # UsePrivilegeSeparation direktíva engedélyezve van, akkor az # # engedélyezés után letiltásra kerül. # # # ## UsePrivilegeSeparation ###################################### # # # Megadja, hogy az sshd el kell különíteni a jogosultságokat. Ha igen, akkor először a bejövő hálózati forgalom számára egy privilegizált gyermekfolyamat jön létre. A sikeres # # engedélyezés után egy másik folyamat jön létre a bejelentkezett felhasználó jogosultságaival # #. A privilégiumok szétválasztásának fő célja # # a hozzáférési jogokkal való visszaélés megakadályozása. # # Az alapértelmezett érték „igen”. # # # UsePrivilegeSeparation igen # # ## StrictModes ####################################### ### ##### # # # Azt jelzi, hogy az sshd-nek ellenőriznie kell-e a felhasználói mappák és fájlok # # hozzáférési és tulajdonosi módját, mielőtt # # lehetővé tenné a felhasználó bejelentkezését. Ez általában azért van, mert # # újoncok gyakran mindenki által írhatóvá teszik a fájljaikat. Az alapértelmezett az „igen”. # # # StrictModes igen # # ## AcceptEnv ###################################### ####### # # # Meghatározza, hogy a kliens által # # átadott környezeti változók legyenek elfogadva. Lásd a SendEnv opciót a kliensben. # # Érdemes megjegyezni, hogy a változók átadása csak az ssh2 protokollnál lehetséges. A változók név szerint vannak megadva, # # maszk használható ('*' és '?'). Megadhat # # több változót szóközzel elválasztva, vagy feloszthatja az AcceptEnv-t # # több sorra. Legyen óvatos – néhány környezeti változó # # felhasználható a tiltott felhasználói környezetek megkerülésére. Óvatosan használja ezt a # # direktívát. Alapértelmezés szerint # # felhasználói környezeti változók nem fogadhatók el. # # # AcceptEnv LANG LC_* # # ## PermitUserEnvironment ################################### # # # Megadja, hogy az sshd elfogadja-e a # # ~/.ssh/environment és az Environment= paramétert a # # ~/.ssh/authorized_keys mezőben. Az alapértelmezett a „nem”. # # Érdemes megjegyezni, hogy a környezeti feldolgozás engedélyezése # # lehetőséget adhat a felhasználóknak a korlátozások megkerülésére néhány olyan konfigurációban, amelyek olyan mechanizmusokat használnak, mint # # LD_PRELOAD. # # # # # ## PidFile ########################################## # ####### # # # Megad egy fájlt, amely az SSH démon # # folyamatazonosítóját (folyamatazonosító, PID) tartalmazza. # # Alapértelmezett - /var/run/sshd.pid # # # # # ## PrintLastLog ############################# # ############## # # # Megadja, hogy az sshd megjelenítse-e az utolsó munkamenet dátumát és idejét, amikor a felhasználó interaktívan bejelentkezik. # # Az alapértelmezett „igen”. # # # PrintLastLog igen # # ## PrintMotd ###################################### ####### # # # Meghatározza, hogy az sshd megjelenítse-e az /etc/motd # # fájlt, amikor a felhasználó interaktívan bejelentkezik. Néhány # # rendszeren (például Ubuntu) ezt az információt # # a shell is megjeleníti. # # Az alapértelmezett érték „igen”. # # # PrintMotd no # # ## Banner ####################################### ########## # # # Azt jelzi, hogy melyik fájl tartalmaz olyan szöveges szalagcímet, amely # # jelenik meg a felhasználó számára a # # hitelesítési eljárás ELŐTT. Az opció csak az ssh2 protokollhoz érhető el.# # Alapértelmezés szerint - nem mutat semmit. # # Ubuntu esetén az issue.net fájl tartalmazza az Ubuntu (verzió) kifejezést, # # például a karmikus kifejezés az "Ubuntu 9.10". Használható # # a lehetséges támadók félrevezetésére, # # ha odaírja például: "My D-Link Interet Router" =) # # # Banner /etc/issue.net # # ## ChrootDirectory ###### ##### ############################## # # # Ha meg van adva, megadja a # # chrootolás elérési útját hitelesítés után. Az elérési útnak és annak minden tartalmának # # meg kell felelnie a szuperfelhasználó tulajdonában lévő mappáknak, és nem # # írható más felhasználók számára. # # Az elérési út tartalmazhat címkéket, amelyeket a hitelesítési folyamat során # # helyettesítenek: # # %% - a "%" betűszóval helyettesítve # # %h - lecserélve a hitelesített felhasználó # # kezdőkönyvtárára # # %u - lecserélve a hitelesített felhasználó nevére # # chroot -a mappának tartalmaznia kell az összes szükséges fájlt és # # mappát a felhasználói munkamenethez. Az interaktív # # munkamenethez legalább: # # egy shell, általában sh # # alapvető eszközök a /dev-ben, például: # # null, zero, stdin, stdout, stderr, arandom és tty # # egy adatátviteli munkamenethez sftp no # # további beállításokra van szükség, ha a belső # # sftp szerver folyamatot használja. # # további információért lásd: Alrendszer. Alapértelmezés szerint a chroot nem hajtódik végre. # # # ## ForceCommand ########################################### # # # A megadott parancs végrehajtását idézi elő. # # figyelmen kívül hagyja az ügyfél által küldött vagy # # ~/.ssh/rc-re írt parancsokat. A parancs a felhasználó # # parancsértelmezőjéből a -c kapcsolóval hívható meg. Alkalmas shell, # # parancs vagy alrendszer indítására. A leghasznosabb a # # Match blokkon belül. Az ügyfél által eredetileg kiadott parancs # # az SSH_ORIGINAL_COMMAND környezeti változóban van tárolva. Ha # # megadja az "internal-sftp" parancsot, akkor elindul a # # belső sftp szerver, amelyhez nincs szüksége a ChrootDirectory direktívában leírt # # további fájlokra és mappákra. # # # ## Alrendszer ########################################### ### # # # Meghatároz és konfigurál egy külső alrendszert (például # # fájlátviteli démont). # # Az argumentumok a név és a parancs (lehetséges # # argumentumokkal), amelyek az alrendszerek kérésekor # # végrehajtódnak. Az sftp-server parancs elindítja az „sftp” - # # fájlátviteli alrendszert. Ezenkívül megadhatja # # „internal-sftp”-t alrendszerként – amely elindítja # # a belső sftp-kiszolgálót. Ez nagymértékben leegyszerűsítheti a # # konfigurálást a # # ChrootDirectory direktíva használatakor. Alapértelmezés szerint nem hívják meg az alrendszereket. Csak az ssh2 protokollra vonatkozik. # # # sftp alrendszer /usr/lib/openssh/sftp-server # # ################################# ############################ ##################### Mérkőzés Blokk ############################ ##################### ## #################################### # # # speciálisan a végére helyeztem át a fájlt a kényelmesebbé tétel érdekében # # írjon Match szabályokat. # # MadKox. # # # # A Match direktíva egy feltételes # # blokk kezdetét jelenti. Ha a # # Match sorban megadott összes feltétel teljesül, a blokk következő soraiban lévő direktívák végrehajtásra kerülnek, # # lehetővé téve az # # sshd_config fájlban lévő globális direktívák értékeinek megkerülését abban az esetben, ha a a # # Match direktíva kritériumai. Blokknak tekintjük az összes olyan sort, amely a # # sor után jön a (Match - lines) feltétellel a következő # # illesztési sorra vagy a fájl végére. A Match direktíva argumentuma egy vagy # # több pár feltétel bejegyzés. Lehetséges bejegyzéstípusok: # # User # # Group # # Host # # Address # # A bejegyzések tartalmazhatnak egyetlen # # értéket (például User=user), vagy több értéket is # # vesszővel elválasztva (Felhasználó=felhasználó1 ,felhasználó2). Az ssh_config fájl # # PATTERNS szakaszában leírt reguláris kifejezések is használhatók # #. A # # címfeltételek bejegyzései tartalmazhatnak címeket a CIDR # # (Cím/Maszk hossza, pl. „192.0.2.0/24” vagy # # „3ffe:ffff::/32”) jelöléssel. Érdemes megjegyezni, hogy a megadott # # maszk hosszának meg kell egyeznie a címmel, és a címhez tartozó # # hosszú/rövid nem fog működni. # # A Match csak # # egy meghatározott direktívakészletet használhat direktívaként: # # AllowTcpForwarding # # Banner # # ChrootDirectory # # ForceCommand # # GatewayPorts # # GSSAPIAuthentication # # HostbasedAuthentication # # KbdInteractiveAuthentication # # KbdInteractiveAuthentication # # Maxthu # KerberosAuthen # # KerberosAut # PasswordAuthentication # # PermitOpen # # PermitRootLogin # # RhostsRSAAuthentication # # RSAAuthentication # # X11DisplayOffset # # X11Forwarding # # X11UseLocalHost #

    A fenti szöveget bemásolhatja saját sshd_config fájljába, és később felhasználhatja a konfigurációhoz.

    A rosszul konfigurált SSH-szerver önmagában is óriási biztonsági rést jelent a rendszer biztonságában, hiszen egy esetleges támadónak szinte korlátlan hozzáférése van a rendszerhez. Ezenkívül az sshd számos további hasznos opcióval rendelkezik, amelyeket tanácsos engedélyezni a használhatóság és a biztonság javítása érdekében.

    Port, ListenAddress és AddressFamily

    Ez a három paraméter határozza meg, hogy a szerver mely portokon és címeken figyeli a bejövő kapcsolatokat. Először is, ha lehetséges, érdemes a feldolgozott címcsaládot a ténylegesen használt címekre korlátozni, azaz ha csak IPv4-et használ, tiltsa le az IPv6-ot, és fordítva. Ezt megteheti például az AddressFamily paraméterrel (az IPv4 engedélyezéséhez és az IPv6 letiltásához):

    CímCsaládi inet

    Másodszor, tanácsos megváltoztatni a szabványos portot (22), amelyen az sshd figyel. Ez annak a ténynek köszönhető, hogy számos hálózati szkenner folyamatosan próbál csatlakozni a 22-es porthoz, és legalább nyers hozzáférést szerezni az adatbázisából származó bejelentkezési/jelszavak durva kényszerítésével. Még akkor is, ha a jelszavas hitelesítés le van tiltva, ezek a próbálkozások erősen eltömítik a naplókat, és (nagy mennyiségben) negatívan befolyásolhatják az ssh-kiszolgáló sebességét. Ha valamilyen oknál fogva nem akarja megváltoztatni a szabványos portot, különféle külső segédprogramokat, például fail2ban-t és beépített segédprogramokat, például MaxStartups-t használhat.
    A portot beállíthatja abszolút értékként az összes interfészhez a Port direktíva használatával, vagy egyedi értékként minden egyes interfészhez a ListenAddress direktíva használatával. Például:

    Port 2002

    ListenAddress 192.168.0.1:2003 ListenAddress 192.168.1.1:2004

    Távoli hozzáférés megtagadása a szuperfelhasználó számára

    Alapértelmezés szerint a root hozzáférés jelszóval tiltott (kulccsal lehetséges) - a PermitRootLogin beállítás jelszó nélkül van beállítva. De tekintettel arra, hogy az Ubuntuban alapértelmezés szerint a rendszertelepítés során hozzáadott felhasználó képes minden adminisztrációs feladatot megoldani sudo-n keresztül, ésszerűtlennek tűnik a rendszerhez való root hozzáférés lehetőségének megteremtése ssh-n keresztül (még kulcshitelesítéssel is). Javasoljuk, hogy teljesen kapcsolja ki. ezt az opciót, vagy csak kényszerített parancsok módban használja. A root hozzáférést a következőképpen tilthatja le:

    PermitRootLogin sz

    Jelszavas hitelesítés

    Az alapértelmezés szerint engedélyezett jelszavas hitelesítés gyakorlatilag a legprimitívebb hitelesítési módszer az sshd-ben. Ez egyrészt leegyszerűsíti az új felhasználók konfigurálását és csatlakozását (a felhasználónak csak a rendszerbelépőjét/jelszavát kell tudnia), másrészt a jelszó mindig kitalálható, és a felhasználók gyakran elhanyagolják az összetett és hosszú jelszavak létrehozását. . A speciális botok folyamatosan átvizsgálják az internetről elérhető ssh-szervereket, és az adatbázisukból nyert bejelentkezési/jelszavak segítségével próbálnak bejelentkezni. Erősen ajánlott, hogy ne használjon jelszavas hitelesítést. Így tilthatod le:

    JelszóHitelesítés sz

    Ha valamilyen oknál fogva mégis szeretné használni a jelszavas hitelesítést, ügyeljen arra, hogy senki ne tudjon bejelentkezni üres jelszóval. Ehhez állítsa be a PermitEmptyPasswords direktívát:

    PermitEmptyPasswords sz

    SSH1 és SSH2 protokollok

    Mint már említettük, az sshd együttműködhet az SSH1 és SSH2 protokollokkal. A nem biztonságos SSH1 használata azonban erősen nem ajánlott. Kényszerítheti az sshd-t, hogy csak az SSH2 protokollal működjön, így:

    SSH2 RSA kulcsokon alapuló hitelesítés

    A legelőnyösebb engedélyezési módszer az SSH2 RSA kulcsokon alapuló hitelesítés. Ezzel a módszerrel a felhasználó egy kulcspárt generál az oldalán, amelyek közül az egyik kulcs titkos, a másik pedig nyilvános. A nyilvános kulcsot a rendszer a szerverre másolja, és a felhasználó személyazonosságának ellenőrzésére szolgál. A kulcspár létrehozásával és a kiszolgálón való elhelyezésével kapcsolatos további információkért tekintse meg az SSH-kliens leírását. A nyilvános kulcsú hitelesítést a következőképpen engedélyezheti:

    PubkeyAuthentication igen

    A szervernek tudnia kell, hol keresse a felhasználó nyilvános kulcsát. Ehhez egy speciális authorised_keys fájlt használnak. A szintaxisa a következő lehet:

    # A megjegyzések csak egy új sorba íródnak # a bejegyzések általános megjelenése az authorised_keys fájlban # [opciók] kulcs_típus (ssh-rsa vagy ssh-dss) nagyon_hosszú_karakterlánc_érthetetlen a közember számára [login@host] ssh-rsa AAAAB3Nza...LiPk == [e-mail védett] from="*.sales.example.net,!pc.sales.example.net" ssh-rsa AAAAB2...19Q== [e-mail védett] 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-mail védett]

    Megadhat egy megosztott fájlt kulcsokkal, vagy egy fájlt minden felhasználó számára. Ez utóbbi módszer kényelmesebb és biztonságosabb, mert egyrészt minden felhasználóhoz különböző billentyűkombinációkat adhat meg, másrészt korlátozhatja a hozzáférést a felhasználó nyilvános kulcsához. Megadhat egy fájlt kulcsokkal az AuthorizedKeysFile direktíva használatával:

    AuthorizedKeysFile %h/.ssh/my_keys

    a séma felhasználói fájlhoz
    vagy

    AuthorizedKeysFile /etc/ssh/authorized_keys

    megosztott fájllal rendelkező sémához. Alapértelmezés szerint az SSH-kliens a ~/.ssh/authorized_keys fájlban keresi a kulcsokat.

    Bővebben a biztonságról

    További beállítások

    Felhasználók és csoportok.

    Ha sok felhasználó „él” a szerveren, és csak néhányuknak szeretne hozzáférést ssh-n keresztül engedélyezni, használhatja a DenyUsers, AllowUsers, DenyGroups és AllowGroups direktívákat. Az irányelvekkel kapcsolatos további információkért tekintse meg az sshd_config példa megjegyzéseit.

    Csatlakozási állapot beállításai

    Alapértelmezés szerint a kapcsolat állapotának meghatározására szolgáló módszerek közül csak a TCP-kapcsolat-ellenőrzési módszer van engedélyezve - a TCPKeepAlive azonban az sshd kényelmesebb és biztonságosabb módon tudja meghatározni a csatlakozási állapotokat. További részletekért lásd az sshd_config példa megfelelő szakaszát.

    Teljesítmény. MaxStartups

    Port Forwarding

    X11 átirányítás

    A szerveren az /etc/ssh/sshd_config fájlban állítsa be a paramétert (alapértelmezés szerint engedélyezve van):

    ElőreX11 igen

    A kliensen állítsa be a paramétereket az /etc/ssh/ssh_config fájlban (alapértelmezés szerint le van tiltva):

    ForwardAgent igen ForwardX11 igen

    A kliensen a következőképpen futtathatja: ssh yurauname@serverip firefox . Vagy először lépjen az ssh yurauname@serverip címre, majd futtassa például a sudo synaptic parancsot.

    SFTP

    Az sshd alapértelmezés szerint beépített SFTP-kiszolgálóval rendelkezik. SFTP (SSH File Transfer Protocol) – SSH protokoll fájlok átviteléhez. Úgy tervezték, hogy megbízható és biztonságos kapcsolaton keresztül másoljon és végezzen más fájlműveleteket. Általában az SSH2 protokollt használják a kapcsolatot biztosító alapprotokollként. Az SFTP támogatás engedélyezéséhez adja hozzá a sort az sshd_config fájlhoz

    sftp /usr/lib/openssh/sftp-server alrendszer

    Alapértelmezés szerint az SFTP-támogatás engedélyezve van.

    Kritériumok használata. Match direktíva

    SSH kliens beállítása

    A kulccsal történő bejelentkezés tekinthető a legbiztonságosabbnak, és a legtöbb esetben ez a szolgáltatás a szerver oldalon engedélyezett, így a használatához nincs szükség szuperfelhasználói jogokra. Az ügyfélgépen létrehozunk egy kulcsot:

    ssh-keygen -t rsa

    A rendszer kéri, hogy adjunk meg egy jelszót a kulcsfájl védelme érdekében (hasznosnak bizonyul, ha a fájl rossz kezekbe kerül). Ha SSH-n keresztül fogunk parancsfájlokat végrehajtani, akkor hagyjuk üresen. A paranccsal átvisszük a nyilvános kulcsot a szerverre

    Ssh-copy-id -i ~/ .ssh/ id_rsa.pub user@ szerver

    Ennyi, bejöhetsz.

    Ha az ssh nem szabványos porton fut:

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

    Ha hiba történik: Hibás port "umask 077; test -d .ssh || mkdir .ssh ; cat >> .ssh/authorized_keys"

    próbáld idézőjelbe tenni a paramétereket:

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

    Kényelmes a képernyő segédprogram használata távoli rendszerhez való csatlakozáskor.

    Távoli ssh-könyvtár beállítása a Nautilusban

    Távoli könyvtár csatlakoztatása sshfs használatával

    Távoli könyvtár csatlakoztatása helyi könyvtárhoz

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

    Leszerelés

    Fusermount -u ~/ sshsfdir

    SSH álnevek

    Ha több szervert használ különböző hozzáférési paraméterekkel (nem szabványos port, hosszú gazdagépnév, a helyitől eltérő bejelentkezés stb.), néha fárasztó minden kapcsolati beállítást újra megadni. Ennek megkönnyítésére használhat álneveket.

    A beállítások a ~/.ssh/config fájlban tárolódnak egyetlen felhasználó számára, és az /etc/ssh/ssh_config mappában globálisan minden felhasználó számára.

    Példa konfig. Több szerver is leírható. További részletek a man ssh_config(nem tévesztendő össze sshd_config)

    Host AliasName # Tetszőleges gazdagépnév HostName 1.2.3.4 # Megadhatja mind az IP-címet, mind a gazdagépnevet (ha a DNS fut) User YourUserName # Ha a felhasználó nem egyezik a helyi felhasználóval Port YourSSHPort # Ha nem szabványos port

    Ezt követően a paranccsal csatlakozhat a szerverhez

    ssh AliasName

    ssh-agent

    Csatlakozási problémák diagnosztizálása

      Kapcsolati napló elemzése:

    ssh -vvv user@ gazdagép

      Kliens és szerver konfigurációs fájlok elemzése.

    A konfigurációs fájlok helye itt található

    Man ssh ember sshd

    Intelligens kártyák használata

    1. A tanúsítvány létrehozása és a nyilvános kulcs exportálása, valamint a kliens rész Windows + Putty SC rendszeren a következő webhelyen található: http://habrahabr.ru/post/88540/ Az ott leírt Key Manager bővítmény csak a Firefox régebbi verzióiban érhető el. A Windows 3.5-ös verzióján tesztelve. Közvetlen link a kiegészítőhöz: https://addons.mozilla.org/ru/firefox/addon/key-manager/

    2. A szerver előkészítése. Győződjön meg arról, hogy az sshd konfiguráció lehetővé teszi a nyilvános kulcsok használatával történő hitelesítést. Ehhez meg kell adnia a „PubkeyAuthentication” paraméter értékét „yes”-re az „sshd_config” fájlban. Ezután hozzáadjuk a korábban megszerzett nyilvános kulcsunkat (egy sorban) a „~/.ssh/authorized_keys” fájlhoz. Kérjük, vegye figyelembe, hogy az „.ssh/authorized_keys” fájl a felhasználó saját könyvtárában található, aki ezután a nyilvános kulccsal jelentkezik be.

    3. Kliens rész Linuxon. Újra kell építeni az OpenSSH csomagot paraméterek nélkül. Csak címtárelőtagok megadása javasolt, például –prefix=/usr. Azt is meg kell jegyezni, hogy a konfigurációs fájlok a /usr/etc könyvtárban lesznek. Mielőtt elkezdené, a következő csomagokra van szüksége: opensc-lite-devel, zlib-devel, openssl-devel. Telepítse az intelligens kártya illesztőprogramját. A kényelem érdekében az ssh_config config mezőben (nem tévesztendő össze az sshd_config-gal) adja meg a pkcs könyvtár elérési útját: PKCS11Provider=<путь к библиотеке>

    4. A kliensen futtassa az ssh user@host parancsot. Ha az intelligens kártya (token) csatlakoztatva van, a rendszer jelszót kér, és be kell jelentkeznie az SSH-munkamenetbe.

    Lehetséges problémák használat közben

    A szokásos Ctrl + S billentyűkombináció, amelyet sok szerkesztőben használnak a javítások mentésére, amikor egy terminálon ssh-kiszolgálóval dolgozunk, az XOFF parancs végrehajtásához vezet, amely felületesen a munkamenet lefagyására emlékeztet. Azonban nem. A szerver továbbra is elfogadja a bemeneti karaktereket és parancsokat, de nem jeleníti meg a képernyőn. A helyzetből való kilábaláshoz csak használja a Ctrl + Q kombinációt, ezzel kapcsolja vissza az XON módot.

    Linkek

    Ez azt jelenti, hogy a user1 regisztrálható mind saját magának - a /home/user1/.ssh/keys fájlban), mind egy másik felhasználó számára, amely lehetővé teszi számára, hogy bejelentkezzen a számítógépéről mind a „maga alatt”, mind a „másik” alatt.

    Az SSH (Secure Shell) egy hálózati protokoll, amelyet távoli szerverkezelésre és TCP-titkosított kapcsolatokon keresztüli adatátvitelre terveztek. A legtöbb tárhelyszolgáltatás, még a virtuális is, ma FTP-n és SSH-n keresztül is hozzáférést biztosít. Véleményem szerint ez nagyszerű, az SSH használata sokkal kényelmesebb és biztonságosabb.

    SSH beállítása

    A beállítás egy dedikált szerverhez, VDS-hez, VPS-hez Debian, Ubuntu rendszeren fog megtörténni. A konfigurációs fájl itt található: /etc/ssh/sshd_config.
    Ha rendszeres tárhelye van, mindent úgy kell beállítani, ahogy kell, menjen a szakaszhoz.

    Alapértelmezés szerint az SSHD démonnak (amelyen módosítunk) nincs szüksége semmilyen beállításra, és jól működik. Csak néhány apró változtatást hajtunk végre annak érdekében, hogy korlátozzuk a nemkívánatos személyek hozzáférését a szerverhez.

    A konfigurációs fájl helytelen módosítása következtében elveszítheti az ssh-n keresztüli hozzáférést a szerverhez, ezért győződjön meg arról, hogy van más hozzáférési lehetősége is, például az ISPManager vezérlőpultján keresztül.

    Az SSH hozzáférés korlátozása

    Minden módosítás az /etc/ssh/sshd_config fájlban történik
    Ahhoz, hogy a változtatások életbe lépjenek, meg kell tennie

    Port módosítása

    9724-es port

    Most az engedélyezéskor a 9724-et kell megadnia a szabványos 22-es port helyett.
    A módszer nagyon egyszerű és hatékony a legtöbb egyszerű hackerbot ellen, amelyek a szabványos portokon kopogtatnak. Itt az a legfontosabb, hogy ne hozzon létre konfliktust más szolgáltatásokkal, és ne válasszon olyan számot, amely nyilvánvalóan nem használt.

    Tiltsa le a kommunikációt a régi protokoll használatával

    Itt definiáljuk, hogy a kommunikáció csak a v2 protokoll használatával lehetséges

    Ha nem vagy bejelentkezve gyökér, minden konzolparancs előtt hozzá kell adni a sudo-t - ez a rövidítés Helyettesítő felhasználó és DO- cserélje ki a felhasználót, és tegye (alatta). Például lehetővé teszi a parancsok végrehajtását szuperfelhasználóként gyökér.

    Csökkentse az engedélyezési kísérletek számát

    MaxAuthTries 2

    Jelszóra tett kísérletek száma. Az alapértelmezés 6. Ha a keresés sikertelen, a kommunikációs munkamenet megszakad.

    Csökkentse az engedélyezési várakozási időt

    BejelentkezésGraceTime 30s

    Alapértelmezés szerint egy engedélyezési munkamenet 120 másodpercig tarthat. Ezen idő után véget ér. 2 perc az engedélyezésre túlzás, a szerver mindvégig nyitva tartja a kapcsolatot, ami nagyon irracionális. Fél perc is elég.

    Zárja be az IP-hozzáférést

    Az IP-korlátozások beállítása előtt győződjön meg arról, hogy a beállítások hibája és a saját IP-címe későbbi kitiltása esetén van egy alternatív módja a szerverhez való hozzáférés visszaszerzésére.

    Ha csak Önnek van szüksége hozzáférésre, a legegyszerűbb és legmegbízhatóbb módja az, hogy mindenhonnan letiltja a hozzáférést, kivéve az IP-címét, vagy ha dinamikus, akkor az IP-tartományt.

    1. Nyissa meg az /etc/hosts.allow fájlt, és adja hozzá az SSHD-t: 192.168.1.1

      ahol a 192.168.1.1 az Ön IP-címe. Ha dinamikus IP-címe van, adjon meg egy IP-címet alhálózati maszkkal, és írja le az alhálózatát az IP helyett, például:

      SSHD: 192.168.0.0/16

    2. Nyissa meg az /etc/hosts.deny fájlt, és adja hozzá: SSHD: ALL

    Az IP-n keresztüli hozzáférés korlátozásának másik módja

    A következő direktívát használhatja:

    AllowUsers = *@1.2.3.4

    Itt csak az 1.2.3.4 IP-hez engedélyezzük a hozzáférést

    SSH engedélyezés kulcsokkal

    Sokkal biztonságosabb, kényelmesebb és helyesbb lesz jelszó nélkül beállítani az ssh jogosultságot. Erre a célra kulcsengedélyt használunk.

    Tehát itt vannak az utasítások.

    Rögtön megvásárolta az első VPS-jét, vagy akár egy szervert is. Biztosan van egy webpanel a kezeléséhez. De a kemény adminok mindig átmennek a konzolon 😉 Ezért meg kell tanulnunk, hogyan kell ezt csinálni. Ebben a leckében telepítjük a PuTTY programot, SSH protokollon keresztül csatlakozunk a szerverhez, és megtanuljuk, hogyan határozzuk meg a szerveren lévő foglalt és szabad területet.

    Putty program szerverhez SSH protokollon keresztüli csatlakozáshoz

    A Putty letöltése a putty.org webhelyről Saját magam számára letöltöttem a „Windows rendszerhez Intel x86-on - PuTTY: putty.exe” verziót.

    Csomagolja ki az archívumot, és indítsa el a programot.

    Így néz ki a program ablaka indítás után. Már beírtam a szerverem IP-címét a „Host Name (or IP address)” mezőbe:

    Adja meg szervere domainjét vagy IP-címét, majd kattintson a „Megnyitás” gombra. Megnyílik egy parancssor ablak. Felhasználónevet és jelszót kér tőlünk. Először adja meg bejelentkezési nevét, majd jelszavát. Figyelem, a jelszó megadásakor a karakterek nem jelennek meg a képernyőn, még a csillagok *** sem jelennek meg. Ezért a jelszót úgy adjuk meg, mintha vakon. Enter, majd nyomja meg az Entert. Ha a jelszót helyesen adta meg, akkor bejelentkezik a kiszolgáló felügyeleti konzoljába. Megjelenik egy sor az utolsó bejelentkezési idővel és az operációs rendszerrel kapcsolatos információkkal.

    Parancsok a konzolban

    pwd

    df

    A df parancs megmutatja a kiszolgálón lévő szabad és felhasznált terület mennyiségét az összes csatlakoztatott fájlrendszerben

    du

    A du parancs megmutatja, hogy egy mappa vagy fájl mennyi helyet foglal el.
    Példa parancs:

    Du -h /home/

    Ez a parancs megmutatja, mennyi helyet foglal el a /home/ könyvtár.

    Ez minden. Véget ért az első ismerkedés az SSH-n és a putty programon keresztüli szerverhez való csatlakozással. Ezen információk felhasználásával felkeresheti a szervert, és megnézheti, mennyi helyet foglalnak el rajta az adatok.



    
    Top