CentOS 7 安装vsftpd 服务器
目的:在CentOS7上安装ftp服务器用于保存服务端上传的图片。
安装前准备:在虚拟机安装好linux,linux客户端SecureCRT 7.2安装好,方便操作。我安装的是CentOS 7版本,这版本安装ftp服务器跟以前版本有点不一样,网上找了很多都是有问题的,花费了我好几天终于搞定了。所以做做笔记还是有必要。好了,进入正题。
一、CentOS卸载vsftpd的方法
如果服务器上已经安装了vsftpd服务,配置出错需要卸载vsftpd服务,当然如果在虚拟机上安装最好先拍个快照,有什么问题可以一键还原。
1、首先查看是否安装了vsftpd
[root@localhost vsftpd]# rpm -aq vsftpd vsftpd-3.0.2-22.el7.x86_64
说明已经安装过vsftpd服务。
2、卸载vsftpd
[root@localhost vsftpd]# /sbin/service vsftpd stop 注:在卸载vsftpd之前,先停止vsftpd [root@localhost vsftpd]# rpm -e vsftpd-3.0.2-22.el7.x86_64
卸载完用rpm -aq vsftpd 命令查看没提示证明已经卸载了。
二、安装vsftpd组件
[root@localhost ~]# yum install vsftpd -y
1、启动ftp
[root@localhost ~]# systemctl start vsftpd.service
如果想开机启动ftp还要运行以下指令:
[root@localhost ~]# systemctl enable vsftpd.service
2、防火墙开放相关的端口,并重启防火墙,输入以下指令,一行一行运行
firewall-cmd --permanent --zone=public --add-port=20/tcp firewall-cmd --permanent --zone=public --add-port=21/tcp firewall-cmd --permanent --zone=public --add-port=30000-30999/tcp firewall-cmd --permanent --zone=trusted --add-port=20/tcp firewall-cmd --permanent --zone=trusted --add-port=21/tcp firewall-cmd --permanent --zone=trusted --add-port=30000-30999/tcp systemctl restart firewalld.service #重启
3、可以通过以下指令查看端口是否已添加进去
firewall-cmd --zone=public --list-ports firewall-cmd --zone=trusted --list-ports
三、vsftpd服务的详细配置
1、关闭匿名用户
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
修改以下三项:
anonymous_enable=NO #anon_upload_enable=YES #anon_mkdir_write_enable=YES
然后重启ftp服务
[root@localhost ~]# systemctl restart vsftpd.service
通过配置重启之后,匿名用户不可以登录了。
2、建立ftp虚拟宿主账户
新建一个不能登录系统用户. 只用来登录ftp服务 ,这里如果没设置用户目录。默认是在home下:
[root@localhost ~]# useradd ftpuser -s /sbin/nologin
[root@localhost ~]# passwd ftpuser
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 ~]# setsebool -P allow_ftpd_full_access on
[root@localhost ~]# setsebool -P tftp_home_dir on
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 ~]# vim /etc/vsftpd/vsftpd.conf
修改如下:
chroot_local_user=NO chroot_list_enable=YES #(这行必须要有, 否则文件vsftpd.chroot_list不会起作用) chroot_list_file=/etc/vsftpd/chroot_list
检查下/etc/vsftpd/目录里是否有以下3个文件,默认chroot_list是不存在的,创建并编辑:
[root@localhost ~]# vim /etc/vsftpd/chroot_list
然后加入 ftpuser ,表示只有ftpuser不能访问上级目录。
[root@localhost taotao]# cd /etc/vsftpd/ [root@localhost vsftpd]# ll 总用量 24 -rw-r--r--. 1 root root 8 11月 5 15:09 chroot_list -rw-------. 1 root root 125 8月 3 2017 ftpusers -rw-------. 1 root root 361 8月 3 2017 user_list -rw-------. 1 root root 5135 11月 5 15:20 vsftpd.conf -rwxr--r--. 1 root root 338 8月 3 2017 vsftpd_conf_migrate.sh
user_list 这个一般默认就存在,里面存放允许登陆的账号,一行一个账号名,如果不想让某个账号登陆ftp,那么这里就别填那个账号进来。
把ftpuser用户添加到/etc/vsftpd/user_list
[root@localhost vsftpd]# vim /etc/vsftpd/user_list # vsftpd userlist # If userlist_deny=NO, only allow users in this file If userlist_deny=YES (default), never allow users in this file, and ▽ do not even prompt for a password. # Note that the default vsftpd pam config also checks /etc/vsftpd/ftpusers # for users that are denied. root bin daemon adm lp sync shutdown halt mail news uucp operator games nobody ftpuser #添加ftpuser用户
ftpusers 这个一般默认就存在,里面存放禁止登陆的账号,一行一个账号名。查验一下/etc/vsftpd/ftpusers是否有myftp,如果有,就要删掉,不然就被禁止登陆了。
PS:user_list和ftpusers功能差不多的,可以只用user_list 这个来管理,把 ftpusers 里面内容都删掉。
5、修改权限
先创建上传图片的文件夹
[root@localhost ftpuser]# mkdir -p /home/ftpuser/taotao
[root@localhost ~]# chmod a-w /home/ftpuser/taotao
注:我们在上面将/home/ftpuser/taotao文件的权限改为不可写了,那么我们在这个目录下创建一个images文件夹,用来上传文件。并将权限赋值给 ftpuser 用户
[root@localhost ftpuser]# cd /home/ftpuser/taotao [root@localhost taotao]# mkdir images
[root@localhost taotao]# chown ftpuser images
四、开启PASV(被动模式)
[root@localhost taotao]# vim /etc/vsftpd/vsftpd.conf
在 /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
至此,ftp安装到此结束。

浙公网安备 33010602011771号