Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • Windows 7, XP
  • Kako postaviti i koristiti SSH port? Korak po korak instrukcije. Povezivanje na virtuelni server putem SFTP-a

Kako postaviti i koristiti SSH port? Korak po korak instrukcije. Povezivanje na virtuelni server putem SFTP-a

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

Ne možete to vidjeti ni preko FTP klijenta, ali mi je jako potreban, jer je brzo ponestalo prostora na hostingu i moram ukloniti svo smeće da ne bih kupio dodatne megabajte i ne platio previše. Nedavno su moje stranice bile zaražene i ja bih bio nemoguć bez ssh pristupa.

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

Šta je hosting sa ssh pristupom?

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

SSH (eng. Secure SHell - “sigurna ljuska”) je mrežni protokol na nivou aplikacije koji vam omogućava daljinsku kontrolu operativnog sistema i tunelskih TCP veza (na primjer, za prijenos datoteka). SSH omogućava izbor različitih algoritama šifriranja. SSH klijenti i SSH serveri dostupni su za većinu mrežnih operativnih sistema.

Sa ssh-om možete raditi direktno preko terminala koristeći Linux komande. Povezivanje sa serverom je veoma jednostavno, potrebno je da ukucate komandu u sledećem formatu:

ssh korisničko ime@adresa_servera

Kao što vidite, sve je vrlo jednostavno. Pokušat ću se povezati preko ssh-a na moj hosting. Ali nije ga bilo, hosting me tvrdoglavo nije htio prihvatiti po ovom protokolu. Pisao sam službi podrške i sad čekam odgovor.

U međuvremenu, reći ću vam koliko je zgodno povezati se preko ssh-a preko Nautilus upravitelja datoteka. Povezivanjem na njega preko SSH-a radićete sa fajlovima koji se nalaze na hostingu kao da su na vašem računaru. Otvorite Nautilus i pritisnite Ctrl + L kako biste mogli napisati putanju do ssh servera u adresnu traku:

sftp:// [email protected]

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

Stoga, prilikom odabira hostinga, obratite pažnju na ovo. Moj IHOR hosting daje pristup SSH-u i zato ga koristim nekoliko godina...

SAVJET WEBMASTERA: Mogućnost zarađivanja novca na Internetu je samo pola bitke, druga polovina je mogućnost POVOLJNO unovčavanja elektronskog novca. Evo liste offshore bankovnih kartica na koje možete podići sredstva, a zatim s njih podići hrskave račune:

1. payoneer- Najpopularniji svjetski sistem plaćanja za freelancere. Izdaje kartice, koje se nalaze u SAD-u.

2. EpayService- Američki platni sistem, veoma popularan u mnogim zemljama, daje MasterCard karticu u EVRO besplatno za stanovnike ZND i Evrope.

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

4. AdvCash- Ofšor banka se nalazi u Belizeu, možete otvoriti račun u dolarima, evrima, funtama i rubljama.

5. payeer- Sjedište ovog platnog sistema nalazi se u Gruziji, ovdje možete otvoriti i račun u dolarima, evrima i rubljama.


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ćava da se autentifikujete u sistemu i da radite u potpunosti u ime lokalnog korisnika, udaljeni mnogo kilometara od pokrenute mašine. Također, za razliku od telneta i rsh, SSH šifrira sav promet, tako da sve prenesene informacije ostaju povjerljive.

Dakle, već imamo instaliran ssh i ssh-daemon je dodat za automatsko učitavanje pri pokretanju sistema. Možete ga kontrolisati naredbom:

service ssh stop|start|restart

Na Ubuntu, ili:

/etc/init.d/ssh (start|stop|ponovno učitavanje|prisilno-ponovno učitavanje|ponovno pokretanje|status)

Na Debianu, ili:

systemctl start|stop|restart sshd.service

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

Isprobajmo na djelu! Prvo kreirajte folder ~/.ssh

mkdir ~/.ssh

Generirajte ključeve za datog korisnika servera naredbom:

ssh-keygen (kao običan korisnik).

Prilikom generisanja, možete postaviti šifru za ključ (po mogućnosti postavljenu, i dugačku - tada čak i ako dobijete ključ, ali ne znate lozinku za ključ, napadač se neće moći prijaviti), ili možete preskočite ga jednostavnim pritiskom na "Enter" - u ovom slučaju, lozinka se nikada neće pitati. Isti javni i privatni ključevi pojavili su se u ~/.ssh folderu.

Pronađite drugu mašinu (čak i pametni telefon može - postoje odlični SSH klijenti na Androidu, kao što su ConnectBot ili JuiceSSH), instalirajte ssh na nju i povežite se sa serverom naredbom:

ssh [email protected]

Ako je sve urađeno kako treba, tražit će se korisnička lozinka, a nakon unosa naći ćete se u svom sistemu sa pogledom iz komandne linije.

Za Windows, inače, postoje i serveri i ssh klijenti.

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

Konfiguracija na strani klijenta je unutra /etc/ssh/ssh_config, i server - /etc/ssh/sshd_config. Najopsežniji vodič za konfiguraciju je možda stranica man - man ssh i man sshd_config, pa preporučujemo da ga pročitate. A u ovom članku ćemo razmotriti najpotrebnije stvari.

Podešavanje

Standardni ssh port je 22. Može se promijeniti u bilo koji nestandardni (komplikovati mogući hak zbog sigurnosti zbog nejasnoća, ili da biste privukli pažnju potencijalnih hakera :) - da biste to učinili, dekomentirajte red:

#Port 22

