Глава 4. Сетевые средства UNIX

Содержание

Сеть в UNIX
Введение в сети
Сетевой интерфейс в UNIX
Конфигурация IP-сетей
Сервисы Internet
Межсетевой экран
Резюме
Дополнительные материалы
Вопросы
Презентация
Методические указания по командам управления сетью в UNIX
Команды по конфигурированию сети
Команды по диагностике сети
Команды удалённого терминала
Команды по управлению сетевым экраном
Резюме
Дополнительные материалы
Практическое занятие. Управление сетью
Сценарий: Настройка сетевого интерфейса
Сценарий: Настройка таблицы маршрутизации
Сценарий: Изучение службы доменных имён
Сценарий: Простая диагностика работы сети
Сценарий: Работа по удалённому терминалу
Задания для самоподготовки
Сценарии практического занятия на тему: Управление сетью
Практическое занятие. Расширенная диагностика и настройка сети
Сценарий: Сканирование локальной сети
Сценарий: Сканирование удалённых хостов
Сценарий: Настройка сетевого экрана
Задания для самоподготовки
Сценарии практического занятия на тему: Расширенная диагностика и настройка сети

Современные вычислительные системы невозможно представить без наличия сетей. Технологии взаимодействия между информационными системами развиваются с 70-х годов, не намного опередив развитие UNIX. Операционная система UNIX почти с самого рождения интегрировала в себя технологии локальных сетей, на её основе затем была построена сеть Internet, распространившаяся ныне по всему миру.

Сеть в UNIX

Презентация 5-01: введение в сети

Введение в сети

Организация взаимодействия между устройствами и программами в сети является сложной задачей. Сеть объединяет разное оборудование, различные операционные системы и программы – это было бы невозможно без приянтия общепринятых правил, стандартов.

В области компьютерных сетей существует множество международных и промышленных стандартов, среди которых следует особенно выделить международный стандарт OSI и набор стандартов IETF (Internet Engineering Task Force).

Семиуровневая модель OSI

Презентация 5-02: взаимодействие открытых систем

В модели OSI, называемой также моделью взаимодействия открытых систем (Open Systems Interconnection – OSI) и разработанной Международной Организацией по Стандартам (International Organization for Standardization – ISO), средства сетевого взаимодействия делятся на семь уровней, для которых определены стандартные названия и функции (см. Рисунок 4.1, «Уровни ISO OSI»).

Рисунок 4.1. Уровни ISO OSI

Уровни ISO OSI

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

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

Рассмотрим подробнее назначения каждого из уровней:

Физический уровень

Физический уровень выполняет передачу битов по физическим каналам, таким, как витая пара, оптоволоконный кабель или радиоволны. На этом уровне определяются характеристики физических сред передачи данных и параметров электрических сигналов.

Канальный уровень

Канальный уровень беспечивает передачу кадра данных между любыми узлами в сетях с типовой топологией либо между двумя соседними узлами в сетях с произвольной топологией, отвечает за установление соединения и корректность доставки данных по физическим каналам. В протоколах канального уровня заложена определенная структура связей между компьютерами и способы их адресации. Адреса, используемые на канальном уровне в локальных сетях, часто называют МАС-адресами (Media Access Control, управление доступом к среде). Часть канального уровня требует аппаратной реализации, в операционной системе он, как правило, представлен драйвером сетевой карты.

Сетевой уровень

Сетевой уровень в первую очередь должен предоставлять средства для решения следующих задач:

  • доставки пакетов в сети с произвольной топологией;
  • структуризации сети путем надежной локализации трафика;
  • согласования различных протоколов канального уровня.

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

Реализация протокола сетевого уровня подразумевает наличие в сети специального устройства – маршрутизатора. Маршрутизаторы объединяют отдельные сети в общую составную сеть. К каждому маршрутизатору могут быть присоединены несколько сетей (по крайней мере две).

Транспортный уровень

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

Сеансовый уровень

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

Уровень представления

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

Прикладной уровень

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

Существует несколько групп протоколов (называемые также «стеки протоколов»), которые частично или полностью соответствуют уровням эталонной модели OSI. Для нас наибольший интерес представляет набор протоколов TCP/IP.

Протоколы Internet: TCP/IP

Презентация 5-03: протоколы Internet: TCP/IP

Протоколы TCP/IP (Transmission Control Protocol / Internet Protocol) были разработаны по заказу Министерства обороны США 30 лет назад для связи экспериментальной сети ARPAnet и представляет собой набор общих протоколов для разнородной вычислительной среды. Большой вклад в развитие стека TCP/IP внёс университет Беркли, реализовав этот протокол для операционнной системы UNIX. Популярность UNIX и удачные идеи, заложенные в TCP/IP, привели к образованию и бурному развитию международной сети Internet. Все протоколы семейства TCP/IP и связанные с ними проходят стандартизацию в организации IETF через выпуск так называемых RFC (Request For Comment) документов.

Протоколы, входящие в TCP/IP частично соответствуют модели OSI (см. Рисунок 4.2, «Соответствие стека TCP/IP модели OSI»). Стек TCP/IP поддерживает на нижнем уровне все популярные стандарты физического и канального уровней: для локальных сетей – Ethernet, Token Ring, FDDI, для глобальных – PPP, ISDN. Основными протоколами стека, давшими ему название, являются протоколы IP и TCP, относящиеся соответственно к сетевому и транспортному уровню. IP обеспечивает продвижение пакета по сети, TCP гарантирует надёжность его доставки.

За долгие годы использования стек TCP/IP обзавёлся множеством протоколов прикладного уровня: FTP, SMTP, HTTP и т.п..

Рисунок 4.2. Соответствие стека TCP/IP модели OSI

Соответствие стека TCP/IP модели OSI

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

Сегодня набор протоколов TCP/IP самый распространённый протокол вычислительных сетей, к тому же он является наиболее «оригинальным» для UNIX-систем. Рассмотрим, как производится администрирование этих протоколов в UNIX.

Сетевой интерфейс в UNIX

Презентация 5-04: сетевой интерфейс в UNIX

Основной сетевой подсистемы UNIX является сетевой интерфейс. Сетевой интерфейс – это абстракция, используемая для представления связи канального уровня сети с протоколом TCP/IP в UNIX.

Каждый сетевой интерфейс в системе имеет уникальное имя, сотстоящее из типа устройства и номера (0 или больше для однотипных устройств). Под типами устройств в различных UNIX-системах может пониматься вид протокола канального уровня (Ethenet – eth) или название драйвера устройства (Realtek – rl).

Интерфейс имеет набор параметров, большинство которых относятся к сетевому уровню (IP-адрес, маска сети и т.п.). Важным параметром сетевого интерфейса является аппаратный адрес (В Ethernet аппаратный адрес называется MAC-адрес и состоит из шести байтов, которые принято записывать в шестнадцатеричной системе исчисления и разделять двоеточиями).

Узнать параметры интерфейса можно с помощью команды ifconfig, указав в качестве аргумента его имя:

Пример 4.1. Пример выполнения команды ifconfig

desktop ~ # ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:0D:60:8D:42:AA  
          inet addr:192.168.1.5  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:6160 errors:0 dropped:0 overruns:0 frame:0
          TX packets:5327 errors:0 dropped:0 overruns:0 carrier:0
          collisions:1006 txqueuelen:1000 
          RX bytes:3500059 (3.3 Mb)  TX bytes:2901625 (2.7 Mb)
          Base address:0x8000 Memory:c0220000-c0240000
desktop ~ # ifconfig lo
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:188 errors:0 dropped:0 overruns:0 frame:0
          TX packets:188 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:14636 (14.2 Kb)  TX bytes:14636 (14.2 Kb)

Создание сетевого интерфейса производится в момент загрузки драйвера сетевой карты или создания логического соединения (например, в PPP). Настройка сетевых параметров, связанных с интерфейсом производится той же командой ifconfig, о чем будет сказано далее.

Для диагностики трафика на канальном уровне применяется специальные программы. Самыми распространёнными в UNIX являются tcpdump и ethereal. При «прослушивании» канала, эти программы взаимодействуют с заданным сетевым интерфейсом.

