FTP服务搭建

本文详细介绍了在Linux环境下如何配置VSFTPD服务,包括匿名用户、虚拟用户和系统用户的配置步骤,以及如何进行客户端验证。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

准备工作

基础环境

  • Linux服务器:IP为:192.168.234.11
  • Linux客户端:IP为:192.168.234.22
  • Windows客户端:IP为:192.168.234.1

服务器端准备

  • 关闭防火墙
[root@wyz-11 ~]# systemctl stop firewalld
[root@wyz-11 ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@wyz-11 ~]# setenforce 0
  • 修改selinux的状态为disabled
[root@wyz-11 ~]# vim /etc/selinux/config
SELINUX=disabled

Linux客户端准备

  • 安装lftp
[root@wyz-22 ~]# yum install -y lftp

Windows客户端准备

  • 下载安装FileZilla软件
http://8dx.pc6.com/xjq6/FileZilla_v3.41.0.zip
	//FileZilla下载链接

1.安装vsftpd

[root@wyz-11 ~]# yum install -y vsftpd

2.配置匿名用户ftp

服务端

  • 匿名用户ftp模式无需修改配置文件,在服务器上安装vsftpd完成后启动服务即可
//启动服务
[root@wyz-11 ~]# systemctl start vsftpd

//在共享目录中创建文件以便验证
[root@wyz-11 ~]# cd /var/ftp/pub/
[root@wyz-11 pub]# touch 123
[root@wyz-11 ~]# echo 'Hello FTP'>123
[root@wyz-11 ~]# cat 123 
Hello FTP
[root@wyz-11 ~]# 

客户端验证

  • Linux客户端

[root@wyz-22 ~]# lftp 192.168.234.11
lftp 192.168.234.11:~> ls
drwxr-xr-x    2 0        0              17 Apr 17 06:32 pub
lftp 192.168.234.11:~> ls /pub/ 
-rw-r--r--    1 0        0              10 Apr 17 07:05 123
lftp 192.168.234.11:/> cat /pub/123 
Hello FTP
10 bytes transferred
lftp 192.168.234.11:/> 
lftp 192.168.234.11:/> mkdir ftp
mkdir: Access failed: 550 Permission denied. (ftp)
lftp 192.168.234.11:/> 
lftp 192.168.234.11:~> get /pub/123 -o /root/
10 bytes transferred
lftp 192.168.234.11:/> exit
[root@wyz-22 ~]# ll /root/123
-rw-r--r--. 1 root root 10 417 15:05 /root/123
[root@wyz-22 ~]# cat /root/123
Hello FTP
[root@wyz-22 ~]# 
  • Windows客户端验证
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

3.配置虚拟用户ftp

服务端

  • 安装依赖程序:
[root@wyz-11 ~]# yum install -y wget
[root@wyz-11 ~]# cd /etc/yum.repos.d/
[root@wyz-11 yum.repos.d]# wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
--2019-04-17 03:22:32--  http://mirrors.163.com/.help/CentOS7-Base-163.repo
Resolving mirrors.163.com (mirrors.163.com)... 59.111.0.251
Connecting to mirrors.163.com (mirrors.163.com)|59.111.0.251|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1572 (1.5K) [application/octet-stream]
Saving to: ‘CentOS7-Base-163.repo’

100%[===================================================>] 1,572       --.-K/s   in 0s      

2019-04-17 03:22:37 (344 MB/s) - ‘CentOS7-Base-163.repo’ saved [1572/1572]

[root@wyz-11 yum.repos.d]# sed -i 's/\$releasever/7/g' /etc/yum.repos.d/CentOS7-Base-163.repo
[root@wyz-11 yum.repos.d]# sed -i 's/^enabled=.*/enabled=1/g' /etc/yum.repos.d/CentOS7-Base-163.repo
[root@wyz-11 yum.repos.d]# yum install -y epel-release
  • 创建文本格式的用户名、密码列表,例如若要添加两个用户wyz、adm,密码分别为123、456
[root@wyz-11 ~]# echo 'wyz'>> /etc/vsftpd/vu.list
[root@wyz-11 ~]# echo '123'>> /etc/vsftpd/vu.list
[root@wyz-11 ~]# echo 'admin'>> /etc/vsftpd/vu.list
[root@wyz-11 ~]# echo '456'>> /etc/vsftpd/vu.list
[root@wyz-11 ~]# cat /etc/vsftpd/vu.list
wyz
123
admin
456
 	//这里的用户名和密码是一一对应的,前面输的是帐号,后面跟的是密码(如账号为wyz,密码为123)
  • //安装db4工具
