A vsftpd beállítása egy felhasználó számára's Könyvtár Az Ubuntu 18.04

Bevezetés

FTP, rövid fájl átviteli protokoll, egy olyan hálózati protokoll, amelyet egyszer széles körben használtak fájlok kliens és szerver közötti mozgatására. Ez azóta helyébe gyorsabb, biztonságosabb, kényelmesebb módon nyilvánított fájlokat. Sok alkalmi internethasználó elvárja, hogy közvetlenül a böngészőjéből töltse le a https, és a parancssori felhasználók nagyobb valószínűséggel használnak biztonságos protokollokat, például a scp vagy SFTP.,

az FTP-t továbbra is a nagyon specifikus igényekkel rendelkező régi alkalmazások és munkafolyamatok támogatására használják. Ha választhat, hogy milyen protokollt kell használni, fontolja meg a korszerűbb lehetőségek feltárását. Ha azonban FTP-re van szüksége, a vsftpd kiváló választás. A biztonságra, a teljesítményre és a stabilitásra optimalizált vsftpd erős védelmet nyújt a többi FTP-kiszolgálón található számos biztonsági probléma ellen, és sok Linux disztribúció esetében az alapértelmezett.,

ebben a bemutatóban beállíthatja a vsftpd-t, hogy a felhasználó fájlokat tölthessen fel a saját könyvtárába az SSL/TLS által biztosított bejelentkezési hitelesítő adatokkal rendelkező FTP segítségével.

Előfeltételek

Hogy kövesse végig a bemutató szükséged lesz:

  • Egy Ubuntu 18.04 szerver, illetve a nem root felhasználó sudo jogosultságok: többet lehet tanulni, hogyan kell beállítani a felhasználó ezek a jogosultságok a Kezdeti Szerver Beállítása az Ubuntu 18.04 útmutató.,

1.lépés — vsftpd telepítése

kezdjük a csomaglistánk frissítésével és a vsftpd daemon:

  • sudo apt update
  • sudo apt install vsftpd

a telepítés befejezése után másolja át a konfigurációs fájlt, hogy üres konfigurációval kezdhessük, az eredeti biztonsági mentésként mentve:

  • sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.orig

a konfiguráció biztonsági másolatával készen állunk a tűzfal konfigurálására.

2. lépés-a tűzfal megnyitása

ellenőrizzük a tűzfal állapotát, hogy engedélyezve van-e., Ha igen, biztosítjuk, hogy az FTP-forgalom megengedett legyen, így a tűzfalszabályok nem blokkolják a tesztjeinket.

ellenőrizze a tűzfal állapotát:

  • sudo ufw status

ebben az esetben csak az SSH engedélyezett:

Output
Status: activeTo Action From-- ------ ----OpenSSH ALLOW AnywhereOpenSSH (v6) ALLOW Anywhere (v6)

lehet, hogy más szabályok vannak érvényben, vagy egyáltalán nincs tűzfalszabály. Mivel ebben az esetben csak az SSH forgalom engedélyezett, hozzá kell adnunk az FTP-forgalom szabályait.,

nézzük, nyitott portok 20 vagy 21 FTP port 990 ha lehetővé tesszük a TLS, valamint a kikötők 40000-50000 a tartomány a passzív port tervezzük, hogy állítsa be a konfigurációs fájlt:

  • sudo ufw allow 20/tcp
  • sudo ufw allow 21/tcp
  • sudo ufw allow 990/tcp
  • sudo ufw allow 40000:50000/tcp
  • sudo ufw status

A tűzfal szabályokat kell most így néz ki:

A vsftpd telepített, illetve a szükséges portok nyitva jöhet létre egy külön FTP felhasználó.,

3. lépés-a

felhasználói könyvtár előkészítése külön FTP-felhasználót hozunk létre, de lehet, hogy már van olyan felhasználója, akinek FTP-hozzáférésre van szüksége. Gondoskodunk arról, hogy megőrizzük a meglévő felhasználó hozzáférését az adataikhoz a következő utasításokban. Ennek ellenére azt javasoljuk, hogy kezdjen egy új felhasználóval, amíg be nem állította és nem tesztelte a beállítását.

először adjon hozzá egy tesztfelhasználót:

  • sudo adduser sammy

jelszó hozzárendelése a rendszer kéri. Nyugodtan nyomja meg a ENTER a többi utasításokat.,

az FTP általában biztonságosabb, ha a felhasználók egy adott könyvtárra korlátozódnak. vsftpdchroot Ha achroot engedélyezve van a helyi felhasználók számára, alapértelmezés szerint a saját könyvtárukra korlátozódnak. Mivel azonban a vsftpd biztosítja a könyvtárat, a felhasználó nem írható. Ez rendben van egy új felhasználó számára, akinek csak FTP-n keresztül kell csatlakoznia, de előfordulhat, hogy egy meglévő felhasználónak írnia kell a saját mappájába, ha shell-hozzáféréssel is rendelkezik.,

