Гид по технологиям

Настройка Linux как Dial-In сервера

• 7 min read • Сеть • Обновлено 25 Nov 2025
Настройка Linux как Dial-In сервера
Настройка Linux как Dial-In сервера

Краткий обзор

В этом руководстве описано, как подключить модемы к Linux и разрешить входящие вызовы, чтобы удалённые пользователи получали доступ к сети. Сервер выступает как маршрутизатор: если он подключён к Интернету, абоненты дозвона тоже получат доступ. В Linux для этого обычно используют mgetty (приём вызовов и логин) и PPP (Point-to-Point Protocol) для инкапсуляции IP-трафика.

Важно: приведённые примеры используют системные файлы по умолчанию (/etc/inittab, /etc/mgetty+sendfax/login.config, /etc/ppp/*). Сохраняйте резервные копии конфигураций перед изменениями.

Основные термины

  • mgetty — демоническая программа для обработки входящих модемных вызовов и предоставления логина.
  • PPP (pppd) — протокол и демон для организации сетевого соединения «точка-точка».
  • pap-secrets — файл паролей для аутентификации PAP.

Подготовка и требования

  • Один или несколько модемов (COM/ttyS). Можно использовать внешние USB-модемы, но в этом руководстве примеры для ttyS0..ttyS3.
  • root-доступ на сервере.
  • Установленные пакеты: mgetty, ppp. На современных дистрибутивах пакеты могут называться иначе; используйте менеджер пакетов вашей системы.
  • Резервная копия конфигураций: сделайте cp /etc/inittab /etc/inittab.bak и т.п.

1. Подключите модем

Подключите модем к COM1 или COM2 (ttyS0/ttyS1) или к соответствующему порту. Для внутренних модемов уточните соответствие аппаратного порта ttyS*. При сомнениях можно активировать все COM-порты и посмотреть, какой порт отвечает, через /var/log/messages.

2. Запустите kudzu (или автообнаружение)

kudzu — автодетектор железа в некоторых дистрибутивах (обычно запускается при загрузке). Либо перезагрузите сервер, либо выполните вручную:

kudzu

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

3. Настройка mgetty в /etc/inittab

Mgetty предоставляет логин после установления модемного соединения. Включается через /etc/inittab. Откройте файл:

vi /etc/inittab

Ниже — соответствие физических портов и Linux-портов (для удобства):

  • COM1 → ttyS0
  • COM2 → ttyS1
  • COM3 → ttyS2
  • COM4 → ttyS3

Добавьте строки (пример):

S0:2345:respawn:/sbin/mgetty -D ttyS0
S1:2345:respawn:/sbin/mgetty -D ttyS1
S2:2345:respawn:/sbin/mgetty -D ttyS2
S3:2345:respawn:/sbin/mgetty -D ttyS3

Ключ -D означает «data-only» — разрешать только модемные данные, без факсов. Скорость (baud rate) определяется автоматически, если модем поддерживает.

4. Включите PPP при входящем вызове

По умолчанию mgetty может не запускать pppd. В /etc/mgetty+sendfax/login.config найдите строку, связанную с AutoPPP, и раскомментируйте её.

vi /etc/mgetty+sendfax/login.config

Найдите:

#/AutoPPP/ - a_ppp /usr/sbin/pppd auth -chap +pap login debug

И измените на:

/AutoPPP/ - a_ppp /usr/sbin/pppd auth -chap +pap login debug

Опция debug даёт подробный вывод в /var/log/messages. Опция login указывает pppd выполнить последующую проверку через системный логин (например, /etc/passwd) после PAP.

Важно: если вы не хотите использовать системные учётные записи Linux для авторизации, удалите опцию login и организуйте только аутентификацию через pap-secrets.

5. Файлы опций PPP

pppd читает параметры из командной строки и из файлов в /etc/ppp. Рекомендуется создать общий файл опций и индивидуальные файлы для каждого порта.

Создайте общий файл:

vi /etc/ppp/options.server

Пример содержимого:

-detach
asyncmap 0
modem
crtscts
lock
proxyarp
ms-dns 1.2.3.4  # замените 1.2.3.4 на адрес первичного DNS
ms-dns 3.4.5.6  # замените 3.4.5.6 на адрес вторичного DNS

Затем создайте файл опций для конкретного порта, где назначите IP-адреса сервера и клиента:

vi /etc/ppp/options.ttyS0

Пример:

192.168.0.12:192.168.0.100  # serverAddress:clientAddress
netmask 255.255.255.0       # маска сети, в которой находится сервер

Замените адреса на те, которые соответствуют вашей сети. Можно назначать пул адресов или индивидуальные пары.

6. Добавьте пользователей в pap-secrets

PAP-аутентификация хранит пары клиент/пароль в /etc/ppp/pap-secrets.

vi /etc/ppp/pap-secrets

Пример:

# client  server  secret         IP
sohail     *       boby           *
zain       *       zain123        *

Где client — имя пользователя, server — имя сервера (обычно ), secret — пароль, IP — разрешённый IP клиента (или ).

7. Создайте соответствующих Linux-пользователей

Если вы используете опцию login в pppd, создайте локальных пользователей с такими же именами и паролями, как в pap-secrets, чтобы система могла выполнить проверку через /etc/passwd или PAM:

useradd -m sohail
passwd sohail

Если вы не хотите создавать локальные учетные записи, уберите опцию login из строки pppd в /etc/mgetty+sendfax/login.config.

8. Включите IP-маршрутизацию (форвардинг)

Чтобы сервер мог пересылать IP-пакеты между интерфейсами, включите форвардинг IPv4:

vi /etc/sysctl.conf

Убедитесь, что присутствует строка:

net.ipv4.ip_forward = 1

Примените изменения:

sysctl -e -p /etc/sysctl.conf

Если у вас используются правила NAT (masquerade), настройте iptables/ nftables для трансляции адресов.

9. Перезапустите init и запустите mgetty

Перечитайте конфигурацию init, чтобы mgetty стартовал на портах:

/sbin/telinit q

Проверьте, что процессы mgetty запущены и слушают соответствующие tty.

10. Тестирование и просмотр логов

Пусть удалённый абонент позвонит на номер модема. На сервере следите за логами в реальном времени:

tail -f /var/log/messages

В логах вы увидите этапы установления соединения, PAP/CHAP-аутентификацию и запуск pppd. При включённой опции debug вывод будет содержать подробности для отладки.

Проверка работоспособности и приёма трафика

  • После успешной авторизации проверьте наличие интерфейса ppp0 (или аналогичного) через ip addr или ifconfig.
  • Проверьте маршрут по умолчанию и таблицу маршрутов: ip route.
  • Проверьте, проходит ли трафик через ваш сервер (traceroute, ping).

Типичные ошибки и шаги отладки

  1. Нет ответа модема: проверьте питание модема и соответствие /dev/ttyS* с физическим портом.
  2. mgetty не запускается: проверьте /etc/inittab на синтаксис и выполните /sbin/telinit q.
  3. pppd не стартует: проверьте, раскомментирована ли строка AutoPPP и корректны ли файлы в /etc/ppp.
  4. Ошибки аутентификации: проверьте /etc/ppp/pap-secrets и системные пароли (если используется login).
  5. Клиент подключён, но нет доступа в Интернет: проверьте ip_forward и правила NAT (iptables -t nat -L).

Контроль безопасности

  • Ограничьте количество модемных линий и настройте ограничения скорости, если нужно.
  • Используйте сложные пароли и, при возможности, CHAP вместо PAP (CHAP более безопасен).
  • Отключите опцию login, если не хотите, чтобы pppd обращался к локальным учетным записям.
  • Журналируйте и мониторьте попытки подключения. Регулярно просматривайте /var/log/messages.
  • Если вы предоставляете доступ посторонним, настройте фильтрацию трафика с помощью iptables/nftables и минимизируйте сервисы, доступные через входящие соединения.

Альтернативные подходы

  • Использовать pppd напрямую с getty или custom scripts, минуя mgetty.
  • Применять более современные средства удалённого доступа: VPN (OpenVPN, WireGuard) вместо модемного доступа, если есть широкополосная связь.
  • Для больших сетей — RADIUS/AAA-сервер для централизованной аутентификации вместо локальных pap-secrets.

Модель принятия решений (когда использовать этот подход)

  • Подходит, если требуется поддержка старого оборудования или удалённый доступ через телефонную сеть.
  • Неподходяще для новых развёртываний, где доступ к сети возможен по IP/интернету — лучше настроить VPN.

Контрольный список по ролям

Администратор:

  • Подключить модемы и проверить tty-порты.
  • Настроить /etc/inittab и запуск mgetty.
  • Настроить /etc/ppp/options.server и options.ttyS*.
  • Добавить записи в /etc/ppp/pap-secrets.
  • Включить ip_forward и настроить NAT.

Оператор поддержки:

  • Следить за /var/log/messages.
  • Помогать пользователям при ошибках аутентификации.
  • Перезагружать службы при необходимости.

Пользователь:

  • Иметь имя и пароль, указанные в pap-secrets.
  • Знать номер телефона модема и настройки PPP на клиенте.

Пример методологии развёртывания (кратко)

  1. Подготовка оборудования и резервное копирование конфигов.
  2. Подключение модемов, автоматическое обнаружение (kudzu или вручную).
  3. Настройка mgetty и тестовый вызов на один порт.
  4. Настройка PPP (общие и портовые опции).
  5. Добавление пользователей и тестирование аутентификации.
  6. Включение маршрутизации, NAT и ограничений безопасности.
  7. Мониторинг логов и корректировка.

Критерии приёмки

  • Клиент успешно дозванивается и проходит аутентификацию.
  • После подключения у клиента есть доступ к сети/Интернету.
  • Логи не содержат критических ошибок в течение тестовой сессии.

Резюме

Вы успешно настроили Linux для приёма модемных вызовов и предоставления сетевого доступа через PPP. Основные шаги: подключение модемов, запуск kudzu, настройка mgetty через /etc/inittab, раскомментирование AutoPPP в /etc/mgetty+sendfax/login.config, создание /etc/ppp/options.* и /etc/ppp/pap-secrets, включение ip_forward и запуск служб. Обязательно настройте безопасность и мониторинг логов.

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


Список полезных файлов и команд (чтобы быстро найти):

  • /etc/inittab — конфигурация mgetty (строки respawn)
  • /etc/mgetty+sendfax/login.config — опция AutoPPP
  • /etc/ppp/options.server — общие опции pppd
  • /etc/ppp/options.ttyS0 — опции для конкретного порта
  • /etc/ppp/pap-secrets — пары логин/пароль для PAP
  • /etc/sysctl.conf — net.ipv4.ip_forward
  • Команды: kudzu, /sbin/telinit q, tail -f /var/log/messages, ip addr, ip route, ifconfig, iptables/nftables

Сводка ключевых шагов:

  1. Подключите модемы и проверьте tty.
  2. Запустите kudzu или выполните ручную настройку.
  3. Добавьте строки mgetty в /etc/inittab и перечитайте init.
  4. Раскомментируйте AutoPPP и настройте /etc/ppp/*.
  5. Включите маршрутизацию и при необходимости NAT.
  6. Тестируйте и контролируйте логи.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро