Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
Сергей Ропчан
В любой фирме наверняка найдётся один-два человека, которым жизненно необходимо получать почту за пределами «офисной сети». Хорошо, если ваш шеф человек с понятием и свято чтит КЗОТ, тогда он просто скажет: «Ребята, в воскресенье нужно отдыхать!». А если нет? Тогда не остается ничего другого, кроме как отвлечься на пару минут от раскладывания пасьянса и сделать это. Для тех, кто еще не понял – в статье пойдет речь о том, как настроить удаленный доступ к серверу.
Во избежание всевозможных вопросов, в том числе и системных (и да не нарветесь вы на kernel panic), на всякий случай уточняю:
n В качестве модема использовалась покрытая пылью коробочка с надписью «ZyXEL 228S».
n Подключалось это к серийному порту почтового сервера.
n В качестве операционной системы стоял, стоит и будет стоять ASPLinux версии 7.2.
Что ж, приступим.
Шаг 1
После того, как модем должным образом подключен и сконфигурирован, например, утилитой kudzu, попробуем его для начала протестировать на предмет поднятия трубки. Для этого запускаем программу /sbin/mgetty (не путать с mingetty!) следующим образом:
mgetty -D -s 38400 -n 4 ttyS1
То есть указываем mgetty работать с модемом на линии /dev/ttyS1 только в режиме DATA (-D) со скоростью 38400 (-s), а трубку поднимать только после четвертого гудка (-n). Если модем действительно подключен к этой линии (а не к ttyS0, например), то при попытке дозвона вы услышите ровно четыре длинных гудка, прежде чем модем «поднимет трубку».
Шаг 2
Все устройства, с помощью которых можно получить доступ на линуксовый сервер, должны быть должным образом прописаны в файле /etc/inittab. Программа init считывает этот файл и «принуждает» определенные программы отслеживать попытки регистрации в системе через эти устройства. Чтобы каждый раз не запускать mgetty руками, переложим это занятие на широкие плечи init.
Открываем файл inittab и дописываем туда вышеуказанную командную строку следующим образом:
s1:2345:respawn:/sbin/mgetty -D -s 38400 -n 4 ttyS1
То есть даем init ценное указание под кодовым названием s1: активизировать mgetty на четырех уровнях запуска (2345) и «держать его постоянно» (respawn).
Даем команду ps fax|less, чтобы узнать PID процесса init (а вдруг он не равен 1?) и PID mgetty (а вдруг он остался висеть после «ручного» запуска?). Процесс mgetty, если он подгружен, убиваем обычным образом (kill <PID>), а вот init ненавязчиво просим перечитать свой конфигурационный файл при помощи сигнала «SIGHUP»: kill -SIGHUP <PID>. После этого можно попробовать тестирования ради убить несколько раз mgetty – он все равно будет появляться автоматически под новыми PID’ами. Именно подобное поведение процесса, кстати говоря, и подразумевается под параметром respawn в inittab.
Шаг 3
Теперь необходимо сконфигурировать mgetty так, чтобы при успешном коннекте инициировалось PPP-соединение. Для этого открываем конфигурационный файл /etc/mgetty+sendfax/login.conf и пишем там следующее (остальные строчки конфига лично я удалил):
/AutoPPP/ --ppp /usr/sbin/pppd auth -chap +pap login modem crtscts lock proxyarp
/AutoPPP/ расшифровывается как «обнаруживать PPP-соединение автоматически». Далее следует путь к программе, которую нужно запустить при обнаружении попытки установить PPP-соединение и её параметры:
n auth означает, что перед тем как пустить клиента в сетку, необходимо провести авторизацию;
n -chap – не проводить chap-авторизацию;
n +pap – проводить pap-авторизацию;
n login – использовать для pap-авторизации базу зарегистрированных в системе пользователей;