Synology web共享文件夹保护教程:Apache + .htaccess 阻止未授权访问

在使用Synology NAS搭建web服务时,web共享文件夹的安全防护是重中之重——若未做权限限制,外部访客或内部无权限用户可能随意访问敏感文件(如配置文件、私密数据),导致信息泄露。本文基于Synology官方解决方案,详细拆解通过Apache HTTP服务器与.htaccess文件实现web文件夹权限管控的完整流程,适用于DSM 6.2至7.2全版本,帮助管理员快速搭建多层级访问防护体系。


一、核心原理:为什么选择Apache + .htaccess保护方案?

Synology web共享文件夹默认支持多种HTTP后端服务器,而Apache服务器的.htaccess文件具备“目录级权限控制”特性,可精准限制特定文件夹的访问权限,无需修改NAS系统全局配置。其核心逻辑为:

1. 通过Apache作为HTTP后端服务器,启用.htaccess解析功能;

2. 在目标文件夹创建.htaccess配置文件,指定身份验证规则;

3. 生成加密密码文件,仅允许授权用户(如admin、alex)通过账号密码访问;

4. 构建“密码管理文件夹+目标防护文件夹”的双层防护,确保权限管理安全。


该方案优势在于:操作灵活(无需重启NAS)、权限精准(可按文件夹单独配置)、兼容性强(支持多DSM版本),是保护web共享文件夹的最优方案之一。


二、前置准备:3项基础条件确认

在开始配置前,需确保以下条件已满足,避免后续操作失败:

1. 硬件与系统要求:Synology NAS支持安装Apache套件(如DS220+、DS920+等主流机型),DSM版本为6.2、7.0、7.1或7.2(不同版本操作路径略有差异);

2. 软件准备:已安装“Web Station”套件(默认自带,可在套件中心确认),后续需下载Apache HTTP Server套件;

3. 权限准备:拥有DSM管理员账号(需修改系统设置、创建文件及SSH登录权限);

4. 工具准备:Linux计算机(或Windows安装SSH工具如Putty、Xshell),用于通过SSH创建密码文件。


三、步骤1:安装并切换Apache为HTTP后端服务器(分DSM版本操作)

Synology web服务默认可能使用Nginx作为后端服务器,需先安装Apache并切换为默认后端,确保.htaccess文件能正常生效。


3.1 安装Apache HTTP Server套件

