linux笔记-ftp

######################
#######vsftpd
服务
######
######################


1.什么是ftp


FTP
TCP/IP 协议组中的协议之一,是英文FileTransfer Protocol的缩写。该协议是Internet文件传送的基础,它由一系列规格说明文档组成,目标是提高文件的共享性,提供非直接使用远程计算机,使存储介质对用户透明和可靠高效地传送数据。简单的说,FTP就是完成两台计算机之间的拷贝,从远程计算机拷贝文件至自己的计算机上,称之为“下载(download)”文件。若将文件从自己计算机中拷贝至远程计算机上,则称之为“上传(upload)”文件。在TCP/IP协议中,FTP标准命令TCP端口号为21Port方式数据端口为20

ftp有两种连接类型:控制连接(21端口)、数据连接(分模式)

ftp有两种模式:

1、主动模式(PORT):客户端通过一个大于1024的端口去连接服务端的21端口,同时开放一个 N+1 端口进行监听并向服务端发送PORT N+1命令,服务端接收到消息后就通过默认20端口向客户端提供的 N+1 端口发送数据。

2、被动模式(PASV):客户端通知服务端自己处于被动模式。即:客户端通过一个大于1024的端口去连接服务端的21端口,同时开放N+1端口。然后向服务端发送PASV命令,告诉服务端自己处于被动模式。服务端收到命令后,开启一个大于1024的端口P进行监听,并向客户端发送 PORT  P 命令,通知客户端自己的数据端口是P。客户端收到后,会通过N+1端口连接服务端的P端口,然后进行数据传送。


2.
安装ftp

yum install vsftpd  -y  ##
安装vsftpd
systemctl start vsftpd ##
开启服务
systemctl stop firewalld ##
关闭防火强
systemctl enable vsftpd     ##
开机自动启动
setenforce 0                ##selinux
状态为disabled
id  ftp                 ##
能登陆并且显示,表示安装成功
# uid=14(ftp) gid=50(ftp)
=50(ftp)

3.vsftpd
文件信息


/var/ftp        ##
默认发布目录
/etc/vsftpd ##
配置目录

4.vsftpd
服务的配置参数

说明:配置文件 /etc/vsftpd/vsftpd.conf每次修改后都需要重启vsftpd服务,
如果出现 550 则表示服务不允许(需修改相关配置),553表示文件系统不允许(文件权限问题)或者是selinux的问题,500文件权限过大,530文件权限过小。

1
)匿名用户设定

<
匿名用户登录>
anonymous_enable=YES|NO     ##
匿名用户登录限制

<
匿名用户上传>
write_enable=YES            ##
允许登录用户有写权限
anon_upload_enable=YES  ##
允许匿名用户有上传文件(非目录)的权限
chgrp ftp /var/ftp/pub   ##
将所属用户组改为ftp
chmod 775 /var/ftp/pub   ##
权限设为775

/var/ftp  #匿名用户家目录不能有写的权限

<
匿名用户家目录修改>
anon_root=/direcotry    ##
使用匿名用户登录时,所进入的目录,默认/var/rtp。注意:匿名用户的家目录不能有777权限。

<
匿名用户上传文件默认权限修改>
anon_umask=xxx  ##
匿名用户上传文件时的umask值,上传后为 666-xxx

<
匿名用户建立目录>
anon_mkdir_write_enable=YES|NO  ##
匿名用户具有创建目录的权限(YES),默认为(NO)。注意:只有在write_enable=YES时才生效。

<
匿名用户下载>
anon_world_readable_only=YES|NO
##
如果为yes,则允许匿名用户下载可阅读的文档,默认为yes

<
匿名用户删除>
anon_other_write_enable=YES|NO 
##
默认为NO。如果为YES,匿名用户拥有删除和重命名的权限。注意:如果anon_upload_enable=NO,则匿名仅用户不能上传;如果anon_mkdir_write_enable=NO,则匿名用户不能上传或新建目录。

<
匿名用户使用的用户身份修改>
chown_username=username
##
上传文件后,文件所属用户发生变化

<
最大上传速率>
anon_max_rate=102400
##
上传文件的最大速率

<
最大链接数>
max_clients=number
##
最多同时允许几个人连接

