TOMCAT и пакетные фильтры

Обсуждение технических вопросов по продуктам Novell

TOMCAT и пакетные фильтры

Сообщение Владимир Горяев » 18 авг 2004, 17:30

Включил пакетные фильтры и перестали работать iManager и проч.
Оказалось TOMCAT лезет на 127.0.0.1:9009... с адреса 127.0.0.1 и не может законнектиться. Пришлось добавить разрешение на порт 9009 для всех(не дает же loopback прописывать) :cry:

Так и должно быть?

FILTSRV.NLM 1.60.09
IPFLT.NLM 4.60.03
IPFLT31.NLM 5.31.09
Бардак автоматизировать невозможно!!!
_________________
Аватара пользователя
Владимир Горяев
 
Сообщения: 3473
Зарегистрирован: 05 июн 2002, 13:37
Откуда: Смоленск

Сообщение Сулейменов Олжас » 19 авг 2004, 09:20

Попалась мне статья
NetWare – сервер приложений
«Главное в этом деле – хорошая платформа!», автором которой является Андрей Шарыпов,(say@sigma-soft.spb.ru), зам. директора ООО «Сигма-Софт» (http://www.sigma-soft.ru/)

Там описывался стенд с Novwll Netware 5.1, JVM 1.2.2, Apache 1.3.22 и Tomcat 3.3. В статье пояснялосб, что при использовании на сервере Tomcat и Border Manager нужно сменить по умолчанию порты 8007 на 9007 и 8009 на 9009.

Как я понимаю, в Netware версий 6 это все автоматизировано.

Кроме того, в sys:tomcat\conf\jserv\tomcat.properties есть уставка:

# List of IP addresses allowed to connect to Apache JServ. This is a first
# security filtering to reject possibly unsecure connections and avoid the
# overhead of connection authentication.
# Syntax: security.allowedAddresses=[IP address],[IP Address]... (Comma separated list of IP addresses)
# Default: 127.0.0.1
#security.allowedAddresses=127.0.0.1

может, этим поиграться попробовать?
Аватара пользователя
Сулейменов Олжас
 
Сообщения: 281
Зарегистрирован: 17 июн 2003, 10:00
Откуда: г. Казань

Сообщение Владимир Горяев » 19 авг 2004, 09:51

Сулейменов Олжас писал(а):может, этим поиграться попробовать?
Ето первое что пришло мне на ум. Изменить например на адрес приватного интерфейса. Но там конфигурация во многих файлах пописана(напр. и в server.xml), а я незнаю точно солько их и кто они...
BM пока не поднимал(может и ненужен будет, пока неясно), только проинсталил и NIAS сконфигурил, фильтры стал настраивать, оно и взбрыкнуло. Засада однозначно в модулях фильтрации. Вот и думаю помогут ли последние патчи или не стоит заморачиваться... Пока NW6SP4 и BM37.
Бардак автоматизировать невозможно!!!
_________________
Аватара пользователя
Владимир Горяев
 
Сообщения: 3473
Зарегистрирован: 05 июн 2002, 13:37
Откуда: Смоленск

Сообщение Сулейменов Олжас » 19 авг 2004, 10:30

Вся статья:

Eще до выхода NetWare 5, примерно в 1998 г., на сайте Novell начали появляться первые упоминания про реализацию Java-машины для NetWare. Но еще долго это казалось авантюрой из серии дружбы с Netscape против Microsoft. В лучшем случае — бесполезной игрушкой. Видимо, и в фирме Novell это понимали и предпринимали попытки предоставить своим клиентам средства разработки и разворачивания приложений на платформе серверов NetWare. Наиболее заметной, если не единственной, такой попыткой до последнего времени оставался сервер приложений, входящий в комплект мощного продукта IBM WebSphere. Продукт достаточно интересный, но, во-первых, очень громоздкий, требующий сложной настройки, во-вторых, «боевая» версия этого продукта стоит очень дорого. При этом надо отметить, что реализация WebSphere для NetWare сделана достаточно хорошо, устанавливается и настраивается в чем-то даже проще, чем на Linux, но все равно после установки каждый раз, пройдя по всем пунктам настройки, с опаской ждешь — появится на экране тестового примера нормальный результат или ошибка 500 со стеком вызовов. Еще одним недостатком реализации WebSphere Application Server для NetWare является то, что этот продукт предназначен для работы с NetWare Enterprise Web Server — сервером, работающим крайне нестабильно.
Похоже, что все это прекрасно понимали и в Novell и пытались изменить положение. В начале 2000 г. появилась первая реализация для платформы NetWare Web-сервера Apache, который отлично работал на NetWare 5.X. С этого момента каждая новая версия Web-сервера Apache выпускалась с реализацией для NetWare. Apache — целое семейство продуктов, одной из составных частей которого является проект Jakarta, включающий в себя продукт под названием Tomcat — servlet container (хранилище сервлетов). Этот продукт предоставляет как интерфейс взаимодействия приложений, написанных на языке Java, с Web-сервером Apache, так и возможность использования Java Server Pages. В начале 2001 г. появилась реализация Tomcat для NetWare. «Это ж-ж-ж неспроста!», как говорилось в одном известном мультфильме. Весной 2001 г. фирма Novell выпустила новый продукт — Portal Services, представляющий собой Web-приложение, позволяющее формировать Web-страницы персонально для каждого посетителя сайта на основе информации, хранящейся в NDS. Необходимо отметить абсолютную платформенную независимость этого продукта — установив eDirectory на Microsoft Windows NT, Linux или Solaris, можно, в принципе, обойтись и без серверов NetWare. Основой Portal Services является Web-приложение, написанное на языке Java, которое посредством Tomcat взаимодействует с Web-сервером, которым, в зависимости от платформы, может быть либо Apache, либо IIS, либо Novell Enterprise Web Server. Продукт Portal Services вошел в комплект поставки NetWare 6 под названием NetWare Web Access.
Кроме того, что Portal Services интересен сам по себе, этот продукт наглядно доказал, что для NetWare можно разрабатывать приложения! Чем всегда отличалась фирма Novell, так это умением писать отличную документацию к своим продуктам. Документация Portal Services содержит достаточно подробное описание установки на NetWare как Web-сервера Apache, так и Tomcat. Но для разработки и разворачивания своих Web-приложений необходимо подробно изучить документацию Tomcat на сайте http://jakarta.apache.org/.
Большинство Web-приложений предназначены для интерактивной обработки информации, которая должна где-то храниться. Конечно, интересно для этого использовать NDS, как это сделано в Portal Services, но для большинства разработчиков более привычными являются традиционные СУБД типа Oracle. Именно эту систему использует IBM WebSphere для хранения всевозможных данных, включая даже конфигурацию сервера. Для этого есть все возможности — в комплект Oracle (в том числе и в поставляемый в составе NetWare 5.1) входят JDBC-драйверы, позволяющие работать с этой СУБД приложениям, написанным на языке Java, включая использование хранимых процедур. На сегодняшний день главная проблема, возникающая при этом, следующая: для работы Tomcat необходима JVM версии не ниже 1.2.2, а Oracle Installer работает только с версией 1.1.7. Создается впечатление, что именно нежелание Oracle переделывать программу установки стало основной причиной очередного разлада Novell и Oracle летом 2001 г. В связи с этим приходится либо разносить сервер приложений и Oracle, либо сначала устанавливать Oracle на NetWare 5.1, а потом устанавливать JVM 1.2.2 и все остальное. Кроме программы установки, никакие компоненты Oracle не зависят от версии JVM.
Одна из задач, возникающих при обработке данных — защита от несанкционированного доступа. Apache на платформе NetWare имеет все необходимое для организации защищенной передачи данных по протоколу https с использованием SSL. Более того, существует возможность настройки аутентификации на основе NDS, но сейчас не будем этого касаться.
Итак, создадим сервер приложений на платформе NetWare 5.1.
Установим NetWare 5.1. При выборе устанавливаемых компонентов не будем отмечать NetWare Enterprise Web Server — он нам не нужен.
Установим Oracle. При этом помним о том, что для хранения данных является предпочтительным создание отдельного тома и, если этот том не NSS, необходимо отключить Compression и Suballocation, а в файле <OraHome>\NLM\CONFIG.ORA изменить значение параметра NW_FSTYPE с CLIB на DFS.
Установим JVM 1.2.2. Для этого зайдем на сайт http://download.novell.com/ и на первой же странице найдем соответствующую ссылку — JVM 1.2.2 for NetWare. Никаких отклонений от стандартной установки не требуется.
Установим Apache. Для этого зайдем на сайт Apache и загрузим из раздела http://www.apache.org/dist/httpd/binaries/netware/ нужный файл. На данный момент это apache_1.3.22_netware-up.zip (для однопроцессорных серверов). Распакуем этот файл и скопируем все его содержимое в корень тома SYS. Введем в командной строке на консоли сервера SEARCH ADD SYS:APACHE, добавим эту же строку в файл AUTOEXEC.NCF. Настроим Web-сервер, отредактировав файл SYS:apache\conf\httpd.conf. В этом файле задается огромное количество параметров, важность которых определяется в каждом конкретном случае, поэтому сейчас остановимся на двух из них:
4.1. Подключим возможность работы через защищенное соединение с использованием SSL по протоколу https. Для этого уберем комментарий со строки LoadModule tls_module modules/mod_tls.nlm.
4.2. Укажем реальное имя сервера в строке ServerName 123.45.67.89.

Установим Tomcat. Для этого зайдем на сайт Jakarta и загрузим из раздела http://jakarta.apache.org/builds/jakart ... %20&#244;&#224;&#233;&#235;%20jakarta-tomcat-3.3.zip. В принципе, существуют и версии Tomcat 3.2.4 и 4.0.1, но в состав NetWare 6 включены версии 3.2.1 и 3.3, реально используется версия 3.3, и именно с этой версией прошли все удачные эксперименты. Кому не хватит возможностей, предоставляемых этой версией, пробуйте другие, потом расскажете. Распакуем полученный файл в корень тома SYS и для удобства переименуем созданный при этом раздел jakarta-tomcat-3.3 в Tomcat. Введем в командной строке на консоли сервера SEARCH ADD SYS:TOMCAT/BIN, добавим эту же строку в файл AUTOEXEC.NCF. На сервере Jakarta перейдем в раздел http://jakarta.apache.org/builds/jakart ... ware/i386/, загрузим файл mod_jk.nlm и поместим его в раздел SYS:apache\modules.
Займемся настройкой Tomcat.

Перейдем в раздел SYS:tomcat\bin и создадим файл tomcat.ncf, записав в него следующие строки:

; This is a sample NCF file for starting TOMCAT 3.3 on NetWare. The TOMCAT_HOME
; environment variable and the tomcat.home define on the java command line
; should be modified to reflect the directory where you actually install
; Tomcat.

; First, make sure that Java is loaded so that the envsets will work
load java

; Now define the environment for Tomcat. Change this to match your paths
envset TOMCAT_HOME=SYS:\tomcat

; We really only need classes.zip for 1.1.7 compatability but it doesn’t hurt
; anything to leave it here.
envset TOMCAT_ CLASSPATH=sys:\java\lib\classes.zip
envset TOMCAT_CLASSPATH=$TOMCAT_CLASSPATH;$TOMCAT_ HOME\lib\tomcat.jar
envset TOMCAT_CLASSPATH=$TOMCAT_CLASSPATH;SYS:\java\njclv2\lib\jndi.jar
envset TOMCAT_CLASSPATH=$TOMCAT_CLASSPATH;SYS:\ java\njclv2\lib\njclv2.jar
envset TOMCAT_CLASSPATH=$TOMCAT_CLASSPATH;SYS:\ tomcat\lib\common\jnet.jar
envset TOMCAT_CLASSPATH= $TOMCAT_CLASSPATH;SYS:\tomcat\lib\common\jcert.jar
envset TOMCAT_CLASSPATH= $TOMCAT_CLASSPATH;SYS:\tomcat\lib\common\jsse.jar
envset TOMCAT_CLASSPATH= $TOMCAT_CLASSPATH;SYS:\java\lib\jclient.jar

<Здесь вы можете добавить те библиотеки, которые нужны для Ваших приложений.>
; The following command line starts Tomcat with it’s own Console Screen
; that will automatically close (-nsac) with the screen called Tomcat
; (-snTomcat) and the current working directory set to match TOMCAT_HOME
; (-envCWD=SYS:\tomcat). The %1 on the end means we can shutdown Tomcat by
; passing a -stop paramter to the ncf file. Make sure to modify the
; -Dtomcat.home to point to your installation
java -envCWD=$TOMCAT_HOME -classpath $TOMCAT_CLASSPATH -Dtomcat.home= SYS:\tomcat org.apache.tomcat.startup.Main %1 %2 %3

По аналогии с указанными выше Вы можете добавить те библиотеки, которые нужны для ваших приложений.

Перейдем в раздел SYS:tomcat\conf и отредактируем файлы prof-server.xml и server.xml, внеся в них однотипные изменения: заменим выражения port="8007" на port="9007" и port="8009" на port="9009". Дело в том, что взаимодействие Apache и Tomcat происходит по протоколу TCP/IP через указанные порты, а на серверах NetWare эти порты заняты, их использует PORTAL.NLM. Если на этом сервере вы собираетесь использовать Novell Border Manager, то по этой же причине стоит заменить выражения port="8080" на port="9080".
Перейдем в раздел SYS:tomcat\conf\jk и отредактируем файл workers.properties.
Заменим все вхождения 8007 на 9007 и 8009 на 9009 соответственно.
Укажем правильное значение параметра workers.tomcat_ home=sys:/tomcat.
Укажем правильное значение параметра workers.java_ home=sys:/java.
Укажем правильное значение параметра worker. inprocess.jvm_lib=$(workers.java_ home)$(ps)jre$(ps)bin$(ps)classic$ (ps)jvm.nlm.
В принципе, необходимые для запуска изменения на этом заканчиваются. Для использования дополнительных возможностей обратитесь к документации на сайте http://jakarta.apache.org/.
Теперь свяжем вместе Apache и Tomcat. Делается это очень просто и красиво.
Введем с консоли сервера команду tomcat start –jkconf. В результате ее выполнения распакуются примеры, входящие в комплект Tomcat, и в разделе SYS:tomcat\conf\auto будет создан конфигурационный файл mod_jk.conf, содержащий всю необходимую информацию для Web-сервера Apache.
Вернемся к редактированию файла SYS:Apache\conf\httpd.conf. Добавим в конец этого файла строку Include sys:/tomcat/conf/auto/mod_jk.conf.

Все готово к запуску. Сначала запускаем Tomcat командой tomcat start, затем запускаем Apache. Запускать Apache можно либо в адресном пространстве операционной системы, либо в отдельном адресном пространстве. Запуск в отдельном адресном пространстве предпочтительней из соображений устойчивости сервера, но не все дополнительные модули, которые могут быть подключены к Apache, могут работать в защищенном режиме. В частности, это касается аутентификации на основе NDS. Но запуск в отдельном адресном пространстве позволяет запускать на одном сервере несколько Web-серверов с разными конфигурационными файлами. В нашем случае ничто не мешает нам запустить Web-сервер в отдельном адресном пространстве. Для этого с консоли сервера введем команду load address space = apache apache. Если все сделано правильно, на отдельном экране получим сообщения о загрузке модулей MOD_TLS.NLM и MOD_JK.NLM и сообщение о том, что Apache/1.3.22 (NETWARE) mod_jk/1.1.0 running…
Проверка очень простая. Для начала проверим, что Web-сервер работает. Для этого просто обратимся из программы просмотра по адресу http://<web_server_name>/ и получим страницу, сообщающую о том, что если вы ее видите, то ваш администратор не настроил сервер. Теперь проверим связку с Tomcat. Для этого введем URL http://<web_server_name>/examples и увидим Directory Listing for:/examples/. Выберем ссылку servlets и по ссылкам execute посмотрим примеры: Hello World, Request Info, Request Headers и т. д.
Для подключения своих приложений создайте в разделе SYS:tomcat/webapps подраздел с тем именем, которое вы хотели бы использовать как составную часть URL для доступа к нему. Остановите Apache командой unload address space=apache apache. Остановите Tomcat командой tomcat stop. Обновите конфигурационный файл командой tomcat start –jkconf. Запустите Tomcat командой tomcat start. Запустите Apache командой «load address space = apache apache.
Теперь — самое интересное. Все, что мы только что сделали, в расширенном варианте уже сделано инженерами Novell и включено в комплект NetWare 6. Связка Java-Tomcat-Apache использована для построения таких служб, включенных в состав этого продукта, как iFolder, Web Access, iPrint, NetStorage, iManage, Web Search. Не будем сейчас рассматривать возможности этих служб, но они поистине грандиозны, и само их присутствие в составе NetWare 6 и стабильность работы подтверждают утверждение о том, что благодаря Apache и Tomcat NetWare действительно стала надежным сервером приложений.
Еще одно преимущество серверных приложений на Java — их переносимость. Во время изучения и испытаний связки Java-Apache-Tomcat одна и та же конфигурация проверялась на следующих операционных системах: NetWare, Linux, FreeBSD, Windows 2000. Отсутствие мощных приложений, создающих серьезную нагрузку на сервер, не позволяет объективно сравнивать производительность приложений на разных платформах, но на тестовых приложениях производительность на NetWare была однозначно не ниже, чем на остальных операционных системах.
Следующим этапом является разработка своих приложений, но это уже совсем другая история
Аватара пользователя
Сулейменов Олжас
 
Сообщения: 281
Зарегистрирован: 17 июн 2003, 10:00
Откуда: г. Казань

Re: TOMCAT и пакетные фильтры

Сообщение Андрей Троценко » 19 авг 2004, 12:16

Владимир Горяев писал(а):Включил пакетные фильтры и перестали работать iManager и проч.
Оказалось TOMCAT лезет на 127.0.0.1:9009... с адреса 127.0.0.1 и не может законнектиться. Пришлось добавить разрешение на порт 9009 для всех(не дает же loopback прописывать) :cry:

Так и должно быть?

FILTSRV.NLM 1.60.09
IPFLT.NLM 4.60.03
IPFLT31.NLM 5.31.09


IMHO, дело в SET-параметре "Filter Local Loopback Packets":
Description: Local loopback packet will be subjected to filtering. Set it OFF to enhance server performance by bypassing filter inspection. (Settable only in AUTOEXEC.NCF) Default Setting: ON

Скажем, у меня на сервере с TomCat-ом, работают фильтры, при этом никаких явных исключений для КотаТома я не писал (упомянутый параметр в OFF !).
Если политика такова, что этот параметр должен быть ON, можно попробовать задать исключения фильтров консольной утилитой FILTCFG - там можно написать любые адреса. Можно попробовать писать не LoopBack, а primary-интерфейс (кстати, при трассировке фильтров, должен быть виден реальный адрес).

А момент связанный с портами 8007 и 8009 - 8009 конфликтует с портом NRM на NetWare, поэтому, КотаТома транспонируют (для наглядности) на 1000 вверх.
Аватара пользователя
Андрей Троценко
 
Сообщения: 529
Зарегистрирован: 31 июл 2002, 13:54
Откуда: Киев, Украина

Re: TOMCAT и пакетные фильтры

Сообщение Владимир Горяев » 19 авг 2004, 12:47

Андрей Троценко писал(а):IMHO, дело в SET-параметре "Filter Local Loopback Packets":
Точно!
А ларчик просто открывался...
Всем спасибо!
Бардак автоматизировать невозможно!!!
_________________
Аватара пользователя
Владимир Горяев
 
Сообщения: 3473
Зарегистрирован: 05 июн 2002, 13:37
Откуда: Смоленск


Вернуться в Novell

Кто сейчас на конференции

Сейчас этот форум просматривают: Bing [Bot] и гости: 58

cron