Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

Руководство: Как создать домашнюю компьютерную сеть ИНТРАНЕТ

Автор: Sarma Seetamraju
электронный адрес: (sarma@usa.net)
Перевод: Станислав Рогин, SWSoft Pte Ltd.
Дата: Август 1997

Место: убивая время в поезде "Amtrack & Path", по дороге в пригород Манхэттен.
На компьютере: ноутбук Magnavox 1991 года 386 SX 16МГц, работающем с linux.
(Если после этого вы только заикнетесь, что вот именно на ВАШЕМ компьютере
не работает Linux, то я запихаю вам ваш компьютер, угадайте куда .... )

Перенесено в HTML для: Всех ненормальных людей, которые не могут читать обычный текст.

ВНИМАНИЕ: SOCKS - СВОБОДНО распространяемый комплект под UNIX-системы. Я очень сомневаюсь, что он существует для ДРУГИХ платформ. Если вы хотите, чтобы NETSCAPE продолжал поддерживать SOCKS, то присылайте мне убедительные аргументы в их пользу (с примерами того, как вы использовали SOCKS).


Этот документ описывает необходимые процедуры для создания сети ИНТРАНЕТ у вас дома. Далее мы настроим эту сеть так, что на любых компьютерах в ней для доступа в интернет можно будет использовать обозреватель NETSCAPE.

Сеть, которую мы будем создавать, представляет из себя следующее:

  • Несколько (два или больше) компьютеров...
  • ОДИН (ТОЛЬКО ОДИН!) компьютер с установленным Linux
  • Остальные компьютеры - с Win95 или WinNT. (Не думаю, что была бы какая-нибудь разница, если бы это были MACintosh).
  • ТОЛЬКО компьютер с LINUX имеет PPP-доступ в интернет. Другие машины, конечно, тоже МОГУТ иметь модемы. Но мы их здесь не рассматриваем.
  • Если у вас будет, хотя бы ОДНА машина-клиент с UNIX, то, возможно, вам надлежит обратиться к документации по пакету "sockd", ибо вам придется использовать команды "rlogin", "ftp" и т.п... под UNIX-клиентом. В этом случае данный документ вам не поможет ничем.
  • Протоколом сети будет TCP/IP для ethernet. Никаких netbeui и т.п....
К единственному компьютеру с linux мы будем обращаться как к "СИСТЕМЕ LINUX", а остальные компьютеры будем называть "ДРУГИЕ МАШИНЫ" или "КЛИЕНТЫ". Компьютер с linux будет также иногда называться "СЕРВЕРОМ".
Если вы не понимаете содержание следующего параграфа, то вам надлежит обратиться к разделу ДЛЯ НОВИЧКОВ В ОБЛАСТИ КОМПЬЮТЕРНЫХ СЕТЕЙ. А затем возвращайтесь обратно...

Все последующее описание предполагает, что интерфейсу eth0 сервера назначен адрес IP (с помощью "ifconfig").

Также данное руководство нисколько не ограничивает вас в применении только протокола PPP (вы свободно можете использовать SLIP, PPTP и т.д.). Адрес IP "ppp0"-порта абсолютно несущественен. Это описание лишь требует, чтоб хотя бы один такой порт был и нормально работал.


ПОЧЕМУ МЫ ИСПОЛЬЗУЕМ ТАКУЮ КОНФИГУРАЦИЮ?
  • Машина с linux используется для связи с внешним миром. Только linux-компьютер имеет НАСТОЯЩИЙ адрес IP. (смотри ниже). (смотри далее раздел "Помощь ON-LINE"). Компьютер с linux имеет непостоянное PPP-подключение к глобальной сети.
  • Остальные машины в сети имеют "несуществующие", "неправильные" IP-адреса (для внешней сети).
  • Для подключения к интернет можно будет использовать только "ДРУГИЕ КОМПЬЮТЕРЫ" и только с клиентом NETSCAPE, а НЕ машину с linux!
  • Мне, например, совсем нет необходимости использовать с "других ПК" программу "telnet", или использовать FTP для прямого доступа в глобальную сеть. Если даже возникнет такая проблема, то ее можно решить, используя telnet сначала на машину с linux, и далее в глобальную сеть.
Мне НЕ хотелось тратить много денег на ПК с linux, который не будет работать в качестве Х-сервер (и вообще запускать какие-либо Х-приложения). Поэтому я приобрел 486Dx/4 100 МГц с шиной PCI (мне не хочется возиться с ISA), за видеокарту SVGA я уплатил 20$, еще 20$ за NE2000-совместимую сетевую карту, и еще 20$ на кабели, терминаторы и т.п. (ибо я не знаю, как можно в организуемой нами сейчас сети использовать концентраторы Ethernet).

90$ стоила оперативная память (по средней цене 60$ за 16 Мб), и в итоге мы имеем прекрасно работающую linux-систему всего за 270$. Конечно, не стоит перегружать нашу систему компьютерами с NT или другими операционными системами, требующими много ресурсов памяти-винчестеров-процессоров. Конечно, мой клиентский ПК - Pentium-100 с 32 Мб памяти и двумя винчестерами (один из которых впоследствии был использован для linux-машины), работает под Win95.

Машина с linux удобно расположилась на коробке из-под пиццы. Мне неохота было тратить еще 50$ на корпус, тем более, что один из моих друзей одолжил мне блок питания для ПК.


В качестве клиента я выбрал NETSCAPE, так как фактически уже вручную использовать FTP не имеет смысла - это не нужно. Любая уважающая себя компания имеет WWW-сайт, который позволяет использовать навигатор Netscape для доступа к ftp-ресурсам. Конечно, регулярно бывает необходимо попользовать telnet, но можно пережить начальный заход telnet-ом с машин win95/winNT4.0 на ПК с linux... Далее, я завязан на использовании QuickTime и всяких прочих сетевых аудио-сайтов. А версий подобных вещей для LINUX пока не существует. Поэтому приходится запускать все эти программы под Netscape на windows-системах. Также LINUX-машина обрабатывает электронную почту при помощи"sendmail" (помните, что у нас фиксированный адрес IP. Такой постоянный адрес IP хорош ТОЛЬКО для вещей подобных обработке электронной почты. Никакой особой выгоды при серфинге в интернет, работы с telnet и т.п....)

Наконец, мы точно никогда не увидим "Microsoft Internet Explorer" для linux - поэтому я даже и не думаю об использовании Explorer в нашей сети. Также, что-то внутри мне подсказывает, что настроить Explorer было бы очень НЕПРОСТО, по сравнению с настройкой NETSCAPE на машинах-клиентах (то есть других машинах).


ПРОКСИ-сервер

Я не даю указаний по установке ПРОКСИ-сервера. Главное - установить пакет "socks" под машину с LINUX, с помощью которого NETSCAPE на остальных машинах сможет использовать интернет. NETSCAPE (насколько я знаю) сейчас ЕДИНСТВЕННАЯ программа для НЕ-UNIX машин, которая поддерживает SOCKS.


Адреса ИНТЕРНЕТ

Если у вас уже есть сеть на TCP/IP, то уже ДОЛЖНЫ быть ПО МЕНЬШЕЙ МЕРЕ два IP-адреса для компьютеров (один для LINUX-машины и другой для машины-клиента, или даже еще больше IP-адресов - если у вас более чем одна клиентская машина).

О том, как назначить IP-адреса в TCP/IP сети ВСЕМ вашим компьютерам, читайте в других Руководствах. (ОСОБЕННО, ЕСЛИ У ВАС НЕТ зарегистрированного ИНТЕРНЕТ-домена).

Я создал сеть с адресами 10.0.1.x для одной машины LINUX и одной машины с Win95. Им соответственно были назначены адреса 10.0.1.1 и 10.0.1.2. Адрес 10.0.1.1 - это IP-адрес порта ETHERNET (eth0) на LINUX-машине. Порт ppp0 имеет другой адрес IP (который [как мне повезло] имеет фиксированный адрес IP). ЭТОТ IP несущественен в данном описании, а также не упоминается, в целях безопасности.

На другом конце моего PPP-соединения стоит университетский сервер с фиксированным доменным именем.

На машине с linux стоит модем и с помощью CRONTAB - он автоматически подключается к интернет в определенное время. Также (при необходимости) я могу подключиться к интернет вручную.

Если вы подключаетесь к интернет через системы ON-LINE, то смотрите следующий раздел...


Системы ON-LINE

Если вы подключаетесь к интернет через ON-LINE системы, такие как AOL, Compuserve, Sprynet, Netcom и т.д..., то тогда у вас может и НЕ БЫТЬ фиксированного IP-адреса. Это доставит немного неудобств, но, тем не менее, ваша интрАнет-сеть будет связана с внешним миром. Если вы мне не верите, то прошу - дочитайте руководство до конца... и поверьте....


Несколько отступлений

(Для тех, кто по природе таков, как я, и кому интересно, что же тут происходит...). Остальные могут пропустить этот раздел....

  1. ... так как у нас имеется ТОЛЬКО одна сеть ethernet, вам НЕТ необходимости обеспечивать маршрутизацию внутри сети. Возможно, вы уже вручную назначили IP-адреса ВСЕМ вашим компьютерам ( 10.0.1.1, 10.0.1.2 ) в /etc/hosts. Если вы это сделали, то вы, наверняка, очень умный человек. Так делать в домашней сети из двух или трех компьютеров - все равно, что использовать бульдозер, вместо обеденной ложки...
  2. В идеальном случае, желательно, чтобы ВСЕ IP-пакеты с клиентских машин шли на LINUX, который затем их бы правильно перенаправлял. Тут проблема может быть только в том, что такой компьютер легко подвергается хакерским атакам, ибо, если LINUX-машина обеспечивает маршрутизацию, то у вас НЕТ "firewall" или "proxy" или еще чего-то подобного. Следуя данному руководству, мы непреднамеренно! создаем "firewall", во время попытки дать навигатору NETSCAPE доступ в интернет с клиентских машин.

    Единственная проблема с такой "маршрутизацией" с linux-машины состоит в том, что клиенты ДОЛЖНЫ в действительности ПОСЫЛАТЬ ВСЕ пакеты на linux, неважно, на какой адрес эти пакеты идут. В таком случае с Win95 и WinNT можно использовать ТОЛЬКО "proxy сервер" ("Руководство" о работе с ним мне еще предстоит написать).

  3. ЕСЛИ вы свободно работаете с разнообразными утилитами, то вы наверняка слышали о пакете "term". Он был разработан для простого конфигурирования сетей, будучи "простым" пользователем, а НЕ администратором (ROOT/ADMIN) - и на сервере, и на клиентских машинах. Подобную логику действий можно распространить и на использование NETSCAPE на клиентских машинах. Ведь, в принципе, легко всего лишь ДАТЬ навигатору доступ в интернет, а остальные возможности (FTP, TELNET) не реализовывать.
  4. Если вы считаете, что ДОСТАТОЧНО дать доступ навигатору Netscape в интернет и НЕ разрешать использовать telnet / ftp с машин-клиентов, то вы сущий динозавр. Проснитесь, мистер-мисс Rip Van Winkle.
  5. (ТЕХНИЧЕСКОЕ) Использование возможности вручную назначать ("поименованно") IP-адреса, которая должна было быть незадействована (как упоминалось выше) будет использоваться для поддержки NETSCAPE (так, чтобы адреса типа http:/www.sex.org могли быть нормально доступны с машин-клиентов).
  6. (ТЕХНИЧЕСКОЕ) Вам придется ПЕРЕСОБРАТЬ ядро LINUX для отключения пересылки IP-пакетов (IP forwarding). Позже я попробую пересобрать у себя ядро с включенной данной опцией, и пакеты "socks" будут работать (а я полагаю, что так и будет). Если все будет нормально, то тогда вы точно увидите новую версию данного документа. (Что это означает - то, что тогда вы сможете использовать основную версию своего ядра, установленную программой инсталляции).
  7. Вам будет необходим доступ АДМИНИСТРАТОРА (ROOT) к linux-машине :-) так как будет необходимо скачать пакет "socks" и ОТКОМПИЛИРОВАТЬ его. Он НЕ будет сразу нормально компилироваться, ибо MAKE-файл в пакете поставки поврежден.
  8. (ТЕХНИЧЕСКОЕ) Будьте готовы подредактировать файл socks.c, для закомментирования ВСЕГО двух строк, которые помещают в файл журналов (/var/adm) информацию о каждой пересылке данных через socks. Например: простая страничка на WWW.CNN.COM имеет по меньшей мере 10 картинок и около 5 отдельных текстовых объектов. Для каждого из них вы получите строку в файле журнала. Лично мой файл журналов переполняется. И мне это совсем НЕ нравится. Хотя, возможно, вы об этом и не думаете.
  9. Пакет "sockd" необходим ТОЛЬКО для машин-КЛИЕНТОВ. ВСЕ приложения на LINUX-машине НЕ НУЖДАЮТСЯ в этом пакете, или еще в чем-то для доступа в интернет, ибо наша LINUX-машина подключается к интернет напрямую, используя PPP.

ПОДГОТАВЛИВАЕМ LINUX-КОМПЬЮТЕР

Читайте "Руководство по использованию Сети" на /usr/doc/faq/howto на вашей linux-машине (если у вас стоит slakware-версия), или отправляйтесь на www.linux.org и там читайте это же руководство (NET-HOW-TO) там...

Теперь вам необходимо скачать и скомпилировать пакет socks. Перед этим НЕОБХОДИМО ПРОЧИТАТЬ инструкции по установке и настройке домашней сети. Но, в принципе, можно читать и ЭТО описание :-) .

В сопроводительном документе к пакету будет много написано о том, как настроить UNIX-клиенты. Особенно для "rlogin" "telnet" "ftp" и т.п.... Если у вас нет UNIX-клиентов, то после компиляции пакета SOCKS прочтите ДАННОЕ руководство сначала, так как необходимо будет использовать SOCKS немного не так, как написано в руководстве к пакету.

Я поместил tar-архив в каталог /usr/local/ProxyServer, распаковал, создав каталог "sockd4.2b", внутри которого и лежит файл для компиляции ("Makefile"). Как уже упоминалось выше, необходимо немного помучиться, чтобы успешно скомпилировать данный MAKEFILE.


Для вашего удобства в КОНЦЕ данного руководства приведен мой MAKEFILE.

Надо надеяться, что вам придется поменять в нем только строку #9.


Итак, затем я переместил содержимое нового "sockd"-каталога на один уровень вверх, поменял содержание строки # 9 и запустил компиляцию по новой -- на этот раз успешно. На этом "починку" нашего MAKEFILE считаем оконченной.

Настройка sockd

В каталоге sockd вы найдете исполняемый файл "sockd".

Как только вы закончите компиляцию, СКОПИРУЙТЕ следующие файлы в  
/usr/local/etc
(Они ДОЛЖНЫ быть в том же каталоге sockd)
        sockd                   (Исполняемый файл, т.н. демон)
        sockd.conf              (файл конфигурации)
        sockd.route             (файл конфигурации)
        socks.conf              (файл конфигурации)

# ### создайте сслыку с названием "socks", которая указывает на 
# "sockd" в том-же каталоге.
# cd /usr/local/etc
# ln -s sockd socks
Далее отредактируйте эти три файла конфигурации так, чтобы их содержимое соответствовало нижеприведенным примерам (это мои настройки для сети из двух компьютеров, состоящей из LINUX-"сервера" и Win95/WinNT машины-клиента).

Мой файл sockd.conf

permit  10.0.1.2    0.0.0.0
deny    0.0.0.0 0.0.0.0 : /usr/ucb/finger @%A | /usr/ucb/mail -s 'SOCKD: rejected -- from %u@%A to host %Z (service %S)' root
#BAD_ID: /usr/ucb/finger @%A | /usr/ucb/mail -s '%U pretends to be %u on host %A' root@%A root
#NO_IDENTD: /usr/ucb/mail -s 'Please run identd on %A' %u@%A root@%A
#[EOF]
ПРИМЕЧАНИЕ: 10.0.1.2 - это IP-адрес моей Win95/WinNT-машины-клиента. Этот файл sockd.conf ДОЛЖЕН присутствовать на сервере LINUX (в моем случае, порту ethernet сервера LINUX был назначен IP-адрес = 10.0.1.1)

