linux centos 配置vsftp

PS: 为了减少重复劳动,已经把以下操作制作成了一键部署脚本,移步 https://www.isres.com/shell/312.html 查看!

以下是原来文章

第一步

yum -y install vsftpd

配置

vim /etc/vsftpd/vsftpd.conf

anonymous_enable=NO 设定不允许匿名访问

去掉chroot_list_enable=YES的注释,并修改为No使用户不能离开主目录

xferlog_file=/var/log/vsftpd.log 设定vsftpd的服务日志保存路径。注意,该文件默认不存在。必须要手动touch出来

去掉

ascii_upload_enable=YES
ascii_download_enable=YES

的注释

添加

guest_enable=YES 设定启用虚拟用户功能。
guest_username=ftp 指定虚拟用户的宿主用户。-CentOS中已经有内置的ftp用户了
user_config_dir=/etc/vsftpd/vuser_conf 设定虚拟用户个人vsftp的CentOS FTP服务文件存放路径。存放虚拟用户个性的CentOS FTP服务文件(配置文件名=虚拟用户名)

//最近升级了安全设置,删除一些内置系统匿名用户,导致连接ftp出现 vsftpd: cannot locate user specified in 'guest_username':ftp
修改设置如下
guest_username=ftp 修改为 nobody

保存配置文件

touch /var/log/vsftpd.log

touch /etc/vsftpd/chroot_list

将用户ftp加入其中:

echo ftp >> /etc/vsftpd/chroot_list

yum install db4 db4-utils

centos 7 的时候,这里yum会失败,提示没有包 处理如下
---------------------------------------------------
wget http://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpm
rpm -Uvh epel-release-7-11.noarch.rpm
#如果没有,请在这里找最新版url http://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/
---------------------------------------------------

vim /etc/vsftpd/vuser_passwd.txt 奇行是用户名,偶行是密码

test
123456

保存

生成虚拟用户认证的db文件

db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db

vim /etc/pam.d/vsftpd

全部注释掉原来语句,再增加以下两句:

auth required pam_userdb.so db=/etc/vsftpd/vuser_passwd
account required pam_userdb.so db=/etc/vsftpd/vuser_passwd

创建虚拟用户个性CentOS FTP服务文件

mkdir /etc/vsftpd/vuser_conf/
vi /etc/vsftpd/vuser_conf/test(注:文件名等于vuser_passwd.txt里面的账户名,否则下面设置无效,test为之前的帐户名)

local_root=/var/www/html

write_enable=YES

anon_umask=022

anon_world_readable_only=NO

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

以上一行一行复制和手工打入,全部复制会多出空格导致出错.

保存,设置文件夹权限

mkdir /var/www/html/ftp
chmod -R 755 /var/www/html
chmod -R 777 /var/www/html/test
启动vsftp服务器

service vsftpd start 开启命令
service vsftpd restart 重启
service vsftpd stop 停止

由于在一些主动模式下,ftp可能无法正常连接,无法列出目录,务必还要进行被动模式的设置

设置被动模式,

一为设置vsftp的被动模式端口范围 二为 开启相应防火墙端口

vim /etc/vsftpd/vsftpd.conf

在文件末端添加:
pasv_max_port=6666
pasv_min_port=5555
/etc/init.d/vsftpd restart

添加一条防火墙规则
/etc/init.d/iptables stop
iptables -I INPUT -p tcp --dport 5555:6666 -j ACCEPT
/etc/init.d/iptables save
/etc/init.d/iptables start


/////////////////////////////////////////////////////////
常见问题
#selinux会引起如下情况

#425 Security: Bad IP connecting
vim /etc/vsftpd/vsftpd.conf #文件中添加如下一行
pasv_promiscuous=YES
service vsftpd restart


#500 OOPS:cannot change directory

setsebool -P  ftp_home_dir  on
service vsftpd restart
#553 Could not create file

setsebool allow_ftpd_full_access on
service vsftpd restart

sestatus -b| grep ftp

allow_ftpd_anon_write                       off
allow_ftpd_full_access                      on
allow_ftpd_use_cifs                         off
allow_ftpd_use_nfs                          off
ftp_home_dir                                on
ftpd_connect_db                             off
ftpd_use_passive_mode                       off
httpd_enable_ftp_server                     off
tftp_anon_write                             off

#要ftp_home_dir 和 allow_ftpd_full_access 为on

标签: vsftp

非特殊说明,本博所有文章均为博主原创。

最新文章

发表评论