I dodajte šta god želite do 65535 (pazeći da port nije u sukobu s drugim uslugama s naredbom #netstat -tupln | grep LISTEN).

Sada, kada se povezuje sa serverom, klijent će morati da piše sa ključem:

ssh -p [port] :

Po defaultu, root pristup je dozvoljen. Vrlo je poželjno to ograničiti (i umjesto toga ispravno razgraničiti prava lokalnog korisnika pomoću sudoa). Da biste to učinili, pronađite liniju "PermitRootLogin" i promijenite vrijednost u "ne". Možete ga također promijeniti u "bez lozinke" - u ovom slučaju, prijava kao root će biti dozvoljena samo sa računara sa pouzdanim ključem.

Možete onemogućiti autentifikaciju lozinkom i raditi samo s ključevima - pronađite red: "PasswordAuthentication" i promijenite vrijednost u "ne". Zašto? Ako neko zaista želi da dobije pristup vašem sistemu, onda može ili grubo forsirati lozinku kada pokušava da autorizuje, ili sluša i dešifruje vašu vezu. Ako onemogućite autentifikaciju lozinkom i dodate javni ključ vašeg, na primjer, radnog laptopa u ~/.ssh/authorized_keys na serveru, tada ćemo, kao što se sjećamo, odmah biti pušteni na server. Ali šta ako radite na tuđoj mašini i hitno morate da dobijete pristup ssh serveru, ali on nas ne pušta unutra kako se očekuje? Tada ne možete onemogućiti autentifikaciju lozinkom, već koristiti uslužni program fail2ban. Samo ga instalirajte iz svog spremišta, nakon čega će primijeniti zadane postavke i barem zaštititi vaš ssh kanal od brute-force napada. Više o fail2ban - http://putty.org.ru/articles/fail2ban-ssh.html.

U slučaju da vaš server ima ključeve za lansiranje nuklearnih projektila, možete učiniti nešto poput ovoga:

PermitRootLogin no - prijava pod root je zabranjena.

PasswordAuthentication no - prijava bez lozinke

Hajde da generišemo dugački ključ na udaljenoj mašini (-t encryption_type, -b dužina bita):

ssh-keygen -t rsa -b 4096

Sa ništa manje složenom pristupnom frazom (usput, nemoguće je povratiti 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 stroja na serverov ~/.ssh/authorized_keys, i voila, sada mu možete pristupiti s jednog stroja koristeći šifru privatnog ključa. SSH vam omogućava 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 ne dođe do autentifikacije.

MaxAuthTries- postavlja broj nevažećih pokušaja prijave nakon kojih će veza biti prekinuta.

MaxSessions- broj istovremenih sesija (ako je server vaš kućni računar, na koji ćete se povezati sa fakulteta ili posla, onda bi bilo razumno ograničiti broj sesija na jednu - odbijena prijava, u ovom slučaju, će postati razlog za povećanje paranoje, generiranje novih ključeva i promjenu lozinke). Međutim, ako budete oprezni, možda ćete primijetiti da se pri svakom prijavljivanju na server prikazuje red "Posljednja prijava". Pored nje, možete dodati i svoju poruku dobrodošlice - pronaći liniju "Banner" i umjesto nijednu postaviti putanju do datoteke sa tekstom koji će biti pročitan i prikazan po prijavi.

Između ostalog, možete dozvoliti samo određenim korisnicima da se prijave, ili dopustiti svima osim određenih korisnika:

AllowUsers korisnik1- dozvoliti prijavu samo korisniku1.

DenyUsers korisnik1- dozvoli svima osim korisnika1.

I slične opcije za pristup određenim grupama - AllowGroups i DenyGroups.

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

Pronađite sličnu liniju u konfiguraciji klijenta - /etc/ssh/ssh_config, i također je promijenite u "da".

Sada se morate povezati na server preko ssh-a sa -X argumentom:

ssh -X [email protected]>

Možete odmah pokrenuti aplikaciju nakon povezivanja:

ssh -X [email protected]"Apendiks"

Ovako izgleda pokrenuti GIMP u ssh sesiji:

Ili možete dobiti izlaz sa web kamere laptopa nesuđenog korisnika :)

Proračuni se vrše direktno na serveru, a izlaz se prenosi na klijentsku mašinu (to jest, čak i ako sam server nema instaliran X11, grafičke aplikacije se mogu prikazati na vašoj udaljenoj mašini). Ova šema radi prilično sporo (ne zaboravite da je sav promet dinamički šifriran) - ali ova funkcija je vrlo korisna.

Također možete kopirati datoteke preko SSH sesije - za to postoji jednostavan "scp" uslužni program. Možete prenositi datoteke direktno u sesiji kao sa servera na klijenta:

scp [email protected]:/path/to/file/on/server /where/to/save/on/local/machine

Dakle, od klijenta do servera:

scp putanja/do/datoteka/klijent [email protected]:/put/on/server

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 najpogodnija stvar - sshfs (dostupan za instalaciju u spremišta većine * nix sistema).

Samo postavite putanju na isti način kao scp:

sshfs [email protected]:/home/user /mnt/

I folder /home/user servera će se pojaviti na /mnt tački montiranja lokalnog stroja!

Demontaža se vrši preko umount.

I na kraju, hajde da pričamo o jednoj malo poznatoj osobini. Ako kreirate datoteku /.ssh/config i ispunite ga ovako:

domaćin [ime]

ime hosta

Korisnik [korisničko ime servera]

željene opcije

like

ForwardX11 da

Port 30000

Tada se možemo prijaviti putem:

ssh [ime]

ssh -X -p 30000 [email protected]

I sve opcije će se automatski pokupiti. Dakle, uz čestu autentifikaciju na određenom serveru, ovaj proces ćete pojednostaviti za nekoliko trenutaka.

Pa, pokrili smo sve (i više) što trebate znati o SSH-u za svakodnevnu upotrebu – naučili kako koristiti autentifikaciju ključa, zaštitili server grubom silom i općenito zakrpili većinu potencijalnih rupa. U stvari, SSH može učiniti mnoge druge stvari - na primjer, tuneliranje i prosljeđivanje portova kroz ssh sesiju, ali je malo vjerovatno da ćete vi, kao najobičniji korisnik, to ikada koristiti. Dodatni resursi

SSH - (Secure Shell) je protokol za daljinsku kontrolu računara koji koristi Linux operativni sistem. U osnovi, ssh se koristi za daljinsko upravljanje serverima preko terminala. Ako ste administrator nekoliko servera ili čak napredni webmaster, onda se vjerovatno često susrećete s potrebom da sa određenim računarom radite preko ssh-a. U Linuxu se to radi pomoću ssh servera na mašini na koju želite da se povežete i klijenta na onom sa kojeg se povezujete.

U ovom vodiču ćemo pogledati kako koristiti ssh, kao i njegove karakteristike za koje niste ni znali. Najvjerovatnije već znate kako se povezati na server putem ssh-a, ali ovaj uslužni program ima mnogo više mogućnosti, kao što je prijenos datoteka ssh, povezivanje bez lozinke ili izvršavanje skripte na udaljenom serveru. Sve ovo ćemo dalje razmotriti u članku.

Ali počnimo sa samim osnovama.

Sintaksa naredbe je sljedeća:

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

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 podržava više tipova enkripcije i autentifikacije. Nećemo više govoriti o razlikama u protokolima u ovom članku i pretpostavit ću da koristite verziju 2.

Opcije SSH komandi

Pogledajmo sada najosnovnije opcije ssh naredbe:

  • f- staviti ssh u pozadinu
  • g- dozvolite udaljenim mašinama da pristupe lokalnim portovima
  • l- korisničko ime u sistemu
  • n- preusmjeriti stdout na /dev/null
  • str- ssh port na udaljenoj mašini
  • q- ne prikazuj poruke o greškama
  • v- način otklanjanja grešaka
  • x- onemogućiti preusmjeravanje X11
  • X- omogućiti preusmjeravanje X11
  • C- omogući kompresiju

Ovo nisu sve uslužne opcije, ostale su izvan okvira ovog članka. Mnoge postavke za ssh rad mogu se promijeniti kroz ~/.ssh/config konfiguracijski fajl, ali ni ovo nećemo detaljno razmatrati ovdje.

Podešavanje SSH servera

Postavke SSH servera se nalaze u datoteci /etc/ssh/sshd_config. Ni mnoge od njih nećemo dirati. Razmotrite samo one najzanimljivije. Prvo otvorite /etc/ssh/sshd.conf datoteku

ssh port

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

Promijenite vrijednost porta na ono što želite.

SSH protokol

Podrazumevano, ssh server može raditi na dvije verzije protokola, radi kompatibilnosti. Da biste koristili samo verziju dva protokola, dekomentirajte red:

I neka izgleda ovako:

Root pristup

Prema zadanim postavkama, Root pristup preko ssh-a je dozvoljen, ali ovo ponašanje je vrlo nesigurno, pa dekomentirajte red:

PermitRootLogin br

Samo određeni korisnički pristup SSH-u

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

Dozvoli korisnicima User1, User2, User3
DozvoliGrupe Grupa1, Grupa2, Grupa3

Ovdje User1 i Group1 su korisnik i grupa kojoj želite dozvoliti pristup.

Pokretanje X11 aplikacija

Ne znaju svi, ali moguće je koristiti ssh za pokretanje punopravnih X11 aplikacija. O tome ćemo pričati u nastavku, ali da bi sve funkcionisalo, morate omogućiti ovu funkciju na strani servera, dodajte ovu liniju:

X11Prosljeđivanje da

Glavne opcije su pokrivene, pre nego što krenete dalje, ne zaboravite da ponovo pokrenete ssh server da sačuvate promene:

servis sshd restart

Korištenje SSH

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

Veza sa serverom

Da se jednostavno povežete na server preko SSH-a, koristite sljedeću naredbu:

Pokreni naredbu

Navikli smo da se povezujemo na udaljeni server i tek onda izvršavamo potrebne komande, ali u stvari, ssh uslužni program vam omogućava da odmah izvršite željenu naredbu bez otvaranja terminala udaljene mašine. Na primjer:

ssh [email protected] ls

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

Izvrši lokalnu skriptu

Hajde da izvršimo bash interpreter na udaljenom serveru i prosledimo mu našu lokalnu skriptu koristeći Bash preusmeravanje ulaza:

ssh [email protected]"bash -s"< script.sh

Izrada sigurnosne kopije na udaljenom serveru i vraćanje

Možemo sačuvati rezervnu kopiju diska direktno na udaljenom serveru koristeći ssh. Preusmjerite izlaz dd pomoću operatora preusmjeravanja |, a zatim ga spremite u datoteku na drugoj strani:

sudo dd if=/dev/sda | ssh [email protected]"dd of=sda.img"

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

ssh [email protected]"dd if=sda.img" | ddof=/dev/sda

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

Autentifikacija bez lozinke

Korištenje ssh lozinke za prijavu na server nije samo nezgodno već i nesigurno, jer se ova lozinka može pogoditi u bilo kojem trenutku. Najsigurniji i najčešće korišteni metod autentifikacije je s parom RSA ključeva. Privatni ključ se čuva na računaru, dok se javni ključ koristi na serveru za autentifikaciju korisnika.

Vrlo je lako postaviti ovo ponašanje. Prvo kreirajte ključ naredbom:

ssh-keygen -t rsa

Prilikom kreiranja ključa morat ćete odgovoriti na nekoliko pitanja, ostavite lokaciju kao zadanu, ako želite da se povežete bez lozinke - ostavite i polje Passphare prazno.

Zatim šaljemo ključ na server:

ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]

Preuzmite lozinku iz lokalne datoteke

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, koristite Bash operator preusmjeravanja unosa:

ssh [email protected] < local_file.txt

Promijenite SSH pozdrav

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

Pogledajte neuspjele pokušaje SSH prijave

Želite li vidjeti da li je bilo neuspješnih pokušaja pristupa vašem serveru putem ssh-a i sa kojih IP adresa? Lako se svi zahtjevi evidentiraju u /var/log/secure fajl, filtriramo samo potrebne podatke naredbom:

cat /var/log/secure | grep "Neuspješna lozinka za"

Prenesite fajlove preko SSH

Osim izvršavanja naredbi, možete kopirati datoteke preko ssh-a. Za to se koristi uslužni program scp. Samo navedite datoteku koju želite prenijeti, udaljeni server i folder na serveru, ovako:

$ scp /address/local/file korisnik@host:adrese/folderi

Na primjer:

scp ~/test.txt [email protected]:documents

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

cat localfile | ssh [email protected] mačka > udaljeni fajl

ssh [email protected] mačka > udaljeni fajl< localfile

tar czf - /home/user/file | ssh [email protected] tar -xvzf -C /home/remoteuser/

Kopiranje datoteka kao što je ovaj ssh omogućava vam da pošaljete cijele mape odjednom.

Pokretanje grafičkih aplikacija preko ssh-a

Ako trebate pokrenuti određenu grafičku aplikaciju na udaljenom stroju, nije potrebno koristiti VNC za ovo, možete se snaći sa mogućnostima ssh-a. Program će se izvršavati na strani servera, a bit će vam emitiran samo prozor tako da možete raditi sve što vam je potrebno. I svi podaci su šifrirani. Da bi ova funkcija radila, mora biti omogućena na strani servera.

Zatim jednostavno izvršavamo naredbu za pokretanje grafičke aplikacije na udaljenom serveru ovako:

ssh -XC [email protected]"eklipsa"

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

Završetak ssh sesije

Ako ste koristili ssh sa nestabilnim internetom, kada se veza s vremena na vrijeme prekine, onda ste vjerovatno već umorni od zatvaranja terminala, jer u suprotnom, na prvi pogled, sesija ne može biti prekinuta. Kada je veza sa udaljenim serverom prekinuta, ne možete uneti nijednu komandu i prečice na tastaturi Ctrl+C, Ctrl+Z, Ctrl+D ne rade. I neće raditi jer klijent pokušava poslati ove komande serveru. Ali postoji rješenje - Escape sekvence. Da biste omogućili njihovu podršku, dodajte red:

U datoteku /etc/ssh/ssh_config

Ovaj članak je označen kao stub. Vidi napomenu na kraju članka.

