13

So I upgraded my Ubuntu Server to 12.04 LTS today and now VSFTPD wont work. I think it is related to this VSFTPd stopped working after update

However, unlike the asker in that post, I am not getting any error messages. When I log on, I get

220 (vsFTPd 2.3.5)
331 Please specify the password.
Password: 
530 Login incorrect.
ftp: Login failed

I know the password is correct,and I have tried multiple users. vsftpd.log shows nothing other than:

Tue May  1 15:19:48 2012 [pid 2] CONNECT: Client "192.168.1.133"
Tue May  1 15:19:53 2012 [pid 1] [USERNAME] FAIL LOGIN: Client "192.168.1.133"

Syslog shows nothing. Here is my VSFTPD.conf (mostly default):

listen=YES
anonymous_enable=NO
local_enable=YES
check_shell=NO
write_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/private/vsftpd.pem

I tried the command mentioned in the previous question to no avail.

sudo chmod a-w /home/user

Thanks, I appreciate all your help!

22

In vsftpd.conf

Make the following change : pam_service_name=ftp

Save your change and restart the ftp server.

| improve this answer | |
  • Thanks very much! You wouldn't believe how much of a pain this has been! – Chris Edwards Dec 10 '12 at 14:00
  • 5
    Care to elaborate on your solution? – frhd Mar 27 '15 at 9:58
  • Where can I find vsftpd.conf.. – Oliver Dixon Aug 20 '15 at 19:26
  • This fixed my problem! WTF. Why is this not the default service name, uhh? What is a PAM service? – danger89 Jun 27 '16 at 20:57
  • this ends up giving me: 500 OOPS: priv_sock_get_result Login failed. 421 Service not available, remote server has closed connection – Ascherer Aug 7 '16 at 10:54
1

There are several Reason why you may get this reason.

Firewall-->>Tcp_wrapper-->>PAM-->>SElinux-->>FTPService-->> File.

  1. First Check if the given user is blocked or not in /etc/vsftpd/ftpusers /etc/vsftpd/user_list

  2. Check SElinux Context or Boolean for the Same.

  3. Check in PAM directory file. /etc/pam.d/vsftpd

auth required pam_shells.so

if user is not having required shell like in /etc/shells then it will give same error check getent passwd username match given shell with /etc/shells.

| improve this answer | |
0

Try to first login to the FTP through firefox or a browser, so you are sure to get a response why you are not able to log in.

This is just as a precausion to confirm if it is the login credentials itself or not.

| improve this answer | |
0

It seems that current pam configuration for vsftp includes a requirement to have a valid shell something you want to avoid in case of an FTP user.

# Standard behaviour for ftpd(8).
auth    required    pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed

# Note: vsftpd handles anonymous logins on its own. Do not enable pam_ftp.so.

# Standard pam includes
@include common-account
@include common-session
@include common-auth
auth    required    pam_shells.so

The only thing you have to do is to comment last line auth required pam_shells.so. So this is no required.

Or add a login to all your ftp users.

Changing the name as suggested in the other comment is no point as you loose the deny file.

| improve this answer | |
0

If running an amd64 kernel, you will need to add the following to your /etc/vsftpd/vsftpd.conf

seccomp_sandbox=NO
| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.