Jak zainstalować i skonfigurować serwer FTP w Ubuntu

Jak zainstalować i skonfigurować serwer FTP w Ubuntu

Ftp (Protokół Przesyłania Plików) to stosunkowo stary i najczęściej używany standardowy protokół sieciowy używany do przesyłania/pobierania plików między dwoma komputerami przez sieć. Jednakże, Ftp według pierwotnego niepewnego, ponieważ przesyła dane wraz z poświadczeniami użytkownika (nazwa użytkownika i hasło) bez szyfrowania.

Ostrzeżenie: Jeśli planujesz użyć Ftp, Rozważ skonfigurowanie połączenia FTP z SSL/TLS (obejmie następny artykuł). W przeciwnym razie zawsze lepiej jest używać bezpiecznego FTP, takiego jak SFTP.

Sugerowane przeczytanie: Jak zainstalować i zabezpieczyć serwer FTP w Centos 7

W tym samouczku pokażemy, jak instalować, skonfigurować i zabezpieczyć Ftp serwer (VSFTPD w pełni "Bardzo bezpieczny demon ftp") W Ubuntu mieć potężne bezpieczeństwo wobec luk FTP.

Krok 1: Instalowanie serwera VSFTP w Ubuntu

1. Najpierw musimy zaktualizować listę źródeł pakietów systemowych, a następnie zainstalować VSFTPD Pakiet binarny w następujący sposób:

$ sudo apt-get aktualizacja $ sudo apt-get instaluj vsftpd 

2. Po zakończeniu instalacji usługa będzie początkowo wyłączona, dlatego musimy rozpocząć ją ręcznie do czasu, a także umożliwić automatyczne uruchomienie od następnego rozruchu systemowego:

------------- Na systemd ------------- # Systemctl start vsftpd # Systemctl Włącz VSFTPD ------------- Na Sysvinit ------------- # usługa vsftpd start # CHKCONFIG -LEVEL 35 VSFTPD ON 

3. Następnie, jeśli masz włączoną zaporę UFW (domyślnie nie jest włączona), musisz otwierać porty 21 I 20 Tam, gdzie słuchają demony FTP, aby umożliwić dostęp do usług FTP ze zdalnych maszyn, a następnie dodaj nowe zasady zapory w następujący sposób:

$ sudo ufw zezwolić 20/tcp $ sudo ufw zezwolić 21/tcp $ sudo UFW status 

Krok 2: Konfigurowanie i zabezpieczenie serwera VSFTP w Ubuntu

4. Wykonajmy teraz kilka konfiguracji, aby skonfigurować i zabezpieczyć nasz serwer FTP, najpierw utworzymy kopię zapasową oryginalnego pliku konfiguracyjnego /etc/vsftpd/vsftpd.conf Tak jak:

$ sudo cp /etc /vsftpd.conf /etc /vsftpd.conf.Orig 

Następnie otwórzmy VSFTPD plik konfiguracyjny.

$ sudo vi /etc /vsftpd.conf lub $ sudo nano /etc /vsftpd.conf 

Dodaj/zmodyfikuj następujące opcje za pomocą tych wartości:

anonimous_enable = nie # Wyłącz anonimowy login login_enable = tak # Zezwolenie loginów lokalnych write_enable = tak # Włącz polecenia FTP, które zmieniają system plików Locance_umask = 022 # Wartość UMSK dla tworzenia plików dla użytkowników lokalnych dirmessage_enable = tak Nowy katalog xferlog_enable = Tak # Plik dziennika zostanie utrzymany szczegółowo przesyłania i pobierania Connect_From_Port_20 = Tak # Użyj portu 20 (ftp-data) na komputerze serwerowym dla połączeń stylów portu xferlog_std_format = tak Zapobiegaj uruchomieniu VSFTPD w trybie samodzielnym Słuchanie_ipv6 = Tak # vsftpd będzie słuchać gniazda IPv6 zamiast IPv4 One pam_service_name = vsftpd # Nazwa usługi PAM vsftpd będzie używać userList_Enable = Tak # Włącz vsftpd ładowanie listy USERNAMES = tak # Włącz opakowania TCP 

5. Teraz skonfiguruj VSFTPD Aby umożliwić/odmówić dostępu do FTP użytkownikom na podstawie pliku listy użytkowników /etc/vsftpd.Lista użytkowników.

