LINUX.ORG.RU
ФорумAdmin

не работает iptables


0

0

Мне нужно пробросить ssh с определенного порта на сервере на машину во внутреней сети. решил опробовать сначала дома - поднял вирт. сеть на virtualbox. но проблема не в этом - не работает iptables.

Подскажите, по возможности, где я был туп и почему не работает iptables

собственно iptables:
root@dimass-laptop:~# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

потом ввожу правило:
root@dimass-laptop:~# iptables -t nat -A PREROUTING -p tcp --dst 192.168.0.1 --dport 5000 -j DNAT --to-destination 192.168.0.1:80

соединение на 5000 порт скидывается:
root@dimass-laptop:~# telnet 192.168.0.1 5000
Trying 192.168.0.1...
telnet: Unable to connect to remote host: Connection refused

в то время, как 80 соединяет:
root@dimass-laptop:~# telnet 192.168.0.1 80
Trying 192.168.0.1...
Connected to 192.168.0.1.
Escape character is '^]'.

чуть не забыл. все это на убунту 8.10 (козел)

anonymous

iptables как раз работает. Одного PREROUTING не хватает. Надо либо в POSTROUTING, либо в FORWARD ещё цепочку добавлять.

Deleted
()
Ответ на: комментарий от Deleted

зачем INPUT, тем более POSTROUTING?

я просто пытаюсь подменить порт назначения. ведь как идет пакет:

подходит к порту, а потом началось: mangle (PREROUTING) -> nat(PREROUTING) -> mangle (INPUT) -> filter (INPUT) -> local_process.

Политики везде ACCEPT.

После часов мучания его на предмет проброса ssh через ip_forwarding пришеел к выводу, что что-то не так. а тут даж такой простой пример не работает

anonymous
()

> -j DNAT

REDIRECT попробуй

anonymous
()
Ответ на: комментарий от anonymous

Опишите подробнее вашу тестовую конфигурацию. А то не понятно, какие пакеты в рассматриваете. Например, локально-сгенерированные пакеты идут через OUTPUT, и не идут через PREROUTING. Можете просто перед вашим DNAT-правилом добавть такое-же, но с целью LOG, чтобы было видно, ваши пакеты вобще попадают в цепочку.

mky ★★★★★
()
Ответ на: комментарий от anonymous

> я просто пытаюсь подменить порт назначения. ведь как идет пакет:

а ОБРАТНО пакет как пойдёт?

Deleted
()
Ответ на: комментарий от Deleted

так понял, что вы подняли виртуальную машину в вашей подсети и пытаетесь достучаться до ее ssh с инета, но к инету подключен другой хост в подсети (роутер). еслит так, то:


- у вашего роутера должен быть белый ИП.
- вирт. машина должна иметь доступ к инету через ваш роутер, для чего на роутере настраиваете SNAT.
- настраиваете DNAT для подмены адреса назначения (как вы и написали)

с виртуальной машины есть доступ к инету (вместо инета может быть другая подсеть)

samson ★★
()
Ответ на: комментарий от Deleted

pps:

> а ОБРАТНО пакет как пойдёт?


еще раз плюс один

samson ★★
()

Надеюсь вы не с той же машины, на которой правило DNAT прописали, коннектитесь на порт 5000? Потому что для Localhost соединений kernel packet travelling diagram немножко не такая, как для обычных пакетов :-).
Для более детальных разбирательств
iptables -nvL и iptables -t nat -nvL в студию

З.Ы. Ваше правило работоспособно.

Sharp777
()
Ответ на: комментарий от Deleted

А стоп. FORWARD то ACCEPT... У меня в голове уже аксиома, что всё должно быть по-умолчанию DROP ;)

Deleted
()
Ответ на: комментарий от sdio

> Так и пойдет, не надо для этого никаких доп. правил.

как это так? Ведь DNAT сделает только подмену адреса назначения. Адрес источника останется тем же (IP с инета). И если хост на который перенаправляется пакет не имеет доступа к инету, то как он ответит на этот source-IP???

ps: мб я что-либо не догоняю?)

pps: сам всегда добавлял только одно правило для DNAT и все работало, но машина, на которую натилось имела доступ в инет через все тот же шлюз (постредством SNAT).

samson ★★
()
Ответ на: комментарий от samson

Это уже проблемы раутинга, а не iptables
Настрой default gateway на того кто делал DNAT и будет всем счастье
А вот как-раз дополнительный SNAT -- зло, так как на сервере все коннекты будут типа со шлюза и такие информативные логи можно сразу отправлять в /dev/null

sdio ★★★★★
()

топикстартеру:

какие ИПы у хостов на которых пробывали?

и
iptables -t nat -vnL ???

samson ★★
()
Ответ на: комментарий от sdio

> А вот как-раз дополнительный SNAT -- зло

Имелось ввиду SNAT для того, в инет выйти через этот шлюз, те SNAT делать на пакеты уходящие с локалки в инет. А делать SNAT на те пакеты, которые приходят с инета на шлюз, естественно, не стоит.

samson ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.