- 论坛徽章:
- 0
|
原始作者:Docn
本文主要讨论源代码方式的安装:
编译和安装
从ftp.proftpd.net下载最新版本的proftpd-1.2.7到FreeBSD服务器上。然后按照如下步骤进行处理:
配置域nankai.edu.cn的环境及数据库环境proftpd.sql:
server# pw groupadd ftpgroups -g 2001
server# pw adduser ftpusers -u 2001 -g 2001 -d /var/ftp/ftpuser -s /nologin
server# mkdir -p /var/ftp/ftpuser
server# chown ftpusers:ftpgroups /var/ftp/ftpuser
配置虚拟域freebsd的环境(仅允许匿名用户登录,端口是4000):
server# pw groupadd ftp -g 2002
server# pw useradd ftp -u 2002 -g 2002 -d /var/ftp/incoming
server# mkdir -p /var/ftp/incoming
server# chown ftp:ftp /var/ftp/incoming
编译安装:
server# tar xvfz proftpd-1.2.7.tar.gz
server# cd proftpd-1.2.7/contrib
server# edit mod_sql_mysql.c(将#include 改成#include
指明mysql.h的地址)
server# edit mod_quota.c(将第28行的QUOTA_FILE注释掉,并去掉29行QUOTA_MYSQL前的注释
将#include 改成#include
此文件在该版本中未被包括,需要另行下载)
server# ./configure --prefix=/usr/local/proftpd
--with-modules=mod_sql:mod_sql_mysql:mod_quota
--with-includes=/usr/local/mysql/include/mysql
--with-libraries=/usr/local/mysql/lib/mysql
server# make
server# make install
编写proftp的自启动文件(Freebsd下):
server# edit /usr/local/etc/rc.d/proftpd.sh 示例:proftpd.sh
server# chmod 755 proftpd.sh
最后配置启动环境:
server# edit /etc/rc.conf(添加proftpd_enable="YES",例如:rc.conf)
server# cp /usr/local/mysql/lib/mysql/libmysqlclient.so.10 /usr/lib
到现在为止,已经完成了proftpd的编译和安装。并且在/usr/local/proftpd/etc/目录下有一个默认的proftpd配置文件proftpd.conf。
(对于RedHat来说,需要将该配置文件中:
Group nogroup
修改为:
Group nobody
因为redhat系统中nobody用户属于nobody组,而不是nogroup组。)
配置的proftpd.conf、proftpd_mysql.conf 示例:proftpd.conf 示例:proftpd_mysql.conf
其中到部分是虚拟域freebsd.net的配置内容。
启动proftpd:
server# /usr/local/etc/rc.d/proftpd.sh start
(Redhat下如果需要系统自动运行ftp服务器可将proftpd命令加入/etc/rc.d/rc.local中:
[root@localhost sbin]# echo "/usr/local/proftpd/sbin/proftpd" >;>;
/etc/rc.d/rc.local
这样可以在启动服务器时直接启动proftpd)
测试proftpd是否正常运行:
在数据库中插入用户数据:
mysql>; INSERT INTO `ftpusers` values ( test , test , 2001, 2001,
mysql>; /var/ftp/ftpusers/test , /bin/nologin , 0, 0, 20480000);
在windows下:
C:WINDOWS>;ftp 192.168.0.253
Connected to 192.168.0.253.
220 ProFTPD 1.2.7 Server (NanKai University Ftp Server)[server.nankai.edu.cn]
User (192.168.2.33 none)): test
Password: test
230-User test logged in.
230 You ve logged on 0 times,test
ftp>;
对于虚拟域的匿名登陆,可以使用ie或CuteFTP登录,端口为4000
OK,现在你就拥有了一个安全可靠的ftp服务器。
FAQ
1、在安装proftpd以后,出现了问题,可以使用如下命令调试:
server # /usr/local/sbin/proftpd -n -d 5 -c /usr/local/proftpd/etc/proftpd.conf
proftpd就会将调试信息打印到consle上以供调试之用。
2、proftpf启动以后,匿名用户不能登录?
查看proftp配置文件/usr/local/etc/proftpd.conf,修改为
(这里/home/ftp可以是希望匿名用户登录以后的当前根目录,
但是确保要使该目录允许ftp用户访问),并且若部分的User指令
指定的用户为ftp用户,则需要在配置文件中添加如下命令指示:
RequireValidShell off
3、如何实现一个正常用户登录以后将其的访问限定在某个目录之下?
可以通过指令DefaultRoot来实现。例如若希望将ftpusers组的用户限定在自己的home目录下,则
需要首先创建该组:
/usr/sbin/groupadd ftpusers
然后将用户anyuser加入到该组中:
usrmod -G ftpusers anyuser
最后在在proftpd.conf文件中添加如下内容:
DefaultRoot ~ ftpusers
也可以限制用户登录以后仅仅访问自己主目录下的一个子目录:
Default! Root ~/anoftp ftpusers
当然也可以将用户限制在其他目录之下,而不是自己的home目录下:
DefaultRoot /tmp ftpusers
也可以限定一个用户组的某些用户被限制,而其他不作限制:
DefaultRoot ~ ftpusers,!empolyee
这个指令指示仅仅限制ftpusers组中的不是empolyee组的用户进行限制。
4、我如何使用户登陆时不显示ftp服务器版本信息,以增强安全性?
在proftpd.conf中添加如下内容:
ServerIdent off
则再次登录时,显示如下内容:
C:WINDOWS>;ftp 192.168.0.252
Connected to 192.168.0.252.
220 ftp.nankai.edu.cn FTP server ready.
User (192.168.0.252 none)):
5、在proftpd环境下如何设定虚拟主机?
可以通过指令:VirtualHost来实现,一个最简单的例子:
ServerName "virtual FTP server"
若你仅仅希望通过匿名访问某个虚拟主机,则使用如下! 的指令:
Serv erName "virtual FTP server"
DenyAll
User private
Group private
AllowAll
这样192.168.0.18的这台主机则仅仅允许匿名登录。 |
|