linux配置ftp服务器

一:配置FTP 服务器,允许匿名访问

1.1 FTP 服务

FTP 服务,用来传输文件的协议

FTP 服务器默认使用 TCP 协议的20,21 端口

20 端口用于建立数据连接,并传输文件数据
21 端口用于建立控制连接,并传输FTP 控制命令

FTP 数据连接分为2主动模式和被动模式

主动模式: 服务器主动发起数据连接

被动模式: 服务器被动等待数据链接 (本章实验使用被动模式)

1.2 配置FTP 服务器,允许匿名访问

[root@localhost ~]# yum -y install vsftpd                  #安装vsftpd 包
 
root@localhost ~]# cd /etc/vsftpd/ 
[root@localhost vsftpd]# ls
ftpusers  user_list  vsftpd.conf  vsftpd_conf_migrate.sh
[root@localhost vsftpd]# cp vsftpd.conf vsftpd.bak          #备份vsftp.conf 文件
 
[root@localhost vsftpd]# ls
ftpusers  user_list  vsftpd.bak  vsftpd.conf  vsftpd_conf_migrate.sh
 
[root@localhost vsftpd]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES           #开启匿名访问(默认已经开启)
write_enable=YES               #开放服务器的写权限(上传文件需要开启)默认快开启
anon_umask=022                 #设置匿名用户上传数据的权限掩码为022 (反掩码)
anon_upload_enable=YES         #允许匿名用户上传文件
anon_mkdir_write_enable=YES    #允许匿名用于创建(上传)目录
anon_other_write_enable=YES    #允许其他用户删除,重命名,覆盖等操作
:wq                           #保存退出
 
[root@localhost vsftpd]# systemctl start vsftpd     #启动 ftp 服务
[root@localhost vsftpd]# systemctl enable  vsftpd   #开启 ftp 的自启
[root@localhost vsftpd]# systemctl stop firewalld   #关闭防火墙
[root@localhost vsftpd]# setenforce 0               #设置selinux 模式
 
[root@localhost vsftpd]# chmod 777  /var/ftp/pub
 #为匿名访问ftp 目录的根目录 下的 pub 子目录 权限设置为最大权限,以便匿名用户上传数据

二:windows 访问测试

连接方式:

在Windows 系统 Win +r ,然后 输入 cmd ,打开命令行输入。

切换windoes 目录到桌面:

C:\Users\Administrator>cd C:\Users\Administrator\Desktop

连接ftp服务器:

ftp ftp服务器地址

匿名访问:

用户名为 ftp ,密码为空, 登录ftp

ftp 操作:

pwd #查看当前所在目录

ls #查看当前目录

cd #切换目录

get 文件名 #下载文件到windows 本地

put 文件名 #上传文件到 ftp目录

quit #退出

C:\Users\Administrator>cd C:\Users\Administrator\Desktop   #切换到桌面
C:\Users\Administrator\Desktop>ftp 192.168.23.10         #连接到ftp服务器
连接到 192.168.23.10220 (vsFTPd 3.0.2)
200 Always in UTF8 mode.
用户(192.168.23.10:(none)): ftp                     #用户名输入 ftp
331 Please specify the password.
密码:                                              #密码为空
230 Login successful.
 
ftp> pwd                            #查看当前所在目录
257 "/"                           #根目录(匿名用户根目录是/var/ftp/)
 
ftp> ls                           #查看目录下的内容
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
pub                              #目录下有pub 目录
226 Directory send OK.
ftp: 收到 8 字节,用时 0.008.00千字节/秒。
 
ftp> cd pub                     #切换到pub 目录
250 Directory successfully changed.
ftp>
ftp> pwd
257 "/pub"
 
ftp> ls                         #查看pub 目录下的内容
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
abc.txt                        #拥有 abc.txt 文件
226 Directory send OK.
ftp: 收到 12 字节,用时 0.0012000.00千字节/秒。
 
ftp> get abc.txt               #从ftp 服务器下载 abc.txt 到本地
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for abc.txt (15 bytes).
226 Transfer complete.
ftp: 收到 15 字节,用时 0.0015.00千字节/秒。
 
ftp> put test.txt              #从本地 上传 test.txt 到ftp 服务器
200 PORT command successful. Consider using PASV.
150 Ok to send data.
226 Transfer complete.
ftp: 发送 12 字节,用时 0.0012.00千字节/秒。
ftp> quit                     #退出ftp
221 Goodbye.

验证

C:\Users\Administrator\Desktop>dir  abc.txt    #windows查看 abc.txt 是否存在
2021/06/29  10:25                15 abc.txt
               1 个文件             15 字节
               0 个目录 725,971,259,392 可用字节
                
[root@localhost pub]# pwd  
/var/ftp/pub
[root@localhost pub]# ls  test.txt            #linux 查看 test 文件是否存在
test.txt

三:设置本地用户验证访问ftp

3.1 修改配置文件 /etc/vsftpd/vsftpd.conf

设置本地用户可以登录,禁止匿名用户登录

[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf  
local_enable=YES               #启用本地用户
anonymous_enable=NO            #关闭匿名用户访问(要关闭,而不失注释)
write_enable=YES               #开启服务器写权限
local_umask=077                #设置仅宿主拥有上传文件的权限(反掩码)
chroot_local_user=YES          #将访问禁锢在用户的宿主目录中
allow_writeable_chroot=YES     #允许被限制的用户主目录具有写权限
:wq

[root@localhost ~]# systemctl restart vsftpd   #重启服务

3.2 访问测试

C:\Users\Administrator\Desktop>ftp 192.168.23.10
连接到 192.168.23.10220 (vsFTPd 3.0.2)
200 Always in UTF8 mode.
用户(192.168.23.10:(none)): ftp
331 Please specify the password.
密码:
530 Login incorrect.
登录失败。                     #ftp 用户无密码登录失败

C:\Users\Administrator\Desktop>ftp 192.168.23.10
连接到 192.168.23.10220 (vsFTPd 3.0.2)
200 Always in UTF8 mode.
用户(192.168.23.10:(none)): test  #使用test 用户登录
331 Please specify the password.
密码:                             #输入test 用户密码
230 Login successful.             #使用 普通用户 test 的账号登录成功
ftp>
ftp> pwd 
257 "/"              #普通用户的根目录是 它的 家目录
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
下载
公共
图片
文档
桌面
模板
视频
音乐
226 Directory send OK.     #这些是用户家目录里的文件
ftp: 收到 67 字节,用时 0.0016.75千字节/秒。

3.3 图形化登录

(1) 在地址栏 输入 ftp://ftp 服务器地址

(2) 输入 用户名 和 密码 (如果是匿名用户,点上匿名登录
(3) windows 和linux 之间可以直接拖拽上传

从windows 上 拖拽上传

[test@localhost ~]$ whoami
test
[test@localhost ~]$ pwd
/home/test
[test@localhost ~]$ ls
test.txt  公共  模板  视频  图片  文档  下载  音乐  桌面

四:设置白名单和黑名单
4.1 设置黑名单
配置 文件 /etc/vsftpd/usr_list ,向文件添加或删除 用户

[root@localhost ~]# vim /etc/vsftpd/user_list
test      #添加用户
 :wq
  
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
 userlist_enable=YES
 userlist_deny=YES  (默认是此设置)
 #设置黑名单,不允许 user_list 里的用户登录
:wq
 
 [root@localhost ~]# systemctl restart vsftpd   #重启服务

测试登录

C:\Users\Administrator\Desktop>ftp 192.168.23.10
连接到 192.168.23.10220 (vsFTPd 3.0.2)
200 Always in UTF8 mode.
用户(192.168.23.10:(none)): lisi 
331 Please specify the password.
密码:
230 Login successful.         #lisi 用户不在user_list 中,可以登录
ftp> quit
221 Goodbye.
 
C:\Users\Administrator\Desktop>ftp 192.168.23.10
连接到 192.168.23.10220 (vsFTPd 3.0.2)
200 Always in UTF8 mode.
用户(192.168.23.10:(none)): test
530 Permission denied.      #test 用户在user_list 中,不可以登录
登录失败。

4.2 设置白名单

[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf   
userlist_enable=YES
userlist_deny=NO        
 #将YES 改为 NO,即 设置白名单,仅允许user_list 中用户登录
 :wq
 [root@localhost ~]# systemctl restart vsftpd   #重启服务

测试服务

C:\Users\Administrator\Desktop>ftp 192.168.23.10
连接到 192.168.23.10220 (vsFTPd 3.0.2)
200 Always in UTF8 mode.
用户(192.168.23.10:(none)): lisi
530 Permission denied.
登录失败。               #用户lisi 不在白名单内,登录失败
ftp> quit
221 Goodbye.
 
C:\Users\Administrator\Desktop>ftp 192.168.23.10
连接到 192.168.23.10220 (vsFTPd 3.0.2)
200 Always in UTF8 mode.
用户(192.168.23.10:(none)): test
331 Please specify the password.
密码:
230 Login successful.      #用户test 在白名单内,登录成功
ftp>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值