写给像我这样的新手的FTPS (FTP over SSL)教程 (Debian)

虽然WordPress已经可以不依赖FTP,但FTP作为一个简单而常用的基本服务,还是有必要写一个教程。但是呢,FTP不安全!FTP不安全!FTP不安全!重要的事情说三遍。WordPress是支持FTPS的,其他也有很多支持FTPS的客户端,其实FTP over SSL的名称有很多,FTPS (FTPES, FTP-SSL, S-FTP, FTP Secure),各种叫法,都是指的这东西,知道是一回事儿就行。
FTPS的服务器端似乎有不少,不过还是推荐大名鼎鼎的vsftpd,首先是安装。

apt-get install vsftpd

然后进行配置,我还是用vi,你们文本编辑器随意,自己习惯就好。

vi /etc/vsftpd.conf

找到以下几行,改成如下所示,有几行去掉备注就好。

anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES

保存并退出。然后创建FTP用户,用户名随意,这里用的ftpuser1,改成自己设定的

adduser ftpuser1

按照要求输入用户的密码,不要留空。
这个时候要设置FTP的主目录。首先更改FTP主目录所有者为root。

chown root:root /home/ftpuser

在主目录下为ftpuser1创建一个文件目录,并将该目录的所有者设置为ftpuser1

mkdir /home/ftpuser/files
chown ftpuser1:ftpuser /home/ftpuser/ftpuser1

虽然不是必须,但有些人可能会为WordPress创建一个FTP用于更新、下载插件和主题等,我以前也是这样做的。如果你是为WordPress配置FTP,需要在wp-config.php里面加如下代码,但不推荐

if( is_admin() ) {
 add_filter( 'filesystem_method', create_function( '$a', 'return "direct";' ) );
 define( 'FS_CHMOD_DIR', 0751 );
}

这时,实际上已经可以用FTP了,但是,FTP不安全!FTP不安全!FTP不安全!重要的事情再说三遍。下面为FTP设置SSL。这里默认你已经申请到了可以用的证书,具体如何申请证书改天再写一篇吧。为了方便管理证书,先创建一个放置证书的文件夹。

mkdir /etc/ssl/private/

可能有些系统上已经有这个文件夹了,那就直接下一步。创建一个证书文件,这里还是用vi。

vi /etc/ssl/private/vsftpd.pem

把申请到的证书连同CA的中间证书先后贴进去做成证书链,有些CA会给你做好打包证书,那就直接贴就行了。
然后创建私钥文件ssl.key,把申请证书用的私钥贴进去。

vi /etc/ssl/private/ssl.key

注意如果私钥是被加密过的,这里要解密,解密后命名为vsftpd.key,当然,这两个文件名都可以任意,只要后面配置的路径和文件名对就行。

openssl rsa -in /etc/ssl/private/ssl.key -out /etc/ssl/private/vsftpd.key

接下来编辑vsftpd的配置文件。

vi /etc/vsftpd.conf

在文件的最后那里找到下面这行,改成如下所示。

rsa_cert_file=/etc/ssl/private/vsftpd.pem

然后再在文件最后添加这些内容。

rsa_private_key_file=/etc/ssl/private/vsftpd.key
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
require_ssl_reuse=NO
ssl_ciphers=HIGH

最后重启一下vsftpd服务。

service vsftpd restart

到这里FTPS就可以用了,你可以用支持SSL的FTP客户端连接你的FTP。
而对于WordPress,如果你选择使用FTP来管理文件,接下来要做的就是去网站后台把刚才设置的FTP的地址、用户名和密码维护进去,然后就可以直接在页面上进行更新,安装插件、主题等操作了。


评论

发表评论