Proftpd ja anonymous palvelu

Tehdään anonyymi palvelu, jossa on upload kansio johon voi upata dataa ja download kansio, josta voi vain ladata dataa.
Tehdään palvelimelle yhteinen kansio /ftp
Juuri tasolla komento: mkdir ftp
Sitten tehdään käyttäjä, esim. dataaja.
useradd dataaja -d /ftp/dataaja/ -m -s /bin/false

Tehdään sen alle kaksi kansiota upload ja download.
seuraavat komennot tehdään kansiossa /ftp
mkdir upload
mkdir download

Annetaan oikeudet kansioon chmod komennolla
chmod 777 upload
chmod 755 download

Sitten avaa proftpd.conf

Tee seuraavat muutokset anonymous kohtaan:

# A basic anonymous configuration, no upload directories.

<Anonymous /ftp/dataaja>
User                ftp
Group                nogroup
# We want clients to be able to login with “anonymous” as well as “ftp”
UserAlias            anonymous ftp
# Cosmetic changes, all files belongs to ftp user
DirFakeUser    on ftp
DirFakeGroup on ftp

RequireValidShell        off

# Limit the maximum number of anonymous logins
MaxClients            10

# We want ‘welcome.msg’ displayed at login, and ‘.message’ displayed
# in each newly chdired directory.
DisplayLogin            welcome.msg
DisplayChdir        .message

# Limit WRITE everywhere in the anonymous chroot

<Directory /ftp/dataaja>
Umask 022 022
AllowOverwrite off
<Limit MKD STOR DELE XMKD RNRF RNTO RMD XRMO>
DenyALL
</Limit>
</Directory>

<Directory /ftp/dataaja/download>
Umask 022 022
AllowOverwrite off
<Limit MKD STOR DELE XMKD RNRF RNTO RMD XRMO>
DenyALL
</Limit>
</Directory>

<Directory /ftp/dataaja/upload>
Umask 022 022
AllowOverwrite on
<Limit READ RMD DELE>
DenyALL
</Limit>
<Limit STOR CWD MKD>
AllowAll
</Limit>
</Directory>
</Anonymous>

Sen jälkeen käynnistä proftpd palvelu uudestaan:
service proftpd restart tai
/etc/init.d/prodtpd restart

Testaa kansioiden toiminta ftp client ohjelmalla, esimerkiksi filezillalla.
Upload kansioon voi vaan ladata tiedostoja ja download kansioon ei voi ladata tiedostoja, mutta sieltä voi noutaa tiedostoja.

Konfigissa voidaan rajoittaa seuraavia komentoja tai sitten sallia niitä kaikille.CWD – change working directory / vaihda työhakemisto
DELE – delete a remote file / poista palvelimelta tiedosto
LIST – list remote files / estä ls komento, estä listaus
MKD – make a remote directory / tee palvelimelle hakemisto
PWD – print working directory / tulosta työhakemisto
READ – read remote file / lataa palvelimelta tiedosto
RETR – retrieve a remote file / lataa palvelimelta tiedosto
RMD – remove a remote directory / poista palvelimelta hakemisto
RNFR – rename from / uudelleen nimeä jostakin nimestä
RNTO – rename to / nimeä uudella nimellä
STOR – store a file on the remote host / tallenna tiedosto palvelimelle

Plus RFC tyypin ftp komennot