Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Вопрос по шифрованию траффика  [new]
Guest0807
Guest
При помощи Advanced Security шифруется траффик как таковой. А мне нужно передать таким образом данные только одной схемы. Никак? Что же из-за этого - отдельный сервер?
8 июл 11, 20:10    [10948343]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по шифрованию траффика  [new]
artemg
Member

Откуда: Санкт-Петербург
Сообщений: 593
тем кому не надо шифровать коннектитесь на обычный, не ssl листенер, какие проблемы?
8 июл 11, 20:45    [10948432]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по шифрованию траффика  [new]
Guest0807
Guest
Теперь никаких. Спасибо.
8 июл 11, 20:50    [10948445]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по шифрованию траффика  [new]
shutkov.mihail
Member

Откуда: Что-то постоянно плывет по Неве... Я в СПб сижу на траве..
Сообщений: 403
Guest0807
При помощи Advanced Security шифруется траффик как таковой. А мне нужно передать таким образом данные только одной схемы. Никак? Что же из-за этого - отдельный сервер?

А собственно зачем шифровать? Имеем 3х звенную архитектуру сейчас ведь...
8 июл 11, 21:22    [10948582]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по шифрованию траффика  [new]
artemg
Member

Откуда: Санкт-Петербург
Сообщений: 593
бывает что бекенды в чужих сетях и ходят в твою базу по публичному каналу
9 июл 11, 00:07    [10949141]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по шифрованию траффика  [new]
Guest0807
Guest
А все-таки есть проблема. Пусть листенеров два, и клиент коннектится ко второму. Но параметры, описанные в д-ции по Advanced Security, записываются в sqlnet.ora, как на клиенте, так и на сервере. Как сделать так, чтобы на клиенте это работало только для одного сервис нейма, и на сервере - только для второго листенера?
Вопрос, повторяю, вызван тем, что надо, чтобы эта система работала только для одной проги/схемы (в обычном клиент=сервере, кстати, а вовсе не в трехзвенке).
12 июл 11, 16:53    [10963035]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по шифрованию траффика  [new]
iehf
Member

Откуда: Москва
Сообщений: 323
Guest0807,
не надо два листенера, надо один настроить
+

Далее по тексту:

1521 – default non-ssl port number (Oracle DB server)
2484 - default ssl port number (Oracle DB server)

ORACLE-HOST1.COM – Oracle server (physical machine) host name

ORCL – Oracle DB Instance name
cn=ORCL - отличительное имя сервера БД (д.б. такое же точно как в wallet'e сервера БД

1.1. $ORACLE_HOME\network\admin\tnsnames.ora (сервер и клиент).
#
# для обычных пользователей
ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle-host1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SID = ORCL)
)
)
# для особых случаев
ORCLSSL=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCPS)(HOST = oracle-host1)(PORT = 2484))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORCL)
(SID = ORCL)
)
(SECURITY=
(AUTHENTICATION_SERVICE = TCPS)
(SSL_SERVER_CERT_DN="cn=ORCL")
)
)

2. $ORACLE_HOME\network\admin\listener.ora (сервер)
#
#
WALLET_LOCATION =
(SOURCE =
(METHOD = FILE)
(METHOD_DATA =
(DIRECTORY = C:\oracle\wallet) # здесь указать где реально есть wallet сервера БД
)
)

LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle-host1)(PORT = 1521)) # non SSL
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCPS)(HOST = oracle-host1)(PORT = 2484)) # SSL
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
)

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = C:\oracle\ora92) # здесь указать реальный oracle_home
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = ORCL)
(ORACLE_HOME = C:\oracle\ora92) # здесь указать реальный oracle_home
(SID_NAME = ORCL)
)
)
SSL_CLIENT_AUTHENTICATION = FALSE

3.1. $ORACLE_HOME\network\admin\sqlnet.ora (сервер).
#
#
WALLET_LOCATION =
(SOURCE =
(METHOD = FILE)
(METHOD_DATA =
(DIRECTORY = C:\oracle\wallet) # здесь указать где реально есть wallet сервера БД
)
)

#SSL_CIPHER_SUITES= (SSL_RSA_WITH_3DES_EDE_CBC_SHA)
SQLNET.AUTHENTICATION_SERVICES= (NTS,BEQ, TCPS)
#
SSL_CLIENT_AUTHENTICATION = TRUE
SSL_VERSION = 3.0
NAMES.DIRECTORY_PATH= (TNSNAMES)

3.2. $ORACLE_HOME\network\admin\sqlnet.ora (клиент).
#
#
WALLET_LOCATION =
(SOURCE =
(METHOD = FILE)
(METHOD_DATA =
(DIRECTORY = C:\oracle\wallet) # здесь указать где реально есть wallet клиента
)
)
#SSL_CIPHER_SUITES= (SSL_RSA_WITH_3DES_EDE_CBC_SHA)
SQLNET.AUTHENTICATION_SERVICES= (TCPS)
#
SSL_CLIENT_AUTHENTICATION = TRUE
SSL_VERSION = 3.0
NAMES.DIRECTORY_PATH= (TNSNAMES)


дальше заделать wallet'ы для сервера и клиента, положить в нужные места и всё.
обычные пользователи соединятся будут так:
connect имя/пароль@orcl
по ssl протоколу к нужной схеме
connect /@orclssl
12 июл 11, 17:38    [10963431]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по шифрованию траффика  [new]
Guest0807
Guest
Легко догадаться, что я с настройкой SSL ранее дел не имел и wallet'ы не создавал. Поэтому и вопрос такой - а что насчет получения сертификата - бесплатно и не trial? У Пржиялковского в примере как раз trial. Т.е. без получения сертификата никак нельзя (мне ж только внутри сети) и я должен использовать что-то вроде openSSL?
12 июл 11, 19:06    [10963949]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по шифрованию траффика  [new]
artemg
Member

Откуда: Санкт-Петербург
Сообщений: 593
а зачем SSL_CLIENT_AUTHENTICATION = TRUE если надо только шифровать трафик?
для этого тогда достаточно сертификата на сервере, клиент пусть по паролю аутентифицируется
сертификат можно сгенерить самому конечно и подложить в wallet

я бы все-таки делал отдельно ssl/tcps листенер отдельно обычный

на клиенте соответствующий tns-алиас с (protocol=tcps)...(port=2484) ну или на какой там порт вы настроите tcps листенер

кстати учтите что там в процессе соединения происходит перенаправление на случайный порт
нужно чтобы на фаерволах был открыт весь диапазон портов 1024-65535 между клиентом и сервером БД
12 июл 11, 19:44    [10964045]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по шифрованию траффика  [new]
iehf
Member

Откуда: Москва
Сообщений: 323
Guest0807,

сертификаты можно издавать своим УЦ, он входит в Win2003|2008. Или каким-нибудь openSSL, здесь даже где-то ветка такая была.
13 июл 11, 12:28    [10966615]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по шифрованию траффика  [new]
iehf
Member

Откуда: Москва
Сообщений: 323
artemg,

да, аутентификация в данном случае лишняя. Какие у меня были настройки, такие и выложил.
13 июл 11, 12:29    [10966626]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по шифрованию траффика  [new]
Guest0807
Guest
1. Отредактировал, как в примере выше, сетевые файлы на сервере и клиенте
2. Создал валлеты и сертификаты на сервере (Wallet Manager'ом сервера, т.е. под Линуксом) и клиенте (Wallet Manager'ом клиента, т.е. под Windows - файлы запроса на сертификат, таким образом, разные и друг с другом не связанные).
Для этого использовал скрипт для openSSL, взятый отсюда - http://tylermuth.wordpress.com/2007/07/27/oracle-wallet-w-self-signed-certificate/
Т.е. прошел по шагам сначала для валлета на сервере, потом скопировал сюда файл запроса сертификата с клиента, повторил шаги, скопировал трастид и пользовательский сертификаты в директорию клиента. В обоих случаях импорт сертификатов Валлет Менеджером прошел успешно.
3. Подключился через ssl сервис нейм sqlplus'ом на сервере. Запрос выполнился.
4. То же самое, но на клиенте. Результат "ORA-29024: сбой при проверке корректности сертификата". И как бороться?
14 июл 11, 15:49    [10974659]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по шифрованию траффика  [new]
iehf
Member

Откуда: Москва
Сообщений: 323
Guest0807,

может надо корневой сертификат импортировать в виндовый Trusted Root Store?
14 июл 11, 17:07    [10975336]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по шифрованию траффика  [new]
Guest0807
Guest
Да, я так и сделал - импортировал на клиенте trusted-сертификат, полученный ранее на сервере. После этого все заработало - запросы под ssl сервис неймом стали проходить.

У меня последний (надеюсь;)) вопрос - вот я нахожу в логе листенера себя. А почему там порт какой угодно, но не тот, что я указал в настройках (2484)?
14 июл 11, 18:47    [10975977]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по шифрованию траффика  [new]
iehf
Member

Откуда: Москва
Сообщений: 323
Guest0807,

artemg об этом выше писАл

artemg
кстати учтите что там в процессе соединения происходит перенаправление на случайный порт
нужно чтобы на фаерволах был открыт весь диапазон портов 1024-65535 между клиентом и сервером БД
14 июл 11, 18:59    [10976070]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по шифрованию траффика  [new]
Guest0807
Guest
Насчет всего диапазона сисадмин утверждает, что все открыто, а 2484 я проверил telnet'ом, открывается. Так как бороться? И каков, кстати, физический смысл данного явления, где почитать?
15 июл 11, 13:10    [10979450]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по шифрованию траффика  [new]
Guest0807
Guest
Аааааа... вот что... Не хотите ли вы сказать, что перенаправление на случайный порт (при открытом диапазоне) - это нормально, и именно эту картину в логе листенера (любые случайные порты) я и должен наблюдать в случае штатной работы по ssl? А зачем тогда в настройках конкретный порт указывать?
15 июл 11, 14:39    [10980227]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по шифрованию траффика  [new]
iehf
Member

Откуда: Москва
Сообщений: 323
Guest0807,

а куда коннектиться клиенту? на случайный порт :))
15 июл 11, 15:32    [10980700]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить