CentOS9系统部署pure-ftp

本文档详细记录了在CentOS系统中安装Pure-FTPd以支持编码转换,解决Windows客户端上传文件时出现的乱码问题。主要步骤包括安装libiconv和pure-ftpd,配置虚拟用户,设置开机启动,以及调整防火墙规则。此外,还涉及SELINUX的关闭和FTP客户端的连接测试。
摘要由CSDN通过智能技术生成

        通过Windows客户端上传文件到CentOS出现乱码,在网上搜索一些资料之后,发现pure-ftp支持编码转换功能,所以研究了一下进行部署,在此记录一下安装过程,进行整理,也防止其他人踩坑。

        准备安装包libiconv-1.17.tar.gz和pure-ftpd-1.0.50.tar.gz

  • 安装libiconv

1、将包拷贝到/usr/local/src目录,并解压

$tar -xzvf libiconv-1.17.tar.gz

2、进入解压目录

$cd libiconv-1.17

3、进入解压目录,进行安装

$ ./configure --prefix=/usr/local

$ make

$ make install

4、完成之后进行确认

$iconv –help

看到如下内容,代表安装成功

Usage: iconv [OPTION...] [FILE...]

Convert encoding of given files from one encoding to another.

Input/Output format specification:

-f, --from-code=NAME encoding of original text

-t, --to-code=NAME encoding for output

Information:

-l, --list list all known coded character sets

5、将.so库链接到系统库目录

ln -s /usr/local/lib/libiconv.so.2 /usr/lib64/libiconv.so.2

ln -s /usr/local/lib/libiconv.so /usr/lib64/libiconv.so

ln -s /usr/local/lib/libiconv.so.2.6.1 /usr/lib64/libiconv.so.2.6.1

  • 安装pure-ftpd

1、安装编译工具包

yum install make gcc* gcc-c++ openssl openssl-devel bzip2 wget tar

2、下载pure-ftpd

cd /usr/local/src/

wget https://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.50.tar.gz

3、安装pure-ftpd

mkdir -p /usr/local/pureftpd  #创建安装目录

cd /usr/local/src/

tar zxvf pure-ftpd-1.0.50.tar.gz

cd pure-ftpd-1.0.50

./configure --prefix=/usr/local/pureftpd --with-everything CFLAGS=-O2 --with-puredb --with-quotas --with-cookie --with-virtualhosts --with-diraliases --with-sysquotas --with-ratios --with-altlog --with-paranoidmsg --with-shadow --with-welcomemsg --with-throttling --with-uploadscript --with-language=english --with-ftpwho --with-tls --with-rfc2640

make

make install

vi /etc/profile   #把pure-ftpd服务加入系统环境变量:在最后添加下面这一行

export PATH=$PATH:/usr/local/pureftpd/bin

4、配置pure-ftpd

4.1新建系统用户和组www,用户登录终端设为/sbin/nologin(即不能登录系统)

groupadd www

useradd -s /sbin/nologin -g www www

#此系统用户作为ftp虚拟用户的宿主用户

4.2创建FTP服务器虚拟用户访问目录

mkdir -p /data/ftp  #ftp虚拟用户主目录

mkdir -p /data/ftp/ftpuser  #ftp虚拟用户LgFtp的目录

chown  www.www  ftpuser02    -R  #设置ftp虚拟用户目录权限为宿主用户www所有

4.3创建虚拟用户

/usr/local/pureftpd/bin/pure-pw   useradd   LgFtp  -u  www  -d   /data/ftp/ftpuser

提示输入ftp虚拟用户密码:

Password:123123

Enter it again:123123

同样可以添加第二个用户

/usr/local/pureftpd/bin/pure-pw   useradd   ftpuser02  -u  www  -d  /data/ftp/ftpuser

-u选项将ftp虚拟用户和宿主用户www关联,虚拟用户登录后,会以宿主用户权限进行上传下载操作

-d选项后面是ftp虚拟用户的目录,每个ftp虚拟用户只能访问自己的目录

/usr/local/pureftpd/bin/pure-pw   mkdb  #生成虚拟用户数据文件

#虚拟用户数据存放文件

/usr/local/pureftpd/etc/pureftpd.passwd    #虚拟用户文件

/usr/local/pureftpd/etc/pureftpd.pdb         #虚拟用户数据文件

