《2022年求:如何把PROFTPD同mysql整合起来?FTP服务器教程.docx》由会员分享,可在线阅读,更多相关《2022年求:如何把PROFTPD同mysql整合起来?FTP服务器教程.docx(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、2022年求:如何把PROFTPD同mysql整合起来?FTP服务器教程摘要:求:如何把PROFTPD同mysql整合起来?始终想知道,但是没有试通。wind521 回复于:2022-01-15 16:08:30原版的精华里有一个,是原来的linux版的haohaoo 回复于:2022-01-15 19:37:32用MySQL+Proftpd配置FTP服务器FTP(FileTransferProtocol)是internet中的一项常用而且重要的互联网协议,广泛应用于internet中,然而传统的FTP服务中的帐号都是用服务器中的系统用户,这样也为也会系统平安留下了隐患,用MySQL进行用户认
2、证,很好地避开这种隐患。它利用数据库来供应用户及其认证,把FTP的帐号映射于系统用户,从而避开了运用系统用户。这样可以达到比较平安的目的。用MySQL+Proftpd配置FTP服务器,须要有中间包mod_sql,本文所讲的,假设你的服务器中已经安装好了MySQL,详细过程:一、获起必需的安装包(mod_sql,proftpd)。Proftpd的安装包可以通过获得,留意要支持MySQL认证最低的版本为1.2.5。Mod_sql安装包可以通过http:/www.lastditcheffort.org/aah/proftpd/mod_sql.html获得。二、包的安装。解开安装包:把proftpd-
3、1.2.6.tar.gz拷贝到/usr/local/src的书目下,用吩咐:targzvfproftpd-1.2.6.tar.gz解开,这时产生了一个proftpd-1.2.6的书目。然后进入该书目中的contrib书目:cdproftpd-1.2.6/contrib/把中间包mod_sql拷贝到该书目中,再解开:targzvfmod_sql-4.0.8.tar.gz配置使Proftpd支持MySQL认证:./configure-with-modules=mod_sql:mod_sql_mysql-with-includes=/usr/includes/mysql-with-libraries
4、=/usr/lib/mysql留意:-with-includes选项是指MySQL的头文件所在的书目;-with-libraries选项是指MySQL的库文件所在的书目。对于不同的环境可能会是不同的书目。进行编译:make安装:makeinstall安装完之后,可以按下列步骤进行测试,Proftpd是否能正常工作:shsample-configurations/PFTEST.install测试的所须要的临时文件被放置在/tmp/PFTEST书目中,运行吩咐:./proftpdnd5c/tmp/PFTEST/PFTEST.conf假如能正常运行,你可以发觉有许多的信息而且最终一行会出现:ProF
5、TPD1.2.6(built*)standalonemodeSTARTUP说明服务启动了,它用的端口是2021,你可以用用户proftpd与密码proftpd进行登录测试。假如正常,你可以做下列打算;否则要检查安装是否正确。三、为FTP服务建立相应的数据库及其表。1、你可以为此服务建立特地的数据库,也可以放在其它的数据库中。在此我特地建立一个特地的数据库FTP:createdatabaseFTP;2、然后在这个数据库中建立一个用户表FTPUSERS,这个表是必需的:useFTP;createtableFTPUSERS(useridTEXTNOTNULL,passwdTEXTNOTNULL,ui
6、dINTNOTNULL,gidINTNOTNULL,homeTEXT,shellTEXT);此表格是为了用户认证所须要的,其中userid、passwd是必不行少的,userid是用做FTP服务的用户名;passwd是指此用户的密码;uid是系统用户的ID,也就是所映射的系统用户;gid是所属系统组的ID;home是该用户所在的HOME书目;shell可以为该用户指定相应的shell。当然你可以建立更多的字段,例如:用来记录用户登录次数的count,或者是日期的date,假如你对配置熟识了之后,你可以依据自己的喜爱添加更多的功能。在此就不多讲。3、假如你想须要全部的功能,你还可以添加另外一个须
7、要的表:FTPGRPS,也就是确定组的表格,当然也可以不用,这里讲一个它的格式:createtableFTPGRPS(grpnameTEXTNOTNULL,gidSMALLINTNOTNULL,membersTEXTNOTNULL,);其中grpname是组的名称,gid是系统组的ID,members是组的成员。留意:多成员,他们之间要用逗号隔开,不能运用空格。4、为空表格插入记录:INSERTINTOFTPUSERS(userid,passwd,uid,gid,home,shell)valueS(user1,999999,1000,1000,/home/ftp/user1,);按此格式你可以
8、插入这每一个用户添加一个记录。假如你要想应用到更多的功能,且建立了组的表格,你也要为此添加记录,不过肯定要留意在members的字段多个成员肯定要用逗号隔开。四、为FTP用户建立相应的系统用户。在本例中,只整个FTP服务只供应一个有效的系统用户FTPUSR和组FTPGRP,当然你也可以设置多个系统用户。但出于平安的考虑,我只设一个,用他来启动FTPdaemon,并把全部的FTP用户映射过这个用户。先建立FTPGRP组:groupaddg1000rFTPGRP建立FTPUSR用户:adduseru1000g1000d/home/FTPs/bin/bashrFTPUSR为FTPUSR建立HOME,
9、把全部的FTPuser活动空间全放在此书目下:mkdir/home/FTPchownFTPUSR/home/FTPchgrpFTPGRP/home/FTP五、设置配置文件。Proftpd的配置文件proftpd.conf在/usr/local/etc/书目下,针对不用的认证可以运用不同的配置文件。运用MySQL认证,可以把mod_sql.conf拷贝到/usr/local/etc下面并将其改名为proftpd.conf。修改proftpd.conf文件,详细内容如下:#设置FTP服务器的名称:ServerName“MyFTPServer”#设置FTP服务器的类型:ServerTypestand
10、aloneDefaultServeron#设置根,可以限制用户在某个地方活动,增加服务器的平安性。DefaultRoot#设置FTP服务端口号,标准的FTP服务端口是21。Port21#设置新建文件或书目时,设置权限的掩码:Umask022#设置系统日志文件:SystemLog/var/log/ftp.syslog#设置记录文件传输的日志文件:TransferLog/var/log/ftp.transferlog#设置最大的尝试登录的次数,假如超过自动断开连接:MaxLoginAttempts3#设置MySQL认证:<Global>#数据库联接的信息,DatabaseName是数据
11、库名,HostName是主机名,#Port是端口号,UserName是连接数据库的用户名,Password是密码。SQLConnectInfoDatabaseNameHostNameortUserNamePassword#我的实例是SQLConnectInfozhuhailocalhostroot*#数据库认证的类型:SQLAuthTypesBackendPlaintext#指定用来做用户认证的表的有关信息。SQLUserInfoFTPUSERSuseridpasswduidgidhomeshell#设置假如shell为空时允许用户登录:RequireValidShelloff#数据库的鉴别,
12、这里是用于用户的方式:SQLAuthenticateusers#假如home书目不存在,则系统会为依据它的home项新建一个书目:SQLHomedirOnDemandon</Global>#防止DoS攻击,设置最大的了进程:MaxInstances30#设置正常服务的系统用户与组:UserFTPUSRGroupFTPGRP#设置用户登录时显示的信息及进入各个子书目中的信息:DisplayLoginwelcome.msgDisplayFirstChdir.message#设置最大的登录数:MaxClients10#支持断点续传:AllowRetrieveRestarton六、测试。完
13、成了文件的配置,你可以启动Proftpd服务了,用来测试是否胜利:/usr/local/sbin/proftpdn这里你可以发觉服务已经启动了,你可以在其它的地方进行登录,假如按上述的配置你就可以运用FTP服务了,不过我在测试的时候真的花了不少的时间。假如没胜利没关系,细致检查一下自己在那个地方出现问题。假如在前面的测试胜利了,则在配置文件中出现的问题可能会比较大,当然数据库中的FTPUSERS表的内容不能出现错误。七、脚本的编写。好了,一切都胜利了,下面就写一个脚原来启到FTP服务。假如你运用的服务器的类型是”ServerTypeinetd”,假如用的是inetd服务,须要修改/etc/inetd.conf文件,增加一行:ftpstreamtcpno