# » course » networking-professional » Linux.08
8. Serwer plików (FTP)
FTP, protokół transferu plików (ang. File Transfer Protocol) – protokół komunikacyjny typu klient-serwer wykorzystujący protokół TCP według modelu TCP/IP (krótko: połączenie TCP), umożliwiający dwukierunkowy transfer plików w układzie serwer-FTP <=> klient-FTP.
Porównanie wybranych serwerów FTP
| Program | Opis | Link |
|---|---|---|
| vsFTPd Very Secure Ftp Daemon | bardzo mały, napisany głównie z myślą o szybkości i bezpieczeństwie, doskonały do zastosowania w sieciach LAN i serwisach od dużej przepustowości, jest najlepszym rozwiązaniem jeżeli tylko oferowana funkcjonalność jest wystarczająca. | http://vsftpd.beasts.org/ https://pl.wikipedia.org/wiki/Vsftpd |
| PureFTPd | trochę większy od vsftpd ale i oferuje więcej funkcjonalności, poza tym tak samo jak vsftp napisany z myślą o szybkości i nie posiada luk bezpieczeństwa, zaprojektowany specjalnie dla nowoczesnych jąder Linux i FreeBSD | http://www.pureftpd.org/ https://pl.wikipedia.org/wiki/Pure-FTPd |
| ProFTPd | to zupełnie inny gabaryt niż dwa poprzednie. Jednak jest on bardziej rozbudowany i konfigurowalny niż dwa poprzednie, niestety nie ma najlepszej opinii w kwestii bezpieczeństwa. Oferuje składnię plików konfiguracyjnych podobną do Apache i równie wysoką konfigurowalność | http://www.proftpd.org/ |
UWAGA!!
Instrukcja zakłada korzystane z domeny nazwa.local, której konfigurację podano w rozdziale 06 DNS, serwer nazw domenowych.
8.1 Instalacja serwera vsFTPd
Dla systemu Linux istnieje wiele programów pełniących rolę serwera FTP. W tej instrukcji przedstawiony jest instalacja i konfiguracja serwera vsftpd.
- Aktualizacja repozytorium:
# apt update - Instalacja serwera vsftpd
# apt install vsftpd - Dane serwera (dla użytkowników anonimowych) przechowywane są w katalogu /srv/ftp/ w celu testów utworzymy tam plik.
# echo "losowy tekst" > /srv/ftp/test.txt - Zaraz po instalacji serwer ftp jest gotowy do połączenia – domyślnie nie jest dozwolony jest dostęp anonimowy (login: anonymous). Aby go włączyć należy zmienić w pliku /etc/vsftpd.conf zapis
Możemy teraz przetestować serwer łącząc się do niego z klienta poleceniem ftp# Allow anonymous FTP? (Disabled by default). anonymous_enable=YESC:\Users\Administrator>ftp nazwa.local Połączony z nazwa.local. 220 (vsFTPd 3.0.3) Użytkownik (nazwa.local:(none)): anonymous 331 Please specify the password. Hasło: ENTER - nie ma hasła! 230 Login successful. ftp> - Gdy jesteśmy połączeni z serwerem możemy wyświetlić jego zawartość poleceniem dir lub ls
ftp> dir 200 PORT command successful. Consider using PASV. 150 Here comes the directory listing. -rw-r--r-- 1 0 0 13 Feb 29 16:45 test.txt 226 Directory send OK. ftp: 64d bajtów odebranych w 0,00Sekund 66000,00Kbajtów/sek. ftp> ls - To samo możemy zobaczyć używając przeglądarki www podając jako adres: ftp://nazwa.local Oczywiście użytkownik anonymous posiada jedynie prawo do odczytu na serwerze. W takiej konfiguracji serwer ftp może służyć jedynie do publikowania przez nas plików, które inni będą mogli tylko pobrać. Jeśli chcemy aby nasi użytkownicy mogli także zamieszczać pliki na serwerze (na przykład strony HTML), trzeba zmienić konfigurację serwera.
8.2 Włączenie dostępu dla użytkowników lokalnych
W celu umożliwienia dostępu (oraz zapisu) lokalnym użytkownikom do serwera FTP trzeba wprowadzić drobne zmiany w pliku konfiguracyjnym /etc/vsftpd.conf
- Włączamy dostęp dla użytkowników lokalnych w pliku /etc/vsftpd.conf
# Uncomment this to allow local users to log in. local_enable=YES - Restartujemy serwer vsftpd
# service vsftpd restart - Z poziomu wiersza poleceń (CMD) na kliencie polecaniem ftp sprawdzamy możliwość logowania się na konto student, a następnie wyświetlamy zawartość jego katalogu poleceniem dir
- Teraz każdy lokalny użytkownik ma dostęp do swojego katalogu domowego przez FTP jednak bez prawa zapisu, aby umożliwić zapis wprowadzamy następną zmianę w /etc/vsftpd.conf
# Uncomment this to enable any form of FTP write command. write_enable=YES - Restartujemy serwer
# service vsftpd restart - Na systemie klienckim uruchamiamy program graficzny do łączenia się z FTP (np. FileZilla, WinSCP, TotalCommander) i logujemy się na użytkownika student
- Po udanym logowaniu widzimy strukturę katalogów i zawartość katalogu /home/student
- Możemy wykonać próbę transferu pliku, aby efekt był widoczny także na serwerze HTTP możemy plik skopiować bezpośrednio do katalogu /home/student/public_html/
- Efekt możemy sprawdzić oczywiście także przy pomocy przeglądarki internetowej.
Od tej chwili wszyscy użytkownicy naszego serwera mogą na nim zapisywać pliki w swoich katalogach oraz z zapisane tam pliki pobierać na swoje lokalne komputery.
8.3 Pozwolenie na logowanie użytkownika root w vsftpd
Domyślnie root nie ma możliwości dostępu do ftp ponieważ jego login jest na liście znajdującej się /etc/ftpusers lub /etc/vsftpd/ftpusers
Usuń root'a z tej listy. Zapisz plik. Zrestartuj vsftpd. Od tego momentu root będzie mieć możliwość logowania do ftp.
Jeżeli to nie działa konieczne może być sprawdzenie i dodanie (odkomentowanie) wpisu w pliku vsftpd.conf
userlist_deny=YES
Sieci Komputerowe
poziom podstawowy
Sieci komputerowe
poziom zaawansowany
- Serwer Windows - Przygotowanie maszyny wirtualnej dla systemu Windows Server (wirtualizacja sieci)
- Serwer Windows - Instalacja i konfiguracja systemu Windows Server
- Serwer Windows - Serwer DNS w sieci lokalnej w oparciu o system Windows Server (DNS)
- Serwer Windows - Zapora sieciowa w systemie Windows Serwer (Firewall)
- Serwer Windows - Kontroler domeny w oparciu o Windows Server (AD DS)
- Serwer Windows - Tworzenie zespołu kart sieciowych (NIC Teaming) w systemie Windows Server (NIC Teaming)
Sieci komputerowe
poziom profesjonalny
- Serwer Linux - Przygotowanie maszyny wirtualnej (wirtualizacja sieci)
- Serwer Linux - Instalacja systemu
- Serwer Linux - Konfiguracja sieci
- Serwer Linux - Instalacja i konfiguracja SSH
- Serwer Linux - DHCP, dynamiczna konfiguracja adresacji hostów w sieci
- Serwer Linux - DNS, serwer nazw domenowych
- Serwer Linux - Serwer plików (FTP)