Linux

SSH

Remote beheer

Leerdoelen

  • Hoe kunnen we Linux remote beheren?
  • Hoe werkt SSH?
  • Waarvoor gebruiken we PuTTY?

Remote beheer

  • Linux draait vaak stilletjes op de achtergrond
  • Ergens in een serverruimte
  • Je wilt niet elke keer heen en weer lopen
  • Inloggen op een server vanaf je werkplek...
  • Remote commando's uitvoeren
  • Kan ook gevaarlijk zijn

Telnet → SSH

  • Veel routers en servers en sommige switches kunnen op afstand beheerd worden
  • Vroeger gebeurde dat via telnet
  • Bij telnet gaat alles in plain text over de lijn
  • Dus ook username en wachtwoord!
  • Tegenwoordig gebruiken we daar SSH voor: Secure Shell

SSH

  • Secure SHell
  • Een manier om ge-encrypt commando's te sturen
  • Ook de login is encrypt: veilig!
  • Is een client/server-protocol

PKI

  • SSH gebruikt cryptografie
  • Alles wat over de lijn gaat wordt versleuteld
  • SSH gebruikt daarvoor een public en private key
  • En het controleert of de server de echte server is

OpenSSH

  • Op meeste Linux distros gebruiken OpenSSH
  • OpenSSH is afkomstig van het OpenBSD Project
  • OpenBSD richt zich op security
  • We hebben een server nodig op ons Linux systeem
  • We gebruiken hiervoor de OpenSSH server
  • Die is niet standaard geïnstalleerd
sudo apt install openssh-server
sudo systemctl status ssh

Test OpenSSH server

  • Test of de service draait
    ps ax | grep sshd
  • Zo niet
    sudo systemctl start sshd
  • Check de port
    sudo ss -ltnp | grep sshd

Login localhost

  • We loggen in op onze eigen machine:
    ssh localhost
  • Je krijgt nu de melding:
    The authenticity of host 'localhost (::1)' can't be established.
  • SSH controleert of hij je host kent
  • SSH kent de host nog niet, vraagt om toestemming
  • Login; gebruik exit om uit te loggen
  • ssh localhost
  • De vraag om te bevestigen is verdwenen

Known Hosts

  • SSH houdt een lijstje bij van servers die bekend zijn
  • Als je verbinding maakt wordt dit lijstje nagelopen
  • Het bestand is ~/.ssh/known_hosts
    cat ~/.ssh/known_hosts
  • Is ge-encrypt op Debian
  • Dit voorkomt dat je inlogt op een server die je niet bedoelt: IP Spoofing

Get IP

  • We gaan connecten vanaf een Windows client
  • We hebben het IP adres van de Linux machine nodig
  • Achterhaal dit met:
    ip addr show
  • Nu kunnen we PuTTY op Windows installeren

Install PuTTY

  • Microsoft Store
  • Zoek op PuTTY
  • Install
https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html

Config PuTTY

  • Host Name: is IP-adres van Debian machine
  • Port (22) is al goed ingevuld
  • SSH is al aangevinkt
  • Klik: Open
  • Accept het certificaat
  • Login

UFW

  • UFW is enabled
  • Welke poort moet er open om via SSH te kunnen inloggen?
  • Hoe werkt dat met UFW?

UFW allow SSH

sudo ufw allow ssh

Samenvatting

  • We hebben ssh-server geïnstalleerd
  • We hebben de firewall voor SSH geconfigureerd
  • We hebben PuTTY geïnstalleerd
  • We hebben met PuTTY ingelogd op onze machine