Как я передаю/NAT весь трафик одному интерфейсу/IP к удаленному IP?

у Вас есть несколько опций. Но сначала я предложил бы, чтобы Вы, возможно, сделали свою жизнь легче при помощи xcopy только скопировать каталоги и их соответствующие настройки ACL/Auditing.

Вы смогли продолжать cacls или использовать что-то еще...

  1. AccessEnum от Sysinternals
  2. PowerShell может иметь некоторые возможности. Эта ССЫЛКА может помочь (исправленный).
  3. Python, обращающийся к Win32 API. Я не протестировал эту ССЫЛКУ, но взглянул...

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

5
задан 16 July 2013 в 17:51
2 ответа

Поскольку вы хотите, чтобы ваш сервер работал как маршрутизатор, вам необходимо проверить несколько вещей:

Во-первых, в ядре должна быть включена пересылка пакетов (по умолчанию это не так):

echo "1" > /proc/sys/net/ipv4/ip_forward

Вы также должны убедиться, что iptables разрешает пересылку трафика (посмотрите на вашу цепочку FORWARD).

Этого и правила DNAT должно быть достаточно, чтобы пакет перемещался в одном направлении. Однако, если вам нужен поток TCP, вы также должны убедиться, что у вас также есть упомянутые вами правила SNAT (в противном случае удаленный хост будет думать, что существует проблема, поскольку сервер в 2.2.2.3 отвечает на отправленный им пакет. как 1.1.1.3).

Между прочим, по соображениям производительности лучше использовать SNAT вместо MASQUERADE, если у вас статический IP.

0
ответ дан 3 December 2019 в 01:45

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

1) Сделать сервер A следующим шагом для сервера B для рассматриваемого трафика, вот почему он работает для вашего маршрутизатора, как уже упоминалось. Это можно сделать, в порядке неуклюжести, сделав сервер A маршрутом по умолчанию для сервера B, или используя политику маршрутизации , или используя некоторые причудливые iptables, или используя туннель какого-нибудь типа.

2) "Вручную" реверсируя NAT сервера A на сервере B, что приводит к асимметричному потоку трафика (в общем случае, не рекомендуется). Что-то вроде iptables -t nat -I POSTROUTING -j SNAT -s 2.2.2.3 --to 1.1.1.3

Я на 100% уверен в варианте (1). Я на 90% уверен в (2).

Чтобы понять это, вам нужно понять поток трафика.

  1. Клиент X посылает пакет на 1.1.1.3.
  2. Сервер A NAT передает назначение этого пакета на 2.2.2.3-я предварительная маршрутизация, затем направляет трафик на 2.2.2.3, затем NAT передает источник этого пакета на 1.1.1.3 после маршрутизации, затем посылает пакет серверу B.
  3. Сервер B получает пакет на 2.2.2.3 и видит адрес источника 1.1.1.3, на втором шаге NAT. Он обрабатывает пакет и отправляет ответ обратно своему источнику (1.1.1.3).
  4. Сервер A получает пакет на 1.1.1.3, переворачивает NAT источника, перенаправляет пакет, переворачивает NAT назначения и отправляет пакет обратно клиенту X.
  5. Клиент X получает ответ от 1.1.1. 3

Теперь давайте представим, что случилось бы, если бы у вас не было второго NAT:

  1. Клиент X посылает пакет на 1.1.1.3.
  2. Сервер A NATs назначает этот пакет предварительной маршрутизации 2.2.2.3, затем перенаправляет трафик на 2.2.2.3, но оставляет адрес источника как X, когда посылает пакет на сервер B.
  3. Сервер B получает пакет на 2.2.2.3 и видит адрес источника X. Он обрабатывает пакет и посылает ответ обратно своему источнику X.
  4. Клиент X получает ответ от 2.2.2.3 и отбрасывает его, потому что он не знает 2.2.2.3 от Адама!

Для того, чтобы Client X понял пакет, он должен прибыть к Client X с тем же самым адресом источника, что и место назначения оригинального пакета.

Обычный способ, чтобы это произошло, это чтобы у сервера B была возможность обратить вспять NAT с предварительной маршрутизацией. Чтобы это произошло, вам нужно, чтобы пакет вернулся через него позже. В настоящее время вы делаете это, изменяя адрес источника пакета, но это уничтожает информацию, которую вы запрашиваете в вашем пересмотренном вопросе.

Так что первый шаг вашего ответа, вы не можете сделать второй шаг NAT (после маршрутизации SNAT): на сервере A запустите iptables -t nat -D POSTROUTING -j SNAT --to 1. 1.1.3.

Теперь у вас осталась задача перевернуть первый шаг NAT.

Если это собирается сделать сервер B, вам нужно, чтобы сервер B принимал пакеты.

  • Это относительно просто, если сервер A имеет адрес C в той же локальной сети, что и сервер B. На сервере B: ip маршрут заменить по умолчанию через C, ИЛИ ip маршрут добавить по умолчанию через таблицу C a; ip правило добавить из 2.2.2.3 таблицы a.
  • Иначе вы должны сделать что-нибудь причудливое с туннелями.

Если, однако, маршрутизатор в месте расположения сервера B не является особенно сложным (проверка пакетов и отклонение пакетов, которые не в правильной последовательности для известного потока трафика), у вас есть несколько более простой, если очень грубый, вариант: обратите NAT на сервере B, основываясь на вашем знании о том, что было сделано на сервере A: на сервере B iptables -t nat -I POSTROUTING -j SNAT -s 2. 2.2.3 --to 1.1.1.3 должны сделать это в предлагаемом примере. Это оставит систему отслеживания соединений Linux в A и B немного запутанной (серверы не смогут связать возвращаемый трафик с входящим, поэтому их отслеживание соединений оставит соединения в НЕЗАРЕГИСТРИРОВАННОМ состоянии), но это должно работать нормально для большинства трафика в сотни мегабит.

Проходя через поток трафика в последний раз в этом случае:

  1. Клиент X посылает пакет на 1.1.1.3.
  2. Сервер A NAT устанавливает назначение этого пакета на предварительную маршрутизацию 2.2.2.3, а затем перенаправляет трафик на 2. 2.2.3, но оставляет адрес источника X, когда он посылает пакет серверу B.
  3. Сервер B получает пакет на 2.2.2.3 и видит адрес источника X. Он обрабатывает пакет и перенаправляет ответ обратно к своему источнику X, но перед отправкой делает пост-маршрутизацию NAT адреса источника на 1. 1.1.3.
  4. Клиент X получает ответ, утверждающий, что он от 1.1.1.3 и счастлив.
4
ответ дан 3 December 2019 в 01:45

Теги

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