[LinuxFocus-icon]
<--  | �����  | �����  | ������  | �����

������� | ������ | ������ | ��� LF
��� �������� �������� �� ��������� ������: English  ChineseGB  Deutsch  Francais  Italiano  Nederlands  Russian  Turkce  Polish  

[Photo of the Author]
����� Mario M. Knopf
<netzmeister/at/neo5k/dot/org>

�� ������:

Mario �������� Linux, ���� � ���� ��������� � ������������ �������������. � ���� ��������� ����� �� ���������� ����� ������� : neo5k.org � linuxwallpapers.de.



������� �� �������:
������� ��������� ��������� <slice(at)list.ru>

����������:

 

vsftpd - �������� � ���������� FTP-�����

vsftp

������:

��� ������ ��������� �������� ����������� "Very Secure FTP Daemon". � ����� � �������� ����� ������ FTP � vsftpd. ����� ����� �� ���������� ��������� � ��������� vsftpd-������. � �������� ������ ����������������� ������ �������.

_________________ _________________ _________________

 

��������

File Transfer Protocol (FTP) ������������ ��� �������� ������ � ��������� ���������� �� ��������� �� ������� �� ����������, �� ������� �� ������/������ �����������. RFC 959[1] ���������� FTP �������� ��� �� 2 ��������� ������. ���� ������ ��� �������� ������ (����� TCP-���� 20), � ������ ��� �������� ������� (TCP-���� 21). ���� ������� ��������� ������ � ������, ����������� ���� � ������ ����������� � ������������ ������.
FTP ���������� ���������� � ��������� ������:

�������� ��� ��������� ������ ��������� �������� TCP (Transmission Control Protocol), ������� ����������� ���������� �������� ���������, ������� FTP ��� ������������� ��������� ���� �� ������ �������� � ��������� �� �����-������ ������ �� ����� �� ��������. TCP �����������, ������ �� ��� ��� ������ � � ���������� ������������������.

�������� ������ ���������� ����� ���������� ��������� ���������� ������, ������� ����� �������� ����� ����� (EOF) ��� ����� �������, ������������� ���������� ����� ������ (EOR).

���������� ��� ��� ��������� ������:

ASCII-����� ������������ ��� �������� ��������� ����������, � �������� - ��� �������� ������ ������, ������ ��������. ������������ �� ����� ������ ������ ��� �������� ����� ������, ������ ������� ����������� �� ���� ��������� FTP-������.

������ ������������ ������ ������, ��� ������, ������������ ��� �����������, �� ��������� , � �� ��� ����� ����� �������� ��������. ��� ���� ����� �������� �������������. � ������� 1997 � RFC 2228[2] ���� ������������ ��������� ��������, ���������� ������������ FTP.

 

vsftpd

vsftpd - ������������ ����� ������ ��� Linux-�������� ������������ ������, �� ����������� �� ����� ���������� ��� Linux, *BSD, Solaris, HP-UX � IRIX. �� �������� � ���� ��������� �������� �������, ������� ��� � ������ FTP-��������. ����� ���:

�������� vsftpd ��������� �� "very secure FTP deamon" (����������� ���������� FTP-�����) ������� ��������������� ��� ������������ Chris Evans. � ������ ������ ����� ���������� FTP-�������, ������������ ��������� ������ ��������.

� �������, vsftpd ����� ��������� � chroot-�����. ��� ��������, ��� ��������� ( vsftpd)������� ��� ��� ����� �������� ���������� (l), � ������� �� ����� ����� ������ ������� ��������� ��� �����. �������, ���� FTP-������ ����� ���������������� ���������������, �� �� ������ ����� �� ������� ���� ���������� � ������� ���� �������. ������ ���������� � chroot �� ������ ����������� �� ������ ������ [3]. ��������� ������ [4] ����� ������������� � ��������� �� ���� ���������� ��������� ������������ � vsftpd

����� ������ ���������� ������������� � FTP-�������, ������������ ����� ���������� ���������, � � ���� ����� vsftpd ����������� ����������� ������ FTP-�������. ���������� ��������� WU-FTPD[5] � ������� ���� �������� �������� ���������� ������ �� ��������� ��������� ���.

 