Ovaj članak se fokusira na siguran terminalski klijent i server (sigurna školjka) u Ubuntuu, njihovu konfiguraciju i upotrebu. SSH je poseban mrežni protokol koji omogućava udaljeni pristup računaru sa visokim stepenom 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 server i SSH klijent.Ubuntu koristi besplatnu implementaciju SSH klijenta i servera, OpenSSH. Prilikom povezivanja klijent prolazi kroz proceduru autorizacije na serveru i između njih se uspostavlja šifrovana veza. OpenSSH server može raditi i sa ssh1 i ssh2 protokolima. Ssh1 protokol se trenutno smatra nesigurnim i stoga se ne preporučuje. Namerno izostavljam razne tehničke detalje o tome kako protokol funkcioniše, pošto je glavna svrha ovog vodiča da opiše njegovo podešavanje i upotrebu. Na Internetu postoji mnogo članaka o samom protokolu, principima njegovog rada, algoritmima šifriranja itd., na primjer, možete detaljno pročitati o njemu.

Instalacija

Instaliraj OpenSSH Možete koristiti naredbu s terminala:

sudo apt-get install ssh

Ssh metapaket sadrži i klijenta i servera, ali ovo će najvjerovatnije samo instalirati server, pošto je klijent već uključen u Ubuntu po defaultu.

Podešavanje servera

Kada instalirate SSH, server se automatski dodaje u startup. Možete kontrolirati njegovo pokretanje, zaustavljanje ili ponovno pokretanje pomoću naredbi:

sudo service ssh stop| početak | restart

Glavna konfiguraciona datoteka SSH servera je datoteka /etc/ssh/sshd_config, koju može čitati ili uređivati ​​samo superkorisnik. Nakon svake promjene ove datoteke, morate ponovo pokrenuti ssh server da bi promjene stupile na snagu.

Primjer zadane konfiguracije SSH servera u Ubuntu:

# Primjer konfiguracije open-ssh servera sa ruskim # # komentarima..2010. # # # # # # Konvencije: # # Podrazumevano, ovo se odnosi na ponašanje sshd # # kada ova direktiva nije eksplicitno specificirana. Vrijedi napomenuti da na Ubuntu # # datoteka sshd_config već sadrži brojne postavke koje su # # zadane za Ubuntu posebno. # # Takve postavke su specificirane u ovoj datoteci. # # # ################################################ # ############# ################ Postavke adrese/porta, itd. ########### ######################################## ##################### # # ## Port ######################### ############################ # # # Port koji treba koristiti. Možete navesti više od jednog, na primjer: # # Port 22 # # Port 23 # # Port 24 # # Preporučljivo je koristiti nestandardni port, jer # # standardnu ​​često skeniraju botovi za # # potencijalne rupe. Može se izostaviti ako se da # # putem adrese. Pogledajte također parametar ListenAddress. # # # Port 22 # # ## SlušajAdresu ######################################## ## # # # Mrežna adresa na kojoj server sluša. Adresa se može # # napisati ovako: # # Adresa za slušanje host|IPv4_addr|IPv6_addr # # Adresa za slušanje host|IPv4_addr:port # # Adresa slušanja :port # # Ako port nije specificiran, sshd će slušati na ovoj adresi i # # na port naveden u portu opcije. Ako # # koristite ListenAddress bez navođenja porta, opcija # # Port mora biti ispred opcije ListenAddress. Ako se izostavi, # # podrazumevano sluša na svim lokalnim # # adresama. Možete navesti više adresa. # # # ## AdresaPorodica ########################################## # # # Određuje koju porodicu IP adresa # # treba koristiti sshd. Opcije su: # # "bilo koji" - bilo koji # # "inet" (samo IPv4) # # "inet6" (samo IPv6) # # Podrazumevano je "bilo koji". # AdresaPorodični inet # # ## KoristiDNS ########################################## ####### # # # Određuje da li sshd treba provjeriti ime hosta i # # koristiti to ime da provjeri IP adresu koju je dao klijent u odnosu na # # primljenu od DNS-a. # # Zadana vrijednost je “da”. # # # ################################################ # ############# ############# Postavke korisničkog pristupa ############## ###### # ################################################## ## ### # # # Dozvoliti/zabraniti korisniku je definirano direktivama # # DenyUsers, AllowUsers, DenyGroups i AllowGroups. # # u isto vrijeme, provjera ide odozgo prema dolje duž lanca: # # ## DenyUsers ## # # || # # ## AllowUsers ## # # || # # ## DenyGroups ## # # || # # ## AllowGroups ## # # Prihvataju se samo imena korisnika i grupa, brojčani # # identifikatori (UserID) se ne prepoznaju. Ispravan # # unos više korisnika/grupa naizmjence, odvojen # # razmakom. Ako je napisano kao korisnik@host - tada se # # korisnik i host provjeravaju odvojeno, ovo omogućava # # da ograniči pristup određenim korisnicima sa # # određenih hostova. Vrijedi zapamtiti da direktive # # DenyUsers i AllowUsers 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 ############################################ ## # # # Lista KORISNIKA koje sshd NE TREBA koristiti. # # Podrazumevano - nije navedeno = niko nije banovan. One. # # ako je korisnik ovdje specificiran, bit će mu uskraćen # # pristup ssh serveru. # # # ## AllowUsers ############################################ # # # # Lista KORISNIKA koje TREBA da koristi sshd, # # Podrazumevano - nije specificirano = svima je dozvoljeno. One. ako je # # naveden barem jedan korisnik, ssh pristup serveru # # je dostupan samo njemu. # # # ## DenyGroups ########################################### # # # # Lista GRUPA koju ne bi trebao koristiti sshd. # # Podrazumevano - nije navedeno = nijedna grupa nije zabranjena. # # tj. ako je barem jedna grupa navedena, korisnicima # # u toj grupi će biti odbijen pristup # # ssh serveru. # # # ## AllowGroups ########################################### # # # Lista GRUPA koje sshd MOŽE koristiti. # # Podrazumevano - nije navedeno = dozvoljeno svima. One. ako je # # navedena barem jedna grupa, tada će samo onim korisnicima# # koji joj pripadaju će biti dozvoljen pristup ssh serveru.# # # ################## ## ######################################## ######## # Opcije za određivanje statusa veze ########### ################################### ## ######################## # # ## TCPKeepAlive ################### ## ####################### # # # Određuje da li sistem treba da šalje TCP poruke klijentu # # da 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 rutiranju, a # # ovo je za neke vrlo neugodno. S druge strane, ako se # # ove poruke ne pošalju, sesije na serveru se mogu # # pokrenuti neograničeno, stvarajući "duhove" korisnike# # i proždirući serverske resurse. Zadana vrijednost je “da”, # # tj. slati takve poruke. Da biste onemogućili slanje # # takvih poruka, postavite vrijednost na “ne”. Ranije se ova # # opcija zvala KeepAlive. Vrijedi 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 dobijanja odgovora # # od klijenta. Ako je prag dostignut, a # # klijent i dalje ne odgovori, sshd će prekinuti vezu sa klijentom, prekidajući # # ssh sesiju. Vrijedi napomenuti da se korištenje ovih poruka # # fundamentalno razlikuje od TCPKeepAlive direktive. # # Poruke do/od klijenata se šalju preko # # šifrovanog kanala i stoga nisu podložne lažiranju. # # TCPKeepAlive poruke su podložne lažiranju. Mehanizam Client Alive # # je posebno vrijedan u slučajevima kada server i klijent # # moraju znati kada je veza postala neaktivna. Podrazumevana vrednost # # je 3. Ako je ClientAliveInterval # # postavljen na 15 i ClientAliveCountMax je ostavljen na # #, podrazumevani klijenti koji ne odgovaraju će biti isključeni nakon otprilike # # 45 sekundi. Ova direktiva radi samo za # # ssh2 protokol. # # # ## ClientAliveInterval #################################### # # # Postavlja vremenski interval u sekundi. Ako nije bilo komunikacije # # sa klijentom tokom ovog intervala, sshd # # šalje poruku preko šifrovanog kanala # # tražeći odgovor od klijenta. Podrazumevano je 0, tj. # # nemojte slati takve poruke. Ova direktiva radi # # samo za ssh2 protokol. # # # ################################################ # ############# ################ Opće opcije autentifikacije ################# # ################################################## ## ######## # # ## AuthorizedKeysFile ################################### ## # # # # Određuje datoteku koja sadrži javne ključeve # # koji se koriste za autentifikaciju korisnika. Direktiva # # može sadržati tokene oblika %M, koji se zamenjuju tokom # # procesa uspostavljanja veze. # # Sljedeći markeri su definirani: # # %% - zamijenjeno literalom "%" # # %h - zamijenjeno početnim direktorijumom # # korisnika koji se autentifikuje # # %u - zamijenjen imenom korisnika za autentifikaciju # # Dakle, ključna datoteka može biti specificirana kao # # apsolutna putanja (tj. jedna dijeljena datoteka sa ključevima), i # # dinamički - ovisno o korisniku (tj. jedna # # datoteka po korisniku). # # Podrazumevano je “.ssh/authorized_keys”. # # Primjer za datoteku ključa u korisničkom home folderu: # # AuthorizedKeysFile %h/.ssh/authorized_key # # Primjer za generički fajl: # # AuthorizedKeysFile /etc/ssh/authorized_keys # # Pogledajte opis datoteke authorized_keys za više # # informacija. # # # ## ChallengeResponseAuthentication ######################## # # # Označava da li treba dozvoliti autentifikaciju izazov-odgovor # # (provjera autentičnosti izazov-odgovor ). # # Svi tipovi autentifikacije iz login.conf su podržani. Podrazumevano je "da", # # tj. dopustiti. # # Na Ubuntu-u, onemogućeno iz sigurnosnih razloga. # # # ChallengeResponseAuthentication br # # ## HostbasedUsesNameFromPacketOnly ######################### # # # Određuje kako server treba da preuzme klijentovo ime hosta # # kada shema provjere autentičnosti zasnovana na hostu. # # Ako je postavljeno na "da", sshd # # će koristiti ime hosta koje je dao klijent prilikom provjere podudaranja u # # ~/.shosts, ~/.rhosts ili /etc/hosts.equiv datotekama. # # (izvođenje obrnutog DNS rezolucije) Ako je postavljeno na "ne"# # - sshd će riješiti ime iz same TCP veze. # # Podrazumevano je "ne". # # # ## IgnoreRhosts ############################################ # # Onemogućava upotrebu .rhosts i .shosts datoteka # # u autentifikaciji baziranoj na hostu. # # (RhostsRSAAuthentication ili HostbasedAuthentication). # # Datoteke /etc/hosts.equiv i /etc/ssh/shosts.equiv su # # još uvijek u upotrebi. # # Podrazumevano je "da". # # # IgnoreRhosts da # # ## IgnoreUserKnownHosts ##################################### # # Označava trebao bi sshd ignorirati korisnika # # "poznati hostovi" ~/.ssh/known_hosts fajl tokom # # provjere autentičnosti zasnovane na hostu (RhostsRSAAuthentication ili HostbasedAuthentication). # # Podrazumevano je “ne”. # # # ## PermitBlacklistedKeys ################################## # # # Određuje da li se prihvataju sshd ključevi na crnoj listi # # kao kompromitovani (poznato-kompromitovani # # ključevi (pogledajte ssh-vulnkey)). Ako je postavljeno na “da”, # # pokušaji autentikacije sa ovim ključevima će biti evidentirani # # i prihvaćeni, ako je postavljeno na "ne", # # pokušaji autentifikacije će biti odbijeni. # # Podrazumevano je “ne”. # # # ## PermitEmptyPasswords #################################### # # # U slučaju dozvoljene autentifikacije sa lozinkom, # # specificira da li je moguća prijava sa praznom lozinkom. # # Podrazumevano je “ne”. # # # PermitEmptyPasswords ne # # ## PermitRootLogin ###################################### # # # # Označava da li je dozvoljena ssh prijava kao superkorisnik # # (root). Može uzeti sljedeće vrijednosti: # # "da" - superkorisnik se može prijaviti. # # Koristi se trenutna globalna šema provjere autentičnosti. # # # # "bez lozinke" - superkorisnik se može prijaviti. # # Provjera autentičnosti lozinke za to će biti onemogućena. # # # # “forced-commands-only” - superkorisnik će se moći prijaviti # # koristeći autentifikaciju javnog ključa i # # samo ako prođe potrebnu naredbu za izvršenje. # # Ovo je korisno za pravljenje rezervnih kopija # # čak i kada je normalno (tj. ne preko ssh) # # root prijava onemogućena. Sve ostale # # metode autentikacije za superkorisnika će biti onemogućene.# # # # “ne” - superkorisnik ne može koristiti ssh za # # prijavu u sistem. # # # # Zadana vrijednost je “da”. # # # PermitRootLogin da # # ## Protokol ######################################### ######## # # # Određuje koji protokol sshd treba koristiti. # # Moguće vrijednosti '1' i '2' su ssh1 i ssh2 # # respektivno. Moguće je istovremeno pisanje, u kojem # # vrijednosti moraju biti odvojene zarezima. # # Podrazumevano je “2,1”. # # Vrijedi napomenuti da redoslijed protokola u # # unosu ne specificira prioritet, kao klijent bira koji # # od nekoliko protokola koje server nudi # # koristi. "2,1" unos je # # potpuno identičan unosu "1,2". # # # Protokol 2 # # ## UsePAM ######################################## ######### # # # Omogućava PAM interfejs (Pluggable Authentication Module # # interfejs). Ako je postavljeno na "da" - za sve tipove autentifikacije # # pored obrade modula sesije i naloga # # PAM autentifikacija će se koristiti na osnovu # # izazov-odgovor (ChallengeResponseAuthentication i # # PasswordAuthentication) # # provjera autentičnosti izazov-odgovor u PAM-u obično obavlja istu ulogu # # kao autentikacija lozinkom, trebali biste onemogućiti # # ili PasswordAuthentication ili # # ChallengeResponseAuthentication. Vrijedi 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 da li autentifikaciju koristeći # # lozinku. # # Podrazumevano je "da". # # # ## HostKey ############################################ #### # # # Određuje datoteku koja sadrži privatni ključ hosta # # koji koristi SSH. Podrazumevano 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. # # Vrijedi napomenuti da sshd neće koristiti datoteku # # koja se dijeli ni sa kim osim sa 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 koristiti ssh1 protokol.# # Ssh2 protokol je mnogo sigurniji od ssh1 # ###### ##### ############################################# #### # # ## KeyRegenerationInterval ################################# # # # Za ssh1 protokol - jednom svaki određeni put # # automatski se generiše novi privremeni serverski ključ # # (ako je korišćen). Ovo se radi # # kako bi se spriječilo dešifriranje otetih sesija, kako bi se # # kasnije prijavili na mašinu sa parametrima ovih sesija i # # ukrali ključeve. Ovaj ključ nije pohranjen nigdje (pohranjen u # # RAM-u). Ova direktiva specificira # # životni vijek ključa u sekundama nakon kojeg će # # biti regeneriran. Ako je vrijednost postavljena na 0 - # # ključ se neće regenerirati. # # Zadana vrijednost je 3600 (sekundi). # # # KeyRegenerationInterval 3600 # # ## RhostsRSAAuthentication ################################ # # # Označava da li je autentifikacija zasnovana na # # rhosts ili /etc/hosts.equiv fajlovima, zajedno sa uspešnom # # autentifikacijom hosta preko RSA. # # Relevantno samo za ssh1 protokol. # # Podrazumevano je “ne”. # # # RhostsRSAAuthentication ne # # ## RSAAuthentication ###################################### # # # Označava da li je dozvoljena "čista" RSA autentifikacija. # # Relevantno samo za ssh1 protokol. # # Podrazumevano je "da". # # # RSAAuthentication da # # ## ServerKeyBits ######################################## ### # # # Određuje broj bitova u privremenom ključu servera za # # ssh1 protokol. Minimalna vrijednost je 512. # # Zadana vrijednost je 1024. # ServerKeyBits 768 # # ################################# ########################### ########### Opcije protokola SSH verzije 2 (ssh2) #### ######## ########################################### ################## # # ## Šifre ########################### ###################### # # # Određuje algoritme šifriranja dozvoljene 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 postavke su: # # aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour128, # #arcfour256,arcfour,aes192-cbc,aes256-cbc,aes128-ctr, aes128-ctr, #arcfour128 -ctr # # # ## HostbasedAuthentication ################################ # # # Određuje da li je autentifikacija dozvoljena na osnovu na # # provjeravam host. Provjerite rhosts ili /etc/hosts.equiv, # # i ako je uspješna, u kombinaciji sa uspješnom provjerom # # javnog ključa, pristup se odobrava. Ova direktiva je # # ista kao RhostsRSAAuthentication direktiva i # # se odnosi samo na ssh2 protokol. # # Podrazumevano je "ne". # # # HostbasedAuthentication ne # # ## MAC-ovi ######################################### ############ # # # Označava važeći MAC algoritam (poruka # # kod za autentifikaciju). MAC algoritam # # koristi ssh2 protokol za zaštitu integriteta podataka. Više # # algoritama mora biti odvojeno zarezima. # # Zadane postavke su: # # hmac-md5,hmac-sha1, [email protected] ,hmac-ripemd160, # # hmac-sha1-96,hmac-md5-96 # # # ## PubkeyAuthentication ########################### ########## # # # Označava da li je autentifikacija javnog ključa # # dozvoljena. Relevantno samo za ssh2 protokol. # # Podrazumevano je "da". # # # Pubkey Authentication da ############################################## ############### #################### Opcije GSSAPI ############# ############# ##################################### ####################### # # ############ Primjenjivo samo za ssh2 protokol ######## ### # # ## GSSAPIAuthentication #################################### # # # Određuje da li autentifikacija korisnika je # # zasnovana na GSSAPI. Podrazumevano je "ne", tj. zabranjeno. # # # ## GSSAPIKeyExchange ###################################### # # # Označava da li je ključ razmjena zasnovana na # # GSSAPI je dozvoljena. GSSAPI razmjena ključeva se ne oslanja na # # ssh ključeve za provjeru identiteta hosta. # # Podrazumevano je "ne" - tj. razmjena je zabranjena. # # # ## GSSAPICleanupCredentials ############################### # # # Određuje da li se automatski uništi # # autentikacija korisnika keš akreditiva kada # # sesija završi. # # Podrazumevano je "da" - tj. treba uništiti. # # # ## GSSAPIStrictAcceptorCheck ############################## # # # Određuje koliko stroga treba biti provjera identiteta # # klijent prilikom autentifikacije putem GSSAPI. # # Vrijednost "da" uzrokuje autentifikaciju klijenta za # # uslugu primaoca na trenutnom hostu. Vrijednost "ne" # # omogućava klijentu da se autentifikuje sa bilo kojim # # ključem usluge. # # Zadana vrijednost je "da". # # Imajte na umu da postavljanje na "ne" može raditi samo # # sa rijetkim Kerberos GSSAPI bibliotekama. # # # ################################################ # ############# ################### Opcije Kerberos ################ # ######### ######################################### # ################### # # ## Kerberos Autentifikacija ########################## # ######## # # # Označava da li lozinka koju je # # dao korisnik za autentifikaciju # # (PasswordAuthentication) zahtijeva validaciju na Kerberos KDC-u. # # Da bi koristio ovu opciju, serveru je potrebno # # da potvrdi da je KDC tačan. (Serveru je potrebna # # Kerberos servtab koja omogućava verifikaciju # # KDC-ovog identiteta) # # Podrazumevano je “ne”. # # # ## KerberosGetAFSToken ##################################### # # # Ako je AFS aktivan a korisnik je dobio Kerberos 5 TGT, # # da li da pokuša dobiti AFS token prije nego što korisnik # # ima pristup svom kućnom folderu. # # Podrazumevano je “ne”. # # # ## KerberosOrLocalPasswd ################################### # # # Određuje kako postupiti u slučaju od ako autentifikacija # # putem Kerberosa nije uspjela. Ako je # # vrijednost "da", lozinka će biti potvrđena korištenjem # # bilo kojeg dodatnog mehanizma lokalne autorizacije, # # na primjer - /etc/passwd. # # Podrazumevano je "da". # # # ## KerberosTicketCleanup ################################### # # # Određuje da li će se datoteka automatski ubiti sa # # kešom korisničke karte kada se sesija završi. # # Podrazumevano je "da". # # # ################################################ # ############# ################## Opcije preusmjeravanja ################## # ## ################################################ ## ############ # # ## AllowAgentForwarding ############################### # ### # # # Određuje da li da se omogući ili onemogući ssh-agentovo # # preusmjeravanje. Podrazumevano je "da", tj. dozvoli. # # Imajte na umu da onemogućavanje preusmjeravanja neće # # povećati sigurnost osim ako korisnici također # # odbiju shell pristup jer oni mogu # # instalirati vlastite agente # # # # # AllowTcpForwarding ###################### ########## ###### # # # Određuje hoće li se dozvoliti ili onemogućiti TCP preusmjeravanje # # Podrazumevano je "da", tj. dozvoli Imajte na umu da # # kao u slučaju AllowAgentForwarding, onemogućavanje # # prosljeđivanja neće poboljšati sigurnost sve dok kao # # korisnici imaju pristup konzoli, jer mogu # # instalirati svoje kolege # # # # # ## GatewayPorts ######### ## ################################# # # # Određuje da li da se dozvoli pristup udaljenim hostovima # # preusmjerenim portovima. Podrazumevano, sshd sluša samo # # za proslijeđene portove na lokalnom interfejsu # # (povratna petlja). Ovo sprječava druge udaljene hostove # # da se povežu na proslijeđene portove. Možete # # koristiti GatewayPorts da dozvolite sshd-u da # # ovo uradi. Direktiva može imati 3 vrijednosti: # # "ne" - samo povratna petlja. # # "da" - bilo koje adrese. # # "clientspecified" - adrese koje je odredio klijent. # # # ## PermitOpen ############################################ # # # # Određuje gdje je dozvoljeno prosljeđivanje TCP porta. # # Hint za preusmjeravanje mora imati jedan od # # sljedećih oblika: # # PermitOpen host:port # # PermitOpen IPv4_addr:port # # PermitOpen :port # # Više unosa se može specificirati odvajanjem razmacima. # # Argument "bilo koji" se može koristiti za uklanjanje svih # # ograničenja za prosljeđivanje portova. Prema zadanim postavkama, bilo koje # # preusmjeravanje je dozvoljeno. # # # ## PermitTunnel ############################################ # # Označava da li je preusmjeravanje tun uređaja dozvoljeno. # # Može se postaviti na: # # "da" # # "od tačke do tačke" (3. mrežni sloj) # # "ethernet" (2. mrežni sloj) # # "ne" # # Vrijednost "da" dozvoljava oba " point-to-point" # # i "ethernet" u isto vrijeme. Podrazumevano je “ne”. # # # ################################################ # ############# ################## Opcije evidentiranja ################# # ### ############################################## ## ############# # # ## SyslogFacility ############################## # ########## # # # Određuje kod objekta dnevnika za pisanje poruka u # # syslog sa sshd-a. Moguće vrijednosti: # # DAEMON # # USER # # AUTH # # LOCAL0 # # LOCAL1 # # LOCAL2 # # LOCAL3 # # LOCAL4 # # LOCAL5 # # LOCAL6 # # LOCAL7 # # Podrazumevano je AUTH. # # # SyslogFacility AUTH # # ## LogLevel ######################################## ######## # # # Postavlja nivo opširnosti sshd dnevnika. # # Opcije su: # # SILENT # # QUIET # # FATAL # # GREŠKA # # INFO # # VERBOSE # # DEBUG # # DEBUG1 # # DEBUG2 # # DEBUG3 # # Podrazumevano je INFO. # # DEBUG i DEBUG1 su ekvivalentni jedan drugom. # # DEBUG2 i DEBUG3 postavljaju najviše nivoe # # izlaza za otklanjanje grešaka. Evidentiranje na nivou DEBUG # # ugrožava privatnost korisnika i ne preporučuje se. # # # LogLevel INFO # # ############################################ ################ ################### X11 preusmjeravanje ############ # ####### ########################################### ################# # # ## X11Prosljeđivanje ########################## ## ############## # # # Označava da li je preusmjeravanje X11 grafičkog # # podsistema dozvoljeno. Može uzeti vrijednosti "da" ili "ne". # # Podrazumevano je “ne”. # # Upozorenje - omogućavanje jednostavnog X11 preusmjeravanja je # # veliki rizik i za server i za klijente, jer u # # ovom preusmjeravanju, sshd proxy ekran će # # prihvatiti veze sa bilo koje adrese. # # Koristite direktivu X11UseLocalhost da ograničite pristup # # serveru za preusmjeravanje X. Vrijedi napomenuti da # # onemogućavanje preusmjeravanja neće garantovati da # # korisnika neće moći preusmjeriti X11, jer imaju # # pristup konzoli oni uvijek postavljaju svoj # # preusmjerivač. X11 preusmjeravanje će # # biti automatski onemogućeno ako se # # koristi UseLogin direktiva. # # # X11Prosljeđivanje da # # ## X11UseLocalhost ######################################## # # # Određuje da li sshd # # treba ograničiti preusmjeravanje X11 na adresu lokalne petlje ili # # dozvoliti bilo koje adrese. Podrazumevano je sshd # # da "posadi" server za preusmjeravanje X11 na lokalnu adresu # # i postavi dio imena hosta varijable DISPLAY okruženja # # na "localhost". Imajte na umu da # # neki stariji X11 klijenti možda neće raditi sa # # ovim postavkama. Podrazumevano je "da", tj. preusmjeravanje # # je ograničeno na localhost, vrijednost je "ne" - onemogućava # # ograničenja. # # # ## XAuthLocation ########################################## # # # Određuje punu putanju do xauth programa. # # Podrazumevano je /usr/bin/X11/xauth. # # # ## X11DisplayOffset ##################################### # # # Označava broj prvog prikaza dostupnog sshd # # kao X11 preusmjeravanje. Ovo se radi tako # # da se preusmereni x ne preklapaju sa # # pravim. Zadana postavka je 10. # # # X11DisplayOffset 10 # # ###################################### ##################### ################### Razne opcije ####### # ################ ################################## ########################## # # ## PrijavaGraceTime ################## # ####################### # # # Vrijeme nakon kojeg server isključuje # # korisnika ako se # # ne prijavi na zadovoljavajući način. Vrijednost 0 - omogućava korisniku # # da se prijavljuje na neodređeno vrijeme. Podrazumevano je 120 (sekundi). # # # PrijavaGraceTime 120 # # ## MaxAuthTries ######################################## ### # # # Određuje maksimalni broj pokušaja autentifikacije # # dozvoljen po konekciji. # # Jednom kada broj neuspjelih pokušaja pređe # # polovinu postavljene vrijednosti, svi sljedeći pokušaji će # # biti evidentirani. Zadana vrijednost je 6. # # # ## MaxSessions ###################################### ###### # # # Određuje maksimalan broj istovremenih veza # # za svaku mrežnu vezu. Default je 10. # # # ## MaxStartups ######################################## ##### # # # Određuje maksimalan broj istovremenih # # neovlaštenih konekcija na sshd. U slučaju da # # broj konekcija premaši ograničenje - sve dodatne # # veze će biti prekinute dok se trenutne # # veze ne završe ili uspješnom autorizacijom, # # ili istekom vremenskog perioda navedenog u # # LoginGraceTime direktivi . Podrazumevana vrijednost je 10. # # Opciono, možete podesiti da veze rano ispadnu # # navodeći tri vrijednosti odvojene # # dvotočkom "start:rate:full" (npr.: "10:30:60"). # # sshd će odbiti pokušaj povezivanja s vjerovatnoćom # # od “rate/100” (tj. u našem primjeru je 30%) ako # # već postoje “start” (10) neovlaštene veze. # # Vjerovatnoća raste linearno i svaki # # pokušaj povezivanja će biti odbijen ako broj neovlaštenih # # veza dostigne "pun" (60). # # # ## Kompresija ############################################# # # # # Označava da li je kompresija podataka omogućena. Može biti # # "da" - kompresija je omogućena. # # "odloženo" - kompresija je odgođena dok # # korisnik ne bude uspješno autentificiran. # # "ne" - kompresija je onemogućena. # # Podrazumevano je "odloženo". # # # ## UseLogin ############################################# ### # # # Označava da li treba koristiti prijavu za # # interaktivnu sesiju. Zadana vrijednost je “ne”. # # Vrijedi napomenuti da prijava nikada nije korištena # # za izvršavanje daljinskih naredbi. Također imajte na umu da će # # korištenje logina onemogućiti # # korištenje direktive X11Forwarding, jer login # # ne zna šta da radi sa xauthom. Ako je direktiva # # UsePrivilegeSeparation omogućena - bit će onemogućena nakon # # autorizacije. # # # ## UsePrivilegeSeparation ################################# # # # Određuje da li sshd treba da odvaja privilegije. Ako je odgovor da # # tada će se prvo kreirati neprivilegirani podređeni proces # # za dolazni mrežni promet. Nakon uspješne autorizacije, # # će biti kreiran drugi proces sa # # privilegijama prijavljenog korisnika. # # # Primarna svrha dijeljenja privilegija je spriječiti zamjene. # # Zadana vrijednost je “da”. # # # UsePrivilegeSeparation da # # ## StrictModes ###################################### ## ### # # # Određuje da li sshd treba provjeriti načine pristupa i # # vlasništvo nad korisničkim folderima i datotekama prije # # dozvoljavanja korisniku da se prijavi. To je obično zato što # # novajlije često čine svoje fajlove dostupnim za pisanje # # svima. Podrazumevano je "da". # # # StrictModes da # # ## AcceptEnv ######################################## ####### # # # Određuje koje će varijable okruženja koje je proslijedio # # klijent biti prihvaćene. Pogledajte opciju SendEnv u klijentu. # # Imajte na umu da je prosljeđivanje varijabli moguće # # samo za ssh2 protokol. Varijable su specificirane imenom, # # zamjenski znakovi ('*' i '?') se mogu koristiti. Možete navesti # # više varijabli odvojenih razmacima ili # # prekinuti više redova AcceptEnv. Budite oprezni - neke # # varijable okruženja se mogu koristiti za zaobilaženje # # zabranjenih korisničkih okruženja. # # Pažljivo koristite ovu direktivu. Podrazumevano, nijedna # # prilagođena varijabla okruženja nije prihvaćena. # # # AcceptEnv LANG LC_* # # ## PermitUserEnvironment ################################## # # # Određuje da li sshd treba # # prihvatiti ~/.ssh/environment i opciju environment= u # # ~/.ssh/authorized_keys. Podrazumevano je “ne”. Vrijedi # # napomenuti da omogućavanje rukovanja okruženjem može dati # # korisnicima mogućnost 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. # # Podrazumevano je /var/run/sshd.pid # # # # # ## PrintLastLog ############################# ## ############# # # # Određuje da li sshd treba prikazati datum i vrijeme # # posljednje sesije kada se korisnik interaktivno prijavljuje. # # Podrazumevano je "da". # # # PrintLastLog da # # ## PrintMotd ######################################### ####### # # # Određuje da li sshd treba da štampa /etc/motd # # kada se korisnik interaktivno prijavljuje. Na nekim # # sistemima (npr. Ubuntu) ove informacije takođe # # prikazuje ljuska. # # Zadana vrijednost je “da”. # # # PrintMotd no # # ## Baner ######################################### ######### # # # Određuje koja datoteka sadrži tekstualni baner # # koji će biti prikazan korisniku PRIJE # # procedure autentifikacije. Opcija je dostupna samo za ssh2 protokol.# # Podrazumevano - ne prikazuje ništa. # # Na Ubuntu-u, datoteka issue.net sadrži frazu Ubuntu (verzija), # # npr. za karmičko to je "Ubuntu 9.10". Može li se # # koristiti za zbunjivanje potencijalnih napadača # # pisanjem "Moj D-Link Interet Router" =) # # # Baner /etc/issue.net # # ## ChrootDirectory ########### # ############################# # # # Ako je navedeno, daje putanju do # # chroot-a nakon autentifikacije. Putanja i sav njen # # sadržaj moraju odgovarati folderima u vlasništvu # # superkorisnika i ne smiju biti # # upisani od strane drugih korisnika. # # Put može sadržavati oznake koje su zamijenjene u # # procesu autentikacije: # # %% - zamijenjeno literalom "%" # # %h - zamijenjeno početnim direktorijumom # # korisnika koji se autentifikuje # # %u - zamijenjeno imenom korisnika koji se autentifikuje # # chroot -folder treba da sadrži sve potrebne datoteke i # # foldere za korisničku sesiju. Interaktivna # # sesija treba najmanje: # # školjku, obično sh # # osnovne uređaje u /dev, kao što su: # # null, zero, stdin, stdout, stderr, random i tty # # za sesiju prijenosa podataka koristeći sftp # # nije potrebna dodatna konfiguracija ako se # # koristi interni sftp proces servera. Pogledajte Podsistem za # # više informacija. Podrazumevano, chroot se ne izvodi. # # # ## ForceCommand ############################################ # # Uzrokuje da se navedena naredba izvrši. Ignorira # # sve naredbe koje je dao klijent ili napisane u # # ~/.ssh/rc. Naredba se poziva iz korisničke # # ljuske sa -c opcijom. Pogodno za pokretanje ljuske, # # komande ili podsistema. Najkorisnije unutar # # Match bloka. Komanda koju je klijent prvobitno poslao je pohranjena # # u varijablu okruženja SSH_ORIGINAL_COMMAND. Ako je # # naredba "internal-sftp" specificirana, # # će biti pokrenut interni sftp server, kojem nisu potrebne # # dodatne datoteke i mape opisane u direktivi ChrootDirectory. # # # ## Podsistem ############################################ ## # # # Definira i konfigurira vanjski podsistem (na primjer # # demon za prijenos datoteka). # # Argumenti su ime i komanda (sa mogućim # # argumentima) koja će biti izvršena tokom # # upita na podsistemima. Komanda sftp-server pokreće “sftp” # # podsistem za prijenos datoteka. Opciono, možete # # odrediti “internal-sftp” kao podsistem, koji će pokrenuti # # interni sftp server. # # Ovo može uvelike pojednostaviti konfiguraciju kada se koristi # # direktiva ChrootDirectory Podrazumevano, nijedan podsistem # # se ne poziva. Relevantno samo za ssh2 protokol. # # # Podsistem sftp /usr/lib/openssh/sftp-server # # ################################# ########################## ###################### Blok utakmice # ########################## ######################### ################################### # # # # Posebno premješteno na kraj fajla kako bi ga napravio zgodnije # # napišite pravila meča. # # MadKox. # # # # Direktiva Match je početak uslovnog # # bloka. Ako su ispunjeni svi kriterijumi navedeni u # # liniji za podudaranje, izvršavaju se direktive na narednim redovima bloka, # # omogućavajući vam da zaobiđete vrijednosti globalnih direktiva # # sshd_config za slučaj koji je # # Uskladi kriterij direktive. Blok su svi redovi koji slijede liniju # # s kriterijem (Match - lines) do sljedećeg podudarnog reda # # ili do kraja datoteke. Argument direktive Match je jedan ili još # # parova unosa kriterijuma. Mogući tipovi zapisa su: # # Korisnik # # Grupa # # Host # # Adresa # # Zapisi mogu sadržavati pojedinačne vrijednosti # # (npr. Korisnik=korisnik) ili više vrijednosti # # odvojene zarezima (Korisnik=user1,user2 ). # # Regularni izrazi opisani u # # odeljku PATTERNS datoteke ssh_config se također mogu koristiti. Unosi u kriteriju # # adrese mogu sadržavati adrese u CIDR notaciji # # (dužina adrese/maske, na primjer “192.0.2.0/24” ili # # “3ffe:ffff::/32”). Vrijedi napomenuti da dužina maske koja je navedena # # mora odgovarati adresi, a # # predugačak/kratak za adresu neće raditi. # # Direkcije za podudaranje mogu koristiti samo # # određeni skup direktiva: # # AllowTcpForwarding # # Banner # # ChrootDirectory # # ForceCommand # # GatewayPorts # # GSSAPIAuthentication # # HostbasedAuthentication # # KbdInteractiveAuthentication # # KbdInteractiveAuthentication # # KerberosS #Au Max. 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 konfigurisan SSH server je velika bezbednosna ranjivost, jer mogući napadač ima mogućnost da dobije skoro neograničen pristup sistemu. 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 na kojim portovima i adresama će vaš server slušati dolazne veze. Prvo, ima smisla, ako je moguće, ograničiti porodicu obrađenih adresa na one koje se stvarno koriste, odnosno ako koristite samo IPv4, onemogućite IPv6 i obrnuto. Ovo se može učiniti pomoću parametra AddressFamily, na primjer (da biste omogućili IPv4 i zabranili IPv6):

AdresaFamily inet

Drugo, poželjno je promijeniti standardni port (22) na kojem sshd sluša. To je zbog činjenice da se brojni mrežni skeneri neprestano pokušavaju spojiti na 22. port i barem dobiti pristup nabrajajući login/lozinke iz svoje baze podataka. Čak i ako je autentikacija lozinkom onemogućena, ovi pokušaji začepljuju evidencije i (u velikom broju) mogu negativno utjecati na brzinu ssh servera. Ako iz nekog razloga ne želite da promenite standardni port, možete koristiti razne eksterne uslužne programe za borbu protiv brute-forcera, kao što je fail2ban, ili ugrađene, kao što je MaxStartups.
Port možete postaviti kao apsolutnu vrijednost za sva sučelja pomoću direktive Port, ili kao specifičnu vrijednost za svaki interfejs koristeći ListenAddress direktivu. Na primjer:

Luka 2002

SlušajAdresu 192.168.0.1:2003 SlušajAdresu 192.168.1.1:2004

Onemogućite daljinski pristup za superkorisnika

Po defaultu, root pristup je odbijen lozinkom (preko ključa - možete) - opcija PermitRootLogin je postavljena na bez lozinke. Ali, s obzirom na to da po defaultu u Ubuntu korisnik koji je dodan tokom instalacije sistema ima mogućnost obavljanja svih administrativnih zadataka kroz sudo, stvaranje mogućnosti root pristupa sistemu preko ssh-a izgleda nerazumno (čak i uz autentifikaciju ključa). Preporučuje se da ga potpuno isključite. ovu opciju ili je primijenite samo u načinu rada samo sa prisilnim naredbama. Možete onemogućiti root pristup na sljedeći način:

PermitRootLogin br

Provjera autentičnosti lozinkom

Provjera autentičnosti lozinke koja je po defaultu omogućena je praktički najprimitivniji način prijave na sshd. S jedne strane, to pojednostavljuje konfiguraciju i povezivanje novih korisnika (dovoljno je da korisnik zna svoj sistem login/lozinke), s druge strane, lozinka se uvijek može pogoditi, a korisnici često zanemaruju kreiranje složenih i duge lozinke. Specijalni botovi neprestano skeniraju ssh servere dostupne sa Interneta i pokušavaju da se prijave na njih nabrajajući login/lozinke iz svoje baze podataka. Veoma je preporučljivo da ne koristite autentifikaciju lozinkom. Možete ga isključiti ovako:

PasswordAuthentication br

Ako iz nekog razloga i dalje želite koristiti autentifikaciju lozinkom - uvjerite se da se niko 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 sa SSH1 i SSH2 protokolima. Međutim, upotreba nesigurnog SSH1 je veoma obeshrabrena. Možete prisiliti sshd da radi samo sa SSH2 protokolom na sljedeći način:

SSH2 RSA provjera autentičnosti ključa

Preferirana metoda autorizacije je provjera autentičnosti SSH2 RSA ključa. Ovom metodom korisnik generiše par ključeva na svojoj strani, od kojih je jedan ključ tajni, a drugi javan. Javni ključ se kopira na server i služi za provjeru identiteta korisnika. Za više informacija o kreiranju para ključeva i kako ih postaviti na server, pogledajte opis SSH klijenta. Provjeru autentičnosti javnog ključa možete omogućiti na sljedeći način:

PubkeyAuthentication da

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

# Komentari se pišu samo u novom redu # opći oblik unosa u datoteci authorized_keys # [opcije] tip_ključa (ssh-rsa ili ssh-dss) very_long_string_incomprehensible_to_a_ordinary_person [login@host] ssh-rsa AAAAB3Nza...LiPk== [email protected] from="*.sales.example.net,!pc.sales.example.net" ssh-rsa AAAAB2...19Q== [email protected] 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== tunel="0",command="sh /etc/netstart tun0" ssh-rsa AAAA...== [email protected]

Možete odrediti i jednu zajedničku datoteku s ključevima i jednu datoteku za svakog korisnika. Potonji način je praktičniji i sigurniji, jer, prvo, možete odrediti različite kombinacije ključeva za svakog korisnika, a drugo, ograničiti pristup javnom ključu korisnika. Možete postaviti datoteku s ključevima koristeći AuthorizedKeysFile direktivu:

AuthorizedKeysFile %h/.ssh/my_keys

za korisnika šeme - fajl
ili

AuthorizedKeysFile /etc/ssh/authorized_keys

za šemu sa zajedničkom datotekom. Podrazumevano, SSH klijent traži ključeve u ~/.ssh/authorized_keys.

Više o sigurnosti

Dodatne postavke

Korisnici i grupe.

Ako imate puno korisnika koji "živi" na serveru, a želite samo nekolicini od njih 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 iz metoda detekcije stanja veze, međutim, sshd može odrediti stanja veze na pogodnije i sigurnije načine. Pogledajte relevantni odjeljak u primjeru sshd_config za detalje.

Performanse. MaxStartups

Port Forwarding

X11 preusmjeravanje

Na serveru, u datoteci /etc/ssh/sshd_config, postavite parametar (podrazumevano omogućen):

ForwardX11 da

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

ForwardAgent da ForwardX11 da

Možete ga pokrenuti na klijentu kao što je ovaj ssh [email protected] firefox. Ili prvo idemo ssh [email protected] zatim pokrenite, na primjer sudo synaptic .

SFTP

sshd ima ugrađeni SFTP server po defaultu. SFTP (SSH File Transfer Protocol) - SSH protokol za prijenos datoteka. Dizajniran je za kopiranje i obavljanje drugih operacija datoteka preko pouzdane i sigurne veze. Po pravilu, SSH2 protokol se koristi kao osnovni protokol koji obezbeđuje vezu. Da biste omogućili SFTP podršku, dodajte red u sshd_config

Podsistem sftp /usr/lib/openssh/sftp-server

Podrazumevano, podrška za SFTP je omogućena.

Upotreba kriterijuma. Direktiva podudaranja

Postavljanje SSH klijenta

Ključna prijava se smatra najsigurnijom, a u većini slučajeva ova funkcija je omogućena na strani servera, tako da za njeno korištenje nisu potrebna nikakva prava superkorisnika. Generirajte ključ na klijentskoj mašini:

ssh-keygen -t rsa

Dobijamo ponudu da unesemo lozinku kako bismo zaštitili ključnu datoteku (ispostavi se da je korisna ako datoteka padne u pogrešne ruke). Ako ćemo skripte izvršavati preko SSH-a, onda to ostavljamo prazno. Komandom prenosimo javni ključ na server

ssh-copy-id -i ~/ .ssh/ id_rsa.pub [email protected] server

Sve, možeš ući.

Kada ssh radi na nestandardnom portu:

ssh-copy-id -i ~/ .ssh/ id_rsa.pub "-p port [email protected]"

Ako dođe do greške: Loš port "umask 077; test -d .ssh || mkdir .ssh ; cat >> .ssh/authorized_keys"

pokušajte parametre staviti u navodnike:

ssh-copy-id "-i /home/user/.ssh/id_rsa.pub "-p port [email protected]""

Pogodno je koristiti uslužni program za ekran kada se povezujete na udaljeni sistem.

Postavljanje udaljenog ssh direktorija u Nautilusu

Montiranje udaljenog direktorija sa sshfs-om

Montiranje udaljenog direktorija u lokalni direktorij

sshfs [email protected] hostingserver.ru:/ home/ userdir ~/ sshfsdir

Unmount

Fusermount -u ~/sshsfdir

SSH aliasi

Kada koristite nekoliko servera sa različitim parametrima pristupa (nestandardni port, dugo ime hosta, prijava koja nije lokalna, itd.), ponekad je dosadno svaki put ponovo unositi sve postavke veze. Da bi se ovo 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 servera. Pročitajte više u man ssh_config(ne treba se brkati sa sshd_config)

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

Nakon toga, možete se povezati na server pomoću naredbe

ssh AliasName

ssh-agent

Dijagnostikovanje problema sa vezom

    Analiza dnevnika veza:

ssh-vvv [email protected] domaćin

    Analiza konfiguracijskih datoteka klijenta i servera.

Lokacija konfiguracijskih datoteka može se pronaći u

Čovjek ssh čovjek sshd

Korištenje pametnih kartica

1. Kreiranje sertifikata i izvoz javnog ključa, kao i klijentskog dela na Windows + Putty SC opisano je na sajtu: http://habrahabr.ru/post/88540/ Dostupan je tamo opisan dodatak Key Manager samo u starijim verzijama Firefoxa. Testirano na verziji 3.5 za Windows. Direktan link na dodatak: https://addons.mozilla.org/en/firefox/addon/key-manager/

