Всем добрый день! Помогите пожалуйста разобраться с правильным написанием правила проброса портов.Есть сервер в локальной сети на который мы посылаем какие-то пакеты и нужно чтобы он пробрасывал эти пакеты на другой сервер в локальной сети с таким же портом.
где:
10.20.80.4 локальный сервер с которого шлём пакеты
10.20.11.6 локальный сервер на который приходят пакеты
10.20.11.4 локальный сервер на который надо пробросить пакеты с 10.20.11.6
2115 - порт на который кидаемПробую так, но результата нет.
iptables -t nat -A PREROUTING --dst 10.20.11.6 -p tcp --dport 2115 -j DNAT --to-destination 10.20.11.4
> нужно чтобы он пробрасывал эти пакеты на другой сервер в локальной
> сети с таким же портом.
> где:
> 10.20.80.4 локальный сервер с которого шлём пакеты
> 10.20.11.6 локальный сервер на который приходят пакеты
> 10.20.11.4 локальный сервер на который надо пробросить пакеты с 10.20.11.6
> 2115 - порт на который кидаем
> Пробую так, но результата нет.
> iptables -t nat -A PREROUTING --dst 10.20.11.6 -p tcp --dport 2115 -j
> DNAT --to-destination 10.20.11.4Разобрался сам вот таким образом
iptables -t nat -A PREROUTING -i ens31 -p tcp --dport 2115 -j DNAT --to 10.20.11.4:2115
iptables -t nat -A POSTROUTING -o ens31 -j MASQUERADE
>[оверквотинг удален]
>> 10.20.11.6 локальный сервер на который приходят пакеты
>> 10.20.11.4 локальный сервер на который надо пробросить пакеты с 10.20.11.6
>> 2115 - порт на который кидаем
>> Пробую так, но результата нет.
>> iptables -t nat -A PREROUTING --dst 10.20.11.6 -p tcp --dport 2115 -j
>> DNAT --to-destination 10.20.11.4
> Разобрался сам вот таким образом
> iptables -t nat -A PREROUTING -i ens31 -p tcp --dport 2115 -j
> DNAT --to 10.20.11.4:2115
> iptables -t nat -A POSTROUTING -o ens31 -j MASQUERADEВсё правильно. Если вы посмотрите на траффик сниффером на всех 3-ёх машинах, в случаях с правилом MASQUERADE и без него, то будет весьма наглядно почему оно так.
Из соображений чистоты, я бы рекомендовал переделать правила на нечто более симметричное и конкретное:
iptables -t nat -A PREROUTING -i ens31 --src 10.20.80.4 --dst 10.20.11.6 -p tcp --dport 2115 -j DNAT --to 10.20.11.4:2115
iptables -t nat -A POSTROUTING -o ens31 --src 10.20.80.4 --dst 10.20.11.4 -p tcp --dport 2115 -j SNAT --to-source 10.20.11.6Разница между SNAT и MASQUERADE: https://terrywang.net/2016/02/02/new-iptables-gotchas.html
Кроме того, условия ограниченны строже. "--src" не слишком принципиален, но важно что SNAT надо применять ровно к тому-же, к чему применяется DNAT.А по хорошему, рекомендую rinetd для таких задач. Или вообще haproxy.
Большое спасибо за совет!
> Всем добрый день! Помогите пожалуйста разобраться с правильным написанием правила проброса
> портов.
> Есть сервер в локальной сети на который мы посылаем какие-то пакеты и
> нужно чтобы он пробрасывал эти пакеты на другой сервер в локальной
> сети с таким же портом.
> где:
> 10.20.80.4 локальный сервер с которого шлём пакеты
> 10.20.11.6 локальный сервер на который приходят пакеты
> 10.20.11.4 локальный сервер на который надо пробросить пакеты с 10.20.11.6
> 2115 - порт на который кидаемhttps://www.opennet.dev/man.shtml?topic=iptables&category=8&r...
ерунду спрашиваете.
вам нужно делать таким образомiptables -A INPUT -p tcp --tcp-flags FIN,SYN,RST,ACK SYN --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --tcp-flags SYN,ACK ACK --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --tcp-flags FIN,SYN,RST,ACK SYN,ACK --sport 80 -j ACCEPT
iptables -A INPUT -p tcp --tcp-flags SYN,ACK ACK --sport 80 -j ACCEPT