Мне нужно открыть через Интернет небезопасное внутреннее веб-приложение, которое нельзя изменить, чтобы сделать его внутренне более безопасным. Наиболее распространенное решение этой проблемы - доступ к веб-приложению через VPN. К сожалению, в моей ситуации это невозможно, поэтому мне остается искать другое решение.
В какой-то момент я имел опыт работы с брандмауэрами, которые могли динамически открывать порты после того, как пользователи прошли аутентификацию через веб-форму. Форма находилась на веб-сайте, обслуживаемом устройством брандмауэра, и за кулисами брандмауэр использовал учетные данные, предоставленные через форму, для аутентификации в Active Directory. После прохождения аутентификации брандмауэр на ограниченное время открыл некоторые порты для IP-адреса, с которого возникло соединение с веб-формой.
Я хотел бы использовать что-то подобное в своем сценарии, поскольку это обеспечит достаточную безопасность для моего веб-приложения. К сожалению, я не разбираюсь в технике. стек, который нужно искать, или известные имена для этого типа межсетевого экрана auth.
Может ли кто-нибудь просветить меня, какие технологии мне нужно посмотреть?
Спасибо, Богдан
У вашей идеи есть недостаток, она подразумевает, что IP-адреса однозначно идентифицируют пользователей, но это не так.
Я думаю, что вы пытаетесь описать брандмауэр веб-приложений это будет проходить через аутентификацию + обратное проксирование. Он также может отфильтровать несколько хорошо известных атак в зависимости от реализации, но в целом ваш план далек от твердого.
Вы также можете подумать о том, чтобы изолировать свое приложение в песочнице. Никогда не стоит оставлять заведомо уязвимую машину там, потому что она будет использоваться способами, о которых вы не задумывались.
Если вы используете Linux в качестве брандмауэра, посмотрите iptables
так реализован брандмауэр. Документация Shorewall укажет вам направление [Dynamic Zones][1]
.
Возможно, удастся получить fail2ban
чтобы добавить соответствующую запись, когда он видит сообщение об успешном входе в систему в файле журнала.
В моем случае я использую аутентификацию для каждой службы:
В вашем случае веб-прокси с аутентификацией должен предоставлять необходимый доступ. Apache можно настроить для этого относительно легко.