问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

关于在redhat9.0下面搭建FTP服务器 安装了webmin 配置好了vsftpd,想通过mysql建立虚拟用户并用apache发布

发布网友 发布时间:2022-04-29 18:23

我来回答

2个回答

懂视网 时间:2022-04-29 22:44

一、目的

要求:配置允许虚拟用户访问的vsftpd服务器,虚拟用户存储在另一台MySQL的服务器上面,虚拟用户账号有两个分别是tom和jerry,密码是tom和jerry,要求对这两个账户的权限做一下限制(根据实际的要求,自己调节)。

环境:MySQL服务器(172.16.49.1),CentOS 6.6和MariaDB-5.5.43。另一台是通过yum安装vsftpd(192.168.0.22),OS是CentOS 6.6。

  • MySQL是通用二进制格式安装,前文的博客已经介绍过如何安装。

  • vsftpd。

  • 1、介绍vsftpd

    Vsftpd是ftp协议实现的一种方式,在应用层,不依赖于通信子网,也就是不依赖于内核,所以,Windows用户也可以使用。本身基于C/S模式,服务器端始终监听在21端口,因为21端口是命令连接端口,而20端口是数据传输的端口,需要数据传输的时候建立,之后拆除,而不是一致处于监听状态,所以,client和server之前的数据传输的连接又可以分为“主动”和“被动”两个模式。

    “主动”:由server端主动创建的连接。就是首先client的随机端口连接server的21端口,当收到下载数据的命令之后,server端主动会开启20端口,连接client的随机+1端口,传输完毕20端口将被“拆除”,一般不用“主动”连接的模式,因为如果client有防火墙的话,一般需要client手动去放行或设置。

    “被动”:由client创建的连接。就是首先client的随机端口连接server的21端口,在21端口client和server已经“协商”完毕,server端使用哪个随机端口去连接client的随机+1端口(注意:为什么client不主动连接server的20端口,因为server的20端口不会像21端口那样,vsftpd一直在监听,按需要建立然后关闭)。

    ftp的传输格式是看数据,如果数据是文本就文本传输,如果数据是二进制的程序,那就是以二进制传输,这一点不同于http协议,只能是以文本流进行传输。

    ftp也有信息码:

    1系列:信息码。

    2系列:成功。

    3系类:需要进一步提示补充的状态码(当你输入账户之后,会有,因为还有密码)。

    4系类:客户端错误。

    5系列:服务器端错误。

    因为vsftpd只有在类unix服务器上实现,所以认证主要是通过OS自己的pam模块认证,OS的系统用户,匿名用户(没有用户和密码),虚拟用户(在数据库或其它文件中存储的账号和密码)认证。

    2、yum安装vsftpd之后生成的主要文件。

    用户认证(pam)配置文件:/etc/pam.d/vsftpd(注意:主配置文件中的pam_service_name=vsftpd,就是调用这个配置文件)。

    主应用程序:/user/sbin/vsftpd

    匿名用户共享的资源:/var/ftp(注意:所有的匿名的用户都需要映射到OS中的用户,为了安全起见,最好是系统用户,但是需要创建系统用户的时候建立家目录,因为模式开放的就是家目录,只有映射到OS中的用户你才能够访问文件,因为local file也是需要权限的,但是不能更改/var/ftp的权限,可以新建一个目录,然后修改可写的权限)。

    系统用户就是用户的家目录。

    配置文件目录:/etc/vsftpd

    主配置文件:/etc/vsftpd/vsftpd.conf

    3、对于主配置文件的部分内容进行说明

    anonymous_enable=YES //是否启用匿名用户
    anon_upload_enable=YES //是否开启匿名用户上传
    anon_mkdir_write_enable=YES //是否允许匿名用户创建目录
    anon_ohter_write_enable=YES //是否允许匿名用户删除文件
    local_enable=YES //是否启用本地系统用户
    write_enable=YES //是否允许本地系统用户删除、创建
    local_umask=022 //限制权限


    禁锢所有的ftp本地用户于其家目录中:

    chroot_local_user=YES

    禁锢文件中指定的ftp本地用户于其家目录中:

    chroot_list_enable=YES
    chroot_list_file=/etc/vsftpd/chroot_list

    日志:

    xferlog_enable=YES
    xferlog_std_format=YES
    xferlog_file=/var/log/xferlog

    改变上传文件的属主:

    chown_uploads=YES
    chown_username=whoever

    是否启用控制用户登录的列表文件/etc/vsftpd/user_list

    userlist_enable=YES
    userlist_deny=YES|NO

    连接限制:

    max_clients:  //最大并发连接数
    max_per_ip: //每个IP可同时发起的并发请求数


    传输速率:

    anon_max_rate:  //匿名用户的最大传输速率, 单位是“字节/秒”
    local_max_rate:  //本地用户的最大传输速率, 单位是“字节/秒”


    强制启动文本流传输,有可能客户端打开的文件是乱码

    ascii_upload_enable=YES
    ascii_download_enable=YES

    4、配置

    A、安装所需要的程序

    1、安装vsftpd、pam_mysql和mysql_server

    注意:pam_mysql是由epel源提供

                               

    B、创建虚拟用户账号

    1、准备数据库及相关的表格

    mysql>CREATE DATABASE vsftpd;
    //mysql>GRANT SELECT ON vsftpd.* TO vsftp@localhost IDENTIFIED BY‘mima‘; 数据库在本机的时候可以使用
    mysql>GRANT SELECT ON vsftpd.* TO vsftp@d‘172.16.%.%‘ IDENTIFIEDBY ‘mima‘;
    mysql>FLUSH PRIVILEGES;
     
    mysql>use vsftp;                                                                                                                     
    mysql>CREATE TABLE users (id INT UNSIGNED AUTO_INCREMENT NOT NULLPRIMARY KEY,name CHAR(20) BINARY NOT NULL,password CHAR(48) BINARY NOT NULL);

                               

    2、添加测试的虚拟账户

    为了密码的安全使用mysql内部的函数进行加密,之后密码的位数是48位。

    mysql>INSERT INTO users (name,password) VALUES(’tom‘,password(‘tom‘)),(’jerry‘,password(‘jerry‘)
    );

                               

    C、配置vsftpd

    1、建立pam认证所需的文件

    vim /etc/pam.d/vsftpd.mysql //为了不与原来的vsftpd的认证文件冲突,所以进行重新命名
    添加如下两行(可以直接写pam_mysql.so,会自动去/lib64/security这个目录下面去找):
    auth required /lib64/security/pam_mysql.so user=vsftp passwd=mima host=MYSQL那台机器的IP db=vsftpd table=users usercolumn=name passwdcolumn=passwordcrypt=2  //认证账号,为什么是crypt=2,rpm-ql pam_mysql中的README解决
    account required /lib64/security/pam_mysql.so user=vsftp passwd=mima host=MYSQL那台机器的IP db=vsftpd table=users usercolumn=name passwdcolumn=passwordcrypt=2  //检查账号是否在有效期之内


                      

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

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

    useradd -s /sbin/nologin -d /var/ftproot vuser
    chmod go+rx /var/ftproot

                               

    确保主配置文件/etc/vsftpd/vsftpd.conf中有,可以根据需要临时修改

    anonymous_enable=YES
    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

            

    确保pam_service_name的值

    pam_service_name=vsftpd.mysql //只能通过mysql认证登陆


                               

    D、启动vsftpd服务

    /etc/init.d/vsftpd start
    chkconfig vsftpd on

                               

    使用虚拟用户登陆,验证配置结果,你可以通过win的IE或者cmd等

                               

    E、配置虚拟用户具有不同的访问权限

    vsftpd可以在配置文件目录中为每个用户提供单独的配置文件已定义其ftp服务访问权限,每个虚拟用户的配置文件名桐虚拟用户的用户名。配置文件目录可以是任意未使用目录,只需要在vsftpd.conf指定路径及名称即可。

    1、配置vsftpd为虚拟用户使用配置文件目录

    vim /etc/vsftpd/vsftpd.conf

    添加如下

    user_config_dir=/etc/vsftpd/vusers_config

                               

    2、创建所需要的目录,并为虚拟用户提供配置文件

    mkdir /etc/vsftpd/vusers_config
    touch /etc/vsftpd/vusers_config/{tom,jerry}

                               

    3、配置虚拟用户的访问权限

    虚拟用户对vsftpd服务的访问权限是通过匿名用户的相关指令进行的。比如,如果需要让tom用户具有上传下载的权限,可以修改/etc/vsftpd/vuser_config/tom文件,在里面添加

    anon_upload_enable={YES|NO}
    anon_mkdir_write_enable={YES|NO}
    anon_other_write_enable={YES|NO}

    四、截图如下

    技术分享

    图1、数据库的创建

    技术分享

    图2、虚拟用户tom登陆

    技术分享

    图3、tom用户上传和创建目录

    注意:图3中227 EnteringPassive Mode (192,168,0,22,28,236)告诉你是被动模式下载的数据,其实服务器的端口号就是28*256+236。

    有志同道合的“战友”可以加我qq:865765761。(注明:Linux)


    本文出自 “只写感受!” 博客,请务必保留此出处http://damihua.blog.51cto.com/6537272/1651073

    创建vsftpd服务器基于mysql的虚拟用户认证

    标签:vsftpd 虚拟用户 mysql认证

    热心网友 时间:2022-04-29 19:52

    http://hi.baidu.com/gfengyoung/blog/item/5f75f745b098a338cefca366.html
    配置apache列表ftp目录
    不过建议使用lighttpd
    不要使用webmin了
    能帮我找个好Linux 下载地址吗?

    当你配置好她后,你也可以保存她的设置,下次运行时她会自动读出。现版本0.3.1A是基于Redhat Linux 9.0的系统,加入了MPlayer 0.93/AcroReader5(含简繁字体包)/RealPlayer8/Proftpd-1.2.9/fcitx五笔和拼音中文输入等。于2003年3月29日制做完成。光盘容量为636MB,其上压缩保存了总容量约为1.5GB的Linux系统。 26. ...

    socks5 代理软件 - StormProxies

    StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,IP纯净高匿;2、覆盖全球20...

    声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
    狗狗吃饭为什么夹尾巴 平顶山公交几路到华延四季城 为什么狗狗夹紧尾巴 从新城区到光明路华延四季城怎么走 狗害怕时尾巴如何 您好,请问支原体感染。克拉霉素管用吗? 肺支原体阳性怎么治 为什么狗狗紧张自己的尾巴 狗狗害怕为什么夹尾巴 怎么上传文件创建下载地址 今年退休5月退休,专7交社保后在乌鲁木齐退休后每月能领多少钱 老公梦见自己母亲洗了好多衣服跟床单被罩,眼睛还看不见了 我是新疆的,农村养老保险我们这里是100元/年和1000元/年,到60岁按1000元/年此标准可以领到多少元? 在乌鲁木齐,我每月交800元养老保险费交够15年。每月能领多少钱?从多少岁开始领。我是一名女性。 2021国考考试培训班? 东菱面包机搅拌棒搅不动怎么回事? 国考公务员培训机构? 美的面包机,放入空桶转不动,只听疙瘩疙瘩声,去掉空桶电机可以转动,这是什么原因? 梦见被狗咬,什么意思? 周公解梦大全梦见被犬咬代表什么意思? 纪凡跟纪梵希什么关系? 国考 公务员培训班? ai的文件,keyshot能不能渲染 国考省考培训班哪个好? 国考公务员培训哪家好? 用AI怎么做出这种太阳纹的效果 求设计大神们帮忙呀 [AI]如何更改3D渲染的线框颜色 如何采用AI、FLASH或自身的渲染功能等实现CATIA三维模型的渲染 为什么在AI软件里,一开始渲染就卡住了,是电脑内存不够,还是软件的问题?求解释。 用Ps或Ai怎么做图中背景的波动效果 我的发货单号是500210083916的圆通速递,我想查查货到达哪啦 工商银行的牡丹白金卡() 如何办理? 怎样查询快递包裹到达地点 衣服上弄上糖浆怎么能洗干净 男生喜欢一个人是什么样子知乎 知乎 怎么确定是不是真的喜欢一个人 白衣服沾上止咳糖浆怎么洗 怎么样才算喜欢一个人? 咳嗽糖浆倒在衣服上怎么洗? 怎么样才算真的喜欢上一个人? 衣服上黑糖怎么能洗掉 我家住顶楼,阳台的下水管道堵了,怎么疏通? 怎么样才是喜欢一个人? 网店转让怎么弄 红米饭影视2013最新电影电视剧网站? 爱一个人是什么表现 知乎 各位建筑达人,请问,顶楼若将通气管(可能与地漏有关)封闭,会有什么后果? 如果顶楼的下水道堵了那么其他楼层的也堵了么 真正喜欢上一个人是种什么样的体验 知乎 怎么样才算是真正的喜欢上一个人?