Вход/Регистрация
Linux
вернуться

Стахнов Алексей Александрович

Шрифт:

#!/bin/sh

NIT="ATZ" # Строка инициализации модема

PHONE="223322" # Телефон провайдера

ACCOUNT="myname" # логин

PASSWORD="vasya" # пароль

# Определяем функцию для посылки

# сообщений в системный журнал

# и в FIFO-канал diald

function message

{

[$FIFO] && echo "message $*" >$FIFO

logger -p local2.info -t connect "$*"

}

# Начинаем процедуру связи

# Инициализируем модем

message "*** Initializing Modem ***"

chat "" $INIT OK ""

if [$?!= 0]

then

message"!!! Failed to initialize modem!!!"

exit 1

fi

# Пытаемся дозвониться

message "*** Dialing system ***"

chat \

ABORT "NO CARRIER" \

ABORT BUSY \

ABORT "NO DIALTONE" \

ABORT ERROR \

"" ATDT$PHONE \

CONNECT ""

case $? in

0) message "*** Connected ***";;

1) message "!!! Chat Error !!!"; exit 1;;

2) message "!!! Chat Script Error !!!"; exit 1;;

3) message "!!! Chat Timeout !!!"; exit 1;;

4) message "!!! No Carrier !!!"; exit 1;;

5) message "!!! Busy !!!"; exit 1;;

6) message "!!! No DialTone !!!; exit 1;;

7) message "!!! Modem Error !!!; exit 1;;

*)esac

# Проходим авторизацию

message "*** Send login and password ***"

chat \

login: $ACCOUNT \

password: $PASSWORD TIMEOUT 5 ""

if [$? != 0] then

message"!!! Failed to send!!!"

exit 1

fi

# Все прошло удачно!

message "*** Protocol started ***"

Вышеприведенный скрипт – просто сценарий на языке командной оболочки, который вам необходимо немного адаптировать для ваших параметров. Настройка основной конфигурации: /etc/diald.conf

/etc/diald.conf – основной конфигурационный файл программы diald, в котором задаются параметры устанавливаемого соединения и определяется поведение программы. Набор команд конфигурации у diald достаточно обширен, поэтому в приведенном примере будут использованы только необходимые, а подробную информацию по конфигурационным командам можно посмотреть в документации на программу diald.

Содержимое файла diald.conf:

# Протокол для связи с провайдером

mode ррр

# Вести журнал сеансов связи diald.log

accounting-log /var/log/diald.log

# Для управления демоном из внешних программ

# организовать канал FIFO – diald.ctl.

fifo /etc/diald/diald.ctl

# Для дозвона использовать файл /etc/diald/connect

connect /etc/diald/connect

# Далее несколько команд, описывающих применяемый модем.

# Поскольку мы уже определили параметры в /etc/ppp/options,

# то нижеприведенные команды необходимо закомментировать во избежание

# конфликтов в файле /etc/ppp/options

# device /dev/modem

# speed 115200

 #modem

 #lock

 #crtscts

# Назначаем локальный и удаленный адреса нашего

# соединения. Если при связи с провайдером IP-адрес

# для вас выделяется динамически, то здесь можно

# поставить любые свободные адреса из диапазона,

# оговоренного при настройке нашей TCP/IP-сети.

# При запуске РРР diald сам выставит корректные значения

local 192.168.0.100

remote 192.168.0.101

# Провайдер дает нам динамический IP

dynamic

# Установить маршрут по умолчанию

# на виртуальное соединение

defaultroute

# Максимальное количество неудачных попыток дозвона

dial-fail-limit 10

# Задержка между попытками дозвона

redial-timeout 5

# время ожидания завершения скрипта connect

connect-timeout 120

# Файл с правилами для тайм-аутов

include /etc/diald/standard.filter

Настройка правил тайм-аутов: /etc/diald/standard.filter

Следующее, что вы должны сделать – произвести настройку правил тайм-аутов. Это самый сложный момент настройки diald, т. к. требует знания внутренней структуры IP-пакетов. Однако разработчики diald – люди добрые и стандартный файл standard.filter имеет вполне приемлемые для большинства случаев настройки. Оставив в нем все, как есть, мы получим набор правил, рассчитанный на трехминутную паузу между окончанием активности в Интернете и разрывом связи с провайдером.

Комплексное тестирование

После проделанных манипуляций настало время проверить – правильно ли настроены наши программы. Для этого на компьютере желательно временно отключить все настройки брандмауэра (если вы, конечно, установили его). Затем необходимо запустить программу diald и попытаться выйти в "большой мир". Можно использовать браузер lynx (и зайти, например, на сайт, можно – программу ping.

Если все было настроено корректно, то после ввода предыдущей команды модем должен начать дозваниваться до провайдера. Через некоторое время связь будет установлена. Однако практически всегда lynx выдает сообщение о том, что не может соединиться с удаленным сервером! В данном случае – это нормальное явление. Дело в том, что при РРР-соединении с динамическими IP-адресами в силу определенных особенностей первый пакет обычно бывает утерян и не доходит до адресата. В результате мы ждем ответа от сервера, а он об этом и не подозревает. Достаточно повторить введенную ранее команду, чтобы все заработало.

Далее нам необходимо убедиться, что модем аккуратно разорвет соединение по прошествии трех минут. Дождавшись конца загрузки Web-страницы, засечем время. Примерно через три минуты diald должен дать команду на разрыв соединения.

Если у вас все прошло именно таким образом, значит система работает как надо. В противном случае проанализируйте последние строки системного журнала (/var/log/messages).

Указанными действиями мы проверили корректную работу только с нашего компьютера-маршрутизатора. Однако нам надо сделать то же самое и с любого компьютера в локальной сети, поэтому попробуем повторить описанную процедуру и на любом компьютере. Реакция diald должна быть аналогичной. Если что-то пошло не так, проверьте корректность настройки протокола TCP/IP на этой машине, в частности – настройки сетевого шлюза, которые должны указывать на наш компьютер-маршрутизатор.

Организация связи по выделенному каналу

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

Настройка связи с провайдером

Как и в предыдущем случае, нам необходимо правильно настроить программу pppd. Поскольку параметры программы pppd мы уже рассматривали, просто приведем файл options и прокомментируем его содержание.

# Устройство

/dev/ttyS0

# Скорость

115200

mru 1500

noauth

# наш интерфейс : удаленный интерфейс

192.168.0.100:192.168.0.101

# маска подсети

netmask 255.255.255.0

bsdcomp 0

chap-interval 15

debug

crtscts

–detach

defaultroute

Первые две строки определяют последовательный порт, к которому подключен наш модем, и скорость, на которой будет происходить обмен между модемом и последовательным портом. Далее – обратите внимание на строку со следующим содержимым:

192.168.0.100:192.168.0.101

Эта строка определяет IP-адреса нашего последовательного интерфейса и провайдера. Такую строку необходимо добавить, если провайдер выдал нам постоянный IP-адрес. Для статического IP-адреса также необходимо задать маску подсети.

В том случае, если у вас одно подключение к провайдеру, то можно в конец файла вписать команду defauitroute, что позволит вам добавить маршрут в системную таблицу маршрутизации, используя удаленную сторону как шлюз.

Вот и все, что требовалось для конфигурации программы pppd для соединения по выделенному каналу. Правда, намного проще, чем с коммутируемым?

Осталось только отредактировать файл inittab, чтобы pppd автоматически стартовала. Для этого необходимо добавить следующую строчку:

7: 2345: respawn: /usr/sbin/pppd file /etc/ppp/options.ttyS0 > /var/log/pppS0.log

Комплексное тестирование

Теперь настало время проверить – правильно ли настроено наше соединение по выделенному каналу. Для этого перезагрузите компьютер-шлюз для вступления в силу внесенных в файл inittab изменений и временно отключите все настройки брандмауэра (если вы, конечно, установили его). Затем необходимо попытаться выйти в Интернет. Быстрее всего – использовать программу ping:

ping http://www.bhv.ru

Если все было настроено корректно, то вы увидите отклик от сайта www.bhv.ru.

Если у вас все прошло именно таким образом, значит, система работает как надо. В противном случае проанализируйте последние строки системного журнала (/var/log/messages).

Этим действием мы проверили корректную работу только с нашего компьютера-маршрутизатора. Однако нам надо сделать то же самое и с любого компьютера в локальной сети. Если что-то пошло не так, проверьте корректность настройки протокола TCP/IP на этой машине, в частности – настройки сетевого шлюза, которые должны указывать на наш компьютер-маршрутизатор.

Итак, вы получили вполне работоспособный шлюз в Интернет для вашей локальной сети. Однако это далеко не все. Система наша открыта для любого постороннего вмешательства, а шлюз должен обеспечить беззащитную локальную сеть защитой извне и изнутри, вести учет потребленного трафика (и причем зачастую – покомпьютерно), ограничить нас от информации нежелательной или сомнительной (например баннеров), обработать статистику и красиво ее подать – лучше всего графически. Как видите – задач много, и мы будем их решать постепенно.

Защита локальной сети

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

Установка proxy-сервера

Следующее, что мы должны решить для нашей локальной сети – каким образом минимизировать расходы на потребляемый Интернетом трафик и как увеличить скорость получения информации. Для решения этой проблемы используется стандартный рецепт – proxy-сервер. Что собой представляет proxy-сервер? Если с помощью браузера, настроенного для работы через proxy-сервер, вы запросите из Интернета какой-либо документ, и при этом окажется, что некоторое время назад кто-то уже обращался с подобным запросом, вы получите документ незамедлительно, с максимальной скоростью, на которую способно ваше сетевое подключение, потому что направлена вам будет копия документа, взятая из кэша proxy-сервера. Если же в кэше proxy-сервера данный документ отсутствует, то proxy-сервер запросит удаленный Web-cepвep, хранящий оригинал, выдаст документ вам, и одновременно положит копию документа в свой кэш на случай такого же запроса. Чем больше пользователей пользуются proxy-сервером, тем более существенной становится его помощь.

Наиболее часто используемой программой proxy является программа Squid – высокопроизводительный кэширующий proxy-сервер, поддерживающий протоколы FTP, Gopher, и HTTP. Squid сохраняет часто запрашиваемые данные в оперативной памяти компьютера, что позволяет резко увеличить производительность proxy-сервера, кэширует DNS-запросы (это свойство интересно тем, кто не имеет своего DNS-сервера). Помимо вышеперечисленных возможностей, поддерживает SSL, расширенный контроль доступа и полную регистрацию запросов.

Программа Squid описана в гл. 22, однако мы позволим себе напомнить некоторые интересные моменты по ее использованию.

Transparent proxy

Transparent proxy – таким образом настроенный proxy-сервер, что его использование прозрачно для пользователей. Это имеет как хорошую, так и плохую стороны. С одной стороны, пользователям не придется настраивать соединение через proxy-сервер в своей системе, а трафик гарантированно проходит через proxy-сервер. С другой стороны, теряется свобода выбора пользователя – пользоваться или нет proxy-сервером. Кроме того, некоторые сайты некорректно обрабатываются proxy.

Для организации transparent proxy необходимо таким образом настроить маршрутизатор (брандмауэр), чтобы транзитные пакеты, предназначенные для 80 порта, попадали на вход proxy-сервера. Соответствующие настройки transparent proxy приведены в гл. 22.

Борьба с баннерами

Наверняка вам встречались Web-страницы, на которых рекламных баннеров было больше, чем нужной информации. В этом случае можно настроить локальный сервер Squid таким образом, чтобы не происходила закачка баннеров. Борьбу с баннерами можно производить разными методами:

• настроить отдельный proxy-сервер с ограничением баннеров: хочешь – используй, не хочешь – не используй;

• совместить ограничение баннеров с transparent proxy;

• организовать proxy на локальной системе для ограничения баннеров.

Соответствующие настройки программы Squid для борьбы с баннерами приведены в гл. 22.

Разделение внешнего канала (ограничение трафика)

Часто бывает так, что у вас есть внешний канал – скажем, 128 Кбит, и несколько групп пользователей с определенным приоритетом.

И надо, чтобы одна группа имела фиксированную ширину наружного канала (скажем, 64 Кбит), а две другие – ширину наружного канала по 32 Кбит. Для решения этой непростой задачи мы также можем воспользоваться Squid. Соответствующие настройки программы Squid для разделения внешнего канала приведены в гл. 22.

Помимо Squid, для этого можно воспользоваться специализированными программами, называемыми traffic shaper. Существует несколько программ такого типа с различной функциональностью. В частности, есть traffic shaper, которая позволяет ограничить канал не по пропускной способности, а по полученным мегабайтам. Принцип действия ее оригинален и прост. Допустим, у вас выделенный канал, причем в арендную плату входит один гигабайт входящего трафика. В программе traffic shaper выставляется ограничение один гигабайт в месяц. Далее происходит следующее. В начале информация качается с той скоростью, с какой способен передавать информацию выделенный канал, но при приближении к заветной цифре – пропускная способность канала, ограниченного traffic shaper, все уменьшается и уменьшается, не позволяя вам выйти за рамки ограничения в один гигабайт в месяц. В результате, в последние дни месяца скорость канала может упасть до десятков байтов в секунду.

В качестве стабильной и хорошо конфигурируемой программы типа traffic shaper можно порекомендовать пакет CBQ. Ограничивать трафик можно и с помощью утилиты tc, входящей в пакет iproute2.

Мониторинг загрузки каналов

Для анализа загрузки интернет-канала необходимо использовать дополнительный пакет, поскольку разбираться самим в log-файлах системы – задача неблагодарная. Чтобы обеспечить требуемую наглядность, такой пакет должен выдавать информацию в графической форме, причем, желательно, с помощью Web-интерфейса. Все эти условия реализованы в программах MRTG (Multi Router Traffic Grapher) и RRDtool (Round Robin Database).

Программа MRTG

MRTG создает HTML-страницу с отображением загрузки канала за сутки, неделю, месяц и год. Для этого используется написанный на Perl скрипт, который опрашивает маршрутизатор через SNMP, а программа, написанная на С, обрабатывает получившийся результат и создает встроенные в HTML-страницу изображения в формате GIF/PNG. Помимо собранной самостоятельно информации пакет MRTG может обрабатывать информацию и из других источников (cpuinfo, df, squid и т. п.) и строить графики по полученной информации.

Большим преимуществом данной программы является постоянный размер журналов, в которых более старая информация хранится с меньшими подробностями.

Внешний вид получаемых графиков приведен на рис. 30.1.

Рис. 30.1. Результат работы программы MRTG

  • Читать дальше
  • 1
  • ...
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: