Добро пожаловать в Gene Office ! |
Обновлено 15.02.2013 г. |
Вокруг применения известного патча под Линукс сложилось столько наворотов и басен, что проще плюуть на это дело, чем его сделать. Ситуацию запутал сам автор патча, изложив совершенно невероятный метод его применения в своей инструкции. Между тем, процесс патча продуктов Керио под Линуксом не сложнее виндовых процедур. Прежде всего заметим, что линуксовые файлы можно патчить виндовыми файлами ukaip, если извлечь их из Линукса. Т.е., достав из Линукса файлы winroute и avir_sophos.so, в Windows к ним применяется соответствующий разрядности машины ukaipXX.exe, после чего эти файлы возвращаются обратно в Линукс и все будет ОК. Но мы пойдем другим путем - более простым и правильным. Замечу, что целью данной статьи является показать процесс применения патча и только. Здесь не будет ничего сказано о системе обновлений, источниках обновлений, скриптах и проч.. Мы просто узнаем базовые понятия - как заставить керио забыть о триальности. Поскольку в процессе применения патча нам все равно придется указывать как минимум три параметра: имя сервера обновлений для веб-фильтра, имя сервера обновлений для Софоса и название скрипта обновлений для Софоса, то примем те названия, которые всегда используются в статьях этого сайта и в пакете KUAS - имя сервера всех обновлений - UPDATER, название скрипта - UKERAV.PHP. В дальнейшем мы изменим название скрипта - когда будем говорить о получении обновлений, а пока - будем называть эти вещи так, как сказано. Еще раз - это базовая универсальная инструкция без конкретики.
Начнем. Прежде всего, все нижеследующие манипуляции следует проводить с консоли - не по сети. Мы будем применять патч к созданной нами виртуальной машине с Kerio Control Software Appliance 7.4.1. Вне зависимости от версий керио и разновидностей сборок аплянса процесс одинаковый. И для почтовика тоже.
Нажмем Alt+F2 и войдем в ОС как root. Пароль - тот же самый, который был установлен в Керио для пользователя admin.
Исключительно для наглядности (это можно сделать и в командной строке консоли) - откроем страницу "Состояние системы" и, удерживая нажатым правый Shift, мышкой откроем меню "Действия", а там выберем - включить SSH. Если кому в новинку - SSH это аналог командной строки для удаленного управления ОС по сети. Нам эта возможность потребуется для обмена файлами между ОС Керио и внешними хостами - передать в керио патч, например.
Вот и начались странности урезанного Линукса - мы сразу попадаем в директорию TMP.... Да еще с кучей скрытых файлов...
Ладно, перейдем в корень и посмотрим, что тут есть. Вроде как ничего необычного на первый взгляд.
По умолчанию файловая система имеет установки "Только для чтения". Перемонтируем ее для того, чтобы иметь возможность записи файлов. Обратите внимание на прямой слеш в конце команды.
Создадим в корне две директории - BACKUP и UKAIP. В первую мы сложим исходные копии натуральных файлов без патча, во второй будем манипулировать с патчем. Строго говоря, эти директории надо создавать не в корне системы, а в директории /VAR из-за небольшого объема дискового пространства, отведенного под корень. Но нам для наших целей места хватит, потому для наглядности оставим как есть.
Дадим всем полные права на директорию UKAIP.
Все файлы Керио находятся по пути /opt/kerio/winroute, но большая часть изменяемых файлов прилинкована к директории /var/winroute. На нас это пока не влияет, потому копируем файлы, которые предстоит патчить, в созданные нами директории BACKUP и UKAIP.
Cкачиваем из Инета и инсталлируем программу WinSCP - это графическая оболочка над протоколом передачи файлов по сети, использующем SSH. Подключаемся к внутреннему интерфейсу Керио, вводя имя root и пароль админа. Копируем в директорию UKAIP файл ukaip_i686 из состава пакета UKAIP. Только после этого останавливаем демон винрута из консоли командой /etc/boxinit.d/60winroute stop
пытаемся применить патч и обнаруживаем, что сделать этого мы не можем - нет прав доступа к файлу патча на выполнение. Предоставим сами себе полный доступ к этому файлу - chmod 700 ukaip_i686 и выполним самую безобидную операцию - сгенерируем лицензию командой /ukaip/ukaip_i686 /ukaip/winroute -l license.ley
процесс прошел без замечаний.
Указывайте что хотите - это ни на что не влияет, ровно как и отсутствие файла лицензии. Только на картинку в консоли управления....
Вот теперь первый ответственный шаг - патчим winroute для работы с веб-фильтром. В данном примере указан адрес http://localhost:4080 - т.е. винрут будет должен искать ключевой файл веб-фильтра на своем собственном сервере. Это самая популярная ошибка при использовании патча - никогда не следует использовать имя localhost !!! Делайте так (в одной строке): /ukaip/ukaip_i686 /ukaip/winroute --force-trial-for-plugins-with-license --enable-kerio-to-esoft-redirect --enable-custom-license-server-for-webfilter=http://updater/ -E 123456/12345167890 а не так, как показано на рисунке:
и все будет вот так:
Переходим в патчу антивируса. Здесь аналогичная ситуация - не надо использовать имя localhost !!! Правильно будет так: /ukaip/ukaip_i686 /ukaip/avir_sophos.so -Ss updater Имя файла конфигурации сервера обновлений Софоса настоятельно рекомендую вводить вручную, а не в скрипте. В данном случае использовано имя ukerav.php
долгожданный результат:
отметим попутно, что патч генерирует файл getkey.php с ошибкой в названии. Нам это безразлично - этот файл мы использовать никогда не будем и спокойно его удалим. А полученный файл лицензии и пропатченные файлы winroute и avir_sophos.so разложим по своим законным местам, заменив ими исходные (копии которых остались в директории BACKUP) файлы:
Запустим службу Керио командой /etc/boxinit.d/60winroute start Откроем консоль и убедимся, что триал снят. Еще раз замечу, что на этом этапе речь не идет о работоспособности обновлений !!!!
Потренировавшись несколько раз в создании разных комбинаций патченых файлов Керио и сохранив результаты для дальнейших тестов, проведем боевой патч. Перенесем нашу рабочую директорю в /var, восстановим натуральные файлы керио из сохраненной копии, создадим сайл path.cmd с правами 700, поместим в него следующие команды: mount -o remount rw / /var/ukaip/ukaip_i686 /var/ukaip/winroute --force-trial-for-plugins-with-license --enable-kerio-to-esoft-redirect --enable-custom-license-server-for-webfilter=http://updater/ -E 123456/12345167890 /var/ukaip/ukaip_i686 /var/ukaip/avir_sophos.so
-Ss updater Файл можно создать и в виндовом блокноте, переместив его затем в керио с помощью WinSCP, но - не забудьте удалить в Линуксе лишние знаки в конце строк !!! (легче всего это сделать редактором из пакета mc, но его нет в Керио... мы его установим позже.) И запустим этот файл path.cmd, участвуя в указании нужных данных. Или просто выполните эти команды последовательно из командной строки. Все.
Теперь нам надо настроить работу системы обновлений для веб-фильтра, антивируса Софос и системы предотвращения вторжений Снорт. Это не сложно. Сначала немного доработаем дистрибутив Керио.
|
||
(С) Gene Office 2011 |