Все о Linux. LinuxRSP.Ru
Альт Линукс СПТ 6.0 Сертификат ФСТЭК

Cвежие новости Linux и BSD, анонсы статей и книг прямо в почтовый ящик!
Подписаться письмом


 Сегодняшние новости:

В GIMP наконец-то появилась обработка с точностью 16 и 32 разряда на канал

В одном окне: GIMP 2.8

Релиз OpenBSD 5.1

HTML-редактор: BlueGriffon 1.5

Релиз Xfce 4.10

Команда Chromium представила кластер для автоматизации выявления уязвимостей

В Microsoft Office 15 будет обеспечена поддержка формата ODF 1.2

Анонсирован новый свободный анимационный фильм Tube

Обновление ядра: Linux 3.0.29, 3.2.16, 3.3.3

Представлен OpenSSH 6.0

Релиз графического редактора Pinta 1.2, претендующего на роль аналога Paint.NET

Вышел Firefox 12

Google прекращает поддержку Linux-версии приложения Picasa

Эмулятор приставок: Mednafen 0.9.21-wip

Линус Торвальдс получил премию Millennium Technology Prize 2012

Canonical не заинтересована в участии в разработке ядра Linux

Распределенные вычисления: BOINC 7.0

Google

 Новые статьи :

Передача снапшота ZFS по сети

Правила хорошего тона: SSH

Некоторые рассуждения о защите от ddos на примере защиты от SSL denial of service attack

Быстрый проброс портов на шлюзе во внутреннюю сеть или на другой хост. Быстро NAT'им порты. rinetd.

NAT'им отдельные порты или "а что делать, если мой веб-сервер внезапно переехал на другую машину". Проброс портов в локалке на шлюзе наружу.

Как справляться с запланированной недоступностью веб-сайта

Архитектура Google 2011

Мониторинг Nginx с помощью MRTG

Решение проблем при использовании "1c предприятие" 8.2 в Linux

25 правил .htaccess, которые должен знать каждый web-разработчик

Централизованное резервное копирование данных Windows и *nix серверов средствами Bacula

Краткое руководство по GNOME Shell в Ubuntu 11.10

Advanced Bash-Scripting Guide Искусство программирования на языке сценариев командной оболочки

   Дистрибутивы и атрибутика



DeveloperWorks Россия





Rambler's Top100


 
 

HOWTO : fidonet software for unix

[ index ]

Часть четвертая, программы
mgetty

Автор программы - Gert Doering, gert@greenie.muc.de, URL : http://alpha.greenie.net/mgetty/.
Берем последнюю версию с http://alpha.greenie.net/mgetty (на настоящий момент это mgetty1.1.21-Jul24.tar.gz), разворачиваем архив в, например, /usr/src/mgetty-1.1.21 и заходим в этот каталог. Все дальнейшие пути к файлам с исходниками, если не указано иное, будем считать от него. Почитайте файл README.1st и можно приступать к установке.
Скопируем policy.h-dist в policy.h, начнем редактировать policy.h :
Проверьте, где у вас лежит программа login - whereis login (обычно - /usr/bin/login)
#define DEFAULT_LOGIN_PROGRAM /usr/bin/login

Прописываем UID, GID и права владельца портов с модемами, на которых будут сидеть mgetty (см. раздел ifmail.html#port_owner)
#define DEVICE_OWNER uucp
#define DEVICE_GROUP dialer
#define FILE_MODE 0660

Каталог lock должно совпадать с LOCKDIR у ifmail'a (см. раздел ifmail.html#lock_dir), каталог с pid-файлом обычно - /var/run
#define MGETTY_PID_FILE : /var/run/mgetty.%s.pid
#define LOCK : "/var/spool/lock/LCK..%s"
Скорость для порта модема. Лучше, чтобы она совпадала со скоростью, указанной в Modemport у ifmail'а (см. ifmail.html#lock_speed), хотя в любом случае для каждого порта ее можно настроить в mgetty.config
#define DEFAULT_PORTSPEED 115200
Строка инициализации вашего модема.
#define MODEM_INIT_STRING "ATZ0"
Я факсы на модем не принимаю, поэтому установил тип в "data". Если хотите, можете изменить, но тогда соответственно подкорректируйте в policy.h секцию, посвященную факс-настройкам.
#define DEFAULT_MODEMTYPE "data"
Путь к sendmail'у.
#define MAILER "/usr/sbin/sendmail"

С policy.h все.

Теперь редактируем Makefile. Прочитайте комментарии в нем касательно -D опций, добавьте в CFLAGS опции -DBSD -DFIDO.
Подкорректируеем LIBS и INSTALL, раскоментарив подходящие для FreeBSD
LIBS=-lutil
INSTALL=install -c -o root -g wheel

Запускаем make, если все в порядке, то make install

В /usr/local/etc/mgetty+sendfax правим конфиги :
В login.config у меня остались только две строчки :

/FIDO/     fido  fido   /usr/local/fidonet/bin/ifcico @
callback      -     -   /usr/local/sbin/callback -s 57600 -S 955-55-55
Первая - запуск ifcico для ответа на входящие звонки, а вторая - запуск прграммы callback (берется из дистрибутива mgetty) для руления станцией из дома ;)
Строчки с /AutoPPP/ и /usr/bin/login я убрал за ненадобностью.

Прописываем запуск mgetty в /etc/ttys, например :
cuaa0 "/usr/local/sbin/mgetty" cons25r on insecure
cuaa1 "/usr/local/sbin/mgetty" cons25r on insecure

Если хотите добавить какие-либо параметры командной строки при запуске mgetty, прочитайте man mgetty.
Теперь активируем эти изменения : kill -1 1.
Проверим, получилось ли :
$ ps -ax | grep mgetty
13849 ?? I  0:00.06 /usr/local/sbin/mgetty cuaa0
13852 ?? I  0:00.05 /usr/local/sbin/mgetty cuaa1
23002 p0 S+ 0:00.03 /usr/local/bin/bash -c ps -ax | grep mgetty
23004 p0 R+ 0:00.00 grep mgetty

Судя по первой строчке, mgetty запущен.
Для того, чтобы в лог-файле mgetty (/var/log/mgetty.cuaa?) регистрировались входящие фидошные звонки, необходимо предоставить ifcico право на запись в этот лог, изменив группу/права. Как один из вариантов :
-rw-rw-r-- 1 root fido 4503 29 окт 09:12 mgetty.cuaa0
-rw-rw-r-- 1 root fido 1732 24 окт 12:61 mgetty.cuaa1
При входящих звонках mgetty определяет можно ли поднимать трубку по флагу, заданному в NOLOGIN_FILE в policy.h (по умолчанию - /etc/nologin.%s, где %s - cuaa0, cuaa1, etc.). Т.е. создавая/удаляя этот флажок через cron вы управляете mgetty. Например :
/etc/crontab :
--------------
# Запрет ответа на входящие звонки
# по первой линии - Пн.-Пт. с 8:00 до 23:00
0  8  * * 1-5 root touch /etc/nologin.cuaa0
0  23 * * 1-5 root rm /etc/nologin.cuaa0
# по второй линии - Пн.-Пт. с 18:00 до 22:00, Сб-Вс весь день
0  18 * * 1-5 root touch /etc/nologin.cuaa1
0  22 * * 1-5 root rm /etc/nologin.cuaa1
0  0  * * 6   root touch /etc/nologin.cuaa1
59 23 * * 7   root rm /etc/nologin.cuaa1
--------------

Но я рекомендую наложить на mgetty патч, автором которого является Alexey Gretchaninov, scorp@home.scorp.org.ru, 2:5010/81@fidonet; URL : http://scorp.org.ru/mgetty/. Этот патч, среди всего прочего, дает возможность указывать mgetty временные промежутки, когда оно будет отвечать на входящие звонки.
Забираете оттуда ftp://ftp.scorp.org.ru/mgetty/mgetty.sc.zip, раскручиваете, читаете readme, накладываете патч на mgetty : копируете mgetty-1.1.20.sc.diff в каталог с исходниками mgetty, например /usr/src/mgetty-1.1.21, переходите туда и запускаете "patch < mgetty-1.1.20.sc.diff". Патч должен наложиться. Затем make; make install.
Редактируете /usr/local/etc/mgetty+sendfax/mgetty.config :
Раздел "----- global section -----" у меня полностью закоментарен, все настройки описаны отдельно для каждой линии :
# Модем № 1, USR Courier
port cuaa0
speed 115200

# В будни отвечаем на входящие звонки только ночью,
# в выходные круглосуточно
answer-time 1.20:00-5.08:00,6.00:00-7.24:00
#
# В ZMH + NMH (с 6:00 до 8:00) отвечаем на любой скорости,
# в остальное время на скорости не менее 28800
# Для срабатывания этих двух временных промежутков
# корректируем /etc/crontab (см. together.html#ZMH)
{06:00-08:00} init-chat "" \d\dATZ0 OK
{08:00-06:00} init-chat "" \d\dATZ0 OK AT&U14 OK

# Модем № 2, USR
port cuaa1
speed 115200
answer-time 01:00-08:00
init-chat "" \d\dATZ0 OK AT&U14 OK

Hints :
Если вы монтируете корневой раздел как r/o, то имеет смысл при компиляции mgetty исправить NOLOGIN_FILE на /var/run/nologin.%s и работать с флажком как с /var/run/nologin.cuaa0.

This is a part of "HOWTO : fidonet software for unix", http://howto.id.ru
Original of this document is located at http://howto.id.ru/mgetty.html
Copyright (c) Vitaly Kuharev, 2:5058/49@fidonet, 1999-2000
Last updated : 14 apr 2000

      

Связь | О проекте LinuxRSP | Реклама | О Linux
© 1999-2012 LinuxRSP


Реклама: