安装vsftpd

一、用户分类:
1、Real账号
这类用户是指在FTP服务上拥有帐号。当这类用户登录FTP服务器的时候,其默认的主目录就是其帐号命名的目录。但是,其还可以变更到其他目录中去。如系统的主目录等等
2、Guest(虚拟用户)
在FTP服务器中,我们往往会给不同的部门或者某个特定的用户设置一个帐户。但是,这个账户有个特点,就是其只能够访问自己的主目录。服务器通过这种方式来保障FTP服务上其他文件的安全性。这类帐户,在Vsftpd软件中就叫做Guest用户。拥有这类用户的帐户,只能够访问其主目录下的目录,而不得访问主目录以外的文件
3、Anonymous(匿名用户)
这也是我们通常所说的匿名访问。这类用户是指在FTP服务器中没有指定帐户,但是其仍然可以进行匿名访问某些公开的资源。
在组建FTP服务器的时候,我们就需要根据用户的类型,对用户进行归类。 默认情况下,Vsftpd服务器会把建立的所有帐户都归属为Real用户。但是,这往往不符合企业安全的需要。因为这类用户不仅可以访问自己的主目录,而 且,还可以访问其他用户的目录。这就给其他用户所在的空间带来一定的安全隐患。所以,企业要根据实际情况,修改用户所在的类别。

二、部署配置
1、安装vsftpd

yum –y install vsftpd

2、修改配置文件 /etc/vsftpd/vsftpd.conf

vim /etc/vsftpd/vsftpd.conf

user_config_dir=/etc/vsftpd/userconfig(该配置已存在,用于控制用户的不同操作目录)
guest_enable=YES 开启虚拟用户
guest_username=ftpvirtual 虚拟用户映射到的实用户ftpvirtual ,即系统用户,用户名称任意
pam_service_name=vsftpd pam验证文件,名称任意,但是要和/etc/pam.d/下文件名保持一致,我这边均是vsftpd ,默认。

allow_writeable_chroot=YES
其他设置:
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
chroot_list_enable=YES

systemctl restart vsftpd

3、 创建被映射的系统用户

useradd -s /sbin/nologin -d /home/virtual ftpvirtual

touch /etc/vsftpd/virtual.txt

vim virtual.txt (奇数行为用户名,偶数行为 密码。)

test1
test1
test2
test2

创建虚拟用户文件库

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

4、修改pam验证模块(添加如下两行)

vim /etc/pam.d/vsftpd

auth sufficient pam_userdb.so db=/etc/vsftpd/virtual
account sufficient pam_userdb.so db=/etc/vsftpd/virtual
添加完之后应该是如下图所示:virtual是指步骤3中生成的db文件,但是这里不能加db后缀,会出问题(其中我机器上的用户db文件和文章略有不同virtual_list)

5、 添加虚拟用户,以及配置控制目录和权限

mkdir /home/virtual/test1

mkdir /home/virtual/test2

touch /etc/vsftpd/userconfig/test1

touch /etc/vsftpd/userconfig/test2

vim /etc/vsftpd/userconfig/test1

local_root=/home/virtual/test1
write_enable=yes
download_enable=yes
anon_upload_enable=yes
anon_mkdir_write_enable=yes
anon_other_write_enable=yes
anon_world_readable_only=no

vim /etc/vsftpd/userconfig/test2

local_root=/home/virtual/test2
write_enable=yes
download_enable=yes
anon_upload_enable=yes
anon_mkdir_write_enable=yes
anon_other_write_enable=yes
anon_world_readable_only=no
6、修改虚拟用户操作目录权限
虚拟目录权限全部赋给映射的实用户ftpvirtual 即可

chown -R ftpvirtual: /home/virtual

7、 登录 测试
[root@node1 ~]# ftp 10.0.0.6
Connected to 10.0.0.6 (10.0.0.6).
220 (vsFTPd 3.0.2)
Name (10.0.0.6:root): test2
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
8、 ssl
[root] # openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout /etc/vsftpd/vsftpd.pem -out /etc/vsftpd/vsftpd.pem
在配置文件中添加
rsa_cert_file=/etc/vsftpd/vsftpd.pem
ssl_enable=YES
force_local_logins_ssl=YES
force_local_data_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=YES
ssl_sslv3=YES
require_ssl_reuse=NO
重启vsftpd

posted @ 2019-05-27 16:47  大小狮子  阅读(186)  评论(0编辑  收藏  举报