博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PureFTPD配置指南
阅读量:6941 次
发布时间:2019-06-27

本文共 5690 字,大约阅读时间需要 18 分钟。

一、PureFTPD简介

1.1 PureFTPD简介

  PureFTPd (Pure FTP Server) 是一个快速、稳定的支持全功能的FTP 服务器软件,专门为现在的Linux 核心进行设计。支持 PAM 认证、IPv6、chroot、虚拟域名、内建 ls 命令、FXP 协议、带宽限制、Passive 模式、LDAP 认证 以及 XML 输出等等。

1.2 参考资源

1.3 注意事项

  通过本文的方法可以设置通过域名、IP地址的方式访问,请根据具体情况更改。以下环境基于64位的CentOS 6.4

二、数据库安装及相关配置

2.1 前期准备

  在使用yum指令前建议先设定好linux软件源(如下图所示,可以参考http://waringid.blog.51cto.com/65148/904201)。需要注意的是epel源中的epel-release-6-7.noarch.rpm已经换成了epel-release-6-8.noarch.rpm版本(同时注意32位和64位版本的区别)。

rpm --import https://fedoraproject.org/static/0608B895.txtwget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpmrpm -ivh epel-release-6-8.noarch.rpmyum install yum-prioritiesvi /etc/yum.repos.d/epel.repo

[epel]name=Extra Packages for Enterprise Linux 6 - $basearch#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearchmirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearchfailovermethod=priorityenabled=1priority=10gpgcheck=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6

2.2 安装MySQL

  对于配置MySQL以及phpMyadmin也可以参考“”的详细配置。

输入以下命令开始安装MySQL及相关的管理工具phpMyAdmin。

yum install mysql mysql-server phpMyAdmin httpd

  安装成功以后需要重新设定phpMyAdmin的配置,先修改/etc/httpd/conf.d/phpMyAdmin.conf文件。将该文件中的内容注释然后新建以下内容。

vim /etc/httpd/conf.d/phpMyAdmin.conf
Alias /phpMyAdmin /usr/share/phpMyAdminAlias /phpmyadmin /usr/share/phpMyAdmin
Order Deny,AllowDeny from AllAllow from 127.0.0.1Allow from ::1
Order Deny,AllowDeny from AllAllow from None
Order Deny,AllowDeny from AllAllow from None
Order Deny,AllowDeny from AllAllow from None

2.3 配置应用服务

  数据库及WEB应用安装完毕后需将其加入系统自启动选项避免系统重启后服务没有正常启动的情况。

chkconfig –level 235 mysqld onservice mysqld startchkconfig –level 235 httpd onservice httpd start

  以上指令完成后输入mysql_secure_installation指令重新设定MySQL的权限安全。

三、PureFTPd及MySQL支持

  可以直接通过yum命令来完成pureFTPd软件的安装,如果需要特别的定制请参考源码的编译方式。

3.1 安装PureFTPd

yum install pure-ftpdgroup –g 2001 ftpgroupuseradd –u 2001 –s /bin/false –d /bin/null –c “pureftpd user” –gftpgroup ftpuser

3.2 创建pureFTPd的数据库

  可以通过phpMyAdmin的WEB界面或是第三方的GUI工具进行数据库的操作,这里以命令的方式进行。

mysql -u root –p

CREATE DATABASE pureftpd;GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON pureftpd.* TO'pureftpd'@'localhost' IDENTIFIED BY 'ftpdpass';GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON pureftpd.* TO'pureftpd'@'localhost.localdomain' IDENTIFIED BY 'ftpdpass';FLUSH PRIVILEGES;USE pureftpd;CREATE TABLE ftpd (User varchar(16) NOT NULL default '',status enum('0','1') NOT NULL default '0', Password varchar(64) NOT NULLdefault '',Uid varchar(11) NOT NULL default '-1',Gid varchar(11) NOT NULL default'-1',Dir varchar(128) NOT NULL default '',ULBandwidth smallint(5) NOT NULLdefault '0',DLBandwidth smallint(5) NOT NULL default '0',comment tinytext NOT NULL,ipaccess varchar(15) NOT NULL default '*',QuotaSize smallint(5) NOT NULLdefault '0',QuotaFiles int(11) NOT NULL default 0,PRIMARY KEY (User),UNIQUE KEY User (User)) ;quit;

3.3 配置pureFTPd

  按要求设定FTP的配置文件,在FTP主要的配置中启用MySQL支持的配置文件然后按需求设定FTP的MySQL配置,如下所示。

vim /etc/pure-ftpd/pure-ftpd.conf
ChrootEveryoneyesMySQLConfigFile/etc/pure-ftpd/pureftpd-mysql.confCreateHomeDiryes

  其中“ChrootEveryon”的设置是确保虚拟用户的权限限制在指定文件夹中,对于实际的文件夹没有任何权限;“CreateHomeDir”用来确保pureFTPd有权限指定用户的文件夹。

接下来需要编辑/etc/pure-ftpd/pureftpd-mysql.conf文件完成相应配置,如以下所示。

cp /etc/pure-ftpd/pureftpd-mysql.conf/etc/pure-ftpd/pureftpd-mysql.conf_origcat /dev/null > /etc/pure-ftpd/pureftpd-mysql.confvi /etc/pure-ftpd/pureftpd-mysql.conf

MYSQLSocket /var/lib/mysql/mysql.sock#MYSQLServerlocalhost#MYSQLPort3306MYSQLUserpureftpdMYSQLPasswordftpdpassMYSQLDatabasepureftpd#MYSQLCrypt md5, cleartext, crypt() or password() - md5 is VERYRECOMMENDABLE uppon cleartextMYSQLCryptmd5MYSQLGetPWSELECT Password FROM ftpd WHEREUser="\L" AND status="1" AND (ipaccess = "*" ORipaccess LIKE "\R")MYSQLGetUIDSELECT Uid FROMftpd WHERE User="\L" AND status="1" AND (ipaccess ="*" OR ipaccess LIKE "\R")MYSQLGetGIDSELECT Gid FROMftpd WHERE User="\L"AND status="1" AND (ipaccess ="*" OR ipaccess LIKE "\R")MYSQLGetDirSELECT Dir FROMftpd WHERE User="\L"AND status="1" AND (ipaccess ="*" OR ipaccess LIKE "\R")MySQLGetBandwidthUL SELECT ULBandwidth FROM ftpd WHEREUser="\L"AND status="1" AND (ipaccess = "*" ORipaccess LIKE "\R")MySQLGetBandwidthDL SELECT DLBandwidth FROM ftpd WHEREUser="\L"AND status="1" AND (ipaccess = "*" ORipaccess LIKE "\R")MySQLGetQTASZSELECT QuotaSizeFROM ftpd WHERE User="\L"AND status="1" AND (ipaccess ="*" OR ipaccess LIKE "\R")MySQLGetQTAFSSELECT QuotaFilesFROM ftpd WHERE User="\L"AND status="1" AND (ipaccess ="*" OR ipaccess LIKE "\R")

  配置完成后创建启动服务并启动FTP服务。

chkconfig –level 235 pure-ftpd onservice pure-ftpd start

四、增加用户数据并测试

  在开始测试前需要创建测试用户,通过操作数据库的方式来增加用户信息及相关的权限信息。

4.1 增加FTP用户

mysql –u root –p
USE pureftpd;INSERT INTO `ftpd` (`User`, `status`, `Password`, `Uid`, `Gid`, `Dir`,`ULBandwidth`, `DLBandwidth`, `comment`, `ipaccess`, `QuotaSize`, `QuotaFiles`)VALUES ('lppz', '1', MD5('secret'), '2001', '2001', '/home/lppz', '100', '100','', '*', '50', '0');quit;

  该语句的作用是新建一个FTP用户“lppz”。其中目录位于“/home/lppz”下;上传及下载的带宽限制在100KB;可用空间大小限制在50M。

  现在可以通过FTP客户端工具来访问服务器了。需要注意的是只有进行了访问动作后才会在指定文件夹下新建目录。

4.2 数据库管理

  新增FTP用户的操作也可以通过phpMyAdmin的web界面进行配置,如下图所示:

五、anonymous用户访问

  如果FTP需要支持anonymous用户访问应要创建名称为ftp的用户和组。pureFTPd在初始化安装时就已经自动建立了该用户无须重复创建。需要注意的是在默认情况下anonymous用户的文件夹位于/var/ftp下,如果要用其它目录需更改配置文件。

5.1 修改配置文件

vim /etc/passwd

mv /var/ftp /homechown ftp:nobody /home/ftpcd /home/ftpmkdir incomingchown ftp:nobody incoming/chmod 311 incoming/cd ../chmod 555 ftp/

  incoming设成311用于anonymous用户上传文件用但是无法查看及下载其下的内容。/home/ftp设成555表示可以查看和下载文件。

vim /etc/pure-ftpd/pure-ftpd.conf
NoAnonymousnoAntiWareznoAnonymousBandwidth8AnonymousCantUploadno

service pure-ftpd restart

  按上面的指令修改FTP的配置文件后重启FTP服务便可以让pureFTPd支持anonymous用户访问。

转载地址:http://dqnnl.baihongyu.com/

你可能感兴趣的文章
Instana发布微服务应用程序样例
查看>>
京东Vue组件库NutUI 2.0发布:将支持跨平台!
查看>>
新书问答:Agile Management
查看>>
Apache HBase的现状和发展
查看>>
LinkedIn工程经理眼中的数据世界格局
查看>>
Servlet续篇
查看>>
AWS开源Firecracker,一种运行多租户容器服务的新虚拟化技术
查看>>
PHP扩展库PEAR被攻击,近半年下载者或被影响
查看>>
企业微信自建应用开发初探
查看>>
O’Reilly发布“微服务成熟度状态”报告:微服务是成功的
查看>>
Submarine:在 Apache Hadoop 中运行深度学习框架
查看>>
《Clojure Recipes》书评与问答
查看>>
腾讯集团与光大集团签署战略合作 共建金融科技创新实验室
查看>>
怀疑在软件测试中所起的作用
查看>>
5G一周热闻:华为夺联通5G大单,首张5G电话卡发放
查看>>
2018年Github最受欢迎机器学习语言Python稳坐冠军,numpy、scipy是最受欢迎软件包...
查看>>
GitHub 重磅更新:无限私有仓库免费使用
查看>>
“10%时间”:优点和缺点——敏捷海滩会议上Elizabeth Pope的报告
查看>>
Rico Mariani对Visual Studio不是64位的解释
查看>>
破译密码、设计飞机和建设团队:Randy Shoup谈高绩效团队
查看>>