4.4修改pure-ftpd配置文件

mkdir -p /usr/local/pureftpd/var/run/  #创建进程文件存放目录

mkdir -p /usr/local/pureftpd/var/log/  #创建日志文件存放目录

vi   /usr/local/pureftpd/etc/welcome  #添加Pure-FTPd登录欢迎信息文件,内容可以自定义

Welcome to Pure-FTPd

:wq! #保存退出

mv /usr/local/pureftpd/etc/pure-ftpd.conf     /usr/local/pureftpd/etc/pure-ftpd.conf-bak   #备份配置文

可以用自己备的配置文件替换掉原来的配置文件。

或者vi   /usr/local/pureftpd/etc/pure-ftpd.conf  #编辑配置文件

加入如下内容:

ChrootEveryone               yes

BrokenClientsCompatibility   no

MaxClientsNumber             50

MaxClientsPerIP              8

VerboseLog                   no

DisplayDotFiles              yes

AnonymousOnly                no

SyslogFacility               ftp

DontResolve                  yes

MaxIdleTime                  15

LimitRecursion               10000 8

AnonymousCanCreateDirs       no

MaxLoad                      4

AntiWarez                    yes

Umask                        133:022

MinUID                       100

AllowUserFXP                 no

AllowAnonymousFXP            no

ProhibitDotFilesWrite        no

ProhibitDotFilesRead         no

AutoRename                   no

MaxDiskUsage                   99

CustomerProof                yes

#设置ftp端口,默认为21,0.0.0.0表示本机所有ip地址

Bind    0.0.0.0,21

#设置PureFTP被动端口

PassivePortRange   40000   40010

#禁止匿名用户上传文件( no表示允许上传)

AnonymousCantUpload    yes

#禁止匿名连接,仅允许认证用户连接

NoAnonymous   yes

#禁止系统用户认证

UnixAuthentication  no

#允许后台运行

Daemonize               yes

#虚拟用户数据文件

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

#进程文件

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

#日志文件

AltLog                   clf:/usr/local/pureftpd/var/log/pureftpd.log

#Pure-FTPd登录欢迎信息

FortunesFile         /usr/local/pureftpd/etc/welcome

#支持加密传输

#TLS                       2   

#加密证书路径

#CertFile              /usr/local/pureftpd/ssl/pure-ftpd.pem

:wq! #保存退出

5、设置开机启动

vi /usr/lib/systemd/system/pure-ftpd.service    #设置pureftpd开机启动

将如下内容加入文件:

[Unit]

Description=Pure-FTPd FTP server

After=syslog.target network.target

[Service]

Type=forking

ExecStart=/usr/local/pureftpd/sbin/pure-ftpd --fscharset=utf-8 --clientcharset=gb2312   /usr/local/pureftpd/etc/pure-ftpd.conf

ExecReload=/bin/kill -s HUP $MAINPID

ExecStop=/bin/kill -s QUIT $MAINPID

[Install]

WantedBy=multi-user.target

输入如下命令:

:wq! #保存退出

systemctl enable pure-ftpd   #添加开机启动

systemctl start pure-ftpd.service  #启动

systemctl stop pure-ftpd.service  #停止

systemctl restart pure-ftpd.service  #重启

6、防火墙设置

IPtables 的设置方式:

vi /etc/sysconfig/iptables
#编辑iptables文件,添加如下内容,开启21端口
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 4000:40010 -j ACCEPT


firewall 的设置方式:
firewall-cmd --zone=public --add-service=ftp --permanent



firewall-cmd --zone=public --add-port=21/tcp --permanent

firewall-cmd --zone=public --add-port=40000-40010/tcp –permanent

7、关闭SELINUX

#打开SELINUX配置文件
vim /etc/selinux/config
#修改配置参数
#注释  
#SELINUX=enforcing
#增加  
SELINUX=disabled

#修改完成后,需要重启!

8、使用ftp客户端进行连接

在Windows下使用ftp客户端软件(FileZilla、FlashFXP)连接ftp服务器

配置文件地址:pure-ftp配置文件-Linux文档类资源-CSDN下载

参考链接:CentOS 8.x/Rocky Linux 8.x编译安装配置Pure-FTPd服务器 | 系统运维

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值