
- •Unix: учебный курс Алексей Федосеев
- •Несколько слов об этом курсе
- •Методические рекомендации Введение для лектора
- •Порядок изучения материалов
- •Часть I. Лекции Глава 1. Введение в операционную систему unix
- •Основные концепции операционных систем Обзор компьютерных систем
- •Назначение операционной системы
- •Операционная система как виртуальная машина
- •Операционная система как менеджер ресурсов
- •Архитектура операционной системы
- •Монолитная операционная система
- •Микроядерная операционная система
- •Место unix в истории вычислительных систем
- •Что было до операционных систем
- •Операционные системы для мэйнфреймов
- •Появление операционной системы unix
- •Развитие операционных систем в глобальных сетях
- •Операционные системы для персональных компьютеров
- •Операционные системы для встраиваемых систем
- •Такой разный unix
- •Классификация операционных систем по назначению
- •Дополнительные материалы
- •Вопросы
- •Презентация
- •Архитектура unix. Файлы и устройства Особенности архитектуры unix
- •Два кита unix: файлы и процессы
- •Беглый взгляд на архитектуру unix
- •Ядро unix
- •Файловая система unix
- •Особенности файловой системы
- •Виртуальная файловая система
- •Дерево каталогов
- •Устройства и драйверы
- •Дополнительные материалы
- •Вопросы
- •Презентация
- •Архитектура unix. Процессы
- •Управление памятью
- •Управление процессами
- •Контекст процесса
- •Планирование процессов
- •Создание новых процессов
- •Процессы и потоки
- •Межпроцессное взаимодействие
- •Разделяемая память
- •Переменные окружения
- •Сигналы
- •Дополнительные материалы
- •Вопросы
- •Презентация
- •Глава 2. Использование unix
- •Терминал и командная строка
- •Терминал
- •Управляющие символы
- •Одновременный доступ к системе
- •Командная строка
- •Командная оболочка
- •Приглашение
- •Команды
- •Параметры
- •Шаблоны
- •Перенаправление ввода и вывода
- •Программное окружение
- •Стандартные переменные окружения
- •Служебные символы
- •Процесс выполнения команды
- •Возвращаемое значение
- •Эффективное использование командной строки
- •Редактирование командной строки
- •История команд
- •Автодополнение
- •Средства объединения команд
- •Справочная подсистема
- •Страницы руководства
- •Поиск по руководствам
- •Программа info
- •Документация, поставляемая с программой
- •Интегрированные системы документации
- •Дополнительные материалы
- •Вопросы
- •Презентация
- •Введение в безопасность unix
- •Основы информационной безопасности
- •Политика безопасности
- •Управление доступом
- •Аутентификация и авторизация
- •Концепции безопасности unix
- •Пользователи и группы
- •Права доступа
- •Разделяемые каталоги
- •Подмена идентификатора процесса
- •Ограничения базовой модели доступа и её расширения
- •Суперпользователь
- •Аутентификация пользователей
- •Управление пользователями и правами доступа База данных пользователей системы
- •Изменение базы данных пользователей
- •Изменение прав доступа
- •Ограничения сеанса пользователя
- •Дополнительные материалы
- •Вопросы
- •Презентация
- •Сеть в unix
- •Введение в сети
- •Семиуровневая модель osi
- •Физический уровень
- •Канальный уровень
- •Сетевой уровень
- •Протоколы Internet: tcp/ip
- •Сетевой интерфейс в unix
- •Конфигурация ip-сетей Сетевой адрес
- •Маршрутизация
- •Служебный протокол icmp
- •Информация о соединениях
- •Настройка сети при загрузке системы
- •Службы Internet Служба доменных имён
- •Удалённый терминал
- •Прокси-серверы
- •Межсетевой экран
- •Концепции iptables
- •Дополнительные материалы
- •Вопросы
- •Презентация
- •Глава 3. Базовое администрирование unix
- •Управление службами
- •Загрузка операционной системы Этапы загрузки системы
- •Процесс init
- •Конфигурационный файл init
- •Различия в загрузке unix-подобных систем
- •Системы, наследующие System V
- •Системы, наследующие bsd
- •Системы со смешанной схемой загрузки
- •Системные службы
- •Запуск и остановка служб
- •Автоматическая загрузка служб
- •Какие бывают службы
- •Служба планирования заданий
- •Конфигурация планировщика заданий
- •Запуск программ
- •Сетевые службы
- •Мониторинг и журналирование
- •Служба системного журнала
- •Основные системные журналы
- •Ротация системных журналов
- •Мониторинг пользователей
- •Дополнительные материалы
- •Вопросы
- •Презентация
- •Управление программным обеспечением
- •Управление программным обеспечением: роли и задачи Основные роли в создании и использовании по
- •Задачи системы управления программным обеспечением
- •Формы распространения программного обеспечения в двоичной форме или в исходных текстах?
- •Сборочные процедуры как средство управления по
- •Дистрибутивы
- •Дистрибутивы, основанные на сборке программ из исходных текстов
- •Дистрибутивы, основанные на двоичных пакетах
- •Управление пакетами
- •Задачи менеджера пакетов
- •Менеджер пакетов rpm
- •Работа с репозитариями пакетов: apt
- •Источники программ (репозитории)
- •Дополнительные материалы
- •Вопросы
- •Презентация
- •Часть II. Практические занятия
- •Глава 4. Практические занятия по командам unix
- •Методические указания по основным командам unix
- •Команды по работе с файловой системой
- •Команды по работе с текстом
- •Команды, использующие регулярные выражения
- •Практическое занятие. Работа с файлами в unix
- •Сценарий: Знакомство с каталогами unix
- •Сценарий: Изучение типов файлов в unix
- •Сценарий: Поиск системных журналов
- •Сценарий: Архивирование и деархивирование файлов и каталогов
- •Сценарий: Cоздание новых текстовых файлов
- •Сценарий: Разрезание и склеивание файлов
- •Сценарий: Быстрый анализ текстов
- •Сценарий: Поиск строк по регулярным выражениям
- •Задания для самоподготовки
- •Сценарии практического занятия на тему: Работа с файлами в unix
- •Методические указания по командам управления системой в unix Команды получения сведений о системе
- •Команды по работе с процессами
- •Практическое занятие. Сбор сведений о системе и управление процессами
- •Сценарий: Сбор сведений о системе
- •Сценарий: Управление процессами с помощью сигналов
- •Сценарий: Выполнение задач в фоновом режиме
- •Сценарий: Запуск демонов
- •Сценарий: Изменение приоритетов выполняющихся программ
- •Задания для самоподготовки
- •Сценарии практического занятия на тему: Сбор сведений о системе и управление процессами
- •Глава 5. Практическое занятие по безопасности unix
- •Методические указания по командам управления безопасностью в unix Команды по управлению правами
- •Команды по управлению пользователями
- •Практическое занятие. Управление доступом. Управление пользователями Сценарий: Вход в систему и завершение сеанса
- •Сценарий: Изучение базовых прав доступа
- •Сценарий: Переход в режим суперпользователя
- •Сценарий: Изучение базы данных пользователей
- •Сценарий: Добавление и удаление пользователей
- •Задания для самоподготовки
- •Сценарии практического занятия на тему: Управление доступом. Управление пользователями
- •Глава 6. Практические занятия по сетям в unix
- •Методические указания по командам управления сетью в unix Команды по конфигурированию сети
- •Команды по диагностике сети
- •Сценарий: Настройка таблицы маршрутизации
- •Сценарий: Изучение службы доменных имён
- •Сценарий: Простая диагностика работы сети
- •Сценарий: Работа по удалённому терминалу
- •Задания для самоподготовки
- •Сценарии практического занятия на тему: Управление сетью
- •Практическое занятие. Расширенная диагностика и настройка сети
- •Сценарий: Сканирование локальной сети
- •Сценарий: Сканирование удалённых хостов
- •Сценарий: Настройка сетевого экрана
- •Задания для самоподготовки
- •Сценарии практического занятия на тему: Расширенная диагностика и настройка сети
- •Глава 7. Обзор прикладных программ
- •Программы сетевого обмена sendmail: программа отправления почты
- •Параметры команды
- •Wget: консольный загрузчик файлов
- •Параметры команды
- •Настройка
- •Глава 8. Практические занятия по базовому администрированию unix
- •Методические указания по командам управления службами и журналами Текстовые редакторы
- •Рабочий экран
- •Управляющие клавиши
- •Встроенные команды
- •Настройка
- •Рабочий экран
- •Управляющие клавиши
- •Встроенные команды
- •Настройка
- •Режимы работы
- •Команды по управлению службами
- •Команды по мониторингу пользователей
- •Практическое занятие. Управление службами
- •Сценарий: Загрузка системы
- •Команды по работе с репозитарием пакетов
- •Установка или обновление пакета
- •Удаление установленного пакета
- •Обновление всех установленных пакетов
- •Поиск пакетов
- •Приложение a. Список вопросов
Сценарий: Работа по удалённому терминалу
Сценарий рассматривает работу по удалённому сетевому терминалу с использованием программы ssh.
Начальные условия: Командная строка суперпользователя, сетевой интерфейс настроен на статический IP-адрес.
С помощью команды ssh user@10.10.1.222
desktop ~ # ssh user@10.10.1.222
Password:
Last login: Sat Nov 21 15:56:20 2005 from 10.10.1.5
user@remote ~ $
user@remote ~ $ exit
Выполним команду who, чтобы убедиться, что находимся на удалённой машине. Для всех пользователей, работающий удалённо, указывается IP-адрес.
user@remote ~ $ who
user vc/1 Nov 14 14:04
user pts/0 Nov 22 10:55 (10.10.1.5)
Для завершение сеанса удалённого терминала нужно выйти из командной оболочки с помощью команды exit.
user@remote ~ $ exit
logout
Connection to 10.10.1.5 closed.
desktop ~ #
Задания для самоподготовки
Настройте сетевой интерфейс eth0 на сеть с адресом 192.168.77.0, состоящую из 16 машин.
С помощью программы netstat определите какие значения принимают локальные порты в исходящих TCP-соединениях? В какой диапазон они попадают?
Сценарии практического занятия на тему: Управление сетью
«Сценарий: Настройка сетевого интерфейса»
ifconfig -a
ping 127.0.0.1
ifconfig eth0 down
ifconfig eth0 192.168.1.1 up
ifconfig eth0 10.10.1.1 netmask 255.0.0.0 up
arp
«Сценарий: Настройка таблицы маршрутизации»
route -n
route
route add -host 10.10.2.1 dev eth0
route del -host 10.10.2.1
route add -net 192.168.1.0 gw 10.10.1.253
traceroute ya.ru
«Сценарий: Изучение службы доменных имён»
cat /etc/hosts
ping ya.ru
cat /etc/resolv.conf
host ya.ru
host ya.ru ns1.yandex.ru
«Сценарий: Простая диагностика работы сети»
telnet ya.ru 80
netstat -t
netstat -a
«Сценарий: Работа по удалённому терминалу»
ssh user@10.10.1.222
who
exit
Практическое занятие. Расширенная диагностика и настройка сети
Цель занятия: знакомство с командами анализа сетевой активности и хостов в TCP/IP-сети и интстументами управления межсетевым экраном в Linux.
Изучаемые команды: iptables, nmap, tcpdump
Сценарий: Сканирование локальной сети
Сценарий описывает возможности по просмотру сетевого трафика, проходящего через присутствующие в системе сетевые интерфейсы.
Начальные условия: Командная строка суперпользователя после входа в систему, настроенные сетевой интерфейс и таблица маршрутизации.
Выведем все пакеты, проходящие через интерфейс eth0, с помощью команды tcpdump -i eth0 -l -n:
desktop ~ # tcpdump -i eth0 -l -n
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
14:37:23.929208 IP 192.168.0.204.32791 > 192.168.0.1.53: 40133+ A? ya.ru. (23)
14:37:23.931050 IP 192.168.0.1.53 > 192.168.0.204.32791: 40133- 1/0/0 A 213.180.204.8 (39)
14:37:23.932778 IP 192.168.0.204 > 213.180.204.8: ICMP echo request, id 12586, seq 1, length 64
14:37:23.954412 IP 213.180.204.8 > 192.168.0.204: ICMP echo reply, id 12586, seq 1, length 64
14:37:23.954784 IP 192.168.0.204.32791 > 192.168.0.1.53: 29723+ PTR? 8.204.180.213.in-addr.arpa. (44)
14:37:23.956530 IP 192.168.0.1.53 > 192.168.0.204.32791: 29723- 1/0/0 (63)
...
Прервать выполнение команды можно нажатием Ctrl-C.
Используем фильтр по уалённому порту для просмотра всего трафика в сети, генерируемого данной машиной, tcpdump -i eth0 -l -n src host 192.168.0.204:
desktop ~ # tcpdump -i eth0 -l -n src host 192.168.0.204
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
14:43:02.492487 IP 192.168.0.204.32791 > 192.168.0.1.53: 13524+ AAAA? yandex.ru. (27)
14:43:02.520278 IP 192.168.0.204.32791 > 192.168.0.1.53: 12908+ AAAA? yandex.ru. (27)
14:43:02.522799 IP 192.168.0.204.32791 > 192.168.0.1.53: 48501+ A? yandex.ru. (27)
14:43:02.525069 IP 192.168.0.204.57521 > 1.0.0.0.80: S 1379873941:1379873941(0) win
5840 <mss 1460,sackOK,timestamp 2563967 0,nop,wscale 2>
...
Условия можно объёдинять, например, посмотрим все обращения по протоколу http на хост ya.ru, tcpdump -i eth0 -l -n src host 192.168.0.204 and dst port 80:
desktop ~ # tcpdump -i eth0 -l -n src host 192.168.0.204 and dst port 80
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
14:49:39.015251 IP 192.168.0.204.38172 > 213.180.204.11.80: S 1789772982:1789772982(0)
win 5840 <mss 1460,sackOK,timestamp 2663083 0,nop,wscale 2>
14:49:39.054551 IP 192.168.0.204.38172 > 213.180.204.11.80: . ack 851659167 win 5840
14:49:39.056486 IP 192.168.0.204.38172 > 213.180.204.11.80: P 0:626(626) ack 1 win 5840
14:49:39.598337 IP 192.168.0.204.38172 > 213.180.204.11.80: . ack 1411 win 8460
14:49:39.604713 IP 192.168.0.204.38172 > 213.180.204.11.80: . ack 2821 win 11280
14:49:39.659811 IP 192.168.0.204.38172 > 213.180.204.11.80: . ack 4231 win 14100
14:49:39.784351 IP 192.168.0.204.38172 > 213.180.204.11.80: . ack 5641 win 16920
14:49:39.848824 IP 192.168.0.204.38172 > 213.180.204.11.80: . ack 7051 win 19740
14:49:39.966120 IP 192.168.0.204.38172 > 213.180.204.11.80: F 626:626(0) ack 8118
win 22560
В данном примере можно увидеть одно последовательное TCP-соединение.
С помощью параметров -X и -s можно просмотреть содержимое пакетов, tcpdump -i eth0 -l -n -X -s 2048 src host 192.168.0.204 and dst port 80:
desktop ~ # tcpdump -i eth0 -l -n -X -s 2048 src host 192.168.0.204 and dst port 80
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 2048 bytes
15:00:20.150901 IP 192.168.0.204.58273 > 213.180.204.11.80: S 2473175603:2473175603(0)
win 5840 <mss 1460,sackOK,timestamp 2823357 0,nop,wscale 2>
0x0000: 4500 003c be8e 4000 4006 18f9 c0a8 00cc E..<..@.@.......
0x0010: d5b4 cc0b e3a1 0050 9369 aa33 0000 0000 .......P.i.3....
0x0020: a002 16d0 9789 0000 0204 05b4 0402 080a ................
0x0030: 002b 14bd 0000 0000 0103 0302 .+..........
15:00:20.172752 IP 192.168.0.204.58273 > 213.180.204.11.80: . ack 2349139833 win 5840
0x0000: 4500 0028 be8f 4000 4006 190c c0a8 00cc E..(..@.@.......
0x0010: d5b4 cc0b e3a1 0050 9369 aa34 8c05 0779 .......P.i.4...y
0x0020: 5010 16d0 80c1 0000 P.......
15:00:20.172815 IP 192.168.0.204.58273 > 213.180.204.11.80: P 0:624(624) ack 1 win 5840
0x0000: 4500 0298 be90 4000 4006 169b c0a8 00cc E.....@.@.......
0x0010: d5b4 cc0b e3a1 0050 9369 aa34 8c05 0779 .......P.i.4...y
0x0020: 5018 16d0 023e 0000 4745 5420 2f79 616e P....>..GET./yan
0x0030: 6473 6561 7263 683f 7465 7874 3d74 6573 dsearch?text=tes
0x0040: 7426 7374 7970 653d 7777 7720 4854 5450 t&stype=www.HTTP
0x0050: 2f31 2e31 0d0a 486f 7374 3a20 7777 772e /1.1..Host:.www.
0x0060: 7961 6e64 6578 2e72 750d 0a55 7365 722d yandex.ru..User-
0x0070: 4167 656e 743a 204d 6f7a 696c 6c61 2f35 Agent:.Mozilla/5
0x0080: 2e30 2028 5831 313b 2055 3b20 4c69 6e75 .0.(X11;.U;.Linu
0x0090: 7820 6936 3836 3b20 656e 2d55 533b 2072 x.i686;.en-US;.r
0x00a0: 763a 312e 372e 3132 2920 4765 636b 6f2f v:1.7.12).Gecko/
...