34212131 发表于 2017-1-12 09:20:05

LAMP搭建6:Apache用户认证

搭好了网站,需要进行一系列设置来加强网站安全。比如1.网站有些目录和文件是不便对所有人公开的,2.管理员密码泄露,都会都网站安全造成威胁。因此我们需要给网站设置相应的用户认证,通过认证的用户可以访问指定的目录和文件,或者通过认证的用户才可以有权限登入管理员后台。
1.假设网站根目录/data/www/下有个比较重要的目录important/,里面的内容不宜被人访问。
# mkdir important
# cd important/
# cp /etc/passwd ./passwd.txt
2.正常情况下,任何人都能访问这个文件的内容

3.为了让用户只有输入正确的用户名和密码才能访问important目录下的内容,需要更改一下虚拟主机配置:
# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
4.修改为如下样式:
……
<VirtualHost *:80>
DocumentRoot "/data/www"
ServerName www.test.com
ServerAlias www.mydiscuz.com
    <Directory /data/www/important/>
      AllowOverride AuthConfig
      AuthName "username"
      AuthType Basic
      AuthUserFile /data/.htpasswd
      require valid-user
    </Directory>
</VirtualHost>
……
5.使用Apache自带的密码创建工具htpasswd命令创建/data/.htpasswd文件,创建认证用户guest,输入密码123456(首次使用需要加-c选项,表示创建.htpasswd文件)
# htpasswd -c /data/.htpasswd guest
New password:
Re-type new password:
Adding password for user guest
6.查看/data/.htpasswd内容
# cat /data/.htpasswd
guest:hfsn08YHyrcAs
7.添加用户guest2就不用加-c选项了,因为.htpasswd文件已存在。
# htpasswd /data/.htpasswd guest2
New password:
Re-type new password:
Adding password for user guest2
# cat /data/.htpasswd
guest:hfsn08YHyrcAs
guest2:1XAmJe5eCrLSY
8.重新加载apache配置文件
# apachectl -t
Syntax OK
# apachectl graceful
9.重新访问/important/passwd,提示需要进行身份认证。

10.输入正确的用户名和密码才能看到important/目录下的内容。

设置了用户认证你的网站是不是更安全了呢?!

页: [1]
查看完整版本: LAMP搭建6:Apache用户认证