ISP Hookup настройка

Как мне подсоединиться к остальному миру?

Предполагается, что мы уже имеем установленные модули сетевого программного обеспечения (напр., часть N-серии Slackware), и что вы используете последовательный порт /dev/modem.

Настройка по умолчанию позволяет обращаться к /dev/modem только как пользователь root.

Чтобы напрямую подсоединиться к shell ISP и поэкспериментировать над процессом соединения, вы можете использовать программу minicom. Она прекрасно подходит для этой цели.

Основная настройка

Настройка машины для использования в сети должна производиться от root. Первым делом удостоверьтесь, что файл /etc/hosts.deny содержит строки:

       ALL: ALL

Вы вероятно захотите позволить собственный трафик, потому добавьте в /etc/hosts.allow:
ALL: LOCAL

или что тоже самое:
ALL: 127.0.0.1

В последующем, заметьте, предполагается соединение по PPP с динамическим IP адресом. Если вы имеете фиксированный адрес, то в настройках будут некоторые изменения. Прекрасно иметь имя у машины, имя, которое пользователь с динамическим IP может действительно выбрать таким, каким пожелает. Введите имя в /etc/hostname:

       roderick

Следующий шаг - установка сервера имен в /etc/resolv.conf:
search .
nameserver 193.212.1.0

Сервер имен должен быть указан числовым IP адресом, и отличается для каждого ISP. Если требуется, вы можете прописать до трех различных серверов. Они будут опрашиваться в том порядке, в каком вы их указали. Если вы хотите иметь возможность использовать имена типа somemachine как сокращение для somemachine.acme.net, вы должны заменить первую строку на:

       search acme.net

Определенный минимум настройки также требуется для /etc/hosts. Большинство пользователей смогут управлять:
127.0.0.1 localhost
0.0.0.0   roderick

Пользователь с фиксированным адресом очевидно должен вместо 0.0.0.0 указать свой фиксированный адрес. Аналогично минимальный /etc/networks:

loopback  127.0.0.0
localnet  0.0.0.0

Также вы можете установить ваш внешний почтовый домен в /etc/mailname:
acme.net

Имя пользователя и пароль для ISP должны быть указаны в /etc/ppp/pap-secrets
dirk * PrettySecret

Для тех ISP, которые используют CHAP вместо PAP, имя файла будет /etc/ppp/chap-secrets. Наконец, надо описать процедуру соединения, которая производится перед инициализацией PPP проделать. Это делается в /etc/ppp/chatscript:

       TIMEOUT 5
"" ATZ
OK ATDT12345678
ABORT "NO CARRIER"
ABORT BUSY
ABORT "NO DIALTONE"
ABORT WAITING
TIMEOUT 45
CONNECT ""
TIMEOUT 5
"name:" ppp

Содержимое можно настроить по-своему. Телефонный номер в третьей строке, конечно, должен быть заменен на ваш. Некоторым пользователям может понадобиться заменить строку инициализации модема ATZ на более соответствующую их модему. Последняя строка указывает, что в ответ на приглашение name: надо ответить ppp. Другие системы могут иметь другие процедуры входа в систему. Чтобы проинициировать звонок, PPP-протокол может быть активизирован командой:

exec pppd connect \
'chat -v -f /etc/ppp/chatscript' \
-detach crtscts modem defaultroute \
user dirk \
/dev/modem 38400

Сейчас мы должны войти в сеть и оставаться на линии до тех пор, пока не нажмем Ctrl-C. Любые сообщения, отражающие состояние соединения, добавляются в системный журнал. Чтобы прочесть их попробуйте:
tail /var/adm/messages

Пока PPP поднят, вы напрямую подключены к Интернет, и можете использовать программы типа ftp, ncftp, rlogin, telnet, finger итд. Все эти программы являются частью пакета network. Также информация о PPP также доступна в:

/usr/lib/ppp/README.linux

/usr/lib/ppp/README.linux-chat

Наконец, дополнительное слово о безопасности. Файл /etc/inetd.conf содержит список всех сервисов, которые ваша машина обслуживает внешне. Файлом /etc/hosts.deny мы запретим внешний доступ. Для нужных сервисов доступ можно позволить файлом /etc/hosts.allow. Локальный трафик может быть разрешен:
ALL: LOCAL

См. также man 5 hosts_access. Маленькое замечание: Существует определенное недопонимание по поводу имен протоколов POP. Определения в /etc/services обычно такие:

pop2      109/tcp   pop-2     # PostOffice V.2
pop3      110/tcp   pop-3 pop # PostOffice V.3

ALT: Вместо chatscript можно использовать намного более гибкий dip. Но не одновременно с diald. ALT: Счастливчики, имеющие постоянное TCP/IP соединение через, например, Ethernet, могут спокойно пропустить все, что касается, PPP, и сосредоточиться на вопросах установки их сетевых адаптеров.

ALT: У некоторых может не быть доступа через PPP, но может быть SLIP, для которого поддержка такая же, как для PPP. Другая возможность - UUCP. Другие могут иметь только новости и почту. Описание для варианта с почтой находится на:

ftp://ftp.sn.no/user/bjorn/Linux-offline.tgz

Также возможна программа TERM. Почитайте Term-HOWTO.

3. Как мне бродить по Интернет?

Если вас больше интересует текствое содержание, вам пригодится Lynx Web-браузер. Он находится на:

ftp://sunsite.unc.edu/pub/Linux/system/Network/info-systems/lynx-2.3.bin2.tar.gz

Если у вас установлен X-windows, вы можете использовать множество графических браузеров. Chimera находится на: ftp://sunsite.unc.edu/pub/Linux/system/Network/info-systems/chimera-1.65.bin.ELF.tar.gz

http://www.unlv.edu/chimera/

Mosaic: ftp://sunsite.unc.edu/pub/Linux/system/Network/info-systems/Mosaic-2.7b1-aout.tgz

ftp://ftp.NCSA.uiuc.edu/Web/Mosaic/Unix/binaries/2.6

Mozilla (Netscape): ftp://sunsite.unc.edu/pub/Linux/system/Network/info-systems/netscape-v11b3.tar.gz

ftp://ftp.cs.uit.no/pub/www/netscape

Эти браузеры постоянно обновляются и доступны во всех версиях. Использование и оценка этих программ оговариваются определенными лицензиями. Пожалуйста, ознакомьтесь с ними.

Как отправлять и принимать электронную почту?

Самое первое, удостоверьтесь, что sendmail уcтановлен. Sendmail сортирует внутреннюю и исходящую почту, и держит ее в буфере до тех пор, пока не появится возможность для ее отправки.

Sendmail основывается на настройках в /etc/sendmail.cf. Подходящий для клиентов ISP пример может быть найден на:

ftp://ftp.sn.no/user/egilk/sendmail.cf

Он основан на procmail, как агенте доставки, но может быть легко изменен для пользователя. Если требуется иметь официальный домен для исходящей почты, то в /etc/sendmail.cf надо указать:

# who I masquerade as (null for no masquerading)
DMacme.net

Эта установка позволяет вам иметь ваше имя локально таким же, как у вашего ISP. Sendmail сейчас настроен для отправки почты прямо получателю. Для избежания продолжительных и повторяющихся соединений в тех случаях, когда соединение для приема почты медленное и непостоянное, обычно используют ISP как накопитель почты. Это можно сделать указанием спецификации DS:
# "Smart" relay host (may be null)
DSmail.acme.net

Заметьте, что sendmail чувствителен к обработке символов табуляции в файле sendmail.cf. Вы можете использовать редактор vi, чтобы убедиться, что символы табуляции не подменяются на другие. Прием почты часто может быть выполнен через протокол POP3, который может быть инициализирован при каждом соединении. Скрипт для проверки этого:

sendmail -q
popclient -3 -v mail.acme.net -u dirk -p "PrettySecret" \
-k -o /usr/spool/mail/dirk

Этот скрипт может быть запущен после установления PPP-сессии. Заметьте, что это только тест, поэтому удостоверьтесь, что местный почтовый ящик не затрагивается при выполнении этого скрипта. Опция -k говорит, что почта остается в почтовом ящике ISP, и вы просто получаете копию ее. Как только убедитесь, что скрипт работает корректно, можете удалить эту опцию. Кроме того, пароль будет отображаться в коммандной строке. Это должно быть исправлено ASAP.

Более безопасная и лучшая версия этого скрипта находится на:

ftp://ftp.sn.no/user/egilk/pop-script.tar.gz

Эта версия скрипта требует установленного procmail, который находится на: ftp://sunsite.unc.edu/pub/Linux/system/Mail/mailhandlers/procmail-3.10-2.tar.gz

Procmail - простое и гибкое средство, которое может сортировать входящую почту основываясь на большом количестве критериев. Вдобавок, можно автоматизировать задачи, вроде сообщений-памяток и т.п. Заметьте, что когда мы прямо используем procmail, как в этом случае, ситуация несколько отличается от описанной в документации на procmail Файл .forward не требуется, и также нам не нужен .procmailrc. Последний нужен только для сортировки почты.

Интерфейс пользователя для чтения и отправки почты может быть найден в программах типа Pine или Elm.

ALT: Для обычного клиента ISP, работающего по коммутируемой линии, нет необходимости иметь активным sendmail демон. Чтобы сократить потребление ресурсов можно закомментировать строку запуска sendmail, которая обчно находится в /etc/rc.d/rc.M.

ALT: Вместо sendmail может использоваться более простой smail. Он очень хорошо описан в (также как и другие полезные вещи) в Руководстве Сетевого Администратора Linux.

ALT: Для создания sendmail.cf есть пакет m4. Он прекрасно подходит для модификации существующей конфигурации.

ALT: Есть менее гибкие, но более простые альтернативы. Pine может быть запусщен в неинтерактивном режиме на указываемый в настройках промежуток времени, например. Можно даже использовать новые версии некоторых веббраузеров.

ALT: Многим энтузиастам нравится примочка Gnus к Emacs, которая работает с почтой и новостями. Дополнительная информация на:

http://www.ifi.uio.no/~larsi/

ALT: Альтернативный pop-клиент - это pop-perl5. Доступен на: ftp://sunsite.unc.edu/pub/Linux/System/Mail/pop-perl5-1.1.tar.gz

Новости

Как настроить онлайновую читалку новостей?

Пока PPP активен, можно читать новости в онлайне. Есть куча доступных программ. Два примера: rtin и trn.

Чтобы начать читать новости, то в большинстве случаев достаточно сделать (обычно только раз и для всех в файле .profile):

       export NNTPSERVER=news.acme.net

Для получения в сообщениях корректного From-address, некоторые программы могут потребовать:
export NNTP_INEWS_DOMAIN=acme.net

Как настроить оффлайновую читалку новостей?

Чтобы читать новости в offline и таким образом сократить счета за телефон и достичь большей гибкости, надо установить локальный news-spool. Это потребует усилий по настройке, и также определенного объема дискового пространства. После первичной настройки все должно более или менее благополучно работать, требуя лишь некоторого внимания время от времени.

Здесь описаны два различных решения.

Как настроить C News?

Здесь описано решение на базе ньюссервера C News и протоколе NNTP. C News предназначался для несколько других целей, но его гибкости хватает и для нашей ситуации. Также можно использовать более свежий продукт - сервер новостей INN, но он может требовать большее количество ресурсов. В любом случае не вздумайте ставить их обоих одновременно; они не дружат друг с другом.

Критично, что обработка новостей делается от имени пользователя news, и все конфигурационные файлы находятся в каталоге /usr/lib/news. Один из способов сделать это, при регистрации как root выполнить su news; cd.

Самые важные настроечные файлы это:

active - краткое описание активных групп новостей. Он обновляется командой addgroup, например, addgroup comp.os.linux.networking y.

организация может быть указана по вашему усмотрению в поле заголовка Organization: , в нашем случае:
Dirk Gently's Holistic Detective Agency

почтовое имя в нашем случае acme.net.

whoami установливает имя вашего сайта в Path: . В установке, описанной здесь, с использованием NewsX, это имя никогда не выйдет за пределы машины, так что можете установить его так, как вам нравится, если только уверены, что оно уникально.

sys управляет выборкой и дальнейшим распространением новостей. Допустим, что ISP в нашем случае добавляет acme.net к Path, и, что он единственный наш поставщик новостей. Данный пример в действительности говорит о том, что мы будем принимать все, что приходит, и, что мы отсылаем новости только на acme.net, который прежде не видели и первоначально отправляли на наш собственный сайт. В этой упрощенной установке мы допустим, что все группы приходят из одного источника. /all определяет дистрибуцию, и должно быть включено. Буква F говорит о том, что все (указатели на) исходящие новости будут складываться в файл.
ME:all/all::
acme/acme.net:all,!junk/all:FL:

Должен быть создан подкаталог для исходящих новостей, в нашем случае:
mkdir /var/spool/news/out.going/acme

mailpaths управляет отправкой сообщений в модерируемые группы, хотя эта задача обычно оставляется на усмотрение ISP.

C News нуждаются в определенной доле ежедневного внимания со стороны администратора, но его действия могут быть определены один раз и для всех командой crontab -e для пользователя news. Далее показано как может выглядеть эта установка; она может быть настроена как вам угодно:
# maintain incoming и outgoing batches
10,40 *  * * * /usr/lib/newsbin/input/newsrun

       # expire C News, once a day
30 0  * * * /usr/lib/newsbin/expire/doexpire

       # monitor и report if needed
00 2  * * sat /usr/lib/newsbin/maint/addmissing
40 3  * * * /usr/lib/newsbin/maint/newswatch
50 3  * * * /usr/lib/newsbin/maint/newsdaily

newsrun перемещает входящие и исходящие статьи (дважды в час), doexpire будет удалять утаревшие статьи (каждую нось в 00:30), а три последние команды выополняют различные административные и корректирующие ошибки функции. Нужно также удостовериться, что при запуске машины все чисто. От пользователя root, добавьте строку в /etc/rc.d/rc.local:

       su news -c /usr/lib/newsbin/maint/newsboot

News могут обрабатываться программой NewsX, извлекающей новости с NNTP-сервера. Программа может быть найдена на: ftp://sunsite.unc.edu/pub/Linux/system/News/newsx-0.1.tar.gzOr:

ftp://ftp.sn.no/user/egilk/newsx-0.3.tar.gz

Установка NewsX предельно проста. Установка в классическом случае:
make
su
make install
exit

Для приведенной установки все, что вы должны сделать - это создать группы, которые вы хотите читать, используя команду "addgroup". Чтобы выбрать статьи, пользователь news выдает следующие команды (при установке связи по PPP, или аналогичной -):

newsrun
newsx acme news.acme.net
newsrun

Опция -d дает непрерывную распечатку экрану. За подробной информацией обратитесь к документации NewsX. NewsX будет также заботиться о регистрации исходящих новостей.

Для управления удалением статей при их устаревании требуется файл explist, требуется. Комментарии в этом примере должны объяснить, что мы делаем:

# hold onto history lines 14 days, nobody gets >120 days
/expired/           x    14   -
/bounds/            x    0-1-120 -

       # retain these for 2 months
comp.sources,comp.os.linux.all     x    60   -

       # noise gets thrown away fast
junk,control             x    2    -

       # default:  14 days, no archive
all                 x    14   -