Zauważ, że domyślnie użytkownicy wymienione UserList_file =/etc/vsftpd.Lista użytkowników odmawia się dostępu do logowania z userList_deny = Tak opcja, jeśli userList_enable = Tak.

Ale opcja UserList_deny = nie zwrotnie znaczenie ustawienia domyślnego, więc tylko użytkownicy, których nazwa użytkownika jest wyraźnie wymieniona UserList_file =/etc/vsftpd.Lista użytkowników będzie dozwolone do zalogowania się na serwerze FTP.

UserList_Enable = Tak # vsftpd będzie załadować listę nazw użytkowników, z nazwy pliku podanego przez lista użytkownika lista użytkownika_file =/etc/vsftpd.UserList # przechowuje nazwy użytkowników. UserList_deny = nie 

Ważny: Gdy użytkownicy logują się na serwerze FTP, są one umieszczane w więzieniu chrootowanym, jest to lokalny katalog główny, który będzie działał jako ich katalog domowy tylko dla sesji FTP.

Następnie przyjrzymy się dwóm możliwym scenariuszom, jak ustawić katalog więzienia (lokalny root), jak wyjaśniono poniżej.

6. W tym momencie dodajmy/modyfikuj/Ukształć te dwie następujące opcje, aby ograniczyć użytkowników FTP do ich katalogów domowych.

chroot_local_user = Tak Zezwalaj_writeble_chroot = tak 

Opcja CHROOT_LOCAL_USER = Tak Co ważne, oznacza, że ​​lokalni użytkownicy zostaną umieszczone w więzieniu Chroot, domyślnie ich katalog domowy po zalogowaniu.

I musimy również zrozumieć, że VSFTPD nie pozwala, aby katalog więzienia chroot jest zapisany, domyślnie z powodów bezpieczeństwa, jednak możemy skorzystać z tej opcji zezwolić_writeble_chroot = tak Aby wyłączyć to ustawienie.

Zapisz plik i zamknij go. Następnie musimy ponownie uruchomić usługi VSFTPD, aby powyższe zmiany w obowiązywały:

------------- Na systemd ------------- # Systemctl restart vsftpd ------------- Na Sysvinit ------------- # Service VSFTPD restart 

Krok 3: Testowanie serwera VSFTP w Ubuntu

7. Teraz przetestujemy serwer FTP, tworząc użytkownika FTP z poleceniem UserADD w następujący sposób:

$ sudo useradd -m -c "aaron kili, współpracownik" -s /bin /bash aaronkilik $ sudo passwd aaronkilik 

Następnie musimy wyraźnie wymienić użytkownika Aaronkilik w pliku /etc/vsftpd.Lista użytkowników z poleceniem echo i Polecenie TEE jak poniżej:

$ echo „aaronkilik” | sudo tee -a /etc /vsftpd.lista użytkownika $ cat /etc /vsftpd.Lista użytkowników 

8. Teraz nadszedł czas, aby przetestować nasze powyższe konfiguracje działające zgodnie z wymaganiami. Zaczniemy od testowania anonimowych loginów; Z poniżej wynika, że ​​anonimowe loginy są niedozwolone na serwerze FTP:

# ftp 192.168.56.102 Połączone z 192.168.56.102 (192.168.56.102). 220 Witamy w Tecmint.Usługa com ftp. Imię (192.168.56.102: Aaronkilik): Anonimowe 530 odmówiono. Logowanie nie powiodło się. ftp> pa 221 Do widzenia. 

9. Następnie sprawdźmy, czy użytkownik nie jest wymieniony w pliku /etc/vsftpd.Lista użytkowników otrzyma pozwolenie na logowanie, co nie jest prawdą z następującego wyjścia:

# ftp 192.168.56.102 Połączone z 192.168.56.102 (192.168.56.102). 220 Witamy w Tecmint.Usługa com ftp. Imię (192.168.56.10: root): Użytkownik1 530 Odmówiono zgody. Logowanie nie powiodło się. ftp> pa 221 Do widzenia. 

10. Teraz przeprowadzimy ostateczny test, aby ustalić, czy użytkownik wymieniony w pliku /etc/vsftpd.Lista użytkowników, jest w rzeczywistości umieszczony w katalogu domowym po zalogowaniu. I dotyczy to poniższego wyjścia:

