ГЛАВА 28. КОНФИГУРИРОВАНИЕ LINUX RED HAT 7.1 ДЛЯ СЕТИ ETHERNET

1. Глава 28. Конфигурирование Linux Red Hat 7.1 для сети Ethernet

 

Глава 28 . Конфигурирование Linux Red Hat 7.1 для сети Ethernet

  • Подготовка и конфигурирование сети
  • Тестирование сети
  • Ручное конфигурирование сети
  • Совместное использование файлов в сети Unix
  • Основы безопасности в сети

В гл. 27 мы описали процесс инсталляции Linux и подключение компьютера, работающего под управлением Linux, к сети TCP/IP Ethernet в процессе инсталляции. Мы также рассмотрели основные этапы конфигурирования сетевой платы во время инсталляции Linux.

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

Примечание

Сеть Ethernet, более корректно обозначаемая как сеть стандартов IEEE 802.2 и 802.3, это только один из наиболее популярных представителей огромного мира сетевых технологий. Можно сконфигурировать Linux для работы с другими сетевыми стандартами, включая Token Ring, ARCNet, Fast Ethernet, Gigabit Ethernet, и Asynchronous Transfer Mode (ATM). Несмотря на различия между ними, процедура инсталляции практически одна и та же, если выполнять установку из командной строки. Дополнительная информация (в особенности о различных Ethernet-опциях и об ATM) доступна во втором разделе документа Ethernet-HOWTO, расположенного ПО адресу http://www.linuxdoc.org/HOWTO/Ethernet-HOWTO-2.html .

Эта глава ориентирована на использование традиционных сетевых команд ядра Linux 2.2.x, доступных также и в Red Hat Linux 7.1. В ядре Linux 2.4 предусмотрен ряд новых сетевых команд. Дополнительные сведения по этому вопросу приведены в документе Linux 2.4 Networking HOWTO, расположенном по адресу http: //www. ds9a.nl/2.4Networking/HOWTO//cvs/ 2.4routing/output/2.4networking.html.

 

2. Подготовка и конфигурирование сети

 

Подготовка и конфигурирование сети

Существует две важных задачи, которые необходимо решить до начала работы в сети.

  • Инсталляция и настройка сетевой платы.
  • Установка параметров TCP/IP.

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

 

3. Инсталляция и настройка сетевой платы

 

Инсталляция и настройка сетевой платы

Процесс инсталляции и настройки сетевой платы зависит от типа самой платы. В гл. 27 приведена информация, которая поможет вам выбрать и правильно сконфигурировать плату. После выбора платы (предполагается, что читатель выбрал плату класса Novell-equivalent 2000, обычно используемую по умолчанию для большинства "no name" Ethernet-плат) необходимо установить аппаратное обеспечение в соответствии с инструкциями по штате. После этого в некоторых случаях нужно перезапустить компьютер и загрузить Linux (для загрузки драйвера). В ряде случаев Red Hat Linux 7.1 автоматически распознает, конфигурирует и устанавливает сетевую.плату. Чтобы определить, активна ли сетевая плата, перейдите в режим корневого пользователя и запустите команду /sbin/if conf ig. Если результат подобен следующему

eth0 Link encap:Ethernet HWaddr 00:50:56:85:00:23

inet addr:192.168.0.135 Beast:192.168.0.255

Mask:255.255.255.0 UP BROADCAST

RUNNING MULTICAST MTU:1500 Metric:!

RX packets:50 errors:0 dropped:0.

overruns:0 frame:0 TX packets:0

errors:0 dropped:0 overruns:0 carrier:0 collisions:0

txqueuelen:100 Interrupt:9 Base address:0x1000

lo Link encap:Local Loopback

inet addr:127.0.0.1 Mask:255.0.0.0

UP LOOPBACK RUNNING MTU:16436 Metric:!

RX packets:6 errors:0 dropped:0 overruns:0 frame:0

TX packets:6 errors:0 dropped:0 overruns:0 carrier:0

collisions :0 txgueuelen: 0

значит, Linux имеет одну сетевую Ethernet-плату (ethO) и петлю обратной связи (1о). которые корректно установлены. В остальной части главы приведены сведения об инструментарии, который поможет вам управлять сетевой платой.

Если вы установили сетевую плату, но сведения о ethO на экран не выведены, значит Linux не распознал сетевую плату. Кроме того, если у вас не одна сетевая плата, а сведения выведены только о eth0, значит Linux не распознал остальные платы. Ниже в этой главе описано, как установить и сконфигурировать сетевые платы.

Примечание

Мы предполагаем, что используется сетевая Ethernet-плата. Другие сетевые платы обозначаются иначе, например, первая ARCNet-плата будет обозначена агсо.

Если Linux не распознал вашу сетевую плату автоматически, соответствующие указания вампсридется дать вручную. Начните с запуска Linuxconf. Эту утилиту можно запустить из командной строки, введя в окне xterm в ответ на подсказку команду:

$ linuxconf-auth

Если вы не корневой пользователь, Red Hat Linux 7.1 запросит перед запуском Linuxconf корневой пароль. Если Linux не поймет команды, значит утилита не установлена, и ее следует установить (см. главу 15).

Запустив Linuxconf, перейдите в раздел NetworkinglClient TaskslHost Name And IP Network Devices (Сеть|Клиентские задачи|Имя хоста и адреса сетевых устройств). Вы увидите окно, подобное показанному на рис. 28.1.

Раздел Host Name And IP Devices (Имя хоста и адреса сетевых устройств) в этой версии утилиты Linuxconf включает шесть вкладок. Вкладка Host Name (Имя хоста) задает имя хоста, ассоциируемое с вашим компьютером. Пять других вкладок позволяют сконфигурировать сетевые платы и адаптеры.

Рис. 28.1. Окно сетевого конфигурирования Linuxconf

