Блог о системном администрировании. статьи о linux, windows, схд netapp и виртуализации

Модуль 4. Выбор дистрибутива, установка и анализ системы

Теория

Какой дистрибутив Linux самый лучший?

DistroWatch — обзор дистрибутивов Linux

4.2 Установка системы

Задание:

  1. установить систему, не менять значения по умолчанию в процессе инсталляции
  2. добавить пользователя student/password
  3. в linux установить sshd

Инсталляция системы Linux

Задание для преподавателя:

  1. установить CentOS (NetworkManager)
  2. установить Ubuntu (Netplan)

Задание на дом:

Видео урок: Корпоративный WebVPN на основе прокси-сервера Squid

Задание: найти информацию о процессоре, памяти, дисках и сетевых платах

Анализ оборудования в Linux

4.4 Анализ ядра, модулей и дистрибутива

Задания:

  1. выяснить версию ядра
  2. выяснить, какие модули ядра загружены (например, для оборудования)
  3. выяснить дистрибутив (для linux)
  • Управление ядром и модулями в Linux

  • Выбор дистрибутива Linux

Задание: выяснить, запущен ли сервис sshd

  • Команда

4.6 Управление загрузчиком системы

Задание для преподавателя:

  1. восстановить забытый пароль (альтернативно можно показать ​исправление fstab в модуле про ФС, или, загрузка в однпользовательском режиме для переноса /var на другой диск)
  1. Что общего и в чем разница между Linux и UNIX?
  2. Что такое Source-based, Binary based, Rolling release, LTS дистрибутивы?
  3. Назовите этапы загрузки системы
  4. Какие команды позволят определить аппаратные ресурсы системы?
  5. Какие команды помогут определить версию ядра и дистрибутив системы?
  6. Для чего нужны модули ядра?
  7. Для чего служат переменные ядра?

Что такое призрак?

Файл .rhosts связан с файлом hosts.equiv, который также позволяет пользователям получать доступ к своим учетным записям на разных компьютерах. Разница в том, что файл hosts.equiv находится в корневом каталоге локальной системы и содержит список доверенных удаленных хостов (других компьютеров в той же сети) и пользователей, имеющих локальный доступ. Файл .rhosts — это скрытый файл в домашнем каталоге локального пользователя, содержащий список доверенных удаленных хостов и пользователей.

Файл .rhosts должен быть расположен на верхнем уровне домашнего каталога пользователя, чтобы быть доступным.

Популярные дистрибутивы Linux

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

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

Количество существующих дистрибутивов Linux превышает 600 штук, более 300 из которых постоянно дорабатываются и обновляются.

Ubuntu

Ubuntu– один из самых распространенных дистрибутивов, легко устанавливается и интуитивно понятен в работе. Отлично подходит для персональных компьютеров, ноутбуков и серверов. Разрабатывается и спонсируется компанией Canonical Ltd, но имеет активную поддержку и со стороны свободного сообщества. Самая популярная операционная система для веб-серверов.

Debian

Debian– еще один популярный дистрибутив GNU/Linux, который оказал существенное влияние на развитие всех GNU/Linux-операционных систем в целом. Основные черты Debian: широкие возможности, наличие множества репозиториев, высокое качество версий. Это самый стабильный дистрибутив из всех существующих.

Linux Mint

Linux Mint– дистрибутив, основанный на Ubuntu и Debian. Linux Mint обладает красивым и удобным дизайном и подойдет даже начинающим пользователям. Поэтому его часто устанавливают на домашние компьютеры для того, чтобы иметь простую и удобную систему. Дистрибутив имеет поддержку различных мультимедийных форматов, в том числе включает проприетарные программы (Adobe Flash), поэтому хорошо подходит для работы с мультимедиа.

Manjaro

Manjaro– дистрибутив, основанный на Arch Linux. Благодаря большому количеству предустановленных программ (например, для офисной работы) он достаточно дружественен к новичкам, но в то же время может быть тонко настроен.

Arch

Arch– мощный дистрибутив, базирующийся на принципах простоты, современности, прагматизма, гибкости и идеи, что в центре внимания должен быть пользователь. Однако принцип простоты распространяется не на использование системы, а на ее внутреннюю организацию (принципы KISS и Unix-way). Поэтому Arch рассчитан на опытных пользователей, которые самостоятельно настроят и установят необходимые им утилиты.

Системная информация

<box 100% left round|>
rch или uname -m — отобразить архитектуру компьютераuname -r — отобразить используемую версию ядраdmidecode -q — показать аппаратные системные компоненты — (SMBIOS / DMI)hdparm -i /dev/hda — вывести характеристики жесткого дискаhdparm -tT /dev/sda — протестировать производительность чтения данных с жесткого дискаcat /proc/cpuinfo — отобразить информацию о процессореcat /proc/interrupts — показать прерыванияcat /proc/meminfo — проверить использование памятиcat /proc/swaps — показать файл(ы) подкачкиcat /proc/version — вывести версию ядраcat /proc/net/dev — показать сетевые интерфейсы и статистику по нимcat /proc/mounts — отобразить смонтированные файловые системыlspci -tv — показать в виде дерева PCI устройстваlsusb -tv — показать в виде дерева USB устройстваdate — вывести системную датуcal 2007 — вывести таблицу-календарь 2007-го годаdate 041217002007.00* — установить системные дату и время ММДДЧЧммГГГГ.СС (МесяцДеньЧасМинутыГод.Секунды)clock -w — сохранить системное время в BIOS

</box>

Что такое призрак?

Файл .rhosts связан с файлом hosts.equiv, который также позволяет пользователям получать доступ к своим учетным записям на разных компьютерах. Разница в том, что файл hosts.equiv находится в корневом каталоге локальной системы и содержит список доверенных удаленных хостов (других компьютеров в той же сети) и пользователей, имеющих локальный доступ. Файл .rhosts — это скрытый файл в домашнем каталоге локального пользователя, содержащий список доверенных удаленных хостов и пользователей.

Файл .rhosts должен быть расположен на верхнем уровне домашнего каталога пользователя, чтобы быть доступным.

Подключение по SSH

Подключение происходит с помощью команды
ssh &plus; имя_пользователя &plus; хост

Например

ssh [email protected]

Если вы подключаетесь к хосту впервые, появится предупреждение

The authenticity of host ‘192.168.56.101 (192.168.56.101)’ can’t be established.
ECDSA key fingerprint is SHA256:db8az/qbrWOJWvNRv2d9UHaDBnnUHanJ9Svca9vFx7c.
Are you sure you want to continue connecting (yes/no/)?

Если выбрать yes
то в файл

~/.ssh/known_hosts

добавится похожая строка:

|1|abcdef+abcdefghijklmnopqrst=|abcdefghijklmnopqrstuvwxyz1= ssh-rsa abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrst/abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz12345/abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzB1234567

Обычно файл

known_hosts

имеет следующий формат (записи идут через пробел)

Таким образом

abcdef+abcdefghijklmnopqrst=|abcdefghijklmnopqrstuvwxyz1=

Это хэш от имени сервера.

Здесь через пробел записаны три элемента: хэш от имени сервера, название используемого ассиметричного алгоритма и публичный ключ сервера. Разберём их по очереди.

Модуль 3. Процессы в UNIX

Лабораторные работы

  • Перенаправление потоков ввода/вывода

  • Настройка командных интерпретаторов (управление приглашением ко вводу PS1)
  • Коды завершения

  • Сигналы

  • Управление заданиями bg, fg, jobs (демонстрирует преподаватель)

Вопросы

  1. Что обозначают ключи “a”, “x” в команде ps?
  2. Что такое STDIN, STDOUT, STDERR и какие у них номера?
  3. Что обозначают элементы “<”, “>”, “2>”, “&1”, “|” в выражениях shell
  4. Объясните, как работает конструкция
    :> file1
  5. Чем отличается команда set от команды env?
  6. Что влияет на выбор языка интерфейса в *NIX программах?
  7. Как посмотреть код завершения процесса и какое он должен иметь значение, если не было ошибок?
  8. Что обозначают элементы “&&”, “||”, “;”, “&” в выражениях shell
  9. Объясните, что происходит при использовании комбинаций “Ctrl C”, “Ctrl D”, “Ctrl Z”?
  10. Как обрабатываются сигналы “HUP”, “INT”, “TERM”, “KILL”, “TSTP” процессами?

Можно ли играть в игры на Linux

В целом — да, но с ограничениями. Вот варианты: 

  1. Можно играть в ретроигры с помощью любого из десятков эмуляторов консоли. 
  2. Можно играть в некоторые PC-игры через эмулятор Windows (например, Wine). Игра может подтормаживать в зависимости от того, какое у вас железо и на какое железо была рассчитана игра. 
  3. Можно играть в игры, портированные на SteamOS — это собственная среда Steam на базе Linux. Компания Valve очень старается сделать как можно больше игр для этой платформы, потому что от этого зависит работа их будущей консоли SteamDeck, так что в некоторые топовые игры поиграть всё-таки можно. 
  4. Можно играть в игры, разработанные непосредственно для Linux. 

На Linux можно поиграть в Doom Eternal. А в Doom 3 можно поиграть даже на Линуксе, который работает на одноплатном компьютере Raspberry Pi 4.

Основная проблема с играми на Linux — это передовые игры, которые используют максимум возможностей видеокарты. Не на все карты и не у всех производителей есть драйверы на Linux. Хотя со временем их становится всё больше, а некоторые ребята даже пишут собственные драйверы. 

Обеспечение безопасности SSH

Безопасность протокола достигается использованием нескольких решений, которые сводят к минимуму риск использования соединения:

  • Шифрование соединение, которое может выполняться одним из методов, выбранных в процессе переговоров. Шифрованное соединение не позволяет просто перехватить и использовать трафик. Выбор алгоритма шифрования делает систему более гибкой, позволяя не использовать алгоритмы, в которых обнаружены слабые места или которые не может поддерживать одна из сторон;
  • Аутентификация сервера выполняется при любом соединении. Это не позволяет выполнить подмену сервера или подмену трафика;
  • Аутентификация клиента может выполняться одним из нескольких доступных способов. Это с одной стороны может повысить надежность аутентификации, с другой — делает систему более гибкой и упрощает ее использование;
  • Проверка целостности пакетов позволяет отследить любые незаконные изменения в трафике соединения. При обнаружении таких изменений, соединение немедленно разрывается;
  • Временные параметры аутентификации не позволяют воспользоваться данными соединения в том, случае, если спустя некоторое время после перехвата оно все-таки было расшифровано. Устаревание обычно происходит через час;

Сеть (LAN и WiFi)

<box 100% round left |>
ifconfig eth0 — показать конфигурацию сетевого интерфейса eth0ifup eth0 — активировать (поднять) интерфейс eth0ifdown eth0 — деактивировать (опустить) интерфейс eth0ifconfig eth0 192.168.1.1 netmask 255.255.255.0 — выставить интерфейсу eth0 ip-адрес и маску подсетиifconfig eth0 promisc — перевести интерфейс eth0 в promiscuous-режим для «отлова» пакетов (sniffing)ifconfig eth0 -promisc — отключить promiscuous-режим на интерфейсе eth0dhclient eth0 — активировать интерфейс eth0 в dhcp-режиме.route -nnetstat -rn — вывести локальную таблицу маршрутизацииroute add -net 0/0 gw IP_Gateway — задать ip-адрес шлюза по умолчанию (default gateway)route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1 — добавить статический маршрут в сеть 192.168.0.0/16 через шлюз с ip-адресом 192.168.1.1route del 0/0 gw IP_gateway — удалить ip-адрес шлюза по умолчанию (default gateway)echo «1» > /proc/sys/net/ipv4/ip_forward — разрешить пересылку пакетов (forwarding)hostname — отобразить имя компьютераhost http://www.linuxguide.it или host 62.149.140.85 — разрешить имя http://www.linuxguide.it хоста в ip-адрес и наоборотip link show — отобразить состояние всех интерфейсовmii-tool eth0 — отобразить статус и тип соединения для интерфейса eth0ethtool eth0 — отображает статистику интерфеса eth0 с выводом такой информации, как поддерживаемые и текущие режимы соединенияnetstat -tupn — отображает все установленные сетевые соединения по протоколам TCP и UDP без разрешения имён в ip-адреса и PID’ы и имена процессов, обеспечивающих эти соединенияnetstat -tupln — отображает все сетевые соединения по протоколам TCP и UDP без разрешения имён в ip-адреса и PID’ы и имена процессов, слушающих портыtcpdump tcp port 80 — отобразить весь трафик на TCP-порт 80 (обычно — HTTP)iwlist scan — просканировать эфир на предмет, доступности беспроводных точек доступа onfig eth1 — показать конфигурацию беспроводного сетевого интерфейса eth1

</box>

Монтирование файловых систем

<box 100% round left |>
mount /dev/hda2 /mnt/hda2 — монтирует раздел ‘hda2’ в точку монтирования ‘/mnt/hda2’. Убедитесь в наличии директории-точки монтирования ‘/mnt/hda2’umount /dev/hda2 — размонтирует раздел ‘hda2’. Перед выполнением, покиньте ‘/mnt/hda2’fuser -km /mnt/hda2 — принудительное размонтирование раздела. Применяется в случае, когда раздел занят каким-либо пользователемumount -n /mnt/hda2 — выполнить размонитрование без занесения информации в /etc/mtab. Полезно когда файл имеет атрибуты «только чтение» или недостаточно места на дискеmount /dev/fd0 /mnt/floppy — монтировать флоппи-дискmount /dev/cdrom /mnt/cdrom — монтировать CD или DVDnt /dev/hdc /mnt/cdrecorder — монтировать CD-R/CD-RW или DVD-R/DVD-RW(+-)mount -o loop file.iso /mnt/cdrom — смонтировать ISO-образmount -t vfat /dev/hda5 /mnt/hda5 — монтировать файловую систему Windows FAT32mount -t smbfs -o username=user,password=pass
//winclient/share /mnt/share — монтировать сетевую файловую систему Windows (SMB/CIFS)mount -o bind /home/user/prg /var/ftp/user — «монтирует» директорию в директорию (binding). Доступна с версии ядра 2.4.0. Полезна, например, для предоставления содержимого пользовательской директории через ftp при работе ftp-сервера в «песочнице» (chroot), когда симлинки сделать невозможно. Выполнение данной команды сделает копию содержимого /home/user/prg в /var/ftp/user

</box>

known_hosts

Список известных хостов находится в файле

known_hosts

Полный путь:

Примеры алгоритмов: ssh-rsa, ssh-dss, ssh-ed25519, ecdsa-sha2-nistp256

Пример строки:

|1|abcdef+abcdefghijklmnopqrst=|abcdefghijklmnopqrstuvwxyz1= ssh-rsa abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrst/abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz12345/abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzB1234567

Таким образом

abcdef+abcdefghijklmnopqrst=|abcdefghijklmnopqrstuvwxyz1=

Это хэш от имени сервера.

ssh-rsa

Это алгоритм шифрования

abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrst/abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz12345/abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzB1234567

Это публичный ключ хоста

Имена

Полное имя имеет синтаксис «семьяимя«где семьи следующие:

инет Интернет-хост (IPv4).
inet6 Интернет-хост (IPv6).
dnet Хост DECnet.
шек Защищенное сетевое имя RPC.
krb Принципал Kerberos V5.
местный Содержит только одно имя, пустую строку.
си Сервер интерпретирован.

В семействе регистр не учитывается. Формат имени зависит от семьи.

При использовании Secure RPC сетевое имя, независимое от сети (например, «шек: unix.uid@доменное имя«), либо можно указать локального пользователя, указав только имя пользователя и завершающий знак at (например,»шекелей:погладить@»). Для обратной совместимости с версиями до R6 xhost, имена, содержащие знак at (@) считаются принадлежащими к семейству nis. В противном случае предполагается, что это адреса в Интернете. Если скомпилирован для поддержки IPv6, то все адреса IPv4 и IPv6, возвращаемые getaddrinfo добавляются в список доступа в соответствующем семействе inet или inet6.

Местная семья указывает сразу все локальные связи. Однако сервер интерпретировал адрес «si: localuser:имя пользователя«можно использовать для указания одного локального пользователя.

Адреса, интерпретируемые сервером, состоят из тега типа с учетом регистра и строки, представляющей заданное значение, разделенных двоеточием. Например, «си:имя хоста: almas»- это интерпретируемый сервером адрес типа имя хоста со значением Алмас.

Первоначальный список управления доступом для дисплея номер n может быть установлен файлом / etc / Xп.hosts, где п — это номер дисплея сервера.

высокоуровневый

  1. Обычно — пакеты программного обеспечения, которые реализуют промежуточный слой между системной платформой и приложением. Эти пакеты предназначены для переноса уже испытанных протоколов коммуникации приложения на более новую архитектуру. Примером можно привести: DIPC, MPI и др. (мне не знакомы, честно говоря)

Итак. Подведем маленький итог:

  • В Linux есть процессы,
  • каждый процесс может запускать подпроцессы (нити),
  • создание нового процесса создается клонированием исходного,
  • прородителем всех процессов в системе является процесс init, запускаемый ядром системы при загрузке.
  • процессы взаимодействуют между собой по средствам можпроцессного взаимодействия:
    • каналы
    • сигналы
    • сокеты
    • разделяемая память
  • каждый процесс обладает свойствами (читай: обладает следующим контекстом):
    • PID — идентификатор процесса
    • PPID — идентификатор процесса, породившего данный
    • UID и GID — идентификаторы прав процесса (соответствует UID и GID  пользователя, от которого запущен процесс)
    • приоритет процесса
    • состояние процесса (выполнение, сон и т.п.)
    • так же у процесса есть таблица открытых (используемых) файлов

Далее поговорим о том, как посмотреть состояние процессов в Linux и о том, как же ими управлять.

Ядро Linux и его настройка

Ядро Linux — это основа операционной системы. В стандартных сборках Линукс, таких как Ubuntu, Debian, CentOS и т.д., нам не нужно самим собирать ядро ОС, это уже сделано разработчиками данных дистрибутивов. Однако, если у вас появилась необходимость собрать наиболее свежую версию ядра или сформировать свой собственный дистрибутив ОС Линукс, то перед вами встанет задача «как собрать ядро вручную». На этом этапе можно заложить в ядро такие базовые настройки ОС, которые именно вам будут нужны для работы.

Еще одна задача, с которой может столкнуться в своей работе начинающий системный администратор — это настройка ядра системы прямо в ходе работы, т.е. «на лету». Не все специалисты пользуются этими возможностями, некоторые предпочитают выполнить базовые настройки операционной системы, а затем настраивать уже сами приложения. Конечно же, с помощью таких изменений переменных параметров ядра «в ходе работы ОС», администратор не подключит какие-то драйвера новых устройств или новые модули, которые не поддерживаются данной системой, однако можно настроить сетевой стек, сделать оптимальные «установки под себя» параметров процессора, памяти, самого ядра ОС и т.д.

Все это можно выполнить, научившись работать с утилитой sysctl, которая применяется в FreeBSD и Linux. Если системный инженер подойдет грамотно к настройкам ядра с помощью sysctl (а не просто найдет типовые команды из мануалов на сайтах), то возможно будет достичь оптимальных результатов работы системы. Например, таким образом настраивают высоконагруженные серверные ОС или даже выстраивают грамотную защиту от DDoS атак.

В нашей статье постараемся дать понятия о принципах работы с sysctl linux, а также привести примеры наиболее часто используемых команд в настройке ядра Линукс.

Модуль 9. Управление файловыми системами

Лабораторные работы

9.1 Анализ конфигурации дисковой подсистемы

Задание:

  1. Проанализировать конфигурацию дисковой подсистемы
  2. Смонтировать привод CDROM

Управление файловыми системами в Linux

9.2 Подключение новых дисков к системе

Задание:

  1. Подключить дополнительный жесткий диск к системе
  2. Определить наличие новых дисков в системе
  3. Создать файловую систему на новом диске и примонтировать к каталогу /disk2

Добавление дисков в Linux

Задание для преподавателя:

  1. С помощью линка и Пакет RSYNC перенести на второй диск каталог /var/ или /home/ Использование загрузчика GRUB

  2. Добавить 2-й диск, изменив номер первого в системе
  3. Продемонстрировать загрузку в одно пользовательском режиме для исправления fstab
  4. Продемонстрировать использование UUID дисков
  5. В Linux LVM расширить логический том корневого раздела за счет нового диска

Использование LVM

  1. Какие команды используются для монтирования/размонтирования устройств?
  2. Почему следует монтировать устройства в пустые каталоги?
  3. Что может помешать размонтированию устройств?
  4. В чем преимущество использования таблицы разделов GPT по сравнению с MBR?
  5. Какая файловая система самая лучшая?
  6. В чем преимущество использования UUID разделов вместо имен устройств?
  7. В чем преимущество использования LVM и ZFS по сравнению с классической схемой использования дисков?
  8. В каком файле конфигурации определяются монтируемые при загрузке файловые системы?

Модуль 8. Управление сервисами

8.1 Управление запуском сервисов

Задание:

  1. с помощью сигналов отключить пользователя userX
  2. включить/выключить сервис clamav из автозагрузки
  3. добавить в автозагрузку свой собственный сервис

Сигналы

Аутентификация с использованием ключей ssh

# ssh-keygen

# ssh-copy-id 

Linux Система загрузки rc.local

Linux

Linux Система загрузки Systemd

Linux Универсальный скрипт service

8.2 Регистрация действий сервисов

Задание:

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

  • Установка даты и времени

  • Регистрация событий в Linux

# cat /etc/ssh/sshd_config
...
LogLevel...
...
  1. Почему вместо rc.local стали применять системы инициализации/загрузки?
  2. Что делает команда init n ?
  3. Какие команды используются для вывода списков управляемых сервисов в системах инициализации SystemV, OpenRC, Systemd, rcNG?
  4. Как включить/отключить автоматический запуск сервиса?
  5. Какова причина наличия типа сообщения в системах syslog?
  6. Что нужно сделать, что бы получать больше отладочной информации о работе сервиса?
Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Зов электронных книг
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: