Linux文件服务器:ftp服务器(ftp/tftp)、 Samba服务器、NFS服务器。
ftp的客户可以是任意平台,samba是专门针对windows客户,而NFS则是面向linux/unix用户的。下面是三种服务器的对比情况:
服务器名称 | 用户客户端平台 | 使用范围 | 服务端口 |
---|---|---|---|
FTP | Windows/linux/unix/macOS等 | 发布网站,文件共享 | Tcp/21 |
NFS | Linux/unix | 网站发布,文件共享(mount) | Tcp/2049 |
Samba | Windows | 文件共享(网上邻居) | Tcp/445,tcp/139 |
服务器名称 | 启动脚本 | 守护进程 | 配置文件 |
---|---|---|---|
vsftpd | etc/xinetd.d/vsftpd | /usr/sbin/vsftpd | /etc/vsftpd/vsftpd.conf |
NFS | /etc/init.d/nfs | /etc/init.d/nfslock /usr/sbin/rpc.nfsd | /usr/sbin/rpc.mountd /etc/exports |
Samba | /etc/init.d/smb | /etc/init.d/winbind /usr/sbin/smbd | /usr/sbin/nmbd /etc/samba/smb.conf |
FTP服务器
在linux 环境下,有三个主要的FTP服务器:vsftpd、proftpd和wu-ftpd。
1、检查是否安装vsftp包。# rpm –qa | grep vsftpd。如果没有则安装它。
2、 修改配置文件。Vsftpd的配置文件为/etc/vsftpd/vsftpd.conf,如果不打算提供匿名访问的话,
需要修改配置文件 /etc/vsftpd/vsftpd.conf的项“anonymous_enable=Yes”为“anonymous_enable=No”。
3、启用vsftpd服务。#service vsftpd start。
4、客户端连接访问。可以是专用的ftp客户端工具,也可以使用浏览器。
5、vsftpd服务器的用户。Vsftpd服务器支持三种类型的拥护:本地用户(拥有系统账号)、虚拟用户
(guest)、匿名账号;系统管理员应该根据安全需求来确定vsftpd服务器的用户访问策略。
TFTP服务器
Usually the TFTP sevice is by default started in Linux. you only need to doulble check if not sure.
#/bin/netstat -a|grep udp
In case, the tftp service is not started by default, you can start it manually.
1. Firstly, Configuring the TFTP server
#vi /etc/xinetd.d/tftp
2. Secondly, restart the xinetd service:
# /sbin/service xinetd restart
3. To get xinetd configured to start at boot you can use the chkconfig command.
#chkconfig xinetd on
文件传输协议( FTP)
File Transfer Protocol 早期的三个应用级协议之一
基于C/S结构
双通道协议:数据和命令连接
数据传输格式:二进制(默认)和文本
两种模式:服务器角度
主动(PORT style):服务器主动连接
命令(控制):客户端:随机port --- 服务器: tcp21
数据: 客户端:随机port+1 ---服务器: tcp20
被动(PASV style):客户端主动连接
命令(控制):客户端:随机port --- 服务器: tcp21
数据:客户端:随机port+1 ---服务器:随机port
服务器被动模式数据端口示例:
227 Entering Passive Mode (192,168,175,138,224,59)
服务器数据端口为: 224*256+59
ss -nt 查看连接端口
主动连接客户端有防火墙可能会失败
企业服务器防火墙有自动跟踪功能
Passive 被动命令/主动
主动,被动模式不是固定的
binary二进制 数据不会变化
文本方式做编码转换
FTP服务
状态码:
1XX:信息 125:数据连接打开
2XX:成功类状态 200:命令OK 230:登录成功
3XX:补充类 331:用户名OK
4XX:客户端错误 425:不能打开数据连接
5XX:服务器错误 530:不能登录
用户认证:
匿名用户: ftp,anonymous,对应Linux用户ftp
系统用户: Linux用户,用户/etc/passwd,密码/etc/shadow
虚拟用户:特定服务的专用用户,独立的用户/密码文件
nsswitch:network service switch名称解析框架
pam:pluggable authentication module 用户认证
/lib64/security /etc/pam.d/ /etc/pam.con
安装vsftpd
yum install vsftpd -y #自动安装
/etc/init.d/vsftpd start #启动vsftpd
service vsftpd restart #重启
service vsftpd stop #停止
chkconfig vsftpd on #设置开机时自动运行
配置vsftp服务器
配置文件说明:
/etc/vsftpd/vsftpd.conf vsftpd的核心配置文件
/etc/vsftpd/ftpusers 用于指定哪些用户不能访问FTP服务器
/etc/vsftpd/user_list 指定允许使用vsftpd的用户列表文件
/etc/vsftpd/vsftpd_conf_migrate.sh 是vsftpd操作的一些变量和设置脚本
/var/ftp/ 默认情况下匿名用户的根目录
vim /etc/vsftpd/vsftpd.conf #配置
vsftpd服务配置
#命令端口
listen_port=21默认 可以添加修改
#主动模式端口
connect_from_port_20=YES 主动模式端口为20
ftp_data_port=20 指定主动模式的端口
#被动模式端口范围
linux客户端默认使用被动模式
windows 客户端默认使用主动模式
pasv_min_port=6000 0为随机分配
pasv_max_port=6010 定义端口范围,被动端口太少,并发连接数受到限制
#使用当地时间
use_localtime=YES 使用当地时间(默认为NO,使用GMT)#ftp时间和系统同步,如果启动有错误,请注销
reverse_lookup_enable=NO #添加此行,解决客户端登陆缓慢问题!重要!默认vsftpd开启了DNS
反向解析!这里需要关闭,如果启动有错误,请注销!
匿名用户
anonymous_enable=YES 支持匿名用户
no_anon_password=YES(默认NO) 匿名用户略过口令检查
anon_world_readable_only (默认YES)只能下载全部有读权限的文件
anon_upload_enable=YES 匿名上传,注意:文件系统权限
anon_mkdir_write_enable=YES 匿名用户建立目录
anon_other_write_enable=YES (默认NO)可删除和修改上传的文件,手动添加
ftp> delete xxx 删除文件
anon_umask=077 指定匿名上传umask 手动添加,文件644,目录022
#指定上传文件的默认的所有者和权限
chown_uploads=YES(默认NO)
chown_username=wang 指定用户
chown_upload_mode=0644
匿名账号家目录不能有写权限
Linux系统用户
guest_enable=YES 所有系统用户都映射成guest用户 ,手动添加
guest_username=ftp 配合上面选项才生效,指定guest用户, 手动添加
local_enable=YES 是否允许linux用户登录 设定本地用户可以访问。设定为NO用户将无法访问
write_enable=YES 允许linux用户上传文件 #全局设置,是否容许写入(无论是匿名用户还是本地用户,
若要启用上传权限的话,就要开启他)
local_umask=022 指定系统用户上传文件的默认权限
local_root=/ftproot 非匿名用户登录所在目录 手动添加
禁锢所有系统用户在家目录中
chroot_local_user=YES(默认NO,不禁锢)禁锢系统用户
禁锢或不禁锢特定的系统用户在家目录中,与上面设置功能相反
chroot_list_enable=YES 列表中用户禁锢/不禁锢
chroot_list_file=/etc/vsftpd/chroot_list 创建禁锢/不禁锢文件,添加用户进去
当chroot_local_user=YES时,则chroot_list中用户不禁锢
当chroot_local_user=NO时, 则chroot_list中用户禁锢
#wu-ftp日志:默认启用(历史久)
xferlog_enable=YES (默认) 启用记录上传下载日志
xferlog_std_format=YES (默认)使用wu-ftp日志格式
xferlog_file=/var/log/xferlog (默认)可自动生成 下载日志信息 日志保存路径(先创建好文件)
#vsftpd日志:默认不启用 (性能略好)
dual_log_enable=YES 使用vsftpd日志格式,默认不启用
vsftpd_log_file=/var/log/vsftpd.log( 默认)可自动生成 登录日志信息
#登录提示信息
ftpd_banner=“welcome to mage ftp server" 设定Vsftpd的登陆标语,welconme 语句尽量少用
banner_file=/etc/vsftpd/ftpbanner.txt 优先生效文件
#目录访问提示信息
dirmessage_enable=YES (默认) 设定开启目录标语功能
message_file=.message(默认)信息存放在指定目录下.message
ftp适合测试环境,状态码详细
lftp支持补全,方便
#使用pam(Pluggable Authentication Modules)完成用户认证
pam_service_name=vsftpd 设定PAM服务下Vsftpd的验证配置文件名。因此,PAM验证将参考/etc/pam.d/下
的vsftpd文件配置。
pam配置文件:/etc/pam.d/vsftpd
item=user sense=deny file=/etc/vsftpd/ftpusersonerr=succeed (deny拒绝/allow允许)
/etc/vsftpd/ftpusers 默认文件中用户拒绝登录(不改变deny)
是否启用控制用户登录的列表文件
userlist_enable=YES 默认有此设置 设为YES的时候,如果一个用户名是在userlist_file参数
指定的文件中,那么在要求他们输入密码之前,会直接拒绝他们登陆。
userlist_deny=YES(默认值)黑名单,不提示口令, NO为白名单
userlist_file=/etc/vsftpd/users_list 此为默认值
#连接限制 手动添加
max_clients=0 最大并发连接数
max_per_ip=0 每个IP同时发起的最大连接数
# vsftpd服务指定用户身份运行
nopriv_user=nobody
#传输速率: 字节/秒 手动添加
anon_max_rate=0 匿名用户的最大传输速率
local_max_rate=0 本地用户的最大传输速率
#连接时间:秒为单位
connect_timeout=60 主动模式数据连接超时时长
accept_timeout=60 被动模式数据连接超时时长
data_connection_timeout=300 数据连接无数据输超时时长,空闲300秒后服务器断开
idle_session_timeout=60 无命令操作超时时长 超时设置
#优先以文本方式传输 手动添加
ascii_upload_enable=YES
ascii_download_enable=YES 设定支持ASCII模式的上传和下载功能
async_abor_enable=YES 设定支持异步传输功能。
tcp_wrappers=YES 是否支持tcp_wrappers
实验一
在没有用户访问的时候由xinetd监听,有用户用ftp访问由vsftpd监听
vim /etc/vsftpd/vsftpd.conf 配置FTP服务以非独立服务方运行:listen=NO,默认为独立方式
[root@centos6 /etc/xinetd.d]#service vsftpd stop
[root@centos6 /etc/xinetd.d]#chkconfig --list
[root@centos6 /etc/xinetd.d]#service xinetd start
[root@centos6 /etc/xinetd.d]#ss -ntlp 没有访问的时候由xinetd监听
用户用ftp访问ip, vsftpd就自动监听用户信息
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
实验二
实现基于SSL的FTPS
查看是否支持SSL
ldd `which vsftpd` 查看到libssl.so
创建自签名证书
cd /etc/pki/tls/certs/
make vsftpd.pem
openssl x509 -in vsftpd.pem -noout –text
配置vsftpd服务支持SSL: /etc/vsftpd/vsftpd.conf
ssl_enable=YES 启用SSL
allow_anon_ssl=NO 匿名不支持SSL
force_local_logins_ssl=YES 本地用户登录加密
force_local_data_ssl=YES 本地用户强制数据传输加密
rsa_cert_file=/etc/vsftpd/vsftpd.pem
用filezilla等工具测试
证书和密钥文件一起存放
移动到vsftpd目录下
配置vsftpd服务支持SSL: /etc/vsftpd/vsftpd.conf
重启服务,查看21端口
测试工具
filezilla
默认不是以加密方式连接,添加ssh加密新站点
修改名字ftps 端口号默认21
协议FTP
加密 要求显示FTP
账号 wang
Wireshark 打开软件 监听ftp,查询到的信息都已经加密相对安全
已完成普通用户登录加密登录
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
vsftpd虚拟用户
虚拟用户:
所有虚拟用户会统一映射为一个指定的系统帐号:访问共享位置, 即为此系统帐号的家目录各虚拟用户可被赋予不同的访问权限,通过匿名用户的权限控制参数进行指定
虚拟用户帐号的存储方式:
文件:编辑文本文件,此文件需要被编码为hash格式
奇数行为用户名,偶数行为密码
db_load -T -t hash -f vusers.txt vusers.db
关系型数据库中的表中:
实时查询数据库完成用户认证
mysql库: pam要依赖于pam-mysql
/lib64/security/pam_mysql.so
/usr/share/doc/pam_mysql-0.7/README
默认Vsftpd.conf中不包含这些设定项目,需要自己手动添加配置
guest_enable=YES 设定启用虚拟用户功能。
guest_username=vsftpd 指定虚拟用户的宿主用户(这个是我们后面要新建的用户)
linux客户端默认使用被动模式
windows 客户端默认使用主动模式
pasv_min_port=9000 (设置被动模式的端口范围)
pasv_max_port=9045 (设置被动模式的端口范围)被动端口太少,并发连接数受到限制
use_localtime=YES 使用当地时间(默认为NO,使用GMT)
accept_timeout=5 #保持5秒
connect_timeout=1 #1秒后重新连接
vsftpd 的实现,有三种用户认证身份。
(1)匿名用户账号是ftp或者anonymous不需要密码即可登录,被限定在ftp用户的家目录,要求ftp用户家
目录没有写权限,默认ftp用户的家目录是/var/ftp
(2)系统用户是系统上存在的实际用户,默认没有限定到用户家目录中。可以随便切换到其他目录,
因此不需要取消用户家目录的写权限
(3)虚拟用户,虚拟用户是建立一些系统不存在的账号,用来进行登录。其实其也是映射到系统的
某个用户身份。其配置参数使用的是匿名用户的配置参数。
实验三
基于虚拟用户的用户存放地点有两种,二进制文件和mysql,因为我们的用户一般不多,使用mysql验证还要通过TCP三次握手四次分手,比较慢,因此常用二进制文件来进行存放。下面测试基于文件验证的实验
实验环境
操作系统:CentOS7.3
实验步骤
一、创建用户数据库文件
1、自定义用户文件
[root@centos7 ~]#vim /etc/vsftpd/vusers.txt
ftp1
password1
ftp2
password2
注意:奇数行是用户名,偶数行是密码
2、依靠vusers.txt文件来生成二进制数据库
[root@centos7 ~]#cd /etc/vsftpd/
[root@centos7 /etc/vsftpd]#db_load -T -t hash -f vusers.txt vusers.db 转换格式
[root@centos7 /etc/vsftpd]#chmod 600 vusers.db 设置权限避免看到口令
二、创建用户和访问FTP目录
创建虚拟用户映射到系统的实际用户
[root@centos7 /etc/vsftpd]#useradd -d /var/ftproot -s /sbin/nologin vuser 创建操作
系统用户及家目录 (ftp1,ftp2账号实际以vuser账号访问)
[root@centos7 /etc/vsftpd]#chomod a+rx /var/ftproot/ 设置读写权限
#虚拟用户使用的参数是匿名用户的参数,因此也是被禁锢在家目录中的,这就需要家目录没有写权限
[root@centos7 /etc/vsftpd]#chomod u-w /var/ftproot/
权限可以直接设置555 也可以
#创建一个文件夹用来上传文件,并给映射账号vuser写权限
[root@centos7 /etc/vsftpd]#mkdir /var/ftproot/upload
[root@centos7 /etc/vsftpd]#setfacl -m u:vuser:rwx /var/ftproot/upload 可以直接给vuser所有者权限
三、创建pam配置文件
方法一:新建vsftpd.db文件,来进行认证,这样的话,本地用户则不能登录
[root@centos7 /etc/vsftpd]#vim /etc/pam.d/vsftpd.db
auth required pam_userdb.so db=/etc/vsftpd/vusers 身份验证pam模块,数据库文件名是db=
不需要加后缀系统自动识别
account required pam_userdb.so db=/etc/vsftpd/vusers 检查账号有效性
pam_userdb.so 模块用来验证密码对,放在数据库以后用来访问,实现身份验证
db=/etc/vsftpd/vusers 定义文件密码来验证身份
方法二:在原有的pam文件基础上前两行添加如下,这样的话本地用户也可以登录,虚拟用户也可以登录
[root@centos7 /etc/vsftpd]#vim /etc/pam.d/vsftpd.db
auth sufficient pam_userdb.so db=/etc/vsftpd/vusers
#sufficient代表如果此项通过,则不向下匹配,如果不通过,则不影响继续向下匹配
account sufficient pam_userdb.so db=/etc/vsftpd/vusers
这里使用方法一,如果是方法二,则下面的pam_service_name参数不需要新指定。
四、指定pam配置文件
vim /etc/vsftpd/vsftpd.conf
guest_enable=YES
guest_username=vuser 以谁身份访问,将所有guest账号映射成vuser
pam_service_name=vsftpd.db 指定模块文件名路径
五、SELinux设置:
禁用SELinux或者setsebool-P ftpd_full_access1
六、虚拟用户建立独立的配置文件
虚拟用户独立的配置文件可以单独对每个用户控制,文件名需要和用户名一致. 使用的参数是匿名用户的配置参数
1、指定用户独立的配置文件路径,定义ftp1,ftp1权限不一样
[root@centos7 /etc/vsftpd]#mkdir /etc/vsftpd/vusers.d/ #创建配置文件存放的路径
[root@centos7 /etc/vsftpd]#vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/vusers.d/ #在配置文件中指定 每个用户配置文件专门找文件夹存放
2、创建各用户自已的配置文件,允许ftp1用户可读写,其它用户只读
[root@centos7 /etc/vsftpd/vusers.d/]#vim /etc/vsftpd/vusers.d/ftp1
anon_upload_enable=YES 允许匿名用户上传
anon_mkdir_write_enable=YES 允许匿名用户上传/建立目录
anon_other_write_enable=YES 允许匿名用户具有建立目录,上传之外的权限,如重命名,删除
[root@centos7 /etc/vsftpd/vusers.d/]#vim /etc/vsftpd/vusers.d/ftp2 不创建就是没有权限
local_root=/app/ftp2 #登录目录改变至指定的其他目录 跟ftp1看到的家目录不一样
ftp1访问ip的根目录是指定的/var/ftproot
ftp2访问ip的根目录是指定的/app/ftp2 ftp2没有上传权限
[root@centos7 /etc/vsftpd/vusers.d/]#vim /etc/vsftpd/vusers.d/ftp2 添加权限配置
anon_upload_enable=YES 允许匿名用户上传
anon_mkdir_write_enable=YES 允许匿名用户上传/建立目录
[root@centos7 /etc/vsftpd/vusers.d/]#mkdir /app/ftp2/upload 创建上传目录
[root@centos7 /etc/vsftpd/vusers.d/]#chown vuser /app/ftp2/upload 给所有者映射用户vuser权限
[root@centos7 /etc/vsftpd]#systemctl restart vsftpd
测试
实验四
实现基于MYSQL验证的vsftpd虚拟用户
说明:本实验在两台CentOS主机上实现,一台做为FTP服务器,一台做数据库服务器
文件共享服务之vsftpd虚拟用户认证(vsftpd+pam+mariadb)
一、准备环境
安装所需要包和包组:
1-1:Server 1;FTP服务器
OS:CentOS 6.9 (CentOS 7需要编译详细看末尾)
IP:172.18.70.70
SOFTWARE:vsftpd
[root@centos6 ~]# yum -y install vsftpd mysql pam_mysql
[root@centos6 ~]#systemctl vsftpd start
关闭防火墙,SElinux
注意:pam_mysql由epel源提供,需提前配置好epel的yum源。
1-2:Server 2;数据库服务器
OS:CentOS 7.3
IP:172.18.70.40
SOFTWARE:5.5.56-MariaDB
[root@centos7 ~]# yum -y install mariadb mariadb-server mariadb-devel
[root@centos7 ~]#systemctl start mariadb
关闭防火墙,SElinux
二、在MySQL 服务器上准备用户和数据表
准备数据库及相关表
2-1:准备数据库及相关表;
[root@centos7 ~]#mysql -uroot -p123456
mysql [(none)]> create database vsftpd; 创建数据库
mysql [(none)]> grant select on vsftpd.* to ftpuser@'172.18.70.%' identified by '123456';
创建ftpuser用户通过网段ip连接vsftpd数据库,密码为123456
//注意:由于mariadb的安装方式不同,pam_mysql.so基于unix sock连接mariadb服务器时可能会出问题,
可授权一个可远程连接的mariadb并访问vsftpd数据库的用户。
mysql [(none)]> use ftpuser; 准备相关表
mysql [(ftpuser)]> show tables;
mysql [(ftpuser)]> create table users (id int unsigned auto_increment not null prim
ary key,name varchar(50) binary not null,password char(48) binary not null);创建表users
2-2:添加虚拟用户,调用PASSWORD函数加密后存储;
mysql [(ftpuser)]> insert into users(name,password)values('user1',password('123456')),('us
er2',password('123456'));
//添加两个用户,用户1:“user1”,密码“123456”;用户2:“user2”,密码“123456”;二用户的密码调用
mariadb内置函数password()加密。
mysql [(ftpuser)]> flush privileges; 刷新MySQL的系统权限相关表
mysql>DESC users;
测试连接
[root@centos6 ~]#mysql -uftpuser -h 172.18.70.40 -p123456
mysql> SHOW DATABASES;
三、CentOS 6.9配置vsftpd
建立pam认证所需文件
3-1:建立pam认证所需文件;
#vim /etc/pam.d/vsftpd.mysql 调用模块
auth required /lib64/security/pam_mysql.so user=vsftpd passwd=vsftpd host=172.18.70.4
0 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2
account required /lib64/security/pam_mysql.so user=vsftpd passwd=vsftpd host=172.18.70.4
0 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2
//有关crypt=0|1|2等含义,参看pam_mysql的README文件,因前面设置了用户密码调用mysql内置函数
password()加密,故这里设置为2。
# rpm -ql pam_mysql
# less /usr/share/doc/pam_mysql-0.7/README
3-2:CentOS 6.9建立虚拟用户映射的系统用户及对应的目录;
# useradd -s /sbin/nologin -d /var/ftproot vuser vuser 映射虚拟用户
# mkdir -pv /var/ftproot/
# chmod 555 /var/ftproot/
#mkdir /var/ftproot/upload
chown vuser /var/ftproot/upload
3-3:修改vsftpd的配置文件,使用mysql认证;
#vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
anon_upload_enable=NO 是否允许匿名用户上传文件
anon_mkdir_write_enable=NO 是否允许匿名用户上传/建立目录
chroot_local_user=YES
guest_enable=YES
guest_username=vuser 以谁身份访问,将所有guest账号映射成vuser
pam_service_name=vsftpd.mysql 调用MySQL路径
//注意:此处将pam_service_name=vsftpd修改为pam_service_name=vsftpd.mysql后,本地用户将无法登录vsftp。
# /etc/init.d/vsftpd start
# netstat -tnlp |grep :21
四、虚拟用户登录测试
4-1:可用Windows命令行、IE、FTP客户端工具登录验正,此处以Linux命令行工具为例。
# lftp -u user1 172.18.70.70
//完成虚拟用户访问vsftpd服务器。
五、为虚拟用户设置不同的访问权限
5-1:配置vsftpd,设置一个虚拟用户配置文件目录,目录名称不限;
#vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/vusers.d/ #在配置文件中指定 每个用户配置文件专门找文件夹存放
5-2:创建所需要的虚拟用户配置文件目录;
# mkdir /etc/vsftpd/vusers.d/
5-3:配置虚拟用户的访问权限
# vim /etc/vsftpd/vusers.d/user1
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
//虚拟用户的权限配置文件名同虚拟用户的用户名,用户“user1”可以下载文件、上传文件、上传目录。
# cd /etc/vsftpd/vusers.d
# cp user1 user2
//用户“user2”只能下载文件
# vim /etc/vsftpd/vusers.d/user2
local_root=/app/ftpuser2 #登录目录改变至指定的其他目录 跟user1看到的家目录不一样
anon_upload_enable=YES 允许上传
创建user2家目录路径
#mkdir /app/ftpuser 家目录不能有写权限需要添加文件夹后设置权限
#mkdir /app/ftpuser/upload
chown vuser /app/ftpuser/upload 给upload添加写权限
#service vsftpd restart
六、虚拟用户登录测试
6-1:可用Windows命令行、IE、FTP客户端工具登录验正,此处以Linux命令行工具为例。
# lftp -u user1 172.18.70.70
# lftp -u user2 172.18.70.70
//测试不同虚拟用户的不同访问权限。
centos7编译安装步骤
centos7:无对应rpm包,需手动编译安装
yum -y groupinstall "Development Tools"
yum -y install mariadb-devel pam-devel vsftpd openssl-devel mariadb
下载pam_mysql-0.7RC1.tar.gz
ftp://172.16.0.1/pub/Sources/sources/pam/
tar xvf pam_mysql-0.7RC1.tar.gz
cd pam_mysql-0.7RC1/
./configure --with-mysql=/usr --with-pam=/usr
--with-pam-mods-dir=/lib64/security
make
make install