Одна из типичных проблем - обнаружение второй сетевой платы. Если вы хотите использовать компьютер для работы одновременно в двух разных сетях, то вам потребуется две сетевые платы. Щелкните на вкладке Adaptor 1 (Адаптер 1). Если Linux распознал первую сетевую плату, соответствующие конфигурационные сведения будут выведены на этой вкладке. Для конфигурирования второй платы щелкните на вкладке Adaptor 2 (Адаптер 2). Допустим, что она пуста, как показано на рис. 28.2.

Рис. 28.2. Добавление сетевой платы

Здесь расположен ряд параметров конфигурации сетевой платы. Некоторые существенны для работы адаптера, другие - нет:

Enabled (Включен). Установите этот флажок для активизации платы.

Config Mode (Режим конфигурирования). Если в вашей сети нет DHCP-сервера, выберите Manual (Ручной). Если в локальной сети есть DHCP-сервер, выберите опцию Dhcp, чтобы дать серверу возможность сконфигурировать вашу плату. Если DHCP-сервер расположен в смежной сети, выберите опцию Bootp, чтобы дать серверу возможность сконфигурировать вашу плату.

Primary Name + Domain (Первичное имя и домен). Введите имя вашего компьютера и его домен. Например, если имя вашего компьютера linuxVl в сети mommabears.com, введите linux71. moramabears . com в это поле. Но это поле можно оставить пустым и задать соответствующие параметры позже в файле /etc/hosts.

Aliases (Алиасы). Если у вашего компьютера кроме имени есть и псевдонимы, введите их в это поле. Если псевдонимов несколько, они разделяются пробелом.

IP Address (IP-адреса). В гл. 21 мы выяснили, что IP-адрес состоит из четырех чисел, каждое из диапазона от 0 до 255, разделенных точками. Если в опции режима конфигурирования выбран режим Manual (Ручной), введите IP-адрес этой сетевой платы в данное поле.

Netmask (Сетевая маска). Сетевая маска. Несмотря на метку "opt", сетевую маску придется задавать для каждой сетевой платы. В гл. 21 мы выяснили, что сетевые маски позволяют компьютеру определить, какие еще компьютеры подключены к локальной сети. В разворачивающемся меню представлен ряд типовых сетевых масок.

Net Device (Имя адаптера). Имя, которое Linux использует для данной сетевой платы. В Ethernet-сети, сетевые платы именуются eth0, ethl, eth2 и т. д. В данном случае речь идет о второй сетевой Ethernet-плате (ethl).

Kernel Module (Драйвер). Здесь задается драйвер, используемый для управления этой сетевой платой. В разворачивающемся меню приведен список драйверов. Если нужный драйвер там отсутствует, и он установлен в каталоге /lib/modules/2 . 4 . 2-2/kernel/drivers/net (или подкаталогах этого каталога), можно ввести имя соответствующего модуля в данное поле. Можно оставить это поле пустым и использовать команду insmod, описанную ниже.

Совет

Если вы не знаете, какой модуль драйвера нужен для вашей платы, обратитесь к документу Ethernet-HOWTO по адресу http://www.linuxdoc.org/HOWTO/Ethernet-HOWTO.html . Необходимые сведения также могут находиться на драйверных дисках сетевой платы и/или на Web-странице ее изготовителя.

I/O Port (Порт ввода/вывода). Адрес ввода/вывода, приписываемый сетевой плате. Red Hat Linux 7.1 обычно задает соответствующий адрес автоматически. Если при последующем конфигурировании появляются проблемы, задайте в этом поле стандартный адрес ввода-вывода данной сетевой платы.

Irq (Код прерывания). Номер прерывания, приписываемый данной сетевой плате. Red Hat Linux 7.1 обычно задает соответствующий номер автоматически. Если при последующем конфигурировании появляются проблемы, задайте в этом поле стандартный IRQ-номер данной сетевой платы.

Задав необходимые значения в полях этой вкладки, можно переходить к тестированию. Щелкните на кнопке Accept (Применить), расположенной в нижней части вкладки, а затем выберите в левом верхнем углу окна Linuxconf в меню File (Файл) команду Act/Changes (Изменить).

Когда появится диалоговое окно Status Of The System (Состояние системы), показанное на рис. 28.3, Linuxconf сообщит, что необходимо для реализации заданной конфигурации. В данном примере, утилита предлагает выполнить перезапуск сетевого демона и повторно загрузить файлы конфигурации. Щелкните на кнопке Do It (Выполнить), чтобы соответствующие операции были отработаны.

Рис. 28.3. Linuxconf активизирует изменения конфигурации

Повторно выполните команду /sbin/ifconf ig, которую мы рассматривали выше. Если теперь Linux распознает вашу сетевую плату, продолжайте читать главу, чтобы ознакомиться со средствами обслуживания сети.

 

28.1.gif

Изображение: 

28.2.gif

Изображение: 

28.3.gif

Изображение: 

4. Проверка загрузки модулей

 

Проверка загрузки модулей

Проверка конфигурации - не самая простая задача. Пока в сети не выполнена работа, описанная в следующем параграфе, определить, корректно ли сконфигурирована плата Ethernet, невозможно. Но можно вручную проверить загрузку модуля командой insmod, чтобы установить загружаемый модуль ядра.

Пользователь root в командной строке консоли или в окне xterm должен изменить текущий каталог на следующий:

$ cd /lib/modules/2.4.2-2/kernel/drivers/net/

Эта команда предполагает, что Red Hat Linux 7.1 инсталлирован с дистрибутива, прилагаемого к книге, и обновление ядра не проводилось. Тогда версия ядра будет 2.4.2-2 - как и отражено в наименовании каталога.

В указанном каталоге загрузите желаемый модуль (в нашем случае - для серии плат Novell) командой insmod.

$ insmod ne.o

Обратите внимание: имя файла этого модуля имеет расширение . о.

При правильном конфигурировании загружается драйвер платы и генерирует ряд сообщений. Эти сообщения для драйвера платы Зс59х будут примерно следующими:

3c59x.c:v0.46C 10/14/97 Donald Becker

http://eesdis.gsfc.nasa.gov/linux/drivers/vortex.html loading device 'ethO

etho: 3Com 3c905 Boomerang 100baseTx at 0x1440,

00:60:08:71:ad:8c, IRQ 111 8k word-wide RAM 3:5 Rx:Tx split,

autoselect/MII interface.

eth0: MII transceiver found at address 24.

eth0: Overriding PCI latency timer (CFLT) setting of 64, new value is 248.

Но они могут быть и совсем простыми:

Using /lib/modules/2.4.2-2/kernel/drivers/net/pcnet32.о

Если ошибки не появились, значит модуль успешно загружен и плата правильно сконфигурирована. В случае выявления проблем конфигурирования обратитесь к Ethernet HOWTO на странице

http://www.linuxdoc.org/HOWTO/Ethernet-HOWTO.html .

 

5. Установка параметров TCP/IP

 

Установка параметров TCP/IP

Следующий этап - установка параметров TCP/IP при помощи утилиты конфигурирования сети. Чтобы его выполнить, откройте окно терминала, перейдите в режим корневого пользователя, и введите команду:

$ netcfg

В результате будет открыто окно конфигурирования сети, как показано на рис. 28.4.

Рис. 28.4. Диалоговое окно конфигурирования сети Network Configurator

В этом окне следует задать системную информацию о сети, к которой присоединен компьютер. Это следующая информация.

  • Имя, домен и адрес компьютера и DNS-сервера.
  • Имена и адреса других компьютеров в сети.
  • Способ использования каждого поддерживаемого сетевого интерфейса.
  • Способ маршрутизации трафика.

Примечание

Если создается соединение с существующей сетью, большую часть необходимой информации можно получить у администратора сети. Если же планируется развернуть новую сеть, то вам будет полезно ознакомиться с основами работы в сетях TCP/IP и этапами проектирования сетей.

Неплохим источником сведений по этому вопросу является руководство Linux Network Administrator's Guide, доступное ПО адресу http : / /WWW. linuxdoc.org/LDP/nag2.

Установка имен

Первое действие - конфигурирование имени компьютера и сервера имен. Эта операция выполняется на панели Names (Имена), которая появляется по умолчанию при открытии диалогового окна конфигурирования сети. На рис. 28.4. показана именно эта панель. В панели Names необходимо ввести три основных параметра.

Полное имя компьютера: имя компьютера плюс полное имя домена. Оно должно быть уникальным в сети

Домен, в котором установлен компьютер. Например, если полное доменное имя вашего компьютера linuxl. Sybex. com, то имя домена сети Sybex. com. Доменное имя не является необходимым, в частности, для компьютеров в локальной сети, которые не являются Internet-серверами, например, Web-серверами.

Серверы имен: список компьютеров (по одному в строке), обеспечивающих сервис доменных имен в сети. Сервис доменных имен позволяет осуществлять поиск во внутренних и внешних сетях (например, Internet) имен систем, не используемых во всех сетях. Если необходимо ввести список серверов имен, следует перечислить их IP-адреса. Работа сервера имен состоит в преобразовании доменных имен в IP-адреса. Система не сможет соединиться с сервером имен, если в списке серверов имен указаны доменные, а не IP-адреса.

Задание хостов

На следующем этапе на экран 'Выводится хост-таблица данного компьютера. Хост-таблица, находящаяся в файле /etc/hosts, представляет собой простейшую форму для просмотра имен. Файл таблицы содержит список имен и связанные с ними IP-адреса. В небольших сетях, не имеющих собственного сервера доменных имен, такие таблицы содержат адреса всех компьютеров в сети. Компьютеры, соединенные в локальную сеть, должны иметь хотя бы две записи.

  • Запись локального хоста.
  • Запись с именем своего компьютера и его IP-адресом.

Чтобы добавить запись в список, щелкните на кнопке Add (Добавить). Откроется диалоговое окно, показанное на рис. 28.5.

В этом окне необходимо заполнить три поля. Следует указать IP-адрес и полное имя конфигурируемого компьютера (например, linuxl .mommabears . com). В поле Nicknames (Псевдоним) можно указать альтернативные имена компьютера, разделенные пробелами. Часто системные администраторы вводят в это поле явное имя компьютера (в случае linuxl. mommabears. com это имя - linux1). Затем щелкните на кнопке Done (Готово).


Рис. 28.5. Добавление хост-компьютера

Редактирование записей в хост-таблице напоминает добавление новых записей. Достаточно указать существующую запись и щелкнуть на кнопке Edit (Изменить). Откроется диалоговое окно показанное на рис. 28.5. В этом окне имеются те же три поля, которые мы заполнили при добавлении новой записи в хост-таблицу. После редактирования записи щелкните на кнопке Done для внесения изменений в хост-таблицу. Пример результата приведен на рис. 28.6.

Рис. 28.6. Типичная хост-таблица

Управление интерфейсами

Следующая панель предназначена для конфигурирования сетевых интерфейсов системы. Щелкните на кнопке Interfaces (Интерфейсы). Это модемные РРР-соединения, соединения Ethernet посредством платы Ethernet и даже соединения Token Ring. По умолчанию таблица включает хотя бы одну запись, называемую 1о (запись локальной обратной связи для работы Linux при отсутствии сети). Каждому интерфейсу соответствует IP-адрес.

Чтобы добавить новый интерфейс, щелкните на кнопке Add. В диалоговом окне (рис. 28.7) выберите тип добавляемого интерфейса.

Для локальной сети выбирается тип устройства, выбранный при установке модуля для сетевой платы. Вероятно, это интерфейс Ethernet.

Рис. 28.7. Диалоговое окно выбора типа интерфейса

После щелчка на кнопке ОК появится диалоговое окно, в котором указываются свойства интерфейса. Такое окно для Ethernet показано на рис. 28.8.

Рис. 28.8. Конфигурирование интерфейса Ethernet

Как минимум, необходимо указать IP-адрес интерфейса и маску сети. Если есть только один интерфейс сети, то IP-адрес должен совпадать с адресом, указанным для данного компьютера в панелях Names и Hosts. Перечислим доступные опции.

Activate Interface at Boot Time (Активизировать интерфейс во время начальной загрузки).

Указывается, если желательно иметь доступ к сети в любое время после загрузки компьютера. Если данная опция не установлена, то доступ к сети необходимо осуществлять вручную.

Allow Any User to (De)activate Interface (Позволить любому пользователю (де)активизировать интерфейс). Обычно только пользователь root может активизировать или деактивизировать сетевой интерфейс. Любой пользователь может выполнять эти действия лишь для интерфейсов dial-up, например РРР (когда пользователь может сам установить и разорвать сетевое соединение). Если речь идет только о ЛВС с Ethernet-соединениями и интерфейс активизируется при начальной загрузке, то имеет смысл отключить данную опцию.

Interface Configuration Protocol (Протокол конфигурации интерфейса). Если сеть располагает доступом к локальному или удаленному (через ВООТР) DHCP-серверу, нет необходимости вводить IP-адрес или сетевую маску для данного компьютера. Если DHCP-сервера нет, выберите опцию None (Нет). В противном случае выберите один из DНСР-серверов, соответствующих вашей сети.

Установив интерфейс, щелкните на кнопке Done (Готово). В окне, показанном на рис. 28.9, вы можете немедленно активизировать интерфейс, выбрав его и щелкнув затем на кнопке Activate (Активизировать).

Настройка маршрутов

Заключительный этап конфигурирования сети - настройка маршрутов. Щелкните на кнопке Routing (Маршрутизация) и в верхней части окна появится панель таблицы маршрутизации (рис. 28.10). Таблица маршрутизации используется для того, чтобы сообщить компьютеру, как направлять данные, предназначенные для различных участков сети.

Если в сети используется шлюз по умолчанию, достаточно указать IP-адрес этого шлюза. Если у компьютера не одна сетевая плата, следует выбрать ту из них, которая подключена к шлюзу (например, eth0 или ррр0) в качестве Default Gateway Device (Устройство шлюза по умолчанию). Другое устройство используется при этом в статическом (постоянном) маршруте локальной сети.

Рис. 28.9. Активизация Ethernet-интерфейса

Рис. 28.10. Панель таблицы маршрутизации

Предположим, что в компьютере две платы Ethernet: одна соединяет его с главной сетью корпорации (eth0), а другая - с небольшой сетью, используемой для тестирования некоторого программного обеспечения (ethl). Щелкните на кнопке Add (Добавить), чтобы вызвать диалоговое окно Edit Static Route (Изменить постоянный маршрут), показанное на рис. 28.11. Задайте в этом окне внутренний постоянный маршрут, используйте для него плату ethl, и щелкните на кнопке Done.

Маршрутная конфигурация включает шлюз по умолчанию, подключенный к плате eth0, и постоянный маршрут для тестовой сети, подключенный к плате ethl, как показано на рис. 28.12.

Постоянный маршрут для локальной сети Ethernet, к которой подключен компьютер, используется достаточно часто.

Рис. 28.11. Использование постоянного маршрута

Рис. 28.12. Несколько маршрутов

 

28.10.gif

Изображение: 

28.11.gif

Изображение: 

28.12.1.gif

Изображение: 

28.12.gif

Изображение: 

28.4.gif

Изображение: 

28.5.gif

Изображение: 

28.6.gif

Изображение: 

28.7.gif

Изображение: 

28.8.gif

Изображение: 

28.9.gif

Изображение: 

6. Тестирование сети

 

Тестирование сети

Чтобы убедиться в работоспособности сетевого соединения, необходимо его протестировать. В первую очередь проверяется возможность передачи информации в сети. Для этого используется команда ping, которая позволяет отправить запрос на конкретный адрес для определения, есть ли по данному адресу в сети какой-нибудь работающий компьютер. Существует пять основных способов проверки сети с помощью ping; описываемые ниже команды следует выполнить в приведенном порядке.

Для начала, откроем окно команд и введем:

$ ping 127.0.0.1

Это обсуждавшийся ранее адрес петли обратной связи. Если программное обеспечение сети установлено правильно, вы увидите на экране поток сообщений наподобие следующего:

PING 127.0.0.1 (127.0.0.1) from 127.0.0.1 : 56(84)

bytes of data. 64 bytes from localhost.localdomain (127.0.0/1):

icmp_seq=0 ttl=255 time=164 usec

64 bytes from localhost.localdomain (127.0.0.1):

icmp_seq=l ttl=255

time=124 usec 64 bytes from localhost.localdomain (127.0.0.1):

icmp_seq=2 ttl=255

time=167 usec

Эти сообщения будут выводиться, пока вы не нажмете Ctrl+C. Если ничего не выводится, возможно, вам придется переустановить сеть, но эта тема выходит за пределы данной книги. Далее следует ввести команду:

$ ping ipaddress

где ipaddress представляет собой IP-адрес вашего компьютера. Подставьте во вводимую команду реальный IP-адрес вашего компьютера. Приведенные ниже результаты работы команды были получены на компьютере с IP-адресом 192.168.4.65.

PING 192.168.4.65 (192.168.4.65) from 192.168.4.65 :

56(84) bytes of data. 64 bytes from localhost.localdomain (192.168.4.65):

icmp_seq=0 ttl=255

time=169 usec 64 bytes from localhost.localdomain (192.168.4.65):

icmp_seq=l ttl=255

time=214 usec 64 bytes from localhost.localdomain (192.168.4.65):

icmp_seq=2 ttl=255

time=146 usec

He забудьте нажать Ctrl+C. Если данная команда отработала верно, значит вы корректно назначили IP-адрес вашей сетевой карте. Если ожидаемый результат не получен, проверьте раздел Interfaces в netcfg .

Далее следует ввести команду:

$ ping mycomputer

где mycomputer представляет собой хост-имя вашего компьютера. Подставьте во вводимую команду реальное хост-имя вашего компьютера.

PING mycomputer (192.168.4.65) from 192.168.4.65 :

56(84) bytes of data. 64 bytes from mycomputer.localdomain (192.168.4.65):

icmp_seq=0 ttl=255

time=163 usec 64 bytes from mycomputer.localdomain (192.168.4.65):

icmp_seq=l ttl=255

time=124 usec 64 bytes from mycomputer.localdomain (192.168.4.65):

icmp_seq=2 ttl=255

time=216 usec

Если эта команда работает, значит вы корректно связали хост-имя с IP-адресом вашей сетевой платы. Если нет, проверьте раздел Hosts в netcfg или файле /etc/hosts.

Если команда ping в локальной сети выполняется без ошибок, можно переходить к проверке функционирования шлюза. Например, если IP-адрес вашего шлюза 192.168.4.244, выполните команду:

$ ping 192.168.4.244

Подставьте во вводимую команду реальный IP-адрес шлюза вашей сети. Если команда отработает успешно, то результат будет похож на приведенный выше. Но по результатам этой команды нельзя сделать заключение о том, работает ли в действительности шлюз.

Чтобы выполнить такую проверку, введите следующую ping-команду:

$ ping 63.86.158.42

Предполагается, что ваш шлюз имеет выход в Интернет. Эта команда запрашивает веб-сайт фирмы Sybex, имеющий указанный IP-адрес. Если эта команда отработает корректно, то вы получите результат, подобный приведенному выше. Можете попробовать запросить другой сайт аналогичной командой.

Заключительный этап тестирования - проверка работы поисковых таблиц имен. Для поиска имени хост-компьютера на сервере DNS, используемом по умолчанию, выполните комам; rislookup. Например, попробуем найти www. yahoo. com.

$ nslookup www.yahoo.com

При правильной работе поисковых таблиц имен команда ns lookup выдаст следующий результат:

Server: dul.paus.ch Address:

194.209.60.97

Name: www5.yahoo.com Address:

204.71.177.70 Aliases: www.yahoo.com

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

Если тик и происходит, то сетевое соединение правильно сконфигурировано и полностью готово к работе. В противном случае обратитесь к документу HOWTO на странице http: / / www.linuxdoc.org/HOWTO/Networking-HOWTO.html.

 

7. Ручное конфигурирование сети

 

Ручное конфигурирование сети

В параграфе описана последовательность действий, выполняемых для конфигурирования сети. При этом предполагается, что модуль платы Ethernet загружен.

 

8. Настройка интерфейса

 

Настройка интерфейса

В первую очередь активизируйте тот сетевой интерфейс, который будет использоваться. Если будет активизироваться eth0 как IP-адрес 100.100.100.10, то следует использовать команду

ifconfig.

$ ifconfig ethO 100.100.100.10 netmask 255.255.255.0 up

Эта команда указывает системе назначить IP-адрес 100.100.100.10 и маску сети 255.255.255.0 устройству eth0, после чего аргумент up активизирует интерфейс.

Для проверки успешной активизации интерфейса используется команда /sbin/ifconfig без параметров и аргументов. Она выводит на экран список доступных интерфейсов.

ethO Link encap: Ethernet HWaddr 00:CO:FO:OD:76:5A

inet addr:100.100.100.10 Beast:100.100.100.255

->Mask:255.255.255.0

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

RX packets:11239889 errors:0 dropped:0 overruns:0

TX packets:16384520 errors:3 dropped:0 overruns:0

Interrupt:9 Base address:0x300

lo Link encap:Local Loopback

inet addr:127.0.0.1 Mask:255.0.0.0

UP LOOPBACK RUNNING MTU:3584 Metric:1

RX packets:2142848 errors:0 dropped:0 overruns:0

TX packets:2142848 errors:0 dropped:0 overruns:0

collisions:0 txgueuelen:0

Этот список обычно содержит устройство обратной связи (устройство 1о) плюс все доступные сетевые устройства. В нашем случае в списке содержится устройство eth0. Red Hat конфигурирует устройство обратной связи во время начальной загрузки.

Чтобы сохранить устойчивость работы системы, необходимо отконфигурированное устройство локальной обратной связи. Если lо не установлено, то для его конфигурирования используется следующая команда if conf ig.

$ ifconfig lo 127.0.0.1 up

 

9. Настройка сервера имен

 

Настройка сервера имен

Следующий этап - настройка сервера имен. Настройка сервера имен осуществляется редактированием файла /etc/resolv. conf в любом текстовом редакторе. Этот файл содержит всю необходимую системную информацию для поиска адресов имен хост-компьютеров.

В файле resolv. conf содержится как минимум две строки.

domain landegg.edu nameserver 194.148.43.194

В строке domain указано доменное имя локальной системы. Если.компьютер находится в сети, доменное имя которой - foo.bar, то эта строка будет содержать: domain fob.bar. Вторая строка определяет IP-адрес первичного сервера имен. Это может быть компьютер в локальной сети, сервер провайдера услуг Internet (ISP) или общедоступный сервер имен Internet. Эту информацию предоставляет администратор сети.

Многие сайты используют несколько серверов имен. Если один из них по каким-то причинам недоступен, пользователи могут провести поиск имен, используя альтернативный сервер. Чтобы указать несколько серверов имен, в файл resolv.conf включается нужное количество соответствующих строк.

domain landegg.edu nameserver 194.148.43.194

nameserver 194.148.43.196

nameserver 194.148.8.10

nameserver 194.148.1.10

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

 

10. Настройка локального файла хостов

 

Настройка локального файла хостов

Теоретически можно использовать сервер имен DNS для поиска любого имени, включая имена хостов в локальной сети, но в действительности это чрезвычайно неэффективно. Вариант, альтернативный использованию сервера имен, - поиск имен компьютеров в относительно небольших сетях с использованием локальных файлов хостов, поддерживающих поисковые таблицы.

Локальный файл хостов находится на компьютере пользователя и содержит список соответствия IP-адресов и имен компьютеров. Для доступа к файлу локальных хостов необходимо отредактировать файл /etc/host. conf в текстовом редакторе. Этот файл сообщает системе Linux как осуществлять поиск имен. Чтобы файл локальных хостов был доступен, host. conf должен содержать следующие две строки:

order hosts,

bind multi on

Первая строка сообщает, что когда осуществляется поиск имени, следует проверить файл локальных хостов (hosts), а затем - DNS (bind заменяет Berkeley Internet Name Daemon), следуя инструкциям в файле /etc/resolv. conf.

Затем необходимо открыть файл локальных хостов /etc/hosts. Этот файл также можно редактировать в любом текстовом редакторе. Для каждого хост-компьютера следует создать запись (в одну строку), которая должна иметь следующую форму:

IР_адрес ИмяХоста Псевдоним Псевдоним Псевдоним ...