Конфигурация IP-сетей

Сетевой адрес

Презентация 5-05: сетевой адрес

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

Адрес, определяемый протоколом IP, состоит из четырех байтов, записываемых традиционно в десятичной системе счисления и разделяемых точкой. Адрес сетевого интерфейса eth0 из примера – 192.168.1.5.

Второй сетевой интерфейс из примера, lo, – так называемая заглушка (loopback), которая используется для организации сетевых взаимодействий компьютера с самим собой: любой посланный в заглушку пакет немедленно обрабатывается как принятый оттуда. Заглушка обычно имеет адрес 127.0.0.1.

Для установления связи между интерфейсом и IP-адресом необходимо выполнить команду:

desktop ~ # ifconfig eth0 192.168.1.1 up

Маршрутизация

Презентация 5-06: маршрутизация

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

Более сложный вопрос встает, если IP-адрес компьютера-адресата не входит в локальную сеть компьютера-отправителя. Ведь и в этом случае пакет необходимо отослать какому-то абоненту локальной сети, с тем, чтобы тот перенаправил его дальше. Этот абонент, маршрутизатор, подключен к нескольким сетям, и ему вменяется в обязанность пересылать пакеты между ними по определенным правилам. В самом простом случае таких сетей две: «внутренняя», к которой подключены компьютеры, и «внешняя», соединяющая маршрутизатор со всей глобальной сетью. Таблицу, управляющую маршрутизацией пакетов, можно просмотреть с помощью команды netstat -r или route (обе команды имеют ключ -n, заставляющий их использовать в выдаче IP-адреса, а не имена компьютеров):

Пример 4.2. Пример выполнения команды route

desktop ~ # route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 eth0

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

Задавать параметры маршрутизации можно с помощью той же команды route.

Служебный протокол ICMP

Презентация 5-07: протокол ICMP

Есть такие протоколы уровня IP, действие которых этим уровнем и ограничивается. Например, служебный протокол ICMP (Internet Control Message Protocol), предназначенный для передачи служебных сообщений.

Примером применения ICMP является утилита ping, которая позволяет проверить работоспособность узлов в сети. Другое применение ICMP – сообщать отправителю, почему его пакет невозможно доставить адресату, или передавать информацию об изменении маршрута, о возможности фрагментации и т. п.

Протоколом ICMP пользуется утилита traceroute, позволяющая приблизительно определять маршрут следования пакета:

Пример 4.3. Пример выполнения команды traceroute

desktop ~ # traceroute ya.ru
traceroute to ya.ru (213.180.204.8), 64 hops max, 40 byte packets
 1  195.91.230.65 (195.91.230.65)  0.890 ms  1.907 ms  0.809 ms
 2  cs7206.rinet.ru (195.54.192.28)  0.895 ms  0.769 ms  0.605 ms
 3  ix2-m9.yandex.net (193.232.244.93)  1.855 ms  1.519 ms  2.95 ms
 4  c3-vlan4.yandex.net (213.180.210.146)  3.412 ms  2.698 ms  2.654 ms
 5  ya.ru (213.180.204.8)  2.336 ms  2.612 ms  3.482 ms

Утилита traceroute показывает список абонентов, через которых проходит пакет по пути к адресату, и потраченное на это время. Однако список этот приблизительный. Строго говоря, неизвестно, каким маршрутом шла очередная группа пакетов, потому что с тех пор, как посылалась предыдущая группа, какой-нибудь из промежуточных маршрутизаторов мог передумать и послать новые пакеты другим путем.

Информация о соединениях

Презентация 5-08: сетевые соединения

Транспортных протоколов в TCP/IP два – это TCP (Transmission Control Protocol, протокол управления соединением) и UDP (User Datagram Protocol). UDP устроен просто. Пользовательские данные помещаются в единственный транспортный пакет-датаграмму, которой приписываются обычные для транспортного уровня данные: адреса и порты отправителя и получателя, после чего пакет уходит в сеть искать адресата. Проверять, был ли адресат способен этот пакет принять, дошел ли пакет до него и не испортился ли по дороге, предоставляется следующему – прикладному – уровню.

