在Zentyal Webserver上启用UserDir和密码保护Web目录 - 第10部分

本文将告诉您如何在Zentyal Server中使用.htaccess方法启用每个用户目录和密码保护Apache中的用户Web目录。

在多用户环境,比如运行一个Web服务器可以有很大的帮助,如果你要允许每个用户有自己的个人网站,可以在自己的家中被托管的Zentyal PDC Active Directory中

Zentyal 3.4 网络服务器模块可以被配置为激活用户公共HTML和与一些Linux BASH脚本的帮助下,以动态生成的网页一些内容和发送的用户需要在其登录到域信息。

启用Userdir密码保护目录

启用Userdir密码保护目录

此外Apache船舶长时间使用与安全相关的另一个功能提供的内容,这是密码保护的web目录中最简单的形式之一,只需使用.htaccess文件,并创建访问资源所需的用户列表,甚至保护来自搜索引擎抓取工具的网页内容。

要求

  1. Zentyal安装指南
  2. 在Zentyal Server中安装Web服务(Apache)

第1步:启用用户公共Html

1.登录到您的Zentyal PDC网络管理工具使用https:// zentyal_ip。

2.导航到Web服务器模块 - >选中启用对端用户的public_html,打在更改按钮然后保存修改。

启用用户公共Html

启用用户公共Html

3.打开浏览器并输入URL提交以下内容:http://mydomain.com/~your_username。

Apache禁止错误

Apache禁止错误

正如您所看到的,Apache没有访问每个用户目录或索引用户主目录的权限。 为了解决这一问题,我们必须提供WWW的数据的/ home / $ USER目录执行权限,并创造条件,用户路径的public_html文件夹中。

为简单起见,我们将编写创建public_html目录,使所有系统用户正确权限的Linux的Bash脚本一点点,自动生成HTML网页,为所有用户提供一个有效的主目录和另一个脚本,这个时候一个Windows巴赫的脚本,这将链接它默认域GPO让每一位用户将登录后从Windows系统中域凭据加入到域他的个人网站被提示。

4.要完成此任务登录使用PuTTY与系统安装创建了Zentyal管理帐户Zentyal服务器 ,并使用您喜欢的文本编辑器的第一个脚本。 我们将其命名为“ 用户DIR-创造 ”。

# nano user-dir-creation

5.添加的“ 用户DIR-创作 ”脚本波纹管的内容。

#!/bin/bash
for i in `ls /home | grep -v samba| grep -v lost+found`;  do
mkdir /home/$i/public_html
## Make world readable and executable, so that www-data can access it  ##
chmod -R 755 /home/$i
chgrp -R www-data /home/$i/public_html/
## Next code should be on a single line ##
echo "<html><body style='background-color:#2DC612'><div align='center'><p><H1 style='color:#fff'>Welcome user $i on <a style='color:#fff' href='https://mydomain.com'>`hostname -f` </a></H1></p></div></body></html>" > /home/$i/public_html/index.html
## List /home/$USER permissions and public_html perm optional ##
echo "......................."
ls -all /home/$i
echo "......................"
ls -all /home/$i/public_html
done;

6.保存脚本并使其可执行,然后使用root权限运行它。

# chmod +x user-dir-creation
# sudo ./user-dir-creation

7.再次打开浏览器,因为它上面指向同一个URL(见第3点)。

访问域

访问域

public_html目录已创建并为所有用户生成一个HTML文件,所以现在他们都拥有一个个性化的网页(这只是一个简单的测试页面,但想象你可以与一些PHP,MySQLCGI脚本做什么)。

8.如果Zentyal 3.4 Server也是主域控制器 ,我们可以按用户的网页制作,当用户从登录Windows主机加入到域为自动打开一个浏览器。

要启用它登录到Windows系统加入域,并创建一个名为“public_html.bat”记事本内容如下Windows批处理脚本。

explorer http://your_domain.tld/~%username%

:请注意,“〜”特殊字符和%USERNAME%,这是一个Windows环境变量。

自动打开用户页面

自动打开用户页面

9.打开Zentyal Web管理工具 (https://开头zentyal_IP),然后转到 - > 组策略对象 - > 默认域策略 - > GPO编辑器

组策略对象

组策略对象

10.单击编辑 ,向下滚动到用户配置 - > 添加新登录脚本 ,浏览关于在创建脚本和命中添加路径。

添加新登录脚本

添加新登录脚本

用户配置

用户配置

恭喜 现在,下次您登录到域时,默认浏览器将打开与您的用户名相关的个性化网页。

第2步:密码保护Web目录

这部分需要而不能形成Zentyal Web界面 ,但只有命令行和修改一些Zentyal Apache模块模板来实现的Apache模块的更多高级配置。

如果您尝试直接修改Apache配置,就像您通常在Linux服务器上所做的那样,所有配置将丢失,因为Zentyal使用一些模板表单,在重新引导或重新启动服务后重写每个服务配置文件。

要真正保护使用Apache身份验证的Web文件夹,并永久更改的设置“AllowOverride”指令需要修改和“auth_basic”模块需要加载和Apache网络服务器启用。

11.为了使通过与root帐户Zentyal服务器上使用PuTTY命令行需要登录拳头所有配置。

12.发出以下命令启用“auth_basic”,然后重新启动zentyal Web服务。

# a2enmod auth_basic
# service zentyal webserver restart

13.在加载模块是时候修改位于“ / usr /共享/ zentyal /存根/ Web服务器/”路径和设置“AllowOverride”Zentyal 的Apache虚拟主机模板。

首先备份vhost.mas文件。

# cp /usr/share/zentyal/stubs/webserver/vhost.mas  /usr/share/zentyal/stubs/webserver/vhost.mas.bak

然后打开编辑器,在文件浏览底和替换的“ 允许改写 ”指令线“ ”与“ ”之类的截图。

启用密码保护

启用密码保护

14.完成编辑重启Zentyal Web服务器模块应用新的变化后。

# service zentyal webserver restart

AllowOverride指令的主要目标是从使用.htacess文件每路径基础上比Apache的根用过的不同的其他文件( 在/ etc / apache2的/)动态地修改Apache的配置。

现在是时候创建一些用户,允许浏览Web内容目录密码保护。 首先,我们需要创建放置子路径之外的某个目录中的.htpasswd文件将被托管和保护。

# mkdir /srv/www/htpass
# chmod –R 750 /srv/www/htpass
# chgrp –R www-data /srv/www/htpass

16.现在是时候创建的.htpasswd文件,并使用htpasswd的命令添加一些用户。 当创建第一个用户加上“-c”(创建)命令切换到创建该文件,添加用户然后输入并确认用户密码。

# htpasswd –c /srv/www/htpass/.htpasswd first_user
# htpasswd /srv/www/htpass/.htpasswd second_user
创建用户密码

创建用户密码

创建用户密码

创建用户密码

17.现在创建的.htpasswd文件,并使用MD5盐算法加密,你可以添加需要访问Web文件夹的内容需要尽可能多的用户。

htpasswd文件

htpasswd文件

18.现在让我们假设你要保护http://www.mydomain.com其他用户,然后在你的htpasswd文件创建访问那些子域网址。 为了使这种行为创造www.mydomain.com系统路径上的.htaccess文件,并添加以下内容。

AuthType basic
AuthName “What ever message you want”
AuthBasicProvider file
AuthUserFile  /path/to/.htpassd file created
Require user  your_user1 user2 userN

另外,还要确保.htacces文件是字可读保护。

# nano /srv/www/www.mydomain.com/.htaccess
# chmod 750  /srv/www/www.mydomain.com/.htaccess
# chgrp www-data /srv/www/www.mydomain.com/.htaccess

恭喜 现在,您已经成功地密码保护的网站上的www.mydomain.com的子域,将提示用户输入其凭据访问的网站内容。

密码保护目录

密码保护目录

此外,如果你想保护与已创建的凭据您的服务器上创建其他域或子域,只需复制您的子Apache的路径上的.htaccess文件,并确保WWW的数据读取权限。

Apache的Web猪病密码保护 Zentyal Weberver的帮助下可以用一些额外的安全层揭露张贴在站点上的敏感信息,但被告知,此方法不仅保护目录,而不是文件和密码以明文通过浏览器传输所以尽量使用伪造HTTPS协议来保护被拦截的用户凭据。