URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID10
Нить номер: 4724
[ Назад ]

Исходное сообщение
"Привязка локального IP к внешнему"

Отправлено slava2003 , 28-Окт-10 13:03 
Добрый день всем!

Задача следующая. В локальной сети работает видеорегистратор, доступ к нему изнутри сети осуществляется по локальному IP-адресу посредством клиентской программы. Как привязать этот внутренний IP к внешнему, чтобы можно было получить доступ к регистратору извне сети?

Или может быть можно каким-то образом задействовать веб-сервер, чтобы клиенты могли получать доступ к этому регистратору через веб-браузер?

Mandriva Linux 2006.0
Apache 2.0.54


Содержание

Сообщения в этом обсуждении
"Привязка локального IP к внешнему"
Отправлено Вася , 28-Окт-10 13:35 
> Добрый день всем!
> Задача следующая. В локальной сети работает видеорегистратор, доступ к нему изнутри сети
> осуществляется по локальному IP-адресу посредством клиентской программы. Как привязать
> этот внутренний IP к внешнему, чтобы можно было получить доступ к
> регистратору извне сети?
> Или может быть можно каким-то образом задействовать веб-сервер, чтобы клиенты могли получать
> доступ к этому регистратору через веб-браузер?
> Mandriva Linux 2006.0
> Apache 2.0.54

если
192.168.0.2  - адрес видеорегистратора
66.88.55.22 - адрес шлюза в инете
ОС = какой-нибудь линукс

то

iptables -t nat -A PREROUTING -d 66.88.55.22 -p tcp (а может udp) --dport порт_видеорегистратора -j DNAT --to-destination 192.168.0.2:порт_видеорегистратора

ну и доступы пооткрывать

а это потрясающее руководство всех времен и наровод
http://www.opennet.me/docs/RUS/iptables/


"Привязка локального IP к внешнему"
Отправлено Вася , 28-Окт-10 13:38 
этими команда отдается приказ - что пришло на указанный адрес-указанный порт перебросить на такой-то адрес-такой-то порт

"Привязка локального IP к внешнему"
Отправлено slava2003 , 28-Окт-10 17:49 
Спасибо! Попробую.

> ну и доступы пооткрывать

Прошу прощения за невежество, а как это сделать?:)

> а это потрясающее руководство всех времен и наровод
> http://www.opennet.me/docs/RUS/iptables/

Спасибо, обязательно изучу.
А пока не изучил, еще один глупый вопрос: после манипуляций с iptables все изменения начинают действовать сразу же? Ничего перезагружать не нужно?


"Привязка локального IP к внешнему"
Отправлено Aquarius , 28-Окт-10 18:38 
> Спасибо! Попробую.
>> ну и доступы пооткрывать
> Прошу прощения за невежество, а как это сделать?:)
>> а это потрясающее руководство всех времен и наровод
>> http://www.opennet.me/docs/RUS/iptables/
> Спасибо, обязательно изучу.
> А пока не изучил, еще один глупый вопрос: после манипуляций с iptables
> все изменения начинают действовать сразу же? Ничего перезагружать не нужно?

угу, более того, результат этих "манипуляций" после перезагрузки пропадает


"Привязка локального IP к внешнему"
Отправлено slava2003 , 28-Окт-10 19:52 
>> после манипуляций с iptables
>> все изменения начинают действовать сразу же? Ничего перезагружать не нужно?
> угу, более того, результат этих "манипуляций" после перезагрузки пропадает

Стоп. А разве изменения автоматически не записываются в соотв. конфиг? И как в таком случае сделать, чтобы записывались?


"Привязка локального IP к внешнему"
Отправлено reader , 28-Окт-10 21:02 
>>> после манипуляций с iptables
>>> все изменения начинают действовать сразу же? Ничего перезагружать не нужно?
>> угу, более того, результат этих "манипуляций" после перезагрузки пропадает
> Стоп. А разве изменения автоматически не записываются в соотв. конфиг? И как
> в таком случае сделать, чтобы записывались?

правила должны хранится в /etc/sysconfig/iptables, автоматически не записываются.
сбросить текущие правила туда можно так:
service iptables save или iptables-save > /etc/sysconfig/iptables, при загрузки, если указано использовать iptables, правила от туда будут загружены.

или можно городить свои скипты.

то что вы хотите сделать разжевано в http://www.opennet.me/docs/RUS/iptables/#DNATTARGET , внимательно читайте то что под табличкой.



"Привязка локального IP к внешнему"
Отправлено slava2003 , 10-Ноя-10 18:13 
> iptables -t nat -A PREROUTING -d 66.88.55.22 -p tcp (а может udp) --dport
> порт_видеорегистратора -j DNAT --to-destination 192.168.0.2:порт_видеорегистратора
> то что вы хотите сделать разжевано в http://www.opennet.me/docs/RUS/iptables/#DNATTARGET
> , внимательно читайте то что под табличкой.

Делаю именно так, но соединение отсутствует :( Каким образом можно локализовать ошибку?


> ну и доступы пооткрывать

Может быть дело в этом? Как это сделать?


"Форвард портов - это ж ядерная бомба, да на ассемблере.Сложно!"
Отправлено Andrey Mitrofanov , 10-Ноя-10 18:24 
> Делаю именно так, но соединение отсутствует :( Каким образом можно локализовать ошибку?

Осознать, как _меняются_ и проходят пакеты туда и _обратно_, осознать, что по пути пакетов встречаются кроме "-t nat -A PREROUTING" ещё и "-t filter -A FORWARD", кое-где ещё "пересекающиеся" с включением ip_forward-а и настройкой роутинга (в том числе и вплоть до -- на всех машинах по пути следования (и тех, и других!) пакетов).... Ну, вот где-то там и по-локализовывать.


"Форвард портов - это ж ядерная бомба, да на ассемблере.Сложно!"
Отправлено reader , 10-Ноя-10 21:49 
>> Делаю именно так, но соединение отсутствует :( Каким образом можно локализовать ошибку?
> Осознать, как _меняются_ и проходят пакеты туда и _обратно_, осознать, что по
> пути пакетов встречаются кроме "-t nat -A PREROUTING" ещё и "-t
> filter -A FORWARD", кое-где ещё "пересекающиеся" с включением ip_forward-а и настройкой
> роутинга (в том числе и вплоть до -- на всех машинах
> по пути следования (и тех, и других!) пакетов).... Ну, вот где-то
> там и по-локализовывать.

:)

счетчики iptables и tcpdump на разных интерфейсах покажут где теплей, а где холодней.


"Форвард портов - это ж ядерная бомба, да на ассемблере.Сложно!"
Отправлено slava2003 , 11-Ноя-10 15:29 
> Осознать, как _меняются_ и проходят пакеты туда и _обратно_, осознать, что по
> пути пакетов встречаются кроме "-t nat -A PREROUTING" ещё и "-t
> filter -A FORWARD", кое-где ещё "пересекающиеся" с включением ip_forward-а и настройкой
> роутинга (в том числе и вплоть до -- на всех машинах
> по пути следования (и тех, и других!) пакетов).... Ну, вот где-то
> там и по-локализовывать.
> счетчики iptables и tcpdump на разных интерфейсах покажут где теплей, а где
> холодней.

Джентльмены, если бы я был таким умным как вы, то не задавал бы такие дурацкие вопросы:)
Не могли бы вы сформулировать то же самое, но подоходчивее:)


"Форвард портов - это ж ядерная бомба, да на ассемблере.Сложно!"
Отправлено Andrey Mitrofanov , 11-Ноя-10 15:59 
>> Осознать, как
>> осознать, что по
>>встречаются
>>"пересекающиеся" с
> Не могли бы вы сформулировать то же самое, но подоходчивее:)

Ну, разбивай длинные предложеиня на части, напрягай "парсилку", тренеруй понималку, ищи документацию... Кому оно надо-то -- нам или тебе?... Может быть, мы доходчивее не умеем, может быть, не хотим, ленимся.

В "этой хреновине" _просто написать _одну _простую строчку не достаточно: оно может "ломаться" по куче разных причин в куче разных мест. То есть если волшебный рецепт из одной строки "сработал", то повезло или "Вы что-то не заметили"(тм).

За простыми "магическими" рецептами -- этт не сюда. Попробуй ближайший "Магазин юного вольшебника"?


"Форвард портов - это ж ядерная бомба, да на ассемблере.Сложно!"
Отправлено reader , 11-Ноя-10 17:01 
>[оверквотинг удален]
>> пути пакетов встречаются кроме "-t nat -A PREROUTING" ещё и "-t
>> filter -A FORWARD", кое-где ещё "пересекающиеся" с включением ip_forward-а и настройкой
>> роутинга (в том числе и вплоть до -- на всех машинах
>> по пути следования (и тех, и других!) пакетов).... Ну, вот где-то
>> там и по-локализовывать.
>> счетчики iptables и tcpdump на разных интерфейсах покажут где теплей, а где
>> холодней.
> Джентльмены, если бы я был таким умным как вы, то не задавал
> бы такие дурацкие вопросы:)
> Не могли бы вы сформулировать то же самое, но подоходчивее:)

iptables-save -c
покажет правила и счетчики пакетов и байт прошедших через правило, соответственно будет видно какие правила срабатывают.

tcpdump -n -i eth0 или eth1
покажет что проходит через интерфейс, соответственно смотрите есть там пакеты которые вам нужны или нет

в общем уже бы показали вывод  iptables-save , может кто что и подсказал конкретней, но надеяться что сделают за вас не нужно


"Форвард портов - это ж ядерная бомба, да на ассемблере.Сложно!"
Отправлено slava2003 , 02-Дек-10 18:38 
> iptables-save -c
> покажет правила и счетчики пакетов и байт прошедших через правило, соответственно будет
> видно какие правила срабатывают.
> tcpdump -n -i eth0 или eth1
> покажет что проходит через интерфейс, соответственно смотрите есть там пакеты которые вам
> нужны или нет
> в общем уже бы показали вывод  iptables-save , может кто что и подсказал конкретней

Вывод iptables-save:

*mangle
:PREROUTING ACCEPT [2968388:2692407269]
:INPUT ACCEPT [1703347:1029665455]
:FORWARD ACCEPT [3551709:3027369690]
:OUTPUT ACCEPT [1640888:1049924349]
:POSTROUTING ACCEPT [2716155:1452630391]
[46763:5444642] -A PREROUTING -i eth0 -j QUEUE
[2240007:1359145177] -A PREROUTING -i eth1 -j QUEUE
[1507:305103] -A PREROUTING -i eth2 -j QUEUE
[43513:67764845] -A POSTROUTING -o eth0 -j QUEUE
[2431489:2556076277] -A POSTROUTING -o eth1 -j QUEUE
[1297:818388] -A POSTROUTING -o eth2 -j QUEUE
COMMIT

*filter
:INPUT ACCEPT [1703255:1029660203]
:FORWARD DROP [107:5527]
:OUTPUT ACCEPT [1640890:1049924475]
[0:0] -A INPUT -i eth4 -p udp -m udp --dport 67 -j REJECT --reject-with icmp-port-unreachable
[15:852] -A INPUT -i eth4 -p tcp -m tcp --dport 3128 -j REJECT --reject-with tcp-reset
[0:0] -A INPUT -i eth4 -p tcp -m tcp --dport 5347 -j REJECT --reject-with tcp-reset
[0:0] -A INPUT -i eth0 -p tcp -m tcp --dport 5347 -j REJECT --reject-with tcp-reset
[0:0] -A INPUT -i eth1 -p tcp -m tcp --dport 5347 -j REJECT --reject-with tcp-reset
[0:0] -A INPUT -i eth2 -p tcp -m tcp --dport 5347 -j REJECT --reject-with tcp-reset
[55:3115] -A INPUT -s 10.0.0.0/255.0.0.0 -i eth4 -j DROP
[0:0] -A INPUT -s 127.0.0.0/255.0.0.0 -i eth4 -j DROP
[0:0] -A INPUT -s 172.16.0.0/255.240.0.0 -i eth4 -j DROP
[25:1487] -A INPUT -s 192.168.0.0/255.255.0.0 -i eth4 -j DROP
[0:0] -A INPUT -s 224.0.0.0/240.0.0.0 -i eth4 -j DROP
[0:0] -A INPUT -s 240.0.0.0/248.0.0.0 -i eth4 -j DROP
[0:0] -A INPUT -s ! 192.168.0.0/255.255.255.0 -i eth0 -j DROP
[0:0] -A INPUT -s ! 192.168.1.0/255.255.255.0 -i eth1 -j DROP
[0:0] -A INPUT -s ! 192.168.2.0/255.255.255.0 -i eth2 -j DROP
[60:3360] -A FORWARD -s 10.0.0.0/255.0.0.0 -j DROP
[0:0] -A FORWARD -s 127.0.0.0/255.0.0.0 -j DROP
[0:0] -A FORWARD -s 172.16.0.0/255.240.0.0 -j DROP
[0:0] -A FORWARD -s 224.0.0.0/240.0.0.0 -j DROP
[0:0] -A FORWARD -s 240.0.0.0/248.0.0.0 -j DROP
[50:4000] -A FORWARD -d 10.0.0.0/255.0.0.0 -j DROP
[0:0] -A FORWARD -d 127.0.0.0/255.0.0.0 -j DROP
[0:0] -A FORWARD -d 172.16.0.0/255.240.0.0 -j DROP
[0:0] -A FORWARD -d 224.0.0.0/240.0.0.0 -j DROP
[0:0] -A FORWARD -d 240.0.0.0/248.0.0.0 -j DROP
[0:0] -A FORWARD -d ! mail_ip_addr -i eth0 -p tcp -m tcp --dport 25 -j DROP
[0:0] -A FORWARD -d ! mail_ip_addr -i eth1 -p tcp -m tcp --dport 25 -j DROP
[34:2144] -A FORWARD -s 192.168.0.0/255.255.0.0 -i eth4 -j DROP
[0:0] -A FORWARD -d 192.168.0.0/255.255.0.0 -o eth4 -j DROP
[0:0] -A FORWARD -s ! 192.168.0.0/255.255.255.0 -i eth0 -j DROP
[0:0] -A FORWARD -s ! 192.168.1.0/255.255.255.0 -i eth1 -j DROP
[0:0] -A FORWARD -s ! 192.168.2.0/255.255.255.0 -i eth2 -j DROP
[0:0] -A FORWARD -d 192.168.1.1 -i eth0 -j ACCEPT
[4643:765263] -A FORWARD -d 192.168.1.2 -i eth0 -j ACCEPT
[0:0] -A FORWARD -d 192.168.1.3 -i eth0 -j ACCEPT
[0:0] -A FORWARD -d 192.168.1.4 -i eth0 -j ACCEPT
[0:0] -A FORWARD -d 192.168.1.5 -i eth0 -j ACCEPT
[0:0] -A FORWARD -d 192.168.2.1 -i eth0 -j ACCEPT
[0:0] -A FORWARD -d 192.168.0.1 -i eth1 -j ACCEPT
[0:0] -A FORWARD -d 192.168.0.2 -i eth1 -j ACCEPT
[0:0] -A FORWARD -d 192.168.2.1 -i eth1 -j ACCEPT
[0:0] -A FORWARD -d 192.168.0.1 -i eth2 -j ACCEPT
[0:0] -A FORWARD -d 192.168.0.2 -i eth2 -j ACCEPT
[0:0] -A FORWARD -d 192.168.1.1 -i eth2 -j ACCEPT
[192:23339] -A FORWARD -d 192.168.1.2 -i eth2 -j ACCEPT
[0:0] -A FORWARD -d 192.168.1.3 -i eth2 -j ACCEPT
[0:0] -A FORWARD -d 192.168.1.4 -i eth2 -j ACCEPT
[0:0] -A FORWARD -d 192.168.1.5 -i eth2 -j ACCEPT
[0:0] -A FORWARD -s 192.168.0.2 -o eth1 -j ACCEPT
[0:0] -A FORWARD -s 192.168.0.2 -o eth2 -j ACCEPT
[5386:3117220] -A FORWARD -s 192.168.1.2 -o eth0 -j ACCEPT
[0:0] -A FORWARD -s 192.168.1.3 -o eth0 -j ACCEPT
[0:0] -A FORWARD -s 192.168.1.4 -o eth0 -j ACCEPT
[0:0] -A FORWARD -s 192.168.1.5 -o eth0 -j ACCEPT
[266:297191] -A FORWARD -s 192.168.1.2 -o eth2 -j ACCEPT
[0:0] -A FORWARD -s 192.168.1.3 -o eth2 -j ACCEPT
[0:0] -A FORWARD -s 192.168.1.4 -o eth2 -j ACCEPT
[0:0] -A FORWARD -s 192.168.1.5 -o eth2 -j ACCEPT
[6719:7829124] -A FORWARD -d 192.168.0.0/255.255.255.0 -i eth4 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
[1793240:1725567950] -A FORWARD -d 192.168.1.0/255.255.255.0 -i eth4 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
[518:241621] -A FORWARD -d 192.168.2.0/255.255.255.0 -i eth4 -o eth2 -m state --state RELATED,ESTABLISHED -j ACCEPT
[4125:593653] -A FORWARD -i eth0 -o eth4 -j ACCEPT
[1735917:1288871847] -A FORWARD -i eth1 -o eth4 -j ACCEPT
[452:47451] -A FORWARD -i eth2 -o eth4 -j ACCEPT
[0:0] -A FORWARD -s 192.168.0.0/255.255.0.0 -d 192.168.0.0/255.255.255.0 -i ppp+ -o eth0 -j ACCEPT
[0:0] -A FORWARD -s 192.168.0.0/255.255.0.0 -d 192.168.1.0/255.255.255.0 -i ppp+ -o eth1 -j ACCEPT
[0:0] -A FORWARD -s 192.168.0.0/255.255.0.0 -d 192.168.2.0/255.255.255.0 -i ppp+ -o eth2 -j ACCEPT
[0:0] -A FORWARD -s 192.168.0.0/255.255.255.0 -d 192.168.0.0/255.255.0.0 -i eth0 -o ppp+ -j ACCEPT
[0:0] -A FORWARD -s 192.168.1.0/255.255.255.0 -d 192.168.0.0/255.255.0.0 -i eth1 -o ppp+ -j ACCEPT
[0:0] -A FORWARD -s 192.168.2.0/255.255.255.0 -d 192.168.0.0/255.255.0.0 -i eth2 -o ppp+ -j ACCEPT
[0:0] -A OUTPUT -o eth4 -p tcp -m tcp --dport 5269 -j REJECT --reject-with icmp-port-unreachable
[0:0] -A OUTPUT -o eth4 -p udp -m udp --dport 5269 -j REJECT --reject-with icmp-port-unreachable
[0:0] -A OUTPUT -s ! mail_ip_addr -o eth4 -p tcp -m tcp --dport 25 -j REJECT --reject-with icmp-port-unreachable
COMMIT

