Зачем блокировать исходящий порт 22?


61

Я программист, и я работал на нескольких клиентов, чьи сети блокируют исходящие соединения через порт 22. Учитывая, что программистам часто нужно использовать порт 22 для ssh, это кажется контрпродуктивной процедурой. В лучшем случае это заставляет программистов выставлять счета компании за 3G интернет. В худшем случае это означает, что они не могут эффективно выполнять свою работу.

Учитывая трудности, которые это создает, может ли опытный системный администратор объяснить желаемую выгоду тому, что кажется проигрышным действием?


1
Блокировка портов - это только полдела. Чтобы завершить цикл, вы должны убедиться, что службы, которые вы пытаетесь защитить, не работают на нестандартных портах.
Ахарден

1
Вопрос на самом деле должен звучать так: «Зачем блокировать исходящий порт 22?» так как есть миллион веских причин, почему вы хотите запускать службу ssh на нестандартном порту. Исходящий ... не так много. Я положил +1 на ответ Роберта Моира, так как он проделал довольно хорошую работу, объясняя это.
KPWINC

@KPWINC, добавил пояснение к названию. Спасибо!
runako

3
Думайте о порте 22 как о ящике Пандоры. Сетевые администраторы не могут видеть, что находится в трафике, и что еще хуже, ssh может использоваться для обхода сетевой безопасности, ставя под угрозу целостность сети.
biosFF

1
@biosFF: порт 443.
Hello71,

Ответы:


77

Я не вижу, чтобы кто-то подробно описывал конкретный риск с переадресацией портов SSH.

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

Если fred - ваш рабочий стол, а barney - важный сервер в вашей компании, а wilma общедоступна и работает (на fred):

SSH-R *: 9000: Барни: 22 Вилма

и вход в систему позволит злоумышленнику подключиться к порту 9000 по wilma и поговорить с демоном SSH Барни.

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

Это раздражает, но совершенно законная политика безопасности сети.


1
Спасибо за очень проницательный ответ. Это один из немногих ответов, касающихся технических рисков (в отличие от политических рисков) открытых исходящих портов.
runako

6
+1 за хорошую техническую причину. (Тем не менее, это мог сделать только недоброжелательный стажер, который также мог бы использовать другие порты, кроме TCP 22, на удаленном хосте. С помощью которого мы вернулись к некоторому блокированию всей политики)
DerMike

7
С помощью специально разработанного протокола и некоторого умного программирования прокси это можно сделать через HTTPS, хотя и медленнее. Пока вы разрешаете исходящий зашифрованный трафик, вы уязвимы для такого рода «атак».
Майкл Сондергаард

3
Это хороший ответ, ДжеймсФ, но не стоит задумываться о безопасности, поскольку он предполагает крайне редкий сценарий и требует эксплуатации серверов / клиентов SSH. Злоумышленник должен сначала использовать SSH-сервер (на вашем рабочем столе) и найти способ затем использовать ваш SSH-клиент (на вашем бизнес-хосте). Поскольку вы не можете использовать порт 22 для доступа к бизнес-хосту или общению с ним (у которого есть только исходящий порт 22). Если ваш стандарт безопасности настолько высок, ваш бизнес-хост не должен даже быть в Интернете в любой ситуации.
Декстер

1
Вы можете туннелировать трафик через DNS (например, с помощью iodine), если HTTPS и SSH недоступны. Но это очень медленно.
Марк К Коуэн

38

Если они блокируют мешанину портов, пропускают некоторые вещи и произвольно блокируют другие (я люблю печальную историю Пола Томблина о людях, которые блокируют SSH и разрешают Telnet), то у них либо есть очень странный крайний случай того, как они Позаботьтесь о защите своего сетевого периметра, или их политика безопасности, по крайней мере снаружи, явно плохо продумана. Вы не можете разобраться в подобных ситуациях, поэтому просто начисляйте им постоянную ставку за людей, которые испытывают боль и продолжают свой день.

Если они блокируют ВСЕ порты, за исключением случаев, когда существует конкретное экономическое обоснование для разрешения трафика через этот порт, в этот момент он тщательно управляется, тогда они делают это, потому что они компетентны в своей работе.

Когда вы пытаетесь написать защищенное приложение, облегчаете ли вы другим процессам чтение и запись информации в него по своему усмотрению, или у вас есть несколько тщательно документированных API, которые, как вы ожидаете, будут вызывать люди и которые вы тщательно дезинфицируете?

Управление рисками - если вы чувствуете, что трафик, направляемый в вашу сеть или из нее, представляет собой риск, тогда вы стремитесь свести к минимуму количество способов, с помощью которых трафик может попасть в Интернет, как с точки зрения количества маршрутов, так и количества методов. Затем вы можете отслеживать и фильтровать эти выбранные «благословенные» шлюзы и порты, чтобы убедиться, что трафик, проходящий через них, соответствует вашим ожиданиям.

Это политика брандмауэра «по умолчанию запрещает» и обычно считается хорошей идеей, с несколькими оговорками, к которым я приду. Это означает, что все заблокировано, если нет особой причины, чтобы разблокировать его, и преимущества причины перевешивают риски.

Редактировать: я должен уточнить, я не просто говорю о рисках, связанных с тем, что один протокол разрешен, а другой заблокирован, я говорю о потенциальных рисках, связанных с тем, что информация может попасть в сеть или выйти из нее без контроля путь.

Теперь о предостережениях и, возможно, о плане освобождения вещей:

Это может раздражать, когда вас блокируют из-за чего-то, в чем вы находитесь с некоторыми из ваших клиентов. Слишком часто люди, отвечающие за брандмауэр, считают своим долгом сказать «Нет» вместо «Вот риски, теперь какие преимущества, давайте посмотрим, что мы можем сделать».

Если вы поговорите с кем-либо, кто управляет безопасностью сети для ваших клиентов, они могут подстроить что-то для вас. Если вы можете определить несколько конкретных систем на их конце, к которым вам нужен доступ, и / или гарантировать, что вы будете подключаться только с определенного IP-адреса, они могут быть намного счастливее создать исключение брандмауэра для соединений SSH для этих конкретных условий, чем они. было бы просто открыть подключения ко всему интернету. Или у них может быть средство VPN, которое вы можете использовать для туннелирования через межсетевой экран.


3
+1 за Если они блокируют ВСЕ порты, если нет особого бизнес-обоснования для разрешения трафика через этот порт, в этот момент он тщательно управляется, тогда они делают это, потому что они компетентны в своих задачах.
cop1152

-1 потому что ssh не может контролироваться сотрудниками службы безопасности, но Telnet может быть. Моя точка зрения заключается в том, что, хотя существуют глупые политики сетевой безопасности, характеризовать политику как «случайную» и «бестолковую» без понимания фактических потребностей бизнеса также недостаточно.
pcapademic

2
Ну, конечно, вы имеете право на свое мнение, Эрик, и я с радостью заменю эти слова, если вы считаете, что они уничижительны, но я вполне уверен, что такая политика будет либо плохо продумана, либо очень необычным крайним случаем.
Роб Мойр

+1 за «все порты»
Ян Бойд

18

Одна крупная компания в Рочестере, штат Нью-Йорк, которая делала много фильмов, блокировала исходящий ssh, когда я там работал, но разрешила telnet ! Когда я спросил об этом, они сказали, что ssh - дыра в безопасности.

Другими словами, компании иногда принимают глупые решения, а затем выдумывают глупые оправдания безопасности, а не признают свои ошибки.


6
Телнет это дыра в безопасности. Это должно быть запрещено (это только для людей, чтобы принимать лучшие глупые решения в будущем).
Ник

