Рейтинг:1

Можно ли разрешить только HTTPS и заблокировать HTTP на произвольном порту

флаг in

Мы используем RHEL, и нам нужно открыть один непривилегированный и произвольный порт, скажем, порт 12345, для обычного пользователя. Этому обычному пользователю необходимо запустить службу HTTP, прослушивающую этот порт, и каждый компьютер в сети LAN может получить доступ к службе. Учитывая характер службы, которую должен запустить пользователь, обратный прокси-сервер вряд ли будет работать, и служба пользователя должна напрямую прослушивать порт и обслуживать своих клиентов.

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

Вопрос в том, сможет ли системный администратор заставить порт обслуживать только содержимое HTTPS и предположить, что пользователь использует простой HTTP (сознательно или неосознанно), трафик будет заблокирован?

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

Спасибо!

djdomi avatar
флаг za
пожалуйста, предоставьте используемый брандмауэр
Alex Kong avatar
флаг in
что вы подразумеваете под устройством брандмауэра @djdomi ? Это автономный сервер RHEL. Если вы имеете в виду программу брандмауэра, в настоящее время мы используем firewalld, но мы открыты для любых других программ, если это необходимо.
Alex avatar
флаг us
Если пользователи используют эти порты, я предполагаю, что они запускают какой-то демон или запускают какое-то приложение/скрипт, который фактически запускает веб-сервер. Можно ли переписать этот сценарий, предоставляемый пользователям, таким образом, чтобы принимались только соединения HTTPS? Или, если скрипт настраивает какой-то веб-сервер (например, Apache) - опять же, вы можете либо полностью заблокировать HTTP, либо установить перенаправление на HTTPS на уровне Apache... Возможно ли это? Пожалуйста, поделитесь некоторыми подробностями о том, как пользователи запускают веб-сервер, возможно, сообщество что-то предложит.
Alex Kong avatar
флаг in
Привет @Alex, проблема в том, что я не хочу предполагать, что пользователи всегда следуют нашему стандарту - поскольку мы открываем им порт, возможно, они просто пропускают мой сценарий и используют свои собственные сценарии (которые используют HTTP) . Поэтому я хочу иметь что-то похожее на брандмауэр, который может это запретить. Что касается использования Apache, мне кажется, что это может быть довольно сложно установить - пользователи сценария, которые собираются использовать, имеют свои собственные настройки перенаправления/порта/относительного URL-адреса/и т. д. Как вы думаете, есть ли еще простой способ использовать Apache?
Alex avatar
флаг us
Нет, если пользователи могут создавать свои собственные сценарии и изменять конфигурацию Apache, то мой подход, я думаю, не сработает.Я предположил, что либо у всех пользователей есть один общий сценарий, который они запускают, либо все они используют Apache с сайтом по умолчанию, поэтому его можно заморозить на системном уровне. Если все используют Apache, может быть (а может и нет!) создать глобальное правило перезаписи для всех сайтов, которое принудительно заменит HTTP на HTTPS и аннулирует доступ на запись к этому конфигурационному файлу Apache. Этот вариант просто кажется более простым для изучения по сравнению с проверкой всего трафика и блокировкой его на лету — это задача для WAF или, по крайней мере, NGFW.
Alex Kong avatar
флаг in
Привет @Alex, возможно, я не ясно выразился. «пользователи могут создавать свои собственные сценарии» -> Это правильно; «пользователи могут изменять конфигурацию Apache» -> нет, они НЕ могут изменять настройки Apache. Но в настоящее время Apache не используется — пользователи просто используют свои скрипты для прослушивания данного порта. Причина, по которой Apache не используется, заключается в том, что мне не удалось найти способ сделать все сценарии совместимыми с обратным прокси-сервером Apache...

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.