Linux за българи: Форуми

Linux секция за начинаещи => Настройка на програми => Темата е започната от: Hapkoc в Aug 25, 2005, 13:15



Титла: iptables закачка
Публикувано от: Hapkoc в Aug 25, 2005, 13:15
Идеята е, като имам да кажем пуснат апач на порт 80, да пренасоча порт 81 към същия този порт 80. Пробвам нещо от рода на:

iptables -t nat -A PREROUTING -p tcp -d 1.2.3.4 --dport 81 -j DNAT --to 1.2.3.4:80

Явно нещо ми убягва, понеже така не става. Задачката няма някакво конкретно приложение или да е нещо важно, просто ми е интересно (това го казвам за да избегна алтернативни предложения от рода "в httpd.conf сложи Listen 81").

Мерси за интереса.


Титла: iptables закачка
Публикувано от: vlad73 в Aug 25, 2005, 13:33
Не трябва ли в случая да се използва REDIRECT?


Титла: iptables закачка
Публикувано от: Hapkoc в Aug 25, 2005, 13:36
Не знам, затова питам май...  ???

edit: ако имаш предвид нещо такова:
iptables -t nat -A PREROUTING -p tcp -d 1.2.3.4 --dport 81 -j REDIRECT --to-ports 80

ми не става пак, или може би нещо бъркам пак знам ли....


Титла: iptables закачка
Публикувано от: kalin7 в Aug 25, 2005, 13:37
/sbin/iptables -t nat -I PREROUTING -i eth1 -p tcp -d 1.2.3.4 --dport 81 -j REDIRECT --to-port 80


Титла: iptables закачка
Публикувано от: Hapkoc в Aug 25, 2005, 14:14
kalin7, не ще и така деа


Титла: iptables закачка
Публикувано от: kalin7 в Aug 25, 2005, 14:35
Не може да неще... Тва е от работеща конфигурация. Виж си мрежовия интерфейс дали е eth1 или eth0 и си го замени в правилото.


Титла: iptables закачка
Публикувано от: vlad73 в Aug 25, 2005, 14:47
махни направо мрежовия интерфейс и -d от правилото :)
после ако тръгне ще ги добавяш да видиш де е бил проблема

btw да не са останали стари правила отпред?


Титла: iptables закачка
Публикувано от: Hapkoc в Aug 25, 2005, 14:53
Ми не ще дагоеа... пробвах да ги махна и двете...
Няма други правила, по принцип машината не е рутер или нещо...

# cat /proc/sys/net/ipv4/ip_forward
1

# iptables -t nat -L -n
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination
REDIRECT   tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:81 redir ports 80

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

и не работи. В browser отварям http://localhost:81/ и вика 'Connection refused'. Нямам идея къде може да е проблема...


Титла: iptables закачка
Публикувано от: exabyte в Aug 25, 2005, 14:54
За какво съветвате човека да сменя DNAT с REDIRECT, като REDIRECT е просто DNAT с ограничена функционалност? (Този въпрос заслужава да бъде завършен с "????????????????????????????????????????????????????????????????????????????????????
??????????????????????????????????????????????????????????????????????????????????????????
??????????????????????????????????????????????????????????????????????????????????????????
??????????????????????")


Hapkoc: Това, което искаш няма да стане. Предполагам си филтрирал 80-ти порт, и очакваш връзките да са на скрития 81-ви? Ако прочетеш документацията, ще забележиш, че филтрирането става след DNAT-а. Единствения ти избор е да филтрираш във mangle или nat PREROUTING, преди да си приложил DNAT. Или си настрой Apache-то да слуша и на 81-ви порт, в случая е много по-елегантно решение.

Иначе, DNAT-а ти е съвсем правилен, вероятно извършваш някакво филтриране по пътя, и затова не става. Това в случай, че 1.2.3.4 е същия компютър. Ако 1.2.3.4 е друг компютър, тогава DNAT-а ще работи само и единствено, ако пакетите връщащи се от 1.2.3.4 отново минават през машината направила DNAT-а. (Или с по-прости думи, в общия случай можеш да извършваш DNAT само на gateway-а на машината.)


Титла: iptables закачка
Публикувано от: Hapkoc в Aug 25, 2005, 15:06
exabyte, няма никакво филтриране, това е единственото правило в iptables. Както казах, това е просто експеримент, не е нещо свързано с реална ситуация...
За същия компютър става въпрос - т.е. опитвам се от моята машина да заредя на port 81 това, което слуша на 80 (в случая апач). Целта е да се пусне едно и също нещо на 2 порта чрез iptables...


Титла: iptables закачка
Публикувано от: vlad73 в Aug 25, 2005, 15:50
Това с localhost.... apache нали слуша на 127.0.0.1:80? :)
А дали не е нещо от самия apache? Защо не пробваш примерно ssh?
Тъпи предположения, ма само това ми хрумва, иначе и мен ме зачовърка и като си докопам машинката по късни доби ще пробвам

Успех!


Титла: iptables закачка
Публикувано от: exabyte в Aug 25, 2005, 17:23
Пробвай от друга машина, от твоята няма да стане.
Или ако искаш да стане и от твоята, пробвай това:

iptables -t nat -A PREROUTING -p tcp -d 1.2.3.4 --dport 81 -j DNAT --to 1.2.3.4:80
iptables -t nat -A OUTPUT -p tcp -d 1.2.3.4 --dport 81 -j DNAT --to 1.2.3.4:80


Титла: iptables закачка
Публикувано от: Hapkoc в Aug 25, 2005, 17:35
vlad, слуша я, как да не слуша

exabyte, точно както казваш. а би ли обяснил защо не става от мойта машина без да сложа последното правила за OUTPUT-а?


Титла: iptables закачка
Публикувано от: Йордан в Aug 25, 2005, 18:30
А защо да не се използва SSH ? Даже ще е криптирано хихихихихихи


Титла: iptables закачка
Публикувано от: exabyte в Aug 25, 2005, 22:05
Цитат (Hapkoc @ Авг. 25 2005,17:35)
vlad, слуша я, как да не слуша

exabyte, точно както казваш. а би ли обяснил защо не става от мойта машина без да сложа последното правила за OUTPUT-а?

Ммм, ами най-малкото си направи труда да прочетеш документацията. През PREROUTING минават пакети влизащи в компютъра, а тези, които ти пращаш определено не са такива. :)


Титла: iptables закачка
Публикувано от: Hapkoc в Aug 26, 2005, 10:18
exabyte - логично, действително ще взема да попрочета малко по въпроса, просто не ми остава време напоследък...

много благодаря на всички, които се заинтересуваха и най-вече на exabyte :)


Титла: iptables закачка
Публикувано от: zeridon в Aug 26, 2005, 15:31
$IPTABLES_BIN -t nat -A PREROUTING \
   -p tcp \
   --destination-port ${port} \
   -j DNAT \
   -d <nqkvo IP> \
   --to-destination 10.8.0.4:${port}

превод:
Ако имаш заявка за <някакво ИП> към порт едикой си ако обичаш пренасочи ми я към 10.8.0.4 някав си порт

Съответно ти трябва и обратното правило. Ако го правиш на локалната машина мисля че не беше нужно.


Титла: iptables закачка
Публикувано от: EazySnatch в Aug 26, 2005, 15:42
Сега ще ти дам един съвет значи и аз доста се мъчих по този въпрос,след доста търсене разбрах,че ти просто от локалната мрежа създава проблеми.
Иди някъде и се отпитай да си отвориш апачето с 1.2.3.4:81
и ще видиш,че си работи случваше се и на 1-н приятел и при него си работи.Командата в Иптейбълс ти е напално правилна.