ALT: В маленьком спуле новостей, не требуется частое управление группами новостей. Полезность трафика изменяется в широких пределах. Основная задача состоит в определении, какие статьи отбросить, а какие группы создать автоматически. Чтобы гарантировать, что управляющие сообщения, содержащие новую группу, не создадут у нас беспорядок, в файле, называемом newgroupperm определяется, что именно мы позволяем:

comp.os.linux  tale@uunet.com yv
all       any       nq

В этом примере, будут созданы все группы в иерархии comp.os.linux (y), и пользовательские новости будут сообщаться (v). Все остальные будут молча (q) проигнорированы (n). Последняя строка нужна, если вы хотите создавать все группы вручную. ALT: Альтернатива NewsX - suck, или slurp совместно с postit. Slurp использует NNTP NEWNEWS, который может работать с несколькими серверами.

Как настроить Leafnode?

Другое решение состоит в установке интегрированного пакета leafnode. Он выполняет все задачи, требуемые для персонального спула новостей, и легко настраивается. Доступен на:

http://www.troll.no/freebies/leafnode.html

Как для C News, вся обработка новостей ведется от пользователя news. Домашний каталог для leafnode /usr/lib/leafnode. Для установки введите:

cd /usr/lib/leafnode
tar -xzvf leafnode-0.8.tgz
cd leafnode-0.8
make
su
make install

Оставаясь пользователем root, измените строку, которая управляет NNTP в /etc/inetd.conf:
nntp  stream  tcp  nowait  news  /usr/sbin/tcpd /usr/local/sbin/leafnode

Активизация:
killall -HUP inetd

Возвратимся к пользователю news, напечатав exit. В /usr/lib/leafnode/config изменяем строку, которая определяет сервер NNTP. В нашем случае:
server = news.acme.net

Leafnode будет обслуживать себя добавлением следующей команды через crontab -e от пользователя news:
# expire Leafnode, once a day
0 4 * * * /usr/local/sbin/texpire

Обмен новостями производится также от пользователя news следующей командой (PPP поднят и запущен):
/usr/local/sbin/fetch

Пользователи, которые хотят читать новости, должны после этого использовать рецепт "Как мне установить онлайновую читалку новостей?", за исключением того, что их настройки производятся для локальной машины, т.е.:
export NNTPSERVER=localhost

Это должно быть все имеется к этому. Первая выборка посты передаст список доступных групп новостей. Leafnode затем посмотрит, какие группы запрошены пользователями, и соответственно настроится при следующей активизации. ALT: Альтернатива leafnode - nntpcache. Он доступен на:

ftp://ftp.suburbia.net/pub/nntpcache/nntpcache.tgz

Как автоматизировать процедуру соединения?

Автоматизированная обработка новостей и почты в Linux делается легко.

Во-первых, надо создать /usr/lib/ppp/ppp-on, который устанавливает соединение с ISP. Часто этот файл содержит только:

       /usr/sbin/pppd

В /etc/ppp/options указываются такие спецификации:
connect "/usr/lib/ppp/chat -v -f /etc/ppp/chatscript"
crtscts
modem
defaultroute
asyncmap 00000000
user dirk
/dev/modem 38400

Для завершения соединения, используйте соответственнно файл /usr/lib/ppp/ppp-off. Проверив функциональные возможности этих двух скриптов, теперь нужно написать скрипты, которые выполняют другие задачи. Скрипт для забора email был описан выше, и мы поместим его в /home/dirk/pop.

Скрипт обмена почтой может быть потом выполнен как /root/mail:

#! /bin/sh
#
# exchange mail
# 10 minutes timeout:
TIMEOUT=600
DT=10

       # kick sendmail:
sendmail -q &

       # retrieve mail:
su dirk -c /home/dirk/pop

       # wait for sendmail to terminate:
t=0
while ! mailq | grep -q "Mail queue is empty"; do
t=$[$t+$DT]
if [ $t -gt $TIMEOUT ] ; then
echo "sendmail -q timeout ($TIMEOUT).."
exit 1
fi
sleep $DT
done

exit 0

Скрипт обмена новостями может быть записан как /usr/lib/news/news:
#!/bin/sh
#
# обмен новостями
# должен быть запущен от пользователя news:
cd /usr/lib/news

       #обновить исходящие пакеты (C News):
/usr/lib/newsbin/input/newsrun < /dev/null

       #обмен новостями:
/usr/lib/newsbin/newsx acme news.acme.net

       #и обработать пришедшие пакеты:
/usr/lib/newsbin/input/newsrun < /dev/null

Скрипт, соединяет различные составляющие и куски, и может быть размещен как /root/news+mail:
#!/bin/sh
#
# обмен новостями и почтой
# должен запускаться от root
#
if ! /usr/lib/ppp/ppp-on; then
exit 1
fi
trap "/usr/lib/ppp/ppp-off" 1 2 3 15

  #обмен почтой и новостями
/root/mail &
su news -c ~news/news
wait

  #отсодиниться..
/usr/lib/ppp/ppp-off

  #обновить исходящие пакеты (C News)::
su news -c /usr/lib/newsbin/input/newsrun < /dev/null &

  exit 0

Легко добавить расширение к вышеприведенному скрипту для установления соединения, если имеется почта и новости для отправки. Давайте назовем его /root/news+mail.cond, и имейте в виду, что имя спула исходящих новостей должно быть исправлено на значение в вашей системе:
#!/bin/sh
#
# exchange news и email, only if outgoing news или mail
# (C News spool)
if [ -s /var/spool/news/out.going/acme/togo ] ||
! ( mailq | grep -q "Mail queue is empty"); then
/root/news+mail
fi

Осталось только задать время, когда все это запускать. Это делается использованием команды crontab -e от имени root. Давайте назначим обмен почтой и новостями на 07:00 утра и затем каждые четыре часа отправку почты и новостей:
00 7      * * *     /root/news+mail
00 11,15,19,23 * * *     /root/news+mail.cond

Удостоверьтесть, что каждый компонент тщательно проверен, прежде чем начнете использовать их вместе. Позже можно добавить несколько других задач, таких как установка времени дня (используя ntpdate) и автоматическое обновление (зеркалирование) локально разрабатываемых файлов WWW и FTP на ISP (используя make и ftp). ALT: В зависимости от предпочтений, также возможно поключить какой-либо процесс. При каждом поднятии PPP, запускается скрипт /etc/ppp/ip-up. Здесь можно добавить команды для запуска процедуры обмена почтой и новостями. См. man pppd для подробностей.

ALT: Также возможно автоматически поднимать PPP при обнаружении трафика. Есть много элегантных решений, но они сильно зависят от правильной настройки, которая должна помочь избежать частых (и дорогостоящих) установлений соединений. Больше информации можно почерпнуть на:

http://www.cs.toronto.edu/~schenk/diald.html

Утилита diald доступна на: ftp://sunsite.unc.edu/pub/Linux/system/Network/serial/diald-0.13.tar.gz

В других местах можно обнаружить и другие варианты создания PPP-сессий.

Слова напоследок о каких других вещах я должен знать?

Различные сообщения об ошибках в системе обычно будут выдаваться в виде внутреннего email. Чтобы гарантировать, что их можно будет прочесть, нужно создать /etc/aliases. Не забудьте выполнить команду newaliases при каждом изменении этого файла. Пример, подходящий в большинстве случаев:
PostMaster: root
ftp: root
news: root
usenet: root
FaxMaster: root
fax: root
WebMaster: root
MAILER.DAEMON: root

Многие программы для Linux могут быть надены на Sunsite, который обычно весьма загружен. Однако существует куча зеркал, и вам стоит попытаться выйти на зеркало поближе к дому, например, ftp://ftp.nvg.unit.no/pub/linux/sunsite/

Если вам пришлось перейти из Yarn, он должен быть преоразован в стандартные почтовые ящики, используя yarn2mf, который доступен: ftp://ftp.sn.no/user/egilk/yarn2mf.zip