В UNIX существует прозрачный механизм именования сетевых протоколов. Согласно стандартам Internet для большинства приложений существуют стандартные порты, на которых соответствующие приложения должны принимать соединения. В файле /etc/services можно увидеть список соответствия имён протоколов номерам портов. Благодаря этому файлу, в UNIX можно во всех утилитах вместо номера порта писать имя соответвтвующего протокола.

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

  • установление соеднинения;
  • обработка подтверждения корректной доставки;
  • отслеживание состояния абонентов.

Для просмотра всех существующих в настоящий момент сетевых соединений можно воспользоваться командой netstat:

Пример 4.4. Пример выполнения команды netstat

desktop ~ # netstat -an
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 0.0.0.0:32769           0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:32770           0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN
tcp        0      0 192.168.11.5:34949      83.149.196.70:5223      ESTABLISHED
tcp        0      0 192.168.11.5:39833      213.248.55.180:5223     ESTABLISHED
tcp        0      0 192.168.11.5:59577      192.168.11.1:22         TIME_WAIT
udp        0      0 0.0.0.0:32768           0.0.0.0:*
udp        0      0 0.0.0.0:32769           0.0.0.0:*
udp        0      0 0.0.0.0:111             0.0.0.0:*

Настройка сети при загрузке системы

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

Такие файлы конфигурации являются специфичными для отдельно взятых версий UNIX. Примеры будут рассмотрены на практическом занятии.

Сервисы Internet

Служба доменных имён

Презентация 5-09: служба доменных имён

В предыдущих примерах использовался ключ -n многих сетевых утилит, чтобы избежать путаницы между IP-адресами и доменными именами компьютеров. С другой стороны, доменные имена – несколько слов (часто осмысленных), запоминать гораздо удобнее, чем адреса (четыре числа).

Когда-то имена всех компьютеров в сети, соответствующие IP-адресам, хранились в файле /etc/hosts. Пока абоненты Internet были наперечет, поддерживать правильность его содержимого не составляло труда. Как только сеть начала расширяться, неувязок стало больше. Трудность была не только в том, что содержимое hosts быстро менялось, но и в том, что за соответствие имен адресам в различных сетях отвечали разные люди и разные организации. Появилась необходимость структурировать глобальную сеть не только топологически (с помощью IP и сетевых масок), но и административно, с указанием, за какие группы адресов кто отвечает.

Проще всего было структурировать сами имена компьютеров. Вся сеть была поделена на домены – зоны ответственности отдельных государств («us», «uk», «ru», «it» и т. п.) или независимые зоны ответственности («com», «org», «net», «edu» и т. п.). Для каждого из таких доменов первого уровня должно присутствовать подразделение, выдающее всем абонентам имена, заканчивающиеся на «.домен» Подразделение обязано организовать и поддерживать службу, заменяющую файл hosts: любой желающий имеет право узнать, какой IP-адрес соответствует имени компьютера в этом домене или какому доменному имени соответствует определенный IP-адрес.

Такая служба называется DNS (Domain Name Service, служба доменных имен). Она имеет иерархическую структуру. Если за какую-то группу абонентов домена отвечают не хозяева домена, а кто-то другой, ему выделяется поддомен (или домен второго уровня), и он сам распоряжается именами вида «имя_компьютера.поддомен.домен». Таким образом, получается нечто вроде распределенной сетевой базы данных, хранящей короткие записи о соответствии доменных имен IP-адресам.

В самом простом случае для того, чтобы сказать системе, какой сервер доменных имён использовать, необходимо изменить файл /etc/resolv.conf. В более сложных системах можно установить и настроить собственный сервер доменных имён.

Для проверки работы системы DNS используются утилиты dig и host.

Удалённый терминал

Презентация 5-10: удалённый терминал

