Я скоро запускаю веб-сайт, но я хочу, чтобы он был защищенным / закрытым для тестирования. Сейчас он находится в его реальном владении; Я уже добавил аутентификацию htaccess (с htpasswd). Я использую apache2 / Ubuntu 16.04
Я подумал об использовании a2dissite
всякий раз, когда я закончу работу над ним в конце дня, так что даже невозможно получить доступ к домену / отобразить страница.
Я включил их в своем конфигурационном файле apache2:
ServerTokens Prod
ServerSignature Off
TraceEnable off
и:
<Directory /var/www/html>
Options -Indexes
</Directory>
Что еще можно сделать для повышения безопасности и даже сделать сайт полностью закрытым?
edit - Мне требовалась аутентификация через htaccess + htpasswd Кроме того, я забыл сказать, что это было сделано в первую очередь.
Я бы не стал 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>
Из множества способов ограничения доступа, вот пример, который позволяет любому из
аутентифицированных пользователей, которые являются членами группы «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>
Другие возможности:
Требовать ip ...
как в ответе Эсы Йокинена
Требовать host example.com
: «Только если прямой и обратный DNS согласованы и имя хоста совпадает с [конец строки], доступ будет разрешен. "
Требовать env ...
: проверьте переменную среды, ранее установленную с помощью SetEnv
или SetEnvIf
и т. д. .
используйте netsparker , чтобы проверить некоторые основы, или вы можете просто нанять пентестера (дороже). Но есть бесплатные программы по борьбе с ошибками, вы можете просто разместить там свой веб-сайт и позволить пентестерам сообщать об уязвимостях. (Я думаю, что это немного рискованно, потому что вы не знаете, кто будет видеть вашу программу. Этичный хакер или просто ребенок, пытающийся нанести вред вашей системе).