一.准备工作。
为了调试顺利,关闭selinux,firewall和iptables。
根据个人需求,安装自己需要的程序。
#yum install gcc lrzsz vim wget
环境介绍:
centos7.4
ip:192.168.1.238
client:Win10
二.vsftp科普。
Port模式(主动模式):
当客户端C向服务端S连接后,使用的是Port模式,那么客户端C会发送一条命令告诉服务端S(客户端C在本地打开了一个端口N在等着你进行数据连接),当服务端S收到这个Port命令后 就会向客户端打开的那个端口N进行连接,这种数据连接就生成了。
Pasv模式(被动模式):
当客户端C向服务端S连接后,服务端S会发信息给客户端C,这个信息是(服务端S在本地打开了一个端口M,你现在去连接我吧),当客户端C收到这个信息后,就可以向服务端S的M端口进行连接,连接成功后,数据连接也建立了。
三.开始安装。
1.yum安装vsftp
yum -y install vsftpd
2.启动服务
systemctl start vsftpd.service
3.配置文件路径
/etc/vsftpd
四.虚拟用户功能
1.首先修改配置文件。
#cp vsftpd.conf vsftpd.conf.bak #备份配置文件。
#echo ‘’ > vsftpd.conf #清空配置文件。
#vim /etc/vsftpd/vsftpd.conf #编辑配置文件。
2。配置文件内容。(虚拟用户需要anonymous_enable=NO)
################################
anonymous_enable=NO
write_enable=YES
chroot_local_user=YES
chroot_list_enable=YES
use_localtime=YES
local_enable=YES
allow_writeable_chroot=YES
xferlog_enable=YES
local_umask=022
pam_service_name=vsftpd
use_localtime=YES
listen_port=21
chroot_local_user=YES
idle_session_timeout=120
data_connection_timeout=120
guest_enable=YES
guest_username=ftpuser
user_config_dir=/etc/vsftpd/vuser_conf
virtual_use_local_privs=YES
pasv_min_port=10060
pasv_max_port=10090
accept_timeout=5
connect_timeout=1
################################
:wq #退出并保存
3.创建vsftp的宿主用户
#useradd -g root -m -d /home/vsftpd -s /sbin/nologin ftpuser
#创建用户 ftpuser 指定 /home/vsftpd
目录
#passwd ftpuser #设置用户 ftpuser 的密码
#chown -R ftpuser.root /home/vsftpd #把 /home/vsftpd 的所有权给ftpuser.root
4.建立虚拟用户文件
#touch /etc/vsftpd/vuser_passwd
(虚拟用户名单,第一行为用户名,第二行为密码,不可用root为用户名)(如下图)
#vim /etc/vsftpd/vuser_passwd
:wq #退出并保存
5.生成虚拟用户数据文件
#db_load -T -t hash -f /etc/vsftpd/vuser_passwd /etc/vsftpd/vuser_passwd.db
#chmod 600 /etc/vsftpd/vuser_passwd.db
6.创建用户配置
#mkdir /etc/vsftpd/vuser_conf # 建立虚拟用户个人vsftp的配置文件
#cd /etc/vsftpd/vuser_conf # 进入目录
#创建两个用户的文件touch ftp4 ftp5
每个文件(ftp4,ftp5)都写入如下内容
#local_root=/home/vsftpd/ftp4填写用户的真实路径
7.创建用户目录。
#mkdir -p /home/vsftpd/ftp4
#mkdir -p /home/vsftpd/ftp5
8.然后就可以启动服务了。
#systemctl start vsftpd #开启服务
#systemctl restart vsftpd #重启服务
#systemctl stop vsftpd #关闭服务
#systemctl status vsftpd #查看服务状态
9.生成虚拟用户的PAM文件。
#cd /etc/pam.d #先进入存放PAM文件的目录。
#cp vsftpd vsftpd.bak #先备份vsftpd这个文件。
修改vsftpd文件内容(加入第二和第三行,下面的都全部注释,注意下面是64位操作系统,如果是32位的话lib64需要改成lib)
10.需要给虚拟用户加上权限。
#chmod -R 777 /home/vsftpd #递归给没个虚拟用户权限。
11.更改完配置,需要重启vsftpd服务。
#systemctl restart vsftpd
#systemctl stop firewalld #关闭防火墙
#setenforce 0 #关闭selinux
12.然后进入Windows下的cmd试着连接一下。
显示远程主机关闭连接。
13.接下来让我们改一下配置文件就OK了,如下图:
把这三行信息注释掉,然后我们重启服务。
再次cmd进行连接。
连接成功!
14.有需要的小伙伴可以把端口改一下。
在/etc/vsftpd/vsftpd.conf文件中添加如下内容。
端口修改为2121
在/etc/services文件中修改如下内容。
15.然后重启一下服务就可以啦!
16.让我们用ftp工具试验一下。
17.大功告成!
原文地址:https://blog.51cto.com/14259192/2394659