Концепция терминала, описанная в главе «Терминал», может быть расширена на сеть. Действительно, было бы удобно получить доступ к удалённой машине и работать с ней как за обычными монитором и клавиатурой. Отпадает необходимость иметь аппаратный терминал к каждому хосту, можно зайти терминалом на один хост, затем удаленным терминалом по сети на любой другой хост. В современных условиях повсеместности сети Internet, удалённые терминалы становятся основным рабочим инструментом администратора системы.

В сетях TCP/IP существует несколько приложений, позволяющих осуществить терминальный заход. Рассмотрим два из них: telnet и ssh. Оба построены по единому клиент-серверному принципу.

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

Клиент telnet взаимодействует и с пользователем, находящимся за терминалом, и с протоколами TCP/IP. Обычно, все что пользователь вводит с клавиатуры отправляется по TCP соединению, а все что приходит по соединению попадает на терминал.

Сервер telnet обычно взаимодействует с так называемыми псевдотерминальными устройствами в UNIX системах. Это делает его похожим на командный интерпритатор (shell), который запускается на сервере, или на любую программу, которая запускается из командной оболочки, так как именно они общаются с терминальными устройствами. Некоторые приложения, например, полноэкранные редакторы, считают, что они общаются с терминальным устройством.

Клиент telnet имеет еще одно полезное преминение. С его помощью можно тестировать стандартные сетевые протоколы – если в качестве порта назначения назначить порт соответствующего приложения. Telnet отправляет текстовые строки, разделённые знаками переноса строки, что делает его совместимым со многими протоколами Internel (SMTP, HTTP и т.п.).

Программа telnet обладает значительным недостатком – вся информация в ней (в том числе аутентификация пользователей) производится открытым текстом. В современных условиях глобальной сети это уже небезопасно. Решением этой проблемы является программа ssh, которая, будучи аналогичной по функциональности программе telnet, устанавливает защищённое соединение и предоставляет удалённый терминал с шифрацией всего промежуточного трафика.

В настоящее время для удалённого администрирования серверами в Internet применяется исключительно команда ssh.

Прокси-серверы

Прокси-сервер – специальная служба, расположенная между локальной сетью и Internet, которая обеспечивает доступ в Internet по протоколам HTTP, FTP и т.п. всем локальным компьютерам.

Такой сервер может поддерживать аутентификацию пользователей, учёт и фильтрацию трафика.

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

Межсетевой экран

Презентация 5-11: межсетевой экран iptables

В UNIX существует мощный механизм анализа сетевых и транспортных пакетов, позволяющий избавляться от нежелательной сетевой активности, манипулировать потоками данных и даже преобразовывать служебную информацию в них. Обычно такие средства носят название firewall («fire wall» – противопожарная стена, брандмауэр), общепринятый русский термин – межсетевой экран.

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

Концепции iptables

Суть iptables в следующем. Обработка сетевого пакета системой представляется как его конвейерная обработка. Пакет нужно получить из сетевого интерфейса или от системного процесса, затем следует выяснить предполагаемый маршрут этого пакета, после чего отослать его через сетевой интерфейс либо отдать какому-нибудь процессу, если пакет предназначался нашему компьютеру. Налицо три конвейера обработки пакетов: «получить – маршрутизировать – отослать» (действие маршрутизатора), «получить – маршрутизировать – отдать» (действие при получении пакета процессом) и «взять – маршрутизировать – отослать» (действие при отсылке пакета процессом).

Между каждыми из этих действий системы помещается модуль межсетевого экрана, именуемый цепочкой. Цепочка обрабатывает пакет, исследуя, изменяя и даже, возможно, уничтожая его. Если пакет уцелел, она передает его дальше по конвейеру. В этой стройной схеме есть два исключения. Во-первых, ядро Linux дает доступ к исходящему пакету только после принятия решения о его маршрутизации, поэтому связка «взять – маршрутизировать» остается необработанной, а цепочка, обрабатывающая исходящие пакеты (она называется OUTPUT) вставляется после маршрутизации. Во-вторых, ограничения на «чужие» пакеты, исходящие не от нас и не для нас предназначенные, существенно отличаются от ограничений на пакеты «свои», поэтому после маршрутизации транзитные пакеты обрабатываются еще одной цепочкой (она называется FORWARD). Цепочка, обслуживающая связку «получить – маршрутизировать», называется PREROUTING, цепочка, обслуживающая связку «маршрутизировать – отдать» – INPUT, а цепочка, стоящая непосредственно перед отсылкой пакета – POSTROUTING (см. Рисунок 4.3, «Обработка пакета в iptables»).

