Chinaunix首页 | 论坛 | 博客
  • 博客访问: 43480
  • 博文数量: 26
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 16
  • 用 户 组: 普通用户
  • 注册时间: 2016-12-15 11:11
文章分类

全部博文(26)

文章存档

2019年(1)

2010年(9)

2009年(1)

2008年(9)

2006年(6)

我的朋友

分类: LINUX

2006-08-17 17:36:05

ProFTPD服务器配置过程

作者:转载请注明来自zlj2208.cublog.cn

修改日期:2006315

安装环境:

    统:Fedora 4

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

 

一、安装ProFTPD

1、准备工作

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

 

下载地址:

安装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

#

  DenyAll

 

  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

 

      Allow                       from all

 

 

  # Limit WRITE everywhere in the anonymous chroot

 

     DenyAll

 

 

 

    AllowOverwrite on

   

      Order Deny, Allow

      Allow from all

   

   

      DenyAll

   

 

 

 

    AllowOverwrite off

   

      Order Deny, Allow

      Allow from all

   

 

   

      DenyAll

   

 

   

      DenyAll

   

 

 

 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

  

    Order                       Allow,Deny

    Allow                       from 172.22.0.0/24

    Allow                       from 172.16.22.0/24

    Deny                        from all

  

  

    AllowOverWrite              on

  

    DenyAll

  

  

    AllowAll

  

  

 

 

 

使用的命令:

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

 

#某个目录的设置

路径名">

...

...

 

#关于匿名用户的设置

匿名登陆的目录">

...

...

限制动作>

...

...

 

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

  

阅读(1298) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~