博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
FTP文件传输服务
阅读量:6213 次
发布时间:2019-06-21

本文共 4738 字,大约阅读时间需要 15 分钟。

FTP文件传输服务

FTP连接及传输模式

  • 控制连接:TCP 21,用于发送FTP命令信息
  • 数据连接:TCP 20,用于上传、下载数据
  • 数据连接的建立类型:

  • 主动模式:服务端从20端口主动向客户端发起连接
  • 被动模式:服务端在指定范围内某个端口被动等待客户端连接
  • FTP传输模式

    文本模式:ASCII模式,以文本序列传输数据
    二进制模式:Binary模式,以二进制序列传输数据

  • FTP用户的类型

  • 匿名用户:anonymous或ftp
  • 本地用户:
    帐号名称、密码等信息保存在passwd、shadow文件中
  • 虚拟用户:
    使用独立的帐号/密码数据文件

    常见的FTP服务器程序

  • IIS、Serv-U
  • wu-ftpd、Proftpd
  • vsftpd(Very Secure FTP Daemon)

  • 常见的FTP客户端程序

  • ftp命令
  • CuteFTP、FlashFXP、LeapFTP、Filezilla
  • gftp、kuftp

  • vsftpd软件包

    官方站点:
    主程序:/usr/sbin/vsftpd
    服务名:vsftpd
    用户控制列表文件
    /etc/vsftpd/ftpusers
    /etc/vsftpd/user_list
    主配置文件
    /etc/vsftpd/vsftpd.conf

  • 常用的全局配置项

    listen=YES:是否以独立运行的方式监听服务listen_address=192.168.4.1:设置监听的IP地址listen_port=21:设置监听FTP服务的端口号write_enable=YES:是否启用写入权限download_enable=YES:是否允许下载文件userlist_enable=YES:是否启用user_list列表文件userlist_deny=YES:是否禁用user_list中的用户max_clients=0:限制并发客户端连接数max_per_ip=0:限制同一IP地址的并发连接数
  • 常用的匿名FTP配置项

    anonymous_enable=YES:启用匿名访问anon_umask=022:匿名用户所上传文件的权限掩码anon_root=/var/ftp:匿名用户的FTP根目录anon_upload_enable=YES:允许上传文件anon_mkdir_write_enable=YES:允许创建目录anon_other_write_enable=YES:开放其他写入权anon_max_rate=0:限制最大传输速率(字节/秒)
  • 常用的本地用户FTP配置项

    local_enable=YES:是否启用本地系统用户local_umask=022:本地用户所上传文件的权限掩码local_root=/var/ftp:设置本地用户的FTP根目录chroot_local_user=YES:是否将用户禁锢在主目录local_max_rate=0:限制最大传输速率(字节/秒)
  • 构建可匿名上传的FTP服务器

  • 1.准备匿名FTP访问的目录

    使匿名用户FTP对该目录有写入权限

[root@localhost ~]# chown ftp /var/ftp/pub/[root@localhost ~]# ls -ld /var/ftp/pub/drwxr-xr-x 4 ftp root 4096 02-24 10:36 /var/ftp/pub/

-

2.开放匿名用户配置,并启动vsftpd服务

[root@localhost]# vi /etc/vsftpd/vsftpd.confanonymous_enable=YES            local_enable=NO                 write_enable=YES                anon_umask=022                  anon_upload_enable=YES          anon_mkdir_write_enable=YES     dirmessage_enable=YES

-

[root@localhost vsftpd]# service vsftpd start为 vsftpd 启动 vsftpd:                                    [确定][root@localhost vsftpd]# netstat -anpt | grep "vsftpd"tcp      0      0 0.0.0.0:21        0.0.0.0:*          LISTEN      8989/vsftpd

-
测试匿名FTP服务器

使用ftp客户端程序访问测试

[root@localhost ~]# ftp 192.168.4.11Connected to 192.168.4.11.220 (vsFTPd 2.0.5)530 Please login with USER and PASS.530 Please login with USER and PASS.KERBEROS_V4 rejected as an authentication typeName (192.168.4.11:root): ftp331 Please specify the password.Password:230 Login successful.Remote system type is UNIX.Using binary mode to transfer files.ftp>

-

-
构建本地用户验证的FTP服务器

1.修改vsftpd.conf配置文件

启用本地用户访问
结合user_list文件灵活控制用户访问
2.重新加载vsftpd配置

[root@localhost ~]# vi /etc/vsftpd/user_listlayavankohunter[root@localhost]# vi /etc/vsftpd/vsftpd.conf……userlist_enable=YES                                    userlist_deny=NO[root@localhost]# service vsftpd reload

-
vsftpd服务的其他常用配置

1.修改vsftpd服务的监听地址、端口

[root@localhost ~]# vi /etc/vsftpd/vsftpd.conf……listen=YESlisten_address=192.168.4.11listen_port=2121

-

2.允许使用FTP服务器的被动模式

[root@localhost]# vi /etc/vsftpd/vsftpd.conf……pasv_enable=YESpasv_min_port=24500pasv_max_port=24600

-

限制FTP连接的并发数、传输速率

[root@localhost]# vi /etc/vsftpd/vsftpd.confmax_clients=20max_per_ip=2anan_max_rate=50000local_max_rate=200000

-
构建基于虚拟用户的FTP服务

创建账号数据

1.建立虚拟FTP用户的帐号数据库文件
2.创建FTP根目录及虚拟用户映射的系统用户
3.建立支持虚拟用户的PAM认证文件
添加虚拟用户支持
4.在vsftpd.conf文件中添加支持配置
5.为个别虚拟用户建立独立的配置文件
启动服务并测试
6.重新加载vsftpd配置
7.使用虚拟FTP账户访问测试

-
创建账号数据

1.建立虚拟FTP用户的帐号数据库文件

建立虚拟用户的账户名、密码列表

[root@localhost]# vi /etc/vsftpd/vusers.listmike123john456[root@localhost]# cd /etc/vsftpd/[root@localhost vsftpd]# db_load -T -t hash -f vusers.list vusers.db[root@localhost vsftpd]# file vusers.dbvusers.db: Berkeley DB (Hash, version 8, native byte-order)[root@localhost vsftpd]# chmod 600 /etc/vsftpd/vusers.*[root@localhost vsftpd]# ls -lh /etc/vsftpd/vusers.*-rw------- 1 root root 12K 02-26 08:51 /etc/vsftpd/vusers.db-rw------- 1 root root  18 02-26 08:48 /etc/vsftpd/vusers.list

-

2.创建FTP根目录及虚拟用户映射的系统用户

[root@localhost]# useradd -d /var/ftproot -s /sbin/nologin virtual[root@localhost]# chmod 755 /var/ftproot/

-

3.建立支持虚拟用户的PAM认证文件

[root@localhost]# vi /etc/pam.d/vsftpd.vu#%PAM-1.0auth       required     pam_userdb.so db=/etc/vsftpd/vusersaccount    required     pam_userdb.so db=/etc/vsftpd/vusers

-

添加虚拟用户支持

-

4.在vsftpd.conf文件中添加支持配置

[root@localhost ~]# vi /etc/vsftpd/vsftpd.conf……local_enable=YESwrite_enable=YESanon_umask=022guest_enable=YESguest_username=virtualpam_service_name=vsftpd.vu

-

5.为不同的虚拟用户建立独立的配置文件

在vsftpd.conf文件中添加用户配置目录支持
user_config_dir=/etc/vsftpd/vusers_dir
为用户mike、john建立独立的配置目录及文件
配置文件名与用户名相同

[root@localhost ~]# mkdir /etc/vsftpd/vusers_dir/[root@localhost ~]# cd /etc/vsftpd/vusers_dir/[root@localhost vusers_dir]# vi johnanon_upload_enable=YESanon_mkdir_write_enable=YES[root@localhost vusers_dir]# touch mike

-

启动服务并测试

6.重新加载vsftpd配置
service vsftpd reload

7.使用虚拟FTP账户访问测试

mike用户可以登录,并可以浏览、下载,但无法上传
john用户可以登录,并可以浏览、下载,也可以上传
匿名用户或其他系统用户将不能登录

转载于:https://blog.51cto.com/13555423/2064939

你可能感兴趣的文章
开发一个自己的 CSS 框架(一)
查看>>
Java如何把链接中的参数在页面使用参数名字获取ModelMap model去页面显示或者处理...
查看>>
从数据库(oracle)里把数据导出(excel)
查看>>
多进程,守护进程,锁
查看>>
Android-布局管理-表格布局
查看>>
exe4j生成exe后执行报错
查看>>
Python复习
查看>>
Spring Cloud(服务的消费者 ribbon+restTemplate)
查看>>
[python] colorama 模块 - 改变控制台输出文本的颜色
查看>>
文件句柄耗光造成系统重启BUG排查
查看>>
python 100例(8)
查看>>
0404 第十次课:shell基础(下)
查看>>
在耗时较长的Controller中使用Future异步
查看>>
如何将SAP Multi Target应用部署到SAP云平台的Cloud Foundry环境去
查看>>
使用Java+SAP云平台+SAP Cloud Connector调用ABAP On-Premise系统里的函数
查看>>
安全考量——Solidity中文文档(5)
查看>>
如何在UBUNTU虚拟机上编译EOS完成环境搭建?(附代码)
查看>>
以太坊开发教程汇编
查看>>
linux和windows互传文件 用户配置文件和密码配置文件 用户组管理 用户管理
查看>>
安装Mysql服务器,一主一从(主的写,从的读)
查看>>