vsftpd und xinetd

Hi,
ich möchte 2 vsftpd server laufen lassen und verschiedene Config Files vewengen. Ich habe gelesen, dass man das mit xinetd veranstalten kann und möchte das jetzt in Gang bringen.

Dazu habe ich erstmal die default vsftpd.conf ein wenig bearbeitet:
Code:
# Example config file /etc/vsftpd.conf
#
# The default compiled in settings are fairly paranoid. This sample file
# loosens things up a bit, to make the ftp daemon more usable.
# Please see vsftpd.conf.5 for all compiled in defaults.
#
# READ THIS: This example file is NOT an exhaustive list of vsftpd options.
# Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd's
# capabilities.
#
#
# Run standalone?  vsftpd can run either from an inetd or as a standalone
# daemon started from an initscript.
listen=NO
#
# Run standalone with IPv6?
# Like the listen parameter, except vsftpd will listen on an IPv6 socket
# instead of an IPv4 one. This parameter and the listen parameter are mutually
# exclusive.
#listen_ipv6=YES
#
# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
anonymous_enable=NO
#
# Uncomment this to allow local users to log in.
local_enable=YES
#
# Uncomment this to enable any form of FTP write command.
write_enable=YES
#
# Default umask for local users is 077. You may wish to change this to 022,
# if your users expect that (022 is used by most other ftpd's)
#local_umask=022
#
# Uncomment this to allow the anonymous FTP user to upload files. This only
# has an effect if the above global write enable is activated. Also, you will
# obviously need to create a directory writable by the FTP user.
#anon_upload_enable=YES
#
# Uncomment this if you want the anonymous FTP user to be able to create
# new directories.
#anon_mkdir_write_enable=YES
#
# Activate directory messages - messages given to remote users when they
# go into a certain directory.
dirmessage_enable=YES
#
# Activate logging of uploads/downloads.
xferlog_enable=YES
#
# Make sure PORT transfer connections originate from port 20 (ftp-data).
connect_from_port_20=YES
#
# If you want, you can arrange for uploaded anonymous files to be owned by
# a different user. Note! Using "root" for uploaded files is not
# recommended!
#chown_uploads=YES
#chown_username=whoever
#
# You may override where the log file goes if you like. The default is shown
# below.
#xferlog_file=/var/log/vsftpd.log
#
# If you want, you can have your log file in standard ftpd xferlog format
#xferlog_std_format=YES
#
# You may change the default value for timing out an idle session.
#idle_session_timeout=600
#
# You may change the default value for timing out a data connection.
#data_connection_timeout=120
#
# It is recommended that you define on your system a unique user which the
# ftp server can use as a totally isolated and unprivileged user.
#nopriv_user=ftpsecure
#
# Enable this and the server will recognise asynchronous ABOR requests. Not
# recommended for security (the code is non-trivial). Not enabling it,
# however, may confuse older FTP clients.
#async_abor_enable=YES
#
# By default the server will pretend to allow ASCII mode but in fact ignore
# the request. Turn on the below options to have the server actually do ASCII
# mangling on files when in ASCII mode.
# Beware that on some FTP servers, ASCII support allows a denial of service
# attack (DoS) via the command "SIZE /big/file" in ASCII mode. vsftpd
# predicted this attack and has always been safe, reporting the size of the
# raw file.
# ASCII mangling is a horrible feature of the protocol.
#ascii_upload_enable=YES
#ascii_download_enable=YES
#
# You may fully customise the login banner string:
#ftpd_banner=Welcome to blah FTP service.
#
# You may specify a file of disallowed anonymous e-mail addresses. Apparently
# useful for combatting certain DoS attacks.
#deny_email_enable=YES
# (default follows)
#banned_email_file=/etc/vsftpd.banned_emails
#
# You may restrict local users to their home directories.  See the FAQ for
# the possible risks in this before using chroot_local_user or
# chroot_list_enable below.
chroot_local_user=NO
#
# You may specify an explicit list of local users to chroot() to their home
# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().
#chroot_list_enable=YES
# (default follows)
#chroot_list_file=/etc/vsftpd.chroot_list
#
# You may activate the "-R" option to the builtin ls. This is disabled by
# default to avoid remote users being able to cause excessive I/O on large
# sites. However, some broken FTP clients such as "ncftp" and "mirror" assume
# the presence of the "-R" option, so there is a strong case for enabling it.
#ls_recurse_enable=YES
#
#
# Debian customization
#
# Some of vsftpd's settings don't fit the Debian filesystem layout by
# default.  These settings are more Debian-friendly.
#
# This option should be the name of a directory which is empty.  Also, the
# directory should not be writable by the ftp user. This directory is used
# as a secure chroot() jail at times vsftpd does not require filesystem
# access.
secure_chroot_dir=/var/run/vsftpd
#
# This string is the name of the PAM service vsftpd will use.
pam_service_name=vsftpd
#
# This option specifies the location of the RSA certificate to use for SSL
# encrypted connections.
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
# This option specifies the location of the RSA key to use for SSL
# encrypted connections.
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key


listen habe ich auf NO gesetzt. Soll doch so sein wenn der server nicht standalone läuft oder?

Die xinetd.conf sieht so aus:
Code:
# Simple configuration file for xinetd
#
# Some defaults, and include /etc/xinetd.d/

defaults
{
        log_type = SYSLOG daemon info
        log_on_success = HOST PID
        log_on_failure = HOST
        per_source  = 5
}

includedir /etc/xinetd.d

Es werden also die Dienste aus /etc/xinetd.d/ gestartet, welche da wären
Code:
mathias@wizard:/etc/xinetd.d$ ls
chargen  daytime  discard  echo  time  vsftpd 
mathias@wizard:/etc/xinetd.d$

vsftpd habe ich selbst angelegt und hiermit gefüllt:
Code:
service ftp
{
        disable         	= no
        socket_type             = stream
        wait                    = no
        user                    = root
        server          	= /usr/sbin/vsftpd
        nice                    = 10
}


Wenn ich jetzt verbinden will kommt
Code:
mathias@wizard:/etc/xinetd.d$ ftp localhost
Connected to localhost.
220 (vsFTPd 2.0.5)
Name (localhost:mathias): mathias
530 This FTP server is anonymous only.
Login failed.
ftp>
und das obwohl ich local_enable=YES und anonymous_enable=NO gesetzt habe.

Warum ist das so?

-------------------------------------------------------------------------------------------------------------------

EDIT:

Also ich hab das ganze jetzt am laufen und möchte hier kurz auflisten was ich getan habe:

1)
xinet installieren logisch ;)

2)
In die Datei /etc/services einen weiteren Dienst eintragen, bei mir sieht das so aus:
Code:
mathias@wizard:~$ cat /etc/services | grep ftp
ftp-data        20/tcp
ftp             27566/tcp
vsftpd_local    31788/tcp
tftp            69/udp
sftp            115/tcp
ftps-data       989/tcp                         # FTP over SSL (data)
ftps            990/tcp
venus-se        2431/udp                        # udp sftp side effect
codasrv-se      2433/udp                        # udp sftp side effect
frox            2121/tcp                        # frox: caching ftp proxy
zope-ftp        8021/tcp                        # zope management by ftp
Der zusätzliche Eintrag ist "vsftpd_local" und die Änderung von Port 21 auf 27566 bei "ftp".

3)
Dann muss man in /etc/xinetd.d/ für die 2 FTP Server die man haben will jeweils eine Datei anlegen:
Code:
mathias@wizard:/etc/xinetd.d$ ls -all
total 24
drwxr-xr-x   2 root root  4096 2008-03-05 21:26 .
drwxr-xr-x 132 root root 12288 2008-03-05 21:24 ..
-rw-r--r--   1 root root   469 2008-03-03 12:13 vsftpd
-rw-r--r--   1 root root   297 2008-03-03 12:09 vsftpd_local

4)
Die Inhalte der beiden Files stimmen bis auf den Service Name und "server_args" überein:

Code:
mathias@wizard:/etc/xinetd.d$ cat ./vsftpd
# vsftp daemon.
service ftp
{
        disable         =       no
        socket_type     =       stream
        wait            =       no
        user            =       root
        server          =       /usr/sbin/vsftpd
        per_source      =       5
        instances       =       200
        log_on_success  +=      PID HOST DURATION
        log_on_failure  +=      HOST
        nice            =       10
        server_args     =       /etc/vsftpd.conf
}


Code:
mathias@wizard:/etc/xinetd.d$ cat ./vsftpd_local 
# vsftp daemon.
service vsftpd_local
{
        disable         =       no
        socket_type     =       stream
        wait            =       no
        user            =       root
        server          =       /usr/sbin/vsftpd
        per_source      =       5
        instances       =       200
        log_on_success  +=      PID HOST DURATION
        log_on_failure  +=      HOST
        nice            =       10
        server_args     =       /etc/vsftpd.conf_local
}

Der Service Name enspricht natürlich dem Namen in /etc/services.

Dann war es eigentlich mir einem /etc/init.d/xinetd restart getan und es lief.
 
Zurück
Oben