OpenSSH: turvamise meetodid: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Itamm (talk | contribs)
New page: ==Sissejuhatus== Teemaks mõned OpenSSH turvalisuse tõstmise meetodid. == Lehest == Leht valmib hiljemalt mai alguseks. Senikaua võib lugeda lehte [[OpenSSH:_v%C3%B5tmetega_autentimine]...
 
Itamm (talk | contribs)
No edit summary
 
(4 intermediate revisions by the same user not shown)
Line 1: Line 1:
==Sissejuhatus==
==Info==
Teemaks mõned OpenSSH turvalisuse tõstmise meetodid.
Lehel on välja toodud oluliste [http://en.wikipedia.org/wiki/OpenSSH OpenSSH] seadistusfailide asukohad ning valik OpenSSH turvalisuse tõstmise meetodeid. Testsüsteemiks kasutati Ubuntu 10.04-ja, millede peal prooviti enamus meetodeid läbi. Meetodid on jaotatud kolme kategooriasse: [[#Turvalisuse eeldused]], [[#Lihtsamad turvamise meetodid]], [[#Keerulisemad turvamise meetodid]]. [[#Kasulikke viiteid]] alt võib leida turvamise meetodeid, mida otseselt siin artiklis ei kajastata.


== Lehest ==
==OpenSSH vaikimisi seadistusfailid ja SSH port==
Leht valmib hiljemalt mai alguseks. Senikaua võib lugeda lehte [[OpenSSH:_v%C3%B5tmetega_autentimine]]. Samuti tasub kontrollida, kas kasutatakse OpenSSH serveri ja kliendi uusimaid versioone (tõenäoliselt on uusim versioon turvalisim). Linuxi terminalis on abiks käsud:


{|style="background:black;width:600px;color:white;margin:7px;border:1px dotted" align=centre
* '''/etc/ssh/sshd_config''' OpenSSH serveri seadistuste fail.
| style="padding-left:7px;font-family:courier;font-weight:bold;" |$ sudo apt-get update
* '''/etc/ssh/ssh_config''' OpenSSH kliendi seadistuste fail.
|-
* '''~/.ssh/''' Kasutaja ssh seadistuste kaust.
| style="padding-left:7px;font-family:courier;font-weight:bold;" |$ apt-cache policy openssh-server openssh-client
* '''~/.ssh/authorized_keys''' või '''~/.ssh/authorized_keys''' Loend avalikest võtmetest ([http://en.wikipedia.org/wiki/RSA RSA] või [http://en.wikipedia.org/wiki/Digital_Signature_Algorithm DSA]) mille abil saab kasutaja kontole sisse logida.
|}
* '''/etc/nologin''' Kui see fail on olemas, keeldub '''sshd''' kõigil peale juurkasutaja sisse logida.
* '''/etc/hosts.allow ning /etc/hosts.deny''' Sisaldavad [http://itso.iu.edu/TCP_Wrappers TCP-Wrappers] poolt nõutavaid pääsupiiramisloendeid.
* SSH vaikimisi port: '''TCP 22'''


==Autor==
Uute seadistuste rakendamiseks peab sshd serveri taaskäivitama.
<pre>sudo /etc/init.d/ssh restart</pre>
 
==Turvalisuse eeldused==
 
===Operatsioonisüsteem ja OpenSSH on uuendatud===
 
Soovitav on kasutada regulaarselt vahendeid nagu ''yum'', ''apt-get'', ''freebsd-update'' jms, et tagada süsteemile ja selle programmidele (turva)uuenduste olemasolu.
*Ubuntus on abiks järgnev käsukombinatsioon: '''sudo apt-get update''' (''- hangib tarkvarateekidest uusimate versioonide info'') ja sellele järgnev '''sudo apt-get dist-upgrade''' (''- uuendab kogu süsteemi tarkvara, kõrvaldades automaatselt konfliktid'').
 
===Tugevad paroolid===
 
Ülitähtis on kasutada kasutajate ja võtmete paroolideks keerulisi ja vähemalt 8 ühikut pikkasid märgikombinatsioone. [http://en.wikipedia.org/wiki/Brute_force_attack ''Brute force'' rünnakud] on edukad, sest paroolidena kasutatakse sõnu ja nimesid, mis on päriselt olemas. [https://help.ubuntu.com/community/StrongPasswords Ubuntu kommuuni artikkel tugevatest paroolidest.]
PS. Parooli sünonüüm salasõna on it-maailmas eksitav väljend, sest kui paroolina kasutatakse lihtsalt mingit sõna, on selle sõna salajas püsimine äärmiselt ebatõenäoline. Paremini sobiks parooli sünonüümiks salafraas või salaväljend.
 
===Ainult SSH 2. protokoll===
 
SSH 1. protokoll (SSH-1) omab vahemehe-rünnakuga  [http://en.wikipedia.org/wiki/Man-in-the-middle_attack (MITM attack)] seonduvaid probleeme ja muid turvanõrkusi. SSH-1 on aegunud ja sellest tuleks iga hinna eest hoiduda.
Avades '''/etc/ssh/sshd_config''' faili, tuleks kontrollida, kas seal on rida '''Protocol 2'''.
 
===Tühjad paroolid on keelatud===
 
Tühja parooliga kontodelt sisse logimise keelamiseks peab '''/etc/ssh/sshd_config''' failis olema rida: <pre>PermitEmptyPasswords no</pre>
 
==Lihtsamad turvamise meetodid==
 
===Juurkasutaja SSH kaudu sisselogimise keelamine===
 
Root ei pea ssh kaudu sisse logida saama. Tavakasutajad saavad kasutada su või sudo käsku, et omandada juurkasutaja õigused. Nii saab ka täieliku ülevaate selle kohta, kes täpselt kasutas süsteemis privileegidega sudo käske. Juurkasutaja SSH kaudu sisselogimise keelamiseks peab '''sshd_config''' failis olema järgnev rida:
<pre>PermitRootLogin no</pre>
 
===Kasutajate sissepääsu piiramine SSH-sse===
 
Vaikimisi saavad kõik süsteemi kasutajad oma parooli või avaliku võtmega SSH kaudu sisse logida. SSH abil süsteemi siseneda saavate kasutajate määramiseks tuleb '''sshd_config'''-is kasutada ridu '''AllowUsers [login1 login2 login3 etc]''' ja/või '''DenyUsers [login1 login2 login3 etc]'''. Näiteks: <pre>AllowUsers m2rt priit traktor ahv
DenyUsers root koll</pre>
Analoogselt käib lubade jagamine gruppidele: '''AllowGroups grupp1 grupp2''' , '''DenyGroups grupp1 grupp2'''.
 
*Alati tuleks keelata ligipääs juurkasutajale ja tema grupile, lisades sshd seadistusfaili järgnevad read:
<pre>DenyUsers root finadmin
DenyGroups root finadmin</pre>
*Samuti oleks vaja anda vähemalt ühele sisselogimisõigusega kasutajale juurkasutaja õigused ehk ta saaks vajadusel kasutada '''su -''' või '''sudo -i''' käsku.
*'''Kõige turvalisem''' on seadistada SSH kaudu sisenemise piiramiseks '''kõik neli''' direktiivi (''AllowUsers, AllowGroups, DenyUsers, DenyGroups'')
 
===SSH pordi muutmine ja IP-dega sidumine===
 
SSH kuulab vaikimisi kõiki süsteemi kasutajaliideseid ja IP aadresse. ''Brute force'' skriptid proovivad tavaliselt ühenduda ainult port #22 kaudu, seepärast on mõistlik vaikimis SSH port muuta. SSH pordi muutmiseks ja kindlate IP-de kuulamiseks tuleks '''sshd_config'''-i sisse kanda muudatused ridadele '''Port''' ja '''ListenAddress'''. Näiteks:
<pre>Port 300
ListenAddress 192.168.1.5
ListenAddress 202.54.1.5</pre>
 
===Tegevusetute (''idle'') kasutajate automaatse väljaviskamise seadistamine===
 
Vältimaks järelevalveta ssh sessioone, tuleks määrata ''idle timeout interval'', milles loendatavate sekundite teatud suuruseni jõudmisel lõpetatakse kasutajaga automaatselt ühendus (kasutaja justkui lihtsalt logis välja). Kui soovitakse, et peale viite minutit tegevusetust ssh sessioon katkestataks, peaks '''sshd_config'''-is olema järgnevad read:
<pre>ClientAliveInterval 300
ClientAliveCountMax 0</pre>
 
===Hostipõhise autentimise keelamine===
 
Hostipõhise autentimise keelamiseks OpenSSH serveris peab '''sshd_config'''-is olema järgnev rida:
<pre>HostbasedAuthentication no</pre>
 
===Avaliku võtme põhine autentimine===
 
Õpetus: [[OpenSSH:_v%C3%B5tmetega_autentimine]].
*('''NB!''') Avaliku- ja privaatvõtme paari kasutada '''''ainult koos privaatvõtmele määratud parooliga'''''. Parool peaks olema unikaalne (mujal ei kasutata sama parooli), oma privaatvõtit ei tohiks mitte kunagi avaldada.
 
===.rhosts failid on keelatud===
 
Kasutajate ~/[[http://en.wikipedia.org/wiki/Rlogin .rhosts]] ja ~/.shosts failide mitte lugemiseks tuleb kindlustada OpenSSH serveri seadistusfailis '''sshd_config''' järgneva rea olemasolu: '''IgnoreRhosts yes'''. SSH suudab emuleerida aegunud [[http://www.mkssoftware.com/docs/man1/rsh.1.asp rsh]] käsku, tuleb lihtsalt keelata ebaturvaline sissepääs [[http://en.wikipedia.org/wiki/Remote_shell RSH]] kaudu.
 
==Keerulisemad turvamise meetodid==
 
===Kodukaustadesse lukustamine sshd chroot-imisega===
 
Viide: [http://www.debian-administration.org/articles/590 ''OpenSSH SFTP chroot() with ChrootDirectory'']
 
''PS. Keegi tubli inimene võiks lisada eestikeelse õpetuse.''
 
===''Port knocking''===
 
[http://en.wikipedia.org/wiki/Port_knocking Port knocking] on meetod väliselt tulemüüri portide avamiseks, luues kindlas järjekorras eelnevalt kindlaksmääratud portidele ühenduse katsed - "koputused". Niipea kui on toimunud õiges järjekorras koputused, muudetakse dünaamiliselt tulemüüri reegleid, ja hostil, kes saatis õige koputustemustri, lubatakse teatud portidesse ühenduda.
*''Port knocking'' näidis ssh jaoks, kasutades iptables-it:
<pre>$IPT -N stage1
$IPT -A stage1 -m recent --remove --name knock
$IPT -A stage1 -p tcp --dport 3456 -m recent --set --name knock2
$IPT -N stage2
$IPT -A stage2 -m recent --remove --name knock2
$IPT -A stage2 -p tcp --dport 2345 -m recent --set --name heaven
$IPT -N door
$IPT -A door -m recent --rcheck --seconds 5 --name knock2 -j stage2
$IPT -A door -m recent --rcheck --seconds 5 --name knock -j stage1
$IPT -A door -p tcp --dport 1234 -m recent --set --name knock
$IPT -A INPUT -m --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A INPUT -p tcp --dport 22 -m recent --rcheck --seconds 5 --name heaven -j ACCEPT
$IPT -A INPUT -p tcp --syn -j doo</pre>
 
*Erinevaid ''port-knockingu'' seadistusjuhendeid leiab [[#Kasulikke viiteid]] alt.
 
===''Brute force'' rünnaku eest kaitseva tarkvara paigaldamine===
 
''Brute force attack'' on kräkkimismeetod, kus proovitakse suurt hulka märgikombinatsioone, kasutades ühte või jaotatud arvutivõrku. ''Brute force'' rünnakute ennetamiseks ja peatamiseks on loodud mitmesugust tarkvara:
 
''PS Keegi tubli inimene võiks lisada "anti-brute-force-attack-software-list"-i.''
 
===Sshd serverisse sisselogimine koos Linux PAM mooduliga===
 
Suure hulga kasutajate korral võib seadistada [http://www.cyberciti.biz/tips/linux-pam-configuration-that-allows-or-deny-login-via-the-sshd-server.html Linux PAM]-i kontrollima kasutajate sisselogimist sshd serverisse. PAM võimaldab hoida kasutajanimesid tekstifailis (ei pea nimesid ssh seadistusfaili kuhjama).
 
===''TCP Wrappers'' kasutamine===
 
[http://en.wikipedia.org/wiki/TCP_Wrapper TCP Wrapper] on hostipõhine võrgu-pääsupiiramisloendi süsteem, mida kasutatakse võrgu internetiga ühenduvuse piiramiseks. Kõigepealt oleks vaja TCP Wrappers seadistada: [[#TCP Wrappers-i seadistamine ja kasutamine] (ing.k).
Lubamaks SSH-d ainult ip-aadressitelt 192.168.1.2 ja 172.16.23.12, tuleks /etc/hosts.allow faili vastavad aadressid järgnevalt sisse kanda:
<pre>sshd : 192.168.1.2 172.16.23.12</pre>
 
==Kasulikke viiteid==
 
*[http://www.openssh.com Ametliku '''OpenSSH''' projekti sait]
*[http://www.cyberciti.biz/tips/checking-openssh-sshd-configuration-syntax-errors.html Sshd seadistusfaili süntaksivigade leidmise viis enne sshd-serveri restarti]
*[[Tulemüüri_labor]]
*[http://www.marksanborn.net/linux/add-port-knocking-to-ssh-for-extra-security/ ''Port-knocking'' SSH-le]
*[https://calomel.org/openssh.html OpenSSH turvalisest seadistamisest]
*[http://www.debian-administration.org/articles/268 ''Port knocking'' kasutades ainult ''iptables''-it või ''netfilter''-it.]
*[http://linux.die.net/man/1/knockd ''Port-knock'' serveri '''knockd''' seadistamine]
*[http://www.cipherdyne.org/fwknop/ Efektiivsem turvamismeetod kui lihtsalt ''port knocking'': '''''Single packet authorization''''' ('''SPA''')]
*[http://www.thoughtcrime.org/software/knockknock/ '''knockknock''' kasutamine '''SPA'''-ks]
*[http://www.cyberciti.biz/faq/tcp-wrappers-hosts-allow-deny-tutorial/ TCP Wrappers-i seadistamine ja kasutamine]
 
==Kasutatud materjalid==


Indrek Tamm
*[http://www.cyberciti.biz/tips/linux-unix-bsd-openssh-server-best-practices.html 20 viisi OpenSSH serveri turvalisuse tõstmiseks]
*[http://www.cyberciti.biz/tips/openssh-deny-or-restrict-access-to-users-and-groups.html Kasutajate ja gruppide ligipääsu piiramine openssh-le]
*Ubuntu terminali man leheküljed (apt-get, sshd jms)


==Autor==
Indrek Tamm, rühm 15


[[Category:Operatsioonisüsteemide administreerimine ja sidumine]]
[[Category:Operatsioonisüsteemide administreerimine ja sidumine]]

Latest revision as of 22:14, 16 May 2010

Info

Lehel on välja toodud oluliste OpenSSH seadistusfailide asukohad ning valik OpenSSH turvalisuse tõstmise meetodeid. Testsüsteemiks kasutati Ubuntu 10.04-ja, millede peal prooviti enamus meetodeid läbi. Meetodid on jaotatud kolme kategooriasse: #Turvalisuse eeldused, #Lihtsamad turvamise meetodid, #Keerulisemad turvamise meetodid. #Kasulikke viiteid alt võib leida turvamise meetodeid, mida otseselt siin artiklis ei kajastata.

OpenSSH vaikimisi seadistusfailid ja SSH port

  • /etc/ssh/sshd_config OpenSSH serveri seadistuste fail.
  • /etc/ssh/ssh_config OpenSSH kliendi seadistuste fail.
  • ~/.ssh/ Kasutaja ssh seadistuste kaust.
  • ~/.ssh/authorized_keys või ~/.ssh/authorized_keys Loend avalikest võtmetest (RSA või DSA) mille abil saab kasutaja kontole sisse logida.
  • /etc/nologin Kui see fail on olemas, keeldub sshd kõigil peale juurkasutaja sisse logida.
  • /etc/hosts.allow ning /etc/hosts.deny Sisaldavad TCP-Wrappers poolt nõutavaid pääsupiiramisloendeid.
  • SSH vaikimisi port: TCP 22

Uute seadistuste rakendamiseks peab sshd serveri taaskäivitama.

sudo /etc/init.d/ssh restart

Turvalisuse eeldused

Operatsioonisüsteem ja OpenSSH on uuendatud

Soovitav on kasutada regulaarselt vahendeid nagu yum, apt-get, freebsd-update jms, et tagada süsteemile ja selle programmidele (turva)uuenduste olemasolu.

  • Ubuntus on abiks järgnev käsukombinatsioon: sudo apt-get update (- hangib tarkvarateekidest uusimate versioonide info) ja sellele järgnev sudo apt-get dist-upgrade (- uuendab kogu süsteemi tarkvara, kõrvaldades automaatselt konfliktid).

Tugevad paroolid

Ülitähtis on kasutada kasutajate ja võtmete paroolideks keerulisi ja vähemalt 8 ühikut pikkasid märgikombinatsioone. Brute force rünnakud on edukad, sest paroolidena kasutatakse sõnu ja nimesid, mis on päriselt olemas. Ubuntu kommuuni artikkel tugevatest paroolidest. PS. Parooli sünonüüm salasõna on it-maailmas eksitav väljend, sest kui paroolina kasutatakse lihtsalt mingit sõna, on selle sõna salajas püsimine äärmiselt ebatõenäoline. Paremini sobiks parooli sünonüümiks salafraas või salaväljend.

Ainult SSH 2. protokoll

SSH 1. protokoll (SSH-1) omab vahemehe-rünnakuga (MITM attack) seonduvaid probleeme ja muid turvanõrkusi. SSH-1 on aegunud ja sellest tuleks iga hinna eest hoiduda. Avades /etc/ssh/sshd_config faili, tuleks kontrollida, kas seal on rida Protocol 2.

Tühjad paroolid on keelatud

Tühja parooliga kontodelt sisse logimise keelamiseks peab /etc/ssh/sshd_config failis olema rida:

PermitEmptyPasswords no

Lihtsamad turvamise meetodid

Juurkasutaja SSH kaudu sisselogimise keelamine

Root ei pea ssh kaudu sisse logida saama. Tavakasutajad saavad kasutada su või sudo käsku, et omandada juurkasutaja õigused. Nii saab ka täieliku ülevaate selle kohta, kes täpselt kasutas süsteemis privileegidega sudo käske. Juurkasutaja SSH kaudu sisselogimise keelamiseks peab sshd_config failis olema järgnev rida:

PermitRootLogin no

Kasutajate sissepääsu piiramine SSH-sse

Vaikimisi saavad kõik süsteemi kasutajad oma parooli või avaliku võtmega SSH kaudu sisse logida. SSH abil süsteemi siseneda saavate kasutajate määramiseks tuleb sshd_config-is kasutada ridu AllowUsers [login1 login2 login3 etc] ja/või DenyUsers [login1 login2 login3 etc]. Näiteks:

AllowUsers m2rt priit traktor ahv
DenyUsers root koll

Analoogselt käib lubade jagamine gruppidele: AllowGroups grupp1 grupp2 , DenyGroups grupp1 grupp2.

  • Alati tuleks keelata ligipääs juurkasutajale ja tema grupile, lisades sshd seadistusfaili järgnevad read:
DenyUsers root finadmin
DenyGroups root finadmin
  • Samuti oleks vaja anda vähemalt ühele sisselogimisõigusega kasutajale juurkasutaja õigused ehk ta saaks vajadusel kasutada su - või sudo -i käsku.
  • Kõige turvalisem on seadistada SSH kaudu sisenemise piiramiseks kõik neli direktiivi (AllowUsers, AllowGroups, DenyUsers, DenyGroups)

SSH pordi muutmine ja IP-dega sidumine

SSH kuulab vaikimisi kõiki süsteemi kasutajaliideseid ja IP aadresse. Brute force skriptid proovivad tavaliselt ühenduda ainult port #22 kaudu, seepärast on mõistlik vaikimis SSH port muuta. SSH pordi muutmiseks ja kindlate IP-de kuulamiseks tuleks sshd_config-i sisse kanda muudatused ridadele Port ja ListenAddress. Näiteks:

Port 300
ListenAddress 192.168.1.5
ListenAddress 202.54.1.5

Tegevusetute (idle) kasutajate automaatse väljaviskamise seadistamine

Vältimaks järelevalveta ssh sessioone, tuleks määrata idle timeout interval, milles loendatavate sekundite teatud suuruseni jõudmisel lõpetatakse kasutajaga automaatselt ühendus (kasutaja justkui lihtsalt logis välja). Kui soovitakse, et peale viite minutit tegevusetust ssh sessioon katkestataks, peaks sshd_config-is olema järgnevad read:

ClientAliveInterval 300
ClientAliveCountMax 0

Hostipõhise autentimise keelamine

Hostipõhise autentimise keelamiseks OpenSSH serveris peab sshd_config-is olema järgnev rida:

HostbasedAuthentication no

Avaliku võtme põhine autentimine

Õpetus: OpenSSH:_võtmetega_autentimine.

  • (NB!) Avaliku- ja privaatvõtme paari kasutada ainult koos privaatvõtmele määratud parooliga. Parool peaks olema unikaalne (mujal ei kasutata sama parooli), oma privaatvõtit ei tohiks mitte kunagi avaldada.

.rhosts failid on keelatud

Kasutajate ~/[.rhosts] ja ~/.shosts failide mitte lugemiseks tuleb kindlustada OpenSSH serveri seadistusfailis sshd_config järgneva rea olemasolu: IgnoreRhosts yes. SSH suudab emuleerida aegunud [rsh] käsku, tuleb lihtsalt keelata ebaturvaline sissepääs [RSH] kaudu.

Keerulisemad turvamise meetodid

Kodukaustadesse lukustamine sshd chroot-imisega

Viide: OpenSSH SFTP chroot() with ChrootDirectory

PS. Keegi tubli inimene võiks lisada eestikeelse õpetuse.

Port knocking

Port knocking on meetod väliselt tulemüüri portide avamiseks, luues kindlas järjekorras eelnevalt kindlaksmääratud portidele ühenduse katsed - "koputused". Niipea kui on toimunud õiges järjekorras koputused, muudetakse dünaamiliselt tulemüüri reegleid, ja hostil, kes saatis õige koputustemustri, lubatakse teatud portidesse ühenduda.

  • Port knocking näidis ssh jaoks, kasutades iptables-it:
$IPT -N stage1
$IPT -A stage1 -m recent --remove --name knock
$IPT -A stage1 -p tcp --dport 3456 -m recent --set --name knock2
 
$IPT -N stage2
$IPT -A stage2 -m recent --remove --name knock2
$IPT -A stage2 -p tcp --dport 2345 -m recent --set --name heaven
 
$IPT -N door
$IPT -A door -m recent --rcheck --seconds 5 --name knock2 -j stage2
$IPT -A door -m recent --rcheck --seconds 5 --name knock -j stage1
$IPT -A door -p tcp --dport 1234 -m recent --set --name knock
 
$IPT -A INPUT -m --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A INPUT -p tcp --dport 22 -m recent --rcheck --seconds 5 --name heaven -j ACCEPT
$IPT -A INPUT -p tcp --syn -j doo

Brute force rünnaku eest kaitseva tarkvara paigaldamine

Brute force attack on kräkkimismeetod, kus proovitakse suurt hulka märgikombinatsioone, kasutades ühte või jaotatud arvutivõrku. Brute force rünnakute ennetamiseks ja peatamiseks on loodud mitmesugust tarkvara:

PS Keegi tubli inimene võiks lisada "anti-brute-force-attack-software-list"-i.

Sshd serverisse sisselogimine koos Linux PAM mooduliga

Suure hulga kasutajate korral võib seadistada Linux PAM-i kontrollima kasutajate sisselogimist sshd serverisse. PAM võimaldab hoida kasutajanimesid tekstifailis (ei pea nimesid ssh seadistusfaili kuhjama).

TCP Wrappers kasutamine

TCP Wrapper on hostipõhine võrgu-pääsupiiramisloendi süsteem, mida kasutatakse võrgu internetiga ühenduvuse piiramiseks. Kõigepealt oleks vaja TCP Wrappers seadistada: [[#TCP Wrappers-i seadistamine ja kasutamine] (ing.k). Lubamaks SSH-d ainult ip-aadressitelt 192.168.1.2 ja 172.16.23.12, tuleks /etc/hosts.allow faili vastavad aadressid järgnevalt sisse kanda:

sshd : 192.168.1.2 172.16.23.12

Kasulikke viiteid

Kasutatud materjalid

Autor

Indrek Tamm, rühm 15