8455澳门新_8455新葡萄娱乐【官网】

8455澳门新:2.创建FTP根目录及虚拟用户映射的系

安装:

centos下面安装vsftp

[root@server ~]# yum install -y vsftpd

 

[root@server ~]# rpm -ql vsftpd

1:安装 vsftp

/etc/logrotate.d/vsftpd

使用chkconfig --list来查看是否装有vsftpd服务; 

/etc/pam.d/vsftpd

使用yum命令直接安装:yum -y install vsftpd 

/etc/rc.d/init.d/vsftpd

然后为它创建日志文件:touch /var/log/vsftpd.log

/etc/vsftpd

2: 启动与配置自启动 

/etc/vsftpd/ftpusers

使用chkconfig --list来查看vsftpd服务启动项情况; 

/etc/vsftpd/user_list

如果看到的是如下显示的结果: 

/etc/vsftpd/vsftpd.conf

vsftpd          0:off   1:off   2:off   3:off   4:off   5:off   6:off 

/etc/vsftpd/vsftpd_conf_migrate.sh

服务全部都是off的,注意这里的off表示的是服务器启动的时候是否会自启动服务,我们使用如下命令来配置其自启动: 

/usr/sbin/vsftpd 

chkconfig --level 2345 vsftpd on #2345对应的是上面对应的0-6项 

.......

 

[root@server ~]# /etc/init.d/vsftpd start

查看与管理ftp服务: 

Starting vsftpd for vsftpd:                                [  OK  ]

启动ftp服务:service vsftpd start 

[root@server ~]# netstat -lntup|grep 21

查看ftp服务状态:service vsftpd status 

tcp        0      0 0.0.0.0:21                  0.0.0.0:*                   LISTEN      3419/vsftpd

重启ftp服务:service vsftpd restart 

[root@server ~]# cd /var/ftp/pub

关闭ftp服务:service vsftpd stop

[root@server pub]# ll

  1. 配置vsftp服务 

total 0

编辑/etc/vsftpd/vsftpd.conf文件,配置vsftp服务: 

[root@server pub]# cp /etc/fstab .

#vi /etc/vsftpd/vsftpd.conf 

到浏览器测试:

3.1 编辑修改如下项目: 

8455澳门新 1

anonymous_enable=NO #设定不允许匿名访问 

8455澳门新 2

local_enable=YES #设定本地用户可以访问。注:如使用虚拟宿主用户,在该项目设定为NO的情况下所有虚拟用户将无法访问。 

 

chroot_list_enable=YES #使用户不能离开主目录 

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

xferlog_file=/var/log/vsftpd.log #设定vsftpd的服务日志保存路径。注意,该文件默认不存在。必须要手动touch出来 

1.建立虚拟FTP用户的帐号数据库文件

ascii_upload_enable=YES #允许使用ASCII模式上传 

2.创建FTP根目录及虚拟用户映射的系统用户

ascii_download_enable=YES #设定支持ASCII模式的上传和下载功能。 

3.建立支持虚拟用户的PAM认证文件

pam_service_name=vsftpd #PAM认证文件名。PAM将根据/etc/pam.d/vsftpd进行认证 

4.在vsftpd.conf文件中添加支持配置

 

5.为个别虚拟用户建立独立的配置文件

以下这些是关于Vsftpd虚拟用户支持的重要CentOS FTP服务配置项目。默认vsftpd.conf中不包含这些设定项目,需要自己手动添加RHEL/CentOS FTP服务配置。 

6.重新加载vsftpd配置

guest_enable=YES #设定启用虚拟用户功能。 

7.使用虚拟FTP账户访问测试

guest_username=ftp #指定虚拟用户的宿主用户。-RHEL/CentOS中已经有内置的ftp用户了 

 

user_config_dir=/etc/vsftpd/vuser_conf #设定虚拟用户个人vsftp的RHEL/CentOS FTP服务文件存放路径。存放虚拟用户个性的CentOS FTP服务文件(配置文件名=虚拟用户名)

过程实例:

3.2 创建chroot list,将ftp用户加入其中: 

1.建立虚拟FTP用户的帐号数据库文件

touch /etc/vsftpd/chroot_list 

  建立虚拟用户的账户名、密码列表(通过本地文件的方式)

echo ftp >> /etc/vsftpd/chroot_list 

[root@filesvr~]# vi /etc/vsftpd/vusers.list

 

fedora

3.3 进行认证: 

123

首先,安装Berkeley DB工具,很多人找不到db_load的问题就是没有安装这个包。 

gentoo

yum install db4 db4-utils 

456

然后,创建用户密码文本/etc/vsftpd/vuser_passwd.txt ,注意奇行是用户名,偶行是密码 

[root@filesvr~]# cd /etc/vsftpd/

test1

[root@filesvrvsftpd]# db_load -T -t hash -f vusers.list   vusers.db

pwd1

[root@filesvrvsftpd]# file vusers.db

接着,.生成虚拟用户认证的db文件 

vusers.db: Berkeley DB (Hash, version 8, native byte-order)

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

[root@filesvrvsftpd]# chmod 600/etc/vsftpd/vusers.*

随后,编辑认证文件/etc/pam.d/vsftpd,全部注释掉原来语句 

2.创建FTP根目录及虚拟用户映射的系统用户

再增加以下两句 

[root@filesvr~]# mkdir/var/ftproot

auth required pam_userdb.so db=/etc/vsftpd/vuser_passwd 

[root@filesvr~]# useradd -d /var/ftproot -s /sbin/nologin virtual

account required pam_userdb.so db=/etc/vsftpd/vuser_passwd 

[root@filesvr~]# chmod 755 /var/ftproot/

最后,创建虚拟用户个性RHEL/CentOS FTP服务文件 

3.建立支持虚拟用户的PAM认证文件

mkdir /etc/vsftpd/vuser_conf/ 

[root@filesvr~]# vi /etc/pam.d/vsftpd.vu

vi /etc/vsftpd/vuser_conf/test1

#%PAM-1.0

内容如下: 

auth       required     pam_userdb.so db=/etc/vsftpd/vusers

local_root=/opt/var/ftp    #虚拟用户的根目录(根据实际修改) 

account    required     pam_userdb.so db=/etc/vsftpd/vusers

write_enable=YES  #可写 

4.在vsftpd.conf文件中添加支持配置

anon_umask=022  #掩码 

[root@filesvr~]# vi  /etc/vsftpd/vsftpd.conf

anon_world_readable_only=NO 

anonymous_enable=NO

anon_upload_enable=YES 

local_enable=YES

anon_mkdir_write_enable=YES 

write_enable=YES

anon_other_write_enable=YES 

anon_umask=022

 

guest_enable=YES

  1. 为目录附权限并重启动vsftp服务: 

guest_username=virtual

mkdir /opt/var/ftp

pam_service_name=vsftpd.vu

chmod 777 /opt/var/ftp   ********  这个很重要  ,如果不设置,有可能报530错误,test1用户上传的根目录就是这个文件

anon_upload_enable=YES   #允许匿名账号有上传功能

service vsftpd restart

anon_mkdir_write_enable=YES   #允许匿名账号创建文件功能

  1. 常见问题: 

anon_other_write_enable=YES  #允许匿名账号具有删除.更名权限

5.1 553 Could not create file 

dirmessage_enable=YES

一般都是SELinux的问题,设置SELinux的一个值,重启服务器即可。 

……

setsebool -P ftpd_disable_trans 1 

5.为个别虚拟用户建立独立的配置文件

service vsftpd restart 

在vsftpd.conf文件中添加用户配置目录支持

 

user_config_dir=/etc/vsftpd/vusers_dir

也有可能是上面的红色字,设置有问题

为用户fedora、gentoo建立独立的配置目录及文件

5.2 500 OOPS: bad bool value in config file for: write_enable 

配置文件名与用户名同名

注意你的CentOS FTP服务文件中保证每一行最后没有任何空格,一般出错就是在多余的空格上。 

[root@filesvr~]# mkdir/etc/vsftpd/vusers_dir/

 

[root@filesvr~]# cd /etc/vsftpd/vusers_dir/

5.3 虚拟用户上传后默认权限为:600,用户无法下载文件 

[root@filesvrvusers_dir]# touch fedora

在配置文件中添加或修改anon_umask项的值。如anon_umask=022或000

[root@filesvrvusers_dir]# vi gentoo

 

anon_upload_enable=YES

这样在windows的上就可以使用ftp的客户端去连接了,

anon_mkdir_write_enable=YES

 

6.重新加载vsftpd配置

  1. virtual_use_local_privs参数

service vsftpd reload

当virtual_use_local_privs=YES时,虚拟用户和本地用户有相同的权限;

7.使用虚拟FTP账户访问测试

当virtual_use_local_privs=NO时,虚拟用户和匿名用户有相同的权限,默认是NO。

分别用fedora、gentoo用户登录FTP服务器进行下载、上传测试

 

fedora用户可以登录,并可以浏览、下载文件,但无法上传

当virtual_use_local_privs=YES,write_enable=YES时,虚拟用户具有写权限(上传、下载、删除、重命名)。

gentoo用户可以登录,并可以浏览、下载文件,也可以上传

 

匿名用户或其他系统用户将不能登录

当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=YES,

 

anon_upload_enable=YES时,虚拟用户不能浏览目录,只能上传文件,无其他权限。

 

 

•在使用 db_load命令时,“-f”选项用于指定用户名/密码列表文件,“-T”选项允许非Berkeley DB的应用程序使用从文本格式转换的DB数据文件,“-t hash”选项指定读取数据文件的基本方法。关于db_load命令的详细说明可参阅/usr/share/doc/db4-utils-4.3.29/utility/db_load.html文件

当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,

•将帐号文件的权限设置为600,可以有效提高安全性

anon_upload_enable=NO时,虚拟用户只能下载文件,无其他权限。

•vsftpd虚拟用户需要有一个对应的系统用户帐号(该帐号无需设置密码及登录Shell),该用户帐号的宿主目录作为所有虚拟用户登录后的共同FTP根目录

 

•PAM配置文件(名称可以自行定义)主要用于为程序提供用户认证控制,vsftpd服务使用的默认PAM配置文件为/etc/pam.d/vsftpd,可以参考该文件的格式建立新的PAM配置文件,用于虚拟用户认证控制

当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,

•在vsftpd.conf配置文件中添加guest_enable、guest_username配置项,将访问FTP服务的所有虚拟用户对应到同一系统用户帐号virtual。并修改pam_service_name配置项,指向上一步建立的PAM配置文件/etc/pam.d/vsftpd.vu

anon_upload_enable=YES时,虚拟用户只能上传和下载文件,无其他权限。

•在vsftpd服务中,虚拟用户帐户默认作为匿名用户处理以降低权限,因此对应的权限设置通常使用以anon_开头的配置项。例如,在设置虚拟用户所上传文件的默认权限掩码时应采用配置项anon_umask而不是local_umask

 

•此步骤实际上是可选的,如果不需要为个别用户设置单独的选项,则无需此步骤

当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,

•虽然不需要为fedora用户添加额外权限设置,但是也要建立一个空配置文件

anon_mkdir_write_enable=YES时,虚拟用户只能下载文件和创建文件夹,无其他权限。

•如果需要禁用或者仅允许一部分虚拟用户帐号,同样可以使用/etc/vsftpd/user_list列表文件,具体方法请参考2.2.3小节中的例2.13。需要注意的是,在/etc/vsftpd/ftpusers文件中加入虚拟用户名,并不能禁用对应的系统帐号

 

 

当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,

 

anon_other_write_enable=YES时,虚拟用户只能下载、删除和重命名文件,无其他权限。

###########################动手实例##############################

 

[root@server pub]# cd /etc/vsftpd/

1:安装 vsftp 使用chkconfig --list来查看是否装有vsftpd服务; 使用yum命令直接安装:yum -y install vsftpd 然后为它创建日志文件...

[root@server vsftpd]# vim vusers.list

mike

123

john

456

[root@server vsftpd]# db_load -T -t hash -f vusers.list vusers.db

[root@server vsftpd]# file vusers.db

vusers.db: Berkeley DB (Hash, version 9, native byte-order)

[root@server vsftpd]# chmod 600 ./vusers.*

[8455澳门新,root@server vsftpd]# useradd -d /var/ftproot -s /sbin/nologin virtual             #-d 指定用户的家目录

[root@server vsftpd]# chmod 755 /var/ftproot/

[root@server vsftpd]# vi /etc/pam.d/vsftpd.vu

auth required pam_userdb.so db=/etc/vsftpd/vusers

account required pam_userdb.so db=/etc/vsftpd/vusers

[root@server vsftpd]# vim /etc/vsftpd/vsftpd.conf

anonymous_enable=NO

local_enable=YES

write_enable=YES

anon_umask=022

guest_enable=YES

guest_username=virtual

pam_service_name=vsftpd.vu

测试:

[root@server src]# yum install -y lftp

[root@server src]# lftp mike@127.0.0.1       

Password:

lftp mike@127.0.0.1:~> mkdir test

mkdir ok, `test' created

lftp mike@127.0.0.1:/> quit

[root@server src]# cd /var/ftproot/

[root@server ftproot]# ll

total 4

drwx------ 2 virtual virtual 4096 May 16 17:56 test     #test目录属于虚拟用户virtual 

 

####为不同虚拟用户设置不同的权限#############

[root@server ftproot]# cd /etc/vsftpd/

[root@server vsftpd]# mkdir vusers_home

[root@server vsftpd]# cd vusers_home/

[root@server vusers_home]# vi mike

anon_mkdir_write_enable=YES

anon_upload_enable=YES

测试:

[root@server vusers_home]# /etc/init.d/vsftpd restart

Shutting down vsftpd:                                      [  OK  ]

Starting vsftpd for vsftpd:                                [  OK  ]

[root@server vusers_home]# lftp mike@127.0.0.1       

Password:

lftp mike@127.0.0.1:~> mkdir test1

mkdir ok, `test1' created           

lftp mike@127.0.0.1:/> quit

[root@server vusers_home]# ll

total 4

-rw-r--r-- 1 root root 51 May 16 18:24 mike

[root@server vusers_home]# ll /var/ftproot/

.bash_logout   .bash_profile  .bashrc        test/          test1/

[root@server vusers_home]# ll /var/ftproot/

total 8

drwx------ 2 virtual virtual 4096 May 16 17:56 test

drwx------ 2 virtual virtual 4096 May 16 18:24 test1

[root@server vusers_home]# lftp john@127.0.0.1       

Password:

lftp john@127.0.0.1:~> ls         

ls: Login failed: 530 Login incorrect.         

lftp john@127.0.0.1:~> mkdir test3

mkdir: Login failed: 530 Login incorrect.           

lftp john@127.0.0.1:~> quit

[root@server vusers_home]# cp /etc/vsftpd/

ftpusers                vsftpd_conf_migrate.sh  vusers.list

user_list               vusers.db               

vsftpd.conf             vusers_home/           

[root@server vusers_home]# cp /etc/vsftpd/vusers_home/mike /etc/vsftpd/vusers_home/john

[root@server vusers_home]# /etc/init.d/vsftpd restart

Shutting down vsftpd:                                      [  OK  ]

Starting vsftpd for vsftpd:                                [  OK  ]

[root@server vusers_home]# lftp john@127.0.0.1

Password:

lftp john@127.0.0.1:~> mkdir test4

mkdir ok, `test4' created

lftp john@127.0.0.1:/> quit

[root@server vusers_home]# ll /var/ftproot/

total 12

drwx------ 2 virtual virtual 4096 May 16 17:56 test

drwx------ 2 virtual virtual 4096 May 16 18:24 test1

drwx------ 2 virtual virtual 4096 May 16 18:29 test4

 

本文由8455澳门新发布于8455澳门新,转载请注明出处:8455澳门新:2.创建FTP根目录及虚拟用户映射的系

相关阅读