3
Позвольте мне уточнить здесь, что такое дыра в безопасности является субъективной для защищаемой поверхности. Если вы владелец веб-сайта и пытаетесь подключиться к вашему серверу, TELNET - это дыра. Если вы являетесь сотрудником финансовой компании, пытающейся подключиться к вашему домашнему серверу снаружи (через линии, контролируемые вашим работодателем), SSH - это дыра в безопасности для ваших работодателей!
Ник

1
Учитывая, как легко обмануть telnet в обоих направлениях, я бы сказал, что telnet - это дыра в безопасности даже для компании, которая позволяет ему выходить. Но компания, которая разрешает это, но не разрешает ssh, не собирается принимать интеллектуальные решения по безопасности в любом случае.
Пол Томблин

3
Telnet - это дар, который постоянно дарит. Это было нормально 20 лет назад, но теперь я действительно хочу, чтобы это прекратилось.
Роб Мойр

2
Все зависит от вашего POV. У них, вероятно, были люди, которым нужно было получить доступ к какому-либо унаследованному процессу через Telnet, чье нас легко проверить. OTOH, вы понятия не имеете, что происходит с SSH, люди могут устанавливать туннели к иностранным сетям и делать всякие глупости. Telnet не следует использовать в наши дни, но любой, кто разрешает исходящий SSH, должен искать новую карьеру.
duffbeer703

6

Я могу понять блокировку входящего SSH-соединения, если компания запрещает внешние входы в систему. Но я впервые слышу об исходящем блоке SSH.

Важно отметить, что такой межсетевой экран, вероятно, ограничит только случайного пользователя SSH. Если кто-то действительно хочет использовать SSH снаружи (который обычно относится к серверу / машине, к которой он имеет значительный доступ вне сети предприятия), он может легко запустить сервер SSH на порту, отличном от 22 (скажем, на порту 80). Блок будет легко обойден.

Существует также несколько инструментов общественного достояния, которые позволят вам выйти из предприятия через HTTP (порт 80 или HTTPS порт 443) и предоставить прокси-серверы, позволяющие подключиться к порту 22 снаружи.


Изменить: Хорошо, подождите секунду, у меня есть идея, почему это может быть политика.

Иногда люди используют SSH-туннели для обхода базовых исходящих межсетевых экранов для протоколов, таких как IM и Bittorrent (например). Это // могло бы вызвать такую ​​политику. Тем не менее, я все еще чувствую, что большинство этих инструментов туннелирования смогут работать на портах, отличных от 22.

Единственный способ блокировать такие исходящие туннели - это обнаружение связи SSH на лету и (динамически) блокирование этих соединений TCP.


3
Порт 443 лучше, поскольку предполагается, что он уже зашифрован, поэтому прокси не будет расстроен странными данными. Вы можете легко настроить ssh-сервер, прослушивающий порт 443, и оттуда вы можете пойти куда угодно.
Банди

1
В одном месте, где я работал, один из моих коллег использовал программу, которая направляла весь сетевой трафик через ssh-туннель через наш веб-прокси на порт 80 на его домашнем компьютере и оттуда в Интернет. Он мог использовать любой протокол, который хотел, но, похоже, он шел из его дома, а не из компании. К счастью, он знал, насколько безрассудны сетевые администраторы, поэтому он не рискует быть пойманным.
Пол Томблин

1
Конечно, если вас поймают, пройдя один из этих тщательно продуманных танцев, чтобы обойти брандмауэр, вы не сможете признать свою невиновность и невежество. Немного сложно сделать все это и сказать: «Извините, босс, это« просто сработало », поэтому я не осознавал, что делал что-то не так».
Роб Мойр

4

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


Разве это не значит, что они тоже должны блокировать HTTPS?
runako

3
Нет, они включают проверку SSL. Этот процесс расшифровывает HTTPS, затем повторно шифрует входящие / исходящие пакеты, внедряя доверенный сертификат на всех рабочих станциях с помощью групповой политики. Таким образом, они могут фильтровать / сканировать так же, как с HTTP. Банковская индустрия - одна из самых драконовских сред для блокировки сетей.
Спулсон

