本文主要讲解centos6.9版本的ftp的安装与配置!
# 使用yum安装
yum -y install vsftpd
如上图,Complete表示安装完成!
#配置ftp用户
这里我们需要配置一个帐号为ftpuser的用户用于客户端登录ftp
1.创建用户:
mkdir -p /var/www/ftp (手动创建一个ftp文件目录,可以是任意位置)
useradd -d /var/www/ftp -s /sbin/nologin -M ftpuser
2.设置用户到文件夹
chown -R ftpuser /var/www/ftp
3.设置文件夹权限
chmod -R 777 /var/www/ftp
4.修改帐号密码
passwd ftpuser
# ftp文件配置
安装完成后,在/etc/vsftpd会有几个对应的文件:
其中:
1.ftpusers:为用户黑名单文件,它不受任何其他配置文件的影响!凡是在此文件中的用户,不可登录!
2.user_list:它也是用户名单配置文件,但是它受vsftpd.conf中的配置影响,可以有效,也可以无效,可以是白名单,也可以是黑名单。
具体设置如下:
1).当且仅当userlist_enable=YES时:userlist_deny项的配置才有效,user_list文件才会被使用,userlist_deny如果没有,需要手动添加,默认值为YES;当其为NO时,无论userlist_deny项为何值都是无效的,本地全体用户(除去ftpusers中的用户)都可以登入FTP
2).当userlist_enable=YES时,userlist_deny=YES时:user_list是一个黑名单,即:所有出现在名单中的用户都会被拒绝登入;
3).当userlist_enable=YES时,userlist_deny=NO时:user_list是一个白名单,即:只有出现在名单中的用户才会被准许登入(user_list之外的用户都被拒绝登入);
3.vsftpd.conf:为配置文件,当前讲解只需修改如下信息:
禁止匿名用户anonymous登录:anonymous_enable=NO
将用户限制在自己的目录下:chroot_local_user=YES
禁止用户向上级文件夹进行翻阅:chroot_list_enable=NO
禁止用户文件权限:userlist_enable=NO(如需要白名单,设置userlist_enable=YES, userlist_deny=NO,并在user_list文件中添 加ftpuser用户即可)。
# ftp服务的相关启动操作
1、启动ftp服务 service vsftpd start
2、停止ftp服务 service vsftpd stop
3、重启ftp服务 service vsftpd restart
4、查看ftp服务状态 service vsftpd status
5、设置开机启动 chkconfig vsftpd on
# ftp的连接模式问题
ftp模式分为主动模式(active mode)和被动模式(passive mode),ftp是tcp连接,所以要进行三次握手。
主动FTP对FTP服务器的管理有利,但对客户端的管理不利。因为FTP服务器企图与客户端的高位随机端口建立连接,而这个端口很有可能被客户端的防火墙 阻塞掉。
被动FTP对FTP客户端的管理有利,但对服务器端的管理不利。因为客户端要与服务器端建立两个连接,其中一个连到一个高位随机端口,而这个端口 很有可能被服务器端的防火墙阻塞掉。
在此本文只讲解采取被动模式连接的方式:
pasv_enable=YES
pasv_min_port=3000
pasv_max_port=4000
pasv_enable=YES 被动模式设置
pasv_max_port,pasv_min_port 这两个参数可以设置被动模式下服务端使用的端口范围。
2.开放ftp相关端口:
首先需开发ftp的默认端口21和对应的日志端口20,在/etc/sysconfig/iptables文件中增加一下2行:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
再有因上面我们开通的是被动模式,且被动模式服务端口使用的端口范围是3000-4000,所以还需要开通3000-4000的端口,在/etc/sysconfig/iptables文件中增加一下1行:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3000:4000 -j ACCEPT
# ftp的http连接
设置端口号为9090,配置nginx如下:
server {
listen 9090;
server_name 127.0.0.1;
location / {
root /var/www/ftp;
autoindex on;
}
}
访问地址:http://127.0.0.1:9090,即可访问到ftp根目录。
nginx简单安装与配置请看:https://blog.csdn.net/zhaohe0617/article/details/104418224。