Nastavenie servera FTP (File Transfer Protocol) na počítači so systémom Linux vám umožní prenos súborov medzi vašim systémom a vzdialeným počítačom. Ukážeme vám, ako nastaviť FTP server na CentOS.
Linux už má kopu serverov FTP s otvoreným zdrojovým kódom, ktoré môžete na túto prácu použiť. Patria sem populárne servery ako PureFTPd, ProFTPD a vsftpd.
Máte povolené používať ktorýkoľvek zo serverov FTP, ako chcete. V tomto tutoriále však budeme inštalovať a používať vsftpd, skratka pre Very Secure FTP Daemon. Jedná sa o rýchly, stabilný a bezpečný server FTP, ktorý vám pomôže okamžite preniesť súbory do a zo vzdialeného systému.
Nastavenie servera FTP v systéme CentOS
Takže bez ďalších okolkov začnime:
Inštalácia vsftpd
Najskôr si budeme musieť nainštalovať vsftpd na CentOS. Za týmto účelom zadajte do terminálu nasledujúci príkaz:
$ sudo dnf nainštalovať vsftpd
Ak je vo vašom systéme CentOS nainštalovaný program vsftpd, mali by ste ho nakonfigurovať tak, aby sa spúšťal a zavádzal automaticky. To možno vykonať pomocou nasledujúceho príkazu:
$ sudo systemctl povoliť vsftpd - teraz
Po dokončení overte stav služby vsftpd zadaním tohto príkazu:
$ sudo systemctl status vsftpd
Zobrazí sa výstupná obrazovka podobná tej nižšie. Mali by ste vidieť, že vsftpd nie je vo vašom systéme CentOS „aktívny“.
Nastaviť vsftpd
Ak je vsftpd aktívny a je vo vašom systéme spustený, budete musieť nakonfigurovať nastavenia servera. Ak to chcete urobiť, budete musieť pristupovať k súboru / etc / vsftpd / vsftpd.conf konfiguračný súbor. Môžete to urobiť otvorením konfiguračného súboru v nano editore zadaním nasledujúceho príkazu do terminálu:
$ sudo nano / etc / vsftpd / vsftpd.konf
Po otvorení súboru v editore existuje niekoľko zmien, ktoré musíte urobiť, aby ste vsftpd nastavili vo svojom systéme. Prejdime ich jeden po druhom.
1. Nakonfigurujte prístup FTP
Najskôr nakonfigurujme server FTP tak, aby umožňoval prístup iba lokálnym používateľom. Ak to chcete urobiť, musíte v súbore nájsť smernice anonymous_enable a local_enable a upraviť ich tak, ako je to znázornené na obrázku nižšie:
Ako vidíte, budete musieť nastaviť anonymous_enable = NO a local_enable = YES.
2. Povoliť nahrávanie
Ďalej budete musieť nakonfigurovať server FTP tak, aby umožňoval nahrávanie a mazanie súborov.
Aby ste to dosiahli, budete musieť nájsť direktívu write_enable a zmeniť ju na YES, ako je to znázornené na obrázku.
3. Obmedzte prihlasovanie používateľov
Po dokončení budete chcieť obmedziť celkový počet prihlásení používateľov, i.e., chcete, aby sa na váš server FTP prihlásili iba určití používatelia. Ak to chcete urobiť, najskôr vyhľadajte tento riadok v .conf súbor - userlist_enable = ÁNO. Potom do súboru pridajte tieto dva riadky:
userlist_file = / etc / vsftpd / user_list userlist_deny = NIE
Ako referenciu použite nasledujúci obrázok:
Túto možnosť môžete tiež povoliť. Ak tak urobíte, budete musieť výslovne určiť, ktorým používateľom chcete poskytnúť prístup na server FTP. Ak chcete používateľom povoliť, budete musieť pridať ich používateľské mená do súboru / etc / vsftpd / user_list s iba jedným používateľským menom v každom riadku.
4. Nastaviť pasívne pripojenia FTP
Možno budete chcieť nastaviť pasívne pripojenia FTP.
Preto vám ukážeme, ako môžete určiť minimálny a maximálny rozsah portov pridaním niekoľkých riadkov do súboru .conf súbor.
Všetko, čo musíte urobiť, je posunúť sa nadol na koniec súboru a pridať tieto dva riadky, ako je to znázornené na obrázku.
pasv_min_port = 30000 pasv_max_port = 31000
Ďalej v tomto výučbe sa budeme zaoberať tým, ako môžete otvoriť rozsah vo svojej bráne firewall.
5. Nakonfigurujte zabezpečené prenosy pomocou protokolu SSL / TLS
Na záver prichádza otázka zabezpečenia pripojenia FTP pomocou SSL / TLS. Aby ste to dosiahli, budete musieť mať certifikát SSL a nakonfigurovať svoj server FTP tak, aby ho mohol používať.
Kvôli tejto príručke však pomocou nástroja OpenSSL vygenerujeme certifikát SSL s vlastným podpisom a potom ho použijeme na šifrovanie nášho FTP prenosu.
Takže najskôr je potrebné pomocou OpenSSL vygenerovať nový certifikát SSL. Môžete to urobiť zadaním nasledujúceho príkazu do terminálu:
sudo openssl req -x509 -nodes -days 3650 -newkey rsa: 2048 -keyout / etc / vsftpd / vsftpd.pem -out / etc / vsftpd / vsftpd.pem
Spustením vyššie uvedeného príkazu vygenerujete 2048-bitový súkromný kľúč, ako aj certifikát s vlastným podpisom. Obidve z nich platia desať rokov a sú uložené v rovnakom súbore.
Po vytvorení nového certifikátu SSL otvorte konfiguračný súbor vsftpd pomocou predchádzajúceho príkazu:
sudo nano / etc / vsftpd / vsftpd.konf
Posuňte sa nadol a pridajte nasledujúce riadky, ako je to znázornené na obrázku:
rsa_cert_file = / etc / vsftpd / vsftpd.pem rsa_private_key_file = / etc / vsftpd / vsftpd.pem ssl_enable = ÁNO
A to je všetko. Úspešne ste nakonfigurovali certifikát SSL pre svoj server FTP.
6. Dokončiť
Po dokončení znova skontrolujte konfiguračný súbor vsftpd a zistite, či sú všetky nasledujúce nastavenia také, aké sú:
anonymous_enable = NO local_enable = ÁNO write_enable = ÁNO local_umask = 022 dirmessage_enable = ÁNO xferlog_enable = ÁNO connect_from_port_20 = ÁNO xferlog_std_format = ÁNO počúvať = NIE listen_ipv6 = ÁNO pam_service_name = vsftpd userlist_enable = ÁNO userlist_file = / etc / vsftpd / user_list userlist_deny = NO pasv_min_port = 30000 pasv_max_port = 31000 rsa_cert_file = / etc / vsftpd / vsftpd.pem rsa_private_key_file = / etc / vsftpd / vsftpd.pem ssl_enable = ÁNO
Keď sa ubezpečíte, že v súbore boli urobené všetky vyššie uvedené zmeny, budete ho musieť uložiť. Po uložení reštartujte službu vsftpd pomocou nasledujúceho príkazu:
$ sudo systemctl reštart vsftpd
Nakonfigurujte bránu firewall
Ak máte spolu so serverom FTP povolenú bránu firewall, musíte bránu firewall nakonfigurovať tak, aby umožňovala prenosy FTP.
Aby ste to dosiahli, budete musieť do terminálu zadať nasledujúce príkazy:
$ sudo firewall-cmd --permanent --add-port = 20-21 / tcp
Vyššie uvedený príkaz otvára port 21 - čo je príkazový port FTP, a port 20 - čo je dátový port FTP.
Budete tiež musieť zadať tento príkaz:
$ sudo firewall-cmd --permanent --add-port = 30000-31000 / tcp
Tento príkaz otvára rozsah pasívnych portov 30000-31000, ktorý sme nakonfigurovali predtým.
Po dokončení budete musieť znova načítať bránu firewall pomocou nasledujúceho príkazu:
$ firewall-cmd - načítať
Ako vytvoriť nového používateľa FTP
Teraz, keď ste vo svojom systéme CentOS nastavili svoj server vsftpd, je čas vytvoriť nového používateľa FTP a vyskúšať ho.
Najskôr vytvoríme nového používateľa FTP (newftpuser) pomocou nasledujúceho príkazu:
$ sudo adduser newftpuser
Ďalej budete musieť nastaviť heslo pre nového používateľa. Použite tento príkaz:
$ sudo passwd newftpuser
Skontrolujte, či je heslo silné a dlhšie ako osem znakov.
Po vytvorení nového používateľa ho budete musieť pridať do zoznamu používateľov FTP. Môžete to urobiť zadaním nasledujúceho príkazu do terminálu:
$ echo "newftpuser" | sudo tee -a / etc / vsftpd / user_list
Nakoniec budete musieť vytvoriť adresárový strom FTP, kde nastavíte všetky správne povolenia. Aby ste to dosiahli, budete musieť do terminálu zadať nasledujúcu sériu príkazov:
$ sudo mkdir -p / home / newftpuser / ftp / upload $ sudo chmod 550 / home / newftpuser / ftp $ sudo chmod 750 / home / newftpuser / ftp / upload $ sudo chown -R newftpuser: / home / newftpuser / ftp
Váš FTP server je teraz plne funkčný a pripravený na použitie. Teraz sa k nemu môžete pripojiť pomocou ľubovoľného klienta FTP, ako je FileZilla. Uistite sa, že klienta FTP je možné nakonfigurovať aj na použitie šifrovania TLS, pretože sa používa na šifrovanie prenosov FTP.
Zakázať prístup k shellu
Pri vytváraní nového používateľa FTP by ste mali pamätať na jednu vec, že pokiaľ nebude výslovne uvedené, bude mať používateľ prístup SSH k serveru.
Ak chcete užívateľovi zakázať prístup k shellu, budete musieť vytvoriť nový shell, ktorý vytlačí správu informujúcu používateľa, že - „Tento účet je obmedzený iba na prístup FTP.“
Aby ste to dosiahli, budete musieť do terminálu zadať nasledujúci príkaz:
$ echo -e '#!/ bin / sh \ necho "Tento účet je obmedzený iba na prístup FTP."'| sudo tee -a / bin / ftponly $ sudo chmod a + x / bin / ftponly
Vyššie uvedený príkaz vytvorí / bin / ftponly shell a vykoná ho.
Ďalej budete musieť nový shell pridať do zoznamu platných škrupín, ktoré sa nachádzajú vo vnútri / etc / škrupiny spis. To sa deje pomocou nasledujúceho príkazu:
$ echo "/ bin / ftponly" | sudo tee -a / etc / shells
A ako posledný krok, všetko, čo musíte urobiť, je zmeniť užívateľský shell na / bin / ftponly pomocou tohto príkazu:
$ sudo usermod newftpuser -s / bin / ftponly
Pre všetkých budúcich používateľov FTP môžete rovnakým príkazom zmeniť aj svoj shell, aby mali prístup iba k FTP.