Разбираю, как в домашних условиях поднять мини-аналоговую телефонную сеть, эмулировать поведение старых АТС, поиграться с тоновой сигнализацией и понять, как вообще работал классический фрикинг на уровне электрических сигналов. Много схем, железа, немного боли, эксперименты с 2600 Гц и лабораторные атаки в полностью изолированной среде.

Зачем вообще поднимать аналоговую телефонию в 2026 году

Я давно хотел понять одну вещь: как реально работали старые телефонные уязвимости, о которых все слышали, но мало кто воспроизводил. Мы читаем про 2600 Гц, про blue box, про in-band сигнализацию — но что это значит на уровне проводов, напряжений и тонов?

Если честно, сначала это было просто любопытство. Потом стало инженерным челленджем. А потом я понял, что это отличная лаборатория для изучения архитектурных ошибок прошлого.

Вся идея фрикинга строилась на том, что управляющие сигналы передавались в том же канале, что и голос. Представьте себе систему, где команда на маршрутизацию звонка летит тем же аудиосигналом, что и разговор абонентов. Звучит странно? А ведь это работало десятилетиями.

Мне захотелось собрать полностью автономный стенд:

  • две аналоговые трубки

  • мини-АТС

  • возможность генерировать произвольные тоны

  • логирование сигнализации

  • и главное — изоляция от реальной сети

Ни в коем случае нельзя подключать такие эксперименты к живой линии оператора. Это не шутки. Всё должно быть полностью локальным.

И вот тут начинается самое интересное — оказывается, собрать такую сеть дома реально.

Архитектура стенда: железо, напряжения и немного магии

Базовая схема у меня получилась такой:

  • сервер с Linux

  • плата с FXS и FXO портами

  • Asterisk

  • две старые аналоговые трубки

  • аудиоинтерфейс для инжекции сигналов

FXS — это порт, который подаёт питание и эмулирует АТС. FXO — это порт, который ведёт себя как телефонный аппарат.

Напряжение в покое на линии — около 48 В постоянки. При снятии трубки ток увеличивается, станция это фиксирует и понимает, что линия занята. Звонок — это уже переменка около 70–90 В, 20–25 Гц. Первый раз, когда я это увидел на осциллографе, стало немного не по себе.

Внутри всё оказалось довольно изящно. Линия — это по сути токовая петля. Состояние определяется током, а не просто наличием сигнала.

Я использовал Digium-совместимую PCIe плату. Но можно и USB-FXS адаптеры. Главное — чтобы они поддерживались DAHDI.

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

# /etc/dahdi/system.conf
fxsks=1
fxsks=2
loadzone=us
defaultzone=us

И соответствующий блок в Asterisk:

; /etc/asterisk/chan_dahdi.conf
[channels]
language=ru
context=internal
signalling=fxs_ks
channel => 1
channel => 2

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

И вот тут я понял, что без генерации и анализа тонов всё это будет просто музейным экспонатом.

Генерация 2600 Гц и эксперименты с сигнализацией

Исторически 2600 Гц использовался как сигнал освобождения транка в некоторых аналоговых сетях. Если его подать в нужный момент, линия переходила в состояние, когда можно было передавать управляющие команды.

В лаборатории я решил воспроизвести это поведение.

Вот простой генератор тона на Python:

# language: Python
import numpy as np
import sounddevice as sd

fs = 44100
duration = 5
frequency = 2600

t = np.linspace(0, duration, int(fs * duration), False)
tone = 0.5 * np.sin(2 * np.pi * frequency * t)

sd.play(tone, fs)
sd.wait()

Я подключил аудиовыход к FXO через согласующий трансформатор. Без трансформатора лезть туда не советую — можно сжечь порт.

Когда тон подавался в определённой фазе соединения, Asterisk фиксировал изменение состояния канала. Конечно, современная цифровая логика не ведётся на такие трюки, но если в конфигурации вручную включить имитацию старого поведения, можно увидеть, как система реагирует.

А вы когда-нибудь слышали чистый 2600 Гц через старую трубку? Это довольно неприятный звук, кстати.

Лабораторный анализ сигналов: спектр, шум и паразитные эффекты

Один из самых интересных моментов — это анализ сигнала не на слух, а математически.

Я написал небольшой спектральный анализатор:

# language: Python
import numpy as np
import matplotlib.pyplot as plt
from scipy.fft import fft

