URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID10
Нить номер: 5198
[ Назад ]

Исходное сообщение
"iptables DNAT и FORWARD"

Отправлено Zenith , 02-Окт-13 01:05 
Здравствуйте, дорогие форумчане.
Вопрос очень прост. Как ПРАВИЛЬНО написать правила проброса порта с внешного ip на хост внутри локальной сети? У меня 2 варианта:

1) Ограничиваем проброс указанием источника:

-A PREROUTING -t nat -s 1.1.1.1 -d 2.2.2.2 -p tcp -m tcp --dport 3389 -j DNAT --to-destination 192.168.1.1

и разрешаем проход в FORWARD

-A FORWARD -i eth2 -o eth0 -d 192.168.1.1 -p tcp --dport 3389 -j ACCEPT

2) Или же пробрасываем всех страждущих

-A PREROUTING -t nat -d 2.2.2.2 -p tcp -m tcp --dport 3389 -j DNAT --to-destination 192.168.1.1

а не угодных "косим" в FORARD

-A FORWARD -i eth2 -o eth0 -s 1.1.1.1 -p tcp --dport 3389 -j ACCEPT
-A FORWARD -i eth2 -o eth0 -p tcp --dport 3389 -j DROP


Какое решение, идиологически, более правильное??


Содержание

Сообщения в этом обсуждении
"iptables DNAT и FORWARD"
Отправлено PavelR , 02-Окт-13 07:32 

> Какое решение, идиологически, более правильное??

Я думаю, что в случае DNAT решение зависит от задачи.
Например, может случиться так, что с другого src IP пойдет на другой dnat IP, и т п.

Опять же, зависит от числа IP, которым разрешено. Если их >1 я бы делал по варианту 2, но с учетом вышенаписанного мной.


---

В случае с SNAT решение "фильтровать в nat" обычно приводит к тому, что на внешнем интерфейсе летают пакеты с адресами внутренней сети.

---

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



"iptables DNAT и FORWARD"
Отправлено reader , 02-Окт-13 11:12 
>[оверквотинг удален]
> -A FORWARD -i eth2 -o eth0 -d 192.168.1.1 -p tcp --dport 3389
> -j ACCEPT
> 2) Или же пробрасываем всех страждущих
> -A PREROUTING -t nat -d 2.2.2.2 -p tcp -m tcp --dport 3389
> -j DNAT --to-destination 192.168.1.1
> а не угодных "косим" в FORARD
> -A FORWARD -i eth2 -o eth0 -s 1.1.1.1 -p tcp --dport 3389
> -j ACCEPT
> -A FORWARD -i eth2 -o eth0 -p tcp --dport 3389 -j DROP
> Какое решение, идиологически, более правильное??

если сделаете по 1 варианту , то желательно не угодных "косим" в INPUT, но там можно политикой по умолчанию обойтись


"iptables DNAT и FORWARD"
Отправлено Zenith , 02-Окт-13 21:17 
>[оверквотинг удален]
>> 2) Или же пробрасываем всех страждущих
>> -A PREROUTING -t nat -d 2.2.2.2 -p tcp -m tcp --dport 3389
>> -j DNAT --to-destination 192.168.1.1
>> а не угодных "косим" в FORARD
>> -A FORWARD -i eth2 -o eth0 -s 1.1.1.1 -p tcp --dport 3389
>> -j ACCEPT
>> -A FORWARD -i eth2 -o eth0 -p tcp --dport 3389 -j DROP
>> Какое решение, идиологически, более правильное??
> если сделаете по 1 варианту , то желательно не угодных "косим" в
> INPUT, но там можно политикой по умолчанию обойтись

Не-не-не. INPUT тут не участвует. Это транзитный трафик.


"iptables DNAT и FORWARD"
Отправлено reader , 03-Окт-13 08:15 
>[оверквотинг удален]
>>> -A PREROUTING -t nat -d 2.2.2.2 -p tcp -m tcp --dport 3389
>>> -j DNAT --to-destination 192.168.1.1
>>> а не угодных "косим" в FORARD
>>> -A FORWARD -i eth2 -o eth0 -s 1.1.1.1 -p tcp --dport 3389
>>> -j ACCEPT
>>> -A FORWARD -i eth2 -o eth0 -p tcp --dport 3389 -j DROP
>>> Какое решение, идиологически, более правильное??
>> если сделаете по 1 варианту , то желательно не угодных "косим" в
>> INPUT, но там можно политикой по умолчанию обойтись
> Не-не-не. INPUT тут не участвует. Это транзитный трафик.

транзитный это для кого dnat сделаете, а кого не завернете - INPUT. Если конечно ip назначения изначально - ip этой машины


"iptables DNAT и FORWARD"
Отправлено John , 02-Окт-13 22:07 
Модно сделать так

# здесь проверяются только пакеты RDP
iptables -t nat -N RDP
iptables -t nat -A RDP -s 1.1.1.1 -d 2.2.2.2 -j DNAT --to-destination 192.168.1.1
iptables -t nat -A RDP -s A.B.C.D -d E.F.G.H -j DNAT --to-destination I.J.K.L
# не тратим ресурсы на непрошенных гостей
iptables -t nat -A RDP -j TARPIT

# каждый пакет проверяется здесь только один раз
iptables -t nat -p tcp -m tcp --dport 3389 -g RDP

# если есть желание отфильтровать что-нибудь - IMHO: чем раньше - тем меньше ресурсов на это будет потрачено