FTP (Fájlátviteli protokoll) hagyományos és széles körben használt szabványos eszköz fájlok átvitele szerver és kliensek között hálózaton keresztül, különösen ott, ahol nincs szükség hitelesítésre (lehetővé teszi a névtelen felhasználók számára, hogy csatlakozzanak a szerverhez). Meg kell értenünk, hogy az FTP alapértelmezés szerint nem biztonságos, mert titkosítás nélkül továbbítja a felhasználói hitelesítő adatokat és adatokat.
Ebben az útmutatóban leírjuk az FTP szerver telepítésének, konfigurálásának és biztonságának lépéseit (VSFTPD áll "Nagyon biztonságos FTP démon") ban ben CentOS/RHEL 7 és Fedora elosztások.
Vegye figyelembe, hogy az útmutatóban szereplő összes parancs a következőképpen fog futni gyökér, abban az esetben, ha nem a szervert használja a gyökér fiókot, használja a sudo parancs hogy root jogosultságokat szerezzen.
1. lépés: Az FTP -kiszolgáló telepítése
1. Telepítés vsftpd a kiszolgáló egyenesen halad, csak futtassa a következő parancsot a terminálon.
# yum telepítés vsftpd.
2. A telepítés befejezése után a szolgáltatás először le lesz tiltva, ezért egyelőre manuálisan kell elindítanunk, és engedélyeznünk kell, hogy a következő rendszerindításkor is automatikusan elinduljon:
# systemctl start vsftpd. # systemctl engedélyezze a vsftpd -t.
3. Ezután, hogy lehetővé tegyük a hozzáférést az FTP szolgáltatásokhoz külső rendszerekből, meg kell nyitnunk a portot 21, ahol az FTP démonok az alábbiak szerint hallgatják:
# tűzfal-cmd --zone = public --permanent --add-port = 21/tcp. # tűzfal-cmd --zone = public --permanent --add-service = ftp. # tűzfal-cmd-újratöltés.
2. lépés: Az FTP -kiszolgáló konfigurálása
4. Most átállunk néhány konfiguráció elvégzésére az FTP szerver beállításához és biztonságához, kezdjük az eredeti konfigurációs fájl biztonsági másolatának készítésével /etc/vsftpd/vsftpd.conf:
# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.orig.
Ezután nyissa meg a fenti konfigurációs fájlt, és állítsa be a következő beállításokat a megfelelő értékekkel:
anonymous_enable = NO # letiltja az anonim bejelentkezést. local_enable = YES # engedélyezi a helyi bejelentkezéseket. write_enable = YES # engedélyezi a fájlrendszert megváltoztató FTP parancsokat. local_umask = 022 # umask értéke fájlok létrehozásához helyi felhasználók számára. dirmessage_enable = YES # engedélyezi az üzenetek megjelenítését, amikor a felhasználók először belépnek egy új könyvtárba. xferlog_enable = IGEN # a rendszer egy naplófájlt tart fenn, amely részletezi a feltöltéseket és a letöltéseket. connect_from_port_20 = IGEN # használja a 20-as portot (ftp-data) a szerver gépen a PORT stílusú kapcsolatokhoz. xferlog_std_format = IGEN # a szabványos naplófájl -formátum megtartása. listen = NO # megakadályozza, hogy a vsftpd önálló módban fusson. listen_ipv6 = IGEN # A vsftpd IPv6 -aljzaton hallgatja az IPv4 -es helyett. pam_service_name = vsftpd A PAM szolgáltatás # neve, amelyet a vsftpd fog használni. userlist_enable = IGEN # engedélyezze a vsftpd felhasználónévlista betöltését. tcp_wrappers = IGEN # kapcsolja be a tcp csomagolást.
5. Most konfigurálja az FTP -t, hogy engedélyezze/megtagadja az FTP -hozzáférést a felhasználóknak a felhasználói listafájl alapján /etc/vsftpd.userlist
.
Alapértelmezés szerint a listában szereplő felhasználók userlist_file =/etc/vsftpd.userlist
megtagadják a bejelentkezési hozzáférést a gombbal userlist_deny opció beállítása IGEN, ha userlist_enable = IGEN.
Azonban, userlist_deny = NEM megváltoztatja a beállítást, vagyis csak a kifejezetten felsorolt felhasználók userlist_file =/etc/vsftpd.userlist engedélyezik a bejelentkezést.
userlist_enable = IGEN # A vsftpd betölti a felhasználónevek listáját a userlist_file fájlnévből. userlist_file =/etc/vsftpd.userlist # tárolja a felhasználóneveket. userlist_deny = NEM
Ez még nem minden, amikor a felhasználók bejelentkeznek az FTP -szerverre, chroot -börtönbe kerülnek, ez a helyi gyökérkönyvtár, amely csak az FTP -munkamenet otthoni könyvtáraként fog működni.
Ezután két lehetséges forgatókönyvet fogunk megvizsgálni, hogyan lehet az FTP -felhasználókat az FTP -felhasználók Home könyvtárai (helyi gyökér) könyvtárába chrootolni, az alábbiakban ismertetettek szerint.
6. Most adja hozzá ezt a két lehetőséget, hogy az FTP -felhasználókat saját könyvtáraiba korlátozza.
chroot_local_user = IGEN. allow_writeable_chroot = IGEN.
chroot_local_user = IGEN azt jelenti, hogy a helyi felhasználókat alapértelmezett beállítások szerint a bejelentkezést követően a chroot börtönbe helyezik.
És alapértelmezés szerint a vsftpd biztonsági okokból nem teszi lehetővé a chroot jail könyvtár írását, azonban használhatjuk ezt a lehetőséget allow_writeable_chroot = IGEN hogy felülbírálja ezt a beállítást.
Mentse el a fájlt, és zárja be.
FTP szerver védelme SELinux segítségével
7. Most állítsuk be a SELinux logikai értékkel, hogy az FTP olvashassa a felhasználó saját könyvtárában található fájlokat. Vegye figyelembe, hogy ez eredetileg a következő paranccsal történt:
# setsebool -P ftp_home_dir be.
Azonban a ftp_home_dir
direktíva alapértelmezés szerint le van tiltva, ahogyan ez a hibajelentésben szerepel: https://bugzilla.redhat.com/show_bug.cgi? id = 1097775.
Most használni fogjuk szemanage parancs a SELinux szabály beállításához, hogy lehetővé tegye az FTP számára a felhasználó saját könyvtárának olvasását/írását.
# semanage boolean -m ftpd_full_access --on.
Ezen a ponton újra kell indítanunk a vsftpd -t, hogy végrehajtsuk az összes fenti változtatást:
# systemctl újraindítás vsftpd.
4. lépés: Az FTP -kiszolgáló tesztelése
8. Most teszteljük az FTP -kiszolgálót egy FTP -felhasználó létrehozásával useradd parancs.
# useradd -m -c „Ravi Saive, CEO” -s /bin /bash ravi. # passwd ravi.
Ezt követően hozzá kell adnunk a felhasználót ravi a fájlhoz /etc/vsftpd.userlist használni a visszhang parancs alábbiak szerint:
# echo "ravi" | tee -a /etc/vsftpd.userlist. # cat /etc/vsftpd.userlist.
9. Most itt az ideje annak tesztelésére, hogy a fenti beállítások megfelelően működnek -e. Kezdjük anonim bejelentkezések tesztelésével, az alábbi képernyőképen láthatjuk, hogy a névtelen bejelentkezés nem engedélyezett:
# ftp 192.168.56.10 192.168.56.10 (192.168.56.10). 220 Üdvözöljük a TecMint.com FTP szolgáltatásban. Név (192.168.56.10:root): névtelen. 530 Az engedély megtagadva. Bejelentkezés sikertelen. ftp>

10. Azt is teszteljük, hogy a fájlban nem szereplő felhasználó -e /etc/vsftpd.userlist engedélyt kap a bejelentkezésre, ami nem így van, mint az alábbi képernyőképen:
# ftp 192.168.56.10 192.168.56.10 (192.168.56.10). 220 Üdvözöljük a TecMint.com FTP szolgáltatásban. Név (192.168.56.10:root): aaronkilik. 530 Az engedély megtagadva. Bejelentkezés sikertelen. ftp>

11. Most végezzen utolsó ellenőrzést, ha a fájlban szereplő felhasználó szerepel -e /etc/vsftpd.userlist, valójában a saját könyvtárába kerül a bejelentkezés után:
# ftp 192.168.56.10 192.168.56.10 (192.168.56.10). 220 Üdvözöljük a TecMint.com FTP szolgáltatásban. Név (192.168.56.10:root): ravi. 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> ls

allow_writeable_chroot = IGEN
rendelkezik bizonyos biztonsági vonatkozásokkal, különösen akkor, ha a felhasználók rendelkeznek feltöltési engedéllyel vagy shell hozzáféréssel.Csak akkor aktiválja ezt az opciót, ha pontosan tudja, mit csinál. Fontos megjegyezni, hogy ezek a biztonsági vonatkozások nem vsftpd specifikusak, hanem minden FTP démonra vonatkoznak, amelyek a helyi felhasználókat is a chroot börtönökbe bocsátják.
Ezért a következő szakaszban megvizsgáljuk egy biztonságosabb módot egy másik nem írható helyi gyökérkönyvtár beállítására.
5. lépés: Konfigurálja a különböző FTP felhasználói kezdőkönyvtárakat
12. Nyissa meg újra a vsftpd konfigurációs fájlt, és kezdje az alábbi nem biztonságos opció megjegyzésével:
#allow_writeable_chroot = IGEN.
Ezután hozza létre az alternatív helyi gyökérkönyvtárat a felhasználó számára (ravi
, a tied valószínűleg más), és távolítsd el az írási jogosultságokat minden felhasználó számára ebbe a könyvtárba:
# mkdir/home/ravi/ftp. # chown nobody: nobody/home/ravi/ftp. # chmod a-w/home/ravi/ftp.
13. Ezután hozzon létre egy könyvtárat a helyi gyökér alatt, ahol a felhasználó tárolja fájljait:
# mkdir/home/ravi/ftp/files. # chown ravi: ravi/home/ravi/ftp/files. # chmod 0700/home/ravi/ftp/files/
Ezután adja hozzá/módosítsa a következő beállításokat a vsftpd konfigurációs fájlban ezekkel az értékekkel:
user_sub_token = $ USER # beszúrja a felhasználónevet a helyi gyökérkönyvtárba local_root =/home/$ USER/ftp # meghatározza a felhasználók helyi gyökérkönyvtárát.
Mentse el a fájlt, és zárja be. Ismét indítsuk újra a szolgáltatást az új beállításokkal:
# systemctl újraindítás vsftpd.
14. Most végezzen újra egy utolsó tesztet, és nézze meg, hogy a felhasználók helyi gyökérkönyvtára az FTP könyvtár, amelyet a saját könyvtárában hoztunk létre.
# ftp 192.168.56.10 192.168.56.10 (192.168.56.10). 220 Üdvözöljük a TecMint.com FTP szolgáltatásban. Név (192.168.56.10:root): ravi. 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> ls

Ez az! Ebben a cikkben leírtuk, hogyan kell telepíteni, konfigurálni és biztonságossá tenni egy FTP -kiszolgálót a CentOS 7 rendszerben, a megjegyzés részben, hogy írjon nekünk az útmutatóval kapcsolatban, vagy osszon meg ezzel kapcsolatos hasznos információkat téma.
Javasolt olvasmány:Telepítse a ProFTPD szervert az RHEL/CentOS 7 rendszerre
A következő cikkben azt is megmutatjuk, hogyan kell FTP szerver védelme SSL/TLS használatával kapcsolatokat a CentOS 7 rendszerben, addig maradjon kapcsolatban a TecMint -tel.