最近公司有个客户,对VSFTP的模块集成有所不满。要求更换为PROFTP。因此对该服务器做了简单的了解和部署搭建。坑太多,简单记录下:
部署:
获取proftp源码包:ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.5b.tar.gz
获取模块包(客户需要使用MD5模块):http://www.castaglia.org/proftpd/modules/proftpd-mod-md5-0.3.5.tar.gz
编译安装:
1、需要解压mod-md5压缩包,并cp mod_md5/mod_md5.c proftpd-1.3.5b/modules/
2、./configure --with-modules=mod_md5
3、make && makeinstall
安装完成,默认源代码安装的配置文件为:/usr/local/etc/proftpd.conf。默认的可执行程序为:/usr/local/sbin/proftpd。
为了方便使用,将使用/etc/init.d/执行,如下:
cp proftpd-1.3.5b/contrib/dist/rpm/proftpd.init.d /etc/init.d/proftpd
并检查如下:
1、/etc/sysconfig/proftpd文件是否存在,如果不存在,与手动创建,并写入内容:
echo‘PROFTPD_OPTIONS="-DANONYMOUS_FTP"‘ > /etc/sysconfig/proftpd
2、/etc/init.d/proftpd配置文件第46行与第53行,皆修改为执行文件所在位置(/usr/local/sbin/proftpd)
至此,编译安装结束,可以执行/etc/init.d/proftpd restart做重启的操作,如果启动之后没有文字响应,执行echo $?,结果非0的话,需要检查/etc/init.d/proftpd文件。如果启动之后启动失败,使用debug(/usr/local/sbin/proftpd -d9n)的方式查找失败原因,对照配置文件逐个修改。简介版的配置文件,如下所示:
ServerName "ProFTPD server"
ServerIdent on "FTP Server ready."
ServerAdmin root@localhost
DefaultServer on
DefaultAddress X.X.X.X
DefaultRoot ~
UseReverseDNS off
User nobody
Group nobody
MaxInstances 20
UseSendfile off
LogFormat default "%h %l %u %t \"%r\" %s %b"
LogFormat auth "%v [%P] %h %t \"%r\" %s"
<Global>
Umask 022
AllowOverwrite yes
<Limit ALL SITE_CHMOD>
AllowAll
</Limit>
</Global>
<Anonymous ~ftp>
WtmpLog off
ExtendedLog /var/log/proftpd/access.log WRITE,READ default
ExtendedLog /var/log/proftpd/auth.log AUTH auth
</Anonymous>
<Directory "/home/jing/">
AllowOverwrite no
<Limit ALL>
AllowAll
</Limit>
</Directory>
异常:
上一步成功之后,按理说,你可以使用系统用户直接登录了。如果登录有问题,那很不幸,你要各种找错误了。
1、530 Login incorrect.Login failed.Remote system type is UNIX.Using binary mode to transfer files.
这个错误有很多问题,常见的:
1、用户设置为/sbin/nologin。<先设置允许登录,sed‘/USERNAME/s/nologin/bash/g‘ /etc/passwd,(记得加-i)再一步步调试。>
2、家目录权限不是777。<先设置为777,chmod 777 ~再一步步调试。>
3、Limit控制权限。<先设置为All,最高权限,再一步步调试。>
4、auth验证问题。<先注释掉所有的auth,再一步步调试。也可以参照http://www.qianweikang.com/cheng-gong-jie-jue-proftpd-deng-lu-ti-shi-530-login-incorrect.htm>
2、421 Service not available, remote server has closed connection。Login failed.No control connection for command: Success
这个错误,我是误打误撞解决的,部分用户出现421,调用DEBUG调试,看到配置文件中调用MD5模块的配置有报错(<IfModule mod_md5.c>),注释后就好了。
实验还在进行中,不断补充,且行且珍惜吧。
本文出自 “11687257” 博客,请务必保留此出处http://11697257.blog.51cto.com/11687257/1787089
原文地址:http://11697257.blog.51cto.com/11687257/1787089