Рисунок 4.3. Обработка пакета в iptables

Обработка пакета в iptables

Если пакет не имеет свойств, требуемых первым правилом, к нему применяется второе, если второе также не подходит – третье, и так вплоть до последнего, правила по умолчанию, которое применяется к любому пакету. Если свойства пакета удовлетворяют правилу, над ним совершается действие. Действие DROP уничтожает пакет, а действие ACCEPT немедленно выпускает его из таблицы, после чего пакет движется дальше по конвейеру. Некоторые действия, например LOG, никак не влияют на судьбу пакета, после их выполнения он остается в таблице: к нему применяется следующее правило, и т. д. до ACCEPT или DROP.

Одной из важных функций сетевого экрана является подмена адресов и модификация сетевых пакетов. NAT (Network Address Translation – подмена сетевых адресов) – это механизм, позволяющий организовать передачу пакетов между сетями, не имеющими сведений о сетевых адресах друг друга. Этот процесс, чем-то схожий с маршрутизацией, позволяет организовывать шлюзы локальных сетей в Internet, распределять внешние соединения на отдельные машины внутри сети и т.п..

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

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

Резюме

Презентация 5-12: резюме

Сеть состоит из различных аппаратно-программных узлов, для объединения которых используются стандартные протоколы. Эталонной моделью взаимодействия таких систем является семиуровневая модель OSI.

Протокол TCP/IP частично реализует уровни OSI. Основные протоколы IP (сетевого уровня) и TCP (транспортного уровня) позволили объединить разрозненные локальные сети в глобальную сеть Internet.

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

Для удаленного управления компьютерами используется программа telnet и её современных защищённый аналог – ssh.

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

Ключевые термины:OSI, физический уровень, канальный уровень, МАС-адрес, сетевой уровень, маршрутизатор, транспортный уровень, сеансовый уровень, уровень представления, прикладной уровень, сетевой интерфейс, IP-адрес, шлюз, служба доменных имен, удалённый терминал, прокси-сервер, межсетевой экран, цепочка, NAT

Дополнительные материалы

  1. Олифер В.Г., Олифер Н.А. Компьютерные сети. Принципы, технологии, протоколы. – СПб.: Питер, 2002. – 672 с.: ил.
  2. Курячий Г.В., Маслинский К.А. Операционная система Linux. – М.: Интуит.Ру, 2005. – 392 с.: ил.

Презентация

Рисунок 4.4. Презентация 5-01: введение в сети

Презентация 5-01: введение в сети

Рисунок 4.5. Презентация 5-02: взаимодействие открытых систем

Презентация 5-02: взаимодействие открытых систем

Рисунок 4.6. Презентация 5-03: протоколы Internet: TCP/IP

Презентация 5-03: протоколы Internet: TCP/IP

Рисунок 4.7. Презентация 5-04: сетевой интерфейс в UNIX

Презентация 5-04: сетевой интерфейс в UNIX

Рисунок 4.8. Презентация 5-05: сетевой адрес

Презентация 5-05: сетевой адрес

Рисунок 4.9. Презентация 5-06: маршрутизация

Презентация 5-06: маршрутизация

Рисунок 4.10. Презентация 5-07: протокол ICMP

Презентация 5-07: протокол ICMP

Рисунок 4.11. Презентация 5-08: сетевые соединения

Презентация 5-08: сетевые соединения

Рисунок 4.12. Презентация 5-09: служба доменных имён

Презентация 5-09: служба доменных имён

Рисунок 4.13. Презентация 5-10: удалённый терминал

Презентация 5-10: удалённый терминал

Рисунок 4.14. Презентация 5-11: межсетевой экран iptables

Презентация 5-11: межсетевой экран iptables

Рисунок 4.15. Презентация 5-12: резюме

Презентация 5-12: резюме