日期:2011-02-23 18:06:00  来源:本站整理

用pure-ftpd搭建简单的Ubuntu FTP服务器[服务器安全]

赞助商链接



  本文“用pure-ftpd搭建简单的Ubuntu FTP服务器[服务器安全]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

Linux下的ftpd很多,Ubuntu下常用vsftpd, proftpd和pure-ftpd,当初利用的就是proftpd. 不过前二者有个致命的问题就是内码转换,它们默许利用UTF-8编码,而Windows系统利用GBK,这就招致Windows拜候时中文呈现乱码. pure-ftpd则可以设置客户端默许编码,直接设为GBK就办理问题了.pure-ftpd的虚拟用户支持也很好,答应限制带宽、空间配额,可以用自带的pure-pw管理虚拟用户,也可以用MySQL和LDAP. pure-ftpd也供应FXP协议和SSL/TLS支持,是一个很全面的ftpd. 首先安装pure-ftpd:
sudo apt-get install pure-ftpd

pure-ftpd不是用配置文件而是用号令行参数,这种方法对比独特.不过pure-ftpd的作者还是为偏好配置文件的用户供应了wrapper,可以man一下pure-ftpd-wrapper. 在Debian/Ubuntu下的wrapper对比怪,是在/etc /pure-ftpd/conf下以设置项作为文件名,该项的设置值作为文件的内容,如需求设置ClientCharset=gbk,就成立一个名为“ClientCharset”的文件,内容为“GBK”.
实行室的FTP需求给每个人配一个私有账号,相当于一个网络硬盘;同时答应匿名登录用于上传大众资料与数据交换.由于是内部服务器,需求改一下端口号,最后还需求一个管理员帐号.我利用的设置以下(用传统赋值写法),一些不常用的就不写了:
ClientCharset=gbk #必设,避免Windows登录呈现中文乱码
DontResolve=yes #不解析域名,可以节俭登录时间
BrokenClientsCompatibility=yes #兼容IE等非尺度FTP client
ChrootEveryone=yes #把全部用户限制在其homedir下
KeepAllFiles=yes #禁止用户删除文件,TrustedGID组中的除外
TrustedGID=1001 #管理员组ftpadmins的GID,答应管理员删除文件
CreateHomeDir=yes #当虚拟用户第一次登录时,自动成立homedir
MaxClientsPerIP=2 #每个IP限制2个衔接
MaxClientsNumber=20 #最大并发衔接数,默许值是50
MaxDiskUsage=90 #分区已利用空间超越90%时不再承受上传
NoAnonymous=no #答应匿名登录
Bind=,8821 #改变端口号

每次改正服务器设置后都需求重新启动服务:
sudo /etc/init.d/pure-ftpd restart

一共成立了两个用户组:ftpadmins(管理员和普通用户,可以删除文件)和ftpusers(匿名账号,不能删除文件),以及三个用户:ftpadmin(管理员),ftpuser(普通用户)和ftp(匿名用户). 服务器的根目录为/var/ftp,全部者为 ftpadmin:ftpadmins. 根目录下有public和users两个目录,public作为匿名拜候的根目录,users存放普通用户的文件.匿名拜候空间(public目录)中只有incoming答应上传(777),别的位置只能下载.users目录也被设为组内的完好拜候权限(775),这样同组的普通用户(ftpuser)可以有读写和删除的权限.普通用户将被限制(chroot)在/var/ftp/users下自己的homedir中,因此固然有完好拜候权限,也不会影响别的位置.为了保险起见,别的位置的权限设为755,只有ftpadmin有完好权限.
sudo groupadd ftpadmins
sudo groupadd ftpusers
sudo useradd -g ftpadmins -d /dev/null -s /bin/false ftpadmin
sudo useradd -g ftpadmins -d /dev/null -s /bin/false ftpuser
sudo useradd -g ftpusers -d /var/ftp/public -s /bin/false ftp
sudo mkdir /var/ftp
sudo mkdir /var/ftp/public
sudo mkdir /var/ftp/public/incoming
sudo mkdir /var/ftp/users
sudo chown -R ftpadmin:ftpadmins /var/ftp
sudo chmod -R 755 /var/ftp
sudo chmod 777 /var/ftp/public/incoming
sudo chmod 775 /var/ftp/users

由于这些用户仅用于pure-ftpd,不需求给登录权限,因此 shell被指定为/bin/false.
下面配置虚拟用户.虚拟用户是ftp登录时所用的用户账号,但可以共用一个系统账号.当用户利用虚拟账号登录ftp时,将实际利用虚拟用户对应的系统用户身份举行操作.实行室的全部普通用户均利用虚拟账号,对应的系统账号是ftpuser. 匿名用户只能对应系统中的ftp用户(名称不能改),pure-ftpd的官方文档中倡议把匿名用户单独设在一个用户组中.
虚拟用户用pure-pw配置,官方文档在这里. pure-pw的利用很便利,情势和管理系统用户差不多,只是在useradd, usermod等前面加上pure-pw(用户名要紧随操作背面而不是放在最后,这一点与useradd等差别). 匿名用户不需求单独配置,因此homedir一定要在成立系统用户ftp时指定好,别的系统用户的homedir可以简单地指定为/dev/null,成立虚拟用户时再指定homedir. 下面成立虚拟管理员账号admin与两个普通账号test1和test2:
sudo pure-pw useradd admin -u ftpadmin -d /var/ftp
sudo pure-pw useradd test1 -u ftpuser -d /var/ftp/user/test1
sudo pure-pw useradd test2 -u ftpuser -d /var/ftp/user/test2

履行每条号令之后pure-pw会要求输入账号的密码.在参数的-d选项中指定的homedir的并不需求事前成立好.假如在配置中设置 CreateHomeDir=yes,则在虚拟用户第一次登录时pure-ftpd会自动成立其homedir.
增添虚拟用户时还可以设置用户的带宽、空间配额、IP段等.改正虚拟用户设置用pure-pw usermod, 改正密码用pure-pw passwd, 删除虚拟用户用pure-pw userdel,用法详见官方文档.
每次改正用户设置后都要更新一下虚拟用户数据库,不需求重新启动服务:
sudo pure-pw mkdb

也可以在每次利用 pure-pw的时刻加上-m参数当即更新虚拟用户数据库.
到这里设置就算完成了,这时ftp localhost可以匿名登录,但虚拟用户登录会呈现530错误.这是因为默许的认证方法中没有puredb数据库,办理办法是在/etc/pure- ftpd/auth下加入puredb数据库的软链接:
cd /etc/pure-ftpd/auth
sudo ln -s ../conf/PureDB 60puredb

目前便可以利用虚拟账号登录FTP了.

考虑到文件交换的利用,在匿名用户空间/var/ftp/public下新建了一个exchange目录,下设1day, 3days和7days(权限均为777)用于暂时储存交换数据,当目录中的数据存放超越一按时间后删除.我写了一个bash脚本用于自动完成清理工作,并在清理时记录当前时间与被删除的文件,脚本以下:


  以上是“用pure-ftpd搭建简单的Ubuntu FTP服务器[服务器安全]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • <b>透析centos下用pure-ftp成立 FTP服务器</b>
  • 用pure-ftpd搭建简单的Ubuntu FTP服务器
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .