Настройка сервера КПВВ на базе Debian 12

Установка Debian 12

Выполните установку базовой системы Debian 12 в соответствии с Официальным руководством.

Для работы сервера КПВВ достаточно базовой системы.

Настройка системного времени

Установите демон chrony:

apt install chrony

Настройте демон chrony для синхронизации системного времени через сети Интернет по протоколу NTP.

Пример файла конфигурации /etc/chrony/chrony.conf:

server ntp1.vniiftri.ru iburst
server ntp2.vniiftri.ru iburst
server ntp3.vniiftri.ru iburst
server ntp4.vniiftri.ru iburst
driftfile /var/lib/chrony/drift
makestep 1.0 3
rtcsync
logdir /var/log/chrony

Перезапустите демон chrony:

systemctl restart chrony

Установка Docker CE

Выполните настройку Docker CE в соответствии с Официальным руководством:

for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove $pkg; done
apt-get update
apt-get install ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian $(. /etc/os-release && echo "$VERSION_CODENAME") stable" > /etc/apt/sources.list.d/docker.list
apt-get update
apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
docker run hello-world

Настройка удаленного доступа

Установите SSH сервер и sudo:

apt install openssh-server sudo

Рекомендуем настроить нестандартный порт для SSH сервера

Создайте пользователя frontida и задайте ему сложный уникальный пароль

useradd -m -s /bin/bash -G sudo frontida
passwd frontida

Настройка iptables

Установите iptables-persistent:

apt install iptables-persistent

Настройте следующие правила для iptables:

Пример файла конфигурации /etc/iptables/rules.v4:

*filter
:INPUT ACCEPT [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
:DOCKER - [0:0]
:DOCKER-ISOLATION-STAGE-1 - [0:0]
:DOCKER-ISOLATION-STAGE-2 - [0:0]
:DOCKER-USER - [0:0]
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -d 127.0.0.0/8 ! -i lo -j REJECT --reject-with icmp-host-prohibited
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
# TELESTORE support
-A INPUT -s 80.254.49.216/32 -p tcp --dport 22 -j ACCEPT
-A INPUT -s 185.167.120.44/32 -p tcp --dport 22 -j ACCEPT
# TELESTORE UVR to FreeSWITCH
-A INPUT -s 91.204.68.0/22 -p tcp --dport 8021 -j ACCEPT
# TELESTORE UVR to Kamailio
-A INPUT -s 91.204.68.0/22 -p tcp --dport 8228 -j ACCEPT
# ATS -- TODO: replace 127.0.1.1 with the real IP address
-A INPUT -s 127.0.1.1 -j ACCEPT
# ////
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j DOCKER-USER
-A FORWARD -j DOCKER-ISOLATION-STAGE-1
-A FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -o docker0 -j DOCKER
-A FORWARD -i docker0 ! -o docker0 -j ACCEPT
-A FORWARD -i docker0 -o docker0 -j ACCEPT
-A DOCKER-ISOLATION-STAGE-1 -i docker0 ! -o docker0 -j DOCKER-ISOLATION-STAGE-2
-A DOCKER-ISOLATION-STAGE-1 -j RETURN
-A DOCKER-ISOLATION-STAGE-2 -o docker0 -j DROP
-A DOCKER-ISOLATION-STAGE-2 -j RETURN
-A DOCKER-USER -j RETURN
COMMIT
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:DOCKER - [0:0]
-A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER
-A OUTPUT ! -d 127.0.0.0/8 -m addrtype --dst-type LOCAL -j DOCKER
-A POSTROUTING -s 172.17.0.0/16 ! -o docker0 -j MASQUERADE
-A DOCKER -i docker0 -j RETURN
COMMIT

Примените правила:

iptables-restore < /etc/iptables/rules.v4

Установка ПО КПВВ

Сообщите сотрудникам ТЕЛЕСТОР IP-адрес вашего сервера, порт для сервера openssh, имя пользователя и пароль.

Они подключаться к вашему серверу, выполнят установку ПО КПВВ в /containers, настроят и запустят его.

Подключение к АТС

Выполните настройку подключения вашего сервера КПВВ к АТС.

Для этого при необходимости создайте дополнительные сетевые интерфейсы, правила маршрутизации и правила iptables.