Как бы вы поступили следующим образом:NAT

Примечание: доступ в Интернет должен работать всегда, используя классическое действие MASQUERADE в цепочке POSTROUTING таблицы nat.

Теперь вызов:

  • для всех подключений, обращающихся к маршрутизатору (в середине) извне (справа) через определенный порт (1)
  • отправьте эти запросы внутреннему хосту (слева), одновременно создавая впечатление, что запрос поступил от маршрутизатора (посередине) (2)
  • для ответа (3 и 4) обратный процесс.

Я не знаю, как бы вы назвали этот конкретный метод для NAT, и я не знаю, возможно ли это вообще (или с помощью netfilter).

(Не спрашивай почему. Но если вы это сделаете: это связано с таблицей маршрутизации на хосте 192.168.1.2, которая не имеет маршрута по умолчанию для интерфейса, который я здесь показываю, но я бы хотела, чтобы он был доступен из любого места, и я верю, что это единственный способ сделать это; путем сопоставления доступа в Интернет к подключению / сети, которая непосредственно подключена, следовательно, переопределяя таблицу маршрутизации. Я надеюсь.)

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

1 ответ1

1

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

Я думаю, что путь к тому, что вы хотите сделать чисто в iptables это настроить второй NAT между 192.168.1.2 и 192.168.1.44.

Вероятно, будет проще и меньше головной боли сделать что-то вроде прокси или VPN-туннеля, если это возможно.

Переход по маршруту VPN - На 192.168.1.44 запустите сервер OpenVPN, создав виртуальный интерфейс "tun0". Настройте клиент, который подключается к нему на 192.168.1.2 - это также настроит виртуальный "tun0" на его стороне.

Затем вы поместите эти виртуальные интерфейсы в их собственную сеть (например, 192.168.99.0/24). "tun0" на стороне сервера по умолчанию будет 192.168.99.1, а другая сторона, вероятно, будет по умолчанию 192.168.99.6 - но вы можете использовать "директиву конфигурации клиента", чтобы назначить ему фиксированный IP. Скажите любые службы, которые должны быть видны в Интернете для прослушивания 192.168.99.6. Простая цель REDIRECT в вашей таблице PREROUTING должна перенаправить определенный порт на 192.168.99.6.

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .