Рейтинг:0

iptables ПЕРЕНАПРАВЛЕНИЕ NAT

флаг pe

У меня есть сервер, который получает трафик системного журнала. Многие из моих устройств могут отправлять только на порт udp/514 по умолчанию. Мой сервер системного журнала не может работать на портах <1024 и работает на 5000. У меня есть nat PREROUTING REDIRECT в системе, и он отлично работает.

У меня есть несколько беспроводных контроллеров Aruba, которые я хочу направить на другой порт. Я пытаюсь перенаправить пакеты с исходным адресом 10.5.5.0/24 на порт 5008. Вот полная конфигурация.

* калечить
: ПРЕДВАРИТЕЛЬНОЕ ПРИНЯТИЕ [53851:21198923]
:ВВОД ПРИНЯТЬ [53851:21198923]
:ВПЕРЕД ПРИНЯТЬ [0:0]
: ВЫВОД ПРИНЯТ [1227:8988526]
:ОТПРАВКА ПРИНЯТИЯ [1227:8988526]
СОВЕРШИТЬ
# Завершено в четверг, 30 сентября, 14:52:43 2021 г.
# Сгенерировано iptables-save v1.8.4, четверг, 30 сентября, 14:52:43 2021
*натуральный
: ПРЕДВАРИТЕЛЬНОЕ ПРИНЯТИЕ [0:0]
:ВВОД ПРИНЯТЬ [0:0]
:ОТПРАВКА ПРИНЯТИЯ [0:0]
: ВЫВОД ПРИНЯТЬ [0:0]
-A PREROUTING -s 10.5.5.0/24 -p udp -m udp --dport 514 -j REDIRECT --to-ports 5008
-A ПРЕДВАРИТЕЛЬНАЯ МАРШРУТИЗАЦИЯ -p udp -m udp --dport 514 -j ПЕРЕНАПРАВЛЕНИЕ --to-ports 5000
СОВЕРШИТЬ
# Завершено в четверг, 30 сентября, 14:52:43 2021 г.
# Сгенерировано iptables-save v1.8.4, четверг, 30 сентября, 14:52:43 2021
*фильтр
:ВВОД ПРИНЯТЬ [53852:21199096]
:ВПЕРЕД ПРИНЯТЬ [0:0]
: ВЫВОД ПРИНЯТ [1234:8990186]
-A INPUT -s 10.0.0.0/8 -p udp -m udp --dport 514 -j ПРИНЯТЬ
СОВЕРШИТЬ

Редирект на udp/5000 работает отлично, но все перенаправляется на 5000. Трафик Aruba с 10.5.5.0/24 не может быть перенаправлен на udp/5008.

Если я дам команду: iptables -t nat -L -n -v --номер строки . Это подтверждает, что нулевые байты попадают в строку 1, а все попадают в строку 2.

Я полагаю, что порядок важен, и более конкретная строка должна быть впереди общей строки (как показано выше). Пробовал их переворачивать, не помогло.

Системный журнал на UDP является однонаправленным и не имеет состояния, поэтому вы можете подумать, что это будет самый простой NAT в мире.

Кто-нибудь делал такой конфиг? Это все готово, и я просто пытаюсь отделить входящее сообщение системного журнала Aruba от всех других моих сообщений.

Спасибо!

флаг it
Вероятно, вам нужно сбросить правила conntrack в ядре, чтобы они воссоздавались из новых добавленных вами iptables. Если трафик системного журнала непротиворечив (например, пакеты поступают в течение каждых 30 секунд или около того, что является TTL по умолчанию для записей conntrack до истечения срока их действия (настраивается с помощью настройки ядра)), более старые записи conntrack останутся активными, и поэтому трафик будет продолжать поражать старый порт. См. https://serverfault.com/questions/367626/delete-specific-conntrack-entries для быстрого примера того, как использовать conntrack.
флаг pe
В моей системе нет conntrack. Что я сделал, так это ```сервисный перезапуск iptables```. Это очищает счетчики. Прямо сейчас я предполагаю, что это также очищает таблицу соединений. Это все еще не работает. Нет обращений по первой позиции. Сервер системного журнала по-прежнему не видит пакетов, поступающих на udp/5008.
флаг fr
Можете ли вы проверить с помощью инструмента захвата пакетов (например, tcpdump или tshark), действительно ли вы получаете трафик из сети 10.5.5.0/24 на порт UDP 514? Адрес НАЗНАЧЕНИЯ правильный? Кстати, для чего нужно правило INPUT? Это лишнее.
флаг pe
@Tomek Я использовал «tcpdump udp -nnX порт 514 и сеть 10.5.5.0/24», и да, я получаю много пакетов системного журнала. Правило INPUT существует, потому что я не осознавал, что условие по умолчанию для пропуска всего трафика было на месте, и я просто пытался что-нибудь заставить это работать. Пожалуйста, будьте добры и помните, я новичок в iptables. Спасибо!
флаг it
"Я предполагаю, что это также очищает таблицу соединений" - ничего не предполагайте. Эти инструменты взаимодействуют с различными подсистемами ядра. Пожалуйста, установите инструмент conntrack и запустите `conntrack -L`, чтобы просмотреть сеансы NAT, которые в настоящее время отслеживаются. Используйте `conntrack -F`, чтобы полностью очистить таблицу. Если это невозможно, отправьте систему на перезагрузку.
флаг pe
Из любви к Питу. Это сделало это. `conntrack -L` подтвердил проблему. `conntrack -F` решил проблему. Я сделал это предположение из-за того, насколько глупо было бы, что для этого нужен отдельный шаг. Хочет ли Linux разрушить жизни людей? :-) Спасибо за помощь!
Рейтинг:0
флаг za

Перенаправьте порт 514 на 5000 и заставьте его работать на локальной машине

Если вы создаете правило iptables на своем сервере системного журнала, используйте следующую команду:

iptables -t nat -A ВЫВОД -o lo -p tcp --dport 514 -j ПЕРЕНАПРАВЛЕНИЕ --на порт 5000

или же

iptables -A PREROUTING -t nat -i eth0<Incoming-interface> -p tcp --dport 514 -j REDIRECT --to-port 5000

перенаправить входящее соединение на другой IP-адрес на определенном порту

Если вы пытаетесь выполнить переадресацию портов на другой IP-адрес и ваш сервер (я назвал его брандмауэром), который получает UDP/514 за клиентом и сервером системного журнала, как сценарий на мой гитхаб, ты должен сделать перенаправление портов iptables с настройкой дерева:

простой пример сценария:

 | клиент: 10.5.5.0/24 | --> | 10.5.5.1:брандмауэр enp0s8 enp0s3:192.168.2.1 | --> | 192.168.2.2:enp0s3 Системный журнал |

1- Включить IP-переадресацию

sudo sysctl -w net.ipv4.ip_forward=1

2- PREROUTING для входящего трафика на брандмауэр

sudo iptables -t nat -A PREROUTING -d 10.5.5.1 -i enp0s8 -p tcp --dport 514 -j DNAT --назначение 192.168.2.2:5000 

3- POSTROUTING для исходящего трафика на сервер Syslog

sudo iptables -t nat -A POSTROUTING -o enp0s3 -p tcp --dport 514 -d 192.168.2.2 -j SNAT --to-source 192.168.2.1

Ответить или комментировать

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