温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

搭建常用服务pure-ftpd服务

发布时间:2020-06-20 15:20:07 来源:网络 阅读:1266 作者:望月jin 栏目:网络安全

1.安装pureftp

#cd  /usr/local/src/

#wget   https://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.42.tar.bz2

2.安装pure-ftpd

#tar  -jxvf  pure-ftpd-1.0.42.tar.bz2

#cd  pure-ftpd-1.0.42

#./configure  --prefix=/usr/local/pure-ftpd  --without-inetd  --with-altlog  --with-puredb  --with-throttling  --with-peruserlimits  --with-tls

#echo $?

#make

#make install

3.配置pure-ftpd

#cd  configuration-file

#mkdir  -pv  /usr/local/pure-ftpd/etc

#cp   pure-ftpd.conf    /usr/local/pure-ftpd/etc/pure-ftpd.conf   //配置文件

#cp   pure-config.pl     /usr/local/pure-ftpd/sbin/pure-config.pl  //启动文件

#chmod   755   /usr/local/pure-ftpd/sbin/pure-config.pl  //修改权限

在启动pure-ftpd之前需要修改配置文件pure-ftpd.conf,

配置文件内容如下:

ChrootEveryone              yes

BrokenClientsCompatibility  no

MaxClientsNumber            50

MaxClientsCompatibility     50

Daemonize                   yes

MaxClientsPerIP             8

VerboseLog                  no

DisplayDotFiles             yes

AnonymousOnly               no

NoAnonymous                 no

SyslogFacility              ftp

DontResolve                 yes

MaxIdleTime                 15

PureDB                      /usr/local/pure-ftpd/etc/pureftpd.pdb

LimitRecursion              3136.8

AnonymousCanCreateDirs      no

MaxLoad                     4

AntiWarez                   yes

Umask                       133:022

MinUID                      100

AllowUserFXP                no

AllowAnonymousFXP           no

ProhibitDotFilesWrite       no

ProhibitDotFilesRead        no

AutoRename                  no

AnonymousCantUpload         no

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

MaxDiskUsage                99

CustomerProof               yes

配置千万不要弄错了,我之前自己打进去的,所以出现一些错字,把pdb文件写成了conf文件,所以一直连接不上,所以不要粗心哦

4.启动pure-ftpd

#cd  /usr/local/pure-ftpd/

#./sbin/pure-config.pl     ./etc/pure-ftpd.conf

启动成功会显示下面信息:

Running: /usr/local/pure-ftpd/sbin/pure-ftpd -A -B -C8 -D -fftp -H -I15 -lpuredb:/usr/local/pure-ftpd/etc/pureftpd.conf -m4 -s -U133:022 -u100 -g/usr/local/pure-ftpd/var/run/pure-ftpd.pid -k99 -Z

重启:killall pure-ftpd

/usr/local/pure-ftpd/sbin/pure-config.pl    /usr/local/pure-ftpd/etc/pure-ftpd.conf

也可以自己定义PATH环境变量,在/etc/profile.d/path.sh文件中定义:

搭建常用服务pure-ftpd服务

[root@jinge ~]# pure-config.pl  /usr/local/pure-ftpd/etc/pure-ftpd.conf

Running: /usr/local/pure-ftpd/sbin/pure-ftpd -A -B -C8 -D -fftp -H -I15 -lpuredb:/usr/local/pure-ftpd/etc/pureftpd.conf -m4 -s -U133:022 -u100 -g/usr/local/pure-ftpd/var/run/pure-ftpd.pid -k99 -Z

5.建立账号

pure-ftpd使用的账号并非Linux系统账号,而是虚拟账号,因为这样做比较安全

#mkdir  /jin/www    

#useradd   www       //创建用户www

#chown  -R  www:www   /jin/www/    //修改用户属主和属组

#usr/local/pure-ftpd/bin/pure-pw   useradd  ftp_user1  -uwww  -d  /jin/www/

(添加用户命令:pure-pw

登录FTP的用户:ftp_user1

-u指定的用户为:系统用户

-d后面的目录为:ftp_user1账户的家目录,ftp_user1只能访问其家目录/jin/www/)

搭建常用服务pure-ftpd服务

#/usr/local/pure-ftpd/bin/pure-pw  mkdb  //创建用户信息数据库文件

#/usr/local/pure-ftpd/bin/pure-pw  list  //列出当前的ftp账号

#/usr/local/pure-ftpd/bin/pure-pw   userdel  ftp_user1   //删除账号

搭建常用服务pure-ftpd服务

6.测试pure-ftpd

远程连接测试(用另一台机器做测试):

服务端ip(本机)为192.168.226.3

客户端ip(远程)为192.168.226.5

客户端机器中,测试需要使用到的工具是:lftp

安装lftp:yum  install  -y   lftp

测试:lftp  ftp_user1@192.168.226.3

搭建常用服务pure-ftpd服务

查看日志:cat  /var/log/messages

查看lftp中的命令:?

搭建常用服务pure-ftpd服务

下载文件到当前目录:get  11.txt

搭建常用服务pure-ftpd服务

在客户端中创建文件,上传到服务端中:

客户端:

搭建常用服务pure-ftpd服务

服务端:

搭建常用服务pure-ftpd服务

问题1:

这时候如果登录ftp会提示

421 Unable to read the indexed puredb file (or old format detected) - Try pure-pw mkdb

执行

#/usr/local/pureftpd/bin/pure-pw mkdb

再登录,一切正常。执行这条命令是让pureftpd根据/usr/loca/pureftpd/etc/pureftpd.passwd(这个文件是在执行pure-pw useradd的时候自动生成的)生成/usr/local/pureftpd/etc/pureftpd.pdb

到这里服务器已经可以正常运行了

再用pure-pw useradd添加另一个ftp帐号登录,又提示“验证失败”,重启pureftpd也不行,郁闷了好一会后找到原因:

执行pure-pw的命令后只是更改了pureftpd.passwd文件,必须执行pure-pw mkdb重新生成pureftpd.pdb才生效。

我说在刚接手的服务器上添加帐号不行呢,就是因为没有执行pure-pw mkdb

如果出现错误,登录不上,应该先去查看一下日志文件,看是什么错误: cat  /var/log/messages

问题2:

我用两台虚拟机做实验,

服务端:一台搭建了pure-ftpd(192.168.226.4)服务,

客户端:另一台没有搭建(192.168.226.6)该服务,

(1)在搭建了pure-ftpd服务的那台虚拟机中,配置完配置文件后启动

(2)没搭建pure-ftpd服务的那台虚拟机用于连接,连接需要用到的工具为lftp,如果没有yum安装一下,在该台虚拟机上连接,lftp  ftp_user1@192.168.226.4

进入之后,ls一下,一直说连接不上,那是什么问题呢?

故障检查:

1.首先我在服务端中,查看cat  /var/log/messages日志文件,看提示什么错误,不知道是什么问题,该日志中没有pure-ftpd的日志(后面才知道)

2.检查日志文件无果之后,我就去检查配置文件有没有配置错误,一个一个的检查,不过我重点检查的是.pdb文件有没有生成,还有.pid文件有没有生成

3.查看了配置文件之后,我就在命令行上输入

cat  /usr/local/pure-ftpd/etc/pureftpd.pdb  如果有,那就没事

cat  /usr/local/pure-ftpd/var/run/pure-ftpd.pid  //回车之后说命令找不到,那么就是没有这个文件啦,终于找到问题所在了,那么该如何去解决这个问题呢?

解决方法:我的方法就是直接创建/usr/local/pure-ftpd/var/run/pure-ftpd.pid

本来是没有var目录和run目录的,所以你也要先创建目录

4.重启pure-ftpd服务

killall   pure-ftpd   //先杀死

/usr/local/pure-ftpd/sbin/pure-config.pl   /usr/local/pure-ftpd/etc/pure-ftpd.conf  //启动

5.在客户端上测试

测试发现,还是有错

6.查看日志cat  /var/log/messages

发现错误之后,查看日志,之前是没有pure-ftpd的日志的,因为没有生成pid文件,所以没有日志。

现在查看日志,cat    /var/log/messages,出来pure-ftpd的日志了,错误信息如下:

Dec 25 17:38:58 localhost pure-ftpd: (?@?) [ERROR] Unable to start a standalone server: [Address already in use]

Dec 25 17:41:08 localhost kernel: eth0: link down

Dec 25 17:41:20 localhost kernel: eth0: link up

Dec 25 17:41:34 localhost kernel: eth0: link down

Dec 25 17:41:44 localhost kernel: eth0: link up

Dec 25 17:46:20 localhost kernel: eth0: link down

Dec 25 17:46:30 localhost kernel: eth0: link up

发现这些信息之后,就开始排查了,上网查没查到,之后就自己去尝试,它说eth0有问题,又说地址被占用,那么我想可能是网络的问题,于是我就在服务端和客户端各输入ifconfig,得到如下信息:

服务端:

[root@localhost pure-ftpd]# ifconfig

eth0      Link encap:Ethernet  HWaddr 00:0C:29:E4:CC:70

inet addr:192.168.226.4  Bcast:192.168.226.255  Mask:255.255.255.0

inet6 addr: fe80::20c:29ff:fee4:cc70/64 Scope:Link

UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

RX packets:7030 errors:0 dropped:0 overruns:0 frame:0

TX packets:5759 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:1163332 (1.1 MiB)  TX bytes:1440044 (1.3 MiB)

Interrupt:19 Base address:0x2000

客户端:

[root@localhost opt]# ifconfig

eth2      Link encap:Ethernet  HWaddr 00:0C:29:7B:C6:51

inet addr:192.168.226.6  Bcast:192.168.226.255  Mask:255.255.255.0

inet6 addr: fe80::20c:29ff:fe7b:c651/64 Scope:Link

UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

RX packets:3488 errors:0 dropped:0 overruns:0 frame:0

TX packets:2810 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:1079817 (1.0 MiB)  TX bytes:363778 (355.2 KiB)

Interrupt:19 Base address:0x2000

发现问题所在了,客户端这边的网卡显示的是eth2,那么和这个到底有没有关系呢?

于是,我又再开了一台虚拟机,去连接服务端的pure-ftpd,果然是这个问题,在这台虚拟机上显示的网卡为eth0,所以,我觉得应该是网卡不匹配的原因,到此问题解决啦。

新开那台虚拟机:

[root@jinge ~]# ifconfig

eth0      Link encap:Ethernet  HWaddr 00:0C:29:A4:00:54

inet addr:192.168.226.3  Bcast:192.168.226.255  Mask:255.255.255.0

inet6 addr: fe80::20c:29ff:fea4:54/64 Scope:Link

UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

RX packets:39 errors:0 dropped:0 overruns:0 frame:0

TX packets:51 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:5374 (5.2 KiB)  TX bytes:6162 (6.0 KiB)

Interrupt:19 Base address:0x2000


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI