Praktikum 7 - 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) ja kasutaja vastu (e-mail). Käesolevas ja mitmes järgnevas praktikumis vaatame, kuidas üle võrguühenduse (Interneti) ohvri arvutisse pääseda.
SSH on võrguprotokoll arvutite vaheliste krüpteeritud tunnelite loomiseks. Üks selle peamisi kasutusalasid on üle võrgu teistesse arvutitesse sisse logimine ning peamiselt Linux operatsioonisüsteemiga arvutite (serverite) kaughaldamine. Selles praktikumis vaatame missuguseid turvaaspekte tuleb meeles pidada SSH kasutamisel ning mängime läbi mõned ründestsenaariumid. 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 kasutada olevas Mint 21.1-s võib kasutada ka käsku sudo hostnamectl set-hostname perenimi
, pärast mida on vaja terminal taaskäivitada muudatuse nägemiseks. Teil peaks olema juba hostname
muudetud praktikum 1 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.
NB! Palun keelake ajutiselt oma arvutites viirusetõrje tarkvarad (antivirus software) nagu Symantec, NOD32 jne. Osad agressiivsed viirusetõrje tarkvarad blokeerivad virtuaalmasina ssh
ühendusi. Windowsi sisseehitatud
antiviirusega probleeme pole ja seda keelata ei ole vaja.
0. Praktikumi järgnevate tegevuste ettevalmistus
1. 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
2. Looge oma virtuaalmasinasse uus kasutaja tudeng
parooliga 1234567890
, mida kasutame tänases praktikumis testimiseks:
sudo adduser tudeng
3. Kontrolli, kas saad virtuaalmasinast Internetti ja paigaldatud ssh
-server töötab.
$ ping google.ee $ ssh tudeng@localhost
4. Nüüd peaksite nägema kasutaja "tudeng" õigustes käsurida. Veendumiseks andke käsk whoami
, mis kuvab käsu andnud kasutaja kasutajanime. Sulgeme tehtud SSH-ühenduse käsuga exit
, et naasta tavakasutaja käsureale.
1. Ligipääs teise masinasse üle SSH
Kasutage SSH'd, et logida adalberg.ut.ee
serverisse. Kasutage sisse logimiseks enda TÜ kasutajatunnust ja parooli (sama, millega ka nt ÕIS-i sisse logite). Väljaspool klassiruumi (TÜ sisevõrku) on vajalik aktiveerida VPN ühendus TÜ sisevõrguga, sest adalberg.ut.ee
on ligipääsetav ainult TÜ sisevõrgust.
$ ssh TÜkasutaja@adalberg.ut.ee
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).
Õnnestunud sisenemise järel sulgege ühendus (käsuga exit
).
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.
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 pange kindlasti 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 adalberg serveri puhul oleks käsk
$ ssh-copy-id TÜkasutaja@adalberg.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 adalberg.ut.ee serverisse sisse logida:
$ ssh TÜkasutaja@adalberg.ut.ee
Kui endiselt küsitakse parooli, on vaja korrigeerida teie kodukausta õigusi. Selleks sisestage adalberg.ut.ee
serveris käsk:
chmod go-w .
Proovige uuesti. Nüüd peaksite adalberg.ut.ee serverisse ligi pääsema parooli sisestamata käsuga ssh TÜkasutaja@adalberg.ut.ee
Serverisse salvestatud avalikke võtmeid hoitakse kasutaja kodukausta failis ~/.ssh/authorized_keys
mida näeb adalberg.ut.ee
serveris sisestades käsu:
cat .ssh/authorized_keys
- Ülesanne 1: Tehke ekraanitõmmis, et saate
adalberg.ut.ee
serverisse ilma parooli sisestamata siseneda jacat .ssh/authorized_keys
käsu väljundadalberg.ut.ee
serveris.
2. 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 distantsilt töötades enda töö arvutisse. 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 ka ära 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. Lihtsuse huvides (ja et jääks logi maha), teeme järgmist rünnet adalberg.ut.ee serverist. Pärast allalaadimist peame muutma failide õiguseid, et privaatvõti ei oleks teistele kasutajatele loetav:
$ ssh TÜkasutaja@adalberg.ut.ee $ curl --output officeVM-rsa "https://courses.cs.ut.ee/2024/turve/spring/Main/Praktikum7?action=download&upname=officeVM-rsa" $ curl --output officeVM-IPrsa "https://courses.cs.ut.ee/2024/turve/spring/Main/Praktikum7?action=download&upname=officeVM-IPrsa" $ chmod 700 officeVM-rsa $ chmod 700 officeVM-IPrsa
3. Ründaja kasutab kopeeritud salajast võtit ja logib serverisse:
$ ssh -i officeVM-rsa tootaja@172.17.36.109
Küsitakse rsa võtme parooli, mis on meie puhul lihtne 12345
. Kui võti oleks paroolita, saaks ligi ilma parooli teadmata.
- Ülesanne 2: - Tehke ekraanivaade, kus te saate
ssh -i officeVM-rsa tootaja@172.17.36.109
edukaltDelta-OfficeVM
nimelisse arvutisse sisse logida meie jagatud privaatse võtmega ning sisestate käsucat .ssh/authorized_keys
.
4. Ründe vältimine: Ohver kirjutab serveri ~/.ssh/authorized_keys
faili võtme rea algusse IP-aadressi from="lubatud.masina.ip"
, ainult millelt on ligipääs lubatud. (Teie seda tegema ei pea ja õppejõud on selle 172.17.36.109 masinas teie eest teinud - vaata eelmist pilti.):
NB! See peab olema sama rea alguses, kus võti! Töötaja (õppejõud) on seda eelnevalt teinud võtmele officeVM-IPrsa
. Veenduge, et te enam arvutile ligi ei pääse. Järgnev käsk sisestada adalberg.ut.ee
serveris.
$ ssh -i officeVM-IPrsa tootaja@172.17.36.109
Antakse teade Permission denied (publickey)
, mis tähendab seda, et SSH server vastab viisakalt, et lubatakse ainult sertifikaadiga autentimist.
SSH-võtme parooli vahetamine või seadmine eeldab olemasoleva parooli teadmist:
$ ssh-keygen -p -f officeVM-IPrsa
Võtme kompromiteerumisel tuleks eemaldada vastavad kirjed ~/.ssh/authorized_keys
failist ja veenduda, et pahalane pole jätnud masinasse muid tagauksi või pahavara (pole alati kerge selles veenduda). Osad ütlevad, et ka juba kompromiteerunud arvutit ei saa enam usaldada ja soovitavad selle uuesti installeerida ja seadistada.
3. 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 nii samas suunas tunneli loomise suunaga kui ka vastupidises suunas:
3.1 LPF ja RPF Demo
Et paremini mõista LPF (Local Port Forwarding) ja RPF (Remote Port Forwarding) erinevust, on juhendajad teile üles seadnud 2 illustreerivat näidet. Esimese näitena vaatame olukorda, kus meil oleks vaja ligi pääseda TÜ tööarvutile (mis vaikimisi ei ole otse Internetist ligipääsetav) ja teise näitena vaatame, kuidas saab tekitada tulemüüri nn tagauksi.
- TÜ tööarvutisse sisselogimine (tegu on andmeturve õppejõu tööarvutiga Delta ruumis 3033)
- Avage Linux Mint käsurida ja sisestage käsk
ssh -L 3033:172.17.36.109:22 TÜkasutaja@adalberg.ut.ee
, kusTÜkasutaja
asendage oma TÜ kasutajatunnusega ja pärast käsu sisestamist peaks avanemaadalberg.ut.ee
käsurida. NB! Kui teil oli probleem esimese ülesande ja sertifikaadiga adalberg.ut.ee serverisse logimisega siis võib eelnev käsk küsida ka teie adalberg.ut.ee parooli (sisestage see). - Avage uus Linux Mint virtuaalmasina käsurida paralleelselt ja sisestage käsk
ssh -p 3033 tudeng@localhost
. - Esimesel korral võib vaja olla nõustuda uue
fingerprint
ehk nö masina tuvastuse räsiga. Trükkigeyes
jaENTER
. - 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
. - Ülesanne 3: - Tehke ekraanivaade, kus käsuga
ssh -p 3033 tudeng@localhost
saate sisse logidaDelta-OfficeVM
virtuaalmasinasse jaDelta-OfficeVM
virtuaalmasina terminaliswho
käsu väljundist. - Katkestage SSH ühendus nii
adalberg.ut.ee
serveriga kuiDelta-OfficeVM
virtuaalmasinaga kasutades käskuexit
.
- Avage Linux Mint käsurida ja sisestage käsk
- 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 TÜkasutaja@adalberg.ut.ee
, kus TÜkasutaja on teie TÜ kasutajatunnus ja kui küsitakse sisestage enda TÜ ÕISi parool. adalberg.ut.ee
serveri käsurealt sisestagessh tudeng@172.17.36.109
.- Kontrollige
mtr
jahostname
käsuga, et tegu on sama arvutiga.
- Linux käsurealt sisestage
4. 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 läbi piiranguteta nö vastuspaketid seest alustatud ühendustele, sama kehtib meie NAT ruuteritega. Ühenduse loomiseks on vaja mingisugust "avalikku" serverit (mõlemale ligipääsetavat). Vaatame esmalt õppejõu üles seadistatud näidet:
- Andmeturve arvutiklassi arvutisse sisse logimise näide (Delta 2003 arvutiklassi demo-arvuti):
- Linux Mint käsurealt sisestage
ssh TÜkasutaja@adalberg.ut.ee
, kus TÜkasutaja on teie TÜ kasutajatunnus ja kui küsitakse, sisestage enda TÜ ÕISi parool. - Vaatame
adalberg.ut.ee
serveris aktiivseid kuulavaid portenetstat -tln
. adalberg.ut.ee
serveri käsurealt sisestagessh -p 2003 tudeng@localhost
ja parool on1234567890
.- 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 8.8.8.8
(teine rida peaks olema192.168.10.1)
.
- Linux Mint käsurealt sisestage
exit
(lab-VM),exit
(adalberg.ut.ee).
Tunneli sihtpunktiks olevas arvutis (adalberg.ut.ee
) suunatakse lokaalsesse porti (23XXX) saabuv liiklus ümber tunneli allika arvuti porti (22). Pordinumbriks valige oma arvutis 23XXX, kus XXX asendada enda matrikli viimase 3 numbriga
ja enda masin olgu teie enda virtuaalmasina IP (näeb käsuga ip a
). Seda, milline pordinumber on vaba, saab vaadata adalberg.ut.ee
serveris käsuga netstat -tln
. Sisestage järgnev käsk ning proovige saada adalberg.ut.ee
vahendusel ligipääs oma Mint virtuaalmasinale.
$ ssh -R pordinumber:endamasin:22 TÜkasutaja@adalberg.ut.ee
Nüüd on teil suvalisest masinast juurdepääs enda virtuaalmasinasse. Selleks tuleb kõigepealt teha ssh-ühendus serverisse adalberg.ut.ee
. Ligipääsemise illustreerimiseks minimaliseerige virtuaalmasina aken ning host
-masinast (mitte virtuaalmasinast) avage ssh-seanss serverisse adalberg.ut.ee
. Juhul kui teie host masinas jookseb Windows, siis saab ssh jaoks kasutada programmi PuTTy
. Host Name (or IP address)
väljale kirjutage adalberg.ut.ee
, port
väljale 22
ning vajutage OK
. Sisestage TÜ kasutajatunnus ja parool. Kui olete adalberg.ut.ee
-s (vaikimisi IPv6!), siis sisestage järgnev käsk:
$ ssh kasutaja@localhost -p 23XXX $ who
NB! Te sisenete enda Andmeturve Mint masinasse, mille vaikeparool on isherenow
. Juhul kui te vahetasite parooli ära siis sisestage muudetud Mint arvuti parool.
Ülesanne 4: Tehke ekraanivaade terminali aknast. Vajalik on, et oleks näha ssh käsk adalberg.ut.ee serveris
, teie masina nimi
, ning who
käsu väljund.
5. SSH X11 Forwarding
Ühendage enda virtuaalmasin privaatsesse võrku. Selleks peab virtuaalmasina võrguadapteri tüübiks olema bridged adapter
(vaikimisi on "NAT"). bridge
ühendus töötab ainult WiFi personal
tüüpi wifidega, mitte WiFi enterprise
nagu ühiselamute eduroam
ja muud asutuste suuremad võrgud. Alternatiivina soovitame kasutada mobiiltelefoni hotspot
ehk kohtvõrgu loomise võimekust või kaablivõrku.
- Lülitage enda Andmeturve Linux mint virtuaalmasin välja -
power off
. - Kui te kasutate klassi võrku ühendamiseks
võrgukaablit
, siis valige vastava virtuaalmasina võrguseadete altAttached to: Bridged Adapter
ja ühendatud adaptername
validaIntel Ethernet Connection
vms. - Kui kasutate võrku ühendamiseks Wi-Fi't, siis valige
Andmeturve Linux Mint
virtuaalmasina võrguseadete altAttached to: Bridged Adapter
ja valigeWi-Fi adapter
(näiteksIntel(R) WiFi 6 AX201 160MHz
,Broadcom 802.11n Network Adapter
,Intel Dual Band Wireless
jne).- Delta arvutiklassis 2003 on
bridge
ühendust toetav wifi võrgudAndmeturve-2GHz
jaAndmeturve-5GHz
(Vastavalt 2 ja 5 GHz sagedused) ning parooliks aine koodLTAT.06.002
- Delta arvutiklassis 2003 on
- 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
,Eset NOD32
, blokeerivad taustalbridge
ühendusi, seega probleemide vältimiseks on käesolevas praktikumis soovitatav viirusetõrje välja lülitada. Microsofti vaikimisi viirusetõrjeDefender
ei valmista probleeme ja variant on ka, et lülitate viirusetõrje välja alles probleemide tekkimisel.
Praktikumi järgmiste harjutuste sooritamiseks on teil vaja kloonida enda virtuaalmasinaid, et saaksime paremini tulemüüri seadistamist testida (arvutiklassis võite harjutust teha ka paaris). VirtualBoxis valige parem klahviga Andmeturve
virtuaalmasinal clone
-> Linked Clone
ja Generate new MAC addresses for all network adapters
-> Clone
).
Kui teie füüsilises arvutis on piiratud koguses muutmälu RAM
(4 GB või vähem), andke Linux Mint virtuaalmasinale vähem mälu (näiteks 1 GB) ja sulgege füüsilises arvutis kõik üleliigsed programmid ning teenused. Nüüd käivitage mõlemad Andmeturve virtuaalmasinad - edaspidi viidatud kui Server
, Andmeturve virtuaalmasin
või põhi masin
ja Andmeturve kloon
või lihtsalt kloon
, klient
.
Selleks, et tegevused arusaadavamad oleks, muutke ära kloonis
hostname kujule perenimi-kloon
ja muutke ära hostinimi ka hosts
failis.
sudo hostnamectl set-hostname perenimi-kloon sudo nano /etc/hosts
Selgitage välja (ja jätke meelde) oma arvuti IP-aadress (peaksite olema lokaalses võrgus: näiteks 192.168.0.1/24). Eelmises kirjapildis /24
näitab võrgumaski, mis pikalt välja kirjutatult on 255.255.255.0
.
ip addr ls
Kui teil on probleeme võrguühendusega siis võib aidata virtuaalmasinas võrguteenusele taaskävitus (uuendab IP-aadressi):
$ sudo systemctl restart NetworkManager
Üle SSH on võimalik ka graafilisi programme käivitada. Seda kutsutakse SSH X11 Forwarding. Demonstreerime SSH-agendi ohtusid (sihtmasina administraator saab seansile ligi). Selles ülesandes on kaks osapoolt: server
(originaalne andmeturve Mint) ja klient
(Kloon).
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 +
5.2 Proovime nüüd serverist tegevusi pealt kuulata
PS! Kui teil tekib mure järgneva ülesande lahendamisega (veateated) siis proovige käske uuesti sisestada siit alates.
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
Jäta kloonis avanenud Firefox aken avatuks (ära sulge seda). Eelmises käsus peaks serveri.IP.aadress
(Andmeturve Mint virtuaalmasin) aadress olema näiteks 192.168.1.123. Kui teil on IP-aadress 10.0.2.15, siis kasutate endiselt NAT, millega käesolev näide ei tööta. Kui on 127.0.0.1 ehk localhost aadress, siis saab seda kasutada ainult virtuaalmasina piires. Samuti on seadistus vale kui teie IP-aadressi kaks esimest oktetti on 169.254, mida kutsutakse autoconfiguration aadressiks ehk virtuaalmasin ei saa DHCP-st IP-aadressi ning enamasti on viga bridge ühenuse seadistuses (vale adapter, pärast muutmist tee võrguadapterile taaskäivitusssh -XY tudeng@serveri.IP.aadress firefox
).
DEBUG: Kui eelnev ssh käsk jääb hanguma (ei loo ühendust), kontrollige täiendvaalt, et Mint virtuaalmasinate
tulemüür ei oleks aktiivne.
Server: Tõmba programm xkey.txt (nimeta ümber xkey.c
), vajadusel installeeri build-essential
, libx11-dev
ja libxt-dev
paketid. Kompileeri programm:
$ mv xkey.txt xkey.c $ 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
(nn graafilise keskkonna autentimise info) on aktiivsed. Vaheta õigused root
kasutajaks sudo su -
, liigu kausta, kus sa ennist xkey programmi kompileerisid (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 #See käsk annab esimesel käivitusel teate "xauth: file /root/.Xauthority does not exist", mis ok ja ei pea muretsema. # 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 ja külasta mõnda veebilehte, näiteks http://andmeturve-lab.appspot.com/
. Sisesta enda nimi kuhugi tekstiaknasse, aga ole ettevaatlik, teid kuulatakse pealt!
- Ülesanne 5: Tehke ekraanivaade terminali aknast, kus on näha
./xkey localhost:10.0
käsk ja kompromiteerunud väljundis (tekst mida ohver sisestab Firefox aknasse kloonis ja server pealt kuulab)teie nimi
.
6. 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). Aeg-ajalt 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
6.1 SSH-agendi edasisuunamine (Agent forwarding)
Selles ülesandes on teil on vaja kasutada eelmises punktis kasutatud Kloon
virtuaalmasinat (edaspidi Kloon) ja õppejõu antud arvuti_3 (IP:adalberg.ut.ee
kasutaja: TÜ-kasutajatunnus, privaatne parool)
Tekita vajalikud võtmete usaldused nii, et sinu masinast on võimalik mõlemasse masinasse sisse logida sinu võtit kasutades (käsud sisestada enda peamises Mint virtuaalmasinas):
$ ssh-copy-id tudeng@kloon-IP $ ssh-copy-id TÜkasutaja@adalberg.ut.ee
NB! Kloon ei tohiks hetkel saada parooli sisestamata ühenduda arvutisse 3. Selleks sisestame Mint-kloonis järgmised käsud:
$ rm .ssh/id* $ exit Ava terminal uuesti $ ssh TÜkasutaja@adalberg.ut.ee
Viimane käsk peaks küsima sinu ÕIS parooli (pole vaja sisestada - katkestage CTRL+C klahviga) ehk kloonis ei ole privaatvõtit enam adalberg.ut.ee
serverisse sertifikaadiga sisse logimiseks.
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 enda peamisest Mint virtuaalmasinast klooni masinasse, kasutades võtme autentimist ning lisades SSH-käsule agendi edasisuunamiseks lipp -A
:
$ ssh -A tudeng@kloon-IP
Eelmise käsu tulemusena on käsurida nüüd klooni masinas, kus saate kontrollida tudeng
kasutaja aktiivseid võtmeid:
$ ssh-add -l
ssh -A ...
võtmega Kloon masina käsureal peate nägema oma peamise masina võtit. Parandage, kui ei näe.
Nüüd peaks Andmeturve virtuaalmasinas
kasutaja sisestama Kloon virtuaalmasina
SSH terminalis (avatud -A võtmega) järgneva käsu ja edasi liikuma masinasse arvutisse 3 ehk (adalberg.ut.ee
) ilma, et kloonis oleks olemas tema privaatvõtit:
$ ssh TÜkasutaja@adalberg.ut.ee
Peaksite adalberg.ut.ee masinasse saama ilma parooli sisestamata, sest kloonis on ajutiselt agendi vahendusel teie privaatvõti aga mitte püsivalt (st ka root
ei saa praktikas privaatvõtit mälust välja lugeda).
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 2023 Linux Mint virtuaalmasinaga tööle, palun saata lahendus alo.peets@ut.ee ja teenid boonuspunkte.
- Ülesanne 6: - Tehke ekraanivaade, kus Andmeturve Linux Mint virtuaalmasina terminalis on näha
ssh
sisselogimise käsudssh -A tudeng@kloon-IP
jassh TÜkasutaja@adalberg.ut.ee
. Pildil ei tohi kumbki käsk küsida paroolissh
käsuga teise masinasse sisenemiseks (sertifikaadi võtme küsimine on OK).
Lisainfo 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!
Lisainfo 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 adalberg.ut.ee niiöelda väravana, kuna see on välisvõrgust kättesaadav.
Esitada Praktikum7:
Praktikumi ülesannete lahendamine annab neli punkti ja esitamiseks on kaks nädalat alates praktikumi toimumisajast (praktikumi tähtaeg on vahemikus 8-11. aprill).
- Ülesanne 1: Tehke ekraanitõmmis, et saate
adalberg.ut.ee
serverisse ilma parooli sisestamata siseneda jacat .ssh/authorized_keys
käsu väljundadalberg.ut.ee
serveris. - 0.5p - Ülesanne 2: Tehke ekraanivaade, kus te saate
ssh -i officeVM-rsa tootaja@172.17.36.109
edukaltDelta-OfficeVM
nimelisse arvutisse sisse logida meie jagatud privaatse võtmega ning sisestada käsucat .ssh/authorized_keys
. - 0.5p - Ülesanne 3: -
LPF
- Tehke ekraanivaade, kus käsugassh -p 3033 tudeng@localhost
saate sisse logidaDelta-OfficeVM
virtuaalmasinasse jaDelta-OfficeVM
virtuaalmasina terminaliswho
käsu väljundist. - 0.5p - Ülesanne 4: -
RPF
- Tehke ekraanivaade terminali aknast. Vajalik on, et oleks nähassh käsk adalberg.ut.ee serveris
,teie masina nimi
, ningwho
käsu väljund. - 1p - Ülesanne 5: Tehke ekraanivaade terminali aknast, kus on näha
./xkey localhost:10.0
käsk ja kompromiteerunud väljundisteie nimi
(tekst, mida ohver sisestab Firefox aknasse kloonis ja server pealt kuulab). - 1p - Ülesanne 6: Tehke ekraanivaade, kus Andmeturve Linux Mint virtuaalmasina terminalis on näha
ssh
sisselogimise käsudssh -A tudeng@kloon-IP
jassh TÜkasutaja@adalberg.ut.ee
. - 0.5p
Esitada aine moodle keskkonda. Otselink: https://moodle.ut.ee/mod/assign/view.php?id=1269631
Kasulikud viited
- SSH Agent Forwarding ja sellega seotud probleemid
- SSH Port Forwarding
- ProxyCommand