• Vastliggende pagina
  • Info
  • Bijlages

Versie 4 sinds 2009-10-29 19:38:01

Bericht wissen

Deze pagina staat in de ontwerpdocumentatie. De inhoud is waarschijnlijk nog niet klaar om in de documentatie geïntegreerd te worden en kan fouten bevatten. Indien u fouten opmerkt mag u ze zeker verbeteren, rekening houdende met onze richtlijnen.

  • <<GeschiktVoor: uitvoering mislukt [invalid literal for float(): 8.10?] (bekijk ook het logboek)>>

OpenSSH lock user in homedir

Inleiding

Voor achtergrond informatie over SSH zie de OpenSSH pagina. Als je een gebruiker via SSH toegang geeft tot je systeem, kan hij ongeveer alle mappen bekijken. Hij zou misschien niet direct schade aan kunnen richten, maar het is fijner als hij alleen kan wat nodig is. Als je wilt dat een gebruiker alleen maar bestanden kan uitwisselen (uploaden/downloaden) is het een optie om deze te locken in een bepaalde directory. Dit artikel beschrijft hoe je dit kunt doen.

Dit werkt vanaf OpenSSH 4.8p1

Stappenplan

In /etc/ssh/sshd_config moet je instellen dat OpenSSH zijn interne SFTP gebruikt. Open sshd_config bijvoorbeeld middels: gksudo gedit /etc/ssh/sshd_config

Zoek de regel met Subsystem en maak daarvan:

Subsystem sftp internal-sftp 

Vervolgens maak je een Match aan. Hiermee kun je ervoor zorgen dat alleen gebruikers in een bepaalde groep worden gelocked.

Voeg het onderstaande toe:

Match group sftponly
         ChrootDirectory /home/%u
         X11Forwarding no
         AllowTcpForwarding no
         ForceCommand internal-sftp

Doe nu opslaan en sluit sshd_config.

De volgende stappen moeten in een terminal uitgevoerd worden. Dus open een terminal.

Maak een groep aan voor de gebruikers die alleen bestanden mogen uitwisselen. Ik heb gekozen deze groep sftponly te noemen.

sudo addgroup sftponly

Vervolgens dien je een gebruiker aan te maken die zou mogen inloggen. Ik heb gekozen deze gebruiker gast te noemen.

sudo useradd -G sftponly gast

Geef de gast een wachtwoord

sudo passwd gast

Maak de homedir aan voor gast

sudo mkdir /home/gast

In sshd_config hadden we ingesteld dat de gebruiker chroot naar /home/%u. Voor gast houdt dit in dat deze gebruiker /home/gast/ ziet als / (root). Nu stellen we in dat / de homedir is van gast.

sudo usermod -d / gast

Herstart openssh

sudo /etc/init.d/ssh restart

In principe kan gast nu gewoon inloggen. Om het mogelijk te maken dat er ook bestanden ge-upload kunnen worden moet je een map aanmaken waar gast schrijfrechten op heeft. Dit kun je doen door:

sudo mkdir /home/gast/uploads 
sudo chgrp sftponly /home/gast/uploads
sudo chmod g+w /home/gast/uploads

gast dient nu bestanden te uploaden in de map uploads

Inloggen

Probeer vanaf een andere computer eens in te loggen als gast. Bijvoorbeeld door:

sftp gast@ipadres

Als je ingelogd bent en pwd intypt moet je als het goed is het volgende zien:

Remote working directory: /
  • Info (!) Filezilla is een handige grafische client voor sftp. sudo apt-get install filezilla

TODO

  • Een gezamelijke dir voor alle sftp users.

Referentie

Dit stukje is geschreven naar aanleiding van dit artikel.


De categorie CategoryNetwerkenEnServers bevat de volgende handleidingen:


CategoryNetwerkenEnServers