Войти

Показать полную графическую версию : Radmin из интернета через Red Hat Linux (роутер) в локальную сеть


Darza
14-10-2006, 15:04
Добрый День!

вот столкнулся с такой задачей, help плиз:

есть локальная сеть 192.168.1.1-255, в ней машины Windows 2000 Pro и Windows XP Pro с установленными Remote Administrator v.2.2
сеть одноранговая, так как машин с десяток будет только. Установлен Windows 2003 Server SP1 с Radmin в качестве файл-сервера для внутренних машин (его IP 192.168.1.5)

в качестве роутера установлен пень-1 с Red Hat Linux (соотв. с двумя сетевухами):
eth0 - смотрит в локалку как 192.168.1.1
eth1 - смотрит в инет как 222.222.222.222 (для примера такой адрес)

подскажите пожалуйста как сделать зайти по Radmin из дома(с работы, с друзей ...т.е. с адреса не постоянного) на 192.168.1.5
т.е. я посылаю запрос на машину 222.222.222.222:4899 и она пробрасывает его на конкретный адрес - 192.168.1.5:4899.
имея такое соединение я уже смогу достучаться и до других в локалке.

Спасибо!

ЗЫ ответ на комаду "iptables -L"

[root@localhost root]# iptables -L
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT all -- 192.168.1.0/24 anywhere
drop-and-log-it all -- 192.168.1.0/24 anywhere
ACCEPT icmp -- anywhere 222.222.222.222
ACCEPT tcp -- anywhere 222.222.222.222tcp dpt:ssh
ACCEPT all -- anywhere 222.222.222.222state RELATED,ESTABLISHED
drop-and-log-it all -- anywhere anywhere

Chain FORWARD (policy DROP)
target prot opt source destination
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT all -- anywhere anywhere
drop-and-log-it all -- anywhere anywhere

Chain OUTPUT (policy DROP)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT all -- 222.222.222.222 192.168.1.0/24
ACCEPT all -- 192.168.1.0/24 192.168.1.0/24
drop-and-log-it all -- anywhere 192.168.1.0/24
ACCEPT all -- 222.222.222.222 anywhere
ACCEPT tcp -- 192.168.1.0/24 255.255.255.255 tcp spt:bootps dpt:bootpc
ACCEPT udp -- 192.168.1.0/24 255.255.255.255 udp spt:bootps dpt:bootpc
drop-and-log-it all -- anywhere anywhere

Chain drop-and-log-it (5 references)
target prot opt source destination
DROP all -- anywhere anywhere

must die
15-10-2006, 20:31
Darza
А почему бы не поднять vpn сервер на роутере и уже напрямую цепляться к каждой машине в сети.

Darza
16-10-2006, 09:29
Добрый День!

must die
да машина очень слабая ;) pentium-I 166MHz, 64MBRAM, HDD 1Gb - настроена только как шлюз в интернет,
ни DNS ни DHCP на ней не установлено, просто перенаправляет запросы в инте,
да и стенкой из вне служит для сети локальной.

вот прошу команду которую нужно ввести и она добавиться к существующим правилам iptables

спасибо

must die
16-10-2006, 10:11
Вот перевод документации по IPtables, прочитайте раз Вы администрируете этот сервер.
http://gazette.linux.ru.net/rus/articles/iptables-tutorial.html

Nigon
16-10-2006, 12:51
Я делал вот так:
root@TOWER:/home/n# iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DNAT tcp -- anywhere 222.222.222.222 tcp dpt:garcon to:10.167.1.200:4899

Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
SNAT tcp -- 10.167.1.200 anywhere to:222.222.222.222:999
SNAT all -- localnet/24 anywhere to:222.222.222.222

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

Конекчусь на 222.222.222.222:999 и попадаю на 10.167.1.200:4899.
Если необходимо попасть на 10.167.1.ХХХ, то конекчусь на 10.167.1.ХХХ:4899 через 222.222.222.222:999 (это в настройках Radmin сессии или как там она называется)

Darza
16-10-2006, 17:41
Nigon а что значит у тебя "garcon" ? - понял это ты так номер порта прописал, имя дал ему.

разобрался, вот что я сделал:

iptables -t nat -A PREROUTING --dst 222.222.222.222 -p tcp --dport 11899 -j DNAT --to-destination 192.168.1.5:4899

и

iptables -t nat -A POSTROUTING -p tcp --dst 192.168.1.5 --dport 4899 -j SNAT --to-source 192.168.1.1

iptables -t nat -L мой новый:
[root@localhost root]# iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DNAT tcp -- anywhere 222.222.222.222tcp dpt:11899 to:192.168.1.5:4899

Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
SNAT all -- anywhere anywhere to:222.222.222.222
SNAT tcp -- anywhere 192.168.1.5 tcp dpt:4899 to:192.168.1.1

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

и чего -то не пошло :(

Nigon
16-10-2006, 18:04
Darza
это 999 порт... зыбыл -n сделать....

вот так вот будет яснее:

root@TOWER:/home/n# iptables -t nat -L -n
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DNAT tcp -- 0.0.0.0/0 222.222.222.222 tcp dpt:999 to:10.167.1.200:4899

Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
SNAT tcp -- 10.167.1.200 0.0.0.0/0 to:222.222.222.222:999
SNAT all -- 10.167.1.0/24 0.0.0.0/0 to:222.222.222.222

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

Darza
16-10-2006, 19:07
вот что у меня сейчас выдает по команде iptables -t nat -L -n:

[root@localhost root]# iptables -t nat -L -n
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DNAT tcp -- 0.0.0.0/0 222.222.222.222 tcp dpt:11899 to:192.168.1.5:4899

Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
SNAT all -- 0.0.0.0/0 0.0.0.0/0 to:222.222.222.222
SNAT tcp -- 0.0.0.0/0 192.168.1.5 tcp dpt:4899 to:192.168.1.1

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

что-то в SNAT я перепутал - из-за этого может не коннектиться или эта запись влияет тока на соединение по Радмину изнутри внутрь локалки?

Nigon
16-10-2006, 20:14
Вот мои правила на НАТ и мутку с радмином:

-A PREROUTING -d 222.222.222.222 -p tcp --dport 999 -j DNAT --to-destination 10.167.1.200:4899
-A POSTROUTING -s 10.167.1.200 -o eth1 -p tcp -j SNAT --to-source 222.222.222.222:999
-A POSTROUTING -s 10.167.1.0/24 --out-interface eth1 -j SNAT --to-source 222.222.222.222

Darza
17-11-2006, 15:43
Добрый день!

сорри, уезжал.

приехал снова решил взяться - удалил старые правила и обновил на новые

вот команды которые ввожу:

iptables -t nat -A PREROUTING --dst 222.222.222.222 -p tcp --dport 4899 -j DNAT --to-destination 192.168.1.5:4899
iptables -t nat -A POSTROUTING -s 192.168.1.5 -o eth1 -p tcp -j SNAT --to-source 222.222.222.222:4899
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 --out-interface eth1 -j SNAT --to-source 222.222.222.222

после перегружаю Linux машину

проверяю ответ на команду iptables -t nat -L -n:

[root@srv]# iptables -t nat -L -n
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DNAT tcp -- 0.0.0.0/0 222.222.222.222 tcp dpt:4899 to:192.168.1.5:4899

Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
SNAT tcp -- 192.168.1.5 0.0.0.0/0 to:222.222.222.222:4899
SNAT all -- 192.168.1.0/24 0.0.0.0/0 to:222.222.222.222

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

вроде всё правлильно сделал

в итоге - пытаюсь подключиться к внешнему адресу 222.222.222.222:4899 (который по идее должен перебросить меня на внутренний 192.168.1.5:4899)
Radmin задумывается и дает отбой:
Connecting to 222.222.222.222
Cannot connect to the server

какие есть мысли? где и как мне еще проверить?

Благодарствую.

BuGfiX
17-11-2006, 16:12
Darza, вот Вы написали 3 строчки, которые добавляют 2 правила в POSTROUTING и 1 в PREROUTING.
В ответе же на команду iptables -t nat -L -n я вижу только одно из этих правил. Т.е. после перезагрузки они у вас не восстанавливаются. Вообще, чтобы проверить работу правил перезагрузка компьютера не требуется.

З.Ы. 2-строчку я бы убрал, она дублируется 3-й.

Да, и еще: помимо этих правил у вас так же должны быть правила в FORWARD, разрешающие проброс пакетов.

Darza
18-11-2006, 00:50
BuGfiX
да, правила я добавил - перегрузил машину (ибо не получалось и думал что поможет) - и правила пропали.
пришлось их заново написать.
тут след. вопрос - а как сделать так чтобы мои нововведенные правила сохранялись?
так вот после тока как я их снова ввел(теперь уже не перегружаясь ;) ) - результат тот же отрицательный, т.е. не пускает меня с интернета на внутреннюю машину.

привожу часть(для FORWARD) результата команды iptables -L -n:

Chain FORWARD (policy DROP)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
drop-and-log-it all -- 0.0.0.0/0 0.0.0.0/0
тут всё нормально? я так понимаю он всё что пришло пробрасывает

вот в другом ввиде этаже часть iptables -L -n --line-numbers -v:
Chain FORWARD (policy DROP 0 packets, 0 bytes)
num pkts bytes target prot opt in out source destination
1 38500 39M ACCEPT all -- eth0 eth1 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
2 41764 3274K ACCEPT all -- eth1 eth0 0.0.0.0/0 0.0.0.0/0
3 90 4320 drop-and-log-it all -- * * 0.0.0.0/0 0.0.0.0/0

думаю что развязка где-то близка ;) помогите плиз

Lipen
18-11-2006, 17:11
Чтобы правила сохранились нужно выполнить #/etc/init.d/iptables save После этой команды в /etc/sysconfig появится файл iptables со всеми правилами, откуда подгружаются при загрузке.

sergleo
20-11-2006, 13:53
У RH и FC правила iptables хранятся в файле - /etc/sysconfig/iptables

При добавлении правил Вы должны учитывать что правила хранятся в нем в виде:

-t nat -A PREROUTING --dst 222.222.222.222 -p tcp --dport 4899 -j DNAT --to-destination 192.168.1.5:4899

без указания комманды iptables и при перезагрузке итд загружаются именно из него.

Если вам необходимо указывать именно в виде
iptables -t nat -A PREROUTING --dst 222.222.222.222 -p tcp --dport 4899 -j DNAT --to-destination 192.168.1.5:4899

используйте rc.local или свой rc скрипт или руками с консоли как Вам видется продуктивнее :) .

В качестве примера скриптов выполните поиск по форуму - этот момент уже обсуждался, и возможно именно в этом проблема.

Для проверки внесенных изменений в правила iptables используйте /etc/rc.d/init.d/iptables restart или /sbin/services iptables restart, а не перезагрузку... :)




© OSzone.net 2001-2012