Гид по технологиям

Установка WiKID Strong Authentication на Slackware

• 5 min read • Инструкции • Обновлено 19 Nov 2025
Установка WiKID на Slackware
Установка WiKID на 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.sql

WiKID ожидает директорию /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-файл.

Мини-методология отладки (полезные шаги)

  1. Проверить логи PostgreSQL и доступность БД (psql -U postgres -l).
  2. Запустить Java-приложение вручную и посмотреть stderr/stdout (catalina.out для Tomcat).
  3. Проверить наличие JDBC-jar в classpath (ls /opt/jdk*/jre/lib/ext).
  4. Проверить права на /opt/WiKID и владельца процессов.
  5. Отключить временно 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 за вклад в процедуру установки.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро