在上一期我们说到了使用wordpress通过ftp协议对wordpress程序更新,插件更新、下载等功能。但是并没有说到通过配置vsftpd来实现ftp,这周我们说说vfstpd普通玩法!
对于vsftpd我来首先说说ftp协议,ftp协议默认监听的端口为21号端口,这个想必大家都知道,但是在传送数据的时候可不是在21号端口上进行传输。这里就是涉及到ftp数据传输的分类了。数据传输分为:
- 命令连接:文件管理类命令,始终在线的链接
- 数据连接:数据传输,按需创建及关闭的链接
既然ftp的协议这么奇葩,竟然传送数据和指令接收都是不同位置。那么接下来我们看看ftp的两种模式:(竟然还有模式,看上去挺复杂的样子!)
- 主动模式:由服务器创建连接:
命令连接:客户端主动连接
client 50000随机端口→server 21端口
数据连接:server传输到client
server:20→client 50000++的随机端口 - 被动模式:由客户端创建链接:
命令连接:由客户端主动连接:
client:50000随机端口→server:21
数据连接:由客户端接受服务器端的数据
server随机端口→client 50000+1随机端口
总而言之、言而总之,反正ftp就是这么奇葩谁叫它有着这么古老的协议呢?不过对于ftp相信现在在公司共享也会经常用到,毕竟比QQ传输或者拿着U盘插来插去要方便的多,而且聪明的多!
下面来说说除了vsftpd这个程序可以支持ftp协议,毕竟还得有其他程序也支持ftp协议作为服务器端的程序!
比如:proftpd(强大ftp)、pureftp(纯净的ftp)、vsftpd:(very secure ftp安全的ftp)、servu
好吧关于强大的和纯净的ftp没有安全的ftp好,因为他们不支持ssl安全方式传输数据!
说完毕了ftp基础知识,下面我们就结合一个示例来看看配置vsftpd让wordpress基于ftp格式进行更新!
对了在案例之前我得说说关于vsftpd用户认证(三种):
- 匿名用户:顾名思义就是不用输入账号密码就可以登陆而且传输数据!
- 系统用户:也是顾名思义使用/etc/psswd文件中的用户进行登陆,不过有个坏处就是默认情况系统用户可以直接进入任何目录…比如/etc、/var等关键的文件夹。
- 虚拟用户:当然是自己创造的用户,通过数据库、文本文件定义的账号密码。当然如果需要数据库来存储账号密码的话,还需要一个小小pam的模块!
接下来的示例来看看如果使用系统账号来配置wordpress的ftp功能:
首先需要的虚拟机只要一台足以,然后也不用编译安装只需要yum安装apache、php、php-mysql、mariadb即可。并且帮助apache打开rewrite模块,不开也可以具体可以看看wordpress的需求文档!
关于需求安装我也就不多说了,对了别忘了安装vsftpd这个程序!安装应该是这样地:yum install -y httpd php php-mysql mariadb-server vsftpd
接下来看看vsftpd的配置文件:
关于主要的配置文件在/etc/vsftpd/vsftpd.conf
里面包含许多的选项可以选择,大多数都有英文的配置注解,对英文好的同学来说不是啥问题!不过大范围的框架包含如下几个:
匿名用户的设置:
- anonymous_enable=YES|NO 是否允许匿名用户?
- anon_upliads_enable=YES|NO 是否允许匿名用户上传文件?
- anon_mkdir_write_enable=YES|NO 是否允许匿名用户添加目录?
- anon_other_write_enabke=YES|NO 是否允许匿名用户有其他写权限?(如删除等)
对于匿名用户来说如果企业中有共享需要的话可以设置,如果在你自己的VPS网站我强烈推荐将匿名用户登录选择”NO”
当然还有系统用户的设置、日志。我就不一一叙说了,我发张图可以参考我的实验配置:
我的实验设置就是这么玩的,将所有用户锁定在家目录中比较合适。不然可以cp你的系统文件,那该多危险?
vsftpd就算配置完毕了,(还有创建一个系统用户这个待会配置)接下来该配置wordpress了:
首先打开httpd的配置文件,随后:
注释掉DocumentRoot的主机,然后定义虚拟主机:
定义虚拟主机在/etc/httpd/conf.d下面自己创建一个文件即可,然后我这边定义了日志所以还得创建一个文件夹:
然后再配置wordpress,首先下载wordpress的安装包,请在wordpress中下载并且解压到你指定的虚拟主机的目录下:
随后修改wordpress中config.php文件:
上面有中文根据提示来填写,不过我数据库还没有进行初始化所以没有密码,(偷个懒嘿嘿!)然后注意的是在生产环境中不要使用root账号密码写在上面,应该使用其他用户并且授权一个数据库的权限即可!对咯还没有创建数据库呢!来创建一个wordpress的数据库:
对了在创建之前请启动数据库:systemctl start mariadb
现在看看LAMP能不能进行访问:(别忘了启动httpd)
成功搞定,对了上面的地址我做了端口映射!随后就是创建一个专门的vsftpd系统账户并且将家目录设定为wordpress的根目录,并且将wordpress目录的属主属组修改为该用户:
我忘记了一件事情指定系统用户的家目录最好不要事先存在…这回又很多文件没拷贝进去…不过没关系我们只是那它当FTP使用!
修改完毕属主属组以后应该这样的。最后我们开启vsftpd程序然后设定wordpress的ftp账户!使用systemctl start vsftpd
然后进入wordpress配置:比如我现在升级一个主题
填写如下信息,对了我们刚刚创建的用户还没有密码,别忘了使用passwd wordpress添加一个密码!
输入账号密码和主机名后即可更新:
最后看看安全:
看到了不?用户的家目录就是根所以哪里也去不了了!
Comments