FTP-server

Fra Debianguiden
Skift til: Navigation, Søgning

Med Debian, følger der en del forskellige FTP-servere, heriblandt kan nævnes Proftpd, Wu-ftpd, Pyftpd, Muddleftpd og mange flere.

Her vil vi gå i dybden med Proftpd. Proftpd er en FTP-server med mange funktioner, den er meget fleksibel og meget sikker.
Når man skal konfigurere den, udmærker den sig specielt ved at dens konfigurationsfil har samme format som Apache.

Installation af Proftpd

Installation af Proftpd er, som med andre pakker, meget nemt:

debian:~# aptitude install proftpd

Herefter kører din Proftpd med det samme.
Det er vigtigt at vide, at Proftpd bruger systemets bruger som standard
d.v.s. den holder ikke sin egen database over brugere. De brugere som du kan logge ind med i Linux, kan du også logge ind med via FTP.

Tilføjer en ny FTP-bruger

Du tilføjer en ny bruger med kommandoen adduser.


Forhindring af shell-logins til FTP-brugere

Efter du har tilføjet en ny bruger på dit system, har brugeren også adgang til at logge ind via ssh eller telnet hvis disse er installeret på maskinen.
Dette er selvfølgelig ikke optimalt, men det kan forhindres.

Det første der skal gøres, er at ændre brugerens shell. Som standard får brugere /bin/bash som shell, men ved at ændre dette til /bin/false kan de ikke logge ind.
Ændringen af brugeres shell foregår i filen /etc/passwd. f. eks. kan en linje i filen se således ud.
Læg specielt mærke til det sidste på linjen, /bin/bash - det er dette du skal ændre til /bin/false.:

lise:x:1000:1000:Lise Andersen,,,:/home/lise:/bin/bash

Desværre får du nu det problem, at Proftpd heller ikke vil give brugeren lov til at logge ind.
Men dette rettes i /etc/proftpd/proftpd.conf ved at indsætte følgende linje:

RequireValidShell               off

Efter du har tilføjet dette i proftpd.conf, må du genstart Proftpd.:

/etc/init.d/proftpd restart

Forhindring af at brugere kan se hele fil-hierakiet

Som standard, kan brugere der logger ind via FTP, kigge rundt i hele dit systems fil-hieraki. f. eks.:

User foobar logged in.
ncftp /home/foobar > cd /etc
ncftp /etc > get passwd
passwd:                                                  1,05 kB    3,41 MB/s   

Det er, selvfølgelig, ikke særlig hensigtsmæssigt.
Heldigvis kan Proftpd låse brugerne inde i f. eks. deres hjemme-mapper, således at de ikke kan vandre rundt i hele fil-hierakiet.
Dette gøres ved hjælp af konfigurations indstillingen DefaultRoot.
Følgende linje indsættes derfor i /etc/proftpd/proftpd.conf med din yndlings editor:

DefaultRoot                     ~

~ er en tilde og betyder "brugerens hjemme-mappe".

Efter du har tilføjet dette i proftpd.conf, må du genstart Proftpd.:

/etc/init.d/proftpd restart

At pege på noget ude fra den tillukkede mappe.

Hvis man gerne vil pege på noget ude fra den tillukkede mappe, kan man ikke bare lave en symbolsk lænke, fordi det simpelthen ikke vil virke.
I stedet for at bruge symbolske lænker når man skal pege på noget ude fra den tillukkede mappe, kan man bruge "bind"-featuren i programmet "mount".
Dette er dog kun muligt i 2.4.x-kerneserien og opefter.

Så hvis man skal have /storage/dokumentation til at være tilgængelig i /ftp/dokumentation, skriver man denne kommando:

debian:~# mount --bind /storage/dokumentation /ftp/dokumentation

Dette kræver selvfølgelig at din /ftp/dokumentation eksisterer, og er en mappe.

Man kan selvfølgelig også putte en line i /etc/fstab, så man enten let kan mounte den, ved at skrive "mount /ftp/dokumentation", ellers så man kan få systemet til at mounte den ved boot.

/storage/dokumentation  /ftp/dokumentation      ext2    bind,nodev,noexec,noauto     0       0

Hvis man vil have den til at mounte, binden ved boot, skal man bare fjerne noauto og det tilhørende komma foran.

Man skal selvfølgelig selv rette til, hvis man vil have det på andre måder. Se evetuelt i manual-sider for mount.

Se også