ebben A példában, sokkal inkább, mint eltávolítása írási jogosultsága a home könyvtár, hozzunk létre egy ftp könyvtár szolgál a chroot lehetőséget, majd egy írható files könyvtárat a tényleges fájlok.,küldetések:

  • sudo ls -la /home/sammy/ftp
Output
total 84 dr-xr-xr-x 2 nobody nogroup 4096 Aug 24 21:29 .4 drwxr-xr-x 3 sammy sammy 4096 Aug 24 21:29 ..

a Következő hozzunk létre egy könyvtárat, az állományok feltöltését, majd rendelje hozzá a tulajdonjog, hogy a felhasználó:

  • sudo mkdir /home/sammy/ftp/files
  • sudo chown sammy:sammy /home/sammy/ftp/files

A engedélyei ellenőrizze, hogy a ftp könyvtár, vissza kell adnia a következő:

  • sudo ls -la /home/sammy/ftp

Végre, adjunk hozzá egy test.txt fájlt használja, amikor teszteljük:

  • echo "vsftpd test file" | sudo tee /home/sammy/ftp/files/test.txt

Most, hogy biztosítottuk a ftp könyvtár, valamint lehetővé tette, hogy a felhasználó hozzáférési hogy a files könyvtár, hadd módosítsa a konfiguráció.,

4. lépés-FTP-hozzáférés konfigurálása

azt tervezzük, hogy egyetlen helyi shell-fiókkal rendelkező felhasználó csatlakozhasson az FTP-hez. Ennek két kulcsbeállítása már be van állítva vsftpd.conf. Kezdje a konfigurációs fájl megnyitásával annak ellenőrzéséhez, hogy a konfigurációban lévő beállítások megfelelnek-e az alábbiaknak:

  • sudo nano /etc/vsftpd.conf
/etc/vsftpd.conf

ezután engedélyezzük a felhasználó számára a fájlok feltöltését a write_enable beállítás:

/etc/vsftpd.,conf
. . .write_enable=YES. . .

a chroot-ot is kibontjuk, hogy megakadályozzuk az FTP-hez csatlakoztatott felhasználó hozzáférését a könyvtárfán kívüli fájlokhoz vagy parancsokhoz:

/etc/vsftpd.conf
. . .chroot_local_user=YES. . .

adjunk hozzá egy user_sub_token A felhasználónév beillesztéséhez a local_root directory útvonalba, így konfigurációnk működni fog a felhasználó és minden további jövőbeli felhasználó számára. Adja hozzá ezeket a beállításokat bárhol a fájlban:

/ etc / vsftpd.,conf
. . .user_sub_token=$USERlocal_root=/home/$USER/ftp

korlátozzuk a passzív FTP-hez használható portok tartományát is, hogy megbizonyosodjunk arról, hogy elegendő kapcsolat áll rendelkezésre:

/etc/vsftpd.conf
. . .pasv_min_port=40000pasv_max_port=50000

megjegyzés: a 2.lépésben megnyitottuk azokat a portokat, amelyeket itt állítottunk be a passzív porttartományhoz. Ha megváltoztatja az értékeket, feltétlenül frissítse a tűzfal beállításait.

az FTP-hozzáférés eseti alapon történő engedélyezéséhez állítsuk be a konfigurációt úgy, hogy a felhasználók csak akkor férjenek hozzá, ha azokat kifejezetten hozzáadják a listához, nem pedig alapértelmezés szerint:

/etc/vsftpd.,conf
. . .userlist_enable=YESuserlist_file=/etc/vsftpd.userlistuserlist_deny=NO

userlist_deny megváltoztatja a logikát: ha YES értékre van állítva, a listán szereplő felhasználók megtagadják az FTP-hozzáférést. Ha NO értékre van állítva, csak a listán szereplő felhasználók férhetnek hozzá.

a módosítások elvégzése után mentse el a fájlt, majd lépjen ki a szerkesztőből.

végül adjuk hozzá a felhasználót a /etc/vsftpd.userlist – hoz., Használja a -a zászló hozzáfűzni, hogy a fájlt:

  • echo "sammy" | sudo tee -a /etc/vsftpd.userlist

Ellenőrizze, hogy volt hozzá, mint te várható:

  • cat /etc/vsftpd.userlist
Output
sammy

Indítsa újra a démont, hogy töltse be a konfigurációs változtatások:

  • sudo systemctl restart vsftpd

a konfiguráció a helyén, jöhet a tesztelés FTP hozzáférés.

5. lépés-FTP hozzáférés tesztelése

úgy konfiguráltuk a kiszolgálót, hogy csak a felhasználó számára engedélyezzük sammy FTP-n keresztüli csatlakozást. Győződjön meg róla, hogy ez a várt módon működik.,

A névtelen felhasználóknak nem kell csatlakozniuk: letiltottuk a névtelen hozzáférést. Teszteljük ezt úgy, hogy névtelenül próbálunk csatlakozni. Ha a konfigurációnk megfelelően van beállítva, a névtelen felhasználókat meg kell tagadni az engedélytől. Nyisson meg egy másik terminál ablakot, majd futtassa a következő parancsot. Ügyeljen arra, hogy a 203.0.113.0 a kiszolgáló nyilvános IP-címére cserélje:

  • ftp -p 203.0.113.0

zárja be a kapcsolatot:

  • bye

a sammy – tól eltérő felhasználóknak nem kell csatlakozniuk: ezután próbáljuk meg csatlakozni, mint a sudo felhasználó.,> legyen képes kapcsolódni, olvasni, írni-fájlok: győződjünk meg róla, hogy a kijelölt felhasználó csatlakozhat:

  • ftp -p 203.0.113.0

változtassuk meg a files könyvtárba, használjuk a get parancs át a teszt fájlt, amit korábban létrehozott, a helyi gép:

  • cd files
  • get test.txt

majd feltölteni a fájlt új néven, hogy tesztet írni engedélyek:

  • put test.txt upload.txt

kapcsolat:

  • bye

Most, hogy már tesztelték a konfiguráció, nézzük a lépéseket, hogy további biztonságos a szerver.,

6. lépés-tranzakciók biztosítása

mivel az FTP nem titkosítja a tranzitban lévő adatokat, beleértve a felhasználói hitelesítő adatokat is, engedélyezzük a TLS/SSL számára a titkosítás megadását. Az első lépés az SSL tanúsítványok létrehozása a vsftpdhasználatával.

használjuk a opensslúj tanúsítvány létrehozásához, és használjuk a -days zászlót, hogy egy évig érvényes legyen. Ugyanebben a parancsban hozzáadunk egy privát 2048 bites RSA kulcsot., A -keyout és a -out azonos értékű zászlók beállításával a privát kulcs és a tanúsítvány ugyanabban a fájlban található:

  • sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem

meg kell adnia a tanúsítvány címadatait., Helyettesítő saját adatok a kiemelt értékek az alábbi:

további részletes információ arról, hogy a tanúsítvány zászlók, lásd OpenSSL Essentials: Dolgozik, SSL Tanúsítványok, a Privát Kulcsokat, illetve országspecifikus ajánlásokat

Miután létrehozta a bizonyítványok, nyissa meg a vsftpd konfigurációs fájlt újra:

  • sudo nano /etc/vsftpd.conf

Felé a fájl aljára, látni fogja, két sora így kezdődik: rsa_. Kommentálja őket, így néznek ki:

/ etc / vsftpd.,conf
. . .# rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem# rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key. . .

alattuk, add hozzá a következő sorokat, hogy pont a tanúsítvány és a privát kulcs, amit most létrehozott:

/etc / vsftpd.conf
. . .rsa_cert_file=/etc/ssl/private/vsftpd.pemrsa_private_key_file=/etc/ssl/private/vsftpd.pem. . .

ezt követően kényszerítjük az SSL használatát, amely megakadályozza, hogy a TLS-vel nem foglalkozó ügyfelek csatlakozzanak. Ez azért szükséges, hogy minden forgalom titkosítva legyen, de ez arra kényszerítheti az FTP-felhasználót, hogy megváltoztassa az ügyfeleket. Változás ssl_enableYES:

/etc/vsftpd.,conf

. . .ssl_enable=YES. . .

ezután adjuk hozzá a következő sorokat, hogy kifejezetten tagadja névtelen kapcsolatok over SSL, illetve szükség SSL mindkét adatátvitel, valamint a bejelentkezési adatok:

/etc/vsftpd.conf
. . .allow_anon_ssl=NOforce_local_data_ssl=YESforce_local_logins_ssl=YES. . .

ezután konfigurálja a kiszolgálót az SSL előnyben részesített utódjának, a következő sorok hozzáadásával:

/etc/vsftpd.conf
. . .ssl_tlsv1=YESssl_sslv2=NOssl_sslv3=NO. . .

végül még két lehetőséget adunk hozzá. Először is, nem lesz szükség SSL újrafelhasználásra, mert sok FTP-ügyfelet megtörhet., Szükségünk lesz “magas” titkosítási rejtjelezési csomagokra, ami jelenleg 128 bittel egyenlő vagy annál nagyobb kulcshosszokat jelent:

