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 hétköznapi internetező arra számít, hogy a https segítségével közvetlenül a böngészőjéből tölt le, és a parancssori felhasználók nagyobb valószínűséggel használnak olyan biztonságos protokollokat, mint 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 az oktatóanyagban megmutatjuk, hogyan konfigurálhatjuk a vsftpd-t, hogy a felhasználó fájlokat tölthessen fel otthoni könyvtárába FTP-vel, SSL/TLS által biztosított bejelentkezési hitelesítő adatokkal.

Előfeltételek

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

  • Egy Ubuntu 16.04 szerver 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 16.04 útmutató.

Miután van egy Ubuntu szerver a helyén, készen áll a kezdésre.,

1. lépés-a vsftpd

telepítése a csomaglistánk frissítésével és a vsftpd démon telepítésével kezdjük:

  • sudo apt-get update
  • sudo apt-get install vsftpd

a telepítés befejezése után átmásoljuk a konfigurációs fájlt, így egy üres konfigurációval kezdhetjü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 nem fog belefutni a tűzfalszabályokba, amelyek blokkolják Önt, amikor ideje tesztelni.

  • 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 a ssh forgalom megengedett, hozzá kell adnunk az FTP forgalom szabályait., kell, hogy nyitott portok 20 21 FTP port 990 később, amikor lehetővé tesszük 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

Most, hogy a tűzfal szabályai így néz ki:

A vsftpd telepített, illetve a szükséges portok nyitva, készen állunk, hogy folytassa a következő lépéssel.

3. lépés-a felhasználói könyvtár előkészítése

ehhez a bemutatóhoz létrehozunk egy felhasználót, 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 nem konfigurálta és nem tesztelte a beállítást.

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

  • sudo adduser sammy

jelszó hozzárendelése, amikor a rendszer kéri, és nyugodtan nyomja meg az” ENTER ” gombot a többi utasításon keresztül.

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 szintén hozzáférést biztosít.,

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

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ő, majd hozzon létre egy könyvtárat, ahol a fájlok tölthetők fel, 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 files könyvtár, vissza kell adnia a következő:

  • sudo ls -la /home/sammy/ftp

Végre, majd a hozzáadás egy test.txt fájlt használja, amikor a teszt később:

  • 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árat, majd fel a figyelmet, hogy 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 meg kell változtatnunk néhány értéket a fájlban. Annak érdekében, hogy a felhasználó feltölthesse a fájlokat, feloldjuk a write_enable beállítást, hogy rendelkezzünk:

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

hozzáadunk egy user_sub_token – ot, hogy a felhasználónevet a local_root directory útvonalba illesszük, így a konfigurációnk működni fog a felhasználó és a jövőbeli felhasználók számára, akik hozzáadhatók.

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

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

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

megjegyzés: előre 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.

mivel csak azt tervezzük, hogy eseti alapon engedélyezzük az FTP-hozzáférést, beállítjuk a konfigurációt úgy, hogy a hozzáférést csak akkor adjuk meg a felhasználónak, ha azokat alapértelmezés szerint kifejezetten hozzáadják a listához:

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

userlist_deny Ha “igen” – re van állítva, a listán szereplő felhasználók megtagadják az FTP-hozzáférést. Ha “nem” – re van állítva, csak a listán szereplő felhasználók férhetnek hozzá. Ha végzett a módosítással, mentse el és lépjen ki a fájlból.

végül létrehozzuk és hozzáadjuk a felhasználónkat a fájlhoz., A -a zászlót a fájlhoz csatoljuk:

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

ellenőrizze, hogy a várt módon adták-e hozzá:

cat /etc/vsftpd.userlist
Output
sammy

Daemon betölteni a konfigurációs változások:

  • sudo systemctl restart vsftpd

most készen állunk a tesztelésre.

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ünk meg róla, hogy ez a helyzet.

A névtelen felhasználóknak nem kell csatlakozniuk: letiltottuk a névtelen hozzáférést., Itt fogjuk tesztelni, hogy megpróbálja csatlakozni névtelenül. Ha megfelelően csináltuk, a névtelen felhasználókat meg kell tagadni az engedélytől:

  • ftp -p 203.0.113.0

zárja be a kapcsolatot:

  • bye

a sammy – n kívül más felhasználóknak nem kell csatlakozniuk: ezután megpróbálunk csatlakozni sudo felhasználó. Nekik is meg kell tagadni a hozzáférést, és meg kell történniük, mielőtt megadhatják a jelszavukat.,írni-fájlok: Itt, majd győződjön meg arról, hogy a kijelölt felhasználó canconnect:

  • ftp -p 203.0.113.0

megváltoztatjuk a files könyvtár, akkor 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 jobbra vissza, megpróbálom 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ó, minden szükséges lépést megteszünk, 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 TTL/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 vsftpd használatához.

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

ezt a következő paranccsal fogjuk megtenni:

  • 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 információt az alábbi kérdésekre:

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, kell 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 adja hozzá a következő sorokat, amelyek az éppen létrehozott tanúsítványra és privát kulcsra mutatnak:

/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 az FTP-felhasználót arra kényszerítheti, 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áljuk a kiszolgálót a TLS, az SSL preferált utódjának használatára 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

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

most újra kell indítanunk a kiszolgálót, hogy a módosítások hatályba lépjenek:

  • sudo systemctl restart vsftpd

Ezen a ponton már nem tudunk kapcsolatba lépni egy nem biztonságos parancssori klienssel. Ha megpróbálnánk, akkor valami ilyesmit látnánk:

ezután ellenőrizzük, hogy csatlakozhatunk-e 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 használatával a platformok közötti támogatás miatt. Tekintse meg a dokumentációt más ügyfelek számára.

A FileZilla első megnyitásakor keresse meg a webhelykezelő ikont közvetlenül a Word fájl alatt, 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” saját oldalak “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.

ki kell töltenie a” Host ” 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ípus” esetén válassza a “Jelszó kérése”lehetőséget. Töltse ki a “felhasználó” mezőben létrehozott FTP-felhasználót:


Kattintson a felület alján található “Csatlakozás” gombra., 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.


Ha elfogadta a tanúsítványt, kattintson duplán afiles mappára és húzza a feltöltést.txt balra, hogy erősítse meg, hogy képes letölteni a fájlokat.

Ha ezt megtette, kattintson a jobb gombbal a helyi másolatra, nevezze át feltöltésre-tls.txt’, majd húzza vissza a szerverre, hogy erősítse meg, hogy lehet feltölteni a fájlokat.,


most már megerősítette, hogy biztonságosan és sikeresen átviheti a fájlokat SSL/TLS engedélyezve.

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

hozzáadunk egy üzenetet a felhasználónak, hogy miért nem tudnak bejelentkezni.,/p>

#!/bin/shecho "This account is limited to FTP access only."

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, adjunk 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áljon bejelentkezni, mint 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 a vsftpd virtuá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.

Articles

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