Ero sivun ”Ssh” versioiden välillä
(53 välissä olevaa versiota 4 käyttäjän tekeminä ei näytetä) | |||
Rivi 1: | Rivi 1: | ||
− | SSH on käytännöllinen etähallinta | + | <languages/> |
+ | <translate> | ||
+ | <!--T:1--> | ||
+ | SSH on käytännöllinen etähallinta palvelu linuxille. <br /> | ||
− | + | <!--T:2--> | |
+ | [http://en.wikipedia.org/wiki/Secure_Shell SSH (Secure Shell)] on myös protokolla, mutta tässä artikkelissa käsitellään apt pakettia ssh. | ||
− | + | == Asennus == <!--T:3--> | |
− | service ssh restart | + | <!--T:4--> |
+ | Asennetaan ssh -paketti aptitude:lla. | ||
+ | |||
+ | <!--T:5--> | ||
+ | [[aptitude]] install ssh | ||
+ | |||
+ | == Konfigurointi == <!--T:6--> | ||
+ | |||
+ | |||
+ | === /etc/ssh/sshd_config === <!--T:7--> | ||
+ | |||
+ | <!--T:8--> | ||
+ | Tiedostosta löytyy ssh serverin tärkeät konfiguraatiot. | ||
+ | |||
+ | <!--T:9--> | ||
+ | Muokataan sitä nano:lla | ||
+ | |||
+ | <!--T:10--> | ||
+ | [[nano]] /etc/ssh/sshd_config | ||
+ | |||
+ | <!--T:11--> | ||
+ | Portti (TCP, UDP), määritetään numerolla (oletus 22). | ||
+ | Port 22 | ||
+ | |||
+ | <!--T:12--> | ||
+ | Kirjautumisen yhteyden aikakatkaisu, määritetään sekunteina (oletus 120). | ||
+ | LoginGraceTime 120 | ||
+ | |||
+ | <!--T:13--> | ||
+ | Sallitaan tai estetään root -käyttäjän kirjautuminen ssh:lla, määritetään ''yes'' tai ''no'' (oletus ''yes''). | ||
+ | '''Ehdottomasti suositeltavaa estää root käyttäjän kirjautuminen SSH yhteydellä.''' | ||
+ | |||
+ | <!--T:14--> | ||
+ | PermitRootLogin yes | ||
+ | |||
+ | <!--T:15--> | ||
+ | Autentikoimattomien yhteyksien sallittu määrä, määritetään [vähintään]:[todennäköisyys%]:[enintään] | ||
+ | (todennäköisyys% kasvaa lineaarisesti, kun lähestytään enimmäismäärää) | ||
+ | MaxStartups 10:30:60 | ||
+ | |||
+ | <!--T:16--> | ||
+ | Kommentoimattomana (ilman '#' edessä) tulostaa viestin käyttäjän kirjautuessa (käyttäjänimen syöttämisen jälkeen). | ||
+ | Banner /etc/issue.net | ||
+ | Viestiä voi muokata nano:lla | ||
+ | nano /etc/issue.net | ||
+ | |||
+ | <!--T:17--> | ||
+ | Kirjautumisen jälkeen nähtävä viesti: | ||
+ | |||
+ | <!--T:18--> | ||
+ | [[nano]] /etc/motd | ||
+ | |||
+ | <!--T:19--> | ||
+ | Oletusviesti: | ||
+ | |||
+ | <!--T:20--> | ||
+ | The programs included with the Debian GNU/Linux system are free software; | ||
+ | the exact distribution terms for each program are described in the | ||
+ | individual files in /usr/share/doc/*/copyright. | ||
+ | |||
+ | Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent | ||
+ | permitted by applicable law. | ||
+ | |||
+ | |||
+ | |||
+ | <!--T:21--> | ||
+ | Lopuksi otetaan muokattu konfiguraatio käyttöön käynnistämällä ssh palvelu uudestaan. | ||
+ | |||
+ | <!--T:22--> | ||
+ | service ssh restart | ||
+ | |||
+ | <!--T:23--> | ||
+ | Suositus on asentaa [[Fail2ban]] SSH-palvelimelle, sillä automaattisia botteja on olemssa ja yrittää hyökätä SSH palvelimiin. | ||
+ | |||
+ | == Lisäasetukset == <!--T:24--> | ||
+ | |||
+ | <!--T:25--> | ||
+ | Salli enintään istuntoja per käyttäjä | ||
+ | |||
+ | <!--T:26--> | ||
+ | MaxSessions 10 | ||
+ | |||
+ | |||
+ | <!--T:27--> | ||
+ | Salli vain käyttäjää matti kirjautumaan SSH yhteydellä. | ||
+ | |||
+ | <!--T:28--> | ||
+ | AllowUsers matti | ||
+ | |||
+ | <!--T:29--> | ||
+ | Sallitaan tietyn käyttäjän tai käyttäjien kirjautuminen vain tietystä LANista | ||
+ | |||
+ | <!--T:30--> | ||
+ | AllowUsers root@''88.148.222.100'' | ||
+ | AllowUsers root@''example.com'' | ||
+ | AllowUsers root@''192.168.*.*'' Tässä esimerkissä kaikki osoitteesta 192.168.0.0/16 pääsee sisälle | ||
+ | |||
+ | <!--T:31--> | ||
+ | Estä käyttäjää paavo kirjautumaan SSH yhteydellä. | ||
+ | |||
+ | <!--T:32--> | ||
+ | DenyUsers | ||
+ | |||
+ | <!--T:33--> | ||
+ | Salli käyttäjäryhmässä olevien käyttäjien kirjautuminen SSH yhteydellä. | ||
+ | |||
+ | <!--T:34--> | ||
+ | AllowGroups Admins | ||
+ | |||
+ | <!--T:35--> | ||
+ | Estä käyttäjäryhmässä olevia käyttäjiä kirjautumasta SSH yhteydellä. | ||
+ | |||
+ | <!--T:36--> | ||
+ | DenyGroups | ||
+ | |||
+ | == Autentikointi avainpareilla == <!--T:37--> | ||
+ | |||
+ | Luodaan julkinen ja privaati avain. | ||
+ | |||
+ | ssh-keygen -t rsa -b 2048 | ||
+ | |||
+ | |||
+ | Esimerkki tulostus | ||
+ | |||
+ | <pre> | ||
+ | Generating public/private rsa key pair. | ||
+ | Enter file in which to save the key (/root/.ssh/id_rsa): | ||
+ | Enter passphrase (empty for no passphrase): | ||
+ | Enter same passphrase again: | ||
+ | Your identification has been saved in /root/.ssh/id_rsa. | ||
+ | Your public key has been saved in /root/.ssh/id_rsa.pub. | ||
+ | The key fingerprint is: | ||
+ | 9a:33:a9:5d:f4:e1:41:26:57:d0:9a:68:5b:37:9c:23 root@server1 | ||
+ | The key's randomart image is: | ||
+ | +--[ RSA 2048]----+ | ||
+ | | .o. | | ||
+ | | .. | | ||
+ | | ..++ . | | ||
+ | | o=E * | | ||
+ | | .Sooo o | | ||
+ | | =.o o | | ||
+ | | * . o | | ||
+ | | o + | | ||
+ | | . . | | ||
+ | +-----------------+ | ||
+ | </pre> | ||
+ | |||
+ | Kopioi privaattiavain toiselle paikkaan josta haluat päästä kirjautumaan. | ||
+ | |||
+ | ssh-copy-id -i /root/.ssh/id_rsa.pub root@server2 | ||
+ | |||
+ | Luo hakemisto ssh:lle jos sitä ei ole | ||
+ | |||
+ | mkdir -p ~/.ssh/ | ||
+ | |||
+ | Kopioi public key authorized_keys tiedostoon. | ||
+ | |||
+ | cat id_rsa.pub >> ~/.ssh | ||
+ | |||
+ | Testaa kirjautuminen | ||
+ | |||
+ | ssh root@server1 | ||
+ | |||
+ | === Avaimet toiselle käyttäjätilille === | ||
+ | |||
+ | Luodaan julkinen ja privaattiavain toiselle käyttäjätilille | ||
+ | |||
+ | ssh-keygen -t rsa -b 2048 -f username | ||
+ | |||
+ | Tämä tallentaa avaimen käyttäjän nimellä. Lisää username.pub tiedoston sisältö käyttäjän kotikansion alle olevaan authorized_keys tiedostoon | ||
+ | |||
+ | cat username.pub >> ~/.ssh/authorized_keys | ||
+ | |||
+ | Testaa kirjautuminen. Lisää -i parametriin privaattiavain tiedosto. | ||
+ | |||
+ | ssh -i ~/.ssh/username username@server1 | ||
+ | |||
+ | === Konfiguraatio jossa valmiina polku ssh avaimelle === | ||
+ | |||
+ | Luo konfiguraatio tiedosto kotikansion alle | ||
+ | |||
+ | nano ~/.ssh/config | ||
+ | |||
+ | Esimerkiksi seuraavanlaiseksi: | ||
+ | |||
+ | * Host palvelimen IP/Hostname | ||
+ | * IdentifyFile Privaattitiedostopolku | ||
+ | * User jolla kirjaudutaan tälläprivaattiavainta | ||
+ | <pre> | ||
+ | Host server1.example.org | ||
+ | IdentityFile ~/.ssh/id_rsa | ||
+ | User username | ||
+ | Host server2.example.org | ||
+ | IdentityFile /backup/home/userName/.ssh/id_rsa | ||
+ | </pre> | ||
+ | |||
+ | Yhdistä palvelimelle | ||
+ | |||
+ | ssh server1.example.org | ||
+ | |||
+ | ja pitäisi mennä suoraan sisään ilman -i parametriä. | ||
+ | |||
+ | [[Luokka:Linux|Ssh]] | ||
+ | |||
+ | == SSH Tunneli == | ||
+ | |||
+ | SSH_tunneli on SSH-protokolan porttiohjaus, joka ei vaadi erityisiä toimenpiteitä ja toimii tavallisen käyttäjän oikeuksilla. Tämä on todella helppo myöskoinn käyttää. | ||
+ | |||
+ | Salli palvelimen konfiguraatiosta SSH-tunneli <code>/etc/ssh/sshd_config</code> tiedostosta. | ||
+ | |||
+ | PermitTunnel yes | ||
+ | |||
+ | Aja sitten asiakasohjelmalla komento. Tämä tekee SSH-porttiohjauksen localhost:8080 server.local palvelimeen. Näin voit yhdistää IP-tunnelin yli server.local palvelimen 8080 porttiin suoraan clientista käsin. | ||
+ | |||
+ | ssh -L 8080 [email protected] | ||
+ | |||
+ | Tässä toinen esimerkki, jossa on tehty tunneloini paikallisesta 2222 portista etäkoneen porttiin 22 (ssh). | ||
+ | |||
+ | ssh -L 2222:server2.local:22 [email protected] | ||
+ | |||
+ | == SFTP == | ||
+ | |||
+ | Konfiguroi SFTP: | ||
+ | |||
+ | nano /etc/ssh/sshd_config | ||
+ | |||
+ | <pre> | ||
+ | Subsystem sftp internal-sftp | ||
+ | |||
+ | #Salli vain ryhmän sftp käyttämään SFTP:tä. | ||
+ | Match Group sftp | ||
+ | ChrootDirectory %h | ||
+ | ForceCommand internal-sftp | ||
+ | AllowTCPForwarding no | ||
+ | </pre> | ||
+ | |||
+ | Luo käyttäjät | ||
+ | |||
+ | adduser mikko | ||
+ | adduser mikko sftp | ||
+ | |||
+ | Lisää vielä sallitut käyttäjät jotka saa käyttää SSH:ta ja SFTP:tä | ||
+ | |||
+ | AllowUsers mikko | ||
+ | |||
+ | Käynnistä lopuksi SSH uudelleen. | ||
+ | |||
+ | </translate> | ||
+ | |||
+ | [[Luokka:Linux|Ssh]] |
Nykyinen versio 9. maaliskuuta 2019 kello 18.21
SSH on käytännöllinen etähallinta palvelu linuxille.
SSH (Secure Shell) on myös protokolla, mutta tässä artikkelissa käsitellään apt pakettia ssh.
Sisällysluettelo
Asennus
Asennetaan ssh -paketti aptitude:lla.
aptitude install ssh
Konfigurointi
/etc/ssh/sshd_config
Tiedostosta löytyy ssh serverin tärkeät konfiguraatiot.
Muokataan sitä nano:lla
nano /etc/ssh/sshd_config
Portti (TCP, UDP), määritetään numerolla (oletus 22).
Port 22
Kirjautumisen yhteyden aikakatkaisu, määritetään sekunteina (oletus 120).
LoginGraceTime 120
Sallitaan tai estetään root -käyttäjän kirjautuminen ssh:lla, määritetään yes tai no (oletus yes). Ehdottomasti suositeltavaa estää root käyttäjän kirjautuminen SSH yhteydellä.
PermitRootLogin yes
Autentikoimattomien yhteyksien sallittu määrä, määritetään [vähintään]:[todennäköisyys%]:[enintään] (todennäköisyys% kasvaa lineaarisesti, kun lähestytään enimmäismäärää)
MaxStartups 10:30:60
Kommentoimattomana (ilman '#' edessä) tulostaa viestin käyttäjän kirjautuessa (käyttäjänimen syöttämisen jälkeen).
Banner /etc/issue.net
Viestiä voi muokata nano:lla
nano /etc/issue.net
Kirjautumisen jälkeen nähtävä viesti:
nano /etc/motd
Oletusviesti:
The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law.
Lopuksi otetaan muokattu konfiguraatio käyttöön käynnistämällä ssh palvelu uudestaan.
service ssh restart
Suositus on asentaa Fail2ban SSH-palvelimelle, sillä automaattisia botteja on olemssa ja yrittää hyökätä SSH palvelimiin.
Lisäasetukset
Salli enintään istuntoja per käyttäjä
MaxSessions 10
Salli vain käyttäjää matti kirjautumaan SSH yhteydellä.
AllowUsers matti
Sallitaan tietyn käyttäjän tai käyttäjien kirjautuminen vain tietystä LANista
AllowUsers root@88.148.222.100 AllowUsers root@example.com AllowUsers root@192.168.*.* Tässä esimerkissä kaikki osoitteesta 192.168.0.0/16 pääsee sisälle
Estä käyttäjää paavo kirjautumaan SSH yhteydellä.
DenyUsers
Salli käyttäjäryhmässä olevien käyttäjien kirjautuminen SSH yhteydellä.
AllowGroups Admins
Estä käyttäjäryhmässä olevia käyttäjiä kirjautumasta SSH yhteydellä.
DenyGroups
Autentikointi avainpareilla
Luodaan julkinen ja privaati avain.
ssh-keygen -t rsa -b 2048
Esimerkki tulostus
Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: 9a:33:a9:5d:f4:e1:41:26:57:d0:9a:68:5b:37:9c:23 root@server1 The key's randomart image is: +--[ RSA 2048]----+ | .o. | | .. | | ..++ . | | o=E * | | .Sooo o | | =.o o | | * . o | | o + | | . . | +-----------------+
Kopioi privaattiavain toiselle paikkaan josta haluat päästä kirjautumaan.
ssh-copy-id -i /root/.ssh/id_rsa.pub root@server2
Luo hakemisto ssh:lle jos sitä ei ole
mkdir -p ~/.ssh/
Kopioi public key authorized_keys tiedostoon.
cat id_rsa.pub >> ~/.ssh
Testaa kirjautuminen
ssh root@server1
Avaimet toiselle käyttäjätilille
Luodaan julkinen ja privaattiavain toiselle käyttäjätilille
ssh-keygen -t rsa -b 2048 -f username
Tämä tallentaa avaimen käyttäjän nimellä. Lisää username.pub tiedoston sisältö käyttäjän kotikansion alle olevaan authorized_keys tiedostoon
cat username.pub >> ~/.ssh/authorized_keys
Testaa kirjautuminen. Lisää -i parametriin privaattiavain tiedosto.
ssh -i ~/.ssh/username username@server1
Konfiguraatio jossa valmiina polku ssh avaimelle
Luo konfiguraatio tiedosto kotikansion alle
nano ~/.ssh/config
Esimerkiksi seuraavanlaiseksi:
- Host palvelimen IP/Hostname
- IdentifyFile Privaattitiedostopolku
- User jolla kirjaudutaan tälläprivaattiavainta
Host server1.example.org IdentityFile ~/.ssh/id_rsa User username Host server2.example.org IdentityFile /backup/home/userName/.ssh/id_rsa
Yhdistä palvelimelle
ssh server1.example.org
ja pitäisi mennä suoraan sisään ilman -i parametriä.
SSH Tunneli
SSH_tunneli on SSH-protokolan porttiohjaus, joka ei vaadi erityisiä toimenpiteitä ja toimii tavallisen käyttäjän oikeuksilla. Tämä on todella helppo myöskoinn käyttää.
Salli palvelimen konfiguraatiosta SSH-tunneli /etc/ssh/sshd_config
tiedostosta.
PermitTunnel yes
Aja sitten asiakasohjelmalla komento. Tämä tekee SSH-porttiohjauksen localhost:8080 server.local palvelimeen. Näin voit yhdistää IP-tunnelin yli server.local palvelimen 8080 porttiin suoraan clientista käsin.
ssh -L 8080 [email protected]
Tässä toinen esimerkki, jossa on tehty tunneloini paikallisesta 2222 portista etäkoneen porttiin 22 (ssh).
ssh -L 2222:server2.local:22 [email protected]
SFTP
Konfiguroi SFTP:
nano /etc/ssh/sshd_config
Subsystem sftp internal-sftp #Salli vain ryhmän sftp käyttämään SFTP:tä. Match Group sftp ChrootDirectory %h ForceCommand internal-sftp AllowTCPForwarding no
Luo käyttäjät
adduser mikko adduser mikko sftp
Lisää vielä sallitut käyttäjät jotka saa käyttää SSH:ta ja SFTP:tä
AllowUsers mikko
Käynnistä lopuksi SSH uudelleen.