2. Priprema servera. Morate biti sigurni da sshd konfiguracija dozvoljava autentifikaciju s javnim ključevima. Da biste to učinili, trebate navesti vrijednost parametra "PubkeyAuthentication" u datoteci "sshd_config" na "yes". Zatim dodajemo naš javni ključ koji smo ranije dobili (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 zatim prijaviti koristeći javni ključ.

3. Klijentski dio na Linuxu. Morat ćete ponovo izgraditi OpenSSH paket bez opcija. Preporučuje se da specificirate samo prefikse direktorija, kao što je --prefix=/usr. Također imajte na umu da će konfiguracijski fajlovi biti u /usr/etc. Prije pokretanja, potrebni su paketi: opensc-lite-devel, zlib-devel, openssl-devel. Instalirajte drajver za pametnu karticu. Radi praktičnosti, u ssh_config konfiguraciji (ne treba se brkati sa sshd_config) navedite putanju do pkcs biblioteke: PKCS11Provider=<путь к библиотеке>

4. Pokrenite ssh na klijentu [email protected] Ako je pametna kartica (token) povezana, tražit će se lozinka i SSH sesija će biti prijavljena.

Mogući problemi prilikom upotrebe

Uobičajena kombinacija tipki Ctrl + S, koja se koristi u mnogim uređivačima za spremanje ispravki, kada se radi u terminalu sa ssh serverom, dovešće do izvršenja naredbe XOFF, što izgleda kao prekid sesije. Međutim, nije. Server nastavlja da prihvata ulazne znakove i komande, ali ih ne prikazuje na ekranu. Da biste izašli iz takve nevolje, dovoljno je upotrijebiti kombinaciju Ctrl + Q i time ponovo uključiti XON način rada.

Linkovi

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

Ili skraćeno SSH, jedna je od najnaprednijih tehnologija za osiguranje podataka u tranzitu. Korištenje ovog načina rada na istom ruteru omogućava 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: šta je to i zašto je potreban?

Budući da je riječ o sigurnosti, u ovom slučaju SSH port treba shvatiti kao namjenski komunikacioni kanal u obliku tunela koji omogućava enkripciju podataka.

Najprimitivnija shema za takav tunel je da se otvoreni SSH port koristi po defaultu za šifriranje informacija na izvoru i dešifriranje na krajnjoj točki. Možete to objasniti ovako: sviđalo se to vama ili ne, preneseni promet, za razliku od IPSec-a, šifrira se na prisilnoj osnovi kako na izlazu jednog mrežnog terminala tako i na ulazu strane primaoca. Za dešifrovanje informacija koje se prenose preko ovog kanala, prijemni terminal koristi poseban ključ. Drugim riječima, niko bez ključa ne može ometati prijenos ili narušiti integritet prenesenih podataka u trenutnom trenutku.

Samo otvaranje SSH porta na bilo kojem ruteru ili korištenje odgovarajućih postavki dodatnog klijenta koji je u direktnoj interakciji sa SSH serverom omogućava vam da u potpunosti iskoristite sve sigurnosne značajke modernih mreža. Poenta je da koristite port koji je dodijeljen po defaultu ili korisnička podešavanja. Ovi parametri u primjeni mogu izgledati prilično komplicirano, ali ne može se bez razumijevanja organizacije takve veze.

Standardni SSH port

Ako zaista polazite od parametara bilo kojeg rutera, prvo morate odlučiti koji će se softver koristiti za omogućavanje ovog komunikacijskog kanala. Zapravo, podrazumevani SSH port može imati različite postavke. Sve zavisi od toga koja se tehnika trenutno koristi (direktno povezivanje sa serverom, instaliranje dodatnog klijenta, prosleđivanje portova itd.).

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

Da biste rekonfigurirali ruter 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 to koje postavke ima trenutni komunikacijski protokol (IPv4 ili IPv6).

Tehničko obrazloženje

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

Zašto povjerljivost šifriranog prijenosa podataka zahtijeva korištenje SSH protokola kao isključivo vanjskog (gostjućeg) korisničkog porta? Da, samo zato što vam korišteno tuneliranje omogućava da koristite takozvanu udaljenu ljusku (SSH), dobijete pristup upravljanju terminalom putem udaljene prijave (slogin), a također koristite procedure udaljenog kopiranja (scp).

Osim toga, SSH port se može koristiti i kada korisnik treba da izvrši 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 najpotrebnija će biti upotreba algoritama baziranih na AES-u. Ovo je simetrični algoritam šifriranja koji je prvobitno bio obezbeđen u SSH tehnologiji. I ne samo da ga je moguće koristiti, već je i neophodno.

Istorijat implementacije

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

Obično se svodi na korištenje proxyja baziranog na Socks-u ili VPN tunela. Ako neka softverska aplikacija može raditi s VPN-om, bolje je preferirati ovu opciju. Činjenica je da gotovo svi trenutno poznati programi koji koriste internet promet mogu raditi s VPN-om, a postavljanje rutiranja nije teško. Ovo, kao iu slučaju proxy servera, omogućava vam da ostavite vanjsku adresu terminala s kojeg trenutno pristupate mreži neprepoznatu. Odnosno, u slučaju proxyja adresa se stalno mijenja, ali u VPN verziji ostaje nepromijenjena uz fiksiranje određene regije, drugačije od one u kojoj je na snazi ​​zabrana pristupa.

Sama tehnologija, kada je SSH port otvoren, razvijena je davne 1995. godine na Finskom tehnološkom univerzitetu (SSH-1). Godine 1996. dodato je poboljšanje u obliku protokola SSH-2, koji je postao prilično raširen na postsovjetskom prostoru, iako je za to, kao i u nekim zemljama zapadne Evrope, ponekad potrebno dobiti dozvolu za koristiti takav tunel, štaviše, od vladinih agencija.

Glavna prednost otvaranja SSH porta, za razliku od telneta ili rlogina, je korištenje RSA ili DSA digitalnog potpisa (koristeći par u obliku javnog i privatnog ključa). Osim toga, u ovoj situaciji može koristiti tzv. ključ sesije zasnovan na Diffie-Hellman algoritmu, što podrazumijeva korištenje simetrične enkripcije na izlazu, iako ne isključuje korištenje algoritama asimetrične enkripcije u procesu prijenos podataka i njihov prijem od strane druge mašine.

Serveri i školjke

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

U tom smislu pažnju treba posvetiti pitanju prenosa informacija i autentifikacije. Prvo, ispostavlja se da je sam protokol dovoljno zaštićen od takozvanog sniffinga, što je najčešće “prisluškivanje” prometa. SSH-1 se pokazao kao bespomoćan protiv napada. Intervencija u procesu prenosa podataka u obliku šeme "čovjek u sredini" imala je svoje rezultate. Informacija bi se jednostavno mogla presresti i dešifrirati na potpuno elementaran način. Ali druga verzija (SSH-2) bila je osigurana od ove vrste smetnji, zvane otmica sesije, što ju je učinilo najrasprostranjenijom.

Sigurnosne zabrane

Što se tiče sigurnosti u odnosu na prenešene i primljene podatke, organizacija veze stvorene korišćenjem ovakvih tehnologija izbegava sledeće probleme:

  • određivanje ključa za domaćina u fazi prijenosa, kada se koristi "cast" otisak prsta;
  • podrška za Windows i UNIX-ove sisteme;
  • lažiranje IP i DNS adresa (spoofing);
  • presretanje otvorenih lozinki tokom fizičkog pristupa kanalu za prenos podataka.

Zapravo, cijela organizacija ovakvog sistema je izgrađena na principu "klijent-server", odnosno, prije svega, korisnički stroj preko posebnog programa ili dodatka pristupa serveru, koji vrši odgovarajuće preusmjeravanje. .

tuneliranje

Podrazumeva se da se u sistem mora instalirati poseban drajver da bi se ostvarila ovakva konekcija.

Tipično, na Windows sistemima, ovo je Microsoft Teredo drajver ugrađen u softver ljuske, koji je vrsta virtuelnog alata za emulaciju IPv6 na mrežama samo za IPv4. je aktivna po defaultu. U slučaju kvarova povezanih s njim, možete jednostavno ponovo pokrenuti sistem ili izdati naredbe za isključivanje i ponovno pokretanje u ljusci. Za deaktivaciju se koriste sljedeće linije:

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

Nakon unosa naredbi slijedi ponovno pokretanje. Za ponovno uključivanje adaptera i provjeru njegovog statusa dodjeljuje se omogućena dozvola umjesto onemogućena, nakon čega se, opet, cijeli sistem ponovo pokreće.

SSH server

Sada da vidimo koji se SSH port koristi kao glavni port, počevši od šeme "klijent-server". Obično se podrazumevano koristi port 22, ali, kao što je gore pomenuto, može se koristiti i port 443. Pitanje je samo u preferencijama samog servera.

Najčešćim SSH serverima smatraju se sljedeći:

  • za Windows: Tectia SSH server, OpenSSH sa Cygwin, MobaSSH, KpyM Telnet/SSH server, WinSSHD, copssh, freeSSHd;
  • za FreeBSD: OpenSSH;
  • za Linux: Tectia SSH Server, ssh, openssh-server, lsh-server, dropbear.

Svi navedeni serveri su besplatni. Međutim, možete pronaći i plaćene usluge koje se odlikuju povećanim nivoom sigurnosti, što je neophodno za organizovanje pristupa mreži i zaštitu informacija u preduzećima. O cijeni takvih usluga se trenutno ne raspravlja. Ali generalno, možemo reći da je relativno jeftin, čak i u poređenju sa instaliranjem specijalizovanog softvera ili "gvozdenog" firewall-a.

SSH klijent

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

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

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

Provjera autentičnosti javnog ključa i promjena porta

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

Glavna stvar je da broj porta koji se otvara ne prelazi vrijednost 65535 (u prirodi jednostavno nema viših portova). Osim toga, postoje neki portovi koji su otvoreni prema zadanim postavkama, koje mogu koristiti klijenti kao što su MySQL ili FTPD baze podataka. Ako navedete njihovu konfiguraciju za SSH, naravno, oni jednostavno prestaju raditi.

Imajte na umu da isti Jabber klijent mora biti pokrenut u istom okruženju koristeći SSH server, kao što je virtuelna mašina. I samom localhost serveru će se morati dodijeliti vrijednost 4430 (a ne 443, kao što je gore spomenuto). Ova konfiguracija se može koristiti kada je pristup glavnoj datoteci jabber.example.com blokiran zaštitnim zidom.

S druge strane, također možete prenijeti naprijed na samom ruteru, koristeći postavke njegovog sučelja za to, uz kreiranje pravila isključivanja. Na većini modela unos se vrši unosom adresa koje počinju sa 192.168 sa dodatkom 0.1 ili 1.1, ali na ruterima koji kombinuju mogućnosti ADSL modema kao što je Mikrotik, krajnja adresa pretpostavlja upotrebu 88.1.

U tom slučaju se kreira novo pravilo, nakon čega se postavljaju potrebni parametri, na primjer, za uspostavljanje vanjske dst-nat veze, a portovi se ručno registruju ne u odjeljku općih postavki, već u odjeljku Action preferences. Nema tu ništa posebno komplikovano. Glavna stvar je odrediti potrebne postavke i postaviti ispravan port. Podrazumevano se može koristiti port 22, ali ako se koristi specijalizovani klijent (jedan od gore navedenih za različite sisteme), vrednost se može promeniti proizvoljno, ali samo tako da ovaj parametar ne prelazi deklarisanu vrednost iznad koje postoje jednostavno nema brojeva portova.

Prilikom postavljanja veze treba obratiti pažnju i na parametre klijentskog programa. Vrlo je moguće da ćete u njegovim postavkama morati navesti minimalnu dužinu ključa (512), iako je zadana vrijednost obično 768. Također je poželjno postaviti vrijeme za prijavu na 600 sekundi i dozvoliti udaljeni pristup koristeći root prava. Nakon primjene ovih postavki, također morate dati dozvolu za korištenje svih prava za autentifikaciju, osim onih zasnovanih na korišćenju .rhost (ali ovo je potrebno samo administratorima sistema).

Između ostalog, ako se korisničko ime registrovano na sistemu ne poklapa sa onim koje se trenutno unosi, moraćete da ga eksplicitno navedete pomoću naredbe user ssh master za to, unoseći dodatne parametre (za one koji razumeju šta je u pitanju).

Naredba ~/.ssh/id_dsa (ili rsa) može se koristiti za pretvaranje ključa i samog metoda šifriranja. Za kreiranje javnog ključa koristi se transformacija pomoću ~/.ssh/identity.pub linije (ali to nije potrebno). Ali, kao što praksa pokazuje, najlakši način je korištenje naredbi poput ssh-keygen. Ovdje se suština 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 oznojiti, jer ćete morati uzeti u obzir sve vrijednosti glavnih parametara. U suprotnom, problem konfiguracije se svodi ili na ulazak u serverski ili klijentski program (ako je prvobitno bio obezbeđen) ili na korištenje prosljeđivanja portova na ruteru. Ali čak i ako promijenite port 22, koji je prema zadanim postavkama, na isti 443., morate jasno shvatiti da takva shema ne radi uvijek, već samo u slučaju instaliranja istog Jabber dodatka (drugi analogi može koristiti odgovarajuće portove, različite od standardnih). Osim toga, posebnu pažnju treba posvetiti postavljanju parametara SSH klijenta koji će direktno komunicirati sa SSH serverom, ako je to zaista namijenjeno korištenju trenutne veze.

U suprotnom, ako to nije predviđeno u početku (iako je poželjno izvršiti takve radnje), postavke i parametri za pristup preko SSH protokola ne mogu se mijenjati. Ovdje, općenito, nema posebnih problema prilikom kreiranja veze i njenog daljnjeg korištenja (osim ako se, naravno, ne koristi ručna konfiguracija bazirana na serveru i klijentu). Najčešće kreiranje pravila isključivanja na ruteru omogućava vam da popravite sve probleme ili ih izbjegnete.

Top Related Articles