BG Development


Страници: (2) 1 [2]   ( Първото ново мнение ) Reply to this topicStart new topicStart Poll

> NFTABLES redirect 80 to 8080
gat3way
Публикувано на: 08-10-2017, 15:54
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 1597
Регистриран на: 22.06.12



Одма де. Проблемът е във "входната точка" така да го наречем, тя не е "incoming packet", а "locally-generated packet", от другата страна на диаграмата. Оттам започва всичко когато тръгнеш да установяваш TCP връзка до порт 80 на локалхост и пратиш SYN пакета. Той не минава изобщо през прерутинг чейна. Като резултат - ако имаш нещо дето слухти на 80-ти порт, ще достъпиш него. Ако нямаш - ще ти се върне RST. От друга страна, ако някой хост отвън реши да достъпи услугата на 80-ти порт, dnat-а ще сработи.

Има и други забавни казуси, свързани с dnat-ването, примерно какво става ако dnat-неш към друг хост от същия събнет и трети хост, пак от този събнет реши да го достъпи, тогава пак ще се случи случка. Ама тази случка не е предмет на тази тема.
PMEmail Poster
Top
thrawn
Публикувано на: 08-10-2017, 16:05
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 978
Регистриран на: 17.01.17



Локално генериран пакет на тая диаграма описва пакет които тръгва от локално приложение. Когато се касае за вътрешен трафик началната и кррайната точка са свързани, но през loopback интерфейсът.

Нямаш ли машина с iptables да тестваш, щом не си вярваш на графиките и на статистиката която постна Bender.
PMEmail Poster
Top
gat3way
Публикувано на: 08-10-2017, 16:07
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 1597
Регистриран на: 22.06.12



Е curl-а на Bender какво е icon_smile.gif

Имам машина да тествам разбира се.
PMEmail Poster
Top
thrawn
Публикувано на: 08-10-2017, 16:13
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 978
Регистриран на: 17.01.17



Ми тествай де. Аз утре ще пусна тест щото сега няма на какво.
Иначе curl -a си стига до dnat-ът (нали има постъпили пакети по правилото) ама какво не е наред в неговия случай не знам (не съм ползвал тоя звяр дето той си играе с него).

Иначе, преди няколко дена правих точно локален dnat заради тая тъпотия на нап (ползвам banshee за да слушам музика а той пуска някакъв сървиж на порта дето тия от нап ползват).
PMEmail Poster
Top
gat3way
Публикувано на: 08-10-2017, 16:20
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 1597
Регистриран на: 22.06.12



Не съм мазохист, достатъчно пъти съм настъпвал тая мотика: )
PMEmail Poster
Top
thrawn
Публикувано на: 08-10-2017, 16:25
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 978
Регистриран на: 17.01.17



Е какво има да си мазохист

CODE
nc -l 5555


И съответно
CODE
iptables -t nat -A PREROUTING --dport 9999 -j DNAT --to-port 5555

CODE
nc 9999


Може да съм оакал синтаксиса нещо но в общи линии е това. Вместо DNAT може да се ползва и REDIRECT

Това мнение е било редактирано от thrawn на 08-10-2017, 16:26
PMEmail Poster
Top
gat3way
Публикувано на: 08-10-2017, 19:03
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 1597
Регистриран на: 22.06.12



Абе понеделник е утре, значи имай малко търпение и пробвай сам да видиш какво ще стане. Искаш сега да се караме за глупости icon_smile.gif
PMEmail Poster
Top
Bender
Публикувано на: 08-10-2017, 20:48
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 4724
Регистриран на: 19.06.14



Ако на някой му потрябва в бъдеще - за да работи от локалхост трябва да се добави

CODE
table ip nat-ipv4 {
 chain input {
   type nat hook input priority 0;
 }

 chain output {
   type nat hook output priority 100;
   tcp dport 80 dnat :8080
 }
}


И съответно ако не искаме услугата да се достъпва на истинския порт на който слуша (8080) а само на 80:

CODE
table inet filter {
 chain input {
   type filter hook input priority 0;
   tcp dport 8080 meta mark 1 drop
 }

 chain output {
   type filter hook output priority 0;
 }

 chain prerouting {
   type filter hook prerouting priority 0;
   tcp dport 8080 meta mark set 1
 }

 chain postrouting {
   type filter hook postrouting priority 100;
 }
}


Това мнение е било редактирано от Bender на 08-10-2017, 20:49


--------------------
Живота е спагети, кода за да работи добре трябва да го наподобява - Дон Реба
...
Живеем в греховни времена, какво очакваш богоугоден и благочестив код ли? - Дон Реба
...
много положителна енергия черпя от вас двамата,единият комунистически девствен,другият яко яхнал асемблерните розови понита - saruman
...
Рано или късно усерите на Виндофс разбират че стоят от неправилната страна на хуя. - ici
PM
Top
thrawn
Публикувано на: 09-10-2017, 07:55
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 978
Регистриран на: 17.01.17



QUOTE (gat3way @ 08-10-2017, 20:03)
Абе понеделник е утре, значи имай малко търпение и пробвай сам да видиш какво ще стане. Искаш сега да се караме за глупости icon_smile.gif

Вярно, че dnat-ът трябва да се направи в OUTPUT веригата
CODE
office@office-desktop:~$ sudo iptables -t nat -L -v
Chain PREROUTING (policy ACCEPT 1 packets, 248 bytes)
pkts bytes target     prot opt in     out     source               destination        
   6   360 DNAT       tcp  --  any    any     anywhere             anywhere             tcp dpt:9999 to:127.0.0.1:5555

Chain INPUT (policy ACCEPT 1 packets, 248 bytes)
pkts bytes target     prot opt in     out     source               destination        

Chain OUTPUT (policy ACCEPT 12 packets, 804 bytes)
pkts bytes target     prot opt in     out     source               destination        
   2   120 DNAT       tcp  --  any    any     anywhere             anywhere             tcp dpt:9999 to:127.0.0.1:5555

Chain POSTROUTING (policy ACCEPT 14 packets, 924 bytes)
pkts bytes target     prot opt in     out     source               destination


Първото правило е динстанционен тест а второто локален.
PMEmail Poster
Top
gat3way
Публикувано на: 09-10-2017, 08:50
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 1597
Регистриран на: 22.06.12



Е защо да лъжа icon_smile.gif

Макар че да де - по-близо до нормалната логика е това втори път да го разглеждаш като пристигащ пакет и да мине по цялата логика там съответно прерутинга. То сигурно може и така, обаче ако се замислиш, всякакви безумни казуси могат да се сътворят така. Например ако беше така и зациклиш нещата с dnat правилата (80 отива към 8080, а 8080 към 80) на теория пакетите вечно ще се въртят наляво-надясно - понеже нямa логика да им се намалява TTL-а при това положение.
PMEmail Poster
Top
1 потребители преглеждат тази тема в момента (1 гости, 0 анонимни потребители)
Потребители, преглеждащи темата в момента:

Topic Options Страници: (2) 1 [2]  Reply to this topicStart new topicStart Poll

 


Copyright © 2003-2015 | BG Development | All Rights Reserved
RSS 2.0