1. 登录Synology DSM系统(访问地址:https://NAS_IP:5001),输入管理员账号密码;

2. 在DSM主界面点击【套件中心】,进入套件搜索页面;

3. 在搜索框输入“Apache”,找到“Apache HTTP Server 2.4”(或对应最新版本),点击【安装】,等待安装完成(约1-2分钟,需确保NAS联网);

4. 安装完成后,在【已安装】列表中确认Apache状态为“已运行”。


3.2 切换HTTP后端服务器(分DSM版本详细操作)

表1:不同DSM版本切换操作路径对比

| DSM版本       | 操作路径                                                                 | 关键步骤                                                                 |

|--------------|--------------------------------------------------------------------------|--------------------------------------------------------------------------|

| 7.2 及以上   | 【Web Station】→【Web服务】→ 选择“默认服务门户”→ 点击【编辑】             | 在“HTTP后端服务器”下拉菜单中选择“Apache HTTP Server 2.4”,点击【保存】   |

| 7.0 / 7.1    | 【Web Station】→【Web服务门户】→ 选择“默认服务器门户”→ 点击【编辑】       | 同7.2版本,下拉选择Apache后保存                                          |

| 6.2          | 【Web Station】→【常规设置】→ 找到“HTTP后端服务器”下拉菜单                | 选择“Apache HTTP Server 2.4”,点击【应用】                               |


具体操作步骤(以DSM 7.2为例)

1. 安装完成Apache后,返回DSM主界面,打开【Web Station】套件;

2. 在左侧菜单栏点击【Web服务】,进入服务配置页面;

3. 在“服务门户列表”中,找到“默认服务门户”(通常绑定web共享文件夹),点击右侧【编辑】按钮;

4. 弹出编辑窗口后,找到“HTTP后端服务器”选项(下拉菜单默认可能为“Nginx”);

5. 点击下拉菜单,选择“Apache HTTP Server 2.4”,点击窗口底部【保存】;

6. 系统会弹出“应用设置”提示,点击【确定】,等待配置生效(约10秒)。


验证切换效果

1. 切换完成后,返回【Web服务】页面;

2. 查看“默认服务门户”的“HTTP后端服务器”字段,显示“Apache HTTP Server 2.4”即代表配置成功。


四、步骤2:创建密码管理文件夹与核心.htaccess文件

需在web共享文件夹中创建专门的“passwd”文件夹,用于存储加密密码文件,同时通过.htaccess限制该文件夹仅管理员可访问。


4.1 在File Station创建passwd文件夹

1. 打开DSM主界面的【File Station】套件;

2. 在左侧文件夹列表中,找到【web】共享文件夹(默认路径:/volume1/web);

3. 右键点击【web】文件夹,选择【新建】→【文件夹】,命名为“passwd”(字母全小写,不可修改);

4. 双击进入【passwd】文件夹,确认路径为:/volume1/web/passwd(后续需用到该路径)。


4.2 创建passwd文件夹的.htaccess文件(管理员权限控制)

.htaccess文件是Apache的目录配置文件,通过该文件可限制passwd文件夹仅允许admin用户访问,避免密码文件被篡改。

1. 在【File Station】中,进入【/volume1/web/passwd】文件夹;

2. 右键点击空白处,选择【新建】→【文本文档】,命名为“.htaccess”(注意前缀有英文句点,无后缀);

3. 双击打开新建的.htaccess文件,复制粘贴以下配置代码:

```

AuthName "Admin Area"

AuthType "Digest"

AuthUserFile "/volume1/web/passwd/admin.pw"

Require valid-user

```

4. 配置代码说明(表2):

| 参数          | 作用                                                                 |

|---------------|----------------------------------------------------------------------|

| AuthName      | 身份验证弹窗提示语(如“Admin Area”,用户访问时会显示该提示)         |

| AuthType      | 验证类型(Digest为摘要认证,比Basic认证更安全,密码传输加密)        |

| AuthUserFile  | 密码文件路径(需绝对路径,指向后续创建的admin.pw文件)               |

| Require       | 访问权限要求(valid-user表示仅允许密码文件中的授权用户访问)         |

5. 保存.htaccess文件(点击文件编辑器右上角【保存】,关闭窗口)。


五、步骤3:通过SSH创建Apache密码文件(admin.pw与normal.pw)

Apache需要加密的密码文件验证用户身份,需通过Linux命令`htdigest`创建,支持两种方式:使用Linux计算机操作,或直接SSH登录DSM执行命令。


5.1 SSH登录Synology DSM(推荐直接操作)

1. 先启用DSM的SSH功能:

- 进入【控制面板】→【终端机和SNMP】;

- 勾选【启用SSH服务】,默认端口为22(可自定义),点击【应用】;

2. 登录SSH:

- Windows用户:打开Putty/Xshell,输入NAS的IP地址(如192.168.1.100),端口22,连接类型选择“SSH”;

- Linux/Mac用户:打开终端,输入命令 `ssh admin@NAS_IP`(admin为DSM管理员账号,NAS_IP为你的NAS地址);

3. 输入DSM管理员密码,显示“admin@NAS:~$”即代表登录成功。


5.2 创建admin.pw密码文件(保护passwd文件夹)

该文件仅添加admin用户,用于管理passwd文件夹(仅允许管理员访问)。

1. 在SSH终端中,输入以下命令(切换到passwd文件夹路径):

```

cd /volume1/web/passwd

```

2. 执行`htdigest`命令创建admin.pw并添加admin用户:

```

htdigest -c admin.pw "Admin Area" admin

```

- 命令参数说明:`-c`表示创建新文件,“Admin Area”需与passwd文件夹.htaccess中的AuthName一致,“admin”为用户名;

3. 输入命令后,终端会提示“New password:”,输入管理员密码(如123456,输入时不显示),按回车;

4. 再次提示“Re-type new password:”,重复输入密码,按回车;

5. 操作完成后,passwd文件夹中会生成admin.pw文件,内容格式为:`admin:Admin Area:c04339ae82e5b153e1c4799758534015`(密码已加密)。


5.3 创建normal.pw密码文件(保护secret文件夹)

该文件用于保护目标文件夹(如web/secret),可添加多个普通用户(如alex)。

1. 保持SSH终端在passwd文件夹路径(/volume1/web/passwd),输入命令:

```

htdigest -c normal.pw "User Area" alex

```

- 参数说明:“User Area”为自定义验证提示语(需与后续secret文件夹.htaccess中的AuthName一致),“alex”为授权用户名;

2. 按提示输入alex的密码(如alex123),重复确认密码;

3. 若需添加多个用户(如user1、user2),无需加`-c`参数(避免覆盖文件),命令如下:

```

htdigest normal.pw "User Area" user1

htdigest normal.pw "User Area" user2

```

4. 完成后,normal.pw文件内容格式为:

```

alex:User Area:258ae6ddee7755b476277584c9e85286

user1:User Area:30a779d1209929f02117b94954cd526e

user2:User Area:6ed12801bf795766d8dba1b1f28a1f3b

```


5.4 验证密码文件有效性

1. 在【File Station】中,进入/volume1/web/passwd文件夹,确认admin.pw和normal.pw已生成;

2. 右键点击文件,选择【打开方式】→【文本编辑器】,查看内容格式是否与上述示例一致(避免命令输入错误)。


六、步骤4:配置目标文件夹防护(以web/secret为例)

最后通过.htaccess文件将normal.pw密码规则应用到需要保护的文件夹(如web/secret),实现未授权访问拦截。


6.1 创建secret文件夹(若已存在可跳过)

1. 在【File Station】中,进入/volume1/web文件夹;

2. 右键点击空白处,选择【新建】→【文件夹】,命名为“secret”(即需要保护的目标文件夹)。


6.2 创建secret文件夹的.htaccess文件

1. 进入/volume1/web/secret文件夹,右键点击空白处,选择【新建】→【文本文档】,命名为“.htaccess”;

2. 打开文件,复制粘贴以下配置代码:

```

AuthName "User Area"

AuthType "Digest"

AuthUserFile "/volume1/web/passwd/normal.pw"

Require valid-user

```

3. 配置说明:

- AuthName需与normal.pw文件中的验证提示语(“User Area”)完全一致;

- AuthUserFile指向passwd文件夹中的normal.pw文件(绝对路径不可错);

- Require valid-user表示仅允许normal.pw中的用户(alex、user1等)访问;

4. 保存文件并关闭编辑器。


七、步骤5:测试防护效果(关键验证环节)

配置完成后,需通过web访问测试权限是否生效,确保未授权用户无法访问。

1. 打开浏览器,输入NAS的web访问地址(如http://NAS_IP/secret);

2. 浏览器会弹出身份验证窗口,提示“User Area”(与AuthName一致);

3. 测试场景1:输入正确账号密码(如alex/alex123),点击【确定】,可正常访问secret文件夹内容;

4. 测试场景2:输入错误账号密码(如test/123456),点击【确定】,浏览器会显示“401 Unauthorized”(未授权访问);

5. 测试场景3:直接访问passwd文件夹(http://NAS_IP/passwd),输入admin账号密码可访问,输入alex账号密码会提示未授权(符合双层防护逻辑)。


八、关键注意事项与常见问题排查

8.1 核心注意事项(避免配置失效)

1. 密码文件路径必须绝对正确:AuthUserFile中的路径需为“/volume1/web/passwd/xxx.pw”,不可写为相对路径(如“../passwd/admin.pw”);

2. AuthName与密码文件提示语一致:passwd文件夹的.htaccess中AuthName为“Admin Area”,需与admin.pw创建时的提示语一致;secret文件夹同理;

3. 仅允许1个admin用户:admin.pw文件中只能通过`htdigest -c`创建1个admin用户,不可重复添加;

4. normal.pw支持多用户:可通过`htdigest`命令多次添加用户,满足团队授权需求;

5. 修改密码需重新生成文件:若需修改用户密码,需删除对应.pw文件,重新执行`htdigest`命令创建(不可直接编辑文件修改密码)。


8.2 常见问题排查(配置失效解决方案)

Q1:访问secret文件夹未弹出登录窗口,直接显示403禁止访问?

A1:排查步骤:

1. 确认Apache已切换为HTTP后端服务器(重新检查Web Station设置);

2. 检查.htaccess文件命名是否正确(需为“.htaccess”,无后缀,注意句点);

3. 验证密码文件路径是否正确(可通过File Station复制文件路径核对)。


Q2:输入正确密码仍提示未授权?

A2:排查步骤:

1. 确认AuthName与密码文件中的提示语完全一致(区分大小写,如“User Area”不可写为“user area”);

2. 检查密码文件内容格式(是否包含“用户名:提示语:加密密码”三部分);

3. 重新创建密码文件(可能是命令输入错误导致密码加密失败)。


Q3:DSM 6.2版本切换Apache后,web服务无法启动?

A3:解决方案:

1. 进入Web Station【常规设置】,确认“HTTP端口”未被占用(默认80端口,若被其他服务占用可改为8080);

2. 重启Apache服务:进入【套件中心】→【已安装】,找到Apache,点击【停用】再【启用】。


九、扩展应用:保护多个web子文件夹

若需保护web共享文件夹下的多个子文件夹(如secret1、secret2),可重复以下步骤:

1. 在web文件夹中创建新的目标文件夹(如secret1);

2. 复制secret文件夹的.htaccess文件到secret1文件夹(无需修改内容,直接复用normal.pw权限);

3. 若需不同用户组访问,可创建新的密码文件(如normal2.pw),添加专属用户,再修改对应文件夹.htaccess中的AuthUserFile路径。


本文严格遵循Synology官方教程逻辑,详细拆解了从Apache配置到密码验证的全流程,融入“Synology web文件夹保护”“Apache .htaccess配置”“DSM 7.2 权限设置”等核心及长尾关键词,通过多版本对比表、参数说明表提升可读性。若你需要补充特定场景操作(如批量添加用户、HTTPS环境适配),或调整内容侧重点,可随时告知我优化!

Synology web共享文件夹保护教程:Apache + .htaccess 阻止未授权访问

新闻中心

联系我们

技术支持

  • ·

    Synology Drive 我...

  • ·

    Synology Drive 与...

  • ·

    Synology Drive 内...

  • ·

    Synology Drive 同...

  • ·

    Synology删除文件后存储空...

  • ·

    Synology DSM 检查系...

  • ·

    Synology Drive能当...

  • ·

    Synology Docker容...

相关文章

地址:北京市海淀区白家疃尚品园             1号楼225

北京群晖时代科技有限公司

微信咨询

新闻中心