4

На мой взгляд, есть две основные причины заблокировать исходящий порт 22.

Во-первых, как уже упоминалось, переадресацию портов SSH можно использовать в качестве прокси-сервера или обхода других портов и служб, чтобы избежать политики ИТ, утверждающей, что такой трафик не разрешен.

Во-вторых, многие вредоносные программы / бот-сети будут использовать порт 22, потому что он часто рассматривается как «безопасный» и поэтому разрешен. Затем они могут запускать процессы через этот порт, и зараженные компьютеры могут также запускать атаки с использованием перебора SSH.


3

Чаще всего это скорее случай блокирования всех исходящих соединений, если в этом нет необходимости, и до тех пор, пока вы не попытались, никто не просил, чтобы порт 22 был доступен для исходящих соединений (только 80, 433 и т. Д.). Если это так, то решение может быть таким же простым, как связаться с IS / IT и сообщить им, почему вам нужно добавить исключение, чтобы ваша станция могла устанавливать исходящие соединения SSH с конкретными хостами или вообще.

Иногда возникает опасение, что люди могут использовать средство для использования SSH в качестве способа настройки прокси-серверов (через переадресацию портов по каналу) для обхода других элементов управления. Это может быть очень важным фактором в некоторых регулируемых отраслях (например, в банках), где все коммуникации должны контролироваться / регистрироваться по юридическим причинам (препятствовать инсайдерской торговле, обнаруживать / блокировать передачу корпоративных или личных данных и т. Д.) Или компаниям, где есть это большой страх внутренних утечек, раздача, случайно или иначе, коммерческой тайны. В этих случаях использование вашей 3G-линии (или других методов, таких как попытка туннелирования SSH через HTTP) для обхода ограничений может быть нарушением вашего контракта и, следовательно, увольнением (или, возможно, хуже, правовым), поэтому будьте осторожны с согласовать свои действия, прежде чем пытаться его.

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


Да, вполне вероятно, что все исходящие услуги, которые еще не требуется использовать, могут быть заблокированы (по умолчанию).
Ник

Но блокировка tcp / 22 не помешает безопасным исходящим соединениям (что может быть сделано на любом порту, если у пользователя есть прослушиватель снаружи, что в наши дни не является сложной задачей).
Ник

Если внутренняя сеть использует связь SSH, блокировка не будет работать, и если связь SSH не требуется, как правило, в сети также не будет уязвимых прослушивающих машин SSH. И типичное распространение червей не пытается использовать грубую силу SSH (если вас беспокоит этот взгляд на en.wikipedia.org/wiki/SSHBlock ), скорее всего, вы попробуете tcp / 445 на ваших компьютерах с Windows.
Ник

3

Ваши клиенты, вероятно, обладают нетривиальными данными, которые они хотели бы сохранить. Исходящий SSH - это действительно плохая вещь, которую нужно открыть для всей сети. Это довольно тривиально - обходить прокси-серверы, пропускать конфиденциальные данные и вообще быть неприятным.

ИМО, все, что проходит через периметр сети / интернета, должно быть понятным и контролируемым. Если группе разработчиков нужен доступ к серверам у хостинг-провайдера через ssh, это нормально, но это также необходимо документировать. В целом, в местах, где я работал, мы устанавливаем выделенные VPN-соединения типа «сеть-сеть» к местам за пределами нашей сети (по существу, расширяя нашу внутреннюю сеть) и избегаем протоколов клиента, таких как SSH, через Интернет.


Спасибо за ответ. Как вы обрабатываете выделенные VPN для сайтов, находящихся вне вашего контроля (например, EC2, веб-хосты и т. Д.)? Готовы ли эти поставщики, как правило, просто выполнить эту пользовательскую настройку для вас, или вам обычно приходится брать на себя какие-то большие минимальные обязательства с точки зрения бизнеса, чтобы заставить их сделать это?
runako

