У меня используется свеже установленая Ubuntu 20.04.2 LTS. При установке на уже настроенный сервер, может возникнуть проблема с базой MySQL. Дело том, что verlihub не корректно отображает кириллицу, при использование MySQL 8.0. Которая по умолчанию ставится в Ubuntu 20.04. По этому использовать будем MySQL 5.7.
Установка базы MySQL 5.7 на Ubuntu 20.04:
wget https://dev.mysql.com/get/mysql-apt-config_0.8.12-1_all.deb
dpkg -i mysql-apt-config_0.8.12-1_all.deb
В процессе установки программа попросит выбрать дистрибутив. Если у вас Ubuntu 20.04 или выше, выбирайте версию для Ubuntu 18.04 - bionic:
Затем выберите MySQL Server and Cluster:
После этого выбираем версию MySQL 5.7:
Посмотрим какие версии MySQL доступны:
apt update
apt-cache policy mysql-server
Устанавливаем mysql 5.7:
apt install mysql-server=5.7.34-1ubuntu18.04 mysql-community-server=5.7.34-1ubuntu18.04 mysql-client=5.7.34-1ubuntu18.04
При установке программа запросит пароль пользователя root:
Установка зависимостей:
apt install build-essential libgeoip-dev cmake libpcre3 libpcre3-dev libmysqlclient-dev liblua5.1-0-dev gettext libssl-dev git-core libperl-dev python2.7-dev curl libasprintf-dev libmaxminddb-dev icu-devtools libicu-dev lua-socket
Скачивание и компиляция verlihub:
git clone http://github.com/verlihub/verlihub/
cd verlihub && mkdir build && cd build && cmake .. -DWITH_FLOODPROT=ON -DWITH_REPLACER=ON -DWITH_STATS=ON -DWITH_MESSENGER=ON -DWITH_ISP=ON -DWITH_IPLOG=ON -DWITH_CHATROOM=ON -DWITH_FORBID=ON -DWITH_PERL=ON -DWITH_PLUGINS=ON -DWITH_PYTHON=ON
make
make install
ldconfig
Установка verlihub:
vh -i
В процессе установки отвечаем на вопросы:
О пользователе и базе MySQL:
Указываем пароль пользователя root MySQL:
Папку установки выбираем /etc/verlihub
Создаём пользователя на хабе, настраиваем порт, хост и название хаба:
Обновляем geo-ip:
vh -g
Переводим verlihub на русский язык:
locale-gen ru_RU.CP1251
echo "locale = ru_RU.CP1251" >> /etc/verlihub/dbconfig
Запускаем verlihub:
vh -r
Скрипты для verlihub:
Переходим в нужную папку:
cd /etc/verlihub/scripts
Скачивем скрипты:
wget https://ledo.feardc.net/dev/ledokol.lua
wget https://ledo.feardc.net/dev/ledo_ru.lang
wget https://ledo.feardc.net/python/blacklist/blacklist.py
wget https://ledo.feardc.net/python/blacklist/black_ru.lang
Включаем скрипты через dc-клиент:
!modplug lua -a 1
!onplug lua
!modplug python -a 1
!onplug python
TLS proxy:
Устанавливаем компилятор Go:
apt install golang
Генерируем сертификат и ключ:
mkdir /etc/verlihub/tls && cd /etc/verlihub/tls
openssl req -new -newkey rsa:4096 -x509 -sha256 -days 365 -nodes -out "hub.crt" -keyout "hub.key"
Отвечаем на несколько вопросов:
Скачиваем и компилируем tls-proxy:
git clone https://github.com/verlihub/tls-proxy.git
cd tls-proxy
export CGO_ENABLED=0 && go build -ldflags "-libgcc=none" -tags netgo proxy.go
Настраиваем verlihub через dc-клиент:
!set tls_proxy_ip 127.0.0.1
!set listen_ip 127.0.0.1
Перезагружаем сервер:
reboot
Запускаем verlihub и tls-proxy на сервере:
vh -r
/etc/verlihub/tls/tls-proxy/proxy --cert="/etc/verlihub/tls/hub.crt" --key="/etc/verlihub/tls/hub.key" --host="10.10.0.211:411" --hub="127.0.0.1:411" &
Где 10.10.0.211 ваш ip, куда подключаются клиенты
Для упрощения запуска сделаем sh скрипт:
nano /etc/verlihub/tls.sh
Вставляем строки:
#!/bin/sh
/etc/verlihub/tls/tls-proxy/proxy --cert="/etc/verlihub/tls/hub.crt" --key="/etc/verlihub/tls/hub.key" --host="10.10.0.211:411" --hub="127.0.0.1:411" &
Сохраняем и делаем файл исполняемым:
chmod +x /etc/verlihub/tls.sh
Автозагрузка в ubuntu 20.04:
nano /etc/rc.local
Добавляем строки:
#!/bin/sh
sleep 15
vh -r
/etc/verlihub/tls.sh
exit 0
В ubuntu 20.04 rc.local выключен, включаем его:
chmod -v +x /etc/rc.local
systemctl enable rc-local.service
На этом всё. Хаб установлен, осталось настроить скрипты. Но об этом в следующим материале.