保护网站/使其私密的方法和技巧?

保护网站/使其私密的方法和技巧?

我很快就要启动一个网站,但我希望它是安全的/私密的,以便进行测试。它现在在它的真实域上;我已经添加了 htaccess 身份验证(使用 htpasswd)。我在 apache2 / Ubuntu 16.04 上

我想到a2dissite在一天结束时每当我完成工作时就使用它,这样就甚至不可能访问域/显示页面。

我在我的 apache2 配置文件中启用了这些:

ServerTokens Prod
ServerSignature Off 
TraceEnable off

和 :

<Directory /var/www/html>
    Options -Indexes
</Directory>

还可以做些什么来增强安全性甚至使网站完全私密?

编辑 - 我还需要通过 htaccess + htpasswd 进行身份验证,我忘了说,这是先完成的。

答案1

我不会这样做a2dissite,因为它会默认VirtualHost替换已指向 DNS 中服务器的域名,这可能会影响您的 SEO。此外HTTP 基本身份验证

  • 您可以限制对用于构建站点的 IP 地址或块的访问。
  • 即使在开发过程中,我也会强制使用 HSTS 进行 TLS。

例如

<VirtualHost *:80>
    ServerName example.com
    Redirect permanent / https://example.com/
</VirtualHost>

<VirtualHost *:443>
    ServerName example.com

    SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem

    <IfModule mod_headers.c>
        Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains"
    </IfModule>

    <Location />
        <RequireAny>
            Require ip 192.0.2.100
            Require ip 198.51.100.0/24
        </RequireAny>
    </Location>
</VirtualHost>

答案2

限制访问的方法有很多,下面是一个例子,它允许任何一种

  • 经过身份验证的、属于“my_valid_group”组的成员的用户

  • 或者来自本地主机:客户端 IP 127.0.0.0/8 或 ::1 或与服务器相同的 IP

  • 或来自特定主机名(如动态 DNS 主机),无需匹配反向查找,如下所述forward-dns

<Location />
  AuthType      Basic
  AuthName      "This requires user name and password"
  AuthUserFile  /etc/apache2/.htpasswd
  AuthGroupFile /etc/apache2/.htgroup

  # <RequireAny> # this is not needed: it's the default

  # users listed in AuthUserFile + in the group in AuthGroupFile
  Require group my_valid_group                   

  Require local                                  

  Require forward-dns myhost.dynamic.example.com

  # </RequireAny>
</Location>

其他可能性:

答案3

使用netsparker测试一些基本的东西,或者你可以雇佣一个渗透测试人员(更贵)。但是有免费的漏洞赏金计划,你可以把你的网站放在那里,让渗透测试人员报告漏洞。(我认为这有点冒险,因为你不知道谁会看到你的程序。一个道德黑客或只是一个试图破坏你的系统的孩子)。

相关内容