/etc/vsftpd.conf
. . .require_ssl_reuse=NOssl_ciphers=HIGH. . .

a kész fájlszakasznak így kell kinéznie:

/etc/vsftpd.conf

Ha elkészült, mentse el és zárja be a fájlt.

indítsa újra a szervert, hogy a módosítások érvénybe lépjenek:

  • sudo systemctl restart vsftpd

Ezen a ponton már nem tudunk csatlakozni egy nem biztonságos parancssori klienshez., Ha megpróbáltuk, akkor valami ilyesmit látnánk:

ezután ellenőrizzük, hogy tudunk-e csatlakozni egy TLS-t támogató ügyféllel.

7. lépés-TLS tesztelése FileZilla

a legtöbb modern FTP kliens konfigurálható TLS titkosítás használatára. Bemutatjuk, hogyan lehet csatlakozni a FileZilla-hoz a platformok közötti támogatás miatt. Tekintse meg a dokumentációt más ügyfelek számára.

amikor először megnyitja a Filezillát, keresse meg a webhelykezelő ikont közvetlenül a gazdagép szó felett, a bal oldali ikon a felső sorban. Kattintson rá:

egy új ablak nyílik meg., Kattintson az új webhely gombra a jobb alsó sarokban:


a webhelyeim alatt egy új ikon jelenik meg az új webhely szavakkal. Nevezze el most, vagy térjen vissza később, majd használja az Átnevezés gombot.

töltse ki a gazdagép mezőt a névvel vagy IP-címmel. A Titkosítás legördülő menüben válassza az explicit FTP igénylése TLS felett lehetőséget.

a bejelentkezési típushoz válassza a jelszó kérése lehetőséget. Töltse ki az FTP-felhasználót a felhasználói mezőben:

kattintson a Csatlakozás gombra az interfész alján., Meg kell adnia a felhasználó jelszavát:

kattintson az OK gombra a csatlakozáshoz. Most csatlakoznia kell a kiszolgálóhoz TLS / SSL titkosítással.,ficate, ami így néz ki:

Amikor elfogadta a bizonyítvány, kattintson duplán a files mappát, majd húzza a upload.txt a bal oldalon, hogy erősítse meg, hogy ön képes a fájlok letöltése:

Ha végzett, kattintson a jobb gombbal a helyi másolás, átnevezés, hogy a upload-tls.txt, majd húzza vissza a szerver, hogy erősítse meg, hogy lehet feltölteni a fájlokat:

most megerősítette, hogy biztonságosan, valamint sikeresen fájlok átvitele SSL/TLS engedélyezett.,

8. lépés-a Shell-hozzáférés letiltása (opcionális)

Ha az ügyfél igényei miatt nem tudja használni a TLS-t, akkor bizonyos biztonságot szerezhet, ha letiltja az FTP-felhasználó azon képességét, hogy bármilyen más módon jelentkezzen be. Az egyik viszonylag egyszerű módja annak, hogy megakadályozzuk, egy egyedi héj létrehozásával történik. Ez nem nyújt titkosítást, de korlátozza a veszélyeztetett fiók hozzáférését az FTP által elérhető fájlokhoz.,

először nyisson meg egy ftponly nevű fájlt a bin könyvtárban:

  • sudo nano /bin/ftponly

adjon hozzá egy üzenetet, amelyben elmondja a felhasználónak, hogy miért nem tudnak bejelentkezni:

/bin/ftponly

div id=”6c51c36c91″>

mentse el a fájlt, majd lépjen ki a szerkesztőből.,Az engedélyek módosítására, hogy a futtatható fájl:

  • sudo chmod a+x /bin/ftponly

Nyissa meg a listát az érvényes kagyló:

  • sudo nano /etc/shells

az alján hozzá:

/etc/shells
. . ./bin/ftponly

Frissítés a felhasználói parancsértelmező a következő parancsot:

  • sudo usermod sammy -s /bin/ftponly

Most próbálja belép a szerverre, mint a sammy:

ilyesmit kell látnod:

Output
This account is limited to FTP access only.Connection to 203.0.113.0 closed.

Ez megerősíti, hogy a felhasználó nem tud tovább ssh a szerver korlátozott FTP hozzáférés csak.,

következtetés

ebben a bemutatóban lefedtük az FTP beállítását a helyi fiókkal rendelkező felhasználók számára. Ha külső hitelesítési forrást kell használnia, érdemes megvizsgálni avsftpdvirtuális felhasználók támogatását. Ez gazdag lehetőségeket kínál a Pam, A Dugaszolható hitelesítési modulok használatával, és jó választás, ha egy másik rendszerben, például az LDAP vagy a Kerberos felhasználóit kezeli.

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