linxu Ubuntu 15.x vsftpd 虚拟用户登录及mysql验证

要建立一个本地FTP服务器,虚拟用户登陆
风来了.fox

全部以 root 权限

所有配置末尾不能 有 空格

1.安装

apt-get install -y vsftpd
apt-get install -y db5.3-util   #有可能版本不一样

安装完成后,自动建立 ftp用户及用户组

mkdir /home/ftp
chmod a-w /home/ftp
mkdir /home/ftp/test1 #test1用户的目录
vim /home/ftp/user.text

在user.text文件中写入

test1
test1

奇数行是用户名(1,3,5…)
偶数行是密码 (2,4,6…)
以此类推

2.生成用户名密码数据库文件

db5.3_load  -T -t hash -f /home/ftp/user.txt /home/ftp/vsftpd_login.db
chmod 600 /home/ftp/vsftpd_login.db

配置PAM

vim /etc/pam.d/vsftpd.vu

复制如下内容 (每行末尾都不要有空格)

auth required pam_userdb.so db=/home/ftp/vsftpd_login
account required pam_userdb.so db=/home/ftp/vsftpd_login

64位系统软连接

mkdir -p /lib/security
ln -s /lib/x86_64-linux-gnu/security/pam_userdb.so /lib/security/pam_userdb.so

3.配置用户权限

mkdir /etc/vsftpd_user_conf  #用户权限文件目录
vim /etc/vsftpd_user_conf/test1

复制如下内容 (每行末尾都不要有空格)

write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/home/ftp/test1

anon_world_readable_only:NO //可以浏览FTP目录和下载文件
write_enable:YES允许写入
anon_upload_enable:YES允许上传
anon_mkdir_write_enable:YES允许创建删除目录
anon_other_write_enable:YES允许文件改名和删除(修改/删除)

4.配置vsftpd

####sudo useradd vsftpd -d /home/vsftpd -s /bin/false
以上1个不需要执行
sudo useradd ftp -d /home/ftp -s /bin/false

vim /etc/vsftpd.conf

根据以下配置进行更改(每行末尾都不要有空格)

#独立模式启动
listen=YES
#如果要让访问的用户必须输入用户名和密码的话,这个时候这里就是设置成NO
anonymous_enable=NO
#同时允许4客户端连入,每个IP最多5个进程
max_clients=200
max_per_ip=4
#是否采用端口20进行数据传输
connect_from_port_20=YES

dirmessage_enable=YES
#生成日志
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
chroot_local_user=YES
pam_service_name=vsftpd.vu
local_enable=YES
secure_chroot_dir=/var/run/vsftpd/empty
#下面的可以复制
guest_enable=YES
guest_username=ftp
user_config_dir=/etc/vsftpd_user_conf
local_root=/home/ftp
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=30999

guest_username:我们上面设置的本地用户名
pasv_min_port:被动端口
pasv_max_port:被动端口
具体参数说明:http://baike.baidu.com/view/1806035.htm

5.权限设置

chown ftp:ftp /home/ftp
chmod a-w /home/ftp
chmod 777 -R /home/ftp/test1

6.重启

systemctl restart vsftp.service

7.使用mysql方式验证

apt-get -y install libpam0g-dev 

http://sourceforge.net/projects/pam-mysql/files/
下载pam_mysql-0.7RC1.tar.gz

tar zxvf pam_mysql-0.7RC1.tar.gz
cd pam_mysql-0.7RC1
./configure --with-openssl --with-mysql=/www/lanmps/mysql
make
make install
cp .libs/pam_mysql.so /lib/x86_64-linux-gnu/security/
ln -s /lib/x86_64-linux-gnu/security/pam_mysql.so /lib/security/pam_mysql.so #这一步不一定需要,有可能安装时自动安装到目录

7.1配置文件修改

7.1.1 方法一:无mysql日志

vim /etc/pam.d/vsftpd.mysql

复制如下内容

auth required pam_mysql.so user=root passwd=root host=localhost db=vsftpd table=user usercolumn=username passwdcolumn=password crypt=0
account required pam_mysql.so user=root passwd=root host=localhost db=vsftpd table=user usercolumn=username passwdcolumn=password crypt=0

crypt=n
crypt=0: 明文密码
crypt=1: 使用crpyt()函数(对应SQL数据里的encrypt(),encrypt()随机产生salt)
crypt=2: 使用MYSQL中的password()函数加密
crypt=3:表示使用md5的散列方式
user:数据库用户名
passwd:数据库密码
host:数据库地址
db:数据库名
table:数据库表名称
usercolumn:用户字段名
passwdcolumn:密码字段名

7.1.2 方法二:有mysql日志

vim /etc/pam.d/vsftpd.mysql

复制如下内容

auth required pam_mysql.so config_file=/etc/security/pam_mysql.conf
account required pam_mysql.so config_file=/etc/security/pam_mysql.conf

增加配置文件

vim /etc/security/pam_mysql.conf

复制如下内容

users.host=localhost
users.database=vsftpd
users.db_user=root
users.db_passwd=root
users.table=user
users.user_column=username
users.password_column=password
users.password_crypt=0
verbose=1
log.enabled=1
log.table=log
log.message_column=msg
log.pid_column=pid
log.user_column=username
log.host_column=host
log.rhost_column=rhost
log.time_column=add_time

7.2数据库/表创建

CREATE DATABASE vsftpd DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` char(50) NOT NULL DEFAULT '' COMMENT '用户名',
  `password` char(32) NOT NULL DEFAULT '' COMMENT '密码',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
INSERT INTO `user` VALUES ('1', 'admin', 'admin');

CREATE TABLE `log` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `pid` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'pid',
  `msg` varchar(255) NOT NULL DEFAULT '' COMMENT '内容',
  `username` char(32) NOT NULL DEFAULT '' COMMENT '用户',
  `host` varchar(50) NOT NULL DEFAULT '' COMMENT '服务器',
  `rhost` varchar(50) NOT NULL DEFAULT '' COMMENT '客户端ip',
  `add_time` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP COMMENT '时间',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

7.3配置文件修改

vim /etc/vsftpd.conf

下面参数修改为
pam_service_name=vsftpd.mysql

7.4 用户权限

每新建立一个用户,就要设置一个目录,如果没有设置,那么默认是local_root=/home/ftp 目录

mkdir /etc/vsftpd_user_conf  #用户权限文件目录
vim /etc/vsftpd_user_conf/test1

复制如下内容 (每行末尾都不要有空格)

write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/home/ftp/test1

anon_world_readable_only:NO //可以浏览FTP目录和下载文件
write_enable:YES允许写入
anon_upload_enable:YES允许上传
anon_mkdir_write_enable:YES允许创建删除目录
anon_other_write_enable:YES允许文件改名和删除(修改/删除)

7.5重启

systemctl restart vsftp.service

7.6 一个小批处理

添加用户权限批处理,使用前必须先在数据库或文件库中添加用户及密码

#!/bin/bash
if [ $UID != 0 ]; then echo "Error: You must be root to run ";exit;fi
echo "You must set up the user and password in the database."

read -p "vsftp :add username :" user
echo "you input username:$user"

cat > /etc/vsftpd_user_conf/$user<<eof
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/home/ftp/$user
eof

mkdir -p /home/ftp/$user
chown -R ftp:ftp /home/ftp/$user
echo "restart vsftpd ....."
systemctl restart vsftpd.service

保存为user.sh

chmod 777 user.sh
时间: 2024-09-15 21:52:03

linxu Ubuntu 15.x vsftpd 虚拟用户登录及mysql验证的相关文章

ubuntu下vsftpd虚拟用户配置

一.业务要求 现在要求创建一个FTP账号ailanni,该账号只能登录到/www目录下,不能切换到上级目录.同时处于安全考虑还要求该账号上传的文件权限为644,即上传的文件具有可读可写权限,但是没有可执行权限. 除此之外还要求该用户不能是系统用户,即使用vsftpd的虚拟用户. 要求看起来比较简单,下面我们开始进行配置. PS:以下实验全部在ubuntu server 14.04 X64上进行.有关centos的操作可以参考这篇文章<烂泥:Vsftpd使用虚拟用户,访问FTP>. 二.vsft

判断vsftpd虚拟用户无法登陆故障方法

又是vsftpd虚拟用户无法登陆,以前常用apache用户,这次自己建了一个用户vuser,折腾半天不得要领.   看了上次的无法登陆文章,里面提到了一个方法,就是在服务器上用ftp命令登陆,会提示详细的错误信息,而在客户端则无错误日志.切记切记. ftp>ftp 127.0.0.1 按照步骤执行操作, 在登录输入账号密码的时候会提示详细错误

vsftpd虚拟用户与匿名用户配合使用

前几天写过一篇有关vsftpd虚拟用户的文章,今天再来介绍有关vsftpd虚拟用户与匿名用户配合使用的案例. 要求:在公司FTP服务器上,用户ilanni对/data目录下所有的目录都具有管理员权限,即删除.新建.重命名.上传等.而匿名用户可以浏览data目录下的所有目录,其中只对tmp目录具有管理员权限. 这样可以达到只有一个管理员账号,可以对/data目录进行操作,而公司的其他员工帐号都可以浏览/data目录,并且在/data/tmp目录下可以新建自己的目录,并上传文件等权限. 有关vsft

linux中vsftpd虚拟用户配置脚本示例

每次新安装服务器后,都要进行一系列的配置,安装软件,修改配置等,为了今后更好的部署vsftpd,特此写了个脚本用于部署 登录FTP有三种方式,匿名登录.本地用户登录和虚拟用户登录. 匿名登录:在登录FTP时使用默认的用户名,一般是ftp或anonymous. 本地用户登录:使用系统用户登录,在/etc/passwd中. 虚拟用户登录:这是FTP专有用户,有两种方式实现虚拟用户,本地数据文件和数据库服务器. FTP虚拟用户是FTP服务器的专有用户,使用虚拟用户登录FTP,只能访问FTP服务器提供的

紧急求助:linux vsftpd虚拟用户能上传、下载文件,没有删除权限

问题描述 紧急求助:linux vsftpd虚拟用户能上传.下载文件,没有删除权限 SELinux设置为disable了,文件属主是virtural(virtual是虚拟用户所在的本地用户) 解决方案 写个脚本将文件扫描到就赋予所有权限呢 解决方案二: 把write_enable=yes前面的注释取消试试

基于vsftpd+pam+mysql架设ftp并实现虚拟用户登录

1.系统环境和所需软件包 Redhat Enterprise-5.8.vsftpd.mysql.pam-mysql-0.7RC1 2.本文大致内容 ①.vsftpd安装 ②.vsftpd配置文件的介绍 ③.vsftpd服务器的基本实现和一般控制设置 ④.虚拟用户vsftpd服务器的搭建.测试等 3.FTP服务器介绍 FTP服务器的连接分为两种: 控制连接:客户端向服务器端请求连接,而且一旦建立就不在断开,等到人为断开的时候此连接才会释放,此连接是 利用tcp的21号端口 数据连接:客户端和服务器

centos 6.0 vsftpd虚拟用户配置总结

如果你已经对pam有所了解,请跳过,我知道的可能还不如你多.你不感兴趣也请跳过,因为不看这个也可配置. 用户 <-> vsftpd <-> PAM模块 <-> 用户和密码数据库 vsftpd用了一种很聪明同时也是unix/linux规范的方法来认证用户,就是PAM.大家对于PAM,也许有些陌生,但是一直在用.所谓PAM,英文是:Pluggable Authentication Modules,可拔插认证模    块(不知道这样翻译对不对).看见plug这个关键字,就知道

编译安装vsftpd-2.3.4及配置虚拟用户登录高级应用详解

续上一博文,再深入解说vsftpd配置FTP服务器,实现更深层次的功能,达到更安全的.高效.高级应用技巧. 本文旨在解说,系统安装过程中需要注意的地方,关键环节,工具包之间的依存关系,互换相承支持关系. 详细说明为啥我要这样操作,并且在操作过程遇到的问题,和相应的解决方法. 本文要点: 1.实现多虚拟用户.实现多个虚拟宿主用户(本地用户),一个宿主本地用户可以关联多个虚拟用户. 例如,宿主本地用户www,关联多个虚拟用户jimmyli.blog.51cto.com(目录/data/jimmyli

Centos 6.2中vsftpd虚拟用户的配置

vsftpd 是"very secure FTP daemon"的缩写,安全性是它的一个最大的特点.vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux.BSD.Solaris. HP-UNIX等系统上面,是一个完全免费的.开发源代码的ftp服务器软件,支持很多其他的 FTP 服务器所不支持的特征.比如:非常高的安全性需求.带宽限制.良好的可伸缩性.可创建虚拟用户.支持IPv6.速率高等. 之前就有弄过vsftpd,就不再介绍了! 安装: [ro