Службы и программы

Замена bind на bind9-next

Цель: Заменить уже работающий на сервере с Fedora 43 bind 9.18.44 на bind9-next 9.21.17 и использовать доступ к внешним DNS посредством TLS.

ВНИМАНИЕ! После удаления «старого» bind перестанут резольвиться узлы в интернете и установка bind9-next станет невозможна, поэтому варианты: 1. Сначала установить bind9-next, а потом уже удалять bind (не проверялось); 2. Временно прописать в /etc/resolv.conf внешние DNS (провайдера или общедоступные).

Удаление bind:

dnf remove bind-libs bind bind-utils bind-dnssec-utils

Установка bind9-next:

dnf in bind9-next-libs bind9-next-utils bind9-next-dnssec-utils bind9-next

Файлы конфигураций

# cat /etc/named.conf 
tls comms-tls { remote-hostname "dns.comss.one"; };
tls yandex-tls { remote-hostname "common.dot.dns.yandex.net"; };

options {
        listen-on { any; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        secroots-file   "/var/named/data/named.secroots";
        recursing-file  "/var/named/data/named.recursing";
        allow-query     { localhost; 192.168.0.0/16; 172.17.0.0/24; };
        recursion yes;

        managed-keys-directory "/var/named/dynamic";
        geoip-directory "/usr/share/GeoIP";

        pid-file "/run/named/named.pid";
        session-keyfile "/run/named/session.key";

    dnssec-validation no;

forwarders port 853 {
        83.220.169.155 tls comms-tls;
        212.109.195.93 tls comms-tls;

        77.88.8.8 tls yandex-tls;
        2a02:6b8::feed:0ff tls yandex-tls;
        2a02:6b8:0:1::feed:0ff tls yandex-tls;
    };

        include "/etc/crypto-policies/back-ends/bind.config";
};

logging {
  channel default_debug {
  file "data/named.run";
  severity dynamic;
  };
};

zone "." IN {
        type hint;
        file "named.ca";
};

include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";

zone "powernet" {
        type forward;
        forward only;
        forwarders {
          10.200.201.234;
          10.200.201.162;
          };
        };
zone "powernet.com.ru" {
        type forward;
        forward only;
        forwarders {
          10.200.201.234;
          10.200.201.162;
          };
        };
zone "local" {
        type forward;
        forward only;
        forwarders {
          10.200.201.234;
          10.200.201.162;
          };
        };
zone "ok" {
        type master;
        file "ok.hosts";
        };

include "/etc/named.lib.zone";
# cat /etc/NetworkManager/conf.d/ok.conf
[main]
dns=none
# cat /etc/resolv.conf 
search ok
nameserver 127.0.0.1
# cat /etc/sysconfig/named 
OPTIONS="-4 -L /var/log/named/named.log"
# cat /etc/named.lib.zone 
zone "lib" {
  type forward;
  forward only;
  forwarders {
        94.247.43.254;
        194.36.144.87;
        81.169.136.222;
        195.10.195.195;
        94.247.43.254;
        185.181.61.24;
        };
  };
# cat /var/named/ok.hosts 
$ttl 38400
@       IN      SOA     localhost. dns@kochkin.tk. (
                        1299154724
                        10800
                        3600
                        604800
                        38400 )
@       IN      NS      192.168.1.2.
homeserver  IN  A       192.168.1.2
hs          IN  A       192.168.1.2
epsilon     IN  A       192.168.1.10
host        IN  A       192.168.1.10
smart       IN  A       192.168.1.11
fserver     IN  A   192.168.10.14
fs          IN  A   192.168.10.14

Запуск и включение службы:

systemctl enable --now named

Возможные проблемы:

  • По умолчанию служба запускается с использованием ipv6. В /etc/sysconfig/named указать опцию запуска «-4».
  • Если на сервере ранее не была установлена служба named, есть вероятность запущеной службы systemd-resolved, которая занимает нужные для named порты. Остановка и отключение этой службы не эффективно, поэтому - удаление:
systemctl disable --now systemd-resolved
dnf remove systemd-resolved

Проверить занятые порты:

netstat -nlp

Проверить запросы к внешним DNS по 853-му порту - на сетевом интерфейсе смотрящем наружу смотреть:

tcpdump -i eth0 port 853

Программу в трей в KDE Plasma Wayland (Fedora 43)

В KDE до сих пор нет нативного способа поместить выполняющуюся программу в трей. Ранее (в X11) использовался KDocker, он работает до сих пор с «костылями» в виде передачи переменных окружения QT_QPA_PLATFORM=xcb и GDK_BACKEND=x11, но с ним есть некоторые проблемы в wayland, и хотелось чего-либо менее «костыльного».

Отсюда получена наводка на kwin-minimize2tray. Процесс установки описан в readme:

git clone https://github.com/luisbocanegra/kwin-minimize2tray.git
cd kwin-minimize2tray
./install.sh

Дополнительно были установлены пакеты:

cmake
extra-cmake-modules
qt6-qtbase-devel
kf6-kpackage-devel
kf6-kcoreaddons-devel
qt6-qtdeclarative-devel
kf6-kstatusnotifieritem-devel
kf6-kservice-devel

Установка ComfyUI

ComfyUI - инструмент для локальной (и не только) генерации изображений, видео, аудио с помощью нейросетей.

git clone https://github.com/comfyanonymous/ComfyUI.git
cd ComfyUI
python3 -m venv venv && source venv/bin/activate
pip install -r requirements.txt
cd custom_nodes && git clone https://github.com/ltdrdata/ComfyUI-Manager
python main.py --lowvram

В основном, отсюда.

Если при попытке установки узлов (нод) с GIT выводится сообщение «This action is not allowed with this security level configuration.», изменить уровень безопасности в файле «ComfyUI/user/__manager/config.ini» в параметре «security_level» на «normal-» или «weak» (Отсюда).

Почтовый сервер Postfix + Dovecot + RoundCube (Fedora 43)

Цель - запустить почтовый сервер со следующими возможностями:

  • Приём почты для разных виртуальных доменов и их алиасов
  • Создание виртуальных пользователей и их алиасов
  • Получение почты по POP3
  • Доступ к ящикам посредством WEB
  • Отсылка почты на серверы, не требующие проверки SPF/DKIM
  • SPF/DKIM не рассматривается

В основном, отсюда

Установка:

dnf install postfix dovecot

Создание пользователя и хранилища виртуальных доменов и пользователей:

useradd -d /var/lib/vmail --uid 20000 --shell /sbin/nologin vmail

Postfix (SMTP)

/etc/postfix/main.cf

Изменить:
Разрешить внешние соединения:

inet_interfaces = all

Оставить только ipv4:

inet_protocols = ipv4

Если параметр просто закомментировать, виртуальные домены работать не будут, т.к. Postfix использует значение по умолчанию:

mydestination =

Хранилища виртуальных доменов и пользователей:

home_mailbox = /var/lib/vmail/%d/%n/Maildir

Добавить:
Обратная DNS запись для текущего внешнего реального IP адреса. Т.к. используется динамический адрес, то используется скрипт для замены обратного адреса в main.cf после смены IP. Данная опция необязательна:

rDNS = pat-31-128-130-116.pool.powernet.com.ru.
smtpd_banner = $rDNS ESMTP

Включение TLS/SSL:

smtpd_use_tls = yes
smtp_tls_mandatory_protocols = !SSLv2, !SSLv3
smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache

Максимальный размер письма - 50 Мб:

message_size_limit = 51200000

Возможно, необязательные опции:

disable_vrfy_command = yes
smtpd_helo_required = yes

Включение SMTP аутентификации через dovecot:

# SMTP-Auth settings
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
smtpd_recipient_restrictions = permit_mynetworks, permit_auth_destination, permit_sasl_authenticated, reject

Виртуальные домены, ящики и алиасы:

# Virtual domains & mailboxes

Перечень виртуальных доменов:

virtual_mailbox_domains = homeserver.ok kochkin.mooo.com kochkin.tk

Хранилища виртуальных доменов и пользователей:

virtual_mailbox_base = /var/lib/vmail

Файл алиасов почтовых ящиков:

virtual_mailbox_maps = hash:/etc/postfix/virtual-mailbox

Файл алиасов доменов:

virtual_alias_maps = hash:/etc/postfix/virtual
virtual_uid_maps = static:20000
virtual_gid_maps = static:20000

/etc/postfix/master.cf

Раскоментировать:

submission inet n       -       n       -       -       smtpd
  -o syslog_name=postfix/submission
  -o smtpd_sasl_auth_enable=yes

Добавить:

smtps     inet  n       -       n       -       -       smtpd
  -o syslog_name=postfix/smtps
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes

/etc/postfix/virtual

Основной домен: kochkin.tk, основной почтовый ящик: postmaster@kochkin.tk

# После правки, запустить:
# postmap /etc/postfix/virtual

# Алиасы для доменов
@homeserver.ok      @kochkin.tk
@kochkin.mooo.com   @kochkin.tk

# Почту ко всем неизвестным
@kochkin.tk      postmaster@kochkin.tk

/etc/postfix/virtual-mailbox

# create new
# user mailbox

postmaster@kochkin.tk   kochkin.tk/postmaster/Maildir/

# После правки запустить:
# postmap /etc/postfix/virtual-mailbox

/etc/postfix/postfix-rdns

#!/bin/bash

# Заменяет значение обратной DNS записи в конфигурации Postfix. Запускать после смены реального динамического IP.

CF=/etc/postfix/main.cf
Prev=$(postconf rDNS | cut -d" " -f3)
IP=$(curl --retry 10 --retry-delay 1 --retry-max-time 15 -s http://ifconfig.io)
if [[ $IP =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]];then
  Current=$(dig +short -x $IP)
  if [[ $Current != $Prev ]];then
    cp $CF $CF-$(date +%y%m%d-%H%M%S)
    echo "Change:"
    postconf rDNS
    sed -i "s/^rDNS = .*/rDNS = $Current/" $CF
    systemctl reload postfix
    echo "to:"
    postconf rDNS
  fi
fi

Dovecot (POP3, IMAP)

Устарело (конфиг версии 2.3.xx) /etc/dovecot/conf.d/10-auth.conf:
Закомментировать:

# !include auth-system.conf.ext

Раскомментировать:

!include auth-passwdfile.conf.ext
!include auth-static.conf.ext

/etc/dovecot/conf.d/10-mail.conf:
Изменить:

mail_location = maildir:/var/lib/vmail/%d/%n/Maildir

/etc/dovecot/conf.d/auth-static.conf.ext: Раскомментировать и указать путь к доменам/ящикам:

userdb {
  driver = static
  args = uid=vmail gid=vmail home=/var/lib/vmail/%d/%n
}

/etc/dovecot/dovecot.conf:
Раскомментировать и слушать только ipv4:

listen = *

/etc/dovecot/dovecot.conf версии 2.4.1-4

Забудьте все предыдущие конфиги для dovecot. С версии 2.4 всё изменилось и несовместимо с предыдущими версиями.

# doveadm config

# 2.4.1-4 (7d8c0e5759): /etc/dovecot/dovecot.conf
# OS: Linux 6.17.8-300.fc43.x86_64 x86_64 Fedora release 43 (Forty Three) 
# Hostname: homeserver.ok
dovecot_config_version = 2.4.1
dovecot_storage_version = 2.4.1
listen = *
mail_driver = maildir
mail_gid = vmail
mail_home = /var/lib/vmail/%{user|domain}/%{user|username}
mail_path = %{home}/Maildir
mail_uid = vmail
protocols {
  imap = yes
  lmtp = yes
  pop3 = yes
}
ssl = required
ssl_cipher_list = PROFILE=SYSTEM
namespace inbox {
  inbox = yes
  separator = /
}
ssl_server {
  cert_file = /etc/pki/dovecot/certs/dovecot.pem
  key_file = /etc/pki/dovecot/private/dovecot.pem
}
passdb passwd-file {
  passwd_file_path = /etc/dovecot/users
}
userdb static {
  fields {
    gid = vmail
    uid = vmail
  }
}
service auth {
  unix_listener /var/spool/postfix/private/auth {
    group = postfix
    mode = 0660
    user = postfix
  }
}

/etc/dovecot/users

# create new
# user:password

# Шифрование пароля
# doveadm pw -p PASWWORD -s CRYPT

postmaster@kochkin.tk:{CRYPT}$k7IB4KsvOJPzZu4o2y$05$yAh5nnVVI8tOsBL5jVGgNbOtlmYTyH8Cg02U.

Прочее

Запуск служб:

systemctl enable --now postfix dovecot

Сбор статистики:

dnf install postfix-perl-scripts
pflogsumm -d yesterday /var/log/maillog

RoundCube (WEB)

Создать MySQL базу «roundcube», пользователя «roundcube» с паролем «PASSWORD»:

mysql
create database roundcube;
grant all privileges on roundcube.* to roundcube@'localhost' identified by 'PASSWORD';
flush privileges;
\q

Установить RoundCube из реп, инициализировать базу MySQL и использовать примерный конфиг:

dnf install roundcubemail
mysql -u roundcube -D roundcube -p < /usr/share/roundcubemail/SQL/mysql.initial.sql
cp -p /etc/roundcubemail/config.inc.php.sample /etc/roundcubemail/config.inc.php

В /etc/roundcubemail/config.inc.php изменить параметры подключения к MySQL базе:

$config['db_dsnw'] = 'mysql://roundcube:PASSWORD@localhost/roundcube';

Настройки WEB сервера в /etc/httpd/conf.d/roundcube.conf для доступа только из локалки 192.168.1.0/24:

Alias /mail /usr/share/roundcubemail
<Directory /usr/share/roundcubemail/>
  Require ip 192.168.1.0/24
</Directory>

В основном, отсюда

Настройка почтового клиента POP3/SMTP Thunderbird 102

POP3:

  • Адрес сервера: kochkin.tk
  • Имя пользователя: postmaster@kochkin.tk
  • Порт: 995
  • Защита соединения: SSL/TLS
  • Метод аутентификации: Обычный пароль

SMTP:

  • Адрес сервера: kochkin.tk
  • Имя пользователя: postmaster@kochkin.tk
  • Порт: 465
  • Защита соединения: SSL/TLS
  • Метод аутентификации: Обычный пароль

HTTPS сертификаты Let's Encrypt на CentOS 7 (certbot,letsencrypt)

yum -y install certbot python-certbot-apache
certbot --apache

Ввести адрес электронной почты.
Подтвердить условия использования.
Желаете-ли получать рассылку на указанный адрес.

Предоставляется выбор доменов, которые найдены в конфигурации httpd:

1: kochkin.tk
2: www.kochkin.tk
3: kochkin.mooo.com

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

После чего будут получены сертификаты и в конфигурационные файлы httpd будут внесены измения для их использования. Также будет сделано перенаправление с http на https.
Для обновления сертификатов, включить системный таймер:

systemctl enable certbot-renew.timer

Отсюда и отсюда.

Просмотр сертификатов:

certbot certificates

Добавление домена к существующим:

certbot --expand -d kochkin.tk,kochkin.mooo.com,www.kochkin.tk,kochkin.us.to

Удаление доменов:

certbot delete

Использование сертификатов privkey.pem и fullchain.pem на другом компьютере с RedMine установленным в Windows

Файлы копируются в папку с Apache под Windows:

scp root@192.168.10.108:/etc/letsencrypt/live/YouDomain/fullchain.pem c:/redmine/apache2/conf/SSL/YouDomain/fullchain.pem
scp root@192.168.10.108:/etc/letsencrypt/live/YouDomain/privkey.pem c:/redmine/apache2/conf/SSL/YouDomain/privkey.pem
net stop redmineApache
net start redmineApache

192.168.10.108 - Компьютер, который обновляет сертификаты для домена.

В конфигурационном файле, в которов указываются пути к сертификатам должно быть прописано:

SSLCertificateFile "c:/redmine/apache2/conf/SSL/YouDomain/fullchain.pem"
SSLCertificateKeyFile "c:/redmine/apache2/conf/SSL/YouDomain/privkey.pem"

Преобразование автоматически сгенерированных сертификатов в формат PFX для IIS

Необходимые сертификаты (точнее, симлинки) на компьютере, который обновляет сертификаты, находятся в

/etc/letsencrypt/live/<Ваш домен>

Это файлы «privkey.pem» и «fullchain.pem»

В указанной выше папке, запустить:

openssl pkcs12 -inkey privkey.pem -in fullchain.pem -export -out YouDomain.pfx -passout pass:

Обновление PFX в IIS

CMD файл запускаемый на Windows с установленным IIS. :

scp root@192.168.10.108:/etc/letsencrypt/live/YouDomain/YouDomain.pfx YouDomain.pfx
certutil -delstore "WebHosting" "YouDomain"
certutil -f -p "" -importpfx "WebHosting" "YouDomain.pfx"
certutil -repairstore "WebHosting" "YouDomain"

192.168.10.108 - Компьютер, который обновляет сертификаты для домена.

IPSET и IPTABLES (CentOS 7)

systemctl disable --now firewalld
dnf remove firewalld*
dnf install iptables-services ipset-service
systemctl enable --now ipset && systemctl enable --now iptables

Чтобы правила IPSET автоматически сохранялись в /etc/sysconfig/ipset при перезапуске или останове службы IPSET, необходимо добавить в файл /etc/sysconfig/ipset-config переменные:

IPSET_SAVE_ON_STOP=yes
IPSET_SAVE_ON_RESTART=yes

Предоставление шар по самбе.

В файле /etc/samba/smb.conf :

    [global]
    netbios name = lin-01             # Имя машины
    workgroup = workgroup             # Рабочая группа
    server string = lin-01            # Строка сервера
    security = share                  # Безовасность (свободный доступ)
    [share]                           # Название ресурса
    path=/media/disk_d/share          # Папка
    writable = yes                    # Запись разрешена
    guest ok = yes                    # Разрешён доступ гостю

Установка far2l - Far Manager для Linux в Fedora 38

dnf copr enable polter/far2l

Для графического окружения:

dnf install far2l

Для консоли:

dnf install far2l-tty

Одновременно друг с другом не живут.

Наверх
uptime



AbuseIPDB Contributor Badge