OpenSSH administreerimine
Sisukord
Sissejuhatus
OpenSSH http://www.openssh.org/ tarkvara võimaldab turvalist kaugligipääsu võrku ühendatud seadmetele, nt arvutitele ja ruuteritele. OpenSSH on üks OpenBSD projekti ettevõtmistest, mis on osutunud niivõrd populaarseks, et sellest on kujunenud praktiliselt kõigi 2009 aastal kasutuses olevate vabade operatsioonisüsteemide standardne kauguligipääsu korraldamise instrument. Lisaks on OpenSSH kasutuses ka mitmete mitte-vabade lahenduste juures, nt erinevate tootjate ruuterites.
Peale üle võrgu nö teise arvuti käsureale jõudmise sisaldab OpenSSH muu hulga selliseid võimalusi
- andmete kopeerimine - sftp, scp
- turvaline transport muudele programmidele - rsync, subversion, pppd, X Window System
- portide edasisuunamine - võtmetega -L ja -R
- L2 ja L3 tunnelite tegemine - direktiiviga Tunnel või pppd-üle-ssh lahendus
- SOCKS server
- failisüsteemi külgeühendamine - sshfs (FUSE tehnoloogia abil)
OpenSSH kasutamist kirjeldatakse Kuutõrvajas kahes tekstis
- käesolev tekst kirjeldab OpenSSH serveri haldamist ning keerulisemad kasutusvõimalusi
- aadressil OpenSSH kasutamine asuv tekst on mõeldud nö süsteemi tavakasutajatele oluliste ülesannete lahendamiseks OpenSSH abil
OpenSSH paigaldamine
Debian Lenny paketihalduses on olemas OpenSSH tarkvara versioon 5.1, tarkvara paigaldamiseks öelda
# apt-get install openssh-server
mille paigaldamise käigus paigaldatakse ka pakett openssh-client.
Erinevatel muudel Linuxi distributsioonidel (gentoo, suse jms) on see üldiselt juba vaikimisi paigaldatud. Ka FreeBSD sisaldab enda baasinstallatsioonis openssh serverit ning klienti ja seejuures on seal leiduvad rajad identsed linuxiliste omaga st /etc/ssh seadistusfailide asukohaks jms
OpenSSH seadistamine
OpenSSH serveri tööd kontrollib seadistusfail
/etc/ssh/sshd_config
Süsteemis kasutatava OpenSSH kliendi tööd juhib globaalselst seadistusfail
/etc/ssh/ssh_config
kusjuures lisaks kontrollivad klientide SSH kasutamist nende kodukataloogis asuva kataloog .ssh sees sisalduvad failid
...
Hosti võtmete genereerimine
TODO
SFTP serveri seadistamine
OpenSSH SFTP alamsüsteemi (ingl. k. subsystem) kasutamiseks peab OpenSSH serveri seadistusfailis olema rida
Subsystem sftp /usr/lib/openssh/sftp-server
või
Subsystem sftp internal-sftp
SFTP kliendi teenindamiseks käivitatakse vastavalt eraldi protsess või toimub teenindamine sshd sees sisalduvate sftp vahenditega.
OpenSSH kasutajate chrootimine
Debian Lenny sisaldab piisavalt uut OpenSSH tarkvara versiooni (OpenSSL 0.9.8g), mis võimaldab kasutada ChrootDirectory direktiivi kasutajate chrootimiseks
$ ssh -V OpenSSH_5.1p1 Debian-5, OpenSSL 0.9.8g 19 Oct 2007
Kasutamiseks tuleb
- moodustada chroot kasutajate kodukataloogidesse chroot keskkond, nt makejail programmi abil; makejail kasutamist on kirjeldatud tekstis Operatsioonisüsteemi Debian GNU/Linux kasutamine#makejail abil chroot keskkonna moodustamine
- seadistada OpenSSH server kasutama vastavate kasutajate jaoks ChrootDirectory direktiivi
# cat /etc/ssh/sshd_config ... Subsystem sftp internal-sftp ... Match User mart,priit ChrootDirectory /home/%u AllowTCPForwarding no X11Forwarding no
kusjuures Match sektsioon peab esinema seadistusfaili lõpus, antud juhul on lisaks neil kasutajatel keelatud tcp ja x edasisuunamine.
- kasutaja kodukataloogi ja sellest üles jäävate kataloogide omanik:grupp peab olema root:root ning neisse kataloogidesse ei tohi saada keegi peale juurkasutaja kirjutada
Tulemusena saab kasutaja süsteemi sisse logida ssh ja sftp kliendiga ning see kataloog, mis on süsteemi jaoks tema kodukataloog on tema jaoks tema juurkataloog. Oluline on seejuures, et tavaliseks ssh ligipääsuks ei ole tarvis chroot keskkonda tekitada mingeid seadmeid, ega pole vaja ühendada külge mingeid failisüsteeme (nt /proc, /dev/pty vms) - tähendab, kasutaja ei saa süsteemis liialt ringi uurida ka siis, kui ta omale ise nt netstat ja ps utiliidid kopeerib.
scp klienti selliselt seadistatud serveriga kasutada ei saa, tundub, et scp eeldab paremat varustatust serveri poolelt, muuhulgas /dev/null seadet ja scp programmi). Praktiliselt ehk ei ole tingimata scp kasutamise võimalus ka väga oluline kuna nt WinSCP klient oskab sftp protokolli samuti kasutada.
Kui kasutajal on vajalik porti edasi suunata, siis tuleb asenda
AllowTCPForwarding yes
ning sõltuvalt chroot keskkonna omadustest, st kas seal nimed lahenduvad öelda nt
$ ssh mart@valis.loomaaed.tartu.ee -L 2000:localhost:3306
või
$ ssh mart@valis.loomaaed.tartu.ee -L 2000:127.0.0.1:3306
PPP kasutamine üle SSH
Üle kahe arvuti vahelise ssh sessiooni PPP ühenduse tekitamiseks peab mõlemisse arvutisse olema paigaldatud lisaks OpenSSH tarkvarale ppp pakett, nt Debian Lenny keskkonnas öeldes
# apt-get install ppp
Kasutamiseks sobivad vaikeseadistused ja PPP ühenduse tekitamiseks tuleb öelda ühes arvutis
# pppd -detach noauth pty "ssh -t root@teine.arvuti pppd passive noauth" 10.100.0.1:10.100.0.2
kus
- -detach - pppd protsess jääb nö esiplaanile (ingl. k. foreground) käima
- noauth - ppp ei teosta autentimist
- 10.100.0.1:10.100.0.2 - vastavalt ühe ja teise arvuti ppp0 seadme ip aadress
Tulemusena tekivad arvutitesse sarnased seadmed
ppp0 Link encap:Point-to-Point Protocol inet addr:10.100.0.2 P-t-P:10.100.0.1 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:7 errors:0 dropped:0 overruns:0 frame:0 TX packets:7 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:3 RX bytes:240 (240.0 B) TX bytes:246 (246.0 B)
Teise arvuti küljes olevate võrkude kasutamiseks tuleb
- esimeses arvutis seadistada sobiv ruuting
- teises arvutis lubada ip forwarding
SSH tunneli kasutamine
Ruuditud tunnel
Logida kliendist serverisse nt selliselt
# ssh -o Tunnel=point-to-point -w any:any root@192.168.1.4
kus kasutatud võtmetel on selline tähendus
- -w any:any - kasutada kummalgi pool järmist kasutamata tun seadet
Tulemusena tekivad mõlemas arvutis juurde tun nimelised seadmed
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 POINTOPOINT NOARP MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:500 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Seejärel tuleb need seadmed sobivalt seadistada, nt kliendis öelda
# ifconfig tun1 10.100.0.10 pointopoint 10.100.0.11
ning serveris öelda
# ifconfig tun1 10.100.0.11 pointopoint 10.100.0.10
Sillatud tunnel
Olgu eesmärgiks lülitada klientarvuti üle avaliku võrgu tulemüüri taga olevasse võrku, sedasi
Klient ___ | | tap0, 10.0.5.200 |___| | .. internet .. | | _|_ 192.168.102.35, valis.loomaaed.tartu.ee | | tulemüür, OpenSSH server |___| | br0 = eth0, tap0 ___ | ___ | |----------------|----------------| | |___| |___| eth0, 10.0.5.25 eth0, 10.0.5.26
Kliendi poolel tuleb öelda
# ssh -o Tunnel=ethernet -w any:any root@192.168.1.4
ning seadistada tekkinud tap0 seadmele ip aadress kohtvorgust
# ifconfig tap0 10.0.5.200 netmask 255.255.255.0
Serveri poolel tuleb moodustada sild br0
# brctl addbr br0 # brctl addif br0 tap0 # brctl addif br0 eth0
Kusjuures serveri tap0 ja br0 seadmetel ei ole ip aadresse. Lisaks peab vajadusel br0 seadme üles tõstma
# ifconfig br0 up
Tulemusena saab klientarvutist kasutada 10.0.5 võrgu teenuseid ning ka vastupidi, efektiivselt asub klient ja muud kontvõrgu arvutid samab subnetis.
Sellise lahenduse puhul on iseloomulik, et iga kliendiga seoses tekib OpenSSH serverisse juurde uus tap seade.
Kasulikud lisamaterjalid
- http://www.openssh.org/
- http://en.wikipedia.org/wiki/OpenSSH
- OpenSSH kasutamine
- SOCKS proxy kasutamine
- http://wouter.horre.be/doc/vpn-over-ssh
- http://www.nardol.org/2009/1/12/quick-and-dirty-vpn-with-pppd-and-ssh
- Sertifikaadid Sertifitseerimiskeskuse loomine ja sertifikaadi kinnitamine
- sshd mysql Mysql ja pam abil sshd autentimise korraldamine
- Openssh chroot Kasutaja chrootimine openssh patchi kasutades kodukataloogi
- rsync Vabavaraline failide ja kaustade sünkroniseerimise ja backupimise vahend
- PPP üle SSH kanali
- VPN ja SSH