linux笔记-ftp

来源:互联网 发布:手机淘宝登陆加载失败 编辑:程序博客网 时间:2024/04/25 20:49

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


1.什么是ftp


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


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

<
匿名用户家目录修改>
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