ПРИМЕЧАНИЕ: Пакет "sockd" необходим ТОЛЬКО для машин-КЛИЕНТОВ. ВСЕ приложения на LINUX-машине НЕ НУЖДАЮТСЯ в этом пакете, либо еще в чем-то, для доступа в интернет, ибо наша LINUX-машина подключается к интернет напрямую, используя PPP.


Мой файл sockd.route

#! NoShell 
10.0.1.1        10.0.1.0        255.255.255.0
#[EOF]
ПРИМЕЧАНИЕ: Первый IP-адрес - это адрес ПОРТА eth0 сервера LINUX. Второй номер - это НЕ АДРЕС IP -- это адрес СЕТИ (для простоты, последний из четырех номеров IP-адреса должен быть НУЛЕМ).

Мой файл socks.conf

direct  127.0.0.1       255.255.255.255
direct  10.0.1.1        255.255.255.255
direct  10.0.1.2        255.255.255.255
sockd   @=199.99.99.99  10.0.1.1 0.0.0.0

Настройка LINUX-компьютера

  • Шаг # 1: Проверьте, не используете ли вы "named". Если вы пользуетесь этим - то на свой страх и риск. Если вы не очень хорошо знаете методику работы с DNS, то вы, возможно, не сможете применить содержимое этого документа для ваших нужд.
  • Шаг # 2: Скопируйте файл "named.boot", приведенный ниже, на ваш компьютер.
  • Шаг # 3: Скопируйте файл "root.cache", приведенный ниже, на ваш компьютер (следуйте инструкции к этому файлу).

Файл /etc/host.conf

ВСЕ программы, запускаемые на компьютере с LINUX БУДУТ (и вы не сможете помешать этому) использовать resolver, настройки которого находятся в файле /etc/host.conf

Вы должны быть уверены, что НИ ОДНА из этих программ никогда не получит доступа к демону "named" на ЭТОЙ САМОЙ машине с linux. Для этого мы определим для сервиса имен (то есть программ, преобразующих www.cnn.com в числовой IP-адрес), что они ДОЛЖНЫ проверять сначала файл /etc/hosts, и только затем проверять сервера DNS, указанные в файле /etc/resolv.conf

Как это сделать? Просто! Проверьте, что содержимое в файла /etc/host.conf написано следующее:

                order hosts, bind
                multi on
Если там что-то другое, удалите все (конечно, если вы ОЧЕНЬ много знаете о DNS и "named", то тогда вы сделаете по своему).

Причина, по которой я настаиваю на недопуске программ LINUX-машины к собственному "named"-серверу, состоит в том, что это просто не нужно. А по моему опыту подобные "ненужности", выглядящие технически и программно безопасными, могут рано или поздно причинить много неприятностей...

Сервер linux отлично делает свою работу по подсоединению к internet через PPP (или тот тип связи, что присутствует у вас) Мы дополнительно устанавливаем пакет "sockd" и "named"-демон для машин-клиентов. И давайте больше не будем напрягать LINUX-систему.


Вам НЕ НАДО менять файлы "/etc/gateways" или "/etc/hosts" или "hosts.allow" или "hosts.deny" для того, чтобы заставить работать socks.

Не меняйте никакие файлы до тех пор, пока кто-либо не предложит что-то поменять...

Я также полагаю, что вы корректно настроили "resolv.conf", чтобы ваш LINUX-сервер имел доступ к internet и DNS (на "другом конце" соединения PPP). Мой пример файла resolv.conf вы можете увидеть в самом конце данного руководства.


                ************************************************
                                ПРЕДУПРЕЖДЕНИЕ
                ************************************************
                 Для вашей собственной безопасности, я предлагаю
                менять настройки вашей системы linux только через
                системную программу конфигурации (т.е., например,
                во время установки linux на ваш компьютер)
                *************************************************

Мой файл named.boot

        ;    загрузочный файл для сервера имен
        forwarders 128.112.129.111
        directory /etc
        cache      .       root.cache
        primary    1.0.10.in-addr.arpa   named_DNS_for_inTi_xwk
                                         ^^^^^^^^^^^^^^^^^^^^^^
