Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

00-tech-book

.pdf
Скачиваний:
42
Добавлен:
10.02.2016
Размер:
7.86 Mб
Скачать

tcpdump

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

Слушаем весь трафик для MAC-адреса 00:a0:80:00:2f:fe на интерфейсе eth1

# tcpdump -n -i eth1 «ether host 00:a0:80:00:2f:fe»

Слушаем трафик для определенного ip-адреса и порта

# tcpdump -nn host 192.168.146.130 and port 22

Сканируем диапазон портов

# nmap -sT -p 13722-13783 linuxbox

Резюме

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

Домашнее задание

Пройдитесь по всем пунктам описанным в этом модуле. Воспользуйтесь nmap и tcpdump на практике.

Модуль 2. Сетевой интерфейс Linux.

 

41

 

 

 

 

 

TFTP

TFTP (Trivial File Transfer Protocol) — это простой протокол передачи данных. Для передачи данных использует протокол UDP, что в свою очередь не гарантирует надежность передачи. Также в нем нет средств аутентификации пользователей. TFTP используется в связке с другими технологиями когда нужно просто передать файл без каких либо сложностей.

Самые распространенные способы использования TFTP:

передача файлов при загрузке бездисковых рабочих станций;

передача начального загрузочного образа при установке ОС по сети;

участие в процессе backup`а и восстановления конфигурации сетевого оборудования;

другие схожие операции.

TFTP ищет все файлы в каталоге /tftpboot который создается автоматически при установке программы.

Установка

Устанавливаем пакет tftp-server из репозитория

# yum -y install tftp-server

Теперь необходимо включить tftp в конфигурации xinetd, для этого в файле /etc/xinetd.d/tftp

Меняем “disable = yes” на “disable = no” и включаем xinetd

# service xinetd start

Проверяем что порт tftp-сервера прослушивается (tftp работает на порту 69)

# netstat -nlp | grep :69

udp

0 0 0.0.0.0:69

0.0.0.0:*

3105/xinetd

Работа с TFTP

После того как TFTP-сервер запущен можно помещать все нужные файлы в / tftpboot на отдачу по сети.

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

42

 

Модуль 3. TFTP

 

 

 

То есть при backup`е конфигурации в файл на TFTP-сервере он уже должен существовать!

Создаем пустой файл

# touch /tftpboot/cisco2960.backup

Устанавливаем на него права

# chmod 666 /tftpboot/cisco2960.backup

Типы пакета

Вкаждомпередаваемомпакетеестьполеразмером2байта,оноиопределяет что это за пакет. Знание какой тип чего делает может помочь при анализе сетевого трафика, например с помощью tcpdump.

RRQ (Read Request) – запрос на чтение файла;

WRQ (Write Request) – запрос на запись файла;

DATA – данные передаваемые через tftp;

ERR (Error) – ошибка;

OACK (Options Acknowledgment) – подтверждение опций.

Режимы передачи

Существует два режима передачи файлов:

netascii – файл перед передачей перекодируется в ASCII

octet – файл передается без изменений

Коды ошибок

0 Нет определенного кода, см. текст ошибки;

1 Файл не найден;

2Доступ запрещен;

3 Невозможно выделить место на диске;

4 Некорректная TFTP-операция;

5 Неправильный Transfer ID;

6Файл уже существует;

7 Пользователь не существует;

8Неправильная опция.

Модуль 3. TFTP

 

43

 

 

 

Клиент tftp

Чтобы подключаться к TFTP-серверу из командной строки нужно поставить tftp-клиент

# yum -y install tftp

Ну а далее просто подключаемся к tftp-серверу, например:

# tftp 192.168.146.135

Можно набрать help чтобы получить список доступных команд. Самое распространенное действие – это скачка файла, сделать это можно командой get.

tftp>get filename.txt

Резюме

Обычно TFTP используется в связке с другими технологиями а для классической передачи данных используют FTP. Настройка TFTP не занимает более 10 минут.

Домашнее задание

Сделайте TFTP-сервер и поработайте с ним. Закачайте/скачайте файлы воспользовавшись tftp-клиентом.

44

 

Модуль 3. TFTP

 

 

 

NFS

Network File System — сетевая файловая система разработанная компанией Sun Microsystems в 1984 году. Технология позволяет монтировать удаленные файловые системы у себя, далее вы с ними работаете как с локальными, права доступа задаются при экспорте.

Установка

Скорее всего NFS уже есть в системе. Это можно проверить следующей командой.

# chkconfig --list nfs

nfs 0:off 1:off 2:off 3:off 4:off 5:off 6:off

Добавляем в автозагрузку