fs = 44100
samples = np.fromfile("capture.raw", dtype=np.int16)
yf = fft(samples)
xf = np.linspace(0, fs/2, len(yf)//2)

plt.plot(xf, np.abs(yf[:len(yf)//2]))
plt.title("Spectrum")
plt.xlabel("Frequency (Hz)")
plt.ylabel("Amplitude")
plt.show()

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

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

Ещё один сюрприз — дрейф частоты. Если генератор нестабилен, сигнал может уйти на десятки герц. Для некоторых схем это критично.

И вот тут начинаешь понимать, насколько тонко всё было настроено.

Эмуляция старой логики маршрутизации

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

Небольшой фрагмент на C, который анализирует поток аудиосэмплов:

// language: C
#include <math.h>
#define TARGET_FREQ 2600.0
#define SAMPLE_RATE 8000

int detect_2600(short *buffer, int len) {
    double real = 0.0, imag = 0.0;
    for (int i = 0; i < len; i++) {
        double angle = 2.0 * M_PI * TARGET_FREQ * i / SAMPLE_RATE;
        real += buffer[i] * cos(angle);
        imag -= buffer[i] * sin(angle);
    }
    double magnitude = sqrt(real*real + imag*imag);
    return magnitude > 1000000;
}

Да, это грубая реализация по мотивам Goertzel, но для лаборатории хватает.

Когда модуль фиксировал устойчивое присутствие частоты, он переводил линию в альтернативное состояние маршрутизации.

Это не повторяет старые АТС на 100%, но даёт понимание принципа: управляющий сигнал интерпретируется как команда.

И тут начинаешь задаваться вопросом: сколько современных систем повторяют ту же ошибку — смешивая управляющий и пользовательский трафик?

Что в итоге даёт такой стенд

Во-первых, понимание физического уровня. Мы часто работаем на уровне API и протоколов, забывая, что всё начинается с электричества.

Во-вторых, уважение к эволюции безопасности. SS7, SIP, SIGTRAN — все они появились не просто так.

В-третьих, это просто очень крутой способ провести выходные.

Сидишь ночью, перед тобой осциллограф, старая трубка щёлкает импульсным набором, сервер жужжит, а ты ловишь гармоники 2600 Гц и думаешь — вот так и рождалась ранняя телеком-безопасность.

Если вам интересно ковыряться в железе, анализировать сигналы и понимать архитектурные ошибки прошлого — попробуйте собрать такой стенд. Это не про взлом, это про исследование.

И честно — после этого начинаешь совсем иначе смотреть на современные системы связи.

Комментарии (10)


  1. andquad
    26.02.2026 05:08

    душевно. спасибо.


    1. Shephard
      26.02.2026 05:08

      если честно, после слов "аналоговая АТС" я ожидал декадно-шаговую со всеми её механическими алгоритмами. А когда увидел первое упоминание Астериска, то уже и читать дальше продолжил по диагонали. Увы, описывается работа не совсем аналоговой АТС.

      Но все равно интересно.


  1. KbRadar
    26.02.2026 05:08

    Опыт прикольный, но крайне трудно будет смоделировать те недокументированные особенности что использовались для прикладного фрика, особенно на территории бСССР.


  1. Prohard
    26.02.2026 05:08

    А про протоколы сигнализации хоть что-нибудь читали? В аналоговой телефонии нет недокументированных особенностей. Бесполезный опыт.


    1. KbRadar
      26.02.2026 05:08

      Есть. Ну, то есть были.


  1. aol985
    26.02.2026 05:08

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


  1. ivanstor
    26.02.2026 05:08

    Вы несколько раз написали про "архитектурные ошибки прошлого". Какие-такие ошибки? конкретно разберите, это было бы интересно. На забывая про реальные возможности инженеров прошлого. Например отсутствие электроники, в современном понимании. Не говоря о микропроцессорах.


    1. hard2018
      26.02.2026 05:08

      Попытки выйти за рамки компьютерной техники здесь часто выглядят смешно. Это порок поколения, которое многое видит впервые. Ну или совсем отсталой публики. Описание современной техники сложно раскритиковать лишь потому, что для старшего поколения, которое ещё работало с аналоговым оборудованием, это незнакомо.
      Да и компьютерная техника - в нулевых она началась только для местной аудтории, и это только на территории бСССР, мир её знает с 70х-60х. Не нужно учить мир. Хотите рассмешить мир - научите его. Упрекнув мир в том, что чего то не было.


  1. sim2q
    26.02.2026 05:08

    И тут начинаешь задаваться вопросом: сколько современных систем повторяют ту же ошибку — смешивая управляющий и пользовательский трафик?

    Разве что АОН..., да и то он всё равно задействовал 4-проводную схему.


  1. checkpoint
    26.02.2026 05:08

    Следующим шагом автор вспомнит про R1,5 и R2 сигнализацию. Только вот Астериск вряд ли поможет с этим.