linux ftp mysql_linux下ftp和ftps以及ftp基于mysql虚拟用户认证服务器的搭建

命令连接,控制连接:21/tcp

数据连接: 主动模式,运行在20/tcp端口 和 被动模式,运行在随机端口

数据传输模式(自动模式):有二进制(mp3,jpg等)和文本(html)两种传输模式

ftp服务器端程序:wu-ftpd:vsftpd pureftpd Filezilla Serv-U

ftp客户端程序:CLI文本模式命令:ftp lftp

GUI图形界面软件:gftpd FlashFXP Cuteftp Filezilla

vsftpd:命名为Very Secure ftp Daemon proftpd

/etc/vsftpd: 配置文件目录

/etc/init.d/vsftpd: 服务脚本

/usr/sbin/vsftpd: 主程序

/var/ftp:ftp服务和用户的根目录或家目录,也是匿名用户访问目录

基于PAM实现用户认证:

/etc/pam.d/* :认证程序位置

/lib/security/*:认证程序模块位置

可支持虚拟用户

ftp: 系统用户,分有以下三种用户

匿名用户:anonymous

系统用户: 本地系统用户

虚拟用户: 需要映射到系统用户

ftp文件服务权限:包括系统文件目录权限和配置文件授权,取交集权限

安全通信方式:分明文和密文两种,如下:

ftp:明文

ftps: ftp+ssl/tls,密文

sftp: OpenSSH, SubSystem, sftp(SSH),密文

2.配置vsftpd.conf文件详解

安装vsftpd 服务器软件

yum install vsftpd

编辑配置vsftpd.conf文件

vim /etc/vsftpd/vsftpd.conf

配置文件内容如下:

anonymous_enable=YES  #开启匿名用户访问

local_enable=YES     #开启本地用户访问

write_enable=YES     #开启本地用户上传权限

anon_upload_enable=YES #开启匿名用户上传权限

#anon_mkdir_write_enable=YES #开启匿名用户创建目录权限

#anon_other_write_enable=YES #开启匿名用户其他权限,如创建,删除文件等权限

#dirmessage_enable=YES #如在共享目录创建.messages隐藏文件并添加提示语,给登入用户提示而已

#xferlog_enable=YES   #开启日志功能

connect_from_port_20=YES #命令连接20/tcp端口开启

#chown_uploads=YES     #开启修改上传用户的属主功能

#chown_username=whoever  #改变上传用户属主是谁

#xferlog_file=/var/log/xferlog #对应上面的日志开启功能,日志文件路径位置

xferlog_std_format=YES      #日志文件格式

#idle_session_timeout=600    #ftp命令连接时最大空闲连接时间

#data_connection_timeout=120  #ftp数据连接最大传输时间

#ftpd_banner=Welcome to blah FTP service.  #ftp用户连接服务器提示语

#chroot_list_enable=YES    #开启锁定用户家目录,以防用户切入至系统其他目录

#chroot_list_file=/etc/vsftpd/chroot_list #此文件下的ftp用户才会被锁定在家具录

#chroot_local_user=YES     #开启本地系统用户全部开启chroot机制

listen=YES  #独立守护进程,根据其他设置可将vsftpd变成瞬时守护进程

#max_clients= #同一时间最大并发用户连接数

#max_per_ip=  #同一时刻每个IP地址最大连接数

pam_service_name=vsftpd  #基于pam认证服务名字

userlist_enable=YES     #user_list文件中的用户禁止登入ftp服务器

注意:如果上面配置开启上传下载或删除文件权限,但是所共享的目录指定的ftp登入用户没有写入

权限,这样也不能上传下载或删除文件

3.ftp明文传输服务器搭建,

实验目的:在/var/ftp/目录下创建upload目录

新增本地用户willow

允许匿名用户和本地系统用户willow能在upload目录上传下载创建删除文件

yum install vsftpd

mkdir /var/ftp/upload

useradd willow

echo "willow" | passwd --stdin willow

setfact -m u:willow:rwx /var/ftp/upload #这步骤很重要,授权willow对此目录有写入权限

vim /etc/vsftpd/vsftpd.conf

确保如下配置生效:

anonymous_enable=YES

local_enable=YES

write_enable=YES

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

ftp localhost 利用willow用户登入测试效果

4.ftps密文传输服务器搭建,即ftp + tls加密认证

创建自签名证书

cd /etc/pki/CA

mkdir certs newcerts crl

touch index.txt

echo 01 > serial

vim /etc/pki/tls/openssl.cnf

dir            = ../../CA

将上面一条语句修改成下面一条语句

dir             = /etc/pki/CA

(umask 077,openssl genrsa -out private/cakey.pem 1024)

openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 365

mkdir /etc/vsftpd/ssl

cd /etc/vsftpd/ssl

(umask 077,openssl genrsa -out vsftpd.key 1024)

openssl req -new -key vsftpd.key -out vsftpd.csr

openssl ca -in vsftpd.key -out vsftpd.crt

注意到此为止,我仅给出创建证书并再申请证书步骤,并没有给出详细过程,依自己实验环境而定

如需了解证书建立详细步骤,请查看我前面的博客,在此我们得到如下信息:

私钥文件位置:/etc/vsftpd/ssl/vsftpd.key

证书文件位置:/etc/vsftpd/ssl/vsftpd.crt

vim /etc/vsftpd/vsftpd.conf

增加如下容:

ssl_enable=YES

ssl_tlsv1=YES

ssl_sslv3=YES

allow_anon_ssl=NO

force_local_data_ssl=YES

force_local_logins_ssl=YES

rsa_cert_file=/etc/vsftpd/ssl/vsftpd.crt   #证书位置

rsa_private_key_file=/etc/vsftpd/ssl/vsftpd.key  #私钥位置

重启vsftpd服务

service vsftpd restart

使用FlashFXP客户端软件测试即可,加密传输

5.基于mysql虚拟用户认证的ftp服务器搭建

5.1.编译安装pam_mysql-0.7RC1

tar zxvf  pam_mysql-0.7RC1.tar.gz

cd  pam_mysql-0.7RC1

./configure --with-mysql=/usr --with-openssl

make

make install

cp /usr/lib/security/pam_mysql.* /lib/security/

5.2.安装vsftpd

yum -y install vsftpd

5.3.安装mysql-server和mysql-devel

yum install -y mysql-server mysql-devel

service mysqld start

5.4.创建虚拟用户账号

5.4.1准备数据库及相关表

#mysql  本地连接mysql数据库

mysql> create database vsftpd;

mysql> grant select on vsftpd.* to vsftpd@localhost identified by ‘vsftpd‘;

mysql> grant select on vsftpd.* to vsftpd@127.0.0.1 identified by ‘vsftpd‘;

mysql> flush privileges;

mysql> use vsftpd;

mysql> create table users (

-> id int AUTO_INCREMENT NOT NULL,

-> name char(20) binary NOT NULL,

-> password char(48) binary NOT NULL,

-> primary key(id)

-> );

5.4.2.添加测试的虚拟用户

mysql> insert into users(name,password) values(‘willow‘,‘willow‘);

mysql> insert into users(name,password) values(‘tom‘,‘tom‘);

注意;这里将其密码采用明文格式存储,原因是pam_mysql与MySQL的password()函数可能会有所不同。

可通过pam_mysql目录下的REDME文件查看加密解释,即less REDME

6.建立pam认证所需文件

#vim /etc/pam.d/vsftpd.mysql

添加如下两行

auth required /lib/security/pam_mysql.so user=vsftpd passwd=vsftpd host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=0

account required /lib/security/pam_mysql.so user=vsftpd passwd=vsftpd host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=0

7.修改vsftpd的配置文件,使其适应mysql认证

建立虚拟用户映射的系统用户及对应的目录

#useradd -s /sbin/nologin -d /var/ftpvuser vuser

#chmod go+rx /var/ftprootvuser

请确保/etc/vsftpd.conf中已经启用了以下选项

anonymous_enable=YES

local_enable=YES

write_enable=YES

anon_upload_enable=YES

anon_mkdir_write_enable=YES

chroot_local_user=YES

必须添加以下选项

guest_enable=YES

guest_username=vuser  #虚拟用户映射本地用户vuser

pam_service_name=vsftpd.mysql #对照前面新增的/etc/pam.d/vsftpd.mysql名字

启动vsftpd服务并测试效果

# service vsftpd start

# chkconfig vsftpd on

# ftp localhost

8.配置虚拟用户具有不同的访问权限

8.1.配置vsftpd为虚拟用户使用配置文件目录

# vim vsftpd.conf

关闭匿名用户所有权限

anon_upload_enable=NO

anon_mkdir_write_enable=NO

anon_other_write_enable=NO

必须添加如下选项

user_config_dir=/etc/vsftpd/vusers_dir

mkdir /etc/vsftpd/vusers_dir/

cd /etc/vsftpd/vusers_dir/

touch willow tom

8.2.配置虚拟用户的访问权限

8.2.1.让虚拟用户tom不能上传,只有下载权限

vim /etc/vsftpd/vusers/tom

anon_upload_enable=NO

8.2.2.让虚拟用户willow具有上传,下载,创建,删除等权限

vim /etc/vsftpd/vusers/willow

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

本文出自 “夏维柳” 博客,请务必保留此出处http://willow.blog.51cto.com/6574604/1786264

linux下ftp和ftps以及ftp基于mysql虚拟用户认证服务器的搭建

标签:linux下ftp和ftps以及ftp基于mysql虚拟用户认证服务器的搭建

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:http://willow.blog.51cto.com/6574604/1786264

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/533389.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

阿里云rds for mysql平台介绍_阿里云RDS for MySQL 快速入门——笔记

1初始化配置1.1设置白名单创建RDS实例后,需要设置RDS实例的白名单,以允许外部设备访问该RDS实例。默认的白名单只包含默认IP地址127.0.0.1,表示任何设备均无法访问该RDS实例。设置白名单包括两种操作:设置IP白名单:添加…

mysql数据库下载压缩包_mysql 8.0.22 zip压缩包版(免安装)下载、安装配置步骤详解...

大家好,今天我在学习 MySQL 8.0.22安装及配置遇到了一些问题,特地将我整个安装过程分享出来希望可以帮助不会安装的小伙伴😜。参考链接第一步 MySQL的下载进入MySQL官网下载,按下图所示步骤操作,耐心等待下载完成就可以…

mysql 5.5 主从同步问题_MySQL 5.5 主从复制异步、半同步以及注意事项详解

大纲一、前言二、Mysql 基础知识三、Mysql 复制(Replication)四、Mysql 复制(Replication)类型五、Mysql 主从复制基本步骤六、Mysql 主从复制(异步)七、Mysql 主从复制(半同步)八、Mysql 复制工具九、Mysql 复制注意事项十、Mysql 复制过滤一、前言从这一篇博客开始我们就来学…

开源内容管理系统 php mysql_十大免费PHP+MySql平台内容管理系统推荐

最近,朋友要建站让我帮着推荐个好的CMS(内容管理系统),个人认为其实选择哪个CMS并不重要,除了对搜索引擎的亲好外,个人的使用操作习惯和对所选CMS系统的熟悉程度有很大关系。这里为需要建站但又徘徊的朋友介绍10个免费PHPMySql平台…

mysql导入xml 工具下载_XML导入Mysql工具下载|XmlToMysql 最新版v2.1 下载_当游网

XmlToMysql是一款十分不错的XML导入Mysql工具,它可以帮助用户们将XML中的数据快速的导入到MySQL数据库中,可以直接跳过解析环节,因此可以有效的提升程序员传输数据的效率,让程序员可以拥有更多的时间去处理其他环节的事宜。所以喜…

mysql忽略表名大小写_Mysql 表名忽略大小写-连接字符集随笔记录

1.参数说明:lower_case_table_names0表名存储为给定的大小和比较是区分大小写的lower_case_table_names 1表名存储在磁盘是小写的,但是比较的时候是不区分大小写lower_case_table_names2表名存储为给定的大小写但是比较的时候是小写的unix,linux下lower_…

mysql与orancl_清晰讲解SQL语句中的外连接,通用于Mysql和Oracle,全是干货哦

清晰讲解SQL语句中的外连接,通用于Mysql和Oracle,全是干货哦直入主题:我们做一个操作,将员工SCOTT的部门去掉,再次通过内连接查看数据,看看会产生什么现象?使用内连接,查询数据问题&…

.net mysql查询数据库连接_asp.net连接查询SQL数据库并把结果显示在网页上(2种方法)...

在ASP.NET中,使用C#连接SQL数据库,并使用SQL语句查询,以前从来没有接触过C#,最近用到了,摸索了两天终于运行起来了,Mark一下,不喜勿喷有两种方法:(说的是第一种方法不安全&#xff0…

mysql异常恢复工具_[MySQL异常恢复]mysql ibd文件恢复

在mysql中由于某种原因保存有ibd文件,但是表已经被删除或者frm文件损坏亦或者ibdata文件损坏/丢失等。本文模拟在这种情况下,通过mysql自身技术即可完成ibd文件恢复.测试环境mysql版本mysql> select version();-----------| version() |-----------| …

ddl是什么意思网络语_DDL(数据定义语言)

DDL,是对数据库内部的对象进行创建,删除,修改等的操作语言。它和DML语言最大的区别是DML只是对表内部数据的操作,而不涉及到表的定义,结构的修改,更不会涉及到其它对象。1.连接数据库:注:1.mysql代表客户端…

jsp mysql优点_asp、php、asp.net、jsp的介绍和各自的优缺点

现在主流的网站开发语言无外乎asp、php、asp.net、jsp等。主流网站开发语言之ASP:ASP是微软(Microsoft)所开发的一种后台,它的语法和Visual BASIC类似,可以像SSI(Server Side Include)那样把后台脚本代码内嵌到HTML页面中。虽然ASP简单易用,但…

测试网络的带宽指令_单机千万级MQTT服务器测试报告

目标:测试创建1000万客户端连接到Coolpy7 MQTT服务器端,服务器操作系统 Linux(任意一款发行版服务器版本)。分别在两台硬件一样的服务器,其中一台用于服务器端运行,另一台用于创建千万客户端连接客户端机器。在硬件一致的情况下请…

python邮箱爆破_Python在线爆破邮箱账号密码测试代码(亲测可用)

dic 字典格式如下(mail.txt) :usernamegmail.com:passwordusernamegmail.com:passwordusernamegmail.com:password以此类推,切记保存成utf-8编码格式。放置在当前脚本目录,也可自己定义修改。支持ssl https /imap协议。# version 3.4.0# codingUTF-8# ti…

查看redis aof内存_Redis持久化问题定位与优化技巧

今天主要分享继Redis持久化方式RDB、AOF之后的一些常用的Redis问题定位于优化方式。这里主要CPU、内存、磁盘在三个维度去分析问题!Fork操作当Redis做RDB或AOF重写时,一个必不可少的操作就是执行fork操作创建子进程,对于大多数操作系统来说fo…

mysql新增阵列df_DF学Mysql(三)——索引操作

概要:数据库对象索引其实与书的目录非常相似,主要是为了提高从表中检索数据的速度。由于数据存储在数据库表中,所以索引是创建在数据库表对象上的,由表中的一个字段或多个字段生成的键组成,这些键存储在数据结构(B-树或…

python本地浏览器注入js_PyQt5内嵌浏览器注入JavaScript脚本实现自动化操作的代码实例...

概要应同学邀请,演示如何使用 PyQt5 内嵌浏览器浏览网页,并注入 Javascript 脚本实现自动化操作。下面测试的是一个廉价机票预订网站(http://www.flyscoot.com/),关键点如下使用 QWebEngineView 加载网页,并显示进度。在默认配置(…

python装好了怎么启动车_【填空题】Python安装好后,可以直接在CMD命令行下输入( )命令, 可启动交互式编程,提示窗口如下:...

倾斜岩层的产状要素是用岩层层面的()。A.倾角B.走向C.范围D.倾向E.表面积采用深层搅拌法进行地基加固处理,其适用条件为()。A.砂砾石松软地基B.松散砂地基C.黏土软弱地基根据《建筑工程建筑面积计算规则》,下列关于建筑物雨篷结构的建筑面积计算&#xf…

windows设置mysql使用率_Windows下配置Mysql

这里说的配置Mysql,是在安装时进行的,请先查看:Windows平台下安装Mysql紧接上文,安装完成后将配置选项打上对勾,按下“Finish”,出现下面的界面,这里有一个很好的功能,mysql配置向导…

mysql 云无忧ps教程_华为云数据库MySQL一键开通读写分离,无忧应对企业业务高峰情景...

业务大促,订单暴增,网站流量暴涨几倍,数据库服务器容量又要扛不住了,眼睁睁看着生意白白溜走,再苦逼也无法解决,“肿”么办?别担心,一键开通读写分离,而且只需一个连接地…

mysql实体监听器_GitHub - langjiangit/spring-boot-starter-mysql-binlog: mysql的binlog监听器

mysql binlog监听器前置操作1.查看mysql是否开启binlogshow variables like log_bin;2.查看是否使用row格式的binlogshow variables like binlog_format;3.如果以上都不是请修改mysql的配置文件添加或者修改如下内容#配置binlog存放路径log-binE://mysql//binlog//mysql-bin#bi…