vsftpd 出现530 and 500 错误问题解决办法

VSFTP  530 Login incorrect  And    500 OOPS: vsftpd: refusing to run with writable anonymous root  错误的解决方法

530 Login incorrect  :

在文件中限制匿名用户,做如下设置:

anonymous_enable=NO
userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd.user_list

这样只有在 user_list 里面的用户才可以访问 ftp。

但是在 service vsftpd restart 后,用 ftp localhost 测试,输入正确的用户名和密码之后,却一直显示:530 Login incorrect
Login Failed

后来发现在 etc下面有个 pam.d 文件夹,进去打开 vsftpd 这个文件,发现里面对之前的用户进行了限制,将里面对应的限制注

释掉:

#auth       required    pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed

问题解决。

500 OOPS: vsftpd: refusing to run with writable anonymous root

如果我们已经把 vsFTPd 服务器启动好了,但登录测试是会出现类似下面的提示:

500 OOPS: vsftpd: refusing to run with writable anonymous root

这表示 ftp 用户的根目录的权限不对,应该改过才对;

[root@localhost ~]# more /etc/passwd | grep ftp  
ftp:x:1000:1000:FTP User:/var/ftp:/sbin/nologin

我们发现 ftp 用户的根目录在 /var/ftp,就是这个 /var/ftp 的权限不对所致,这个目录的权限是不能打开所有权限的;是您运行了 chmod 777 /var/ftp 所致;如果没有 ftp 用户这个根目录,当然您要自己建一个; 如下 FTP 用户的根目录是不能针对所有用户、用户组、其它用户组完全开放;

[root@localhost ~]# ls -ld /var/ftp  
drwxrwxrwx 3 root root 4096 2005-03-23 /var/ftp

修正这个错误,可以用下面的办法:

[root@localhost ~]# chown root:root /var/ftp  
[root@localhost ~]# chmod 755 /var/ftp

有的弟兄可能会说,那匿名用户的可读、可下载、可上传怎么办呢?这也简单,在 /var/ftp 下再建一个目录,权限是 777 的就行了,再改一改 vsftpd.conf 就 OK 了;没有什么难的;
vsFTPd 出于安全考虑,是不准让 ftp 用户的根目录的权限是完全没有限制的,您可以去读一下 vsFTPd 的文档就明白的了;否则也不能称为最安全的 FTP 服务器了,对不对?"
 另附上 VSFTP 的配置文件:

#About host settings
connect_from_port_20=YES
#记得在前一小节提到的主动式连线使用的FTP伺服器的埠号吗?这就是ftp-data的埠号; 

listen_port=21
#vsftpd使用的命令通道之埠号,如果您想要使用非正规的埠号,在这个设定项目修改吧!不过你必须要知道,这个设定值仅适合以stand alone的方式来启动喔! (对于super daemon无效) 

dirmessage_enable=YES
#当使用者进入某个目录时,会显示该目录需要注意的内容,显示的档案预设是.message ,你可以使用底下的设定项目来修订! 

message_file=.message
#当dirmessage_enable=YES时,可以设定这个项目来让vsftpd寻找该档案来显示讯息! 

listen=YES
#若设定为YES表示vsftpd是以standalone的方式来启动的! 

pasv_enable=YES
#启动被动式连线模式(passive mode),一定要设定为YES的啦! 

use_localtime=YES
#是否使用本地时间? vsftpd预设使用GMT时间(格林威治),所以会比台湾晚8小时,建议设定为YES吧! 

write_enable=YES
#如果你允许使用者上传资料时,就要启动这个设定值; 

connect_timeout=60
#单位是秒,在资料连接的主动式连线模式下,我们发出的连接讯号在60秒内得不到用户端的回应,则不等待并强制断线咯。 

accept_timeout=60
#当使用者以被动式PASV来进行资料传输时,如果主机启用passive port并等待client超过60秒而无回应,那么就给他强制断线!这个设定值与connect_timeout类似,不过一个是管理主动连线,一个管理被动连线。 

data_connection_timeout=300
#如果伺服器与用户端的资料连线已经成功建立(不论主动还是被动连线),但是可能由于线路问题导致300秒内还是无法顺利的完成资料的传送,那用户端的连线就会被我们的vsftpd强制剔除! 

