FTP服务器的搭建(Linux)

打印 上一主题 下一主题

主题 718|帖子 718|积分 2158

摘要:
  FTP(File Transfer Protocol)即文件传输协议,是一种基于TCP的协议,接纳客户/服务器模式。通过FTP协议,用户可以在FTP服务器中举行文件的上传或下载等操纵。虽然现在通过HTTP协议下载的站点有很多,但是由于FTP协议可以很好地控制用户数量和宽带的分配,快速方便地上传、下载文件,因此FTP已成为网络中文件上传和下载的首选服务器。同时,它也是一个应用程序,用户可以通过它把自己的计算机与世界各地全部运行FTP协议的服务器相连,访问服务器上的大量程序和信息。FTP服务的功能是实现完整文件的异地传输。特点如下: 
  (一)FTP利用两个平行毗连:控制毗连和数据毗连。控制毗连在两主机间传送控制命令,如用户身份、口令、改变目录命令等。数据毗连只用于传送数据。 
  (二)在一个会话期间,FTP服务器必须维持用户状态,也就是说,和某一个用户的控制毗连不能断开。另外,当用户在目录树中活动时,服务器必须追踪用户的当前目录,这样,FTP就限制了并发用户数量。 
  (三)FTP支持文件沿任意方向传输。当用户与一远程计算机建立毗连后,用户可以获得一个远程文件也可以将一本地文件传输至远程机器。
   
  FTP服务器(File Transfer Protocol Server)是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务。 FTP是File Transfer Protocol(文件传输协议)。顾名思义,就是专门用来传输文件的协议。简单地说,支持FTP协议的服务器就是FTP服务器 。
  一、FTP服务器的概述

1、FTP服务器的作用

   FTP服务器是一种提供文件传输服务的服务器,它的作用主要包罗以下几点:
  (1)存储文件:FTP服务器可以存储需要传输的文件,用户可以通过FTP客户端毗连到FTP服务器,并上传或下载需要的文件。
   
  (2)管理文件:FTP服务器可以管理文件,例如创建、删除、重定名等操纵。
   
  (3)提供文件访问权限控制:FTP服务器可以对文件举行访问权限控制,例如限制用户的访问权限、控制用户的上传和下载权限等。
   
  (4)提供匿名访问:FTP服务器可以提供匿名访问,允许用户通过FTP客户端举行匿名的文件传输。
   
  (5)监控文件传输环境:FTP服务器可以记载和监控文件传输环境,例如记载文件传输的日志信息,以便举行后续的审计和管理。
   
  (6)支持多用户同时传输:FTP服务器可以支持多个用户同时举行文件传输,以提高文件传输的效率。
   
  (7)网络备份:FTP服务器可以作为网络备份的存储服务器,用于备份公司或构造的紧张数据。
   
  (8)虚拟主机:FTP服务器可以作为虚拟主机,提供Web服务器、邮件服务器等服务。
   
  (9)软件分发:FTP服务器可以作为软件分发服务器,将软件发布到FTP服务器上供用户下载。
   
  (10)文件归档:FTP服务器可以作为文件归档服务器,存储汗青文件,方便用户举行查阅和调取。
   
  (11)文件同步:FTP服务器可以作为文件同步服务器,用于在不同的地点或网络之间同步文件。
  2、FTP的系统构成

   FTP服务器系统由服务器软件、客户端软件和FTP通讯协议构成。FTP服务器常见的软件:vsftpd、wu-ftpd、Proftpd、微软 IIS FTP、Serv-U等。
  

  3、FTP服务器的工作过程

   一个完整的FTP文件传输需要建立两种类型的毗连,一种为文件传输下命令,称为控制毗连,另一种实现真正的文件传输,称为数据毗连。
(1)控制毗连
客户端希望与FTP服务器建立上传下载的数据传输时,它起首向服务器的TCP21端口发起一个建立毗连的请求,FTP服务器担当来自客户端的请求,完成毗连的建立过程,这样的毗连就称为FTP 控制毗连
(2)数据毗连
FTP 控制毗连建立之后,即可开始传输文件,传输文件的毗连称为FTP数据毗连。FTP数据毗连就是FTP传输数据的过程,它有两种传输模式:主动模式(PORT/standard)和被动模式
(PASV)。
   
  主动模式:
  

   
   被动模式:
  

  二、FTP服务器的搭建

   FTP服务器搭建前的准备:
  FTP服务器的搭建与DNS服务器的搭建息息相干,如果未搭建DNS服务器见文章:
  https://blog.csdn.net/weixin_63037066/article/details/129963557
  其中DNS服务器的配置文件需要更改一点:
  

   打开正向配置文件,做一些更改--
  

  systemctl restart named   //重启DNS服务 
   
  FTP客户端的网卡也许谨慎配置(DNS服务器为FTP客户端剖析域名或IP地址)--
  FTP客户端的网卡配置-
  [root@Server ~]# cd /etc/sysconfig/network-scripts/
[root@Server network-scripts]# 
[root@Server network-scripts]# vim ifcfg-ens33
  TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
IPADDR=192.168.1.10
GATEWAY=192.168.1.2
PREFIX=24
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=721bf751-0fac-4c74-9ade-9f591c0f5ebf
DEVICE=ens33
ONBOOT=yes
DNS1=192.168.1.10
 
  1、安装FTP软件

  1. 服务端:yum install vsftpd
  2. 客户端: yum install ftp
复制代码
2、启动ftp服务

  1. systemctl start vsftpd     //开启FTP服务
  2. systemctl enable vsftpd    //设置FTP开机自启动
  3. systemctl status vsftpd    //查看FTP服务的状态
复制代码
3、防火墙设置

  1. firewall-cmd --list-all   //查看防火墙已经允许通过的服务
  2. firewall-cmd --permanent --add-service=ftp   //在防火墙中添加允许通过的FTP服务
  3. firewall-cmd --reload      //重新加载防火墙,使新添加的防火墙策略生效
复制代码
4、配置本地用户

   ①不限制在自己根目录的用户(根目录--/home/用户名/)
  1. FTP服务器端:
  2. adduser user1  //添加普通用户
  3. passwd user    //设置user1用户的密码
  4. echo "user1_file" > /home/user1/user.txt   //创建测试文件(用来下载),并写入内容
  5. mkdir /var/ftp/public    //创建测试目录
  6. FTP客户端:
  7. echo "test_file" > test1.txt   //创建测试文件(用来上传),并写入内容
复制代码
客户端测试:
  

   那么如何做到在除了家目录的其他目录上传文件呢?看如下操纵:(以 /var/ftp/public 为例)
  1. FTP服务器端:
  2. chmod o+w /var/ftp/public  //给予其他用户对 /var/ftp/public 目录的写权限
  3. chcon -t public_content_rw_t /var/ftp/public   //如果你想让你设置的FTP目录可以上传文件的
  4.                                                  话,SELINUX需要设置
  5. setsebool -P ftpd_full_access on    //修改布尔值状态,开放FTP访问
  6. getsebool -a | grep ftp             //过滤与FTP相关的布尔值信息
  7. ftpd_anon_write --> off
  8. ftpd_connect_all_unreserved --> off
  9. ftpd_connect_db --> off
  10. ftpd_full_access --> on    //开启即可
  11. ftpd_use_cifs --> off
  12. ftpd_use_fusefs --> off
  13. ftpd_use_nfs --> off
  14. ftpd_use_passive_mode --> off
  15. httpd_can_connect_ftp --> off
  16. httpd_enable_ftp_server --> off
  17. tftp_anon_write --> off
  18. tftp_home_dir --> off
复制代码
客户端测试:
  

   
  ①限制在自己根目录的用户(根目录---/home/用户名/)
  1. adduser webadmin  //添加普通用户
  2. passwd webadmin   //设置普通用户webadmin的密码
  3. mkdir /webdata/   //创建目录(该目录将用来作为用户webadmin的根目录)
  4. chmod o+w /webdata/    //给予其他用户对 /var/ftp/public 目录的写权限
  5. echo "webadmin_file" > /webdata/webadmin.txt    //创建测试文件(用于上传),并写入内容
  6. vim /etc/vsftpd/vsftpd.conf  //配置FTP服务器的主配置文件,修改和添加的内容放在代码外部
  7. vim /etc/vsftpd/chroot_list
  8. webadmin
  9. systemctl restart vsftpd        //重启FTP服务
  10. getsebool -a | grep ftp         //过滤与FTP相关的布尔值信息
  11. ftpd_anon_write --> off
  12. ftpd_connect_all_unreserved --> off
  13. ftpd_connect_db --> off
  14. ftpd_full_access --> on //开启即可,如果为off则多敲一条命令:setsebool -P ftpd_full_access on                        
  15. ftpd_use_cifs --> off
  16. ftpd_use_fusefs --> off
  17. ftpd_use_nfs --> off
  18. ftpd_use_passive_mode --> off
  19. httpd_can_connect_ftp --> off
  20. httpd_enable_ftp_server --> off
  21. tftp_anon_write --> off
  22. tftp_home_dir --> off
复制代码
vim /etc/vsftpd/vsftpd.conf  //FTP服务器的主配置文件配置
  

  

  客户端测试:
  

   
  在此底子上,我们还可以拓展FTP服务器的功能:
  ①克制上传后缀名为.doc .docx .xlsx 的文件;
  ②限制用户的下载最大速率为100kb/s;
  ③最大同一IP在线人数为2人;
  ④一个IP地址同时登陆的用户进程/人数不凌驾2人。 
  1. FTP服务器端:
  2. vim /etc/vsftpd/vsftpd.conf   //配置FTP服务器主配置文件,在文件末尾添加内容
  3. local_max_rate=100000         //限制用户的下载最大速度为100kb/s
  4. max_per_ip=2                   //最大同一IP在线人数为2人
  5. max_clients=2                 //一个IP地址同时登陆的用户进程/人数不超过2人
  6. deny_file={*.doc,*.docx,*.xlsx}   //禁止上传后缀名为.doc .docx .xlsx 的文件
  7. systemctl restart vsftpd   //重启FTP服务
复制代码
 客户端测试:
  1. touch doc_file.doc  //创建后缀名为.doc的测试文件
复制代码

   
  为了保证客户端和服务器之间传输数据的保密性和完整性,可以利用SSL/TLS协议加固FTP服务器。
  1. FTP服务器端:
  2. vim /etc/vsftpd/vsftpd.conf    //编辑FTP服务器的主配置文件,在文件末尾添加内容
  3. userlist_enable=YES
  4. tcp_wrappers=YES
  5. ssl_enable=YES
  6. ssl_tlsv1=YES
  7. ssl_sslv2=NO
  8. ssl_sslv3=NO
  9. rsa_private_key_file=/etc/ssl/serverkey1/vsftpd.pem
  10. rsa_cert_file=/etc/ssl/serverkey1/vsftpd.pem
  11. allow_anon_ssl=NO
  12. force_local_logins_ssl=YES
  13. force_local_data_ssl=YES
复制代码
客户端测试:
  

  那么,如何安全地登陆到FTP服务器端 ?
  1. yum install epel-release filezilla -y //在FTP客户端安装filezilla软件
  2. 细节提醒:
  3. 重复安装两次,因为第一次是初始化,第二次才是正常的安装。
复制代码
安装完后会体现图标:
  

  点击软件FileZilla,进入内部
  ①打开站点管理器
  

  ②先新建站点,写入站点信息,末了点击毗连
  这里是用IP地址登陆--
  

  也可以用域名登陆--
  

   
  ③输入密码
  

   
  毗连成功:
  

   
   这里依然可以举行文件的上传和下载:
  

  

  至此,FTP服务器搭建完成!
 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

东湖之滨

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表