首先用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
下载的时候会提示如图:
所以我们采用--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
由于我的系统是最基本的安装。所以很多东西还没有。
执行
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
红色部分没找到
根据提示执行
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
建立连接的时候确发现不能连接。找了半天发现是防火墙的问题。于是再晚上搜索了相关方法。
打开对应防火墙功能。执行下面的命令。
-
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
然后重启机器试试。
结果发现pure-ftpd
需要手动开始。防火墙问题已经解决关键就是service iptables save
这句话。将策略保存。下次开机就不用重新设置。其他问题发现后再记录。