CentOS7.3系统vsftpd服务简介及vsftpd的三种模式的搭建
FTP简介及快速构建VSFTP服务器
FTP是文件传输协议,正是由于这种协议使得主机间可以共享文件。 FTP 使用TCP生成一个虚拟连接用于控制信息,然后再生成一个单独的 TCP 连接用于数据传输。
vsftpd是一款在Linux发行版中最主流的FTP服务器程序;特点是小巧轻快,安全易用;能让其自身特点得发发挥和掌握。
目前在开源操作系统中常用的FTP服务器程序主要有vsftpd、ProFTPD、PureFTPd和wuftpd等,
Server-U ftp软件。
这么多FTP服务器程序,关键在于自己熟练哪一个就使用哪一个。今天我们来研究一下VSFTPD简单安装及使用。安装命令: yum install vsftpd* -y
Vsftpd的三种模式:
一:虚拟用户
二:基于系统用户访问
三:基于虚拟用户访问
——————————————————
一:虚拟用户访问
1、安装vsftpd服务
2、找到配置文件/etc/vsftpd/vsftpd.conf中anonymous改为yes即可启用匿名用户访问
③启动vsftpd服务,在我的电脑中访问ftp即可
我的电脑地址栏输入:ftp://192.168.99.110
出现这个即表示访问成功了
匿名用户一般不允许写入、修改权限,若需要修改配置文件打开选项即可
(生产环境中)匿名用户一般不建议开启,不安全
二、基于系统用户访问
1、需要修改配置文件把anonymous项改为NO同时把local_enable改为YES即可
2、在服务器端创建系统用户test01并为其设置密码,登录vsftpd是使用
3、重启服务——客户端验证访问ftp
出现登录界面——输入用户test01和密码即可
三、vsftpd基于虚拟用户访问登录验证(比较安全的一种方法但配置稍复杂一些)
1、先安装pam认证所需要的服务软件
安装完成后首先在vsftpd目录下创建一个用户表ftpuser.txt文件
(文件内容为第一行为用户名qq第二行为密码123 ...依次类推)
2、生成数据库文件.db,然后授权为700
3、在/etc.pam.d/下创建配置vsftpd的数据库pam认证文件vsftpd,加入以下内容(CentOS7.X版本)
若是6.X版本则加入以下内容,在配置文件vim /etc/pam.d/vsftpd 行首加入如下两行认证语句:(如果是32位,lib64需改成lib,如果RedHat,加入的语句不一样,需注意)
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login (6.x版本)
4、创建vsftpd映射本地用户:
所有的FTP虚拟用户需要使用一个系统用户,这个系统用户不需要密码,也不需要登录。主要用来做虚拟用户映射使用。
useradd -s /sbin/nologin ftpuser
5、在vsftpd.conf配置文件里添加以下参数:
保存重启,systemctl reload vsftpd 即可使用虚拟用户登录,这时候所有的虚拟用户共同使用/home/ftpuser目录上传下载,如果想使用自己独立的目录,可以在/etc/vsftpd/vsftpd_user_conf目录创建各自的配置文件,如给qq用户创建独立的配置文件
6、创建虚拟用户的配置目录
7、在配置目录里创建虚拟用户各自的配置文件
8、最后创建虚拟用户的家目录和所属权限
9、重启vsftpd服务—客户端登录验证
FTP主动模式:客户端从一个任意的非特权端口N(N>1024)连接到FTP服务器的port 21命令端口。然后客户端开始监听端口N+1,并发送FTP命令“port N+1”到FTP服务器。接着服务器会从它自己的数据端口(20)连接到客户端指定的数据端口(N+1)。
FTP被动模式:客户端从一个任意的非特权端口N(N>1024)连接到FTP服务器的port 21命令端口。然后客户端开始监听端口N+1,同时客户端提交 PASV命令。服务器会开启一个任意的非特权端口(P >1024),并发送PORT P命令给客户端。然后客户端发起从本地端口N+1到服务器的端口P的连接用来传送数据。