SSH Veilige vervanger van TELNET, FTP en de r-serie. -o- Toepassen van symmetrische en asymmetrische encrytpie -o- Ontwikkeling van een protocol met vrije, open én gesloten implementaties. -o- RFC's van (1995) tot 2006 ( rfc4251!) Met dank aan Tatu Ylönen en vele anderen.
● Interactief terminal ● Universeel: Eén terminal voor alle platforms! ● Onbeschermd wacht- woord. ● Basis voor veel andere protocollen, nog steeds handig voor trouble- shooting. TELNET
File Transport Protocol: FTP Bestandsoverdracht tussen diverse platforms. Een interactieve sessie met opdrachten als: dir cd get put Aparte verbinding voor het transport van files. Weinig aandacht voor beveiliging, wachtwoord- beveiliging en anonieme toegang.
BSD's r-serie Voor unixen onder elkaar Toegang geregeld via: /etc/hosts.equiv /etc/rhosts ~/.rhosts wachtwoorden
Secure Shell SSH ● Vervangt TELNET, FTP en de r-serie ● Veilig, zelfs over onveilige transportkanalen ● SSH2 veiliger en sneller dan SSH1 ● Gebruikt public-key en bulk-encryptie ● Opdrachten: – ssh – scp – sftp (nieuw)
Secure Shell opdrachten $ scp * $ ssh host "ls public_html | grep png” $ ssh host ls public_html | grep png $ ssh xs4all.nl $ sftp -l hansr ftp.xs4all.nl $ ssh ls -lrt WWW $ ssh -l hansr xs4all.nl who
SSH-serverauthenticatie De ssh-client onderhoudt een lijst met publieke sleutels van alle bezochte servers. Daarmee wordt gecontroleerd of je met de ware server te maken hebt. Hiermee voorkom je vele vormen van bedrog. (ip- dns- en router-spoofing ) De eerste keer behoor je de serversleutel te controleren (controleer de vingerafdruk van de sleutel)
SSH wachtwoordauthenticatie Client en server beginnen met afspraken: SSH-1 of SSH-2, daarna sessiesleutel enz.. Bij ssh-2 is alles onderhandelbaar: methode van sleuteluitwisseling, encryptiealgoritmen (PK en symm.) bericht-authenticatie en hash. Dit resulteert in een beveiligd transportkanaal: versleuteld en gecontroleerd. De hele sessie gaat verder over dit veilige transportkanaal kanaal, ook het logon- wachtwoord.
SSH PK-authenticatie Wachtwoorden blijven onveilig, ook al kunnen ze onderweg niet worden afgeluisterd of bij een verkeerde host terecht komen. Ze kunnen nog altijd geraden worden of uitlekken op een gecompromiteerde server en op het lokale systeem. Met een eigen private key wordt een wachtwoord overbodig.
SSH Public-key-authenticatie Genereer een sleutelpaar, zónder passphrase! ssh-keygen -t rsa breng het publieke deel over naar server cat.ssh/id_rsa.pub | ssh host.com “cat >>.ssh/authorised_keys” Controleer terdege voordat je ssh.config aanpast! (houd een root-shell open!)
Passphrase en ssh-agent ● Encrypt je private sleutel! Dat beveiligt je tegen: – uitgelekte logon-wachtwoord van user of root – fysieke toegang tot je systeem (Knoppix) – onbetrouwbare root ● Laat het authentiseren aan de ssh-agent over, geef maar één keer de frase is. ● Beveilig je screensaver met je wachtwoord. ● Met SSH-2 en goede “wachtzin” geeft dit zeer hoge graad van beveiliging.
standard install client-site - sshserver-site - sshd ~/.ssh/ssh_config ~/.ssh/known_hosts /etc/ssh/ { sshd_config id-rsa id-rsa.pub wachtwoord- waarmerking PublicKey waarmerking ~/.ssh/id-rsa ~/.ssh.id-rsa.pub ~/.ssh/authorized_keys yes
Standard install: wachtwoord- authenticatie client-kant: ssh serverkant: sshd ~/.ssh/ssh_config ~/.ssh/known_hosts /etc/ssh/ { sshd_config id-rsa id-rsa.pub PublicKey waarmerking hangt af van lokaal systeem ~/.ssh.id-rsa.pub ~/.ssh/authorized_keys Met een passphrase wordt de private sleutel beschermd. Kan door ssh-agent worden afgehandeld. Passphrase agent id-rsa ~/.ssh/id-rsa met passphrase
ssh en firewalls ● Op Internet is alleen je router te zien. ● Accepteer op de router TCP-verbindingen van één, meer of alle ip-adressen van het Net, naar poort 22 (of een andere poort!). ● Forward die naar poort 22 op jou ssh-server. ● om over na te denken: – Wat zou je doen als je twee ssh-servers toegankelijk wilt maken? – Wat zou je doen als je twee ssh-clients toegang tot één externe server wil geven, mét PK-authenticatie?
SSH-server achter een firewall TCP-pakket van: ?? naar , poort: forward pakket naar: reject drop alle andere poorten reject óf drop “geheime” ssh-poort web-poort 80 ssh-poort 22 apache op :80 sshd op :22 Internet LA N
Er is meer mogelijk ● Uitgebreide pipelines – tar -cf -. |ssh lincom “cat >/var/bups/delsuse$(date +%x_%X)” ● X-sessies (grafisch) – ssh -fX lincom xterm ● netscape& – ssh lincom netscape ● Veilige tunnels – ssh -N -L 12345:localhost:110 ssh -N -L 12345:pop.xs4all.nl:110 ● popserver-adres wordt nu localhost, poort 12345
Putty voor Windows Linux