Kako postaviti pametne telefone i računala. Informativni portal
  • Dom
  • Windows 7, XP
  • Kako postaviti i koristiti SSH port? Korak po korak upute. Povezivanje s virtualnim poslužiteljem putem SFTP-a

Kako postaviti i koristiti SSH port? Korak po korak upute. Povezivanje s virtualnim poslužiteljem putem SFTP-a

Hosting sa ssh pristupom Vjerojatno nije tako uobičajeno, barem prema mom iskustvu. Moj najnoviji hosting podržava SSH i odlučio sam ga isprobati, a imao sam dobar razlog za to. Stvar je u tome što moj trenutni hosting ne prikazuje detaljno veličinu datoteka.

Ne vidi se ni preko FTP klijenta, ali mi je jako potreban, jer je brzo ponestalo prostora za hosting i moram maknuti svo smeće da ne kupim dodatne megabajte i ne platim previše. Nedavno su moje stranice bile zaražene i bio bih nemoguć bez ssh pristupa.

Da sam znao da moj hosting ne podržava tako jednostavnu funkciju, sto puta bih razmislio da li da prijeđem na njega ili ne. Ali hosting je imao dobre kritike i kupio sam mjesto na njemu na dvije godine odjednom. Ali pošto ima ssh, mislim da je problem rješiv. Dakle, SSH hosting, kako ga možete koristiti?

Što je hosting sa ssh pristupom?

Ali prvo ću govoriti o tome što je SSH, jer možda svi ne znaju kakva je to životinja. Ukratko, prema Wikipediji to je:

SSH (engl. Secure SHell - “sigurna ljuska”) je mrežni protokol na razini aplikacije koji vam omogućuje daljinsko upravljanje operativnim sustavom i tuneliranje TCP veza (na primjer, za prijenos datoteka). SSH omogućuje izbor različitih algoritama šifriranja. SSH klijenti i SSH poslužitelji dostupni su za većinu mrežnih operativnih sustava.

Možete raditi sa ssh-om izravno preko terminala koristeći Linux naredbe. Spajanje na server je vrlo jednostavno, potrebno je upisati naredbu u sljedećem formatu:

ssh korisničko ime@adresa_poslužitelja

Kao što vidite, sve je vrlo jednostavno. Pokušat ću se spojiti preko ssh-a na svoj hosting. Ali nije bilo tamo, hosting me tvrdoglavo nije htio primiti po ovom protokolu. Pisao sam službi za podršku i sada čekam odgovor.

U međuvremenu ću vam reći koliko je zgodno povezati se putem ssh-a preko upravitelja datoteka Nautilus. Spajanjem na njega putem SSH-a radit ćete s datotekama koje se nalaze na hostingu kao da su na vašem računalu. Otvorite Nautilus i pritisnite Ctrl + L kako biste mogli napisati put do ssh poslužitelja u adresnu traku:

sftp:// [e-mail zaštićen]

Zatim će se od vas tražiti da unesete lozinku i vidjet ćete sve svoje datoteke u upravitelju datotekama. Ovo su prednosti hostinga sa ssh-om.

Stoga pri odabiru hostinga obratite pozornost na ovo. Moj IHOR hosting daje pristup SSH-u i zato ga koristim već nekoliko godina...

SAVJET WEBMASTERU: Sposobnost zarade na Internetu je samo pola bitke, druga polovica je mogućnost POVOLJNOG unovčavanja elektroničkog novca. Evo popisa offshore bankovnih kartica na koje možete povući sredstva i zatim s njih povući hrskave novčanice:

1. payoneer- Najpopularniji svjetski sustav plaćanja za freelancere. Izdaje kartice, locirane u SAD-u.

2. EpayService- Američki sustav plaćanja, vrlo popularan u mnogim zemljama, daje MasterCard karticu u EVRO besplatno za stanovnike ZND-a i Europe.

3. Skrill- Jedini sustav plaćanja koji radi s kriptovalutama i istovremeno izdaje besplatne MasterCard bankovne kartice.

4. AdvCash- Offshore banka nalazi se u Belizeu, možete otvoriti račun u dolarima, eurima, funtama i rubljama.

5. platitelj- Sjedište ovog platnog sustava nalazi se u Gruziji, ovdje također možete otvoriti račun u dolarima, eurima i rubljima.


Domena RU - 99 rubalja
RF domena - 99 rubalja

SSH (Secure Shell) je mrežni protokol za daljinski pristup koji koristi enkripciju i kompresiju za prenesene podatke. Jednostavno rečeno, ovo je vrlo koristan i moćan alat koji vam omogućuje autentifikaciju u sustavu i rad u potpunosti u ime lokalnog korisnika, koji je mnogo kilometara udaljen od stroja koji radi. Također, za razliku od telneta i rsh-a, SSH kriptira sav promet, tako da sve prenesene informacije ostaju povjerljive.

Dakle, već imamo instaliran ssh i ssh-daemon je dodan za automatsko učitavanje pri pokretanju sustava. Njime možete upravljati naredbom:

usluga ssh stop|start|ponovno pokretanje

Na Ubuntuu ili:

/etc/init.d/ssh (start|stop|reload|force-reload|restart|status)

Na Debianu ili:

systemctl start|stop|ponovno pokretanje sshd.service

U ArchLinuxu (nakon svakog uređivanja konfiguracije morate se ponovno pokrenuti). Paket uključuje klijenta i servera.

Isprobajmo ga na djelu! Najprije izradite mapu ~/.ssh

mkdir ~/.ssh

Generirajte ključeve za navedenog korisnika poslužitelja naredbom:

ssh-keygen (kao običan korisnik).

Prilikom generiranja možete postaviti zaporku za ključ (po mogućnosti postavljenu i dugu - onda čak i ako dobijete ključ, ali ne znate zaporku za ključ, napadač se neće moći prijaviti), ili možete preskočite jednostavnim pritiskom na "Enter" - u ovom slučaju, lozinka se nikada neće tražiti. Isti javni i privatni ključ pojavili su se u mapi ~/.ssh.

Pronađite drugo računalo (čak će i pametni telefon poslužiti - postoje neki odlični SSH klijenti na Androidu, poput ConnectBot ili JuiceSSH), instalirajte ssh na njega i spojite se na poslužitelj pomoću naredbe:

ssh [e-mail zaštićen]

Ako je sve napravljeno kako treba, bit će zatražena korisnička lozinka, a nakon unosa naći ćete se u svom sustavu s pogledom iz naredbene linije.

Za Windows, usput, također postoje poslužitelji i ssh klijenti.

Nakon što smo uživali u rezultatu našeg rada, prijeđimo na još dosadniji dio - postavljanje klijenta / poslužitelja.

Konfiguracija klijentske strane je unutra /etc/ssh/ssh_config, i poslužitelj - /etc/ssh/sshd_config. Najopsežniji vodič za konfiguraciju je možda man stranica - man ssh i man sshd_config, pa preporučujemo da ga pročitate. I u ovom ćemo članku razmotriti najpotrebnije stvari.

Postavka

Standardni ssh port je 22. Može se promijeniti u bilo koji nestandardni (komplicirajući moguće hakiranje zbog sigurnosti kroz nejasnoće ili da privučete pozornost potencijalnih hakera :) - da biste to učinili, uklonite komentar iz retka:

#Priključak 22

I dodajte što god želite do 65535 (pazeći da priključak nije u sukobu s drugim uslugama s naredbom #netstat -tupln | grep SLUŠAJTE).

Sada, kada se spaja na poslužitelj, klijent će morati pisati s ključem:

ssh -p [port] :

Prema zadanim postavkama dopušten je root pristup. Vrlo je poželjno ograničiti ga (i umjesto toga pravilno razgraničiti prava lokalnog korisnika sa sudo). Da biste to učinili, pronađite redak "PermitRootLogin" i promijenite vrijednost u "ne". Također ga možete promijeniti u "bez lozinke" - u ovom slučaju prijava kao root bit će dopuštena samo s računala s pouzdanim ključem.

Možete onemogućiti provjeru autentičnosti lozinke i raditi samo s ključevima - pronađite redak: "PasswordAuthentication" i promijenite vrijednost u "ne". Za što? Ako netko stvarno želi dobiti pristup vašem sustavu, tada može brutalno nametnuti lozinku prilikom pokušaja autorizacije ili poslušati i dešifrirati vašu vezu. Ako onemogućite autentifikaciju lozinke i dodate javni ključ vašeg, na primjer, radnog prijenosnog računala u ~/.ssh/authorized_keys na poslužitelju, tada ćemo, kao što se sjećamo, odmah biti pušteni na poslužitelj. Ali što ako radite na tuđem računalu i hitno trebate dobiti pristup ssh poslužitelju, ali on nas ne pušta unutra kako se očekuje? Tada ne možete onemogućiti provjeru autentičnosti lozinke, već koristiti uslužni program fail2ban. Samo ga instalirajte iz svog repozitorija, nakon čega će primijeniti zadane postavke i, barem, zaštititi vaš ssh kanal od brutalnih napada. Više o fail2ban - http://putty.org.ru/articles/fail2ban-ssh.html.

U slučaju da vaš poslužitelj ima ključeve za lansiranje nuklearnih projektila, možete učiniti nešto ovako:

PermitRootLogin no - prijava pod root-om je zabranjena.

PasswordAuthentication no - prijava bez lozinke

Generirajmo dugi ključ na udaljenom računalu (-t tip_enkripcije, -b duljina bita):

ssh-keygen -t rsa -b 4096

S ne manje složenom šifrom (usput, nemoguće je vratiti zaboravljenu lozinku. Možete je promijeniti naredbom "ssh-keygen -p", ali u svakom slučaju od vas će se tražiti stara). Premjestite javni ključ udaljenog lokalnog računala u ~/.ssh/authorized_keys poslužitelja i voila, sada mu možete pristupiti s jednog stroja pomoću zaporke privatnog ključa. SSH vam omogućuje da postavite mnogo sigurnosnih konfiguracija i ima mnogo specifičnih postavki za to - pročitajte o njima u man.

Dvije opcije sshd_config služe istoj svrsi:

LoginGraceTime- postavlja vrijeme nakon kojeg će se veza prekinuti ako se autentifikacija ne dogodi.

MaxAuthTries- postavlja broj nevažećih pokušaja prijave, nakon čijeg dostizanja će se veza prekinuti.

MaxSessions- broj istovremenih sesija (ako je server vaše kućno računalo na koje ćete se spojiti s fakulteta ili s posla, tada bi bilo razumno ograničiti broj sesija na jednu - odbijena prijava, u ovom slučaju, postat će razlog za povećanje paranoje, generiranje novih ključeva i promjenu lozinke). Međutim, ako ste pažljivi, mogli biste primijetiti da se pri svakoj prijavi na poslužitelj prikazuje redak "Zadnja prijava". Osim njega, možete dodati i svoju poruku dobrodošlice - pronađite redak "Banner" i umjesto none odredite put do datoteke s tekstom koji će biti pročitan i prikazan prilikom prijave.

Između ostalog, možete dopustiti prijavu samo određenim korisnicima ili dopustiti svima osim određenim korisnicima:

AllowUsers korisnik1- dopustiti prijavu samo korisniku1.

DenyUsers korisnik1- dopustiti svima osim korisnika1.

I slične opcije za pristup pojedinim grupama - AllowGroups i DenyGroups.

Također možete prenijeti X11 sesiju preko SSH-a. Da biste to učinili, pronađite redak "ForwardX11" i promijenite vrijednost u "yes".

Pronađite sličan redak u konfiguraciji klijenta - /etc/ssh/ssh_config, i također ga promijenite u "yes".

Sada se trebate spojiti na poslužitelj putem ssh-a s argumentom -X:

ssh -X [e-mail zaštićen]>

Aplikaciju možete pokrenuti odmah nakon povezivanja:

ssh -X [e-mail zaštićen]"Dodatak"

Ovako izgleda pokrenuti GIMP u ssh sesiji:

Ili možete dobiti izlaz s web kamere prijenosnog računala korisnika koji ništa ne sumnja :)

Izračuni se rade izravno na poslužitelju, a izlaz se prenosi na klijentsko računalo (to jest, čak i ako sam poslužitelj nema instaliran X11, grafičke aplikacije mogu se prikazati na vašem udaljenom računalu). Ova shema radi prilično sporo (ne zaboravite da je sav promet dinamički šifriran) - ali ova je funkcija vrlo korisna.

Također možete kopirati datoteke preko SSH sesije - za to postoji jednostavan uslužni program "scp". Datoteke možete prenositi izravno u sesiji kao s poslužitelja na klijenta:

scp [e-mail zaštićen]:/put/do/datoteke/na/poslužitelju /gdje/spremiti/na/lokalni/stroj

I od klijenta do poslužitelja:

scp put/do/datoteke/klijenta [e-mail zaštićen]:/put/do/poslužitelja

Ovo je prilično zgodno ako trebate kopirati tekst ili fotografiju, ali što ako morate raditi s mnogo datoteka? Da biste to učinili, postoji najprikladnija stvar - sshfs (dostupan za instalaciju u spremištima većine * nix sustava).

Samo postavite put na isti način kao scp:

sshfs [e-mail zaštićen]:/home/korisnik /mnt/

I mapa /home/user poslužitelja će se pojaviti na /mnt točki montiranja lokalnog stroja!

Demontaža se vrši preko umount.

I na kraju, razgovarajmo o jednoj malo poznatoj značajci. Ako kreirate datoteku /.ssh/config i ispunite ga ovako:

domaćin [ime]

ime hosta

Korisnik [korisničko ime poslužitelja]

željene opcije

Kao

NaprijedX11 da

Priključak 30000

Tada se možemo prijaviti putem:

ssh [ime]

ssh -X -p 30000 [e-mail zaštićen]

I sve opcije će se preuzeti automatski. Dakle, uz čestu provjeru autentičnosti na određenom poslužitelju, pojednostavit ćete ovaj proces u nekoliko trenutaka.

Pa, pokrili smo sve (i više) što trebate znati o SSH-u za svakodnevnu upotrebu - naučili kako koristiti autentifikaciju ključem, brute-force zaštitili poslužitelj od hakiranja i općenito, zakrpali većinu potencijalnih rupa. Zapravo, SSH može učiniti mnogo drugih stvari - na primjer, tuneliranje i prosljeđivanje portova kroz ssh sesiju, ali malo je vjerojatno da ćete vi kao najobičniji korisnik to ikada koristiti. Dodatna sredstva

SSH - (Secure Shell) je protokol za daljinsko upravljanje računalom koje pokreće Linux operativni sustav. U osnovi, ssh se koristi za daljinsko upravljanje poslužiteljima putem terminala. Ako ste administrator nekoliko poslužitelja ili čak napredni webmaster, vjerojatno se često susrećete s potrebom rada s određenim računalom putem ssh-a. U Linuxu se to radi pomoću ssh poslužitelja na računalu na koje se želite spojiti i klijenta na onom s kojeg se spajate.

U ovom vodiču ćemo pogledati kako koristiti ssh, kao i njegove značajke za koje niste ni znali. Najvjerojatnije već znate kako se spojiti na poslužitelj putem ssh-a, ali ovaj uslužni program ima mnogo više mogućnosti, poput prijenosa datoteka ssh, povezivanja bez lozinke ili izvršavanja skripte na udaljenom poslužitelju. Sve ovo ćemo razmotriti dalje u članku.

Ali krenimo od samih osnova.

Sintaksa naredbe je sljedeća:

$ ssh [opcije] Korisničko ime@server [naredba]

Važno je napomenuti da ssh može raditi s dvije verzije protokola. Verzije 1 i 2. Jasno je da je verzija 2 bolja i da podržava više vrsta enkripcije i autentifikacije. U ovom članku nećemo više govoriti o razlikama u protokolu i pretpostavit ću da koristite verziju 2.

Opcije SSH naredbe

Sada pogledajmo najosnovnije opcije ssh naredbe:

  • f- stavite ssh u pozadinu
  • g- dopustiti udaljenim strojevima pristup lokalnim priključcima
  • l- korisničko ime u sustavu
  • n- preusmjeriti stdout na /dev/null
  • str- ssh port na udaljenom računalu
  • q- ne prikazuj poruke o grešci
  • v- način otklanjanja pogrešaka
  • x- onemogućiti X11 preusmjeravanje
  • x- omogućiti X11 preusmjeravanje
  • C- omogućiti kompresiju

Ovo nisu sve mogućnosti uslužnih programa, ostale su izvan opsega ovog članka. Mnoge postavke za rad ssh-a mogu se promijeniti kroz konfiguracijsku datoteku ~/.ssh/config, ali ni to ovdje nećemo detaljno razmatrati.

Postavljanje SSH poslužitelja

Postavke SSH poslužitelja nalaze se u datoteci /etc/ssh/sshd_config. Mnoge od njih također nećemo dirati. Razmotrite samo one najzanimljivije. Prvo otvorite datoteku /etc/ssh/sshd.conf

ssh port

Prema zadanim postavkama, ssh radi na portu 22. Ali ovo ponašanje nije sigurno, jer napadač zna ovaj port i može pokušati izvršiti Bruteforce napad kako bi grubo forsirao lozinku. Port je određen linijom:

Promijenite vrijednost priključka na ono što želite.

SSH protokol

Prema zadanim postavkama, ssh poslužitelj može raditi na dvije verzije protokola, radi kompatibilnosti. Da biste koristili samo drugu verziju protokola, skinite komentar s retka:

I neka izgleda ovako:

Root pristup

Prema zadanim postavkama, Root pristup putem ssh-a je dopušten, ali ovo ponašanje je vrlo nesigurno, stoga uklonite komentar iz retka:

DozvolaRootLogin br

Samo određeni korisnički pristup SSH-u

Ssh pristup možemo dopustiti samo određenom korisniku ili grupi. Da biste to učinili, dodajte retke:

AllowUsers Korisnik1, Korisnik2, Korisnik3
Dopusti grupe Grupa1, Grupa2, Grupa3

Ovdje su User1 i Group1 korisnik i grupa kojima želite dopustiti pristup.

Pokretanje X11 aplikacija

Ne znaju svi, ali moguće je koristiti ssh za pokretanje punopravnih X11 aplikacija. O tome ćemo govoriti u nastavku, ali da bi sve radilo, morate omogućiti ovu značajku na strani poslužitelja, dodajte ovaj redak:

X11 Prosljeđivanje da

Glavne opcije su pokrivene, prije nego krenete dalje, ne zaboravite ponovno pokrenuti ssh poslužitelj kako biste spremili promjene:

ponovno pokretanje usluge sshd

Korištenje SSH

Glavna svrha ovog članka je pokazati zanimljive i korisne načine korištenja ssh-a za koje možda niste znali. Prijeđimo na najukusnije - mogućnosti ssh-a.

Veza s poslužiteljem

Da biste se jednostavno povezali s poslužiteljem putem SSH-a, upotrijebite sljedeću naredbu:

Naredba za pokretanje

Navikli smo se povezati s udaljenim poslužiteljem i tek tada izvršavati potrebne naredbe, ali zapravo, uslužni program ssh omogućuje vam da odmah izvršite željenu naredbu bez otvaranja terminala udaljenog stroja. Na primjer:

ssh [e-mail zaštićen] ls

Izvršite naredbu ls na udaljenom poslužitelju i vratite njen izlaz na trenutni terminal.

Izvrši lokalnu skriptu

Izvršimo bash interpreter na udaljenom poslužitelju i proslijedimo mu našu lokalnu skriptu koristeći Bash preusmjeravanje unosa:

ssh [e-mail zaštićen]"bash -s"< script.sh

Sigurnosno kopiranje na udaljeni poslužitelj i vraćanje

Sigurnosnu kopiju diska možemo spremiti izravno na udaljeni poslužitelj koristeći ssh. Preusmjerite izlaz dd-a s operatorom preusmjeravanja |, zatim ga spremite u datoteku na drugoj strani:

sudo dd if=/dev/sda | ssh [e-mail zaštićen]"dd od=sda.img"

Sada, da vratite stanje diska iz sigurnosne kopije, pokrenite:

ssh [e-mail zaštićen]"dd if=sda.img" | dd od=/dev/sda

Ovdje i iznad /dev/sda je naziv datoteke vašeg tvrdog diska.

Autentikacija bez lozinke

Korištenje ssh lozinke za prijavu na poslužitelj nije samo nezgodno, već i nesigurno, jer se ta lozinka može pogoditi u bilo kojem trenutku. Najsigurnija i najčešće korištena metoda provjere autentičnosti je s parom RSA ključeva. Privatni ključ je pohranjen na računalu, dok se javni ključ koristi na poslužitelju za autentifikaciju korisnika.

Vrlo je jednostavno postaviti ovo ponašanje. Prvo kreirajte ključ pomoću naredbe:

ssh-keygen -t rsa

Tijekom izrade ključa morat ćete odgovoriti na nekoliko pitanja, ostaviti lokaciju kao zadanu, ako se želite spojiti bez lozinke - polje Passphare također ostavite prazno.

Zatim šaljemo ključ poslužitelju:

ssh-copy-id -i ~/.ssh/id_rsa.pub [e-mail zaštićen]

Dobijte lozinku iz lokalne datoteke

Dopustite mi da vas podsjetim da pohranjivanje lozinki u obične tekstualne datoteke nije sigurno, ali ako želite, onda da - moguće je. Da biste to učinili, upotrijebite Bash operator za preusmjeravanje unosa:

ssh [e-mail zaštićen] < local_file.txt

Promjena SSH pozdrava

Kada se logirate preko ssh-a može vam se prikazati pozdrav, vrlo ga je lako promijeniti. Za to je odgovorna datoteka /etc/issue. Samo otvorite ovu datoteku i unesite željeni tekst:

Pogledajte neuspjele pokušaje SSH prijave

Želite li vidjeti je li bilo neuspješnih pokušaja pristupa vašem poslužitelju putem ssh-a i s kojih IP adresa? Lako, svi zahtjevi se bilježe u datoteku /var/log/secure, filtriramo samo potrebne podatke naredbom:

mačka /var/log/sigurno | grep "Neuspješna lozinka za"

Prijenos datoteka preko SSH

Osim izvršavanja naredbi, možete kopirati datoteke preko ssh-a. Za to se koristi uslužni program scp. Samo odredite datoteku koju želite prenijeti, udaljeni poslužitelj i mapu na poslužitelju, ovako:

$ scp /adresa/lokalna/datoteka korisnik@host:adrese/mape

Na primjer:

scp ~/test.txt [e-mail zaštićen]:dokumenti

Osim uslužnog programa scp, ssh prijenos datoteka može se obaviti na zahtjevniji način. Čitamo datoteku i uz pomoć cat-a prenosimo i tamo spremamo stream u datoteku:

mačka lokalna datoteka | ssh [e-mail zaštićen] mačka > udaljena datoteka

ssh [e-mail zaštićen] mačka > udaljena datoteka< localfile

tar czf - /home/user/file | ssh [e-mail zaštićen] tar -xvzf -C /home/remoteuser/

Kopiranje datoteka kao što je ovaj ssh omogućuje slanje cijelih mapa odjednom.

Pokretanje grafičkih aplikacija putem ssh-a

Ako trebate pokrenuti određenu grafičku aplikaciju na udaljenom računalu, za to nije potrebno koristiti VNC, možete se snaći s mogućnostima ssh-a. Program će se izvršavati na strani poslužitelja, a vi ćete samo emitirati prozor kako biste mogli raditi što god trebate. I svi podaci su šifrirani. Da bi ova značajka radila, mora biti omogućena na strani poslužitelja.

Zatim jednostavno izvršimo naredbu za pokretanje grafičke aplikacije na udaljenom poslužitelju ovako:

ssh -XC [e-mail zaštićen]"zasjeniti"

Kao što ste već vidjeli, opcija X omogućuje preusmjeravanje X11 na strani klijenta, a opcija C omogućuje kompresiju podataka.

Završetak ssh sesije

Ako ste koristili ssh s nestabilnim internetom, kada se s vremena na vrijeme prekida veza, onda vam je vjerojatno već dosta zatvaranja terminala, jer inače, na prvi pogled, sesija se ne može prekinuti. Kada je veza s udaljenim poslužiteljem prekinuta, ne možete unijeti nijednu naredbu i tipkovnički prečaci Ctrl+C, Ctrl+Z, Ctrl+D ne rade. I neće raditi jer klijent pokušava poslati ove naredbe poslužitelju. Ali postoji rješenje - Escape sekvence. Da biste omogućili njihovu podršku, dodajte redak:

U datoteku /etc/ssh/ssh_config

Ovaj članak je označen kao završetak. Vidi napomenu na kraju članka.

Ovaj se članak fokusira na sigurnog terminalskog klijenta i poslužitelja (sigurnu ljusku) u Ubuntuu, njihovu konfiguraciju i upotrebu. SSH je poseban mrežni protokol koji omogućuje udaljeni pristup računalu uz visok stupanj sigurnosti veze. Možete pročitati više o ssh protokolu.

Opis principa rada i korištenih aplikacija

U osnovi, SSH je implementiran kao dvije aplikacije - SSH poslužitelj i SSH klijent. Ubuntu koristi besplatnu implementaciju SSH klijenta i poslužitelja, OpenSSH. Prilikom povezivanja klijent prolazi proceduru autorizacije na poslužitelju te se između njih uspostavlja kriptirana veza. OpenSSH poslužitelj može raditi i sa ssh1 i ssh2 protokolima. Protokol ssh1 trenutno se smatra nesigurnim i stoga se strogo obeshrabruje. Namjerno izostavljam razne tehničke pojedinosti o tome kako protokol funkcionira, jer je glavna svrha ovog vodiča opisati njegovo postavljanje i korištenje. Na internetu postoji mnogo članaka o samom protokolu, principima njegovog rada, algoritmima šifriranja itd., možete o tome, na primjer, detaljno pročitati.

Montaža

Instalirati OpenSSH Možete koristiti naredbu s terminala:

sudo apt-get instaliraj ssh

Metapaket ssh sadrži i klijenta i poslužitelja, ali ovo će najvjerojatnije instalirati samo poslužitelj, jer je klijent već uključen u Ubuntu prema zadanim postavkama.

Podešavanje poslužitelja

Kada instalirate SSH, poslužitelj se automatski dodaje u pokretanje. Njegovo pokretanje, zaustavljanje ili ponovno pokretanje možete kontrolirati pomoću naredbi:

sudo usluga ssh stop| započeti | ponovno pokretanje

Glavna konfiguracijska datoteka SSH poslužitelja je /etc/ssh/sshd_config datoteka, koju može čitati ili uređivati ​​samo superkorisnik. Nakon svake promjene ove datoteke, morate ponovno pokrenuti ssh poslužitelj kako bi promjene stupile na snagu.

Primjer zadane konfiguracije SSH poslužitelja u Ubuntuu:

# Primjer konfiguracije open-ssh poslužitelja s ruskim # # komentarima..2010. # # # # # # Konvencije: # # Prema zadanim postavkama, ovo se odnosi na ponašanje sshd-a kada # # ova direktiva nije eksplicitno navedena. Vrijedno je napomenuti da na Ubuntu # # datoteka sshd_config već sadrži niz postavki koje su # # zadane za Ubuntu konkretno. # # Takve postavke navedene su u ovoj datoteci. # # # ################################################# # ############## ################# Postavke adrese/porta, itd. ########### ######################################### ##################### # # ## Port ######################### ############################ # # # Port za korištenje. Možete navesti više od jednog, na primjer: # # Port 22 # # Port 23 # # Port 24 # # Preporučuje se korištenje nestandardnog porta jer # # standardni je često skeniran od strane robota za # # potencijalne rupe. Može se izostaviti ako se da # # putem adrese. Također pogledajte parametar ListenAddress. # # # Port 22 # # ## ListenAddress ######################################## # ## # # # Mrežna adresa na kojoj poslužitelj sluša. Adresa se # # može napisati ovako: # # ListenAddress host|IPv4_addr|IPv6_addr # # ListenAddress host|IPv4_addr:port # # ListenAddress :port # # Ako port nije naveden, sshd će slušati ovu adresu i # # na port naveden u opciji port. Ako # # koristite ListenAddress bez navođenja porta, # # opcija Port mora biti prije opcije ListenAddress. Ako se izostavi, # # prema zadanim postavkama sluša sve lokalne # # adrese. Možete navesti više adresa. # # # ## AdresaObitelj ############################################ # # # Određuje koju familiju IP adresa # # treba koristiti sshd. Opcije su: # # “any” - bilo koji # # “inet” (samo IPv4) # # “inet6” (samo IPv6) # # Zadana postavka je “any”. # Adresa obitelji inet # # ## KoristiteDNS ########################################## # ####### # # # Određuje treba li sshd provjeriti ime hosta i # # koristiti to ime za provjeru IP adrese koju je dao klijent u odnosu na # # primljenu od DNS-a. # # Zadana vrijednost je "da". # # # ################################################# # ############# ############## Postavke korisničkog pristupa ############### ###### # #################################################### ## ### # # # Dopuštanje/odbijanje korisnika definirano je # # direktivama DenyUsers, AllowUsers, DenyGroups i AllowGroups. # # u isto vrijeme, provjera ide odozgo prema dolje duž lanca: # # ## DenyUsers ## # # || # # ## AllowUsers ## # # || # # ## DenyGroups ## # # || # # ## AllowGroups ## # # Prihvaćena su samo imena korisnika i grupa, numerički # # identifikatori (UserID) se ne prepoznaju. Ispravan # # unos više korisnika/grupa naizmjenično, odvojenih # # razmakom. Ako je napisano kao user@host - tada se # # korisnik i host zasebno provjeravaju, što omogućuje # # ograničavanje pristupa određenim korisnicima s # # određenih računala. Vrijedno je zapamtiti da # # DenyUsers i AllowUsers direktive uzimaju # # korisničko ime kao parametar, dok DenyGroups i AllowGroups # # uzimaju ime grupe. Pogledajte PATTERNS u man ssh_config za više # # informacija o konvencijama korisničkog imena i imena grupe. # # # ## DenyUsers ############################################## ## # # # Popis KORISNIKA koje sshd NE SMIJE koristiti. # # Zadano - nije navedeno = nitko nije zabranjen. Oni. # # ako je korisnik naveden ovdje, bit će mu odbijen # # pristup ssh poslužitelju. # # # ## AllowUsers ############################################## # # # # Popis KORISNIKA koje TREBA koristiti sshd, # # Zadano - nije navedeno = dopušteno je svima. Oni. ako je # # naveden barem jedan korisnik, ssh pristup poslužitelju # # je dostupan samo njemu. # # # ## DenyGroups ############################################## # # # # Popis GRUPA koje sshd NE SMIJE koristiti. # # Zadano - nije navedeno = nijedna grupa nije zabranjena. # # tj. ako je navedena barem jedna grupa, korisnicima # # u toj grupi će biti odbijen pristup # # ssh poslužitelju. # # # ## AllowGroups ############################################# # # # # Popis GRUPA koje sshd MOŽE koristiti. # # Zadano - nije navedeno = dopušteno svima. Oni. ako je # # navedena barem jedna grupa, tada će samo onim korisnicima# # koji joj pripadaju biti dopušten pristup ssh poslužitelju.# # # #################### ## ################################################## # Opcije koje određuju status veze ########### ################################### ## ######################## # # ## TCPKeepAlive #################### ## ####################### # # # Određuje treba li sustav slati TCP poruke klijentu # # kako bi održao vezu. Ako pošaljete ove pakete,# # možete otkriti prekid veze. Međutim, ovo # # također znači da se veza može prekinuti ako # # dođe do trenutnog prekida u usmjeravanju, a # # ovo je za neke vrlo neugodno. S druge strane, ako se # # ove poruke ne pošalju, sesije na poslužitelju mogu # # trajati neograničeno dugo, rađajući "duhove" korisnike# # i proždirući resurse poslužitelja. Zadana vrijednost je “yes”,# # tj. slati takve poruke. Kako biste onemogućili slanje # # takvih poruka, postavite vrijednost na “ne”. Prethodno se ova # # opcija zvala KeepAlive. Vrijedno je napomenuti da postoje # # sigurniji načini za provjeru statusa veze # # (pogledajte dolje). # # # TCPKeepAlive da # # ## ClientAliveCountMax #################################### # # # Određuje broj poruka klijentima # # koje sshd šalje u nizu bez dobivanja odgovora # # od klijenta. Ako je prag dosegnut, a # # klijent i dalje ne odgovara, sshd će odspojiti klijenta, prekidajući # # ssh sesiju. Vrijedno je napomenuti da se korištenje ovih poruka # # bitno razlikuje od TCPKeepAlive direktive. # # Poruke za/od klijenata šalju se preko # # šifriranog kanala i stoga nisu podložne lažiranju. # # TCPKeepAlive poruke podložne su lažiranju. Client alive # # mehanizam je posebno vrijedan u slučajevima kada poslužitelj i klijent # # trebaju znati kada je veza postala neaktivna. # # zadana vrijednost je 3. Ako je ClientAliveInterval # # postavljen na 15, a ClientAliveCountMax ostavljen na # # zadanu vrijednost, klijenti koji ne odgovaraju bit će isključeni nakon otprilike # # 45 sekundi. Ova direktiva radi samo za # # ssh2 protokol. # # # ## ClientAliveInterval ###################################### # # # Postavlja vremenski interval u sekundi. Ako nije uspostavljena komunikacija s klijentom tijekom # # ovog intervala, sshd # # šalje poruku preko šifriranog kanala # # tražeći odgovor od klijenta. Zadana vrijednost je 0, tj. # # ne šaljite takve poruke. Ova direktiva radi # # samo za ssh2 protokol. # # # ################################################# # ############# ################# Opće opcije provjere autentičnosti ################# # # #################################################### ## ######## # # ## AuthorizedKeysFile #################################### ## # # # # Određuje datoteku koja sadrži javne ključeve # # koji se koriste za provjeru autentičnosti korisnika. Direktiva # # može sadržavati tokene oblika %M, koji se zamjenjuju tijekom # # procesa uspostavljanja veze. # # Sljedeći markeri su definirani: # # %% - zamijenjeno literalom "%" # # %h - zamijenjeno matičnim direktorijem # # korisnika koji provjerava autentičnost # # %u - zamijenjeno imenom korisnika koji provjerava autentičnost # # Dakle, datoteka ključa može biti navedena kao # # apsolutna staza (tj. jedna dijeljena datoteka s ključevima), i # # dinamički - ovisno o korisniku (tj. jedna # # datoteka po korisniku). # # Zadana vrijednost je “.ssh/authorized_keys”. # # Primjer datoteke ključa u početnoj mapi korisnika: # # AuthorizedKeysFile %h/.ssh/authorized_key # # Primjer generičke datoteke: # # AuthorizedKeysFile /etc/ssh/authorized_keys # # Pogledajte opis datoteke authorized_keys za više # # informacije. # # # ## ChallengeResponseAuthentication ######################### # # # Označava treba li dopustiti provjeru autentičnosti izazov-odgovor # # (provjera autentičnosti izazov-odgovor). # # Podržani su svi tipovi provjere autentičnosti iz login.conf Zadano je "da", # # tj. dopustiti. # # Na Ubuntuu, onemogućeno iz sigurnosnih razloga. # # # ChallengeResponseAuthentication no # # ## HostbasedUsesNameFromPacketOnly ########################## # # # Određuje kako poslužitelj treba dohvatiti ime glavnog računala klijenta # # kada shema provjere autentičnosti temeljena na hostu. # # Ako je postavljeno na "yes", sshd # # će koristiti ime hosta koje je dao klijent kada provjerava podudarnost u # # ~/.shosts, ~/.rhosts, ili /etc/hosts.equiv datotekama. # # (izvođenje obrnute DNS razlučivosti) Ako je postavljeno na "ne"# # - sshd će razriješiti ime iz same TCP veze. # # Zadana postavka je "ne". # # # ## IgnoreRhosts ############################################# # # Onemogućuje korištenje datoteka .rhost i .shosts # # u autentifikaciji temeljenoj na hostu. # # (RhostsRSAAuthentication ili HostbasedAuthentication). # # Datoteke /etc/hosts.equiv i /etc/ssh/shosts.equiv su # # još u upotrebi. # # Zadana vrijednost je "da". # # # IgnoreRhosts da # # ## IgnoreUserKnownHosts ##################################### # # # Označava trebao bi sshd ignorirati korisničku # # datoteku "poznati hostovi" ~/.ssh/known_hosts tijekom # # provjere autentičnosti temeljene na hostu (RhostsRSAAuthentication ili HostbasedAuthentication). # # Zadana vrijednost je "ne". # # # ## PermitBlacklistedKeys #################################### # # # Određuje hoće li se prihvatiti sshd ključevi na crnoj listi # # kao kompromitirano (poznato-kompromitirani # # ključevi (pogledajte ssh-vulnkey)). Ako je postavljeno na “yes”, # # pokušaji autentifikacije s ovim ključevima bit će zabilježeni # # i prihvaćeni, ako je postavljeno na “no”, # # pokušaji autentifikacije bit će odbijeni. # # Zadana vrijednost je "ne". # # # ## PermitEmptyPasswords ###################################### # # # U slučaju dopuštene autentifikacije s lozinkom, # # određuje je li moguća prijava s praznom lozinkom. # # Zadana vrijednost je "ne". # # # PermitEmptyPasswords no # # ## PermitRootLogin ####################################### # # # # Označava je li ssh prijava kao superkorisnik # # (root) dopuštena. Može imati sljedeće vrijednosti: # # "yes" - superkorisnik se može prijaviti. # # Koristi se trenutna shema globalne provjere autentičnosti. # # # # "bez lozinke" - superkorisnik se može prijaviti. # # Provjera autentičnosti lozinke bit će onemogućena. # # # # “forced-commands-only” - superkorisnik će se moći prijaviti # # koristeći autentifikaciju s javnim ključem i # # samo ako prođe potrebnu naredbu za izvršenje. # # Ovo je zgodno za sigurnosno kopiranje # # čak i kada je normalna (tj. ne preko ssh) # # root prijava onemogućena. Sve druge # # metode provjere autentičnosti za superkorisnika bit će onemogućene.# # # # “ne” - superkorisnik ne može koristiti ssh za # # prijavu u sustav. # # # # Zadana vrijednost je "da". # # # Dopusti RootLogin da # # ## Protokol ######################################### ######## # # # Određuje koji bi protokol sshd trebao koristiti. # # Moguće vrijednosti '1' i '2' su ssh1 i ssh2 # # redom. Moguće je istovremeno pisanje, u kojem # # vrijednosti moraju biti odvojene zarezima. # # Zadana vrijednost je “2,1”. # # Vrijedno je napomenuti da redoslijed protokola u # # unosu ne specificira prioritet, kao klijent bira koji će # # od nekoliko protokola ponuđenih od strane poslužitelja koristiti # # Unos "2,1" točno je # # identičan unosu "1,2". # # # Protokol 2 # # ## UsePAM ######################################### # ######### # # # Omogućuje PAM (Pluggable Authentication Module # # sučelje). na temelju # # izazova-odgovora (ChallengeResponseAuthentication i # # PasswordAuthentication) # # provjera autentičnosti izazov-odgovor u PAM-u obično ima istu ulogu # # kao provjera autentičnosti lozinkom, trebali biste onemogućiti # # ili PasswordAuthentication ili # # ChallengeResponseAuthentication. Vrijedno je napomenuti da # # ako je UsePAM direktiva omogućena, nećete moći pokrenuti # # sshd kao korisnik koji nije root. # # Zadana vrijednost je “ne”. # # # UsePAM da # # ## PasswordAuthentication #################################### # # # Određuje hoće li provjera autentičnosti pomoću # # lozinke. # # Zadana vrijednost je "da". # # # ## HostKey ############################################## #### # # # Određuje datoteku koja sadrži privatni ključ hosta # # koji koristi SSH. Zadana vrijednost je /etc/ssh/ssh_host_key # # za ssh1 protokol i /etc/ssh/ssh_host_rsa_key i # # /etc/ssh/ssh_host_dsa_key za ssh2 protokol. # # Vrijedno je napomenuti da sshd neće koristiti datoteku # # koja se dijeli s bilo kim osim s korisnikom. Možete # # koristiti više datoteka ključeva, ključevi su “rsa1” # # za ssh1 protokol i “dsa”/“rsa” za ssh2 protokol. # # # HostKey /etc/ssh/ssh_host_rsa_key HostKey /etc/ssh/ssh_host_dsa_key # # ############################### ############################## ########## Opcije protokola SSH verzije 1 (ssh1) ### ########## ########################################## ##################### # Strogo se NE PREPORUČUJE korištenje protokola ssh1.# # Protokol ssh2 mnogo je sigurniji od ssh1 # ###### ##### ################################################ #### # # ## KeyRegenerationInterval ################################### # # # Za ssh1 protokol - jednom svaki određeni put # # automatski se generira novi privremeni poslužiteljski ključ # # (ako je korišten). Ovo se radi # # kako bi se spriječilo dešifriranje otetih sesija, kako bi se # # kasnije prijavili na stroj s parametrima tih sesija i # # ukrali ključeve. Ovaj ključ nije nigdje pohranjen (pohranjen u # # RAM-u). Ova direktiva navodi # # životni vijek ključa u sekundama nakon čega će # # biti ponovno generiran. Ako je vrijednost postavljena na 0 - # # ključ se neće regenerirati. # # Zadana vrijednost je 3600 (sekundi). # # # KeyRegenerationInterval 3600 # # ## RhostsRSAAuthentication ################################## # # # Označava temelji li se na autentifikaciji na # # rhosts ili /etc/hosts.equiv datotekama, zajedno s uspješnom # # provjerom autentičnosti hosta putem RSA. # # Relevantno samo za ssh1 protokol. # # Zadana vrijednost je "ne". # # # RhostsRSAAuthentication no # # ## RSAAuthentication ###################################### # # # Označava je li dopuštena "čista" RSA provjera autentičnosti. # # Relevantno samo za ssh1 protokol. # # Zadana vrijednost je "da". # # # RSAAuthentication da # # ## ServerKeyBits ######################################### ### # # # Određuje broj bitova u privremenom ključu poslužitelja za # # ssh1 protokol. Minimalna vrijednost je 512. # # Zadana vrijednost je 1024. # ServerKeyBits 768 # # ################################# ########################### ########### Opcije protokola SSH verzija 2 (ssh2) #### ######## ############################################ ################## # # ## šifre ############################# ###################### # # # Određuje algoritme šifriranja dopuštene za # # ssh2 protokol. Više algoritama treba # # odvojiti zarezima. Podržani algoritmi: # # “3des-cbc”, “aes128-cbc”, “aes192-cbc”, “aes256-cbc”, # # “aes128-ctr”, “aes192-ctr”, “aes256-ctr”, “ arcfour128”, # # “arcfour256”, “arcfour”, “blowfish-cbc”, “cast128-cbc”. # # Zadane su: # # aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour128, # # arcfour256,arcfour,aes192-cbc,aes256-cbc,aes128-ctr, # # aes192-ctr, aes256 -ctr # # # ## HostbasedAuthentication ################################## # # # Određuje je li provjera autentičnosti dopuštena, na temelju na # # provjerava host. Provjerite rhosts ili /etc/hosts.equiv, # # i ako je uspješno, u kombinaciji s uspješnom provjerom # # javnog ključa, pristup je odobren. Ova direktiva je # # ista kao RhostsRSAAuthentication direktiva i # # se odnosi samo na ssh2 protokol. # # Zadana postavka je "ne". # # # Hostbased Authentication no # # ## MACs ######################################### ############ # # # Označava važeći MAC algoritam (poruka # # autentifikacijski kod). MAC algoritam # # koristi ssh2 protokol za zaštitu integriteta podataka. Više # # algoritama mora biti odvojeno zarezima. # # Zadane su: # # hmac-md5,hmac-sha1, [e-mail zaštićen] ,hmac-ripemd160, # # hmac-sha1-96,hmac-md5-96 # # # ## PubkeyAuthentication ########################## ########## # # # Označava je li provjera autentičnosti javnim ključem # # dopuštena. Relevantno samo za ssh2 protokol. # # Zadana vrijednost je "da". # # # PubkeyAuthentication da ############################################## ################ ##################### GSSAPI opcije ############## #################################################### ######################## # # ############# Primjenjivo samo za ssh2 protokol ######## ### # # ## GSSAPIAuthentication ###################################### # # # Određuje hoće li provjera autentičnosti korisnika se # # temelji na GSSAPI. Zadano je "ne", tj. zabranjeno. # # # ## GSSAPIKeyExchange ####################################### # # # Označava je li ključ dopuštena je razmjena temeljena na # # GSSAPI. Razmjena ključeva GSSAPI ne oslanja se na # # ssh ključeve za provjeru identiteta hosta. # # Zadana vrijednost je "ne" - tj. zamjena je zabranjena. # # # ## GSSAPICleanupCredentials ################################# # # # Određuje hoće li se automatski uništiti # # provjera autentičnosti korisnika predmemorija vjerodajnica kada # # sesija završi. # # Zadana vrijednost je "da" - tj. treba uništiti. # # # ## GSSAPIStrictAcceptorCheck ################################ # # # Određuje koliko stroga treba biti provjera identiteta # # klijent prilikom provjere autentičnosti putem GSSAPI. # # Vrijednost "yes" uzrokuje autentifikaciju klijenta na # # host usluzi primatelja na trenutnom hostu. Vrijednost "ne" # # omogućuje klijentu autentifikaciju s bilo kojim # # servisnim ključem. # # Zadana vrijednost je "da". # # Imajte na umu da postavljanje na "ne" može raditi samo # # s rijetkim Kerberos GSSAPI bibliotekama. # # # ################################################# # ############# #################### Opcije Kerberos ################ # ######### ########################################## # ################### # # ## Kerberos Authentication ########################## # ######## # # # Označava zahtijeva li lozinka # # koju je korisnik dao za provjeru autentičnosti # # (PasswordAuthentication) provjeru valjanosti na Kerberos KDC-u. # # Za korištenje ove opcije, poslužitelj mora # # potvrditi da je KDC istinit. (Poslužitelj treba # # Kerberos servtab koji omogućuje provjeru # # KDC-ovog identiteta) # # Zadana postavka je “ne”. # # # ## KerberosGetAFSToken ###################################### # # # Ako je AFS aktivan i korisnik je dobio Kerberos 5 TGT, # # treba li pokušati dobiti AFS token prije nego što korisnik # # dobije pristup svojoj matičnoj mapi. # # Zadana vrijednost je "ne". # # # ## KerberosOrLocalPasswd #################################### # # # Određuje kako postupiti u slučaju od ako provjera autentičnosti # # putem Kerberosa nije uspjela. Ako je # # vrijednost "yes", lozinka će biti potvrđena pomoću # # bilo kojeg dodatnog mehanizma lokalne autorizacije, # # na primjer - /etc/passwd. # # Zadana vrijednost je "da". # # # ## KerberosTicketCleanup #################################### # # # Određuje hoće li se datoteka automatski zatvoriti s # # predmemorijom korisničke karte kada sesija završi. # # Zadana vrijednost je "da". # # # ################################################# # ############## ################## Opcije preusmjeravanja ################## # ## ################################################# ## ############ # # ## AllowAgentForwarding ################################ # ### # # # Određuje treba li omogućiti ili onemogućiti # # preusmjeravanje ssh-agenta. Zadana postavka je "da", tj. dopustiti. # # Imajte na umu da onemogućavanje preusmjeravanja neće # # povećati sigurnost osim ako ga korisnici također # # odbiju pristup ljusci jer mogu # # instalirati vlastite kopije agenta # # # ## AllowTcpForwarding ###################### ########## ###### # # # Određuje hoće li se dopustiti ili onemogućiti TCP preusmjeravanje # # Zadana postavka je "da", tj. dopustiti Imajte na umu da # # kao u slučaju AllowAgentForwarding, onemogućavanje # # prosljeđivanja neće poboljšati sigurnost sve dok jer # # korisnici imaju pristup konzoli, jer mogu # # instalirati svoje parnjake # # # # # ## GatewayPorts ######### ## ################################## # # # Određuje treba li dopustiti udaljenim hostovima pristup # # preusmjerenim portovima. Prema zadanim postavkama, sshd samo sluša # # za proslijeđene portove na lokalnom sučelju # # (povratna petlja). Ovo sprječava druge udaljene hostove # # da se povežu na proslijeđene portove. Možete # # koristiti GatewayPorts kako biste omogućili sshd-u da # # to učini. Direktiva može imati 3 vrijednosti: # # "ne" - samo povratna petlja. # # "da" - bilo koje adrese. # # "clientspecified" - adrese koje je naveo klijent. # # # ## Otvaranje dozvole ############################################## # # # # Određuje gdje je dopušteno prosljeđivanje TCP porta. # # Specifikacija preusmjeravanja mora imati jedan od # # sljedećih oblika: # # PermitOpen host:port # # PermitOpen IPv4_addr:port # # PermitOpen :port # # Više unosa može se navesti odvajanjem razmacima. # # Argument "bilo koji" može se koristiti za uklanjanje svih # # ograničenja prosljeđivanja portova. Prema zadanim postavkama dopušteno je svako preusmjeravanje # #. # # # ## PermitTunnel ############################################## # # Označava je li dopušteno preusmjeravanje tun uređaja. # # Može se postaviti na: # # “yes” # # “point-to-point” (3. mrežni sloj) # # “ethernet” (2. mrežni sloj) # # “ne” # # Vrijednost “yes” dopušta oboje " točka-točka" # # i "ethernet" u isto vrijeme. Zadana postavka je "ne". # # # ################################################# # ############# ################### Opcije bilježenja ################# # ### ################################################ ## ############# # # ## SyslogFacility ############################### # ########## # # # Određuje objektni kod dnevnika za pisanje poruka u # # syslog iz sshd-a. Moguće vrijednosti: # # DAEMON # # USER # # AUTH # # LOCAL0 # # LOCAL1 # # LOCAL2 # # LOCAL3 # # LOCAL4 # # LOCAL5 # # LOCAL6 # # LOCAL7 # # Zadana vrijednost je AUTH. # # # SyslogFacility AUTH # # ## LogLevel ######################################### ######## # # # Postavlja razinu opširnosti sshd dnevnika. # # Opcije su: # # SILENT # # QUIET # # FATAL # # ERROR # # INFO # # VERBOSE # # DEBUG # # DEBUG1 # # DEBUG2 # # DEBUG3 # # Zadana postavka je INFO. # # DEBUG i DEBUG1 su međusobno ekvivalentni. # # DEBUG2 i DEBUG3 postavljaju najviše razine debug # # izlaza. Zapisivanje na razini DEBUG # # ugrožava privatnost korisnika i ne preporučuje se. # # # LogLevel INFO # # ########################################### # ######################################################### ####### ############################################## ################# # # ## X11 Prosljeđivanje ########################### ############## # # # Označava je li dopušteno preusmjeravanje X11 grafičkog # # podsustava. Može imati vrijednosti "da" ili "ne". # # Zadana vrijednost je "ne". # # Upozorenje - omogućavanje jednostavnog X11 preusmjeravanja je # # veliki rizik i za poslužitelj i za klijente, jer u # # ovom preusmjeravanju, sshd proxy zaslon će # # prihvatiti veze s bilo koje adrese. # # Koristite direktivu X11UseLocalhost da ograničite pristup # # poslužitelju za preusmjeravanje X. Vrijedno je napomenuti da # # onemogućavanje preusmjeravanja neće jamčiti da # # korisnici neće moći preusmjeriti X11, jer imajući # # pristup konzoli uvijek postavljaju svoj # # preusmjerivač. X11 preusmjeravanje će # # biti automatski onemogućeno ako # # se koristi direktiva UseLogin. # # # X11Prosljeđivanje da # # ## X11UseLocalhost ######################################### # # # Određuje treba li sshd # # ograničiti X11 preusmjeravanje na lokalnu povratnu adresu ili # # dopustiti bilo koje adrese. Zadana vrijednost je sshd # # "sadi" X11 poslužitelj za preusmjeravanje na lokalnu adresu # # i postavlja dio naziva hosta varijable okoline DISPLAY # # na "localhost". Imajte na umu da # # neki stariji X11 klijenti možda neće raditi s # # ovim postavkama. Zadano je "da", tj. preusmjeravanje # # je ograničeno na lokalni host, vrijednost je "ne" - onemogućuje # # ograničenja. # # # ## XAuthLocation ########################################### # # # Određuje punu stazu do xauth programa. # # Zadano je /usr/bin/X11/xauth. # # # ## X11DisplayOffset ######################################## # # # Označava broj prvog prikaza dostupnog za sshd # # kao X11 preusmjeravanje. Ovo se radi tako # # da se preusmjereni x-ovi ne preklapaju s # # pravim. Zadana vrijednost je 10. # # # X11DisplayOffset 10 # # ####################################### # ##################### ##################### Razne opcije ####### # ##################################################### ########################## # # ## LoginGraceTime ################### # ####################### # # # Vrijeme nakon kojeg poslužitelj prekida # # korisnika ako se ne uspije # # prijaviti na zadovoljavajući način. Vrijednost 0 - omogućuje korisniku # # neograničenu prijavu. Zadana vrijednost je 120 (sekundi). # # # LoginGraceTime 120 # # ## MaxAuthTries ######################################## # ### # # # Određuje najveći broj pokušaja autentifikacije # # dopušten po vezi. # # Jednom kada broj neuspjelih pokušaja premaši # # polovicu postavljene vrijednosti, svi naredni pokušaji # # će biti zabilježeni. Zadana vrijednost je 6. # # # ## MaxSessions ###################################### # ###### # # # Određuje najveći broj istodobnih veza # # za svaku mrežnu vezu. Zadano je 10. # # # ## MaxStartups ######################################## # ##### # # # Određuje najveći broj istovremenih # # neovlaštenih veza na sshd. U slučaju da # # broj veza premaši ograničenje - sve dodatne # # veze bit će ispuštene dok se trenutne # # veze ne dovrše uspješnom autorizacijom, # # ili istekom vremenskog razdoblja navedenog u # # LoginGraceTime direktivi . Zadana vrijednost je 10. # # Po izboru, možete postaviti rano prekidanje veza # # navođenjem tri vrijednosti odvojene # # dvotočkom “start:rate:full” (npr.: "10:30:60"). # # sshd će odbiti pokušaj povezivanja s vjerojatnošću # # od “rate/100” (tj. u našem primjeru to je 30%) ako # # već postoje "start" (10) neovlaštene veze. # # Vjerojatnost raste linearno i svaki # # pokušaj povezivanja bit će odbijen ako broj neovlaštenih # # povezivanja dosegne "puno" (60). # # # ## Kompresija ############################################## # # # # Pokazuje je li omogućena kompresija podataka. Može biti # # "da" - kompresija je omogućena. # # "odgođeno" - kompresija je odgođena dok se # # korisnik uspješno ne autentificira. # # "ne" - kompresija je onemogućena. # # Zadana postavka je "odgođeno". # # # ## UseLogin ############################################## ### # # # Pokazuje treba li se prijava koristiti za # # interaktivnu sesiju. Zadana vrijednost je "ne". # # Vrijedno je napomenuti da prijava nikada nije korištena # # za izvršavanje udaljenih naredbi. Također imajte na umu da će # # korištenje prijave učiniti nemogućim # # korištenje direktive X11Forwarding, jer prijava # # ne zna što učiniti s xauth. Ako je direktiva # # UsePrivilegeSeparation uključena - bit će onemogućena nakon # # autorizacije. # # # ## UsePrivilegeSeparation ################################## # # # Određuje treba li sshd odvajati privilegije. Ako da # # tada će neprivilegirani podređeni proces # # biti prvo kreiran za dolazni mrežni promet. Nakon uspješne autorizacije, # # će se kreirati drugi proces s # # privilegijama prijavljenog korisnika. # # # Primarna svrha dijeljenja privilegija je spriječiti nadjačavanje. # # Zadana vrijednost je "da". # # # UsePrivilegeSeparation da # # ## StrictModes ####################################### ### # # # Određuje treba li sshd provjeriti načine pristupa i # # vlasništvo korisničkih mapa i datoteka prije # # dopuštanja korisniku da se prijavi. To je obično zato što # # početnici često u svoje datoteke # # mogu pisati svi. Zadana postavka je "da". # # # StrictModes da # # ## AcceptEnv ########################################## ####### # # # Određuje koje će varijable okruženja # # proslijeđene od strane klijenta biti prihvaćene. Pogledajte opciju SendEnv u klijentu. # # Imajte na umu da je prosljeđivanje varijabli moguće samo # # za ssh2 protokol. Varijable su navedene imenom, # # mogu se koristiti zamjenski znakovi ('*' i '?'). Možete navesti # # više varijabli odvojenih razmacima ili # # prekinuti više redaka AcceptEnv-a. Budite oprezni - neke # # varijable okruženja mogu se koristiti za zaobilaženje # # zabranjenih korisničkih okruženja. # # Koristite ovu direktivu pažljivo. Prema zadanim postavkama ne prihvaćaju se # # prilagođene varijable okruženja. # # # AcceptEnv LANG LC_* # # ## PermitUserEnvironment ################################# # # # Određuje treba li sshd # # prihvatiti ~/.ssh/environment i opciju environment= u # # ~/.ssh/authorized_keys. Zadana postavka je "ne". Vrijedi # # napomenuti da omogućavanje rukovanja okruženjem može # # omogućiti korisnicima da zaobiđu ograničenja u nekim # # konfiguracijama koristeći mehanizme kao što je # # LD_PRELOAD. # # # # # ## PidFile ############################################ ###### # # # Određuje datoteku koja sadrži ID procesa # # (ID procesa, PID) SSH demona. # # Zadano je /var/run/sshd.pid # # # # # ## PrintLastLog ############################ ############# # # # Određuje treba li sshd prikazati datum i vrijeme # # posljednje sesije kada se korisnik interaktivno prijavljuje. # # Zadana vrijednost je "da". # # # PrintLastLog da # # ## PrintMotd ########################################## ####### # # # Određuje treba li sshd ispisivati ​​/etc/motd # # kada se korisnik interaktivno prijavljuje. Na nekim # # sustavima (npr. Ubuntu) ovu informaciju također # # prikazuje ljuska. # # Zadana vrijednost je "da". # # # PrintMotd no # # ## Banner ######################################## # ######### # # # Određuje koja datoteka sadrži tekstualni banner # # koji će biti prikazan korisniku PRIJE procedure # # provjere autentičnosti. Opcija je dostupna samo za ssh2 protokol.# # Zadano - ne prikazuje ništa. # # Na Ubuntuu, datoteka issue.net sadrži izraz Ubuntu (verzija), # # npr. za karmički to je "Ubuntu 9.10". Može se # # koristiti za zbunjivanje potencijalnih napadača # # pisanjem "Moj D-Link Internet Router" =) # # # Banner /etc/issue.net # # ## ChrootDirectory ############ # ############################## # # # Ako je navedeno, daje put do # # chroot nakon provjere autentičnosti. Staza i sav njezin # # sadržaj moraju odgovarati # # mapama u vlasništvu superkorisnika i ne mogu # # pisati drugi korisnici. # # Put može sadržavati oznake koje su zamijenjene u # # procesu provjere autentičnosti: # # %% - zamijenjeno literalom "%" # # %h - zamijenjeno matičnim direktorijem # # korisnika koji se autentificira # # %u - zamijenjeno imenom korisnika koji se autentificira # # chroot -mapa bi trebala sadržavati sve potrebne datoteke i # # mape za korisničku sesiju. Interaktivna # # sesija treba najmanje: # # ljusku, obično sh # # osnovne uređaje u /dev, kao što su: # # null, zero, stdin, stdout, stderr, arandom i tty # # za sesiju prijenosa podataka koristeći sftp # # nije potrebna dodatna konfiguracija ako # # se koristi interni sftp proces poslužitelja. Pogledajte Podsustav za # # više informacija. Prema zadanim postavkama, chroot se ne izvodi. # # # ## ForceCommand ############################################# # # Uzrokuje izvršenje navedene naredbe. Ignorira # # sve naredbe dane od strane klijenta ili napisane u # # ~/.ssh/rc. Naredba se poziva iz korisničke # # ljuske s -c opcijom. Prikladno za pokretanje ljuske, # # naredbe ili podsustava. Najkorisnije unutar bloka # # Match. Naredba koju je izvorno poslao klijent pohranjuje se # # u varijabli okruženja SSH_ORIGINAL_COMMAND. Ako je # # navedena naredba "internal-sftp", # # pokrenut će se interni sftp poslužitelj, koji ne treba dodatne # # datoteke i mape opisane u direktivi ChrootDirectory. # # # ## Podsustav ############################################## ## # # # Definira i konfigurira vanjski podsustav (na primjer # # demon prijenosa datoteka). # # Argumenti su ime i naredba (s mogućim # # argumentima) koja će se izvršiti tijekom upita # # na podsustavima. Naredba sftp-server pokreće “sftp” # # podsustav za prijenos datoteka. Po izboru, možete # # navesti “internal-sftp” kao podsustav, koji će pokrenuti # # interni sftp poslužitelj. # # Ovo može uvelike pojednostaviti konfiguraciju pri korištenju # # ChrootDirectory direktive Prema zadanim postavkama ne pozivaju se podsustavi # #. Relevantno samo za ssh2 protokol. # # # Podsustav sftp /usr/lib/openssh/sftp-server # # ################################# # ########################## ####################### Blok podudaranja # #################################################### ##################################### # # # Posebno pomaknuto na kraj datoteke kako bi se praktičnije # # napišite pravila podudaranja. # # MadKox. # # # # Direktiva podudaranja je početak uvjetnog # # bloka. Ako su svi kriteriji navedeni u retku # # Match ispunjeni, direktive na sljedećim linijama bloka se izvršavaju, # # omogućujući vam da zaobiđete vrijednosti globalnih direktiva # # od sshd_config za slučaj da # # Match direktivni kriteriji. Blok su svi redovi koji slijede red # # s kriterijem (Match - lines) do sljedećeg retka podudaranja # # ili do kraja datoteke. Argument direktive podudaranja je jedan ili # # više parova unosa kriterija. Moguće vrste zapisa su: # # Korisnik # # Grupa # # Domaćin # # Adresa # # Zapisi mogu sadržavati pojedinačne vrijednosti # # (npr. Korisnik=korisnik) ili višestruke vrijednosti # # odvojene zarezima (Korisnik=korisnik1,korisnik2 ). # # Regularni izrazi opisani u # # odjeljku PATTERNS datoteke ssh_config također se mogu koristiti. Unosi u # # kriterijima adrese mogu sadržavati adrese u CIDR notaciji # # (duljina adrese/maske, na primjer “192.0.2.0/24” ili # # “3ffe:ffff::/32”). Vrijedno je napomenuti da navedena duljina maske # # mora odgovarati adresi, a # # preduga/kratka za adresu neće funkcionirati. # # Direktive podudaranja mogu koristiti samo # # određeni skup direktiva: # # AllowTcpForwarding # # Banner # # ChrootDirectory # # ForceCommand # # GatewayPorts # # GSSAPIAuthentication # # HostbasedAuthentication # # KbdInteractiveAuthentication # # KerberosAuthentication # # MaxAuthTries # # MaxSessions # # PasswordAuthentication # # PermitOpen # # PermitRootLogin # # RhostsRSAAuthentication # # RSAAuthentication # # X11DisplayOffset # # X11Forwarding # # X11UseLocalHost #

Možete kopirati gornji tekst u svoj vlastiti sshd_config i koristiti ga kasnije za konfiguraciju.

Sam po sebi, pogrešno konfiguriran SSH poslužitelj velika je sigurnosna ranjivost, budući da mogući napadač ima mogućnost dobiti gotovo neograničen pristup sustavu. Osim toga, sshd ima mnogo dodatnih korisnih opcija koje je poželjno omogućiti radi poboljšanja upotrebljivosti i sigurnosti.

Port, ListenAddress i AddressFamily

Ove tri opcije određuju koje portove i adrese će vaš poslužitelj osluškivati ​​za dolazne veze. Prvo, ima smisla, ako je moguće, ograničiti obitelj obrađenih adresa na one koje se stvarno koriste, to jest, ako koristite samo IPv4, onemogućite IPv6 i obrnuto. To se može učiniti pomoću parametra AddressFamily, na primjer (za dopuštanje IPv4 i odbijanje IPv6):

Adresa Obitelj inet

Drugo, poželjno je promijeniti standardni port (22) na kojem sshd sluša. To je zbog činjenice da se brojni mrežni skeneri stalno pokušavaju spojiti na 22. priključak i barem dobiti pristup nabrajanjem prijava / lozinki iz njihove baze podataka. Čak i ako je provjera autentičnosti lozinke onemogućena, ovi pokušaji začepljuju zapise i (u velikom broju) mogu negativno utjecati na brzinu ssh poslužitelja. Ako iz nekog razloga ne želite promijeniti standardni priključak, možete koristiti razne vanjske uslužne programe za borbu protiv brute-forcera, kao što je fail2ban, ili one ugrađene, kao što je MaxStartups.
Port možete postaviti kao apsolutnu vrijednost za sva sučelja pomoću direktive Port ili kao određenu vrijednost za svako sučelje pomoću direktive ListenAddress. Na primjer:

Luka 2002

ListenAddress 192.168.0.1:2003 ListenAddress 192.168.1.1:2004

Onemogući daljinski pristup za superkorisnika

Prema zadanim postavkama, root pristup je odbijen lozinkom (ključem - možete) - opcija PermitRootLogin postavljena je na without-password. No, s obzirom na to da prema zadanim postavkama u Ubuntuu korisnik dodan tijekom instalacije sustava ima mogućnost izvršavanja svih administrativnih zadataka putem sudoa, stvaranje mogućnosti root pristupa sustavu putem ssh-a izgleda nerazumno (čak i uz autentifikaciju ključa). Preporuča se potpuno isključiti. ovu opciju ili je primijenite samo u načinu rada samo s prisilnim naredbama. Root pristup možete onemogućiti ovako:

DozvolaRootLogin br

Autentikacija lozinke

Autentikacija lozinke uključena prema zadanim postavkama praktički je najprimitivniji način prijave na sshd. S jedne strane, ovo pojednostavljuje konfiguraciju i povezivanje novih korisnika (dovoljno je da korisnik zna svoju login/lozinku sustava), s druge strane, lozinka se uvijek može pogoditi, a korisnici često zanemaruju stvaranje složenih i duge lozinke. Posebni botovi neprestano skeniraju ssh poslužitelje dostupne s interneta i pokušavaju se prijaviti na njih nabrajanjem prijava/lozinki iz njihove baze podataka. Toplo se preporučuje ne koristiti provjeru autentičnosti lozinkom. Možete ga isključiti ovako:

PasswordAuthentication br

Ako iz nekog razloga ipak želite koristiti autentifikaciju lozinkom - pobrinite se da se nitko ne može prijaviti s praznom lozinkom. Da biste to učinili, postavite direktivu PermitEmptyPasswords:

PermitEmptyPasswords br

SSH1 i SSH2 protokoli

Kao što je već spomenuto, sshd može raditi s protokolima SSH1 i SSH2. Međutim, korištenje nesigurnog SSH1 se jako obeshrabruje. Možete prisiliti sshd da radi samo sa SSH2 protokolom ovako:

SSH2 RSA provjera autentičnosti ključa

Najpoželjnija metoda autorizacije je autentifikacija temeljena na SSH2 RSA ključevima. Ovom metodom korisnik generira par ključeva na svojoj strani, od kojih je jedan ključ tajni, a drugi javni. Javni ključ se kopira na poslužitelj i služi za provjeru identiteta korisnika. Za više informacija o stvaranju para ključeva i kako ih postaviti na poslužitelj, pogledajte opis SSH klijenta. Autentifikaciju javnog ključa možete omogućiti ovako:

PubkeyAuthentication da

Poslužitelj mora znati gdje treba tražiti korisnički javni ključ. Za to se koristi posebna datoteka authorized_keys. Njegova sintaksa može biti sljedeća:

# Komentari se pišu samo u novom retku # opći prikaz unosa u datoteci authorized_keys # [opcije] key_type (ssh-rsa ili ssh-dss) very_long_string_incomprehensible_to_a_ordinary_person [login@host] ssh-rsa AAAAB3Nza...LiPk== [e-mail zaštićen] from="*.sales.example.net,!pc.sales.example.net" ssh-rsa AAAAB2...19Q== [e-mail zaštićen] naredba="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 zaštićen]

Možete navesti i jednu dijeljenu datoteku s ključevima i jednu datoteku za svakog korisnika. Potonja metoda je praktičnija i sigurnija, jer, prvo, možete odrediti različite kombinacije ključeva za svakog korisnika, i drugo, ograničiti pristup javnom ključu korisnika. Možete postaviti datoteku s ključevima pomoću direktive AuthorizedKeysFile:

AuthorizedKeysFile %h/.ssh/my_keys

za shemu korisnik - datoteka
ili

AuthorizedKeysFile /etc/ssh/authorized_keys

za shemu s dijeljenom datotekom. Prema zadanim postavkama, SSH klijent traži ključeve u ~/.ssh/authorized_keys.

Više o sigurnosti

Dodatne postavke

Korisnici i grupe.

Ako imate mnogo korisnika na poslužitelju, a samo nekolicini njih želite dopustiti pristup putem ssh-a, možete koristiti direktive DenyUsers, AllowUsers, DenyGroups i AllowGroups. Pogledajte komentare u primjeru sshd_config za više detalja o ovim direktivama.

Opcije stanja veze

Prema zadanim postavkama, samo je metoda provjere TCP veze, TCPKeepAlive, uključena od metoda detekcije stanja veze, međutim, sshd može odrediti stanja veze na praktičnije i sigurnije načine. Pogledajte relevantni odjeljak u primjeru sshd_config za detalje.

Izvođenje. MaxStartups

Port Forwarding

X11 preusmjeravanje

Na poslužitelju, u datoteci /etc/ssh/sshd_config, postavite parametar (omogućen prema zadanim postavkama):

NaprijedX11 da

Na klijentu, u datoteci /etc/ssh/ssh_config, postavite sljedeće parametre (onemogućeno prema zadanim postavkama):

ForwardAgent da ForwardX11 da

Možete ga pokrenuti na klijentu ovako ssh [e-mail zaštićen] firefox. Ili prvo idemo ssh [e-mail zaštićen] zatim pokrenite, na primjer sudo synaptic .

SFTP

sshd ima ugrađeni SFTP poslužitelj prema zadanim postavkama. SFTP (SSH File Transfer Protocol) - SSH protokol za prijenos datoteka. Dizajniran je za kopiranje i izvođenje drugih radnji s datotekama preko pouzdane i sigurne veze. Kao temeljni protokol koji omogućuje vezu u pravilu se koristi SSH2 protokol. Da biste omogućili SFTP podršku, dodajte redak u sshd_config

Podsustav sftp /usr/lib/openssh/sftp-server

Podrška za SFTP je prema zadanim postavkama omogućena.

Korištenje kriterija. Direktiva za utakmicu

Postavljanje SSH klijenta

Prijava putem ključa smatra se najsigurnijom, au većini slučajeva ova je značajka omogućena na strani poslužitelja, tako da za njezino korištenje nisu potrebna prava superkorisnika. Generirajte ključ na klijentskom stroju:

ssh-keygen -t rsa

Dobivamo ponudu za unos lozinke za zaštitu datoteke s ključem (pokazuje se korisnom ako datoteka padne u pogrešne ruke). Ako ćemo skripte izvršavati preko SSH-a, onda polje ostavimo prazno. Naredbom prenosimo javni ključ na poslužitelj

ssh-copy-id -i ~/ .ssh/ id_rsa.pub [e-mail zaštićen] poslužitelj

Sve, možete ući.

Kada se ssh izvodi na nestandardnom portu:

ssh-copy-id -i ~/ .ssh/ id_rsa.pub "-p port [e-mail zaštićen]"

Ako se pojavi pogreška: Loš port "umask 077; test -d .ssh || mkdir .ssh ; cat >> .ssh/authorized_keys"

pokušajte staviti parametre u navodnike:

ssh-copy-id "-i /home/user/.ssh/id_rsa.pub "-p priključak [e-mail zaštićen]""

Pri povezivanju s udaljenim sustavom prikladno je koristiti uslužni program zaslona.

Postavljanje udaljenog ssh direktorija u Nautilusu

Montiranje udaljenog direktorija s sshfs

Montiranje udaljenog imenika u lokalni imenik

sshfs [e-mail zaštićen] hostingserver.ru:/ home/ userdir ~/ sshfsdir

Isključi

Fusermount -u ~/sshsfdir

SSH aliasi

Kada koristite nekoliko poslužitelja s različitim parametrima pristupa (nestandardni port, dugo ime hosta, prijava koja nije lokalna itd.), ponekad je zamorno svaki put ponovno unositi sve postavke veze. Kako bi se to olakšalo, mogu se koristiti aliasi.

Postavke su pohranjene u ~/.ssh/config za jednog korisnika i u /etc/ssh/ssh_config globalno za sve korisnike.

Primjer konfiguracije. Može se opisati više poslužitelja. Pročitajte više u man ssh_config(ne brkati s sshd_config)

Host AliasName # Proizvoljni hostname HostName 1.2.3.4 # Možete navesti i IP i hostname (ako DNS radi) User YourUserName # Ako korisnik ne odgovara lokalnom korisniku Port YourSSHPort # Ako je nestandardni port

Nakon toga se naredbom možete spojiti na poslužitelj

ssh AliasName

ssh-agent

Dijagnosticiranje problema s vezom

    Analiza dnevnika veze:

ssh-vvv [e-mail zaštićen] domaćin

    Analiza konfiguracijskih datoteka klijenta i poslužitelja.

Lokacija konfiguracijskih datoteka može se pronaći u

Čovječe sš čovječe sšd

Korištenje pametnih kartica

1. Stvaranje certifikata i izvoz javnog ključa, kao i klijentskog dijela na Windows + Putty SC opisano je na web mjestu: http://habrahabr.ru/post/88540/ Dodatak Key Manager opisan tamo je dostupan samo u starijim verzijama Firefoxa. Testirano na verziji 3.5 za Windows. Izravna veza na dodatak: https://addons.mozilla.org/en/firefox/addon/key-manager/

2. Priprema poslužitelja. Morate biti sigurni da sshd konfiguracija dopušta autentifikaciju s javnim ključevima. Da biste to učinili, trebate navesti vrijednost parametra "PubkeyAuthentication" u datoteci "sshd_config" na "yes". Zatim dodajemo naš ranije dobiveni javni ključ (u jednom redu) u datoteku "~/.ssh/authorized_keys". Imajte na umu da se datoteka “.ssh/authorized_keys” nalazi u početnom direktoriju korisnika koji će se potom prijaviti pomoću javnog ključa.

3. Klijentski dio na Linuxu. Morat ćete ponovno izgraditi OpenSSH paket bez opcija. Preporuča se da navedete samo prefikse direktorija, kao što je --prefix=/usr. Također imajte na umu da će konfiguracijske datoteke biti u /usr/etc. Prije početka potrebni su paketi: opensc-lite-devel, zlib-devel, openssl-devel. Instalirajte upravljački program za pametnu karticu. Radi praktičnosti, u konfiguraciji ssh_config (nemojte je brkati sa sshd_config) odredite put do pkcs biblioteke: PKCS11Provider=<путь к библиотеке>

4. Pokrenite ssh na klijentu [e-mail zaštićen] Ako je pametna kartica (token) povezana, bit će zatražena lozinka i bit će prijavljena SSH sesija.

Mogući problemi prilikom korištenja

Uobičajena kombinacija tipki Ctrl + S, koja se koristi u mnogim uređivačima za spremanje ispravaka, kada radite na terminalu sa ssh poslužiteljem, uzrokovat će izvršenje naredbe XOFF, što izgleda kao prekid sesije. Međutim, nije. Poslužitelj nastavlja prihvaćati znakove i naredbe za unos, ali ih ne prikazuje na zaslonu. Za izlazak iz takve nevolje dovoljno je upotrijebiti kombinaciju Ctrl + Q, čime se ponovno uključuje XON mod.

Linkovi

Odnosno, korisnik1 može biti registriran i za sebe - u datoteci /home/user1/.ssh/keys) i za drugog korisnika, što će mu omogućiti da se prijavi sa svog računala i "pod sobom" i pod "drugim"

Ili skraćeno SSH, jedna je od najnaprednijih tehnologija za zaštitu podataka u prijenosu. Korištenje ovog načina rada na istom usmjerivaču omogućuje vam da osigurate ne samo povjerljivost prenesenih informacija, već i ubrzate razmjenu paketa. Istina, ne znaju svi kako je SSH i zašto je sve to potrebno. U ovom slučaju potrebno je dati konstruktivno objašnjenje.

SSH port: što je to i zašto je potreban?

Budući da govorimo o sigurnosti, u ovom slučaju SSH port treba shvatiti kao namjenski komunikacijski kanal u obliku tunela koji omogućuje enkripciju podataka.

Najprimitivnija shema rada takvog tunela je da se otvoreni SSH port koristi prema zadanim postavkama za šifriranje informacija na izvoru i njihovo dekriptiranje na krajnjoj točki. Možete to objasniti na sljedeći način: sviđalo se to vama ili ne, preneseni promet, za razliku od IPSec-a, kriptiran je na prisilnoj osnovi i na izlazu jednog mrežnog terminala i na ulazu strane primatelja. Za dešifriranje informacija koje se prenose preko ovog kanala, prijemni terminal koristi poseban ključ. Drugim riječima, nitko ne može ometati prijenos ili narušiti integritet prenesenih podataka u trenutnom trenutku bez ključa.

Samo otvaranje SSH priključka na bilo kojem usmjerivaču ili korištenje odgovarajućih postavki dodatnog klijenta koji izravno komunicira sa SSH poslužiteljem omogućuje vam da u potpunosti iskoristite sve sigurnosne značajke modernih mreža. Poanta je da se ovdje koristi port koji je dodijeljen prema zadanim postavkama ili korisničkim postavkama. Ovi parametri u primjeni mogu izgledati prilično komplicirano, ali ne može se bez razumijevanja organizacije takve veze.

Standardni SSH priključak

Ako stvarno polazite od parametara bilo kojeg usmjerivača, prvo morate odlučiti koji će se softver koristiti za omogućavanje ovog komunikacijskog kanala. Zapravo, zadani SSH port može imati različite postavke. Sve ovisi o tome koja se tehnika trenutno koristi (izravno povezivanje s poslužiteljem, instaliranje dodatnog klijenta, prosljeđivanje portova itd.).

Tako, na primjer, ako se Jabber koristi kao klijent, port 443 mora se koristiti za ispravnu vezu, enkripciju i prijenos podataka, iako je port 22 postavljen prema zadanim postavkama.

Da biste ponovno konfigurirali usmjerivač s preduvjetima za određeni program ili proces, morat ćete izvršiti prosljeđivanje SSH porta. postoji posebna dodjela pristupa za jedan program koji koristi internetsku vezu, bez obzira na postavke trenutnog komunikacijskog protokola (IPv4 ili IPv6).

Tehničko obrazloženje

Kao što je već jasno, standardni SSH port 22 ne koristi se uvijek. No, ovdje je potrebno istaknuti neke karakteristike i parametre koji se koriste u konfiguraciji.

Zašto povjerljivost kriptiranog prijenosa podataka zahtijeva korištenje SSH protokola kao isključivo vanjskog (gost) korisničkog porta? Da, samo zato što vam korišteno tuneliranje omogućuje korištenje takozvane udaljene ljuske (SSH), dobivanje pristupa upravljanju terminalom putem udaljene prijave (slogin), kao i korištenje procedura udaljenog kopiranja (scp).

Osim toga, SSH port se također može koristiti kada korisnik treba izvršiti udaljene X Windows skripte, što je u najjednostavnijem slučaju prijenos informacija s jednog stroja na drugi, kao što je već spomenuto, uz prisilnu enkripciju podataka. U takvim situacijama najpotrebnije će biti korištenje algoritama temeljenih na AES-u. Ovo je simetrični algoritam šifriranja koji je izvorno bio uključen u SSH tehnologiju. I ne samo da ga je moguće koristiti, već je i potrebno.

Povijest implementacije

Sama tehnologija postoji već dugo vremena. Ostavljajući za sada po strani pitanje kako napraviti SSH port prosljeđivanje, usredotočimo se na to kako sve to funkcionira.

Obično se svodi na korištenje proxyja temeljenog na Socksu ili VPN tuneliranja. Ako neka softverska aplikacija može raditi s VPN-om, bolje je odabrati ovu opciju. Činjenica je da gotovo svi trenutno poznati programi koji koriste internetski promet mogu raditi s VPN-om, a postavljanje usmjeravanja nije teško. Ovo vam, kao i u slučaju proxy poslužitelja, omogućuje da vanjsku adresu terminala s kojeg trenutno pristupate mreži ostavite neprepoznatu. Odnosno, u slučaju proxyja, adresa se stalno mijenja, ali u VPN verziji ostaje nepromijenjena uz fiksiranje određene regije, različite od one u kojoj je na snazi ​​zabrana pristupa.

Sama tehnologija, kada se otvara SSH port, razvijena je još 1995. godine na Finskom sveučilištu za tehnologiju (SSH-1). Godine 1996. dodano je poboljšanje u obliku SSH-2 protokola, koji je postao prilično raširen na postsovjetskom prostoru, iako je za to, kao iu nekim zemljama zapadne Europe, ponekad potrebno dobiti dopuštenje koristiti takav tunel, i od vladinih agencija.

Glavna prednost otvaranja SSH porta, za razliku od telneta ili rlogina, je korištenje RSA ili DSA digitalnog potpisa (korištenje para u obliku javnog i privatnog ključa). Osim toga, u ovoj situaciji može koristiti tzv. sesijski ključ temeljen na Diffie-Hellman algoritmu, koji podrazumijeva korištenje simetrične enkripcije na izlazu, iako ne isključuje korištenje asimetričnih algoritama enkripcije u procesu prijenos podataka i njihov prijem od strane drugog stroja.

Poslužitelji i školjke

Na Windowsima ili u sustavu nije tako teško. Pitanje je samo kakav će se alat za to koristiti.

U tom smislu treba obratiti pozornost na pitanje prijenosa informacija i autentifikacije. Prvo, sam protokol ispada dovoljno zaštićen od tzv. sniffinga, što je najčešće “prisluškivanje” prometa. Ispostavilo se da je SSH-1 bespomoćan protiv napada. Intervencija u procesu prijenosa podataka u obliku sheme "čovjek u sredini" dala je svoje rezultate. Informacije bi se jednostavno mogle presresti i dešifrirati na sasvim elementaran način. Ali druga verzija (SSH-2) bila je osigurana od ove vrste smetnji, nazvane session hijacking, što ju je učinilo najraširenijom.

Sigurnosne zabrane

Što se tiče sigurnosti u odnosu na poslane i primljene podatke, organizacijom veze stvorene pomoću takvih tehnologija izbjegavaju se sljedeći problemi:

  • određivanje ključa hostu u fazi prijenosa, kada se koristi "cast" otisak prsta;
  • podrška za Windows i UNIX slične sustave;
  • Spoofing IP i DNS adresa (spoofing);
  • presretanje otvorenih lozinki tijekom fizičkog pristupa kanalu prijenosa podataka.

Zapravo, cijela organizacija ovakvog sustava izgrađena je na principu "klijent-poslužitelj", odnosno prije svega korisnički stroj putem posebnog programa ili dodatka pristupa poslužitelju koji vrši odgovarajuće preusmjeravanje. .

probijanje tunela

Podrazumijeva se da poseban upravljački program mora biti instaliran u sustav kako bi se napravila ovakva veza.

Tipično, na Windows sustavima, ovo je upravljački program Microsoft Teredo ugrađen u softver ljuske, koji je vrsta virtualnog alata za emulaciju IPv6 na mrežama samo za IPv4. aktivan je prema zadanim postavkama. U slučaju kvarova povezanih s njim, možete jednostavno ponovno pokrenuti sustav ili izdati naredbe za isključivanje i ponovno pokretanje u ljusci. Za deaktivaciju se koriste sljedeće linije:

  • netsh;
  • sučelje teredo postavljeno stanje onemogućeno;
  • sučelje isatap postavljeno stanje onemogućeno.

Nakon unosa naredbi slijedi ponovno podizanje sustava. Da biste ponovno omogućili adapter i provjerili njegov status, omogućeno dopuštenje se dodjeljuje umjesto onemogućenog, nakon čega se ponovno pokreće cijeli sustav.

SSH poslužitelj

Sada da vidimo koji se SSH port koristi kao glavni port, počevši od sheme "klijent-poslužitelj". Obično se port 22 koristi prema zadanim postavkama, ali, kao što je gore spomenuto, port 443 se također može koristiti. Pitanje je samo u preferencijama samog poslužitelja.

Najčešći SSH poslužitelji smatraju se sljedećim:

  • za Windows: Tectia SSH poslužitelj, OpenSSH s Cygwinom, MobaSSH, KpyM Telnet/SSH poslužitelj, WinSSHD, copssh, freeSSHd;
  • za FreeBSD: OpenSSH;
  • za Linux: Tectia SSH poslužitelj, ssh, openssh-poslužitelj, lsh-poslužitelj, dropbear.

Svi navedeni poslužitelji su besplatni. Međutim, možete pronaći i plaćene usluge koje se odlikuju povećanom razinom sigurnosti, što je neophodno za organizaciju pristupa mreži i zaštitu informacija u poduzećima. Troškovi takvih usluga trenutno se ne raspravljaju. Ali općenito, možemo reći da je relativno jeftin, čak iu usporedbi s instaliranjem specijaliziranog softvera ili "željeznog" vatrozida.

SSH klijent

Promjena SSH porta može se izvršiti na temelju klijentskog programa ili odgovarajućih postavki prilikom prosljeđivanja portova na ruteru.

Međutim, kada su u pitanju klijentske ljuske, sljedeći softverski proizvodi mogu se koristiti za različite sustave:

  • Windows - SecureCRT, PuTTY\KiTTY, Axessh, ShellGuard, SSHWindows, ZOC, XShell, ProSSHD itd.;
  • Mac OS X: iTerm2, vSSH, NiftyTelnet SSH;
  • Linux i BSD: lsh-klijent, kdessh, openssh-klijent, Vinagre, putty.

Provjera autentičnosti javnog ključa i promjena priključka

Sada nekoliko riječi o tome kako se poslužitelj provjerava i konfigurira. U najjednostavnijem slučaju, trebate koristiti konfiguracijsku datoteku (sshd_config). Međutim, možete i bez njega, na primjer, u slučaju korištenja programa poput PuTTY. Promjena SSH porta sa standardne vrijednosti (22) na bilo koju drugu prilično je elementarna.

Glavno je da broj porta koji se otvara ne prelazi vrijednost 65535 (većih portova u prirodi jednostavno nema). Osim toga, postoje neki zadani otvoreni portovi koje mogu koristiti klijenti poput MySQL ili FTPD baza podataka. Ako odredite njihovu konfiguraciju za SSH, naravno, jednostavno će prestati raditi.

Vrijedno je uzeti u obzir da isti Jabber klijent mora raditi u istom okruženju koristeći SSH poslužitelj, na primjer, u virtualnom stroju. A samom poslužitelju localhost morat će se dodijeliti vrijednost 4430 (a ne 443, kao što je gore spomenuto). Ova se konfiguracija može koristiti kada pristup glavnoj datoteci jabber.example.com blokira vatrozid.

S druge strane, portovi se također mogu prosljeđivati ​​na samom ruteru, koristeći za to postavke njegovog sučelja, uz kreiranje pravila isključenja. Kod većine modela unos se vrši unosom adresa koje počinju s 192.168 uz dodatak 0.1 ili 1.1, ali na routerima koji kombiniraju mogućnosti ADSL modema poput Mikrotika krajnja adresa pretpostavlja korištenje 88.1.

U tom se slučaju stvara novo pravilo, nakon čega se postavljaju potrebni parametri, na primjer, za uspostavljanje vanjske dst-nat veze, a priključci se ručno registriraju ne u odjeljku općih postavki, već u odjeljku Postavke akcije. Ovdje nema ništa posebno komplicirano. Glavna stvar je odrediti potrebne postavke i postaviti ispravan priključak. Prema zadanim postavkama može se koristiti port 22, ali ako se koristi specijalizirani klijent (jedan od gore navedenih za različite sustave), vrijednost se može proizvoljno mijenjati, ali samo tako da ovaj parametar ne prelazi deklariranu vrijednost, iznad koje postoje jednostavno nema brojeva portova.

Prilikom postavljanja veze također trebate obratiti pozornost na parametre klijentskog programa. Vrlo je moguće da ćete u njegovim postavkama morati navesti minimalnu duljinu ključa (512), iako je zadana vrijednost obično 768. Također je poželjno postaviti vrijeme čekanja za prijavu na 600 sekundi i omogućiti udaljeni pristup korištenjem root prava. Nakon primjene ovih postavki, također morate dati dopuštenje za korištenje svih prava provjere autentičnosti, osim onih koja se temelje na korištenju .rhosta (ali ovo treba samo administratorima sustava).

Između ostalog, ako korisničko ime registrirano na sustavu ne odgovara onom koje se trenutno upisuje, morat ćete ga eksplicitno navesti pomoću naredbe user ssh master za to, unoseći dodatne parametre (za one koji razumiju o čemu se radi).

Naredba ~/.ssh/id_dsa (ili rsa) može se koristiti za pretvaranje ključa i same metode šifriranja. Za izradu javnog ključa koristi se transformacija pomoću retka ~/.ssh/identity.pub (ali to nije potrebno). Ali, kao što praksa pokazuje, najlakši način je koristiti naredbe poput ssh-keygen. Ovdje se bit pitanja svodi samo na dodavanje ključa dostupnim alatima za autorizaciju (~/.ssh/authorized_keys).

Ali otišli smo predaleko. Vraćajući se na pitanje postavljanja SSH porta, kao što je već jasno, promjena SSH porta nije tako teška. Istina, u nekim situacijama, kako kažu, morat ćete se znojiti, jer ćete morati uzeti u obzir sve vrijednosti glavnih parametara. U suprotnom, problem s konfiguracijom svodi se ili na prijavu na poslužiteljski ili klijentski program (ako je inicijalno omogućen) ili na korištenje prosljeđivanja porta na usmjerivaču. Ali čak i ako se priključak 22, koji je postavljen prema zadanim postavkama, promijeni u isti 443., morate jasno shvatiti da takva shema ne radi uvijek, već samo u slučaju instaliranja istog Jabber dodatka (drugi analozi može koristiti odgovarajuće priključke, različite od standardnih). Osim toga, posebnu pozornost treba obratiti na postavljanje parametara SSH klijenta koji će izravno komunicirati sa SSH poslužiteljem, ako je to stvarno namijenjeno u korištenju trenutne veze.

U suprotnom, ako nije predviđeno na početku (iako je poželjno izvršiti takve radnje), postavke i parametri za pristup putem SSH protokola ne mogu se mijenjati. Ovdje, općenito, nema posebnih problema pri stvaranju veze i njezinoj daljnjoj upotrebi (osim ako se, naravno, ne koristi ručna konfiguracija na temelju poslužitelja i klijenta). Najčešća izrada pravila isključenja na usmjerivaču omogućuje vam da riješite sve probleme ili ih izbjegnete.

Najpopularniji povezani članci