Na bazie vsftpd zainstalujemy serwer FTP. Dużo się nie rozpisując, można tylko powiedzieć, że taki serwer przyda nam się w wielu sytuacjach. Zamiast np. pobierać pliki przy pomoc komendy wget, można pobrać plik na dowolnym komputerze i przesłać go do konkretnego folderu przy pomocy klienta FTP. Ale to innym razem.
Zaczynamy!
1 Instalacja vsftpd
sudo apt-get install vsftpd
2 Konfiguracja pliku vsftpd.conf
sudo /etc/init.d/vsftpd stop
sudo mcedit /etc/vsftpd.conf
# Zabronienie na logowanie się użytkownikom anonimowym, domyślnie jest to YES
anonymous_enable=NO !
# 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
# Ograniczenie użytkownikom do poruszania się jedynie w obrębie katalogu domowego
chroot_local_user=YES
local_umask=022 !
allow_writeable_chroot=YES !
(parametry dodać jeśli nie istnieją w pliku)
(wyjaśnienia parametrów szukac w sieci ;)
3 Modyfikacja pliku shels
/etc/shells
dodajemy linijkę
/usr/sbin/nologin
4 Srawdzamy plik sftpd
/etc/pam.d/vsftpd
linijkę
auth required pam_shells.so
5 Startujemy vsftpd
sudo /etc/init.d/vsftpd start
sudo /etc/init.d/vsftpd restart (to komenda do ewentualnego restartu)
7 Dodatkowe informacje
# Poziom z którego zostaje uruchomiony serwer
nopriv_user=
# Uruchamianie serwera w trybie standalone
listen=
# Określenie portu, na którym serwer ma nasłuchiwać (domyślnym jest port 21)
listen_port=
# Zabronienie na logowanie się użytkownikom anonimowym, domyślnie jest to YES
anonymous_enable=
# Zezwolenie na logowanie się użytkownikom lokalnym, domyślnie jest to NO
local_enable=
# Zezwolenie na zapis w katalogu użytkownika lokalnego
write_enable=
# Umask (w większości serwerów używany jest 022)
local_umask=
# Umask dotyczący anonimowych
anon_umask=022
# limit szybkości podawany jest w bajtach na sekundę, jeśli jest ustawiony na 0 to brak jakiegokolwiek limitu.
local_max_rate=
# Włączenie logowania
xferlog_enable=
# Ścieżka do pliku z logami
xferlog_file=/var/log/vsftpd.log
# Maksymalna liczba połączonych użytkowników
max_clients=
# Maksymalna liczba użytkowników mogących się połączyć z tego samego adresu IP
max_per_ip=
# Banner, który będzie wyświetlany podczas logowania. W jego stworzeniu może być pomocny program app-misc/figlet.
banner_file=/etc/vsftpd/vsftpd.banner
# Ograniczenie użytkownikom do poruszania się jedynie w obrębie katalogu domowego
chroot_local_user=
# Katalog dla chroot’a
secure_chroot_dir=/var/chroot/vsftpd
# Dodanie użytkowników, którzy mogą poruszać się poza katalogiem domowym
chroot_list_enable=YES
# Dodajemy użytkownika z przywilejami poruszania się poza katalogiem domowym np:
# echo „użytkownik” >> /etc/vsftpd/chroot.list
chroot_list_file=/etc/vsftpd/chroot.list
# Serwer nie będzie pytał o hasło, podczas logowania na anonymous:
no_anon_password=
# Pozwalamy na download plików, które będą miały ustawione prawa do odczytu (readable):
anon_world_readable_only=
# Zabraniamy na upload plików:
anon_upload_enable=
# Ukrywamy prawdziwych użytkowników oraz grup dla plików lub katalogów
# (vsftpd zamieni je na nazwy użytkownika odpowiedzialnego za anonimowy ftp):
hide_ids=
# Pozwala na tworzenie katalogów
anon_mkdir_write_enable=
# Pozwala na kasowanie i zmienianie nazw katalogów przez anonimowych
anon_other_write_enable=
# Pozwala ograniczyć transfer dla anonimowych
anon_max_rate=
# Maxymalny czas bezczynności
idle_session_timeout=300
# Sam decydujesz czy mogą się łączyć Aktywnie czy Pasywnie
connect_from_port_20=NO
# Ustawione na NO zablokuje polecenia PORT i ustawi serwer w tryb pasywny (lepiej YES)
port_enable=YES
# Pozwala ograniczyć możliwość wydawania komand do minimum(możemy zabronić ściągania, sprawdzania wielkości plików itp), pełna lista możliwość tutaj -> http://www.nsftools.com/tips/RawFTP.htm
cmds_allowed=
# Ciekawą opcją jest także `user_config_dir`, która pozwala przyporządkować dowolnemu użytkownikowi w systemie konkretne opcje. Mogą to być np. takie opcje jak listen_address, banner_file, max_per_ip, max_clients, xferlog_file, vsftpd_log_file, itp. Definiujemy więc ścieżkę do takiego katalogu, oraz tworzymy go w systemie. Po zdefiniowaniu tej opcji w pliku konfiguracyjnym, vsftpd będzie automatycznie szukał pliku, który nosi taką samą nazwę jak użytkownik systemowy. Na przykład dla użytkownika `tomek` takim plikiem będzie /usr/local/etc/vsftpd/user_conf/tomek, w tym właśnie pliku będziemy ustawiać konkretne opcje dla tego użytkownika.
user_config_dir=/usr/local/etc/vsftpd/user_conf/
# Opcja ta pokazuje informację o procesie systemowym vsftpd, inaczej mówiąc pokazuje co dany użytkownik robi po połączeniu się z naszym serwerem
setproctitle_enable=YES
Uruchamianie
Jeżeli posiadamy tylko jeden plik konfiguracyjny to możemy po prostu wydać polecenie /etc/init.d/./vsftpd start
Jeżeli posiadamy parę plików konfiguracyjnych to musimy każdy osobno załadować :
vsftpd /etc/vsftpd.conf.annonymus
vsftpd /etc/vsftpd.conf.normalny
vsftpd /etc/vsftpd.conf.bartek
# Serwer nie będzie pytał o hasło, podczas logowania na anonymous:
no_anon_password=
# Pozwalamy na download plików, które będą miały ustawione prawa do odczytu (readable):
anon_world_readable_only=
# Zabraniamy na upload plików:
anon_upload_enable=
# Ukrywamy prawdziwych użytkowników oraz grup dla plików lub katalogów
# (vsftpd zamieni je na nazwy użytkownika odpowiedzialnego za anonimowy ftp):
hide_ids=
# Pozwala na tworzenie katalogów
anon_mkdir_write_enable=
# Pozwala na kasowanie i zmienianie nazw katalogów przez anonimowych
anon_other_write_enable=
# Pozwala ograniczyć transfer dla anonimowych
anon_max_rate=
# Maxymalny czas bezczynności
idle_session_timeout=300
# Sam decydujesz czy mogą się łączyć Aktywnie czy Pasywnie
connect_from_port_20=NO
# Ustawione na NO zablokuje polecenia PORT i ustawi serwer w tryb pasywny (lepiej YES)
port_enable=YES
# Pozwala ograniczyć możliwość wydawania komand do minimum(możemy zabronić ściągania, sprawdzania wielkości plików itp), pełna lista możliwość tutaj -> http://www.nsftools.com/tips/RawFTP.htm
cmds_allowed=
# Ciekawą opcją jest także `user_config_dir`, która pozwala przyporządkować dowolnemu użytkownikowi w systemie konkretne opcje. Mogą to być np. takie opcje jak listen_address, banner_file, max_per_ip, max_clients, xferlog_file, vsftpd_log_file, itp. Definiujemy więc ścieżkę do takiego katalogu, oraz tworzymy go w systemie. Po zdefiniowaniu tej opcji w pliku konfiguracyjnym, vsftpd będzie automatycznie szukał pliku, który nosi taką samą nazwę jak użytkownik systemowy. Na przykład dla użytkownika `tomek` takim plikiem będzie /usr/local/etc/vsftpd/user_conf/tomek, w tym właśnie pliku będziemy ustawiać konkretne opcje dla tego użytkownika.
user_config_dir=/usr/local/etc/vsftpd/user_conf/
# Opcja ta pokazuje informację o procesie systemowym vsftpd, inaczej mówiąc pokazuje co dany użytkownik robi po połączeniu się z naszym serwerem
setproctitle_enable=YES
Uruchamianie
Jeżeli posiadamy tylko jeden plik konfiguracyjny to możemy po prostu wydać polecenie /etc/init.d/./vsftpd start
Jeżeli posiadamy parę plików konfiguracyjnych to musimy każdy osobno załadować :
vsftpd /etc/vsftpd.conf.annonymus
vsftpd /etc/vsftpd.conf.normalny
vsftpd /etc/vsftpd.conf.bartek
Brak komentarzy:
Prześlij komentarz