centos6.4配置FTP服务之pure-ftpd

首先用VMware Fusion安装一个centos6.4虚拟机。安装过程网上一搜一大把。用SSH连接到服务器。

然后开始正式配置pure-ftpd。

安装pure-ftpd

1.下载软件

pure-ftpd官网是[http://www.pureftpd.org/]

[root@jokerchan ~]# cd /usr/local/src/
[root@jokerchan src]# wget http://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.42.tar.bz2

下载的时候会提示如图:

centos6.4配置FTP服务之pure-ftpd_第1张图片

所以我们采用--no-check-certificate不验证证书的方式进行下载。

[root@jokerchan src]# wget --no-check-certificate http://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.42.tar.bz2

2. 安装pure-ftpd

[root@jokerchan src]# tar jxf pure-ftpd-1.0.42.tar.bz2
[root@jokerchan src]# cd pure-ftpd-1.0.42
[root@jokerchan src]# ./configure \
--prefix=/usr/local/pureftpd \
--without-inetd \
--with-altlog \
--with-puredb \
--with-throttling \
--with-peruserlimits  \
--with-tls
centos6.4配置FTP服务之pure-ftpd_第2张图片

由于我的系统是最基本的安装。所以很多东西还没有。

执行

yum -y install gcc gcc-c++ gdb

然后再次运行

[root@jokerchan src]# ./configure \
--prefix=/usr/local/pureftpd \
--without-inetd \
--with-altlog \
--with-puredb \
--with-throttling \
--with-peruserlimits  \
--with-tls
centos6.4配置FTP服务之pure-ftpd_第3张图片

红色部分没找到

根据提示执行

yum install openssl-devel

然后再次运行

[root@jokerchan src]# ./configure \
--prefix=/usr/local/pureftpd \
--without-inetd \
--with-altlog \
--with-puredb \
--with-throttling \
--with-peruserlimits  \
--with-tls

[root@jokerchan pure-ftpd-1.0.42]# make && make install
配置pure-ftpd

1. 修改配置文件

[root@jokerchan pure-ftpd-1.0.42]# cd configuration-file

[root@jokerchan pure-ftpd-1.0.42]# mkdir -p     /usr/local/pureftpd/etc/

[root@jokerchan configuration-file]# cp pure-ftpd.conf    /usr/local/pureftpd/etc/pure-ftpd.conf

[root@jokerchan configuration-file]# cp pure-config.pl    /usr/local/pureftpd/sbin/pure-config.pl

[root@jokerchan configuration-file]# chmod 755    /usr/local/pureftpd/sbin/pure-config.pl

在启动pure-ftpd之前需要先修改配置文件,配置文件为/usr/local/pureftpd/etc/pure-ftpd.conf。我们用vim打开编辑。

[root@jokerchan configuration-file]# vim /usr/local/pureftpd/etc/pure-ftpd.conf

注意修改的三个地方

PureDB                        /usr/local/pureftpd/etc/pureftpd.pdb

PIDFile                     /usr/local/pureftpd/var/run/pure-ftpd.pid

PassivePortRange     30000 50000

其中PassivePortRange为防火墙需要用到的地方。

2. 启动pure-ftpd

[root@jokerchan configuration-file]# /usr/local/pureftpd/sbin/pure-config.pl /usr/local/pureftpd/etc/pure-ftpd.conf

如图启动成功。

3.建立帐号

root@jokerchan configuration-file]# mkdir /data/www/

[root@jokerchan configuration-file]# useradd www

[root@jokerchan configuration-file]# chown -R www:www /data/www/

[root@jokerchan configuration-file]# /usr/local/pureftpd/bin/pure-pw useradd ftp_user1  -uwww -d /data/www/

Password:
Enter it again:

其中,-u将虚拟用户ftp_user1与系统用户www关联在一起,也就是说使用ftp_user1账号登陆ftp后,会以www的身份来读取文件或下载文件。-d 后边的目录为ftp_user1账户的家目录,这样可以使ftp_user1只能访问其家目录/data/www/. 到这里还未完成,还有最关键的一步,就是创建用户信息数据库文件:

[root@jokerchan configuration-file]#  /usr/local/pureftpd/bin/pure-pw mkdb

pure-pw还可以列出当前的ftp账号,当然也可以删除某个账号, 我们再创建一个账号:

[root@jokerchan configuration-file]#  /usr/local/pureftpd/bin/pure-pw  useradd ftp_user2 -uwww -d /tmp

[root@jokerchan configuration-file]#  /usr/local/pureftpd/bin/pure-pw mkdb

列出当前账号:

[root@jokerchan configuration-file]# /usr/local/pureftpd/bin/pure-pw list

删除账号的命令为:

[root@jokerchan configuration-file]#  /usr/local/pureftpd/bin/pure-pw  userdel ftp_user2
测试pure-ftpd

测试需要使用的工具叫做lftp, 先安装一下它:

[root@jokerchan ~]# yum install -y lftp

测试:

[root@jokerchan configuration-file]# touch /data/www/123.txt

[root@jokerchan configuration-file]# lftp [email protected]
口令: 

lftp [email protected]:~> ls      
drwxr-xr-x    2 500        www              4096 Aug  4 22:03 .
drwxr-xr-x    2 500        www              4096 Aug  4 22:03 ..
-rw-r--r--    1 0          0                   0 Aug  4 22:03 123.txt

本来以为就完成了。然后我回到桌面用FileZilla建立连接的时候确发现不能连接。找了半天发现是防火墙的问题。于是再晚上搜索了相关方法。

打开对应防火墙功能。执行下面的命令。

  1. iptables -A INPUT -p tcp --dport 30000:50000 -j ACCEPT

    service iptables save

先加载

#modproble ip conntrack_ftp
#modproble ip_nat_ftp

然后加载策略

#iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

#iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

#iptables -I INPUT -p tcp --dport 21 -j ACCEPT

#iptables -I OUTPUT -p tcp --dport 21 -j ACCEPT

保存

service iptables save
centos6.4配置FTP服务之pure-ftpd_第4张图片

然后重启机器试试。
结果发现pure-ftpd需要手动开始。防火墙问题已经解决关键就是service iptables save这句话。将策略保存。下次开机就不用重新设置。其他问题发现后再记录。

你可能感兴趣的:(centos6.4配置FTP服务之pure-ftpd)