00-tech-book
.pdftcpdump
Иногда в целях выявления неисправностей нам нужно выяснить, какие пакеты передаются по сети. Это не сложно сделать с помощью 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-сервер. |
|
|
|