vsftpd

Posted by Duerdum9 on 2012/2/17 0:39:31
I need some help here. I'm trying to make vsftpd working. I've installed it using "yum install vsftpd" & it worked perfectly. Now, here comes my problem. When I try & connect with a FTP account I created, it says following (In FileZilla).

Status: Connecting to xx.xxx.xxx.xxx:21...
 Status: Connection established, waiting for welcome message...
 Response: 220 Welcome to xxxxxxxx game servers.
 Command: USER texxx Response: 331
 Please specify the password. Command: PASS ********
 Response: 230 Login successful.
 Command: OPTS UTF8 ON Response: 200
 Always in UTF8 mode.
 Status: Connected
 Status: Retrieving directory listing...
 Command: PWD
 Response: 257 "/home/texxx"
 Command: TYPE I
 Response: 200 Switching to Binary mode.
 Command: PASV
 Status: Retrieving directory listing...
 Command: cd "/home"
 Error: Connection timed out
 Error: Failed to retrieve directory listing

[Moderator edit: Manually wrap ridiculously long line running-off-the-right-side-of-the-page due to use of broken code widget.]

Any help please. For your information, the folder /home/texxx/ IS there. I got no clue what's going on, I would appreciate some help - thanks! :)

Re: vsftpd

Posted by Duerdum9 on 2012/2/17 0:42:31
This is my /etc/vsftpd/vsftpd.conf file.

# Example config file /etc/vsftpd/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.
#
# 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=NO
#
# 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.
# Note that the default log file location is /var/log/xferlog in this case.
xferlog_std_format=NO
#
# 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 xxxxxxxxx game servers.
#
# 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 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_local_user=NO
#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
#
# When "listen" directive is enabled, vsftpd runs in standalone mode and
# listens on IPv4 sockets. This directive cannot be used in conjunction
# with the listen_ipv6 directive.
listen=YES
#
# This directive enables listening on IPv6 sockets. To listen on IPv4 and IPv6
# sockets, you must run two copies of vsftpd with two configuration files.
# Make sure, that one of the listen options is commented !!
#listen_ipv6=YES

pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES


# Passive FTP
pasv_enable=YES
#pasv_promiscuous=NO
port_enable=YES
#port_promiscuous=NO
pasv_max_port=7050
pasv_min_port=7000

# Logging
log_ftp_protocol=YES



Re: vsftpd

Posted by TrevorH on 2012/2/17 12:12:03
Dear Mods, could one of you please fix the nasty wrapping the in the first post? If I could read this, I might attempt to answer it :)

Re: vsftpd

Posted by pschaff on 2012/2/17 16:41:47
Done.

Also in the name of readability - active lines from /etc/vsftpd/vsftpd.conf:
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=NO
xferlog_std_format=NO
ftpd_banner=Welcome to xxxxxxxxx game servers.
chroot_local_user=NO
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
pasv_enable=YES
port_enable=YES
pasv_max_port=7050
pasv_min_port=7000
log_ftp_protocol=YES


Duerdum9 - Welcome to the CentOS fora. Please see the recommended reading for new users linked in my signature, and pay particular attention to the section on formatting your post in Readme First.

Quote:

Duerdum9 wrote:
...
Status: Connected
Status: Retrieving directory listing...
Command: PWD
Response: 257 "/home/texxx"
Command: TYPE I
Response: 200 Switching to Binary mode.
Command: PASV
Status: Retrieving directory listing...
Command: cd "/home"
Error: Connection timed out
Error: Failed to retrieve directory listing


Perhaps a permission problem. Do things work within /home/texxx?

Re: vsftpd

Posted by TrevorH on 2012/2/17 19:41:33
Are you using iptables? Did you open only port 21 for access and did you remember to load the ip_conntrack_ftp module?

Re: vsftpd

Posted by Duerdum9 on 2012/2/18 16:08:17
Yes, I'm using iptables, but I've tried & do 'service iptables stop' but it doesn't do anything different. But, I did add port 21 to it. As well as the passive port.

"and did you remember to load the ip_conntrack_ftp module?" I don't know how to do that, I'm a newbie to CentOS, specially 6.

Re: vsftpd

Posted by Duerdum9 on 2012/2/18 16:12:44
Quote:

pschaff wrote:
Done.

Also in the name of readability - active lines from /etc/vsftpd/vsftpd.conf:
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=NO
xferlog_std_format=NO
ftpd_banner=Welcome to xxxxxxxxx game servers.
chroot_local_user=NO
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
pasv_enable=YES
port_enable=YES
pasv_max_port=7050
pasv_min_port=7000
log_ftp_protocol=YES


Duerdum9 - Welcome to the CentOS fora. Please see the recommended reading for new users linked in my signature, and pay particular attention to the section on formatting your post in Readme First.

Quote:

Duerdum9 wrote:
...
Status: Connected
Status: Retrieving directory listing...
Command: PWD
Response: 257 "/home/texxx"
Command: TYPE I
Response: 200 Switching to Binary mode.
Command: PASV
Status: Retrieving directory listing...
Command: cd "/home"
Error: Connection timed out
Error: Failed to retrieve directory listing


Perhaps a permission problem. Do things work within /home/texxx?

The folder in /home/texxx is chrooted (In FileZilla, it says "Owner/Group", and right below, it says texxx:texxx). The permission is drwx (700).

EDIT: I just tested, I can transfer items over, using root.

Re: vsftpd

