Модуль 8. Управление сервисами
8.1 Управление запуском сервисов
Задание:
- с помощью сигналов отключить пользователя userX
- включить/выключить сервис clamav из автозагрузки
- добавить в автозагрузку свой собственный сервис
Сигналы
Аутентификация с использованием ключей ssh
# ssh-keygen # ssh-copy-id userX@gate.isp.un
Linux Система загрузки rc.local
-
Linux
Linux Система загрузки Systemd
Linux Универсальный скрипт service
8.2 Регистрация действий сервисов
Задание:
- выяснить, куда пишутся журнальные сообщения от сервисов
- научиться отправлять журнальные сообщения из командной строки
-
Локализация временной зоны
-
Установка даты и времени
-
Регистрация событий в Linux
# cat /etc/ssh/sshd_config ... LogLevel... ...
- Почему вместо rc.local стали применять системы инициализации/загрузки?
- Что делает команда init n ?
- Какие команды используются для вывода списков управляемых сервисов в системах инициализации SystemV, OpenRC, Systemd, rcNG?
- Как включить/отключить автоматический запуск сервиса?
- Какова причина наличия типа сообщения в системах syslog?
- Что нужно сделать, что бы получать больше отладочной информации о работе сервиса?
Модуль 2. Файлы в UNIX
Лабораторные работы
-
Команды для работы с файловой системой
-
Команды чтения содержимого файлов
-
Текстовый редактор nano
- Настройка командных интерпретаторов (комбинации клавиш, повтор и автоподстановка команд)
- Команды фильтры (выполнить работу в теме перенаправления ввода вывода)
- Команда tar (выполнить работу в конце курса)
- Программа WinSCP
- Команды scp, wget (в лабораторных работах следующего модуля)
Вопросы
- Что обозначают ключи «a», «l» в команде ls?
- Какой командой можно создать файл?
- Что означает символы “~”, “.”, “..”, “/” в имени файла?
- Что обозначают ключи “h/H”, “v”, “r/R” во многих командах?
- Какие команды используются для анализа занятого места на диске/в каталоге?
- Какой командой можно удалить непустой каталог?
- Какие команды могут быть использованы для поиска файлов?
- Какие команды используются для просмотра содержимого файлов?
- Какая программа может быть использована для копирования файлов между UNIX и Windows по протоколу ssh?
- Какой ключ команды tail позволяет “в онлайне” наблюдать процесс появления новых записей в файле?
- Какая последовательность клавиш позволяет выйти из редактора vi без сохранения изменений?
- Какой командой можно найти содержимое в файле по шаблону?
- Какой ключ команды sort позволит отсортировать данные по числовому столбцу?
- Что обозначают символы “^”, “$”, “.”, “|” в регулярных выражениях?
- Что обозначают ключи “c”, “t”, “x”, “z”, “f” в команде tar
-
Что появится на экране в результате последовательности команд:
mkdir dir1; cd dir1/; touch echo ls; *
- Каким образом можно определить тип файла в UNIX?
[3] Настройте параметры minicom
Запустите sudo minicom -s, чтобы войти в интерфейс конфигурации minicom, используйте клавиши вверх и вниз, чтобы выбрать настройку последовательного порта, и нажмите Enter. В это время курсор остается позади «изменить настройку», и на нем появляется следующее меню:
Serial port setup
±————————————————————+
| A — Serial Device : /dev/ttyUSB0 |
| B — Lockfile Location : /var/lock |
| C — Callin Program : |
| D — Callout Program -: |
| E — Bps/Par/Bits : 9600 8N1 |
| F — Hardware Flow Control : No |
| G — Software Flow Control : No |
| |
| Change which setting? |
±————————————————————+ Нам нужно только ввести соответствующие буквы выше, а затем мы можем войти в соответствующее меню для настройки. После завершения настройки нажмите Enter, курсор вернется на задний план «изменить настройку» и повторить. По завершении нажмите Enter, чтобы вернуться в главное меню. Вернувшись в главное меню, выберите «Сохранить настройку как df1», сохраните ее как настройки по умолчанию, а затем выберите «Выход» для выхода. После выхода и повторного открытия minicom программное обеспечение инициализируется с указанными выше параметрами.
Примечание. Если вы не используете USB для последовательного порта, а используете последовательный порт напрямую, то последовательное устройство должно быть настроено как / dev / ttyS0.
MTR command examples
We will show you multiple examples of the MTR command and how to use it on Linux. You can use the same examples when you are using macOS or FreeBSD (there might be small differences). We will use Google.com as a hostname and some public IP addresses. You can change them and use them for your purposes.
$ mtr google.com
It will show you the basic statistics: each hop (hostnames) with time and loss%.
Show numeric IP addresses
$ mtr -g google.com
If you use “-g” you will get IP addresses (numbers) instead of hostnames. You can use the IP addresses with another tool for further diagnostic.
$ mtr -b google.com
Now you will see both hostnames and IP addresses. The addresses will be inside brackets.
Set the number of pings that you want to send
$ mtr -c 10 google.com
In this case, you are setting the number of pings that you want to send (10 in this case). You can set it to a big number like 1000 to check a hostname for a longer period and get a better idea of the connectivity.
Get a report of the MTR command result
$ mtr -r -c 10 google.com >mtr-command-google
or
$ mtr -rw -c 10 google.com >mtr-command-google
We do that with the “-r”. Here we have set the number of pings to 10, and the last part, “mtr-command-google”, is the name that you can change the way you like.
When you use the “-rw” you can get a cleaner report, easier on the eyes.
Rearrange the report
$ mtr -o “LSDR NBAW JMXI” google.com
The “-o” is for output. You can change the report format with this code, so you get the information the way you like.
Time intervals between ICMP ECHO requests
$ mtr -i 10 google.com
With “-c”, we set the number of pings. With the “-i” you set the time interval between the ICMP ECHO pings.
$ mtr –tcp google.com
Force the use of the TCP instead of the ICMP.
$ mtr –udp google.com
Force the use of the UDP instead of the ICMP.
Set the maximum amount of hops
$ mtr -m 35 216.58.223.78
We will use “-m” and a value of 35 to a specific IP address. You can change it to a more significant value if the query does more hops on the way.
Define the packet size
$ mtr -r -s 50 google.com
You can decide the specific packet size for the pings. In this example of a MTR command, we are using 50 bytes.
$ mtr –csv google.com
Use it if the CSV format works better for you than the traditional report.
$ mtr –xml google.com
Use it if the XML format works better for you than the regular report.
Модуль 3. Процессы в UNIX
Лабораторные работы
-
Перенаправление потоков ввода/вывода
- Настройка командных интерпретаторов (управление приглашением ко вводу PS1)
-
Коды завершения
-
Сигналы
- Управление заданиями bg, fg, jobs (демонстрирует преподаватель)
Вопросы
- Что обозначают ключи “a”, “x” в команде ps?
- Что такое STDIN, STDOUT, STDERR и какие у них номера?
- Что обозначают элементы “<”, “>”, “2>”, “&1”, “|” в выражениях shell
-
Объясните, как работает конструкция
:> file1
- Чем отличается команда set от команды env?
- Что влияет на выбор языка интерфейса в *NIX программах?
- Как посмотреть код завершения процесса и какое он должен иметь значение, если не было ошибок?
- Что обозначают элементы “&&”, “||”, “;”, “&” в выражениях shell
- Объясните, что происходит при использовании комбинаций “Ctrl C”, “Ctrl D”, “Ctrl Z”?
- Как обрабатываются сигналы “HUP”, “INT”, “TERM”, “KILL”, “TSTP” процессами?
Команды Linux, связанные с процессом
Эти команды используются для обработки процессов Linux
55. ps
Команда Linux ps — это встроенный инструмент для отслеживания текущих процессов в системе. Он будет фиксировать состояние системы за один раз.
56. pmap
Команда pmap отображает карту использования памяти процесса или нескольких процессов. Pmap сообщает информацию об адресном пространстве или карте использования памяти процесса.
57. top
Команда top в Linux отображает запущенные процессы в системе. Эта команда широко используется для мониторинга нагрузки на сервер.
58. kill
Команда kill используется в Linux и других Unix-подобных операционных системах для завершения процессов без необходимости выхода из системы или перезагрузки компьютера.
59. killall
Команда killall может использоваться для отправки сигнала определенному процессу, используя его имя. Это означает, что если у вас запущено пять версий одной и той же программы, команда killall уничтожит все пять.
60. pkill
Аналогично команде killall, pkill посылает сигнал для завершения процесса с его именем. Начиная с Centos 7 рекомендуется использовать pkill.
61. fg и bg
Мы можем запускать задания в фоновом режиме без какого-либо вмешательства пользователя. Процессы, которые были остановлены каким-либо сигналом прерывания, могут быть продолжены в фоновом режиме с помощью команды bg. Команда fg похожа на команду bg, за исключением того, что вместо отправки команды в фоновом режиме она запускает их на переднем плане, занимает текущий терминал и ожидает завершения процесса.
What is the MTR command?
MTR (Matt’s traceroute) is a program with a command-line interface that serves for network diagnostic and troubleshooting. The original code was created by Matt Kimball in 1997. One year later, Roger Wolff continue its work and rename it to My traceroute.
The advantage of this software is that it combines the functionality of the Ping command and the Traceroute. Just like a typical traceroute query, a query from the MTR command will show the route from a computer to a specified host.
The advantage over the traditional is that it will also provide a lot of statistics about each hop, like response time and percentage.
So, using the MTR command, you will get more information about the route and see problematic devices on the way. If you see a sudden increase in time of response or packet loss, you have found a bad link.
In a brief, the MTR command serves you for the following:
- Check the connectivity from the computer with the command to a destination.
- See packet loss. It will indicate the quality of the connectivity between the points.
- Time for a round-trip. You can see the exact time it takes for the packets to reach the destination and provide a report.
The MTR command is available on Unix-based OSes like Linux (Ubuntu, CentOS, Fedora, etc.), macOS, and FreeBSD. There is a version of MTR for Windows, but with limited functionality. There is also WinMTR for Windows, but its code is different.
How to use the MTR command?
How to use the MTR command on Linux or FreeBSD?
*You will need administrative privileges for MTR on Linux and FreeBSD (sudo)
- First, you will need to open the Terminal application.
- To get the MTR command on Linux (Ubuntu or Debian), you will need to install it with this command “sudo apt-get install mtr”, “sudo yum install mtr” for CentOS, Fedora or “sudo pkg iWnstall package_name” on FreeBSD.
- Use the following command “mtr -rw ” for basic information or check the syntax and the examples below, to do more advanced tasks. Change the destination_host with the one you like. Use it for 10-15 minutes.
How to use the MTR command on macOS?
*You will need administrative privileges for MTR on macOS (sudo). The command won’t be pre-installed, so you will need to install it first.
- You will need Brew to install it. Go to Brew’s site and there choose a language.
- Under it, you will see a text command, copy it.
- On your Mac computer, go to Applications, then Utilities, and there open the Terminal application.
- Inside the Terminal, paste the text and press Enter.
- You will be prompted a message to put your password. Do it and press Enter.
- After Brew is already installed, you will need to write a new command: “brew install mtr” and press Enter.
- When the MTR gets installed, you can start it with “sudo mtr” and Enter. Use this code “mtr -rw ” to perform a basic check. Change the destination_host with the one you like. Run it for 10-15 minutes.
- Now you can start using the MTR command on macOS. See the syntax below and the examples to learn how to do more complex tasks.
How to use the MTR command on Windows?
- First, you need to download WinMTR from GitHub.
- Get the file called WinMTR-v100-static.zip, unzip it, and there will be two versions: WinMTR.exe (32bit) and WinMTR64.exe.
- Choose depending on your version of Windows and double click it.
- Put the host you want to check in the Host box. If you need extra options, you can see them in “Options”
- Press start and run it for a while (10-15 minutes).
- Stop it when you think you got enough information. You can copy the text and save it in a text file.
Модуль 5. Настройка и тестирование сети
Лабораторные работы
5.1 Команды для настройки сети
Задание:
- выяснить состояние сетевых интерфейсов в системе, назначить им ip/mask/gate
- выяснить состояние переменных ядра отвечающих за forwarding ip пакетов и базовое значение ttl
Команды для настройки сети в Linux
5.2 Команды для диагностики сети
Задание: используя настроенную сетевую подсистему ядра проверить ее функционирование и подключиться к системе по протоколу ssh
Команды для диагностики сети в Linux
5.3 Файлы конфигурации сети
Задание: отредактировать файлы конфигурации сети используя любой тестовый редактор, перезагрузить систему проверить работу сети после перезагрузки системы.
-
Текстовый редактор nano
- сети в Linux
5.4 Дополнительные утилиты для тестирования сети
Задание: посмотреть какой порт “слушает” сервис ssh
Команды для диагностики сетевой подсистемы в Linux
Задание: посмотреть содержимое трафика ssh командой tcpdump
Утилиты для тестирования сети
Задание: проверить работу клиента DNS
Утилиты тестирования DNS
- Какие команды используются для управления/диагностики сетевых параметров системы?
- Какие команды используются для тестирования настроек DNS?
- Какие команды используются для анализа открытых сетевых портов системы?
- Что общего между файлами /etc/resolv.conf и /etc/hosts?
- Какие варианты управления файлом /etc/resolv.conf могут быть?
Выводы
Команда chgrp Linux выполняет одну функцию – меняет группу у файлов и каталогов. При обработке символических ссылок надо быть предельно осторожным, чтобы не навредить системе, поэтому параметр -R не рекомендуется дополнять другими. Также вы можете менять пользователя и группу одновременно с помощью команды chown.
Как вы могли заметить, программа chgrp задаёт только одну группу, на деле же списки управления доступом (ACL) позволяют назначать несколько групп. Для работы с ними можно использовать утилиты setfacl и getfacl, также имеется утилита с графическим интерфейсом eiciel (в репозиториях Debian 10 и Ubuntu 20.04 лежит устаревшая версия, последняя (0.9.13) умеет задавать права рекурсивно).