<!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&uuml;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&gt; tar xzvf
    vsftpd-x.x.x.tar.gz<br>
    neo5k@phobos&gt; cd vsftpd-x.x.x<br>
    neo5k@phobos&gt; 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&gt; mkdir /var/ftp<br>
    neo5k@phobos&gt; 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&gt; chown root.root /var/ftp<br>
    neo5k@phobos&gt; chmod og-w /var/ftp</p>
    Po spe�nieniu tych wymog�w mo�emy zainstalowa� <i>vsftpd</i>: 

    <p class="code">neo5k@phobos&gt; 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&gt; cp vsftpd /usr/sbin/vsftpd<br>
    neo5k@phobos&gt; cp vsftpd.conf.5 /usr/share/man/man5<br>
    neo5k@phobos&gt; 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&gt; 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>
    &nbsp;<br>
    <i># Zezwoli� na anonimowy upload? YES/NO</i><br>
    anon_upload_enable=NO<br>
    &nbsp;<br>
    <i># Zezwoli� na anonimowe tworzenie katalog�w?
    YES/NO</i><br>
    anon_mkdir_write_enable=NO<br>
    &nbsp;<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>
    &nbsp;<br>
    <i># Zezwala� na zalogowanie si� u�ytkownikom lokalnym? YES/NO</i><br>
    local_enable=YES<br>
    &nbsp;<br>
    <i># Czy u�ytkownicy lokalnie powinni by� 'zamkni�ci' w swoich katalogach?
    YES/NO</i><br>
    chroot_local_user=YES<br>
    &nbsp;<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>
    &nbsp;<br>
    <i># Og�lne zezwolenie na zapis? YES/NO</i><br>
    write_enable=YES<br>
    &nbsp;<br>
    <i># W��czy� wiadomo�ci katalogowe ? YES/NO</i><br>
    dirmessage_enable=YES<br>
    &nbsp;<br>
    <i># Baner witaj�cy zalogowanego u�ytkownika.</i><br>
    ftpd_banner="Welcome to neo5k's FTP service."<br>
    &nbsp;<br>
    <i># W��czy� monitoring? YES/NO</i><br>
    xferlog_enable=YES<br>
    &nbsp;<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>
    &nbsp;<br>
    <i># Potwierdzaj ��czenie wy��cznie na port 20 (ftp data)
    . YES/NO</i><br>
    connect_from_port_20=YES<br>
    &nbsp;<br>
    <i># Czas po kt�rym bezczynne sesje s� roz��czane</i><br>
    idle_session_timeout=600<br>
    &nbsp;<br>
    <i># Timeout dla danych</i><br>
    data_connection_timeout=120<br>
    &nbsp;<br>
    <i># Dost�p przez Pluggable Authentication Modules
    (PAM)</i><br>
    pam_service_name=vsftpd<br>
    &nbsp;<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&gt; 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&gt; /usr/sbin/vsftpd &amp;</p>
    Je�li �cie�ka wyszukiwania zosta�a prawid�owo wpisana to
    nast�puj�ce polecenie uruchomi serwer:

    <p class="code">neo5k@phobos&gt; vsftpd &amp;</p>
    Kolejnym wpisem mo�emy sprawdzi�, czy �cie�ka wyszukiwania zosta�a
    poprawnie wprowadzona:

    <p class="code">neo5k@phobos&gt; 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&gt; 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&gt; 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&gt;
</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>