iptables NAT REDIRECT

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

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

*mangle
:PREROUTING ACCEPT [53851:21198923]
:INPUT ACCEPT [53851:21198923]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [1227:8988526]
:POSTROUTING ACCEPT [1227:8988526]
COMMIT
# Completed on Thu Sep 30 14:52:43 2021
# Generated by iptables-save v1.8.4 on Thu Sep 30 14:52:43 2021
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A PREROUTING -s 10.5.5.0/24 -p udp -m udp --dport 514 -j REDIRECT --to-ports 5008
-A PREROUTING -p udp -m udp --dport 514 -j REDIRECT --to-ports 5000
COMMIT
# Completed on Thu Sep 30 14:52:43 2021
# Generated by iptables-save v1.8.4 on Thu Sep 30 14:52:43 2021
*filter
:INPUT ACCEPT [53852:21199096]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [1234:8990186]
-A INPUT -s 10.0.0.0/8 -p udp -m udp --dport 514 -j ACCEPT
COMMIT

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

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

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

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

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

Спасибо!

0
задан 30 September 2021 в 15:10
1 ответ

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

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

iptables -t nat -A OUTPUT -o lo -p tcp --dport 514 -j REDIRECT --to-port 5000

или

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

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

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

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

 | client:10.5.5.0/24 | -->   | 10.5.5.1:enp0s8 firewall enp0s3:192.168.2.1 | --> | 192.168.2.2:enp0s3 Syslog |

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 --to-destination 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
0
ответ дан 30 September 2021 в 21:19

Теги

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