FTP配置部署与权限控制

FTP配置部署与权限控制

一、概念

  • 文件传输协议(File Transfer Protocol,FTP)是用于在网络上进行文件传输的一套标准协议,它工作在 OSI 模型的第七层, TCP 模型的第四层, 即应用层, 使用 TCP 传输而不是 UDP
  • 用于在本地主机和远程主机之间传送文件, 即使双方计算机可能配有不同的操作系统和文件存储方式。
  • 基本信息:
    • 软件安装包 vaftpd
    • 默认目录 /var/ftp
    • 配置文件 /etc/vsftpd/vsftpd.conf

二、服务器部署

1、安装启动
[root@node1 ~]# yum -y install vsftpd	# 安装vsftpd包
[root@node1 ~]# systemctl start vsftpd	# 启动服务
[root@node1 ~]# systemctl enable vsftpd	# 开启自启动
[root@node1 ~]# vim /etc/sysconfig/selinux # 关闭selinux
SELINUX=disabled
[root@node1 ~]# setenforce 0			# 临时设置,即时生效
[root@node1 ~]# firewall-cmd --permanent --add-service=ftp	# 防火墙放行
success

# 核心文件
[root@node1 vsftpd]# cd /etc/vsftpd/
[root@node1 vsftpd]# ll
总用量 20
-rw-------. 1 root root  125 219 2017 ftpusers	# 黑名单,不允许访问FTP服务器
-rw-------. 1 root root  361 219 2017 user_list	# 白名单,允许访问
-rw-------. 1 root root 5030 219 2017 vsftpd.conf # 核心配置文件
-rwxr--r--. 1 root root  338 219 2017 vsftpd_conf_migrate.sh		# FTP服务

2、新建用户
[root@node1 ~]# useradd yzl
[root@node1 ~]# passwd yzl
[root@node1 ~]# vim /etc/vsftpd/user_list	# 将用户加入到白名单
...
yzl		# 末行加入 “yzl”
[root@node1 ~]# 
3、设置权限
[root@node1 ~]# vim /etc/vsftpd/vsftpd.conf
...
anonymous_enable=NO		# 禁止匿名用户登陆
local_root=/data/ftp	# 新建目录,指定用户访问的主目录
...
# /data/ftp目录需创建并赋予权限。
# chmod -R yzl /data/ftp
[root@node1 ~]# systemctl restart vsftpd
4、客户端访问
[root@node2 ~]# lftp 172.16.100.63 	# 匿名用户登陆,无法获取数据
lftp 172.16.100.63:~> ls   
[重新连接前延时:30]
[root@node2 ~]# lftp 172.16.100.63 -u yzl	  # 指定用户登陆
口令: 										 # 输入密码
lftp yzl@172.16.100.63:~> pwd
ftp://yzl@172.16.100.63/%2Fdata/ftp			  # 显示指定路径

三、配置用户ftp权限及访问路径限制

[root@node1 ~]# vim /etc/vsftpd/vsftpd.conf
  • 修改用户ftp登陆权限

    • //找到#chroot_list_enable=YES,删除前面的那个#号,表示开启用户是否能登陆ftp限制
    • //找到#chroot_list_file=/etc/vsftpd/chroot_list,删除前面的那个#号,表示使用该列表中的名字作为限制条件
    • //编辑chroot_list,加入你要限制的用户名,一行一个用户
  • 修改用户ftp访问区域权限

    • 找到#chroot_local_user=YES,删除前面的那个#号,表示开启,用户只能访问自己的家目录
  • 每次修改完配置文件,需要重启ftp

[root@node2 ~]# /etc/init.d/vsftpd restart

四、vsftpd.conf详细参数

  anonymous_enable=YES(第12行)匿名用户是否可以登录 
  local_enable=YES(第16行)为本地用户是否可以登录 
  write_enable=YES(第19行)为本地用户能否可写 
  local_umask=xxx  (第23行)本地用户上传文件权限
  anon_upload_enable=YES(第29行)为匿名用户可以上传 默认目录 /var/ftp/
  anon_umask=xxx  (加在13行)  为匿名用户上传文件默认权限修改
  anon_mkdir_write_enable=YES(第33行)匿名用户建立目录
  anon_world_readable_only=NO(加在35)匿名用户下载 ##设置NO表示可以下载
  anon_other_write_enable=YES(加在15)匿名用户删除
  anon_root=/x   (加在16)设定匿名用户家目录
  max_clients=x (加在14行)表示最大可连接数
  anon_max_rate=x (加在15行)【单位是字节】表示最大速度
  dirmessage_enable=YES
  xferlog_enable=YES
  connect_from_port_20=YES
  chown_uploads=YES (第53行)开启上传文件的所有人
  chown_username=whoever (第54行)设定上传文件的所有人
  chown_upload_mode=0755 (加在55行 )设定上传的权限
  xferlog_std_format=YES
  local_root=/dir  (加在21) 本地用户家目录修改
  chroot_local_user=YES  (第107行)所有用户被锁定到自己的家目录中
  chroot_list_enable=YES (第108行)  启动列表[/白名单]
  chroot_list_file=/etc/vsftpd/chroot_list(第110行) 开启名单文件
  userlist_enable=YES (第130行)  列表生效
  userlist_deny=NO (加在131)将黑名单变成白名单
  user_config_dir=/etc/vsftpd/userconf (加) 虚拟用户配置指定文件
  pam_service_name=x(加) 这里的x和之前建立的虚拟用户文件名一致
  guest_enable=YES  (加)  虚拟用户生效
  guest_username=ftp  ## 默认是以ftp用户身份登陆

五、支持模式、传输方式、命令参数

1、支持模式
  • Port主动模式
    • FTP 客户端首先和服务器的TCP 21端口建立连接,用来发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。PORT命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端通过自己的TCP 20端口连接至客户端的指定端口发送数据。FTP server必须和客户端建立一个新的连接用来传送数据。
  • Passive被动模式
    • FTP 客户端首先和服务器的TCP 21端口建立连接,用来发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。PORT命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端通过自己的TCP 20端口连接至客户端的指定端口发送数据。FTP server必须和客户端建立一个新的连接用来传送数据。
2、传输方式
  • 文本(ASCII)方式:通常文本文件的传输采用ASCII方式,
  • 二进制(Binary)方式:图象、声音文件、加密和压缩文件等非文本文件采用二进制方式传输,
  • FTP以ASCII方式作为缺省的文件传输方式
3、命令参数
显示文件信息:DIR/LS
下载文件:GET 文件名(下载到当前目录)
上传文件:PUT 文件名
多文件下载:MGET
多文件上传:MPUT
退出:BYE
帮助:HELP

五、常见问题

  • 报错id解析
# 500 	文件系统权限过大
# 530 	用户认证失败
# 550	服务本身功能未开放
# 553 	本地文件系统权限过小
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值