Вскоре я запускаю веб-сайт, но хочу, чтобы он был защищен / закрыт для тестирования. Сейчас он находится в его реальном владении; Я уже добавил аутентификацию 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:
Например.
<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>
использовать сети чтобы протестировать некоторые основы, или вы можете просто нанять пентестера (дороже). Но есть бесплатные программы по борьбе с ошибками, вы можете просто разместить там свой веб-сайт и позволить пентестерам сообщать об уязвимостях. (Я думаю, что это немного рискованно, потому что вы не знаете, кто увидит вашу программу. Этичный хакер или просто ребенок, пытающийся нанести вред вашей системе).