Между разделами в строке (IP-адрес, ИмяХоста и Псевдоним) должен быть хотя бы один пробел. Строки комментариев начинаются со знака диеза (#) и могут использоваться для структурирования и пояснения записей в больших файлах хостов.

Рассмотрим пример. Следующие четыре записи взяты из файла хостов.

194.148.43.194 servl.landegg.edu

194.148.43.195 apps.landegg.edu apps

194.148.43.196 serv3.landegg.edu serv3

www.landegg.edu 194.148143.215

officel5.landegg.edu office15

Обратите внимание: все строки начинаются с IP-адреса, затем указано имя хоста и псевдонимы для хоста. Псевдонимы не обязательны. Заметим, что для многих компьютеров псевдонимы -это короткая форма имени хоста без полного доменного имени. В таком случае можно обращаться к компьютерам в локальной сети без указания полного имени хоста с доменным именем. Например, к компьютеру с именем apps . landegg.edu можно обратиться как к apps, а к компьютеру с именем officelS . landegg. edu - как к office15.

 

11. Настройка маршрутов

 

Настройка маршрутов

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

Начнем с устройства обратной связи. Команда route используется для указания того, что к локальному компьютеру обращаются через устройство обратной связи.

$ /sbin/route add -host 127.0.0.1 lo

Эта команда указывает, что хост 127.0.0.1 (локальный компьютер) доступен через устройство 1о. Рассмотрим устройство eth0, упоминавшееся ранее в параграфе. Это устройство подключает персональный компьютер к сети с сетевым адресом 100.100.100.0 и маской сети 255.255.255.0. Чтобы Linux передавал всю информацию для локальной сети через интерфейс eth0, используется команда route.

$ /sbin/route add -net 100.100.100.0 netmask 255.255.255.0 eth 0

Следует еще раз использовать команду route, чтобы определить шлюз по умолчанию, который можно использовать для доступа к удаленным сетям. Если этот шлюз — компьютер с IP-адресом 100.100.100.1, то используется следующая команда.

$ /sbin/route add default gw 100.100.100.1 eth0

Эта команда указывает, что шлюзом по умолчанию (gw) является адрес 100.100.100.1 и к нему можно обращаться при отправке информации, предназначенной для передачи "наружу", через интерфейс eth0.

Осталось проверить все записи маршрутизации с помощью команды route без параметров и аргументов. Эта команда возвращает таблица маршрутизации, подобную следующей:

Kernel IP routing table

Destination Gateway Genmask Flags Metric Ref Use Iface

100.100.100.0 * 255.255.255.0 U 0 0 317 eth0

127.0.0.1 * 255.0.0.0 U 0 0 6 lo

default 100.100.100.1 0 UG 0 0 2605 eth0

 

12. Автоматическое конфигурирование сети во время загрузки

 

Автоматическое конфигурирование сети во время загрузки

Теперь сетевое соединение полностью работоспособно. Однако вводить все перечисленные выше команды каждый раз при запуске системы Linux - занятие для трудолюбивых пользователей.

К счастью, все необходимые команды if conf ig и route можно поместить в один системный сценарий, выполняемый при запуске системы, например /etc/re . d/rc . local. В нашем примере можно добавить в файл re. local следующие строки:

/sbin/ifconfig ethO 100.100.100.10 netmask 255.255.255.0 up

/sbin/ifconfig lo 127.0.0.1 up

/sbin/route add -host 127.0.0.1 lo

/sbin/route add -net 100.100.100.0 netmask 255.255.255.0 eth0

/sbin/route add default gw 100.100.100.1 eth0

 

13. Совместное использование файлов в сети Unix

 

Совместное использование файлов в сети Unix

Теперь, когда система Linux может работать совместно с другими компьютерами в локальной сети TCP/IP, рассмотрим одну из основных задач, возникающих при работе в сети: совместное использование файлов. В мире Unix и Linux эта задача обычно решается с использованием NFS (Network File System - Сетевая файловая система).

Совместное использование файлов имеет два аспекта.

  • Доступ к разделяемым каталогам и файлам на других хост-компьютерах в сети;
  • Совместное использование файлов и каталогов на вашем персональном компьютере другими пользователями сети.

 

14. Совместное использование каталогов в сети

 

Совместное использование каталогов в сети

Прежде чем другие пользователи смогут получить доступ к вашим файлам/каталогам, вы должны сделать эти каталоги доступными для совместного использования в сети. Экспорт каталогов с NFS предполагает использование двух демонов, /usr/sbin/rpc .nfsd и /usr/sbin/rpc .mountd, и одного файла конфигурации /etc/exports. Файлы rpc.mountd и rрс. nfsd устанавливаются на большинстве систем. Если эти файлы отсутствуют, установите их из RPM-файла nf s-utils-0.3.1-5.1386. rpm прилагаемого компакт-диска.

NFS и брандмауэры

Если в ходе установки Red Hat Linux 7.1 вы установили брандмауэр по умолчанию, он заблокирует совместное использование каталогов в NFS. Если ваш компьютер входит в локальную сеть и не имеет выходов в другие сети, можно отключить брандмауэр на нем. Брандмауэр действительно необходим только на компьютере, имеющем выход во внешние сети (например, на компьютере, играющем роль шлюза).

Большинство брандмауэров Linux отключается либо командой /etc/re, d/init.d/ipchains stop либо командой /etc/re .d/init. d/iptables stop. Но такое отключение действует только до следующей перезагрузки. Совсем отключить брандмауэр можно с помощью меню ntsysv. Выполните команду /usr/sbin/ntsysv. Как только возникнет меню Services (Сервисы), сбросьте флажки сервисов ipchains и iptables, как показано на следующей иллюстрации.

Если каталог, который вы хотите разрешить для совместного использования, расположен На компьютере-шлюзе, подключенном к вашему компьютеру и Интернету, то брандмауэр необходим. Даже работая с брандмауэром, лучше не использовать NFS из соображений безопасности. Но если вам все-таки необходимо использовать NFS для предоставления доступа к каталогам на компьютере-шлюзе, воспользуйтесь утилитой конфигурирования брандмауэра, описанной в гл. 31, чтобы открыть порты 111 и 2049. Таким образом будут открыты каналы, необходимые для Network File System.

Первый шаг к совместному использованию каталога в сети - редактирование файла /etc/ exports в текстовом редакторе и добавление по одной записи для каждого каталога, который вы планируете использовать совместно. Запись должна быть следующей.

/каталог хост (параметры)

Ниже приведен пример типичного файла /etc/exports.

# sample /etc/exports file

/ master(rw). trusty(rw,no_root_squash)

/projects proj* . local ..domain (rw)

/usr *.local.domain(ro)

/home/joe pcOOl(rw,all_squash,anonuid=150,anongid=100)

/pub (ro,insecure,all_sguash)

/pub/private (noaccess)

Рассмотрим этот файл построчно.

Строка 1. Строка комментариев, обозначенная знаком диеза (#), игнорируется. Строка 2. Двум компьютерам даны различные уровни доступа к каталогу /: master - с правом чтения и записи (опция rw), trusty - с правом чтения и записи и правом полного доступа ко всем файлам и подкаталогам для пользователя root (опция no_root_squash). Пользователь root компьютера trusty имеет те же права, что и пользователь root локальной системы.

Строка 3. Любому хост-компьютеру, имя которого начинается с символов proj и который является частью домена local. domain, предоставляются права чтения и записи в каталоге /projects.

Строка 4. Любому хост-компьютеру в домене local. domain предоставляется право на чтение (опция го) каталога /usr.

Строка 5. Хост-компьютер рс 0 01 получает права на чтение и запись в каталог / home / j oe. Все пользователи, использующие эту точку монтирования с компьютера pc001, считаются анонимными пользователями (опция all_squash) с ID пользователя 150 и ID группы 150 (опции anonuid=150 и anongid=150).

Строка 6. Всем хост-компьютерам предоставлено право доступа к каталогу /pub. Все пользователи считаются анонимными и получают право чтения. Опция insecure позволяет клиентам, которые не используют зарезервированный порт ТСР/IР для NFS, осуществлять доступ к этой точке монтирования.

Строка 7. Всем хост-компьютерам запрещен доступ к каталогу /pub/private (опция noaccess).

С другими опциями для файла /etc/exports можно ознакомиться в руководстве, используя команду

$ man exports

Если каталог для экспорта определен как /etc/exports, необходимо перезапустить процессы rpc. nf sd и rpc . mountd (обычно они выполняются во время начальной загрузки). Сначала используется команда ps для проверки ID каждого процесса.

$ ре aux | grep rpc.nfsd

root 15-03 0.2 0.8 872 508 ? S 22:25 0:00 /usr/sbin/rpc.nfsd

$ ps aux | grep rpc.mountd

root 1105 0 0.7 836 500 ? S 22:25 0:00 /usr/sbin/rpc.mountd

Затем следует уничтожить и перезапустить процессы.

$ kill 1103 1105; /usr/sbin/rpc.nfsd; /usr/sbin/rpc.mountd

Предупреждение

Выполните на вашем компьютере указанные выше команды ps aux. С учетом параметров вашего компьютера, числа, выдаваемые командами ps aux, должны отличаться от 1103 и 1105.

Теперь для доступа удаленных пользователей сети работают новые правила экспорта.

Совет

В некоторых дистрибутивах Linux для перезапуска rpc.nfsd и rpc. mountd необходимо перезапустить демон nfs. Например, в Red Hat Linux 7.1 следует выполнить команду /etc/re.d/init.d/nfs restart в режиме корневого пользователя.

 

15. Доступ к удаленным файловым системам

 

Доступ к удаленным файловым системам

Доступ к удаленным файлам и каталогам выполняется с помощью команды mount. $ mount remote-directory-name local-directory

Удаленный каталог remote-directory-name указывается как hostname: /directory-name, a local-directory- это существующий каталог, желательно пустой, через который осуществляется доступ к удаленному каталогу.

Рассмотрим пример. Предположим, пользователю необходимо обратиться к каталогу / test /dir на компьютере fоо. bаr в локальной сети; каталог доступен для удаленного монтирования через NFS. На компьютере пользователя есть пустой каталог / fоо, который станет точкой монтирования для удаленного каталога.

Для определения этого каталога используется команда mount.

$ mount foo.bar:/test/dir /foo

Эта команда указывает монтировать каталог /test/dir на компьютере foo.bar в локальный каталог / foo. После выполнения этой команды пользователь может обращаться к файлам и подкаталогам удаленного каталога в соответствии с назначенными файлам правами доступа. Распечатка содержимого каталога / foo - это список содержимого каталога / test/dir на компьютере

foo.bar.

Предупреждение

Существует одно неудобство в системе NFS. На локальной системе пользователь root имеет абсолютные права на открытие, чтение или удаление файла в любом месте файловой системы, независимо от того, кто создал или кто является владельцем файла. Но в монтированном удаленном каталоге пользователь root имеет серьезные ограничения при работе с моделью NFS: он может осуществлять доступ лишь к тем файлам и каталогам, для которых ему предоставлены явные права.

 

16. Монтирование удаленных каталогов во время начальной загрузки

 

Монтирование удаленных каталогов во время начальной загрузки

Часто используемые удаленные каталоги (если таковые существуют) удобно монтировать автоматически при начальной загрузке. Для этого используется программа LinuxConf, которая запускаегся с помощью команды linuxconf-auth. После запуска программы следует выбрать Config (Конфигурация), File Systems (Файловые системы), Access NFS Volume (Доступ к NFS-тому) в списке окон конфигурации. Это окно содержит список текущих точек монтирования NFS, если они существуют. Щелчок на кнопке Add (Добавить) отобразит окно NFS Volume Specification (Спецификация NFS-тома), показанное на рис. 28.13.


Рис. 28.13. Диалоговое окно NFS Volume Specification

Для реализации описанного примера введите laptop7lB поле Server (Сервер), /home/mj в поле Volume (Том) и /home/mj/testl в поле Mount Point (Точка монтирования). Если монтирование должно происходить автоматически при начальной загрузке, то выберите вкладку Options (Параметры) и убедитесь, что опция Not Mount at Boot Time (He монтировать при загрузке) не установлена. Для завершения конфигурирования автоматического монтирования щелкните на кнопке Accept (Принять).

Эта процедура добавит следующую запись в файл /etc/ f stab.

laptopVl:/home/mj /home/mj/testl nfs exec,dev, ro 1 1

Можно вручную создавать автоматические точки монтирования во время начальной загрузки. Для этого в любом текстовом редакторе добавьте подобную запись в файл /etc/ f stab.

 

28.13.gif

Изображение: 

17. Основы безопасности в сети

 

Основы безопасности в сети

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

Этот базисный механизм безопасности обеспечивается двумя файлами: /etc/hosts . allow и /etc/hosts. deny. Они являются лишь звеном в цепи безопасности, которая состоит из трех звеньев.

  1. Разрешение доступа для любой комбинации демон-клиент в hosts . allow.
  2. Отказ в доступе для любой комбинации демон-клиент в ho s t s . deny.
  3. Предоставление доступа кому угодно.

По умолчанию записи в hosts. allow и в hosts. deny отсутствуют, то есть по умолчанию любой пользователь может установить соединение с системой. Конечно, это не запрещает индивидуальным сервисам, например Telnet и FTP, требовать дальнейшей аутентификации. Это также не исключает те начальные попытки соединения, которыми начинаются многие хакерские атаки через неизвестные системы.

Создать записи для hosts. allow и hosts . deny просто.

Список_демонов Список_клиентов

Любая запись, подобная этой, указывает, какие демоны сети (f tpd, in. telnetd, in. rshd) могут разрешить соединение с конкретным хост-компьютером (в файле hosts .allow) или отказать в установлении соединения с каким-то хост-компьютером (в hosts . deny). В списке может быть указан любой демон сети. Например, запись

ftp: host1

в файле hosts. allow позволяет установить входное FTP-соединение с указанным компьютером hostl по его инициативе.

Несколько специальных ключевых слов облегчают задачу, исключая необходимость в поимен-.ном списке всех демонов и клиентов. Ключевое слово ALL может соответствовать любому клиенту или любому демону. Например, запись

ALL: ALL

в файле hosts. allow позволяет осуществить любой тип доступа любому клиенту, в то время как аналогичная запись в hosts . deny запрещает все возможные соединения.

Ключевое слово EXCEPT указывает исключения в сети, в которой разрешены все возможные соединения с помощью ключевого слова ALL. Например, запись

ALL EXCEPT ftpd: ALL

в файле hosts. deny запрещает доступ всем клиентам ко всем сервисам, исключая FTP. Аналогично

ALL: .local.domain EXCEPT foo.local.domain

в hosts . allow разрешает доступ ко всем сервисам для любого компьютера в домене local, domain (обратите внимание на "." перед local .domain), исключая foo. local . domain.

Наконец, ключевое слово LOCAL позволяет легко указать доступ для всех машин в локальном домене

ALL: LOCAL

в hosts . allow, предоставляя любой тип доступа с компьютеров в локальном домене.

Файлы hosts. allow и hosts. deny могут содержать разнообразные записи, что позволяет осуществлять более тонкий контроль, чем необходимо для большинства пользователей. С деталями настроек можно познакомиться на странице руководства для hosts . allow:

$ man hosts.allow

 

18. Что дальше

 

Что дальше

В этой главе рассмотрены принципы подключения персонального компьютера, работающего под управлением Linux, к сети Ethernet, использующей протокол TCP/IP. Читатель мог убедиться, что Linux легко соединяется в сети с системами Unix, включая и другие Linux-системы.

Однако полная интеграция системы Linux с сетями Windows и Novell требует больших усилий. В следующей главе мы рассмотрим основы взаимодействия системы Linux с Windows и Novell.