Установка WiKID Strong Authentication на Slackware
Краткий список действий
- Установить PostgreSQL (пакет от стороннего репозитория).
- Установить Sun JDK и создать симлинк /opt/jdk.
- Если используется PaX/GRSec — отключить mprotect для java/keytool.
- Установить RPM-пакеты WiKID.
- Подключить PostgreSQL JDBC в /opt/WiKID/lib и создать символическую ссылку в каталоге JRE.
- Исправить вызовы mktemp в конфигурационных скриптах WiKID.
- Выполнить wikidserver_config.sh, wikid-firstboot.sh, применить cumulative.sql вручную при необходимости и выполнить /opt/WiKID/bin/wikidctl setup/start.
Требования и примечания
Важно: Slackware не поставляет PostgreSQL и Sun JDK в стандартном составе — используйте проверенные репозитории или официальные дистрибутивы. Некоторые скрипты WiKID ориентированы на Red Hat-подобные системы; тут показаны обходы для Slackware.
Совместимость (тестируемая конфигурация): Slackware 12.2, ядро 2.6.28.7-grsec, PostgreSQL 8.3.6, postgresql-8.3-604.jdbc4, JDK 1.6_12.
1. Установка PostgreSQL
Slackware не содержит Postgres, поэтому скачайте пакет с сайта типа www.linuxpackages.net или другого Slackware-репозитория. В руководстве использовался PostgreSQL 8.3.6.
Пример установки пакета:
installpkg postgresql--.tgz Запуск службы PostgreSQL:
chmod +x /etc/rc.d/rc.postgresql
/etc/rc.d/rc.postgresql startПримечание: если ваш дистрибутив использует systemd или иной init — адаптируйте команды запуска соответственно.
2. Установка Sun JDK (JDK)
Slackware также не включает Sun JDK, скачайте соответствующий bin-пакет с сайта Oracle (ранее java.sun.com). В тестовой установке использовался JDK 1.6_12. WiKID ожидает JDK в /opt/jdk — проще установить туда и создать симлинк.
Команды установки:
cp jdk-6u12-linux-i586.bin /opt
cd /opt
chmod +x jdk-6u12-linux-i586.bin
./jdk-6u12-linux-i586.bin
ln -s jdk1.6_12 jdkВажно: сохраните оригинальные имена каталогов, если другие компоненты зависят от пути.
3. PaX/GRSec (если применимо)
Если система использует PaX/GRSecurity, нужно отключить атрибут mprotect у java и keytool, иначе JVM может не работать корректно с некоторыми операциями.
Используйте paxctl (http://pax.grsecurity.net):
paxctl -C /opt/jdk1.6_12/bin/java
paxctl -m /opt/jdk1.6_12/bin/java
paxctl -C /opt/jdk1.6_12/bin/keytool
paxctl -m /opt/jdk1.6_12/bin/keytoolЕсли вы не используете PaX/GRSec — пропустите этот блок.
4. Установка WiKID Enterprise Server
После получения RPM-пакетов WiKID установите их с опцией –nodeps (т.к. Slackware не использует RPM-зависимости как Red Hat):
rpm -iv wikid-utilities--noarch.rpm --nodeps
rpm -iv wikid-enterprise-server--noarch.rpm --nodeps Примечание: на Slackware можно использовать rpm пакетный менеджер, но следите за конфликтами файлов и путями.
5. Установка PostgreSQL JDBC-коннектора
Скачайте версию коннектора, соответствующую PostgreSQL и JDK. Поместите jar в /opt/WiKID/lib, затем создайте симлинк в каталоге расширений JRE, чтобы Java могла его найти:
cd /opt/jdk1.6_12/jre/lib/ext
ln -s /opt/WiKID/lib/postgresql-8.3-604.jdbc4.jar .Проверьте права доступа к файлу jar — процесс Tomcat/Java должен иметь возможность читать его.
6. Конфигурирование WiKID — правка скриптов и первый запуск
Некоторые скрипты WiKID используют поведение mktemp, непривычное для Slackware. Нужно исправить вызовы mktemp в скриптах.
В файле /opt/WiKID/sbin/wikidserver_config.sh замените строку на:
tmpfile='mktemp'В файле /opt/WiKID/sbin/load_db.sh (или init_db.sh, если такой присутствует) установите:
TMPLOG='mktemp' || exit 1После этого выполните конфигуратор:
/opt/WiKID/sbin/wikidserver_config.shДалее запустите сценарий первого запуска (first boot):
/opt/WiKID/conf/templates/wikid-firstboot.shЕсли у вас есть скрипт миграции схемы cumulative.sql (в /opt/WiKID/conf/database/migrations), иногда он не выполняется автоматически. Запустите его вручную, если требуется:
psql -U postgres -d wikid -f /opt/WiKID/conf/database/migrations/cumulative.sqlWiKID ожидает директорию /etc/sysconfig при выполнении wikidctl setup, хотя Slackware не использует её. Создайте её, чтобы избежать ошибок:
mkdir -p /etc/sysconfig
/opt/WiKID/bin/wikidctl setupПерезапустите PostgreSQL после внесённых изменений, затем запустите сервер WiKID:
/opt/WiKID/bin/wikidctl startЕсли команда не запускается, проверьте права и владельца файлов, а также логи Tomcat (/opt/WiKID/tomcat/logs).
7. Поддержка iptables в веб-интерфейсе
Если на сервере используется iptables и вам нужно, чтобы WiKID добавлял правила, откройте файл:
/opt/WiKID/tomcat/Webapps/WiKIDAdmin/finalProcessNetworkClient.jspНайдите массив firewallRules и исправьте путь к бинарнику iptables на корректный в вашей системе (например, /sbin/iptables или /usr/sbin/iptables):
String[] firewallRules = {"/sbin/iptables -I INPUT -p tcp -m state --state NEW -j ACCEPT -m tcp --dport 8388 -s " + ip,
"/sbin/iptables -I INPUT -p tcp -m state --state NEW -j ACCEPT -m tcp --dport 10389 -s " + ip,
... };Если вы не используете iptables — закомментируйте исполнение команд, чтобы избежать вызовов Runtime.getRuntime().exec:
//for (int i = 0; i < firewallRules.length; i++) {
// Runtime.getRuntime().exec(firewallRules[i]);
//}Важно: изменение JSP требует пересборки/перезапуска Tomcat, чтобы изменения вступили в силу.
8. Модуль обновлений (Perl LWP)
Если хотите использовать скрипт обновления WiKID, установите Perl-модуль LWP:
cpan LWPЕсли у вас нет CPAN, установите соответствующий пакет Perl или используйте сетевой установщик.
Контрольный список для администратора (Role-based checklist)
- Скачать и установить PostgreSQL-пакет для Slackware.
- Установить Sun JDK и создать /opt/jdk симлинк.
- Если PaX/GRSec — применить paxctl к java/keytool.
- Установить RPM-пакеты WiKID.
- Поместить JDBC-jar в /opt/WiKID/lib и создать симлинк в /opt/jdk*/jre/lib/ext.
- Исправить вызовы mktemp в /opt/WiKID/sbin/*.
- Выполнить wikidserver_config.sh и wikid-firstboot.sh.
- Применить cumulative.sql вручную при необходимости.
- Создать /etc/sysconfig и выполнить /opt/WiKID/bin/wikidctl setup.
- Запустить /opt/WiKID/bin/wikidctl start и проверить логи.
Когда это может не сработать (примеры и обходы)
- Если ваша версия PostgreSQL или JDBC несовместимы с WiKID — найдите подходящий JDBC-jar или используйте другую версию PostgreSQL.
- Если JVM старой версии или имеет нестандартные патчи безопасности (PaX/GRSec) — проверьте журнал ошибок Java и примените paxctl как описано.
- Если Tomcat не стартует — проверьте переменные окружения JAVA_HOME и права на /opt/WiKID.
- Если команда wikidctl требует systemd-юнит — запустите вручную через nohup или создайте systemd unit-файл.
Мини-методология отладки (полезные шаги)
- Проверить логи PostgreSQL и доступность БД (psql -U postgres -l).
- Запустить Java-приложение вручную и посмотреть stderr/stdout (catalina.out для Tomcat).
- Проверить наличие JDBC-jar в classpath (ls /opt/jdk*/jre/lib/ext).
- Проверить права на /opt/WiKID и владельца процессов.
- Отключить временно iptables/SELinux для исключения блокировок.
Критерии приёмки
- Сервис WiKID успешно стартует без ошибок в логах.
- Приложение подключается к базе wikid и все миграции применены.
- Веб-интерфейс доступен и можно добавить клиента/узел.
Короткий глоссарий
- JDK — Java Development Kit, среда выполнения и инструменты Java.
- JDBC — Java Database Connectivity, драйвер доступа к PostgreSQL.
- PaX/GRSec — набор патчей безопасности ядра Linux.
- wikidctl — управляющий скрипт WiKID для установки и запуска.
Тестовые случаи и приёмо-сдаточные проверки
- Проверка: psql -U postgres -d wikid -c “SELECT COUNT(*) FROM users;” — должно выполняться без ошибок.
- Проверка: curl -I http://localhost:8388/ (или порт, указанный в конфиге) — должен возвращать 200/302.
- Проверка: tail -f /opt/WiKID/tomcat/logs/catalina.out — отсутствие FATAL/SEVERE на старте.
Итого: следуя этой инструкции, вы установите WiKID Enterprise Server на Slackware, обойдёте проблемные места, связанные с различиями системных путей и поведением скриптов, и получите рабочий двухфакторный сервер. Если появятся ошибки — изучите логи PostgreSQL и Tomcat, проверьте наличие JDBC и права доступа.
Спасибо Elazar Broad за вклад в процедуру установки.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента