LINUX.ORG.RU

Сообщения Riniko

 

Правильная настройка well-known для matrix-synapse

Форум — Admin

Настраиваю well-known для example.com, размещая сам matrix-synapse на subdomain.example.com. Суть проблемы: не могу написать кому-то на другом сервере, как и мне с другого сервера не могут написать и даже найти мой аккаунт. В свой аккаунт на сервере я могу войти. Порты федерации не закрыты.

Прилагаю конфиги:

example.com:

server {
    listen 80;
        listen [::]:80;
    server_name example.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    listen [::]:443 ssl;
    http2 on;
    server_name example.com;
   # root /var/www/matrix/html;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

    location /.well-known/matrix/server {
        add_header Access-Control-Allow-Origin *;
        default_type application/json;
       # try_files /var/www/matrix/html/.well-known/matrix/server =404;
        return 200 '{"m.server": "subdomain.example.com:8448"}';
    }

    location /.well-known/matrix/client {
        add_header Access-Control-Allow-Origin *;
        default_type application/json;
       # try_files /var/www/matrix/html/.well-known/matrix/client =404;
        return 200 '{"m.homeserver": {"base_url": "https://subdomain.example.com"}}';
    }
}

subdomain.example.com

server {
    listen 80;
        listen [::]:80;
    server_name subdomain.example.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    listen [::]:443 ssl;
    http2 on;
    server_name subdomain.example.com;

    ssl_certificate /etc/letsencrypt/live/subdomain.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/subdomain.example.com/privkey.pem;

    location ~ ^(/|/_matrix|/_synapse/client) {
        proxy_pass http://localhost:8008;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header Host $host;
        client_max_body_size 100M;
        proxy_http_version 1.1;
    }
}

server {
    listen 8448 ssl default_server;
    listen [::]:8448 ssl default_server;
    http2 on;
    server_name subdomain.example.com;

    ssl_certificate /etc/letsencrypt/live/subdomain.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/subdomain.example.com/privkey.pem;
    location / {
        proxy_pass http://localhost:8008;
        proxy_set_header X-Forwarded-For $remote_addr;
    }
}

При запросе: curl -I https://example.com/.well-known/matrix/server:

HTTP/2 200
server: nginx
date: Wed, 10 Dec 2025 15:37:21 GMT
content-type: application/json
content-length: 39
access-control-allow-origin: *

Подскажите пожалуйста, что я делаю не правильно? Указывал и файлами в каталоге, но они при curl выдавали content-type: text/html а не json. Файлы без расширений, само собой были. Не то что бы это сильно страшно, я могу использовать и subdomain.example.com, но все же если возможность есть, то почему нет. По SRV записям, насколько я понял, их не все понимают и лучше указывать файлами well-known

 , ,

Riniko
()

Подружить Postfix с SMTP SSL

Форум — Admin

Предыстория такова: на Postfix версии 3.10.5, с некоторой периодичностью, 1-2 раза из 12, при соединении через Thunderbird, с использованием Tor proxy, в SMTP отваливается SSL/TLS и предлагается подключиться без шифрования. Если этого не заметить, авторизоваться и попытаться отправить сообщение, то получим ошибку: Must issue a STARTTLS command first, STARTTLS не предлагается никогда. Либо SSL/TLS либо plaintext. Сервер в связке Postfix+Dovecot.

В наличии есть сервер с Postfix 3.7.11, в нем предлагается либо SSL/TLS либо STARTTLS и никогда plaintext.

Стандартный конфиг Postfix main.cf, параметры отвечающие за TLS:

# TLS parameters
smtpd_tls_cert_file=/etc/letsencrypt/live/mail.YOURDOMAIN.COM/fullchain.pem
smtpd_tls_key_file=/etc/letsencrypt/live/mail.YOURDOMAIN.COM/privkey.pem
smtpd_tls_auth_only = yes
smtp_tls_security_level = may
smtpd_tls_security_level = may
smtpd_sasl_security_options = noanonymous, noplaintext
smtpd_sasl_tls_security_options = noanonymous

# Authentication
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes

Очевидно не сработал. Что я пробовал и добавлял:

smtpd_tls_security_level = encrypt
smtp_tls_security_level = encrypt
smtp_tls_mandatory_protocols = TLSv1.2, TLSv1.3, !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtpd_tls_mandatory_protocols = TLSv1.2, TLSv1.3, !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtpd_use_tls = yes
smtpd_tls_mandatory_protocols = >=TLSv1.2
smtpd_tls_protocols = >=TLSv1.2
smtp_use_tls = yes
smtp_tls_security_level = may
smtpd_tls_security_level = encrypt
smtp_tls_note_starttls_offer = yes
tls_random_source = dev:/dev/urandom

smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3
smtpd_tls_protocols = !SSLv2, !SSLv3
smtp_tls_mandatory_protocols = !SSLv2, !SSLv3
smtp_tls_protocols = !SSLv2, !SSLv3
smtp_tls_exclude_ciphers = EXP, MEDIUM, LOW, DES, 3DES, SSLv2
smtpd_tls_exclude_ciphers = EXP, MEDIUM, LOW, DES, 3DES, SSLv2
tls_high_cipherlist = kEECDH:+kEECDH+SHA:kEDH:+kEDH+SHA:+kEDH+CAMELLIA:kECDH:+kECDH+SHA:kRSA:+kRSA+SHA:+kRSA+CAMELLIA:!aNULL:!eNULL:!SSLv2:!RC4:!MD5:!DES:!EXP:!SEED:!IDEA:!3DES
tls_medium_cipherlist = kEECDH:+kEECDH+SHA:kEDH:+kEDH+SHA:+kEDH+CAMELLIA:kECDH:+kECDH+SHA:kRSA:+kRSA+SHA:+kRSA+CAMELLIA:!aNULL:!eNULL:!SSLv2:!MD5:!DES:!EXP:!SEED:!IDEA:!3DES
smtp_tls_ciphers = high
smtpd_tls_ciphers = high
smtp_tls_exclude_ciphers = EXP, MEDIUM, LOW, DES, 3DES, SSLv2
smtpd_tls_exclude_ciphers = EXP, MEDIUM, LOW, DES, 3DES, SSLv2

Параметры master.cf:

smtp      inet  n       -       y       -       -       smtpd
#smtp      inet  n       -       y       -       1       postscreen
#smtpd     pass  -       -       y       -       -       smtpd
#dnsblog   unix  -       -       y       -       0       dnsblog
#tlsproxy  unix  -       -       y       -       0       tlsproxy
# Choose one: enable submission for loopback clients only, or for any client.
#127.0.0.1:submission inet  n -  y       -       -       smtpd
submission inet n       -       y      -       -       smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_sasl_type=dovecot
  -o smtpd_sasl_path=private/auth
  -o smtpd_reject_unlisted_recipient=no
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
  -o milter_macro_daemon_name=ORIGINATING
smtps     inet  n       -       -       -       -       smtpd
  -o syslog_name=postfix/smtps
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_sasl_type=dovecot
  -o smtpd_sasl_path=private/auth
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
  -o milter_macro_daemon_name=ORIGINATING

Настраивал и Dovecot, стандартный конфиг 10-ssl.conf:

ssl = yes
ssl_server_cert_file = /etc/letsencrypt/live/mail.YOURDOMAIN.COM/fullchain.pem
ssl_server_key_file = /etc/letsencrypt/live/mail.YOURDOMAIN.COM/privkey.pem
ssl_server_dh_file = /etc/dovecot/dh.pem
ssl_cipher_list = EECDH+AES:EDH+AES+aRSA
ssl_server_prefer_ciphers = server

Менял на:

ssl_cipher_suites = TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256
ssl_cipher_list = EECDH+AES:EDH+AES

Подскажите пожалуйста, что я делаю не правильно и как сделать правильно?

 , , , ,

Riniko
()

Вопрос по отличиям настройки Dovecot 2.4 от 2.3

Форум — Admin

При настройке Dovecot 2.4 в Debian 13, столкнулся с невозможностью войти в аккаунт, при использовании классической связки MariaDB+Postfix+Dovecot, вход через Thunderbird. В логах следующее:

Oct 28 11:39:08 MAIL.MYDOMAIN.COM systemd[1]: Starting dovecot.service - Dovecot IMAP/POP3 email server...
Oct 28 11:39:08 MAIL.MYDOMAIN.COM dovecot[20423]: master: Dovecot v2.4.1-4 (7d8c0e5759) starting up for imap, pop3, lmtp (core dumps disabled)
Oct 28 11:39:08 MAIL.MYDOMAIN.COM systemd[1]: Started dovecot.service - Dovecot IMAP/POP3 email server.
Oct 28 11:39:51 MAIL.MYDOMAIN.COM dovecot[20426]: imap-login: Login aborted: Connection closed: SSL_accept() failed: error:0A000412:SSL routines::ssl/tls alert bad certificate: SSL alert number 42 (disconnected during TLS handshake) (tls_handshake_not_finished): user=<>, rip=87.120.222.33, lip=MY_VPS_IP, TLS handshaking: SSL_accept() failed: error:0A000412:SSL routines::ssl/tls alert bad certificate: SSL alert number 42, session=<vzBEeTZC6uhXeN4h>
Oct 28 11:39:51 MAIL.MYDOMAIN.COM dovecot[20426]: imap-login: Login aborted: Logged out (no auth attempts in 1 secs) (no_auth_attempts): user=<>, rip=78.159.131.103, lip=MY_VPS_IP, TLS, session=<x99CeTZCIONOn4Nn>
Oct 28 11:39:54 MAIL.MYDOMAIN.COM dovecot[20426]: pop3-login: Login aborted: Connection closed: SSL_accept() failed: error:0A000412:SSL routines::ssl/tls alert bad certificate: SSL alert number 42 (disconnected during TLS handshake) (tls_handshake_not_finished): user=<>, rip=94.156.152.8, lip=MY_VPS_IP, TLS handshaking: SSL_accept() failed: error:0A000412:SSL routines::ssl/tls alert bad certificate: SSL alert number 42, session=<IBFYeTZCurRenJgI>
Oct 28 11:39:57 MAIL.MYDOMAIN.COM dovecot[20426]: pop3-login: Login aborted: Logged out (no auth attempts in 6 secs) (no_auth_attempts): user=<>, rip=165.73.242.163, lip=MY_VPS_IP, TLS, session=<oe9ZeTZC7r+lSfKj>
Oct 28 11:40:09 MAIL.MYDOMAIN.COM unix_chkpwd[20448]: check pass; user unknown
Oct 28 11:40:09 MAIL.MYDOMAIN.COM auth[20446]: pam_unix(dovecot:auth): check pass; user unknown
Oct 28 11:40:09 MAIL.MYDOMAIN.COM auth[20446]: pam_unix(dovecot:auth): authentication failure; logname= uid=5000 euid=5000 tty=dovecot ruser=riniko rhost=93.94.51.243
Oct 28 11:40:18 MAIL.MYDOMAIN.COM auth[20446]: pam_unix(dovecot:auth): check pass; user unknown
Oct 28 11:40:18 MAIL.MYDOMAIN.COM auth[20446]: pam_unix(dovecot:auth): authentication failure; logname= uid=5000 euid=5000 tty=dovecot ruser=riniko rhost=93.94.51.243
Oct 28 11:40:26 MAIL.MYDOMAIN.COM auth[20446]: pam_unix(dovecot:auth): check pass; user unknown
Oct 28 11:40:26 MAIL.MYDOMAIN.COM auth[20446]: pam_unix(dovecot:auth): authentication failure; logname= uid=5000 euid=5000 tty=dovecot ruser=riniko rhost=93.94.51.243
Oct 28 11:40:30 MAIL.MYDOMAIN.COM dovecot[20426]: imap-login: Login aborted: Connection closed (auth failed, 3 attempts in 21 secs) (auth_failed): user=<riniko>, method=PLAIN, rip=93.94.51.243, lip=MY_VPS_IP, TLS, session=<tzhjejZCishdXjPz>
Oct 28 11:40:30 MAIL.MYDOMAIN.COM auth[20446]: pam_unix(dovecot:auth): check pass; user unknown
Oct 28 11:40:30 MAIL.MYDOMAIN.COM auth[20446]: pam_unix(dovecot:auth): authentication failure; logname= uid=5000 euid=5000 tty=dovecot ruser=riniko@MYDOMAIN.COM rhost=93.94.51.243
Oct 28 11:40:38 MAIL.MYDOMAIN.COM auth[20446]: pam_unix(dovecot:auth): check pass; user unknown
Oct 28 11:40:38 MAIL.MYDOMAIN.COM auth[20446]: pam_unix(dovecot:auth): authentication failure; logname= uid=5000 euid=5000 tty=dovecot ruser=riniko@MYDOMAIN.COM rhost=93.94.51.243

По шагам распишу что делаю. Во первых, сертификаты для MAIL.MYDOMAIN.COM существуют. В файле /etc/postfix/main.cf они указаны:

smtpd_tls_cert_file=/etc/letsencrypt/live/MAIL.MYDOMAIN.COM/fullchain.pem
smtpd_tls_key_file=/etc/letsencrypt/live/MAIL.MYDOMAIN.COM/privkey.pem
smtpd_use_tls=yes
smtpd_tls_auth_only = yes
smtp_tls_security_level = may
smtpd_tls_security_level = may
smtpd_sasl_security_options = noanonymous, noplaintext
smtpd_sasl_tls_security_options = noanonymous

Теперь, изменения которые были внесены в Dovecot в версии 2.4. Файл /etc/dovecot/conf.d/10-mail.conf:

mail_driver = maildir
mail_home = /var/mail/vhost/%{user|domain}/%{user|username}
mail_path = %{home}/Maildir
mail_inbox_path = /var/mail/vhost/%{user}

В версии 2.3 было:

mail_location = maildir:/var/mail/vhosts/%d/%n/

Параметры аналогичные в обоих конфигурациях:

mail_privileged_group = mail
namespace inbox {
  inbox = yes
  mailbox Trash {
    auto = subscribe
    special_use = \Trash
  }
  mailbox Sent {
    auto = subscribe
    special_use = \Sent
  }
  mailbox Drafts {
    auto = subscribe
    special_use = \Drafts
  }
  mailbox Spam {
    auto = subscribe
    special_use = \Junk
  }
  mailbox Archive {
    auto = subscribe
    special_use = \Archive
  }
}

Каталог /var/mail/vhosts/DOMAINNAME.COM создан. Добавлены права:

groupadd -g 5000 vmail
useradd -g vmail -u 5000 vmail -d /var/mail
chown -R vmail:vmail /var/mail

В файле /etc/dovecot/conf.d/10-auth.conf

В версии 2.4:

auth_allow_cleartext = no
auth_mechanisms = plain login
!include auth-system.conf.ext
!include auth-sql.conf.ext

В версии 2.3:

disable_plaintext_auth = yes
auth_mechanisms = plain login
!include auth-sql.conf.ext

В версии 2.3, был файл /etc/dovecot/dovecot-sql.conf.ext

В котором было следующее:

driver = mysql
connect = host=127.0.0.1 dbname=mailserver user=mailuser password=PASSWORD
default_pass_scheme = SHA512-CRYPT
password_query = SELECT email as user, password FROM virtual_users WHERE email='%u';

А в файле /etc/dovecot/conf.d/auth-sql.conf.ext версии 2.3 было:

passdb {
  driver = sql
  args = /etc/dovecot/dovecot-sql.conf.ext
}
userdb {
  driver = static
  args = uid=vmail gid=vmail home=/var/mail/vhosts/%d/%n
}

В версии 2.4, содержимое файла /etc/dovecot/dovecot-sql.conf.ext перенёс в /etc/dovecot/conf.d/auth-sql.conf.ext:

sql_driver = mysql

mysql 127.0.0.1 {
user = mailuser
password = PASSWORD
dbname = mailserver
}

passdb sql {
query = SELECT password, email AS user  FROM virtual_users WHERE email='%{user}'
}

В файле /etc/dovecot/conf.d/10-master.conf в версии 2.3:

service imap-login {
  inet_listener imap {
    port = 0
  }
  inet_listener imaps {
    port = 993
    ssl = yes
  }
}
service auth {
  unix_listener auth-userdb {
    mode = 0600
    user = vmail
    #group =
  }

  unix_listener /var/spool/postfix/private/auth {
    mode = 0660
    user = postfix
    group = postfix
  }
  user = dovecot
}
service auth-worker {
  user = vmail
}

В версии 2.4 аналогично, но небольшие изменения тут:

service submission-login {
  inet_listener submission {
    #port = 587
  }
  inet_listener submissions {
    #port = 465
  }
}

В файле /etc/dovecot/conf.d/10-ssl.conf версии 2.4 указал:

ssl = required
ssl_server_cert_file = /etc/letsencrypt/live/MAIL.MYDOMAIN.COM/fullchain.pem
ssl_server_key_file = /etc/letsencrypt/live/MAIL.MYDOMAIN.COM/privkey.pem
ssl_min_protocol = TLSv1.2
ssl_server_dh_file = /etc/dovecot/dh.pem

В версии 2.3:

ssl = required
ssl_cert = </etc/letsencrypt/live/MAIL.MYDOMAIN.COM/fullchain.pem
ssl_key = </etc/letsencrypt/live/MAIL.MYDOMAIN.COM/privkey.pem
ssl_dh = </usr/share/dovecot/dh.pem
ssl_client_ca_dir = /etc/ssl/certs
ssl_min_protocol = TLSv1.2
ssl_prefer_server_ciphers = yes

Ключ DH в /etc/dovecot/dh.pem создан.

Подскажите пожалуйста, что я делаю не правильно?

 , ,

Riniko
()

Вопрос к тем, кто обновлялся с Debian 12.9 на Debian 13.1

Форум — Desktop

Это шизовопрос, но тут все свои.

Суть вот в чем: когда обновлялся, мне какая-то программа, с графическим интерфейсом, задавала вопрос про добавление ключей и в целом работу с ключами. Я не стал добавлять туда OpenPGP/GPG ключ, а тыкнул настройки по умолчанию. Обновлялся месяц назад примерно.

Теперь, хотел настроить шифрование Gajim, не OMEMO а именно OpenPGP. А настроить это шифрование не получается. Вероятно, Gajim берет ключ из локальных настроек юзера. А за эти настройки, вероятно, как раз и отвечала та графическая программа. Это была не Kleopatra (в ней я добавил ключ, с JID нужного юзера, но Gajim ключ не подтянул).

Вопрос: кто-то встречался с таким при обновлении? Связано ли это с добавление OpenPGP в Gajim? Воспроизвести запуск этой программы на чистой установке Debian 13 не вышло.

 , ,

Riniko
()

Настройка c2s_direct_tls Prosody

Форум — Admin

В общем, хочу принудительно настроить соединение между сервером и клиентом сразу через direct_tls, а не как сейчас по умолчанию - start_tls. Сейчас, можно вручную настроить на клиенте, использование direct_tls. Но я хочу, что бы клиент делал это автоматически.

По конфигу дефолтному:

c2s_direct_tls_ports = { 5223 }
s2s_direct_tls_ports = { 5270 }
c2s_require_encryption = true
s2s_require_encryption = true

Сертификаты указаны верно, модуль tls активен.

Добавляю в конфиг:

c2s_ports = {}
ssl = {
        protocol = "tlsv1_2+"
        key = "/etc/prosody/certs/mycooldomain.key"
        certificate = "/etc/prosody/mycooldomain.crt"
}

Добавлял даже в параметры виртуального хоста allow_unencrypted_plain_ayth = false

Получаю в логах и не могу подключиться

portmanager     info    Deactivated service 'c2s'
portmanager     info    Deactivated service 'c2s_direct_tls'
portmanager     info    Deactivated service 'legacy_ssl'
c2s560f77a28170 info    Client disconnected: connection closed
c2s560f77a28c30 info    Client disconnected: connection closed
portmanager     info    Deactivated service 's2s'
portmanager     info    Deactivated service 's2s_direct_tls'
s2sout560f77a1d110      info    Outgoing s2s stream mycooldomain->jabb3r.de closed: Received SIGTERM
mod_s2s info    Waiting for sessions to close

SRV запись поменял приоритет у _xmpps-client._tcp до 1. У _xmpp-client._tcp приоритет 20. Но пока без изменений.

Вопрос, что я делаю не правильно? Или все так и должно работать, а указывать принудительно direct_tls нужно в самом клиенте? Или клиент сам подтянет когда обновится DNS зона и будет актуальный приоритет подключения по SRV записи?

 ,

Riniko
()

Установка matrix-synapse в Devuan итерация 2

Форум — Desktop

Устанавливаю в Devuan matrix-synapse командой apt install -t ceres matrix-synapse получаю ошибку:

Preconfiguring packages ...
(Reading database ... 51474 files and directories currently installed.)
Preparing to unpack .../base-files_14devuan1_amd64.deb ...


******************************************************************************
*
* The base-files package cannot be installed because
* /bin is a symbolic link and not pointing at usr/bin exactly.
*
* This is an unexpected situation. Cannot proceed with the upgrade.
*
* For more information please read https://wiki.debian.org/UsrMerge.
*
******************************************************************************


dpkg: error processing archive /var/cache/apt/archives/base-files_14devuan1_amd6                                                                                             4.deb (--unpack):
 new base-files package pre-installation script subprocess returned error exit s                                                                                             tatus 1
Errors were encountered while processing:
 /var/cache/apt/archives/base-files_14devuan1_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

Установил usrmerge, выполнил /usr/lib/usrmerge/convert-usrmerge, dpkg-reconfigure usrmerge. Сама команда usrmerge: command not found.

Удалил /bin, указал ln -s /usr/bin /bin. Выполнил apt install --reinstall base-files. Сейчас результат по каталогам такой:

lrwxrwxrwx 1 root root 8 Sep 29 21:07 /bin -> /usr/bin
lrwxrwxrwx 1 root root 7 Sep 29 19:59 /lib -> usr/lib
lrwxrwxrwx 1 root root 9 Sep 29 19:59 /lib64 -> usr/lib64
lrwxrwxrwx 1 root root 8 Sep 29 19:59 /sbin -> usr/sbin

Но matrix-synapse по прежнему не устанавливается. Что я делаю не так и как сделать правильно? Кроме того, что запихать его в докер, разбираться с докером и поиметь возможные проблемы уже с ним.

 ,

Riniko
()

Matrix-synapse на Devuan

Форум — Desktop

Установил Devuan с sysvinit, поставил через dpkg .deb пакет matrix-synapse. Нашел скрипт инициализации sysvinit для matrix-synapse, добавил по пути /etc/init.d/matrix-synapse. Дал ему права на запуск: chmod +x /etc/init.d/matrix-synapse:

#!/bin/sh
### BEGIN INIT INFO
# Provides:          matrix-synapse
# Required-Start:    $local_fs $network $remote_fs $syslog
# Required-Stop:     $local_fs $network $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: <Enter a short description of the software>
# Description:       <Enter a long description of the software>
#                    <...>
#                    <...>
### END INIT INFO

# Author: Paul "LeoNerd" Evans <paul@matrix.org>

# Do NOT "set -e"

# PATH should only include /usr/* if it runs after the mountnfs.sh script
PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="matrix-synapse"
NAME=matrix-synapse
SCRIPTNAME=/etc/init.d/$NAME
CONFIGFILE_SERVERNAME="/etc/matrix-synapse/conf.d/server_name.yaml"

PYTHON="/usr/bin/python3"
CONFIGS="--config-path /etc/matrix-synapse/homeserver.yaml --config-path /etc/matrix-synapse/conf.d/"
USER="matrix-synapse"
SHAREDIR=/var/lib/$NAME

# Exit if the package is not installed
[ -f "/etc/matrix-synapse/homeserver.yaml" ] || exit 0

# Read configuration variable file if it is present
[ -r /etc/default/$NAME ] && . /etc/default/$NAME

# Load the VERBOSE setting and other rcS variables
. /lib/init/vars.sh

# Define LSB log_* functions.
# Depend on lsb-base (>= 3.2-14) to ensure that this file is present
# and status_of_proc is working.
. /lib/lsb/init-functions

get_config_key()
{
	/usr/share/matrix-synapse/get-config-key $CONFIGS "$1" 2>/dev/null || return 2
}

#
# Function that starts the daemon/service
#
do_start()
{
	# Fail silently if server name isn’t set
	SERVER_NAME="$(get_config_key server_name)"
	if [ -z "$SERVER_NAME" ]
	then
	    log_warning_msg "Server name not set, not starting synapse."
	    return 0
	fi

	TLS_CERT_FILE="$(get_config_key tls_certificate_path)"
	if [ ! -f "$TLS_CERT_FILE" ]
	then
	    log_failure_msg "TLS certificate file $TLS_CERT_FILE not found"
	    return 2
	fi
	TLS_PRIV_FILE="$(get_config_key tls_private_key_path)"
	if [ ! -f "$TLS_PRIV_FILE" ]
	then
	    log_failure_msg "TLS private key file $TLS_PRIV_FILE not found"
	    return 2
	fi

	KEYFILE="$(get_config_key signing_key_path)"
	# Running --generate-config to create keys if any are absent.
	# Doesn't matter if not
	if [ ! -f "$KEYFILE" ]
	then
	    $PYTHON -m "synapse.app.homeserver" $CONFIGS --generate-keys || return 2
	fi
	# Make sure the key file is owned by the user running synapse
	chown $USER:nogroup $KEYFILE
	chmod 0600 $KEYFILE

	# Return
	#   0 if daemon has been started
	#   1 if daemon was already running
	#   2 if daemon could not be started
	PIDFILE=$(get_config_key pid_file)
	RETVAL=$?
	if [ "$RETVAL" != 0 ]; then
		return $RETVAL
	fi
	if [ -r "$PIDFILE" ]; then
		kill -0 $(cat $PIDFILE) 2>/dev/null && return 1
	fi

	export PYTHONPATH

	# Create the PID file so that synapse can write to it as nonroot
	touch $PIDFILE
	chown $USER:nogroup $PIDFILE
	chown $USER:nogroup $SHAREDIR/media/
	chown $USER:nogroup $SHAREDIR/uploads/

	start-stop-daemon --start --background --pidfile $PIDFILE --chuid $USER \
	  --exec $PYTHON -- -m "synapse.app.homeserver" $CONFIGS || return 2

	return 0
}

#
# Function that stops the daemon/service
#
do_stop()
{
	# Return
	#   0 if daemon has been stopped
	#   1 if daemon was already stopped
	#   2 if daemon could not be stopped
	#   other if a failure occurred
	PIDFILE=$(get_config_key pid_file)
	RETVAL=$?
	if [ "$RETVAL" != 0 ]; then
		return $RETVAL
	fi

	start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --user $USER --exec $PYTHON
	RETVAL="$?"
	[ "$RETVAL" = 2 ] && return 2

	# Many daemons don't delete their pidfiles when they exit.
	rm -f $PIDFILE
	return "$RETVAL"
}

#
# Function that sends a SIGHUP to the daemon/service
#
do_reload() {
	#
	# If the daemon can reload its configuration without
	# restarting (for example, when it is sent a SIGHUP),
	# then implement that here.
	#
	return 1
}

case "$1" in
  start)
	[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
	do_start
	case "$?" in
		0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
		2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
	esac
	;;
  stop)
	[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
	do_stop
	case "$?" in
		0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
		2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
	esac
	;;
  status)
	PIDFILE=$(get_config_key pid_file)
	RETVAL=$?
	if [ "$RETVAL" != 0 ]; then
		return $RETVAL
	fi
	status_of_proc -p "$PIDFILE" "$PYTHON" "$NAME" && exit 0 || exit $?
	;;
  #reload|force-reload)
	#
	# If do_reload() is not implemented then leave this commented out
	# and leave 'force-reload' as an alias for 'restart'.
	#
	#log_daemon_msg "Reloading $DESC" "$NAME"
	#do_reload
	#log_end_msg $?
	#;;
  restart|force-reload)
	#
	# If the "reload" option is implemented then remove the
	# 'force-reload' alias
	#
	log_daemon_msg "Restarting $DESC" "$NAME"
	do_stop
	case "$?" in
	  0|1)
		do_start
		case "$?" in
			0) log_end_msg 0 ;;
			1) log_end_msg 1 ;; # Old process is still running
			*) log_end_msg 1 ;; # Failed to start
		esac
		;;
	  *)
		# Failed to stop
		log_end_msg 1
		;;
	esac
	;;
  *)
	#echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
	echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
	exit 3
	;;
esac

: vi:noet:ts=8

Настроил сертификаты, nginx, homeserver.yaml. Указал server_name. Но при запуске service matrix-synapse start, получаю ошибку: Server name not set, not starting synapse. ... (warning).

Вопрос: что я делаю не так?

 ,

Riniko
()

Уточнение параметров в Matrix-synapse

Форум — Admin

В конфиге homeserver.yaml, есть параметры:

matrix_synapse_federation_enabled:
matrix_synapse_federation_port_enabled:

И появился вопрос: а в чем разница между true и false, если при любом из этих вариантов, клиенты с других серверов мне могут писать? Matrix-synapse за Nginx.

 

Riniko
()

Использование s2s over SSL в Prosody

Форум — Admin

Настроил конфиг так:

s2s_direct_tls_ports = { 5270 }
s2s_require_encryption = true
tls_profile = "intermediate"

И появился вопрос: А если будет какой-то модно-молодёжный сервер, который настроили на аутентификацию только по STARTTLS (порт 5269). То мне что, специально для него давать директиву: s2s_direct_tls_ports = { 5269 }? Или вероятность встретить такой сервер маленькая?

 ,

Riniko
()

Выбор HDD

Форум — Talks

Всё время пользовался дисками Seagate BarraCuda, один проработал 10 лет, пока физически сектора на краю диска не начали отваливаться. Успешно обрезались, снова отпали и ОС не грузилась. Но диск инициализировался при загрузке с LiveDVD и успешно работал с данными (крутилась виртуалка пару раз в день) в течении месяца ежедневного использования.

Купил такой же диск, он успешно проработал 4 года и был продан за ненадобностью. Оба диска были на 500 GB, 7200 оборотов.

Сейчас встал вопрос диска для файлопомойки, терабайта на 2. ОС возможно будет на втором SSD. На диске торренты будут раздаваться, возможно будет записываться видео с камеры видеонаблюдения.

Остановился на Seagate BarraCuda 2TB 7200rpm (ST2000DM008). Но возможно посоветуете что-то другое?

 , ,

Riniko
()

Уточнение по net.ipv4.ip_forward

Форум — Desktop

Захотел отключить перенаправление ipv4. Указал в файле /etc/sysctl.conf net.ipv4.ip_forward=0 в конце списка. Перезапустил sysctl -p. Проверил: sysctl net.ipv4.ip_forward результат 0. Перезагрузил машину, снова 1.

Сделал аналогично от root. В файле /etc/sysctl.conf удалил запись net.ipv4.ip_forward=0. Переуказал командой: echo "net.ipv4.ip_forward=0" | tee -a /etc/sysctl.conf. Указал так же sysctl -w net.ipv4.ip_forward=0. Проверяю: sysctl net.ipv4.ip_forward результат 0. После перезагрузки снова 1.

Впрос: это баг или фича? Возможно ли что это влияние ibvirt (кручу виртуалки, QEMU/KVM, VirtualBox).

 , ,

Riniko
()

Сломал сеть в virt-manager

Форум — Desktop

Предыстория такова: Пару месяцев назад, ковырял конфиги этого самого virt-manager, дабы виртуальна машина увидела роутер, дабы его перепрошить тулзой под оффтопик. Виртуальная машина к роутеру не подключилась, а вернуть все что я там навротил взад - забыл.

Теперь, понадобилась виртуалка, а в ней сети нет. Переустановил оффтопик - без результата. Запустил виртуалку с Debian - тоже сети нет. Удалил саму програму командами: apt purge virt-manager, apt autoremove, очистил кеш. Удалил даже файлы с каталога libvirt (а то apt не удалил). Установил заново - сети нет.

VirtualBox есть, в нем сеть есть.

Вопрос: кто виноват и что делать?

 , ,

Riniko
()

Особенности настройки OpenVPN клиента

Форум — Desktop

Есть свой настроенный OpenVPN сервер. Есть консольный клиент OpenVPN на Debian. Отсюда есть несколько вопросов:

1. Как нормально настроить блокировку утечки DNS? Протокол UDP, в клиенте: script-security 2, up /etc/openvpn/update-resolv-conf, down /etc/openvpn/update-resolv-conf. Указывал и ignore-unknown-option block-outside-dns. Пакет systemd-resolved установлен.

На сервере: push "dhcp-option DNS 94.140.14.14", push "dhcp-option DNS 94.140.15.15", push "redirect-gateway def1 bypass-dhcp". Все равно вместе с серверами VPN, есть и DNS моего провайдера. При проверке на whoer.

2: При отключении OpenVPN на клиенте (Ctrl+Z) сеть пропадает. Выполнение systemctl restart networking и переподключение не решает. Приходится перезапускать ноутбук. Что вызывает попоболь.

 , ,

Riniko
()

Копирование страниц сайта

Форум — General

Задумываюсь над поднятием копии сайта (не ЛОРа, к сожалению). Сайт без Js, статичные простые HTML странички. Если сайт весь можно дернуть даже wget, то как найти скрипт, который через N времени, дергал новые появляющиеся статьи, и вкладывал в определенный каталог на VPS? Или если платно, то подскажите как более развернуто сформировать ТЗ под хотелку свою.

Или можно сделать по другому и проще?

 , ,

Riniko
()

Наиболее автономные Thinkpad

Форум — Linux-hardware

Появилась потребность, иметь автономный Thinkpad. Из требований, все таки X86-64, а не ARM. Потому вопрос, может ли современный Thinkpad, быть автономным? Или все таки, условно мой X260 с внутренней + усиленной внешней батареей + горячей заменой батарей - будет лучше и дешевле нежели новомодные решения?

В моем случае, при серфинге, чтении текста и работе wi-fi, часов 10-12 может продержаться. Если крутить виртуалки - конечно меньше автономность и шумит. Но, он компактный по габаритам, в хорошем внешнем состоянии. Не готов менять на 14-15 дюймовый вариант.

Что скажут владельцы более новых ноутбуков?

Перемещено hobbit из general

 , , , ,

Riniko
()

Настройка TURN сервера

Форум — Admin

Захотел поднять свой, приватныйТМ coturn сервер. С шифрованием и куртизанками, для своего же приватного Matrix сервера.

Что сделал: Создал 2 поддомена: turn.example.com, stun.example.com

Прописал SRV записи:

_stun._udp.example.com.  14400 IN SRV  5 0 3478 turn.example.com.
_stun._tcp.example.com.  14400 IN SRV  5 0 3478 turn.example.com.
_stuns._tcp.example.com. 14400 IN SRV  5 0 5349 turn.example.com.

_turn._udp.example.com.   14400 IN SRV  5 0 3478 turn.example.com.
_turn._tcp.example.com.   14400 IN SRV  5 0 3478 turn.example.com.
_turns._tcp.example.com.  14400 IN SRV  5 0 5349 turn.example.com.

Даже прописал NAPTR запись:

@ IN NAPTR 10 0 "s" "RELAY:turn.udp" "" _turn._udp.example.com

Создал сертификат для поддомена: turn.example.com

Создал каталог для сертификатов, дал на него права turnserver. Сертификатам назначил права 0644.

Конфиг сервера:

tls-listening-port=5349
use-auth-secret
static-auth-secret=LOR_CAKE
realm=turn.example.com
verbose 3
log-file=/var/log/coturn/turnserver.log
user-quota=12
total-quota=1200
no-tcp-relay
no-tcp
no-loopback-peers
no-multicast-peers
cert=/etc/coturn/fullchain.pem
pkey=/etc/coturn/privkey.pem
cipher-list="ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384"
dh2066
no-tlsv1
no-tlsv1_1
no-tlsv1_2
no-cli

В конфиге Matrix указал:

turns_uris: [ "turn:turn.example.com?transport=udp", "turn:turn.example.com?transport=tcp" ]
turn_user_lifetime: 86400000

В логах turnserver следующее.

Вопрос: Как мне проверить, что соединения идут через мой turnserver? Я запускал аудио звонки, с двух аккаунтов на одном сервере. Но остановив coturn, я все равно смог дозвониться.

 ,

Riniko
()

RSA vs Elliptic Curve

Форум — Security

На данный момент, использую RSA 4096 ключи, для ssh и прочей криптографии. Есть ли смысл перекатываться на elliptic curve ключи? Для меня, пока, RSA простой, надёжный, работает даже на говне мамонта. В отличии от новомодных кривых.

Что уважаемые камрады и анон скажут?

 , ,

Riniko
()

Rondcube + enigma

Форум — Admin

Захотел настроить плагин enigma, в конфиге roundcube он добавлен. Скопировал конфиг enigma:

cp config.inc.php.dist config.inc.php

В строке: $config['enigma_php_homedir'] = /var/vmail/pgp-keys путь указал. Каталог по пути /var/vmail/pgp-keys создал, права дал:

chown www-data /var/vmail/pgp-keys
chgrp www-data /var/vmail/pgp-keys
chmod 700 /var/vmail/pgp-keys

GnuPG установлен.

Перезапустил nginx, postfix, dovecot.

При входе в веб морду - Oops... something went wrong. В логах roundcube ошибка:

PHP Parse error:  syntax error, unexpected token "/" in /var/www/mail/html/plugins/enigma/config.inc.php on line 1

Что я делаю не так?

Как делать правильно?

 , ,

Riniko
()

Выбор карманного LTE+Wi-Fi роутера

Форум — General

Интересует карманный модем, с возможностью смены IMEI (что бы мимикрировать под смартфон для ОПСОСа). Насколько вижу, такая возможность есть у модемов huawei серий E5373, E5377, E5573, E5577, E5770, E5786. Какие из этих моделей (либо других) проще для этого дела?

 , ,

Riniko
()

Выбор Mastodon клиента

Форум — General

Навеяно данным тредом. А посоветуйте клиент под это дело? Я установил следующие: Tokodon, Whalebird, Tuba, Fedistar, где-то с Flatpak, где-то .deb пакеты. А чем они отличаются, кроме как интерфейсом? Какой тут Ъ а какой поделие от Васянов?

 , ,

Riniko
()

RSS подписка на новые темы