Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 操作系统 > Linux > ProFTPD服务器配置过程
【标  题】:ProFTPD服务器配置过程
【关键字】:ProFTPD
【来  源】:http://www.cublog.cn/u/12505/showart.php?id=156836

ProFTPD服务器配置过程

Your Ad Here

ProFTPD服务器配置过程

作者:周立军

修改日期:2006315

 

安装环境:

    统:Fedora 4

软件名称:proftpd-1.3.0rc3.tar.gz

 

一、安装ProFTPD

 

1、准备工作

一般系统自带的RPM包的版本太老,有些Bug并且有些功能不全,下载较新的ProFTPD服务器进行安装。如果是自己练习或者内部使用,可以使用新版的,如果做服务器,提供正式的服务,一定使用稳的版本,这是一个良好的习惯。

 

下载地址: http://www.proftpd.org/download.html

安装gcc

如果系统没安装GCC请安装GCC程序。在FC4CD2中,RedHat这点比较讨厌,在Debian系统中就简单了。

#rpm -ivh libstdc++-devel-4.0.0-8.i386.rpm

#rpm -ivh gcc-c++-4.0.0-8.i386.rpm

 

2 、编译安装ProFTPD

我们这里使用手工编译安装,配置文件放到/etc/proftpd/目录下,其他文件使用默认的安装目录,bin文件为/usr/local/sbin/proftpd

 

#tar -zxvf proftpd-1.3.0rc3.tar.gz                  //解压源文件

#cd proftpd-1.3.0rc3                            //进入目录

#mkdir /etc/proftpd                             //建立配置文件目录

#./configure --sysconfdir=/etc/proftpd              //生产config文件

#make                                       //编译文件

#make install                                  //安装

# which proftpd                                //查看系统文件位置

/usr/local/sbin/proftpd                          

 

注意:为规范服务器的管理,配置文件放到/etc/proftpd目录下。

 

3、手工启动ProFTPD

 

# /usr/local/sbin/proftpd

 

注:查看ProFTPD是否启动可以使用ps –aux |grep proftpd查看进程中是否有proftpd

 

4、配置启动脚本,让ProFTPD跟随服务器自己启动,我们把启动文件放到/etc/rc.local文件中。这种配置仅限于RedHat系列的服务器。

 

#cp contrib/dist/rpm/proftpd.init.d /etc/init.d/proftpd   //将系统脚本拷贝到启动目录

# echo "/etc/init.d/proftpd start" >>/etc/rc.local        //将启动脚本加到自启动文件中

 

二、配置proftpd服务器

 

【目的】

 

1、匿名用户能够登陆系统,并且能够向incoming目录上传文件、建立目录,不能下载、删除、文件和目录,不能对目录和文件进行改名;pub目录里面的文件只能下载,不能进行上传文件、删除,不能建立目录和删除目录。

2ftpadmin用户可以对整个ftp的进行管理,可以对文件进行上传、下载、删除、移动、改名等全部操作,对目录进行建立、删除、移动、改名等全部操作。

 

【配置过程】

 

1、准备工作

1)、添加匿名的ftpftpadmin用户

默认的使用ftp用户,一般系统安装后都会天加该用户,使用finger ftp命令进行查询,看是否有ftp用户。如果系统有该用户,使用vipw命令修改ftp用户的根为/dev/null(这个目录可以随便定义,根据你的需要进行选择,这理为了实验,随便找个目录)。如果没有该用户,我们自己添加该用户。

 

# useradd -s /bin/false -d /dev/null ftp

# finger ftp

# useradd -s /bin/false -d /var/ftp ftpadmin

# finger ftpadmin

#passwd ftpadmin

 

2)、如果没有/var/ftp目录,建立/var/ftp根目录:

 

# mkdir /var/ftp

# mkdir /var/ftp/incoming         //匿名用户可以写,不可以下载、删除、执行

# mkdir /var/ftp/pub              //匿名用户不能写、下载、删除、执行

# chgrp ftp /var/ftp/incoming       //incoming目录的所属组改为ftp

# chgrp ftp /var/ftp/pub            //pub目录的所属组改为ftp

# chown ftpadmin /var/ftp/pub      ///var/ftp/pub的目录属主该为ftpadmin

# chown ftp /var/ftp/incoming/      ///var/ftp/incoming的目录属主该为ftp

# chmod –R 775 /var/ftp/incoming/  //改变incoming目录为属主和同组为全部权限,其他可读权限

# chmod –R 755 /var/ftp/pub       //改变pub目录权限为属主全部权限,同组和其他为可读权限

 

可以使用下面命令进行确认:

 

# ls –l /var/ftp

total 16

drwxrwxr-x  2 ftp      ftp 4096 Mar 19 00:49 incoming

drwxr-xr-x   2 ftpadmin  ftp 4096 Mar 19 00:01 pub

 

3)建立log文件

# mkdir /var/log/proftpd

# touch /var/log/proftpd/proftpd.log

 

 

2、修改配置文件

修改/etc/prftpd/proftp.conf

#

ServerName               "FTP Server "  #服务器的名字

ServerType               standalone     #proftpd运行的方式,standaloneinetd

DeferWelcome            off        #只有在认证用户之后才显示欢迎信息

ServerIdent              off      #登陆的时候不显示ftp服务器的相关信息,增加安全性

#

User                      nobody    #nobody,nogroup的身份运行程序
Group                     nogroup

#

Port                      21          #指定FTP的端口,默认是21端口

#

Umask                    002          #新文件的权限掩码

ShowSymlinks            off          #不显示链接文件的目标文件
DefaultRoot              ~  !username # ~用户只能访问自己的目录,!usernmae用户除外
RequireValidShell               off  #用户是否拥有shell,关闭安全

#

UseReverseDNS             off          #关闭DNS反向查询,节省连接时间

IdentLookups              off

#

TimeoutLogin            60        #登陆时等待输入密码的时间
TimeoutIdle              300       #登陆后允许IDLE的时间
TimeoutNoTransfer               600  #没有数据传输时允许IDLE的时间

#

AllowStoreRestart               on       #允许断点续上传AllowRetrieveRestart            on       #允许断点续下载

AllowForeignAddress                               on              #要允许 FXP 写成 on

#

PassivePorts             50000 65534        #指定被动模式端口的范围

#

MultilineRFC2228                 on         #FTP安全扩展

#

MaxClients                100 "Sorry, the maximum number of allowed users are already connected (%m)"           # 最大链接数限制MaxInstances              100       #最大实例数为30,
MaxClientsPerHost   2 "每个IP只允许2个连接"  #每个IP只能有两个连接ServerLog               /var/log/proftpd/
#SystemLog               /var/log/proftpd/system_log
ExtendedLog             /var/log/proftpd/proftpd.log ALL

#

AllowOverwrite           on

#

<Limit SITE_CHMOD>

  DenyAll

</Limit>

 

<Anonymous /home/ftp>

  User                          ftp

  Group                         ftp

  AnonRequirePassword           off

  MaxClients                    50

  MaxClientsPerHost             3 "Sorry, you may not connect more than five times."

  Umask                         002     002

 

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

  UserAlias                     anonymous ftp

 

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

  # in each newly chdired directory.

  DisplayLogin                  welcome.msg

  DisplayFirstChdir             .message

 

  TransferRate RETR 2000

  TransferRate STOR 2000

  <Limit LOGIN>

      Allow                       from all

  </Limit>

 

  # Limit WRITE everywhere in the anonymous chroot

  <Limit WRITE>

     DenyAll

  </Limit>

 

  <Directory /home/ftp/incoming/*>

    AllowOverwrite on

    <Limit WRITE STOR CWD MKD>

      Order Deny, Allow

      Allow from all

    </Limit>

    <Limit READ RMD DELE RNFR RNTO SITE_CHMOD>

      DenyAll

    </Limit>

  </Directory>

 

  <Directory /home/ftp/pub/*>

    AllowOverwrite off

    <Limit STOR CWD READ>

      Order Deny, Allow

      Allow from all

    </Limit>

 

    <Limit WRITE>

      DenyAll

    </Limit>

 

    <Limit RMD DELE RNFR RNTO SITE_CHMOD>

      DenyAll

    </Limit>

  </Directory>

</Anonymous>

 

<Anonymous ~>

 User                           ftpadmin

 Group                          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

 

 Umask                          002 002

 

 

 # Limit WRITE everywhere in the anonymous chroot

   <Limit LOGIN>

    Order                       Allow,Deny

    Allow                       from 172.22.0.0/24

    Allow                       from 172.16.22.0/24

    Deny                        from all

   </Limit>

   <Directory /*>

    AllowOverWrite              on

   <Limit SITE_CHMOD>

    DenyAll

   </Limit>

   <Limit WRITE STOR CWD MKD READ RMD DELE RNFR RNTO SITE_CHMOD>

    AllowAll

   </Limit>

   </Directory>

 

</Anonymous>

 

 

使用的命令:

1、查看端口:ftp使用21端口

netstat –anl

2、查看进程

ps –axu |grep proftpd

3、重启ftp服务

/etc/init.d/proftpd stop

/etc/init.d/proftpd start

4、修改网卡地址

1)修改网络配置文件

vi /etc/network/interfaces

auto eth0

iface eth0 inet static

        address 172.xx.xx.6  #172.xx.xx.6改成你要改的ip地址,保存推出

        netmask 255.255.255.0

        network 172.xx.xx.0

        broadcast 172.xx.xx.255

        gateway 172.xx.xx.254

        # dns-* options are implemented by the resolvconf package, if installed

        dns-nameservers 172.xx.xx.11

2)重新启动网络

/etc/init.d/networking restart

 


附录1

1Porftpd.conf配置格式

 

#全局设置

设置项目1 参数1

设置项目2 参数2

 

#某个目录的设置

<Directory "路径名">

...

...

</Directory>

 

#关于匿名用户的设置

<Anonymous "匿名登陆的目录">

...

...

<Limit 限制动作>

...

...

</Limit>

</Anonymous>

 

2、参数说明

CWDChange Working Directory 改变目录

MKDMaKe Directory 建立目录的权限

RNFR ReName FRom 更改目录名的权限

DELEDELEte 删除文件的权限

RMDReMove Directory 删除目录的权限

RETRRETRieve 从服务端下载到客户端的权限

STORSTORe 从客户端上传到服务端的权限

READ:可读的权限,不包括列目录的权限,相当于RETRSTAT

WRITE:写文件或者目录的权限,包括MKDRMD

DIRS:是否允许列目录,相当于LISTNLST等权限,还是比较实用的

ALL:所有权限

LOGIN:是否允许登陆的权限

3limit说明

AllowUser 针对某个用户允许的Limit

DenyUser 针对某个用户禁止的Limit

AllowGroup 针对某个用户组允许的Limit

DenyGroup 针对某个用户组禁止的Limit

AllowAll 针对所有用户组允许的Limit

DenyAll 针对所有用户禁止的Limit

  

Sybase12.5在RedHat AS4上的安装与应用:【上一篇】
Linux管理——初学者指南:【下一篇】
【相关文章】
  • Linux下proftpd的安装配置与管理方法
  • ProFTPD 1.3.0 released
  • 安装配置proftpd的实例
  • 杀不死的proftpd
  • ubuntu下如何利用proftpd构架一个ftp服务器
  • proftpd学习配置笔记
  • 一些proftpd的细微配置选项
  • proftpd安装与配置
  • proftpd+mysql用户认证+quota磁盘限额
  • proftpd中Limit的使用
  • 【随机文章】
  • how to dnd 1-3
  • 为庆本Blog开通一周年,特献风景图片:江城美景尽收眼底,湖光山色一览无余。
  • awk-模式扫描与处理语言(Aho,Kernighan,Weinberger著,中文翻译)
  • C++编程规范---第5章 常量
  • 09月05日病毒预警
  • 校验值对象——应用Visitor模式和反射
  • 简单采集程序
  • 美国Arlotto--ADSL共享上网解决方案
  • 馒头系列恶搞大集合[超级经典]
  • Windows 2000 阅读和投递新闻组
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.