SERWER FTP

Konfiguracja serwera usługi ftp na przykładzie vsftpd w systemie Knoppix Linux

1. Instalacja z pakietów źródłowych

Pobranie ze strony:
http://vsftpd.beasts.org
albo wprost z ftp:
ftp://vsftpd.beasts.org/users/cevans/
np.:

cd /home/knoppix
# wget ftp://vsftpd.beasts.org/users/cevans/vsftpd-2.0.1.tar.gz 
wget http://pg.guminski.net/vsftpd-2.0.1.tar.gz
Rozpakowanie
tar xzvf vsftpd-2.0.1.tar.gz
Kompilacja
cd vsftpd-2.0.1
make

2. Czynności instalacyjne

useradd -d /var/ftp -s /bin/false ftp
mkdir /var/ftp
chown root.root /var/ftp
chmod 755 /var/ftp
mkdir /var/ftp/pub
#poniższe polecenia tylko jeśli chcemy zezwolić 
#na upload dla użytkownika anonymous
mkdir /var/ftp/pub/upload
chown ftp /var/ftp/pub/upload 

3. Instalacja

Kopiowanie pliku do docelowej lokalizacji

cp /home/knoppix/vsftpd-2.0.1/vsftpd /usr/sbin/
Konfiguracja - http://vsftpd.beasts.org/vsftpd_conf.html
dobry polski opis na stronie http://zso.tbg.net.pl/~tomek/vsftpd_howto.html
Edycja konfiguracji - zawartość w dalszej części.
touch /etc/vsftpd.conf
vim /etc/vsftpd.conf
Uruchamianie
/home/knoppix/vsftpd-2.0.1/vsftpd &
Kontrola poprawności uruchomienia
ps axx | grep vsftpd
Zatrzymywanie
killall vsftpd

4. Konfiguracja vsftpd.conf

Uwaga: w pliku konfiguracyjnym vsftpd.conf nie mogą występować spacje i jest rozróżniana wielkość znaków

# tryb standalone (automatyczny) - Jeśli chcemy aby nasz vsftpd był uruchamiany w trybie 
#inetd, rezygnujemy z tej opcji, ponieważ domyślnie jest ona ustawiona na "NO":
listen=YES 
# Coś o IPv6 - ja mam #
#listen_ipv6=YES
# Zabronienie na logowanie się użytkownikom anonimowym, domyślnie jest to YES
anonymous_enable=YES
# Zezwolenie na logowanie się użytkownikom lokalnym, domyślnie jest to NO
local_enable=YES
# Zezwolenie na zapis w katalogu użytkownika lokalnego
write_enable=YES
# maski atrybutów plików
#Umask (022 jest używany przez większość serwerów ftp)
local_umask=022 # zgoda na zapis dla użytkownika anonimowego anon_upload_enable=YES # zgoda na tworzenie katalogów anon_mkdir_write_enable=NO # Jeśli aktywni użytkownikownicy wchodząc do katalogu jeśli istnieje plik .message # pokaże się jego zawartość # nazwę tego pliku można zmienić opcją message_file # Default NO dirmessage_enable=YES #logowanie transferów w wersji standardowej - Jeśli aktywujesz w logu zapisywane będą tez # takie detale jak upload, download # Domyślnie plik z tym logiem jest w: /var/log/vsftpd.log, ale można zmienić jego położenie przez # vsftpd_log_file Default NO xferlog_enable=YES # Używaj portu 20 do połączeń; port 20 jest standardowym portem na którym działa ftp # czasem ze względów bezpieczeństwa trzeba zmienić na inny
# Default NO
connect_from_port_20=YES # Jeśli włączone właściciel wysłanych plików zmieniany będzie na podanego # w: chown_username Default NO chown_uploads=NO # Kto zostaje właścicielem anonimowych uploadów # Patrz też chown_uploads # Default root chown_username=ftp # miejsce zapisu xferloga # Log zapisywany jest jeśli opcja xferlog_enable i xferlog_std_format są aktywne lub zapisywane # jest jeśli aktywna jest opcja dual_log_enable. Default /var/log/vsftpd.log xferlog_file=/var/log/vsftpd.log # Log zapisywane będzie w formacie xferlog, # jest to użyteczne gdyż wtedy można korzystać z generatorów statystyk # logi domyślne sa bardziej czytelne od logów xferlog # plik z logiem zapisywany jest w: /var/log/xferlog, ale można zmienić # jego położenie przez xferlog_file # Default NO xferlog_std_format=YES # Najdłuższy czas prze jaki klient może milczeć między wydawanymi komendami w sekundach # Default 300. idle_session_timeout=600 # Maksymalny czas przez jaki ściągany plik może stać w miejscu. Jeśli zostanie przekroczony #zdalny klient zostaje odłączony. Czas w sekundach. # Default 300 data_connection_timeout=120 # jako jaki użytkownik ma działać serwer co do użytkownika: # nie ma on prawa zapisu do własnego katalogu domowego jego powłoka to /bin/false # (dopisz ja do /etc/shells jego katalog domowy należy np. do roota nopriv_user=ftpsecure # jeśli aktywne komenda "async ABOR" będzie aktywna Ta komenda jest nie najlepsza # (nie do końca czaje) nieketóre klienty ftp zawieszają się jeśli ta komendą nie jest aktywna # więc w niektórych przypadkach będziesz musiał odblokować. # Default NO async_abor_enable=YES # Jeżeli jest ustawione na YES pozwala na wysyłanie metodą ASCII ascii_upload_enable=YES # Jeżeli jest ustawione na YES pozwala na ściąganie metodą ASCII ascii_download_enable=YES # tekst przywitania serwera ftpd_banner="Serwer vsFTPd wita" # albo plik z tekstem przywitania #banner=/var/ftp/welcome deny_email_enable=YES anon_umask=022 #port listen_port=21 #zakaz wychodzenia poza katalog domowy chroot_local_user=YES #katalog dla uzytkownika anonimowego secure_chroot_dir=/var/ftp #brak pytania o hasło dla użytkownika anonimowego no_anon_password=YES #ukrycie identyfikatorów właścicieli plików hide_ids=YES #limity liczby równoczesnych połączeń max_clients=5 max_per_ip=2 #limity transferu w bajtach na sekundę anon_max_rate=10000 local_max_rate=50000 #czasy wylogowania idle_session_timeout=120 data_connection_timeout=900 #zakazane nazwy plików i folderów deny_file={*.mp3,files/,*.avi} #ukryte nazwy plików i folderów hide_file={*.doc,*.xsl} #użytkownik z prawami którego pracuje vsftpd nopriv_user=ftp #w trybie standalone uruchamianie od razu w tle background=YES #lista zakazanych użytkowników lokalnych #userlist_enable=YES #userlist_file=/etc/vsftpd_users.conf

5. Uruchamianie przez skrypt w folderze /etc/init.d

Utworzenie pliku /etc/init.d/vsftpd

touch /etc/init.d/vsftpd
chmod +x /etc/init.d/vsftpd
Zawartość pliku:
#!/bin/sh 
case $1 in 
	start) vsftpd & 
        echo "Uruchamianie vsftpd" 
     		;; 
	stop) killall vsftpd 
    		echo "Zatrzymanie vsftpd" 
     		;; 
 	*) 	echo "Usage: $0 {start|stop}" 
 	exit 1 
esac 
Uruchamianie:
/etc/init.d/vsftpd start
Zatrzymywanie:
/etc/init.d/vsftpd stop

6. Inne możliwości

Wirtualne serwery
Wirtualni użytkownicy
Indywidualne konfiguracja dla użytkowników
Indywidualne konfiguracje dla adresów IP użytkowników
Współpraca z inetd
Szyfrowane połączenia
Obsługa IPv6
i inne

inetd jest to daemon działający pod kontrolą systemu Unix/Linux określany jako super serwer. Aplikacja ta nasłuchuje na danych portach żądań klientów a następnie uruchamia daemon odpowiedzialny za daną usługę, co powoduje znaczne odciążenie systemu ponieważ uruchomiony jest jeden demon zamiast kilku innych obsługujących każdą z usług. Rozwiązanie takie sprawdza się w przypadku usług które są rzadko wykorzystywane i mają stosunkowy krótki czas uruchomienia np. FTP, TFTP, telnet.

W nowszych dystrybucjach systemów zastępowany nowszą ulepszoną wersją o nazwie xinetd.

Plik konfiguracyjny: /etc/inetd.conf.

Upload (ang.) - w informatyce - po polsku wysyłanie danych, proces przeciwny do pobierania danych, polegający na wysyłaniu plików lub innych danych do serwera lub komputera należącego do innego użytkownika.

Często łącze internetowe jest umownie dzielone na dwa kanały: kanał wysyłania i kanał pobierania. Przepustowość tych kanałów (czyli ich prędkość) mierzy się w kilobitach na sekundę (kbps).
Łącza internetowe popularne w warunkach domowych (ADSL, telewizja kablowa, sieć osiedlowa itp.) ze względu na ich stosunkowo niewysoką cenę, są często asymetryczne, czyli mają zaniżoną przepustowość kanału umożliwiającego wysyłanie (ang. upload) danych w stosunku do kanału pobierania (ang. download), umożliwiającego odbieranie danych. Z tego powodu wysyłanie pliku jest znacznie wolniejsze niż pobieranie.


http://ftp.coolmax.one.pl/pub/docs/SerweryFTP/vsftpd.txt