• Vastliggende pagina
  • Info
  • Bijlages
Verschillen tussen versies 16 en 17
Versie 16 sinds 2009-11-06 23:45:01
Grootte: 3823
Auteur: testcees
Commentaar:
Versie 17 sinds 2009-11-08 15:34:23
Grootte: 6867
Auteur: rachidbm
Commentaar: "Meerdere gebruikers op 1 map" toegevoegd
Verwijderingen worden op deze manier gemarkeerd. Toevoegingen worden op deze manier gemarkeerd.
Regel 18: Regel 18:
== Inleiding ==
Regel 20: Regel 19:
Om bepaalde gebruikers tot dezelfde map te beperken, zie: [[#Meerderegebruikersop1map | Meerdere gebruikers op 1 map]]
Regel 23: Regel 22:
De onderstaande stappen dienen te worden uitgevoerd in een terminal. Meer info hierover in [[WerkenMetDeTerminal | Werken met de Terminal]].
Regel 38: Regel 39:
Voeg onderstaande regels toe: Voeg onderaan het bestand de onderstaande regels toe:
Regel 41: Regel 42:
      ChrootDirectory /home/%u
         X11Forwarding no
      AllowTcpForwarding no
         ForceCommand internal-sftp
    ChrootDirectory /home/%u
    X11Forwarding no
    AllowTcpForwarding no
    ForceCommand internal-sftp
Regel 74: Regel 75:
Herstart openssh: Herstart ssh:
Regel 105: Regel 106:
== TODO ==
 * Een gezamelijke dir voor alle sftp users.
= Meerdere gebruikers op 1 map =
Hierboven is uitgelegd hoe toegang van gebruikers beperkt kan worden tot hun home map.
Nu wordt er beschreven hoe de toegang (voor bepaalde gebruikers) beperkt kan worden tot dezelfde map. Dit is bijvoorbeeld handig wanneer je met meerdere mensen dezelfde bestanden wilt delen. Er wordt vanuit gegaan dat het "SSH Toegang Beperken" ten minste 1 keer is uitgevoerd. Als je iets niet begrijpt, kijk dan even terug naar boven.


== Opzetten ==
Nu gaan we een directory aanmaken waar alle sftp gebruikers terecht komen wanneer ze inloggen. Vanaf nu wordt dit de "share" genoemd.

Als je veel bestanden wilt gaan delen, let er dan op dat de "share" op een partitie staat die groot genoeg is. Zelf heb ik 2 partities. 1 kleintje voor het OS (ongeveer 10 GB). en 1 de rest voor /home. Ik heb ervoor gekozen om de "share" map in /home aan te maken.

(!) Het is niet netjes om een map aan te maken in /home als het geen home map is. Maar ik had geen zin om een 3e partitie voor de share aan te maken.

{{{
sudo mkdir /home/share
}}}

Open {{{/etc/ssh/sshd_config}}} en zoek de regel met '''Match group sftponly'''. Daaronder staat
'''ChrootDirectory /home/%u'''. Maak daarvan:
{{{
ChrootDirectory /home/share
}}}

Herstart ssh.
{{{
sudo /etc/init.d/ssh restart
}}}

Om het voor andere gebruikers mogelijk te maken om bestanden te plaatsen dient er een submap met ''schrijfrechten'' worden gemaakt:
{{{
sudo mkdir /home/share/uploads
sudo chgrp sftponly /home/share/uploads
sudo chmod g+w /home/share/uploads
}}}
De gebuikers kunnen bestanden plaatsen in de map {{{uploads}}}. Test het door [[#Inloggen |in te loggen]]

Als '''SSH Toegang Beperken''' is uitgevoerd is er nog de home map van gast aanwezig. Maar omdat gast nu {{{/home/share}}} als map heeft, kun je {{{/home/gast}}} verwijderen.

== Nieuwe gebruiker toevoegen ==

Om een nieuwe gebruiker voor de share toe te voegen voer het onderstaande commando uit.
Vervang {{{GEBRUIKERSNAAM}}} door de gewenste gebruikersnaam.
{{{
sudo adduser --home / --no-create-home --ingroup sftponly GEBRUIKERSNAAM
}}}
Nadat je het wachtwoord hebt ingevoerd, mag je de rest leeg laten.


= Permissies =

De map {{{/home/share}}} heeft als eigenaar en groep {{{root}}} en dit moet zo blijven! Je mag wel submappen maken met andere rechten. Dit heeft te maken 'chroot'.
De sftponly gebruikers hebben alleen schrijfrechten op de map {{{uploads}}}. Waarschijnlijk wil je zelf wel makkelijk bestanden in alle mappen kunnen zetten. Het makkelijkst is om jezelf dan eigenaar van de andere submappen te maken.
Dit kan bijv. middels:
{{{
sudo chown GEBRUIKERSNAAM /home/share/*
}}}

Als je iets kopieert van uploads naar een andere submap. Zal het de eigenaar en groep van de degene die het bestand heeft toegevoegd overnemen. Als je wilt dat bij het kopieeren GEBRUIKERSNAAM de eigenaar wordt, kun je het volgende commando uitvoeren.
{{{
chmod +s /home/share/*
}}}
Regel 110: Regel 169:

== Referentie ==
Dit stukje is geschreven naar aanleiding van [[http://www.debian-administration.org/articles/590 | dit artikel ]].

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.

Discussieer over dit artikel in het forum.

SSH Toegang Beperken

Voor achtergrondinformatie over SSH zie de OpenSSH pagina. Als een gebruiker SSH toegang heeft kunnen (bijna) alle mappen worden bekeken. Dit zal niet direct schade aan richten, maar soms is het wenselijk de toegang te beperken tot een eigen ("home") map. Om bepaalde gebruikers tot dezelfde map te beperken, zie: Meerdere gebruikers op 1 map

Stappenplan

De onderstaande stappen dienen te worden uitgevoerd in een terminal. Meer info hierover in Werken met de Terminal.

In /etc/ssh/sshd_config moet worden ingesteld dat OpenSSH de interne SFTP gebruikt. Wijzig de configuratie:

sudo nano /etc/ssh/sshd_config

Info (!) als de Ubuntu desktop geïnstalleerd is kan ook gksudo gedit /etc/ssh/sshd_config gebruikt worden.

Zoek de regel met Subsystem en maak daarvan:

Subsystem sftp internal-sftp 

Maak een Match aan. Hiermee krijgen bepaalde gebruikers een eigen (beperkte) toegang.

Voeg onderaan het bestand de onderstaande regels toe:

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

Sla de nieuwe configuratie op.

Maak een gebruikersgroep aan voor de gebruikers met beperkte toegang. In dit voorbeeld noemen we deze groep sftponly.

sudo addgroup sftponly

Maak een gebruikersnaam aan. In dit voorbeeld is de gebruikersnaam gast:

sudo useradd -G sftponly gast

Geef de gebruikersnaam gast een wachtwoord:

sudo passwd gast

Maak een eigen map aan voor de gebruiker gast:

sudo mkdir /home/gast

In de ssh configuratie (sshd_config) is ingesteld dat deze map de hoofdmap is. Dit moet ook in het gebruikersprofiel van gebruiker gast worden opgegeven:

sudo usermod -d / gast

Herstart ssh:

sudo /etc/init.d/ssh restart

De gebruiker gast kan nu inloggen maar is beperkt tot (lezen van) de map /home/gast.

Om het mogelijk te maken bestanden te plaatsen kan een submap met schrijfrechten worden gemaakt:

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

Gebruiker gast kan bestanden plaatsen in de map uploads

Inloggen

Log vanaf een andere computer in als gast:

sftp gast@ipadres

De opdracht pwd toont de huidige map en als het goed is:

$ pwd
Remote working directory: /

Info (!) Filezilla is een grafische client voor SFTP en FTP. sudo apt-get install filezilla . Het is open-source, gratis te krijgen en draait op linux, Windows en Mac OS

Het is veiliger om in plaats van wachtwoorden sleutels te gebruiken om in te loggen. Meer info hierover is te vinden op de pagina over SSH Sleutels

Meerdere gebruikers op 1 map

Hierboven is uitgelegd hoe toegang van gebruikers beperkt kan worden tot hun home map. Nu wordt er beschreven hoe de toegang (voor bepaalde gebruikers) beperkt kan worden tot dezelfde map. Dit is bijvoorbeeld handig wanneer je met meerdere mensen dezelfde bestanden wilt delen. Er wordt vanuit gegaan dat het "SSH Toegang Beperken" ten minste 1 keer is uitgevoerd. Als je iets niet begrijpt, kijk dan even terug naar boven.

Opzetten

Nu gaan we een directory aanmaken waar alle sftp gebruikers terecht komen wanneer ze inloggen. Vanaf nu wordt dit de "share" genoemd.

Als je veel bestanden wilt gaan delen, let er dan op dat de "share" op een partitie staat die groot genoeg is. Zelf heb ik 2 partities. 1 kleintje voor het OS (ongeveer 10 GB). en 1 de rest voor /home. Ik heb ervoor gekozen om de "share" map in /home aan te maken.

Info (!) Het is niet netjes om een map aan te maken in /home als het geen home map is. Maar ik had geen zin om een 3e partitie voor de share aan te maken.

sudo mkdir /home/share

Open /etc/ssh/sshd_config en zoek de regel met Match group sftponly. Daaronder staat ChrootDirectory /home/%u. Maak daarvan:

ChrootDirectory /home/share

Herstart ssh.

sudo /etc/init.d/ssh restart

Om het voor andere gebruikers mogelijk te maken om bestanden te plaatsen dient er een submap met schrijfrechten worden gemaakt:

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

De gebuikers kunnen bestanden plaatsen in de map uploads. Test het door in te loggen

Als SSH Toegang Beperken is uitgevoerd is er nog de home map van gast aanwezig. Maar omdat gast nu /home/share als map heeft, kun je /home/gast verwijderen.

Nieuwe gebruiker toevoegen

Om een nieuwe gebruiker voor de share toe te voegen voer het onderstaande commando uit. Vervang GEBRUIKERSNAAM door de gewenste gebruikersnaam.

sudo adduser --home / --no-create-home --ingroup sftponly GEBRUIKERSNAAM

Nadat je het wachtwoord hebt ingevoerd, mag je de rest leeg laten.

Permissies

De map /home/share heeft als eigenaar en groep root en dit moet zo blijven! Je mag wel submappen maken met andere rechten. Dit heeft te maken 'chroot'. De sftponly gebruikers hebben alleen schrijfrechten op de map uploads. Waarschijnlijk wil je zelf wel makkelijk bestanden in alle mappen kunnen zetten. Het makkelijkst is om jezelf dan eigenaar van de andere submappen te maken. Dit kan bijv. middels:

sudo chown GEBRUIKERSNAAM /home/share/*

Als je iets kopieert van uploads naar een andere submap. Zal het de eigenaar en groep van de degene die het bestand heeft toegevoegd overnemen. Als je wilt dat bij het kopieeren GEBRUIKERSNAAM de eigenaar wordt, kun je het volgende commando uitvoeren.

chmod +s /home/share/*


CategoryNetwerkenEnServers

community/SftpServer (laatst bewerkt op 2015-06-14 14:57:12 door testcees)