ПРИМЕЧАНИЕ: строка # 2 содержит IP-адрес сервера DNS сети, к которой подключается ваша LINUX-машина, используя PPP (или ему подобную связь).

*** КАК найти этот IP-адрес ****

ЛЕГКО! в командной строке наберите "nslookup". В выданном ответе БУДЕТ указан этот адрес IP. (После того, как вы запишете IP-адрес сервера DNS, выйдите из "nslookup", нажав клавиши <CTL-D>).

ПРИМЕЧАНИЕ: ПОСЛЕДНЯЯ строка содержит имя файла, называемого "named_DNS_for_inTi_xwk', который ДОЛЖЕН быть в каталоге "/etc". Содержание этого файла приводится ниже (вообще-то, вы можете придумать ему более интересное название :-) )


Мой файл "named_DNS_for_inTi_xwk"

@               IN      SOA     10.0.1.0 hostmaster.10.0.1.0 (
                                1       ; Серийный
                                28800   ; Обновление
                                7200    ; Повтор
                                604800  ; Окончание
                                86400)  ; Минимальное TTL
                        NS      10.0.1.1
1                       PTR     MyLinuxMachine
ПРИМЕЧАНИЕ: Последняя строка (начинающая с 1) содержит имя "MyLinuxMachine". Замените его строкой из /etc/HOSTNAME. ПРИМЕЧАНИЕ: Также, если вы уж зашли настолько далеко, то поменяйте "10.0.1.1" на адрес порта eth0 вашей LINUX-машины, и замените "10.0.1.0" на сетевой адрес этого порта. 
ПРИМЕЧАНИЕ
: Лично я до сих пор не понимаю всех вещей из вышеописанных файлов. Для удовлетворения вашего любопытства вам придется изучить много документации по демону NAMED.

Мой файл root.cache

Для создания этого файла внимательно читайте руководство по настройке сетей (NET-HOW-TO) и сопровождающую документацию к пакету socks.

Эти инструкции ОЧЕНЬ просты...

Все, что мне надо было сделать, это запустить команду, указанную там, а полученную информацию перенаправить в файл и назвать его "/etc/root.cache"

; <<>> DiG 2.1 <<>> ns 
;; res options: init recurs defnam dnsrch
;; got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 6
;; flags: qr rd ra; Ques: 1, Ans: 9, Auth: 0, Addit: 9
;; QUESTIONS:
;;      ., type = NS, class = IN

;; ANSWERS:
.       137030  NS      C.ROOT-SERVERS.NET.
.       137030  NS      D.ROOT-SERVERS.NET.
.       137030  NS      E.ROOT-SERVERS.NET.
.       137030  NS      I.ROOT-SERVERS.NET.
.       137030  NS      F.ROOT-SERVERS.NET.
.       137030  NS      G.ROOT-SERVERS.NET.
.       137030  NS      A.ROOT-SERVERS.NET.
.       137030  NS      H.ROOT-SERVERS.NET.
.       137030  NS      B.ROOT-SERVERS.NET.

;; ADDITIONAL RECORDS:
C.ROOT-SERVERS.NET.     410161  A       192.33.4.12
D.ROOT-SERVERS.NET.     410161  A       128.8.10.90
E.ROOT-SERVERS.NET.     410161  A       192.203.230.10
I.ROOT-SERVERS.NET.     167767  A       192.36.148.17
F.ROOT-SERVERS.NET.     410161  A       192.5.5.241
G.ROOT-SERVERS.NET.     410161  A       192.112.36.4
A.ROOT-SERVERS.NET.     410161  A       198.41.0.4
B.ROOT-SERVERS.NET.     410161  A       128.9.0.107
H.ROOT-SERVERS.NET.     410161  A       128.63.2.53

;; Total query time: 334 msec
;; FROM: svathyam to SERVER: default -- 128.112.129.111
;; WHEN: Sat Sep 28 21:38:04 1996
;; MSG SIZE  sent: 17  rcvd: 312

Добавьте это в /etc/services

(добавьте единственную строку начинающуюся с "socks"...)

