FTP的搭建及虚拟用户

yum -y install vsftpd

一.关于匿名上传、下载、删除、创建、改名

anonymous_enable=YES

anon_umask=022

anon_root=/var/ftp

anon_upload_enable=YES

#容许匿名用户上传文件

anon_mkdir_write_enable=YES

#容许匿名用户建立目录

anon_other_write_enable=YES

#容许匿名用户除了新建和上传外的其他权限,如:删除、更名。

anon_max_rate=0

默认是可以下载,要上传等,除上述还要chmod -R 777 /var/ftp/pub  //要是子目录777。对母目录777 linux系统会保护,注意:有些windos文件名有特殊符号,可能无法删除和改名(linux语言用英文)

二.关于本地上传

local_enable=yes

#是否可以本地系统用户访问

local_umask=022

#设置本地用户所上传文件的默认权限掩码值

local_root=/data/ftp

#设置本地用户的ftp根目录(缺省为用户的宿主目录)

chroot_local_user=yes

#是否将ftp本地用户禁锢在宿主目录中

local_max_rate=0

#限制本地用户的最大传输速率(0为不限制),单位为字节/秒

也需要chmod -R 777 /data/ftp/pub

 

##用户黑名单建立##   注意:此名单中的用户会被锁到自己的家目录中
chroot_local_user=NO
chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/chroot_list

##用户白名单建立##   注意:除了此名单中的用户,其余用户都会被锁定到家目录中

中chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

##限制本地用户登陆##

vim /etc/vsftpd/ftpusers   ##用户永久黑名单(且优先级比user_list文件高)

三.全局

listen=yes

#是否以独立运行的方式监听服务

listen_address=0.0.0.0

#设置监听ftp服务的IP地址

listen_port=21

#设置监听FTP服务的端口号

write_enable=yes

#启用任何形式的写入权限(如上传,删除文件等)都需要开启此项

download_enable=yes

#是否可以下载文件(建立仅限浏览,上传的ftp服务器时可将其设为“no”)

dirmessage_enable=yes

#用户切换进入目录时显示.message文件(如果存在)的类容

xferlog_enable=yes

#启用xferlog日志,默认记录到/var/log/xferlog

xferlog_std_format=yes

#启用标准的xferlog日志格式,若禁用此项,将使用vsftpd自己的日志格式

connect_from_port_20=yes

#同意服务器主动模式(从20端口建立数据连接)

pasv_enable=yes

#同意被动模式连接

pasv_max_port=24600

#设置用于被动模式的服务器最大端口号

pasv_min_port=24500

#设置用于被动模式的服务器最小端口号

pam_service_name=vsftpd

#设置用于用户认证PAM文件位置(/etc/pam.d/目录中对应的文件名)

userlist_enable=yes

#是否启用user_list用户列表文件  /etc/vsftpd/ptpusers

userlist_deny=yes

#是否禁用user_list列表文件中的用户账号 /etc/vsftpd/uer_list

max_clients=0

#最多同意多少个客户端同是连接(0为不限制)

max_per_ip=0

#对来自同一个ip地址的客户端,最多同意多少个并发连接(0为不限制)

tcp_wrappers=yes

#是否启用TCP_Wrappers主机访问控制

四.开启虚拟用户                                  

guest_enable=YES

#启用用户隐射功能  

guest_username=share  

#映射的系统用户名字 本地用户

pam_service_name=share  

#指定 pam认证文件

user_config_dir=/etc/vsftpd/share_dir

 在开启匿名或者本地用户登入FTP都是给一样的权限,不方便管理,才有了虚拟用户

 #################################

1.虚拟用户FTP配置文件

#cat  /etc/vsftpd/vsftpd.conf

anonymous_enable=NO

local_enable=YES

write_enable=YES    

local_umask=022

anon_umask=022

dirmessage_enable=YES

xferlog_enable=YES

connect_from_port_20=YES

xferlog_file=/var/log/xferlog

xferlog_std_format=YES

ascii_upload_enable=YES     #允许上车费ascii格式文件

ascii_download_enable=YES

ftpd_banner=Welcome to blah FTP service.

chroot_local_user=YES   #禁锢用户的家目录

chroot_list_enable=NO   #不启用本地禁用目录,使用虚拟用户时不需要开户本地列表过滤

listen=YES

listen_ipv6=NO

allow_writeable_chroot=YES  #可以写,因为禁锢家目录需要去掉用户写权限

tcp_wrappers=YES

guest_enable=YES    #开启虚拟账户功能

guest_username=share  #虚拟账户映射到本地哪个用户

pam_service_name=share  #加载pam.d中哪个文件的机制

user_config_dir=/etc/vsftpd/share_dir  #虚拟用户的单个权限

 

2.创建本地用户

 useradd  -s /sbin/nologin  share     或者useradd -s /sbin/nologin  -d  指定目录  share

注意:后续虚拟用户可以指定share家目录,也可以指定目录,需要##chow -R share.share 指定目录##用户权限,不需要用777权限

3.创建虚拟用户,并对密码文件进行db格式的转化

#cat /etc/vsftpd/share

zhangsan

abc123

lishi

abc123

#db_load -T -t hash -f  /etc/vsftpd/share  /etc/vsftpd/share.db  //没有db命令用yum安装db4-utils

#chmod 600 /etc/vsftpd/share.db

#mv /etc/vsftpd/share  /etc/vsftpd/share.primitive

4.用户密码设定及db解析的设定

#cat /etc/pam.d/share

auth required    /usr/lib64/security/pam_userdb.so  db=/etc/vsftpd/share

account required  /usr/lib64/security/pam_userdb.so   db=/etc/vsftpd/share

auth是指对用户的用户名口令进行验证。
accout是指对用户的帐户有哪些权限哪些限制进行验证。
再后面的/lib/security/pam_userdb.so表示该条审核将调用pam_userdb.so这个库函数进行。
注意该函数会根据系统的位数而所在位置不同,可以通过rpm –ql pam查看或者find / -name pam_userdb.so
同时db指向的文件实际上指向的share.db ,但默认省略db后缀,故上述db的指向时在配置的时候不能写为share.db

5.设置虚拟用户的权限

在配置文件中user_config_dir=/etc/vsftpd/share_dir  这个路径下创建和虚拟用户名一样的文件

#cat /etc/vsftpd/share_dir/zhangsan

local_root=/home/share

anon_upload_enable=yes          #允许上传

anon_world_readable_only=no      #关闭只可读

anon_mkdir_write_enable=yes       #允许新建目录

anon_other_write_enable=yes       #允许修改目录/文件名称,删除

 #cat /etc/vsftpd/share_dir/lishi

anon_world_readable_only=no

anon_upload_enable=yes

anon_mkdir_write_enable=no

anon_other_write_enable=no

local_root=/home/share

6.systemctl restart vsftpd

你可能感兴趣的:(FTP的搭建及虚拟用户)