Jak instalować, skonfigurować i zabezpieczyć serwer FTP w Centos 7 - [Kompleksowy przewodnik]

Jak instalować, skonfigurować i zabezpieczyć serwer FTP w Centos 7 - [Kompleksowy przewodnik]

Ftp (Protokół Przesyłania Plików) jest tradycyjnym i powszechnie używanym standardowym narzędziem do przesyłania plików między serwerem a klientami przez sieć, szczególnie tam, gdzie nie jest konieczne uwierzytelnianie (pozwala anonimowym użytkownikom połączyć się z serwerem). Musimy zrozumieć, że FTP jest domyślnie niezabezpieczone, ponieważ przesyła poświadczenia użytkownika i dane bez szyfrowania.

W tym przewodniku opiszemy kroki do zainstalowania, skonfigurowania i zabezpieczenia serwera FTP (VSFTPD oznacza "Bardzo bezpieczny demon ftp") W Centos/RHEL 7 I Fedora rozkłady.

Zauważ, że wszystkie polecenia w tym przewodniku zostaną uruchomione źródło, w przypadku, gdy nie obsługujesz serwera z źródło Konto, użyj polecenia sudo, aby uzyskać uprawnienia główne.

Krok 1: Instalowanie serwera FTP

1. Instalowanie VSFTPD serwer jest prosty, wystarczy uruchom następujące polecenie w terminalu.

# Yum Instal vsftPD 

2. Po zakończeniu instalacji usługa będzie początkowo wyłączona, więc musimy ją zacząć ręcznie na razie i włączyć automatycznie od następnego rozruchu systemowego:

# Systemctl start vsftpd # Systemctl Włącz VSFTPD 

3. Następnie, aby umożliwić dostęp do usług FTP z systemów zewnętrznych, musimy otworzyć port 21, gdzie słuchają demony FTP w następujący sposób:

# firewall-cmd --zone = public --Permanent --add-port = 21/tcp # firewall-cmd --zone = public --Permanent --add-service = ftp # firewall-cmd--relad 

Krok 2: Konfigurowanie serwera FTP

4. Teraz przejdziemy do wykonania kilku konfiguracji, aby skonfigurować i zabezpieczyć nasz serwer FTP, zacznijmy od wykonania kopii zapasowej oryginalnego pliku konfiguracyjnego /etc/vsftpd/vsftpd.conf:

# cp/etc/vsftpd/vsftpd.conf/etc/vsftpd/vsftpd.conf.Orig 

Następnie otwórz powyższy plik konfiguracyjny i ustaw następujące opcje z odpowiednimi odpowiednimi wartościami:

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 FTP, aby umożliwić/odmówić dostępu do FTP dla użytkowników na podstawie pliku listy użytkowników /etc/vsftpd.Lista użytkowników.

Domyślnie użytkownicy wymienione UserList_file =/etc/vsftpd.Lista użytkowników odmawia się dostępu do logowania z UserList_deny opcja ustawiona na TAK, Jeśli userList_enable = Tak.

Jednakże, UserList_deny = nie zmienia ustawienie, co oznacza, że ​​tylko użytkownicy wyraźnie wymienili UserList_file =/etc/vsftpd.Lista użytkowników będzie dozwolone do zalogowania się.

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 

To nie wszystko, gdy użytkownicy logują się na serwerze FTP, są umieszczani w więzieniu Chroot'ed, 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 chroot ftp użytkowników do katalogów domowych (lokalny root) dla użytkowników FTP, jak wyjaśniono poniżej.

6. Teraz dodaj 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 

CHROOT_LOCAL_USER = Tak Oznacza, że ​​lokalni użytkownicy zostaną umieszczone w więzieniu Chroot, ich katalogu domowym po logowaniu domyślnie.

A także domyślnie, VSFTPD nie pozwala na zapisywanie katalogu więzienia chroot z powodów bezpieczeństwa, jednak możemy skorzystać z tej opcji zezwolić_writeble_chroot = tak Aby zastąpić to ustawienie.

Zapisz plik i zamknij go.

Zabezpieczenie serwera FTP za pomocą Selinux

7. Teraz ustawmy Selinux boolean poniżej, aby umożliwić FTP czytanie plików w katalogu domowym użytkownika. Zauważ, że początkowo zostało to zrobione przy użyciu polecenia:

# setsebool -p ftp_home_dir 

Jednakże ftp_home_dir Dyrektywa została domyślnie wyłączona, jak wyjaśniono w tym raporcie o błędach: https: // bugzilla.czerwony kapelusz.com/show_bug.CGI?ID = 1097775.

Teraz będziemy używać Semanage Polecenie do ustawienia reguły SELINUX, aby FTP odczytać/zapisywać katalog domowy użytkownika.

# semanage boolean -m ftpd_full_access --on 

W tym momencie musimy ponownie uruchomić VSFTPD, aby wpłynąć na wszystkie zmiany, które dokonaliśmy do tej pory powyżej:

# Systemctl restart vsftpd 

