centospure-ftpd使用

原创
小哥 3年前 (2022-11-02) 阅读数 54 #大杂烩

[root@bogon local]# id www

[root@bogon local]# id: www: no such user

[root@bogon local]# groupadd www

[root@bogon local]# groupadd: group www already exists

//开始添加www用户

[root@bogon local]# useradd -g www -s /sbin/nologin www

//再来看看吧

[root@bogon local]# id www

uid=1001(www) gid=1000(www) 组=1000(www)

centos pure-ftpd配置和错误解决方案

**使用yum安装pure-ftpd**

Pure-FTPd是Linux在开放源码上FTP服务程序,在易用性、可配置性方面vsftp更方便的是,我们使用下面。centos6演示安装和配置pure-ftpd。

**安装epel源**

yum install epel-release

**使用yum命令安装Pure-ftpd**

yum install pure-ftpd

**配置Pure-ftpd**

vim /etc/pure-ftpd/pure-ftpd.conf # 1. 修改

PAMAuthentication no # 2. 使用PureDB存储帐户信息,删除以前的评论 #

PureDB      /etc/pure-ftpd/pureftpd.pdb # 3. 打开ftp被动模式端口范围,并确认更改后的端口范围未被防火墙阻止。

PassivePortRange          30000 31000

ForcePassiveIP PASV的外网IP地址 # 4. 关闭匿名访问

AnonymousOnly no # 5. 启用日志记录

AltLog clf:/var/log/pureftpd.log # 6. 将每个用户限制为仅位于其自己的目录中。

ChrootEveryone  yes

**添加FTP用户**

ftptest是虚拟用户,不需要在系统中创建。
-u -g后跟系统用户帐户或id数字,通常使用游程nginx或apache的账号id
-d是默认的主目录

pure-pw useradd ftptest -u apache -g apache -d /var/www/blog/ftp -m

输入密码...

**保存Pure-FTPD用户数据库**

pure-pw mkdb

**使添加的用户生效**

service pure-ftpd start

**配置mysql管理pure-ftpd用户**

vim /etc/pure-ftpd/pure-ftpd.conf # 修改pure-ftpd.conf配置文件,删除MySQLConfigFile前

MySQLConfigFile               /etc/pure-ftpd/pureftpd-mysql.conf # PureDB                        /etc/pure-ftpd/pureftpd.pdb

vim /etc/pure-ftpd/pureftpd-mysql.conf

MYSQLServer 您的服务器的ip或者域名,注意防火墙

MYSQLPort mysql服务器的端口

创建pureftpd数据库,并创建一个表,表结构如下,本人只使用账号密码功能,如果需要使用带宽限制,访问限制可以使用其他字段,同时进行修改。pureftpd-mysql.conf相应的配置。

CREATE DATABASE ftpdb;

CREATE TABLE users ( User varchar ( 16 ) NOT NULL default , status enum( 0 , 1 ) NOT NULL default 0 , Password varchar ( 64 ) NOT NULL default ,

Uid varchar ( 11 ) NOT NULL default -1 ,

Gid varchar ( 11 ) NOT NULL default -1 ,

Dir varchar ( 128 ) NOT NULL default ,

ULBandwidth smallint ( 5 ) NOT NULL default 0 ,

DLBandwidth smallint ( 5 ) NOT NULL default 0 , comment tinytext NOT NULL ,

ipaccess varchar ( 15 ) NOT NULL default * ,

QuotaSize smallint ( 5 ) NOT NULL default 0 ,

QuotaFiles int ( 11 ) NOT NULL default 0 ,

PRIMARY KEY ( User ), UNIQUE KEY User ( User )

);

INSERT INTO tp ( User , status , Password , Uid , Gid , Dir , ULBandwidth , DLBandwidth , comment , ipaccess , QuotaSize , QuotaFiles ) VALUES ( ftpuser , 1 , MD5 ( secret ), 2001 , 2001 , /home/ftpdir , 0 , 0 , , * , 0 , 0 );

**日志文件配置**

1)建立文件 /var/log/pureftpd.log (由于安全机制问题,log文件只能放置在/var/log目录,放在其他地方不能正常记录)

2)修改 /etc/rsyslog.conf

1.在这行的 cron.none 后面添加 ;ftp.none 使ftp日志信息是私有的。
.info;mail.none;authpriv.none;cron.none /var/log/messages

.info;mail.none;authpriv.none;cron.none;ftp.none /var/log/messages

2.在 /etc/rsyslog.conf 文档最终被添加
3.重启 syslogd 服务 service rsyslog restart

立即设置,重启下pure-ftpd,现在在客户端登录ftp您可以看到日志记录

rsyslog服务了解 : http://www.linuxidc.com/Linux/2017-02/140484.htm

另外:pure-ftpd配置文件中有日志选项的配置项。

=[pure-ftpd.conf日志选项]==============

If you want to log all client commands, set this to "yes".
This directive can be duplicated to also log server responses.
如果要记录所有操作记录,如刷新列表、录入目录日志等,则需要设置值yes

VerboseLog no

If you want to add the PID to every logged line, uncomment the following
line.
如果要将当前的pure-ftpd的pid,设置该值yes,否则将其注释掉

LogPID yes

不启用AltLog选项,保留所有AltLog评论状态
AltLog clf:/var/log/pureftpd.log

**pureftp日志**

ftp.* -/var/log/pureftpd.log

注意: 不要去掉/var前面的-号,否则,日志将被录入。/var/log/messages 与 /var/log/purefpd.log每一份各一份. 添加了-号,它将只被记录在/var/log/purefptd.log内

**常见错误及解决方案**

登录返回 530错误

tail -f /var/log/message在查看错误日志后,发现它是Authentication failed for user。

此错误是由帐户身份验证失败引起的。你没有打开它PureDB函数,我正在使用PureDB存储帐户密码,您还可以配置mysql存储,打开后重启服务器。

使用ftp软件连接成功后,目录读取失败。

第一步:pure-ftpd它支持被动模式连接。被动模式连接要求服务器打开随机端口。首先尝试它是否可以在活动模式下连接。我用它Filezilla软件(通常由客户端软件支持)。如果可以连接,一般原因是服务器上的随机端口被防火墙拦截。

第二步:cat /proc/sys/net/ipv4/ip_local_port_range该文件,这是tcp的保留端口配置,如果设置为其他,则检查您设置的端口范围是否在该范围内

查看配置 PassivePortRange 端口范围并将防火墙配置为通过。

**日志查看**

pure-ftpd访问日志都在/var/log/pureftpd.log在下,上传、下载、删除文件都会记录在日志中。

**ftp主动模式(port)使用被动模式(pasv)**

**主动模式**

积极主动的方式FTP方法如下:客户端来自任意的非特权端口。N(N>1024)连接到FTP服务器的命令端口,即21港口。然后,客户端开始侦听该端口N+1,并发送FTP命令“port N+1”到FTP伺服器。然后服务器将从它自己的数据端口(20)连接到客户端指定的数据端口(N+1)。

**被动模式**

当打开一个 FTP在连接时,客户端打开两个任意的非特权本地端口(N > 1024和N+1)。第一个端口连接到服务器。21端口,但与积极主动的方式FTP与之不同的是,客户端不会提交PORT命令并允许服务器来回连接其数据端口,但提交。 PASV指挥部。这样做的结果是服务器将打开任意的非特权端口(P > 1024),并发送PORT P命令发送给客户端。然后,客户端从本地端口启动。N+1端口到服务器P该连接用于传输数据。

**总结**

主动模式:服务器敲打客户端,然后客户端打开门(随机打开一个高端口)
被动模式:客户端敲打服务器,然后服务器打开门(随机打开一个高端口,pure-ftpd配置项为PassivePortRange)

**优缺点**

主动FTP对FTP服务器的管理是有利的,但不利于客户端的管理。因为FTP服务器尝试与客户端的高级随机端口建立连接,该端口可能会被客户端的防火墙阻止。被动性FTP对FTP客户端的管理是有益的,但不是在服务器端。因为客户端要与服务器端建立两个连接,其中一个连接到一个高级随机端口,很可能会被服务器端的防火墙拦截。

幸运的是,双方达成了妥协。自.以来FTP服务器管理员需要他们的服务器拥有最多的客户连接,因此他们必须支持被动FTP。我们可以通过FTP服务器指定一个 限制端口范围,以减少服务器高端口的暴露。这样,任何不在此范围内的端口都将被服务器的防火墙阻止。虽然这并不能消除服务器的所有风险,但它大大降低了危险 险。

版权声明

所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除

热门