Linux, Oracle, UTL_HTTP и порты | |
---|---|
Sawradym Автор Сообщений: 2244 Откуда: Винница Дата регистрации: 15.05.2007 |
Переехали с Amazon на другой хостинг и встал вопрос настройки файервола.
Вобщем с iptables более менее разобрался. Инструмент вроде как понятен, но знаний что ним делать не хватает. Вкратце опишу что я сделал и чего добиться не удалось. Таблицу OUTPUT решил вообще не трогать, потому как методом тыка ничего вымутить не удалось, т.е. на выход у меня открыто все (стоит политика ACCEPT)! В таблице INPUT я открыл порты 22,1521,80,8080,443,53 - тут вроде все понятно. Разрешил протокол icmp (без него почему-то первый раз не соединяется, потом пробовал удалять это разрешение и работало все нормально, но до перезагрузки сервера). Через netstat посмотрел что слушается порт 37117 открыл и его, но что это и для чего - понятия не имею. Где-то прочел про динамические порты, те которые 49152-65535, открыл и их, причем и tcp и udp. Имея все это я стабильно подключаюсь к серверу, но есть одно "НО". На сервере по таймеру запускается пакет содержащий UTL_HTTP Request, вот он выполняется через раз (на самом деле гораздо реже). Подозреваю что для запроса, помимо открытых мной портов, используется какой-то рандомный порт и если случайно этот порт попадает в диапазон 49152 и выше, то запрос проходит, а в остальных случаях отлуп. Хотелось бы решить проблему. Возможно я вообще не с той стороны захожу? ------------------ |
Re: Linux, Oracle, UTL_HTTP и порты | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Версия оракла, версия и название серверной ОС (может быть там уже не iptables в качестве брандмауэра а firewalld). Конкретная команда (запрос - сам адрес не столь важен, но вот указание на использование https протокола весьма важно) и конкретные ошибки.
Если это 11+ версия оракла, то настроены ли, и как именно ACL-ы для сетевых соединений. Пакет DBMS_NETWORK_ACL_ADMIN Для проверки вне-БД части тупо выполни через wget/curl соответствующий запрос (с сервера, естественно, и из аккаунта oracle - ну или под каким ты установил и запускаешь инстанс). Можно так же просто отключить временно весь брандмауэр и посмотреть изменится что либо или нет. P.S. Никаких "динамических портов" открывать не требуется, насколько я знаю (при разрешении всех исходящих). Достаточно чтобы был открыт порт листенера (1521). Прочие порты - в зависимости от используемых компонент. ------------------ WBR, Igor Исправлено 1 раз(а). Последнее : Igor Korolyov, 18.12.17 14:20 |
Re: Linux, Oracle, UTL_HTTP и порты | |
---|---|
Sawradym Автор Сообщений: 2244 Откуда: Винница Дата регистрации: 15.05.2007 |
Версия оракла 11g XE. Серверная ОС - CentOs 7. Используется iptables, firewalld отключен.
Почему важен https протокол? У нас урл указан в виде "my_site.com.ua/my_script.php", какой реально протокол используется я даже не задумывался, просто открыл порты 80 и 443 до кучи добавил 8080, для DNS открыл 53 порт. ACL настроены. Если таблицу INPUT очистить, то все работает как часы. http-запрос перестает работать как только я закрываю порты. На этот хостинг мы переехали примерно месяц назад. Изначально там все было открыто, но за это время уже несколько раз случалось "падение" сервера по причине превышения кол-ва открытых файлов. Виновника найти та и не удалось. Пока в течение дня мониторю этот сервер, то все нормально, а что там ночью происходит - загадка, потому как после "падения" можно лишь залогиниться по ssh, но ни одна команда уже не выполняется, даже shutdown now. С тех пор как я закрыл порты "падений" пока не было. У нас подобных серверов около 3-х десятков. Часть из них на амазоне, остальные стоят прямо у организаций. Как там все устроено на амазоне я не знаю, но действительно там открыт только порт 1521 и этого достаточно. По поводу остальных серверов, для локалки априори все работает, для интернет-соединений наружу пробрасывается порт 1521 и этого тоже достаточно. Что такого особенного у этого хостинга я понять не могу, но то что открытого порта 1521 для установки соединения с оракле не достаточно, это факт! ------------------ Исправлено 1 раз(а). Последнее : Sawradym, 18.12.17 18:07 |
Re: Linux, Oracle, UTL_HTTP и порты | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Чем обусловлен отказ от firewalld? Для https нужно использовать wallet (менеджер ключей) - раньше он был частью компоненты advanced security, но кажись с 11-й версии его встроили и в базовую версию сервера (по крайней мере в части касающейся хранения открытых ключей для поддержки https соединений), и по идее он должен быть и в XE. Впрочем, если https не указывается, то и wallet не нужен. Если ты про входящие порты, то 80 или 8080 или там 21 это порт на котором слушает Oracle XML DB - там есть компоненты HTTP и FTP сервера встроенного в БД (конкретно номера портов настраиваются через DBMS_XDB.SETHTTPPORT/SETFTPPORT) - есть ли там https в 11-й версии я с ходу не скажу. Опять же это нужно для того чтобы снаружи соединяться с этим сервисом БД, который по сути как веб-сервер работает (обычно через него те или иные HTTP "сервисы" выставляют наружу). Впрочем, насколько я в курсе эта технология не является сейчас рекомендованной - лучше полноценный веб-сервер поднимать (тот же апач) и уже через него к БД ходить. Суть в том, что для HTTP запросов от сервера открывать входящие порты 80/8080/443 совершенно не нужно. 53 порт - как я понимаю актуально если на этой машине работает DNS сервер - для "запросов" к внешнему DNS серверу тоже не нужно открывать "входящий" порт. Как именно? Впрочем, если на других серверах при точно таких же настройках всё работает, то проблема явно не в этом... Странно это - для инициации запросов не нужно открывать входящие порты... Может быть тут какая-то хитрость с проксёй и её автоконфигурацией? Я не очень помню, rpm пакет с XE сам выполняет настройки параметров ядра, или нужно как для "полноценного" сервера вручную править разнообразные conf-файлы. В частности /etc/security/limits.conf где лимит числа файлов для oracle юзера указывается, и /etc/sysctl.conf - там вообще много всего интересного специально под оракл подкручивается... Ну то что нечто открыто на самом этом сервере, ещё не значит что оно не порежется где-то позже - роутерами, или если сервер виртуальный (особенно если это ПАРАвиртуализация через "контейнеры" того или иного рода) то гипервизором... ------------------ WBR, Igor |
Re: Linux, Oracle, UTL_HTTP и порты | |
---|---|
Sawradym Автор Сообщений: 2244 Откуда: Винница Дата регистрации: 15.05.2007 |
Почитал мануалы, понял что по сути одно и то же, выбрал iptables, потому как имеем большинство серверов под убунту 14, вдруг пригодится. Спасибо за информацию. Вроде все понятно. iptables задает правило с какой стороны открывается дверь(порт), снаружи или изнутри, но если уж я(процесс) дверь открыл, то ходить могу и туда и сюда. Параметры выставляются автоматически, но вручную тоже подкручивать нужно. В /etc/security/limits.conf я добавил строку "* - nofile 90000", /etc/sysctl.conf не трогал, еще кое-где подкручивал, вобщем ulimits -n у меня показывает 90000.
Позакрывал все порты кроме 22 и 1521. Работает. Сохранил iptables, перегрузил сервер и локалку. Не работает. Проверил правила, все правильно, как и сохранял. Чертовщина какая-то. Пойду мучить хостинг-провайдера, может он что подскажет. ------------------ |
Re: Linux, Oracle, UTL_HTTP и порты | |
---|---|
Sawradym Автор Сообщений: 2244 Откуда: Винница Дата регистрации: 15.05.2007 |
Заметил одну деталь. Вот что выдает netstat -plutn:
для ssh здесь 2 строки с протоколами tcp и tcp6, для всего остального только tcp6 и udp6. Я в ip6tables не прописывал ничего, т.е. по идее там все должно быть открыто. Пойду разбираться как тут все взаимодействует, кто кем рулит. Может как раз в этом проблема? ------------------ |
Re: Linux, Oracle, UTL_HTTP и порты | |
---|---|
pasha_usue Сообщений: 3647 Откуда: Е-бург Дата регистрации: 06.10.2006 |
Selinux включён? А если отключить ненадолго?
|
Re: Linux, Oracle, UTL_HTTP и порты | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Не совсем по теме, хотя как знать... Уронили на выходных один сервак - был сбой питания на пару часов, после старта я запустил на всех серверах yum update, и пока оно потиху обновлялось, один нехороший чел тупо ребутнул (а скорее даже ресет надавил) виртуальную (Hyper-V) ферму - его, дескать, "слишком долго не пущало по RDP"
В итоге в половине виртуалок поломался конфиг-файл (не я чинил, сисадмин говорит что "по виду" всё было ок, и сами файлы и линки к ним на системном диске, но менеджер "не видит" конфиги) - ну то пол беды - пересоздать конфиг файл подключив старые образы дисков не сверх-сложная задача... В одной из оракловских виртуалок вся поломка ограничилась сбойной yum-транзакцией, конечно возни было с откатом полу-накатившихся и от того задублировавшихся пакетов, и последующей уже штатной обновой, но она хотя бы рабочей осталась... А вот вторая упала наглухо - инитрамфс сдох, куча библиотек получила размер 0, в общем даже встроенный рекавери механизм не входил в систему. Хорошо хоть с установочного диска получилось зайти в рекавери мод. Ну сколько "настоящего секаса" было с тем чтобы кое как восстановить повреждённые/недоустановившиеся пакеты, не так уж интересно... Интересно другое - после этого аварийного восстановления сеть стала работать, мягко говоря, неадекватно. Машина снаружи пингуется, а внутри нетстат показывает полный голяк - ни оракл, ни даже ssh порты не открыли - хотя ip link и ip address бодро говорят что "всё пучком". Ладно, вырубил на eth0 полностью ipv6. (брандмауэра и селинукса на машине и так не было, т.к. она чисто для внутренних целей). После ребута стало интереснее - машина по прежнему пингуется, нетстат показывает что ssh и листенер слушают свои порты, тот же "статус сервиса" тоже показывает что "всё ок, слушаем внимательно" - а снаружи "мы стучим, стучим, кому деньги отдать то" - глухо в общем. От безысходности перезапустил ssh службу - и о чудо, подключение заработало! Перезапустил оракл - аналогично. Что там сломалось, как это чинить - ни малейшего понятия. Ладно хоть серверок старый уже, и его и так надо было переделывать В общем к чему я это - порой такие ошибки возникают, что всю голову сломать можно, а до корня проблемы и не докопаться... При том что даже по идее всё правильно делаешь ------------------ WBR, Igor |
Re: Linux, Oracle, UTL_HTTP и порты | |
---|---|
Sawradym Автор Сообщений: 2244 Откуда: Винница Дата регистрации: 15.05.2007 |
Похоже его там нет совсем , по крайней мере в /usr/sbin sestatus отсутствует. Хотя я тут себе смастерил серверок для опытов. Поставил ту же CentOs минималку и на ней все работает как и ожидается и SElinux присутствует и включен. Одно "но" - это лолкалка. А может действительно инстанс пересоздать и все само собой наладится? Похоже придумал себе работенку на ночь. ------------------ |
Re: Linux, Oracle, UTL_HTTP и порты | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Там же по идее нужен какой-то специальный путь конфигурирования чтобы отключить одно и включить другое - может тут проблема? Не до конца отключен firewalld, и они конфликтуют... Ну смотря что в твоём понятии "открыл дверь", и смотря какие именно правила... Если не рассматривать statefull режим - когда файр реально отслеживает кто чего делает и "придерживает дверь", то дверь всегда закрыта, и открывается только если "правильно постучали" - т.е. правила просты и прямолинейны - соединение на порт 22 - пропустить. После установления соединения, конечно если это tcp, т.е. оно таки "соединение" а не просто пакет пролетел и всё, уже можно в обе стороны гнать данные. Именно поэтому и неясно почему не работает загрузка по http - т.к. все исходящие у тебя разрешены, и идёт с твоей стороны установление соединения, а если оно установилось (а тут по идее только удалённая сторона, ну или сам "интернет" как путь-дорога может помешать) то данные должны качаться в обе стороны, и для этого не нужно никаких "входящих" разрешать... P.S. таки что за хостинг - это выделенный физический сервер (и ОС ты там сам разворачивал), или LXC - т.е. контейнер, и значительная часть настроек недоступна и регулируется только "их" админами... ------------------ WBR, Igor |
Re: Linux, Oracle, UTL_HTTP и порты | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
см. /etc/selinux/config SELINUX=disabled ну или permissive, но это значит что он таки "работает". ------------------ WBR, Igor |
Re: Linux, Oracle, UTL_HTTP и порты | |
---|---|
Sawradym Автор Сообщений: 2244 Откуда: Винница Дата регистрации: 15.05.2007 |
Я делал так:
Это виртуальный сервер и в качестве ОС там развернут их слепок CentOS 7 minimal. Я бы мог грешить на их админов если бы при пустом iptables у меня были бы проблемы с доступом, но их нет. Они начинаются как только я начинаю манипулировать iptables. ------------------ |
Re: Linux, Oracle, UTL_HTTP и порты | |
---|---|
Sawradym Автор Сообщений: 2244 Откуда: Винница Дата регистрации: 15.05.2007 |
вот как у меня обстоят дела
------------------ |
Re: Linux, Oracle, UTL_HTTP и порты | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
увы, некопенгаген - в смысле как выключить его я в курсе (т.к. выключаю обычно на наших виртуальных серверах), но вот достаточно ли это для "замены" его на iptables... не в курсе. Платформа виртуализации какая? Полноценный "хардварный" вариант получается, или всё же паравиртуализация? Ну и да, собственно все правила iptables неплохо было бы привести - хотя если они же работают на другой машине, то дело скорее всего не в этом... Но во взаимодействии с гипервизором и хост ОС - вполне может быть... P.S. Глупая мыслЯ пришла - а если таки не трогая iptables включить firewalld и через него разрешить только 22 и 1521 порты - не поможет ли это ------------------ WBR, Igor Исправлено 1 раз(а). Последнее : Igor Korolyov, 19.12.17 17:27 |
Re: Linux, Oracle, UTL_HTTP и порты | |
---|---|
Sawradym Автор Сообщений: 2244 Откуда: Винница Дата регистрации: 15.05.2007 |
Честно говоря не знаю. Как это можно узнать из гостевой ОС? Подозреваю что никак. На сайте у них такой информации я не нашел. besthosting.ua Думаю, все же, что это Hyper-V.
Вот правила:
Он похоже здесь даже не установлен. Вот результат проверки на локальном тестовом сервере
А вот результат проверки на виртуальном сервере
------------------ |
Re: Linux, Oracle, UTL_HTTP и порты | |
---|---|
Foxtrot Сообщений: 3408 Откуда: Куда: Дата регистрации: 25.04.2003 |
если служба работает после ее перезапуска, проще этот перезапуск сделать автоматом
я так делал надцать лет назад. опсле какогото сбоя оракл перестал нормально пахать, только после ручного перезапуска. ну я тупо просто автоматизировал процесс автоперезапуска если времени не жалко, можно и дальше копаться... как по мне, нефиг жизнь на такое разменивать ------------------ Мойте ноги, моя ноги вы моете и руки |
Re: Linux, Oracle, UTL_HTTP и порты | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Утилитой virt-what - она довольно много гипервизоров/систем паравиртуализации распознаёт. Если что, промышленно используемые системы [пара]виртуализации не скрывают себя - можно многое увидеть. Крайне маловероятно. Скорее всего это либо KVM (полноценный "хардварный" вариант виртуализации), либо OpenVZ - паравиртуализация - по сути все ВМ работают на одном ядре, просто разделяются "контексты выполнения". Судя по тому что там нет ни селинукса ни штатного файера, это похоже на OpenVZ. Для него вообще то по хитрому нужно файервол настраивать - на хосте что-то делать (чего ты, естественно, не сможешь никак провернуть) - кажись там возможно только 2 варианта - либо в главном домене/хосте всё регулируется (тогда тебе не повезло, но это вряд ли, раз уж ты МОЖЕШЬ влиять на работу файервола), либо в каждом из "виртуальных". Правда и поддержка может быть урезанной - в части conntrack - т.е. "отслеживания соединения" тогда тебе тоже не очень повезло... Наш "бестхостинг" (хз как он с вашим связан - м.б. только названием ) предлагает оба вида VPS, судя по сайту. "Полный" по идее будет дороже, зато позволяет любую ОС втулить, ну и да, там практически нет ограничений по конфигурированию. У тебя, похоже, нет "главного" правила для INPUT, потому и "режутся" соединения - файер блокирует "ответы": решается через
P.S. мануалы пишут что если conntrack вырезан, то должно помочь правило
P.P.S. В целом я сомневаюсь что для OpenVZ варианта допустимо тулить оракловский сервер - иногда наши хостеры явно запрещают даже просто java приложения для этого варианта хостинга (т.к. они жрут слишком много ресурсов, что плохо влияет на "соседние" контейнеры). Так что стоит этот вопрос тоже у хостера уточнить - а то отловят тебя за пожиранием cpu и io и "примут меры" Возможно нужен будет более дорогой вариант хостинга, с уже "настоящей" виртуализацией. P.P.P.S. Ну и да, правила для "высокономерных" портов не нужны ------------------ WBR, Igor Исправлено 2 раз(а). Последнее : Igor Korolyov, 19.12.17 23:25 |
Re: Linux, Oracle, UTL_HTTP и порты | |
---|---|
Sawradym Автор Сообщений: 2244 Откуда: Винница Дата регистрации: 15.05.2007 |
оказалось OpenVZ почему-то ни одно из правил не прошло
добавчик. на тестовом сервере первая же команда отработала нормально. видимо дистрибутив какой-то уж совсем левый у них. В заявке на хостинг было прямо указано про оракл, к тому же там версия XE так что "много ресурсов" это не наш случай.
Пока не розберусь с проблемой приходится их держать открытыми. Без них UTL_HTTP request вообще не проходит, а с ними примерно один из десяти выполняется. ------------------ Исправлено 1 раз(а). Последнее : Sawradym, 20.12.17 11:20 |
Re: Linux, Oracle, UTL_HTTP и порты | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Надо с саппортом перетирать - вероятно они чего-то не дают... Всё же OpenVZ это очень "тонкая" виртуализация, огромное количество "моментов" будет зависеть от настроек виртуального хоста. Нет особой разницы XE или не XE (ну в рамках его ограничений по памяти и используемым ядрам CPU) - это просто нагрузка несколько отличная от "привычных" для хостеров апача с "причиндалами"... Ну так разбирайся с проблемой кучи открытых файлов, т.к. похоже что без серьёзных тёрок с хостером файер ты не настроишь... ------------------ WBR, Igor |
Re: Linux, Oracle, UTL_HTTP и порты | |
---|---|
Sawradym Автор Сообщений: 2244 Откуда: Винница Дата регистрации: 15.05.2007 |
Дык, потому встал вопрос о файерволе, чтобы решить проблему кучи открытых файлов. Эх, видимо придется идти на поклон к хостеру. В конце-концов докупим у них "Администрирование", пусть у них голова болит. В любом случае, спасибо за помощь и участие. ------------------ |
© 2000-2024 Fox Club  |