Krok 4: Testowanie serwera FTP

8. Teraz przetestujemy serwer FTP, tworząc użytkownika FTP z poleceniem UserADD.

# useradd -m -c „Ravi Saive, CEO” -S /bin /bash ravi # passwd ravi 

Następnie musimy dodać użytkownika Ravi do pliku /etc/vsftpd.Lista użytkowników Korzystanie z polecenia Echo w następujący sposób:

# Echo „Ravi” | tee -a /etc /vsftpd.lista użytkownika # cat /etc /vsftpd.Lista użytkowników 

9. Teraz nadszedł czas, aby sprawdzić, czy nasze powyższe ustawienia działają poprawnie. Zacznijmy od przetestowania anonimowych loginów, możemy zobaczyć z ekranu poniżej, że anonimowe loginy są niedozwolone:

# ftp 192.168.56.10 Połączone z 192.168.56.10 (192.168.56.10). 220 Witamy w Tecmint.Usługa com ftp. Imię (192.168.56.10: Root): Anonimowe uprawnienia 530 Odmówiono. Logowanie nie powiodło się. ftp> 
Test anonimowy login FTP

10. Przetestujmy również, czy użytkownik nie jest wymieniony w pliku /etc/vsftpd.Lista użytkowników otrzyma pozwolenie na zalogowanie się, co nie jest przypadek, jak w ujęciu ekranu poniżej:

# ftp 192.168.56.10 Połączone z 192.168.56.10 (192.168.56.10). 220 Witamy w Tecmint.Usługa com ftp. Imię (192.168.56.10: Root): Aaronkilik 530 odmówiono. Logowanie nie powiodło się. ftp> 
Login użytkownika FTP nie powiódł się

11. Teraz sprawdź ostateczną sprawdzenie, czy użytkownik wymienił w pliku /etc/vsftpd.Lista użytkowników, jest w rzeczywistości umieszczony w katalogu domowym po zalogowaniu:

# ftp 192.168.56.10 Połączone z 192.168.56.10 (192.168.56.10). 220 Witamy w Tecmint.Usługa com ftp. Imię (192.168.56.10: root): Ravi 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 

Logowanie użytkownika FTP skutecznie [Ostrzeżenie: Za pomocą zezwolić_writeble_chroot = tak ma pewne implikacje bezpieczeństwa, zwłaszcza jeśli użytkownicy mają uprawnienia do przesyłania lub dostęp do powłoki.

Aktywuj tę opcję tylko wtedy, gdy dokładnie wiesz, co robisz. Należy zauważyć, że te implikacje bezpieczeństwa ARET VSFTPD, dotyczą one wszystkich demonów FTP, które oferują również lokalnych użytkowników w więzieniach Chroot.

Dlatego przyjrzymy się bezpieczniejszym sposobowi ustawienia innego niewiarygodnego lokalnego katalogu głównego w następnym rozdziale.

Krok 5: Skonfiguruj różne katalogi domowe użytkowników FTP

12. Otwórz ponownie plik konfiguracyjny VSFTPD i zacznij od skomentowania opcji niezabezpieczonej poniżej:

#zezwolić_writeble_chroot = tak 

Następnie utwórz alternatywny lokalny katalog główny dla użytkownika (Ravi, Twój jest prawdopodobnie inny) i usuń uprawnienia do zapisu do wszystkich użytkowników do tego katalogu:

# mkdir/home/ravi/ftp # chown nikom 

13. Następnie utwórz katalog pod lokalnym korzeniem, w którym użytkownik będzie przechowywać swoje pliki:

# mkdir/home/ravi/ftp/files # chown ravi: ravi/home/ravi/ftp/files # chmod 0700/home/ravi/ftp/files/ 

Następnie dodaj/zmodyfikuj następujące opcje w pliku konfiguracji VSFTPD z tymi 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. Jeszcze raz ponownie uruchommy usługę za pomocą nowych ustawień:

# Systemctl restart vsftpd 

14. Teraz wykonaj ostateczny test ponownie i zobacz, że lokalny katalog główny użytkowników to katalog FTP, który stworzyliśmy w jego katalogu domowym.

# ftp 192.168.56.10 Połączone z 192.168.56.10 (192.168.56.10). 220 Witamy w Tecmint.Usługa com ftp. Imię (192.168.56.10: root): Ravi 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 
FTP Użytkownik Diatctory Directory Login Scedent

Otóż ​​to! W tym artykule opisaliśmy, jak instalować, skonfigurować, a także zabezpieczyć serwer FTP w CentoS 7, użyj sekcji komentarzy poniżej, aby odpisać do nas dotyczący tego przewodnika/udostępnij wszelkie przydatne informacje na ten temat.

Sugerowane przeczytanie: Zainstaluj serwer PROFTPD na RHEL/CENTOS 7

W następnym artykule pokażemy również, jak zabezpieczyć serwer FTP za pomocą połączeń SSL/TLS w Centos 7, do tego czasu pozostań w kontakcie z TecMint.