CentOS 7 安装vsftpd 服务器

在CentOS7上安装ftp服务器用于保存服务端上传的图片。vim

一、CentOS卸载vsftpd的方法

若是服务器上已经安装了vsftpd服务,配置出错须要卸载vsftpd服务。服务器

1.1 查找vsftpd服务

[root@localhost /]# rpm -aq vsftpd

返回结果显示:tcp

vsftpd-3.0.2-21.el7.x86_64 #此处是查找vsftpd的返回结果

表示此服务期以前已经安装过vsftpd服务。spa

1.2 删除查找到的vsftpd服务

注:在卸载vsftpd以前,先中止vsftpd.net

[root@localhost /]# /sbin/service vsftpd stop

卸载vsftpd:rest

[root@localhost /]# rpm -e vsftpd-3.0.2-21.el7.x86_64

返回结果显示:code

warning: /etc/vsftpd/vsftpd.conf saved as /etc/vsftpd/vsftpd.conf.rpmsave #删除时将备份vsftp的用户列表文件

1.3 输入验证命令,验证vsftpd服务是否已经删除

[root@localhost /]# /sbin/service vsftpd stop
Redirecting to /bin/systemctl stop  vsftpd.service
Failed to stop vsftpd.service: Unit vsftpd.service not loaded. #找不到vsftpd
[root@localhost /]# /sbin/service vsftpd start
Redirecting to /bin/systemctl start  vsftpd.service
Failed to start vsftpd.service: Unit not found. #找不到vsftpd

若是输入以上两个命令都显示找不到vsftpd服务的话,那就证实已经卸载成功。server

二、安装vsftpd组件

[root@localhost /]# yum -y install vsftpd

2.1 启动ftp

[root@localhost home]# systemctl start vsftpd.service

2.2 放开21端口

[root@localhost /]# firewall-cmd --zone=public --add-port=21/tcp --permanent
[root@localhost /]# firewall-cmd --reload

三、vsftpd服务的详细配置

3.1 关闭匿名用户

[root@localhost vsftpd]# vim /etc/vsftpd/vsftpd.conf

在vsftpd.conf配置文件中修改如下三项:htm

anonymous_enable=NO
#anon_upload_enable=YES
#anon_mkdir_write_enable=YES

而后重启ftp服务:blog

[root@localhost vsftpd]# systemctl restart  vsftpd.service

经过配置重启以后,匿名用户不能够登陆了。

3.2 创建ftp虚拟宿主帐户

新建一个不能登陆系统用户. 只用来登陆ftp服务 ,这里若是没设置用户目录。默认是在home下:

[root@localhost vsftpd]# useradd ftpuser -s /sbin/nologin

为ftpuser用户设置密码:

[root@localhost /]# passwd ftpuser

3.3 查看ftp的状态

[root@localhost /]# getsebool -a|grep ftp

显示结果:

ftpd_anon_write --> off
ftpd_connect_all_unreserved --> off
ftpd_connect_db --> off
ftpd_full_access --> off
ftpd_use_cifs --> off
ftpd_use_fusefs --> off
ftpd_use_nfs --> off
ftpd_use_passive_mode --> off
httpd_can_connect_ftp --> off
httpd_enable_ftp_server --> off
tftp_anon_write --> off
tftp_home_dir --> off

将上面红色两项状态设置为on:

[root@localhost vsftpd]# setsebool -P allow_ftpd_full_access on
[root@localhost vsftpd]# setsebool -P tftp_home_dir on

3.4 配置vsftpd.conf

限制系统用户锁定在/home/ftpuser目录

若是设置为
chroot_local_user=YES
chroot_list_enable=YES(这行能够没有, 也能够有)
chroot_list_file=/etc/vsftpd.chroot_list
那么, 凡是加在文件vsftpd.chroot_list中的用户都是不受限止的用户
即, 能够浏览其主目录的上级目录.

因此, 若是不但愿某用户可以浏览其主目录上级目录中的内容,能够如上设置, 而后在
文件vsftpd.chroot_list中不添加该用户便可(此时, 在该文件中的用户都是能够浏览其主目录以外的目录的).
或者, 设置以下
chroot_local_user=NO
chroot_list_enable=YES(这行必需要有, 不然文件vsftpd.chroot_list不会起做用)
chroot_list_file=/etc/vsftpd.chroot_list
而后把全部不但愿有这种浏览其主目录之上的各目录权限的用户添加到文件vsftpd.chroot_list(此时, 在该文件中的用户都是不能够浏览其主目录以外的目录的)
中便可(一行一个用户名).
[root@localhost vsftpd]# vim /etc/vsftpd/vsftpd.conf

这里有两种方案,我采用第二种,配置以下:

chroot_local_user=NO
chroot_list_enable=YES #(这行必需要有, 不然文件vsftpd.chroot_list不会起做用)
chroot_list_file=/etc/vsftpd/chroot_list

默认chroot_list是不存在的

[root@localhost vsftpd]# vim /etc/vsftpd/chroot_list

而后加入 ftpuser ,表示只有ftpuser不能访问上级目录,重启vsftpd。

3.5 修改权限

修改/home/ftpuser 的权限为不可写

[root@localhost vsftpd]# chmod a-w /home/ftpuser/taotao

这是由于咱们在上面将/home/ftpuser/taotao文件的权限改成不可写了,那么咱们在这个目录下建立一个images文件夹,用来上传文件。并将权限赋值给 ftpuser 用户

[root@localhost taotao]# mkdir images
[root@localhost images]# chown ftpuser images

四、开启PASV(被动模式)

在 /etc/vsftpd/vsftpd.conf 的最下面加入

pasv_enable=YES
pasv_min_port=30000
pasv_max_port=30999

而且在userlist_enable=YES文件后面添加

userlist_deny=NO
userlist_file=/etc/vsftpd/user_list

开启防火墙:

[root@localhost taotao]# firewall-cmd --zone=public --add-port=30000-30999/tcp --permanent 
[root@localhost taotao]# firewall-cmd --reload

这样就可使用ftp服务器上传文件了。

 参考:http://blog.csdn.net/uq_jin/article/details/51684722

http://www.jb51.net/article/103904.htm

相关文章
相关标签/搜索