FTP szerver Ubuntu alatt vsftpd-vel

Telepítsük a Vsftpd kiszolgálót:

sudo apt-get install vsftpd

Ez telepíti a vsftpd programot, valamint a függőségeit. Alapértelmezetten a /home/ftp/ mappa érhető el FTP-n keresztül, Anonymus felhasználóként.

Alapbeállítások

Nekünk most azonban ez nem jó, ezért letiltjuk a névtelen hozzáférést, és engedélyezzük a felhasználóknak, hogy FTP-n keresztül feltölthessenek fájlokat. A /etc/vsftpd.conf fájlt kell szerkeszteni:

sudo editor /etc/vsftpd.conf
right

# nincs anonymous bejelentkezés
anonymous_enable=NO
# helyi felhasznalok bejelentkezhetnek
local_enable=YES
# feltolthetnek a felhasznalok
write_enable=YES

Chroot

Ha azt szeretnénk, hogy az FTP felhasználóink csak a saját tárhelyüket érjék el (tehát ne lássák a másét), akkor a következőt kell beírni:

chroot_local_user=YES
chroot_list_enable=NO

Ha nem minden felhasználót szeretnénk a saját mappájában tartani, akkor:

chroot_local_user=NO
chroot_list_enable=YES

Majd hozzuk létre a /etc/vsftpd.chroot_list fájlt, amibe írjuk be azokat a felhasználókat, akik nem mehetnek ki a kezdőkönyvtárukból.
Ha mindenki kiléphet a kezdőkönyvtárából, kivéve:

chroot_local_user=YES
chroot_list_enable=YES

Majd hozzuk létre a /etc/vsftpd.chroot_list fájlt, amibe írjuk be azoknak a felhasználóknak a nevét, akik kiléphetnek a kezdőkönyvtárból.

Felhasználók tiltása, engedélyezése

Ha néhány felhasználónak nem szeretnénk engedélyezni az FTP elérést, akkor:

userlist_deny=YES
userlist_file=/etc/vsftpd.denied_users

Majd hozzuk létre a /etc/vsftpd.denied_users fájlt, ahová a kitiltott felhasználókat írhatjuk. Egy felhasználónevet egy sorba írjunk!
Ha csak néhány felhasználónak szeretnénk engedélyezni az FTP hozzáférést:

userlist_deny=NO
userlist_enable=YES
userlist_file=/etc/vsftpd.allowed_users

Majd a /etc/vsftpd.allowed_users fájlba írjuk be azokat a felhasználókat, akik elérheti az FTP szervert.
Azok a felhasználók akik ki vannak tiltva, egy hibaüzenetet kapnak, ha megpróbálnak csatlakozni.

TLS/SSL/FTPS

Megjegyzés: Erősen ajánlott a TLS/SSL használata, ha FTP szerverünk az interneten keresztül is elérhető!
A TLS engedélyezéséhez a következőknek kell a konfigurációs fájlban szerepelniük (néhány sor alapból nincs bent a fájlban, ezt írjuk be kézzel):

ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=YES
ssl_sslv3=YES

Nem szükséges tanúsítványt létrehozni, alapból az Ubuntu telepítésekor (pontosabban az openssl csomag telepítésekor) létrejövő „snake-oil” tanúsítványt fogja használni.

Egyéb beállítások

Még néhány beállítás, ha akarjuk módosítsuk, de alapvetően nem szükséges.
Látszódjanak a rejtett fájlok (azok, melyeknek neve . – pont – jellel kezdődik):

force_dot_files=YES

A fájl informícióinak elrejtése (tulajdonos, csoport)

hide_ids=YES

Hányan csatlakozhatnak egy IP címről

max_per_ip=5

Hány kliens lehet fent egyszerre a szerveren

max_clients=20

Beállítások alkalmazása

Mentsük el a konfigurációs fájlt, majd indítsuk újra a kiszolgálót:

sudo /etc/init.d/vsftpd restart

Tűzfal

Ha passzív módban nem tudsz csatlakozni, akkor meg kell határozni azokat a portokat az FTP szerveren, amiket ilyenkor használhat, majd ezeket kiengedni a tűzfalon (ezt a két sort a konfigurációs fájlba kell írni, majd ne felejtsük el újraindítani a szolgáltatást).

pasv_min_port=12000
pasv_max_port=12100

24 thoughts on “FTP szerver Ubuntu alatt vsftpd-vel

  1. szia,
    1. a leírás alapján sikerült beüzemelni egy FTPszervert 1 gondom van csak:
    hogyan oldható meg, hogy a felhasználó ne hagyhassa el a saját könyvtárát de oda tudjon feltölteni anyagot?
    Jelen leírás szerinti beállítások mellett feltöltéskor 550 hibakóddal kritikus hiba történik (FileZilla klienssel)
    2. csak mint érdekesség:(kezdő szerveresként) a netet böngészve megtaláltam a WEBMIN nevü admin felületet és érdekessége, hogy van hozzá vsftpd kliens, így akár grafikus felületről is kezelhető a szerver!

  2. Szia!
    A problémám az hogy ha .txt-t akarok másolni akkor az írja hogy bináris fájlt text módban próbálsz meg másolni. és nem másolja fel. Mi a megoldás?

    1. Szia!
      Ha jól sejtem (ha nem, valaki javítson ki), az lehet a mgeoldás a problémádra, hogy a következő módosítást kéne eszközölni:
      #Feltolteshez
      ascii_upload_enable=YES
      #Hogy le is tudd tolteni kesobb
      ascii_download_enable=YES
      A baj ezzel csak az, hogy ha jól értelmeztem – minimális angol tudásommal -, hogy így esetleges DoS támadás esetén szívás van…

      1. Ez mást jelent. Ha ezt YES-re rakod, akkor az adatok szövegként utaznak a szerver és a kliens között. Ezt csak akkor célszerű, ha régi FTP klienst akarunk használni, ami nem támogatja a bináris átvitelt.

  3. thx. 20:06-kor mar ra is jottem:) csak lanon lévo gép latja a szerot:( 1 napja vok linux felhasznalo, inkabb a hatteret allitgatom. bar tetszett volna ha sikerul.

    1. Tudod használni az internet felől, ehhez létre kell hoznod a routereden egy virtuális szervert, vagy port forwardot (töbféleképpen is hívják), ahol megadod a routernek, hogy milyen IP címen van a gép, és, hogy milyen szolgáltatást, aztán az internetes ip címeddel tudsz az internetről csatlakozni a gépre.

  4. Szép estét.
    Pár hete már fut egy ubuntu szerverem, team speak remekül fut. Most szeretnék FTP meg WEB szervert belőni. Megy is, de ha csatlakoznék rá a másik gépemről, akkor kapcsolat hívási hibát kapok. Valamit elnéztem, vagy nem kapcsoltam be?
    Válaszotokat előre is köszönöm.

  5. Hello
    Néhány perce telepítettem egy VSFTPD-t, de nem tudom használni.
    Soha nem dolgoztam még ftp kiszolgálóval, szóval minden új.
    Ha tudna valaki linket küldeni, vagy bármit, ami ezzel kapcsolatos, azt megköszönném.

    1. Mi nem megy? Ha a leírást végigcsinálod, akkor kapsz egy működő FTP szervert.

  6. Szia!
    Tökéletesen működik – a helyi hálózaton. Amikor netről érném el, akkor csak az egyel fentebbi könyvtárba enged be (mint ami a conf-ban be van állítva), de a benne lévő fájlok, könyvtárak nem látszanak.
    ftps-t használok, és a 21-es portot forwardoltam a routeren.
    Mit ronthattam el?

    1. A passzív portokat is be kell állítani, és azokat is be kell forwaldolni a routereden a gép felé.

      1. Azaz melyeket is? (alapértelmezésben gondoltam)

      2. Amit beállítasz:
        Tűzfal
        Ha passzív módban nem tudsz csatlakozni, akkor meg kell határozni azokat a portokat az FTP szerveren, amiket ilyenkor használhat, majd ezeket kiengedni a tűzfalon (ezt a két sort a konfigurációs fájlba kell írni, majd ne felejtsük el újraindítani a szolgáltatást).
        pasv_min_port=12000
        pasv_max_port=12100

  7. Helló!
    Nekem az a problémám hogy ha interneten szeretnék kapcsolódni a szerverre, melyet a lépések betartásával csináltam, a felhasználónevet elfogadja, de kér jelszót is…
    hogyan tudom beállítani, hogy a felhasználóknak mi a jelszava?
    köszi!!

  8. Sziasztok! Nekem az a problémám, hogy amikor létező felhasználónévvel akarok belépni, azt írja hogy titkosítást kéne használnom. (non-anonymus sessions must use encryption) És akkor itt megállt a tudományom. Valaki tud segíteni? 🙂

  9. Probléma megoldva. Ha helyi userrel akarsz belépni akkor force_local_logins_ssl=YES és nem NO. Nem értem miért így van beállítva, mert ha engedélyezni akarja hogy local user csatlakozhasson, akkor itt miért tiltja le ezzel őket.

  10. Fordítva force_local_logins_ssl=NO és nem YES. Elnézést a doublepostért.

  11. Én azt nem találom, hogy hogya állítom be userenként a mappákat amikbe beléphetnek.
    ezt megtaláltam:
    user_config_dir=vsftpd_user_conf
    Ebbe a mappáda tettem egy file-t a user nevével. Így minden use egyénileg konfigolható. De mivel adom meg a könyvtárát?

  12. Ezzel a konfiggal nem megy. Be sem lép?!
    Alap konfiggal működik csak.Max annyi módosítás, hogy letiltom a anonymous-t.
    listen=YES
    anonymous_enable=NO
    local_enable=YES
    write_enable=YES
    local_umask=022
    anon_upload_enable=NO
    anon_mkdir_write_enable=NO
    dirmessage_enable=YES
    xferlog_enable=YES
    connect_from_port_20=YES
    chown_uploads=YES
    xferlog_file=/var/log/vsftpd.log
    xferlog_std_format=YES
    # CHROOT
    chroot_local_user=NO
    chroot_list_enable=YES
    chroot_list_file=/etc/vsftpd.chroot_list
    secure_chroot_dir=/var/run/vsftpd
    pam_service_name=vsftpd
    rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
    rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
    # some user allowed
    userlist_deny=NO
    userlist_enable=YES
    userlist_file=vsftpd.user_list
    user_config_dir=vsftpd_user_con

  13. Ez a konfig megy, csak ezzel meg semmit nem érek 😀
    listen=YES
    anonymous_enable=NO
    local_enable=YES
    write_enable=YES
    local_umask=022
    anon_upload_enable=NO
    anon_mkdir_write_enable=NO
    dirmessage_enable=YES
    xferlog_enable=YES
    connect_from_port_20=YES
    chown_uploads=YES
    xferlog_file=/var/log/vsftpd.log
    xferlog_std_format=YES
    secure_chroot_dir=/var/run/vsftpd
    pam_service_name=vsftpd
    rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
    rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Tartalomjegyzék