Házi FTP kiszolgáló VSFTPd-vel

A család többsége nálunk Ubuntu-n él, nekem meg eljött az idő, hogy egy mindenkinek érthető, gyors és stabil filemegosztást hozzak létre itthonra. A követelmény adott: SOHO környezet, titkosítás nélküli FTP, gyorsaság, stabilitás, userenkénti egyedi beállítások és lehetőség az egyedi tartalom kiszolgálására.

Szeretném kihangsúlyozni, hogy nem teljesen szájbarágós útmutató, hanem feltételezek némi alapképzettséget (telepítés, /etc könyvtárismeret, szerverek alapismerete, ftp alapismeret, stb). Pont ezért nem is feltétlen Ubuntu specifikus a leírás, hanem átültethető más Linux distrókra is. Azoknak szánom akik abban a helyzetben voltak mint én, hogy már csak egy kis apró lökés, segítség kell, hogy meglegyen a tökéletes konfigjuk.

Mivel túl sok időt nem akarok egy ilyen egyszerű rendszer felépítésére fordítani, már ami a tanulást illeti sem, kézenfekvőnek bizonyult a VSFTPd tudásom mélyítése.
Vágjunk bele:
Először is telepítjük lehetőleg a legfrissebb verziót. Majd elővesszük a vsftpd.conf konfigurációs filet -ami nekem az /etc -ben van- és elkezdjük felvemmi bele a következő értékeket:
A file beállításai a man vsftpd.conf -ban is megtalálhatóak.
FIGYELJÜNK RÁ HOGY A kulcs=érték PÁROK KÖZTI EGYENLŐSÉG JEL KÖZÖTT NEM SZEREPELHET SZÓKÖZ!
Mivel én standalone futtatom a szervert, ezért figyelőállásba teszem:

listen=yes

Irányított hozzáférést akarok csak, semmi anonymous kapcsolódást nem engedek meg:

anonymous_enable=no

A szerveren létrehozzott usereimet használom, mivel kihasználom majd a home könyvtáraikat:

local_enable=yes
 

Ezeket a usereket a home könytáraikba zárom: (vagyis inkább a /etc/passwd fileban megadott könyvtáraikba)

passwd_chroot_enable=no

Alapértelmezetten nincs írási joga senkinek:

write_enable=no

Én speciel nem rejtem el a fileok listájában a tulajdonosok id-it:

hide_ids=no

Felhasználó lista alapján engedélyezem a belépést:

userlist_enable=yes

Ez a felhasználói lista azokat az embereket tartalmazza akik beléphetnek:

userlist_deny=no

A felhasználói lista ez a file legyen: (ebben minden felhasználót csak szimplán egy új sorba írunk és kész is a lista)

userlist_file=/etc/vsftpd.user_list

A felhasználókat bezárjuk az otthonukba:

chroot_local_user=yes

Lesz egy listánk azokról akiket mégsem zárunk be a könyvtáraikba: (és őket a /etc/vsftpd.chroot_list fileban adjuk meg)

chroot_list_enable=yes

Ebben a könyvtárban fogjuk létrehozni minden usernek a saját testreszabását tartalmazó fileját: (pl /etc/vsftpd_user_con/ikon az ikon nevű felhasználónak, akinek itt megadjuk egy write_enable=yes -el, hogy ő bizony feltölthet)

user_config_dir=/etc/vsftpd_user_conf

Beállítjuk a maximális egyidejű felhasználó számot:

max_clients=50

és az egy gépről bejelentkezők maximális számát:

max_per_ip=10

Érdemes logot is beállítani, így az esetleges hibákat mindíg hamar tudjuk orvosolni:

xferlog_enable=yes
dual_log_enable=yes

A beállításokkal megvolnánk, de most jön egy fogós kérdés: ha máshol vannak a megosztandó fileok, mint a userek home könyvtárai, akkor azokat hogyan érik el? Főleg a bezártság miatt még symlinkezni sem tudunk. Erre jön segítségül -megfelelően beállított linux jogosultságok esetén- a mount –bind parancs. Tulajdonképpen egy könyvtárat egy másik helyre is felmountolhatunk vele és így teljes értékű eléréssé válik, nem úgy a symlink. Ahhoz pedig, hogy bootkor is megőrizzük ezeket a mountokat, nyugodtan tegyük bele őket az /etc/fstab -ba, például így:

/mnt/examplemount/olddir  /somewhere/newdir   auto   bind   0 0

6 thoughts on “Házi FTP kiszolgáló VSFTPd-vel

  1. Én Linux szerver és kliens otthoni környezetben inkább nfs-t használok. Bár okozott már meglepetést Ubuntu szerver és Fedora desktop párossal. 🙂

  2. Az NFS-t is próbáltam de ott baromi nehéz a GID és UID párok összehozása, tulajdonképpen csak a hajamat téptem, és nem is volt valami gyors.

  3. [re=6473]Ikon[/re]: sok kapcsolat esetén NFS megeszi a gépet reggelire, a sok I/O miatt kérés miatt

  4. Sziasztok!
    Abban kérhetnék segítséget, hogy hogyan lehet megoldani, hogy egy felhasználó csak írhasson, olvashasson, beléphessen, de ne legyen törlési joga?
    Előre is köszönöm!

  5. Sziasztok! Kérnék egy segítséget!
    x nevü userem beloginol ft-re, viszont én nem azt a könyvtárat szeretném kezdőkönyvtárnak, ahova nyit, hanem egy könyvtárral beljebb, viszont ezt a szerveren szeretném beállítani, nem pedig a klienseknél, ott tudom a távoli könyvtárat kel l beírjam, de nem ezt szeretném.
    /home/x/ ide nyit alapban, ide szeretném /home/x/megosztas
    Ebben kérem a segítségeteket! Köszönöm!

Vélemény, hozzászólás?

Az e-mail címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük

Ez az oldal az Akismet szolgáltatást használja a spam csökkentésére. Ismerje meg a hozzászólás adatainak feldolgozását .