Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #70, ОКТЯБРЬ 2004 г.

Диалап под крылом пингвина

j1m (j1m@list.ru)

Хакер, номер #070, стр. 070-110-1


Выходим в Сеть

К сожалению, в настоящее время большинству из нас приходится довольствоваться тоскливым диалапом. Медленное соединение, неудобная повременная оплата, постоянные обрывы связи создают немало проблем. Но не стоит отчаиваться, эта статья и *nix помогут тебе улучшить ситуацию.

Позвони мне, позвони...

Сначала я хотел рассказать про создание собственных скриптов для дозвона. Но чтобы объяснить все подробности работы pppd и chat, потребовалась бы целая статья. Мы поступим проще - воспользуемся звонилкой wvdial. С ее помощью процесс настройки соединения займет не более 5 минут. Беги на сайт разработчиков и качай последнюю версию вместе с библиотекой wvstreams. Собирай сначала библиотеку, затем сам wvdial. Установка стандартна, поэтому здесь не останавливаемся (самые ленивые могут взять бинарный пакет, благо он есть в любом дистрибутиве). Конфигурировать wvdial одно удовольствие - все автоматизировано по полной программе. Для начала создадим начальную конфигурацию:

# wvdialconf /etc/wvdial.conf

wvdialconf сам найдет модем, проверит максимальную скорость порта, подберет все необходимые параметры и запишет результаты в /etc/wvdial.conf. Вот примерное содержимое этого файла:

# vi /etc/wvdial.conf

[Dialer Defaults]

# Порт модема

Modem = /dev/ttyS0

# Максимальная скорость порта

Baud = 115200

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

Init1 = ATZ

Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0

# Устанавливаем импульсный набор номера (для тонового ATDT)

Dial Command = ATDP

# Номер телефона

Phone = 12345

# Логин

Username = name

# Пароль

Password = secret

# Второй провайдер (опционально)

[Dialer phone2]

Phone = 54321

Username = name2

Password = secret2

Номеров телефонов может быть несколько. По второму телефону из нашего конфига можно позвонить командой

$ wvdial phone2

Не забудь поставить на wvdial suid-бит или воспользуйся sudo.

Кэшируем помаленьку

Когда сидишь на диалапе, значительное время затрачивается только на резолвинг. Почему бы тогда не запоминать адреса часто посещаемых серверов, чтобы не гонять лишний трафик и не тратить драгоценное время? Вот этим и занимается кэширующий DNS-сервер pdnsd. После установки в /usr/local/etc появится конфигурационный файл pdnsd.conf.sample, а в каталоге /var/cache/pdnsd - файл pdnsd.cache, в котором и будут находиться скэшированные адреса. Переименуй pdnsd.conf.sample в pdnsd.conf и открой его редактором. Нас интересуют только первые две секции: global и server.

# vi /usr/local/etc/pdnsd.conf

global {

# Максимальный размер кэша в Кб

perm_cache=2048;

# Каталог для хранения кэша

cache_dir="/var/cache/pdnsd";

# Максимальное время хранения записи в секундах

max_ttl=604800;

# От имени какого пользователя запускать сервер

run_as="nobody";

# Стартовать в режиме демона

daemon=on

# Порт и адрес, на которых будет висеть сервер

server_port=53;

server_ip="127.0.0.1";

}

server {

# IP-адрес DNS-сервера (укажи здесь DNS твоего прова)

ip="192.168.0.1";

# Таймаут между DNS-запросами к этому серверу

timeout=30;

# Не проверять доступность сервера

Содержание  Вперед на стр. 070-110-2