# services      This file describes the various services that are
#               available from the TCP/IP subsystem.  It should be
#               consulted instead of using the numbers in the ARPA
#               include files, or, worse, just guessing them.
# Version:      @(#)/etc/services       3.02    02/21/93
# Author:       Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org>

... &LT;lines delete&GT;

socks           1080/tcp                        # sarma: Sep.15.96: Получено из файла ~sockd/include/socks.h

... &LT;lines delete&GT;

# End of services.
ПРИМЕЧАНИЕ: по-моему, эта строка считывается ТОЛЬКО демоном "inetd". Она указывает inetd включить программу "socks" для всех tcp-соединений к порту # 1080.

Добавьте это в файл /etc/inetd.conf

        # Я всего-лишь следую инструкциям из руководства к ~sockd/doc/sockd.1 ...
        socks   stream  tcp     nowait  root    /usr/local/etc/socks
  • ПРИМЕЧАНИЕ: Убедитесь, что путь /usr/local/etc есть по умолчанию в переменной PATH системы.
  • ПРИМЕЧАНИЕ: Для более подробных инструкций читайте файлы документации к пакету SOCKD.
  • ПРИМЕЧАНИЕ: Как следует из названия файла, он указывает демону "inetd", где тот может найти программу "socks", и какие параметры необходимо постоянно ей передавать и т.п....



НУ ЧТО, НАЧНЕМ РАБОТУ!

Теперь перезагрузим вашу систему (если вы знаете как, то можете просто послать "HUP" демонам). Ваш LINUX-сервер готов к работе.

Исполните "tail -f /var/adm/messages" и одновременно "tail -f /var/adm/syslog" и попытайтесь присоединиться к интернет навигатором NETSCAPE с машины-клиента.

Теперь давайте настроим навигатор Netscape на машинах-клиентах...


Настройка клиента NETSCAPE 3.0

Это ДОЛЖНО быть сделано ТОЛЬКО на машинах-клиентах!
НЕ НАДО пытаться делать все это на сервере LINUX.

  • Вызовите меню "настройки (options)" в Netscape-навигаторе.
  • Выберите "Настройки Сети (Network Preferences)".
  • Вы ДОЛЖНЫ увидеть диалоговый экран (новое окно) с "КНОПКАМИ" (либо пунктами меню)...
  • Одна из этих "кнопок" будет обозначена "ПРОКСИ (PROXIES)"
  • Нажмите эту кнопку (выберите пункт меню).
  • Вы должны увидеть кнопку, обозначенную "ручная настройка прокси (manual proxy configuration)", с еще одной кнопкой рядом.
  • Нажмите на эту кнопку для открытия еще одного диалогового окна.
  • В одном из вхождений в появившемся окне вам будет показано...
        --------- --------------------------              --------
        | socks | |                        |              | 1080 |
        --------- --------------------------              --------
Это указывает на то, что netscape уже знает о наличии socks. Все, что вам необходимо сделать, это указать NETSCAPE, где именно запускается демон socks.

Введите IP-адрес порта eth0 сервера linux в среднее поле, показанное выше...

Сохраните эти настройки и продолжайте работу... !!


ДЛЯ НОВИЧКОВ В ОБЛАСТИ КОМПЬЮТЕРНЫХ СЕТЕЙ

Если вы уже использовали компьютеры с Win95 или WinNT для соединения к интернет через PPP, то этот документ НИЧЕМ вам не поможет. Зачем загружать вас использованием linux для соединения с интернет, когда вы и так уже сделали это через PPP-соединение на машине-клиенте?

Если вы НЕ можете соединиться с интернет через сервер LINUX, то прекратите чтение этого руководства и ищите другие руководства по настройке LINUX-машин для PPP-соединения к интернет.

Я надеюсь, что вы знаете концепцию IP-адресации. Вкратце, все IP-адреса имеют "мнемоническое" название (типа www.cnn.com) и числовое, типа "198.20.186.4". Если вы указываете адрес вида "www.cnn.com", то кто-то должен ПОМОЧЬ вашему компьютеру конвертировать эту строку в числовой формат.

Почему числовой формат? Потому, что числовой формат гораздо эффективнее - он сообщает каждому компьютеру, КАК переслать информационный пакет другому компьютеру, с которым ОН ХОЧЕТ УСТАНОВИТЬ СВЯЗЬ.

Поэтому, когда вы пишете "www.cnn.com" в окне адреса NETSCAPE-навигатора, UNIX-компьютер вызывает "DNS-сервер", который преобразует эту строку (название) в числа, понятные вашему компьютеру. Далее ваш ПК использует эту числовую версию IP-адреса для СОЕДИНЕНИЯ с www.cnn.com и покажет вам их последние новости.

В итоге, дела обстоят так: для использования интернет вам нужен DNS-сервер. Данный документ содержит инструкции о том, как заставить ваш компьютер СВЯЗАТЬСЯ с соседним DNS-сервером.

Ваш LINUX-сервер ДОЛЖЕН иметь все нижеперечисленное:

  1. Модем, через который вы можете *** НАПРЯМУЮ *** подключаться к ИНТЕРНЕТ
  2. Сетевую ethernet-карту, к которой подключен сетевой кабель (к которому подключены машины-клиенты...)
  3. Работающее PPP соединение.
  4. ПРАВИЛЬНУЮ информацию о DNS сервере (используйте nslookup --- если эта программа выдает ерунду, то прекратите читать это руководство. Вы НЕ МОЖЕТЕ нормально продолжать работу...)
  5. Навигатор Netscape 2.0 или более поздние версии на ваших машинах-клиентах.
Под "модемом" здесь и далее имеется ввиду обращение к порту "ppp0". Под словом "порт" тут подразумевается нечто, похожее на "Морской Порт". Наш модем (или PPP порт) позволяет вам "исследовать мир" (отправиться в "путешествие" от будничных берегов) :-)

Сетевая "ethernet карта" - это ваш "eth0" порт. Этот ethernet-"порт" позволяет вам исследовать сеть ethernet, к которой он присоединен.

Ваша машина-клиент подсоединена к LINUX-серверу через сетевой кабель, то есть ВСЕ, что ваша машина-клиент пошлет серверу, достигнет linux ТОЛЬКО ЧЕРЕЗ порт "eth0". ВСЕ, что внешний мир присылает вашему LINUX-серверу, придет на него ТОЛЬКО через порт ppp0. ПОЭТОМУ очень важно, чтобы эти два порта имели "РАЗНЫЕ АДРЕСА".

Проще говоря, если вы УЖЕ успешно соединились с внешним миром через PPP, то вы уже НЕПРЕДНАМЕРЕННО (или намеренно 8-) ) назначили числовой IP-адрес PPP-порту вашей linux-машины.


MAKEFILE для компиляции sockd


Скрипт установления PPP-соединения

ПРИМЕЧАНИЕ: Этот скрипт приведен здесь только как пример. Если вы будете использовать этот файл, то вам не гарантировано успешное соединение с интернет.

Скрипт comserv.dip установления PPP-соединения

ПРИМЕЧАНИЕ: Этот скрипт приведен здесь только как пример. Если вы будете использовать этот файл, то вам не гарантировано успешное соединение с интернет. Данный сценарий вызывается из "Скрипта PPP-подключения", приведенном выше...


Авторские права

Авторские права на русский перевод этого текста принадлежат © 2000 SWSoft Pte Ltd. Все права зарезервированы.

Этот документ является частью проекта Linux HOWTO.

Авторские права на документы Linux HOWTO принадлежат их авторам, если явно не указано иное. Документы Linux HOWTO, а также их переводы, могут быть воспроизведены и распространены полностью или частично на любом носителе, физическом или электронном, при условии сохранения этой заметки об авторских правах на всех копиях. Коммерческое распространение разрешается и поощряется; но, так или иначе, автор текста и автор перевода желали бы знать о таких дистрибутивах.

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

Мы бы хотели распространить эту информацию по всем возможным каналам. Но при этом сохранить авторские права и быть уведомленными о всех планах распространения HOWTO. Если у вас возникли вопросы, пожалуйста, обратитесь к координатору проекта Linux HOWTO по электронной почте: linux-howto@metalab.unc.edu или к координатору русского перевода Linux HOWTO компании SWSoft Pte Ltd. по адресу linux-howto@asplinux.ru