FTP服务

一 FTP数据传输原理  
    1.FTP:(文件传输协议) 能够让用户在互联网中上传、下载文件的文件协议。(完成在服务器和客户端之间的文件传输)
    2.FTP服务器工作模式。
        FTP服务器连接使用命令通道数据通道。
        1.主动模式
            
            1.建立命令通道。(主动和被动模式是一样的)
                客户端随机端口AA去连接(TCP)服务器端口21,就可远程对服务器执行命令(查询,上传和下载等)(就相当ssh远程控制)。
       2.客户端需求数据时(命令下载或上传的执行)
                通知FTP服务器使用传输模式(Activ)和客户端提供的数据流传输的端口号(BB)。 等待服务器连接。
            3.FTP服务器主动向客户端连接
                FTP服务器了解客户需要数据后,会服务器主动用端口20去连接(TCP)客户端提供端口BB。数据传输通道建立成功。(数据通道只有有数据传输行为时才会连接)
       主动模式问题注意:
                如果客户端在局域网下,数据可能无法正常传输。
                防火墙的NAT会记录它内部主机(客户端)向外部连接的信息,返回数据NAT会分配找到相应局域网下的主机(客户端)。服务器主动连接客户端时,服务器只能知道客户端的NAT的IP,即公网IP,就会找不到真正的客户端,数据就无法正常传输。
                
            解决方法:局域网下的防火墙加入FTP检测模块,来分析识别数据来向是否是所需服务器的连接,而分配给对应的主机。
        2.被动模式
            
            1.建立命令通道(同主动模式)
            2.客户端需求数据
                客户端发送PASV的连接请求。等待服务器回应
            3.FTP服务器被动启用数据。
                FTP服务器响应客户端请求,会告知客户端它(服务器)数据传输端口号(CC
            4.客户端向服务端连接
                客户端会开放随机端口(BB),去服务器的数据传输端口(CC连接
       (主动服务和被动服务是相对于服务器来讲的。主动和被动服务在命令行通道都是相同的,区别是建立数据传输不同,分了主被动。)
    3.FTP服务器访问的用户模式
        匿名用户访问模式(anonymous)、本地用户访问模式(local user)、虚拟用户访问模式(访客 guest)。
二 FTP服务管理
    1.FTP服务软件安装
        yum install vsftpd 服务器vsftp安装
        yum install ftp 客户端ftp安装
    2.vsftpd配置文件(/etc/vsftpd/vsftpd.conf
        
环境参数 作用
listen=YES/NO 是否以独立运行的方式监听服务
listen_port=21 设置FTP监听端口
connect_from_port_20=YES/NO ftp主动连接使用端口(支持主动连接)
pasv_enable=YES/NO 是否支持数据流的被动连接
allowed_writeable_chroot=YES/NO
是否允许禁锢的FTP根目录可写而不拒绝用户登录请求
download_enable=YES/NO 是否允许下载文件
write_enable=YES/NO
是否允许所有人上传数据
xferlog_enable=YES/NO
xferlog_file=/var/log/xferlog
xferlog_std_format=YES/NO
是否记录上传下载日志
是否支持WuFTP日志格式
max_clients=0 最大客户端连接数,0为不限制
max_per_ip=0 同一IP地址最大连接数,0为不限制
pam_service_name=vsftpd
在pam(身份认证用的)里设置的名称
(/etc/pam.d/vsftpd设置/etc/vsftpd/ftpusers里面用户不可登录)
banner_file=file 设置登录用户时显示欢迎字
dirmessage_enable=YES/NO 若目录有 .message  则显示文件爱你内容
use_localtime=YES/NO 是否使用本地时间(默认格林时间)


用户参数 作用


userlist_enable=YES/NO
userlist_deny=YES/NO
userlist_file=/etc/vsftpd/user_list
是否启用FTP阻止机制(FTP帐号管控)
只禁止(YES)或只启用(NO)“登录用户名单”
名单目录(设置时目录必须存在)


anonymous_enable=YES/NO
是否允许匿名用户登录
anon_root=/var/ftp 匿名用户的FTP根目录
anon_umask=***(022) 匿名用户默认权限
anon_upload=YES/NO 是否允许匿名用户上传
(前提允许写入,SElinux规则允许)
anon_mkdir_write_enable=YES/NO 是否允许匿名用户创建目录
anon_other_write_enable=YES/NO 是否允许匿名用户修改目录名或删除目录
anon_max_rate=0
匿名用户最大传输速率(字节),0为不限速


local_enable=YES/NO
是否允许本地用户登录
local_umask=***(022)
本地用户默认权限
local_root=/var/tfpls 本地用户的FTP根目录
chroot_local_user=YES/NO
chroot_list_enable=YSE/NO
chroot_list_file=/etc/vsftpd/chroot_list
是否将用户禁锢在用户主目录
是否允许用户列表用户不被禁锢
用户列表(设置时目录必须存在)
local_max_rate=0 本地用户最大传输速率(字节),0为不限制


guest_enable=YES/NO 开启虚拟用户(访客)模式
guest_username=virtual 指定虚拟用户帐号
pam_service_name=vsftpd.vu 指定pam文件


三 FTP服务器针对不同用户不同权限的搭建 
    (/etc/vsftpd/vsftpd.conf
    1.总体环境设置
        
    2.匿名用户和本地用户配置
        
        设置开放匿名用户和本地用户(保证正常使用,应设置正确的防火墙和SELlinux权限
        匿名用户可在/var/ftp/pub(ftp用户目录)目录下可上传下载文件。在/var/ftp(即用户的根目录只能下载)
        本地用户未授chroot特权前,只能在/var/ftp下,且权限受到极大限制(不是ftp限制,是文件本身权限限制)。
        本地用户授chroot权后本地用户可执行本地用户本身可执行且ftp允许的权限。
    3.虚拟用户配置流程(启用虚拟用户后,本地用户会被禁止登录)
        1.建立本地映射用户并设置宿主目录权限(所有虚拟用户登录的家目录就是下面目录)
            useradd -d /var/ftp/virtual -s /sbin/nologin ftpvuser
            chmod 700 /var/ftp/virtual (不允许其它用户进入)
        2.添加ftp的虚拟用户
            vi /etc/vsftpd/vuser.txt(单行帐号,双行密码)
        3.db_load生成FTP用户数据库文件(生成完成后就可删除vuser.txt)
            db_load -T -t hash -f  /etc/vsftpd/ vuser.txt  /etc/vsftpd/vuser.db
        4.编辑vsftpd的PAM认证文件
            vim /etc/pam.d/vsftpd
                auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vuser (.db省略)
                account required /lib/security/pam_userdb.so db=/etc/vsftpd/vuser
        5.配置/etc/vsftpd/vsftpd.conf虚拟用户
            
         重启ftp.
         6.vim /etc/vsftpd/vuser_conf/vusername 配置虚拟用户针对个人的权限
         (配置时采用匿名参数设置)
参考书籍《linux就改这么学》《鸟哥服务器》
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值