2
Кроме того, беспокоитесь ли вы о том, что вы заставляете людей использовать 3G-карты вне сети для выполнения своей работы? По моему опыту, заблокированные сети неизбежно приводят к большому количеству карт 3G и другим скрытым обходам, потому что люди не могут выполнить свою работу в отведенное время, если им приходится ждать, пока ИТ-персонал одобрит их использование, если кто-нибудь даже знает, кто позвонить, чтобы получить исключение. (Один вопиющий случай включал почтовый сервер, который не принимал входящие вложения из Интернета. Да!) Мне было бы любопытно, как вы управляете этим балансом.
runako

1
Добавьте в комментарий о переадресации портов через ssh, и я думаю, что это правильный ответ на вопрос. ssh может быть хорошим протоколом для прокси-сервера. Администраторы могут отслеживать, что происходит, могут блокировать переадресацию портов, и люди могут использовать это для удаленной оболочки и служб удаленного копирования.
pcapademic

Мы достаточно велики, чтобы, вероятно, для запуска 90% наших служб не требовалось администрирование исходящих запросов. Обычно, когда мы делаем это, мы делаем выделенный VPN-туннель требованием в RFP, что приводит к устранению поставщиков, которые не будут или не могут его предоставить. Поэтому я считаю, что у нас есть минимальное количество людей, использующих 3G и аналогичные обходные пути.
duffbeer703

Кроме того, вы не можете позволить охранникам диктовать доступ. Вы позволяете специалистам по поддержке приложений и работе в сети найти приемлемое решение при условии проверки безопасности. Разрабатывайте это решение в начале процесса, а не утром, когда вам нужно идти в производство. Это удерживает вас от задержек при получении запросов в стиле DMV.
duffbeer703

2

Потому что SSH можно использовать как VPN. Он зашифрован, поэтому сетевые администраторы буквально не знают, что покидает их сеть (дамп базы данных клиентов и т. Д.). Я только что рассказал об этом в своей ежемесячной рубрике «Секретные туннели» . Стоимость некоторого 3G-Интернета намного ниже, чем необходимость беспокоиться о зашифрованных протоколах, передающих ваши данные из сети. Кроме того, если вы по умолчанию блокируете исходящий порт 22 и проверяете трафик, вы можете легко найти SSH на нестандартных портах и, таким образом, найти людей, нарушающих политику безопасности.


Спасибо за понимание. Похоже, вы не считаете 3G секретным туннелем. Не могли бы вы пролить некоторый свет на то, почему более разумно, чтобы люди были полностью вне сети, когда общались в Интернете? Кажется, вы бы предпочли мошеннические устройства даже меньше, чем открытые 22 для исходящих.
runako

1
«... вы можете легко найти SSH на нестандартных портах ...» Правда? Как искать согласование SSL / TLS на портах, отличных от 443? Очень любопытный.
Dscoduc

Да, вы можете обнаружить трафик ssh, Google: snort / ssh / discovery / content / rules, не знаю о других IDS, но если Snort сможет это сделать, им придется быть довольно взволнованным, чтобы не делать этого также.
Курт

1

Я знаю пару человек, которые злоупотребляют возможностями SSH для установки прокси-сервера SOCKS через SSH, что позволяет обойти некоторые ограничения на сайте.

Или даже какой-нибудь простой переадресации портов ( ssh -L ....), если порт действительно заблокирован из-за ограничений сайта, я бы пошел на:

  • местный админ и
  • ваш менеджер проекта

отнесите их к столу и дайте им понять причину, по которой это заблокировано. Конечно, у вас должны быть веские причины, по которым вам нужен доступ к внешнему порту SSH для разработки внутреннего продукта (внутреннее существо: зачем вам нужен доступ к boxA.example.com, когда вы работаете в компании snakeoil.invalid)

Но мне еще предстоит увидеть компанию, блокирующую исходящий SSH :)


