W internecie jest wiele opisów – jak zainsalować na serwerze z systemem Debian czy pochodnym, serwer FTP.
Wcześniej, używałęm ProFTPd, ale na Debianie Jessie, który obecnie jest w fazie testów, proces po prostu się wyłączał, a w logach było głucho..
Jako że czasem używam FTP na moim domowym serwerze, postanowiłem zainstalować vsftpd.
vsftpd (“Very Secure FTP Daemon”) na systemie Debian:
adduser ftp-pub --disabled-password -q apt-get update; apt-get install vsftpd nano openssl
Serwer już jest na naszym serwerze zainstalowany, pozostaje go odpowiednio skonfigurować, pokaże jak zrobic to z obsługą szyfrowanych połączeń ( w przypadku połączenia użytkownika) a publiczny katalog bedzie bez szyfrowanego połączenia.
Taka konfiguracja działa u mnie, i jest jak najbardziej możliwa.
Generowanie certyfikatu:
openssl req -x509 -nodes -days 365 -newkey rsa:1024 \ -keyout /etc/ssl/private/vsftpd.pem \ -out /etc/ssl/private/vsftpd.pem
Plik konfiguracyjny programu vsftpd:
nano /etc/vsftpd.conf
ftpd_banner="grucha.no-ip.pl / vsFTPd " ##nazwa twojego serwera # Poziom z którego zostaje uruchomiony serwer nopriv_user=ftp # Uruchamianie serwera w trybie standalone, czyli osobnego procesu listen=YES # Okrelenie portu, na którym serwer ma nasłuchiwać # (domylnym jest port 21, sugeruję tak zostawić) listen_port=21 # Zabronienie na logowanie się użytkownikom anonimowym anonymous_enable=YES # Zezwolenie na logowanie się użytkownikom lokalnym local_enable=YES # Zezwolenie na zapis w katalogu użytkownika lokalnego write_enable=YES # Umask (w większoci serwerów używany jest 022) local_umask=022 # limit szybkoci podawany jest w bajtach na sekundę, # jeli jest ustawiony na 0 to brak jakiegokolwiek limitu local_max_rate=0 # Włšczenie logowania xferlog_enable=YES # cieżka do pliku z logami xferlog_file=/var/log/vsftpd.log # Maksymalna liczba połšczonych użytkowników max_clients=500 # Maksymalna liczba użytkowników mogących się połączyć z tego samego adresu IP max_per_ip=20 # Banner, który będzie wyswietlany podczas logowania. # W jego stworzeniu może być pomocny program app-misc/figlet. banner_file=/etc/vsftpd.banner # Ograniczenie użytkownikom do poruszania się jedynie w obrębie katalogu domowego chroot_local_user=NO # Katalog dla chroot'a secure_chroot_dir=/home/ # Dodanie użytkowników, którzy mogš poruszać się poza katalogiem domowym chroot_list_enable=NO # Dodajemy użytkownika z przywilejami poruszania się poza katalogiem domowym np: # echo "USER" >> /etc/chroot.list chroot_list_file=/etc/chroot.list # Katalog wyświetlany w przypadku logowania anonimowego anon_root=/home/ftp-pub no_anon_password=YES # USTAWIENIA SSL! rsa_cert_file=/etc/ssl/private/vsftpd.pem rsa_private_key_file=/etc/ssl/private/vsftpd.pem ssl_enable=YES allow_anon_ssl=NO force_local_data_ssl=YES force_local_logins_ssl=YES require_ssl_reuse=NO ssl_ciphers=HIGH
Postarałem się wytłumaczyć mniej więcej co oznaczają poszczególne parametry ustawień vsftpd.
Na końcu konfiguracji znajdują się parametry ustawień funkcji SSL czyli protokołu FTPS
Teraz tworzyy powitalną wiadomość pokazującą się podczas nawiązywania połączenia:
touch /etc/vsftpd.banner; touch /etc/chroot.list echo "Witam na moim serwerze FTP" >> /etc/vsftpd.banner
Teraz przeładowujemy konfiguracje:
/etc/init.d/vsftpd restart
I dodajemy do autostartu:
update-rc.d vsftpd defaults
Jak się połączyć z serwerem FTP posiadającym certyfikat SSL ?
TotalCommander: https://pomoc.home.pl/faq/300
FlashFXP (polecam): http://ishell.pl/laczenie-sie-z-serwerem-ftp–tlsssl.html
P.S
Jeżeli nie chcesz łączyć sie poprzez SSL, wystarczy że zmieniasz
ssl_enable=YES
na
ssl_enable=NO
W wyżej podanym pliku konfiguracyjnym.