<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <!-- saved from url=(0064)http://linuxfocus.berlios.de/Deutsch/articles/template.meta.html --> <html> <head> <meta name="generator" content="HTML Tidy, see www.w3.org"> <!-- this stylesheet will later on be added by lfparser automatically: --> <style type="text/css"> pre { font-family:monospace,Courier } pre.code { font-family:monospace,Courier;background-color:#aedbe8; } p.code { width:80%; alignment:center; background-color:#aedbe8; border-style:none; border-width:medium; border-color:#aedbe8; padding:0.1cm ; text-align:left } </style> <title></title> </head> <body> <h1>vsftpd - Wprowadzenie do Bardzo Bezpiecznego FTPd</h1> <h4>ArticleCategory:</h4> System Administration <h4>AuthorImage:[Ein Bild von Dir]</h4> <img width="150" height="130" alt="[Photo of the Author]" src= "../../common/images2/MarioMKnopf.jpg"> <h4>TranslationInfo:[Author + translation history. mailto: or http://homepage</h4> <p>original in de <a href= "nospam:netzmeister/at/neo5k/dot/org">Mario M. Knopf</a></p> <p>de to en <a href= "nospam:sept.sapins/at/verizon.net">Jürgen Pohl</a></p> <p>en to pl <a href="nospam:bjfs/at\op.pl">B.J.F. Stobiecki</a></p> <h4>AboutTheAuthor:</h4> <p>Mario lubi si� zajmowa� Linuksem, sieciami i innymi tematami zwi�zanymi z bezpiecze�stwem. W wolnych chwilach zajmuje si� dwiema witrynami: <a href="http://www.neo5k.org/">neo5k.org</a> i <a href="http://www.linuxwallpapers.de/">linuxwallpapers.de</a>. </p> <h4>Abstract:</h4> Ten artyku� jest wprowadzeniem do "Very Secure FTP Daemon" (Bardzo Bezpieczny Daemon FTP). Zaczn� od og�lnego opisu FTP i vsftpd. Nast�pnie spojrzymy na instalacj�, konfiguracj� i opcje startowe vsftpd. Zako�czymy kr�tkim testem funkcji. <h4>ArticleIllustration:[Das Titelbild des Artikels]</h4> <img src="../../common/images2/illustration341.jpg" hspace="10" alt="vsftp" width="300" height="150"> <h4>ArticleBody:[The main part of the article]</h4> <h2>Wprowadzenie</h2> Przeznaczeniem protoko�u File Transfer Protocol (Protok� Przesy�ania Plik�w) jest niezale�ne od platformy przenoszenie danych przez internet, bazuje on na architekturze klient/serwer. RFC 959[1] nakazuje FTP by� podzielonym na dwa r�ne kana�y; jeden dla danych (port TCP 20), a drugi dla kontroli (port TCP 21). Na kanale kontrolnym obie strony (serwer i klient) wymieniaj� komendy dla inicjowania przesy�u danych. Po��czenie FTP sk�ada si� z czterech krok�w: <ul> <li>Uwierzytelnianie u�ytkownika</li> <li>Nawi�zanie kana�u kontrolnego</li> <li>Nawi�zanie kana�u danych</li> <li>Zaniechanie po��czenia</li> </ul> <p>FTP u�ywa protoko�u TCP (Transmission Control Protocol) jako kana�u transmisji, co zapewnia przyj�cie danych dla odbiorcy. W zwi�zku z tym nie ma potrzeby, aby FTP zajmowa� si� kwesti� utraty pakiet�w, b�d� kontroli b��d�w podczas przesy�u. M�wi�c prosto TCP upewnia si�, �e ka�dy pakiet przyjdzie tylko raz - bez b��d�w i we w�a�ciwej kolejno�ci.</p> <p>Przesy�anie danych dzieli si� na trzy r�ne typy, gdzie zako�czenie trybu stream (strumieniowy) oznacza si� markerem EOF (koniec pliku), za� dwa pozosta�e oznacza si� przez EOR (koniec rekordu). </p> <ul> <li>Stream</li> <li>Block</li> <li>Compressed</li> </ul> <p>Dodatkowo s� dwa tryby przesy�u:</p> <ul> <li>ASCII</li> <li>Binary</li> </ul> <p>Tryb ASCII jest u�ywany do przesy�ania plik�w tekstowych, za� tryb binarny jest u�ywany do przesy�ania program�w i podobnych danych. U�ytkownik nie musi wybiera� r�cznie trybu, gdy� obecne klienty FTP rozpoznaj� typ pliku, kt�ry ma by� przesy�any.</p> <p>Poniewa� uwierzytelnianie u�ytkownika i has�a <u>nie jest szyfrowane</u> to nale�y zwr�ci� uwag�, i� jest to potencjalne zagro�enie bezpiecze�stwa. Jest to pow�d do zastanowienia si� nad bezpiecze�stwem FTP. Z tego powodu w pa�dzierniku 1997 roku opublikowano RFC 2228[2], kt�re opisywa�o ulepszenie bezpiecze�stwa dla protoko�u FTP.</p> <h2>vsftpd</h2> vsftpd stanowi serwer dla system�w zbie�nych z UNIX, dzia�a na takich platformach jak Linux, *BSD, Solaris, HP-UX, IRIX. Wspiera wiele cech, kt�re s� zwykle pomijane w innych serwerach FTP. Niekt�re z nich to: <ul> <li>bardzo wysokie wymagania odno�nie bezpiecze�stwa</li> <li>ograniczanie przepustowo�ci</li> <li>dobra skalowalno��</li> <li>mo�liwo�� utworzenia wirtualnych u�ytkownik�w</li> <li>wsparcie IPnG</li> <li>ponadprzeci�tne osi�gi</li> <li>mo�liwo�� przydzielenia wirtualnych IP</li> <li>wysoka pr�dko�� dzia�ania</li> </ul> <p>Nazwa <i>vsftpd</i> oznacza "bardzo bezpieczny FTPd", co stanowi jeden z g��wnych za�o�e� jego tw�rcy, Chrisa Evansa. Od samego pocz�tku tworzenia i projektowanie tego serwera wysokie bezpiecze�stwo stanowi�o g��wny cz�on dzia�ania.</p> <p>Jednym z przyk�ad�w jest fakt, i� <i>vsftpd</i> operuje w trybie <i>chroot</i>, co oznacza, �e program (w tym przypadku <i>vsftpd</i>) ma przydzielony nowy katalog root. Dzi�ki temu nie mo�e on uzyska� dost�pu do program�w znajduj�cych si� na zewn�trz tego katalogu - jest tak jakby 'zamkni�ty'. W przypadku w�amania si� na taki serwer, potencjalny agresor by�by odizolowany od reszty systemu i nie pozwoli�oby to na rozszerzenie wymiaru szk�d. Wi�cej informacji na temat <i>chroot</i> znajduje si� w artykule pod odno�nikiem [3]. Artyku�[4] jest zalecany dla tych, kt�rzy s� zainteresowani mechanizmem bezpiecze�stwa <i>vsftpd</i></p> <p>Z wieloma cechami, kt�re s� wymagane dla bezpiecze�stwa us�ugi serwer�w FTP, <i>vsftpd</i> znacznie si� wybija nad innymi serwerami. WU-FTPD[5] mo�e by� tutaj wymienione jako negatywny przyk�ad z powodu wielu luk w jego bezpiecze�stwie wykrytych na przedziale wielu lat.</p> <h2>Instalacja</h2> Instalacja <i>vsftpd</i> jest do�� prosta, gdy� wiele pakiet�w RPM mo�e by� znalezionych w ka�dej z g��wnych dystrybucji (bazuj�cych na dystrybucji Red Hat, mo�na si� posi�kowa� DEB na dystrybucji wywodz�cych si� od Debian, b�d� konwertowa� je za pomoc� pakietu <i>alien</i>; przyp. t�um.), w wielu przypadkach jest on zainstalowany domy�lnie. W przeciwnym razie mo�na skorzysta� ze �r�de� znajduj�cych si� na [6] i zainstalowa� program r�cznie. <p>Po zdobyciu �r�de� i odpakowaniu tar, przechodzimy do utworzonego katalogu i uruchamiamy <i>make</i>. Oto przyk�ad wymaganych polece�:</p> <p class="code">neo5k@phobos> tar xzvf vsftpd-x.x.x.tar.gz<br> neo5k@phobos> cd vsftpd-x.x.x<br> neo5k@phobos> make</p> Przed tym sprawdzamy czy istnieje u�ytkownik <i>"nobody"</i> i katalog <i>"/usr/share/empty"</i>, i tworzymy go, je�li nie istnieje. Je�li zamierzamy udost�pnia� dane u�ytkownikom anonimowym, u�ytkownik <i>"ftp"</i> z katalogiem domowym <i>"/var/ftp"</i> jest wymagany. Osi�gniemy to nast�puj�cymi poleceniami: <p class="code">neo5k@phobos> mkdir /var/ftp<br> neo5k@phobos> useradd -d /var/ftp ftp</p> Z powod�w bezpiecze�stwa katalog <i>"/vat/ftp"</i> nie powinien nale�e� do u�ytkownika <i>"ftp"</i>, ani nie powinni�my mie� do niego uprawnie� do zapisu. Nast�puj�cymi dwoma poleceniami mo�emy zmieni� w�a�ciciela i odebra� uprawnienia do zapisu od innych u�ytkownik�w: <p class="code">neo5k@phobos> chown root.root /var/ftp<br> neo5k@phobos> chmod og-w /var/ftp</p> Po spe�nieniu tych wymog�w mo�emy zainstalowa� <i>vsftpd</i>: <p class="code">neo5k@phobos> make install</p> Strony man i nasz program powinien by� teraz skopiowane do w�a�ciwego miejsca w systemie danych. W przypadku nieprzewidzianych komplikacji r�czne kopiowanie plik�w mo�e za�atwi� spraw�. <p class="code">neo5k@phobos> cp vsftpd /usr/sbin/vsftpd<br> neo5k@phobos> cp vsftpd.conf.5 /usr/share/man/man5<br> neo5k@phobos> cp vsftpd.8 /usr/share/man/man8<br> </p> Poniewa� przyk�ad pliku konfiguracyjnego nie zosta� w tym miejscu skopiowany - co u�atwi nam wprowadzenie - potrzebujemy kolejnego wpisu: <p class="code">neo5k@phobos> cp vsftpd.conf /etc</p> <h2>Konfiguracja</h2> Plik konfiguracyjny znajduje si� na <i>"/etc/vsftpd.conf</i>. Jak u wi�kszo�ci plik�w konfiguracyjnych komentarze s� oznaczane znakiem hash (#). <p class="code"># Komentarz<br> </p> Przyk�adowa konfiguracja wygl�da�aby tak: <p class="code"><i># Zezwoli� na anonimowy dost�p ? YES/NO [tak/nie]</i><br> anonymous_enable=NO<br> <br> <i># Zezwoli� na anonimowy upload? YES/NO</i><br> anon_upload_enable=NO<br> <br> <i># Zezwoli� na anonimowe tworzenie katalog�w? YES/NO</i><br> anon_mkdir_write_enable=NO<br> <br> <i># Zezwoli� anonimowym u�ytkownikom na inne operacje zapisu - jak zmiana nazwy i kasowanie? YES/NO</i><br> anon_other_write_enable=NO<br> <br> <i># Zezwala� na zalogowanie si� u�ytkownikom lokalnym? YES/NO</i><br> local_enable=YES<br> <br> <i># Czy u�ytkownicy lokalnie powinni by� 'zamkni�ci' w swoich katalogach? YES/NO</i><br> chroot_local_user=YES<br> <br> <i># Najwy�sza dozwolona przepustowo�� w bitach na sekund� dla u�ytkownik�w lokalnych. Domy�lnie = 0 (bez ogranicze�)</i><br> local_max_rate=7200<br> <br> <i># Og�lne zezwolenie na zapis? YES/NO</i><br> write_enable=YES<br> <br> <i># W��czy� wiadomo�ci katalogowe ? YES/NO</i><br> dirmessage_enable=YES<br> <br> <i># Baner witaj�cy zalogowanego u�ytkownika.</i><br> ftpd_banner="Welcome to neo5k's FTP service."<br> <br> <i># W��czy� monitoring? YES/NO</i><br> xferlog_enable=YES<br> <br> <i># Monitorowanie wszystkich dzia�alno�ci FTP? YES/NO</i><br> <i># Ostro�nie! To mo�e tworzy� ogromn� ilo�� danych.</i><br> log_ftp_protocol=NO<br> <br> <i># Potwierdzaj ��czenie wy��cznie na port 20 (ftp data) . YES/NO</i><br> connect_from_port_20=YES<br> <br> <i># Czas po kt�rym bezczynne sesje s� roz��czane</i><br> idle_session_timeout=600<br> <br> <i># Timeout dla danych</i><br> data_connection_timeout=120<br> <br> <i># Dost�p przez Pluggable Authentication Modules (PAM)</i><br> pam_service_name=vsftpd<br> <br> <i># Samodzielna operacja? YES/NO - w zale�no�ci od trybu operacji (inetd, xinetd, Standalone)</i><br> <i># Serwis FTP autora jest uruchamiany z xinetd, dlatego tutaj jest NO.</i><br> listen=NO<br> </p> <h2>Uruchamianie us�ugi FTP</h2> <i>vsftpd</i> mo�e operowa� w trzech r�nych sposobach. Przez <i>inetd</i>, <i>xinetd</i>, b�d� samodzielnym (standalone). <h3><i>inetd</i></h3> Je�li us�uga FTP ma dzia�a� z <i>inetd</i> to otwieramy plik konfiguracyjny <i>"/etc/inetd.conf"</i> przez edytor: <p class="code">neo5k@phobos> vi /etc/inetd.conf<br> </p> Szukamy linijek odnosz�cych si� do us�ug FTP i usuwamy znacznik komentuj�cy przed wpisem <i>vsftpd</i>. Je�li nie ma takiego wpisu to mo�emy go wprowadzi�. Nast�pnie restartujemy <i>inetd</i>. Wpis powinien wygl�da� m.w. tak: <pre class="code"> # ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd ftp stream tcp nowait root /usr/sbin/tcpd vsftpd </pre> <h3><i>xinetd</i></h3> Poleca si� uruchamianie <i>vsftpd</i> przez <i>xinetd</i>, kt�re jest bardziej aktualne ni� <i>inetd</i>. Niekt�re z uaktualnie� to rejestrowanie i kontrola dost�pu, przywi�zywanie us�ugi do odpowiedniego interfejsu sieciowego itp.. Bardzo dobrym wprowadzeniem do <i>xinetd</i> mo�na znale�� pod [7]. Po modyfikacji konieczny jest restart <i>xinetd</i>. Konfiguracja dla <i>xinetd</i> mog�aby wygl�da� tak: <pre class="code"> # vsftp daemon. service ftp { disable = no socket_type = stream wait = no user = root server = /usr/sbin/vsftpd per_source = 5 instances = 200 no_access = 192.168.1.3 banner_fail = /etc/vsftpd.busy_banner log_on_success += PID HOST DURATION log_on_failure += HOST nice = 10 } </pre> <h3><i>Operowanie w trybie Standalone</i></h3> Istnieje tak�e mo�liwo�� pracy <i>vsftpd</i> w trybie samodzielnym (standalone). Do tego otwieramy zn�w plik <i>"/etc/vsftpd.conf</i> i wprowadzamy nast�puj�ce zmiany: <p class="code"><i># # Samodzielna operacja? YES/NO</i><br> listen=YES</p> Po tym wpisie serwer mo�e by� uruchomiony w ten spos�b: <p class="code">neo5k@phobos> /usr/sbin/vsftpd &</p> Je�li �cie�ka wyszukiwania zosta�a prawid�owo wpisana to nast�puj�ce polecenie uruchomi serwer: <p class="code">neo5k@phobos> vsftpd &</p> Kolejnym wpisem mo�emy sprawdzi�, czy �cie�ka wyszukiwania zosta�a poprawnie wprowadzona: <p class="code">neo5k@phobos> echo $PATH<br> /usr/sbin:/bin:/usr/bin:/sbin:/usr/X11R6/bin</p> W trybie samodzielnym musimy, oczywi�cie, uwa�a�, aby <i>vsftpd</i> nie by� uruchamiany z <i>inetd</i> b�d� <i>xinetd</i>. <h2>Test Dzia�ania</h2> Po pomy�lnej instalacji i konfiguracji mo�emy po raz pierwszy uzyska� dost�p do naszego serwera FTP. <pre class="code"> neo5k@phobos> ftp phobos Connected to phobos 220 "Welcome to neo5k's FTP service." Name (phobos:neo5k): testuser 331 Please specify the password. Password: 230 Login successful Remote system type is UNIX. Using binary mode to transfer files. ftp> ls -l 229 Entering Extended Passive Mode 150 Here comes the directory listing drwxr-xr-x 11 500 100 400 May 07 16:22 docs drwxr-xr-x 9 500 100 464 Feb 01 23:05 hlds drwxr-xr-x 39 500 100 4168 May 10 09:15 projects 226 Directory send OK. ftp> </pre> <h2>Wnioski</h2> Jak zauwa�yli�my <i>vsftpf</i> nie jest trudny w instalacji b�d� konfiguracji. Oferuje on wiele cech i wysoki stopie� bezpiecze�stwa. <p> Oczywi�cie, to wprowadzenie ukazuje jedynie u�amek �rodowiska danego przez <i>vsftpd</i>, gdy� ten serwer FTP daje nam wiele mo�liwo�ci konfiguracyjnych. Zainteresowani g��bsz� analiz� <i>vsftpd</i> powinni odwiedzi� stron� projektu[6] i przejrze� szczeg�ow� dokumentacj�.</p> <h2>Linki</h2> [1] <a href= "ftp://ftp.rfc-editor.org/in-notes/rfc959.txt">ftp://ftp.rfc-editor.org/in-notes/rfc959.txt</a> [RFC 959 - File Transfer Protocol]<br> [2] <a href= "ftp://ftp.rfc-editor.org/in-notes/rfc2228.txt">ftp://ftp.rfc-editor.org/in-notes/rfc2228.txt</a> [RFC 2228 - FTP Security Extensions]<br> [3] <a href= "../../English/January2002/article225.shtml">linuxfocus.org: article225, January2002 </a> [chroot]<br> [4] <a href= "http://vsftpd.beasts.org/DESIGN">http://vsftpd.beasts.org/DESIGN</a> [Security vsftpd]<br> [5] <a href= "http://www.wu-ftpd.org/">http://www.wu-ftpd.org/</a> [WU-FTPD]<br> [6] <a href= "http://www.vsftpd.beasts.org/">http://www.vsftpd.beasts.org/</a> [Home of vsftpd]<br> [7] <a href= "../../English/November2000/article175.shtml"> linuxfocus.org: article 175, November2000</a> [xinetd] <p><!-- vim: set sw=2 ts=2 et tw=74: --></p> </body> </html>