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

# 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.

  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. 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. É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?

  11. 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

  12. 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 email 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 .