�����������

��������� vsftpd ����� ����� ���������� �� rpm-������, ������� ������ �� ������ ������������. ����� ��� ����� ���������� �� ����������, ������� ����� ����� ����� [6].

����� ���� ��� �� ������� � ����������� ����� � �����������, ������� � ��������� ������������� ���������� � ��������� make. ���� ������� ���� �� ��������, ��� ����� ��� �������:

neo5k@phobos> tar xzvf vsftpd-x.x.x.tar.gz
neo5k@phobos> cd vsftpd-x.x.x
neo5k@phobos> make

������������ ������������� ��������� ���������� �� ������������ "nobody", � ����� ��������� ������� ���������� "/usr/share/empty" � ���� �� ���, �� ������� ��. ���� ���������� ������������ ������ ��������� �������������, �� ����� ����������� ������� ������������"ftp" � ������������ ��� �������� ���������� "/var/ftp". ��� ����� ������� ��� ������ ��������� �������:

neo5k@phobos> mkdir /var/ftp
neo5k@phobos> useradd -d /var/ftp ftp

��� ����������� ������������ ����������"/var/ftp" �� ������ ������������ ������������"ftp" � ������� ������. ��������� ��� ������� ��������� ������� ��������� ����� � �������� � ���� ��� ����������.

neo5k@phobos> chown root.root /var/ftp
neo5k@phobos> chmod og-w /var/ftp

����� ����� ����� �� ����� ���������� � ��������� vsftp-������:

neo5k@phobos> make install

Man-��������, � ����� ���� ��������� ������ ���� ����������� � ���������� ����������. � ������ �����-������ ������� �������� ��� ��������������.

neo5k@phobos> cp vsftpd /usr/sbin/vsftpd
neo5k@phobos> cp vsftpd.conf.5 /usr/share/man/man5
neo5k@phobos> cp vsftpd.8 /usr/share/man/man8

���� �� ���������� ���������������� ���� - ������� ���� ���������� ����� ��������� - ������ ����� ������:

neo5k@phobos> cp vsftpd.conf /etc

 

����������������

���� ������������ ����� ���� ������ � ���������� "/etc" ��� ������ "vsftpd.conf". ��� � � ������������ ���������������� ������ ����������� ������������ ������ #("�������").

# ��� - �����������

���������� ������������ ������ ����� ��������� �������� ��� ���:

# ��������� �� ��������� ������ ? YES/NO
anonymous_enable=NO
 
# �������� �� �������� ������ ���������� ������������? YES/NO
anon_upload_enable=NO
 
# ��������� �� ���������� ������������ ��������� ���� ���������� ? YES/NO
anon_mkdir_write_enable=NO
 
# ��������� �� ������������ ����������� �������� � �������, ����� ��� ������������� ��� �������� ? YES/NO
anon_other_write_enable=NO
 
# �������������� �� ��������� ��������� ������������� ? YES/NO
local_enable=YES
 
# ������ �� ������������ ��������� ������ � ����� ����������� ? YES/NO
chroot_local_user=YES
 
# ������������ �������� �������� ������ ��� ������������������ �������������. ��-��������� = 0 (��������������).
local_max_rate=7200
 
# ��������� �� ������ � ������� ? YES/NO
write_enable=YES
 
# �������� ��������� ��� ����� ���������� ? YES/NO
dirmessage_enable=YES
 
# ����� ������� ��� ����������� ������������.
ftpd_banner="Welcome to neo5k's FTP service."
 
# �������� ����������� ������� ? YES/NO
xferlog_enable=YES
 
# �������������� ��� ������� FTP-���������� ? YES/NO
# ���������! �������� �� ������ ����� �������� ���������� ����������.
log_ftp_protocol=NO
 
# ��������� ���������� ������ �� ���� 20 (ftp data) ? YES/NO
connect_from_port_20=YES
 
# ������� ������
idle_session_timeout=600
 
# ������� �������� ������
data_connection_timeout=120
 
# ������������� ���� ����� Pluggable Authentication Modules (PAM)
pam_service_name=vsftpd
 
