Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Доступ к серверу Oracle извне...  [new]
MadHZ
Member

Откуда:
Сообщений: 23
Всем доброе время суток. Столкнулся с проблемой: надо обеспечить коннект до сервера oracle из интернета, с определенных IP адресов. Допустим, что "определенные IP адреса" пропустит firewall, с этим вопросов не возникает. А вот непосредственно по подключению к БД - вопросы имеются.
Схема сети такова.

real IP local IP

(clients) ->>> [internet] ----- [gateway] ----- [server oracle] <<--- (local clients)


Немного поясню.

(clients) - клиенты, которым нужно достучаться до БД [server oracle]
(local clients) - соответственно, локальные клиенты, подключающиеся к [server oracle] по локальной сети
[internet] - ну как бы интернет в целом. будем считать, что клиенты у нас только того диапазона IP-адресов, который нужен и т.д.

[gateway] - компьютер, который одним интерфейсом смотрит в интернет, другим - на локальную сеть.

таким образом, [server oracle] имеет локальный IP, (clients) имеют реальные IP - необходимо пробросить вторых до первого.

на [Gateway] стоит Win2000Server, Oracle 8.1.7.0.0

Начинаем танцы.

Чего удалось добиться: [Gateway], обладающщий реальным IP адресом с одной стороны и локальным -- с другой, прокидывает порт 1521 на сервер. Tnsping работает - т.е. если с внешнего клиента делать tnsping (алиас) -- то все ОК. Порт прокидывается только 1521. И вот тут, как мне кажется, и кроются проблемы. Если пытаться подконнектится с клиента к БД через sqlplus, то имеем ошибку ORA-12535: TNS:operation timed out

Я склонен думать, что это происходит оттого, что сервер инициирует с клиентом соединение по какому-то другому порту, отличному от 1521, а порт, соответственно, не прокидывается через [Gateway]. Таким образом, имеем таймаут в ответе - ну и по его истечению возникает ошибка.

Прав ли я?

Если да, то тогда вопросы:

1) по какому порту происходит соединение сервера с клиентом? где настройки, которые это регулируют? Открывать диапазон портов в интернет - очень бы не хотелось.. в идеале, обойтись бы одним 1521.

2) поиском по форуму нашел несколько похожих проблем: раз и два. Вкратце, предлагается использовать параметр USE_SHARED_SOCKET в регистри windows, где установлен сервер oracle, или прокидывать порты с winssh (я так понимаю, кучей). Т.к. второе для меня все же нежелательно, хотелось бы поподробнее разобраться с первым. Кто имеет опыт применения USE_SHARED_SOCKET на Oracle 8.1.7.0.0? как оно работает и работает ли? имеет ли разницу, работает сервер как dedicated или shared? Проблема в том, что править регистри и рестартовать сервер ради эксперимента очень нежелательно: работа идет 24/7, каждый рестарт равнозначен исключительной ситуации. Хотелось бы 1 раз и в "десятку", грубо выражаясь.

3) может быть, я что-то упустил и есть еще какие-то способы?

всем спасибо!
10 дек 06, 01:56    [3515110]     Ответить | Цитировать Сообщить модератору
 Re: Доступ к серверу Oracle извне...  [new]
Scott Tiger
Member

Откуда: вмваре
Сообщений: 6876
USE_SHARED_SOCKET в 8.1.7 нормально работает. В dedicated всё так и будет, в shared надо будет явно указывать порты диспетчеров (тогда и шаред_сокет, по идее, не надо). О каком 24*7 идёт речь, если это непатченный релиз, да ещё и под виндой? Ты завышаешь требования к доступности либо же до сих пор работаешь только потому, что такой удачливый сукин сын
10 дек 06, 02:16    [3515128]     Ответить | Цитировать Сообщить модератору
 Re: Доступ к серверу Oracle извне...  [new]
Ааз
Member

Откуда: Москва/Протвино
Сообщений: 4274
MadHZ
...
Прав. Грамотный анализ. Все так и происходит. listener, получив запрос на соединение, отсылает сообщение с redirect. Понятно, что внешний (за firewall'ом) IP сервера ему не известен, потому он посылает внутренний... Если бы был *x и без shared server (MTS) в Oracle - вы бы и не заметили проблемы :-).

USE_SHARED_SOCKET - оно. Ограничение - при перезапуске listener'а порвутся все установленные соединения.

Shared/Dedicated: для винды почти без разницы, поскольку всегда используется redirect (кроме USE_SHARED_SOCKET).

В shared диспетчерам можно явно указать порты для прослушивания. Однако IP все равно останется внутренним. Так что проблемы не решает.

Из более навороченных вариантов - CMAN за firewall'ом (читать доку).

Народ из инета, говорите... Гхммм... IP spoofing, типа, возле птицы... Не нравится мне идея, если честно. Я бы посредничка какого все-таки посадил между инет и базой. Оно вам надо со всяким SQL injection бороться?

Всего
10 дек 06, 04:30    [3515175]     Ответить | Цитировать Сообщить модератору
 Re: Доступ к серверу Oracle извне...  [new]
ФВЛ
Member

Откуда: Москва
Сообщений: 170
Железного маршрутизатора нет случайно, например cisco или 3com каких-нить? Они легко справляются с этой проблемой.
10 дек 06, 10:57    [3515308]     Ответить | Цитировать Сообщить модератору
 Re: Доступ к серверу Oracle извне...  [new]
ФВЛ
Member

Откуда: Москва
Сообщений: 170
Хотя конечно странно, что не удалось в 2000 пробросить все необходимые порты. Что использовалось для этого? RRAS? Win 2000 уже порядком подзабыл, но вот RRAS в 2003, точно корректно пробрасывает порты туда и обратно.
10 дек 06, 12:35    [3515408]     Ответить | Цитировать Сообщить модератору
 Re: Доступ к серверу Oracle извне...  [new]
BW
Member

Откуда:
Сообщений: 727
Как вариант, использование VPN.
ИМХО, более правильное тактическое решение.

С уважением,
bw.
10 дек 06, 14:11    [3515531]     Ответить | Цитировать Сообщить модератору
 Re: Доступ к серверу Oracle извне...  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 18399
Ааз
Я бы посредничка какого все-таки посадил между инет и базой. Оно вам надо со всяким SQL injection бороться?

А я бы поднял VPN и не парился...
10 дек 06, 14:27    [3515557]     Ответить | Цитировать Сообщить модератору
 Re: Доступ к серверу Oracle извне...  [new]
bdmalex
Member

Откуда: Москва
Сообщений: 612
MadHZ
Открывать диапазон портов в интернет - очень бы не хотелось.. в идеале, обойтись бы одним 1521. .....

....
А как вам идея, когда в Интернет НИ ОДИН из портов изначально не открыт ?
IMHO, вам должны помочь волшебные идеи из области port knocking...Поиск рулит!
10 дек 06, 16:31    [3515711]     Ответить | Цитировать Сообщить модератору
 Re: Cтатистика и export...  [new]
MadHZ
Member

Откуда:
Сообщений: 23
13 дек 06, 11:58    [3529223]     Ответить | Цитировать Сообщить модератору
 Re: Доступ к серверу Oracle извне...  [new]
MadHZ
Member

Откуда:
Сообщений: 23
пардон, в предыдущщем посте ошибочка вышла.

Всем спасибо, use shared socket - заработало (пока что на одной БД, ждем возможности рестартануть другую

Scott Tiger Может я и удачливый сукин сын, но нормально пашет уже с десяток таких серверов в схожих условиях. Может, в железе дело? :)

Ааз про спуфинг я в курсе, про CMAN почитаю, спасибо. Но пока другого выхода, собственно говоря, нет. А посредничек есть - в инет порт торчит далеко не 1529 :)

ФВЛ да в том-то и дело, что нет. была бы железка - было бы прощще, не спорю... пробрасывать в 2000 порты пробовалось с RAS, но дело в том, что сама конфигурация сети подразумевает некую нежелательность его использования.

BW про VPN думал. Но насколько он паразитно грузит канал и создает нагрузку на gateway?

bdmalex про port knocking слышал, но ни разу не сталкивался - и в данном случае, вообще забыл. спасибо, почитаем! :)
13 дек 06, 11:59    [3529229]     Ответить | Цитировать Сообщить модератору
 Re: Доступ к серверу Oracle извне...  [new]
sas1
Guest
Scott Tiger
USE_SHARED_SOCKET в 8.1.7 нормально работает. В dedicated всё так и будет, в shared надо будет явно указывать порты диспетчеров (тогда и шаред_сокет, по идее, не надо). О каком 24*7 идёт речь, если это непатченный релиз, да ещё и под виндой? Ты завышаешь требования к доступности либо же до сих пор работаешь только потому, что такой удачливый сукин сын


а у меня, кстати, рвался коннект в 8ке при USE_SHARED_SOCKET=TRUE, а в 9ке - без проблем работает
13 дек 06, 12:17    [3529405]     Ответить | Цитировать Сообщить модератору
 Re: Доступ к серверу Oracle извне...  [new]
xsample
Guest
А как быть, если используется Oracle 7.3.4 - я такой ветки в реестре не обнаружил.
29 янв 07, 08:39    [3705408]     Ответить | Цитировать Сообщить модератору
 Re: Доступ к серверу Oracle извне...  [new]
__mike__
Member

Откуда: Белгород
Сообщений: 553
у меня правда Oracle 9.2.0.6 - но я для доступа через инет ставил CMAN - если он есть в восьмерке ( полагаясь на Ааза он есть )- то можно его, у него к стати есть свои правила доступа к тому или иному сервису, в том числе и по IP адресу
29 янв 07, 09:14    [3705461]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить