Egy egyszerű Ubuntu alapú FTP szerver (vsftpd). Linux FTP szerver telepítése és konfigurálása Az ftp telepítése ubuntu szerveren 16.04

  • Dátum: 14.05.2021

Az alatta lévő számítógépen számos program telepíthető Linux kezelés FTP szerver, és természetesen mindegyiknek megvan a maga sajátossága és árnyalata.

A cikk keretein belül megpróbáljuk a lehető legegyszerűbb nyelven leírni az FTP beállításának jellemzőit. Linux szerver VSFTP.

Miért őt választották példaként? Egyszerű: ez egy meglehetősen jó minőségű termék, amely támogatja az IPv6-ot, SSL-t, lehetővé teszi a sávszélesség szabályozását, virtuális felhasználók létrehozását stb.

Ez az FTP szerver is elég népszerű a nyílt forráskódú közösség körében, csak látni kell, hogy ki használja: debian, gnome, freebsd és még sokan mások.

Linux FTP szerver beállítása

Tehát menjünk közvetlenül a Linux FTP-szerver beállításához.

Az első lépés a telepítés szoftver, Debianban ezt a parancs végzi el
aptitude Telepítse a vsftpd-t
Letöltés és telepítés után automatikusan létrejön egy új felhasználó, a kezdőkönyvtárban egy új könyvtár, és a / etc -ban megjelenik az ftpusers fájl, amelybe beírhatja azokat a felhasználókat, akik nem férhetnek hozzá az FTP-hez.

Rögtön meg kell jegyezni, hogy egy Linux FTP szerver beállításakor első lépésként a / var könyvtárba helyezzük át azt a könyvtárat, ahol a saját könyvtár fájljai lesznek tárolva.

Ehhez a következőket kell tennie: nyissa meg a konzolt, és írja be a következőket a szuperfelhasználó nevében:

Usermod -d / var / ftp ftp && rmdir / home / ftp
Ezt követően elkezdhetjük a felhasználó beállítását: hozzunk létre egy speciális csoportot ftpuser néven, ez természetesen a superuser nevében történik, a paranccsal addgroup ftpuser.

Ezután hozzon létre egy új felhasználót ftpuser néven, és adja hozzá a megfelelő csoporthoz:

Useradd -a / var / ftp -g ftpuser ftpuser
A felhasználó létrehozásakor hozzá kell rendelni egy jelszót: passwd ftpuser (mint szuperfelhasználó).

Az FTP-kiszolgáló konfigurálásakor a következő lépés egy könyvtár létrehozása és a megfelelő jogosultságok beállítása. Beszéltünk arról, hogyan és hol lehet könyvtárat létrehozni, most a hozzáférési jogokat (gyökérből) készítjük el:

Chmod 555 / var / ftp && chown gyökér: ftpuser / var / ftp

A Linux FTP szerver beállításának utolsó része
Ezután létrehozunk egy nyilvános könyvtárat:

Mkdir / var / ftp / pub && chown ftpuser: ftpuser / var / ftp / pub
A következő lépésben Linux FTP szerver beállításakor, konfiguráljuk. Annak érdekében, hogy a program ne utasítsa el a teljes működést egy véletlen hiba következtében, a legjobb, ha másolatot készít a beállításfájlról:

Cp /etc/vsftpd.conf /etc/vsftpd.conf_old
Ezután megnyithatja a vsftpd.conf fájlt, és elvégezheti a szükséges módosításokat. Ezzel kapcsolatban nem szabadna fellépnie, mivel a fájl jól kommentált, és még egy nem túl gyakorlott felhasználónak is rá kell jönnie.

Meg kell jegyezni, hogy a legjobb, ha minden változtatáskor biztonsági másolatot készít a beállításokról, így teljesen megvédheti magát a helytelen konfigurációból eredő esetleges problémáktól.

Ha a fentiek mindegyike megtörtént, újraindíthatja az FTP-kiszolgálót:

/etc/Init.d/ indítsa újra
és szabadon használhatja saját FTP-shnikjét.

A File Transfer Protocol (FTP) egy TCP protokoll a fájlok számítógépek közötti letöltésére. Korábban feltöltésre is használták, de mivel ez a módszer nem használ titkosítást, a felhasználói hitelesítési adatok, valamint az átvitt adatok tisztán és könnyen lehallgathatók. Ha tehát a fájlok biztonságos feltöltésének és letöltésének módját keresi, tekintse meg az OpenSSH-ról szóló részt a Távfelügyeletben.

Az FTP kliens/szerver modellen működik. A kiszolgáló összetevőt FTP démonnak nevezik. Folyamatosan figyeli a távoli ügyfelek FTP-kéréseit. Amikor egy kérés érkezik, kezeli a bejelentkezést és létrehozza a kapcsolatot. A munkamenet időtartama alatt végrehajtja az FTP kliens által küldött bármely parancsot.

Az FTP-kiszolgálóhoz való hozzáférés kétféleképpen kezelhető:

Anonymous módban a távoli kliensek az alapértelmezett "anonymous" vagy "ftp" felhasználói fiók használatával érhetik el az FTP-kiszolgálót, és jelszóként egy e-mail címet küldenek. Hitelesített módban a felhasználónak rendelkeznie kell fiókkal és jelszóval. Ez utóbbi választás nagyon bizonytalan, és csak különleges körülmények között szabad használni. Ha biztonságosan szeretné átvinni a fájlokat, tekintse meg az SFTP-t az OpenSSH-Server című részben. Az FTP-kiszolgáló könyvtáraihoz és fájljaihoz való felhasználói hozzáférés a bejelentkezéskor használt fiókhoz meghatározott engedélyektől függ. Általános szabály, hogy az FTP démon elrejti az FTP-kiszolgáló gyökérkönyvtárát, és az FTP Home könyvtárra változtatja. Ez elrejti a többit fájlrendszer távoli munkamenetekből.

vsftpd - FTP-kiszolgáló telepítése

A vsftpd egy Ubuntuban elérhető FTP-démon. Könnyen telepíthető, beállítható és karbantartható. A vsftpd telepítéséhez futtassa a következő parancsot:

sudo apt install vsftpd

Névtelen FTP konfiguráció

A vsftpd alapértelmezés szerint nincs konfigurálva úgy, hogy engedélyezze a névtelen letöltést. Ha engedélyezni szeretné az anonim letöltést, módosítsa az /etc/vsftpd.conf fájlt a következő módosításokkal:

anonymous_enable = Igen

A telepítés során létrejön egy ftp felhasználó a / srv / ftp saját könyvtárával. Ez az alapértelmezett FTP-könyvtár.

Ha meg szeretné változtatni ezt a helyet, például a / srv / files / ftp mappába, egyszerűen hozzon létre egy könyvtárat egy másik helyen, és módosítsa az ftp felhasználó saját könyvtárát:

sudo mkdir / srv / files / ftp sudo usermod -d / srv / files / ftp ftp

A módosítás után indítsa újra a vsftpd-t:

Végül másolja át a névtelen FTP-n keresztül elérhetővé kívánt fájlokat és könyvtárakat a / srv / files / ftp, vagy az / srv / ftp mappába, ha az alapértelmezettet szeretné használni.

Felhasználó által hitelesített FTP-konfiguráció

Alapértelmezés szerint a vsftpd úgy van beállítva, hogy hitelesítse a rendszerfelhasználókat, és lehetővé tegye számukra a fájlok letöltését. Ha azt szeretné, hogy a felhasználók feltölthessenek fájlokat, szerkessze az /etc/vsftpd.conf fájlt:

write_enable = IGEN

Most indítsa újra a vsftpd-t:

sudo systemctl indítsa újra a vsftpd.service-t

Most, amikor a rendszerfelhasználók bejelentkeznek az FTP-re, a saját könyvtáraikból indulnak el, ahol letölthetik, feltölthetik, könyvtárakat hozhatnak létre stb.

Hasonlóképpen, alapértelmezés szerint a névtelen felhasználók nem tölthetnek fel fájlokat az FTP-kiszolgálóra. A beállítás módosításához törölje a megjegyzéseket a következő sorból, és indítsa újra a vsftpd-t:

anon_upload_enable = IGEN

Az anonim FTP-feltöltés engedélyezése rendkívüli biztonsági kockázatot jelenthet. A legjobb, ha nem engedélyezi a névtelen feltöltést a közvetlenül az internetről elérhető szervereken.

A konfigurációs fájl számos konfigurációs paramétert tartalmaz. Az egyes paraméterekre vonatkozó információk a konfigurációs fájlban találhatók. Alternatív megoldásként tekintse meg a man 5 vsftpd.conf man oldalt az egyes paraméterek részleteiért.

FTP biztonsága

Az /etc/vsftpd.conf fájlban vannak olyan opciók, amelyek segítenek a vsftpd biztonságosabbá tételében. Például a felhasználók a saját könyvtárukra korlátozhatók a megjegyzések törlésével:

chroot_local_user = IGEN

A felhasználók meghatározott listáját a saját könyvtárukra is korlátozhatja:

chroot_list_enable = IGEN chroot_list_file = / etc / vsftpd.chroot_list

Miután törölte a fenti beállítások megjegyzését, hozzon létre egy /etc/vsftpd.chroot_list-ot, amely soronként egy-egy felhasználók listáját tartalmazza. Ezután indítsa újra a vsftpd-t:

sudo systemctl indítsa újra a vsftpd.service-t

Ezenkívül az / etc / ftpusers fájl azoknak a felhasználóknak a listája, akiknek nem engedélyezett az FTP-hozzáférése. Az alapértelmezett lista tartalmazza a root, démon, senki stb. A további felhasználók FTP-hozzáférésének letiltásához egyszerűen adja hozzá őket a listához.

Az FTP FTPS-sel is titkosítható. Az SFTP-től eltérően az FTPS a Secure Socket Layer (SSL) feletti FTP. Az SFTP egy FTP-szerű munkamenet titkosított SSH-kapcsolaton keresztül. A fő különbség az, hogy az SFTP felhasználóinak shell-fiókkal kell rendelkezniük a rendszeren a bejelentkezési parancsértelmező helyett. Előfordulhat, hogy bizonyos környezetekben, például megosztott webtárhelyen nem ideális minden felhasználó számára shell biztosítása. Az ilyen fiókokat azonban csak az SFTP-re korlátozhatja, és letilthatja a shell interakciót. További információért lásd az OpenSSH-Server részt.

Az FTPS beállításához szerkessze az /etc/vsftpd.conf fájlt, és alul adja hozzá:

Figyelje meg a tanúsítványt és a kulcsokkal kapcsolatos opciókat is:

rsa_cert_file = / etc / ssl / certs / ssl-cert-snakeoil.pem rsa_private_key_file = / etc / ssl / private / ssl-cert-snakeoil.key

Alapértelmezés szerint ezek a beállítások az ssl-cert csomag által biztosított tanúsítványra és kulcsra vannak beállítva. Éles környezetben ezeket az adott gazdagéphez generált tanúsítvánnyal és kulccsal kell helyettesíteni. A tanúsítványokkal kapcsolatos további információkért lásd: Tanúsítványok.

Most indítsa újra a vsftpd-t, és a nem névtelen felhasználók kénytelenek lesznek FTPS-t használni:

sudo systemctl indítsa újra a vsftpd.service-t

Ahhoz, hogy a / usr / sbin / nologin parancsértelmezővel rendelkező felhasználók hozzáférjenek az FTP-hez, de nincs shell-hozzáférésük, szerkessze a / etc / shells fájlt a nologin shell hozzáadásával:

# / etc / shells: érvényes bejelentkezési shellek / bin / csh / bin / sh / usr / bin / es / usr / bin / ksh / bin / ksh / usr / bin / rc / usr / bin / tcsh / bin / tcsh / usr / bin / esh / bin / dash / bin / bash / bin / rbash / usr / bin / képernyő / usr / sbin / nologin

Erre azért van szükség, mert a vsftpd alapértelmezés szerint PAM-ot használ a hitelesítéshez, és az /etc/pam.d/vsftpd konfigurációs fájl tartalmazza:

hitelesítés szükséges pam_shells.so

A shells PAM modul korlátozza a hozzáférést az / etc / shells fájlban felsorolt ​​parancsértelmezőkhöz.

A legtöbb népszerű FTP kliens beállítható úgy, hogy FTPS-en keresztül csatlakozzanak. Az lftp parancssori FTP kliens képes FTPS-t is használni.

Az F TP (File Transfer Protocol) egy szabványos hálózati protokoll, amelyet a fájlok távoli hálózatra és onnan történő átvitelére használnak. A biztonságosabb és gyorsabb adatátvitel érdekében használjon SCP-t.

Számos nyílt forráskódú FTP-kiszolgáló áll rendelkezésre Linuxhoz. A legnépszerűbb és legszélesebb körben használt a PureFTPd, a ProFTPD és a vsftpd. Ebben az oktatóanyagban a vsftpd telepítését fogjuk végezni. Ez egy stabil, biztonságos és gyors FTP szerver. Megmutatjuk azt is, hogyan konfigurálhatja a vsftpd-t úgy, hogy korlátozza a felhasználók hozzáférését a saját könyvtárukhoz, és titkosítsa az összes átvitelt SSL / TLS használatával.

Bár ez a cikk az Ubuntu 18.04-hez íródott, ugyanazok az utasítások vonatkoznak az Ubuntu 16.04-re és minden Debian-alapú disztribúcióra, beleértve a Debiant is. Linux Mintés Elementary OS.

Előfeltételek

A vsftpd telepítése Ubuntu 18.04-re

A vsftpd csomag elérhető a tárolókban. A telepítéshez egyszerűen futtassa a következő parancsokat:

Sudo apt frissítés sudo apt install vsftpd

A vsftpd szolgáltatás automatikusan elindul a telepítési folyamat befejezése után. Ellenőrizze a szolgáltatás állapotának kinyomtatásával:

Sudo systemctl status vsftpd

A kimenet valahogy így fog kinézni, jelezve, hogy a vsftpd szolgáltatás működik és fut:

* vsftpd.service - vsftpd FTP szerver Betöltve: betöltve (/lib/systemd/system/vsftpd.service; engedélyezve; gyártó előre beállított: engedélyezve) Aktív: aktív (fut) 2018-10-15 03:38:52 PDT óta; 10 perce Fő PID: 2616 (vsftpd) Feladatok: 1 (korlát: 2319) CGroup: /system.slice/vsftpd.service `-2616 / usr / sbin / vsftpd /etc/vsftpd.conf

A vsftpd beállítása

A vsftpd szerver az /etc/vsftpd.conf fájl szerkesztésével állítható be. A legtöbb beállítás a konfigurációs fájlban van dokumentálva. Az összes elérhető opcióért keresse fel a hivatalos vsftpd oldalt.

A következő szakaszokban áttekintünk néhány fontos beállítást, amelyek a vsftpd biztonságos telepítésének konfigurálásához szükségesek.

Kezdje a vsftpd konfigurációs fájl megnyitásával:

Sudo nano /etc/vsftpd.conf

1. FTP hozzáférés

Csak a helyi felhasználók számára engedélyezzük az FTP-szerver elérését, keressük meg az anonymous_enable és local_enable direktívákat, és ellenőrizzük, hogy a konfiguráció megfelel-e a következő soroknak:

/etc/vsftpd.conf

Anonymous_enable = NEM local_enable = IGEN

2. Letöltés engedélyezése

Törölje a write_enable beállítás megjegyzését, hogy engedélyezze a fájlrendszer módosításait, például a fájlok feltöltését és törlését.

/etc/vsftpd.conf

Write_enable = IGEN

3. Chroot

Ha szeretné megakadályozni, hogy az FTP-felhasználók a saját könyvtárukon kívüli fájlokhoz hozzáférjenek, törölje a chroot beállítás megjegyzését.

/etc/vsftpd.conf

Chroot_local_user = IGEN

Alapértelmezés szerint a chroot engedélyezése esetén a biztonsági rések elkerülése érdekében a vsftp megtagadja a fájlok letöltését, ha a felhasználók zárolt könyvtára írható.

  • 1. módszer.- A feltöltés engedélyezésének javasolt módja a chroot engedélyezése és az FTP-könyvtárak konfigurálása. Ebben az oktatóanyagban létrehozunk egy ftp könyvtárat a felhasználó otthonában, amely chrootként fog szolgálni, és egy feltöltési könyvtárat ír a fájlok feltöltéséhez.

    /etc/vsftpd.conf

    User_sub_token = $ USER local_root = / home / $ USER / ftp

  • 2. módszer. Egy másik lehetőség az alábbi direktíva hozzáadása a vsftpd konfigurációs fájljához. Használja ezt a paramétert, ha írási jogosultságot kell adnia a felhasználónak a saját könyvtárában.

    /etc/vsftpd.conf

    Allow_writeable_chroot = IGEN

4. Passzív FTP kapcsolatok

A vsftpd bármely portot használhat passzív FTP-kapcsolatokhoz. Megadjuk a minimális és maximális porttartományt, majd megnyitjuk a tartományt a tűzfalunkban.

Adja hozzá a következő sorokat a konfigurációs fájlhoz:

/etc/vsftpd.conf

Pasv_min_port = 30000 pasv_max_port = 31000

5. Felhasználói bejelentkezés korlátozása

Ha csak bizonyos felhasználóknak szeretne bejelentkezni az FTP-kiszolgálóra, adja hozzá a következő sorokat a fájl végéhez:

/etc/vsftpd.conf

Userlist_enable = IGEN userlist_file = / etc / vsftpd.user_list userlist_deny = NEM

Ha ez az opció engedélyezve van, akkor kifejezetten meg kell adnia, hogy mely felhasználók jelentkezhetnek be úgy, hogy a /etc/vsftpd.user_list fájlban felhasználóneveket adnak hozzá (soronként egy felhasználó).

6. Az átvitel biztosítása SSL / TLS használatával

Az FTP-átvitelek SSL/TLS használatával történő titkosításához SSL-tanúsítvánnyal kell rendelkeznie, és be kell állítania az FTP-kiszolgálót a használatához.

Használhat megbízható hitelesítésszolgáltató által aláírt tanúsítványt, vagy létrehozhat önaláírt tanúsítványt.

Ha van egy tartománya vagy aldomainje, amely az FTP-szerver IP-címére mutat, könnyen létrehozhat ingyenes SSL-tanúsítványt a titkosításhoz.

Ebben a cikkben egy önaláírt SSL-tanúsítványt fogunk generálni az openssl paranccsal.

A következő parancs egy 2048 bites privát kulcsot és egy 10 évig érvényes önaláírt tanúsítványt generál. A privát kulcs és a tanúsítvány is ugyanabba a fájlba kerül mentésre:

Sudo openssl req -x509 -nodes -days 3650 -newkey rsa: 2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem

Most, hogy az SSL-tanúsítvány létrejött, nyissa meg a vsftpd konfigurációs fájlt:

Sudo nano /etc/vsftpd.conf

Keresse meg az rsa_cert_file és rsa_private_key_file direktívát, módosítsa a pam értéküket a fájl elérési útjában, és állítsa az ssl_enable direktívát YES-re:

/etc/vsftpd.conf

Rsa_cert_file = / etc / ssl / private / vsftpd.pem rsa_private_key_file = / etc / ssl / private / vsftpd.pem ssl_enable = IGEN

Eltérő megjegyzés hiányában az FTP-kiszolgáló csak a TLS-t használja a biztonságos kapcsolatok biztosítására.

Indítsa újra a vsftpd szolgáltatást

Miután végzett a szerkesztéssel, a vsftpd konfigurációs fájlnak (a megjegyzések nélkül) valahogy így kell kinéznie:

/etc/vsftpd.conf

Listen = NEM listen_ipv6 = IGEN anonymous_enable = NEM local_enable = IGEN write_enable = IGEN dirmessage_enable = IGEN use_localtime = IGEN xferlog_enable = IGEN connect_from_port_20 = IGEN chroot_local_user = IGEN v v kulcsszó / etc_s / etc / etc var_ s / etc / s / etc var_ s / etc / etc / etc / etc / etc / etc / s / etc / s / etc / etc / etc / etc / etc / etc private / vsftpd.pem ssl_enable = IGEN user_sub_token = $ USER local_root = / home / $ USER / ftp pasv_min_port = 30000 pasv_max_port = 31000 userlist_enable = etc userlist_deny = NEM

Mentse el a fájlt, és indítsa újra a vsftpd szolgáltatást, hogy a változtatások érvénybe lépjenek:

A Sudo systemctl indítsa újra a vsftpd-t

Tűzfal megnyitása

Ha UFW tűzfalat használ, engedélyeznie kell az FTP-forgalmat.

A 21-es port (FTP-parancsport), a 20-as (FTP-adatport) és a 30000-31000-es (passzív porttartomány) megnyitásához futtassa a következő parancsokat:

Sudo ufw enable 20: 21 / tcp sudo ufw enable 30000: 31000 / tcp

A blokkolások elkerülése érdekében megnyitjuk a 22-es portot:

A Sudo ufw engedélyezi az OpenSSH-t

Töltse be újra az UFW-szabályokat az UFW letiltásával és újbóli engedélyezésével:

Sudo ufw disablesudo ufw enable

A változtatások előrehaladásának ellenőrzéséhez:

Sudo ufw állapot Állapot: aktív Cselekvésre innen - ------ ---- 20: 21 / tcp ALLOW Anywhere 30000: 31000 / tcp ALLOW Anywhere OpenSSH ALLOW Anywhere 20: 21 / tcp (v6) ALLOW Bárhol (v6) 30000: 31000 / tcp (v6) ALLOW Anywhere (v6) OpenSSH (v6) ALLOW Anywhere (v6)

FTP felhasználó létrehozása

Az FTP szerverünk teszteléséhez új felhasználót hozunk létre.

  • Ha már van egy felhasználója, akinek FTP-hozzáférést szeretne adni, hagyja ki az 1. lépést.
  • Ha a konfigurációs fájlban az allow_writeable_chroot = YES értéket adta meg, hagyja ki a 3. lépést.
  1. Hozzon létre egy új felhasználót newftpuser néven: sudo adduser newftpuser
  2. Adja hozzá a felhasználót az FTP Engedélyezett felhasználók listájához: echo "newftpuser" | sudo tee -a /etc/vsftpd.user_list
  3. Hozzon létre FTP-könyvtárfát, és állítsa be a megfelelő engedélyeket: sudo mkdir -p / home / newftpuser / ftp / uploadsudo chmod 550 / home / newftpuser / ftpsudo chmod 750 / home / newftpuser / ftp / uploadsudo chown -R newftpuser: / home / ft newftpuser

    Amint az előző részben tárgyaltuk, a felhasználó feltöltheti fájljait az ftp / feltöltési könyvtárba.

Ezen a ponton az FTP-kiszolgáló teljesen működőképes, és bárkivel kapcsolódnia kell a szerverhez, aki beállítható a TLS-titkosítás használatára, például a FileZillával.

A shell hozzáférés letiltása

Alapértelmezés szerint a felhasználó létrehozásakor, hacsak nincs kifejezetten megadva, a felhasználó hozzáfér az SSH-kiszolgálóhoz.

A shell-hozzáférés letiltásához új parancsértelmezőt hozunk létre, amely egyszerűen kinyomtat egy üzenetet, amely közli a felhasználóval, hogy az ő fiók csak FTP hozzáférésre korlátozódik.

Hozzon létre egy shell / bin / ftponly fájlt, és tegye végrehajthatóvá:

Echo -e "#! / Bin / sh \ necho" Ez a fiókfiók csak FTP-hozzáférésre korlátozódik. "" | sudo tee -a / bin / ftponlysudo chmod a + x / bin / ftponly

Adja hozzá az új parancsértelmezőt az érvényes parancsértelmezők listájához az / etc / shells fájlban

Echo "/ bin / ftponly" | sudo tee -a / etc / shells

Módosítsa a felhasználó shelljét / bin / ftponly értékre:

Sudo usermod newftpuser -s / bin / ftponly

Következtetés

Ebből a cikkből megtanulta, hogyan telepíthet és konfigurálhat biztonságos és gyors FTP-kiszolgálót Ubuntu rendszer 18.04.

Időnként mindenki rendszergazda szükség van egy FTP-kiszolgálóra, ez leggyakrabban az alkalmazások közötti automatikus módban történő információcsere biztosításának szükségessége, például egy elosztott 1C információs bázis automatikus cseréje során, vagy a webszerveren lévő fájlok eléréséhez. . Ma elmondjuk, hogyan lehet kevesebb mint fél óra alatt létrehozni egy ilyen szervert az Ubuntu platformon.

De először egy kis elmélet. Az FTP (File Transfer Protocol) – ahogy a neve is sugallja – fájlok átvitelére szolgál, és 1971-ben jelent meg, de előrehaladott kora ellenére a mai napig széles körben használják. Bár ma már inkább technikai jellegű, a végfelhasználók gyakran böngésző és HTTP használatával érik el az adatokat. Az FTP előnyei közé tartozik, hogy a kapcsolat megszakadása esetén újraindítható a fájl, valamint a fájlok olvasásának és írásának képessége is ugyanolyan egyszerű. De vannak hátrányai is, a legsúlyosabb az alacsony biztonság, ezért erre a kérdésre kell a legnagyobb figyelmet fordítani.

Az FTP a PPTP-hez hasonlóan különböző kapcsolatokat használ a parancsok és az adatok átviteléhez. A kapcsolat indításakor a kliens vezérlőparancsokat továbbít a szerver 21-es portjára, amely viszont a 20-as porton létesít kimenő kapcsolatot az adatátvitelhez, a kliens oldali portot egyeztetés eredményeként határozzuk meg. Ha azonban a kliens NAT mögött áll, a kapcsolat ilyen módon nem létesíthető, ezért egy további FTP passzív módot fejlesztettek ki, amikor is nem a szerver, hanem a kliens hozza létre a kapcsolatot az adatátvitelhez, hanem az általa megadott paraméterekkel. szerver. Ezeket a pontokat figyelembe kell venni az FTP továbbításakor és a hálózati szűrő beállításakor.

A szerverünkhöz fogjuk használni vsftpd- egyszerű, gyors és biztonságos FTP szerver. Mivel külső és belső hálózatokat is ki fog szolgálni, érdemes ezt a szerepet a miénkhez adni. A szerver telepítése rendkívül egyszerű:

Apt-get install vsftpd

A szerver konfigurálása a konfigurációs fájlon keresztül történik /etc/vsftpd.conf egyszerű felépítésű, jól kommentálható, és minimális tudással utasítások nélkül is konfigurálhatja a szervert. Tekintsük a fő paramétereit.

A szerver indítható folyamatosan, szolgáltatásként, vagy szükség esetén indítható, nekünk az első lehetőség alkalmasabb:

Figyelj = IGEN

Ennek az opciónak van egy egymást kizáró rekordja, amelyet a következőre kell redukálni:

Listen_ipv6 = NEM

Csak helyi felhasználók bejelentkezhetnek:

Anonymous_enable = NEM
local_enable = IGEN

Engedjük meg, hogy a felhasználók fájlokat írhassanak, és utasítsuk a szervert, hogy automatikusan állítsa be a szükséges jogokat (755 mappákhoz és 644 fájlokhoz):

Write_enable = IGEN
local_umask = 022

Ha más jogkészletet kell beállítania: 775 és 664, akkor az umask-nak 002-nek kell lennie.

Alapértelmezés szerint a szerver a GMT-időt használja a fájlok időzónájának megfelelő beállításához, használja a következő lehetőséget:

Use_localtime = IGEN

Engedélyezzük a feltöltött és letöltött fájlok naplózását:

Xferlog_enable = IGEN

Hagyja, hogy a szerver hozzon létre adatkapcsolatokat a 20-as porton (aktív mód):

Connect_from_port_20 = IGEN

A következő opciók állítják be a naplók tárolásának helyét és formátumát:

Xferlog_file = / var / log / vsftpd.log
xferlog_std_format = IGEN

Állítsuk be a munkamenetek időtúllépéseit:

Idle_session_timeout = 600
data_connection_timeout = 120

Ezenkívül biztonsági okokból elkülönítjük a felhasználót a kezdőkönyvtárában, és azonnal engedélyezzük az írást a gyökérkönyvtárába:

Chroot_local_user = IGEN
allow_writeable_chroot = IGEN

A szöveges adatokkal való helyes munka érdekében engedélyezheti az ASCII támogatást, amely lehetővé teszi szöveges fájl átvitelekor Windows rendszerek UNIX-on (Linux) helyes a CR + LF soremelés karaktereit LF-re cserélni, hogy a tartalom helyesen jelenjen meg, és visszaküldéskor végrehajtsa a fordított átalakítást.

Ascii_upload_enable = IGEN
ascii_download_enable = IGEN

Csak egy opciót engedélyezhet, a feltöltést vagy a letöltést. Kérjük, vegye figyelembe, hogy egy bináris fájl ASCII módban történő átvitele megrongálhatja az utóbbit.

Elég érdekes lehetőség:

Ls_recurse_enable = IGEN

Lehetővé teszi a rekurzív címtárböngészést, egyrészt kényelmes, másrészt komoly terhelést is okozhat a szerveren, ha például egy nagyszámú fájlt és könyvtárat tartalmazó könyvtár listát kapunk.

Az összes többi lehetőséget alapértelmezés szerint hagyjuk, bár a szerver üdvözletét szerkesztheti úgy, hogy bármit ír:

Ftpd_banner = Üdvözli a Roga i Kopyta LLC FTP

A konfigurációs fájl végén beállítjuk a passzív mód beállításait, a portokat ajánlott kifejezetten beállítani, hogy a továbbítás során meg tudja adni azokat, ha a szerver NAT mögött van, vagy a tűzfalszabályokban:

Pasv_enable = IGEN
pasv_min_port = 62000
pasv_max_port = 62999

Indítsa újra a szervert (ezt minden alkalommal meg kell tenni a konfiguráció módosítása után):

Service vsftpd újraindítás

és próbáljon meg csatlakozni bármely FTP-klienshez egy meglévő felhasználó hitelesítő adataival. Be kell jutnunk a kezdőkönyvtárába, és el kell különülnünk benne.

A vsftpd és a seccomp biztonsági rendszer hibás működésével kapcsolatos hiba esetén:

500 OOPS: prctl PR_SET_SECCOMP sikertelen

add hozzá a nem dokumentált opciót a fájlhoz:

Seccomp_sandbox = NEM

Ne feledje azonban, hogy az FTP egy nem biztonságos protokoll, így nem a legjobb megoldás bármely helyi felhasználónak a kiszolgálóra engedni, ahogyan ez most történik. Ennek elkerülése érdekében a vsftpd beépített felhasználói vezérlő mechanizmussal rendelkezik. Adjunk hozzá egy beállítást a konfigurációs fájlhoz:

Userlist_enable = IGEN

és hozzon létre egy felhasználói lista fájlt:

Érintse meg az /etc/vsftpd.user_list elemet

Alapértelmezés szerint vsftpd tiltja a szerverhez való hozzáférés a listában megadott felhasználók számára még a jelszó megadása előtt, pl. megvalósítja azt az elvet, hogy mindenkinek szabad, akinek nincs tiltva. De sokkal jobb lenne egy másik megközelítést megvalósítani: tilos mindenkinek, akinek nem szabad. Azok. engedély csak meghatározott felhasználók számára érhető el. Ehhez adjon meg egy lehetőséget:

Userlist_deny = NEM

Most már csak a kifejezetten meghatározott felhasználók férhetnek hozzá az FTP-kiszolgálóhoz, ezeket meg kell adni vsftpd.user_list soronként egyet, például:

Ivanov
petrov

Eltérő rendelkezés hiányában az FTP-n keresztüli csatlakozást követően a felhasználók a saját könyvtárukhoz jutnak. Ez nem mindig kényelmes, gyakran át kell irányítania őket egy másik könyvtárba. Ha ez mindenki számára közös mappa, mondjuk a / var / ftp, akkor megadhatja a következő lehetőséget:

Helyi_gyökér = / var / ftp

Ez átirányítja az összes felhasználót a megadott könyvtárba, és ott elkülöníti őket.

Ez a legegyszerűbb helyzet, a valódi feladatok általában nehezebbek, mondjuk be kell állítanunk az Ivanov felhasználót gyökérkönyvtárnak /var/www/example1.comés Petrov /var/www/example2.com hogy mindegyik saját mappával működjön. Ebből a célból használhatja a vsftpd egy másik funkcióját – a felhasználói beállításokat, amelyek felülírják a fő konfigurációs fájl beállításait.

Ehhez adjon meg egy lehetőséget:

User_config_dir = / etc / vsftpd_user_conf

Ezután létrehozzuk magát a könyvtárat

Mkdir / etc / vsftpd_user_conf

Ha saját beállításait szeretné megadni a felhasználó számára ebben a könyvtárban, hozzon létre egy fájlt a felhasználónévvel, és adja hozzá a szükséges beállításokat. A módosítások az FTP-kiszolgáló újraindítása nélkül kerülnek alkalmazásra, amikor a kliens legközelebb csatlakozik.

Hozzon létre egy fájlt az Ivanov beállításaival:

Tocuh / etc / vsftpd_user_conf / ivanov

és adj hozzá egy lehetőséget:

Helyi_gyökér = / var / www / example1.com

A következő csatlakozáskor a felhasználó gyökérkönyvtára a megadottra változik. Ebben a fájlban is beállíthatunk bármilyen személyes beállítást, például egy másikat umask vagy fájlengedélyeket. Itt azonban nem használhatunk globális beállításokat: csatlakozási, naplózási, hitelesítési lehetőségeket, ezeket egyszerűen figyelmen kívül hagyjuk.

Ha el kell rejtenie a fájlok és mappák valódi tulajdonosait, használhatja a következő lehetőséget:

Hide_ids = IGEN

Ebben az esetben az ftp: ftp lesz feltüntetve a valódi tulajdonosok és csoportok helyett, ez hasznos lehet nyilvános szerver esetén, vagy ha illetéktelenek vannak a felhasználók listájában, akiknek nem kívánja nyilvánosságra hozni rendszerének felhasználói nevei.

Amint látja, valójában kevesebb mint fél óra alatt beállítottunk egy működő FTP-szervert.

A cikkeket vesszük alapul:

Az interneten szinte minden felhasználó találkozott legalább egyszer FTP-vel. Az alábbiakban bemutatjuk, hogyan telepíthet FTP-kiszolgálót a gépére, és hogyan tarthatja biztonságban.

A könnyű és hatékony VsFTPd FTP-kiszolgálót fogjuk használni, amelyet úgy terveztek, hogy nagy terhelésű szervereken működjön. A cikk további részében csak az FTP-kiszolgálóról, vagyis a vsFTPd-ről lesz szó.

1. Mi az FTP

Az FTP a File Transfer Protocol rövidítése. A név azt sugallja, hogy ezt a protokollt fájlok vagy könyvtárak átvitelére használják egyik gazdagépről a másikra hálózaton keresztül – helyi és interneten egyaránt.

2. FTP-kiszolgáló telepítése Ubuntuban

A vsftpd telepítéséhez nyissa meg a konzolt, és futtassa a parancsot:

sudo apt-get install vsftpd
A parancs végrehajtása után a szerver telepítésre kerül és elindul.
A vsftpd (2.3.5-1ubuntu2) beállítása...

vsftpd indul / fut, folyamat 1891

3. Az FTP szolgáltatás indításának lehetőségei

A vsftpd három különböző módon indítható el. Az első módszer az inetd-n keresztül történő futtatás. A második a xinetd-n keresztül, a harmadik a szerver kézi indítása (offline mód).
Alapértelmezés szerint a vsftpd önálló módban indul el, amelyben a kiszolgálón futó szolgáltatás saját indító parancsfájlt, démont használ. A vsftpd esetében ez az /etc/init.d/vsftpd. Ez az önálló démon veszi át az FTP szolgáltatás irányítását az FTP szolgáltatás indításának pillanatában. A vsftpd démon számos parancsot ad a rendszergazdának a vsftpd FTP-kiszolgáló kezeléséhez:

start vagy stop – az ftp szerver indítására vagy leállítására szolgál.
állapot - megjeleníti részletes információk az FTP-kiszolgáló aktuális állapotáról.
Az újraindítás a kiszolgáló leállításának és elindításának egy alternatívája. Ha a szerver már leállt, a restart parancs elindítja.
reload – Ez a parancs lehetővé teszi az összes új beállítás újratöltését és alkalmazását. A különbség az újraindítástól az, hogy az új beállítások a szerver leállítása nélkül kerülnek alkalmazásra.
A parancsok végrehajtásához írja be:

sudo start / stop / status / restart / reload vsftpd

Az offline mód azonban kevésbé rugalmas, az inetd régi, tehát ajánlott a vsftp futtatása xinetd-n keresztül... Olyan dolgokat tartalmaz, mint a kérések naplózása, a hozzáférés szabályozása, egy szolgáltatás egy adott hálózati interfészhez rendelése stb.

4. Indítsa el az FTP szolgáltatást az xinetd-n keresztül

Telepítse a xinetd szuperkiszolgálót:

sudo apt-get install xinetd
A fenti parancs telepíti és elindítja a xinetd szuperkiszolgálót. Ha már telepítve van, erre a parancsra nincs szükség. Ezután hozzon létre egy vsftpd fájlt az /etc/xinetd.d/ könyvtárban a következő tartalommal:

szolgáltatás ftp

Letiltás = nem

Socket_type = adatfolyam

Várj = nem

User = root

Szerver = / usr / sbin / vsftpd

Forrásonként = 5

Példányok = 200

No_access = 10.1.1.10

Banner_fail = /etc/vsftpd.busy

Log_on_success + = PID HOST IDŐTARTAMA

Bejelentkezési_hiba + = HOST

Ugyanakkor bármilyen beállítást módosíthat a szuperkiszolgáló testreszabásához az igényeinek megfelelően.
Lehetőségek, amelyekre figyelni kell:
szerver - lépjen be parancs sor"$ which vsftpd" a helyes elérési út kiderítéséhez.
no_access - minden, ebben az irányelvben meghatározott IP-címmel rendelkező gazdagép blokkolva lesz.
banner_fail - itt adhatja meg egy szöveges fájl elérési útját, amelynek tartalma minden blokkolt IP-cím esetén megjelenik.

Ez az utasítás arra utasítja az FTP-kiszolgálót, hogy ne nyisson meg semmilyen portot, és teljesen delegálja azokat az xinetd szuperkiszolgálóra. A kiszolgáló normál módban történő indítása előtt győződjön meg arról, hogy a vsftpd démon le van tiltva:
sudo service vsftpd stop

Most elindíthatja az FTP-kiszolgálót a következő paranccsal:
sudo szolgáltatás xinetd újraindítás

Az FTP-kiszolgáló megfelelő működésének ellenőrzéséhez tesztelje és nyissa meg a 21-es portot ezzel netstat parancsok:
$ netstat -ant | grep 21 tcp 0 0 0.0.0.0:21 0.0.0.0:* FIGYELEM

5. FTP szerver beállítása

A vsftpd konfigurálása az /etc/vsftpd.conf konfigurációs fájl módosításával történik.

Megjegyzés: Ha módosítja az FTP-kiszolgáló beállításait, feltétlenül használja a restart / reload parancsot az aktiváláshoz.

5.1 Felhasználói hozzáférés beállítása

A vsftpd lehetővé teszi, hogy vagy névtelen hozzáférést biztosítson, vagy felhasználókat az / etc / passwd fájlból vagy a saját listájából.

Névtelen hozzáférés

Megjegyzés: Az anonim hozzáférés megnyitása veszélyes, a jelszó nélküli névtelen hozzáférés pedig még veszélyesebb. Ez egy rossz ötlet. Jobb, ha ezt ne tedd, csak referenciaként olvasd el.

Anonim hozzáférés biztosításához állítsa az anonymous_enable direktívát YES értékre a konfigurációs fájlban:

anonymous_enable = IGEN

A jelszó nélküli hozzáféréshez írja be még:

no_anon_password = IGEN

Mostantól az FTP-kiszolgáló elérhető a névtelen felhasználón keresztül. Ehhez csak írja be ftp parancs a localhost argumentummal vagy a szerver IP-címével:

$ ftp localhost Csatlakozva a localhosthoz. 220 (vsFTPd 2.3.5) Név (localhost: root): anonymous 331 Kérjük, adja meg a jelszót. Jelszó: 230 Sikeres bejelentkezés. A távoli rendszer típusa UNIX. Bináris mód használata fájlok átviteléhez. ftp> ftp> kilépés 221 Viszlát.

Helyi felhasználói hozzáférés

Az / etc / passwd fájlban megadott összes felhasználó jogosultságának engedélyezéséhez módosítania kell a local_enable direktíva értékét az /etc/vsftpd.conf fájlban.
local_enable = IGEN
Mostantól bármely, az / etc / passwd fájlban megadott felhasználó be tud jelentkezni a jelszavával.

Felhasználói hozzáférési lista

Először hozzunk létre egy hozzáférési listát, amelyet a vsFTPd szerver használ. Általában az / etc / könyvtárban tudod beállítani. Hozzon létre egy fájlt tetszőleges névvel, és sorolja fel benne az összes felhasználót, akinek hozzáférést szeretne adni vagy megtagadni. Például hozzunk létre egy új listát egyetlen „root” felhasználóval:
echo root> /etc/vsftpd.userlist
Ezután adjon meg egy új felhasználólistát az /etc/vsftpd.conf konfigurációs fájlban, és aktiválja a userlist_enable direktívát:
userlist_file = / etc / vsftpd.userlistuserlist_enable = IGENÍgy az /etc/vsftpd.userlist fájlban felsorolt ​​összes felhasználó le lesz tiltva az FTP szerverhez való hozzáférésben.

$ ftp localhostCsatlakoztatva a localhost.220-hoz (vsFTPd 2.3.5) Név (localhost: root): lubos530 Engedély megtagadva.Bejelentkezés sikertelen.ftp> Az /etc/vsftpd.userlist fájlban felsorolt ​​összes felhasználó hozzáférésének engedélyezéséhez állítsa a userlist_deny direktívát "NO"-ra. Amikor ezt teszi, csak az /etc/vsftpd.userlist fájlban felsorolt ​​felhasználóknak ad hozzáférést. Ebben a fájlban minden felhasználónévnek külön sorban kell lennie.

5.2 Egyéb beállítások

A mai napig a vsFTPd 125 konfigurációs opcióval rendelkezik. Ez nagyon rugalmassá teszi a konfigurálást, ugyanakkor könnyen használható és adminisztrálható. Akár otthon, akár vállalati hálózaton vagy távoli szerveren szeretné használni, biztos lehet benne, hogy a vsFTPd teljes mértékben megfelel az Ön igényeinek.