CentOS从零开始配置PureFTP

C 2019-2-23 2057

不多说了,又一个网上教程基本都是坑,没法用的。

我这里发一个自己亲自配置可用的,不是网上那种胡乱转载没屁眼的教程。


【基础安装】

yum install pure-ftpd

#安装pureftp

groupadd ftpgroup

#添加用户组(这样可以确保gid>=1000)

useradd ftpuser -g ftpgroup -d /home/ftp -s /sbin/nologin

#添加用户

sed -i 's/# PureDB/PureDB/g' /etc/pure-ftpd/pure-ftpd.conf

#启用PureDB(必须用它来配置用户)

sed -i 's/# PassivePortRange/PassivePortRange/g' /etc/pure-ftpd/pure-ftpd.conf

#启用被动模式(主动模式问题多)

systemctl enable pure-ftpd && systemctl start pure-ftpd

#启用PureFTP并添加到自启动

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

#防火墙放行21端口(通讯端口)

firewall-cmd --permanent --zone=public --add-port=30000-50000/tcp

#防火墙放行30000-50000端口(被动模式默认的随机端口)

systemctl restart firewalld

#重启防火墙使规则生效


【添加用户】

pure-pw useradd abc -u ftpuser -g ftpgroup -d /www/abc

#添加一个登录名为abc的FTP账户,并设置其可用目录为/www/abc,按照提示输入密码

pure-pw mkdb && systemctl restart pure-ftpd

#保存数据库并重启PureFTP生效


【删除用户】

pure-pw userdel abc

#删除用户abc

pure-pw mkdb && systemctl restart pure-ftpd

#保存数据库并重启PureFTP生效


【更改密码】

pure-pw passwd abc

#修改用户abc的密码

pure-pw mkdb

#保存数据库并重启PureFTP生效


【顺便提醒】

建立用户目录后,必须将目录设置可写(777),这样用户才能上传文件。

PHP中的.user.ini防跨站配置,在FTP管理中可被删除,导致威胁存在。

建议在Nginx网站配置文件中,server段中PHP的部分:

    location ~* \.php$ {
        include fastcgi_params;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_param SCRIPT_FILENAME $request_filename;
        fastcgi_param PHP_VALUE "open_basedir=$document_root:/tmp/:/proc/";
    }

结尾如上所示加入:

fastcgi_param PHP_VALUE "open_basedir=$document_root:/tmp/:/proc/";

可以起到.user.ini同样的效果。

Apache请自行研究,我也不知道。

最新回复 (0)
返回
发新帖