У меня есть веб-сайт, который я хочу использовать в административных целях. Мне нужно быть уверенным, что только люди с определенных машин могут войти в систему. проблема в том, что они находятся в сетях ISP. Правильно ли я получу правильный IP-адрес для использования с помощью команды ip / ifconfig, или мне нужно беспокоиться о том, что NAT используется интернет-провайдером?
Вы Делать неправильно мой друг.
Помимо локального NAT и «NAT операторского класса» (что означает информацию, которую вы получаете ifconfig
в клиентских системах это может быть частный адрес, который вы не можете использовать в списках доступа вашего сервера), безопасность на основе IP - это фарс: интернет-провайдеры могут изменять назначения общедоступных сетей, конечные пользователи могут использовать динамические IP-адреса или кто-то может подделать BGP и лгут мимо вашей безопасности.
Если вы хотите должным образом защитить свой сайт, мои рекомендации будут следующими:
SSL с взаимной аутентификацией сертификатов
Очень безопасен, поддерживается практически всеми браузерами, но администрировать немного неудобно, потому что вам нужно выдавать клиентские сертификаты всем своим пользователям и объяснять, как их установить (а сертификаты привязаны к машинам, на которые вы их устанавливаете. , поэтому ваши пользователи не смогут войти в систему из дома бабушки).
Это того стоит, если вам нужна безопасность.
SSL и двухфакторная аутентификация
Использование чего-то вроде Google Authenticator в дополнение к имени пользователя / паролю, предоставляя вашим пользователям настоящую двухфакторную аутентификацию (что-то, что вы знаете - имя пользователя / пароль, и что-то, что у вас есть - устройство с запущенным Authenticator).
Для этого может потребоваться небольшая работа с вашей стороны, либо в вашем приложении, либо на сервере с чем-то вроде mod_auth_external
, но это очень хорошая безопасность: он не страдает ограничениями взаимной проверки подлинности сертификатов, и его практически невозможно перебрать.
SSL и аутентификация по имени пользователя / паролю
Только так безопасно, как имя пользователя / пароль, но именно поэтому у нас есть хорошие политики паролей.
Это уязвимо для атак методом грубой силы, поэтому необходимо использовать методы смягчения.
Самый простой способ определить это - запустить в системе, которую вы планируете разрешить доступ, выполнить следующее.
lynx ipchicken.com
Если он соответствует вашему ifconfig, все будет в порядке. Если нет, и это домашний маршрутизатор, вы будете доверять машинам, стоящим за индивидуальным маршрутизатором. Другой способ сделать это - потребовать vpn с учетными данными и сделать этот сайт доступным только в вашей сети. Тогда вам могут потребоваться ключи или сертификат.