PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : vsftpd: connection refused und restart scheitert



einmannpark
21.12.09, 17:00
hallo,

ich hab einiges gegooglet, aber mein problem war mir nur in ähnlicher form begegnet und die lösungen haben entweder nichts geholfen, oder ich hab sie nicht verstanden.

wenn ich mich mit nem andern pc oder direkt über localhost mit dem ftp verbinden will, dann bekomme ich als fehlermeldung:
connection refused

wenn ich den server hochfahre wird vsftpd gestartet, wenn ich ihn von hand stoppe mit
sudo /etc/init.d/vsftp stop dann kriege ich die fehlermeldung:
no usr/sbin/vsftpd found running none killed.

die datei ist aber vorhanden.

mit:
netstat -a | grep ftp passiert gar nichts.
ich hab gelesen, dass evtl die pid der datei abweicht, weil ich die config stark verändert hab, aber wie ich das bestimmen kann ist mir nicht bekannt.

meine config ist:

# 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=YES
#
# 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=YES
#
# 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=077
#
# 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=NO
#
# 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=400
#
# You may change the default value for timing out a data connection.
data_connection_timeout=120
#
# timeout for remote clients to establish connection
accept_timeout=60
#
# 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 Ubuntu 9.04 Server 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=YES
#
# 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=/home/ftpsecure
#
# 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
#
# customized settings following:
#
# uncomment this to activate openssl support - needs openssl installed
#ssl_enable=YES
#allow_anon_ssl=YES
# uncomment this for requirement of certificate, validation controlled
# by validate_cert
#require_cert=YES
#
# delete any incomplete and broken uploads
delete_failed_uploads=YES
#
# if NO all directory listing is denied
dirlist_enable=YES
#
# if NO all download-requests are denied
download_enable=YES
#
# this will disable password-request for anonymous - immediate login
no_anon_password=YES
#
# security check whether ip address is the same for request and download
pasv_enable=YES
# set to YES for special form of secure tunneling - HIGH RISK!!!
pasv_promiscuous=NO
#
# security check based on PORT
port_enable=YES
# set to yes for disabling PORT security check - HIGH RISK!!!
port_promiscuous=NO
#
# show server's timezone in directory listings
use_localtime=YES
#
# if enabled, vsftp will load a list usernames. if a user tries to login using
# a username from the list, they will be denied BEFORE asked for a password.
userlist_enabled=NO
# set to NO, users will be denied before asked for a password unless they are
# listed in userlist_file. works ONLY IF userlist_enabled is activated.
#userlist_deny=NO
# specifying file to list denied users
#userlist_file=/etc/vsftp.user_list
#
# max data transfer in bytes per second for anonymous: 0=unlimited
anon_max_rate=0
#
# permissions for uploaded files, default 0666; executable 0777
file_open_mode=0666
# umask for anonymous, 066 files; 077 directories
anon_umask=077
# allow only world-readable files and directories for anon
anon_world_readable_only=NO
#
# the port from which PORT style connections originate, needs connect_from=YES
ftp_data_port=20
#
# if in standalone mode, the port on which vsftp listens for connections
listen_port=21
#
# max transfer rate in bytes per second for local users, 0=unlimited
max_local_rate=0
#
# if in standalone mode, this is the max number of connected clients,0=unlimited
max_clients=20
#
# after this many login failures session is killed
max_login_fails=2
#
# root directory for anonymous
anon_root=/home/ftp-home/
#
# a list of ftp commands allowed by the server, seperated by a comma
#cmds_allowed=
#
# a list of ftp commands denied by the server, seperated by a comma
#cmds_denied=
#
# name of the user we use for anonymous, their home-directory is used as
# root-directory for anonymous. default=ftp
ftp_username=ftpuser
#
# if enabled, all non-anonymous logins are classed as "guest", this is
# remapped to the user specified in guest_username
guest_enable=NO
#
# username, which guest is mapped to. default=ftp
guest_username=ftpuser
#
# root-directory for local users
local_root=/home/ftp-home/
#
# enable tcp wrapper for securing vsftp
tcp_wrappers=NO

die beiden user in der config hab ich erstellt und auch die entsprechenden ordner korrekt zugeordnet und mit passenden zugriffsrechten versehen.

da ich gelesen hab, dass n fehler in der config zu meinem prob führen kann, hab ich mal eine minimale erstellt. aber die scheint zu gering auszufallen, denn damit startet vsftpd auch beim systemstart nicht mehr und

sudo /etc/init.d/vsftp start/stop
macht gar nichts.
hier die minimale:

# minimal config-file for vsftpd
listen=YES
anonymous_enable=YES
no_anon_password=YES
anon_root=/home/ftp-home/
local_enable=YES
write_enable=YES
download_enable=YES

bin für jede hilfe dankbar.
wenn ihr noch mehr infos braucht, einfach sagen
danke
marco

drcux
21.12.09, 17:19
Distribution, vsftpd wie installiert?

einmannpark
21.12.09, 17:37
wusste doch, dass ich was vergessen hab ^^

ubuntu server 9.04 mit kernel 2.6.28-17
installiert hab ichs über aptitude. auch schon mal deinstalliert und wieder installiert, aber hat nichts verändert.

firewall ist deaktiviert, aber die ports sind auch sonst freigegeben.
ssh kann connecten und samba auch.

oziris
21.12.09, 19:26
Kann es sein, dass Du vsftpd über einen "super server", wie xinetd betreibst?

einmannpark
21.12.09, 20:03
Kann es sein, dass Du vsftpd über einen "super server", wie xinetd betreibst?

nein, die xinetd.conf und xinetd.d sind sauber, da ich listen=yes eingestellt hab.

jimpanse
21.12.09, 20:23
Was sagt uns dieser Satz?


no usr/sbin/vsftpd found running none killed.



mit:
netstat -a | grep ftp passiert gar nichts.


Kann ja auch nicht wenn der Server nicht läuft :)

einmannpark
21.12.09, 23:40
aber WARUM läuft er nicht, wenn er beim boot angeblich gestartet wird und auch mit OK versehen wird???
und wenn ich nach besagtem stop start von hand ausführe sagt er auch OK
aber ein weiteres stop zeigt, dass es wieder nicht lief...

oziris
22.12.09, 00:47
Ein Blick ins Log könnte da helfen.

einmannpark
22.12.09, 09:44
also die in der config mit dem code:

# You may override where the log file goes if you like. The default is shown below.
xferlog_file=/var/log/vsftpd.log
angegebene log-datei besteht nicht.
gibts noch ne andere?

marce
22.12.09, 09:50
auth.log, secure.log, messages - je nach OS und Syslog-Konfig.

oziris
22.12.09, 10:07
Es gibt manchmal auch /var/log/syslog .

Bitte starte auch mal den vsftpd direkt (geht wegen den Port(s) nur als root).
Wenn er gleich und ohne Fehlermeldungen wieder aus geht, dann versuche bitte auch, ihn mit strace zu starten, um zu sehen, was er gerade macht, wenn er ausgeht.

Das ist echt komisch. Der vsftpd ist IMHO eigentlich der einfachste FTP daemon überhaupt. Sowas habe ich noch nicht gesehen.

Vielleicht wird der Port auch noch von etwas anderem belegt, aber das müssten wir dann ja sehen.

einmannpark
22.12.09, 10:32
also, ich habe mir die /var/log/auth.log eben angesehen, da steht zb nachm boot der sshd drin als "listening" auf seinem port, als sshd[xxxx] => die ziffern variieren, was bedeuten die??
auch der smbd wird da angezeigt, ebenfalls mit verschiedensten ziffern in [xxxx]

ansonsten halt alle sudo-befehle, die ich ausgeführt hab. auch die starts und stops des vsftpd, aber danach kommt keine listening-ausgabe oder ähnliches, auch wird er nie, auch nicht nachm boot angezeigt, wie der sshd.

ansonsten geschätzt 1 million mal:
CRON[xxxx]: pam_unix(cron:session): session opened/closed for user root
was bedeutet das?

@oziris: wie ist der befehl um vsftpd mit strace neuzustarten? bei einem normalen:

sudo /etc/init.d/vsftpd restart
kommt der alte fehler, dass beim stoppen kein laufender prozess gefunden wurde

oziris
22.12.09, 10:46
also, ich habe mir die /var/log/auth.log eben angesehen, da steht zb nachm boot der sshd drin als "listening" auf seinem port, als sshd[xxxx] => die ziffern variieren, was bedeuten die??
auch der smbd wird da angezeigt, ebenfalls mit verschiedensten ziffern in [xxxx]Das ist i.d.R. die PID des loggenden Prozesses.

CRON[xxxx]: pam_unix(cron:session): session opened/closed for user root
was bedeutet das?Ein Cron-Job wurde mit den Rechten des angegebenen Benutzers (in diesem Beispiel "root") ausgeführt. Bei einigen Konfigurationen kommt das auch immer, wenn der Cron-Daemon in bestimmten Verzeichnissen oder Dateien nach Zeug sucht, dass er ausführen soll (cron.daily usw.).


bei einem normalen:

sudo /etc/init.d/vsftpd restart
kommt der alte fehler, dass beim stoppen kein laufender prozess gefunden wurde
Das meinte ich nicht mit "direkt starten". Ich meinte sowas:
sudo vsftpdGebe zu, das war etwas missverständlich ausgedrückt, weil man sowas ja eigentlich nur in Ausnahmefällen macht.
Wenn man ihn so startet, dann kann es sein, dass man ihn - und damit den Test - mit Strg+C abbrechen muss, wenn er im Vordergrund und tatsächlich an bleibt.


@oziris: wie ist der befehl um vsftpd mit strace neuzustarten?Der ist dann entsprechend zum gerade angesprochenen Befehl:
sudo strace vsftpdHier könnte ebenfalls wieder Strg+C angesagt sein.

PS: Sollte es bei diesen Befehlen zu Problemen mit den Pfaden kommen, dann muss man evtl. den Pfad zum vsftpd ermitteln und absolut angeben.

einmannpark
22.12.09, 11:08
danke

sudo strace vsftpd
hat insofern geklappt, dass ich es nicht abbrechen musste und auch nicht den absoluten pfad angeben musste.
er zeigt eine "unbekannte variable in der config an. "userlist_enable" und "max_loca_ratel" und "anon_max_rate" kennt er nicht. die hab ich mal rauskommentiert.

allerdings ist die ausgabe zu lang für eine bildschirmlänge. wird das denn auch in irgendner datei gespeichert, dass ich das kopieren und mitm editor öffnen könnte?
dann kann ich das ergebnis hier auch posten...

außerdem bleibt er jetzt nicht mehr mit dem fehler stehen, sondern stoppt einfach so an einer stelle. wenn ich dann mit strg+c abbreche gibt er >unfinished< aus.

marce
22.12.09, 11:16
userlist_enabled kennt er nicht - dafür aber userlist_enable - zumindest wenn man die Config von Dir da oben betrachtet...

oziris
22.12.09, 11:20
allerdings ist die ausgabe zu lang für eine bildschirmlänge. wird das denn auch in irgendner datei gespeichert, dass ich das kopieren und mitm editor öffnen könnte?
dann kann ich das ergebnis hier auch posten...Wenn Deine Shell die "bash" ist ("ps" eingeben und am Ende der Zeilen gucken, ob "bash" dabei ist), dann kannst Du immer nach diesem Beispiel vorgehen:
sudo strace vsftpd &>/tmp/vsftpd_strace_log.txtDen Kram hinten kannst Du hinter jeden Befehl anhängen, um Standard-Ausgabe und -Fehler (STDOUT und STDERR) in eine Datei umzuleiten (hier /tmp/vsftpd_strace_log.txt). Siehe "man bash" Abschnitt REDIRECTION bei "Redirecting Standard Output and Standard Error".

Ich vermute, wenn man JavaScript an hat, kann man hier auch direkt an den Post eine Datei anhängen, dann musst Du sie nicht reinkopieren und der Beitrag bleibt schön klein.

einmannpark
22.12.09, 11:31
userlist_enabled kennt er nicht - dafür aber userlist_enable - zumindest wenn man die Config von Dir da oben betrachtet...

jo, das is der übeltäter, ****** tippfehler -.-
genau wie es
anon_max_rate und
local_max_rate heißt.

jetzt läuft das ding, zumindest mit local user als login.
für anonymous muss ich die config wohl noch mal genauer checken, wird bisher wegen der schreibrechte geblockt.

vielen dank erstma für die hilfe. hab ne menge gelernt.

einmannpark
22.12.09, 12:26
jetzt läuft das ding, zumindest mit local user als login.
für anonymous muss ich die config wohl noch mal genauer checken, wird bisher wegen der schreibrechte geblockt.

vielen dank erstma für die hilfe. hab ne menge gelernt.


läuft jetzt auch mit anonymous login.

nochmal vielen dank für die hilfe.