2)
本地用户设定

local_enable=YES|NO     ##
本地用户登陆限制
write_enable=YES|NO     ##
本地用户写权限限制

<
本地用户家目录修改>
local_root=/directory
##
和匿名用户效果一致

<
本地用户上传文件权限>
local_umask=xxx
##
和匿名用户效果一致

<
限制本地用户进入上级目录>
chroot_local_user=YES
chmod u-w /home/*
##
若为YES,所有用户被锁定到自己的家目录中,不能进入上级目录。默认为NO

(1)
用户黑名单建立
#
名单/etc/vsftpd/chroot_lis里的用户不能进入上级目录
chroot_local_user=NO
chroot_list_enable=YES
#
启用chroot_list_file配置项指定的用户列表文件
chroot_list_file=/etc/vsftpd/chroot_list
#
用于指定用户列表文件,控制列表里的用户是否能进入家目录的上级目录

(2)
用户白名单建立
#
名单/etc/vsftpd/chroot_lis里的用户能进入上级目录
chroot_local_user=YES
chroot_list_enable=YES
#
启用chroot_list_file配置项指定的用户列表文件
chroot_list_file=/etc/vsftpd/chroot_list
#
用于指定用户列表文件,控制列表里的用户是否能进入家目录的上级目录

<
限制本地用户登陆>
vim /etc/vsftpd/ftpusers        ##
用户黑名单(优先级高)
vim /etc/vsftpd/user_list   ##
用户临时黑名单
userlist_enable=YES ##
启用user_list文件

用户白名单设定
userlist_deny=NO    ##
双重否定表肯定,只有在/etc/vsftpd/user_list  名单中的用户才能登录


<ftp
虚拟用户的设定>
创建虚拟帐号身份)
vim /etc/vsftpd/loginusers  ##
文件名称任意,奇数行为用户,偶数行为密码
ftpuser1
123
ftpuser2
123
ftpuser3
123

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

vim /etc/vsftpd/vsftpd.conf
pam_service_name=ckvsftpd   ##
/etc/pam.d/ckvsftpd文件名一致
guest_enable=YES                ##
允许虚拟用户登录

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


虚拟帐号家目录独立设定)
vim /etc/vsftpd/vsftpd.conf
local_root=/ftpuserhome/$USER   ##
用户目录 
user_sub_token=$USER        ##
用户配置文件所在目录,可为空

mkdir /ftpuserhome
chgrp ftpuser /ftpuserhome
chmod g+s /ftpuserhome
mkdir /ftpuserhome/ftpuser{1..3}


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

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


###vsftpd 的布尔变量

SELinux 对 FTP 的限制非常严格,不过系统管理员可以利用布尔值变量调整 SELinux 策略设置,定制 FTP 服务器功能。

下面是常用的布尔变量:

allow_ftpd_anon_write :关闭这个布尔变量会阻止 vsftpd 读取 public_content_rw_t 类型的文件和目录。如果允许用户通过 FTP 上传文件。必须开放这个布尔变量。

allow_ftpd_full_access:当开放这个布尔变量时只有 Linux(DAC)的权限来控制访问,通过验证的用户可以读取和写入标记为 public_content_t 或 public_content_rw_t 类型的文件。

allow_ftpd_use_cif:当开放这个布尔变量时 vsftpd 允许 cifs_t 类型的文件和目录,因此这个布尔变量启用,可以让你的 FTP 服务器可以使用 Samba 文件系统。
    
allow_ftpd_use_nfs vsftpd:的当开放这个布尔变量时 vsftpd 允许 nfs_t 类型的文件和目录,因此这个布尔变量启用,可以让你的 FTP 服务器可以使用 NFS 文件系统。
   
ftp_home_dir:当开放这个布尔变量时认证用户可以读写自己的主目录中的文件。
    
ftpd_connect_db:当开放这个布尔变量时允许 vsftpd 连接数据库。
    
httpd_enable_ftp_server:当开放这个布尔变量时容许的 httpd 作为 FTP 服务器,并且监听 FTP 端口。
    
tftp_anon_write:当开放这个布尔变量时允许 TFTP 访问一个公共的目录。








 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值