【Linux网络】FTP服务

目录

一、FTP简介

1.FTP-文件传输协议

2.FTP的两种模式

二、安装配置FTP

1.安装环境

2.对文件的操作

3.切换目录

4.设置匿名用户

5.图形化界面登录

6.白名单与黑名单

重点与难点


一、FTP简介

1.FTP-文件传输协议

FTP是FileTransferProtocol(文件传输协议)的英文简称,而中文简称为"文传协议"。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。

FTP服务器默认使用TCP协议的20、21端口与客户端进行通信

20端口用于建立数据连接,并传输文件数据

21端口用于建立控制连接,并传输FTP控制命令

2.FTP的两种模式

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

在主动模式下,FTP客户端随机开启一个大于1024的端口N向服务器的21号端口发起连接,发送FTP用户名和密码,然后开放N+1号端口进行监听,并向服务器发出PORT N+1命令,告诉服务端客户端采用主动模式并开放了端口。FTP服务器接收到PORT命令后,会用其本地的FTP数据端口(通常是20)来连接客户端指定的端口N+1,进行数据传输

被动模式:服务器被动等待数据连接

在被动模式下,FTP客户端随机开启一个大于1024的端口N向服务器的21号端口发起连接,发送用户名和密码进行登陆,同时会开启N+1端口。然后向服务器发送PASV命令,通知服务器自己处于被动模式。服务器收到命令后,会开放一个大于1024的端口P(端口P的范围是可以设置的,后面会说到这个是很重要的)进行监听,然后用PORT P命令通知客户端,自己的数据端口是P。客户端收到命令后,会通过N+1号端口连接服务器的端口P,然后在两个端口之间进行数据传输

二、安装配置FTP

1.安装环境

关闭防火墙和核心防护

复制代码
[root@localhost ~]# 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@localhost ~]# setenforce 0
[root@localhost ~]# vi /etc/selinux/config
[root@localhost ~]# 

安装svftpd

备份vsftpd的配置文件

复制代码
[root@localhost ~]# cd /etc/vsftpd/
[root@localhost vsftpd]# cp vsftpd.conf vsftpd.conf.bak
[root@localhost vsftpd]# 

修改配置文件

重启生效

复制代码
[root@localhost vsftpd]# systemctl restart vsftpd
[root@localhost vsftpd]# systemctl enable vsftpd
Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.
[root@localhost vsftpd]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      719/rpcbind         
tcp        0      0 192.168.122.1:53        0.0.0.0:*               LISTEN      1534/dnsmasq        
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1210/sshd           
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      1213/cupsd          
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1569/master         
tcp        0      0 127.0.0.1:6010          0.0.0.0:*               LISTEN      2954/sshd: root@pts 
tcp6       0      0 :::111                  :::*                    LISTEN      719/rpcbind         
tcp6       0      0 :::21                   :::*                    LISTEN      3741/vsftpd         
tcp6       0      0 :::22                   :::*                    LISTEN      1210/sshd           
tcp6       0      0 ::1:631                 :::*                    LISTEN      1213/cupsd          
tcp6       0      0 ::1:25                  :::*                    LISTEN      1569/master         
tcp6       0      0 ::1:6010                :::*                    LISTEN      2954/sshd: root@pts 
[root@localhost vsftpd]# 

以win10为例,设置网络为net模式

测试连通性,并且连接操作请求

2.对文件的操作

ftp> pwd #匿名访问ftp的根目录为Linux系统的/var/ftp/目录

ftp> ls #查看当前目录

ftp> cd pub #切换到pub 目录

ftp> get 文件名 #下载文件到当前Windows本地目录

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

ftp> quit #退出

创建文件并查看

复制代码
[root@localhost ~]# cd /var/ftp/
[root@localhost ftp]# ls
pub
[root@localhost ftp]# pwd
/var/ftp
[root@localhost ftp]# mkdir xy101
[root@localhost ftp]# ls
pub  xy101
[root@localhost ftp]# 

下载文件并查看

复制代码
[root@localhost ftp]# echo '12345' > 12345.txt
[root@localhost ftp]# ls
12345.txt  pub  xy101
[root@localhost ftp]# 

3.切换目录

切换路径下载文件,以桌面为例

4.设置匿名用户

关闭匿名用户

复制代码
[root@localhost vsftpd]# useradd zhangsan
[root@localhost vsftpd]# echo 123456 | passwd --stdin zhangsan
更改用户 zhangsan 的密码 。
passwd:所有的身份验证令牌已经成功更新。 
[root@localhost vsftpd]# systemctl restart vsftpd
[root@localhost vsftpd]# 

匿名用户登录失败

非匿名用户登录成功

5.图形化界面登录

6.白名单与黑名单

设置用户白名单,添加用户登录访问,登录成功

设置用户黑名单,用户登录访问,登录失败

重点与难点

  1. ftp的服务中有两个端口,一个20用于数据连接,一个21用户ftp传输控制指令。

  2. ftp运用中可以又匿名登录和本地用户登录。匿名登录,没有密码限制,存在安全风险比较高。本地用户登录,通过修改vsftp.conf 限制其切换目录。

3.白名单是只有名单上的用户才可以进行访问,而黑名单是名单上的用户被拒绝访问。

相关推荐
JJJennie77710 分钟前
MAI Gateway技术揭秘:大模型网关能做什么?从原理到落地
linux·服务器·网络·ai网关
Allen_LVyingbo22 分钟前
医疗人工智能项目全生命周期管理系统:监管知识建模、工程实现与实证评估(上)
网络·人工智能·机器学习·语言模型·自动化
风哥2号2 小时前
数据库教程FGMT02‑生产环境Linux+Oracle19c安装配置与项目实战
linux·数据库·ffmpeg
wuminyu5 小时前
Kafka中sendfile与mmap实现机制解析
java·linux·c语言·jvm·c++
新时代牛马6 小时前
嵌入式网络完整篇:从LwIP/以太网驱动到 Linux netdev 与排障
linux·网络·php
猿与禅6 小时前
Linux(Ubuntu)入门到实战:系统管理、常用命令与权限体系完整指南
linux·ubuntu·apt·进程管理·系统运维·用户权限·vi/vim
前端世界6 小时前
Linux服务器实战:NTP时间同步、SELinux权限与rsyslog日志管理,一次搞懂三大运维问题
linux·运维·服务器
Android系统攻城狮6 小时前
Linux Gstreamer深度解析之gst_audio_converter_new调用流程与实战(二十)
linux·运维·服务器·gstreamer音视频·音视频进阶
海宇服务7 小时前
零信任架构实战:基于海宇对外投资历史查询服务构建自动化供应商准入网关
运维·人工智能·架构·自动化
上海云盾-小余7 小时前
BGP 高防底层原理:TCP 异常流量识别与清洗机制
运维·网络·tcp/ip