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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
运维安全中心(堡垒机),免费版 6个月
简介: 要建立一个本地FTP服务器,虚拟用户登陆 风来了.fox全部以 root 权限所有配置末尾不能 有 空格1.安装apt-get install -y vsftpdapt-get install -y db5.3-util #有可能版本不一样安装完成后,自动建立 ftp用户及用户组mkdir /home/ftpchmo

要建立一个本地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
相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
15天前
|
Oracle 关系型数据库 MySQL
使用崖山YMP 迁移 Oracle/MySQL 至YashanDB 23.2 验证测试
这篇文章是作者尚雷关于使用崖山YMP迁移Oracle/MySQL至YashanDB 23.2的验证测试分享。介绍了YMP的产品信息,包括架构、版本支持等,还详细阐述了外置库部署、YMP部署、访问YMP、数据源管理、任务管理(创建任务、迁移配置、离线迁移、校验初始化、一致性校验)及MySQL迁移的全过程。
|
3月前
|
监控 Ubuntu 安全
debian或Ubuntu中开启ssh允许root远程ssh登录的方法
在Debian或Ubuntu系统中启用root用户的SSH远程登录需要编辑SSH配置文件、设置root密码并重启SSH服务。虽然这可以在某些情况下提供便利,但必须注意安全性,通过使用强密码、限制IP访问、使用SSH密钥认证等方法来保护服务器的安全。
1414 5
|
5月前
|
Ubuntu 关系型数据库 MySQL
ubuntu使用aliyun源+mysql删除有外键约束的数据+查看特定目录的大小
ubuntu使用aliyun源+mysql删除有外键约束的数据+查看特定目录的大小
111 4
|
5月前
|
关系型数据库 MySQL 数据库
vertx 的http服务表单提交与mysql验证
本文介绍了如何使用Vert.x处理HTTP服务中的表单提交,并通过集成MySQL数据库进行验证,包括项目依赖配置、表单HTML代码和完整的Vert.x服务代码。
53 2
|
5月前
|
Ubuntu 关系型数据库 MySQL
Ubuntu 安装mysql和简单操作
Ubuntu 安装mysql和简单操作
590 0
|
7月前
|
Ubuntu 关系型数据库 MySQL
Ubuntu 安装 MySQL 5.7
Ubuntu 安装 MySQL 5.7
223 0
|
8月前
|
存储 关系型数据库 MySQL
关系型数据库mysql验证数据完整性
【7月更文挑战第2天】
275 1
|
9月前
|
关系型数据库 MySQL 分布式数据库
PolarDB产品使用问题之要验证MySQL迁移后的数据库数据与迁移前的数据一致性,该怎么办
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
120 0
PolarDB产品使用问题之要验证MySQL迁移后的数据库数据与迁移前的数据一致性,该怎么办
|
8月前
|
Ubuntu 关系型数据库 MySQL
MySQL5.7在Ubuntu安装[单机软件],第一步登录root,sudo su -
MySQL5.7在Ubuntu安装[单机软件],第一步登录root,sudo su -
|
8月前
|
Ubuntu 关系型数据库 MySQL
Mysql8.0在Ubuntu安装
Mysql8.0在Ubuntu安装