FTP服务概述

FTP连接及传输模式

        控制连接:TCP21,用于发送FTP命令信息

        数据连接:TCP 20,用于上传、下载数据

        数据连接的建立类型

                主动模式:服务端从20端口主动向客户端发起连接

                被动模式:服务端在指定范围内某个端口被动等待客户端连接

FTP传输模式

        文本模式:ASCLL模式,以文本序列传输数据

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

FTP用户类型

        匿名用户:anonymous或ftp

        本地用户:

                账号名称、密码等信息保存在passwd、shadow文件中

        虚拟用户:

                使用独立的账号/密码数据文件

常见的FTP服务器程序

        IIS、Serv-U

        wu-ftpd、Proftpd

        vsftpd

常用的匿名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

        安装vsftpd

yum -y install vsftpd

         启动vsftpd服务,设置为开机自启动

systemctl start vsftpd
systemctl enable vsftpd

使用命令行下载,上传ftp服务

        1.下载ftp服务

yum -y install ftp

        2.连接第一台虚拟机,参考如图操作

                1.dir :用于列出FTP服务器上的目录内容

                2.get 文件名   下载:可以把连接的虚拟机的指定文件下载到,当前所在位置中

ftp> get kgc.txt
local: kgc.txt remote: kgc.txt
227 Entering Passive Mode (192,168,27,131,27,218).
150 Opening BINARY mode data connection for kgc.txt (16 bytes).
226 Transfer complete.
16 bytes received in 3.2e-05 secs (500.00 Kbytes/sec)

                3.quit : 退出

                4.上传 : put

put anaconda-ks.cfg 

                        1.失败原因,匿名用户只能读,不能写

匿名上传      

          1.在第一台虚拟机中编辑 /etc/vsftpd/vsftpd.conf配置文件,在12行添加以下信息(方便管理)

anonymous_enable=YES
anon_umask=022
anon_upload_enable=yes
anon_mkdir_write_enable=yes
anon_other_write_enable=yes

                2.重启vsftpd服务

                3.更改文件或目录的所有者为ftp(为了让客户端上传)

[root@bogon ~]# ls -l /var/ftp/
总用量 0
drwxr-xr-x 2 root root 21 6月  13 08:47 pub
[root@bogon ~]# chown ftp /var/ftp/pub/
[root@bogon ~]# ls -l /var/ftp/

                4.切换到第二台机器,退出(quit)   重新登录

                5.切换到pub目录,put上传

cd pub
put anaconda-ks.cfg 

        本地上传

                1.在服务端使用vi编辑vsftpd.conf配置文件为如图

                 2.在客户端连接ftp ,登录服务端创建的账号

                3.测试上传下载是否可以(下载的文件都在登录的普通用户的家目录,即  /home/普通的用户 )

                4.权限控制 /etc/vsftpd/user_list

                         1.如图信息代表黑名单,即在尾部添加用户,即禁用用户,服务端就不可在登录

                          2.相反即代表白名单

        虚拟用户

                1.编辑并创建文件

vi /etc/vsftpd/vusers.list

                 2.添加如图虚拟用户

[root@bogon vsftpd]# cat /etc/vsftpd/vusers.list 
lisi
123
wangwu
123
zhanglong
123
zhaohu
123
jingsang
123

                3.在/etc/vsftpd/目录下使用hash算法加密 

 db_load -T -t hash -f vusers.list vusers.db

                4.设置权限(将 /etc/vsftpd/ 目录下所有以 vusers. 开头的文件的权限更改为只有文件所有者可以读和写,而组和其他用户都没有任何权限)

chmod 600 /etc/vsftpd/vusers.*

                        1.第一个数字(6)代表文件所有者的权限。6 是 4 + 2 的和,表示文件所有者有读(4)和写(2)权限,但没有执行(1)权限。

                        2.第二个数字(0)代表与文件关联的组的权限。0 表示该组的成员没有任何权限(读、写或执行)。

                        3.第三个数字(0)代表其他所有用户的权限。同样,0 表示其他用户没有任何权限(读、写或执行)

                5.测试

                        1.创建用户(创建一个名为 kc65 的新用户,他们的家目录是 /var/ftproot,并且他们不能直接登录到系统(因为他们的shell是 /sbin/nologin)。这样的设置通常用于为FTP服务或其他需要特定家目录但不需要直接shell访问的服务创建用户)

useradd -d /var/ftproot -s /sbin/nologin kc65

                        2.设置权限

chmod 755 /var/ftproot/

                                        7 是 4 + 2 + 1(读、写、执行),5 是 4 + 1(读、执行) 

                        3.添加pam认证

[root@bogon vsftpd]# cat /etc/pam.d/vsftpd.vu 
auth    required pam_userdb.so db=/etc/vsftpd/vusers
account required pam_userdb.so db=/etc/vsftpd/vusers

                        4.修改配置文件vsftpd.conf,根据如图信息,在尾部修改为如图

#pam_service_name=vsftpd
pam_service_name=vsftpd.vu
guest_enable=yes
guest_username=kc65
userlist_enable=YES
tcp_wrappers=YES

                        5.重启服务,在服务端连接登录测试

为不同的虚拟账户建立独立的配置文件

[root@localhost ~]# vi /etc/vsftpd/vsftpd.conf

添加:

user_config_dir=/etc/vsftpd/vusers_dir

[root@localhost vusers_dir]# vi john

添加:

anon_upload_enable=yes

anon_mkdir_write_enable=yes

anon_other_write_enable=yes

[root@localhost vusers_dir]# touch mike

[root@localhost vusers_dir]# systemctl restart vsftpd

  • 22
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值