FTP服务基本原理与配置

ftp服务基本原理与配置

一、原理

FTP(File Transfer Protocol,文件传输协议)是TCP/IP协议组中的协议之一,用来在计算机之间互相传送文件。FTP有两个连接端口,一个是控制连接,端口号是21,用于发送指令给服务器端以及等待服务器响应;一个是数据传输端口,端口号是20,用于建立数据传输通道。
在linux系统中,提供ftp协议的包是vsftpd。

FTP交互过程原理图:

这里写图片描述

二、安装配置

1、安装

[root@localhost ~]# yum install vsftpd -y       #下载服务
[root@localhost ~]# systemctl start vsftpd      #启动服务

[root@localhost ~]# systemctl stop firewalld    #关闭防火墙

#此时,若不想关闭防火墙,可以将ftp服务列入firewall-cmd --list-all中,过程如下:
[root@localhost ~]# firewall-cmd --add-service=ftp
success
[root@localhost ~]# firewall-cmd --reload
success
##上面两种方法用一种即可

[root@localhost Desktop]# lftp 172.25.254.170   #测试,lftp后面跟ftp服务器ip
lftp 172.25.254.170:~> ls
drwxr-xr-x    2 0        0               6 Aug 03  2015 pub
  #服务器打开成功

2.基本信息和配置

(1) vsftpd文件信息
  • /var/ftp #默认ftp文件发布目录
  • /etc/vsftpd/vsftpd.conf #服务配置目录
(2) 提示报错信息
  1. 500 #权限过大
  2. 550 #服务本身不允许
  3. 553 #本地文件权限过小
  4. 530 #用户认证失败
(3) 基本配置
1、匿名用户设定

1)匿名用户是否可以登陆
anonymous_enable=NO|YES

[root@localhost Desktop]# lftp 172.25.254.170       #匿名用户可以正常登陆
lftp 172.25.254.170:~> ls
drwxr-xr-x    2 0        0               6 Aug 03  2015 pub
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO         #修改配置参数,为YES匿名用户可以正常登陆,为NO不可以
[root@localhost ~]# systemctl restart vsftpd      #每次修改配置文件之后,都需要重启服务
[root@localhost Desktop]# lftp 172.25.254.170   
lftp 172.25.254.170:~> ls       #可以看出,匿名用户此时不可以登陆
`ls' at 0 [Delaying before reconnect: 19]  
Interrupt                                   

2) 匿名用户上传
write_enable=YES
anon_upload_enable=YES

[root@localhost Desktop]# lftp 172.25.254.170
lftp 172.25.254.170:~> ls
drwxr-xr-x    2 0        0               6 Aug 03  2015 pub
lftp 172.25.254.170:/> put /etc/passwd      #默认匿名用户不可以上传
put: Access failed: 550 Permission denied. (passwd)
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
write_enable=YES                #写文件的权限
anon_upload_enable=YES          #匿名用户是否可以上传,本身被注释掉的
[root@localhost ~]# systemctl restart vsftpd.service
[root@localhost ~]# chgrp ftp /var/ftp/pub/
[root@localhost ~]# chmod 775 /var/ftp/pub/       #一定要修改目录权限
[root@localhost Desktop]# lftp 172.25.254.170
lftp 172.25.254.170:~> ls
drwxrwxr-x    2 0        50              6 Aug 03  2015 pub
lftp 172.25.254.170:/> cd pub/
lftp 172.25.254.170:/pub> put /etc/passwd     #上传成功
2323 bytes transferred
lftp 172.25.254.170:/pub> ls
-rw-------    1 14       50           2323 Nov 09 01:37 passwd  #14 50分别是ftp用户的uid和gid

3) 匿名用户家目录修改
默认匿名用户进入ftp时进入的是/var/ftp/目录
anon_root=/directory

[root@localhost /]# mkdir /ftp
[root@localhost /]# vim /etc/vsftpd/vsftpd.conf
anon_root=/ftp        #这个配置需要自己添加
[root@localhost /]# systemctl restart vsftpd.service
[root@localhost /]# touch /ftp/file{1..5}
[root@localhost Desktop]# lftp 172.25.254.170
lftp 172.25.254.170:~> ls             #ls显示出来的是/ftp里面的文件,修改成功
-rw-r--r--    1 0        0               0 Nov 09 01:43 file1
-rw-r--r--    1 0        0               0 Nov 09 01:43 file2
-rw-r--r--    1 0        0               0 Nov 09 01:43 file3
-rw-r--r--    1 0        0               0 Nov 09 01:43 file4
-rw-r--r--    1 0        0               0 Nov 09 01:43 file5

4)匿名用户上传文件默认权限修改
anon_umask=xxx

[root@localhost /]# vim /etc/vsftpd/vsftpd.conf
anon_umask=022          #需要自己写入,666-022=644,就是上传文件的权限
[root@localhost /]# systemctl restart vsftpd.service
[root@localhost Desktop]# lftp 172.25.254.170
lftp 172.25.254.170:~> cd pub/
lftp 172.25.254.170:/pub> put /etc/shadow
1284 bytes transferred
lftp 172.25.254.170:/pub> ls
-rw-------    1 14       50           2323 Nov 09 01:37 passwd
-rw-r--r--    1 14       50           1284 Nov 09 01:48 shadow  #权限是644,成功

5)匿名用户建立目录
anon_mkdir_write_enable=YES|NO

[root@localhost /]# vim /etc/vsftpd/vsftpd.conf
anon_mkdir_write_enable=YES         #去掉注释符号即可
[root@localhost /]# systemctl restart vsftpd.service
[root@localhost Desktop]# lftp 172.25.254.170
lftp 172.25.254.170:~> cd pub/
lftp 172.25.254.170:/pub> ls
-rw-------    1 14       50           2323 Nov 09 01:37 passwd
-rw-r--r--    1 14       50           1284 Nov 09 01:48 shadow
lftp 172.25.254.170:/pub> mkdir test
mkdir ok, `test' created
lftp 172.25.254.170:/pub> ls      #可以看出,目录创建成功
-rw-------    1 14       50           2323 Nov 09 01:37 passwd
-rw-r--r--    1 14       50           1284 Nov 09 01:48 shadow
drwx------    2 14       50              6 Nov 09 01:52 test

6)匿名用户删除
anon_other_write_enable=YES|NO

[root@localhost /]# vim /etc/vsftpd/vsftpd.conf
anon_other_write_enable=YES           #需要自己添加
[root@localhost /]# systemctl restart vsftpd.service
[root@localhost Desktop]# lftp 172.25.254.170
lftp 172.25.254.170:~> cd pub/
lftp 172.25.254.170:/pub> ls
-rw-------    1 14       50           2323 Nov 09 01:37 passwd
-rw-r--r--    1 14       50           1284 Nov 09 01:48 shadow
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值