Я видел одну компанию, которая блокирует исходящий SSH. Они также заблокировали почти все остальное и, например, вирус проверил все HTTP-передачи, используя прокси. Компания была центральным депозитарием ценных бумаг.
Эско Луонтола

Я работаю в такой компании. К счастью, SSH может быть туннелирован через https. Конечно, они позволяют только HTTPS-порт 443 ... sslh на помощь!
Mikeage

proxytunnel FTW :)
serverhorror

1

Очевидные ответы все были заявлены. Это зашифрованный протокол, который можно использовать для обхода политики путем создания туннелей (это отличный способ обойти корпоративные веб-фильтры), а также угрозы, создаваемой несанкционированными каналами связи (обратный прокси-сервер).

Это правда, Telnet должен быть уничтожен в любой современной сети. Но я вижу, как разрешить telnet выйти из сети при запрете ssh. Telnet менее эффективен, чем ssh, и я всегда могу контролировать поток в режиме реального времени через мои снифферы. Если в моей основной сети нет устройств telnet, и какой-то пользователь хочет подключиться к telnet, какое мне дело. Я вижу это и проверяю, что это не угроза.

Конечно, все это зависит от идеи, что политика по умолчанию состоит в том, чтобы блокировать все выходные и разрешать только определенные протоколы. Бонусные баллы, если вы проксируете их до того, как попали


0

Это не тот случай, когда мы специально блокируем порт 22, потому что у администраторов есть что-то против SSH, скорее, это случай открытия портов, которые, как они знают, им нужно открыть. Если вашему администратору не сказали, что SSH необходим открыт, ваш администратор заблокирует его по тому же принципу, что и при отключении неиспользуемых служб на сервере.


0

Очевидно, что исходящий блок TCP / 22 легко обойти, если сетевые администраторы не предприняли серьезных, серьезных попыток конкретно блокировать трафик SSH . Более того, администраторы активов должны быть в курсе событий, чтобы проводить инвентаризацию активов, достаточную для ловли 3G-модемов и подозрительных IP-адресов на 2-й сетевой карте. У нас есть сервис ClearWire в нашем регионе, поэтому у нас даже есть WiMax в качестве конечной опции для обеспечения безопасности нашей сети.

Мы не учреждение, которое в основном занимается утечкой информации. Но если бы мы были, нам нужно было бы объединить драконовскую политику сетевой безопасности с драконовской политикой активов и аудитом. Насколько я знаю, я не думаю, что существует готовый пакет безопасности, который отключит сетевое гнездо актива, инвентаризующего с каким-либо внешним подключением к сети. Это может быть

В отсутствие такого пакета процесс инвентаризации активов является одним из лучших способов перехвата конечного сетевого подключения, такого как 3G или WiMax.

И, наконец, слепая блокировка TCP / 22 блокирует только наименее хитрых намерений конечных пользователей нарушить AUP для своей рабочей сети.


Вы можете настроить отчеты с чем-то вроде SCCM, чтобы получить эту информацию. В тех случаях, когда я работаю, использование личного ноутбука или карты WAN для обхода сетевой безопасности является предметом дисциплинарных мер.
duffbeer703

0

Я видел 22 заблокированных, когда они обнаружили, что люди направляли http-трафик через 22. Это было шоу-стопором для тех из нас, кто нуждался в этом, но организация стояла на своем.


0

Большинство крупных организаций будут блокировать все и только разрешать доступ HTTP / HTTPS через прокси-сервер.

Я был бы очень удивлен, узнав, что какие-либо корпорации разрешают прямые внешние подключения с настольных компьютеров или серверов, если в этом нет особой необходимости.


0

Ничто не мешает вам запустить удаленный sshd на порту 80. Как ssh, так и sshd имеют опцию -p для установки порта.

Конечно, если ваши администраторы умны, им следует следить за трафиком ssh, а не только за портом 22. Похоже, у вас есть проблемы с политикой, а не с техническими проблемами.

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.