Показать полную графическую версию : [решено] Radmin через port mapping
Ситуация: с удаленной машины требуется подключиться к машине, находящейся за шлюзом. Пошел путем перенаправления портов.
Серверная часть на локальной машине установлена, на удаленной установлен клиент. В ipfw.rules добавлены следующие строчки:
$cmd add allow tcp from any to any 4899
$cmd add allow tcp from any 4899 to any
$cmd add 100 fwd 192.168.111.88,4899 tcp from any to me 4899
Разрешается движение по порту 4899, потом делается перенаправление с внешнего интерфейса, на локальный адрес.
При подключении выскакивает окно "Нельзя подсоединиться к серверу". Пробовал также с одной локальной машины через внешний интерфейс подключиться к другой.
Та же история. Где я ошибся?
Telepuzik
31-08-2007, 13:26
Приведите вывод команды ipfw show после попытки соединения из внешней сети.
00100 381 36780 allow tcp from any to me 22
00200 327 71892 allow tcp from me 22 to any
00300 447743 281927891 divert 8668 ip from any to any via rl0
00400 0 0 allow tcp from any to any 4899
00500 0 0 allow tcp from any 4899 to any
00550 2 96 fwd 192.168.111.88,4899 tcp from any to x.x.x.x 4899
00600 202060 27726609 allow ip from x.x.x.x to any out xmit rl0
00700 12845 4766161 allow ip from any to x.x.x.x in recv rl0
00800 232838 249435121 allow ip from any to 192.168.111.0/24 via rl0
00900 11172 1412726 allow ip from 192.168.111.0/24 to 192.168.111.1 in recv rxp0
01000 17018 19987781 allow ip from 192.168.111.1 to 192.168.111.0/24 out xmit rxp0
01100 202758 26273464 allow ip from 192.168.111.0/24 to any in recv rxp0
01200 232837 249433621 allow ip from any to 192.168.111.0/24 out xmit rxp0
01300 13664 18638436 allow ip from any to any via so0
01400 0 0 deny ip from any to 127.0.0.0/8
01500 0 0 deny ip from 127.0.0.0/8 to any
65535 2005 643194 deny ip from any to any
Возможно, проблема в Nat? Если не ошибаюсь, при рабочем Nat немного другой конфиг идет?
Telepuzik
05-09-2007, 15:47
Попробуйте прописать в natd.conf:
redirect_port tcp <внешний ip> 4899 4899
и закоментируйте правило с fwd.
Попробуйте прописать в natd.conf:
redirect_port tcp <внешний ip> 4899 4899
и закоментируйте правило с fwd. »
Я не создавал natd.conf, NAT сконфигурирован в rc.conf через natd_flags="-n rl0 -u -m"
В команжной строке задаю:
# natd -redirect_port tcp x.x.x.x:4899 4899
Ошибка - "aliasing adress not given".
Пробую так:
#natd -redirect_port tcp x.x.x.x:4899 192.168.111.9:4899
Ошибка - "aliasing adress not given".
Кстати, ip, имхо, нужно внутренний задавать.
Telepuzik
05-09-2007, 19:20
Сорри ошибся, конечно ip сервака где установлен Radmin.
Ошибка та же. Alias adress - При чем он здесь?
Telepuzik
06-09-2007, 15:52
Попробуйте вот так:
natd -s -m -u -n rl0 -redirect_port 192.168.111.9:4899 4899
Выдает ошибку: natd: Unable to bind divert socket.: Address already in use
Вот мой ipfw.rules:
ipfw.rules
#!/bin/sh
cmd=/sbin/ipfw
ln="192.168.111.0/24"
inet_if_ip="x.x.x.x"
inet_if="rl0"
local_if="fxp0"
local_if_ip="192.168.111.1"
$cmd -q -f flush
$cmd add allow all from any to any via lo0
$cmd add divert natd ip from any to any via $inet_if
$cmd add allow tcp from any to any 4899
$cmd add allow tcp from any 4899 to any
$cmd add allow tcp from any to 192.168.111.9 4899 in recv rl0
$cmd add allow tcp from any to 192.168.111.9 4899 out via fxp0
$cmd add allow ip from $inet_if_ip to any out xmit $inet_if
$cmd add allow ip from any to $inet_if_ip in recv $inet_if
$cmd add allow ip from any to $ln via $inet_if
$cmd add allow ip from $ln to $local_if_ip in recv $local_if
$cmd add allow ip from $local_if_ip to $ln out xmit $local_if
$cmd add allow ip from $ln to any in recv $local_if
$cmd add allow ip from any to $ln out xmit $local_if
$cmd add allow ip from any to any via lo0
$cmd add deny ip from any to 127.0.0.0/8
$cmd add deny ip from 127.0.0.0/8 to any
Telepuzik
06-09-2007, 19:21
Завершите процесс natd и запустите команду что я приводил в предыдущем сообщении. Либо пропишите в rc.conf: natd_flags="-s -n rl0 -u -m -redirect_port 192.168.111.9:4899 4899" и перезапустите natd.
С этими настройками Nat не работает.
Telepuzik
18-09-2007, 14:43
Мой рабочий пример для трафика RDP порт 3389:
rc.conf:
natd_enable="YES"
natd_interface="rl0"
natd_flags="-f /etc/natd.conf"
natd_program="/sbin/natd"
natd.conf:
same_ports yes
use_sockets yes
redirect_port tcp 192.168.0.190:3389 3389
Правила ipfw(rc.firewall):
ipfw='/sbin/ipfw -q'
${ipfw} flush
${ipfw} add allow all from any to any via lo0
${ipfw} add 10000 divert natd all from any to any via rl0
${ipfw} add allow tcp from any to 192.168.0.190 3389 in recv rl0
${ipfw} add allow tcp from any to 192.168.0.190 3389 out via rl1
..............
rl1 - внутренний интерфейс.
Так все работает и NAT и redirect портов.
Хм... Все сделал, как описано выше, создал natd.conf. Систему перегрузил полностью. Пишет - "невозможно подсоединиться к серверу".
Telepuzik
21-09-2007, 10:22
Странно. Есть еще два параметра у меня в rc.conf (gateway_enable="YES",firewall_type="open") но врядли они влияют. Попробуйте следующие:
1. Оставьте на время тестирования 2 правила ipfw:
${ipfw} add divert natd all from any to any via <номер вашего интерфейса>
${ipfw} add allow ip from any to any
2. Запустите tcpdump на внешнем и внутреннем интерфесах и попробуйте соединиться через Radmin, увидите где пропадают пакеты:
tcpdump -i <внешний интерфейс> dst port 4489
tcpdump -i <внутренний интерфейс> dst port 4489
И приведите ipconfig /all с машинки где установлен сервер RAdmin.
Вот мой ipfw.rules:
ipfw.rules
#!/bin/sh
cmd=/sbin/ipfw
ln="192.168.111.0/24"
inet_if_ip="x.x.x.x"
inet_if="rl0"
local_if="fxp0"
local_if_ip="192.168.111.1"
$cmd -q -f flush
$cmd add allow all from any to any via lo0
$cmd add divert natd ip from any to any via $inet_if
$cmd add allow tcp from any to any 4899
$cmd add allow tcp from any 4899 to any
$cmd add allow tcp from any to 192.168.111.9 4899 in recv xl0
$cmd add allow tcp from any to 192.168.111.9 4899 out via fxp0
#$cmd add 550 fwd 192.168.111.9,4899 tcp from any to x.x.x.x 4899
$cmd add allow ip from $inet_if_ip to any out xmit $inet_if
$cmd add allow ip from any to $inet_if_ip in recv $inet_if
$cmd add allow ip from any to $ln via $inet_if
$cmd add allow ip from $ln to $local_if_ip in recv $local_if
$cmd add allow ip from $local_if_ip to $ln out xmit $local_if
$cmd add allow ip from $ln to any in recv $local_if
$cmd add allow ip from any to $ln out xmit $local_if
$cmd add allow ip from any to any via lo0
$cmd add deny ip from any to 127.0.0.0/8
$cmd add deny ip from 127.0.0.0/8 to any
Telepuzik
21-09-2007, 11:23
$cmd add allow tcp from any to any 4899
$cmd add allow tcp from any 4899 to any »
Закоментируйте эти два правила.
$cmd add allow tcp from any to 192.168.111.9 4899 in recv xl0 »
Может rl0 а не xl0 ??
Что показывает tcpdump ???
Закоментируйте эти два правила. »
Не помогло.
Может rl0 а не xl0 ?? »
xl0. Везде, где нужно, прописано xl0, ошибки нет.
Что показывает tcpdump ??? »
tcpdump -i xl0 -l -n port 4899
Реакции вообще никакой, будто и не коннекчусь на этот порт.
Telepuzik
21-09-2007, 12:34
Что то не понятно.
xl0 - внешний интерфейс ?? Если да то почему вы приводите:
inet_if="rl0" »
tcpdump -i xl0 -l -n port 4899
Реакции вообще никакой, будто и не коннекчусь на этот порт »
Может провайдер закрыл порты.
1. Оставьте на время тестирования 2 правила ipfw:
${ipfw} add divert natd all from any to any via <номер вашего интерфейса>
${ipfw} add allow ip from any to any
2. Запустите tcpdump на внешнем и внутреннем интерфесах и попробуйте соединиться через Radmin, увидите где пропадают пакеты:
tcpdump -i <внешний интерфейс> dst port 4489
tcpdump -i <внутренний интерфейс> dst port 4489
И приведите ipconfig /all с машинки где установлен сервер RAdmin. »
Ок, попробую. А прослушивать внутренний и внешний интерфейс одновременно можно или поочереди?
xl0 - внешний интерфейс ?? Если да то почему вы приводите:
Цитата Vygov:
inet_if="rl0" » »
Опечатка.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.