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
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!
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?
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…
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.
Hello! és mi lesz az ftpszeronk elérésicime?
A gép IP címe.
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.
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.
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.
Passzív módot beállítottad az FTP kliensedben?
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.
Mi nem megy? Ha a leírást végigcsinálod, akkor kapsz egy működő FTP szervert.
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?
A passzív portokat is be kell állítani, és azokat is be kell forwaldolni a routereden a gép felé.
Azaz melyeket is? (alapértelmezésben gondoltam)
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
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!!
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? 🙂
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.
Fordítva force_local_logins_ssl=NO és nem YES. Elnézést a doublepostért.
É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?
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
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
Regenerate snakeoil-cert
vsftpd with chroot – FTP/FTPS/anonym [Debian Lenny]
ha kell… 🙂