[root@wyz-11 ~]# yum install -y db4*
  • //将刚创建的文本格式用户名、密码文件使用db4工具转换成数据库文件
[root@wyz-11 ~]# db_load -T -t hash -f /etc/vsftpd/vu.list /etc/vsftpd/vu.db
//上面的-T表示转换,-t表示加密方式使用hash算法加密

[root@wyz-11 ~]# chmod 600 /etc/vsftpd/vu.*
[root@wyz-11 ~]# ll /etc/vsftpd/vu.*
-rw-------. 1 root root 12288 Apr 17 03:36 /etc/vsftpd/vu.db
-rw-------. 1 root root    16 Apr 17 03:30 /etc/vsftpd/vu.list
[root@wyz-11 ~]# 
//为提高虚拟用户帐号文件的安全性,应将文件权限设置为600,以避免数据外泄
  • 添加虚拟用户的映射帐号、创建ftp根目录。例如要将使用的ftp根目录设置为/var/ftproot,映射帐号的名称为vftp,可以执行以下操作
[root@wyz-11 ~]# useradd -d /var/ftproot -s /sbin/nologin vftp
[root@wyz-11 ~]# chmod 755 /var/ftproot/
[root@wyz-11 ~]# ll -d /var/ftproot/
drwxr-xr-x. 2 vftp vftp 62 Apr 17 03:46 /var/ftproot/
[root@wyz-11 ~]# 
  • 为虚拟用户建立PAM认证
[root@wyz-11 ~]# cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak	//修改配置文件前都需要备份
[root@wyz-11 ~]# vim /etc/pam.d/vsftpd		//删除原来的所有内容,添加一下内容(复制进去的内容开头都有#,记得删掉最后两行开头的#)
#%PAM-1.0
auth required pam_userdb.so db=/etc/vsftpd/vu
account required pam_userdb.so db=/etc/vsftpd/vu
  • 修改vsftpd配置文件,添加虚拟用户支持
[root@wyz-11 ~]# vim /etc/vsftpd/vsftpd.conf
guest_enable=YES
guest_username=vftp 	//在主配置文件夹最后添加这两行参数
  • 为不同的虚拟用户建立独立的配置文件
[root@wyz-11 ~]# vim /etc/vsftpd/vsftpd.conf 
user_config_dir=/etc/vsftpd/vusers_dir
allow_writeable_chroot=YES		//在主配置文件夹最后添加这两行参数
  • 有了上述配置后,就可以在/etc/vsftpd/vusers_dir目录中为每个虚拟用户分别建立配置文件了。
    • 例如,若要使用虚拟用户wyz能够上传文件、创建目录,而adm只有默认的下载权限
    • 可以执行以下操作
[root@wyz-11 ~]# mkdir /etc/vsftpd/vusers_dir
[root@wyz-11 ~]# cd /etc/vsftpd/vusers_dir

[root@wyz-11 vusers_dir]# vim wyz //设置wyz用户可上传文件、创建目录
anon_upload_enable=YES
anon_mkdir_write_enable=YES		

[root@wyz-11 vusers_dir]# touch /etc/vsftpd/vusers_dir/admin   //设置adm用户只有默认的下载权限,只需要创建一个名为adm的空文件即可
  • 注意:虚拟用户是通过匿名访问的,所以必须开启匿名访问功能!!!

  • 重启服务

[root@wyz-11 ~]# systemctl restart vsftpd

//在共享目录中创建文件以便验证
[root@wyz-11 ~]# cd /var/ftproot/
[root@wyz-11 ftproot]# touch 123
[root@wyz-11 ftproot]# echo 'HELLO FTP'> 123
[root@wyz-11 ftproot]# cat 123 
HELLO FTP

客户端验证

  • Linux客户端
	//以wyz用户登录