Posted by TrevorH on 2012/2/18 16:33:58
Hmm, connection timed out is a funny error to get for a permissions problem.

To load ip_conntrack_ftp you run, as root

modprobe ip_conntrack_ftp


and if it helps then you edit /etc/sysconfig/iptables-config and add it to the IPTABLES_MODULES= line

Re: vsftpd

Posted by Duerdum9 on 2012/2/18 16:48:46
Sadly, it did not help.
about : Command: cd "/home" I think it was my root I have multiple tabs open, from different servers. Even though I waited a bit, for the rest to shoot off their commands, I guess it came in-between it. I'm sorry about that.

Re: vsftpd

Posted by TrevorH on 2012/2/18 17:08:12
Show the output from

iptables-save


Re: vsftpd

Posted by Duerdum9 on 2012/2/18 17:13:38
*filter 
:INPUT ACCEPT [312640:30403113] 
:FORWARD ACCEPT [0:0] 
:OUTPUT ACCEPT [2632390:367889137] 
-A INPUT -p udp -m udp --dport 240 -j ACCEPT 
-A INPUT -p tcp -m tcp --dport 240 -j ACCEPT 
-A INPUT -d 127.0.0.1/32 -p udp -m udp --dport 27016 -j ACCEPT 
-A INPUT -d 127.0.0.1/32 -p tcp -m tcp --dport 27021 -j ACCEPT 
-A INPUT -d 127.0.0.1/32 -p tcp -m tcp --dport 27020 -j ACCEPT 
-A INPUT -d 50.115.164.225/32 -p tcp -m tcp --dport 27015 -j ACCEPT 
-A INPUT -d 50.115.164.225/32 -p udp -m udp --dport 27015 -j ACCEPT 
-A INPUT -d 50.115.164.225/32 -p tcp -m tcp --dport 27020 -j ACCEPT 
-A INPUT -d 50.115.164.225/32 -p udp -m udp --dport 27020 -j ACCEPT 
-A INPUT -d 50.115.164.225/32 -p tcp -m tcp --dport 27010 -j ACCEPT 
-A INPUT -d 50.115.164.225/32 -p udp -m udp --dport 27010 -j ACCEPT 
COMMIT 
# Completed on Sat Feb 18 12:09:50 2012


Edit: Thanks to all of you for helping me! I really appreciate it! :)

Re: vsftpd

Posted by jalley on 2012/2/19 14:55:14
Did you ever fix this problem? I had a similar problem and it turned out to be selinux.

Re: vsftpd

Posted by Duerdum9 on 2012/2/19 15:05:03
Quote:

jalley wrote:
Did you ever fix this problem? I had a similar problem and it turned out to be selinux.

Thanks, but though, it did not help. What I did was 'echo 0 > /selinux/enforce' - but it gives the same error. Thanks for trying though :)

Re: vsftpd

Posted by TrevorH on 2012/2/19 21:19:26
Well your iptables-save output does not show you having port 21 open so loading ip_conntrack_ftp will not help you until you do. It needs both port 21 open _and_ ip_conntrack_ftp loaded.

Re: vsftpd

Posted by Duerdum9 on 2012/2/19 22:15:39
I did following:

[root@s2 ~]# iptables -A INPUT -p tcp --dport 21 -j ACCEPT 
[root@s2 ~]# iptables -A INPUT -p udp --dport 21 -j ACCEPT 
[root@s2 ~]# /sbin/service iptables save iptables: Saving firewall rules to /etc/sysconfig/iptables: /etc/init.d/iptables: line 268: restorecon: command not found [FAILED]


I've not edited / deleted the file /etc/init.d/iptables. This is the file, from line 265-269

if [ $ret -eq 0 ]; then 
if [ -e $IPTABLES_DATA ]; then cp -f $IPTABLES_DATA $IPTABLES_DATA.save \ 
&& chmod 600 $IPTABLES_DATA.save \ 
&& restorecon $IPTABLES_DATA.save \ 
|| ret=1


Re: vsftpd

Posted by TrevorH on 2012/2/19 22:38:00
You don't need to open udp port 21 for ftp use, only tcp is required.

I was referring to your posted iptables rules above, which had only 11 rules listed, none of which were for port 21. Incidentally, since you have a policy default set of ACCEPT, and you have no DROP rule in those rules, you currently have NO firewall running! Rather you have a firewall with 11 rules but the default rule is to allow all traffic so anything that doesn't match those is accepted anyway.

I suggest that you fix this ASAP.

Your lack of a restorecon executable means that you do not have the policycoreutils package installed.

Re: vsftpd

Posted by gerald_clark on 2012/2/20 15:19:18
Another possibility is that this is a VPS, and not CentOS.

Re: vsftpd

Posted by pschaff on 2012/2/20 16:25:53
Perhaps time to ask for "uname -rmi" or better yet provide more information about the system.

Re: vsftpd

Posted by Duerdum9 on 2012/2/20 22:02:55
http://pastebin.com/M5ezUNy7

Re: vsftpd

Posted by pschaff on 2012/2/21 11:45:37
That's a very old kernel, but a least a CentOS one. Rebooting to kernel-2.6.32-220.4.2.el6 would be a good idea. Are other packages up to date?

Must be a very minimal install as neither pciutils nor usbutils is installed, so little is known about the hardware. You might want to obfuscate the public IP address in the route info.

This Post was from: https://www.centos.org/newbb/viewtopic.php?forum=56&topic_id=35852