vsftp服务搭建

来源:互联网 发布:淘宝中奖名单 编辑:程序博客网 时间:2024/05/02 20:50

Linux下安装vsftpd(http://os.51cto.com/art/201008/222036.htm)


1.安装vsftpd及相关依赖包
#vsftpd安装程序
yum install vsftpd
#vsftpd虚拟登陆账户必要依赖包
yum install pam* db4*
安装完之后,vsftpd默认在/etc/vsftpd目录下 


2.建立用户列表
#vi /etc/vsftpd/login.txt 
qqtest  #用户名
qqtest  #密码


3.生成pam校验数据库文件(login.txt有修改后都要重新导出一份)
#db_load -T -t hash -f login.txt /etc/vsftpd/vsftpd_login.db


4.创建ftp用户配制文件目录
#mkdir /etc/vsftpd/user_conf


5.配置用户具体操作权限,文件和用户名同名
#vi /etc/vsftpd/user_conf/qqtest
local_root=/home/vsftpd/qqtest  #文件访问路径
write_enable=YES                #写权限
anon_mkdir_write_enable=YES     #新建目录权限
anon_upload_enable=YES          #上传权限
anon_other_write_enable=YES     #删除/重命名的权限


6.新建/etc/pam.d/vsftpd.v,配置vsftp认证方式
#vi /etc/pam.d/vsftpd.v
auth    required pam_userdb.so db=/etc/vsftpd/vsftpd_login 
account required pam_userdb.so db=/etc/vsftpd/vsftpd_login 


7.创建新用户(不允许登录,通过ftp可以连接)
#useradd -d /home/vsftpd -s /sbin/nologin vsftpd 


8.编辑文件 /etc/vsftpd/vsftpd.conf
chroot_local_user=YES                 #将所有用户锁定在主目录
guest_enable=YES                      #启用虚拟用户
guest_username=vsftpd                 #将虚拟用户映射为本地vsftpd用户,步骤7中创建
user_config_dir=/etc/vsftpd/user_conf #指定不同虚拟用户配置文件的存放路径 ,步骤4,5中创建
pam_service_name=/etc/pam.d/vsftpd.v  #指定PAM配置文件,步骤6中创建
vsftpd_log_file=/var/log/vsftpd.log   #配置文件操作日志路径


9.最后启动vsftpd
service vsftpd start        启动
service vsftpd stop         关闭
service vsftpd restart      重新启动
/etc/init.d/vsftpd restart  重新启动




10.连接ftp
浏览器访问 ftp://ip地址/
命令行访问 ftp ip地址 (退出使用 quit或bye)








如果文件上传下载有问题
1.rpm -q vsftpd   查看vsftp安装是否正确


2. 关于ftp用户连接时出现500 cannot change directory:报错
# getsebool -a | grep ftp (查看SELinux设置)
发现 ftpd_disable_trans –> off        或者     ftp_home_dir–>off
使用setsebool命令开启
# setsebool -P ftpd_disable_trans 1   或者    #setsebool -P ftp_home_dir 1
查看当前状态是否是on的状态
# getsebool -a|grep ftp
此时  ftpd_disable_trans –> on        或者     ftp_home_dir–>on
最后重启 service vsftpd restart


3.可登录,可下载,不可上传    报错  553 Could not create file.
setsebool -P allow_ftpd_full_access 1


4.查看黑名单
/etc/ftpusers文件中列出的用户是禁止使用FTP登录的,如果要使这些用户通过FTP登录,需要将其注销,即在用户名前面添加#。


5.可能是linux 防火墙的原因
停止防火墙:service iptables stop
开启防火墙:service iptables start


6.出错了,能登陆,但是下载不了文件。
看下服务器连接:
tcp        0      0 124.121.222.111:21           118.26.245.134:57903        ESTABLISHED 9624/vsftpd         
tcp        0      1 124.121.222.111:20           118.26.245.134:39180        SYN_SENT    9628/vsftpd         
被动模式下本机会开放一个随机端口,告诉服务器你过来连我39180端口传输数据吧,但是服务器的20端口是不在防火墙策略里的,所以是SYN_SENT 的状态。
解决办法:添加个端口20的允许策略:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT
service iptables restart
或者改为主动模式/etc/vsftpd/vsftpd.conf  
#主动式连接使用的数据通道
connect_from_port_20=YES


7.新加用户,在login.txt添加即可


0 0