«Установка и настройка почтового сервера Zimbra 9.0 на CentOS 7» и «Обход блокировок с полной маскировкой:3X-UI: Shadowsocks-2022 & XRay (XTLS), настройка сервера на Debian 12»: разница между страницами

Материал из Шпаргалка знаний
(Различия между страницами)
Перейти к навигации Перейти к поиску
 
Нет описания правки
 
Строка 1: Строка 1:
После установки на сервер CentOS 7 (Minimal) (x86_64) 8Gb RAM, 4 CPU, 50Gb SSD, приступаем к подготовке сервера.
После установки на сервер Debian 12 (Minimal) (x86_64) 2Gb RAM, 1 CPU, 20Gb SSD, приступаем к подготовке сервера.
=== Подготовка сервера ===
 
<pre>
'''Выбор провайдера:'''
yum update -y
 
yum install epel-release wget nano mc zip unzip net-tools nfs-utils bind-utils -y
https://hostkey.ru/vps/#preconfigured  -300р самый простой VPS/VDS сервер.
yum install libreoffice libreoffice-headless htop open-vm-tools hostname -y
 
</pre>
https://ishosting.com/ru/vps/nl  -5$ самый простой VPS/VDS сервер.
 
=== 3X-UI. Основные возможности ===
Шифрование трафика: VLESS, Shadowsocks-2022 и XRay (XTLS) позволяют шифровать пользовательский трафик, что делает его невозможным для чтения или мониторинга со стороны провайдера Интернета или других третьих лиц.
 
Многофакторная аутентификация: поддержка многофакторной аутентификации повышает уровень безопасности и защищает пользовательские данные от несанкционированного доступа.
 
Гибкие настройки: возможность настраивать параметры соединения, такие как тип шифрования, порты и протоколы, что обеспечивает гибкость в настройке соединения и удобство использования.


<pre>
Оптимизация скорости: оптимизация для быстрого соединения по сети. Они могут использовать различные технологии, такие как TCP Fast Open и Congestion Control, что позволяет ускорить передачу данных и улучшить качество соединения.
systemctl stop postfix
systemctl disable postfix
</pre>


=== Настройка времени ===
Поддержка различных операционных систем: Windows, MacOS, Linux, Android и iOS. Это обеспечивает универсальность и доступность продукта для пользователей на любой платформе.


Устанавливаем корректный часовой пояс:
Открытый исходный код: предоставляет возможность разработчикам изучить код и внести свои изменения, что может помочь улучшить продукт и его функциональность.
<pre>
timedatectl set-timezone Europe/Moscow
</pre>
Теперь установим утилиту для синхронизации времени и запустим ее.
<pre>
yum install chrony -y
systemctl enable chronyd --now
</pre>


=== Безопасность ===
Надежность и стабильность: VLESS, Shadowsocks-2022 и XRay (XTLS) являются надежными и стабильными протоколами. Они предоставляют высокую скорость и стабильность соединения, а также защиту пользовательских данных.
Если на сервере используется SELinux (по умолчанию, на системах RPM), рекомендуется ее отключить.
<pre>
setenforce 0
sed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config
</pre>
=== Брандмауэр ===
Для нормальной работы Zimbra нужно открыть много портов:
* 25 — основной порт для обмена почтой по протоколу SMTP.
* 80 — веб-интерфейс для чтения почты (http).
* 110 — POP3 для загрузки почты.
* 143 — IMAP для работы с почтовым ящиком с помощью клиента.
* 443 — SSL веб-интерфейс для чтения почты (https).
* 465 — безопасный SMTP для отправки почты с почтового клиента.
* 587 — SMTP для отправки почты с почтового клиента (submission).
* 993 — SSL IMAP для работы с почтовым ящиком с помощью клиента.
* 995 — SSL POP3 для загрузки почты.
* 5222 — для подключения к Zimbra по протоколу XMPP.
* 5223 — для защищенного подключения к Zimbra по протоколу XMPP.
* 7071 — для защищенного доступа к администраторской консоли.
* 8443 — SSL веб-интерфейс для чтения почты (https).
* 7143 — IMAP для работы с почтовым ящиком с помощью клиента.
* 7993 — SSL IMAP для работы с почтовым ящиком с помощью клиента.
* 7110 — POP3 для загрузки почты.
* 7995 — SSL POP3 для загрузки почты.
* 9071 — для защищенного подключения к администраторской консоли.
<pre>
firewall-cmd --permanent --add-port={25,80,110,143,443,465,587,993,995,5222,5223,9071,7071,8443,7143,7993,7110,7995}/tcp
firewall-cmd --reload
</pre>
В конце установки ZIMBRA почему-то отключается файрволл, так что нужно его запустить и сделать автозапуском!!!
------------------------------
В некоторых системах CentOS может не оказаться firewalld. Для его установки вводим:
<pre>
yum install firewalld -y
</pre>
Для автоматического запуска вводим:
<pre>
systemctl enable firewalld
</pre>
И для остановки или запуска службы:
<pre>
systemctl stop firewalld
systemctl start firewalld
</pre>
Посмотреть созданные правила:
<pre>
firewall-cmd --list-all
</pre>
Добавление правило для открытия 80-о порта:
<pre>
firewall-cmd --permanent --add-port=80/tcp
</pre>
Удалим правило для открытия 80-о порта:
<pre>
firewall-cmd --permanent --remove-port=80/tcp
</pre>
-------------------------


=== DNS и имя сервера ===
=== Установка ===
Для корректной работы почтового сервера необходимо создать mx-записи для домена.
Официальный репозиторий 3X-UI: https://github.com/MHSanaei/3x-ui
Но для установки Zimbra важнее, чтобы в локальном файле hosts была запись о нашем сервере, в противном случае, установка прервется с ошибкой. И так, задаем FQDN-имя для сервера:
<pre>
hostnamectl set-hostname mail.putyato.ru
</pre>
Теперь открываем на редактирование файл:
<pre>
nano /etc/hosts
</pre>
И добавляем в конец файла:
<pre>
10.7.7.7      mail.putyato.ru mail
</pre>
* где 10.7.7.7 — IP-адрес нашего сервера; mail — имя сервера; putyato.ru — наш домен.


Проверяем настройку сетевой карты.
Официальный репозиторий форка X-UI: https://github.com/alireza0/x-ui
Открываем файл конфигурации и убеждаемся, что DNS1 — это DNS приписанный в нашем роутере, у нас он 10.7.7.1.
<pre>
cd /etc/sysconfig/network-scripts
ls
nano ifcfg-ens192
cd ~
</pre>
Содержание, как показано ниже. Обращаем внимание на DNS1. Если нужно то исправляем. Должно выглядеть как то так.
<pre>
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="yes"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens192"
UUID="5b830a1e-7aa4-4e06-9790-638b10c6cede"
DEVICE="ens192"
ONBOOT="yes"
IPADDR="10.7.7.7"
PREFIX="24"
GATEWAY="10.7.7.25"
DNS1="10.7.7.1"
DNS2="8.8.8.8"
DNS3="8.8.4.4"
IPV6_PRIVACY="no"
</pre>
Затем введите следующую команду, чтобы перезапустить сетевую службу.
<pre>
systemctl restart network
systemctl restart NetworkManager.service
</pre>
После перезапуска сетевой службы проверьте  /etc/resolv.conf файл, чтобы убедиться, что DNS1 всегда является вашим собственным почтовым сервером.
<pre>
cat /etc/resolv.conf
</pre>
Должны получить вот такой ответ, если не получили то поправляем этот файл:
<pre>
# Generated by NetworkManager
search putyato.ru
nameserver 10.7.7.1
nameserver 8.8.8.8
nameserver 8.8.4.4
</pre>
=== Загрузить скрипт автоматической настройки ===
Этот скрипт автоматически настроит /etc/hosts, имя хоста, создаст локальный DNS с помощью BIND и установит зависимости, необходимые для Zimbra.
<pre>
screen -S install-zimbra
wget -c https://raw.githubusercontent.com/imanudin11/script/master/persiapan-zimbra-centos7.sh
chmod +x persiapan-zimbra-centos7.sh
./persiapan-zimbra-centos7.sh
</pre>
или
<pre>
cd ~
wget "https://cloud.putyato.pro/index.php/s/LStD7w4g566a2qn/download/persiapan-zimbra-centos7.sh" --no-check-certificate -O persiapan-zimbra-centos7.sh
chmod +x persiapan-zimbra-centos7.sh
./persiapan-zimbra-centos7.sh
</pre>
При запуске сценария вас спросят об имени хоста, домене и IP-адресе почтового сервера. Ниже информация, которую я использовал.
<pre>
[INFO] : Configuring /etc/hosts


Hostname. Example mail : mail
Итак, дано: VPS с IPv4 (неплохо бы иметь еще IPv6, но не обязательно) и Debian либо Ubuntu Linux (на других дистрибутивах суть будет примерно та же самая). И установленные Docker и docker-compose (если вдруг нет - следуйте инструкциям для вашего дистрибутива - '''https://docs.docker.com/engine/install/''' , у меня без проблем установилось простым "'''apt install docker.io docker-compose'''"). Ну и git в придачу.
Domain name. Example imanudin.net : putyato.ru
IP Address : 10.7.7.7
</pre>


=== Загрузка дистрибутива и установка Zimbra ===
Задаем права пользователю Debian:
Скачиваем лицензионный дистрибутив ZIMBRA 9.0 с официального сайта. Распаковываем архив.
<pre>
<pre>
cd ~
su
wget https://files.zimbra.com/downloads/9.0.0_GA/zcs-NETWORK-9.0.0_GA_3924.RHEL7_64.20200331010312.tgz
apt install sudo
tar -xzvf zcs-*.tgz
su - root
adduser username sudo
reboot
</pre>
</pre>
или
''* где '''username''' имя пользователя под которым зашли в систему.''
 
<pre>
<pre>
cd ~
sudo apt-get update
wget "https://cloud.putyato.pro/index.php/s/TkX47w2ggTcZLMT/download/zcs-NETWORK-9.0.0_GA_3924.RHEL7_64.20200331010312.tgz" --no-check-certificate -O zcs-NETWORK-9.0.0_GA_3924.RHEL7_64.20200331010312.tgz
sudo apt-get upgrade
tar -xzvf zcs-*.tgz
</pre>
</pre>


---------------
==== Устанавливаем Docker. на Debian 12 ====
Далее с помощью программы WinSCP (https://winscp.net/eng/download.php) копируем следующие файлы:
zimbra-license-tools.jar, lic.xml, lic_a.xml в корневую папку root.
или:
<pre>
<pre>
cd ~
# Add Docker's official GPG key:
wget "https://cloud.putyato.pro/index.php/s/jZWMH4nbfcH5Egi/download/lic.xml" --no-check-certificate -O lic.xml
 
wget "https://cloud.putyato.pro/index.php/s/JEbd3fNjFcm2xNz/download/lic_a.xml" --no-check-certificate -O lic_a.xml
sudo apt-get install ca-certificates curl gnupg
wget "https://cloud.putyato.pro/index.php/s/CHQ2FfTdka2Zx4x/download/zimbra-license-tools.jar" --no-check-certificate -O zimbra-license-tools.jar
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
</pre>
</pre>


Переписываем содержимое файлов lic.xml, lic_a.xml или создаем свои:
<pre>
<pre>
nano /root/lic.xml
# Add the repository to Apt sources:
 
echo \
  "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
  "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
</pre>
</pre>
Вписываем в него следующее содержимое изменив имя почтового сервера и почту админа:
<pre>
<?xml version="1.0" encoding="UTF-8"?>


<ZimbraLicense verifier="ZV2">
  <item name="AccountsLimit" value="50000"/>
  <item name="ArchivingAccountsLimit" value="50000"/>
  <item name="AttachmentConversionEnabled" value="true"/>
  <item name="AttachmentIndexingAccountsLimit" value="50000"/>
  <item name="BackupEnabled" value="true"/>
  <item name="CrossMailboxSearchEnabled" value="true"/>
  <item name="EwsAccountsLimit" value="50000"/>
  <item name="HierarchicalStorageManagementEnabled" value="true"/>
  <item name="ISyncAccountsLimit" value="50000"/>
  <item name="InstallType" value="perpetual"/>
  <item name="IssuedOn" value="20220807140803Z"/>
  <item name="IssuedToEmail" value="admin@putyato.ru"/>
  <item name="IssuedToName" value="PUTYATO"/>
  <item name="LicenseId" value="151356bf-b539-4c31-aef2-15c6f5e7931b"/>
  <item name="MAPIConnectorAccountsLimit" value="50000"/>
  <item name="MobileSyncAccountsLimit" value="50000"/>
  <item name="MobileSyncEnabled" value="true"/>
  <item name="ResellerName" value="Pavel PUTYATO"/>
  <item name="SMIMEAccountsLimit" value="50000"/>
  <item name="TouchClientsAccountsLimit" value="50000"/>
  <item name="TwoFactorAuthAccountsLimit" value="50000"/>
  <item name="ValidFrom" value="20220807000000Z"/>
  <item name="ValidUntil" value="20991231235959Z"/>
  <item name="VoiceAccountsLimit" value="50000"/>
  <item name="ZSSAccountsLimit" value="50000"/>
  <item name="ZTalkAccountsLimit" value="50000"/>
  <signature value="1" key="myzm"/>
</ZimbraLicense>
</pre>
Далее создаем или редактируем файл lic_a.xml
<pre>
<pre>
nano /root/lic_a.xml
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo apt install docker.io docker-compose
</pre>
</pre>
В дальнейшем в этом файле заменим параметр Fingerprint.
<pre>
<?xml version="1.0" encoding="UTF-8"?>


<ZimbraLicenseActivation verifier="ZV2">
или
  <item name="ActivationId" value="232cd85f-cbea-4c12-8fde-bee4a40b74ea"/>
  <item name="Fingerprint" value="00b5fc1be9ae526c1d9ad57ad6dea292"/>
  <item name="LastUpdate" value="20991231235959Z"/>
  <item name="LicenseId" value="151356bf-b539-4c31-aef2-15c6f5e7931b"/>
  <item name="Version" value="999"/>
  <signature value="1" key="myzm"/>
</ZimbraLicenseActivation>
</pre>
--------------
Копируем с заменой файл '''zimbra-license-tools.jar > zcs-NETWORK-9.0.0_GA_3924.RHEL7_64.20200331010312/lib/jars/'''


Начинаем установку самой ZIMBRA.
==== Устанавливаем Docker. на Debian 11 ====
<pre>
<pre>
cd ~
apt-get update -y
cd zcs-*/
./install.sh --skip-activation-check
</pre>
</pre>
Процесс установки будет происходить, как показано ниже.
Когда вы закончите, установите другие необходимые зависимости, используя следующую команду:
<pre>
<pre>
[root@mail zcs-NETWORK-9.0.0_GA_3924.RHEL7_64.20200331010312]# ./install.sh --skip-activation-check
apt-get install apt-transport-https software-properties-common ca-certificates curl gnupg lsb-release -y
Operations logged to /tmp/install.log.j5mRhLRW
Checking for existing installation...
    zimbra-drive...NOT FOUND
    zimbra-imapd...NOT FOUND
    zimbra-patch...NOT FOUND
    zimbra-mta-patch...NOT FOUND
    zimbra-proxy-patch...NOT FOUND
    zimbra-license-tools...NOT FOUND
    zimbra-license-extension...NOT FOUND
    zimbra-network-store...NOT FOUND
    zimbra-network-modules-ng...NOT FOUND
    zimbra-chat...NOT FOUND
    zimbra-talk...NOT FOUND
    zimbra-ldap...NOT FOUND
    zimbra-logger...NOT FOUND
    zimbra-mta...NOT FOUND
    zimbra-dnscache...NOT FOUND
    zimbra-snmp...NOT FOUND
    zimbra-store...NOT FOUND
    zimbra-apache...NOT FOUND
    zimbra-spell...NOT FOUND
    zimbra-convertd...NOT FOUND
    zimbra-memcached...NOT FOUND
    zimbra-proxy...NOT FOUND
    zimbra-archiving...NOT FOUND
    zimbra-core...NOT FOUND
----------------------------------------------------------------------
PLEASE READ THIS AGREEMENT CAREFULLY BEFORE USING THE SOFTWARE.
SYNACOR, INC. ("SYNACOR") WILL ONLY LICENSE THIS SOFTWARE TO YOU IF YOU
FIRST ACCEPT THE TERMS OF THIS AGREEMENT. BY DOWNLOADING OR INSTALLING
THE SOFTWARE, OR USING THE PRODUCT, YOU ARE CONSENTING TO BE BOUND BY
THIS AGREEMENT. IF YOU DO NOT AGREE TO ALL OF THE TERMS OF THIS
AGREEMENT, THEN DO NOT DOWNLOAD, INSTALL OR USE THE PRODUCT.
License Terms for this Zimbra Collaboration Suite Software:
https://www.zimbra.com/license/zimbra-public-eula-2-6.html
----------------------------------------------------------------------
</pre>
</pre>
На экране отобразится лицензионное соглашение — принимаем его, при том 2 раза:
==== Установить Докер ====
По умолчанию последняя версия Docker не включена в официальный репозиторий Debian 11. Поэтому вам нужно будет добавить репозиторий Docker CE в APT. Вы можете добавить его с помощью следующей команды:
<pre>
<pre>
Do you agree with the terms of the software license agreement? [N] Y
curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
</pre>
</pre>
Разрешаем использование репозитория от Zimbra:
После добавления репозитория Docker обновите репозиторий и установите Docker CE с помощью следующей команды:
<pre>
<pre>
Use Zimbra's package repository [Y] Y
apt-get update -y
apt-get install docker-ce docker-ce-cli -y
</pre>
</pre>
Устанавливаем необходимые модули (или все):
После установки проверьте версию Docker CE с помощью следующей команды:
<pre>
<pre>
Install zimbra-ldap [Y] Y
docker version
Install zimbra-logger [Y] Y
Install zimbra-mta [Y] Y
Install zimbra-dnscache [Y] Y
Install zimbra-snmp [Y] Y
Install zimbra-store [Y] Y
Install zimbra-apache [Y] Y
Install zimbra-spell [Y] Y
Install zimbra-convertd [Y] Y
Install zimbra-memcached [Y] Y
Install zimbra-proxy [Y] Y
Install zimbra-archiving [N] Y
Install zimbra-drive [Y] Y
Install zimbra-imapd (BETA - for evaluation only) [N] N
Install zimbra-network-modules-ng [Y] Y
Install zimbra-talk [Y] Y
</pre>
</pre>
Подтверждаем ранее введенные настройки:
Вы должны получить следующий результат:
<pre>
<pre>
The system will be modifiedContinue? [N] Y
Client: Docker Engine - Community
</pre>
Version:          20.10.8
Начнется процесс установки и конфигурирования Zimbra. Ждем окончания процесса.
API version:      1.41
Если для нашего домена еще нет записи MX, мы увидим сообщение:
  Go version:        go1.16.6
<pre>
Git commit:        3967b7d
It is suggested that the domain name have an MX record configured in DNS
Built:            Fri Jul 30 19:54:22 2021
</pre>
OS/Arch:          linux/amd64
Установщик предложит поменять домен — отвечаем Yes и меняем домен mail.putyato.ru на putyato.ru:
Context:          default
<pre>
Experimental:      true
Change domain name? [Yes] Yes
 
Create domain: [mail.putyato.ru] putyato.ru
Server: Docker Engine - Community
Engine:
  Version:          20.10.8
  API version:     1.41 (minimum version 1.12)
  Go version:      go1.16.6
  Git commit:      75249d8
  Built:            Fri Jul 30 19:52:31 2021
  OS/Arch:          linux/amd64
  Experimental:    false
containerd:
  Version:          1.4.9
  GitCommit:       e25210fe30a0a703442421b0f60afac609f950a3
runc:
  Version:          1.0.1
  GitCommit:       v1.0.1-0-g4144b63
docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0
</pre>
</pre>
... установщик покажет меню с настройкой Zimbra:
==== Управление службами Docker ====
<pre>
Вы можете легко управлять службой Docker с помощью утилиты systemd.
Main menu
  1) Common Configuration:
  2) zimbra-ldap:                            Enabled
  3) zimbra-logger:                          Enabled
  4) zimbra-mta:                              Enabled
  5) zimbra-snmp:                            Enabled
  6) zimbra-store:                            Enabled
        +Create Admin User:                    yes
        +Admin user to create:                admin@putyato.ru
******* +Admin Password                        UNSET
        +Anti-virus quarantine user:          virus-quarantine.exqbgv28@putyato.ru
        +Enable automated spam training:      yes
        +Spam training user:                  spam.qg1kjm_q@putyato.ru
        +Non-spam(Ham) training user:          ham.cuhpcmq7h@putyato.ru
        +SMTP host:                            mail.putyato.ru
        +Web server HTTP port:                8080
        +Web server HTTPS port:                8443
        +Web server mode:                      https
        +IMAP server port:                    7143
        +IMAP server SSL port:                7993
        +POP server port:                      7110
        +POP server SSL port:                  7995
        +Use spell check server:              yes
        +Spell server URL:                    http://mail.putyato.ru:7780/aspell.php
        +Enable version update checks:        TRUE
        +Enable version update notifications:  TRUE
        +Version update notification email:    admin@putyato.ru
        +Version update source email:          admin@putyato.ru
        +Install mailstore (service webapp):  yes
        +Install UI (zimbra,zimbraAdmin webapps): yes
******* +License filename:                    UNSET
  7) zimbra-spell:                            Enabled
  8) zimbra-proxy:                            Enabled
  9) zimbra-imapd:                            Enabled
  10) Default Class of Service Configuration:
  s) Save config to file
  x) Expand menu
  q) Quit
</pre>
В данном случае мы можем поменять любую из настроек. Настройки, которые необходимо сделать для продолжения установки показаны звездочками — в данном примере необходимо задать пароль администратора (Admin Password) и указать путь до файла с лицензией (License filename). И так, кликаем 7:
<pre>
Address unconfigured (**) items  (? - help) 7
</pre>
Переходим к установке пароля:
<pre>
Select, or 'r' for previous menu [r] 4
</pre>
... и задаем пароль.


Далее указываем путь до файла с лицензией:
Чтобы запустить службу Docker, выполните следующую команду:
<pre>
Select, or 'r' for previous menu [r] 25
</pre>
<pre>
<pre>
Enter the name of the file that contains the license: /root/lic.xml
sudo systemctl start docker
</pre>
</pre>
Теперь выходим из меню:
Чтобы перезапустить службу Docker, выполните следующую команду:
<pre>
<pre>
Select, or 'r' for previous menu [r] r
sudo systemctl restart docker
</pre>
</pre>
И применяем настройки:
Чтобы остановить службу Docker, выполните следующую команду:
<pre>
<pre>
Select from menu, or press 'a' to apply config (? - help) a
sudo systemctl stop docker
</pre>
</pre>
Сохраняем конфигурационный файл:
Чтобы служба Docker запускалась при перезагрузке системы, выполните следующую команду:
<pre>
<pre>
Save configuration data to a file? [Yes] Yes
sudo systemctl enable docker
</pre>
</pre>
Соглашаемся с путем сохранения файла:
Чтобы проверить статус Docker, выполните следующую команду:
<pre>
<pre>
Save config in file: [/opt/zimbra/config.20863]
sudo systemctl status docker
</pre>
</pre>
Продолжаем конфигурирование:
Вы должны увидеть статус Docker в следующем выводе:
<pre>
<pre>
The system will be modified - continue? [No] Y
? docker.service - Docker Application Container Engine
</pre>
    Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Дожидаемся окончания установки, на запрос отправки уведомления можно ответить отказом:
    Active: active (running) since Fri 2021-09-10 07:19:35 UTC; 27s ago
<pre>
TriggeredBy: ? docker.socket
Notify Zimbra of your installation? [Yes] No
      Docs: https://docs.docker.com
</pre>
  Main PID: 29018 (dockerd)
В конечном итоге, нажимаем Enter:
      Tasks: 7
<pre>
    Memory: 32.6M
Configuration complete - press return to exit
        CPU: 407ms
</pre>
    CGroup: /system.slice/docker.service
Сервер установлен. Однако, установщик меняет пароль пользователя root. Меняем его обратно:
            ??29018 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
<pre>
passwd root
</pre>


=== Zimbra DNSCache ===
Sep 10 07:19:34 debian11 dockerd[29018]: time="2021-09-10T07:19:34.809035575Z" level=info msg="scheme \"unix\" not registered, fallback to def>
Вместе с зимброй мы установили службу dnscache, которая позволяет увеличить производительность почтового сервера. Однако, принцип работы сети немного меняется, а именно, в файле /etc/resolv.conf появляется запись:
Sep 10 07:19:34 debian11 dockerd[29018]: time="2021-09-10T07:19:34.809219999Z" level=info msg="ccResolverWrapper: sending update to cc: {[{uni>
<pre>
Sep 10 07:19:34 debian11 dockerd[29018]: time="2021-09-10T07:19:34.809410545Z" level=info msg="ClientConn switching balancer to \"pick_first\">
nameserver 127.0.0.1
Sep 10 07:19:34 debian11 dockerd[29018]: time="2021-09-10T07:19:34.897972507Z" level=info msg="Loading containers: start."
Sep 10 07:19:35 debian11 dockerd[29018]: time="2021-09-10T07:19:35.186940748Z" level=info msg="Default bridge (docker0) is assigned with an IP>
Sep 10 07:19:35 debian11 dockerd[29018]: time="2021-09-10T07:19:35.298681937Z" level=info msg="Loading containers: done."
Sep 10 07:19:35 debian11 dockerd[29018]: time="2021-09-10T07:19:35.356364773Z" level=info msg="Docker daemon" commit=75249d8 graphdriver(s)=ov>
Sep 10 07:19:35 debian11 dockerd[29018]: time="2021-09-10T07:19:35.357524464Z" level=info msg="Daemon has completed initialization"
Sep 10 07:19:35 debian11 systemd[1]: Started Docker Application Container Engine.
Sep 10 07:19:35 debian11 dockerd[29018]: time="2021-09-10T07:19:35.401626151Z" level=info msg="API listen on /run/docker.so
</pre>
</pre>
... а разрешение DNS имени в IP-адреса перестает работать. Удаление или смена записи в файле resolv.conf ни к чему не приводит, так как, по прошествии некоторого времени, настройка принимает исходный вид.


Для корректной настройки службы dnscache необходимо сначала посмотреть Master DNS в настройках Zimbra:
==== Установить Docker Compose В Debian 11 ====
Первое, что нужно сделать, это обновить систему. Выполните следующую команду:
<pre>
<pre>
su - zimbra -c "zmprov getServer '$myhostname' | grep DNSMasterIP"
sudo apt update && sudo apt upgrade -y
</pre>
</pre>
* где $myhostname — имя сервера, на котором установлена Zimbra (в данной конфигурации, mail.putyato.ru).
Вы можете скачать текущую стабильную версию Docker Compose, выполнив следующую команду:
В моем случае было:
<pre>
<pre>
zimbraDNSMasterIP: 127.0.0.53
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
</pre>
</pre>
Удалить данную запись:
Чтобы сделать двоичный файл исполняемым, предоставьте следующие разрешения:
<pre>
<pre>
su - zimbra -c "zmprov ms '$myhostname' -zimbraDNSMasterIP 127.0.0.53"
sudo chmod +x /usr/local/bin/docker-compose
</pre>
</pre>
И добавить свои рабочие серверы DNS, например:
В случае сбоя установки вам, возможно, придется создать символическую ссылку между «/usr/bin» и любой другой папкой. Это можно сделать с помощью следующей команды.
<pre>
<pre>
su - zimbra -c "zmprov ms '$myhostname' +zimbraDNSMasterIP  10.7.7.1"
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
su - zimbra -c "zmprov ms '$myhostname' +zimbraDNSMasterIP  8.8.8.8"
su - zimbra -c "zmprov ms '$myhostname' +zimbraDNSMasterIP  77.88.8.8"
</pre>
</pre>
* где 10.7.7.1 — DNS сервер в моей сети; 8.8.8.8 — DNS сервер от Google; 77.88.8.8 — DNS сервер от Яндекс.
Теперь пришло время протестировать установку. Для подтверждения вывода используйте следующую команду:
Теперь DNS-запросы на сервере будут работать.
=== zimbraMtaLmtpHostLookup ===
Если наш сервер находится за NAT и разрешение IP происходит не во внутренний адрес, а внешний (можно проверить командой nslookup <имя сервера>), после настройки наш сервер не сможет принимать почту, а в логах мы можем увидеть ошибку delivery temporarily suspended: connect to 7025: Connection refused). Это происходит из-за попытки Zimbra передать письмо в очереди по внутреннему порту локальной почты 7025 (LMTP) на внешний адрес, который недоступен из NAT. Для решения проблемы можно использовать внутренний DNS с другими А-записями (split dns) или собственный поиск IP-адресов для lmtp, а не для DNS. Рассмотрим второй вариант — вводим две команды:
<pre>
<pre>
su - zimbra -c "zmprov ms $myhostname zimbraMtaLmtpHostLookup native"
docker-compose --version
su - zimbra -c "zmprov mcf zimbraMtaLmtpHostLookup native"
</pre>
</pre>
* где $myhostname — имя нашего почтового сервера.


После перезапускаем службы зимбры:
=== Установка самой программы 3X-UI ===
 
Сначала клонируем исходники. Лучше всего использовать последнюю стабильную версию, можно проверить в "Releases" на гитхабе.
 
Для 3X-UI:
<pre>
<pre>
su - zimbra -c "zmmtactl restart"
git clone https://github.com/MHSanaei/3x-ui.git
cd 3x-ui
</pre>
</pre>
Проверьте статус и версию Zimbra с помощью этих команд:
или
 
Для X-UI:
<pre>
<pre>
su - zimbra -c "zmcontrol status"
git clone https://github.com/alireza0/x-ui.git
su - zimbra -c "zmcontrol -v"
cd x-ui
</pre>
</pre>
=== Устанавливаем лицензию ===
Копируем c заменой файл '''/root/zimbra-license-tools.jar > /opt/zimbra/lib/ext-common'''


Перед установкой lic.xml вам необходимо перезапустить сервер, иначе он выйдет из строя.
Запускаем docker-compose:
<pre>
<pre>
reboot
sudo docker-compose up -d
</pre>
</pre>
---------- Продолжим...
Готово! Панель установлена и работает.
<pre>
 
su zimbra
Для 3X-UI идем браузером по адресу '''http://yourserverip:2053/panel/''', где '''yourserverip''' - IP-адрес вашего сервера или доменное имя, если оно у вас есть и настроено (обратите внимание, протокол http://, а не https://). Для X-UI нужно сначала посмотреть с помощью команды "docker logs x-ui", на каком именно порту запустилась панель.
zmlicense -i /root/lic.xml
 
zmlicense -f
Логинимся под стандартными реквизитами '''admin / admin''' и видим нашу прекрасную панель управления:
</pre>
 
Получаем параметр fingerprint
=== Создание протоколов в графической панели 3X-UI ===
и добавляем его в /root/lic_a.xml
Чтобы войти в веб версию панели, в браузере идём по адресу:
Активируем:
 
<pre>
http://xxx.xxx.xxx.xxx:PORT/panel/, где xxx.xxx.xxx.xxx — IP-адрес вашего сервера, а PORT - номер вашего порта. В моём случае это порт 5580.
zmlicense -A /root/lic_a.xml
 
</pre>
[[File:Shadowsocks_01.png|link=]]
Если не удалось активировать:
 
Логинимся и видим вот такую красивую панель управления 3X-UI
 
[[File:Shadowsocks_02.png|link=]]
 
Переходим в '''"Settings"''' (настройки) и там:
 
Изменить порт на котором работает панель со стандартного '''2053''' на какой-нибудь другой (лучше всего где-нибудь в верхнем конце диапазона, до '''65235''');
 
Изменить корневой путь URL-адреса панели с / на что-то типа '''/mysecretpanelroot/''';
 
При желании переключить язык на русский (но имейте в виду, в русском переводе есть некоторые неточности сбивающие с толку);
 
На второй вкладке "Настройки безопасности" изменить стандартный админский пароль на свой;
 
После чего сохраняем настройки и рестартуем панель. Нужно будет изменить URL с учетом нового порта и пути, заданных в настройках.
 
[[File:Shadowsocks_03.png|link=]]
 
[[File:Shadowsocks_04.png|link=]]
 
=== Создаем подключения ===
Идем в раздел меню Inbounds (в русском переводе он почему-то называется "Пользователи", это неправильно и сбивает с толку). Нажимаем "Add Inbound" ("Добавить пользователя"):
 
[[File:Shadowsocks_05.png|link=]]
 
Появляется милое окошко. Сначала добавим возможность подключаться через '''Shadowsocks-2022'''.
 
'''"Remark"''' (Примечание) - ввести что угодно, это просто человекочитаемое название;
 
'''"Протокол"''' выбираем shadowsocks;
 
'''"Listening IP"''' (в русском переводе называется "Порт IP", и это тоже неправильно и запутывает) можно оставить пустым, тогда сервер будет слушать на всех IP-адресах, либо можно явно указать требуемый;
 
'''"Порт"''' - панель выберет рандомный.
 
==== Далее настраиваем пользователя (в момент создания inbound'а создается один, других при желании можно добавить позже): ====
 
Поле '''"Email"''' на самом деле не обязательно должно содержать емайл, может быть любой текст (имя пользователя) - панель генерирует рандомный набор символов, если вы хотите создавать несколько разных пользователей (например, раздать аккаунты друзьям, смотреть кто сколько накачал и при желании блокировать доступ), то лучше вбить сюда что-то человекочитаемое и понятное;
 
'''"Subscription"''' - пока что можно вбить тот же самый юзернейм (о подписках я расскажу чуть позже).
 
Дальше снова идут настройки протокола:
 
'''"Шифрование"''' - выбираем что-нибудь что начинается с "2022", вариант по умолчанию вполне неплох;
 
'''"Пароль"''' (ключ) панель сгенерирует автоматически с правильной длиной для выбранного метода шифрования.
 
Нажимаем '''"Создать"''' и на этом настройка для Shadowsocks закончена, им уже можно пользоваться.
 
[[File:Shadowsocks_06.png|link=]]
 
==== Теперь переходим к настройке VLESS с XTLS-Reality. ====
Тут все будет чуточку сложнее, но в целом так же просто.


1) Заходим https://10.7.7.7:7071 чтобы активировать через web интерфейс.
'''"Remark"''' (Примечание) - любое название;


2) Теперь перейдите в «Настройка -> Глобальные настройки -> Лицензия» и примените файл лицензии Crack «lic.xml» (от значка шестеренки в верхнем углу и выбора «Обновить лицензию»)
'''"Протокол"''' - "vless",


3) Лицензия будет успешно применена, но теперь она начнет выдавать ошибку активации.
'''"Listening IP"''' ("Порт IP", который на самом деле не порт, а адрес) - оставляем пустым, либо задаем вручную если надо;


4) Теперь вам нужно выполнить следующую команду с учетной записью «zimbra» на вашем сервере, чтобы получить значение «fingerprint»
'''"Порт"''' - вместо рандомного ставим 443;
zmlicense -f


Это покажет уникальный номер, который вы теперь должны скопировать в «lic_a».
[[File:Shadowsocks_07.png|link=]]


5) Отредактируйте файл "lic_a.xml" и вставьте значение из шага 4 в следующую строку: <item name="Fingerprint" value="00b5fc1be9ae526c1d9ad57ad6dea292"/>
==== Далее переходим к настройкам клиента. ====
'''"Email"''' - как в и в прошлом пункте, лучше указать что-то человекочитаемое и понятное. Важно: пользователи разных подключений не могут иметь один и тот же емайл (например, наш новый VLESS и старый Shadowsocks созданный в предыдущем пункте), поэтому можно добавить какой-нибудь префикс (например user1vl) для избежания конфликтов.


Сохраните файл
'''"Subscription"''' - тут наоборот, лучше будет если текст в этом поле будет совпадать с тем, что вы задали для Shadowsocks (подробности ниже). Внимание: в отличие от 3X-UI, в X-UI поле Subscription по умолчанию не отображается, нужно сначала активировать функционал подписок в настройках панели.


6) Теперь перейдите в раздел лицензии в панели администратора Zimbra и выберите «Активировать лицензию вручную». Найдите файл «lic_a.xml» и загрузите его на сервер.
'''"Flow"''' - надо выбрать "xtls-rprx-vision". Обратите внимание, поле Flow (см. скриншот) появится только после того, как чуть ниже вы поставите галочку на пункте "Reality". То есть лучше всего настривать так: сначала ставите галочку Reality, а потом заполняете поля с настройками пользователя.


Все должно заработать, и лицензия примениться.
==== Дальше у нас идут настройки транспорта: ====
'''"Reality"''' - как уже сказано выше, должно быть активно;


=== Настройка zimbra после установки ===
'''"XTLS"''' - наоборот, должно быть неактивно (это немного запутывает, не смотря на то, что Reality тоже относится к XTLS, здесь под XTLS подразумеваются только устаревшие версии протокола, и галочки "XTLS" и "Reality" в панели являются взаимоисключающими);
Чтобы начать пользоваться сервером, внесем основные настройки. Для этого открываем браузер и вводим адрес https://<IP-адрес сервера>:7071 — должна открыться страница с ошибкой, разрешаем открытие страницы и мы увидим форму для входа в панель администрирования Zimbra. Вводим логин admin и пароль, который задавали при установке.
В нашем случае https://10.7.7.7:7071


[[File:Mail_01.jpg|link=]]
'''"uTLS"''' - по умолчанию "firefox", я обычно выбираю "chrome", по факту особо без разницы (главное чтобы не "android", могут быть проблемы с клиентами);


==== Добавление домена ====
'''"Домен"''' - на самом деле это не домен, а адрес для подключения к вашему серверу. Можно оставить пустым, тогда панель автоматически подставит IP-адрес или домен, по которому вы обращаетесь в панели на сервере.
Если мы не меняли рабочий домен в настройках во время установки сервера, то основной домен будет таким же, как имя сервера. Как правило, это не то, что нам нужно. И так, заходим в Настройка - Домены. В правой части окна кликаем по значку шестеренки и Создать:


[[File:Mail_02.jpg|link=]]
'''"ShortIds"''' - панель сгенерирует рандомный ID;


Задаем название для нового домена:
'''"Public Key", "Private Key"''' - можно кликнуть на "Get new keys", и панель сама сгенерирует новые для вас;


[[File:Mail_03.jpg|link=]]
'''"Dest" и "Server names"''' - вот это самое интересное, это домен, под который вы будете маскироваться. По умолчанию панель предлагает маскировку под yahoo.com и www.yahoo.com с переадресацией на yahoo.com:443, но лучше выбрать какой-нибудь другой домен.


... и кликаем Далее.
'''Sniffing, HTTP, TLS, QUIC, fakedns''' — оставьте включённым.
В следующем окне выбираем сервер:


[[File:Mail_04.jpg|link=]]
[[File:Shadowsocks_08.png|link=]]


... можно нажать Готово.
Сохраняем введенную форму, и - всё! Настройка завершена.
Теперь поменяем домен по умолчанию. Переходим в Настройка - Глобальные настройки. Меняем значение для поля «Домен по умолчанию»:


[[File:Mail_05.jpg|link=]]
После этого на странице видим примерно вот это:


... и нажимаем Сохранить.
[[File:Shadowsocks_09.png|link=]]
==== Создание почтового ящика ====
Переходим с главного меню панели администрирования в Управление - Учетные записи. Справа кликаем по шестеренке - Создать:


[[File:Mail_06.jpg|link=]]
Если тыкнуть на кнопочку '''"Меню"''' соответствующую нужному протоколу, можно его активировать/деактивировать, сбросить счетчики трафика, добавить пользователей (в том числе сгенерировать разом N аккаунтов по шаблону), и самое главное - раскрыв (плюсиком) список пользователей, можно посмотреть настройки подключения для вбивания в клиенты для этого пользователя.


Задаем имя учетной записи, а также фамилию пользователя:
Нажав на значок '''QR-кода''', панель покажет QR-код, который можно отсканировать камерой в мобильных клиентах ('''v2rayNG''' или '''Nekobox''' на Android, Wings X/'''FoXray''' или '''Shadowrocket''' или '''V2BOX''' на iOS).


[[File:Mail_07.jpg|link=]]
Нажав на иконку информации (с буквой "i") можно посмотреть настройки для вбивания в десктопные клиенты Windows, Linux, MacOS, в том числе и URL, который можно скопировать и вставить.


Задаем пароль пользователя и, по желанию, ставим галочку Требуется сменить пароль:
[[File:Shadowsocks_10.png|link=]]


[[File:Mail_08.jpg|link=]]
Там же вы можете найти "subscription URL". Это - специальным образом сгенерированный список подключений для клиентов. Помните, вы указывали "Subscription" при создании пользователя? При запросе по такому subscription URL, сервер выдаст список настроек (сервера, ключи) для всех подключений с этим ID в поле subscription. Многие клиенты (включая v2rayNG, v2rayN, Nekobox, и другие) умеют автоматически либо по запросу скачивать настройки с таких URL и добавлять их к себе - таким образом, если вы добавили какие-то новые протоколы или решили поменять конфигурацию, пользователи могут легко получить новые параметры с вашего сервера.


При необходимости создания административной учетной записи ставим галочку Глобальный администратор:
Внимание: в отличие от 3X-UI, в X-UI поле Subscription по умолчанию не отображается и вообще функционал подписок по умолчанию отключен, его нужно активировать в настройках панели.


[[File:Mail_09.jpg|link=]]


Готово
Если нажать на '''меню''', то можно изменить, добавить одного или нескольких пользователей, сбросить трафик, экспортировать ключи и т. д.
=== Конфигурации после установки: ===
Вам необходимо выполнить некоторые настройки после установки, хотя это и не обязательно. Когда мы устанавливаем Zimbra, он создает системного пользователя Zimbra с отключенным паролем. На самом деле, он использует ключи ssh для подключения. Поэтому нам нужно обновить ключи ssh следующим образом.
<pre>
[root@mail ~]# sudo -u zimbra -i
[zimbra@mail ~]$ zmupdateauthkeys


Updating keys for mail.putyato.ru
[[File:Shadowsocks_11.png|link=]]
Fetching key for mail.putyato.ru
Updating keys for mail.putyato.ru
Updating /opt/zimbra/.ssh/authorized_keys
</pre>
Теперь, чтобы отобразить статистику сервера в консоли администратора, нам нужно обновить файлы конфигурации Syslog следующим образом.


Если вы работаете как выход пользователя Zimbra (выполните команду exit) , переключитесь на  пользователя root  и выполните следующую команду.
=== Подключение клиентов ===
<pre>
==== Подключение устройств на iOS (но не ниже 16 версии) ====
[root@mail ~]# /opt/zimbra/libexec/zmsyslogsetup
1. Скачайте приложение FoXray из AppStore по ссылке: https://apps.apple.com/ru/app/foxray/id6448898396?ref=dtf.ru
updateSyslog: Updating /etc/rsyslog.conf...done.
</pre>
Желательно включить автоматическую проверку вложений электронной почты  антивирусом ClamAV  . Поэтому выполните следующую команду.
<pre>
[root@mail ~]# su - zimbra
[zimbra@mail ~]$ zmprov mcf zimbraAttachmentsScanURL clam://localhost:3310/
[zimbra@mail ~]$ zmprov mcf zimbraAttachmentsScanEnabled TRUE
</pre>
==== Почтовый сервер Zimbra и антивирус ClamAV (после блокировки из России)⁠⁠ ====
Наверняка у многих сисадминов из РФ всплыла проблема с отказом антивируса ClamAV работающим в связке с почтовым сервером Zimbra. Набросал краткий мануал.
Так как Clamav принадлежит по факту корпорации Cisco, то достучаться из Россия уже просто не получится (по состоянию на 16.03.2022)
Будем использовать tor-прокси (в связке TOR+Privoxy) . В моем случае все крутится в отдельном крошечном lxc ( вы можете вынести на отдельный vds вне корп сети, как угодно. Но самом почтовике делать явно не стоит)
Вносим изменения в:
<pre>
nano /opt/zimbra/conf/freshclam.conf.in
</pre>
Необходимо в раскомментировать и поправить :
HTTPProxyServer **.**.**.** # Адрес прокси-сервера
HTTPProxyPort 8446 # порт прокси-сервера (стандартный 8118)


Я Установил:
2. В графической панели 3X-UI создайте нового клиента. Для этого: нажмите на кнопку Меню в ранее созданной конфигурации, далее Добавить пользователя. В поле Email напишите название клиента, например "Мой iPhone", а в пункте Flow выберите xtls-rprx-vision.
<pre>
HTTPProxyServer 66.76.140.239
HTTPProxyPort 39593
</pre>
Под zimbra делаем полный рестарт антивируса :
<pre>
su zimbra
zmantivirusctl restart
</pre>
Проверяем:
<pre>
$ zmantivirusctl status


antivirus is running
3. Раскройте (плюсиком) список клиентов и под «Меню» рядом с только что созданным клиентом «Мой iPhone» нажмите на иконку QR-кода:
</pre>
=== Настройка DNS ===
Для корректной работы почты необходимо настроить DNS для нашего домена.


'''1. Запись MX.'''
[[File:Shadowsocks_12.png|link=]]
Позволяет определить почтовый сервер для домена.  


'''2. Запись A.'''
4. Запустите приложение FoXray и в левом верхнем углу нажмите значок сканирования QR-кода и отсканируйте его с экрана компьютера.
Для нашего сервера, который определен как MX запись нужна запись А, которая указывает на его IP-адрес. В моем примере это сервер mail.putyato.ru, который из сети Интернет должен разрешаться во внешний IP-адрес.


'''3. PTR.'''
[[File:Shadowsocks_13.png|link=]]
Данная запись представляет из себя обратное разрешение IP-адреса в домен. С ее помощью подтверждается легитимность отправителя.


'''4. SPF.'''
5. Всё, профиль добавлен! Теперь нажмите на кнопку «Play», далее разрешите добавление конфигурации VPN, введите пароль и можете пользоваться VPN соединением.
Это запись TXT, которая определяет список серверов для домена, с которых разрешена отправка почты.


'''5. DKIM.'''
==== Подключение устройств на Windows ====
Подтверждение владельца домена. Письмо отправляется с зашифрованным заголовком и расшифровать его можно с помощью последовательности, хранящейся в TXT-записи на DNS. Соответственно, если владелец домена разместил такую последовательность, то он и является его владельцем.
1. Скачайте архив с программой Invisible Man XRay c GitHub и распакуйте его ('''https://github.com/InvisibleManVPN/InvisibleMan-XRayClient''')


'''6. DMARC.'''
2. В графической панели 3X-UI создайте нового клиента. Для этого: нажмите на кнопку Меню в ранее созданной конфигурации, далее Добавить пользователя. В поле Email напишите название клиента, например "Мой Windows", а в пункте Flow выберите xtls-rprx-vision.
Определяет для домена политику проверки писем.


{| class="wikitable"
3. Раскройте (плюсиком) список клиентов и под «Меню", рядом с только что созданным клиентом "Мой Windows» и нажмите на иконку Информация:
|+ Зона
|-
! Хост !! Тип !! Значение
|-
| * || A || 67.248.99.132
|-
| @ || A || 67.248.99.132
|-
| www || A || 67.248.99.132
|-
|  ||  ||
|-
| @ || MX || 10 mail
|-
| mail || A || 67.248.99.132
|-
| @ || TXT || v=spf1 a mx -all
|-
| 3EF6B3C0-2E8A-11CD-A4E2-B3DCE640B747._domainkey || TXT || v=DKIM1;k=rsa;
p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMI...
6Kcp7+JglnrttF5p6Pz8GUIApECGx2htTle...
|-
| _domainkey || TXT || 0=~
|}
=== Проброс портов на роутере ===
Если наш сервер находится во внутренней сети, необходимо настроить проброс портов. В двух словах, это настройка на сетевом устройстве, которое смотрит в Интернет, которая позволит запросы на определенный порт передать на наш почтовый сервер.
Требуется пробросить следующие порты: 80(HTTP), 443(HTTPS), 993(IMAP/S), 25(SMTP), 5222(XMPP), 7025(LMTP)
=== Настройка DKIM ===
Отдельно рассмотрим процесс настройки подписи DKIM на почтовом сервере Zimbra. Формирование ключей выполняется для каждого из доменов из командной строки. Подключаемся к серверу по SSH и вводим команду:
<pre>
su - zimbra -c "/opt/zimbra/libexec/zmdkimkeyutil -a -d putyato.ru"
</pre>
* данная команда создаст последовательности ключей для домена putyato.ru.
Мы должны получить ответ на подобие:
<pre>
Public signature to enter into DNS:
5D8C3E02-4EFA-11EA-872A-D9A5B4628C49._domainkey IN      TXT    ( "v=DKIM1; k=rsa; "
          "p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5iLy58AJ1fdB15BZgh/VtGfZsi+TrDyvqqZaL5pJ+MQaQrpqHW8AF5kyxW2QzAMjyKzySMZX0PoHUuV93Yxf2t52IFihvb7ivqmRwlqFV3gU7j8zqbAGWHfZo4Ydw0kUmU6pm+Z85aWt4k7rQ7vWXludQGf8yIaSMMmodxze9E5VUOtUA18dIEEPcbwSgOO6YhQLuC78T4FiF5"
          "8epQnsX0voSfg9tMW+r+P1b5fTy5Guyqh1plWYseKxPzHKHbc4Lokcgo1AZzKG5Mvo5OCXsKUE1fSoc366AFSoUnWr23P7oUbf+NjXzPMS8ESGA9TfpDA6eRJT4QEpi72AdIy4rQIDAQAB" )  ; ----- DKIM key 5D8C3E02-4EFA-11EA-872A-D9A5B4628C49 for putyato.ru
</pre>
В данном ответе нас интересуют записи 5D8C3E02-4EFA-11EA-872A-D9A5B4628C49._domainkey — это имя для TXT в домене putyato.ru; "v=DKIM1; k=rsa; " "p=M...AB" — содержимое записи.


В настройках домена необходимо добавить данную запись, после чего подождать, минут 15. После выполняем проверку:
[[File:Shadowsocks_14.png|link=]]
<pre>
opendkim-testkey -d putyato.ru -s 5D8C3E02-4EFA-11EA-872A-D9A5B4628C49 -x /opt/zimbra/conf/opendkim.conf
</pre>
* где putyato.ru — наш домен; 5D8C3E02-4EFA-11EA-872A-D9A5B4628C49 — селектор, который мы видели в записи 5D8C3E02-4EFA-11EA-872A-D9A5B4628C49._domainkey.
* если при вводе команды мы получим ошибку «Command 'opendkim-testkey' not found», необходимо установить opendkim-tools командой yum install opendkim-tools.


Для просмотра имеющихся записей DKIM можно воспользоваться командой:
4. Скопируйте ссылку для подключение под надписью URL, нажав на кнопку копирования, как на скриншоте ниже:
<pre>
su - zimbra -c "/opt/zimbra/libexec/zmdkimkeyutil -q -d putyato.ru"
</pre>
==== Отправка тестового письма ====
Открываем браузер и переходим по ссылке https://<IP-адрес сервера>:8443/ — откроется веб-клиент для чтения и отправки почты. В качестве логина используем созданный email и его пароль.


Теперь заходим на сайт https://www.mail-tester.com/ и копируем email-адрес для отправки тестового сообщения.
[[File:Shadowsocks_15.png|link=]]


Создаем новое сообщение и отправляем его на тестовый адрес. Возвращаемся на сайт для проверки и кликаем по (Затем проверьте оценку).
5. Отправьте любым удобным способом данную ссылку на ваш компьютер, и там также её скопируйте.


Если наше письмо не получило 10 баллов, анализируем проблемы и исправляем их.
6. Запустите программу Invisible Man XRay и перейдите в Manage server configuration.


=== Установка SSL-сертификата ===
[[File:Shadowsocks_16.png|link=]]
При заходе на веб-интерфейс мы будем получать ошибку, так как по умолчанию, создается самоподписный сертификат. Рассмотрим процесс установки бесплатного сертификата от Let;s Encrypt.
==== Получение сертификата ====
Создаем каталог:
<pre>
mkdir /opt/letsencrypt
</pre>
Загружаем в него утилиту letsencrypt-auto:
<pre>
wget https://raw.githubusercontent.com/certbot/certbot/7f0fa18c570942238a7de73ed99945c3710408b4/letsencrypt-auto-source/letsencrypt-auto -O /opt/letsencrypt/letsencrypt-auto
</pre>
или
<pre>
wget "https://cloud.putyato.pro/index.php/s/j5Q4XxJrn7bwWAe/download/letsencrypt-auto" --no-check-certificate -O /opt/letsencrypt/letsencrypt-auto
</pre>


Разрешаем ее запускать на выполнение:
7. Нажмите на кнопку "плюс" в правом нижнем углу окна.
<pre>
chmod +x /opt/letsencrypt/letsencrypt-auto
</pre>
После чего:
<pre>
/opt/letsencrypt/letsencrypt-auto certonly --standalone
</pre>
Будет установлено несколько пакетов, после необходимо ввести адрес почты, принять лицензионное соглашение и, в принципе, можно подписаться на рассылки от Let's Encrypt:
<pre>
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): admin@putyato.ru


- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
[[File:Shadowsocks_17.png|link=]]
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A


- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
8. Выберите Import from link и вставьте вашу ссылку, которую вы ранее скопировали в поле, как на скрине:
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
</pre>
После утилита предложит ввести адрес, для которого необходимо получить сертификат — вводим адрес нашего сервера, например:
<pre>
Please enter in your domain name(s) (comma and/or space separated)  (Enter 'c'
to cancel): mail.putyato.ru
</pre>
Мы должны получить что-то на подобие:
<pre>
...
- Congratulations! Your certificate and chain have been saved at:
  /etc/letsencrypt/live/mail.putyato.ru/fullchain.pem
  Your key file has been saved at:
  ...
</pre>
Сертификат получен и все его файлы находятся в каталоге /etc/letsencrypt/live/mail.putyato.ru/.


==== Установка сертификата ====
[[File:Shadowsocks_18.png|link=]]
Процесс установки сертификата для ZIMBRA, несколько, отличается от многих других сервисов — он требует дополнительных телодвижений.


И так, сначала скопируем полученные сертификаты в каталог ZIMBRA — в моем случае, команды такие:
9. Если вы всё правильно сделали, должна добавиться новая конфигурция. Закройте этот менеджер и нажмите кнопку Run.
<pre>
cp /etc/letsencrypt/live/mail.putyato.ru/* /opt/zimbra/ssl/zimbra/commercial/
</pre>
* где mail.putyato.ru — домен, для которого мы получали сертификат.
Меняем владельца для скопированных файлов:
<pre>
chown zimbra /opt/zimbra/ssl/zimbra/commercial/*
</pre>
Теперь нюанс — zimbra не примет цепочку сертификатов, если в ней не будет корневых от Let's Encrypt. Получить их можно по ссылкам:


1. https://letsencrypt.org/certs/isrgrootx1.pem.txt.
[[File:Shadowsocks_19.png|link=]]
или
https://cloud.putyato.pro/index.php/s/Nq9RzgyCE593zsr/download/isrgrootx1.pem.txt


2. https://letsencrypt.org/certs/letsencryptauthorityx3.pem.txt.
10. Готово! VPN на компьютере под управлением операционной системы Windows мы тоже настроили без проблем.
или
https://cloud.putyato.pro/index.php/s/wnCdj6eFAwr9wTT/download/letsencryptauthorityx3.pem.txt


Полученную последовательность добавляем к файлу chain.pem:
=== Пропускаем трафик через Tor ===
<pre>
'''Torghost'''
nano /opt/zimbra/ssl/zimbra/commercial/chain.pem
</pre>
<pre>
-----BEGIN CERTIFICATE-----
<первую последовательность оставляем>
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
<вторую последовательность удаляем>
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFazCCA1OgAwIBAgIRAIIQz7DSQONZRGPgu2OCiwAwDQYJKoZIhvcNAQELBQAw
TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh
cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMTUwNjA0MTEwNDM4
WhcNMzUwNjA0MTEwNDM4WjBPMQswCQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJu
ZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBY
MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK3oJHP0FDfzm54rVygc
h77ct984kIxuPOZXoHj3dcKi/vVqbvYATyjb3miGbESTtrFj/RQSa78f0uoxmyF+
0TM8ukj13Xnfs7j/EvEhmkvBioZxaUpmZmyPfjxwv60pIgbz5MDmgK7iS4+3mX6U
A5/TR5d8mUgjU+g4rk8Kb4Mu0UlXjIB0ttov0DiNewNwIRt18jA8+o+u3dpjq+sW
T8KOEUt+zwvo/7V3LvSye0rgTBIlDHCNAymg4VMk7BPZ7hm/ELNKjD+Jo2FR3qyH
B5T0Y3HsLuJvW5iB4YlcNHlsdu87kGJ55tukmi8mxdAQ4Q7e2RCOFvu396j3x+UC
B5iPNgiV5+I3lg02dZ77DnKxHZu8A/lJBdiB3QW0KtZB6awBdpUKD9jf1b0SHzUv
KBds0pjBqAlkd25HN7rOrFleaJ1/ctaJxQZBKT5ZPt0m9STJEadao0xAH0ahmbWn
OlFuhjuefXKnEgV4We0+UXgVCwOPjdAvBbI+e0ocS3MFEvzG6uBQE3xDk3SzynTn
jh8BCNAw1FtxNrQHusEwMFxIt4I7mKZ9YIqioymCzLq9gwQbooMDQaHWBfEbwrbw
qHyGO0aoSCqI3Haadr8faqU9GY/rOPNk3sgrDQoo//fb4hVC1CLQJ13hef4Y53CI
rU7m2Ys6xt0nUW7/vGT1M0NPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV
HRMBAf8EBTADAQH/MB0GA1UdDgQWBBR5tFnme7bl5AFzgAiIyBpY9umbbjANBgkq
hkiG9w0BAQsFAAOCAgEAVR9YqbyyqFDQDLHYGmkgJykIrGF1XIpu+ILlaS/V9lZL
ubhzEFnTIZd+50xx+7LSYK05qAvqFyFWhfFQDlnrzuBZ6brJFe+GnY+EgPbk6ZGQ
3BebYhtF8GaV0nxvwuo77x/Py9auJ/GpsMiu/X1+mvoiBOv/2X/qkSsisRcOj/KK
NFtY2PwByVS5uCbMiogziUwthDyC3+6WVwW6LLv3xLfHTjuCvjHIInNzktHCgKQ5
ORAzI4JMPJ+GslWYHb4phowim57iaztXOoJwTdwJx4nLCgdNbOhdjsnvzqvHu7Ur
TkXWStAmzOVyyghqpZXjFaH3pO3JLF+l+/+sKAIuvtd7u+Nxe5AW0wdeRlN8NwdC
jNPElpzVmbUq4JUagEiuTDkHzsxHpFKVK7q4+63SM1N95R1NbdWhscdCb+ZAJzVc
oyi3B43njTOQ5yOf+1CceWxG1bQVs5ZufpsMljq4Ui0/1lvh+wjChP4kqKOJ2qxq
4RgqsahDYVvTH9w7jXbyLeiNdd8XM2w9U/t7y0Ff/9yi0GE44Za4rF2LN9d11TPA
mRGunUHBcnWEvgJBQl9nJEiU0Zsnvgc/ubhPgXRR4Xq37Z0j4r7g1SgEEzwxA57d
emyPxgcYxn/eR44/KJ4EBs+lVDR3veyJm+kXQ99b21/+jh5Xos1AnX5iItreGCc=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFjTCCA3WgAwIBAgIRANOxciY0IzLc9AUoUSrsnGowDQYJKoZIhvcNAQELBQAw
TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh
cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMTYxMDA2MTU0MzU1
WhcNMjExMDA2MTU0MzU1WjBKMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg
RW5jcnlwdDEjMCEGA1UEAxMaTGV0J3MgRW5jcnlwdCBBdXRob3JpdHkgWDMwggEi
MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCc0wzwWuUuR7dyXTeDs2hjMOrX
NSYZJeG9vjXxcJIvt7hLQQWrqZ41CFjssSrEaIcLo+N15Obzp2JxunmBYB/XkZqf
89B4Z3HIaQ6Vkc/+5pnpYDxIzH7KTXcSJJ1HG1rrueweNwAcnKx7pwXqzkrrvUHl
Npi5y/1tPJZo3yMqQpAMhnRnyH+lmrhSYRQTP2XpgofL2/oOVvaGifOFP5eGr7Dc
Gu9rDZUWfcQroGWymQQ2dYBrrErzG5BJeC+ilk8qICUpBMZ0wNAxzY8xOJUWuqgz
uEPxsR/DMH+ieTETPS02+OP88jNquTkxxa/EjQ0dZBYzqvqEKbbUC8DYfcOTAgMB
AAGjggFnMIIBYzAOBgNVHQ8BAf8EBAMCAYYwEgYDVR0TAQH/BAgwBgEB/wIBADBU
BgNVHSAETTBLMAgGBmeBDAECATA/BgsrBgEEAYLfEwEBATAwMC4GCCsGAQUFBwIB
FiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQub3JnMB0GA1UdDgQWBBSo
SmpjBH3duubRObemRWXv86jsoTAzBgNVHR8ELDAqMCigJqAkhiJodHRwOi8vY3Js
LnJvb3QteDEubGV0c2VuY3J5cHQub3JnMHIGCCsGAQUFBwEBBGYwZDAwBggrBgEF
BQcwAYYkaHR0cDovL29jc3Aucm9vdC14MS5sZXRzZW5jcnlwdC5vcmcvMDAGCCsG
AQUFBzAChiRodHRwOi8vY2VydC5yb290LXgxLmxldHNlbmNyeXB0Lm9yZy8wHwYD
VR0jBBgwFoAUebRZ5nu25eQBc4AIiMgaWPbpm24wDQYJKoZIhvcNAQELBQADggIB
ABnPdSA0LTqmRf/Q1eaM2jLonG4bQdEnqOJQ8nCqxOeTRrToEKtwT++36gTSlBGx
A/5dut82jJQ2jxN8RI8L9QFXrWi4xXnA2EqA10yjHiR6H9cj6MFiOnb5In1eWsRM
UM2v3e9tNsCAgBukPHAg1lQh07rvFKm/Bz9BCjaxorALINUfZ9DD64j2igLIxle2
DPxW8dI/F2loHMjXZjqG8RkqZUdoxtID5+90FgsGIfkMpqgRS05f4zPbCEHqCXl1
eO5HyELTgcVlLXXQDgAWnRzut1hFJeczY1tjQQno6f6s+nMydLN26WuU4s3UYvOu
OsUxRlJu7TSRHqDC3lSE5XggVkzdaPkuKGQbGpny+01/47hfXXNB7HntWNZ6N2Vw
p7G6OfY+YQrZwIaQmhrIqJZuigsrbe3W+gdn5ykE9+Ky0VgVUsfxo52mwFYs1JKY
2PGDuWx8M6DlS6qQkvHaRUo0FMd8TsSlbF0/v965qGFKhSDeQoMpYnwcmQilRh/0
ayLThlHLN81gSkJjVrPI0Y8xCVPB4twb1PFUd2fPM3sA1tJ83sZ5v8vgFv2yofKR
PB0t6JzUA81mSqM3kxl5e+IZwhYAyO0OTg3/fs8HqGTNKd9BqoUwSRBzp06JMg5b
rUCGwbCUDI0mxadJ3Bz4WxR6fyNpBK2yAinWEsikxqEt
-----END CERTIFICATE-----
</pre>
* где мы добавили к файлу две последовательности.


Теперь зайдем в систему под пользователем zimbra:
Начала получим репозиторий из гитхаба (кстати, сначала нужно установить git):
<pre>
<pre>
su - zimbra
sudo apt update && sudo apt upgrade
git clone https://github.com/SusmithKrishnan/torghost.git
</pre>
</pre>
... и перейдем в каталог:
После этого заходим в папку torghost (она появится после клонирования репозитория) и делаем файл build.sh исполняемым:
<pre>
<pre>
$ cd /opt/zimbra/ssl/zimbra/commercial
cd torghost
sudo chmod +x build.sh
</pre>
</pre>
Проверяем, правильно ли сформированы сертификаты для Zimbra:
Запускаем установку:
<pre>
<pre>
$ zmcertmgr verifycrt comm privkey.pem cert.pem chain.pem
sudo ./build.sh
</pre>
</pre>
Мы должны получить ответ:
Установщик сам подтянет все зависимости и поставит Тор. На этом установка закончена!
 
Далее ставим обновление:
<pre>
<pre>
** Verifying 'cert.pem' against 'privkey.key'
pip3 install -r requirements.txt
Certificate 'cert.pem' and private key 'privkey.key' match.
wget -c https://github.com/SusmithKrishnan/torghost/releases/download/v3.0.2/torghost-3.0.2-amd64.deb
** Verifying 'cert.pem' against 'chain.pem'
sudo dpkg -i torghost-*-amd64.deb
Valid certificate chain: cert.pem: OK
</pre>
</pre>
Переименовываем закрытый ключ:
Открываем файл torghost.py на редактирование и комментируем 15 -ю строку.
<pre>
<pre>
$ mv privkey.pem commercial.key
nano torghost.py
</pre>
</pre>
Можно устанавливать сертификаты:
 
<pre>
<pre>
$ zmcertmgr deploycrt comm cert.pem chain.pem
 
'''
from packaging import version
'''
 
</pre>
</pre>
Чтобы настройка применилась, перезапускаем zimbra и выходим из его окружения:
 
Запускаем утилиту '''torghost''', ip адрес будет меняться автоматически через каждые 10 минут:
<pre>
<pre>
$ zmcontrol restart
sudo python3 torghost.py -s
$ exit
</pre>
</pre>


==== Продление сертификата ====
Варианты использования:
На роутере напрямую пробросить 80 и 443 порт на виртуальную машину с ZIMBRA, проброс через прокси не работает.
Отключить проверку SSL сертификата:
<pre>
<pre>
su - zimbra -c "zmlocalconfig -e ldap_starttls_supported=0"
sudo python3 torghost.py -x (to stop Torghost - the tool will go back to you Ip ADDRESS from your ISP)
su - zimbra -c "zmcontrol restart"
 
sudo python3 torghost.py -u (to update the tool - this is not required to do it every day)
 
sudo python3 torghost.py -r (to switch the IP Address - you will notice that the IP address that Torghost assigned you at the beginning will change again)
 
sudo python3 torghost.py -h (to open the help menu)
</pre>
</pre>


Обновление сертификата не потребует больших усилий. Для начала, обновляем сертификат Let's Encrypt:
Скрипт чтобы IP адреса менялись через каждую минуту, если нужно:
<pre>
<pre>
/opt/letsencrypt/letsencrypt-auto renew
#!/bin/bash
</pre>
a=1
Скопируем обновленные сертификаты в каталог зимбры:
x=60
<pre>
while [[ $a -gt 0 ]]
cp /etc/letsencrypt/live/mail.putyato.ru/* /opt/zimbra/ssl/zimbra/commercial/
do
</pre>
python3 torghost.py -s
* где mail.putyato.ru — домен, для которого мы получали сертификат.
sleep $x
Меняем владельца для файлов:
done
<pre>
chown zimbra /opt/zimbra/ssl/zimbra/commercial/*
</pre>
Переходим в каталог с сертификатами:
<pre>
cd /opt/zimbra/ssl/zimbra/commercial
</pre>
Загружаем корневые сертификаты Let's Encrypt:
<pre>
wget https://letsencrypt.org/certs/isrgrootx1.pem.txt
wget https://letsencrypt.org/certs/letsencryptauthorityx3.pem.txt
</pre>
или
<pre>
wget "https://cloud.putyato.pro/index.php/s/Nq9RzgyCE593zsr/download/isrgrootx1.pem.txt" --no-check-certificate -O isrgrootx1.pem.txt
wget "https://cloud.putyato.pro/index.php/s/wnCdj6eFAwr9wTT/download/letsencryptauthorityx3.pem.txt" --no-check-certificate -O letsencryptauthorityx3.pem.txt
</pre>
</pre>


Создаем файл с полной цепочкой сертификатов:
=== Дополнительная информация из другого источника ===
<pre>
Команда для запуска установки панели 3X-UI:
echo "-----BEGIN CERTIFICATE-----" > new_chain.pem
 
openssl x509 -in chain.pem -outform der | base64 -w 64 >> new_chain.pem
https://github.com/MHSanaei/3x-ui?ysclid=lstfiw45v6910325792
echo "-----END CERTIFICATE-----" >> new_chain.pem
mv new_chain.pem chain.pem
cat isrgrootx1.pem.txt >> chain.pem
cat letsencryptauthorityx3.pem.txt >> chain.pem
</pre>
Проверяем корректность сертификатов:
<pre>
su - zimbra -c "zmcertmgr verifycrt comm /opt/zimbra/ssl/zimbra/commercial/privkey.pem /opt/zimbra/ssl/zimbra/commercial/cert.pem /opt/zimbra/ssl/zimbra/commercial/chain.pem"
</pre>
Переименовываем закрытый ключ:
<pre>
mv privkey.pem commercial.key
</pre>
Можно устанавливать сертификаты:
<pre>
su - zimbra -c "zmcertmgr deploycrt comm /opt/zimbra/ssl/zimbra/commercial/cert.pem /opt/zimbra/ssl/zimbra/commercial/chain.pem"
</pre>
Включаем проверку SSL сертификата:
<pre>
su - zimbra -c "zmlocalconfig -e ldap_starttls_supported=1"
</pre>
Чтобы настройка применилась, перезапускаем zimbra:
<pre>
su - zimbra -c "zmcontrol restart"
</pre>
Готово.




Если почта организована через прокси, то нужно полученные два сертификата скопировать в папку на прокси виртуальной машины:
Скачать NekoBox:


Почтовая виртуалка:
https://github.com/MatsuriDayo/NekoBoxForAndroid/releases


'''/opt/zimbra/ssl/zimbra/commercial'''


Берем два файла: '''fullchain.pem; commercial.key'''
Скачать V2RayN:


И копируем их в папку ('''/etc/letsencrypt/live/mail.putyato.ru/''') на прокси виртуальной машины.
https://github.com/2dust/v2rayN/releases


Восстанавливаем проброс портов 443 и 80 на роутере, на прокси виртуалку.


И все готово!
Настройка ssh-ключей:


=== Настройка почтового клиента ===
https://simplelinux.ru/nastrojka-podklyucheniya-k-serveru-po-ssh-klyucham/
Приведем пример настройки почтового клиента. Подключимся к нашему серверу по IMAP и отправим почту по SMTP. В качестве почтового клиента я буду использовать Mozilla Thunderbird — принцип настройки других клиентов аналогичен.


Для настройки используем следующие параметры:
== Создания туннеля через несколько VPN серверов. ==
{| class="wikitable"
Для того чтобы пропустить наш трафик например через 2 сервера делаем следующее:
|+ Настройки
|-
! Настройка !! IMAP !! POP3 !! SMTP
|-
| Адрес сервера || IP-адрес сервера или его имя
|-
| Порт || 143 || 110 || 587
|-
| SSL || STARTTLS
|-
| Имя пользователя || Почтовый адрес, к которому выполняем подключение
|-
| Пароль || Пароль для почтового ящика
|}
Пример настройки:


[[File:Mail_10.jpg|link=]]
1) Копируемым ссылку на подключения например Shadowsocks на конечном сервере.


=== Защита от СПАМа ===
ss://MjAyMi1GFrZTMtYWVzLTI1Ni1nY206UlA0TTJWbHVudHlpUFdiWEdxdk1ieGd4SVNVOEZnaXUUxDN3ladU82bz06T0NJYkl2c1ZxZ2oyTmw5QVZG9KZUtMTjBzb25TSGprZDU90akxrOD0@135.120.45.13:22467?type=tcp#SS-Vasya_ss
==== 1. Обновление правил в SpamAssassin ====
Для улучшения защиты от СПАМ-сообщений мы включим автоматическое обновление правил для SpamAssassin. Для этого вводим:
<pre>
su - zimbra -c "zmlocalconfig -e antispam_enable_rule_updates=true"
su - zimbra -c "zmlocalconfig -e antispam_enable_restarts=true"
</pre>
После перезапустим соответствующие службы:
<pre>
su - zimbra -c "zmamavisdctl restart"
su - zimbra -c "zmmtactl restart"
</pre>
==== 2. Черные списки ====
Чтобы усилить защиту, разрешим проверку отправителя в черных списках:
<pre>
su - zimbra -c 'zmprov mcf zimbraMtaRestriction "reject_rbl_client zen.spamhaus.org"'
</pre>
* в данном примере мы подключаем rbl-список от zen.spamhaus.org.
==== 3. Настройка mynetworks ====
После установки Zimbra в опции postfix mynetworks может оказаться подсеть, в которой находится наш сервер. На практике, это приводит к возможности отправки сообщений без пароля, что в свою очередь, позволяет любому вирусу в нашей сети делать нелегальную рассылку.
Задаем для mynetworks только адрес локальной петли и адрес сервера:
<pre>
su - zimbra -c 'zmprov ms mail.putyato.ru zimbraMtaMyNetworks "127.0.0.0/8 10.7.7.7/32"'
</pre>
* где 10.7.7.7 — IP-адрес нашего почтового сервера.
Перезапускаем postfix:
<pre>
su - zimbra -c 'postfix reload'
</pre>
Проверить текущую настройку можно командой:
<pre>
su - zimbra -c 'postconf mynetworks'
</pre>


=== Дополнительные настройки ===
2) Заходим на первый наш сервер, В правом меню нажимаем на '''"Настройка Xray" --> "Исходящие" --> "Добавить исходящий" --> JSON'''
==== Добавление отправителей в белый список ====
Может возникнуть ситуация, при которой нам нужно изменить назначение СПАМ-балов для некоторых отправителей. Для этого открываем файл:
<pre>
nano /opt/zimbra/conf/amavisd.conf.in
</pre>
Находим строку:
<pre>
  { # a hash-type lookup table (associative array)
  ...
  }
</pre>
... и внутри фигурных скобок {} добавим нужный нам домен или конкретного отправителя:
<pre>
  ...
  'putyato.ru'                           =>  -10.0,
  'sender@putyato2.ru'                   =>  -10.0,
}
</pre>
* таким образом мы сказали, что для писем с домена putyato.ru и отправителя sender@putyato2.ru отнимать 10 баллов за СПАМ. Такие письма начнут приходить без блокировки (при условии, что не будет отправлен явный СПАМ, который наберет очень много баллов).


После настройки перезапускаем amavis:
И в поле '''"Link"''' вставляем нашу ссылку.
<pre>
su - zimbra -c "zmamavisdctl stop && zmamavisdctl start"
</pre>
==== Размер отправляемого сообщения ====
Задать максимальный размер сообщений можно командой:
<pre>
su - zimbra -c 'zmprov modifyConfig zimbraMtaMaxMessageSize 31457280'
</pre>
* в данном примере мы задаем максимальный размер сообщения 30 мб.


После перезапускаем postfix:
[[File:VPN_1.png|link=]]
<pre>
su - zimbra -c "postfix reload"
</pre>
==== Сделать пользователя админом ====
<pre>
su zimbra
zmprov ma pavel@putyato.ru zimbraIsAdminAccount TRUE
</pre>
==== Служебные сообщения ====
* кому приходят все служебные сообщения
<pre>
zmlocalconfig -e smtp_destination=admin@putyato.ru
</pre>
==== Отключение redolog ====
<pre>
zmprov mcf zimbraRedoLogEnabled FALSE
</pre>


=== Возможные проблемы ===
[[File:VPN_2.png|link=]]
==== Служба zmconfigd не стартует ====
В консоли управления почтовым сервером мы можем увидеть ошибку запуска службы zmconfigd. При попытке запустить ее:
<pre>
$ zmconfigdctl start
</pre>
... мы получаем ошибку:
<pre>
Starting zmconfigd...failed
</pre>
Решение:
<pre>
yum -y install nmap-ncat
</pre>
После пробуем запустить сервис (от пользователя zimbra):
<pre>
$ zmconfigdctl start
</pre>
==== Файл zmstat.out большого размера ====
Файл /opt/zimbra/zmstat/zmstat.out становится очень большим. Если открыть его, то мы увидим много строк:
<pre>
Use of uninitialized value $line in pattern match (m//) at /opt/zimbra/libexec/zmstat-io line 76.
</pre>
Причина:
Ошибка в скрипте /opt/zimbra/libexec/zmstat-io.


Решение:
3) Нажимаем '''"Сохранить настройки" --> "Перезапустить Xray"'''
Открываем скрипт, в котором есть ошибка:
<pre>
nano /opt/zimbra/libexec/zmstat-io
</pre>
Переходим на неправильную строку - 1 (в нашем примере, 75). Мы должны увидеть:
<pre>
while ($line !~ /^avg-cpu/ && $line !~ /^Device:/) {
</pre>
Меняем на:
<pre>
while ($line !~ /^avg-cpu/ && $line !~ /^Device/) {
</pre>
* то есть, убираем : после Device.
Перезапускаем службы Zimbra:
<pre>
su - zimbra -c "zmcontrol restart"
</pre>


==== Отключение и включение проверки SSL сертификата. ====
4) Далее опять в правом меню нажимаем на '''"Настройка Xray" --> "Правила маршрутизации" --> "Добавить правило"
Отключить проверку:
<pre>
su - zimbra -c "zmlocalconfig -e ldap_starttls_supported=0"
</pre>
Включить проверку:
<pre>
su - zimbra -c "zmlocalconfig -e ldap_starttls_supported=1"
</pre>


5) Выбираем в поле "Network" --> "TCP,UDP", и в поле "Outbound" --> наш второй сервер.


==== Получение писем с переполнением диска. ====
[[File:VPN_3.png|link=]]
Когда у вас установлен Snap на экземпляре Zimbra (при установке Certbot), вы можете получать массу электронных писем от инструментов мониторинга Zimbra с предупреждениями, в которых говорится:
<pre>
Feb 14 19:40:01 mail zimbramon[4751]: 4751:crit: Disk warning: mail.ttc-service.ru: /var/lib/snapd/snap/core/14447 on device /dev/loop0 at 100%
</pre>
Это нормально, так как все /dev/loopX доступны только для чтения и автоматически создаются Snap. Вы можете увидеть их, выполнив df -h :
<pre>
[root@mail ~]# df -h
Filesystem                    Size  Used Avail Use% Mounted on
devtmpfs                      1.9G    0  1.9G  0% /dev
tmpfs                        1.9G    0  1.9G  0% /dev/shm
tmpfs                        1.9G  215M  1.7G  12% /run
tmpfs                        1.9G    0  1.9G  0% /sys/fs/cgroup
/dev/mapper/centos_mail-root  96G  22G  75G  23% /
/dev/sda1                    1014M  193M  822M  19% /boot
tmpfs                        379M    0  379M  0% /run/user/0
/dev/loop1                    62M  62M    0 100% /var/lib/snapd/snap/core20/904
/dev/loop5                    50M  50M    0 100% /var/lib/snapd/snap/certbot/952
/dev/loop2                    99M  99M    0 100% /var/lib/snapd/snap/core/10823
/dev/loop0                    100M  100M    0 100% /var/lib/snapd/snap/core/10859
/dev/loop4                    50M  50M    0 100% /var/lib/snapd/snap/certbot/1042
</pre>


Вы можете исключить эти устройства из мониторинга Zimbra, выполнив zmlocalconfig -e zmstat_df_excludes='/dev/loop0:/dev/loop1:/dev/loop2:/dev/loop3:/dev/loop4:/dev/loop5:/dev /loopX' как пользователь Zimbra:
6) Нажимаем '''"Сохранить настройки" --> "Перезапустить Xray"'''
<pre>
su - zimbra
zmlocalconfig -e zmstat_df_excludes=’/dev/loop0:/dev/loop1:/dev/loop2:/dev/loop3:/dev/loop4:/dev/loop5’
zmstatctl restart
</pre>
That’s all, these devices won’t bother you no more.


==== Как удалить DNSCACHE из сервисов Zimbra. ====
Все, Трафик идет последовательно через 2 сервера. На выходе мы видим IP последнего сервера.
<pre>
su - zimbra
zmcontrol status
zmprov ms `zmhostname` -zimbraServiceEnabled dnscache
zmprov ms `zmhostname` -zimbraServiceInstalled dnscache
zmcontrol status
exit
</pre>

Версия от 21:33, 20 марта 2024

После установки на сервер Debian 12 (Minimal) (x86_64) 2Gb RAM, 1 CPU, 20Gb SSD, приступаем к подготовке сервера.

Выбор провайдера:

https://hostkey.ru/vps/#preconfigured -300р самый простой VPS/VDS сервер.

https://ishosting.com/ru/vps/nl -5$ самый простой VPS/VDS сервер.

3X-UI. Основные возможности

Шифрование трафика: VLESS, Shadowsocks-2022 и XRay (XTLS) позволяют шифровать пользовательский трафик, что делает его невозможным для чтения или мониторинга со стороны провайдера Интернета или других третьих лиц.

Многофакторная аутентификация: поддержка многофакторной аутентификации повышает уровень безопасности и защищает пользовательские данные от несанкционированного доступа.

Гибкие настройки: возможность настраивать параметры соединения, такие как тип шифрования, порты и протоколы, что обеспечивает гибкость в настройке соединения и удобство использования.

Оптимизация скорости: оптимизация для быстрого соединения по сети. Они могут использовать различные технологии, такие как TCP Fast Open и Congestion Control, что позволяет ускорить передачу данных и улучшить качество соединения.

Поддержка различных операционных систем: Windows, MacOS, Linux, Android и iOS. Это обеспечивает универсальность и доступность продукта для пользователей на любой платформе.

Открытый исходный код: предоставляет возможность разработчикам изучить код и внести свои изменения, что может помочь улучшить продукт и его функциональность.

Надежность и стабильность: VLESS, Shadowsocks-2022 и XRay (XTLS) являются надежными и стабильными протоколами. Они предоставляют высокую скорость и стабильность соединения, а также защиту пользовательских данных.

Установка

Официальный репозиторий 3X-UI: https://github.com/MHSanaei/3x-ui

Официальный репозиторий форка X-UI: https://github.com/alireza0/x-ui

Итак, дано: VPS с IPv4 (неплохо бы иметь еще IPv6, но не обязательно) и Debian либо Ubuntu Linux (на других дистрибутивах суть будет примерно та же самая). И установленные Docker и docker-compose (если вдруг нет - следуйте инструкциям для вашего дистрибутива - https://docs.docker.com/engine/install/ , у меня без проблем установилось простым "apt install docker.io docker-compose"). Ну и git в придачу.

Задаем права пользователю Debian:

su
apt install sudo
su - root
adduser username sudo
reboot

* где username имя пользователя под которым зашли в систему.

sudo apt-get update
sudo apt-get upgrade

Устанавливаем Docker. на Debian 12

# Add Docker's official GPG key:

sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
# Add the repository to Apt sources:

echo \
  "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
  "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo apt install docker.io docker-compose

или

Устанавливаем Docker. на Debian 11

apt-get update -y

Когда вы закончите, установите другие необходимые зависимости, используя следующую команду:

apt-get install apt-transport-https software-properties-common ca-certificates curl gnupg lsb-release -y

Установить Докер

По умолчанию последняя версия Docker не включена в официальный репозиторий Debian 11. Поэтому вам нужно будет добавить репозиторий Docker CE в APT. Вы можете добавить его с помощью следующей команды:

curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"

После добавления репозитория Docker обновите репозиторий и установите Docker CE с помощью следующей команды:

apt-get update -y
apt-get install docker-ce docker-ce-cli -y

После установки проверьте версию Docker CE с помощью следующей команды:

docker version

Вы должны получить следующий результат:

Client: Docker Engine - Community
 Version:           20.10.8
 API version:       1.41
 Go version:        go1.16.6
 Git commit:        3967b7d
 Built:             Fri Jul 30 19:54:22 2021
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.8
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.16.6
  Git commit:       75249d8
  Built:            Fri Jul 30 19:52:31 2021
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.4.9
  GitCommit:        e25210fe30a0a703442421b0f60afac609f950a3
 runc:
  Version:          1.0.1
  GitCommit:        v1.0.1-0-g4144b63
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

Управление службами Docker

Вы можете легко управлять службой Docker с помощью утилиты systemd.

Чтобы запустить службу Docker, выполните следующую команду:

sudo systemctl start docker

Чтобы перезапустить службу Docker, выполните следующую команду:

sudo systemctl restart docker

Чтобы остановить службу Docker, выполните следующую команду:

sudo systemctl stop docker

Чтобы служба Docker запускалась при перезагрузке системы, выполните следующую команду:

sudo systemctl enable docker

Чтобы проверить статус Docker, выполните следующую команду:

sudo systemctl status docker

Вы должны увидеть статус Docker в следующем выводе:

? docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2021-09-10 07:19:35 UTC; 27s ago
TriggeredBy: ? docker.socket
       Docs: https://docs.docker.com
   Main PID: 29018 (dockerd)
      Tasks: 7
     Memory: 32.6M
        CPU: 407ms
     CGroup: /system.slice/docker.service
             ??29018 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

Sep 10 07:19:34 debian11 dockerd[29018]: time="2021-09-10T07:19:34.809035575Z" level=info msg="scheme \"unix\" not registered, fallback to def>
Sep 10 07:19:34 debian11 dockerd[29018]: time="2021-09-10T07:19:34.809219999Z" level=info msg="ccResolverWrapper: sending update to cc: {[{uni>
Sep 10 07:19:34 debian11 dockerd[29018]: time="2021-09-10T07:19:34.809410545Z" level=info msg="ClientConn switching balancer to \"pick_first\">
Sep 10 07:19:34 debian11 dockerd[29018]: time="2021-09-10T07:19:34.897972507Z" level=info msg="Loading containers: start."
Sep 10 07:19:35 debian11 dockerd[29018]: time="2021-09-10T07:19:35.186940748Z" level=info msg="Default bridge (docker0) is assigned with an IP>
Sep 10 07:19:35 debian11 dockerd[29018]: time="2021-09-10T07:19:35.298681937Z" level=info msg="Loading containers: done."
Sep 10 07:19:35 debian11 dockerd[29018]: time="2021-09-10T07:19:35.356364773Z" level=info msg="Docker daemon" commit=75249d8 graphdriver(s)=ov>
Sep 10 07:19:35 debian11 dockerd[29018]: time="2021-09-10T07:19:35.357524464Z" level=info msg="Daemon has completed initialization"
Sep 10 07:19:35 debian11 systemd[1]: Started Docker Application Container Engine.
Sep 10 07:19:35 debian11 dockerd[29018]: time="2021-09-10T07:19:35.401626151Z" level=info msg="API listen on /run/docker.so

Установить Docker Compose В Debian 11

Первое, что нужно сделать, это обновить систему. Выполните следующую команду:

sudo apt update && sudo apt upgrade -y

Вы можете скачать текущую стабильную версию Docker Compose, выполнив следующую команду:

sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

Чтобы сделать двоичный файл исполняемым, предоставьте следующие разрешения:

sudo chmod +x /usr/local/bin/docker-compose

В случае сбоя установки вам, возможно, придется создать символическую ссылку между «/usr/bin» и любой другой папкой. Это можно сделать с помощью следующей команды.

sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

Теперь пришло время протестировать установку. Для подтверждения вывода используйте следующую команду:

docker-compose --version

Установка самой программы 3X-UI

Сначала клонируем исходники. Лучше всего использовать последнюю стабильную версию, можно проверить в "Releases" на гитхабе.

Для 3X-UI:

git clone https://github.com/MHSanaei/3x-ui.git
cd 3x-ui

или

Для X-UI:

git clone https://github.com/alireza0/x-ui.git
cd x-ui

Запускаем docker-compose:

sudo docker-compose up -d

Готово! Панель установлена и работает.

Для 3X-UI идем браузером по адресу http://yourserverip:2053/panel/, где yourserverip - IP-адрес вашего сервера или доменное имя, если оно у вас есть и настроено (обратите внимание, протокол http://, а не https://). Для X-UI нужно сначала посмотреть с помощью команды "docker logs x-ui", на каком именно порту запустилась панель.

Логинимся под стандартными реквизитами admin / admin и видим нашу прекрасную панель управления:

Создание протоколов в графической панели 3X-UI

Чтобы войти в веб версию панели, в браузере идём по адресу:

http://xxx.xxx.xxx.xxx:PORT/panel/, где xxx.xxx.xxx.xxx — IP-адрес вашего сервера, а PORT - номер вашего порта. В моём случае это порт 5580.

Логинимся и видим вот такую красивую панель управления 3X-UI

Переходим в "Settings" (настройки) и там:

Изменить порт на котором работает панель со стандартного 2053 на какой-нибудь другой (лучше всего где-нибудь в верхнем конце диапазона, до 65235);

Изменить корневой путь URL-адреса панели с / на что-то типа /mysecretpanelroot/;

При желании переключить язык на русский (но имейте в виду, в русском переводе есть некоторые неточности сбивающие с толку);

На второй вкладке "Настройки безопасности" изменить стандартный админский пароль на свой;

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

Создаем подключения

Идем в раздел меню Inbounds (в русском переводе он почему-то называется "Пользователи", это неправильно и сбивает с толку). Нажимаем "Add Inbound" ("Добавить пользователя"):

Появляется милое окошко. Сначала добавим возможность подключаться через Shadowsocks-2022.

"Remark" (Примечание) - ввести что угодно, это просто человекочитаемое название;

"Протокол" выбираем shadowsocks;

"Listening IP" (в русском переводе называется "Порт IP", и это тоже неправильно и запутывает) можно оставить пустым, тогда сервер будет слушать на всех IP-адресах, либо можно явно указать требуемый;

"Порт" - панель выберет рандомный.

Далее настраиваем пользователя (в момент создания inbound'а создается один, других при желании можно добавить позже):

Поле "Email" на самом деле не обязательно должно содержать емайл, может быть любой текст (имя пользователя) - панель генерирует рандомный набор символов, если вы хотите создавать несколько разных пользователей (например, раздать аккаунты друзьям, смотреть кто сколько накачал и при желании блокировать доступ), то лучше вбить сюда что-то человекочитаемое и понятное;

"Subscription" - пока что можно вбить тот же самый юзернейм (о подписках я расскажу чуть позже).

Дальше снова идут настройки протокола:

"Шифрование" - выбираем что-нибудь что начинается с "2022", вариант по умолчанию вполне неплох;

"Пароль" (ключ) панель сгенерирует автоматически с правильной длиной для выбранного метода шифрования.

Нажимаем "Создать" и на этом настройка для Shadowsocks закончена, им уже можно пользоваться.

Теперь переходим к настройке VLESS с XTLS-Reality.

Тут все будет чуточку сложнее, но в целом так же просто.

"Remark" (Примечание) - любое название;

"Протокол" - "vless",

"Listening IP" ("Порт IP", который на самом деле не порт, а адрес) - оставляем пустым, либо задаем вручную если надо;

"Порт" - вместо рандомного ставим 443;

Далее переходим к настройкам клиента.

"Email" - как в и в прошлом пункте, лучше указать что-то человекочитаемое и понятное. Важно: пользователи разных подключений не могут иметь один и тот же емайл (например, наш новый VLESS и старый Shadowsocks созданный в предыдущем пункте), поэтому можно добавить какой-нибудь префикс (например user1vl) для избежания конфликтов.

"Subscription" - тут наоборот, лучше будет если текст в этом поле будет совпадать с тем, что вы задали для Shadowsocks (подробности ниже). Внимание: в отличие от 3X-UI, в X-UI поле Subscription по умолчанию не отображается, нужно сначала активировать функционал подписок в настройках панели.

"Flow" - надо выбрать "xtls-rprx-vision". Обратите внимание, поле Flow (см. скриншот) появится только после того, как чуть ниже вы поставите галочку на пункте "Reality". То есть лучше всего настривать так: сначала ставите галочку Reality, а потом заполняете поля с настройками пользователя.

Дальше у нас идут настройки транспорта:

"Reality" - как уже сказано выше, должно быть активно;

"XTLS" - наоборот, должно быть неактивно (это немного запутывает, не смотря на то, что Reality тоже относится к XTLS, здесь под XTLS подразумеваются только устаревшие версии протокола, и галочки "XTLS" и "Reality" в панели являются взаимоисключающими);

"uTLS" - по умолчанию "firefox", я обычно выбираю "chrome", по факту особо без разницы (главное чтобы не "android", могут быть проблемы с клиентами);

"Домен" - на самом деле это не домен, а адрес для подключения к вашему серверу. Можно оставить пустым, тогда панель автоматически подставит IP-адрес или домен, по которому вы обращаетесь в панели на сервере.

"ShortIds" - панель сгенерирует рандомный ID;

"Public Key", "Private Key" - можно кликнуть на "Get new keys", и панель сама сгенерирует новые для вас;

"Dest" и "Server names" - вот это самое интересное, это домен, под который вы будете маскироваться. По умолчанию панель предлагает маскировку под yahoo.com и www.yahoo.com с переадресацией на yahoo.com:443, но лучше выбрать какой-нибудь другой домен.

Sniffing, HTTP, TLS, QUIC, fakedns — оставьте включённым.

Сохраняем введенную форму, и - всё! Настройка завершена.

После этого на странице видим примерно вот это:

Если тыкнуть на кнопочку "Меню" соответствующую нужному протоколу, можно его активировать/деактивировать, сбросить счетчики трафика, добавить пользователей (в том числе сгенерировать разом N аккаунтов по шаблону), и самое главное - раскрыв (плюсиком) список пользователей, можно посмотреть настройки подключения для вбивания в клиенты для этого пользователя.

Нажав на значок QR-кода, панель покажет QR-код, который можно отсканировать камерой в мобильных клиентах (v2rayNG или Nekobox на Android, Wings X/FoXray или Shadowrocket или V2BOX на iOS).

Нажав на иконку информации (с буквой "i") можно посмотреть настройки для вбивания в десктопные клиенты Windows, Linux, MacOS, в том числе и URL, который можно скопировать и вставить.

Там же вы можете найти "subscription URL". Это - специальным образом сгенерированный список подключений для клиентов. Помните, вы указывали "Subscription" при создании пользователя? При запросе по такому subscription URL, сервер выдаст список настроек (сервера, ключи) для всех подключений с этим ID в поле subscription. Многие клиенты (включая v2rayNG, v2rayN, Nekobox, и другие) умеют автоматически либо по запросу скачивать настройки с таких URL и добавлять их к себе - таким образом, если вы добавили какие-то новые протоколы или решили поменять конфигурацию, пользователи могут легко получить новые параметры с вашего сервера.

Внимание: в отличие от 3X-UI, в X-UI поле Subscription по умолчанию не отображается и вообще функционал подписок по умолчанию отключен, его нужно активировать в настройках панели.


Если нажать на меню, то можно изменить, добавить одного или нескольких пользователей, сбросить трафик, экспортировать ключи и т. д.

Подключение клиентов

Подключение устройств на iOS (но не ниже 16 версии)

1. Скачайте приложение FoXray из AppStore по ссылке: https://apps.apple.com/ru/app/foxray/id6448898396?ref=dtf.ru

2. В графической панели 3X-UI создайте нового клиента. Для этого: нажмите на кнопку Меню в ранее созданной конфигурации, далее Добавить пользователя. В поле Email напишите название клиента, например "Мой iPhone", а в пункте Flow выберите xtls-rprx-vision.

3. Раскройте (плюсиком) список клиентов и под «Меню» рядом с только что созданным клиентом «Мой iPhone» нажмите на иконку QR-кода:

4. Запустите приложение FoXray и в левом верхнем углу нажмите значок сканирования QR-кода и отсканируйте его с экрана компьютера.

5. Всё, профиль добавлен! Теперь нажмите на кнопку «Play», далее разрешите добавление конфигурации VPN, введите пароль и можете пользоваться VPN соединением.

Подключение устройств на Windows

1. Скачайте архив с программой Invisible Man XRay c GitHub и распакуйте его (https://github.com/InvisibleManVPN/InvisibleMan-XRayClient)

2. В графической панели 3X-UI создайте нового клиента. Для этого: нажмите на кнопку Меню в ранее созданной конфигурации, далее Добавить пользователя. В поле Email напишите название клиента, например "Мой Windows", а в пункте Flow выберите xtls-rprx-vision.

3. Раскройте (плюсиком) список клиентов и под «Меню", рядом с только что созданным клиентом "Мой Windows» и нажмите на иконку Информация:

4. Скопируйте ссылку для подключение под надписью URL, нажав на кнопку копирования, как на скриншоте ниже:

5. Отправьте любым удобным способом данную ссылку на ваш компьютер, и там также её скопируйте.

6. Запустите программу Invisible Man XRay и перейдите в Manage server configuration.

7. Нажмите на кнопку "плюс" в правом нижнем углу окна.

8. Выберите Import from link и вставьте вашу ссылку, которую вы ранее скопировали в поле, как на скрине:

9. Если вы всё правильно сделали, должна добавиться новая конфигурция. Закройте этот менеджер и нажмите кнопку Run.

10. Готово! VPN на компьютере под управлением операционной системы Windows мы тоже настроили без проблем.

Пропускаем трафик через Tor

Torghost

Начала получим репозиторий из гитхаба (кстати, сначала нужно установить git):

sudo apt update && sudo apt upgrade
git clone https://github.com/SusmithKrishnan/torghost.git

После этого заходим в папку torghost (она появится после клонирования репозитория) и делаем файл build.sh исполняемым:

cd torghost 
sudo chmod +x build.sh

Запускаем установку:

sudo ./build.sh

Установщик сам подтянет все зависимости и поставит Тор. На этом установка закончена!

Далее ставим обновление:

pip3 install -r requirements.txt
wget -c https://github.com/SusmithKrishnan/torghost/releases/download/v3.0.2/torghost-3.0.2-amd64.deb
sudo dpkg -i torghost-*-amd64.deb

Открываем файл torghost.py на редактирование и комментируем 15 -ю строку.

nano torghost.py

'''
from packaging import version
'''

Запускаем утилиту torghost, ip адрес будет меняться автоматически через каждые 10 минут:

sudo python3 torghost.py -s

Варианты использования:

sudo python3 torghost.py -x (to stop Torghost - the tool will go back to you Ip ADDRESS from your ISP)

sudo python3 torghost.py -u (to update the tool - this is not required to do it every day)

sudo python3 torghost.py -r (to switch the IP Address - you will notice that the IP address that Torghost assigned you at the beginning will change again)

sudo python3 torghost.py -h (to open the help menu)

Скрипт чтобы IP адреса менялись через каждую минуту, если нужно:

#!/bin/bash
a=1
x=60
while [[ $a -gt 0 ]]
do
python3 torghost.py -s
sleep $x
done

Дополнительная информация из другого источника

Команда для запуска установки панели 3X-UI:

https://github.com/MHSanaei/3x-ui?ysclid=lstfiw45v6910325792


Скачать NekoBox:

https://github.com/MatsuriDayo/NekoBoxForAndroid/releases


Скачать V2RayN:

https://github.com/2dust/v2rayN/releases


Настройка ssh-ключей:

https://simplelinux.ru/nastrojka-podklyucheniya-k-serveru-po-ssh-klyucham/

Создания туннеля через несколько VPN серверов.

Для того чтобы пропустить наш трафик например через 2 сервера делаем следующее:

1) Копируемым ссылку на подключения например Shadowsocks на конечном сервере.

ss://MjAyMi1GFrZTMtYWVzLTI1Ni1nY206UlA0TTJWbHVudHlpUFdiWEdxdk1ieGd4SVNVOEZnaXUUxDN3ladU82bz06T0NJYkl2c1ZxZ2oyTmw5QVZG9KZUtMTjBzb25TSGprZDU90akxrOD0@135.120.45.13:22467?type=tcp#SS-Vasya_ss

2) Заходим на первый наш сервер, В правом меню нажимаем на "Настройка Xray" --> "Исходящие" --> "Добавить исходящий" --> JSON

И в поле "Link" вставляем нашу ссылку.

3) Нажимаем "Сохранить настройки" --> "Перезапустить Xray"

4) Далее опять в правом меню нажимаем на "Настройка Xray" --> "Правила маршрутизации" --> "Добавить правило"

5) Выбираем в поле "Network" --> "TCP,UDP", и в поле "Outbound" --> наш второй сервер.

6) Нажимаем "Сохранить настройки" --> "Перезапустить Xray"

Все, Трафик идет последовательно через 2 сервера. На выходе мы видим IP последнего сервера.