LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 3022|回复: 16

关于proftpd怎么配置。文件上传?

[复制链接]
发表于 2002-7-20 14:08:03 | 显示全部楼层 |阅读模式
关于proftpd怎么配置。文件上传?我的ftp服务器能下载了,但怎么实现上传文件呢?大家能帮我一下吗?proftpd.conf里要加什么语句?
发表于 2002-7-20 14:32:50 | 显示全部楼层

ProFtpd快速指南[转帖,作者未知]

来源[163.com]


    ProFTPD是一个Unix平台上或是类Unix平台上(如Linux, FreeBSD等)的FTP服务器程序,
    它是在自由软件基金会的版权声明(GPL)下开发、发布的免费软件,也就是说任何人只要遵守GPL版权声明,都可以随意修改源始码。   

    ProFTPD设计目标是实现一个安全且易于设定的FTP Server。目前Unix或类Unix平台上
    FTP Server十分有限,最常使用的恐怕就是wu-ftpd了。虽然wu-ftpd有着极佳的效能同时也是
    一套很好的软件,然而它却欠缺了许多Win32平台上FTP Server的一些特色,同时wu-ftpd过去
    也有不少的安全漏洞陆续被发现。ProFTPD的原创者本身就曾经花非常多的时间寻找wu-ftpd
    的漏洞加以改进并且增加许多功能。然而十分不幸的是,他很快地发现显然wu-ftpd需要全部
    重新的改写才能补足欠缺的设定能力以及缺乏的一些功能。ProFTPD不是从其它FTP Server的
    既有原始码修改而产生的,相反的,它是完全独立而完整、重新改写的FTP Server。   

   ProFTPD的主要包括如下特点:  

* 单一主设置文件,包含许多指令以及其支配的组,? 耆际侵惫鄣纳瓒āH绻魑欢訟
pache Web Serve的设置不陌生的话相信一定会觉得十分容易操作设定。   

* 每个目录都可以定义一个".ftpaccess"设置文件,就如同Apache的".htaccess"文件一样可以设定
该目录的存取权限。   

* 可设定多个虚拟FTP server,而匿名FTP服务更是十分容易。   

* 可根据系统的负载(load)选择以单独运作(stand-alone)方式或是由inetd启动。   

* 匿名FTP的根目录不需要特定的目录结构、系统二进制执行文件或其它系统文件。   

* ProFTPD不执行任何外部程序以免造成安全漏洞。   

* 具有隐藏目录或隐藏文件,源自于Unix形式的档案权限,或是user/group类型的档案权限设定。   

* 能够以一般使用者在单独运作(stand-alone)模式下执行,以减少某些藉由攻击方式取得root权的
可能性。注:此功能与Unix的操作系统有关。  

* 支持系统记录以及utmp/wtmp。   
记录的方式与wu-ftpd的标准完全兼容,也支持记录内容的延伸格式。   

* 支持Shadow&! nbsp;password,包括了帐号使用期限设定的功能。  

编译和安装   
    Proftpd提供了多种安装格式,包括源代码方式、RPM方式、deb方式(debian软件包)等。本文
    主要讨论源代码方式的安装。  

    从ftp.proftpd.net下载最新版本的proftpd-1.2.0rc3到Linux服务器上。然后按照如下步骤
    进行处理:  

[root@ftpd /]# cp proftpd-1.2.0rc3.tar.gz /usr/src/  
[root@ftpd /]# cd /usr/src  
[root@ftpd src]# tar xvfz proftpd-1.2.0rc3.tar.gz  
[root@ftpd src]# cd proftpd-1.2.0rc3  
[root@pftd proftpd-1.2.0rc3]# ./configure  
[root@pftd proftpd-1.2.0rc3]# make  
[root@pftd proftpd-1.2.0rc3]# make install  

    到现在为止,你已经完成了proftpd的编译和安装。并且在/usr/local/etc/目录下有一个默
    认的proftpd配置文件proftpd.conf。  

启动测试  

    对于笔者的试验系统RedHat6.2来说,需要将该配置文件中:  

    Group nogrou! p  

修改为:  

    Group nobody  

    因为redhat系统中nobody用户属于nobody组,而不是nogroup组。  

    若需要将proftpd设置为系统启动时自动启动则通过如下命令拷贝启动文件:  

    [root@ftpd proftpd-1.2.0rc3]# cp ./contrib/dist/rpm/proftpd.init.d /etc/rc.d  
/init.d/proftpd  

    然后修改该脚本的可执行属性:  

    [root@ftpd /]# chmod +x /etc/rc.d/init.d/proftpd  

    然后编辑/etc/rc.d/init.d/functions:  

    修改  

export PATH="/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin"  

    为  

export PATH="/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin:/usr/local/sbin"  

注:若将在运行./cofigure命令时通过--prefix选项指定将proftpd安装在/usr/sbin目! 录下
则不需要修改fuctions文件。  

然后运行命令:  

     [root@ftpd rc3.d]# chkconfig --level 35 proftpd on  

则下次系统启动以后,proftpd将自动启动。  

    最后,需要确保系统当前没有ftp服务器在运行:  

    [root@ftpd /]# netstat -ln  

    若输出中不包含  

    tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN  

    这样的内容则可以直接启动proftpd,否则需要关闭以前的ftpd服务器。对于一般的缺省
    Linux安装来说,则需要通过以下的途径来关闭ftp服务器:  

    编辑/etc/inetd.conf文件,在  

ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l -a  

    一行前加上#:  

#ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l -a  

    然后:  

[root@ftpd ! /]# ps ax|grep inetd  
350 ? S 0:00 inetd   

    得到inetd的进程号 ,重新启动inetd进程:  

        [root@ftpd /]# kill -HUP 350     

    然后通过如下命令启动proftpd:  

    [root@ftpd /]# /etc/rc.d/init.d/proftpd start  

   这时候可以通过如下命令来测试proftpd是否正常运行:   

C:WINDOWS>ftp 192.168.2.33  
Connected to 192.168.2.33.  
220 ProFTPD 1.2.0rc3 Server (ProFTPD Default Installation)[ftpd.test.com.cn]  
User (192.168.2.33none)): ideal  
Password:  
230 User ideal logged in.  
ftp>  

则现在你就拥有了一个安全可靠的ftp服务器。  

FAQ  

1、我安装proftpd以后,出现了问题,我如何调试?  

通过通过命令! /usr/local/sbin/proftpd -d9 -n启动proftpd来进行调试,则proftp d就会将
调试信息打印到consle上以供调试之用。  

2、为什么我的proftpf启动以后,匿名用户不能登录?  

        查看proftp配置文件/usr/local/etc/proftpd.conf,修改<Anonymous ~ftp>为
        <Anonymous /home/ftp>(这里/home/ftp可以是任何希望匿名用户登录以后的当前根目录,
        但是确保要使该目录允许ftp用户访问),并且若<Anonymous /home/ftp>部分的User指令
        指定的用户为ftp用户,则需要在配置文件中添加如下命令指示:  

RequireValidShell off  

3、我如何实现一个正常用户登录以后将其的访问限定在某个目录之下?  

可以通过指令DefaultRoot来实现。例如若希望将ftpusers组的用户限定在自己的home目录下,则
需要首先创建该组:  

/usr/sbin/groupadd ftpusers  

然后将用户ideal加入到该组中:  

usrmod -G ftpusers ideal  

最后在在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.2.33  
Connected to 192.168.2.33.  
220 ftpd.test.com.cn FTP server ready.  
User (192.168.2.33none)):  

5、在proftpd环境下如何设定虚拟主机?  

可以通过指令:VirtualHost来实现,一个最简单的例子:  

<VirtualHost 192.168.2.35>  
ServerName "virtual FTP server"  
</VirtualHost>  
若你仅仅希望通过匿名访问某个虚拟主机,则使用如下! 的指令:  

<VirtualHost 192.168.2.35>   

Serv erName "virtual FTP server"   

<Limit LOGIN>   
DenyAll   
</Limit>   

<Anonymous /usr/local/private>   

User private  
Group private   

<Limit LOGIN>   
AllowAll   
</Limit>  

</Anonymous>   

</VirtualHost>  

这样192.168.2.35的这台主机则仅仅允许匿名登录。  

笔者的proftpd.conf配置文件内容为:  

# This is a basic ProFTPD configuration file (rename it to  
# 'proftpd.conf' for actual use. It establishes a single server  
# and a single anonymous login. It assumes that you have a user/group  
# "nobody" and "ftp" for normal operation and anon.  

ServerName &! quot;test.com.cn FTP Server"  
ServerType standalone  
DefaultServer on  

# Port 21 is the standard FTP port.  
Port 21  
# Umask 022 is a good standard umask to prevent new dirs and files  
# from being group and world writable.  
Umask 022  

# To prevent DoS attacks, set the maximum number of child processes  
# to 30. If you need to allow more than 30 concurrent connections  
# at once, simply increase this value. Note that this ONLY works  
# in standalone mode, in inetd mode you should use an inetd server  
# that allows you to&! nbsp;limit maximum number of processes per&nb sp;service  
# (such as xinetd)  
MaxInstances 30  


RequireValidShell off  
ServerIdent off  


# Set the user and group that the server normally runs at.  
User nobody  
Group nobody  

# Normally, we want files to be overwriteable.  
<Directory /*>  
AllowOverwrite on  
</Directory>  

# A basic anonymous configuration, no upload directories.  
<Anonymous /home/ftp>  
User ftp  
Group ftp  
# We want clients to be able to login with "anonymous" as well as "ftp"  
UserAlias anonymous ftp  

# Limit the maximum number of anonymous logins  
MaxClients 10  

# We ! ;want 'welcome.msg' displayed at login, and '.message' displayed  
# in each newly chdired directory.  
DisplayLogin welcome.msg  
DisplayFirstChdir .message  

# Limit WRITE everywhere in the anonymous chroot  
<Limit WRITE>  
DenyAll  
</Limit>  

</Anonymous>  


DefaultRoot ~ ftpusers  

<VirtualHost 192.168.2.35>   

ServerName "virtual FTP server"   

<Limit LOGIN>   
DenyAll   
</Limit>   

<Anonymous /usr/local/private>   

User private  
Group private   

<Limit LOGIN>   
AllowAll   
</Limit>  

</Anonymous>   

</VirtualHost>
发表于 2002-7-20 14:40:20 | 显示全部楼层

ProFTPD配制手册

  一、FTP简介

  在网络应用中,最广泛的当属WWW和FTP这两种。FTP就是File Transport Protocol文件传输协议的缩写,FTP服务器能够在网络上提供文件传输服务。FTP服务器根据服务对象的不同可分为匿名服务器(Anonymous Ftp Server)和系统FTP服务器。前者是任何人都可以使用,后者就只能是在FTP服务器上有合法账号的人才能使用。

  二、ProFTPD简介

  目前在UNIX和LINUX下常用的免费FTP服务器软件主要是Wu-FTP和ProFTP这两种。Wu-FTP广泛应用在众多的Unix和Linux系统中,是RedHat Linux默认的FTP服务器软件,但是被发现安全漏洞也相当多。ProFTP正是针对Wu-FTP的弱项而开发的,除了改进的安全性,还具备许多Wu-FTP没有的特点,如设置简单,能以Stand-alone模式运行等等。ProFTP已经成为继Wu-FTP之后最为流行的FTP服务器软件,越来越多的站点选用它构筑安全高效的FTP站点,TurboLinux就是一个例子。

  三、ProFTP的设置

  设置目标:把IP为10.0.8.39的RedHat Linux配置为FTP服务器,并允许以anonymous匿名访问FTP服务器,且只允许同一网段(10.0.8.*)的电脑对FTP的“incoming”目录有“Write”权限。

  ProFTP的最新版本可以从www.proftpd.org上下载。这里我们以稳定的1.2.1版本的rpm安装包为例子(源代码编译也很简单)加以解说。

  第一步:配置基本的匿名服务器

  下载1.2.1的rpm后,在Gnome窗口下右键单击文件,单击“Show info”,查看rpm包的一些信息,这里我们要注意的是一些文件的默认安装路径,如/usr/local/etc/proftpd.conf(ProFTPD的配置文件),/usr/sbin/proftpd(以stand-alone模式运行Proftpd的命令),/usr/doc/proftpd-1.2.1(Proftpd的文档及配置实例文件所在目录),然后双击rpm包安装软件。

  如果你像我一样,安装RedHat Linux7.0时选择了FTP服务,那你先得把安装的Wu-FTP软件删除。输入“rpm -e anonftp”和“rpm -e wu-ftpd”删除已有的FTP服务。

  ProFTP安装结束后,编辑/usr/local/etc/proftpd.conf,找到“Group nobody”,改为“Group nobody”,因为RedHat Linux7.0中没有“nobody”这个组。到此为止,一个提供匿名服务的FTP服务器已经可以运行了。输入“proftpd”运行FTP服务,然后“ftp 10.0.8.39”以“anonymous”登录,看能否正常登录。一般来说,都能够登录进去的。

  注意:直接运行“Proftpd”将使FTP服务以stand-alone模式启动,该模式相对与dameon进程模式更具安全性,推荐使用。不过你可以把“Proftpd”加入到/etc/rc.d/rc.local里,这样电脑启动完毕,Proftpd也就启动了。

第二步:配置incoming子目录的权限

  打开proftpd.conf,在和段之间添加如下设置:

  Order allow,deny

  
  Allow from 10.0.8.

  Deny from all

  表示在incoming这个子目录下,从10.0.8这个网段登录的客户端有写入“WRITE”权限,其它人对该目录的写如权限都是被禁止的。如果要对所有的用户开放写入权限,只要把和之间的内容换成“Allowall“。



  四、FTP服务器相关命令

  1、ftpshut:关闭FTP服务,并在/etc下生成文件shutmsg。要重新开放FTP服务,把/etc/shutmsg删除。

  2、ftpcout:FTP服务器在线人数信息显示。

  3、ftpwho:FTP服务器在线人员名单。

  附录:Proftpd.conf全文及解释

  # This is a basic ProFTPD configuration file (rename it to

  # 'proftpd.conf' for actual use. It establishes a single server

  # and a single anonymous login. It assumes that you have a user/group

  # "nobody" and "ftp" for normal operation and anon.

  ServerName "MY REDHAT LINUX FTP" #设定FTP服务器的名称

  ServerType standalone #设置FTP以Standalone模式运行,而不是以dameon模式

  DefaultServer on #默认FTP服务器工作

  # Port 21 is the standard FTP port.

  Port 21 #FTP服务默认占用的端口

  # Umask 022 is a good standard umask to prevent new dirs and files

  # from beingsgroupsand world writable.

  Umask 022 #默认

  RequireValidShell off #保证匿名用户正常登录,不要更改

  ServerIdent off #不显示ftp服务器版本信息,以增强安全性

  # To prevent DoS attacks, set the maximum number of child processes

  # to 30. If you need to allow more than 30 concurrent connections

  # at once, simply increase this value. Note that this ONLY works

  # in standalone mode, in inetd mode you should use an inetd server

  # that allows you to limit maximum number of processes per service

  # (such as xinetd)

  MaxInstances 30

  # Set the user andsgroupsthat the server normally runs at.

  User nobody #设置FTP服务以nobody运行

  Group nobody #注意:原来是“Group nobody”,一定要改为“Group nobody”

  # Normally, we want files to be overwriteable.

  AllowOverwrite on

  # A basic anonymous configuration, no upload directories.下面一段就是匿名服务的设置。

  User ftp #匿名登录使用ftp用户

  Group ftp #匿名登录使用ftp组

  # We want clients to be able to login with "anonymous" as well as "ftp"

  UserAlias anonymous guest #给ftp用户anonymous的别名,使得anonymous登录就是ftp用户登录。

  # Limit the maximum number of anonymous logins

  MaxClients 10 #最多10个匿名用户同时在线

  # We want 'welcome.msg' displayed at login, and '.message' displayed

  # in each newly chdired directory.

  DisplayLogin welcome.msg #登录FTP显示的欢迎信息。放在FTP的根目录下。

  DisplayFirstChdir .message

  # Limit WRITE everywhere in the anonymous chroot

  #说明看正文。

  Order allow,deny

  Allow from 10.0.8.

  Deny from all
发表于 2002-7-20 14:43:51 | 显示全部楼层
这个不太懂。。。没有做过。。。。只是找点资料,让兄弟看一下吧。请精通此术的弟兄来指点一二。。。多谢!!!。。。多谢!!!
发表于 2002-7-24 02:55:29 | 显示全部楼层

带病上阵!

北南兄弟已经说的很详细了,关于proftpd,本人觉得,已经完全超过wu-ftp了,配制文件简单易懂,并只有唯一的配置文件。兼容wu-ftp的标准,支持shadow口令。在配制匿名的时候,fpt目录不需要任何特殊的目录。

__________________________________

allen
发表于 2002-8-18 17:07:21 | 显示全部楼层
太感谢了!
    好用的很!

还是北南兄的东东好呀!
发表于 2002-9-16 08:48:12 | 显示全部楼层

下载不了。

为什么不能下载呢?有HTTP的下载网站吗?
:confused:
发表于 2002-9-16 08:52:38 | 显示全部楼层
发表于 2002-9-16 09:07:50 | 显示全部楼层

不能下载。

找不到服务器,为什么会这样啊。
:confused:
发表于 2002-9-16 09:16:48 | 显示全部楼层
兄弟,不可能都找不到服务器吧。我就是从上面的链接找到的。哈。。。学习要有点耐心。。。。。切记

ftp://162.105.202.100/pub/Server ... oftpd-1.2.5.tar.bz2
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表