返回列表 发帖

CentOS8_PureFTPd虚拟用户验证

操作系统的版本:
[root@centos8 ~]# cat /etc/redhat-release
CentOS Linux release 8.2.2004 (Core)
[root@centos8 ~]#
[root@centos8 ~]# uname -r
4.18.0-193.el8.x86_64


下载pure-ftpd-1.0.47.tar.gz:https://pan.baidu.com/s/1BabTr2PzXzTdmBGLE53HwQ


安装依赖软件包:
yum -y install gcc gcc-c++ autoconf automake make
dnf -y install zlib zlib-devel openssl openssl-devel pcre pcre-devel

编译安装:
tar -zxvf pure-ftpd-1.0.47.tar.gz && cd pure-ftpd-1.0.47
./configure --prefix=/usr/local/pureftpd --without-inetd --with-altlog --with-puredb --with-throttling --with-peruserlimits --with-tls
make && make install


修改PureFTPd的配置文件:(可拿以下代码直接覆盖原文件,记得去掉注释)
[root@centos8 ~]# cat /usr/local/pureftpd/etc/pure-ftpd.conf |grep -v ^# |grep -v ^$
ChrootEveryone               yes
BrokenClientsCompatibility   no
MaxClientsNumber             50
Daemonize                    yes
MaxClientsPerIP              8
VerboseLog                   no
DisplayDotFiles              yes
AnonymousOnly                no
NoAnonymous                  yes  #不允许匿名用户
SyslogFacility               ftp
DontResolve                  yes
MaxIdleTime                  15
PureDB /usr/local/pureftpd/etc/pureftpd.pdb
LimitRecursion               10000 8
AnonymousCanCreateDirs       no
MaxLoad                      4
PassivePortRange             9000 9045  #开放的端口
AntiWarez                    yes
Umask                        133:022
MinUID                       100
AllowUserFXP                 no
AllowAnonymousFXP            no
ProhibitDotFilesWrite        no
ProhibitDotFilesRead         no
AutoRename                   no
AnonymousCantUpload          yes
CreateHomeDir                yes
MaxDiskUsage                   99
CustomerProof                yes
IPV4Only                     yes




启动PureFTPd服务:
[root@centos8 ~]# /usr/local/pureftpd/sbin/pure-ftpd /usr/local/pureftpd/etc/pure-ftpd.conf

[root@centos8 ~]# ps -ef |grep pure-ftpd |grep -v grep
root       21062       1  0 15:48 ?        00:00:00 /usr/local/pureftpd/sbin/pure-ftpd /usr/local/pureftpd/etc/pure-ftpd.conf
[root@centos8 ~]# echo $?
0
[root@centos8 ~]#
[root@centos8 ~]# pgrep -l pure-ftpd
21062 pure-ftpd
[root@centos8 ~]# echo $?
0




关闭PureFTPd服务:
[root@centos8 ~]# killall -9 pure-ftpd
-bash: killall: 未找到命令

[root@centos8 ~]# yum -y install psmisc

[root@centos8 ~]# killall -9 pure-ftpd
[root@centos8 ~]#
[root@centos8 ~]# ps -ef |grep pure-ftpd |grep -v grep
[root@centos8 ~]# echo $?
1
[root@centos8 ~]# pgrep -l pure-ftpd
[root@centos8 ~]# echo $?
1




检测PureFTPd的监听端口:(PureFTPd服务运行时)
[root@centos8 ~]# netstat -anp |grep pure-ftpd
-bash: netstat: 未找到命令

[root@centos8 ~]# dnf -y install net-tools

[root@centos8 ~]# netstat -anp |grep pure-ftpd
tcp        0      0 0.0.0.0:21              0.0.0.0:*               LISTEN      21609/pure-ftpd     
unix  2      [ ]         DGRAM                    51980    21609/pure-ftpd      
unix  3      [ ]         STREAM     CONNECTED     51983    21609/pure-ftpd      
[root@centos8 ~]# echo $?
0

检测PureFTPd的监听端口:(PureFTPd服务关闭时)
[root@centos8 ~]# netstat -anp |grep pure-ftpd
[root@centos8 ~]# echo $?
1




创建一个真实的系统用户:
useradd -d /home/pure -s /sbin/nologin pure


创建FTP目录:
mkdir -p /www/web
chmod -R 777 /www/web/


添加FTP虚拟用户(zhuohua),并指定其FTP目录:
/usr/local/pureftpd/bin/pure-pw useradd zhuohua -u pure -d /www/web/
图片1.png
2020-10-10 22:45

注释:要自定义FTP虚拟用户zhuohua的密码


每添加一个新的FTP虚拟用户后,都要重新生成数据库文件:
[root@centos8 ~]# /usr/local/pureftpd/bin/pure-pw mkdb
[root@centos8 ~]#
[root@centos8 ~]# ls -lh /usr/local/pureftpd/bin/pure-pw
-rwxr-xr-x. 1 root root 158K 10月 10 15:45 /usr/local/pureftpd/bin/pure-pw



pure-ftpd开启日志功能:(要重启服务器才生效)
[root@centos8 ~]# vi /etc/rsyslog.conf

*.info;mail.none;authpriv.none;cron.none   /var/log/messages
修改为:
*.info;mail.none;authpriv.none;cron.none;ftp.none /var/log/messages

文件后面追加:
ftp.*      /var/log/pureftpd.log


创建pure-ftpd的日志文件:
[root@centos8 ~]# touch /var/log/pureftpd.log
[root@centos8 ~]# chmod 777 /var/log/pureftpd.log





打开防火墙(firewalld)以下端口:( TCP 21、9000-9045 )
firewall-cmd --zone=public --add-port=21/tcp --permanent
firewall-cmd --zone=public --add-port=9000-9045/tcp --permanent
firewall-cmd --reload


查看Firewalld的配置文件:
[root@centos8 ~]# cat /etc/firewalld/zones/public.xml
<?xml version="1.0" encoding="utf-8"?>
<zone>
  <short>Public</short>
  <description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description>
  <service name="ssh"/>
  <service name="dhcpv6-client"/>
  <service name="cockpit"/>
  <port port="21" protocol="tcp"/>
  <port port="9000-9045" protocol="tcp"/>

</zone>




######

软件winscp的下载链接:https://pan.baidu.com/s/1lXa21_RrPjSPnxALZbPhGw

WinSCP是常用的FTP、SFTP客户端软件,这里使用的文件协议为 FTP
图片2.png
2020-10-10 22:47



图片3.png
2020-10-10 22:47



至此,上传、下载都是没有问题的;对于/www/web/里面的所有内容,zhuohua具有完全控制的权限:
图片4.png
2020-10-10 22:48



查看PureFTPd的日志:
[root@centos8 ~]# cat /var/log/pureftpd.log
Oct 10 16:15:15 centos8 pure-ftpd[1579]: (?@192.168.168.159) [INFO] New connection from 192.168.168.159
Oct 10 16:15:15 centos8 pure-ftpd[1579]: (?@192.168.168.159) [INFO] zhuohua is now logged in
Oct 10 16:17:24 centos8 pure-ftpd[1579]: (zhuohua@192.168.168.159) [INFO] Can't change directory to /dir1/: No such file or directory
Oct 10 16:17:24 centos8 pure-ftpd[1579]: (zhuohua@192.168.168.159) [NOTICE] /www/web//dir1/.bash_logout uploaded  (20 bytes, 9.85KB/sec)
Oct 10 16:17:24 centos8 pure-ftpd[1579]: (zhuohua@192.168.168.159) [NOTICE] /www/web//dir1/.bash_profile uploaded  (188 bytes, 199.55KB/sec)
Oct 10 16:17:24 centos8 pure-ftpd[1579]: (zhuohua@192.168.168.159) [NOTICE] /www/web//dir1/2.txt uploaded  (5 bytes, 5.18KB/sec)
Oct 10 16:17:24 centos8 pure-ftpd[1579]: (zhuohua@192.168.168.159) [NOTICE] /www/web//dir1/my_private_key.ppk uploaded  (1460 bytes, 59.40KB/sec)
Oct 10 16:17:24 centos8 pure-ftpd[1579]: (zhuohua@192.168.168.159) [NOTICE] /www/web//dir1/zabbix.conf.php uploaded  (415 bytes, 487.20KB/sec)
Oct 10 16:17:25 centos8 pure-ftpd[1579]: (zhuohua@192.168.168.159) [NOTICE] /www/web//FlashFXP-v3.51.1200H.zip uploaded  (3412982 bytes, 6718.68KB/sec)

Oct 10 16:19:51 centos8 pure-ftpd[1579]: (zhuohua@192.168.168.159) [NOTICE] /www/web//dir1/.bash_logout downloaded  (20 bytes, 81.35KB/sec)
Oct 10 16:19:51 centos8 pure-ftpd[1579]: (zhuohua@192.168.168.159) [NOTICE] /www/web//dir1/.bash_profile downloaded  (188 bytes, 296.17KB/sec)
Oct 10 16:19:51 centos8 pure-ftpd[1579]: (zhuohua@192.168.168.159) [NOTICE] /www/web//dir1/2.txt downloaded  (5 bytes, 11.93KB/sec)
Oct 10 16:19:51 centos8 pure-ftpd[1579]: (zhuohua@192.168.168.159) [NOTICE] /www/web//dir1/my_private_key.ppk downloaded  (1460 bytes, 8147.36KB/sec)
Oct 10 16:19:51 centos8 pure-ftpd[1579]: (zhuohua@192.168.168.159) [NOTICE] /www/web//dir1/zabbix.conf.php downloaded  (415 bytes, 1949.36KB/sec)
Oct 10 16:19:51 centos8 pure-ftpd[1579]: (zhuohua@192.168.168.159) [NOTICE] /www/web//FlashFXP-v3.51.1200H.zip downloaded  (3412982 bytes, 92505.83KB/sec)

注释:uploaded为客户端上传东西到服务器;downloaded为客户端从服务器下载东西。






修改某个FTP虚拟用户的密码:
/usr/local/pureftpd/bin/pure-pw passwd zhuohua
图片5.png
2020-10-10 22:49


每次修改完FTP虚拟用户的密码,都要重新生成数据库文件:
[root@centos8 ~]# /usr/local/pureftpd/bin/pure-pw mkdb







###
再添加一个FTP虚拟用户(happy),并指定其FTP目录:
/usr/local/pureftpd/bin/pure-pw useradd happy -u pure -d /www/web2/
图片8.png
2020-10-10 22:56



每添加一个新的FTP虚拟用户后,都要重新生成数据库文件:
[root@centos8 ~]# /usr/local/pureftpd/bin/pure-pw mkdb


再创建一个FTP目录:
mkdir -p /www/web2
chmod -R 777 /www/web2/

备注:对于/www/web2/里面的所有内容,happy具有完全控制的权限。


###
查看一下FTP虚拟用户列表文件:
[root@centos8 ~]# cat /usr/local/pureftpd/etc/pureftpd.passwd
zhuohua:$2a$08$LseHAgOBPgm0FWzFdq48EuPgdMnW9PgpHC4wPvZIfYYYMjGobe/Bu:1000:1000::/www/web/./::::::::::::
happy:$2a$08$VUhrXXWUgEXsiEEYWsh0EuHB554GyvV2XbOTPw8nyDbIbMudTosqi:1000:1000::/www/web2/./::::::::::::


###
查看某个FTP虚拟用户的信息:
/usr/local/pureftpd/bin/pure-pw show happy
图片6.png
2020-10-10 22:51




笺注:
FTP虚拟用户可以上传、下载、删除文件夹、文件等等,上传的文件、文件夹的属主和属组都是pure
不同的FTP虚拟用户可以有自己的FTP目录,也可以共用一个FTP目录
图片7.png
2020-10-10 22:52




删除某个FTP虚拟用户:
/usr/local/pureftpd/bin/pure-pw userdel happy
/usr/local/pureftpd/bin/pure-pw mkdb




相关文章:
CentOS8_将PureFTPd添加为标准系统服务
CentOS6_PureFTPd虚拟用户验证

CentOS8防火墙(firewalld)
CentOS8_vsftpd虚拟用户

Zabbix使用SNMP监控CentOS7/Redhat7

返回列表