SKazas (ICQ 441601224)

FTP serveris Jūsų kompiuteryje su Proftpd

Turinys

  1. FTP serveris Jūsų kompiuteryje su Proftpd
    1. Įžanga
    2. Eiga
      1. Diegimas
      2. Nustatymai
        1. Vartotojų nustatymai
          1. Virtualaus vartotojo nustatymai
          2. Katalogai
          3. Virtualusis vartotojas
          4. Tikrojo vartotojo nustatymai
          5. Katalogai
          6. Vartotojas
        2. FTP serverio nustatymai
      3. Serverio startavimas
      4. Patarimai
        1. Bylų dalinimas iš jau sukurto skirsnio ar katalogo
        2. Priėjimas per URL
      5. Nesklandumai
    3. Daugiau
      1. Nuorodos
      2. Panašūs puslapiai

Įžanga

Šis straipsnis padės paleisti FTP serverį su vienu virtualiu vartotoju su galimybe "uploadinti" ir kitu vietiniu sistemeniu vartotoju (kuriuo Jūs paprastai prisijungiate). Juos pavadinsime atitinkamai "virtualusis" ir "tikrasis". Esant poreikiui, galima labai lengvai pridėti dar daugiau vartotojų, tiek virtualių, tiek tikrųjų.

Eiga

Diegimas

Priklausomai nuo Jūsų naudojamos distribucijos, diegimas skirsis. Bet kurioje distribucijoje Jūs turite įdiegti proftpd programą. Keletas pavyzdžių: ArchLinux:

sudo pacman -Sy proftpd

Diegimą sudaro vieno paketo paprasčiausias įdiegimas, todėl ties šiuo klausimu daugiau neapsitosime.

Nustatymai

Pradžioje sukuriame "netikrą" shell'ą, paredaguodami bylą /etc/shells:

sudo nano /etc/shells

ir įterpdami į šią bylą eilutę (jei dar nėra):

/bin/false

Toliau viskas šiek tiek sudėtingiau. Nustatymus išskiriame į dvi dalis: vartotojų su jų katalogais, ir serverio nustatymai.

Vartotojų nustatymai

Vartotojų nustatymus taip pat išskaldome į dvi dalis: virtualusis ir tikrasis vartotojai.

Virtualaus vartotojo nustatymai

Katalogai

Sukuriame bendrajį katalogą /ftp, kuriame bus visų vartotojų bylos::

cd /
sudo mkdir ftp

Jame sukuriame virtualiajam vartotojui /ftp/ftp-shared bendrąjį katalogą ir du pakatalogius: parsiuntimui ir išsiuntimui:

sudo mkdir /ftp/ftp-shared
cd /ftp/ftp-shared
sudo mkdir download
sudo mkdir upload

Nustatome naujai sukurtų katalogų reikalingas teises:

cd /ftp
sudo chmod 755 ftp-shared
cd ftp-shared
sudo chmod 755 download
sudo chmod 777 upload

"Download" katalogas dabar yra tuščias, ir norint dalintis bylomis, reiktų padaryti jų kopijas į katalogą /ftp/ftp-share/download. Tai užima laiko ir vietos kietajame diske. Kad to išvengti, žiūrėkite Bylų dalinimas iš jau sukurto skirsnio ar katalogo straipsnio skyriuje Patarimai.

Virtualusis vartotojas

/!\ Sekančią eilutę nekeiskite, norimas prisijungimo vardas nustatomas kitur!

Pridedame virtualųjį varotoją su slaptažodžiu:

sudo useradd userftp -d /ftp/ftp-shared -s /bin/false
sudo passwd userftp

Jūsų paprašys įvesti slaptažodį, kuriuo jungsis virtualus vartotojas. Dėl paprastumo suveskime 123

Slaptažodį bet kada galite pakeisti nauju panaudoję dar kartą komandą 2-oje eilutėje.

Virtualiojo vartotojo sūkurimo apibendrinimas:

  1. sukuriame katalogus, nustatydami jų teises
  2. pridedame vartotoją

Norėdami pridėti daugiau virtualių vartotojų, kartojame šį skyrelį, sukurdami naujus katalogus ir vartotojus.

Tikrojo vartotojo nustatymai

Katalogai

Analogiškai kaip ir virtualiam vartotojui, sukuriame katalogą, į kurį papuls tikrasis vartotojas, ir naujam katalogui iškarto suteikiame visas teises (juk sistemos vartotojai turi teisę elgtis su savo bylomis kaip nori.

cd /ftp
sudo mkdir ftp
sudo chmod 777 ftp

Tikrajam vartotojui pakaks vieno katalogo, nes jam iš karto suteikiamos visos teisės: tiek download, tiek upload, tiek trynimų ir t.t.

Kaip ir virtualiam vartotojui, mes nenorime kopijuoti visko į ftp katalogą, todėl žiūrime Bylų dalinimas iš jau sukurto skirsnio ar katalogo.

Vartotojas

Sukuriame naują vartotoją. Nebijokit, jungsitės į savo namų katalogą kaip vietinis sistemos vartotojas, čia tik tarpinis etapas.

sudo useradd ftp_real -d /ftp/ftp -s /bin/false
sudo passwd ftp_real

Slaptažodį naudokite tokį patį, kokiu Jūs jungiatės prie savo vartotojo sistemoje.

Tikrojo vartotojo sūkurimo apibendrinimas:

  1. sukuriame katalogą, suteikdami visas teises
  2. sukuriame "tarpinius" vartotojus (šiuo atveju tarpinis vartotojas yra "ftp_real")

Kartojame šį skyrelį su naujais katalogais ir tarpiniais varototojais.

FTP serverio nustatymai

Redaguojame bylą /etc/proftpd.conf:

sudo nano /etc/proftpd.conf

Žemiau pateikiamas veikiantis pavyzdys. Viską palikite kaip yra nieko nekeisdami, išskyrus eilutes su komentarais. Jas redaguokite pagal savo poreikius:

AllowOverwrite on
AuthAliasOnly on

# Vartotojai. Cia galite prideti daugiau vartotoju, prirasydami daugiau eiluciu
#"UserAlias prisijungimovardas tarpinisvartotojas".
#Musu atveju tarpiniai vartotojai yra "userftp" (virtualiam vartotojui) ir "ftp" (tikram vartotojui)
UserAlias virtualusprisijungimovardas userftp                   #pakeiskite prisijungimo varda i Jums patinkanti
UserAlias tikrasvartotojas ftp_real                                  #pakeiskite tikrasvartotojas i vietini sistemos                                                                         #vartotoja

ServerName                      "FTP serveris draugams ;)" # serverio pavadinimas

ServerType                      standalone
DeferWelcome                    on
MultilineRFC2228 on
DefaultServer                   on
ShowSymlinks                    off
TimeoutNoTransfer 300
TimeoutStalled 60
TimeoutIdle 1200
DisplayChdir               .message
ListOptions                     "-l"
RequireValidShell               off
TimeoutLogin 20
RootLogin                       off

#Ivykiu registravima. Galbut Jums nereikia sekti ivykius, tai galite sekancias 3 eilutes istrinti:
ExtendedLog                     /var/log/ftp.log
TransferLog                     /var/log/xferlog
SystemLog                       /var/log/syslog.log
UseFtpUsers off
AllowStoreRestart               on
Port                            21
User                  nobody
Group                 nogroup
Umask                           022     022
PersistentPasswd                off
MaxClients 8
MaxClientsPerHost 8
MaxClientsPerUser 8
MaxHostsPerUser 8

# Sekmingais prisijungus, parodys sia zinute:
AccessGrantMsg "nulauzei pass? :)"

# Si zinute bus parodoma nepriklausomai ar sekmingas prisijungimas, ar ne:
ServerIdent                  on     "tu namuose."

DefaultRoot ~
DefaultRoot ~
MaxLoginAttempts    3
<Limit LOGIN>
AllowUser userftp       #jei kurete daugiau vartotoju, pridekite cia eiluciu AllowUser tarpinisvartotojas
AllowUser ftp_real
DenyALL
</Limit>
<Directory /ftp/ftp-shared>
Umask 022 022
AllowOverwrite off
        <Limit MKD STOR DELE XMKD RNRF RNTO RMD XRMD>
        DenyAll
        </Limit>
</Directory>
<Directory /ftp/ftp-shared/download/*>
Umask 022 022
AllowOverwrite off
        <Limit MKD STOR DELE XMKD RNEF RNTO RMD XRMD>
        DenyAll
        </Limit>
</Directory>
<Directory> /ftp/ftp-shared/upload/>
Umask 022 022
AllowOverwrite on
        <Limit READ RMD DELE>
        DenyAll
        </Limit>
        <Limit STOR CWD MKD>
        AllowAll
        </Limit>
</Directory>
<Directory /ftp/ftp/*>
Umask 022 022
AllowOverwrite on
        <Limit MKD STOR DELE XMKD RNEF RNTO RMD XRMD>
        AllowAll
        </Limit>
</Directory>

Serverio startavimas

Įvykdome komandą (ArchLinux distribucijoje):

sudo /etc/rc.d/proftpd start

Kitose distribucijose:

sudo /etc/init.d/proftpd start

Sėkmingai startavus serveriui, galime jungtis iš išorės šiuo atveju dviem vartotojais:

virtualusprisijungimovardas slaptažodis 123 (arba Jūsų, jei įrašėte kitokį), ir tikrasvartotojas. Jei viską įvykdėte pagal instrukciją, slaptažodis toks pats, su kurio vartotojas jungiasi prie sistemos.

Kad nereiktų paleidinėti serverio kiekvieną kartą perkrovus kompiuterį, įrašykite į sistemą automatinį serverio paleidimą. ArchLinux atveju:

sudo nano /etc/rc.conf

Pridedame į eilutę DAEMONS = ( ....... network @proftpd .....)

Eiliškumas yra svarbus, ir ftp serveris turi startuoti tik po tinklo (network) startavimo!

Gentoo atveju:

rc-update add proftpd default

Patarimai

Pirma eilutė virtualiajam vartotojui, antra - tikrajam:

sudo mount -o bind /katalogaskuriobylasplatinatevirtualiamvartotojui /ftp/ftp-share/download
sudo mount -o bind /tikrasvartotojonamukatalogas /ftp/ftp

Ir nepamirštame automatiškai prijungti šių katalogų perkrovus kompiuterį:

sudo nano /etc/fstab

Įrašome pabaigoje bylos keletą eilučių:

/katalogas/kurio/bylas/platiname/virtualiam/vartotojui /ftp/ftp-share/download failųSistema bind 0 0
/tikras/vartotojo/namu/katalogas /ftp/ftp failųSistema bind,umask=0000 0 0

failųSistema pakeiskite į to skirnsio, kuriame įrašytos dalinamos bylos, failų sistemas: ext, ext3, reiserfs ar kitas.

Priėjimas per URL

Galite nuorodas į savo FTP serverį platinti iš karto su vartotojo vardu ir slaptažodžiu:

ftp://vartotojas:slaptažodis@adresas:portas/kelias

Be abejo, nebūtina nurodyti :portas ir /kelias, jei nenaudojate nestandartinių portų ir nėra tikslo nurodyti konkretų kelią:

ftp://vartotojas:slaptažodis@adresas

Nesklandumai

Pirmą kartą startuojant serverį, galimas klaidos pranešimas nogroup no exits ar panašus. Tokiu atveju paprasčiausiai sukuriame grupę:

sudo groupadd nogroup

Jungiantis prie interneto per routerį, nepavyksta prisijungti, nors viskas nustatyta teisingai. Paprasčiausiai routeryje Jums reikia atidaryti 21 portą.

Upload kataloge atsiųstoms byloms Jūs neturite savininko teisių. Tiesiog pridėkite savo vartotoją grupei userftp:

sudo gpasswd -a JUSUVARTOTOJOVARDAS userftp

Daugiau

Nuorodos

Panašūs puslapiai

  1. ManoTux
  2. Straipsniai
  3. Straipsniai/FtpServerisSuProftpd
  4. Straipsniai/PagrindinėsKomandos