第九单元 部署 ftp 文件共享服务

简介:


1.部署 FTP 服务器
FTP ( 文件传输协议 ) 是 INTERNET 上仍常用的最老的网
络协议之一 , 它为系统提供了通过网络与远程服务器进行传
输的简单方法
在 RED HAT ENTREPRISE LINUX 6 中。 FTP 服务器包
的名称为 VSFTPD , 它代表 Very SecureFile Transfer
Protocol Damon 服务器名称也叫做 vsftpd
默认配置文件让 ANONYMOUS 用户只能下载位于
CHROOT 目录中的内容。 /var/ftp/ 这意味着远程FTP
客户端能以用户 anonymous 或 ftp 身份连接到服务器
( 无需密码 ), 并从 ftp 服务器上的 /var/ftp/ 目录下载文件
( 其本地 ftp 用户可以读取这些文件 )

2.安装与测试ftp
   39 vim /etc/sysconfig/selinux
   40 getenforce 
   41 reboot
   43 getenforce

wKioL1kBYeLhPgjXAAC12N9ZPZo146.png-wh_50

wKiom1kBYeKxqMjmAAChVfDZBtU324.png-wh_50

   44 vim /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0
BOOTPROTO=none
IPADDR=172.25.254.144
PREFIX=24
ONBOOT=yes
TYPE=Ethernet
 
   45 vim /etc/yum.repos.d/yum.repo
[rhel7.2]
name=rhel7.2
baseurl=http://172.25.254.44/rhel7.2
gpgcheck=0

   46 yum clean all
wKiom1kBYePBksRJAABSB1FUw34884.png-wh_50

   47 yum search ftp
   59 yum install vsftpd.x86_64 -y
   73 systemctl start vsftpd
   74 systemctl stop firewalld
   75 systemctl enable vsftpd

wKioL1kBYeSzCfwTAADyBVn6d80667.png-wh_50 

wKiom1kBYeXARpFYAAC2toW8KeM203.png-wh_50

wKiom1kBYsuiOjYPAAAv5v3Xgfo226.png-wh_50

   64 firewall-cmd --list-all 查看有哪些命令可以登陆

   65 firewall-cmd --permanent --add-service=ftp  添加允许登陆的命令
   66 firewall-cmd --reload     使新添加的命令生效
   67 firewall-cmd --list-all 查看

wKioL1kBYsvS3tqXAAC4mRIm8u0710.png-wh_50


测试服务
cd /var/ftp/pub/
touch file{1..3}

主机
lftp 172.25.254.144
lftp 172.25.0.10:~> ls  ##能登陆并且显示,表示安装成功
drwxr-xr-x 2 0 0
lftp 172.25.0.10:/> cd pub/
lftp 172.25.0.10:/pub> ls
-rw-r--r-- 1 0 0
-rw-r--r-- 1 0 0
-rw-r--r-- 1 0 0
42 Nov 20 07:19 pub
0 Nov 20 07:19 file1
0 Nov 20 07:19 file2
0 Nov 20 07:19 file3

wKioL1kBYsuiX0WpAABc7JHQv6M017.png-wh_50      

3.vsftpd文件信息
/var/ftp        ##默认发布目录
/etc/vsftpd     ##配置目录

4.vsftpd服务的配置参数
1)匿名用户设定
anonymous_enable=YES|NO     ##匿名用户登陆限制
wKiom1kBYsuStG9JAAA4lfFSfnI452.png-wh_50

[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
[root@localhost ~]# systemctl restart vsftpd
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
[root@localhost ~]# systemctl restart vsftpd
wKioL1kBYsyzEFGLAACCkzjeZ2M172.png-wh_50

#<匿名用户上传>
vim /etc/vsftpd/vsftpd.conf
write_enable=YES
anon_upload_enable=YES

wKioL1kBZIfzY1lAAABJLVyCcXU120.png-wh_50

   90 vim /etc/vsftpd/vsftpd.conf
   91 systemctl restart vsftpd
   92 ll -d /var/ftp/pub/
   93 id ftp
   94 chgrp ftp /var/ftp/pub/  更改用户组
   95 chmod 775 /var/ftp/pub/  设置权限
   96 ll -d /var/ftp/pub/
   97 history

wKioL1kBZN6CQmZuAACOCYdI7Ng067.png-wh_50

wKioL1kBZN7CSm47AAEJmNceFTw097.png-wh_50

#<匿名用户删除>

anon_other_write_enable=YES|NO

wKiom1kBZXDSm683AABL5tojsPQ677.png-wh_50


wKiom1kBZXHideIuAAD_v2SAL7Y592.png-wh_50



#<匿名用户家目录修改>
anon_root=/direcotry

[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
[root@localhost ~]# mkdir /westos/
[root@localhost ~]# cd /westos/
[root@localhost westos]# touch file{1..4}
[root@localhost westos]# cd
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
[root@localhost ~]# systemctl restart vsftpd


wKioL1kBZoDAW6qcAACdKe69kew986.png-wh_50


#<匿名用户上传文件默认权限修改>
anon_umask=xxx

wKioL1kBZw6Ry0iMAABeVqj5WWg533.png-wh_50wKiom1kBZoGAlrpOAACGUWs6kw0873.png-wh_50
#<匿名用户建立目录>
anon_mkdir_write_enable=YES|NO

wKioL1kBZ0ei1QvVAABK8kKd8s8443.png-wh_50wKiom1kBZw-jkPJ1AADBskEUWfE150.png-wh_50

#<匿名用户下载>

anon_world_readable_only=YES|NO ##设定参数值为no表示匿名用户可以下载
wKioL1kBZw-xJdeFAABy1ZmItsk784.png-wh_50

验证

[kiosk@foundation44 Desktop]$ lftp 172.25.254.144

lftp 172.25.254.144:~> cd /pub
cd ok, cwd=/pub
lftp 172.25.254.144:/pub> ls
drwxr-xr-x    2 14       50              6 Apr 26 06:33 old 目录
-rw-------    1 14       50           2453 Apr 26 06:25 passwd文件
drwxr-xr-x    2 14       50              6 Apr 26 06:33 westos目录
lftp 172.25.254.144:/pub> get westos   只能下载文件不能下载目录
get: Access failed: 550 Failed to open file. (westos)
lftp 172.25.254.144:/pub> get passwd
2453 bytes transferred



#<匿名用户使用的用户身份修改>
chown_uploads=YES
chown_username=student
wKioL1kBaAny7ldNAABX8JuTA_4447.png-wh_50

验证
[kiosk@foundation44 Desktop]$ lftp 172.25.254.144 -u student
Password: 
lftp student@172.25.254.144:~> ls     
lftp student@172.25.254.144:~> cd /pub
cd: Access failed: 550 Failed to change directory. (/pub)
lftp student@172.25.254.144:~> ls
lftp student@172.25.254.144:~> mkdir zhang
mkdir ok, `zhang' created
lftp student@172.25.254.144:~> ls
drwxr-xr-x    2 1000     1000            6 Apr 26 06:59 zhang
lftp student@172.25.254.144:~> quit

#<最大上传速率>?

wKioL1kBaAmS5euRAABOm3Dy-DE756.png-wh_50

anon_max_rate=102400
验证
[root@foundation44 ~]# dd if=/dev/zero of=/mnt/bigfile  bs=1 count=1000
1000+0 records in
1000+0 records out
1000 bytes (1.0 kB) copied, 0.00147583 s, 678 kB/s
[root@foundation44 ~]# dd if=/dev/zero of=/mnt/bigfile  bs=1 count=100000000
100000000+0 records in
100000000+0 records out
100000000 bytes (100 MB) copied, 130.492 s, 766 kB/s

#<最大链接数>?

max_clients=1

[root@foundation44 ~]#  lftp172.25.254.144
lftp 172.25.254.144:~> ls
drwxrwxr-x    4 0        50             42 Apr 26 06:33 pub
lftp 172.25.254.144:/>

root链接不退出

[kiosk@foundation44 Desktop]$ lftp 172.25.254.144
lftp 172.25.254.144:~> ls
Interrupt                              
desktop不能链接


2)本地用户设定
local_enable=NO     ##本地用户登陆NO
wKiom1kBaOCTt6puAAA7qqhElIo044.png-wh_50

验证

[kiosk@foundation44 Desktop]$ lftp 172.25.254.144 -u student
Password: 
lftp student@172.25.254.144:~> ls     
ls: Login failed: 530 This FTP server is anonymous only.
lftp student@172.25.254.144:~> quit
local_enable=YES    ##本地用户登陆YES
[kiosk@foundation44 Desktop]$ lftp 172.25.254.144 -u student
Password: 
lftp student@172.25.254.144:~> ls     
drwxr-xr-x    2 1000     1000            6 Apr 26 06:59 zhang
lftp student@172.25.254.144:~> 



write_enable=YES|NO     ##本地用户写权限限制?

#<本地用户家目录修改>
local_root=/directory


wKioL1kBaOCgXA_AAABMWexHXIA011.png-wh_50

验证

[kiosk@foundation44 Desktop]$ lftp 172.25.254.144 -u student
Password: 
lftp student@172.25.254.144:~> ls     
-rw-r--r--    1 0        0               0 Apr 26 06:07 file1
-rw-r--r--    1 0        0               0 Apr 26 06:07 file2
-rw-r--r--    1 0       0               0 Apr 26 06:07file3
-rw-r--r--    1 0        0               0 Apr 26 06:07 file4
lftp student@172.25.254.144:~> quit


#<本地用户上传文件权限>
local_umask=xxx

#<限制本地用户浏览/目录>
所有用户被锁定到自己的家目录中

chroot_local_user=YES
chmod u-w /home/*
wKiom1kBaOHRLwrjAABLbP0192Y473.png-wh_50

验证

[kiosk@foundation44 Desktop]$ lftp 172.25.254.144 -u student
Password: 
lftp student@172.25.254.144:~> ls     
drwxr-xr-x    2 1000     1000            6 Apr 26 06:59 zhang
lftp student@172.25.254.144:/> cd /home/
cd: Access failed: 550 Failed to change directory. (/home)
lftp student@172.25.254.144:/> cd /mnt
cd: Access failed: 550 Failed to change directory. (/mnt)
lftp student@172.25.254.144:/> quit

[kiosk@foundation44 Desktop]$ lftp 172.25.254.144 -u student
Password: 
lftp student@172.25.254.144:~> cd /mnt/
cd ok, cwd=/mnt                      
lftp student@172.25.254.144:/mnt> cd /home/
cd ok, cwd=/home
lftp student@172.25.254.144:/home> ls
dr-x------    5 1000     1000           96 Apr 26 06:59 student
lftp student@172.25.254.144:/home> 


#<限制本地用户登陆>
vim /etc/vsftpd/ftpusers        ##用户黑名单
vim /etc/vsftpd/user_list       ##用户临时黑名单
wKioL1kBamnDaV8SAABUXU8b2Ig747.png-wh_50

用户黑名单建立
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/user_list

验证
[kiosk@foundation44 Desktop]$ lftp 172.25.254.144 -u westos
Password: 
lftp westos@172.25.254.144:~> ls      
ls: Login failed: 530 Permission denied.          
lftp westos@172.25.254.144:~> quit
[kiosk@foundation44 Desktop]$ lftp 172.25.254.144 -u linux
Password: 
lftp linux@172.25.254.144:~> ls
ls: Login failed: 530 Permission denied.          
lftp linux@172.25.254.144:~> quit
[kiosk@foundation44 Desktop]$ lftp 172.25.254.144 -u student
Password: 
lftp student@172.25.254.144:~> ls     
drwxr-xr-x    2 1000     1000            6 Apr 26 06:59 zhang

[kiosk@foundation44 Desktop]$ lftp 172.25.254.144 
lftp 172.25.254.144:~> ls
drwxrwxr-x    4 0        50             42 Apr 26 06:33 pub
lftp 172.25.254.144:/> quit

用户白名单设定
userlist_deny=NO
/etc/vsftpd/user_list   ##参数设定,此文件变成用户白名单,只在名单中出现的用户可以登陆ftp 
用户白名单建立
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/user_list


#<ftp虚拟用户的设定>
创建虚拟帐号身份)
vim /etc/vsftpd/loginusers  ##文件名称任
ftpuser1
123
ftpuser2
123
ftpuser3
123
wKioL1kBa3ux3ngCAAAa15Dz3xw487.png-wh_50

db_load -T -t hash -f /etc/vsftpd/loginusers loginusers.db

vim /etc/pam.d/ckvsftpd     ##文件名称任意
account     required    pam_userdb.so   db=/etc/vsftpd/loginusers
auth        required    pam_userdb.so   db=/etc/vsftpd/loginusers
wKiom1kBa3vQari7AABA8Q68F1g225.png-wh_50

vim /etc/vsftpd/vsftpd.conf
pam_service_name=ckvsftpd
guest_enable=YES

wKiom1kBa3vhbEbhAAA2r7wj1bQ672.png-wh_50

wKioL1kBa3qC808wAABYzjjU-lA551.png-wh_50

虚拟帐号身份指定)
guest_username=westos

wKiom1kBbM3CDjW7AABAuofCULI029.png-wh_50

chmod u-w /home/westos

验证
lftp usre1@172.25.254.144:~> lftp 172.25.254.144 -u user1
Password: 
lftp user1@172.25.254.144:~> ls
drwxrwxr-x    4 0        50             42 Apr 26 06:33 pub
lftp user1@172.25.254.144:/> quit

kiosk@foundation44 Desktop]$ lftp 172.25.254.144 -u user1
Password: 
lftp user1@172.25.254.144:~> ls       
lftp user1@172.25.254.144:/> quit


虚拟帐号家目录独立设定)
vim /etc/vsftpd/vsftpd.conf
local_root=/ftpuserhome/$USER

user_sub_token=$USER

wKiom1kBba-BS166AAA9iju9LRA076.png-wh_50

 [root@localhost ~]# mkdir /ftpuserhome/ftpuserhome

[root@localhost ~]# id westos
uid=1002(westos) gid=1002(westos) groups=1002(westos)
[root@localhost ~]# chgrp westos /ftpuserhome
[root@localhost ~]# chmod g+s /ftpuserhome
[root@localhost ~]# mkdir /ftpuserhome/user{1..3}
[root@localhost ~]# touch /ftpuserhome/user1/file1
[root@localhost ~]# touch /ftpuserhome/user2/file2
[root@localhost ~]# touch /ftpuserhome/user3/file3

wKiom1kBbbDSP9g1AACN1gP8TEU580.png-wh_50


虚拟帐号配置独立
vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/userconfig
mkdir -p /etc/vsftpd/userconfig

wKiom1kBbwewnH1gAABM_kE_u3s208.png-wh_50wKiom1kBbpvx_kWAAABUZTdPb0Q734.png-wh_50

vim /etc/vsftpd/userconfig/ftpuser1
在此文件中设定配置文件中的所有参数,此文件的优先级搞
anon_other_write_enable=YES

wKioL1kBb06wl27pAAB7VlBpr_w863.png-wh_50










本文转自 如何何如  51CTO博客,原文链接:http://blog.51cto.com/12778805/1919976,如需转载请自行联系原作者
目录
相关文章
|
2月前
|
监控 Ubuntu 安全
Ubuntu开启FTP服务教程
在Ubuntu服务器上配置FTP服务是一个常见的需求,无论是用于文件分享、网站管理还是数据备份。FTP(文件传输协议)是一种用于在网络上传输文件的协议,它可以让用户通过身份验证下载或上传文件。本文将指导您如何在Ubuntu系统上安装和配置FTP服务器,以及如何管理用户权限来保证服务器的安全性。
122 0
|
3月前
|
安全 算法 网络协议
【Linux】文件服务FTP(File Transfer Protocol)
【Linux】文件服务FTP(File Transfer Protocol)
52 0
|
4月前
|
开发框架 Java 数据处理
多sheet页导出 + FTP上传文件实战
多sheet页导出 + FTP上传文件实战
|
4月前
|
网络协议 安全 Linux
小白带你学习文件共享服务器FTP和SAMBA的学习(二十二)
小白带你学习文件共享服务器FTP和SAMBA的学习(二十二)
82 0
|
17天前
|
Ubuntu 网络安全 数据安全/隐私保护
ubuntu篇-配置FTP服务,本机和docker安装
通过以上步骤,你可以在Ubuntu上配置FTP服务,无论是本机安装还是Docker内安装,都可以提供FTP文件传输服务。 买CN2云服务器,免备案服务器,高防服务器,就选蓝易云。百度搜索:蓝易云
20 1
|
1月前
|
监控 安全 测试技术
使用pyftpdlib组件实现FTP文件共享
使用pyftpdlib组件实现FTP文件共享
29 0
|
2月前
|
Java
java上传、下载、预览、删除ftp服务器上的文件
java上传、下载、预览、删除ftp服务器上的文件
|
2月前
|
弹性计算 Ubuntu
Ubuntu 20.04安装FTP服务
以阿里云ECS为服务器,搭建FTP服务并在本机使用FileZilla连接服务。
320 2
|
3月前
|
存储 数据处理
Dataphin集成任务支持自定义FTP标记完成文件内容(V3.14)
在文件传输的场景中,标记完成文件(有时也被称为标档文件)作为一种重要的确认机制被广泛应用。这一机制通过创建特定的“传输完成标识文件”,用于明确指示数据文件已成功完成全量传输,并达到可以进行下一步业务处理的状态,从而有效防止了基于不完整数据流的错误操作。
|
4月前
|
Docker 容器
docker 安装ftp服务
docker 安装ftp服务