-
vsftp w CentOS
Vsftp to znany i ceniony unixowy serwer FTP , który odznacza się wysokim poziomem bezpieczeństwa i nieprzeciętną wydajnością. Omawiany vsftp pozwala nam na odpalenie wielu usług jednocześnie na oddzielnych portach, dzięki temu zyskujemy możliwość korzystania z anonimowego, osobno konfigurowalnego serwera obok produkcyjnego. Zmiana konfiguracji jednego lub wyłączenie nie zakłóci pracy drugiego. Poniżej zaprezentuję wprowadzenie do instalacji i konfiguracji omawianej usługi.
yum install vsftpd
vim /etc/vsftpd/vsftpd.conf
Poniżej lista opcji i parametrów konfiguracyjnych
anonymous_enable=NO
zezwolenie, bądź nie na połączenia anonimowych użytkowników
local_enable=YES
zezwalanie lub zabranianie dostępu lokalnym użytkownikom systemu
write_enable=YES
możliwość zapisu (tworzenia, modyfikowania treści)
local_umask=022
ustawianie domyślnej maski dla nowych plików
non_upload_enable=YES
możliwość wgrywania plików przez anonimowych użytkowników
anon_mkdir_write_enable=YES
możliwość tworzenie nowych katalogów przez anonimowych użytkowników
dirmessage_enable=YES
wyświetlanie wiadomości powitalnych użytkownikom po wejściu do konkretnych folderów
xferlog_enable=YES
włączenie bądź wyłączenie logowanie zdarzeń
connect_from_port_20=YES
wykorzystanie portu 20 do przesyłania danych w trybie aktywnym
chown_uploads=YES
włączenie lub wyłączenie zmiany właściciela dla plików wgranych przez anonimowego użytkownika
chown_username=whoever
ustawienie na jakiego użytkownika ma być zmieniony …
xferlog_std_format=
wartość NO oznacza, że logi będą zapisywane charakterystycznym dla vsftpd, a YES w pliku xferlog
idle_session_timeout=n
n oznacza czas bezczynności, po którym sesja zostaje zakończona
nopriv_user=ftps
nazwa użytkownika, z którego działają procesy w czasie połączenia (powinien być nieuprzywilejowany)
ftpd_banner=
ustawienie tekstu powitalne wyświetlającego się tuż po połączeniu
chroot_local_user=NO
ustawienie, czy lokalni użytkownicy mają pracować w odseparowanym środowisku (swoim katalogu domowym)
chroot_list_enable=YES
umożliwienie, bądź nie dodawania użytkowników mogących pracować poza swoim katalogiem domowym
chroot_list_file=scieżka_do_pliku
położenie pliku z listą „uprzywilejowanych użytkowników”
check_shell=YES
tylko użytkownicy z przypisaną powłoką shell będę mogli korzystać z FTP
listen=YES
ustawienie, czy demon vsftpd ma pracować w trybie standalone i nasłuchiwać nadchodzących połączeń.
anon_world_readable_only=YES
zezwolenie na pobierania plików z prawem do odczytu użytkownikom anonimowym
max_clients=n
n oznacza ilość maksymalnych użytkowników w danym momencie
max_per_ip=n
n= ilość połączeń z jednego adresu IP
cmds_allowed=nazwy_komend
umożliwia ograniczenie dozwolonych przez użytkownika komend
user_config_dir=/usr/local/etc/vsftpd/user_conf/
ustawienie tego parametru umożliwia spersonalizowanie ustawień serwera ftp pod konkretnego użytkownika. Vsftpd będzie szukał w podanej ścieżce pliku o nazwie danego usera.
pam_service_name=vsftpd
ustawienie nazwy dla usługi uwierzytelniającej przy pomocy mechanizmu PAM
userlist_enable=YES
włącza listę zablokowanych użytkowników np. root, admin
service vsftpd start
uruchamiamy demona
/sbin/chkconfig vsftpd on
włączenie autostartu opisywanej usługi we wszystkich trybach
No to pojechałeś z ustawieniami tych opcji 🙂
Zgodzę się tylko w przypadku gdy Centos ma działać w moim domu bez możliwosci dostania się przez www
Opcje z anonimowym userem i braku chrotowanego środowiska są niedopuszczalne w produkcyjnym środowisku
A opcja z lokalnymi userami też nie jest najlepsza. Lepiej wykorzystać wirtualnych userów.
Przedstawiłem różne warianty konfiguracji. Nie namawiam do korzystania z anonimowego dostępu. Twjoe przemyślenie są słuszne.
Jeżeli już przy bezpieczeństwie jesteśmy, to warto zwrócić uwagę na pewną rzecz: vsftp w dość prosty sposób umożliwia zrobienie FTPS (nie mylić z SFTP), co eliminują jedną z największych niedogodności tego protokołu, czyli przesyłania haseł otwartym tekstem. Udało mi się nawet stworzyć mini-podręcznik, jak to zrobić: http://konrad.bechler.pl/2010/02/bezpieczny-ftp
hello_world: Lokalni użytkownicy nie są tacy znowu źli, o ile nie jest ich zbyt dużo 🙂
vsftpd można w łatwy sposób zmusić do autoryzacji po kontach użytkowników 😉
http://cabana.wro.com.pl/index.php/2011/01/serwer-vsftpd-i-logowanie/
setproctitle_enable – pokazuje status połączenia ftp
text_userdb_names – pokazuje nazwy użytkowników zamiast ich id
use_localtime – czas lokalny zamiast czasu GMT
log_ftp_protocol – logowanie protokołu FTP (w ramach debugowania, śledzenia itp.)