Str. 1 Ćwiczenie 7 vsftpd serwer FTP Cel ćwiczenia: Zapoznanie się z konfiguracją i zarządzaniem serwerem FTP. Przed przystąpieniem do ćwiczenia uczeń powinien: - poruszać się po systemie Linux, w trybie tekstowym, - zainstalować kartę sieciową w systemie Linux, - skonfigurować połączenie sieciowe. Po wykonaniu ćwiczenia uczeń będzie umiał: - zainstalować serwer FTP, - udostępnić anonimowym użytkownikowi Internetu pliki przez serwer FTP, - skonfigurować serwer FTP tak, aby anonimowi użytkownicy Internetu mogli wysłać plik na serwer, - udostępnić użytkownikom systemu katalogi domowe przez serwer FTP. Uwagi o realizacji ćwiczenia: Ćwiczenie podzielone jest na rozdziały. Rozdział zbudowany jest z opisu teoretycznego omawiającego wybrane zagadnienie i zadania do wykonania. Zadania umieszczone są w ramkach.
Str. 2 7.1 vsftpd - serwer FTP Treść rozdziału 7.1 jest modyfikacją opracowania vsftp w CentOS autorstwa Przemysław Sikora. Wersja oryginalna znajduje się na stronie http://centos.com.pl/2010/10/26/vsftp-w-centos. Vsftpd to znany i ceniony unixowy serwer FTP, który odznacza się wysokim poziomem bezpieczeństwa i nieprzeciętną wydajnością. Omawiany vsftpd 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=yes 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 anon_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=no 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
Str. 3 chown_uploads=yes włączenie lub wyłączenie zmiany właściciela dla plików wgranych przez anonimowego użytkownika chown_username=ftp ustawienie na jakiego użytkownika ma być zmieniony xferlog_std_format=yes wartość NO oznacza, że logi będą zapisywane charakterystycznym dla vsftpd, a YES w pliku xferlog idle_session_timeout=600 600 oznacza czas bezczynności, po którym sesja zostaje zakończona nopriv_user=ftp nazwa użytkownika, z którego działają procesy w czasie połączenia (powinien być nieuprzywilejowany) ftpd_banner=witaj na serwerze ftp ustawienie tekstu powitalne wyświetlającego się tuż po połączeniu chroot_local_user=yes ustawienie, czy lokalni użytkownicy mają pracować w odseparowanym środowisku (swoim katalogu domowym) chroot_list_enable=no 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=no 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=10 10 oznacza ilość maksymalnych użytkowników w danym momencie
Str. 4 max_per_ip=2 2 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 Aby załączyć usługę należy wpisać: service vsftpd start Aby usługa załączała się przy starcie należy wpisać: /sbin/chkconfig vsftpd on Zadanie 7.1 Instalacja i konfiguracja serwera FTP 1. W maszynie wirtualnej ustaw 1 kartę sieciową: Karta 1: Mostkowana karta sieciowa 2. Do interfejsu eth0 przypisz adres 10.0.10.xx maska 255.255.255.0, gdzie xx to numer twojego komputera. 3. Ustaw bramę i DNS na adres 10.0.10.254. 4. Wykonaj pinga na wp.pl. 5. Zainstaluj usługę vsftpd (yum install vsftpd) 6. Zainstaluj klienta ftp (yum install ftp) 7. Utwórz katalog /ftp i przypisz go jako katalog domowy użytkownikowi ftp. 8. Zmień ustawienia SELinux tak, aby przepuszczał połączenia z katalogiem domowym (setsebool -P ftp_home_dir on). 9. Zmień uprawnienie katalogu /ftp na 770 dla ftp.ftp. 10. Skonfiguruj anonimowy serwer FTP i udostępnij w nim plik: plik_testowy. 11. Za pomocą tekstowego klienta ftp pobierz ze swojego serwera plik_testowy. 12. Na anonimowym serwerze FTP udostępnij katalog upload (/ftp/upload) tak, aby użytkownicy Internetu mogli wysłać pliki na serwer.
Str. 5 13. W treści, wcześniej pobranego pliku (plik_testowy), dopisz swoje imię, wyślij ten plik za pomocą tekstowego klienta ftp, do katalogu upload. 14. Załóż konto dla użytkownika jasio z katalogiem domowym. 15. Sprawdź czy jasio ma dostęp przez ftp to swojego katalogu domowego i czy może wyjść z niego, przeglądać zawartość całego dysku. 16. Zabezpiecz swój serwer za pomocą iptables tak, aby zezwalał jedynie na przychodzący ruch ftp i ftp-data. Opracowanie: mgr inż. Tomasz Chudzikiewicz 21.11.2012 Wrocław