[root@wyz-22 ~]# lftp -u wyz,123 192.168.234.11
lftp wyz@192.168.234.11:~> 
ftp://wyz:123@192.168.234.11
lftp wyz@192.168.234.11:~> ls
-rw-r--r--    1 0        0              10 Apr 17 08:35 123
lftp wyz@192.168.234.11:/> 
lftp wyz@192.168.234.11:/> mkdir www
mkdir 成功, 建立 `www'
lftp wyz@192.168.234.11:/> ls
-rw-r--r--    1 0        0              10 Apr 17 08:35 123
drwx------    2 1000     1000            6 Apr 17 08:37 www
lftp wyz@192.168.234.11:/> 
lftp wyz@192.168.234.11:/> get 123 -o /
10 bytes transferred
lftp wyz@192.168.234.11:/> exit
[root@wyz-22 ~]# ls /
123  boot  etc   lib    media  opt   root  sbin  sys  usr
bin  dev   home  lib64  mnt    proc  run   srv   tmp  var
[root@wyz-22 ~]# cat /123 
HELLO FTP
[root@wyz-22 ~]# 
 
	//以admin用户登录
[root@wyz-22 ~]# lftp -u admin,456 192.168.234.11
lftp admin@192.168.234.11:~> pwd
ftp://admin:456@192.168.234.11
[root@wyz-22 ~]# lftp -u admin,456 192.168.234.11
lftp admin@192.168.234.11:~> ls
-rw-r--r--    1 0        0              10 Apr 17 08:35 123
drwx------    2 1000     1000            6 Apr 17 08:43 test
drwx------    2 1000     1000            6 Apr 17 08:37 www
-rw-------    1 1000     1000            0 Apr 17 08:43 wyz
lftp admin@192.168.234.11:/> mkdir qwe
mkdir: Access failed: 550 Permission denied. (qwe)
lftp admin@192.168.234.11:/> get 123 -o /root
10 bytes transferred
lftp admin@192.168.234.11:/> exit
[root@wyz-22 ~]# ls 
123  anaconda-ks.cfg  initial-setup-ks.cfg  wyz
[root@wyz-22 ~]# cat 123
HELLO FTP
[root@wyz-22 ~]# 
  • Windows客户端验证
    • wyz用户验证
      在这里插入图片描述
      在这里插入图片描述在这里插入图片描述在这里插入图片描述

    • admin用户验证
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述

4.配置系统用户ftp

环境为刚刚安装的vsftpd。所有的配置都为默认(如果在此之前做过虚拟用户FTP可以卸载服务重装即可)

服务端

  • 修改配置文件为不允许匿名用户登录
[root@wyz-11 ~]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO	//将此行注释掉或将YES改为NO即可

//重启服务
[root@wyz-11 ~]# systemctl restart vsftpd

//创建用户以便验证(必须设置密码)
[root@wyz-11 ~]# useradd wang
[root@wyz-11 ~]# passwd wang
Changing password for user wang.
New password: 
BAD PASSWORD: The password is shorter than 8 characters
Retype new password: 
passwd: all authentication tokens updated successfully.

//在共享目录中创建文件以便验证
[root@wyz-11 ~]# cd /home/wang/
[root@wyz-11 wang]# touch wang
[root@wyz-11 wang]# echo 'hello wangyizhen'> wang 
[root@wyz-11 wang]# cat wang 
hello wangyizhen
[root@wyz-11 wang]# 

客户端验证

  • Linux客户端
[root@wyz-22 ~]# lftp -u wang,123 192.168.234.11
lftp wang@192.168.234.11:~> ls
-rw-r--r--    1 0        0              17 Apr 17 10:25 wang
lftp wang@192.168.234.11:~> exit
[root@wyz-22 ~]# lftp -u wang,123 192.168.234.11
lftp wang@192.168.234.11:~> ls
-rw-r--r--    1 0        0              17 Apr 17 10:25 wang
lftp wang@192.168.234.11:~> mkdir qwe
mkdir 成功, 建立 `qwe'
lftp wang@192.168.234.11:~> ls
drwxr-xr-x    2 1001     1001            6 Apr 17 10:33 qwe
-rw-r--r--    1 0        0              17 Apr 17 10:25 wang
lftp wang@192.168.234.11:~> rm -rf qwe
rm 成功, 删除 `qwe'
lftp wang@192.168.234.11:~> ls
-rw-r--r--    1 0        0              17 Apr 17 10:25 wang
lftp wang@192.168.234.11:~> get wang -o /root/
17 bytes transferred
lftp wang@192.168.234.11:~> exit
[root@wyz-22 ~]# ls
123  anaconda-ks.cfg  initial-setup-ks.cfg  wang  wyz
[root@wyz-22 ~]# cat wang 
hello wangyizhen
[root@wyz-22 ~]# 

  • Windows客户端验证
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值