# ftp 192.168.56.102 Połączone z 192.168.56.102 (192.168.56.102). 220 Witamy w Tecmint.Usługa com ftp. Imię (192.168.56.102: Aaronkilik): Aaronkilik 331 Podaj hasło. Hasło: 230 login udało się. Zdalny typ systemu to UNIX. Korzystanie z trybu binarnego do przesyłania plików. ftp> LS 
Sprawdź logowanie FTP w Ubuntu

Ostrzeżenie: Ustawienie opcji zezwolić_writeble_chroot = tak może być tak niebezpieczne, że ma możliwe implikacje bezpieczeństwa, zwłaszcza jeśli użytkownicy mają zgodę na przesłanie, a tym bardziej dostępu do powłoki. Używaj go tylko wtedy, gdy dokładnie wiesz, co robisz.

Należy zauważyć, że te implikacje bezpieczeństwa nie są specyficzne dla VSFTPD, mogą również wpływać na wszystkie inne demony FTP, które oferują lokalne użytkowników w więzieniach Chroot.

Z tego powodu, w poniższej sekcji, wyjaśnimy bardziej bezpieczną metodę ustawienia innego niewiarygodnego lokalnego katalogu głównego dla użytkownika.

Krok 4: Skonfiguruj katalogi domowe użytkownika FTP w Ubuntu

11. Teraz otwórz jeszcze raz plik konfiguracyjny VSFTPD.

$ sudo vi /etc /vsftpd.conf lub $ sudo nano /etc /vsftpd.conf 

i skomentuj niezabezpieczoną opcję za pomocą # znak, jak pokazano poniżej:

#zezwolić_writeble_chroot = tak 

Następnie utwórz alternatywny lokalny katalog główny dla użytkownika (Aaronkilik, Twój prawdopodobnie nie jest taki sam) i ustaw wymagane uprawnienia, wyłączając uprawnienia do zapisu wszystkim innym użytkownikom w tym katalogu:

$ sudo mkdir/home/aaronkilik/ftp $ sudo chown nikt: nogroup/home/aaronkilik/ftp $ sudo chmod a-w/home/aaronkilik/ftp 

12. Następnie utwórz katalog pod lokalnym korzeniem z odpowiednimi uprawnieniami, w których użytkownik będzie przechowywał jego pliki:

$ sudo mkdir/home/aaronkilik/ftp/files $ sudo chown -r aaronkilk: aaronkilik/home/aaronkilik/ftp/files $ sudo chmod -r 0770/home/aaronkilik/ftp/files/files/files/files/files/files/files/files/files/ 

Następnie dodaj/zmodyfikuj poniższe opcje w pliku konfiguracji VSFTPD z odpowiednimi wartościami:

user_sub_token = $ User # Wstaw nazwę użytkownika w lokalnym katalogu głównym local_root =/home/$ user/ftp # 

Zapisz plik i zamknij go. I uruchom ponownie usługi VSFTPD z najnowszymi ustawieniami:

------------- Na systemd ------------- # Systemctl restart vsftpd ------------- Na Sysvinit ------------- # Service VSFTPD restart 

13. Teraz wykonajmy ostateczną kontrolę i upewnij się, że lokalnym katalogiem głównym użytkownika jest katalog FTP, który stworzyliśmy w jego katalogu domowym.

# ftp 192.168.56.102 Połączone z 192.168.56.102 (192.168.56.102). 220 Witamy w Tecmint.Usługa com ftp. Imię (192.168.56.10: Aaronkilik): Aaronkilik 331 Podaj hasło. Hasło: 230 login udało się. Zdalny typ systemu to UNIX. Korzystanie z trybu binarnego do przesyłania plików. ftp> LS 
Login Directory Home Directory FTP

Otóż ​​to! Pamiętaj, aby podzielić się swoją opinią na temat tego przewodnika za pośrednictwem poniższego formularza komentarza lub prawdopodobnie podać nam wszelkie ważne informacje na ten temat.

Wreszcie, nie przegap naszego następnego artykułu, w którym opiszemy, jak zabezpieczyć serwer FTP za pomocą połączeń SSL/TLS w Ubuntu 16.04/16.10, do tego czasu zawsze bądź na tokmincie.