proftpd+oracle+md5安装文档,终于完工了,最终的安装文档在后面

JavaGG 发布于 2009/05/06 11:06
阅读 444
收藏 0

我这个帖子应该是首发吧,不管国内还是国外网站,我没找到类似的,在这个文档里面我也没把详细的安装方法加上,没必要,网上和软件的官方文档写的都很清楚。
我还是希望大家能继续研究补充这个文档,把我没有完成的工作完成了,我时间确实有限,PROFTPD我两年前就开始使用了,但是MYSQL是去年下半年开始使用的,由于我们业务比较特殊,需要ORACLE和MD5,所以我又在工作之余花了3个礼拜研究了一下,MD5我确实是没时间了,毕竟本人技术还有缺陷,希望大家能一起研究一下。

环境:REDHAT AS 3.0,PROFTPD 1.2.0,ORACLE 9.2.0.4,unixODBC-2.2.11,odbc-oracle-2.2.5

刚开始用PROFTPD的时候是很简单的应用,后来研究了PROFTPD+MYSQL+quota,看起来是成功了,就是对quota相关的几个表的字段的含义没仔细研究,再后来开始研究ORACLE,遇到了很大的问题,网上没有文档了,有也是很简单的,历经2个礼拜,其实1天就够了,但是本人公务比较繁忙,只是利用闲时进行研究测试,目前成功的是PROFTPF+ORACLE,磁盘限额和MD5还没搞明白,好在一般的功能是实现了,就是用户登陆认证能通过了,基本满足了,剩下的磁盘限额和MD5验证等有时间吧。
下面的安装方法其实都可以参考官方的安装配置文档,我没有详细说明,网上有的我就没必要详细说了,下面的也有可能有小错误,个人自己研究一下应该可以成功,完全使用别人的东西自己也记不住。
如果有人能找到更好的方法希望能共享,国内的共享精神是比国外差些,好多问题都是从国外文档找到的

1、先安装unixodbc,最好看官方的安装配置文档
  http://www.unixodbc.org
./configure 
make 
make install 
默认安装到/usr/local
建议更改安装目录:./configure --prefix=/usr/local/unixODBC 
注意是需要获得注册码的,如果能联网可以当时就申请一个试用授权,据说是30天
将安装lib, bin, include 和 etc 目录到 /usr/local/unixODBC

2、然后安装mod_sql_odbc,官方网站都有安装配置例子
从PROFTPD网站下载
tar zxvf proftpd-mod-sql-odbc-version.tar.gz
cd mod_sql_odbc/

3、然后配置mod_sql_odbc使用iODBC or the unixODBC library
./configure --enable-unixodbc

4、然后拷贝文件到PROFTPD安装目录,编译的时候使用
cp mod_sql_odbc.[ch] proftpd-dir/contrib/

5、安装PROFTPD,软件从PROFTPD网站下载,网上也有很多安装文档,官方下载的软件包里面也有
解压缩
cd 到解压缩目录 
修改mod_sql_odbc.c文件,把1048行的"LIMIT" with "AND ROWNUM ="
./configure --with-modules=mod_sql:mod_sql_odbc
建议指定安装目录 ./configure –prefix=/usr/local
make(好像有个双CPU的安装优化参数,make j3)
make install

6、配置ODBC(网上有文档,略微修改就成连接ORACLE数据库的了)
Example unixODBC odbc.ini file: 
  [mysql]
  Description = MySQL
  Driver = mysql
  Server = localhost
  Database = proftpd
  Port = 3306
  Socket = /tmp/mysql.sock

7、安装ORACLE客户端,因为ODBC是需要调用ORACLE客户端配置的TNSNAME.ORA的,ORACLE9安装到LINUX下好像要打一个PATCH,但是既然只选择安装客户端,那打这一个就够了,如果ORACLE也安装那就要打好几个了,网上有很多文档,这里就不累赘了

8、配置mod_sql_odbc,在PROFTPD.CONF配置文件里面
  
    SetEnv LD_LIBRARY_PATH 从环境变量里面把LD_LIBRARY_PATH都提出来就可以了
    SetEnv ODBCINI /path/to/odbc.ini一般在/etc目录下面
  
这是我得,呵呵
  
    SetEnv LD_LIBRARY_PATH /opt/oracle/product/9.2.0/lib:/lib:/usr/lib:/usr/local/lib:/home/oracle/client:EASYSOFT/lib:EASYSOFT/oracle:EASYSOFT/unixODBC/lib
    SetEnv ODBCINI   /usr/local/etc/odbc.ini
  

9、更改PROFTPD.CONF配置文件,需要设定登陆认证方法等,尤其重要的是网上的文件都是针对MYSQL的,我们使用的是ORACLE数据库,有些语句需要改变一下,如原来的now()替换为sysdate,在这里我只列出几个,其它的和网上的差不多
SQLConnectInfo      ORACLE proftpd/password user   (ORACLE可能是ODBC)(proftpd/password登陆数据库的用户名密码,因为这个我走了不少弯路,幸亏还知道点数据库,否则一直在用用户名,没有加密码登陆呢,主要是在ODBC里面配置了,以为这里就不用配了)(user我就不知道干嘛的了,既然连接MYSQL能成功我就没动)
SQLNamedQuery updatecount UPDATE "count=count+1,accessed=sysdate WHERE userid='%u'" ftpuser  (sysdate是ORACLE里面的,now()人家ORACLE不认)
SQLNamedQuery modified UPDATE "modified=sysdate WHERE userid='%u'" ftpuser
#SQLAuthenticateusers(这个我没搞明白,反正网上的文档没注释掉,但是我注释掉后MYSQL和ORACLE都能连了,否则谁都连不了)
SQLLogFile      /var/log/proftpd.sqllog (为什么特意指出这个呢?因为我调试的时候大多数错误信息都是从这里找到的)

如自动建立用户目录的配置网上都有,关于配置文件的参数说明到处都能找到,只是关于限制不同组或用户的权限,我是在系统级建立相关用户和组,这样在ls -l的时候看到的目录和文件属性就不会出现只有ID号的问题,好管理,个人建议分组管理就可以了,除非有特殊需求,利用DENY和ALLOW配置在conf文件里面就可以了,如果这些权限设置也能用数据库来验证就好了


历史遗留问题:磁盘限额、MD5口令认证

[ 本帖最后由 yttao 于 2007-6-4 15:28 编辑 ]



加载中
返回顶部
顶部