Linux 下特殊目录的安全管理

2019年6月28日

Linux 下特殊目录的安全管理 例如 phpMyAdmin  或者后台什么的

一、 对phpMyAdmin目录加用户身份验证:

  这样当用户第一次浏览进入该目录时,都将出现一个提示窗口,提示用户输入用户名和密码验证,其是通过使用Apache Server的标准 mod_auth模块实现的,具体操作方法如下:

  1) vi编辑Apache Server配置文件,确保文件中如下两句话没有加注释,如果这两句话前有"#"符号,去掉"#"号(默认几乎都是允许的)。

vim /etc/httpd/conf/httpd.conf

  DocumentRoot /var/www/htdocs  #自己配置域名的忽略
  AccessFileName .htaccess
  AllOerride All

  2) passwd程序创建用户文件:
  

htpasswd -cm /var/www/htdocs/www.mysql.com/.htpasswd username

  其中,-c表示选项告诉htpasswd你想生成一个新的用户文件,/var/www/htdocs/www.mysql.com/ 是你想存放 .htpasswd 文件的目录,文件名称为 .htpasswd,username 是在验证时所用到的用户名,敲如以上命令后,系统提示你输入密码,这个密码就是验证时所需要用到的密码,该密码在 .htpasswd 文件中是加密的。现在用more来查看/data/web/apache/secrects/.htpasswd文件,可以看到其中有一行用户名和一串加密密码。

   htpasswd  参数选项

     -b
     使用批处理方式。也就是直接从命令行获取密码而不进行提醒。使用这个选项需要特别注意,因为命令行中的密码是清晰可见的。
     -c
    创建passwdfile文件。如果passwdfile已经存在,那么将被清空并改写。该选项不能和 -n 同时使用。
    -n
    在标准输出上显示结果而不是更新文件。用于生成可以为Apache非文本输出存储格式所接受的密码记录。这个选项改变了命令行语法,因为passwdfile参数(通常是第一个)被忽略了
。该选项不能和 -c 同时使用。
    -m
    使用MD5加密密码。在Windows, Netware, TPF上这是默认方法。
     -d
    使用crypt()对密码进行加密。在Windows, Netware, TPF以外的平台上这是默认方法。虽然有可能在所有的平台上被htpasswd支持,但是在Windows, Netware, TPF上,该方法不能被httpd所支持。
     -s
    使用 SHA 对密码进行加密。这种方法易于通过LDAP目录交换格式和Netscape server进行交换。
    -p
    使用明文密码(不加密)。虽然htpasswd在所有平台上都支持这种方法,但是httpd只能在Windows, Netware, TPF上支持这种方法。
     -D
    如果username存在于passwdfile中,则删除该用户。

  3) 创建 .htaccess 文件:
  使用文本编辑器,在目录 phpMyAdmin (如果已经改名,就是新的目录名)下创建 .htaccess 文件,在文件中加入如下语句:

     vim /var/www/htdocs/www.mysql.com/.htaccess

  AuthName "用户验证的提示信息"
  AuthType Basic
  AuthUserFile /var/www/htdocs/www.mysql.com/.htpasswd
  require user username

  保存所做操作后,再去看phpMyAdmin目录,将提示验证窗口,输入刚用 htpasswd 命令创建的用户名和密码,即可进入该目录。

   二、 增加基于主机的访问控制:

  在修改了目录名和增加访问验证机制后,应该说现在的phpMyAdmin已经很安全了,但由于phpMyAdmin目录一般只是数据库管理员使用,为防止别人还知道目录名称和验证密码,还可以增

加如下的基于主机的访问控制,基于主机的访问是通过验证用户机器IP来实现的,即只有符合条件的IP才可以访问该目录,否则拒绝访问(更安全)。
  修改 .htaccess 文件如下:

      vim /var/www/htdocs/www.mysql.com/.htaccess

  AuthName "用户验证的提示信息"
  AuthType Basic
  AuthUserFile /var/www/htdocs/www.mysql.com/.htpasswd
  require user username
  order deny,allow
  deny from all
  allow from 允许IP

 

这里增加了三条基于主机访问控制指令:
          第一条 order 指令的值是由一个逗号隔开的名单,这个名单表明了哪一个指令更高的优先权;

          第二条指令 deny 定义不能访问该目录的主机;

          第三条指令 allow 定义可以访问该目录的主机;

          这样,该目录除了IP地址为 添加的 “允许IP” 的机器可以访问该目录之外,其他的都不能访问,读者可以把该地址该为用户数据库管理 IP。

没有评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注