Mainos / Advertisement:

Ero sivun ”Ssh” versioiden välillä

Kohteesta Taisto
Siirry navigaatioon Siirry hakuun
 
(42 välissä olevaa versiota 3 käyttäjän tekeminä ei näytetä)
Rivi 1: Rivi 1:
SSH on käytännöllinen etähallinta palvelu linuxille. <br />
+
<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.
 
[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 ==
+
== Asennus == <!--T:3-->
  
 +
<!--T:4-->
 
Asennetaan ssh -paketti aptitude:lla.
 
Asennetaan ssh -paketti aptitude:lla.
  
  aptitude install ssh
+
  <!--T:5-->
 +
[[aptitude]] install ssh
  
== Konfigurointi ==
+
== Konfigurointi == <!--T:6-->
  
  
=== /etc/ssh/sshd_config ===
+
=== /etc/ssh/sshd_config === <!--T:7-->
  
 +
<!--T:8-->
 
Tiedostosta löytyy ssh serverin tärkeät konfiguraatiot.  
 
Tiedostosta löytyy ssh serverin tärkeät konfiguraatiot.  
  
 +
<!--T:9-->
 
Muokataan sitä nano:lla
 
Muokataan sitä nano:lla
  
  nano /etc/ssh/sshd_config
+
  <!--T:10-->
 +
[[nano]] /etc/ssh/sshd_config
  
 +
<!--T:11-->
 
Portti (TCP, UDP), määritetään numerolla (oletus 22).
 
Portti (TCP, UDP), määritetään numerolla (oletus 22).
 
  Port 22
 
  Port 22
  
Kirjautumis yhteyden aikakatkaisu, määritetään sekunteina (oletus 120).
+
<!--T:12-->
 +
Kirjautumisen yhteyden aikakatkaisu, määritetään sekunteina (oletus 120).
 
  LoginGraceTime 120
 
  LoginGraceTime 120
  
Sallitaan tai estetään root -käyttäjän kirjautuminen ssh:lla, määritetään ''yes'' tai ''no'' (oletus ''yes'').
+
<!--T:13-->
PermitRootLogin yes
+
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]
 
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ää)
 
(todennäköisyys% kasvaa lineaarisesti, kun lähestytään enimmäismäärää)
 
  MaxStartups 10:30:60
 
  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).
 
Kommentoimattomana (ilman '#' edessä) tulostaa viestin käyttäjän kirjautuessa (käyttäjänimen syöttämisen jälkeen).
 
  Banner /etc/issue.net
 
  Banner /etc/issue.net
 
Viestiä voi muokata nano:lla
 
Viestiä voi muokata nano:lla
 
  nano /etc/issue.net
 
  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.
 
Lopuksi otetaan muokattu konfiguraatio käyttöön käynnistämällä ssh palvelu uudestaan.
  
  service ssh restart
+
  <!--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>
  
== Fail2ban ==
+
Luo käyttäjät
  
Jos haluamme lisätä ssh-palvelimen tietoturvaa kuitenkin sallien ssh-yhteyden helposti, voimme käyttää Fail2ban ohjelmistoa. Asennus onnistuu samaan tapaan kuin ssh-serverin asennus aptitudea käyttäen.
+
  adduser mikko
 +
  adduser mikko sftp
  
aptitude install fail2ban
+
Lisää vielä sallitut käyttäjät jotka saa käyttää SSH:ta ja SFTP:tä
  
=== /etc/fail2ban/jail.conf ===
+
  AllowUsers mikko
  
''/etc/fail2ban/jail.conf'' tiedostosta löytyy fail2banin asetukset. Halutessasi voit kopioida ''jail.conf''fin uuteen tiedostoon ''/etc/fail2ban/jail.local''iin. Esimerkissä muokkaamme jail.conf tiedostoa siten, että filtterit eivät koske sisäverkosta (192.168.0.0/24) tulevia yhdistyksiä, vähennämme maksimi epäonnistumisten määrää kolmeen sekä vähennämme jäähyaikaa viiteen minuuttiin.
+
Käynnistä lopuksi SSH uudelleen.
  
nano /etc/fail2ban/jail.conf
+
</translate>
  
ignoreip = 127.0.0.1/8 '''192.168.0.0/24'''
+
[[Luokka:Linux|Ssh]]
'''bantime = 300'''
 
maxretry = 6
 
maxretry arvon muutamme hieman alempaa, ssh valikon alta:
 
[ssh]
 
enabled = true
 
port    = ssh          ''<small>Muista muuttaa porttia jos olet asettanut ssh:n käyttämään jotain muuta porttia kuin 22</small>''
 
filter  = sshd
 
logpath  = /var/log/auth.log
 
'''maxretry = 3'''
 

Nykyinen versio 9. maaliskuuta 2019 kello 18.21

Muut kielet:
English • ‎suomi

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.

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.

Mainos / Advertisement: