用pureftpd建立一个安全可控的ftp站点

来源:互联网 发布:mac 10.13.1 telnet 编辑:程序博客网 时间:2024/05/17 08:53

1.规划
目的:

    建一个有多个虚拟用户的ftp站点,可匿名访问,也可验证访问。匿名用户只可下载不可上传。验证用户可下载,也可上传。
    虚拟用户使用ftpgroup组的ftpuser帐户访问。
    teczm帐户不属于ftpgroup组。

资源:
/ftpd/tech teczm 755 纯技术资料,按主题分类
/ftpd/product teczm 755 可公开产品技术资料,按所属领域和厂商分类
/ftpd/other teczm 755 不涉及版权的非技术资料

虚拟用户:包括anonymous、tzguest、teczm。
匿名用户:anonymous
家目录:/ftpd/home/anonymous
家目录属主:teczm
家目录权限:755
可访问资源:/ftpd/tech [纯技术资料]
上传:不允许
上传目录:无
下载速率:受限

技术伙伴用户:tzguest
家目录:/ftpd/home/tzguest
家目录属主:teczm
家目录权限:755
可访问资源:/ftpd/tech [纯技术资料]    /ftpd/other [非技术资料]
上传:允许
上传目录:/ftpd/home/tzguest/upload
上传目录属主:teczm
上传目录权限:777      [upload目录下可创建、删除子目录,可创建、覆盖文件]
上传空间:受限
速率:受限

实名伙伴用户:teczm
家目录:/ftpd/home/teczm
家目录属主:teczm
家目录权限:755
可访问资源:/var/ftpd/tech [纯技术资料]    /product [可公开产品技术资料]  /other [非技术资料]
上传:允许
上传目录:/ftpd/home/teczm/upload
上传目录属主:teczm
上传目录权限:777      [upload目录下可创建、删除子目录,可创建、覆盖文件]
上传空间:受限
速率:不限

2.执行
2.1 目录准备

创建资源目录、设置属主、权限

代码:
#mkdir /ftpd/product  
#mkdir /ftpd/tech
#mkdir /ftpd/other
#cd /ftpd
#chown teczm *
#chmod 755 *



创建虚拟用户家目录、设置属主、权限

代码:

#mkdir  /ftpd/home 
#chown teczm home
#chmod 755 home
#cd /ftpd/home
#mkdir  /ftpd/home/anonymous
#mkdir  /ftpd/home/tzguest
#mkdir  /ftpd/home/teczm
#chown teczm *
#chmod 755 *



创建有上传权限虚拟用户的上传目录、设置属主、权限

代码:

#mkdir  /ftpd/home/tzguest/upload
#mkdir  /ftpd/home/teczm/upload

#chown teczm /ftpd/home/tzguest/upload
#chmod 777 /ftpd/home/tzguest/upload

#chown teczm /ftpd/home/teczm/upload
#chmod 777  /ftpd/home/teczm/upload



创建符号链接

代码:
#ln –s /ftpd/tech   /ftpd/home/anonymous/tech
#ln –s /ftpd/tech  /ftpd/home/tzguest/tech
#ln –s /ftpd/tech  /ftpd/home/teczm/tech

#ln –s /ftpd/product  /ftpd/home/teczm/product

#ln –s /var/ftpd/other  /ftpd/home/tzguest/other
#ln –s /var/ftpd/other  /ftpd/home/teczm/other



2.2 安装pureftpd
下载、解压
下载: http://www.pureftpd.org
解压:

代码:

#tar xzvf pure-ftpd-xxx.tar.gz 
#cd pure-ftpd-xxx



编译

代码:

#./configure --without-inetd  --with-paranoidmsg  --with-quotas --with-sysquotas  --with-altlog  --with-extauth  --with-cookie  --with-throttling  --with-ratios  --with-ftpwho  --with-virtualhosts --with-virtualchroot --with-diraliases  --with-peruserlimits  --with-language= simplified-chinese  --with-pam  --with-puredb --with-tls



安装

代码:

#make
#make check
#make install

2.3 配置pureftpd
拷贝配置文件到指定目录

代码:

#chmod 755 configuration-file/pure-config.pl
#cp configuration-file/pure-config.pl /usr/local/sbin/
#cp configuration-file/pure-ftpd.conf /usr/local/etc/



pure-ftpd.conf的设定

代码:
#ee /usr/local/etc/pure-ftpd.conf


引用:

#pure-ftpd.conf
ChrootEveryone              yes
BrokenClientsCompatibility  yes
MaxClientsNumber            50
Daemonize                  yes
MaxClientsPerIP            10
VerboseLog                  no
DisplayDotFiles            no
AnonymousOnly              no
NoAnonymous                yes
SyslogFacility              ftp
FortunesFile              /usr/local/etc/ftpmsg  #欢迎信息文件
DontResolve                yes
MaxIdleTime                5
PureDB                    /etc/pureftpd.pdb
LimitRecursion              2000 8
AnonymousCanCreateDirs      no
MaxLoad                    4
AntiWarez                  yes
UserBandwidth              30
Umask                      133:022 
MinUID                      100
AllowUserFXP                no
AllowAnonymousFXP          no
ProhibitDotFilesWrite      yes
ProhibitDotFilesRead        yes
AutoRename                  yes
AnonymousCantUpload        yes
AltLog                    w3c:/var/log/pureftpd.log
NoChmod                    yes
KeepAllFiles                no   
Quota                      2000:1000
NoRename                    no
CustomerProof              yes
PerUserLimits            10:200



虚拟用户公共帐号设置

代码:

#pw groupadd ftpgroup
#pw useradd ftpuser -g ftpgroup -d /dev/null -s /etc



虚拟用户帐号设置

代码:

#/usr/local/bin/pure-pw useradd guest -u ftpuser -d /ftpd/home/anonymous
#/usr/local/bin/pure-pw useradd teczm -u teczm -d /ftpd/home -r 192.168.0.0/24



guest虚拟账号使用真实用户ftpuser,虚拟帐号teczm使用真实账号teczm
虚拟用户teczm只能从192.168.7.0段登录

然后:

代码:
#/usr/local/bin/pure-pw mkdb



2.4 启动pureftpd

代码:
#/usr/local/sbin/pure-config.pl /usr/local/etc/pure-ftpd.conf

原创粉丝点击