Mi-Soft.nl



avatar FTP installeren en configureren 29-10-2013
In de tutorial van vandaag gaan we kijken hoe we onze Debian server kunnen voorzien van FTP.
Hiervoor gaan we "ProFTP" gebruiken.
Om te beginnen loggen we in op de server via SSH, dit doe ik als volgt:
ssh 192.168.1.5
Eenmaal ingelogd zullen we een valid login moeten maken van /bin/false, dit doen we door de volgende stappen uit te voeren:
  1. Open /etc/shell:
    sudo nano /etc/shell
  2. Voeg de volgende regel toe
    /bin/false
  3. Sla op met Ctrl + O en sluit af met Ctrl + X
vervolgens zullen we proFTP moeten installeren, dit doen we met:
sudo apt-get install proftpd
Direct na het installeren ziet u het volgende scherm:

image
U kiest daar voor "Standalone".

U heeft nu al via ftp toegang op alle eerder gemaakt accounts. Als u nog wat veranderingen wilt maken (zoals in deze tutorial), dan kunt u proFTP uitzetten met het volgende commando:
/etc/init.d/proftpd stop
Nadat u proftpd gestopt heeft kunnen we verder gaan met het opzetten van FTP.
In principe kunt u alle stappen overslaan als u de betreffende functionaliteit niet nodig heeft.

Als eerste gaan we "hidden files & folders" verbergen.
Om dit te doen kunt u het config bestand van proftpd openen middels het volgende commando:
sudo nano /etc/proftpd/proftpd.conf
Helemaal onderaan de file plaats u vervolgens de volgende lijn code:
<Directory />
HideFiles ^\..*
</Directory>
Vervolgens gaan we de standaard directory van een gebruiker vervangen, dit doen we als volgt:
DefaultRoot /mnt mastermindzh
Zoals u dus kunt zien veranderen we de standaard directory van de gebruiker mastermindzh naar /mnt .
Als u de gebruiker weglaat, dan geld de regel voor iedere gebruiker.
Nu gaan we ervoor zorgen dat alle gebruikers, behalve degene die wij toegang geven, geen bestanden kunnen verwijderen.
Dit kunnen we doen door de volgende regels toe te voegen aan ons proftpd.conf bestand:
<limit DELE>
AllowUser mastermindzh
DenyAll
</limit>
Vervolgens willen we ervoor zorgen dat sommige gebruikers geen toegang hebben tot bepaalde mappen. Dit kunnen we doen door rechten te zetten op een bepaalde map, dit doen we door de volgende code aan ons proftpd.conf bestand toe te voegen:
<Directory /pad/naar/map/>
<Limit STOR>
DenyAll
AllowUser mastermindzh
</Limit>
</Directory>
Met deze code zorgt u ervoor dat geen enkele gebruiker, behalve mastermindzh, bestanden mag opslaan op de server.

U kunt er natuurlijk ook voor zorgen dat gebruikers alleen leesrechten hebben (read-only), dat kan door het volgende in het proftpd.conf bestand te zetten:
<Directory /mnt/test/>
<Limit WRITE>
DenyAll
AllowUser mastermindzh
</Limit>
</Directory>
Als u alle aanpassingen heeft gedaan slaat u het bestand op met Ctrl + O, en sluit u nano met Ctrl + x
Daarna start u proftpd weer met het volgende command:
/etc/init.d/proftpd start

De syntax

Zoals u misschien wel is opgevallen zit er een redelijk simpele syntax in dit hele gebeuren, de syntax is namelijk als volgt:
<Directory /pad/naar/directory>
<limit ftp commands hier>
DenyAll
AllowUser username username2
</limit>
</Directory>
U kunt dus simpelweg voor iedere gebruiker een aantal "Raw FTP commands" ingeven na het woord limit en voor de eind >

Meerdere gebruikers r/w op 1 directory

Als u samen werkt met meerdere mensen aan eenzelfde project dan kan het handig zijn als iedere gebruiker schrijfrechten heeft in alle mappen. Om dit voor elkaar te krijgen maken we een nieuwe "group" aan. Dit kan met het volgende commando:
groupadd ftp
Vervolgens moeten we gebruikers aan die groep toevoegen met:
usermod -a -G ftp gebruikersnaam
Dan moeten we in het configuratie bestand (sudo nano /etc/proftpd/proftpd.conf) het umask aanpassen naar "006 007". U krijgt dan in het bestand het volgende:
umask = 006 007
Vervolgens moet u de documentroot de groep ftp (die we net gemaakt hebben) geven met het volgende commando
chown root:ftp /pad/naar/documentroot
Herstart vervolgens de ftp server met:
/etc/init.d/proftpd restart

Gerelateerde artikelen

Over de auteur:
Rick's headshot
Rick van Lieshout
Rick van Lieshout is de eigenaar en administrator van Mi-Soft.nl
Ook is hij een manusje van alles en kan daarom in veel categorieen een steentje bijdragen.
U kunt meer over Rick te weten komen op zijn portfolio.
Rick@Mi-Soft.nl | Portfolio | Facebook | Twitter | Google+ | Youtube | Flickr | LinkedIn