学习centoss第十天---vsftpd配置

一、Vsftpd 服务器安装配置

(1)在命令行执行如下命令

yum   install   vsftpd* 

(2)查看vsftpd 安装后的文件路径、启动Vsftpd服务及查看进程是否启动

rpm    -ql       vsftpd|more

service   vsftpd   restart(centos 6) systenctl  restart  vsftpd.service

ps          -ef | grep vsftpd

(3)Vsftpd.conf默认位置详解如下

anonymous_enable=YES

开启匿名访问

local_enable=YES

启用本地系统用户访问

write_enable=YES

本地系统用户写入权限

local_umask=022

本地用户创建文件及目录的默认权限掩码

dirmssage_enable=YES

打印目录信息,通常用于用户第一次访问目录时,信息提示

xferlog_enable=YES

启用上传/下载日志记录

connect_from_port_20=YES

FTP 使用20端口进行数据传输

xferlong_std_foemat=YES

日志文件根据xferlog的标准格式写入

listen=YES

Vsftpd不以独立的服务启动,通过Xinetd服务管理,

listen_ipv6=YES

启动IPV6 监听

pam_service_name=vsftpd

登录FTP服务器,依据/etc/pam.d/vsftpd中内容进行认证

userlist_enable=YES

vsftpd.user_listftpusers 配置文件里用户禁止访问FTP

tcp_wrappers=YES

设置vsftpdtcp wrapper结合进行逐级的访问控制,Vsftpd服务器检查/etc/host.allow/etc/hosts.deny中的设置,来决定请求连接的主机,是否允许访问改FTP服务器

 

 

2、匿名登录设置

 anon_upload_enable=YES         // 如果允许匿名登录,是否开启匿名上传权限

 anon_mkdir_write_enable=YES   //如果允许匿名登录,是否允许匿名建立文件夹并在文件夹内上传文件

 anon_other_write_enable=yes   // 如果允许匿名登录,匿名帐号可以有删除的权限

 anon_world_readable_only=no    //如果允许匿名登录,匿名的下载权限,匿名为Other,可设置目录/文件属性控制

 anon_max_rate=30000            // 如果允许匿名登录,限制匿名用户传输速率,单位bite

3、限制登录 

userlist_enable=yes      //用userlist来限制用户访问

userlist_deny=no          //名单中的人不允许访问

userlist_file=/etc/vsftpd/userlist_deny.chroot     //限制名单文件放置的路径

4、限制目录

 chroot_local_user=yes   //限制所有用户都在家目录

 chroot_list_enable=YES   //调用限制在家目录的用户名单

 chroot_list_file=/etc/vsftpd/chroot_list   //限制在家目录的用户名单所在路径

 

5、安全设置

  idle_session_timeout=600  //用户空闲超时,单位秒

  data_connection_timeout=120   //数据连接空闲超时,单位秒

  accept_timeout=60    //将客户端空闲1分钟后断开

  local_max_rate=10000  //本地用户传输速率,单位bite

  max_clients=100      //FTP的最大连接数

 

注意:FTP主被动模式,默认为主动模式,设置被动模式使用端口方法如下

pasv_enable=YES
pasv_min_port=60000

pasv_max_port=60100

 

 

二 、Vsftpd 匿名用户配置:

(1)Vsftpd 默认以匿名用户访问,匿名用户默认访问的FTP服务器端路径为:/var/ftp/pub,匿名用户只有查看权限,无法创建、删除、修改。如果需要关闭FTP匿名用户访问,需要修改配置文件/etc/vsftpd/vsftpd.conf,将anonymous_enable=YES中的YES改成NO,重启Vsftpd服务即可。

(2)如果允许匿名用户能够上传文件、下载、删除,需在/etc/vsftpd/vsftpd.conf配置问价中加入以下代码:

anon_upload_enable=YES                              允许匿名用户上传文件

anon_mkdir_write_enable=YES                      允许匿名用户创建目录

anon_other_write_enable=YES                       允许匿名用户其他写入权限(删除)

(3)匿名用户完整的Vsftpd.conf 配置文件代码如下:

anonymous_enable=YES

local_enable=YES

write_enable=YES

local_umak=022

anon_upload_enable=YES

anon_mkdir_write_enabe=YES

anon_other_write_enable=YES

dirmessage_enable=YES

xferlog_enable=YES

connect_from_port_20=YES

xferlog_std_format=YES

listen=YES

listen_ipv6=YES

pam_service_name=vsftpd

userlist_enable=YES

tcp_wrappers=YES

 注意:由于默认Vsftpd匿名用户有两种:anonymous、ftp,所以匿名用户如果需要上传文件、删除及修改等权限,需要ftp用户对/var/ftp/pub目录有写入权限,使用以下一条命令即可。

无论是对 ftp,改组,改用户,改权限都不能在ftp根目录下,上传东西,要么就是ftp匿名无法连接,要么就是不能上传;折腾了几天,终于明白了!

ftp 作为匿名用户根目录,vsftpd有特殊处理;

 vsftpd对此 ftp 根目录,有两点特殊要求;该用户所有者必须是root,该目录的权限对其他不能为 w;

也就是说其他人,匿名用户来说 ftp 目录是根目录,只能是只读的,不能上传,不能更改;如下官方解释

1.匿名用户就是ftp,想要匿名用户写入,必须文件夹的权限为ftp可写。

2.匿名用户的根目录不允许,所以根目录的权限绝对不能是ftp可写和其他用户可写,如果根目录所有者为ftp的话,所有者的权限也不能写。

所以解决方法是建个单独的public文件夹用于上传文件,设置其为ftp可写或”其他用户可写“

还可建个download文件夹只用于下载,设置其他用户没有写权限便可。

 

chown  -R  ftp   pub/

