• Vastliggende pagina
  • Info
  • Bijlages
Verschillen tussen versies 1 en 35 (omvat 34 versies)
Versie 1 sinds 2009-10-28 23:53:57
Grootte: 2392
Auteur: rachidbm
Commentaar: in aanbouw
Versie 35 sinds 2011-01-12 11:51:49
Grootte: 6963
Auteur: rachidbm
Commentaar:
Verwijderingen worden op deze manier gemarkeerd. Toevoegingen worden op deze manier gemarkeerd.
Regel 1: Regel 1:
##master-page:CategoryTemplate
##master-date:Unknown-Date
## page was renamed from community/SSHToegangBeperken
## page was renamed from community/OpenSSHToegangBeperken
## page was renamed from community/OpenSSH-lock_user
Regel 5: Regel 6:
<<Include(documentatie_topbar)>>
Regel 8: Regel 9:
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 [[community/Richtlijnen|richtlijnen]]. Discussieer over dit artikel in het [[http://forum.ubuntu-nl.org/documentatie/ssh-lock-user-in-directory/|forum]].
}}}
 . <<GeschiktVoor("Ubuntu, kubuntu, xubuntu, server", "9.04, 9.10, 10.04")>>
Regel 10: Regel 13:
## Maak een nieuw topic aan in het documentatie-onderdeel van het forum; vervang deze link zodat hij naar de juiste pagina verwijst:
## Discussieer over dit artikel in het [[http://forum.ubuntu-nl.org/documentatie/xyz|forum]].
= SFTP-server opzetten =
== SSH-toegang beperken ==
Voor achtergrondinformatie over SSH zie de [[community/Openssh-server|OpenSSH]] pagina. Als een gebruiker SSH-toegang heeft, kunnen (bijna) alle mappen worden bekeken. Dit zal niet direct schade aanrichten, maar soms is het wenselijk de toegang te beperken tot een eigen ("home") map. Om meerdere gebruikers te beperken tot een gezamelijke map zie: [[#Meerderegebruikersdeleneenmap|Meerdere gebruikers delen een map]]

Dit artikel legt uit hoe een SFTP-server opgezet kan worden. Waarbij de gebruikers alleen hun eigen map kunnen bekijken, en niet bijna uw hele systeem (zoals standaard bij SSH). FTP staat voor File Transfer Protocol. En SFTP staat voor Secure File Transfer Protocol. Beide protocollen zijn bedoeld om bestanden over te zetten. Echter vindt SFTP plaats over een beveiligde verbinding (namelijk [[community/Openssh-server|SSH]]). Dit maakt SFTP [[http://nl.wikipedia.org/wiki/File_Transfer_Protocol#Veiligheid|veiliger]] dan FTP.

== Eigen map ==
De onderstaande stappen dienen te worden uitgevoerd in een terminal. Meer info hierover in [[WerkenMetDeTerminal|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
}}}
(!) 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
Regel 14: Regel 35:
 . <<GeschiktVoor("Ubuntu, server","8.10?, 9.04, 9.10")>>

= OpenSSH lock user in homedir =
== Inleiding ==
Voor achtergrond informatie over SSH zie de [[community/Openssh-server | 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.
Maak een '''Match''' aan. Hiermee krijgen bepaalde gebruikers een eigen (beperkte) toegang. Dit kun je doen door onderaan het bestand de onderstaande regels toe te voegen:
Regel 34: Regel 38:
      ChrootDirectory /home/%u
         X11Forwarding no
      AllowTcpForwarding no
         ForceCommand internal-sftp
    ChrootDirectory /home/%u
    X11Forwarding no
    AllowTcpForwarding no
    ForceCommand internal-sftp
Regel 39: Regel 43:
Sla de nieuwe configuratie op.
Regel 40: Regel 45:
Maak een groep aan voor de gebruikers die alleen bestanden mogen uitwisselen Maak een gebruikersgroep aan voor de gebruikers met beperkte toegang. In dit voorbeeld noemen we deze groep {{{sftponly}}}.
Regel 44: Regel 50:
Vervolgens dien je een gebruiker aan te maken dit zou mogen inloggen.
TODO

Maak een gebruikersnaam aan. In dit voorbeeld is de gebruikersnaam {{{gast}}}.
##sudo useradd -G sftponly gast
Regel 47: Regel 54:
sudo adduser --home / --ingroup sftponly gast
Regel 50: Regel 57:
Maak de map aan voor de gebruiker {{{gast}}}:
Regel 51: Regel 59:
sudo mkdir /home/gast
Regel 53: Regel 62:
== Referentie ==
Dit stukje is geschreven naar aanleiding van [[http://www.debian-administration.org/articles/590 | dit artikel ]]. Het was in de
Regel 56: Regel 63:
Herstart ssh:
{{{
sudo /etc/init.d/ssh restart
}}}
De gebruiker {{{gast}}} kan nu inloggen maar is beperkt tot (lezen van) de map `/home/gast`.
Regel 57: Regel 69:
De categorie '''CategoryNetwerkenEnServers''' bevat de volgende handleidingen:
<<FullSearchCached(category:CategoryNetwerkenEnServers)>>
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: /
}}}
(!) ''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 [[community/Openssh-server#SshSleutels|SSH-sleutels]]

= Meerdere gebruikers delen een map =
Hierboven is uitgelegd hoe toegang van gebruikers beperkt kan worden tot hun eigen map. In dit gedeelte wordt er beschreven hoe de toegang (voor een groep stfp gebruikers) beperkt kan worden tot dezelfde map. Bijvoorbeeld wanneer u met meerdere mensen dezelfde bestanden wilt delen.

 * Er wordt vanuit gegaan dat bovenstaande stappen voor het beperken tot een "[[#Eigenmap|Eigen map]]" zijn uitgevoerd.

== Opzetten ==
Maak een gezamelijke map voor de groep SFTP-gebruikers (de groep {{{sftponly}}}). In dit voorbeeld {{{/srv/share}}} maar een andere map is ook mogelijk. Plaats deze map op een schijfpartitie met voldoende vrije ruimte, bij voorkeur gescheiden van het besturingssysteem.

{{{
sudo mkdir /srv/share
}}}
Wijzig de configuratie:

{{{
sudo nano /etc/ssh/sshd_config
}}}
Zoek de regel met '''Match group sftponly''':

{{{
Match group sftponly
    ChrootDirectory /home/%u
}}}
Wijzig de regel met ''`Chroot`Directory /home/%u'' in:
{{{
ChrootDirectory /srv/share
}}}
Sla de nieuwe configuratie op en herstart ssh:
{{{
sudo /etc/init.d/ssh restart
}}}
Op dit moment kunnen gebruikers van de groep {{{sftponly}}} bestanden toevoegen in dezelfde map. Om het voor deze groep gebruikers mogelijk te maken om ook bestanden te plaatsen kan er een submap met ''schrijfrechten'' worden gemaakt:
{{{
cd /srv/share
sudo mkdir uploads
sudo chgrp sftponly uploads
sudo chmod g+w uploads
}}}
De gebuikers kunnen nu bestanden plaatsen in de map {{{uploads}}}. Om dit te verduidelijken kunt u het onderstaande uitvoeren:
{{{
cd /srv/share/
sudo touch zet.nieuw.bestanden.in.uploads
}}}
Test of het werkt door [[#Inloggen|in te loggen]] en een bestand te uploaden.

Als de stappen voor het beperken tot een [[#Eigen_map|Eigen map]] zijn uitgevoerd kan de eigen map van sftp-gebruiker gast {{{/home/gast}}} worden verwijderd. In plaats hiervan wordt nu de gezamelijke map {{{/srv/share}}} gebruikt.

== Meer gebruikers toevoegen ==
Met een ''adduser'' opdracht kan een nieuwe sftp gebruiker worden gemaakt voor de gedeelde map.

 * Vervang {{{GEBRUIKERSNAAM}}} door de gewenste gebruikersnaam.

{{{
sudo adduser --home / --no-create-home --ingroup sftponly GEBRUIKERSNAAM
}}}
Nadat u het wachtwoord hebt ingevoerd, kan de rest leeggelaten worden.

= Permissies =
De map {{{/srv/share}}} heeft als eigenaar en groep {{{root}}} en dit moet zo blijven! U mag wel submappen maken met andere rechten. Dit heeft te maken 'chroot'. De {{{sftponly}}} gebruikers hebben alleen schrijfrechten op de map {{{uploads}}}. Waarschijnlijk wilt u zelf makkelijk bestanden in alle mappen kunnen zetten. Dit kan bijvoorbeeld door zelf (EIGEN-GEBRUIKERSNAAM) eigenaar van de submappen te worden met de opdracht:
{{{
sudo chown EIGEN-GEBRUIKERSNAAM /srv/share/*
}}}
Als u iets kopieert van uploads naar een andere map zal het de eigenaar van degene die het bestand heeft toegevoegd overnemen. Het is ook mogelijk om de gebruiker die kopieert eigenaar te maken. Dit doet u door het volgende commando uit te voeren:

{{{
chmod +s /srv/share/*
}}}
Regel 61: Regel 163:
<<BR>>
CategoryVeiligheid

Discussieer over dit artikel in het forum.

SFTP-server opzetten

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 aanrichten, maar soms is het wenselijk de toegang te beperken tot een eigen ("home") map. Om meerdere gebruikers te beperken tot een gezamelijke map zie: Meerdere gebruikers delen een map

Dit artikel legt uit hoe een SFTP-server opgezet kan worden. Waarbij de gebruikers alleen hun eigen map kunnen bekijken, en niet bijna uw hele systeem (zoals standaard bij SSH). FTP staat voor File Transfer Protocol. En SFTP staat voor Secure File Transfer Protocol. Beide protocollen zijn bedoeld om bestanden over te zetten. Echter vindt SFTP plaats over een beveiligde verbinding (namelijk SSH). Dit maakt SFTP veiliger dan FTP.

Eigen map

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. Dit kun je doen door onderaan het bestand de onderstaande regels toe te voegen:

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 adduser --home / --ingroup sftponly gast

Maak de map aan voor de gebruiker gast:

sudo mkdir /home/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 delen een map

Hierboven is uitgelegd hoe toegang van gebruikers beperkt kan worden tot hun eigen map. In dit gedeelte wordt er beschreven hoe de toegang (voor een groep stfp gebruikers) beperkt kan worden tot dezelfde map. Bijvoorbeeld wanneer u met meerdere mensen dezelfde bestanden wilt delen.

  • Er wordt vanuit gegaan dat bovenstaande stappen voor het beperken tot een "Eigen map" zijn uitgevoerd.

Opzetten

Maak een gezamelijke map voor de groep SFTP-gebruikers (de groep sftponly). In dit voorbeeld /srv/share maar een andere map is ook mogelijk. Plaats deze map op een schijfpartitie met voldoende vrije ruimte, bij voorkeur gescheiden van het besturingssysteem.

sudo mkdir /srv/share

Wijzig de configuratie:

sudo nano /etc/ssh/sshd_config

Zoek de regel met Match group sftponly:

Match group sftponly
    ChrootDirectory /home/%u

Wijzig de regel met ChrootDirectory /home/%u in:

ChrootDirectory /srv/share

Sla de nieuwe configuratie op en herstart ssh:

sudo /etc/init.d/ssh restart

Op dit moment kunnen gebruikers van de groep sftponly bestanden toevoegen in dezelfde map. Om het voor deze groep gebruikers mogelijk te maken om ook bestanden te plaatsen kan er een submap met schrijfrechten worden gemaakt:

cd /srv/share
sudo mkdir uploads
sudo chgrp sftponly uploads
sudo chmod g+w uploads

De gebuikers kunnen nu bestanden plaatsen in de map uploads. Om dit te verduidelijken kunt u het onderstaande uitvoeren:

cd /srv/share/
sudo touch zet.nieuw.bestanden.in.uploads

Test of het werkt door in te loggen en een bestand te uploaden.

Als de stappen voor het beperken tot een Eigen map zijn uitgevoerd kan de eigen map van sftp-gebruiker gast /home/gast worden verwijderd. In plaats hiervan wordt nu de gezamelijke map /srv/share gebruikt.

Meer gebruikers toevoegen

Met een adduser opdracht kan een nieuwe sftp gebruiker worden gemaakt voor de gedeelde map.

  • Vervang GEBRUIKERSNAAM door de gewenste gebruikersnaam.

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

Nadat u het wachtwoord hebt ingevoerd, kan de rest leeggelaten worden.

Permissies

De map /srv/share heeft als eigenaar en groep root en dit moet zo blijven! U mag wel submappen maken met andere rechten. Dit heeft te maken 'chroot'. De sftponly gebruikers hebben alleen schrijfrechten op de map uploads. Waarschijnlijk wilt u zelf makkelijk bestanden in alle mappen kunnen zetten. Dit kan bijvoorbeeld door zelf (EIGEN-GEBRUIKERSNAAM) eigenaar van de submappen te worden met de opdracht:

sudo chown EIGEN-GEBRUIKERSNAAM /srv/share/*

Als u iets kopieert van uploads naar een andere map zal het de eigenaar van degene die het bestand heeft toegevoegd overnemen. Het is ook mogelijk om de gebruiker die kopieert eigenaar te maken. Dit doet u door het volgende commando uit te voeren:

chmod +s /srv/share/*


CategoryNetwerkenEnServers
CategoryVeiligheid

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