Трансляция сетевых адресов (NAT), похоже, действует как брандмауэр для хостов, находящихся за ним, потому что они недоступны. Хотя я бы никогда не стал полагаться на него как на свой брандмауэр, в чем его недостатки как брандмауэра?
Я спрашиваю об этом по причинам, которые я бы назвал «академическими». Я знаю, что NAT не защитит людей от проникновения в сам брандмауэр, и что чем больше уровней безопасности, тем лучше. Меня больше интересует, как, если для этой цели использовался NAT, как можно было бы использовать сам NAT.
Обновление, например:
Один публичный IP: 10.10.10.10
Одна локальная сеть: 192.168.1.1/24
Если весь исходящий трафик из локальной сети имеет исходящий NAT для 10.10.10.10, а единственное другое сопоставление NAT - это 10.10.10.10, порт 80 сопоставлен с 192.168.1.100. Как можно получить доступ к порту 22 на 192.168.1.50?
При использовании NAT IP-адреса во внутренней сети не маршрутизируются из внешней; сравнение с брандмауэром не совсем корректно, потому что брандмауэр фильтрует сетевой трафик, который обычно должен уметь течь через него; NAT изменяет трафик, который обычно не должен иметь возможность течь таким образом, позволяя ему течь по определенным правилам.
Брандмауэр охраняет дверь, которая иначе была бы открыта.
NAT открывает дверь там, где ее нет.
С брандмауэром вы мог разрешить весь трафик из внешней сети во внутреннюю защищенную; с NAT вы не мог, даже если бы захотел.
Это две совершенно разные вещи, даже если их часто путают; Что касается безопасности, частная IP-сеть за NAT на самом деле Больше безопаснее, чем сеть с общедоступным IP за брандмауэром.
Это именно то, о чем я говорил; в вашем случае 192.168.1.50 не адресуется извне, поэтому абсолютно ни за что к нему можно получить доступ, если вы явно не перенаправите на него какой-либо внешний IP / порт.
По умолчанию простой NAT отбрасывает или отклоняет любое входящее соединение с неназначенным портом. Это само по себе первая и самая важная особенность брандмауэра. Так что да, NAT работает как ограниченный брандмауэр.
Но есть два важных ограничения:
По умолчанию NAT не блокирует исходящие соединения, поэтому вы уязвимы для любого вида инфекции, которая каким-то образом проникает внутрь. Самый простой пример - вредоносная веб-страница или вложение электронной почты. Во многих случаях эти вредоносные программы включают в себя очень ограниченный код при первой загрузке и нуждаются в некоторой «помощи» извне. Если у вас есть брандмауэр с жесткими ограничениями, он может заблокировать этот шаг, остановив или замедлив повреждение.
В общем, устройство периметра (NAT-маршрутизатор / брандмауэр и т. Д.) Может быть использовано из-за ошибок реализации (например, разрешение доступа администратора или uPnP (см. https://community.rapid7.com/docs/DOC-2150 ) из внешнего интерфейса), или ошибки оператора (например, открыли дыру для перенаправления портов и забыли о ней).
Брандмауэры более сложны и поэтому более подвержены человеческим ошибкам. Также вас не защитят от социальной инженерии, фишинга и т. Д. Брандмауэры более высокого уровня с проверкой пакетов могут обнаруживать вредоносные программы.
Другие потенциальные недостатки могут быть вызваны проблемами реализации в другом оборудовании, например уязвимостью в системе, обнаруженной переадресацией портов, uPnP и т. Д. Поскольку маршрутизатор NAT пересылает пакеты на устройство, устройство должно защищать себя. Кстати, некоторые люди предлагают настройку с двойным NAT, с более безопасными сервисами за двумя маршрутизаторами NAT, а бит-торрент, игровая консоль и биткойн-майнеры просто защищены одним маршрутизатором NAT.
Одним из возможных векторов атаки может быть использование трафика на основе UDP, который раскрывается процессом NAT, поскольку UDP не имеет состояния - протокол должен аутентифицировать состояние сеанса, и это может быть ошибочным. Маршрутизаторы NAT открывают порт UDP на некоторое время, и он использует тайм-аут для их закрытия в сочетании с IP-адресом удаленного соединения. (У сеанса TCP есть F-флаг, указывающий, что сеанс завершен). Видеть http://unixwiz.net/techtips/iguide-kaminsky-dns-vuln.html для типа проблемы, которую может вызвать UDP.
Вам нужно будет взломать соединение, чтобы прорваться во внутреннюю сеть, но это можно сделать. Первое, что приходит мне в голову, - атаковать человека посередине ... Вот где настоящий брандмауэр будет лучше, чем NAT. Брандмауэр может иметь встроенный интеллект (IPS Intrusion Prevention) для отслеживания распространенных эксплойтов.
Кстати, настоящий NAT-бокс просто использует таблицу поиска NAT для изменения IP-адресов внутренних клиентов на внешние адреса. То, что большинство людей думает о блоке NAT, действительно PAT (преобразование адресов порта). Один внешний IP-адрес и множество внутренних IP-адресов. В этом случае транслируются и IP-адрес, и исходный порт источника.
В заключение, настоящий NAT-бокс легко достать. Блок PAT сложнее, но все же может быть скомпрометирован довольно простой атакой.
Есть разные сценарии:
Если вы используете NAT и не используете настоящую FW, последствия будут следующими:
- точка 1 безопасна настолько, насколько может быть точка 3
- если вы выставите сервисы, я могу использовать их для получения доступа к локальной сети (конечно)
- Я могу отправить по почте троян, вредоносное ПО или что угодно, что может открыть обратная оболочка, или, в более общем смысле, действовать как обратное соединение.
Во всех этих случаях вы могли бы получить лучшую защиту, если бы вы стояли за настоящим FW.
По тем же причинам я фильтрую исходящий трафик и на своих FW / серверах. Чтобы максимально ограничить возможность открытия обратных соединений.
В: Как можно получить доступ к порту 22 на 192.168.1.50?
A: Найдите способ (см. Выше) установить программу обратного подключения на ПК или сервер внутри локальной сети, чем получить доступ ко всему внутри локальной сети, как вы являются внутри. Просто ssh -L может сделать эту работу