Secure Shell (SSH) kasutamine ja turvalisus
Eelnevates praktikumides viisime läbi ründeid ennekõike kohalikus masinas (eeldasime et teil on füüsiline ligipääs ohvri arvutile). Käesolevas ja mitmed järgnevas vaatame aga kuidas üle interneti ohvri arvutisse pääseda.
SSH on võrguprotokoll arvutitevaheliste krüpteeritud tunnelite loomiseks. Üks selle peamisi kasutusalasid on üle võrgu teistesse arvutitesse sisse logimine ning arvutite (serverite) kaughaldamine. Selles praktikumis vaatame missuguseid turvaaspekte tuleb meeles pidada SSH kasutamisel ning mängime läbi mõned ründestsenaariumeid. Lisaks vaatame, kuidas SSH'd kasutada võrguliikluse ümber suunamiseks läbi krüpteeritud SSH-tunnelite.
NB! Kontrollige üle, et teie virtuaalmasina hostname
on muudetud unikaalseks. See peaks sisaldama teie perekonnanime
. Püsiva muudatuse tegemiseks tuleks modifitseerida järgmisi faile: /etc/hostname
ja /etc/hosts
ning teha arvutile (st virtuaalmasinale) restart
. Ajutise muudatuse tegemiseks: sudo hostname SINU_NIMI
. Uuemates Linux operatsioonisüsteemides k.a meie kasutad aolevas Mint 19.3-s võib kasutada ka käsku sudo hostnamectl set-hostname perenimi
, pärast mida on vaja terminal taaskäivitada muduatuse nägemiseks. Teil peaks olema juba hostname muudetud 1. praktikumi ülesande raames, aga olge kindlad, et see on endiselt unikaalne. Täpsemalt saab hostname muutmise kohta lugeda siit: How to Change Hostname on Ubuntu 18.04.
Lisaks on mugavam, kui sooritate antud praktikumi kasutades oma läpakaid. Klassis olevate arvutitega peate tegema paar lisasammu.
NB! Palun keelake ajutiselt oma arvutites viirusetõrje tarkvarad (antivirus software) nagu Symantec, NOD32 jne. Osad agressiivsed viirusetõrje tarkvarad blokeerivad virtuaalmasina ssh ühendusi.
Töö toimub Linux Mint virtuaalmasinas. Kui teil on virtuaalmasinaga probleeme võite alla laadida Praktikum1 juhendis oleva lingi abil või küsige ova uuesti õppejõult.
5.1 Praktikumi järgnevate tegevuste ettevalmistus
1. Ühendage enda virtuaalmasin klassi võrku. Selleks peab virtuaalmasina võrguadapteri tüübiks olema bridged adapter
(vaikimisi on "NAT").
- Lülitage enda Andmeturve Linux mint virtuaalmasin välja
power off
. - Ühendage enda sülearvuti 2003 arvutiklassi kaabliga võrku (kaablivõrk on stabiilsem kui WiFi järgnevates harjutustes). Laual olevad USB type-C kaablid mis ühenduvad monitori külge jagavad teile ka ethernet ühendust ("TPLINK USB adapter"). Alternatiivina töötavad ka kõik harjutused ükendudes klassi Wi-Fi võrku nimega
Andmeturve-2GHz
võiAndmeturve-5GHz
salasõnaLTAT.06.002
. - Kui te kasutate klassi võrku ühendamiseks
võrgukaablit
, siis valige vastava virtuaalmasina võrguseadete altAttached to: Bridged Adapter
ja ühendatud adptername
validaIntel Ethernet Connection
vms. - Kui kasutate klassi võrku ühendamiseks Wi-Fi'd, siis valige
Andmeturve Linux Mint
virtuaalmasina võrguseadete altAttached to: Bridged Adapter
ja valigeWi-Fi adapter
(näiteks IT akadeemia sülearvutite puhulIntel Dial Band Wireless
või "Broadcom 802.11n Network Adapter"). - Igaks juhuks genereerige oma virtuaalmasina võrgukaardile ka uus
MAC aadress
(Advanced
valikute all sinine ringikujuline noole kujutis). - NB! Osad viirusetõrje tarkvarad nagu nt
Symantec
, blokeerivad taustalbridge
ühendusi, seega probleemide vältimiseks on käesolevas praktikumis soovitatav viirusetõrje välja lülitada.
2. Installige virtuaalmasinasse telnet
ja ssh
server, mida meil hiljem testimiseks vaja läheb, ja xkey
kompileerimiseks vajalikud päised:
sudo apt update sudo apt install telnetd openssh-server build-essential libx11-dev libxt-dev
3. Looge oma virtuaalmasinasse uus kasutaja tudeng
parooliga 1234567890
, mida kasutame tänases praktikumis testimiseks:
sudo adduser tudeng
Kontrolli kas saad virtuaalmasinast Internetti ja paigaldatud ssh
-server töötab.
$ ping math.ut.ee $ ssh tudeng@localhost
Nüüd peaksite nägema kasutaja "tudeng" õigustes käsurida. Veendumiseks andke käsk who
, mis kuvab käsu andnud kasutaja kasutajanime. Sulgeme tehtud SSH-ühenduse käsuga exit
, et naasta tavakasutaja käsureale.
Kui teil on probleeme võrguühendusega siis võib aidata virtuaalmasinas võrgu seadeid uuendada käskudega:
$ sudo ifdown eth0 $ sudo ifup eth0
5.2 Ligipääs teise masinasse üle SSH
Kasutage SSH'd, et logida math.ut.ee
serverisse. Kasutage sisse logimiseks enda TÜ kasutajatunnust ja parooli (sama, millega ka nt ÕIS-i sisse logite).
$ ssh ÕIS-kasutajatunnus@math.ut.ee
Õnnestunud sisenemise järel sulgege ühendus (käsuga exit
).
Alati on tähtis olla tähelepanelik, millisesse arvutisse ning kellena olete sisse loginud (üldiselt näeb käsureaviidas @ märgi ees kasutajatunnust ja taga hostname).
Esimesel ühendamisel küsitakse kas soovite ühendatava arvuti fingerprint
(sõrmejälg) salvestada, et hiljem oleks võimalik tuvastada kui masina RSA-võtme sõrmejälg muutub nt keegi üritab vahendusrünnet ( man-in-the middle
) läbi viia (võimaldab varastada teie sisselogimisinfo). Salvestatud ssh-masinate infot hoitakse failis ~/.ssh/known_hosts
(käsureal "~
" tähendab kasutaja kodukataloogi, nt "/home/kasutaja/"):
$ cat ~/.ssh/known_hosts
Turvateadlik kasutaja loob esimese ühenduse SSH serveriga usaldusväärse võrguühendusega kohast, kus pole karta vahendusrünnet (selle käigus salvestab ka SSH-serveri sõrmejälje).
Kasutaja parooli asemel on võimalik sisse logimiseks kasutada ka avaliku võtme krüptograafial põhinevat lahendust. Avaliku võtme krüptograafias on kasutusel kaks võtit: avalik ja salajane võti. Need genereeritakse korraga ja nad on omavahel seotud. Oluline on, et avalikust võtmest ei saa praktikas tuletada salajast võtit. Täpsemalt räägime avaliku võtme krüptograafiast järgmistes praktikumides.
Järgnevate ülesannete jaoks läheb vaja avaliku võtme krüptograafial põhinevat autentimist. Genereerige enda arvutis enda kasutajale uus RSA-võtmepaar (selle käigus luuakse avalik ja salajane võti). Salajase võtme kaitsmiseks võib kasutada parooli, kuid käesoleva ülesande raames ärge seda lisage (reaalsetes olukordades kindlasti pange parool)!:
$ ssh-keygen -t rsa
NB: kasutage vaikimisi pakutud failinime!
Selleks, et niisugune autentimine toimiks peab usaldusväärse serveriga jagama enda avalikku võtit. Enda avalikku võtit saab teise masinasse kopeerida käsuga:
$ ssh-copy-id <username>@<server>
Näiteks
$ ssh-copy-id <username>@math.ut.ee
Kommentaar: Seda saab ka käsitsi teha, aga siis on vaja võtta oma masinast võtme avalik pool (cat ~/.ssh/id_rsa.pub
) ja lisada teise masina/teise kasutaja .ssh/authorized_keys
faili (võti on üks rida, ettevaatust nano
kasutajad, kasutage nano -w
reamurdmise vältimiseks!).
Proovime nüüd uuesti math.ut.ee serverisse sisse logida:
$ ssh <ut_login>@math.ut.ee
Kui endiselt küsitakse parooli on vaja korrigeerida teie kodukausta õigusi. Selleks sisestage math.ut.ee
serveris käsk
chmod go-w .
... ja proovige uuesti. Nüüd peaksite math.ut.ee serverisse ligi pääsema parooli sisestamata käsuga ssh <ut_login>@math.ut.ee
Serverisse salvestatud avalikke võtmeid hoitakse kasutaja kodukausta failis ~/.ssh/authorized_keys
mida näeb math.ut.ee
serveris sisestades käsu:
cat .ssh/authorized_keys
Praktikumi ülesanne 1 Tehke ekraanitõmmis, et saate math.ut.ee
serverisse ilma parooli sisestamata siseneda ja cat .ssh/authorized_keys
käsu väljund math.ut.ee serveris.
5.3 SSH-võtme varguse rünne
Privaatvõtmega autentimise korral on privaatvõti nagu teie parool, peate hoidma seda salajas ja kaitstud (parooliga kaitstud privaatvõtme kasutamist loetakse ka kahefaktoriliseks autentimiseks). Vaatame, mis juhtub olukorras kus ründaja saab juurdepääsu SSH salajasele võtmele. See on täiesti reaalne ründe olukord, sest sisevõrku tunginud ründaja võib saada juurdepääsu SSH salajasele võtmele. Olles teises masinas saate näha kes on sisse loginud käsuga who
või w -h
.
1. TÜ töötaja on töö-arvutis loonud käsuga ssh-keygen -t rsa
rsa-võtme millega ühendub eemal oleva pilve-masinasse. Nii ei pea töötaja iga kord sisestama enda kasutajatunnust ja parooli (eriti laialdaselt kasutuses masin-masin suhtluses autentimiseks).
2. Ründaja kopeerib ohvri (töötaja) arvutist võtme salajase poole (~/.ssh/id_rsa
, meie puhul Attach:officeVM-rsa ja Attach:officeVM-IPrsa) (aga ei kirjuta enda salajast võtit üle) ning arvab ära ka parooli (meie ülesandes "12345"). Parooli äraarvamine võib samuti olla reaalne juhul kui parool on nõrk või juhul kui ründaja saab paigaldada ohvri arvutisse nt keyloggeri.
%red& Lae alla failid Attach:officeVM-rsa ja Attach:officeVM-IPrsa courses serverist Linux Mint virtuaalmasinasse.
Pärast allalaadimist peame muutma failide õiguseid, et privaatvõti ei oleks teistele kasutajatele loetav:
$ chmod 700 Downloads/officeVM-rsa $ chmod 700 Downloads/officeVM-IPrsa
3. Ründaja kasutab kopeeritud salajast võtit ja logib serverisse:
$ ssh -i Downloads/officeVM-rsa tootaja@172.17.37.5
Küsitakse rsa võtme parooli, mis on meie puhul lihtne 12345
, kui võti oleks paroolita saaks ligi ilma parooli teadmata.
Praktikumi ülesanne 2 - Tehke ekraanivaade, kus te saate ssh -i officeVM-rsa tootaja@172.17.37.5
edukalt Delta-OfficeVM
nimelisse arvutisse sisse logida meie jagatud privaatse võtmega ning sisestada käsu cat .ssh/authorized_keys
.
4.Ründe vältimine: Ohver kirjutab serveri ~/.ssh/authorized_keys
faili võtme rea algusse (teie seda tegema ei pea ja õppejõud on selle 172.17.37.5 masinas teie eest teinud vaata eelmist pilti.): from="lubatud.masina.ip"
NB! See peab olema sama rea alguses, kus võti! Töötaja (õppejõud) on seda eelnevalt teinud võtmele officeVM-IPrsa
ning veenduge, et nüüd te enam arvutile ligi ei pääse.
$ ssh -i Downloads/officeVM-IPrsa tootaja@172.17.37.5
Küsitakse tootaja
kasutaja parooli, mida te ei tea. Paroolipõhist autentimist on võimalik ka ära keelata, kuid lihtsuse huvides me seda hetkel veel ei tee.
SSH-võtme parooli vahetamine või seadmine eeldab olemasoleva parooli teadmist:
$ ssh-keygen -p
Mida tuleb teha võtme kompromiteerumisel?
5.4 SSH X11 Forwarding
Üle SSH on võimalik ka graafilisi programme käivitada ning seda kutsutakse SSH X11 Forwarding. Demonstreerime SSH-agendi ohtusid (sihtmasina administraator saab seansile ligi). Selles ülesandes on kaks osapoolt: server ja klient. Tehke paaris ning leppige rollid omavahel kokku.
Server: kontrolli, et X11 edastamine on lubatud serveri konfiguratsioonis (/etc/ssh/sshd_config
on "X11Forwarding yes
", vaikimisi lubatud), vajadusel muuda ümber ja restardi SSH-server. Lihtsustame veidi tegevust lubades ühendused kõigilt klientidelt xhost +
$ sudo nano /etc/ssh/sshd_config $ sudo xhost +
Klient: Kui server on ettevalmistusega valmis saanud, siis logi sisse serverisse ja kontrolli, kas saad käivitada X-i rakendust, nt firefox
:
$ ssh -XY tudeng@serveri.IP.aadress firefox
(Eelmises käsus peaks serveri.IP.aadress
aadress olema näiteks 192.168.10.123 ehk 192.168.10.X alamvõrgust)
Server: tõmba programm xkey.txt (nimeta ümber xkey.c
), vajadusel installeeri build-essential
, libx11-dev
ja libxt-dev
paketid. Kompileeri programm:
$ gcc -o xkey xkey.c -L /usr/X11R6/lib/ -lX11 -lm $ sudo chmod a+x xkey
Tuvasta xauth list
käsuga millised MIT-MAGIC-COOKIE
ehk nn graafilise keskkonna autentimise info on aktiivne. Vaheta õigused root
kasutajaks sudo su -
, liigu kausta, kus sa ennist xkey programmi kompilerisid (näiteks cd ~
või cd /home/kasutaja
). Nüüd peame varastama X11 autentimise info (tokeni) käskudega XAUTHORITY=/home/tudeng/.Xauthority
, kus tudeng
on kasutaja kellena klient ssh-ühenduse autentis ja export XAUTHORITY
. xauth list
peaks nüüd kuvama uusi numbreid. Käivita programm ./xkey localhost:10.0
, DISPLAY
väärtuseks (10.0) sea see number, mida kasutatakse ssh-seansis:
$ sudo su - # cd /home/kasutaja # xauth list # XAUTHORITY=/home/tudeng/.Xauthority # export XAUTHORITY # xauth list # ./xkey localhost:10.0
Kui ühtegi veateadet ei tulnud peaks nüüd käsurida nn kinni jääma ja ootama millal klient infot saadab.
Klient: kasuta avanenud firefox
akent, külasta mõnda veebilehte näiteks http://andmeturve-lab.appspot.com/
. Sisesta mõned käsud, aga ole ettevaatlik, teid kuulatakse pealt!
Praktikumi ülesanne 3 - Tehke ekraanivaade terminali aknast, kus on näha ./xkey localhost:10.0
käsk ja kompromiteerunud väljund (tekst mida ohver sisestab firefox aknasse ja server pealtkuulab).
5.5 SSH õigetpidi edastamise ülesanne
Selles ülesandes on teil on vaja töötada jälle paarides arvuti_1 ja arvuti_2 ning õppejõud on teile ette valmistanud kolmanda masina IP-ga 172.17.37.5
kasutaja:tudeng
parool 1234567890
Loome uue SSH-tunneli masinasse arvuti_2 ning määrame võrguliikluse edasi suunamise tunneliga samas suunas. Tunneli alustanud arvutis suuname porti 2323 saabuva liikluse (läbi tunneli) ümber masinasse 172.17.37.5 porti 23:
$ ssh -L 2323:172.17.37.5:23 tudeng@arvuti_2
(asendage arvuti_2 reaalsete ip-aadressitega ja sisestage arvuti_2 parool). Nüüd teie virtuaalmasina teises terminali aknas jooksutage "telnet 127.0.0.1 2323
" sisestage 172.17.37.5 kasutajatunnus
(tudeng
) ja parool
(1234567890
). Mis masinasse telnet suunati? (hostname
, ip a
)
Sisestage kontrollimaks käsk who
kes kuhu on sisse loginud:
$ who
Praktikumi ülesanne 4 - Tehke ekraanivaade terminali aknast. Vajalik et oleks näha teie masina nimi
, telnet käsk
ning käsu who
väljund.
5.5 SSH-agendi kasutamine
Pidev parooli sisestamine privaatvõtme avamiseks on tülikas (tekib kiusatus panna lühike parool, muutub tõenäoliseks parooli pealtkuulamine/klaviatuurilt mahalugemine). Aegajalt on vaja avatud võti ette anda ka mõnele muule tarkvarale kasutamiseks. Uurime kas ssh-agent nimeline programm töötab (SSH_AGENT_PID
ja SSH_AGENT_SOCK
keskkonnamuutujad!):
$ env | grep SSH
(kui ei tööta, siis tehke exit
kuni olete oma masinas shellis, kus töötab). Masinates, kus ssh-agent ei tööta, tuleks see käivitada:
$ eval `ssh-agent`
Lisame oma võtme autentimisagendile (see hoiab lahtikrüpteeritud võtit mälus, kettale ei kirjuta, masinast välja ei anna). Kõik antud kasutaja protsessid saavad läbi UNIX socketi seda teenust kasutada:
$ ssh-add
Hetkel laaditud võtmeid saab vaadata:
$ ssh-add -l
Võtme eemaldamine agendist:
$ ssh-add -d /home/kasutaja/.ssh/id_rsa
Kõigi võtmete eemaldamine:
$ ssh-add -D
Pärast seda tehke uuesti ssh-add
, et võti järgmiste ülesannete tarvis mälus oleks:
$ ssh-add
5.6 SSH-agendi edasisuunamine (Agent forwarding)
Selles ülesandes on teil on vaja valida teise tudengi virtuaalmasin arvuti_2 ja õppejõu antud arvuti_3 (IP:172.17.37.5
kasutaja:tudeng
parool: 1234567890
Tekita vajalikud võtmete usaldused nii, et sinu masinast on võimalik mõlemasse masinasse sisse logida sinu võtit kasutades:
$ ssh-copy-id tudeng@arvuti_2 $ ssh-copy-id tudeng@172.17.37.5
NB! arvuti2 ei tohiks hetkel saada parooli sisestamata ühenduda arvutisse 3.
SSH-agenti on võimalik edasi suunata läbi mitme masina selleks, et vahendada autentimise teenust. Selle abil saab krüptograafilist võtit kasutada teistes serverites autentimiseks, ilma et seda peaks liigutama esialgsest masinast.
Logige sisse teise tudengi masinasse kasutades võtme autentimist ning lisades SSH-käsule agendi edasisuunamiseks lipp -A
:
$ ssh -A tudeng@arvuti_2
Nüüd uuri selles masinas kasutaja aktiivseid võtmeid:
$ ssh-add -l
arvuti_2 masinas peate nägema oma kohaliku masina võtit. Parandage, kui ei näe.
Nüüd peaks arvuti_1 kasutaja sisestama arvuti_2
SSH terminalis (avatud -A võtmega) ja edasi liikuma masinasse arvuti_3 (172.17.37.5
) ilma, et arvutis_2 oleks olemas tema privaatvõtit-
$ ssh tudeng@172.17.37.5
Keda huvitab, kuidas SSH-võtmetega autentimine ja SSH-agent tagaplaanil töötavad, võib lugeda seda illustratsioonidega artiklit: http://unixwiz.net/techtips/ssh-agent-forwarding.html
SSH Agent Forwarding korral on teoreetiliselt võimalik vahendajal mälust SSH privaatvõti välja lugeda, kuid 2019 a kevadest käesolev demo enam Andmeturve Linux Mint masinaga õnneks või kahjuks ei toimi https://blog.netspi.com/stealing-unencrypted-ssh-agent-keys-from-memory/
Boonus: Kui keegi saab SSH agendist privaatvõtme varastamise 2020 Linux Mint virtuaalmasinaga tööle palun saata lahendus alo.peets@ut.ee ja teenid boonuspunkte.
Praktikumi ülesanne 5 - Tehke ekraanivaade, kus arvuti_1 ssh
terminalis on näha ssh
sisselogimise käsud ssh -A tudeng@arvuti_2
ja ssh tudeng@172.17.37.5
. Jagage sama ekraanipilti grupiliikmete vahel.
Veel SSH võimalusi
SSH kaudu teises masinas programmide käivitamine (sisend/valjund on ümbersuunatavad!): enne katsetamist tekitage vastavad failid!:
$ ssh kasutaja@teinemasin "cat fail.tar | tar xf -" $ ssh kasutaja@teinemasin "tar cf - /mingi/kataloog | dd of=fail.tar" $ ssh root@teinemasin "find / -user root -perm +4000 -print0 | xargs -0 ls -l"
Lisaülesanne proovimiseks - failide kopeerimine
scp
- failide kopeerimine üle SSH-tunneli. Kuidas kopeerida faile oma masinast teise, teisest omale, kahe välise masina vahel?
sftp
- FTP alternatiivne protokoll. Olemas palju ilusaid graafilisi kliente. Tehke kindlaks, kas linuxi programmid Nautilus, Konquror oskavad sftp'd kasutada - vajadusel installeerige puuduv tarkvara!
Lisaülesanne proovimiseks - ProxyCommand
ProxyCommand'i kasutamine SSH Agendi või PortForwarding'u asemel
- Lugege lehekülge
- Konfigureerige OpenSSH ümber kasutama ProxyCommand'i nii, et ühte serverisse ühendades loodaks tunnel läbi kolmanda masina.
- Modifitseerida tuleb
~/.ssh/config
faili
- Modifitseerida tuleb
- Käsuga
who
saab kontrollida kust masinast on sisse tulev ssh-seanss pärit. - Praktiliselt on sellest kasu näiteks ülikooli serveritele ligi pääsemiseks, mis tavaliselt ei ole välisvõrgust otse kättesaadavad. Kasutada nt serverit math.ut.ee niiöelda väravana, kuna see on välisvõrgust kättesaadav.
Tagasiside
Praktikumi lõpus palume anda tagasisidet, sest see võimaldab meil antud praktikumi ja ka järgmisi praktikume paremaks muuta. Tagasiside on anonüümne ja tagasiside vormi leiate järgneva lingi abil: tagasiside ankeet.
Praktikumi ülesanded
Praktikumi ülesannete lahendamine annab ühe punkti. Praktikumi ülesanne võiks valmis saada praktikumi lõpuks, aga juhul kui see ei õnnestu, siis on võimalik lahendust esitada tähtajani 18. märts.
Antud praktikumi eest on võimalik saada maksimaalsed punktid ainult siis kui te osalesite praktikumis. Seda praktikumi on tülikas iseseisvalt läbi teha.
- Ülesanne: Praktikumi arvestuse saamiseks tuleb esitada viie (5) praktikumiarvestuse ülesande ekraanipildid. Iga grupiliige võib esitada enda pildid, kuid sellisel juhul peate ära märkima kes teie grupi liikmed olid). Pakkige need pildid kokku faili ning laadige praktikumi lahendusena üles.
Lahendusi võtame vastu järgmistes failiformaatides: .zip, .pdf.
5. Praktikum 5 - SSH turvalisusKodune ülesanne
Koduse ülesande lahendamine annab ühe punkti. Lahenduse esitamiseks on aega järgmise nädala kolmapäeva õhtuni (23:59). Koduse ülesande lahendus tuleb esitada aine kodulehelt. Küsimustele vastuste leidmiseks võib vaja minna lisamaterjalide, mille leiate allpool olevatest viidetest.
Kõigepealt peate oma Linux Mint virtuaalmasina võrguseadistuse tüübiks tagasi seadistama NAT
(praktikumis seadistasime bridge
mis teatud võrguühendustega ei tööta).
SSH ja port forwarding näide
SSH'd saab kasutada võrgu liikluse ümber suunamiseks, läbi krüpteeritud SSH-tunnelite, kasutades portide edastamist. Kahe arvuti vahel luuakse SSH-tunnel ning ühe arvuti porti saabuv liiklus suunatakse ümber teise masina porti läbi SSH-tunneli.
Portide edastamise kohta saab rohkem lugeda siit: SSH/OpenSSH/PortForwarding ja siit: Bypassing corporate firewall with reverse ssh port forwarding.
Läbi tunneli on võimalik suunata võrguliiklus kas samas suunas tunneli loomise suunaga, või siis vastupidises suunas:
LPF ja RPF Demo
Et paremini mõista LPF (Local Port Forwarding) ja RPF (Remote Port Forwarding) erinevust ka on juhendajad teile üles seadnud 2 illustreerivat näidet.
Kõigepealt peate oma Linux Mint virtuaalmasina võrguseadistuse tüübiks tagasi seadistama NAT
(praktikumis seadistasime bridge
mis teatud võrguühendustega ei tööta). Mõlema lahenduse jaoks peaksite olema väljaspool TÜ sisevõrku ehk kasutama ut-public
nimelist Wi-Fi võrku ja kasutama Linux käsurida (soovitavalt praktikumi Mint virtuaalmasin).
- TÜ tööarvutisse sisselogimine (tegu on andmeturve õppejõu tööarvutiga J. Liivi 2 ruumis 306)
- Avage Linuxi käsurida ja sisestage käsk
ssh -L 2323:172.17.37.5:22 <ut_login>@math.ut.ee
, kus<ut_login>
asendage oma TÜ kasutajatunnusega ja pärast käsu sisestamist küsitakse teie ÕISi parooli (sisestage see). - Avage teine Linux virtuaalmasina käsurida paralleelselt ja sisestage käsk
ssh -p 2323 tudeng@localhost
- Teilt küsitakse
tudeng
kasutaja parooli, milleks on1234567890
- Kontrollige, milline on teie sisselogitud arvuti IP
ip addr l eth0
ja arvuti nimihostname
- Kontrollige
mtr
käsuga, et olete TÜ sise-võrgusmtr -b 8.8.8.8
- Eelnev lahendus on sama väärne kui logiksite ssh-ga või VPN-iga TÜ avalikku serverisse ja siis sealt omakorda "tööarvutisse"
- Linux käsurealt sisestage
ssh <ut_login>@math.ut.ee
, kus <ut_login> teie TÜ kasutajatunnus ja kui küsitage sisestage enda TÜ ÕISi parool. - math.ut.ee serveri käsurealt sisestage
ssh tudeng@172.17.37.5
- kontrollige
mtr
jahostname
käsuga, et tegu on sama arvutiga
- Avage Linuxi käsurida ja sisestage käsk
- Andmeturve arvutiklassi arvutisse sisse logimine (J. Liivi 2-123 arvutiklassi arvuti)
- Linux käsurealt sisestage
ssh <ut_login>@math.ut.ee
, kus <ut_login> teie TÜ kasutajatunnus ja kui küsitage sisestage enda TÜ ÕISi parool. - Vaatame
math.ut.ee
serveris aktiivseid kuulavaid portenetstat -tln
- math.ut.ee serveri käsurealt sisestage
ssh -p 2003 tudeng@localhost
- Kontrollige, milline on teie sisselogitud arvuti IP
ip addr l eth0
ja arvuti nimihostname
- Kontrollige
mtr
käsuga, et olete Delta 2003 arvutiklassi võrgusmtr -b 1.1.1.1
(esimene rida peaks olema192.168.10.1)
- Linux käsurealt sisestage
SSH tagurpidi edastamine ülesanne
Teie eesmärgiks on ligi pääseda oma Andmeturve virtuaalmasinasse
kasutades SSH-ühendust. Selleks suuname nüüd liikluse läbi SSH-tunneli, sellele vastupidises suunas. Vaikimisi seda teha ei saa, sest teie Andmeturve Mint virtuaalmasin on enamasti vähemalt 2 erineva tulemüüri taga (NAT käitub tulemüürina). Küll aga enamik tulemüüre lubavad nö vastuspaketid seest alustatud ühendustele, sama kehtib meie NAT ruuteritega. Ühenduse loomiseks on vaja mingisugust "avalikku" serverit (mõlemale ligipääsetavat).
Tunneli sihtpunktiks olevas arvutis (math.ut.ee
) suunatakse lokaalsesse porti (23XXX) saabuv liiklus ümber tunneli allika arvuti porti (22). Pordinumbriks valige oma arvuti 23XXX, kus XXX asendada vabalt valitud kolmekohalise numbriga ja enda masin olgu teie enda virtuaalmasina IP (näeb käsuga ip a
). Seda milline pordinumber on vaba saab vaadata math.ut.ee
serveris käsuga netstat -tln
$ ssh -R pordinumber:endamasin:22 <username>@math.ut.ee
Nüüd on teil suvalisest masinast juurdepääs enda virtuaalmasinasse. Selleks tuleb kõigepealt teha ssh-ühendus serverisse math.ut.ee. Selle illustreerimiseks minimaliseerige virtuaalmasina aken ning host-masinast (mitte virtuaalmasinast) avage ssh-seanss serverisse math.ut.ee
. Juhul kui teie host masinas jookseb Windows, siis saab ssh jaoks kasutada programmi PuTTy
. Host Name (or IP address)
väljale kirjutage math.ut.ee
, port
väljale 22
ning vajutage OK
. Sisestage TÜ kasutatunnus ja parool. Kui olete math.ut.ee
-s (vaikimisi IPv6!), siis sisestage järgnev käsk:
$ ssh kasutaja@localhost -p 23XXX $ who
Koduse ülesande arvestus - Tehke ekraanivaade terminali aknast. Vajalik et oleks näha teie masina nimi
, ssh käsk math.ut.ee serveris
ning who
käsu väljund
Juhul kui lahendus on ainult teksti kujul, siis saate lisada selle kommentaarina. Sellisel juhul on lahenduse esitamiseks vaja lisada tühi fail, sest antud vorm nõuab lahenduse esitamisel faili esitamist. Lahendusi võtame vastu järgmistes failiformaatides: .txt, .pdf, .zip, .rar jne.
20. Kodune ülesanne 5 - SSH LPF & RPFKasulikud viited
- SSH Agent Forwarding ja sellega seotud probleemid
- SSH Port Forwarding
- ProxyCommand