Назад | Перейти на главную страницу

Способы и хитрости, чтобы обезопасить сайт / сделать его приватным?

Вскоре я запускаю веб-сайт, но хочу, чтобы он был защищен / закрыт для тестирования. Сейчас он находится в его реальном владении; Я уже добавил аутентификацию htaccess (с htpasswd). Я использую apache2 / Ubuntu 16.04

Я думал об использовании a2dissite всякий раз, когда я заканчиваю работать над этим в конце дня, так что даже невозможно добраться до домена / отобразить страницу.

Я включил их в своем конфигурационном файле apache2:

ServerTokens Prod
ServerSignature Off 
TraceEnable off

и :

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

Что еще можно сделать для повышения безопасности и даже полной конфиденциальности сайта?

edit - мне также требовалась аутентификация через htaccess + htpasswd, я забыл сказать, что это было сделано в первую очередь.

Из множества способов ограничения доступа вот пример, который позволяет любому из

  • Прошедшие проверку пользователи, которые являются членами группы my_valid_group

  • ИЛИ от localhost : 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>

Другие возможности:

  • Require ip ... как в ответе Эсы Йокинен

  • Require host example.com : "Доступ будет разрешен только в том случае, если прямой и обратный DNS согласованы и имя хоста совпадает [конец строки]."

  • Require env ... : Проверьте переменную среды, ранее установленную с помощью SetEnv или SetEnvIf

  • и т.п.

Я бы не стал a2dissite как это будет по умолчанию VirtualHost для замены вашего доменного имени, которое уже указано на сервере в DNS, что может повлиять на вашу SEO. В добавок к Базовая аутентификация HTTP:

  • Вы можете ограничить доступ к IP-адресам или блокам, которые используются для создания сайта.
  • Я бы также принудил TLS с HSTS даже во время разработки.

Например.

<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>

использовать сети чтобы протестировать некоторые основы, или вы можете просто нанять пентестера (дороже). Но есть бесплатные программы по борьбе с ошибками, вы можете просто разместить там свой веб-сайт и позволить пентестерам сообщать об уязвимостях. (Я думаю, что это немного рискованно, потому что вы не знаете, кто увидит вашу программу. Этичный хакер или просто ребенок, пытающийся нанести вред вашей системе).