#chkconfig nfs on

#service nfs start

Если же nfs в системе не обнаружен то ставим из репозитория

# yum -y install nfs-utils

В своей работе NFS использует RPC-вызовы а значит работоспособность службы можно проверить с помощью portmapper (он тоже должен быть запущен на сервере где выполняются программы использующие RPC Calls).

#rpcinfo -p localhost | grep nfs program vers proto port 100003 2 udp 2049 nfs 100003 3 udp 2049 nfs 100003 4 udp 2049 nfs

100003 2 tcp 2049 nfs

100003 3 tcp 2049 nfs

100003 4 tcp 2049 nfs

Как видим на моем сервере обслуживаются NFS-запросы всех версий NFS (4-ая - последняя на данный момент).

Модуль 4. NFS.

 

45

 

 

 

Настройка

Файл конфигурации /etc/exports содержит список файловых систем которые мы экспортируем, то есть разрешаем монтировать по протоколу NFS на удаленных системах.

Каждая строка в файле это указание на экспортируемую ФС и режим доступа к ней, шаблон следующий:

[файловая система] [кому разрешено получать доступ] [опциональные ключи]

Пример /etc/exports:

/home 192.168.146.135(rw,no_root_squash)

Здесь мы разрешаем монтировать /home на сервере 192.168.146.135 в режиме rw

Внимание! Аккуратнее с пробелами в файле. Если написать /home 192.168.146.135 (rw) то сервер 192.168.146.135 получит доступ к /home в режиме ro, все остальные в rw. Если 192.168.146.135(rw) то сервер 192.168.146.135 получит доступ в режиме rw, всем остальным доступ будет запрещен!

Перечитываем файл чтобы внесенные изменения начали действовать.

# exportfs -r

Проверим список экспортированных ФС

# exportfs

/home 192.168.146.135

Как видим все хорошо. Теперь на сервере 192.168.146.135 попробуем примонтировать ФС /home экспортированную на 192.168.146.132

Создаем каталог куда будем монтировать

# mkdir /mnt/nfs

Монтируем с помощью команды mount. Ключем -t задаем тип монтируемой ФС, далее <hostname>:<resource> <точка монтирования в локальной системе>

# mount -t nfs 192.168.146.132:/home /mnt/nfs

46

 

Модуль 4. NFS.

 

 

 

Используя опцию -o можно указать дополнительные ключи монтирования. По умолчанию монтирование происходит в режиме rw.

Если ФС экспортированы на сервере который работает 24 часа в сутки то монтирование разделов можно добавить в /etc/fstab тем самым автоматизировав процедуру при старте компьютера.

Строчка в /etc/fstab в нашем случае будет такая:

 

192.168.146.132:/home /mnt/nfs

nfs defaults

Все готово.

Опции конфигурационного файла

Самые часто используемые опции я описал ниже.

 

 

 

ro

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Только чтение;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

rw

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Чтение и запись;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

root_squash

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Не разрешает пользователю root получать root-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

привилегии в удаленной файловой системе, все

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

действия будут сделаны от лица пользователя nobody;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

no_root_squash

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Пользователь root в локальной системе получает такие

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

же права в удаленной. Стоит использовать эту опцию

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

только в случае острой необходимости. Используется

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

для бездисковых клиентов;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

all_squash

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Все запросы происходят от анонимного пользователя,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

что способствует повышению безопасности. Актуально

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

для публичных разделов;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

anonuid/anongid

 

 

 

 

 

 

 

 

 

 

 

 

 

Позволяет задать UID и GID пользователя от лица

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

которого будут выполняться все запросы;

 

sync

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Синхронный режим работы, ответы на запросы

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

происходят только после того, как данные будут

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

надежно записаны на диск. Надежность выше,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

производительность меньше;

 

 

 

 

async

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Асинхронный режим работы, ответы на запросы

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

происходят сразу, не дожидаясь записи на диск.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Надежность ниже, производительность выше;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

insecure

 

 

 

 

 

 

 

Разрешать запросы с портов более чем 1024;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

no_subtree_check

 

 

 

 

 

 

 

 

 

 

 

 

 

Если экспортируется подкаталог файловой системы, но

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

не вся файловая система, сервер, проверяет, находится

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

лизапрошенныйфайлвэкспортированномподкаталоге.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Эта проверка называется проверкой подкаталога.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Отключение проверки уменьшает безопасность, но

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

увеличивает скорость передачи данных.

 

Модуль 4. NFS.

 

47

 

 

Указать каким хостам разрешено монтировать наши разделы можно несколькими способами:

1. Указать hostname или просто IP-адрес;

2. Указать “*”, что означает разрешено всем. Если указать *.fasttech.ru то будет разрешено testers.fasttech.ru но запрещено alex.testers.fasttech.ru Чтобы этого избежать нужно написать *.*.fasttech.ru;

3.В нужных местах использовать “?”, что заменяет любой символ (не применимо к IP-адресам);

4.Использовать маски подсетей, например 192.168.146.32/27;

5.Использовать NIS-группы, например @nisgroup2.

Дополнительная информация

Описанного выше должно хватить сполна, но если хочется больше то:

#man nfs

#man exports

#man exportfs

Не путайте exports и exportfs. exports – это конфигурационный файл, exportfs

– программа для работы с ним.

Резюме

Мы выяснили что такое NFS и как ее использовать.

Домашнее задание

Сделайте доступ к ресурсу с помощью NFS и примонтируйте его с другого компьютера.

48

 

Модуль 4. NFS.

 

 

 

Install-сервер

В “зоопарке” системных администраторов часто попадаются сервера

без внешних CD/DVD-приводов. Время от времени на них нужно ставить операционную систему и в этом может сильно помочь установка по сети. Вы просто включаете сервер и начинаете установку. Сетевая карта должна поддерживать технологию PXE. PXE – Pre-Boot Execution Environment, позволяет осуществлять загрузку по сети.

Но PXE не достаточно для полного счастья, технология которая позволит полностью автоматизировать установку – kickstart (разработчиком которой является компания Red Hat). Суть ее проста, мы заранее составляем файл содержащий значения всех опций которые могут понадобиться в ходе установки. Более того мы можем выполнять свои скрипты до установки и после. Тем самым задавая настройки будущей ОС. Установка с помощью kickstart типового комплекта Linux занимает 5-7 минут.

Для Install-сервера нужно 3 службы и 1 пакет.

DHCP – предоставляет клиентам сетевые реквизиты

TFTP – простой способ предоставить доступ к файлам по сети

Syslinux – пакет содержит загрузчик pxelinux.0 и некоторые другие файлы

NFS – предоставляет доступ к файловой системе по сети

Принцип работы

Процесс установки можно разбить на этапы:

pxe – прошивка pxe начинает свою работу, когда мы в BIOS выставляем установку по сети или когда на HDD не найдена MBR

DHCP фаза 1 – клиент получает сетевые реквизиты и адрес tftp-сервера а также название файла-загрузчика (pxelinux.0). По умолчанию TFTP-сервер это DHCP-сервер.

TFTP – загрузчик pxelinux.0 обращается к TFTP-серверу и запрашивает у него initrd.img (Initial RAM disk, временная файловая система) ядро Linux.

Kernel – передача управления ядру Linux

DHCP фаза 2 – ядро Linux далет запрос к DHCP-серверу чтобы получить

Модуль 5. Install-сервер.

 

49

 

 

 

сетевые реквизиты и в дальнейшем адрес NFS-сервера

NFS – этап когда монтируется NFS-раздел

Init – происходит запуск /sbin/init и управление передается ему. Init – это главный процесс в системе, другие процессы являются родительскими процессами init.

В свободном изложение:

DHCP-серверожидаетbootp-запросывсвоейсети,послетогокаконполучает запрос он смотрит MAC-адрес источника, и если о таком MAC-адресе у него имеется соответствующая запись он начинает с ним работать. DHCP — сервер выдает клиенту сетевые реквизиты (ip-адрес, gateway, DNS-сервера,

...) и по протоколу TFTP, с помощью TFTP-сервера отправляет загрузочный образ pxelinux.0. Этого образа хватает чтобы вывести меню выбора ОС. Выбрав ОС вы начинаем загрузку ядра и начинаем инсталляцию, в процессе выбрав источник установки — NFS-сервер. На NFS-сервер нужно выложить подготовленный контент будущей операционной системы и убедиться, что соответствующие каталоги экспортированы.

DHCP

Устанавливаем DHCPD и добавляем его в автозагрузку

#yum -y install dhcp

#chkconfig dhcpd on

Файл /etc/dhcpd.conf делаем такой:

ddns-update-style interim; ignore client-updates;

subnet 192.168.146.0 netmask 255.255.255.0 {

 

 

 

 

 

option routers

192.168.146.2;

 

 

 

 

 

option subnet-mask

255.255.255.0;

 

 

 

 

 

 

option domain-name

«company.ru»;

option domain-name-servers 192.168.146.2;

default-lease-time 21600; max-lease-time 43200;

Allow bootp;

Allow booting;

50

 

Модуль 5. Install-сервер.