idle_session_timeout=300
#如果使用者在300秒内都没有命令动作,强制离线! 

max_clients=50
#如果vsftpd是以stand alone方式启动的,那么这个设定项目可以设定同一时间,最多有多少client可以同时连上vsftpd哩! ? 

max_per_ip=5
#与上面max_clients类似,这里是同一个IP同一时间可允许多少连线? 

pasv_min_port=0, pasv_max_port=0
#上面两个是与passive mode使用的port number有关,如果您想要使用65400到65410这11个port来进行被动式连线模式的连接,可以这样设定pasv_max_port=65410以及pasv_min_port=65400。如果是0的话,表示随机取用而不限制。 

#ftpd_banner=一些文字說明 

#当使用者连线进入到vsftpd时,在FTP用户端软体上头会显示的说明文字。不过,这个设定值资料比较少啦!建议你可以使用底下的设定值来取代这个项目; 

banner_file=/etc/vsftpd/welcome.txt
#这个项目可以指定某个纯文字档作为使用者登入vsftpd伺服器时所显示的欢迎字眼。
# 

#
#
#Entity user settings
#
guest_enable=NO
#若这个值设定为YES时,那么任何非anonymous登入的帐号,均会被假设成为guest (访客)喔!至于访客在vsftpd当中,预设会取得ftp这个使用者的相关权限。但可以透过guest_username来修改。 

guest_username=ftp
#在guest_enable=YES时才会生效,指定访客的身份而已。 

local_enable=YES
#这个设定值必须要为YES时,在/etc/passwd内的帐号才能以实体用户的方式登入我们的vsftpd主机喔! 

write_enable=YES
#是否允许实体用户写入 

local_max_rate=60000
#实体用户的传输速度限制,单位为bytes/second, 0为不限制。 

chroot_local_user=YES
#将使用者限制在自己的家目录之内(chroot)!这个设定在vsftpd当中预设是NO,因为有底下两个设定项目的辅助喔!所以不需要启动他
#但如果启动了他,则表示实体用户默认就已经被chroot,写在/etc/vsftpd/chroot_list里的用户反而是没有被chroot的. 

chroot_list_enable=YES
#是否启用将某些实体用户限制在他们的家目录内?预设是NO ,不过,如果您想要让某些使用者无法离开他们的家目录时,可以考虑将这个设定为YES ,并且规划下个设定值 

chroot_list_file=/etc/vsftpd/chroot_list
#如果chroot_list_enable=YES那么就可以设定这个项目了!他里面可以规定那一个实体用户会被限制在自己的家目录内而无法离开! (chroot)一行一个帐号即可! 

userlist_enable=YES
#是否借助vsftpd的抵挡机制来处理某些不受欢迎的帐号,与底下的设定有关; 

userlist_deny=YES
#当userlist_enable=YES时才会生效的设定,若此设定值为YES时,则当使用者帐号被列入到某个档案时,在该档案内的使用者将无法登入vsftpd伺服器!该档案档名与下列设定项目有关。
userlist_file=/etc/vsftpd/user_list
#若上面userlist_deny=YES时,则这个档案就有用处了!在这个档案内的帐号都无法使用vsftpd喔!
#
#
#
#Anonymous settings
#
anonymous_enable=YES
#设定为允许anonymous登入我们的vsftpd主机!预设是YES ,底下的所有相关设定都需要将这个设定为anonymous_enable=YES之后才会生效! 

anon_root=/var/ftp
anon_world_readable_only=YES
#仅允许anonymous具有下载可读档案的权限,预设是YES。 

anon_other_write_enable=YES
#是否允许anonymous具有写入的权限?预设是NO!如果要设定为YES,那么开放给anonymous写入的目录亦需要调整权限,让vsftpd的PID拥有者可以写入才行! 

anon_mkdir_write_enable=YES
#是否让anonymous具有建立目录的权限?预设值是NO!如果要设定为YES,那么anony_other_write_enable必须设定为YES ! 

#是否让anonymous具有上传资料的功能,预设是NO,如果要设定为YES ,则anon_other_write_enable=YES必须设定。 

deny_email_enable=YES
#将某些特殊的email address抵挡住,不让那些anonymous登入!如果以anonymous登入主机时,不是会要求输入密码吗?密码不是要您输入您的email address吗?如果你很讨厌某些email address ,就可以使用这个设定来将他取消登入的权限!需与下个设定项目配合: 

#banned_email_file=/etc/vsftpd/banned_emails
#如果deny_email_enable=YES时,可以利用这个设定项目来规定哪个email address不可登入我们的vsftpd喔!在上面设定的档案内,一行输入一个email address即可! 

no_anon_password=YES
#当设定为YES时,表示anonymous将会略过密码检验步骤,而直接进入vsftpd伺服器内喔!所以一般预设都是NO的! 

anon_max_rate=40000
#这个设定值后面接的数值单位为bytes/秒,限制anonymous的传输速度,如果是0则不限制(由最大频宽所限制),如果您想让anonymous仅有30 KB/s的速度,可以设定『anon_max_rate=30000』 

anon_umask=077
#限制anonymous的权限!如果是077则anonymous传送过来的档案权限会是-rw-------喔!
#
#
#
# About system settings
ascii_download_enable=YES
#如果设定为YES ,那么client就可以使用ASCII格式下载档案。 

ascii_upload_enable=YES
#与上一个设定类似的,只是这个设定针对上传而言!预设是NO 

one_process_model=NO
#这个设定项目比较危险一点~当设定为YES时,表示每个建立的连线都会拥有一支process在负责,可以增加vsftpd的效能。不过,除非您的系统比较安全,而且硬体配备比较高,否则容易耗尽系统资源喔!一般建议设定为NO的啦! 

tcp_wrappers=YES
#当然我们都习惯支援TCP Wrappers的啦!所以设定为YES吧! 

xferlog_enable=YES
#当设定为YES时,使用者上传与下载档案都会被纪录起来。记录的档案与下一个设定项目有关: 

xferlog_file=/var/log/vsftpd.log
#如果上一个xferlog_enable=YES的话,这里就可以设定了!这个是登录档的档名啦! 

xferlog_std_format=NO
#是否设定为wu ftp相同的登录档格式? !预设为NO ,因为登录档会比较容易读!不过,如果您有使用wu ftp登录档的分析软体,这里才需要设定为YES 

nopriv_user=nobody
#我们的vsftpd预设以nobody作为此一服务执行者的权限。因为nobody的权限相当的低,因此即使被入侵,入侵者仅能取得nobody的权限喔! 

pam_service_name=vsftpd
#这个是pam模组的名称,我们放置在/etc/pam.d/vsftpd即是这个咚咚!

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

(0)

相关推荐

  • 在CentOS上搭建LAMP+vsftpd环境的简单指南

    VPS 可以看成是一台只有你一个人使用的服务器(事实上它是一个虚拟机),你可以在上面安装任何软件,拥有最大的权限.正所谓权限越大,责任越大,你需要自行安装 Web 服务器,数据库,PHP,还有其它一些维护工作都要自行处理. 现在大多数 VPS 提供的操作系统都是 Linux,而且是没有图形界面的的,只提 SSH 命令行接口,所以需要会一些简单的 Linux 命令行.Linux 又有众多的发行版,最好的发行版可能是 Redhat,但它是商业软件,不能免费使用,不过好在它还有一个社区版本 CentO

  • Centos6.5全自动安装 vsftpd+dhcp+nfs+tftp

    步骤 1.mount /dev/sr0 /media/ 2.安装所需要的软件 安装并配置tftp服务 yum install tftp tftp-server vsftpd dhcp syslinux nfs-utils vim /etc/xinetd.d/tftp service tftp { disable = no socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd se

  • 面向初学者的vsftpd安装指南

    在最新的各大发行版中的安装盘中都有vsFTPd的软件包,您用相应发行版提供的软件包管理工具就能安装上:当然您可以到各大发行版的FTP镜像中找到vsftpd的软件包:当然也能用软件包的管理工具在线安装:vsftpd的软件包本来不大,花不了多长时间,两分钟就够了吧.因为本文是初学者教程,我严重推荐您用发行版提供的软件来安装,不推荐您自己来编译源码包的安装方式: 如果您用的是Fedora 或Redhat 系统,可以用下面的命令在线安装: [root@localhost ~]# yum install

  • 阿里云服务器CentOS 6.3下快速安装部署 LAMP 、vsftpd 环境的方法

    阿里云论坛上的资源很丰富,查了下安装LAMP环境,很多基础性的东西已经内置了,比如防火墙的配置和端口的开启,统统不需要再做操作,所以安装下来也很简单: 1.MySQL的安装 MySQL安装涉及到的软件包: mysql: MySQL客户端以及基础库文件. mysql-libs: MySQL客户端所必需的库文件. mysql-server: MySQL服务器端以及相关文件. 安装命令: yum intall mysql mysql-libs mysql-server 2.PHP的安装 预备工作: 同

  • Linux编译安装vsftpd服务器(本地用户验证方式)

    Linux vsftpd编译安装和配置允许本地用户登录FTP 1.下载vsftpd源码 wget https://security.appspot.com/downloads/vsftpd-2.3.4.tar.gz 2.编译vsftpd源码 64位的系统编译之前先要执行cp /lib64/libcap.so.1 /lib/libcap.so.1命令: 复制代码 代码如下: tar xzvf vsftpd-2.3.4.tar.gz cd vsftpd-2.3.4 make make install

  • VSFTPD配置(匿名——本地用户——虚拟用户)

    1,下载VSFTPD.TAR.GZ 程序下载地址:ftp://vsftpd.beasts.org/users/cevans/ 2,检查和建立相应账户和目录 1,nobody用户 [root@main vsftpd-2.1.0]# cat /etc/passwd |grep nobody nobody:x:99:99:Nobody:/:/sbin/nologin 如不存在请建立相关账户. 2,/usr/share/empty 目录, 如不存在请创建 3,如允许匿名访问,需创建Ftp用户,家目录为/

  • 建立基于虚拟用户的VSftpd服务

    上一篇文章给大家介绍了Linux中搭建FTP服务器的方法,说了vsftpd的基本配置,也就是匿名和本地,这回来说一下配置虚拟用户使用vsftpd,下面是具体步骤: 一.建立虚拟用户口令文件 可以使用vi命令创建一个用户口令文件,该文件是一个文本文件,其中奇数行为用户,偶数行为用户密码,文件名可以任意,如我建立一个名为login.txt的文件文件里的内容为: a abc123~ b abc123~ 其中a和b为用户,abc123~为用户的密码. 二.生成vsftpd口令认证文件 建立虚拟用户口令文

  • vsftpd的530 Login incorrect错误解决方法 vsftpd登录错误

    530 Login incorrect只有用匿名anonymous才可登录,其余所有用户都报530 Login incorrect错 复制代码 代码如下: local_enable=YESwrite_enable=YESpam_service_name=vsftpduserlist_enable=YES 加入粗体这句话就OK啦.现在原因还不知道. 其他的解决思路: 1.被动模式的问题 2.有时候可能是主目录的问题,比如你的FTP主目录是/data/www,但是用户vsftpd的在/etc/pas

  • vsFTPd 服务器初学者指南

    vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序,非常好用,我都用了好长时间,那下面我就给大家介绍下vsftpd的学习指南. 1.vsFTPd,目前常用FTP服务器套件; vsFTPd是一款在Linux发行版中最受推崇的FTP服务器程序;特点是小巧轻快,安全易用;能让其自身特点得发发挥和掌握,也然最主要的是会用; 目前在开源操作系统中常用的FTPD套件主要有ProFTPD.PureFTPd和wuftpd等;至于哪个FTP服务器套件更好,哪个是你最熟悉的,哪个就是最好的; 2.ft

  • Shell脚本搭建FTP服务器(vsftpd)

    各种知识点都写在注释里. 只需要 sudo $PATH/ftpsetup.sh即可,默认以test/test为用户名密码登录,登录后的根目录只读,子目录writable可写. Ubuntu 13和Linux Mint 15上测试ok. 复制代码 代码如下: #!/bin/bash # by liuhx 2013-Nov-04. # 设置ftp环境的脚本.ftp的根目录为只读,其下的writable目录为可写 # 可自定义以下四项 # ftp用户名 userName="test" # f

随机推荐