*nat
:PREROUTING ACCEPT [238771:15467012]
:POSTROUTING ACCEPT [45797:3131974]
:OUTPUT ACCEPT [45601:3094502]
[1575:93400] -A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
[22777:1095548] -A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
[48:2304] -A PREROUTING -i eth2 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128

#---------------------------------------------------------------------------------------
# А вот, собственно, то, что относится к видеорегистратору
[0:0] -A PREROUTING -d web_ip_addr -p tcp -m tcp --dport 5000 -j DNAT --to-destination videoreg_local_ip_addr:5000
[3:156] -A PREROUTING -d web_ip_addr -p tcp -m tcp --dport 5001 -j DNAT --to-destination videoreg_local_ip_addr:5001
#---------------------------------------------------------------------------------------

[40:2404] -A POSTROUTING -s 192.168.0.0/255.255.255.0 -o eth4 -j SNAT --to-source ext_ip_addr
[96628:7021072] -A POSTROUTING -s 192.168.1.0/255.255.255.0 -o eth4 -j SNAT --to-source ext_ip_addr
[37:1776] -A POSTROUTING -s 192.168.2.0/255.255.255.0 -o eth4 -j SNAT --to-source ext_ip_addr
COMMIT

web_ip_addr - внешний адрес сети. На нем также висит web-сервер.
videoreg_local_ip_addr - локальный адрес видеорегистратора.
5000 и 5001 - соотв-но AV port и Command port видеорегистратора.

Интерфейс лок.сети - eth1.

Вывод tcpdump при подключении к регистратору изнутри лок.сети:
arp who-has videoreg_local_ip_addr tell local_ip_addr

local_ip_addr - лок.адрес компа, с которого осуществляется подключение. Всё работает.

Вывод tcpdump при попытке подключения через внешний IP:
IP local_ip_addr.1835 > web_ip_addr.5001: S 2254610155:2254610155(0) win 65535 <mss 1460,nop,nop,sackOK>
IP local_ip_addr.1835 > web_ip_addr:5001: S 2254610155:2254610155(0) win 65535 <mss 1460,nop,nop,sackOK>
IP local_ip_addr.1835 > web_ip_addr.5001: S 2254610155:2254610155(0) win 65535 <mss 1460,nop,nop,sackOK>

Прошу прощения за невежество, но мб кто-нибудь подскажет что-нибудь дельное?


"я тэбэ один умный вэсчь скажу, только ты нэ обжайся"
Отправлено reader , 08-Дек-10 18:50 
>[оверквотинг удален]
> DNAT --to-destination videoreg_local_ip_addr:5001
> #---------------------------------------------------------------------------------------
> [40:2404] -A POSTROUTING -s 192.168.0.0/255.255.255.0 -o eth4 -j SNAT --to-source ext_ip_addr
> [96628:7021072] -A POSTROUTING -s 192.168.1.0/255.255.255.0 -o eth4 -j SNAT --to-source
> ext_ip_addr
> [37:1776] -A POSTROUTING -s 192.168.2.0/255.255.255.0 -o eth4 -j SNAT --to-source ext_ip_addr
> COMMIT
> web_ip_addr - внешний адрес сети. На нем также висит web-сервер.
> videoreg_local_ip_addr - локальный адрес видеорегистратора.
> 5000 и 5001 - соотв-но AV port и Command port видеорегистратора.

если у видеорегистратора серый ip, то на х.. ты его прячиш, как тут понять под какое правило пакет попадет?

> Интерфейс лок.сети - eth1.
> Вывод tcpdump при подключении к регистратору изнутри лок.сети:
> arp who-has videoreg_local_ip_addr tell local_ip_addr
> local_ip_addr - лок.адрес компа, с которого осуществляется подключение. Всё работает.
> Вывод tcpdump при попытке подключения через внешний IP:
> IP local_ip_addr.1835 > web_ip_addr.5001: S 2254610155:2254610155(0) win 65535 <mss 1460,nop,nop,sackOK>
> IP local_ip_addr.1835 > web_ip_addr:5001: S 2254610155:2254610155(0) win 65535 <mss 1460,nop,nop,sackOK>
> IP local_ip_addr.1835 > web_ip_addr.5001: S 2254610155:2254610155(0) win 65535 <mss 1460,nop,nop,sackOK>

какой это интерфейс? локальный адрес в подсети регистратора? что это? запросы без ответов, если да, то я вить говорил читай внимательно что под табличкой

> Прошу прощения за невежество, но мб кто-нибудь подскажет что-нибудь дельное?