chomd     O+w   pub/

三、Vsftpd 系统用户配置

保证目录或文件专属拥有者,Vsftpd可以实现该需求。实现Vsftpd系统用户验证,只需在linux中创建多个用户。

(1)创建系统用户li、le,密码分别是123456

useradd  li

useradd  le

echo   12356|passwd    --stdin   li

echo   123456|passwd     --stdin    le

(2)修改Vsftpd.conf配置文件代码如下

anonymous_enable=NO

local_enable=YES

write_enable=YES

local_umak=022

dirmessage_enable=YES

xferlog_enable=YES

connect_from_port_20=YES

xferlog_std_format=YES

listen=YES

listen_ipv6=YES

pam_service_name=vsftpd

userlist_enable=YES

tcp_wrappers=YES

注意:登录ftp时,系统用户默认访问的FTP服务端路径为:/home/li (home目录下的用户名),此时我们发现可以进入根目录,这对系统极不安全,我们在配置文件里更改以下注释内容:

在/etc/vsftpd/chroot_list 添加用户,这个用户可以访问FTP服务端的根目录及其他权限较大的目录,第一行是用户名,第二行是密码。

 

四、Vsftpd 虚拟用户配置

1.如果基于Vsftpd系统用户访问FTP服务器,系统用户多不利于管理,而且不利于系统的安全,为了更加安全的使用VSFTPD,需要使用Vsftpd 虚拟用户方式

2.Vsftpd 虚拟用户原理:虚拟用户就是没有实际的真实系统用户,而是通过映射到其中一个真实用户以及设置相应的权限来实现访问验证,虚拟用户不能登录linux系统,从而让系统更安全可靠

3.配置Vsftpd 虚拟用户配置步骤如下:

(1)安装Vsftpd 虚拟用户需用到的软件及认证模块

yum    install    pam*  libdb-utils   libdb*  --skip-broken

(2)在/etc/vsftpd 目录下创建虚拟用户临时文件,如ftpusers.txt 新建虚拟用户和密码,其中yiteng001、yiteng002为虚拟用户名,123456为密码,如果有多个用户,依次按照格式填写 

 

(3)生成Vsftpd虚拟用户数据库认证文件,设置权限为700:

db_load               -T  -t  hash   -f  /etc/vsftpd/ftpusers.txt    /etc/vsftpd/vsftpd_login.db

  chmod    700  /etc/vsftpd/vsftpf_login.db

 

(4)配置pam认证文件,

(5)在/etc/pam.d/目录下,新建文件 vsftpd.xn 注意:后缀名有你来定,写入下列内容

auth        required     pam_user.so     db=/etc/vsftpd/vsftpfd_longin

account   required     pam_userdb.so    db=/etc/vsft pd/vsftpd_login

(6)所有的虚拟用户需要映射到一个系统用户下,该系统用户不需要密码,也不需要登录,主要用于虚拟用户映射,命令如下

useradd    -s   /sbin/nologin     ftpuser

(7) 修改/etc/vsftpd/vsftpd.conf 配置文件如下:

anonymous_enable=YES

local_enable=YES

write_enable=YES

local_umak=022

dirmessage_enable=YES

xferlog_enable=YES

connect_from_port_20=YES

xferlog_std_format=YES

listen=YES

listen_ipv6=YES

  

userlist_enable=YES                        

tcp_wrappers=YES

pam_service_name=vsftpd.xn                         #虚拟用户启用pam认证

guest_enable=YES                                     #启用虚拟用户

guest_username=ftpuser                         #映射虚拟用户至系统用户ftpuser

user_config_dir=/etc/vsftpd/vsftpd_user_conf     #设置虚拟用户配置文件所在的目录

virtual_use_local_privs=YES                    #虚拟用户使用与本地用户相同的权限

anon_umak=022                                   #匿名用户创建文件的权限

(8)至此,虚拟用户共同使用基于/home/ftpuser 主目录实现文件上传与下载,可以在/etc/vsftpd/vsftpd_user_conf目录创建虚拟用户各自的配置文件,创建虚拟用户的配置文件主目录

mkdir   -p   /etc/vsftpd/vsftpd_user_conf/

(9)如下,为虚拟用户yiteng001、yiteng002,同时创建私有的虚拟目录,代码如下

vim  /etc/vsftpd/vsftpd_user_conf/yiteng001

local_root=/home/ftpuser/yiteng001                     #虚拟用户配置文件路径

write_enable=YES                                                       #允许登录用户有写权限     

anon_world_readable_only=YES                                     #允许匿名用户下载,然后读取文件    

anon_upload_enable=YES                                #允许匿名用户上传文件权限,只有在write_enable=YES时,参数才生效

anon_mkdir_write_enable=YES                               #允许匿名用户创建目录,只有在write_enable=YES时,参数才生效

anon_other_write_enable=YES                                #允许匿名用户其他权限,例如删除、重命名

 yiteng002创建私有目录

vim  /etc/vsftpd/vsftpd_user_conf/yiteng002

local_root=/home/ftpuser/yiteng001                     #虚拟用户配置文件路径

write_enable=YES                                                       #允许登录用户有写权限     

anon_world_readable_only=YES                                             #允许匿名用户下载,然后读取文件    

anon_upload_enable=YES                                #允许匿名用户上传文件权限,只有在write_enable=YES时,参数才生效

anon_mkdir_write_enable=YES                               #允许匿名用户创建目录,只有在write_enable=YES时,参数才生效

anon_other_write_enable=YES                                #允许匿名用户其他权限,例如删除、重命名

 

(10)创建虚拟用户各自虚拟目录

mdkir    -P   /home/ftpuser/{yiteng001,yiteng002}

chown     -R  ftpuser:ftpuser  /home/ftpuser

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值