群晖Photo Station增加Google Authenticator认证

2021-03-14 00:39:29 47点赞 70收藏 17评论

最近向电信申请了公网ip,然后就把黑群晖通过路由的端口映射功能把NAS管理、PhotoStation 、NoteStation等一些常用的服务映射出公网去了,但是暴漏到公网就意味着可能受到攻击,于是乎又申请域名,ssh修改Nginx增加https证书,修改安全策略限制错误密码次数封锁ip,禁用admin账户设置超级复杂密码,增加Google Authenticator二次认证等等一系列操作后,最后看着浏览器的小锁标志、登录框中的二次认证登录心里仿佛感觉到了一些安全感。群晖Photo Station增加Google Authenticator认证

群晖Photo Station增加Google Authenticator认证

实际测试,Note Station、Surveillance Station等一些服务都是基于DSM账号安全管理的,当登录以上那些服务的时候会有密码错误限制和谷歌二次认证安全策略,但PhotoStation并不是的,这意味着如果你开放PhotoStation服务,就有可能面临暴力破解的隐患,发下这个事情的我首先想到的就是屏蔽PhotoStaion外网权限,一劳永逸。或者修改用户组,但还是会存在问题,因为PhotoStation仍然会存在一个DSM账号可以爆破登录,在我看来如果能加上和管理页面相同的Google Authenticator认证会让安全性增加不少。群晖Photo Station增加Google Authenticator认证

群晖Photo Station增加Google Authenticator认证

下面直接说操作了思路了

一、当你设置了控制面板-用户账户-高级设置-两步骤验证后就会在群晖下面的路径中/usr/syno/etc/preference/<你的账户名>/google_authenticator生成一个文件,使用cat命令将会看到几行文字,其中第一行的16个字符就是Google Authenticator的密钥,这里我们将其复制下来以备后用。

二、因为PhotoStation是用的PHP语言开发的,所以我们需要修改php代码,首先下载链接中的/PHPGangsta/GoogleAuthenticator.php文件将其复制到/var/packages/PhotoStation/target/photo/webapi目录中,GoogleAuthenticator.php是php实现的GoogleAuthenticator算法,这里我需要使用其校验方法。

三、修改页面表单,/var/packages/PhotoStation/target/photo/index.php,在122行出增加一行:

<input type="text" id="login_otpCode" name="otpCode" class="sbox-text login-input" />代码。

四、修改页面JS,/var/packages/PhotoStation/target/photo/photo_new/syno_photo_main.js,由于这个js是压缩文件,我建议将其复制出来,在idea、phpstrom、vscode任意一款代码编辑器中格式化代码一下,然后大约15400行左右增加如下代码

,{
hideLabel: true,
cls: "photo-login-password",
itemId: "otpCode",
xtype: "textfield",
width: 300,
inputType: "textfield"
},

然后顺着代码往下看,找到onClickLogin方法增加 e = this.getComponent("otpCode").getValue(); Ext.get("login_otpCode").dom.value = e; 相关代码,以保证表单提交会将谷歌验证发发动到php后台接口中。

五、最终我们要修改php接口,修改/var/packages/PhotoStation/target/photo/webapi/auth.php.在第六行require_once('../include/shared_album.php');下面增加require_once('GoogleAuthenticator.php');代码,然后找到Login方法,在第一个判断下面增加如下代码

if (!isset($_REQUEST['otpCode'])) {
return [false,'WEBAPI_ERR_BAD_REQUEST'];
}else{
$otpCode=$_REQUEST['otpCode'];
$ga = new PHPGangsta_GoogleAuthenticator();
$secret = 'xxxxxxxxxxxx';//密钥,改成你自己的
$checkResult = $ga->verifyCode($secret, $otpCode, 0);
if (!$checkResult) {
sleep(5);//校验失败 休眠5秒
return [false, WEBAPI_ERR_BAD_REQUEST];
}
}

到此修改结束,关闭群晖的ssh登录权限(养成好习惯),登录一下PhotoStation试一下。群晖Photo Station增加Google Authenticator认证

群晖Photo Station增加Google Authenticator认证

群晖Photo Station增加Google Authenticator认证 群晖Photo Station增加Google Authenticator认证 群晖Photo Station增加Google Authenticator认证 经测试完美融合了群晖原来的谷歌认证器。只能说安全性稍微增加了一下下,至于群晖会不会有什么其他漏洞就不得知了,但是从PhotoStation层面仿佛安全了不少。

群晖Photo Station增加Google Authenticator认证 本博文虽然短短几行字,但是实际操作稍微需要一点编程知识,并不适合所有人,权做给大家一点的改造思路吧。

展开 收起

Synology 群晖 DS224+ 双盘位NAS(赛扬J4125、2GB)

Synology 群晖 DS224+ 双盘位NAS(赛扬J4125、2GB)

2849元起

Synology 群晖 DS220+ 2盘位NAS (赛扬J4025、2GB)

Synology 群晖 DS220+ 2盘位NAS (赛扬J4025、2GB)

2179元起

Synology 群晖 DS920+ 4盘位 NAS存储(J4125、4GB)

Synology 群晖 DS920+ 4盘位 NAS存储(J4125、4GB)

2190.84元起

Synology 群晖 DS423+ 4盘位 NAS网络存储 (Intel四核 、无内置硬盘)

Synology 群晖 DS423+ 4盘位 NAS网络存储 (Intel四核 、无内置硬盘)

4099元起

Synology 群晖 DS1821+ 8盘位NAS (V1500B、4GB)

Synology 群晖 DS1821+ 8盘位NAS (V1500B、4GB)

8899元起

Synology 群晖 DS223j 双盘位 NAS网络存储服务器 私有云 智能相册 文件自动同步

Synology 群晖 DS223j 双盘位 NAS网络存储服务器 私有云 智能相册 文件自动同步

1549元起

Synology 群晖 DS923+ NAS网络存储服务器 标准无硬盘

Synology 群晖 DS923+ NAS网络存储服务器 标准无硬盘

4899元起

Synology 群晖 DS1821+ 8盘位 NAS(V1500B、4GB)

Synology 群晖 DS1821+ 8盘位 NAS(V1500B、4GB)

7196元起

Synology 群晖 DS720+ 双盘位NAS(J4125、2GB)

Synology 群晖 DS720+ 双盘位NAS(J4125、2GB)

4099元起

群晖(Synology)DS124单盘位NAS网络存储服务器私有云智能相册文件自动同步

群晖(Synology)DS124单盘位NAS网络存储服务器私有云智能相册文件自动同步

1399元起

Synology 群晖 DS218+ 2盘位 NAS网络存储服务器 京东云定制版(J3355、2GB)

Synology 群晖 DS218+ 2盘位 NAS网络存储服务器 京东云定制版(J3355、2GB)

暂无报价

synology群晖nas云存储ds920+中小型企业办公网络存储群辉家庭个人私有云盘四盘位NAS备份硬盘服务器ds918+(DS920+希捷企业级16T*4)

synology群晖nas云存储ds920+中小型企业办公网络存储群辉家庭个人私有云盘四盘位NAS备份硬盘服务器ds918+(DS920+希捷企业级16T*4)

13746元起

Synology 群晖 DS416 企业级 NAS网络存储

Synology 群晖 DS416 企业级 NAS网络存储

暂无报价

Synology 群晖 DS423 四核心 4盘位 NAS网络存储 私有云 照片自动备份

Synology 群晖 DS423 四核心 4盘位 NAS网络存储 私有云 照片自动备份

3199元起

Synology 群晖 DS420+ 4盘位NAS (赛扬J4025、2GB)

Synology 群晖 DS420+ 4盘位NAS (赛扬J4025、2GB)

3090元起

Synology 群晖 DS223 2盘位NAS(Realtek RTD1619B、2GB)

Synology 群晖 DS223 2盘位NAS(Realtek RTD1619B、2GB)

2299元起
17评论

  • 精彩
  • 最新
  • 不要开二次认证!!!我被玩死过两次了!!!别说我不会玩,我两台群晖,同样操作。前后两次二次认证失败~ 我特么都不知道为什么~ 后来我就全部关掉了。

    校验提示文案

    提交
    可以把ssh打开,但是公网屏蔽登录端口,只要保证能ssh登录进去删掉对应配置文件就能去掉二次验证吧

    校验提示文案

    提交
    我有一会因为系统时间不对,动态码一直验证不了,也是ssh解决,后来设置好邮箱,当备用。

    校验提示文案

    提交
    还有5条回复
    收起所有回复
  • 本来就是防君子的东西,搞那个ssl的锁证书有就行了

    校验提示文案

    提交
    确实,但是没有密码错误限制,就意味着有被爆破的可能性,加上这个就可以劝退一些初级小黑 无聊人士, [皱眉]

    校验提示文案

    提交
    收起所有回复
  • 一般个人的网站,,没啥攻击价值,***

    校验提示文案

    提交
    [皱眉] 其实我就是闲的 [抠鼻]

    校验提示文案

    提交
    收起所有回复
  • 1分钟内2次错误,封IP

    校验提示文案

    提交
    好像Photostation不在这个安全控制中 [观察]

    校验提示文案

    提交
    收起所有回复
  • 感觉复杂了,我最近想到的方案是nps中转,当然,这个是在我服务器是广电宽带。没有公网IP情况下,而且100m带宽,上传下载对等

    校验提示文案

    提交
  • 其实可以换一个思路。
    你有群晖,大概率也有软路由。用酸酸乳软件自带的ss服务器功能,通过全局代理访问内网,然后再访问群晖。这样就可以不暴露群晖的端口在公网了。

    校验提示文案

    提交
  • 足够长的密码,加上每天半夜自动重启路由器更换公网IP,足够了。

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关好价推荐
查看更多好价

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
70
扫一下,分享更方便,购买更轻松