DirectAdmin官方曾在1.53.1版本中加入了Backup encryption功能BETA版本。
更新日志:https://www.directadmin.com/features.php?id=2117
很久之前我已经看到这个功能,但一直没有推出正式版本,所以一直没有在生产环境中加入该功能。
目前和官方沟通确认,确定备份加密功能足够稳定,已去掉BETA字样,但该功能目前为止还是默认关闭。
下面启用它
#定位到DirectAdmin目录
cd /usr/local/directadmin/
#为防止日后DirectAdmin在更新中默认启用该功能,我们先需要确认该功能是否已经启用。
./directadmin c |grep allow_backup_encryption
#如果没有返回 allow_backup_encryption=1 内容,则代表该功能未启用,可以继续执行下面的命令启用。
./directadmin set allow_backup_encryption 1
#重启DirectAdmin
service directadmin restart
在以下模板文件添加功能相关内容,路径 /usr/local/directadmin/data/skins/enhanced
admin/admin_backup.html
reseller/backups.html
admin/admin_backup_modify.html
reseller/backup_modify.html
#Added this below the append path tr:
|*if ALLOW_BACKUP_ENCRYPTION="1"|
<tr>
<td class=listtitle></td>
<td class=listtitle>
|LANG_BACKUP_ENCRYPTION|
</td>
</tr>
<tr>
<td></td>
<td>
<table cellpadding=0 cellspacing=1 width=100%>
<tr>
<td class=list align=right>|LANG_PASSWORD|:</td>
<td class=list>
<input type=password name='encryption_password' value="|encryption_password|" placeholder='|LANG_OMIT_NO_ENC|' autocomplete="new-password">
</td>
</tr>
</table>
</td>
</tr>
|*endif|
#and farther down for the restore, after the |FILES|</div>, add:
|*if ALLOW_BACKUP_ENCRYPTION="1"|
<table width=100% cellspacing=1 cellpadding=0>
<tr>
<td class=listtitle>
|LANG_BACKUP_DECRYPTION|
</td>
</tr>
<tr>
<td>
<table cellpadding=0 cellspacing=1 width=100%>
<tr>
<td class=list align=right>|LANG_PASSWORD|:</td>
<td class=list>
<input type=password name='encryption_password' value="|encryption_password|" autocomplete="new-password">
</td>
</tr>
</table>
</td>
</tr>
</table>
|*endif|
在style.css添加
.green_lock {
FONT-SIZE: 12pt;
color: transparent;
text-shadow: 0 0 0 #009900;
}
此时可以在管理后台看到加密功能了
可以在管理后台测试一遍加密/解密备份,压缩包文件后缀 .enc 就是加密文件。
如果不想在后台测试,可以使用官方提供的脚本手动加解密。
/usr/local/directadmin/scripts/encrypt_file.sh <filein> <encryptedout> <passwordfile>
/usr/local/directadmin/scripts/decrypt_file.sh <encryptedin> <fileout> <passwordfile>
使用方法:
先创建一个带密码的文件,用于加解密
vi /home/pw
准备一个备份文件 类似reseller.xxx.xxx.tar.gz
#加密
/usr/local/directadmin/scripts/decrypt_file.sh /home/admin/admin_backups/reseller.xxx.xxx.tar.gz /home/admin/admin_backups/reseller.xxx.xxx.tar.gz.enc /home/pw
#解密
/usr/local/directadmin/scripts/decrypt_file.sh /home/admin/admin_backups/reseller.xxx.xxx.tar.gz.enc /home/admin/admin_backups/reseller.xxx.xxx.tar.gz /home/pw
解压查看备份文件是否完好
cd /home/admin/admin_backups/
tar -zxvf reseller.xxx.xxx.tar.gz -C /tmp/
如果确认备份文件完整无误,就可以将该功能正式投入生产环境使用。