Входящие звонки в OpenBSD


(Голосов: 1, средний балл: 2 из 5) Loading ...
Это подробное руководство позволит сделать из вашего старенького ПК сервер удалённого доступа с CHAP-авторизацией. Таким образом Вы сможете с наименьшими затратами организовать доступ работников к ресурсам локальной сети предприятия, а также доступ в Интернет.

Настройка dial-in сервера под OpenBSD мало чем отличается от аналогичной процедуры под FreeBSD, в основном в той части, где включается NAT и pf. Выполнив описанные в этом руководстве шаги, вы будете иметь сервер удалённого доступа (getty+pppd) c CHAP-авторизацией в считанные минуты.

Задача стоит следующим образом: имеется отдельная машина под управлением OpenBSD 3.4 с двумя модемами, подключенная к локальной сети предприятия. Локальная сеть имеет доступ к Интернет по выделенной линии через маршрутизатор при помощи NAT. Адреса выделяются при помощи DHCP-сервера, однако это не существенно. Требуется настроить удалённый доступ к ресурсам Интернет для работников предприятия по коммутируемым линиям.

Подготовка модемов к приёму входящих звонков
Модем U.S. Robotics Sportster Voice 33600 Fax установлен на порте COM1 (/dev/cua00, он же /dev/tty00), второй внутренний модем U.S. Robotics 56K FAX на COM3 (/dev/cua02, он же /dev/tty02). Примеры в этой статье рассчитаны именно на эту конфигурацию. Модемам требуется дать команды ATE0 и ATQ1. Обратите также внимание на минимальную и максимальную скорость соединения (для U.S. Robotics это команда AT&U[значение мин. скорости соединения]&N[значение макс. скорости соединения]). Замечено, что внутренние модемы с U0 и N0 всегда соединяются на скорости 9600! Можно изменить профиль по умолчанию командами в терминале cu:

# cu -l /dev/cua00 -s 38400
Connected
at&f1e0f1q1y0 u0s0=1
at&u10&n14&w0
~.Обратите внимание, что две последние строчки отображаться не будут. Предпоследняя команда записывает в профиль по умолчанию минимальную скорость 24600 и максимальную - 33600. Проверьте установки с помощью команды ATI4.

Настройка getty
Добавьте в секции std.38400 и std.57600 файла /etc/gettytab следующие строки:

std.38400|38400-baud:
:sp#38400:
:pp=/usr/local/bin/ppplogin:
std.57600|57600-baud:
:sp#57600:
:pp=/usr/local/bin/ppplogin:Необходимо указать getty, какие порты будут использоваться для модемных соединений, отредактируйте файл /etc/ttys:

tty00 "/usr/libexec/getty std.38400" dialup on insecure
tty02 "/usr/libexec/getty std.57600" dialup on insecureПерезапустите init:

# kill -HUP 1В результате, после выполнения

# ps ax | grep tty0должно появиться нечто подобное:

14095 ?? I 0:00.02 /usr/libexec/getty std.38400 tty00
10362 ?? I 0:00.02 /usr/libexec/getty std.57600 tty02Создайте файл /usr/local/bin/ppplogin:

#! /bin/sh
/usr/sbin/pppd authНе забудьте сделать:

#chmod 500 ppplogin
#chown root ppploginСоздайте файл /etc/ppp/options:

modem
noipdefault
crtscts
asyncmap 0
name <имя сервера>
passive
mtu 576
mru 576
proxyarp
ms-dns <DNS-сервер>
debugДля каждого модема создайте файл следующего вида:

/etc/ppp/options.tty00:

38400
<адрес сервера>:<адрес клиента>/etc/ppp/options.tty02:

57600
<адрес сервера>:<адрес клиента>Создайте для каждого пользователя модемного пула (не пользователя системы) запись в файле /etc/ppp/chap-secrets:

# Пользователь Сервер Пароль IP адреса
user server password *Настройка NAT и брандмауэра
В файле /etc/sysctl.conf должна присутствовать строка, разрешающая пересылку пакетов:

net.inet.ip.forwarding=1Включите пакетный фильтр (/etc/rc.conf):

pf=YESПосле перезагрузки всё должно заработать. Обратите внимание, что по умолчанию, pf пропускает все пакеты, так что оставив всё «как есть» вы серьёзно рискуете.

Обновлено: 13.03.2015