Käsikirja
2 FreeBSD Käyttöjärjestelmä
3 Asennetut palvelinohjelmistot ja niiden käyttäminen
3.8 OpenSSH
OpenSSH
Mikä on OpenSSH?
OpenSSH on vapaa SSH verkkotyökalu, jonka ovat luoneet monet Internetin käyttäjät. Monet telnet:in rlogin, ftp ja muut ohjelmat eivät ole tajunneet vielä. Sitä, että salasanat välitetään internetissä ei salattuna, mutta OpenSSH salaa kaiken liikenteen (mukaanlukien salasanat), estäen tehokkaasti salakuuntelun, sieppauksen ja muut -verkonhyökkäykset. Lisäksi, OpenSSH tarjoaa lukemattoman joukon salaustunnelin kykyä, jotka ovat hyvin erillaisia salausmekanismejä.
OpenSSH työkalu sisältää ssh ohjelman, joka korvaa rlogin ja telenet ohjelmat. scp joka korvaa rcp:n ja sftp, joka korvaa ftp:n. Mukana myös sshd, mikä on palvelin puolen paketti joka sisältää muut työkalut kuten ssh-add, ssh-agent, ssh-keysing, ssh-keyscan, ssh-keygen ja sftp-server:in. OpenSSH tukee SSH protokollia 1,3 1,5 ja 2.0
OpenSSH on pääasiallisesti rakentanut OpenBSD projekti ja ensikertaa se tuli mukana OpenBSD 2.6 järjestelmässä. Ohjelmisto on rakennettu USA:n ulkopuolella, noin kymmenessä maassa ja se on vapaasti käytettävissä kaikille BSD lisenssin alla.
Mitä OpenSSH:lla voidaan tehdä?
Voit hallita ssh:n kautta palvelimiasi etänä ja ajaa niissä ohjelmiasi. Et tarvitse fyysisesti olla paikan päällä säätämässä konetta, vaan voit olla missä tahansa ja muodostaa palvelimeesi turvallisesti yhteyden.
Yleistä tietoturvallisuudesta SSHD palvelimen kanssa:
Käyttäjien kirjautumien:
Unix käyttäjäntunnukset ja SSH palvelin. Käyttäjät, jotka saavat komentotulkin palvelimeltasi käyttöön, ovat oikeutettuja kirjautumaan järjestelmääsi oletuksena. Ylläpitäjät, jotka haluavat varmistua, että käyttäjät eivät voi ajaa palvelimella mitään omia sovelluksiaan, voivat asettaa komentotulkiksi esimerkiksi nologin tai passwd. Tällöin käyttäjän tunnus ei pääse kirjautumaan unixin konsoliin ja ajamaan ohjelmia siellä.
Vinkkejä:
Suoraan pääkäyttäjänä kirjautuminen:
Suoraan pääkäyttäjänä kirjautumisien salliminen on huono idea, se kasvattaa tietoturvariskiä järjestelmässäsi. Jo vakiona sshd palvelin ei salli pääkäyttäjänä kirjautumista eli rootlogin:inia. Wheel käyttäjät voivat vaihtaa pääkäyttäjäksi itsensä "su" komennolla.
Pääkäyttäjän oikeudet:
Pääkäyttäjän eli root:in oikeuksiin sisältyy aina riskinsä. Pääkäyttäjällä kun on valtaa päästä minnevain järjestelmässä. Unix järjestelmissä root käytäjätunnuksen salasanan kertomista tulisi välttää viimeiseen asti. On olemassa apuohjelmia, joilla eri käyttäjäntunnuksilla ja ryhmille voidaan antaa lisää oikeuksia suorittaa, joitakin toimintoja joita vain root tunnuksella on oikeus tehdä:
sudo
sudo apuohjelmalla voit antaa tietyille käyttäjäryhmille mahdollisuuksia suorittaa tiettyjä komentoja tai vaihtaa pääkäyttäjän tilaan suoraan. Etuna sudo:lla onkin, että sillä saadaan rajattua tarkasti eri käyttäjäryhmien oikeuksia, mitä kukin voi tehdä pääkäyttäjänä. Esimerkkinä isoissa organisaatioissa. Joillakin ylläpitäjillä voi olla tarvetta luoda ja poistaa tunnuksia tällöin voit antaa sudo:lla oikeuden ajaa "adduser" komentoa ryhmälle tai käyttäjälle. Hyvin suunnitellussa järjestelmässä voi olla kymmeniäkin ylläpitäjiä, jotka eivät tiedä pääkäyttäjän salsanaan ja he voivat tehdä tarvittavat toimensa, kuten vaihtaa salasanoja, luoda uusia tunnuksia ja poistaa vanhoja tunnuksia.
Äärimmäisissä tapauksissa pääkäyttäjänä kirjautuminen järjestelmään olla estetty kaikilta, tällöin esimerkiksi sudo:lla hoidellaan tehtävät, jotka vaatisivat pääkäyttäjänä suorittamista. Tällöin esimerkiksi krakkerin pääseminen järjestelmääsi käsiksi vaikeutuu huomattavasti.
Liikenteen suodattaminen:
Tehokkain tapa suodattaa ssh:n likennettä on järjestää kunnollinen palomuuri, joka sallii vain yhteydet tietyistä osoitteista ssh:n. SSH liikennettä on myös mahdollista suodattaa "hosts.allow" tiedostossa. Tämä tiedosto ei ole yhtä tehokas ja hyvä, kuin palomuuri suodattamaan liikennettä.
Päivitä SSH ohjelmistoasi:
OpenSSH järjestelmä sisältää reikiä, kuten muutkin ohjelmistotm joten seuraa tietoturvapäivityksiä. Usein krakkerointi Unix järjestelmään tapahtuu päivittämättömän etähallinta ohjelmiston kautta. Krakkerit pyrkivät käyttämään, jotain olemassaolevaa haavoittuvuutta hyväkseen ja pääsemään tätä kautta järjestelmään, vaikkei ssh olekaan altis vertaa esim. telnet ohjelmistoon on kuitenkin hyvä noudattaa äärimmäistä varovaisuutta kaikkien etähallintaohjelmistojen kanssa.
Älä käytä SSH 1 protokollaa:
Ssh tukee ssh 1 protokollaa, mutta koska se alkaa olla jo tiensä päässä ja riittämätön suojaus. Suositus onkin käyttää ssh2 protokollaa, joka salaa liikenteen ja salasanat huomattavasti vahvemmalla salauksella.
"Tietoturvapolitiikka ei voi koskaan olla liian tiukkaa, aina jotain voi tehdä enemmän"
Kuinka voin ottaa SSH palvelimen käyttööni?
Tarkista että seuraava rivi on "/etc/rc.conf" tiedostossa
sshd_enable="YES"
Tämän jälkeen voit käynnistää sshd palvelimen 5.x
/etc/rc.d/sshd start
4.x voit käynnistää sshd palvelimen
sshd start
Kuinka voin poistaa sshd palvelimen käytöstäni?
Muuta /etc/rc.conf tiedoston asetuksia:
sshd_enable="NO"
Pysäytä sshd:
killall sshd
SSHD palvelimen asetusten muokkaaminen
Mistä löydän asetustiedostot?
/etc/ssh/
sshd_config = Sisältää palvelimen asetustiedot
ssh_config = Sisältää asiakasohjelman asetustiedot
key ja pub = Tiedostot pitävät sisällään avaimet, "key" tiedosto purkuavaimen ja "pub" julkisen avaimen.
Tässä muutamia asetuksia sshd:n asetustiedostosta
Port 22 | Portti johon avataan yhteys |
Protocol 2 | ssh:n versiot, joita käytetään eroiteltuna pilkulla esim 2,1 |
#ListenAddress 0.0.0.0 | Kuunnellaan osoitetta ipv4 |
#ListenAddress :: | Kuunnellaan osoitetta ipv6 |
ListenAddress määrittää paikallista osoitetta jota kuunnellaan |
ListenAddress osoite|IPv4_osoite|IPv6_osoite |
ListenAddress osoite|IPv4_osoite:portti |
ListenAddress [osoite|IPv6_osoite]:portti |
Esimerkiksi 192.168.0.1:22
|
#HostKey for protocol version 1 | |
#HostKey /etc/ssh/ssh_host_key | ssh 1 version avain |
#HostKeys for protocol version 2 | |
#HostKey /etc/ssh/ssh_host_dsa_key | ssh 2 version avain |
#Banner /etc/motd | Ennen tunnistautumista näytettävä banneri (tulostetaan kun käyttäjän tunnus annetaan) |
#LoginGraceTime 120 | Aika sekunteina, jonka aikana käyttäjän on onnistuttava kirjautumaan sisään järjestelmään. Oletuksena käytetään 120 sekunttia. |
#PermitRootLogin no | Salli kirjautua pääkäyttäjänä |
#MaxStartups 10 | Montako käyttäjää voi olla kirjautuneena enimmillään tunnistamattomassa tilassa. Oletukena käytetään 10 käyttäjää mikäli tätä ei ole määritelty |
Subsystem sftp /usr/libexec/sftp-server | sftp serverisi sijainti |
ssh palvelimien ylläpitäjien kannattaa tustua tarkemmin ssh palvelimeen www.openssh.org sivustolla
Ssh asiakasohjelmat: sftp, ssh, scp
ssh
Voit muodostaa ssh ohjelmalla yhteyksiä ssh käyttäjäntunnus@osoite -parametrit muotoisesti. Esimerkiksi ssh mattimei@unixdomain.fi
Mikäli muodostat yhteyden ensimmäisen kerran, sinut tulee hyväksyä "fingrerprint" "yes" painikkeella, jonka ssh sinulta kysyy.
ssh = Secure Shell pääteohjelma
-l käyttäjä | Logaa käyttäen tätä käyttäjätunnusta |
-n | Lähetä tuleva data suoraan tyhjiöön eli /dev/null:iin |
-F asetustiedosto | Konfiguraatiotiedosto (Oletus = ~/ssh/ssh_config" |
-A | Lisää päälle autentisointi välitys uudelleen lähetyksestä |
-a | Poista autentisointi välitys uudelleen lähetyksestä (oletus). |
-X | X11 uudelleenlähetys päälle |
-x | Poista X11 uudelleenlähetys käytöstä |
-i tiedosto | Julkinen avain salauksessa (oletkuksena: ~/.ssh/identity) |
-T | Älä varaa käyttöön "terminaalia" |
-v | Näytä virheviestit |
-V | Näytä ohjelman versio numero |
-q | Hiljainen tila: älä näytä viestejä |
-f | Työskentele taustalla autentikaation jälkeen |
-e merkki | Aseta keskeytyskirjain; "tyhjä" = pois päältä (oletus: ~). |
-c koodi | Valitse salausmekanismi |
-p portti | Yhdistä portissa. |
-C | Salli kompressointi |
-N | Älä suorita shell komentoa |
-1 | Käytä ssh1 yhteyttä. |
-2 | Käytä ssh2 yhteyttä |
-4 | Ipv4 protokolla ainoastaan (oletus) |
-6 | Ipv6 protokolla ainoastaan |
-o "optio" | Process the option as if it was read from a configuration file. |
-s | Invoke command (mandatory) as SSH2 subsystem. |
-b osoite | Paikallinnen ip osoite |
sftp
Sftp = Secure FTP siirto-ohjelma.
Sftp on FTP ohjelman paranneltu versio, joka toimii ssh:n yli. Ohjelma käyttää samoja peruskomentoja, kuin FTP tai smbclient, katso peruskomennot.
Sftp ohjelmalla yhteyden avaaminen tapahtuu ssh ohjelman syntaksin mukaisesti sftp tunnus@kone.domain .
scp
Scp = Tiedoston kopiointiohjelma ssh tunnelin yli.
scp kopioi tiedostoja kahden isänän(host) välillä verkossa. Se käyttää ssh(1)
siirtoon, käyttää samaa autentaatiota ja tarjoaa saman suojauksen kuin ssh(1).
scp kysyy salasanan jos niitä tarvitaan autentaatioon toisin kuin rcp.
Mikätahanhsa tiedostonimi voi sisältää isännän(host) ja käyttäjän spesifikaation
näyttääkseen että tiedosto on tulossa kopioiduksi tietystä isännästä. Kopiointi kahden
etä isännän välillä on sallittu.
-p | Säilyttää muutosten teko ajat, pääsy ajat, ja alkuperäisen tiedoston moodit. |
-r | Rekursiivisesti kopioi koko hakemistot. |
-v | Näyttää kopioinnin tapahtumat, suositeltava aina. |
-B | Valitsee erä moodin.(estää salasanojen kyselemisen). |
-q | Hävittää edistymismittarin. |
-C | Pakkaus päällä. |
-P portti | Voit määrittää etäkoneen portin jonka kautta otat yhteyden. |
Muutamia ongelmia SSH asiakasohjelmissa
Mikäli muodostat UNIX tietokoneellasi ahkerasti ssh yhteyksiä törmäät. Ongelmaan, jossa "fingerprint" on mennyt vanhaksi. Tähän syynä on yleensä kaverisi uusi julkinen salausavain. Mahdollisia syitä asialle ovat palvelimen uudelleen asennus tai uuden avaimen luominen. Voit korjata ongelman editoimalla omankäyttäjätunnuksesi ~/.ssh/known_hosts tiedostoa laittamalla # merkin kaverisi osoitteen eteen.
|