# ��������� ������� ? YES/NO - ������� �� ������ (inetd, xinetd, Standalone).
# � ������ FTP-������ ����������� ����� xinetd, ������� � ���� ����� �������� NO.
listen=NO

 

������ FTP-������

vsftpd ����� ���� ������� ����� ���������� ���������. ������ ������ - ������ ����� inetd ��� xinetd, ������ - ��������� ������ �������.  

inetd

���� FTP-������ ������ ����������� ����� inetd, �� ������� ��������� ��������� ������� � ���������������� ���� "/etc/inetd.conf" :

neo5k@phobos> vi /etc/inetd.conf

�����, ���� ����� ������, � ������� ����������� FTP, ����������������� ��, � � ����� ������ ������� vsftpd . ����� ������� ������������� inetd. � ��� ������ ���������� ��������  ���, ��� �������� ����:
# ftp   stream   tcp   nowait   root   /usr/sbin/tcpd   in.ftpd
ftp stream tcp nowait root /usr/sbin/tcpd vsftpd
 

xinetd

������������� ��������� vsftp ������ ����� ��������, ��� ��� xinetd ������� �����, ��� inetd. � ��� ���� ����� ���� ��� ����������� ��������, �������� �������, �������� ������� � ������������� �������� ���������� � �.�. ����� ������� ������, ����������� xinetd ���������� �����[7]. ����� ��������� � ���������������� ����� ������������� xinetd . ���� ���� ����� ��������� �������� ��� ���:
# 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
}
 

������ ������

���������� ����� ����������� ������� vsftp �������. ��� ����� �������� ��� ������ � ������� ��������� ���������:

# ������ �� vsftpd-����� ����������� �������? YES/NO
listen=YES

����� ����� ����� ��������� ������:

neo5k@phobos> /usr/sbin/vsftpd &

� ���� ���� ��������� �������, � ����� ����� ������ � ������ �������, �� ������:

neo5k@phobos> vsftpd &

�����������, �������� �� ��� ����� ����������� ��-��������� ����� ��� ���:

neo5k@phobos> echo $PATH
/usr/sbin:/bin:/usr/bin:/sbin:/usr/X11R6/bin

�����������, ���� �� ��������� ������ �������, �� ������ ���������, ��� ������ �� ������� ��� ������ inetd ��� xinetd.  

�������� ������

����� ������� ����������� � ���������������� ������� �������� ������ � FTP-�������:
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>
 

�����

��� �� ������� ��� ���������, vsftp �� �������� ������� �� � �����������, �� � ����������������. ������ �� �������� ���������� �������������� ��������� � ������������� ������� ������� ������������.

�������, ��� ������ ��������� ���� ����� ����� ����, ��� ����� ������������ ��� vsftpd, �������� �� ��� ������� ��� ����������������. ���� �� ������ ����� ������ ���������� � vsftpd , �� �� ������ �������� ��� �������� ��������� [6]� ��������� ����� ��������� ������������.

 

������

[1] ftp://ftp.rfc-editor.org/in-notes/rfc959.txt [RFC 959 - File Transfer Protocol]
[2] ftp://ftp.rfc-editor.org/in-notes/rfc2228.txt [RFC 2228 - FTP Security Extensions]
[3] linuxfocus.org: article225, January2002 [chroot]
[4] http://vsftpd.beasts.org/DESIGN [Security vsftpd]
[5] http://www.wu-ftpd.org/ [WU-FTPD]
[6] http://www.vsftpd.beasts.org/ [�������� �������� vsftpd]
[7] linuxfocus.org: article 175, November2000 [xinetd]

 

�������� �������

� ������ ������� ���� �������� �������. �� ���� �������� �� ������ �������� ���� ����������� ��� ����������� ����������� ������ ���������
 talkback page 

<--, ������� � ��������� �������� �������

Webpages maintained by the LinuxFocus Editor team
© Mario M. Knopf
"some rights reserved" see linuxfocus.org/license/
http://www.LinuxFocus.org
Translation information:
de --> -- : Mario M. Knopf <netzmeister/at/neo5k/dot/org>
de --> en: Jürgen Pohl <sept.sapins/at/verizon.net>
en --> ru: ������� ��������� ��������� <slice(at)list.ru>

2004-11-01, generated by lfparser version 2.48