FTP-server
Fra Debianguiden
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.
Indholdsfortegnelse |
[redigér] 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.
[redigér] Tilføjer en ny FTP-bruger
Du tilføjer en ny bruger med kommandoen adduser.
[redigér] 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
[redigér] 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
[redigér] 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.