хорошо позволить любой исходящий порт для отправки почты

У меня есть небольшое приложение на моем centos6.6 сервере, который я выполняю, который позволяет пользователю посылать электронное письмо на пользовательском порте, и я позволяю любому порту использоваться. Есть ли какая-либо угроза безопасности для разрешения этого приложения использовать какой-либо исходящий порт на моей подаче, чтобы сделать smtp транзакцию?

-1
задан 25 August 2015 в 03:21
2 ответа

Да, есть. В зависимости от того, какой контроль вы даете пользователю над контентом, он может варьироваться от «пользователь может причинить вред» до «вы - полностью открытый ретранслятор».

В качестве примера подробнее в разделе «озорство» В спектре Redis есть достаточно «разрешительный» синтаксический анализатор команд. Он проигнорирует любые команды, которые не распознает, а затем дождется команды, которую он выполнит. Это означает, что если пользователь отправляет электронное письмо, содержащее строку «flushall» в начале строки, и отправляет это электронное письмо на открытый сервер Redis в Интернете (да, люди оставляют свои серверы Redis открытыми для Интернета (как бы глупо это ни звучало) все данные на этом сервере Redis будут удалены.

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

Чем больше контроля над электронной почтой, которую вы предоставляете, тем больше вероятность этого. Таким образом, если вы разрешите пользователям устанавливать заголовки или, что еще хуже, управлять самим SMTP-диалогом, шансы того, что кто-то разработает способ использования вашего сервиса для совершения плохих вещей, очень возрастут.

1
ответ дан 5 December 2019 в 19:25

Приношу свои извинения, но я думаю, что ответ @wombies неверен.

Более логичный ответ (на то, что, вероятно, имелось в виду) таков -

Вы можете разрешить SMTP-связь (почти ) любой порт - безопасность исходит не от порта, а от контроля доступа на почтовом сервере, чтобы гарантировать, что только аутентифицированные пользователи могут войти в систему (будь то имя пользователя / пароль или IP-адрес)

Стандартные порты хотя обычно связаны с конкретными ролями - 25 обычно является почтовым сервером на почтовый сервер (но вы часто можете отправить как конечный пользователь через него) 26 - неофициальная альтернатива порту 25, потому что некоторые интернет-провайдеры блокируют отправку почта через порт 25 587 - это «правильный» порт для отправки электронной почты конечным пользователем - обычно он шифруется с использованием SSL. 465 обычно используется для отправки электронной почты, зашифрованной с помощью TLS.

Я никогда не слышал о 2525, но, вероятно, он эквивалентен 26, с дополнительным преимуществом номера порта> 1024, поэтому он имеет меньше привилегий в Linux.

Вам следует держаться подальше от общеизвестных портов - например, 80, 3128, 8080, 443, - они часто находятся за прокси-серверами, поэтому не будут использовать почтовый протокол и будут заблокированы - и это хорошая причина придерживаться порта 587. - который считается стандартным.

Правильный ответ, вероятно, отвечает на вопрос, который отправитель намеревался задать, а именно: «Можно отправлять с любого порта выше 1024 TCP, поскольку это имитирует стандартное поведение - при условии, что порт назначения правильный. [то есть порт 25, если он предназначен для более широкого Интернета]. Тем не менее, если вы не пишете свой собственный стек или почтовый сервер, это вряд ли будет актуально.

1
ответ дан 5 December 2019 в 19:25

Теги

Похожие вопросы