diff --git a/docs/books/nvchad/install_nvchad.uk.md b/docs/books/nvchad/install_nvchad.uk.md index 48f3759980..13cbaee3f2 100644 --- a/docs/books/nvchad/install_nvchad.uk.md +++ b/docs/books/nvchad/install_nvchad.uk.md @@ -15,14 +15,14 @@ tags: Як зазначено на сайті NvChad, вам потрібно переконатися, що система відповідає таким вимогам: -* [Neovim 0.10.0](https://github.com/neovim/neovim/releases/tag/v0.10.0). -* [Шрифт Nerd](https://www.nerdfonts.com/) Установіть його в емуляторі терміналу. - * Переконайтеся, що шрифт, який ви налаштували, не закінчується на **Mono** - * **Приклад:** шрифт Iosevka Nerd, а не ~~Шрифт Iosevka Nerd Mono~~ -* [Ripgrep](https://github.com/BurntSushi/ripgrep) потрібен для пошуку grep за допомогою Telescope **(НЕОБОВ’ЯЗКОВО)**. -* GCC та Make +- [Neovim 0.10.0](https://github.com/neovim/neovim/releases/tag/v0.10.0). +- [Шрифт Nerd](https://www.nerdfonts.com/) Установіть його в емуляторі терміналу. + - Переконайтеся, що шрифт, який ви налаштували, не закінчується на **Mono** + - **Приклад:** шрифт Iosevka Nerd, а не ~~Шрифт Iosevka Nerd Mono~~ +- [Ripgrep](https://github.com/BurntSushi/ripgrep) потрібен для пошуку grep за допомогою Telescope **(НЕОБОВ’ЯЗКОВО)**. +- GCC та Make -??? warning «Виконання чистої інсталяції» +??? warning "" Як зазначено у вимогах, встановлення цієї нової конфігурації поверх попередньої може створити проблеми, які неможливо виправити. Рекомендується чиста інсталяція. @@ -55,8 +55,8 @@ rm -rf ~/.cache/nvim ## :material-monitor-arrow-down-variant: Встановлення -Створення структури конфігурації здійснюється шляхом копіювання файлів із сховища ініціалізації (==starter==) за допомогою *Git*. Цей метод дозволяє інсталювати конфігурацію NvChad, підготовлену як плагін Neovim, у менеджері плагінів *lazy.nvim*. -Таким чином конфігурація оновлюється, як і всі інші плагіни, що спрощує керування користувачем. Крім того, цей підхід робить всю конфігурацію користувача незалежною, дозволяючи її повне керування та розподіл між кількома машинами. +Створення структури конфігурації реалізується шляхом копіювання файлів з репозиторію ініціалізації (==starter==) за допомогою _Git_. Цей метод дозволяє встановити конфігурацію NvChad, підготовлену як плагін Neovim, у менеджері плагінів _lazy.nvim_. +Таким чином, конфігурація оновлюється, як і всі інші плагіни, що спрощує керування користувачем. Крім того, цей підхід робить всю конфігурацію користувача незалежною, дозволяючи її повне керування та розподіл між кількома машинами. Щоб завантажити та ініціалізувати конфігурацію, скористайтеся такою командою: @@ -64,27 +64,27 @@ rm -rf ~/.cache/nvim git clone https://github.com/NvChad/starter ~/.config/nvim && nvim ``` -Команда складається з двох частин. Перший завантажує вміст репозиторію *starter* до `~/.config/nvim/` (тека за замовчуванням для налаштувань Neovim), а другий викликає ==nvim== виконуваний файл, який ініціалізує редактор конфігурацією, яку ви щойно завантажили. Після завершення встановлення плагінів і синтаксичних аналізаторів ви побачите наступний екран. Щоб закрити менеджер плагінів, введіть ++"q "++ : +Команда складається з двох частин. Перший завантажує вміст _стартового_ репозиторію до `~/.config/nvim/` (папка за замовчуванням для налаштувань Neovim), тоді як другий викликає виконуваний файл ==nvim==, який ініціалізує редактор щойно завантаженою конфігурацією. Після завершення встановлення плагінів і синтаксичних аналізаторів ви побачите наступний екран. Щоб закрити менеджер плагінів, введіть ++"q "++ : ![NvChad Install](images/install_nvchad_25.png) Початкова конфігурація є мінімальною та є відправною точкою для ваших налаштувань. Як свідчить скріншот, під час першого запуску редактора завантажуються лише чотири модулі (==плагіни==), позначені галочкою, а саме: -* **base46** - надає теми редактора -* **NvChad** - базова конфігурація, яка дозволяє вводити конфігурацію користувача в Neovim -* **nvim-treesitter** - для аналізу та підсвічування коду -* **ui** - інтерфейс редактора (рядок статусу, рядок вкладок..) +- **base46** - надає теми редактора +- **NvChad** - базова конфігурація, яка дозволяє вводити конфігурацію користувача в Neovim +- **nvim-treesitter** - для аналізу та підсвічування коду +- **ui** - інтерфейс редактора (рядок статусу, рядок вкладок..) -Решта модулів буде активовано завдяки техніці ==*відкладного завантаження*==, коли буде запитана функціональність, яку надає модуль. Це покращує продуктивність редактора загалом і, зокрема, покращує час його запуску. +Решта модулів будуть активовані завдяки техніці ==_lazyloading_==, коли буде запрошено функціональність, що надається модулем. Це покращує продуктивність редактора загалом і, зокрема, покращує час його запуску. На цьому етапі редактор готовий до використання. Наступні розділи надають детальний огляд процесу інсталяції та не є необхідними для щоденного використання. Якщо вас цікавить лише його використання, ви можете звернутися до сторінки [Використання NvChad](./nvchad_ui/using_nvchad.md). -Проте все ще рекомендується прочитати [офіційну документацію](https://nvchad.com/docs/quickstart/install) для ознайомлення з його компонентами та функціями. +Однак, все ж рекомендується ознайомитися з [офіційною документацією](https://nvchad.com/docs/quickstart/install) для ознайомлення з її компонентами та функціональністю. Щоб закрити редактор, використовуйте клавішу ++colon++ ++"q "++. ### :material-timer-cog-outline: Bootstrap -Процес початкового завантаження реалізовано у файлі ==*init.lua*== репозиторію *starter* і складається з таких кроків: +Процес початкового завантаження реалізовано у файлі ==_init.lua_== репозиторію _starter_ і складається з таких кроків: Початкове налаштування шляху до теми за замовчуванням і клавіші ``, у цьому випадку клавіші ++space++: @@ -128,7 +128,7 @@ require("lazy").setup({ }, lazy_config) ``` -Потім застосуйте тему до параметрів *default* і *statusline*: +Потім застосуйте тему до параметрів _default_ і _statusline_: ```lua -- load theme @@ -167,17 +167,18 @@ end) └── README.md ``` -Встановлена конфігурація складається з двох частин: одна частина, присвячена редактору, який залишається під контролем версій (==git==) репозиторію NvChad, і інша, присвячена налаштуванню користувача, яке виключено з контролю версій через використання ==. gitignore== файлу. +Він складається з початкового файлу **init.lua**, який ініціалізує та координує вставку налаштувань у конфігурацію ==Neovim==. Цей файл спочатку виглядає ідентично файлу, який використовується _bootstrap_ зі стартового репозиторію **starter**, показаного вище. Він буде використаний пізніше для завантаження інших файлів у конфігурацію, таких як власний файл _autocommands.lua_. -Після цього йде файл **lazy-lock.json**, де зберігаються всі встановлені плагіни та їхній статус щодо розробки на *GitHub*. Цей файл дозволяє синхронізувати статус редактора між інсталяціями, наявними на кількох машинах, і дозволяє користувацьким інсталяціям відтворювати потрібний статус. +Далі йде файл **lazy-lock.json**, де зберігаються всі плагіни інсталяції та їхній статус щодо розробки на _GitHub_. Цей файл дозволяє синхронізувати статус редактора між інсталяціями, наявними на кількох машинах, і дозволяє користувацьким інсталяціям відтворювати потрібний статус. -Решта конфігурації знаходиться в папці `lua` та ініціалізується, починаючи з файлу **chadrc.lua**, який у початковій версії містить лише налаштування теми редактора.<2 /> Цей файл використовується для налаштування зовнішнього вигляду редактора (==UI==) і спільний синтаксис із файлом [nvconfig.lua](https://github.com/NvChad/NvChad/blob/v2.5/lua/nvconfig.lua) плагіна **NvChad**; щоб скомпілювати його, просто скопіюйте потрібну частину файлу *nvconfig.lua* у ваш *chadrc.lua* та за потреби змініть його властивості. +Решта конфігурації знаходиться в папці `lua` та ініціалізується, починаючи з файлу **chadrc.lua**, який у початковій версії містить лише налаштування теми редактора. +Цей файл використовується для налаштування зовнішнього вигляду редактора (==UI==) та має спільний синтаксис з файлом [nvconfig.lua](https://github.com/NvChad/NvChad/blob/v2.5/lua/nvconfig.lua) плагіна **NvChad**; щоб скомпілювати його, просто скопіюйте потрібну частину файлу _nvconfig.lua_ у ваш _chadrc.lua_ та змініть його властивості за потреби. -Наступний файл, який використовується конфігурацією, папки будуть описані пізніше, це файл **option.lua** для налаштувань редактора, таких як відступи, спільний доступ до буфера обміну з гостьовою системою, і, що дуже важливо, включення двійкових файлів, встановлених *Mason* у шлях. -Як і попередній, він має синтаксис [відповідного файлу](https://github.com/NvChad/NvChad/blob/v2.5/lua/nvchad/options.lua) додатка **NvChad**; для його налаштування, як зазначено вище, просто скопіюйте параметри та відредагуйте їх. +Наступний файл, який використовується конфігурацією (папки будуть описані пізніше), – це файл **option.lua** для налаштувань редактора, таких як відступи, спільний доступ до буфера обміну з гостьовою системою та, що дуже важливо, включення бінарних файлів, встановлених _Mason_, до шляху. +Як і попередній, він використовує синтаксис [відповідного файлу](https://github.com/NvChad/NvChad/blob/v2.5/lua/nvchad/options.lua) плагіна **NvChad**; для його налаштування, як описано вище, просто скопіюйте параметри та відредагуйте їх. -Нарешті, зустрічається файл **mapping.lua**, де можна встановити клавіші клавіатури для виклику різних функцій, які пропонує редактор. Початковий файл містить відображення клавіш для входу в режим **COMMAND**, для форматування за допомогою *conform.nvim* і ключ для виходу з режиму **INSERT**. -Ключі використовують власний синтаксис Neovim `vim.keymap.set`, і для їх конфігурації ви можете звернутися до [відповідності за замовчуванням](https://github.com/NvChad/NvChad/blob/v2.5/lua/nvchad/mappings.lua) NvChad або альтернативно до сторінки довідки, включеної до Neovim `:h vim.keymap.set`. +Нарешті, файл **mapping.lua** знаходиться там, де потрібно встановити клавіші клавіатури для виклику різних функцій, що пропонуються редактором. Початковий файл містить зіставлення клавіш для входу в режим **COMMAND**, для форматування за допомогою _conform.nvim_ та клавішу для виходу з режиму **INSERT**. +Клавіші використовують рідний синтаксис Neovim `vim.keymap.set`, а для їх налаштування ви можете звернутися до [стандартного відображення] NvChad (https://github.com/NvChad/NvChad/blob/v2.5/lua/nvchad/mappings.lua) або до сторінки довідки, що міститься в Neovim `:h vim.keymap.set`. ```lua require "nvchad.mappings" @@ -195,14 +196,14 @@ end, { desc = "File Format with conform" }) map("i", "jk", "", { desc = "Escape insert mode" }) ``` -Дві папки, включені в конфігурацію `configs` і `plugins`, обидві служать для керування плагінами; персональні плагіни слід розмістити в папці `plugins`, а їх додаткові конфігурації, якщо такі є, у папці `configs`. -Спочатку файл *plugins/init.lua* буде доступний для встановлення з додатком *conform.lua*, налаштованим у *configs/conform.lua* та *nvimtree.nvim* із опцією для декорацій, пов’язаних із *Git* у ньому. +Дві папки, що входять до конфігурації `configs` та `plugins`, служать для керування плагінами; особисті плагіни слід розміщувати в папці `plugins`, а їхні додаткові конфігурації, якщо такі є, в папці `configs`. +Спочатку для встановлення буде доступний файл _plugins/init.lua_ з плагіном _conform.lua_, налаштованим у _configs/conform.lua_ та _nvimtree.nvim_, з опцією для декорацій, пов'язаних з _Git_. -!!! notes "Організація плагінів" +!!! note s "Організація плагінів" - Включення плагінів здійснюється шляхом вставлення будь-якого належним чином налаштованого файлу, наявного в папці `plugins`, це дозволяє організовувати плагіни, наприклад, за призначенням, шляхом створення окремих файлів (*utils.lua*, *editor.lua*, *markdown.lua* тощо), таким чином можна працювати над конфігурацією більш упорядковано. + Включення плагінів здійснюється шляхом вставлення будь-якого належним чином налаштованого файлу, наявного в папці `plugins`, це дозволяє організовувати плагіни, наприклад, за призначенням, шляхом створення окремих файлів (_utils.lua_, _editor.lua_, _markdown.lua_ тощо), таким чином можна працювати над конфігурацією більш упорядковано. -Є також файли для *ліцензування* та *README.md*, скопійовані зі сховища **starter**, які можна використовувати для ілюстрації конфігурації, якщо вона підтримується у сховищі *Git*. +Є також файли для _ліцензування_ та _README.md_, скопійовані зі сховища **starter**, які можна використовувати для ілюстрації конфігурації, якщо вона підтримується у сховищі _Git_. ## :material-keyboard-outline: Основні клавіші клавіатури @@ -216,16 +217,16 @@ end) Це встановлює чотири основні клавіші, за допомогою яких разом з іншими клавішами можна запускати команди. Основні ключі: -* C = ++ctrl++ -* leader = ++пробіл++ -* A = ++alt++ -* S = ++shift++ +- C = ++ctrl++ +- leader = ++space++ +- A = ++alt++ +- S = ++shift++ -!!! note "Примітка" +!!! note Ми будемо посилатися на ці зіставлення ключів кілька разів у цих документах. -Відображення за замовчуванням міститься в *lua/mapping.lua* плагіна NvChad, але його можна розширити за допомогою інших спеціальних команд за допомогою власного *mappings.lua*. +Відображення за замовчуванням міститься в _lua/mapping.lua_ плагіна NvChad, але його можна розширити за допомогою інших спеціальних команд за допомогою власного _mappings.lua_. `th` щоб змінити тему ++space++ + ++"t"++ + ++"h"++ `` щоб відкрити nvimtree ++ctrl++ + ++"n"++ diff --git a/docs/desktop/gnome/decoder.uk.md b/docs/desktop/gnome/decoder.uk.md index e50cf77c12..f851790756 100644 --- a/docs/desktop/gnome/decoder.uk.md +++ b/docs/desktop/gnome/decoder.uk.md @@ -20,7 +20,7 @@ contributors: Steven Spencer, Ganna Zhyrnova 1. Перейдіть на [веб-сайт Flathub](https://flathub.org/), введіть «Декодер» у рядку пошуку та натисніть **Встановити**. ![Screenshot of the install button highlighted by a red rectangle](images/01_decoder.png) - ![manual install script and run script](images/decoder_install.png) + ![manual install script and run script](images/decoder_install.png) 2. Скопіюйте сценарій встановлення вручну та запустіть його в терміналі: @@ -51,7 +51,7 @@ contributors: Steven Spencer, Ganna Zhyrnova 3. Натисніть **Create** - ![Screenshot of the Save and Export screen with arrows](images/03_decoder-text.png) + ![Screenshot of the Save and Export screen with arrows](images/03_decoder-text.png) 4. Натисніть **Save** @@ -77,25 +77,23 @@ contributors: Steven Spencer, Ganna Zhyrnova 1. Натисніть **Scan** - ![Screenshot of the rectangular button with the words "From a Screenshot" written in white.](images/02_decoder-scan.png) + ![Screenshot of the rectangular button with the words "From a Screenshot" written in white.](images/02_decoder-scan.png) 2. Натисніть **From a Screenshot** - ![Screenshot of grey square surrounding options menu, and red square surrounding the "Take a Screenshot button"](images/03_decoder-scan.png) + ![Screenshot of grey square surrounding options menu, and red square surrounding the "Take a Screenshot button"](images/03_decoder-scan.png) 3. Виберіть потрібні ефекти та натисніть **Take a Screenshot** - ![Screenshot of a red arrow pointing at a blue button that has the word "Share" written in white](images/04_decoder-scan.png) + ![Screenshot of a red arrow pointing at a blue button that has the word "Share" written in white](images/04_decoder-scan.png) 4. Натисніть **Share** 5. Відскануйте QR-код за допомогою мобільного пристрою -!!! note "Примітка" +!!! note -``` -Щоб відсканувати QR-код безпосередньо з комп’ютера, потрібно надати програмі доступ до камери комп’ютера. -``` + Щоб відсканувати QR-код безпосередньо з комп’ютера, потрібно надати програмі доступ до камери комп’ютера. ## Висновок diff --git a/docs/gemstones/index.uk.md b/docs/gemstones/index.uk.md index c61a25bb47..fd84a9e193 100644 --- a/docs/gemstones/index.uk.md +++ b/docs/gemstones/index.uk.md @@ -5,16 +5,18 @@ author: Steven Spencer # Gemstones -Ласкаво просимо до **Gemstones**! _"Що таке Gemstones і як вони вписуються в документацію Rocky Linux?"_ Це дуже гарне запитання. У той час як **Посібники** містять нашу стандартну документацію з інструкціями, а **Книги** містять нашу розгорнуту документацію, **Gemstones** - це лише маленькі перлини мудрості. У вас є улюблений код Linux, який ви використовуєте весь час, або улюблена команда? Можливо, ви написали `bash` або `python` або `інший` сценарій економії часу, яким хотіли б поділитися? Якщо будь-яка з цих речей є правдою, **Gemstones** – це місце для вашого внеску! +Ласкаво просимо до **Gemstones**! +_«Що ж таке Gemstones, і як вони вписуються в документацію Rocky Linux?»_ Це дуже гарне питання. +Хоча **Посібники** містять нашу звичайну документацію з інструкціями, а **Книги** — нашу розгорнуту документацію, **Gemstones** — це лише маленькі перлини мудрості. У вас є улюблений код Linux, який ви використовуєте весь час, або улюблена команда? Можливо, ви написали скрипт на `bash`, `python` або `інший`, що економить час, і хотіли б ним поділитися? Якщо щось із цього правда, то **Gemstones** — це місце для вашого внеску! ## Критерії Ваш код, сценарій або командний документ мають бути короткими. Якщо він містить багато сторінок, то він належить до іншого місця документації. Шукаємо пару абзаців або сторінку. Щоб ваш «коштовний камінь» був повноцінним, пропонуємо включити: -* Хороший опис -* Будь-які причини, чому ви робите щось певним чином, у випадку зі сценарієм -* Короткий висновок +- Хороший опис +- Будь-які причини, чому ви робите щось певним чином, у випадку зі сценарієм +- Короткий висновок ## Внесок -Ви можете внести свій **Gemstone** так само, як і іншу документацію (див.: [Посібник із внесків](../guides/contribute/README.md)). Коли ви надсилаєте запит на отримання в GitHub, додайте «gemstone» у повідомлення коміту. Якщо ви не маєте або не хочете мати обліковий запис GitHub, ви можете просто надіслати його на [канал Mattermost Documentation](https://chat.rockylinux.org/rocky-linux/channels/documentation) і ми відредагуємо та створимо ваш **Gemstone** для вас. Це не може бути простіше! +Ви можете зробити свій внесок у **Дорогоцінний камінь** так само, як ви робите внесок у іншу документацію (див.: [Посібник зі створення внесків](../guides/contribute/README.md)). Коли ви надсилаєте запит на отримання в GitHub, додайте «gemstone» у повідомлення коміту. Якщо у вас немає облікового запису GitHub або ви не хочете його мати, ви можете просто надіслати його на [канал документації Mattermost](https://chat.rockylinux.org/rocky-linux/channels/documentation), і ми відредагуємо та створимо ваш **Gemstone** для вас. Це не може бути простіше! diff --git a/docs/gemstones/perl_search_replace.uk.md b/docs/gemstones/perl_search_replace.uk.md index 532b0adf88..4406056dbd 100644 --- a/docs/gemstones/perl_search_replace.uk.md +++ b/docs/gemstones/perl_search_replace.uk.md @@ -8,7 +8,7 @@ tags: # `perl` Пошук і заміна -Іноді вам потрібно швидко знайти та замінити рядки у файлі чи групі файлів. Є багато способів зробити це, але цей метод використовує `perl` +Іноді вам потрібно швидко знайти та замінити рядки у файлі чи групі файлів. Існує багато способів зробити це, але цей метод використовує `perl` Щоб знайти та замінити певний рядок у кількох файлах у каталозі, необхідно використати наступну команду: diff --git a/docs/gemstones/rpaste.uk.md b/docs/gemstones/rpaste.uk.md index 996c0ae7d7..4f7253e5e3 100644 --- a/docs/gemstones/rpaste.uk.md +++ b/docs/gemstones/rpaste.uk.md @@ -10,7 +10,7 @@ tags: # Вступ до `rpaste` -`rpaste` — це інструмент для обміну кодом, виводом журналу та іншим наддовгим текстом. Це pastebin, створений розробниками Rocky Linux. Цей інструмент корисний, коли вам потрібно поділитися чимось публічно, але ви не хочете, щоб ваш текст домінував у стрічці. Це особливо важливо під час використання Mattermost, який має мости до інших служб IRC. Інструмент `rpaste` можна встановити на будь-якій системі Rocky Linux. Якщо на вашій настільній машині не встановлено Rocky Linux або ви просто не хочете встановлювати інструмент, ви можете скористатися ним вручну, перейшовши за [pinnwand URL](https://rpa.st) а потім вставте системний вихід або текст, яким ви хочете поділитися. `rpaste` дозволяє створювати цю інформацію автоматично. +`rpaste` — це інструмент для обміну кодом, виводом журналів та іншим наддовгим текстом. Це pastebin, створений розробниками Rocky Linux. Цей інструмент корисний, коли вам потрібно поділитися чимось публічно, але ви не хочете, щоб ваш текст домінував у стрічці. Це особливо важливо під час використання Mattermost, який має мости до інших служб IRC. Інструмент `rpaste` можна встановити на будь-яку систему Rocky Linux. Якщо на вашому настільному комп’ютері не встановлено Rocky Linux або ви просто не хочете встановлювати цей інструмент, ви можете використовувати його вручну, перейшовши за посиланням [pinnwand URL](https://rpa.st), а потім вставивши системний вивід або текст, яким ви хочете поділитися. `rpaste` дозволяє створювати цю інформацію автоматично. ## Інсталяція @@ -39,7 +39,7 @@ Removal URL: https://rpa.st/remove/YBWRFULDFCGTTJ4ASNLQ6UAQTA Потім ви можете самостійно переглянути інформацію в браузері та вирішити, чи хочете ви її зберегти чи видалити та почати все спочатку. Якщо ви хочете зберегти його, ви можете скопіювати «Вставити URL-адресу» та поділитися нею з усіма, з ким ви працюєте, або в стрічці на Mattermost. Щоб видалити, просто скопіюйте «URL-адресу видалення» та відкрийте її у своєму браузері. -Ви можете додати вміст у свій pastebin, перекинувши вміст. Як приклад, якщо ви хочете додати вміст із файлу `/var/log/messages` від 10 березня, ви можете зробити це: +Ви можете додати вміст у свій pastebin, перекинувши вміст. Наприклад, якщо ви хочете додати вміст з вашого файлу `/var/log/messages` від 10 березня, ви можете зробити це: ```bash sudo more /var/log/messages | grep 'Mar 10' | rpaste @@ -75,4 +75,4 @@ Options: ## Висновки -Іноді важливо поділитися великим обсягом тексту під час роботи над проблемою, обміну кодом або текстом тощо. Використання `rpaste` позбавить інших від необхідності переглядати велику кількість текстового вмісту, який для них не важливий. Також важливий етикет спілкування в Rocky Linux. +Іноді важливо поділитися великим обсягом тексту під час роботи над проблемою, обміну кодом або текстом тощо. Використання `rpaste` для цього позбавить інших необхідності переглядати велику кількість текстового контенту, який для них не важливий. Також важливий етикет спілкування в Rocky Linux. diff --git a/docs/gemstones/sed_search_replace.uk.md b/docs/gemstones/sed_search_replace.uk.md index 332d67ddbe..ba7b059603 100644 --- a/docs/gemstones/sed_search_replace.uk.md +++ b/docs/gemstones/sed_search_replace.uk.md @@ -9,22 +9,22 @@ author: Steven Spencer ## Умовності -* `path`: фактичний шлях. Приклад: `/var/www/html/` -* `filename`: фактичне ім'я файлу. Приклад: `index.php` +- path`: Фактичний шлях. Приклад: `/var/www/html/\` +- `ім'я_файлу`: Фактична назва файлу. Приклад: `index.php` ## Використання `sed` -Використання `sed` для пошуку та заміни є моїм особистим уподобанням, оскільки ви можете використовувати розділювач на свій вибір, що робить заміну таких речей, як веб-посилання, на «/» в них дуже зручними. Приклади за умовчанням для редагування на місці за допомогою `sed` показують такі речі, як цей приклад: +Використання `sed` для пошуку та заміни — це моя особиста перевага, оскільки ви можете використовувати роздільник на ваш вибір, що робить заміну таких елементів, як веб-посилання, на «/» дуже зручною. Приклади за замовчуванням для редагування на місці за допомогою `sed` показують щось подібне до цього прикладу: `sed -i 's/search_for/replace_with/g' /path/filename` -Але що, якщо ви шукаєте рядки, які містять "/" в них? Якщо скісна риска була єдиним доступним варіантом роздільника? Перш ніж використовувати її під час пошуку, вам потрібно буде відмінити кожну косу риску. Саме в цьому `sed` перевершує інші інструменти, оскільки роздільник можна змінювати на льоту (не потрібно вказувати, що ви його десь змінюєте). Як було сказано, якщо ви шукаєте щось, що містить "/", ви можете зробити це, змінивши роздільник на "|". Ось приклад пошуку посилання за допомогою цього методу: +Але що, якщо ви шукаєте рядки, які містять "/" в них? Якщо скісна риска була єдиним доступним варіантом роздільника? Перш ніж використовувати її під час пошуку, вам потрібно буде відмінити кожну косу риску. Саме тут `sed` перевершує інші інструменти, оскільки роздільник можна змінювати на льоту (немає потреби вказувати, що ви його змінюєте десь). Як було сказано, якщо ви шукаєте щось, що містить "/", ви можете зробити це, змінивши роздільник на "|". Ось приклад пошуку посилання за допомогою цього методу: `sed -i 's|search_for/with_slash|replace_string|g' /path/filename` Ви можете використовувати будь-який однобайтовий символ як роздільник, за винятком зворотної косої риски, нового рядка та "s". Наприклад, це також працює: -`sed -i 'sasearch_forawith_slashareplace_stringag' /path/filename`, де "a" є роздільником, а пошук і заміна все ще працюють. З міркувань безпеки ви можете вказати резервну копію під час пошуку та заміни, що зручно, щоб переконатися, що зміни, які ви робите за допомогою `sed`, відповідають вашим _справжнім_ бажанням. Це дає вам можливість відновлення з файлу резервної копії: +`sed -i 'sasearch_forawith_slashareplace_stringag' /шлях/ім'я_файлу`, де "a" – роздільник, і пошук із заміною все ще працює. Для безпеки ви можете вказати резервну копію під час пошуку та заміни, що зручно для того, щоб переконатися, що зміни, які ви вносите за допомогою `sed`, є тим, що вам _дійсно_ потрібно. Це дає вам можливість відновлення з файлу резервної копії: `sed -i.bak s|search_for|replacea_with|g /path/filename` @@ -36,16 +36,16 @@ author: Steven Spencer ## Пояснення параметрів -| Опція | Пояснення | -| ----- | --------------------------------------------------------- | -| i | редагує файл на місці | +| Опція | Пояснення | +| --------------------- | ---------------------------------------------------------------------------- | +| i | редагує файл на місці | | i.ext | створити резервну копію з будь-яким розширенням (ext тут) | -| s | визначає пошук | -| g | вказує на глобальну заміну, іншими словами, усі випадки | +| s | визначає пошук | +| g | вказує на глобальну заміну, іншими словами, усі випадки | ## Кілька файлів -На жаль, `sed` не має опції вбудованого циклу, як `perl`. Щоб прокрутити кілька файлів, вам потрібно об’єднати команду `sed` у сценарій. Ось приклад того, як це зробити. +На жаль, `sed` не має опції вбудованого циклу, як `perl`. Щоб перебрати кілька файлів, потрібно об'єднати команду `sed` зі скриптом. Ось приклад того, як це зробити. Спочатку створіть список файлів, які використовуватиме ваш сценарій. Зробіть це в командному рядку за допомогою: @@ -62,13 +62,13 @@ do done ``` -Сценарій переглядає всі файли, створені в `phpfiles.txt`, створює резервну копію кожного файлу та виконує пошук і заміну рядка глобально. Коли ви переконаєтеся, що зміни відповідають вашим вимогам, ви можете видалити всі файли резервної копії. +Скрипт перебирає всі файли, створені в `phpfiles.txt`, створює резервну копію кожного файлу та виконує рядок пошуку та заміни глобально. Коли ви переконаєтеся, що зміни відповідають вашим вимогам, ви можете видалити всі файли резервної копії. ## Інше документи та приклади -* `sed` [сторінка посібника](https://linux.die.net/man/1/sed) -* `sed` [додаткові приклади](https://www.linuxtechi.com/20-sed-command-examples-linux-users/) -* `sed` & `awk` [Книга O'Reilly](https://www.oreilly.com/library/view/sed-awk/1565922255/) +- `sed` [сторінка посібника](https://linux.die.net/man/1/sed) +- `sed` [додаткові приклади](https://www.linuxtechi.com/20-sed-command-examples-linux-users/) +- `sed` & `awk` [Книга O'Reilly](https://www.oreilly.com/library/view/sed-awk/1565922255/) ## Висновок diff --git a/docs/gemstones/setup_local_repo.uk.md b/docs/gemstones/setup_local_repo.uk.md index e96ee24f7b..ba67ce70a2 100644 --- a/docs/gemstones/setup_local_repo.uk.md +++ b/docs/gemstones/setup_local_repo.uk.md @@ -7,11 +7,11 @@ update: 09-Dec-2021 # Вступ -Іноді вам потрібно мати локальні репозиторії Rocky для створення віртуальних машин, лабораторних середовищ тощо. Це також може допомогти заощадити пропускну здатність, якщо це викликає занепокоєння. Ця стаття допоможе вам використати `rsync` для копіювання сховищ Rocky на локальний веб-сервер. Створення веб-сервера виходить за рамки цієї короткої статті. +Іноді вам потрібно мати локальні репозиторії Rocky для створення віртуальних машин, лабораторних середовищ тощо. Це також може допомогти заощадити пропускну здатність, якщо це викликає занепокоєння. У цій статті ви дізнаєтесь, як використовувати `rsync` для копіювання репозиторіїв Rocky на локальний веб-сервер. Створення веб-сервера виходить за рамки цієї короткої статті. ## Вимоги -* Веб-сервер +- Веб-сервер ## Код @@ -34,7 +34,7 @@ fi ## Аналіз -Цей простий сценарій оболонки використовує `rsync` для отримання файлів сховища з найближчого дзеркала. Він також використовує опцію "виключити", яка визначена в текстовому файлі у вигляді ключових слів, які не слід включати. Виключення корисні, якщо у вас обмежений простір на диску або просто з будь-якої причини не потрібно все. Ми можемо використовувати `*` як символ підстановки. Будьте обережні з використанням `*/ng`, оскільки це виключить усе, що відповідає цим символам. Нижче наведено приклад: +Цей простий скрипт оболонки використовує `rsync` для отримання файлів репозиторію з найближчого дзеркала. Він також використовує опцію "виключити", яка визначена в текстовому файлі у вигляді ключових слів, які не слід включати. Виключення корисні, якщо у вас обмежений простір на диску або просто з будь-якої причини не потрібно все. Ми можемо використовувати `*` як символ підстановки. Будьте обережні з використанням `*/ng`, оскільки це виключить усе, що відповідає цим символам. Нижче наведено приклад: ```bash */source* diff --git a/docs/gemstones/string_color.uk.md b/docs/gemstones/string_color.uk.md index badeb39b30..fe1bd060da 100644 --- a/docs/gemstones/string_color.uk.md +++ b/docs/gemstones/string_color.uk.md @@ -14,46 +14,48 @@ tags: ## Колір шрифту -| **код кольору** | **опис** | -|:---------------:|:-------------:| -| 30 | чорний | -| 31 | червоний | -| 32 | зелений | -| 33 | жовтий | -| 34 | синій | -| 35 | фіолетовий | -| 36 | темно-зелений | -| 37 | білий | +| **код кольору** | **опис** | +| :-------------: | :-----------: | +| 30 | чорний | +| 31 | червоний | +| 32 | зелений | +| 33 | жовтий | +| 34 | синій | +| 35 | фіолетовий | +| 36 | темно-зелений | +| 37 | білий | ## Колір фону шрифту -| **код кольору фону** | **опис** | -|:--------------------:|:-------------:| -| 40 | чорний | +| **код кольору фону** | **опис** | +| :------------------: | :-----------: | +| 40 | чорний | | 41 | малиновий | | 42 | зелений | -| 43 | жовтий | +| 43 | жовтий | | 44 | синій | -| 45 | фіолетовий | +| 45 | фіолетовий | | 46 | темно-зелений | | 47 | білий | ## Режим відображення | **код** | **опис** | -|:-------:|:------------------------------------:| +| :-----: | :----------------------------------: | | 0 | Параметри терміналу за замовчуванням | -| 1 | Виділення | +| 1 | Виділення | | 4 | Підкреслення | | 5 | Блимання курсору | -| 7 | Зворотний дисплей | -| 8 | Сховати | +| 7 | Зворотний дисплей | +| 8 | Сховати | ## Режим виконання -* **\033[1;31;40m** «1» вказує на режим відображення, який є необов’язковим. «31» вказує на колір шрифту. «40m» вказує на фоновий колір шрифту +- **\033[1;31;40m** + "1" вказує на режим відображення, який є необов'язковим. «31» вказує на колір шрифту. «40m» вказує на фоновий колір шрифту -* **\033[0m** Відновлення кольору терміналу за замовчуванням, тобто скасування налаштування кольору +- **\033[0m** + Відновлення кольору терміналу за замовчуванням, тобто скасування налаштування кольору ## Приклад сценарію diff --git a/docs/gemstones/systemd_service_for_python_script.uk.md b/docs/gemstones/systemd_service_for_python_script.uk.md index d21b6b6067..b7552ad28d 100644 --- a/docs/gemstones/systemd_service_for_python_script.uk.md +++ b/docs/gemstones/systemd_service_for_python_script.uk.md @@ -78,7 +78,9 @@ if __name__ == '__main__': !!! Note "Примітка" + ``` Особисто я використовую цей сценарій у більш просунутій формі, який постійно надсилає запити до бази даних і виконує завдання на основі інформації, отриманої через API rundeck + ``` ## Інтеграція Systemd diff --git a/docs/gemstones/test_cpu_compat.uk.md b/docs/gemstones/test_cpu_compat.uk.md index d6682240d4..d98034ae1a 100644 --- a/docs/gemstones/test_cpu_compat.uk.md +++ b/docs/gemstones/test_cpu_compat.uk.md @@ -18,18 +18,18 @@ tags: 3. Після завершення завантаження відкрийте вікно терміналу та виконайте цю процедуру: - ```bash - /lib64/ld-linux-x86-64.so.2 --help | grep x86-64 - ``` + ```bash + /lib64/ld-linux-x86-64.so.2 --help | grep x86-64 + ``` - Ви маєте отримати подібний результат: + Ви маєте отримати подібний результат: - ```bash - Usage: /lib64/ld-linux-x86-64.so.2 [OPTION]... EXECUTABLE-FILE [ARGS-FOR-PROGRAM...] - This program interpreter self-identifies as: /lib64/ld-linux-x86-64.so.2 - x86-64-v4 - x86-64-v3 - x86-64-v2 (supported, searched) - ``` + ```bash + Usage: /lib64/ld-linux-x86-64.so.2 [OPTION]... EXECUTABLE-FILE [ARGS-FOR-PROGRAM...] + This program interpreter self-identifies as: /lib64/ld-linux-x86-64.so.2 + x86-64-v4 + x86-64-v3 + x86-64-v2 (supported, searched) + ``` - Цей вихід вказує на мінімальну необхідну версію x86-64 (v2). У цьому випадку встановлення можна продовжити. Якщо біля запису «x86-64-v2» немає «(підтримується, шукається)», це означає, що ваш ЦП **не** сумісний із Rocky Linux 9.x. Якщо тест показує, що встановлення може продовжитися, а також відображає x86-64-v3 (обов'язкове для Rocky Linux 10) та x86-64-v4 як "(підтримується, знайдено)", ваш процесор добре підтримується для версії 9.x та наступних версій. + Цей вихід вказує на мінімальну необхідну версію x86-64 (v2). У цьому випадку встановлення можна продовжити. Якщо біля запису «x86-64-v2» немає «(підтримується, шукається)», це означає, що ваш ЦП **не** сумісний із Rocky Linux 9.x. Якщо тест показує, що встановлення може продовжитися, а також відображає x86-64-v3 (обов'язкове для Rocky Linux 10) та x86-64-v4 як "(підтримується, знайдено)", ваш процесор добре підтримується для версії 9.x та наступних версій. diff --git a/docs/guides/8_6_installation.uk.md b/docs/guides/8_6_installation.uk.md index 402452ae7f..d4f3caa0d9 100644 --- a/docs/guides/8_6_installation.uk.md +++ b/docs/guides/8_6_installation.uk.md @@ -32,11 +32,13 @@ Rocky-.--.iso !!! Note "Примітка" + ``` Веб-сторінка проекту Rocky містить перелік кількох дзеркал, розташованих по всьому світу. По можливості вибирайте дзеркало, територіально найближче до вас. Список офіційних дзеркал можна знайти [тут](https://mirrors.rockylinux.org/mirrormanager/mirrors). + ``` ## Перевірка файлу ISO інсталятора -Якщо ви завантажили Rocky Linux ISO в існуючий дистрибутив Linux, ви можете скористатися утилітою `sha256sum`, щоб переконатися, що файли, які ви завантажили, не пошкоджені. Перевіривши його контрольну суму, ми покажемо приклад перевірки файлу `Rocky-8.5-x86_64-minimal.iso`. +Якщо ви завантажили ISO-образ Rocky Linux на існуючий дистрибутив Linux, ви можете скористатися утилітою `sha256sum`, щоб перевірити, чи не пошкоджені завантажені файли. Ми покажемо приклад того, як перевірити файл `Rocky-8.5-x86_64-minimal.iso`, перевіривши його контрольну суму. Спочатку завантажте файл, який містить офіційні контрольні суми для доступних ISO. Перебуваючи в папці, яка містить завантажений ISO Rocky Linux, завантажте файл контрольної суми для ISO, введіть: @@ -58,9 +60,11 @@ Rocky-8.9-x86_64-minimal.iso: OK ## Встановлення -!!! tip "Порада" +!!! Tip "Порада" + ``` Перед інсталяцією уніфікований розширюваний інтерфейс мікропрограми (UEFI) або базову систему вводу/виводу (BIOS) потрібно попередньо налаштувати для завантаження з правильного носія. + ``` Ми можемо почати процес встановлення, якщо комп’ютер налаштовано на завантаження з носія, який містить файл ISO. @@ -80,17 +84,17 @@ Rocky-8.9-x86_64-minimal.iso: OK Після завершення перевірки носія та його придатності до використання інсталятор автоматично перейде до наступного екрана. -На цьому екрані виберіть мову, яку ви хочете використовувати для встановлення. Для цього посібника ми вибрали *English (United States)*. Потім натисніть кнопку ++"Continue"++. +На цьому екрані виберіть мову, яку ви хочете використовувати для встановлення. Для цього посібника ми обрали _Англійська (Сполучені Штати)_. Потім натисніть кнопку ++"Continue"++. ## Підсумок Інсталяції -Екран *Підсумок інсталяції* — це всеохоплююча область, де ви приймаєте важливі рішення щодо операційної системи, яку потрібно встановити. +Екран _Підсумок інсталяції_ — це всеохоплююча область, де ви приймаєте важливі рішення щодо операційної системи, яку потрібно встановити. Екран приблизно поділено на такі частини: -- *Localization*: (Клавіатура, підтримка мови та час і дата) -- *Software*: (Джерело встановлення та вибір програмного забезпечення) -- *System*: (Місце призначення та мережа та ім’я хоста) +- _Localization_: (Клавіатура, підтримка мови та час і дата) +- _Software_: (Джерело встановлення та вибір програмного забезпечення) +- _System_: (Місце призначення та мережа та ім’я хоста) Далі ми розглянемо кожен із цих розділів і внесемо необхідні зміни. @@ -100,62 +104,64 @@ Rocky-8.9-x86_64-minimal.iso: OK #### Клавіатура -У нашій демонстраційній системі в цьому посібнику ми приймаємо значення за умовчанням (*English US*) і не вносимо жодних змін. +У нашій демонстраційній системі в цьому посібнику ми приймаємо значення за умовчанням (_English US_) і не вносимо жодних змін. -Однак, якщо вам потрібно внести будь-які зміни тут, на екрані *Підсумок встановлення* натисніть опцію ++"Клавіатура"++, щоб указати розкладку клавіатури системи. Ви можете додати додаткові розкладки клавіатури, якщо потрібно, на наступному екрані та вказати їх порядок. +Однак, якщо вам потрібно внести будь-які зміни тут, на екрані _Підсумок встановлення_ натисніть опцію ++"Клавіатура"++, щоб указати розкладку клавіатури системи. Ви можете додати додаткові розкладки клавіатури, якщо потрібно, на наступному екрані та вказати їх порядок. Натисніть ++"done"++, коли ви закінчите з цим екраном. #### Підтримка мови -Параметр ++"Language Support"++ на екрані *Installation Summary* дає змогу вказати підтримку додаткових мов, які можуть знадобитися вам у готовій системі. +Параметр ++"Language Support"++ на екрані _Installation Summary_ дає змогу вказати підтримку додаткових мов, які можуть знадобитися вам у готовій системі. Ми приймемо значення за замовчуванням (**англійська – США**) і не внесемо жодних змін, натисніть ++"done"++. #### Час & Дата -Натисніть опцію ++"Time & Date"++ на головному екрані *Підсумок встановлення*, щоб відкрити інший екран, який дозволить вам вибрати часовий пояс, у якому знаходиться машина. Прокрутіть список регіонів і міст і виберіть найближчу до вас область. +Натисніть опцію ++"Час і дата"++ на головному екрані _Підсумок встановлення_, щоб відкрити ще один екран, на якому можна вибрати часовий пояс, у якому знаходиться машина. Прокрутіть список регіонів і міст і виберіть найближчу до вас область. -Залежно від джерела інсталяції для параметра *Мережевий час* можна встановити значення *УВІМК.* або *ВИМКНЕНО* за умовчанням. Прийміть стандартне налаштування *ON*; це дозволяє системі автоматично встановлювати правильний час за допомогою мережевого протоколу часу (NTP). Натисніть ++"done"++ після внесення будь-яких змін. +Залежно від джерела інсталяції, для параметра _Мережевий час_ може бути встановлено значення _УВІМК._ або _ВИМК._ за замовчуванням. Прийміть налаштування за замовчуванням _ON_; це дозволить системі автоматично встановлювати правильний час за допомогою протоколу мережевого часу (NTP). Натисніть ++"done"++ після внесення будь-яких змін. ### Розділ програмного забезпечення -У розділі *Програмне забезпечення* на екрані *Підсумок встановлення* ви можете вибрати джерело встановлення, а також додаткові пакети ( програми), які встановлюються. +У розділі _Програмне забезпечення_ на екрані _Підсумок встановлення_ ви можете вибрати джерело встановлення, а також додаткові пакети ( програми), які встановлюються. #### Джерело встановлення -Оскільки ми виконуємо нашу інсталяцію, використовуючи повний образ Rocky 8, ви помітите, що *Локальний носій* автоматично вказано в розділі «Джерело інсталяції» на головному екрані *Підсумок інсталяції*. Ми приймемо стандартні налаштування. +Оскільки ми виконуємо встановлення з використанням повного образу Rocky 8, ви помітите, що _Локальний носій_ автоматично вказується в розділі «Джерело встановлення» на головному екрані _Підсумок встановлення_. Ми приймемо стандартні налаштування. -!!! tip "Порада" +!!! Tip "Порада" + ``` Область «Джерело інсталяції» — це місце, де ви можете вибрати встановлення через мережу. Для мережевої інсталяції вам спочатку потрібно переконатися, що мережевий адаптер у цільовій системі налаштовано правильно та може підключитися до Інтернету. Щоб виконати встановлення через мережу, клацніть «Джерело встановлення» та виберіть перемикач «У мережі». Після вибору виберіть `https` як протокол і введіть наступну URL-адресу в текстове поле `download.rockylinux.org/pub/rocky/8/BaseOS/x86_64/os`. Натисніть `Готово`. + ``` #### Вибір програмного забезпечення -Натиснувши опцію ++"Вибір програмного забезпечення"++ на головному екрані *Підсумок встановлення*, ви побачите розділ встановлення, де ви можете вибрати точні пакети програмного забезпечення, які буде встановлено в системі. Зона вибору програмного забезпечення поділяється на: +Натискання опції ++"Software Selection"++ на головному екрані _Installation Summary_ відкриє розділ інсталяції, де ви можете вибрати точні пакети програмного забезпечення, які будуть інстальовані в системі. Зона вибору програмного забезпечення поділяється на: -- *Базове середовище*: сервер, мінімальна інсталяція, спеціальна операційна система -- *Додаткове програмне забезпечення для області вибраного середовища*: вибір базового середовища ліворуч представляє різноманітне пов’язане додаткове програмне забезпечення, яке можна встановити для заданого середовища праворуч. +- _Базове середовище_: сервер, мінімальна інсталяція, спеціальна операційна система +- _Додаткове програмне забезпечення для області вибраного середовища_: вибір базового середовища ліворуч представляє різноманітне пов’язане додаткове програмне забезпечення, яке можна встановити для заданого середовища праворуч. -Натомість виберіть опцію *Мінімальна інсталяція* (базова функція). +Натомість виберіть опцію _Мінімальна інсталяція_ (базова функція). Натисніть ++"done"++ у верхній частині екрана. ### Системний розділ -Розділ «Система» на екрані *Підсумок встановлення* використовується для налаштування та внесення змін до апаратного забезпечення цільової системи. Тут ви створюєте розділи або томи жорсткого диска, вказуєте файлову систему, яка буде використовуватися, і вказуєте конфігурацію мережі. +Розділ «Система» екрана _Підсумок встановлення_ використовується для налаштування та внесення змін до базового обладнання цільової системи. Тут ви створюєте розділи або томи жорсткого диска, вказуєте файлову систему, яка буде використовуватися, і вказуєте конфігурацію мережі. #### Місце призначення -На екрані *Підсумок встановлення* клацніть опцію `Місце призначення`. Це приведе вас до відповідної області завдань. +На екрані _Підсумок встановлення_ виберіть опцію «Місце встановлення». Це приведе вас до відповідної області завдань. -Ви побачите екран із усіма дисками-кандидатами, доступними у цільовій системі. Якщо у вас є лише один дисковод у системі, як у нашій зразковій системі, ви побачите диск у списку *Локальних стандартних дисків* із позначкою біля нього. Натискання піктограми диска вмикає або вимикає позначку вибору диска. Ми хочемо, щоб це було вибрано/перевірено тут. +Ви побачите екран із усіма дисками-кандидатами, доступними у цільовій системі. Якщо у вашій системі лише один дисковод, як у нашій зразковій системі, ви побачите диск у списку _Локальні стандартні диски_ з позначкою поруч із ним. Натискання піктограми диска вмикає або вимикає позначку вибору диска. Ми хочемо, щоб це було вибрано/перевірено тут. -У розділі параметрів *Налаштування сховища* виберіть перемикач ++"Автоматично"++. +У розділі параметрів _Налаштування сховища_ виберіть перемикач ++"Автоматично"++. Потім натисніть ++"done"++ у верхній частині екрана. -Коли інсталятор визначить, що у вас є придатний для використання диск, ви повернетеся до екрана *Підсумок встановлення*. +Коли інсталятор визначить, що у вас є придатний для використання диск, ви повернетеся до екрана _Підсумок встановлення_. ### Мережа & Ім'я хоста @@ -163,29 +169,38 @@ Rocky-8.9-x86_64-minimal.iso: OK !!! Note "Примітка" + ``` Після того, як ви клацнете опцію ++"Network & Hostname"++, усе правильно визначене обладнання мережевого інтерфейсу (наприклад, Ethernet, бездротові мережеві карти тощо) буде перераховано на лівій панелі екрана налаштування мережі. Залежно від дистрибутива Linux і конкретної установки апаратного забезпечення пристрої Ethernet у Linux мають назви, схожі на `eth0`, `eth1`, `ens3`, `ens4`, `em1`, `em2`, `p1p1`, `enp0s3`, і так далі. + ``` Ви можете або налаштувати кожен інтерфейс за допомогою DHCP, або вручну встановити IP-адресу. Якщо ви вирішите налаштувати вручну, переконайтеся, що підготували всю відповідну інформацію, наприклад IP-адресу, маску мережі тощо. -Натискання кнопки ++"Network & Hostname"++ на головному екрані *Підсумок встановлення* відкриває відповідний екран конфігурації. Серед іншого, у вас є можливість налаштувати ім’я хоста системи (типове ім’я `localhost.localdomain`). +Натискання кнопки ++"Мережа та ім'я хоста"++ на головному екрані _Підсумок встановлення_ відкриває відповідний екран конфігурації. Серед іншого, ви маєте можливість налаштувати ім'я хоста системи (ім'я за замовчуванням — `localhost.localdomain`). !!! Note "Примітка" + ``` Ви можете легко змінити цю назву після встановлення ОС. Наразі прийміть значення за замовчуванням, надане для імені хоста. + ``` Наступне важливе завдання налаштування пов’язане з мережевими інтерфейсами в системі. Спочатку переконайтеся, що Ethernet-карта (або будь-яка мережева карта) указана на лівій панелі. Натисніть будь-який із виявлених мережевих пристроїв на лівій панелі, щоб вибрати його. Властивості вибраного мережевого адаптера, які можна налаштувати, з’являться на правій панелі екрана. !!! Note "Примітка" + ``` У нашому прикладі системи ми маємо два пристрої Ethernet ("ens3" і "ens4"), усі вони знаходяться в підключеному стані. Тип, назва, кількість і стан мережевих пристроїв у вашій системі можуть відрізнятися від пристроїв у нашій зразковій системі. + ``` -Переконайтеся, що перемикач пристрою, який ви хочете налаштувати, переведено в положення `ON` на правій панелі. Ми приймемо всі значення за замовчуванням у цьому розділі. +Переконайтеся, що перемикач пристрою, який ви хочете налаштувати, переведено в положення «УВІМК.» на правій панелі. +Ми приймемо всі значення за замовчуванням у цьому розділі. -Натисніть ++"done"++, щоб повернутися до головного екрана *Підсумок встановлення*. +Натисніть ++"done"++, щоб повернутися до головного екрана _Підсумок встановлення_. !!! Warning "Важливо" + ``` Зверніть увагу на IP-адресу сервера в цьому розділі інсталятора. Якщо у вас немає фізичного або легкого консольного доступу до системи, ця інформація буде корисною, коли вам потрібно буде підключитися до сервера, щоб продовжити роботу на ньому. + ``` ## Фаза встановлення @@ -197,47 +212,54 @@ Rocky-8.9-x86_64-minimal.iso: OK ### Встановіть пароль root -Натисніть поле *Root Password* у *User Settings*, щоб запустити *Root Пароль* екран завдання. У текстовому полі *Root Password* установіть надійний пароль для користувача root. +Клацніть поле _Пароль root_ у розділі _Налаштування користувача_, щоб запустити екран завдання _Пароль root_. У текстовому полі _Пароль root_ встановіть надійний пароль для користувача root. !!! Warning "Важливо" + ``` Суперкористувач root є найбільш привілейованим обліковим записом у системі. Тому, якщо ви вирішите використовувати або ввімкнути його, дуже важливо захистити цей обліковий запис надійним паролем. + ``` -Знову введіть той самий пароль у текстове поле *Підтвердити*. +Знову введіть той самий пароль у текстове поле _Підтвердити_. Натисніть ++"done"++. ### Створіть обліковий запис користувача -Потім клацніть поле *Створення користувача* в розділі *Параметри користувача*, щоб запустити екран завдань *Створити користувача*. Ця область завдань дозволяє створити привілейований або непривілейований (не адміністративний) обліковий запис користувача в системі. +Далі натисніть поле _Створення користувача_ у розділі _Налаштування користувача_, щоб запустити екран завдання _Створити користувача_. Ця область завдань дозволяє створити привілейований або непривілейований (не адміністративний) обліковий запис користувача в системі. !!! Info "Інформація" + ``` Створення та використання непривілейованого облікового запису для повсякденних завдань у системі є хорошою практикою адміністрування системи. + ``` Ми створимо звичайного користувача, який може використовувати повноваження суперкористувача (адміністратора), такі ж, як користувач root, коли це необхідно. -Заповніть поля на екрані *Створити користувача* такою інформацією, а потім натисніть ++"done"++: +Заповніть поля на екрані _Створити користувача_ такою інформацією, а потім натисніть ++"done"++: -*Full name*: `rockstar` +_Full name_: +`rockstar` -*Username*: `rockstar` +_Username_: `rockstar` -*Make this user administrator*: Checked +_Make this user administrator_: Checked -*Require a password to use this account*: Checked +_Require a password to use this account_: Checked -*Password*: `04302021` +_Password_: `04302021` -*Confirm password*: `04302021` +_Confirm password_: `04302021` ### Почніть установку -Коли ви задоволені своїм вибором для різних завдань встановлення, натисніть кнопку «Почати встановлення» на головному екрані *Підсумок встановлення*. Розпочнеться інсталяція, і інсталятор покаже прогрес інсталяції. Коли почнеться інсталяція, у фоновому режимі почнуть виконуватися різноманітні завдання, як-от розділення диска, форматування розділів або томів LVM, перевірка та вирішення програмних залежностей, запис операційної системи на диск тощо. +Щойно ви будете задоволені вибраними параметрами для різних завдань встановлення, натисніть кнопку «Почати встановлення» на головному екрані _Підсумок встановлення_. Розпочнеться інсталяція, і інсталятор покаже прогрес інсталяції. Коли почнеться інсталяція, у фоновому режимі почнуть виконуватися різноманітні завдання, як-от розділення диска, форматування розділів або томів LVM, перевірка та вирішення програмних залежностей, запис операційної системи на диск тощо. !!! Note "Примітка" + ``` Якщо ви не бажаєте продовжувати після натискання кнопки «Почати інсталяцію», ви все одно можете безпечно завершити інсталяцію без втрати даних. Щоб вийти з інсталятора, скиньте систему, натиснувши кнопку «Вийти», натиснувши ctrl-alt-del на клавіатурі або натиснувши кнопку скидання чи живлення. + ``` ### Завершіть установку @@ -253,7 +275,7 @@ Rocky-8.9-x86_64-minimal.iso: OK Щоб увійти в систему, введіть `rockstar` у рядку входу та натисніть ++enter++. -У вікні запиту пароля введіть `04302021` (пароль rockstar) і натисніть ++enter++ (пароль ***не*** відтворюється на екрані, це нормально). +У вікні запиту пароля введіть `04302021` (пароль rockstar) і натисніть ++enter++ (пароль _**не**_ відтворюється на екрані, це нормально). Ми запустимо команду `whoami` після входу; ця команда показує ім'я користувача, який зараз увійшов в систему. diff --git a/docs/guides/automation/templates-automation-packer-vsphere.uk.md b/docs/guides/automation/templates-automation-packer-vsphere.uk.md index 3cb4d01f12..fe222cdb53 100644 --- a/docs/guides/automation/templates-automation-packer-vsphere.uk.md +++ b/docs/guides/automation/templates-automation-packer-vsphere.uk.md @@ -93,7 +93,7 @@ HashiCorp підтримує та підписує пакети для різн wget https://releases.hashicorp.com/packer/1.8.3/packer_1.8.3_linux_amd64.zip ``` - Буде завантажено файл .zip. + Буде завантажено файл .zip. 3. Щоб розпакувати завантажений архів, виконайте наступну команду в оболонці: @@ -101,9 +101,9 @@ HashiCorp підтримує та підписує пакети для різн unzip packer_1.8.3_linux_amd64.zip ``` - !!! tip "Підказка" + !!! tip - Якщо ви отримуєте повідомлення про помилку, і у вашій системі не встановлено програму для розпакування, ви можете встановити її, виконавши цю команду ```sudo dnf install unzip```. + Якщо ви отримуєте помилку, а у вашій системі не встановлено програму для розпакування, ви можете встановити її, виконавши цю команду `sudo dnf install unzip`. 4. Перемістіть програму Packer до папки bin: @@ -233,7 +233,7 @@ $ vim .vsphere-secrets.json { }, ``` -Ми використаємо змінну `version` пізніше в назві шаблону, який ми створимо. Ви можете легко збільшити це значення відповідно до своїх потреб. +Пізніше ми використовуватимемо змінну `version` в назві шаблону, який створюватимемо. Ви можете легко збільшити це значення відповідно до своїх потреб. Нам також знадобиться наша завантажувальна віртуальна машина для доступу до файлу `ks.cfg` (Kickstart). @@ -241,7 +241,7 @@ $ vim .vsphere-secrets.json { Автор любить зберігати свій файл `ks.cfg` на внутрішньому веб-сервері, доступному з його шаблону, але існують інші можливості, які ви можете використовувати. -Наприклад, файл `ks.cfg` доступний з віртуальної машини за цією URL-адресою в нашій лабораторній: . Вам потрібно буде налаштувати щось подібне, щоб використовувати цей метод. +Наприклад, файл `ks.cfg` доступний з віртуальної машини за цією URL-адресою в нашій лабораторії: . Вам потрібно буде налаштувати щось подібне, щоб використовувати цей метод. Оскільки ми хочемо зберегти пароль конфіденційним, він оголошується як чутлива змінна. Приклад: @@ -264,7 +264,7 @@ $ vim .vsphere-secrets.json { ], ``` -Після завершення встановлення віртуальна машина перезавантажиться. Щойно Packer виявить IP-адресу (завдяки VMware Tools), він скопіює `requirements.sh` і виконає його. Очистити віртуальну машину після процесу інсталяції (видалити SSH-ключі, очистити історію тощо) і встановити додатковий пакет — це чудова функція. +Після завершення встановлення віртуальна машина перезавантажиться. Щойно Packer виявить IP-адресу (завдяки інструментам VMware), він скопіює файл `requirements.sh` та виконає його. Це зручна функція для очищення віртуальної машини після процесу встановлення (видалення SSH-ключів, очищення історії тощо) та встановити якийсь додатковий пакет. ### Розділ builders @@ -342,7 +342,7 @@ $ vim .vsphere-secrets.json { "shutdown_command": "/sbin/halt -h -p", ``` -Далі розберемося з конфігурацією vSphere. Єдині помітні речі тут – це використання змінних, визначених на початку документа в нашому домашньому каталозі, а також параметр `insecure_connection`, оскільки наш vSphere використовує самопідписаний сертифікат (див. примітку в Припущення у верхній частині цього документа): +Далі розберемося з конфігурацією vSphere. Єдиними примітними моментами тут є використання змінних, визначених на початку документа в нашому домашньому каталозі, а також опція `insecure_connection`, оскільки наш vSphere використовує самопідписаний сертифікат (див. примітку в Припущеннях на початку цього документа): ```json "insecure_connection": "true", @@ -504,11 +504,11 @@ Remember we specified the user to connect via SSH with to Packer at the end of t rootpw mysecurepassword ``` -!!! warning "Важливо" +!!! warning Тут можна використовувати ненадійний пароль, якщо ви переконаєтеся, що цей пароль буде змінено одразу після розгортання вашої віртуальної машини, наприклад, за допомогою Ansible. -Ось обрана схема розділу. Можна робити набагато складніші речі. Ви можете визначити схему розділів, яка відповідає вашим потребам, адаптувавши її до дискового простору, визначеного в Packer, і яка поважає правила безпеки, визначені для вашого середовища (виділений розділ для `/tmp` тощо): +Ось обрана схема розділу. Можна робити набагато складніші речі. Ви можете визначити схему розділів, яка відповідає вашим потребам, адаптуючи її до дискового простору, визначеного в Packer, і яка враховує правила безпеки, визначені для вашого середовища (виділений розділ для `/tmp` тощо): ```bash # System booloader configuration @@ -527,13 +527,13 @@ logvol swap --fstype="swap" --size=4092 --name=lv_swap --vgname=vg_root The next section concerns the packages that will be installed. «Найкраща практика» полягає в тому, щоб обмежити кількість встановлених пакетів лише тими, які вам потрібні, що обмежує поверхню атаки, особливо в середовищі сервера. -!!! note "Примітка" +!!! note Автор любить обмежувати дії, які необхідно виконати в процесі інсталяції, і відкладати інсталяцію того, що потрібно, у сценарії після інсталяції Packer. Тому в цьому випадку ми встановлюємо лише мінімально необхідні пакети. Схоже, пакет `openssh-clients` потрібен Packer для копіювання своїх сценаріїв у віртуальну машину. -Інструменти `open-vm-tools` також потрібні Packer для виявлення завершення інсталяції, це пояснює додавання репозиторію AppStream. Пакети `perl` і `perl-File-Temp` також знадобляться для VMware Tools під час розгортання. Це прикро, тому що для цього потрібно багато інших залежних пакетів. `python3` (3.6) також знадобиться в майбутньому для роботи Ansible (якщо ви не використовуєте Ansible або python, видаліть їх!). +Пакеру також потрібен `open-vm-tools` для виявлення завершення встановлення, це пояснює додавання репозиторію AppStream. Пакеру також потрібен `open-vm-tools` для виявлення завершення встановлення, це пояснює додавання репозиторію AppStream. Це прикро, тому що для цього потрібно багато інших залежних пакетів. `python3` (3.6) також знадобиться в майбутньому для роботи Ansible (якщо ви не використовуватимете Ansible або python, видаліть їх!). ```bash %packages --ignoremissing --excludedocs @@ -575,7 +575,7 @@ echo "ansible ALL=(ALL:ALL) NOPASSWD:ALL" > /etc/sudoers.d/ansible chmod 440 /etc/sudoers.d/ansible ``` -Тепер нам потрібно ввімкнути та запустити `vmtoolsd` (процес, який керує open-vm-tools). vSphere визначить IP-адресу після перезавантаження віртуальної машини. +Тепер нам потрібно увімкнути та запустити `vmtoolsd` (процес, який керує open-vm-tools). vSphere визначить IP-адресу після перезавантаження віртуальної машини. ```bash systemctl enable vmtoolsd @@ -590,7 +590,7 @@ systemctl start vmtoolsd Існують різні типи провайдерів, ми також могли б використати Ansible. Ви можете вільно досліджувати ці можливості. -Цей файл можна повністю змінити, але це приклад того, що можна зробити за допомогою сценарію, у цьому випадку `requirements.sh`. Примітка нижче "URL-адреса статті бази знань" замінює пошкоджену URL-адресу, але не змінює значення: +Цей файл можна повністю змінити, але це приклад того, що можна зробити за допомогою скрипта, в даному випадку `requirements.sh`. Примітка нижче "URL-адреса статті бази знань" замінює пошкоджену URL-адресу, але не змінює значення: ```bash #!/bin/sh -eux @@ -660,7 +660,7 @@ echo "manual_cache_clean: True" > /etc/cloud/cloud.cfg.d/99-manual.cfg Для цього ми створюємо файл `/etc/cloud/cloud.cfg.d/99-manual.cfg` з директивою `manual_cache_clean: True`. -!!! note "Примітка" +!!! note Це означає, що якщо вам потрібно буде повторно застосувати мережеву конфігурацію за допомогою гостьових налаштувань vSphere (що за нормального використання трапляється досить рідко), вам доведеться самостійно видалити кеш ініціалізації хмари. @@ -737,7 +737,7 @@ echo "manual_cache_clean: True" > /etc/cloud/cloud.cfg.d/99-manual.cfg register: deploy_vm ``` -Ви можете зберігати конфіденційні дані в `./vars/credentials.yml`, який ви, очевидно, заздалегідь зашифрували за допомогою `ansible-vault` (особливо якщо ви використовуєте git для своєї роботи). Оскільки все використовує змінну, ви можете легко зробити це відповідно до ваших потреб. +Ви можете зберігати конфіденційні дані у файлі `./vars/credentials.yml`, який ви, очевидно, попередньо зашифрували за допомогою `ansible-vault` (особливо якщо ви використовуєте git для своєї роботи). Оскільки все використовує змінну, ви можете легко зробити це відповідно до ваших потреб. Якщо ви не використовуєте щось на зразок Rundeck або Awx, ви можете запустити розгортання за допомогою командного рядка, подібного до цього: @@ -747,7 +747,7 @@ ansible-playbook -i ./inventory/hosts -e '{"comments":"my comments","cluster_na Саме на цьому етапі ви можете запустити остаточну конфігурацію вашої віртуальної машини за допомогою Ansible. Не забудьте змінити пароль адміністратора, захистити SSH, зареєструвати нову віртуальну машину в інструменті моніторингу та в ІТ-інвентаризації тощо. -## Коротко +## Підсумок Як ми бачили, зараз існують повністю автоматизовані рішення DevOps для створення та розгортання віртуальних машин. diff --git a/docs/guides/backup/mirroring_lsyncd.uk.md b/docs/guides/backup/mirroring_lsyncd.uk.md index 11aaf0de75..dffc1e614d 100644 --- a/docs/guides/backup/mirroring_lsyncd.uk.md +++ b/docs/guides/backup/mirroring_lsyncd.uk.md @@ -11,28 +11,28 @@ tags: ## Передумови -- Комп’ютер під керуванням Rocky Linux +- Машина під керуванням Rocky Linux - Комфортний рівень зі зміною файлів конфігурації з командного рядка - Знання того, як користуватися редактором командного рядка (тут `vi`, але використовуйте свій улюблений редактор) - Вам потрібен доступ root або привілеї `sudo` (використання `sudo -s` з самого початку є хорошою ідеєю) - Пари відкритих і закритих ключів SSH - Репозиторії EPEL (додаткові пакети для Enterprise Linux) від Fedora -- Вам потрібно буде ознайомитися з *inotify*, інтерфейсом монітора подій -- Додатково: знайомство з *tail* +- Вам потрібно буде ознайомитися з _inotify_, інтерфейсом монітора подій +- Додатково: знайомство з _tail_ ## Вступ -Якщо ви шукаєте спосіб автоматичної синхронізації файлів і папок між комп’ютерами, `lsyncd` — чудовий варіант. Але ви повинні налаштувати все з командного рядка. +Якщо ви хочете автоматично синхронізувати файли та папки між комп'ютерами, `lsyncd` — чудовий варіант. Але ви повинні налаштувати все з командного рядка. Це програма, яку варто вивчити будь-якому системному адміністратору. -Найкращий опис `lsyncd` міститься на сторінці довідки. Трохи перефразовуючи, `lsyncd` — це легке рішення для живого дзеркала, яке неважко встановити. Він не потребує нових файлових систем або блокових пристроїв і не перешкоджає продуктивності локальної файлової системи. Коротше кажучи, він відображає файли. +Найкращий опис `lsyncd` можна знайти на його сторінці довідки (man). Трохи перефразовано, `lsyncd` — це легке рішення для живого дзеркала, яке нескладно встановити. Він не потребує нових файлових систем або блокових пристроїв і не перешкоджає продуктивності локальної файлової системи. Коротше кажучи, він відображає файли. -`lsyncd` спостерігає за інтерфейсом моніторингу подій локального дерева каталогів (inotify). Він агрегує та об’єднує події протягом кількох секунд і породжує один (чи більше) процес(ів) для синхронізації змін. За замовчуванням це `rsync`. +`lsyncd` спостерігає за інтерфейсом монітора подій локального дерева каталогів (inotify). Він агрегує та об’єднує події протягом кількох секунд і породжує один (чи більше) процес(ів) для синхронізації змін. За замовчуванням це `rsync`. -У цьому посібнику ви називатимете систему з оригінальними файлами «джерелом»; той, з яким ви синхронізуєтеся, буде «ціллю». Можна повністю віддзеркалити сервер за допомогою `lsyncd`, ретельно вказавши каталоги та файли, які потрібно синхронізувати. +У цьому посібнику ви називатимете систему з оригінальними файлами «джерелом»; той, з яким ви синхронізуєтеся, буде «ціллю». Використовуючи `lsyncd`, ви можете повністю віддзеркалити сервер, ретельно вказавши каталоги та файли, які потрібно синхронізувати. -Ви також захочете налаштувати [пари публічних закритих ключів Rocky Linux SSH](../security/ssh_public_private_keys.md) для віддаленої синхронізації. У наведених тут прикладах використовується SSH (порт 22). +Вам також потрібно буде налаштувати [пари публічних закритих ключів Rocky Linux SSH] (../security/ssh_public_private_keys.md) для віддаленої синхронізації. У наведених тут прикладах використовується SSH (порт 22). ## Встановлення `lsyncd` @@ -64,7 +64,7 @@ systemctl enable lsyncd ### Встановлення залежностей -Вам знадобляться деякі залежності для `lsyncd` і для створення пакунків із джерела. Використовуйте цю команду на своєму комп’ютері Rocky Linux, щоб переконатися, що у вас є потрібні залежності. Якщо ви збираєтеся створювати з вихідного коду, було б гарною ідеєю встановити всі інструменти розробки: +Вам знадобляться деякі залежності для `lsyncd` та для збірки пакетів з вихідного коду. Використовуйте цю команду на своєму комп’ютері Rocky Linux, щоб переконатися, що у вас є потрібні залежності. Якщо ви збираєтеся створювати з вихідного коду, було б гарною ідеєю встановити всі інструменти розробки: ```bash dnf groupinstall 'Development Tools' @@ -73,12 +73,10 @@ dnf groupinstall 'Development Tools' !!! warning "Для Rocky Linux 9.0" `lsyncd` був повністю протестований у Rocky Linux 9.0 і працюватиме належним чином. Щоб установити всі необхідні залежності, вам потрібно буде ввімкнути додатковий репозиторій: + + ` dnf config-manager --enable crb ` - ``` - dnf config-manager --enable crb - ``` - - Виконання цих дев’яти кроків перед наступними дозволить вам завершити збірку без повернення назад. +Виконання цих дев’яти кроків перед наступними дозволить вам завершити збірку без повернення назад. Ось залежності, необхідні для `lsyncd`: @@ -124,11 +122,11 @@ make make install ``` -Після завершення двійковий файл `lsyncd` буде встановлено та готовий до використання в */usr/local/bin* +Після завершення двійковий файл `lsyncd` буде встановлено та готовий до використання в _/usr/local/bin_ ### `lsyncd` Служба Systemd -За допомогою методу встановлення RPM служба systemd встановиться за вас, але якщо ви встановлюєте з джерела, вам потрібно буде створити службу systemd. Хоча ви можете запустити двійковий файл без служби systemd, ви хочете переконатися, що він *справді* запускається під час завантаження. Якщо ні, перезавантаження сервера припинить вашу синхронізацію. Якщо ви забудете знову запустити його вручну, це буде проблема! +За допомогою методу встановлення RPM служба systemd встановиться за вас, але якщо ви встановлюєте з джерела, вам потрібно буде створити службу systemd. Хоча ви можете запустити бінарний файл без служби systemd, ви хочете переконатися, що він _дійсно_ запускається під час завантаження. Якщо ні, перезавантаження сервера припинить вашу синхронізацію. Якщо ви забудете знову запустити його вручну, це буде проблема! Створення служби systemd відносно просте і заощадить ваш час у довгостроковій перспективі. @@ -173,11 +171,11 @@ systemctl daemon-reload ## Конфігурація `lsyncd` -Для будь-якого методу встановлення `lsyncd` вам потрібен файл конфігурації: */etc/lsyncd.conf*. У наступному розділі описано, як створити та перевірити файл конфігурації. +Для будь-якого з методів встановлення `lsyncd` вам знадобиться файл конфігурації: _/etc/lsyncd.conf_. У наступному розділі описано, як створити та перевірити файл конфігурації. ### Зразок конфігурації для тестування -Ось приклад спрощеного файлу конфігурації, який синхронізує */home* з іншим комп’ютером. Наш цільовий комп’ютер матиме локальну IP-адресу: *192.168.1.40* +Ось приклад спрощеного файлу конфігурації, який синхронізує _/home_ з іншим комп'ютером. Наш цільовий комп'ютер матиме локальну IP-адресу: _192.168.1.40_ ```bash settings { @@ -208,26 +206,26 @@ sync { - `logfile` і `statusFile` будуть створені автоматично під час запуску служби. - `statusInterval` - це кількість секунд, яку необхідно зачекати перед записом у файл statusFile. -- `maxProcesses` — це кількість процесів, які `lsyncd` дозволено створювати. Якщо ви не використовуєте це на завантаженому комп’ютері, достатньо 1 процесу. +- `maxProcesses` – це кількість процесів `lsyncd`, які дозволено запускати. Якщо ви не використовуєте це на завантаженому комп’ютері, достатньо 1 процесу. - У розділі синхронізації `default.rsyncssh` говорить про використання `rsync` через SSH -- `source=` - це шлях до каталогу, з якого ми синхронізуємо. +- `source=` - це шлях до каталогу, з якого ми синхронізуємо - `host=` - це наш цільовий комп'ютер, з яким ми синхронізуємо - `excludeFrom=` повідомляє `lsyncd`, де знаходиться файл виключень. Він повинен існувати, але може бути порожнім. -- `targetdir=` - це цільовий каталог, до якого ми надсилаємо файли. У більшості випадків це буде відповідати джерелу, але не завжди. -- Потім у нас є розділ `rsync =`, і це параметри, з якими ми запускаємо rsync. +- `targetdir=` – це каталог, куди ви надсилаєте файли. У більшості випадків це буде відповідати джерелу, але не завжди. +- Розділ `rsync =` та параметри, з якими ви запускаєте `rsync` - Розділ `ssh =` вказує порт SSH, який прослуховує цільовий комп’ютер Якщо ви додаєте більше ніж один каталог для синхронізації, ви повинні повторити весь розділ «синхронізації», включаючи всі відкриваючі та закриваючі дужки для кожного каталогу. ## Файл lsyncd.exclude -Як зазначалося раніше, файл `excludeFrom` має існувати. Створіть це зараз: +Розділ `rsync =` та параметри, з якими ви запускаєте `rsync`. Створіть це зараз: ```bash touch /etc/lsyncd.exclude ``` -Наприклад, якщо ви синхронізуєте папку `/etc` на своєму комп’ютері, у процесі `lsyncd` буде багато файлів і каталогів, які потрібно виключити. Кожен виключений файл або каталог знаходиться у файлі, по одному на рядок: +Наприклад, якщо ви синхронізували папку `/etc` на своєму комп’ютері, то в процесі `lsyncd` потрібно було б виключити багато файлів і каталогів. Кожен виключений файл або каталог знаходиться у файлі, по одному на рядок: ```bash /etc/hostname @@ -238,7 +236,7 @@ touch /etc/lsyncd.exclude ## Перевірка -Коли все налаштовано, ви можете перевірити все. Переконайтеся, що наш systemd `lsyncd.service` запуститься: +Коли все налаштовано, ви можете перевірити все. Переконайтеся, що наш системний `lsyncd.service` запуститься: ```bash systemctl start lsyncd @@ -257,13 +255,13 @@ tail /var/log/lsyncd.log tail /var/log/lsyncd-status.log ``` -Якщо припустити, що все виглядає правильно, перейдіть до каталогу `/home/[user]`, де `[user]` є користувачем комп’ютера, і створіть там файл із * touch*. +Якщо припустити, що все виглядає правильно, перейдіть до каталогу `/home/[user]`, де `[user]` є користувачем комп’ютера, і створіть там файл із \* touch\*. ```bash touch /home/[user]/testfile ``` -Перейдіть на цільовий комп’ютер і подивіться, чи з’явився файл. Якщо так, то все працює. Налаштуйте `lsyncd.service` для запуску під час завантаження з: +Перейдіть на цільовий комп’ютер і подивіться, чи з’явився файл. Якщо так, то все працює. Встановіть `lsyncd.service` для запуску під час завантаження за допомогою: ```bash systemctl enable lsyncd @@ -271,12 +269,12 @@ systemctl enable lsyncd ## Пам'ятайте про обережність -Щоразу, коли ви синхронізуєте набір файлів або каталогів з іншим комп’ютером, уважно подумайте про вплив цього на цільовий комп’ютер. Припустімо, ви повертаєтесь до **Файлу lsyncd.exclude** у нашому прикладі вище, чи можете ви уявити, що могло б статися, якби вам не вдалося виключити */etc/fstab*? +Щоразу, коли ви синхронізуєте набір файлів або каталогів з іншим комп’ютером, уважно подумайте про вплив цього на цільовий комп’ютер. Припустимо, що ви повертаєтеся до **Файлу lsyncd.exclude** у нашому прикладі вище. Чи можете ви уявити, що може статися, якщо ви не виключите _/etc/fstab_? -`fstab` — це файл, який налаштовує накопичувачі на будь-якому комп’ютері Linux. Диски та етикетки майже напевно відрізняються на різних машинах. Наступне перезавантаження цільового комп’ютера, ймовірно, не вдасться. +`fstab` — це файл, який налаштовує накопичувачі на будь-якому комп'ютері з Linux. Диски та етикетки майже напевно відрізняються на різних машинах. Наступне перезавантаження цільового комп’ютера, ймовірно, не вдасться. ## Висновки та література -`lsyncd` — потужний інструмент для синхронізації каталогу комп’ютера. Як ви бачите, його неважко встановити та не складно обслуговувати. +`lsyncd` — це потужний інструмент для синхронізації каталогів між комп'ютерами. Як ви бачите, його неважко встановити та не складно обслуговувати. Ви можете дізнатися більше про `lsyncd`, відвідавши [Офіційний сайт](https://github.com/axkibe/lsyncd) diff --git a/docs/guides/backup/rsnapshot_backup.uk.md b/docs/guides/backup/rsnapshot_backup.uk.md index 08060c99d0..5b6fe8d9c5 100644 --- a/docs/guides/backup/rsnapshot_backup.uk.md +++ b/docs/guides/backup/rsnapshot_backup.uk.md @@ -14,45 +14,44 @@ tags: - Дізнатися про монтування файлових систем, зовнішніх по відношенню до вашої машини (зовнішній диск, віддалена файлова система тощо). - Знати, як користуватися редактором (використовуючи `vi` тут, але ви можете використовувати свій улюблений редактор) - Трохи знати сценарії BASH -- Знати, як змінити crontab для користувача root +- Знати, як змінити `crontab` для користувача root - Знання відкритих і закритих ключів SSH (тільки якщо ви плануєте запускати віддалене резервне копіювання з іншого сервера) ## Вступ -_rsnapshot_ — це потужна утиліта резервного копіювання з можливістю встановлення на будь-якій машині на базі Linux. Він може створити резервну копію машини локально, або ви можете створити резервну копію кількох машин, скажімо, серверів, з однієї машини. +`rsnapshot` — це потужна утиліта для резервного копіювання з опціями встановлення на будь-який комп'ютер на базі Linux. Він може створити резервну копію машини локально, або ви можете створити резервну копію кількох машин, скажімо, серверів, з однієї машини. -`rsnapshot` використовує `rsync` і повністю написаний на Perl без бібліотечних залежностей. Жодних незвичайних вимог до встановлення не існує. У випадку Rocky Linux ви можете встановити `rnapshot` за допомогою репозиторію EPEL. Після першого випуску Rocky Linux 9.0 був час, коли EPEL не містив пакета `rsnapshot`. Це вже не так, але ці інструкції містять метод встановлення з джерела на випадок, якщо це повториться. +`rsnapshot` використовує `rsync` та повністю написаний на Perl без залежностей від бібліотек. Жодних незвичайних вимог до встановлення не існує. У випадку Rocky Linux ви можете встановити `rnapshot` за допомогою репозиторію EPEL. Після першого випуску Rocky Linux 9.0, був час, коли EPEL не містив пакета `rsnapshot`. Це вже не так, але ці інструкції містять метод встановлення з джерела на випадок, якщо це повториться. Ця документація стосується лише встановлення `rsnapshot` у Rocky Linux. -=== "EPEL Install" +\=== "EPEL Install" - ## Встановлення `rsnapshot` + ```` + ## Installing `rsnapshot` - Усі наведені тут команди викликаються з командного рядка на вашому сервері чи робочій станції, якщо не зазначено інше. + Calling all commands here from the command line unless otherwise noted. - ### Встановлення репозиторію EPEL + ### Installing The EPEL repository + + You need the EPEL software repository from Fedora. To install the repository, just use this command: - Для встановлення _rsnapshot_ нам потрібен репозиторій програмного забезпечення EPEL із Fedora. Щоб встановити репозиторій, просто скористайтеся цією командою: - ``` sudo dnf install epel-release -y ``` - - - Тепер репозиторій має бути активним. - ### Встановіть пакет `rsnapshot` + The repository will now be active. + + ### Install the `rsnapshot` package + + Install `rsnapshot` and some other needed tools: - Далі встановіть `rsnapshot` і деякі інші необхідні інструменти, які, ймовірно, вже встановлені: - ``` sudo dnf install rsnapshot openssh-server rsync ``` - - - Якщо є будь-які відсутні залежності, вони з’являться, і вам просто потрібно буде відповісти на запит, щоб продовжити. Наприклад: - + + If there are any missing dependencies, those will show up and you simply need to answer the prompt to continue. For example: + ``` dnf install rsnapshot Last metadata expiration check: 0:00:16 ago on Mon Feb 22 00:12:45 2021. @@ -65,111 +64,113 @@ _rsnapshot_ — це потужна утиліта резервного копі Installing dependencies: perl-Lchown x86_64 1.01-14.el8 epel 18 k rsync x86_64 3.1.3-9.el8 baseos 404 k - + Transaction Summary ======================================================================================================================================== Install 3 Packages - + Total download size: 543 k Installed size: 1.2 M Is this ok [y/N]: y ``` + ```` -=== "Source Install" +\=== "Source Install" - ## Встановлення `rsnapshot` з вихідного коду + ```` + ## Installing `rsnapshot` from source - Встановити `rsnapshot` з вихідного коду не складно. Однак у нього є недолік: у разі випуску нової версії для оновлення версії знадобиться нова інсталяція з вихідного коду, тоді як метод встановлення EPEL забезпечить вам оновлення за допомогою простого `dnf оновлення`. + Installing `rsnapshot` from source is not difficult. It does come with a downside, however, in that if there is a new version released, it will require a fresh install from source to update the version, whereas the EPEL installation method would keep you up-to-date with a simple `dnf upgrade`. - ### Встановлення засобів розробки та завантаження вихідного коду + ### Installing Development Tools and downloading the source + + As stated, the first step here is to install the 'Development Tools' group: - Як зазначено, першим кроком є встановлення групи «Інструменти розробки»: - ``` dnf groupinstall 'Development Tools' ``` - - - Вам також знадобляться кілька інших пакетів: - + + You also need a few other packages: + ``` dnf install wget unzip rsync openssh-server ``` - - - Далі вам потрібно буде завантажити вихідні файли зі сховища GitHub. Ви можете зробити це кількома способами, але найпростішим у цьому випадку є просто завантажити файл ZIP зі сховища. - - 1. Перейдіть на сторінку https://github.com/rsnapshot/rsnapshot - 2. Натисніть зелену кнопку «Code» праворуч![Код](images/code.png) - 3. Клацніть правою кнопкою миші на «Download ZIP» і скопіюйте розташування посилання![Zip](images/zip.png) - 4. Використовуйте `wget` або `curl`, щоб завантажити скопійоване посилання. Приклад: + + Next you will need to download the source files from the GitHub repository. You can do this multiple ways, but the easiest in this case is probably just to download the ZIP file from the repository. + + 1. Go to https://github.com/rsnapshot/rsnapshot + 2. Click on the Green "Code" button on the right + ![Code](images/code.png) + 3. Right-click on the "Download ZIP" and copy the link location + ![Zip](images/zip.png) + 4. Use `wget` or `curl` to download the copied link. Example: ``` wget https://github.com/rsnapshot/rsnapshot/archive/refs/heads/master.zip ``` - 5. Розархівуйте файл `master.zip` + 5. Unzip the `master.zip` file ``` unzip master.zip ``` - - - ### Побудова Джерела - - Тепер, коли у вас є все на нашій машині, наступним кроком є збірка. Коли ви розпакували файл `master.zip`, ви отримали каталог `rsnapshot-master`. Вам потрібно буде змінити це для нашої процедури побудови. Зауважте, що наша збірка використовує всі параметри пакета за замовчуванням, тому, якщо ви хочете щось інше, вам потрібно провести невелике дослідження. Крім того, ці дії виконуються безпосередньо зі сторінки [Встановлення GitHub](https://github.com/rsnapshot/rsnapshot/blob/master/INSTALL.md): - + + ### Building the source + + Now that you have got everything on our machine, the next step is to build. When you unzipped the `master.zip` file, you ended up with an `rsnapshot-master` directory. You will need to change into this for our build procedure. Note that your build is using all of the package defaults, so if you want something else, you will need to do a little investigation. Also, these steps are directly taken from the [GitHub Installation](https://github.com/rsnapshot/rsnapshot/blob/master/INSTALL.md) page: + ```bash cd rsnapshot-master ``` - - Запустіть сценарій `authogen.sh`, щоб створити сценарій налаштування: - + + Run the `authogen.sh` script to generate the configure script: + ```bash ./autogen.sh ``` - - !!! tip "Підказка" - - Ви можете отримати кілька рядків, які виглядатимуть так: - + + !!! tip + + You may get several lines that look like this: + ```bash fatal: not a git repository (or any of the parent directories): .git ``` - - Це не смертельно. - - Далі вам потрібно запустити `configure` із набором каталогу конфігурації: - + + These are not fatal. + + Next, you need to run `configure` with the configuration directory set: + ```bash ./configure --sysconfdir=/etc ``` - - Нарешті, запустіть `make install`: - + + Finally, run `make install`: + ```bash sudo make install ``` - - Під час усього цього файл `rsnapshot.conf` буде створено як `rsnapshot.conf.default`. Вам потрібно скопіювати це до `rsnapshot.conf`, а потім відредагувати, щоб відповідати тому, що вам потрібно в нашій системі. - + + During all of this, the `rsnapshot.conf` file will be created as `rsnapshot.conf.default`. You need to copy this over to `rsnapshot.conf` and then edit it to fit what you need on our system. + ```bash sudo cp /etc/rsnapshot.conf.default /etc/rsnapshot.conf ``` - - Це стосується копіювання файлу конфігурації. У розділі нижче про «Налаштування rsnapshot» описано зміни, необхідні в цьому файлі конфігурації. + + This covers copying the configuration file over. The section below on "Configuring rsnapshot" will cover the changes needed in this configuration file. + ```` ## Монтування диска або файлової системи для резервного копіювання У цьому кроці ми покажемо, як підключити диск, наприклад зовнішній USB-накопичувач, який використовується для резервного копіювання вашої системи. Цей конкретний крок необхідний, лише якщо ви створюєте резервну копію однієї машини або сервера, як показано в нашому першому прикладі. 1. Підключіть USB-накопичувач. -2. Введіть `dmesg | grep sd`, яка покаже диск, який ви бажаєте використовувати. У цьому випадку це _sda1_. +2. Введіть `dmesg | grep sd`, яка покаже вам диск, який ви хочете використовувати. У цьому випадку це _sda1_. Приклад: `EXT4-fs (sda1): монтування файлової системи ext2 за допомогою підсистеми ext4`. -3. На жаль (або на щастя, залежно від вашої думки), більшість сучасних настільних операційних систем Linux автоматично монтують диск, якщо можуть. Це означає, що залежно від різних факторів `rsnapshot` може втратити відстеження диска. Ви хочете, щоб диск «монтувався» або робив його файли доступними в тому самому місці кожного разу. - Щоб зробити це, візьміть інформацію про диск, виявлену в команді `dmesg`, і введіть `mount | grep sda1`, який покаже це: `/dev/sda1 на /media/username/8ea89e5e-9291-45c1-961d-99c346a2628a` +3. На жаль (або на щастя, залежно від вашої думки), більшість сучасних настільних операційних систем Linux автоматично монтують диск, якщо можуть. Приклад: `Ext4-fs (sda1): монтування файлової системи ext2 за допомогою підсистеми ext4`. Ви хочете, щоб диск "монтувався" або робив свої файли доступними в одному й тому ж місці щоразу. + Для цього візьміть інформацію про диск, отриману в команді `dmesg`, та введіть `mount | grep sda1`, що покаже таке: `/dev/sda1 on /media/username/8ea89e5e-9291-45c1-961d-99c346a2628a` 4. Введіть `sudo umount /dev/sda1`, щоб відключити зовнішній диск. 5. Далі створіть точку підключення для резервної копії: `sudo mkdir /mnt/backup` 6. Підключіть диск до папки резервної копії: `sudo mount /dev/sda1 /mnt/backup` 7. Введіть `mount | grep sda1` знову, і ви побачите це: `/dev/sda1 на /mnt/backup type ext2 (rw,relatime)` -8. Далі створіть каталог, який повинен існувати для продовження резервного копіювання на підключеному диску. У цьому прикладі ви використовуєте папку під назвою «storage»: `sudo mkdir /mnt/backup/storage` +8. Далі створіть каталог, який повинен існувати для продовження резервного копіювання на підключеному диску. У цьому прикладі ви використовуєте папку під назвою "storage": `sudo mkdir /mnt/backup/storage` Зауважте, що для однієї машини вам доведеться або повторювати кроки `umount` і `mount` кожного разу, коли приєднується диск, або кожного разу, коли система перезавантажується, або автоматизувати ці команди зі сценарієм. @@ -177,17 +178,17 @@ _rsnapshot_ — це потужна утиліта резервного копі ## Налаштування `rsnapshot` -Це найважливіший крок. При внесенні змін у файл конфігурації можна зробити помилку. Конфігурація `rsnapshot` вимагає вкладок для будь-якого розділення елементів, і попередження про це є у верхній частині файлу конфігурації. +Це найважливіший крок. При внесенні змін у файл конфігурації можна зробити помилку. Конфігурація `rsnapshot` вимагає табуляції для будь-якого розділення елементів, і попередження про це знаходиться у верхній частині файлу конфігурації. -Пробіл спричинить збій усієї конфігурації та вашої резервної копії. Наприклад, у верхній частині файлу конфігурації є розділ для `# SNAPSHOT ROOT DIRECTORY #`. Якби ви додавали це з нуля, ви б ввели `snapshot_root`, потім TAB, а потім введіть `/whatever_the_path_to_the_snapshot_root_will_be/` +Пробіл спричинить збій усієї конфігурації та вашої резервної копії. Наприклад, ближче до початку файлу конфігурації є розділ для `# SNAPSHOT ROOT DIRECTORY #`. Якби ви додавали це з нуля, ви б набрали `snapshot_root`, потім TAB, а потім `/який_шлях_до_кореневого_знімку_буде/` -Найкраще те, що стандартна конфігурація, включена в `rsnapshot`, потребує лише незначних змін, щоб вона працювала для резервного копіювання локальної машини. Проте завжди доцільно створити резервну копію файлу конфігурації перед початком редагування: +Найкраще те, що конфігурація за замовчуванням, що входить до складу `rsnapshot`, потребує лише незначних змін, щоб вона працювала для резервного копіювання локальної машини. Проте завжди доцільно створити резервну копію файлу конфігурації перед початком редагування: `cp /etc/rsnapshot.conf /etc/rsnapshot.conf.bak` ## Резервне копіювання базової машини або одного сервера -У цьому випадку `rsnapshot` запускатиметься локально для резервного копіювання певної машини. У цьому прикладі ми розберемо конфігураційний файл і покажемо вам, що саме вам потрібно змінити. +У цьому випадку `rsnapshot` буде запущено локально для резервного копіювання певної машини. У цьому прикладі ми розберемо конфігураційний файл і покажемо вам, що саме вам потрібно змінити. Щоб відкрити файл _/etc/rsnapshot.conf_, вам знадобиться використати `vi` (або відредагувати його у вашому улюбленому редакторі). @@ -203,7 +204,7 @@ snapshot_root /.snapshots/ snapshot_root /mnt/backup/storage/` ``` -Ви також хочете вказати, щоб резервне копіювання не запускалося, якщо диск не підключено. Для цього видаліть знак «#» (також називається зауваженням, знаком числа, символом решітки тощо) поруч із `no_create_root`, який виглядає так: +Ви також хочете вказати, щоб резервне копіювання не запускалося, якщо диск не підключено. Для цього видаліть знак «#» (також званий приміткою, знаком числа, символом решітки тощо) next to `no_create_root` which looks this way: ```text no_create_root 1 @@ -221,7 +222,7 @@ no_create_root 1 cmd_cp /usr/bin/cp ``` -Хоча вам не потрібен `cmd_ssh` для цієї конкретної конфігурації, він знадобиться для нашої іншої опції, і не завадить його ввімкнути. Знайдіть рядок, який говорить: +Хоча вам не потрібен `cmd_ssh` для цієї конкретної конфігурації, він знадобиться для нашої іншої опції, і його ввімкнення не завадить. Знайдіть рядок, який говорить: ```text #cmd_ssh /usr/bin/ssh @@ -235,7 +236,7 @@ cmd_ssh /usr/bin/ssh Далі потрібно перейти до розділу під назвою `# РІВНІ РЕЗЕРВНОГО КОПІЮВАННЯ / ІНТЕРВАЛИ #` -Попередні версії `rsnapshot` мали `години, щодня, щомісяця, щороку`, але тепер `альфа, бета, гамма, дельта`. Це трохи заплутано. Вам потрібно додати зауваження до будь-яких інтервалів, які ви не використовуватимете. У конфігурації дельта вже виділена. +У попередніх версіях `rsnapshot` були значення «щогодини», «щодня», «щомісяця», «річно», але тепер вони містять значення «альфа, бета, гамма, дельта». Це трохи заплутано. Вам потрібно додати зауваження до будь-яких інтервалів, які ви не використовуватимете. У конфігурації дельта вже виділена. У цьому прикладі ви не збираєтеся запускати жодних інших інкрементів, окрім нічного резервного копіювання. Просто додайте примітку до альфа- і гамма. Після завершення файл конфігурації матиме наступний вигляд: @@ -264,11 +265,11 @@ logfile /var/log/rsnapshot ### Перевірка конфігурації -Ви хочете переконатися, що ви не додали пробіли чи будь-які інші явні помилки до нашого файлу конфігурації під час його редагування. Для цього ви запускаєте `rsnapshot` для нашої конфігурації з опцією `configtest`: +Ви хочете переконатися, що ви не додали пробіли чи будь-які інші явні помилки до нашого файлу конфігурації під час його редагування. Для цього потрібно запустити команду `rsnapshot` для нашої конфігурації з опцією `configtest`: `rsnapshot configtest` покаже `Syntax OK`, якщо немає помилок. -Візьміть у звичку запускати `configtest` для конкретної конфігурації. Причина цього стане більш очевидною, коли ви перейдете до розділу **Резервне копіювання кількох машин або кількох серверів**. +Візьміть за звичку запускати `configtest` для певної конфігурації. Причина цього буде більш очевидною, коли ви перейдете до розділу **Резервні копії кількох машин або кількох серверів**. Щоб запустити `configtest` для певного файлу конфігурації, запустіть його з опцією `-c`, щоб визначити конфігурацію: @@ -278,7 +279,7 @@ rsnapshot -c /etc/rsnapshot.conf configtest ## Перший запуск резервного копіювання -Коли `configtest` перевіряє, що все гаразд, настав час виконати резервне копіювання вперше. Ви можете спочатку запустити це в тестовому режимі, щоб побачити, що робить сценарій резервного копіювання. +Після того, як `configtest` перевірив, що все гаразд, настав час вперше запустити резервне копіювання. Ви можете спочатку запустити це в тестовому режимі, щоб побачити, що робить сценарій резервного копіювання. Знову ж таки, щоб зробити це, вам не обов’язково вказувати конфігурацію в цьому випадку, але було б гарною ідеєю увійти в звичку робити це: @@ -308,13 +309,13 @@ touch /mnt/backup/storage/beta.0/ rsnapshot -c /etc/rsnapshot.conf beta ``` -Коли резервне копіювання завершиться, перейдіть до `/mnt/backup` і перевірте структуру каталогів, яку там створюється. Буде каталог `storage/beta.0/localhost`, а потім каталоги, які ви вказали для резервного копіювання. +Після завершення резервного копіювання перейдіть до `/mnt/backup` та перегляньте структуру каталогів, яку воно там створює. Там буде каталог `storage/beta.0/localhost`, а за ним — каталоги, які ви вказали для резервного копіювання. ### Подальше пояснення Кожного разу, коли виконується резервне копіювання, воно створюватиме ще один приріст бета-версії, резервні копії тривалістю 0–6 або 7 днів. Найновіша резервна копія завжди буде beta.0, тоді як вчорашня резервна копія завжди буде beta.1. -Здається, що розмір кожної з цих резервних копій займає однакову (або більше) дискового простору, але це через складні посилання, які використовує `rsnapshot`. Щоб відновити файли з учорашньої резервної копії, просто скопіюйте їх назад зі структури каталогів beta.1. +Розмір кожної з цих резервних копій буде таким, що займає однаковий (або більше) дискового простору, але це пов'язано з жорсткими посиланнями, що використовуються `rsnapshot`. Щоб відновити файли з учорашньої резервної копії, просто скопіюйте їх назад зі структури каталогів beta.1. Кожне резервне копіювання є лише додатковим резервним копіюванням із попереднього запуску, АЛЕ через використання жорстких посилань кожен каталог резервного копіювання містить або файл, або жорстке посилання на файл, незалежно від того, у якому каталозі було створено резервну копію. @@ -341,23 +342,23 @@ sudo crontab -e Створення резервних копій кількох машин із машини з RAID-масивом або великою ємністю пам’яті, локально або через підключення до Інтернету в іншому місці працює добре. -Якщо ви виконуєте ці резервні копії через Інтернет, вам потрібно переконатися, що кожне місце має достатню пропускну здатність для створення резервних копій. Ви можете використовувати `rsnapshot` для синхронізації локального сервера з зовнішнім резервним масивом або сервером резервного копіювання для покращення резервування даних. +Якщо ви виконуєте ці резервні копії через Інтернет, вам потрібно переконатися, що кожне місце має достатню пропускну здатність для створення резервних копій. Ви можете використовувати `rsnapshot` для синхронізації локального сервера з віддаленим резервним масивом або резервним сервером для покращення резервування даних. ## Припущення -Віддалений локальний запуск `rsnapshot` з машини. Запуск цієї точної конфігурації також можливий дистанційно поза приміщенням. +Запуск `rsnapshot` з машини віддалено, локально. Запуск цієї точної конфігурації також можливий дистанційно поза приміщенням. -У цьому випадку ви захочете встановити `rsnapshot` на комп’ютері, де будуть виконуватися всі резервні копії. Інші припущення: +У цьому випадку вам потрібно буде встановити `rsnapshot` на машину, яка виконує всі резервні копії. Інші припущення: - Що сервери, на які ви будете створювати резервні копії, мають правило брандмауера, яке дозволяє віддаленій машині підключитися до нього через SSH -- Що на кожному сервері, резервну копію якого ви збираєтеся, було встановлено останню версію `rsync`. Для серверів Rocky Linux запустіть `dnf install rsync`, щоб оновити версію `rsync` вашої системи. +- Що на кожному сервері, резервну копію якого ви створюватимете, встановлено останню версію `rsync`. Для серверів Rocky Linux запустіть команду `dnf install rsync`, щоб оновити версію `rsync` вашої системи. - Що ви підключилися до комп’ютера як користувач root або ви запустили `sudo -s`, щоб переключитися на користувача root ## Відкриті або закриті ключі SSH Для сервера, який виконуватиме резервне копіювання, вам потрібно створити пару ключів SSH для використання під час резервного копіювання. Для нашого прикладу ви будете створювати ключі RSA. -Якщо у вас уже є згенерований набір ключів, ви можете пропустити цей крок. Ви можете дізнатися, виконавши `ls -al .ssh` і знайшовши пару ключів `id_rsa` та `id_rsa.pub`. Якщо такого немає, скористайтеся наведеним нижче посиланням, щоб налаштувати ключі для вашої машини та серверів, до яких ви хочете отримати доступ: +Якщо у вас уже є згенерований набір ключів, ви можете пропустити цей крок. Ви можете дізнатися це, виконавши команду `ls -al .ssh` та знайшовши пару ключів `id_rsa` та `id_rsa.pub`. Якщо такого немає, скористайтеся наведеним нижче посиланням, щоб налаштувати ключі для вашої машини та серверів, до яких ви хочете отримати доступ: [Пари відкритий-приватний ключ SSH](../security/ssh_public_private_keys.md) @@ -393,7 +394,7 @@ logfile /var/log/rsnapshot_web.log lockfile /var/run/rsnapshot_web.pid ``` -Далі потрібно змінити `rsnapshot_web.conf`, щоб включити каталоги, резервні копії яких потрібно створити. Єдине, що тут інше – це мета. +Далі вам потрібно змінити `rsnapshot_web.conf`, щоб включити каталоги, резервні копії яких ви хочете створити. Єдине, що тут інше – це мета. Ось приклад конфігурації "web.ourdomain.com": @@ -461,7 +462,7 @@ crontab -e ## Повідомлення про статус резервного копіювання -Щоб переконатися, що все резервне копіювання виконується згідно з планом, ви можете надіслати файли журналу резервного копіювання на свою електронну пошту. Якщо ви виконуєте резервне копіювання кількох машин за допомогою `rsnapshot`, кожен файл журналу матиме власну назву, яку ви можете надіслати на свою електронну пошту для перегляду за допомогою [використання постфіксу для звітування про процеси сервера](../email/postfix_reporting.md) процедура. +Щоб переконатися, що все резервне копіювання виконується згідно з планом, ви можете надіслати файли журналу резервного копіювання на свою електронну пошту. Якщо ви створюєте резервні копії кількох машин за допомогою `rsnapshot`, кожен файл журналу матиме власну назву, яку ви можете надіслати на свою електронну пошту для перегляду за допомогою процедури [Використання постфікса для звітності про серверні процеси](../email/postfix_reporting.md). ## Відновлення резервної копії @@ -471,4 +472,4 @@ crontab -e Правильна настройка за допомогою `rsnapshot` спочатку трохи складна, але може заощадити багато часу на резервне копіювання ваших машин або серверів. -`rsnapshot` є потужним, швидким і економним використанням дискового простору. Ви можете дізнатися більше про `rsnapshot`, відвідавши [rsnapshot github](https://github.com/rsnapshot/rsnapshot). +`rsnapshot` — потужний, швидкий та економний у використанні дискового простору. Ви можете знайти більше інформації про `rsnapshot`, відвідавши [rsnapshot github] (https://github.com/rsnapshot/rsnapshot). diff --git a/docs/guides/backup/rsync_ssh.uk.md b/docs/guides/backup/rsync_ssh.uk.md index ae968ba462..b32cce1a08 100644 --- a/docs/guides/backup/rsync_ssh.uk.md +++ b/docs/guides/backup/rsync_ssh.uk.md @@ -21,29 +21,29 @@ tags: ## Вступ -Використання `rsync` через SSH не настільки потужне, як [lsyncd](../backup/mirroring_lsyncd.md) (що дозволяє спостерігати за змінами в каталозі чи файлі та підтримувати його синхронізацію в режимі реального часу), і не таке гнучке, як [rsnapshot](../backup/rsnapshot_backup.md) (який пропонує можливість резервного копіювання кількох цілей з одного комп’ютера). Однак це дозволяє оновлювати два комп’ютери за розкладом, який ви визначаєте. +Використання `rsync` через SSH не таке потужне, як [lsyncd](../backup/mirroring_lsyncd.md) (який дозволяє відстежувати зміни в директорії або файлі та синхронізувати їх у режимі реального часу), і не таке гнучке, як [rsnapshot](../backup/rsnapshot_backup.md) (який пропонує можливість резервного копіювання кількох цільових об'єктів з одного комп'ютера). Однак це дозволяє оновлювати два комп’ютери за розкладом, який ви визначаєте. Якщо вам потрібно підтримувати набір каталогів на цільовому комп’ютері в актуальному стані, і вам не потрібна синхронізація в реальному часі як функція, тоді `rsync` через SSH, ймовірно, найкраще рішення. -Для цієї процедури ви працюватимете як користувач root. Або увійдіть як root, або скористайтеся командою `sudo -s`, щоб переключитися на користувача root у вашому терміналі. +Для цієї процедури ви працюватимете як користувач root. Або увійдіть як root, або скористайтеся командою `sudo -s`, щоб переключитися на root-користувача у вашому терміналі. ### Встановлення `rsync` -Хоча `rsync`, ймовірно, уже встановлено. Щоб переконатися, що `rsync` встановлено та оновлено, виконайте на обох комп’ютерах наступне: +Хоча `rsync`, ймовірно, вже встановлено. Щоб переконатися, що `rsync` актуальний, виконайте такі дії на обох комп'ютерах: ```bash dnf install rsync ``` -Якщо пакет не встановлено, `dnf` попросить вас підтвердити встановлення. Якщо його вже встановлено, `dnf` шукатиме оновлення та запропонує встановити його. +Якщо пакет не встановлено, `dnf` попросить вас підтвердити встановлення. Якщо оновлення вже встановлено, `dnf` шукатиме його та запропонує вам його встановити. ### Підготовка середовища -У цьому прикладі використовуватиметься `rsync` на цільовому комп’ютері для отримання з джерела замість надсилання з джерела до цільового. Для цього вам потрібно налаштувати [пару ключів SSH](../security/ssh_public_private_keys.md). Після створення пари ключів SSH перевірте доступ без пароля від цільового комп’ютера до вихідного. +У цьому прикладі на цільовому комп'ютері буде використано `rsync` для отримання даних з джерела, а не для надсилання з джерела до цільового комп'ютера. Для цього вам потрібно налаштувати [пару ключів SSH](../security/ssh_public_private_keys.md). Після створення пари ключів SSH перевірте доступ без пароля від цільового комп’ютера до вихідного. ### Параметри `rsync` і налаштування сценарію -Перш ніж продовжити налаштування сценарію, ви повинні вирішити, які параметри використовувати з `rsync`. Існує багато можливостей. Перегляньте [посібник для rsync](https://linux.die.net/man/1/rsync), щоб отримати повний список. Найпоширенішим способом використання `rsync` є використання параметра `-a`, оскільки `-a`, або «archive», поєднує кілька стандартних параметрів. Що включає `-a`? +Перш ніж продовжити налаштування скрипта, вам потрібно вирішити, які параметри використовувати з `rsync`. Існує багато можливостей. Повний список дивіться в [посібнику з rsync](https://linux.die.net/man/1/rsync). Найпоширеніший спосіб використання `rsync` — це використання опції `-a`, оскільки `-a`, або «архівувати», поєднує кілька поширених опцій. Що включає `-a`? - `-r`, рекурсує каталоги - `-l`, підтримує символічні посилання як символічні посилання @@ -58,7 +58,7 @@ dnf install rsync - `-e`, визначає віддалену оболонку для використання - `--delete`, який говорить, що якщо в цільовому каталозі є файл, який не існує в джерелі, позбутися його -Далі встановіть сценарій на цільовому комп’ютері, створивши для нього файл (ще раз скористайтеся улюбленим редактором, якщо ви не знайомі з `vi`). Щоб створити файл, використовуйте цю команду: +Далі налаштуйте скрипт на цільовому комп'ютері, створивши для нього файл (знову ж таки, скористайтеся своїм улюбленим редактором, якщо ви не знайомі з `vi`). Щоб створити файл, використовуйте цю команду: ```bash vi /usr/local/sbin/rsync_dirs @@ -83,7 +83,7 @@ chmod +x /usr/local/sbin/rsync_dirs Сценарії гарантують, що ви можете тестувати без занепокоєння. -!!! warning "Важливо" +!!! warning У цьому випадку припускається, що ваш домашній каталог не існує на цільовому комп’ютері. **Якщо він існує, ви можете створити його резервну копію перед виконанням сценарію!** @@ -139,7 +139,7 @@ touch /home/your_user/a_different_file.txt ## Автоматизація всього -Можливо, ви не захочете запускати цей сценарій щоразу, коли хочете синхронізувати вручну. Використовуйте `crontab`, щоб зробити це автоматично за розкладом. Щоб запускати цей сценарій щовечора об 23:00: +Можливо, ви не захочете запускати цей сценарій щоразу, коли хочете синхронізувати вручну. Використовуйте `crontab`, щоб робити це автоматично за розкладом. Щоб запускати цей сценарій щовечора об 23:00: ```bash crontab -e @@ -148,21 +148,21 @@ crontab -e Це підтягнеться і виглядатиме приблизно так: ```bash -# Відредагуйте цей файл, щоб представити завдання, які виконуватиме cron. +# Edit this file to introduce tasks to be run by cron. # -# Кожне завдання для запуску має бути визначено в одному рядку -# вказуючи різними полями, коли завдання буде запущено -# і яку команду виконати для завдання +# Each task to run has to be defined through a single line +# indicating with different fields when the task will be run +# and what command to run for the task # -# Щоб визначити час, ви можете надати конкретні значення -# хвилина (м), година (год), день місяця (дом), місяць (пн), -# і день тижня (dow) або використовуйте «*» у цих полях (для «будь-якого»). +# To define the time you can provide concrete values for +# minute (m), hour (h), day of month (dom), month (mon), +# and day of week (dow) or use '*' in these fields (for 'any'). # -# Зверніть увагу, що завдання будуть запускатися на основі системи cron -# поняття daemon про час і часові пояси. +# Notice that tasks will be started based on the cron's system +# daemon's notion of time and timezones. # -# Вихідні дані завдань crontab (включаючи помилки) надсилаються -# електронним листом користувачу, якому належить файл crontab (якщо не перенаправлено). +# Output of the crontab jobs (including errors) is sent through +# email to the user the crontab file belongs to (unless redirected). # # For example, you can run a backup of all your user accounts # at 5 a.m every week with: @@ -173,19 +173,19 @@ crontab -e # m h dom mon dow command ``` -!!! info "Інформація" +!!! info Приклад `crontab` показує порожній, але прокоментований файл. Коментар не з’являється на кожному комп’ютері та може бути порожнім файлом. На активному комп’ютері ви можете бачити інші записи. -`crontab` має 24-годинний формат. Вам знадобиться ваш запис у нижній частині цього файлу: +`crontab` працює у 24-годинному форматі. Вам знадобиться ваш запис у нижній частині цього файлу: ```crontab 00 23 * * * /usr/local/sbin/rsync_dirs ``` -Це говорить про виконання цієї команди о 00 хвилин і 23 години щодня, кожного місяця та кожного дня тижня. Збережіть свій запис `crontab` за допомогою: +Це говорить про виконання цієї команди о 00 хвилин і 23 години щодня, кожного місяця та кожного дня тижня. Збережіть запис `crontab` за допомогою: -++shift+colon+"w"+"q"+exclam++ +\++shift+colon+"w"+"q"+exclam++ ## Додаткові прапори diff --git a/docs/guides/backup/tar.uk.md b/docs/guides/backup/tar.uk.md index 0ede3c7782..fa66320a6d 100644 --- a/docs/guides/backup/tar.uk.md +++ b/docs/guides/backup/tar.uk.md @@ -2,7 +2,7 @@ title: Команда tar author: tianci li contributors: Ganna Zhyrnova -tested_with: 8.1 +tested_with: 8.10 tags: - tar - резервне копіювання @@ -17,17 +17,11 @@ tags: `tar`, який зараз використовується в сучасному GNU/Linux, спочатку походить від [проекту GNU](https://www.gnu.org/). Ви можете переглянути та завантажити всі версії `tar` на [GNU's website](https://ftp.gnu.org/gnu/tar/). -!!! note "Примітка" +!!! note -```` -`tar` у різних дистрибутивах може мати різні параметри за замовчуванням. Будьте обережні при їх використанні. - -```bash -# RockyLinux 8 and Fedora 41 -Shell > tar --show-defaults ---format=gnu -f- -b20 --quoting-style=escape --rmt-command=/etc/rmt --rsh-command=/usr/bin/ssh -``` -```` + `tar` у різних дистрибутивах може мати різні параметри за замовчуванням. Будьте обережні при їх використанні. + + `bash # RockyLinux 8 and Fedora 41 Shell > tar --show-defaults --format=gnu -f- -b20 --quoting-style=escape --rmt-command=/etc/rmt --rsh-command=/usr/bin/ssh ` ## Використання `tar` @@ -52,14 +46,13 @@ Shell > tar --show-defaults !!! tip "antic" -Коли ви видобуваєте файли з архівних файлів, tar автоматично вибирає тип стиснення на основі доданого вручну суфікса. Наприклад, для файлів `.tar.gz` можна напряму використовувати `tar -vxf` без використання `tar -zvxf`. -Ви **повинні** вибрати тип стиснення для створення архівних стиснутих файлів. + !!! Note "Примітка" -``` -У GNU/Linux більшість файлів не потребують розширення, за винятком робочого середовища (GUI). Причиною штучного додавання суфіксів є полегшення розпізнавання користувачами. Якщо системний адміністратор бачить, наприклад, розширення файлу `.tar.gz` або `.tgz`, він знає, як поводитися з файлом. -``` + ``` + У GNU/Linux більшість файлів не потребують розширення, за винятком робочого середовища (GUI). Причиною штучного додавання суфіксів є полегшення розпізнавання користувачами. Якщо системний адміністратор бачить, наприклад, розширення файлу `.tar.gz` або `.tgz`, він знає, як поводитися з файлом. + ``` ### Робочі параметри або типи @@ -74,11 +67,11 @@ Shell > tar --show-defaults | `-x` | Виписка з архіву. Дуже часто використовується | | `--delete` | Видаляє файли або каталоги з архіву ".tar". Застосовується лише до архівних нестиснутих файлів типу `.tar` | -!!! tip "Порада" +!!! Tip "Порада" -``` -Що стосується типів операцій, автор рекомендує залишити префікс «-» для збереження звичок користувача. Звичайно, це не обов'язково. Операційні параметри тут вказують на вашу основну функцію з tar. Іншими словами, вам потрібно вибрати один з перерахованих вище типів. -``` + ``` + Що стосується типів операцій, автор рекомендує залишити префікс «-» для збереження звичок користувача. Звичайно, це не обов'язково. Операційні параметри тут вказують на вашу основну функцію з tar. Іншими словами, вам потрібно вибрати один з перерахованих вище типів. + ``` ### Поширені допоміжні опції @@ -96,9 +89,7 @@ Shell > tar --show-defaults !!! warning "Різниця версії" -``` -У деяких старіших версіях tar параметри називаються «ключами», що означає, що використання параметрів із префіксом «-» може призвести до того, що `tar` не працюватиме належним чином. На цьому етапі вам потрібно видалити префікс "-", щоб він працював належним чином. -``` + У деяких старіших версіях tar параметри називаються «ключами», що означає, що використання параметрів із префіксом «-» може призвести до того, що `tar` не працюватиме належним чином. На цьому етапі вам потрібно видалити префікс "-", щоб він працював належним чином. ### Про стилі варіантів @@ -106,30 +97,30 @@ Shell > tar --show-defaults 1. Традиційний стиль: - - `tar {A|c|d|r|t|u|x}[GnSkUWOmpsMBiajJzZhPlRvwo] [ARG...]`. + - `tar {A|c|d|r|t|u|x}[GnSkUWOmpsMBiajJzZhPlRvwo] [ARG...]`. 2. Використання стилю короткого варіанту: - - `tar -A [OPTIONS] ARCHIVE ARCHIVE` - - `tar -c [-f ARCHIVE] [OPTIONS] [FILE...]` - - `tar -d [-f ARCHIVE] [OPTIONS] [FILE...]` - - `tar -t [-f ARCHIVE] [OPTIONS] [MEMBER...]` - - `tar -r [-f ARCHIVE] [OPTIONS] [FILE...]` - - `tar -u [-f ARCHIVE] [OPTIONS] [FILE...]` - - `tar -x [-f ARCHIVE] [OPTIONS] [MEMBER...]` + - `tar -A [OPTIONS] ARCHIVE ARCHIVE` + - `tar -c [-f ARCHIVE] [OPTIONS] [FILE...]` + - `tar -d [-f ARCHIVE] [OPTIONS] [FILE...]` + - `tar -t [-f ARCHIVE] [OPTIONS] [MEMBER...]` + - `tar -r [-f ARCHIVE] [OPTIONS] [FILE...]` + - `tar -u [-f ARCHIVE] [OPTIONS] [FILE...]` + - `tar -x [-f ARCHIVE] [OPTIONS] [MEMBER...]` 3. Використання стилю довгого варіанту: - - `tar {--catenate|--concatenate} [OPTIONS] ARCHIVE ARCHIVE` - - `tar --create [--file ARCHIVE] [OPTIONS] [FILE...]` - - `tar {--diff|--compare} [--file ARCHIVE] [OPTIONS] [FILE...]` - - `tar --delete [--file ARCHIVE] [OPTIONS] [MEMBER...]` - - `tar --append [-f ARCHIVE] [OPTIONS] [FILE...]` - - `tar --list [-f ARCHIVE] [OPTIONS] [MEMBER...]` - - `tar --test-label [--file ARCHIVE] [OPTIONS] [LABEL...]` - - `tar --update [--file ARCHIVE] [OPTIONS] [FILE...]` - - `tar --update [-f ARCHIVE] [OPTIONS] [FILE...]` - - `tar {--extract|--get} [-f ARCHIVE] [OPTIONS] [MEMBER...]` + - `tar {--catenate|--concatenate} [OPTIONS] ARCHIVE ARCHIVE` + - `tar --create [--file ARCHIVE] [OPTIONS] [FILE...]` + - `tar {--diff|--compare} [--file ARCHIVE] [OPTIONS] [FILE...]` + - `tar --delete [--file ARCHIVE] [OPTIONS] [MEMBER...]` + - `tar --append [-f ARCHIVE] [OPTIONS] [FILE...]` + - `tar --list [-f ARCHIVE] [OPTIONS] [MEMBER...]` + - `tar --test-label [--file ARCHIVE] [OPTIONS] [LABEL...]` + - `tar --update [--file ARCHIVE] [OPTIONS] [FILE...]` + - `tar --update [-f ARCHIVE] [OPTIONS] [FILE...]` + - `tar {--extract|--get} [-f ARCHIVE] [OPTIONS] [MEMBER...]` Другий метод є більш поширеним і відповідає звичкам більшості користувачів GNU/Linux. @@ -158,7 +149,7 @@ Shell > tar --show-defaults | `-cvfPz` | `/home` | `home.A.tar.gz` | `/home` в абсолютному режимі, стиснення _gzip_ | | `-cvfPj` | `/home` | `home.A.tar.bz2` | `/home` в абсолютному режимі, стиснення _bzip2_ | -Ви також можете додати дату до імені файлу. +Ви також можете додати дату до назви файлу. ### Приклад використання @@ -166,164 +157,160 @@ Shell > tar --show-defaults 1. Архівуйте та стискайте **/etc/** у відносному режимі з суфіксом `.tar.gz`: - ```bash - Shell > tar -czvf /tmp/etc-20241207.tar.gz /etc/ - ``` + ```bash + Shell > tar -czvf /tmp/etc-20241207.tar.gz /etc/ + ``` - Через те, що `tar` за замовчуванням працює у відносному режимі, перший рядок виводу команди відображатиме наступне: + Через те, що `tar` за замовчуванням працює у відносному режимі, перший рядок виводу команди відображатиме наступне: - ```bash - tar: Removing leading '/' from member names - ``` + ```bash + tar: Removing leading '/' from member names + ``` 2. Архівуйте **/var/log/** і виберіть тип xz для стиснення: - ```bash - Shell > tar -cJvf /tmp/log-20241207.tar.xz /var/log/ - - Shell > du -sh /var/log/ ; ls -lh /tmp/log-20241207.tar.xz - 18M /var/log/ - -rw-r--r-- 1 root root 744K Dec 7 14:40 /tmp/log-20241207.tar.xz - ``` + ```bash + Shell > tar -cJvf /tmp/log-20241207.tar.xz /var/log/ + + Shell > du -sh /var/log/ ; ls -lh /tmp/log-20241207.tar.xz + 18M /var/log/ + -rw-r--r-- 1 root root 744K Dec 7 14:40 /tmp/log-20241207.tar.xz + ``` 3. Оцініть розмір файлу без створення архіву: - ```bash - Shell > tar -cJf - /etc | wc -c - tar: Removing leading `/' from member names - 3721884 - ``` + ```bash + Shell > tar -cJf - /etc | wc -c + tar: Removing leading `/' from member names + 3721884 + ``` - Одиницею виведення команди `wc -c` є байти. + Одиницею виведення команди `wc -c` є байти. 4. Виріжте великі файли `.tar.gz`: - ```bash - Shell > cd /tmp/ ; tar -czf - /etc/ | split -d -b 2M - etc-backup20241207.tar.gz. - - Shell > ls -lh /tmp/ - -rw-r--r-- 1 root root 2.0M Dec 7 20:46 etc-backup20241207.tar.gz.00 - -rw-r--r-- 1 root root 2.0M Dec 7 20:46 etc-backup20241207.tar.gz.01 - -rw-r--r-- 1 root root 2.0M Dec 7 20:46 etc-backup20241207.tar.gz.02 - -rw-r--r-- 1 root root 70K Dec 7 20:46 etc-backup20241207.tar.gz.03 - ``` - - Перший «-» представляє вхідні параметри `tar`, тоді як другий «-» повідомляє `tar` перенаправити вихід на `stdout`. + ```bash + Shell > cd /tmp/ ; tar -czf - /etc/ | split -d -b 2M - etc-backup20241207.tar.gz. + + Shell > ls -lh /tmp/ + -rw-r--r-- 1 root root 2.0M Dec 7 20:46 etc-backup20241207.tar.gz.00 + -rw-r--r-- 1 root root 2.0M Dec 7 20:46 etc-backup20241207.tar.gz.01 + -rw-r--r-- 1 root root 2.0M Dec 7 20:46 etc-backup20241207.tar.gz.02 + -rw-r--r-- 1 root root 70K Dec 7 20:46 etc-backup20241207.tar.gz.03 + ``` - Щоб витягнути ці вирізані невеликі файли, ви можете вказати таку операцію: + Перший «-» представляє вхідні параметри `tar`, тоді як другий «-» повідомляє `tar` перенаправити вихід на `stdout`. - ```bash - Shell > cd /tmp/ ; cat etc-backup20241207.tar.gz.* >> /tmp/etc-backup-20241207.tar.gz + Щоб витягнути ці вирізані невеликі файли, ви можете вказати таку операцію: - Shell > cd /tmp/ ; tar -xvf etc-backup-20241207.tar.gz -C /tmp/dir1/ - ``` + ```bash + Shell > cd /tmp/ ; cat etc-backup20241207.tar.gz.* >> /tmp/etc-backup-20241207.tar.gz + + Shell > cd /tmp/ ; tar -xvf etc-backup-20241207.tar.gz -C /tmp/dir1/ + ``` #### Тип `-x` 1. Завантажте вихідний код Redis і розпакуйте його в каталог `/usr/local/src/`: - ```bash - Shell > wget -c https://github.com/redis/redis/archive/refs/tags/7.4.1.tar.gz - - Shell > tar -xvf 7.4.1.tar.gz -C /usr/local/src/ - ``` + ```bash + Shell > wget -c https://github.com/redis/redis/archive/refs/tags/7.4.1.tar.gz + + Shell > tar -xvf 7.4.1.tar.gz -C /usr/local/src/ + ``` 2. Розпакуйте лише один файл із zip-архіву - ```bash - Shell > tar -xvf /tmp/etc-20241207.tar.gz etc/chrony.conf - ``` + ```bash + Shell > tar -xvf /tmp/etc-20241207.tar.gz etc/chrony.conf + ``` #### Тип -A або -r 1. Додайте один файл `.tar` до іншого файлу `.tar`: - ```bash - Shell > tar -cvf /tmp/etc.tar /etc/ - - Shell > tar -cvf /tmp/log.tar /var/log/ + ```bash + Shell > tar -cvf /tmp/etc.tar /etc/ + + Shell > tar -cvf /tmp/log.tar /var/log/ + + Shell > tar -Avf /tmp/etc.tar /tmp/log.tar + ``` - Shell > tar -Avf /tmp/etc.tar /tmp/log.tar - ``` - - Це означає, що всі файли в "log.tar" будуть додані в кінець "etc.tar". + Це означає, що всі файли в "log.tar" будуть додані в кінець "etc.tar". 2. Додайте файли або каталоги до файлу `.tar`: - ```bash - Shell > tar -rvf /tmp/log.tar /etc/chrony.conf - tar: Removing leading `/' from member names - /etc/chrony.conf - tar: Removing leading `/' from hard link targets - - Shell > tar -rvf /tmp/log.tar /tmp/dir1 - ``` + ```bash + Shell > tar -rvf /tmp/log.tar /etc/chrony.conf + tar: Removing leading `/' from member names + /etc/chrony.conf + tar: Removing leading `/' from hard link targets + + Shell > tar -rvf /tmp/log.tar /tmp/dir1 + ``` -!!! warning "Важливо" +!!! warning -``` -Незалежно від того, чи використовуєте ви опцію «-A» чи «-r», враховуйте режим збереження відповідних архівних файлів. -``` + Незалежно від того, чи використовуєте ви опцію «-A» чи «-r», враховуйте режим збереження відповідних архівних файлів. -!!! warning "Важливо" +!!! warning -``` -`-A` і `-r` не застосовуються до заархівованих стиснених файлів. -``` + `-A` і `-r` не застосовуються до заархівованих стиснених файлів. #### тип `-t` 1. Перегляньте вміст архіву: - ```bash - Shell > tar -tvf /tmp/log.tar - - Shell > tar -tvf /tmp/etc-20241207.tar.gz | less - ``` + ```bash + Shell > tar -tvf /tmp/log.tar + + Shell > tar -tvf /tmp/etc-20241207.tar.gz | less + ``` #### тип `-d` 1. Порівняйте відмінності файлів: - ```bash - Shell > cd / ; tar -dvf /tmp/etc.tar etc/chrony.conf - etc/chrony.conf - - Shell > cd / ; tar -dvf /tmp/etc-20241207.tar.gz etc/ - ``` + ```bash + Shell > cd / ; tar -dvf /tmp/etc.tar etc/chrony.conf + etc/chrony.conf + + Shell > cd / ; tar -dvf /tmp/etc-20241207.tar.gz etc/ + ``` - Для методів зберігання, які використовують відносний режим, при використанні типу `-d` змініть шлях до файлу на '/'. + Для методів зберігання, які використовують відносний режим, при використанні типу `-d` змініть шлях до файлу на '/'. #### тип `-u` 1. Якщо існує кілька версій одного файлу, ви можете використовувати тип `-u`: - ```bash - Shell > touch /tmp/tmpfile1 - - Shell > tar -rvf /tmp/log.tar /tmp/tmpfile1 - - Shell > echo "File Name" >> /tmp/tmpfile1 - - Shell > tar -uvf /tmp/log.tar /tmp/tmpfile1 - - Shell > tar -tvf /tmp/log.tar - ... - -rw-r--r-- root/root 0 2024-12-07 18:53 tmp/tmpfile1 - -rw-r--r-- root/root 10 2024-12-07 18:54 tmp/tmpfile1 - ``` + ```bash + Shell > touch /tmp/tmpfile1 + + Shell > tar -rvf /tmp/log.tar /tmp/tmpfile1 + + Shell > echo "File Name" >> /tmp/tmpfile1 + + Shell > tar -uvf /tmp/log.tar /tmp/tmpfile1 + + Shell > tar -tvf /tmp/log.tar + ... + -rw-r--r-- root/root 0 2024-12-07 18:53 tmp/tmpfile1 + -rw-r--r-- root/root 10 2024-12-07 18:54 tmp/tmpfile1 + ``` #### Тип `--delete` 1. Ви також можете використовувати `--delete`, щоб видалити файли всередині `.tar` файлу. - ```bash - Shell > tar --delete -vf /tmp/log.tar tmp/tmpfile1 - - Shell > tar --delete -vf /tmp/etc.tar etc/motd.d/ - ``` + ```bash + Shell > tar --delete -vf /tmp/log.tar tmp/tmpfile1 + + Shell > tar --delete -vf /tmp/etc.tar etc/motd.d/ + ``` - При видаленні ви видаляєте з архіву всі файли з однаковою назвою. + При видаленні ви видаляєте з архіву всі файли з однаковою назвою. ## Загальноприйнята термінологія diff --git a/docs/guides/cloud/migration-to-new-azure-images.uk.md b/docs/guides/cloud/migration-to-new-azure-images.uk.md index 858cf50ff5..b94abea51c 100644 --- a/docs/guides/cloud/migration-to-new-azure-images.uk.md +++ b/docs/guides/cloud/migration-to-new-azure-images.uk.md @@ -9,15 +9,13 @@ tags: - знецінення --- -!!! info «Старі зображення облікових записів публікації припинено у квітні 2024 року» +!!! info "Старі зображення облікового запису видавництва, що застаріли у квітні 2024 року" -``` -Публікаційний обліковий запис Microsoft – це обліковий запис Azure Marketplace, який дозволяє розробникам публікувати свої пропозиції в Microsoft AppSource або Azure Marketplace. -RESF надає зображення віртуальної машини Rocky Linux за двома окремими обліковими записами публікації в Azure: застарілим обліковим записом, ідентифікованим як `erockyenterprisesoftwarefoundationinc1653071250513`, і новішим офіційним обліковим записом під назвою `resf`. -Зображення, опубліковані під застарілим обліковим записом публікації (`erockyenterprisesoftwarefoundationinc1653071250513`), було позначено як припинення підтримки 23 квітня 2024 року з вікном у 180 днів (6 місяців), доки їх більше не можна буде використовувати. - -Щоб продовжити використовувати Rocky Linux на Azure, ви повинні дотримуватися цього посібника, щоб перейти до нового облікового запису публікації (`resf`) або до нових зображень спільноти Galleries. -``` + Публікаційний обліковий запис Microsoft – це обліковий запис Azure Marketplace, який дозволяє розробникам публікувати свої пропозиції в Microsoft AppSource або Azure Marketplace. + RESF надає зображення віртуальної машини Rocky Linux за двома окремими обліковими записами публікації в Azure: застарілим обліковим записом, ідентифікованим як `erockyenterprisesoftwarefoundationinc1653071250513`, і новішим офіційним обліковим записом під назвою `resf`. + Зображення, опубліковані під застарілим обліковим записом публікації (`erockyenterprisesoftwarefoundationinc1653071250513`), було позначено як припинення підтримки 23 квітня 2024 року з вікном у 180 днів (6 місяців), доки їх більше не можна буде використовувати. + + Щоб продовжити використовувати Rocky Linux на Azure, ви повинні дотримуватися цього посібника, щоб перейти до нового облікового запису публікації (`resf`) або до нових зображень спільноти Galleries. # Посібник з міграції: перехід на нові образи Rocky Linux на Azure @@ -40,10 +38,10 @@ erockyenterprisesoftwarefoundationinc1653071250513` 1. **Перейдіть** до Azure Marketplace. 2. **Шукайте** нові зображення Rocky Linux під обліковим записом видавця `resf` або перейдіть до Галереї спільноти. - - Поточні посилання на Marketplace: - - [Rocky Linux x86_64](https://azuremarketplace.microsoft.com/en-us/marketplace/apps/resf.rockylinux-x86_64) - - [Rocky Linux aarch64](https://azuremarketplace.microsoft.com/en-us/marketplace/apps/resf.rockylinux-aarch64) - - Повні інструкції щодо доступу до зображень спільнотної галереї можна знайти в цій [повідомленні новин](https://rockylinux.org/news/rocky-on-azure-community-gallery/) + - Поточні посилання на Marketplace: + - [Rocky Linux x86_64](https://azuremarketplace.microsoft.com/en-us/marketplace/apps/resf.rockylinux-x86_64) + - [Rocky Linux aarch64](https://azuremarketplace.microsoft.com/en-us/marketplace/apps/resf.rockylinux-aarch64) + - Повні інструкції щодо доступу до зображень спільнотної галереї можна знайти в цій [повідомленні новин](https://rockylinux.org/news/rocky-on-azure-community-gallery/) 3. **Виберіть** потрібну версію Rocky Linux і **створіть нову віртуальну машину**. Під час налаштування ви можете вибрати той самий розмір віртуальної машини та інші конфігурації, що й ваша існуюча віртуальна машина, щоб забезпечити сумісність. ## Крок 3: Передайте дані diff --git a/docs/guides/cms/chyrp_lite.uk.md b/docs/guides/cms/chyrp_lite.uk.md index dd4d6d3c3e..df55b9bc23 100644 --- a/docs/guides/cms/chyrp_lite.uk.md +++ b/docs/guides/cms/chyrp_lite.uk.md @@ -16,8 +16,8 @@ tags: Нижче наведено мінімальні вимоги для використання цієї процедури: -- Можливість запускати команди від імені користувача root або використовувати `sudo` для підвищення привілеїв. -- Знайомство з редактором командного рядка. Автор використовує `vi` або `vim` тут, але замініть у вашому улюбленому редакторі. +- Можливість запускати команди від імені користувача root або використовувати `sudo` для підвищення привілеїв +- Знайомство з редактором командного рядка. Автор використовує `vi` або `vim` тут, але замініть у вашому улюбленому редакторі ## Встановлення Caddy @@ -65,11 +65,9 @@ systemctl enable --now caddy ## Встановлення PHP -!!! note "Примітка" +!!! note -``` -Якщо ви використовуєте Rocky Linux 8.x, замініть вісім біля випуску в рядку встановлення пакета Remi. -``` + Якщо ви використовуєте Rocky Linux 8.x, замініть "8" поруч із назвою випуску в рядку встановлення пакета Remi. Щоб встановити PHP, вам знадобиться репозиторій Remi. Щоб встановити репозиторій Remi, виконайте наступне: diff --git a/docs/guides/cms/cloud_server_using_nextcloud.uk.md b/docs/guides/cms/cloud_server_using_nextcloud.uk.md index 26c275e540..749fc6a866 100644 --- a/docs/guides/cms/cloud_server_using_nextcloud.uk.md +++ b/docs/guides/cms/cloud_server_using_nextcloud.uk.md @@ -10,7 +10,7 @@ tags: # Хмарний сервер за допомогою Nextcloud -!!! примітка "Примітка щодо Rocky Linux 9.0" +!!! note "Щодо Rocky Linux 9.x" Ця процедура має працювати для Rocky Linux 9.x. Різниця полягає в тому, що вам може знадобитися змінити посилання на версії для деяких репозиторіїв, щоб оновити їх до версії 9. Якщо ви використовуєте Rocky Linux 9.x, майте на увазі, що це було протестовано як у 8.6, так і в 9.0, але спочатку було написано для 8.6. @@ -18,18 +18,18 @@ tags: - Сервер під керуванням Rocky Linux (ви можете встановити Nextcloud на будь-якому дистрибутиві Linux, але ця процедура передбачає, що ви використовуєте Rocky). - Високий рівень комфорту роботи з командного рядка для встановлення та налаштування. -- Знання редактора командного рядка. У цьому прикладі ми використовуємо _vi_, але ви можете використовувати свій улюблений редактор, якщо він у вас є. +- Знання редактора командного рядка. У цьому прикладі ми використовуємо _vi_, але ви можете скористатися своїм улюбленим редактором, якщо він у вас є. - Хоча Nextcloud можна встановити за допомогою програми snap, ми будемо документувати лише встановлення файлу .zip. - Ми будемо застосовувати концепції з документа Apache _sites enabled_ (посилання на яке наведено нижче) для налаштування каталогу. - Ми також будемо використовувати процедуру посилення _mariadb-server_ (посилання на яку також буде використано пізніше) для налаштування бази даних. - У цьому документі ми будемо припускати, що ви є адміністратором або що ви можете бути ним за допомогою _sudo_. -- Ми використовуємо приклад домену yourdomain.com у конфігурації. +- Ми використовуємо приклад домену у конфігурації. ## Вступ -Якщо ви відповідаєте за серверне середовище великої (або навіть невеликої) компанії, вас можуть спокусити хмарні програми. Виконання завдань у хмарі може звільнити ваші власні ресурси для інших речей, але це має зворотну сторону, а саме втрату контролю над даними вашої компанії. Якщо хмарну програму зламано, можливо, і дані вашої компанії також. +Якщо ви відповідаєте за серверне середовище великої (або навіть невеликої) компанії, вас можуть спокусити хмарні програми. Виконання завдань у хмарі може звільнити ваші власні ресурси для інших завдань, але є й зворотний бік: втрата контролю над даними вашої компанії. Якщо хмарну програму зламано, можливо, і дані вашої компанії також. -Повернення хмари у ваше власне середовище – це спосіб відновити безпеку ваших даних за рахунок вашого часу та енергії. Іноді це вартість, яку варто заплатити. +Повернення хмари у ваше власне середовище – це спосіб відновити контроль над вашими даними, але за рахунок вашого часу та енергії. Іноді це вартість, яку варто заплатити. Nextcloud пропонує хмару з відкритим вихідним кодом з урахуванням безпеки та гнучкості. Зауважте, що створення сервера Nextcloud є гарною вправою, навіть якщо ви зрештою вирішите перенести свою хмару за межі сайту. Наступна процедура стосується налаштування Nextcloud на Rocky Linux. @@ -39,7 +39,7 @@ Nextcloud пропонує хмару з відкритим вихідним к Для цієї інсталяції нам знадобляться два репозиторії. Нам потрібно встановити EPEL (додаткові пакети для Enterprise Linux) і репозиторій Remi для PHP 8.3 -!!! note "Примітка" +!!! note Потрібна мінімальна версія PHP 7.3 або 7.4, а версія Rocky Linux 7.4 не містить усіх пакетів, необхідних Nextcloud. Натомість ми збираємося використовувати PHP 8.3 із сховища Remi. @@ -128,7 +128,7 @@ systemctl start httpd #### Створення конфігурації -У розділі _Переумови та припущення_ ми згадали, що для нашої конфігурації будемо використовувати процедуру [Apache Sites Enabled](../web/apache-sites-enabled.md). Перейдіть до цієї процедури та налаштуйте там основи, а потім поверніться до цього документа, щоб продовжити. +У розділі _Передумови та припущення_ ми згадали, що для нашої конфігурації ми використовуватимемо процедуру [Apache Sites Enabled](../web/apache-sites-enabled.md). Перейдіть до цієї процедури та налаштуйте там основи, а потім поверніться до цього документа, щоб продовжити. Для Nextcloud нам потрібно буде створити наступний файл конфігурації. @@ -163,7 +163,7 @@ ln -s /etc/httpd/sites-available/com.yourdomain.nextcloud /etc/httpd/sites-enabl #### Створення Директорії -Як зазначено в конфігурації вище, необхідно створити _DocumentRoot_. Це можна зробити за допомогою: +Як зазначено у вищенаведеній конфігурації, необхідно створити _DocumentRoot_. Це можна зробити за допомогою: ```bash mkdir -p /var/www/sub-domains/com.yourdomain.com/html @@ -199,7 +199,7 @@ date.timezone = "US/Central" Потім збережіть і закрийте файл php.ini. -Зауважте, що для того, щоб все було незмінним, ваш часовий пояс у файлі _php.ini_ має відповідати налаштуванням часового поясу вашої машини. Ви можете дізнатися, що це означає, виконавши такі дії: +Зверніть увагу, що для збереження незмінності ваш часовий пояс у файлі php.ini має збігатися з налаштуваннями часового поясу вашого комп’ютера. Ви можете дізнатися, що це означає, виконавши такі дії: ```bash ls -al /etc/localtime @@ -235,7 +235,7 @@ systemctl restart mariadb - Наведіть вказівник миші на `Get Nextcloud`, після чого відкриється спадне меню. - Натисніть `Server Packages`. - Клацніть правою кнопкою миші на `Download Nextcloud` і скопіюйте адресу посилання (точний синтаксис цього браузера різний). -- На віддаленій консолі на сервері Nextcloud введіть `wget`, а потім пробіл і вставте те, що ви щойно скопіювали. Ви повинні отримати щось на кшталт такого: `wget https://download.nextcloud.com/server/releases/nextcloud-21.0.1.zip` (зауважте, що версія може відрізнятися). +- У віддаленій консолі на сервері Nextcloud введіть `wget`, потім пробіл і вставте щойно скопійований код. Ви повинні отримати щось на кшталт наступного: `wget https://download.nextcloud.com/server/releases/nextcloud-21.0.1.zip` (зверніть увагу, що версія може відрізнятися). - Коли ви натиснете Enter, завантаження файлу .zip почнеться та завершиться досить швидко. Після завершення завантаження розпакуйте zip-файл Nextcloud за допомогою: @@ -246,7 +246,7 @@ unzip nextcloud-21.0.1.zip ### Копіювання вмісту та зміна дозволів -Після завершення етапу розпакування у вас має бути новий каталог у _/root_ під назвою «nextcloud». Перейдіть в цей каталог: +Після завершення розпакування у вас має бути новий каталог у _/root_ під назвою "nextcloud". Перейдіть в цей каталог: ```bash cd nextcloud @@ -297,7 +297,7 @@ systemctl restart mariadb Є кілька речей, які ми хочемо зробити інакше, ніж стандартні, які відображаються: -- У верхній частині веб-сторінки, де написано `Create an admin account`, встановіть користувача та пароль. Для цього документа ми вводимо `admin` і встановлюємо надійний пароль. Не забудьте зберегти це в безпечному місці (наприклад, у менеджері паролів), щоб не втратити! Навіть якщо ви ввели це поле, не натискайте ++enter++, доки ми не заповнимо всі поля налаштування! +- У верхній частині веб-сторінки, де написано «Створити обліковий запис адміністратора», встановіть ім’я користувача та пароль. Для цього документа ми вводимо `admin` та встановлюємо надійний пароль. Не забудьте зберегти це в безпечному місці (наприклад, у менеджері паролів), щоб не втратити! Навіть якщо ви ввели це поле, не натискайте ++enter++, доки ми не заповнимо всі поля налаштування! - У розділі `Сховище та база даних` змініть розташування `Data folder` із кореня документа за замовчуванням на місце, куди ми перемістили папку даних раніше: `/var/www/sub-domains/com.yourdomain.nextcloud/data`. - У розділі `Configure the database` змініть `SQLite` на `MySQL/MariaDB`, натиснувши цю кнопку. - Введіть користувача та пароль root MariaDB, які ви встановили раніше, у поля `Database user` і `Database password`. @@ -306,16 +306,16 @@ systemctl restart mariadb Отримавши все це, натисніть `Finish Setup`, і ви повинні почати працювати. -Вікно браузера оновиться на деякий час, а потім зазвичай не перезавантажуватиме сайт. Введіть свою URL-адресу у вікні браузера ще раз, і ви повинні зіткнутися з першими сторінками за замовчуванням. +Вікно браузера деякий час оновлюється, а потім зазвичай не перезавантажує сайт. Введіть свою URL-адресу у вікні браузера ще раз, і ви повинні зіткнутися з першими сторінками за замовчуванням. -На даний момент ваш адміністратор уже ввійшов (або повинен бути) увійшов, і є кілька інформаційних сторінок, призначених для того, щоб пришвидшити роботу. «Інформаційна панель» — це те, що користувачі побачать під час першого входу. Адміністратор тепер може створювати інших користувачів, встановлювати інші програми та виконувати багато інших завдань. +Ваш адміністратор вже ввійшов у систему (або має бути), і є кілька інформаційних сторінок, які допоможуть вам швидко розібратися. «Інформаційна панель» — це те, що користувачі побачать під час першого входу. Адміністратор тепер може створювати інших користувачів, встановлювати інші програми та виконувати багато інших завдань. -Файл «Nextcloud Manual.pdf» є посібником користувача, щоб користувачі могли ознайомитися з наявними ресурсами. Адміністратор повинен прочитати або принаймні відсканувати основні моменти посібника адміністратора [На веб-сайті Nextcloud](https://docs.nextcloud.com/server/21/admin_manual/) +Файл «Nextcloud Manual.pdf» є посібником користувача, щоб користувачі могли ознайомитися з наявними ресурсами. Користувач з правами адміністратора повинен прочитати або хоча б переглянути основні моменти посібника адміністратора [на веб-сайті Nextcloud] (https://docs.nextcloud.com/server/21/admin_manual/) ## Наступні кроки -На цьому етапі не забувайте, що це сервер, на якому ви зберігатимете дані компанії. Важливо заблокувати його за допомогою брандмауера, виконати [налаштування резервного копіювання](../backup/rsnapshot_backup.md), захистити сайт за допомогою [SSL](../security/generating_ssl_keys_lets_encrypt.md) і виконати будь-які інші обов’язки, необхідні для збереження ваших даних. +На цьому етапі не забувайте, що це сервер, на якому ви зберігатимете дані компанії. Важливо захистити його за допомогою брандмауера, налаштувати [резервне копіювання](../backup/rsnapshot_backup.md), захистити сайт за допомогою [SSL](../security/generating_ssl_keys_lets_encrypt.md) та виконати будь-які інші дії, необхідні для безпеки ваших даних. ## Висновки -Рішення використовувати хмару компанії власними силами потребує ретельної оцінки. Для тих, хто вирішив, що локальне зберігання даних компанії краще, ніж зовнішній хмарний хост, Nextcloud є хорошою альтернативою. +Рішення використовувати хмару компанії власними силами потребує ретельної оцінки. Для тих, хто вирішив, що локальне зберігання даних компанії краще, ніж зовнішній хмарний хостинг, Nextcloud — гарна альтернатива. diff --git a/docs/guides/cms/dokuwiki_server.uk.md b/docs/guides/cms/dokuwiki_server.uk.md index 1f15258104..88672b1bf3 100644 --- a/docs/guides/cms/dokuwiki_server.uk.md +++ b/docs/guides/cms/dokuwiki_server.uk.md @@ -20,9 +20,9 @@ tags: ## Вступ -Документація в організації може приймати різні форми. Наявність репозиторію, на який можна посилатися на цю документацію, є неоціненною. Вікі (що на гавайській мові означає _швидкий_) — це спосіб централізованого зберігання документації, нотаток процесів, корпоративних баз знань і навіть прикладів коду. ІТ-фахівці, які підтримують wiki, навіть таємно, мають вбудований поліс страхування від забуття незрозумілої процедури. +Документація в організації може приймати різні форми. Наявність репозиторію, на який можна посилатися на цю документацію, є неоціненною. Вікі (що означає «швидко» гавайською) — це спосіб зберігати документацію, нотатки до процесів, корпоративні бази знань і навіть приклади коду в централізованому місці. ІТ-фахівці, які підтримують wiki, навіть таємно, мають вбудований поліс страхування від забуття незрозумілої процедури. -DokuWiki — це зріла, швидка вікі, яка працює без бази даних, має вбудовані функції безпеки та відносно проста в розгортанні. Щоб дізнатися більше про можливості DokuWiki, перегляньте їх [веб-сторінку](https://www.dokuwiki.org/dokuwiki). +DokuWiki — це зріла, швидка вікі, яка працює без бази даних, має вбудовані функції безпеки та відносно проста в розгортанні. Для отримання додаткової інформації перегляньте їхню [веб-сторінку](https://www.dokuwiki.org/dokuwiki). DokuWiki — це лише одна з багатьох доступних вікі, хоча вона досить хороша. Одним із великих плюсів є те, що DokuWiki відносно легка і може працювати на сервері, на якому вже запущено інші служби, за умови, що у вас є простір і пам’ять. @@ -40,7 +40,7 @@ dnf install tar wget httpd php php-gd php-xml php-json php-mbstring ### Конфігурація Apache -Якщо ви прочитали процедуру [Apache Sites Enabled](../web/apache-sites-enabled.md), ви знаєте, що вам потрібно створити кілька каталогів. Почніть із додавання каталогу конфігурації _httpd_: +Якщо ви ознайомилися з процедурою [Apache Sites Enabled](../web/apache-sites-enabled.md), ви знаєте, що вам потрібно створити кілька каталогів. Почніть з додавання до каталогу конфігурації _httpd_: ```bash mkdir -p /etc/httpd/{sites-available,sites-enabled} @@ -111,9 +111,9 @@ mkdir -p /var/www/sub-domains/com.example/html cd /root ``` -Оскільки ваше середовище готове до роботи, отримайте останню стабільну версію DokuWiki. Ви можете знайти це, перейшовши на [сторінку завантаження](https://download.dokuwiki.org/), і ліворуч на сторінці в розділі «Версія» ви побачите «Stable (Recommended) (direct link)». +Оскільки ваше середовище готове до роботи, отримайте останню стабільну версію DokuWiki. Ви можете знайти це, перейшовши на [сторінку завантаження](https://download.dokuwiki.org/), і в лівій частині сторінки, в розділі «Версія», ви побачите «Стабільна (рекомендована) (пряме посилання)». -Клацніть правою кнопкою миші на частині "(direct link)" та скопіюйте посилання. У консолі вашого сервера DokuWiki введіть `wget` і пробіл, а потім вставте скопійоване посилання в термінал. Ви повинні отримати щось подібне до цього: +Клацніть правою кнопкою миші на частині "(direct link)" та скопіюйте посилання. У консолі вашого сервера DokuWiki введіть `wget` та пробіл, а потім вставте скопійоване посилання в термінал. Ви повинні отримати щось подібне до цього: ```bash wget https://download.dokuwiki.org/src/dokuwiki/dokuwiki-stable.tgz @@ -135,7 +135,7 @@ dokuwiki-2020-07-29/inc/lang/fr/recent.txt ... (more below) ``` -Вам не потрібен цей початковий іменований каталог під час розпакування архіву, тому ви скористаєтеся деякими параметрами з `tar`, щоб виключити його. Першим варіантом є "--strip-components=1", який видаляє початковий каталог. Друга опція — це опція «-C», яка вказує `tar`, куди потрібно розпакувати архів. Декомпресія буде схожою на цю: +Вам не потрібен цей провідний іменований каталог під час розпакування архіву, тому ви скористаєтеся деякими опціями з `tar`, щоб виключити його. Першим варіантом є "--strip-components=1", який видаляє початковий каталог. Другий варіант — це параметр "-C", який вказує `tar`, куди потрібно розпакувати архів. Декомпресія буде схожою на цю: ```bash tar xzf dokuwiki-stable.tgz --strip-components=1 -C /var/www/sub-domains/com.example/html/ @@ -145,7 +145,7 @@ tar xzf dokuwiki-stable.tgz --strip-components=1 -C /var/www/sub-domains/com.ex Вам потрібно зробити копію файлу _.htaccess.dist_, який надійшов із DokuWiki, і зберегти там старий файл на випадок, якщо вам знадобиться повернутися до оригіналу. -У процесі ви зміните назву цього файлу на _.htaccess_. Це те, що шукатиме _apache_. Для цього: +У процесі ви зміните назву цього файлу на _.htaccess_. Ось що шукатиме _apache_. Для цього: ```bash cp /var/www/sub-domains/com.example/html/.htaccess{.dist,} @@ -159,9 +159,9 @@ chown -Rf apache.apache /var/www/sub-domains/com.example/html ## Налаштування DNS або `/etc/hosts` -Перш ніж отримати доступ до інтерфейсу DokuWiki, ви повинні встановити роздільну здатність імен для цього сайту. Ви можете використовувати файл _/etc/hosts_ для тестування. +Перш ніж отримати доступ до інтерфейсу DokuWiki, ви повинні встановити роздільну здатність імен для цього сайту. Ви можете використовувати свій файл _/etc/hosts_ для тестування. -У цьому прикладі припустимо, що DokuWiki працюватиме на приватній IPv4-адресі 10.56.233.179. Припустімо, ви змінюєте файл _/etc/hosts_ на робочій станції Linux. Для цього запустіть: +У цьому прикладі припустимо, що DokuWiki працюватиме на приватній IPv4-адресі 10.56.233.179. Припустимо, що ви також змінюєте файл _/etc/hosts_ на робочій станції Linux. Для цього запустіть: ```bash sudo vi /etc/hosts @@ -182,7 +182,7 @@ ff02::1 ip6-allnodes ff02::2 ip6-allrouters ``` -Коли ви завершите тестування та будете готові працювати для всіх, ви повинні додати цей хост до DNS-сервера. Ви можете використовувати [Приватний DNS-сервер](../dns/private_dns_server_using_bind.md) або загальнодоступний DNS-сервер. +Коли ви завершите тестування та будете готові працювати для всіх, ви повинні додати цей хост до DNS-сервера. Ви можете використовувати [приватний DNS-сервер](../dns/private_dns_server_using_bind.md) або публічний DNS-сервер. ## Запуск `httpd` @@ -198,7 +198,7 @@ httpd -t Syntax OK ``` -Якщо так, ви повинні бути готові запустити _httpd_, а потім завершити налаштування. Почніть із увімкнення _httpd_ для запуску під час завантаження: +Якщо так, то ви маєте бути готові запустити _httpd_, а потім завершити налаштування. Почніть з увімкнення _httpd_ для запуску під час завантаження: ```bash systemctl enable httpd @@ -237,7 +237,7 @@ systemctl start httpd ### Ваш брандмауер `firewalld` -!!! note "Примітка" +!!! note У цьому прикладі брандмауера не передбачається, які інші служби вам може знадобитися дозволити на вашому сервері DokuWiki. Ці правила базуються на вашому середовищі тестування та стосуються **ЛИШЕ** дозволу доступу до IP-блоку ЛОКАЛЬНОЇ мережі. Вам знадобиться більше послуг, дозволених для робочого сервера. @@ -280,7 +280,7 @@ trusted (active) ### SSL -Для найкращої безпеки вам слід розглянути можливість використання SSL для зашифрованого веб-трафіку. Ви можете придбати SSL у постачальника SSL або скористатися [Let's Encrypt](../security/generating_ssl_keys_lets_encrypt.md). +Для найкращої безпеки вам слід розглянути можливість використання SSL для зашифрованого веб-трафіку. Ви можете придбати SSL-сертифікат у постачальника SSL-сертифікатів або скористатися [Let's Encrypt](../security/generating_ssl_keys_lets_encrypt.md). ## Висновок diff --git a/docs/guides/communications/asterisk_installation.uk.md b/docs/guides/communications/asterisk_installation.uk.md index feaec4ff96..452e853006 100644 --- a/docs/guides/communications/asterisk_installation.uk.md +++ b/docs/guides/communications/asterisk_installation.uk.md @@ -8,7 +8,7 @@ tags: - communications --- -!!! note "Примітка" +!!! note Остання версія Rocky Linux, на якій тестувалась ця процедура, була версія 8.5. Оскільки основна частина цієї процедури покладається на збірки вихідних кодів безпосередньо з Asterisk і простий набір інструментів розробки з Rocky Linux, вона має працювати на всіх версіях. Якщо у вас виникнуть проблеми, повідомте нас! @@ -18,7 +18,7 @@ tags: Asterisk — це платформа з відкритим кодом для створення комунікаційних програм. Крім того, Asterisk перетворює звичайний комп’ютер на комунікаційний сервер, а також живить IP-АТС, VoIP-шлюзи, конференц-сервери та інші спеціальні рішення. Він використовується малими та великими підприємствами, кол-центрами, операторами та державними установами по всьому світу. -Asterisk є безкоштовним і відкритим вихідним кодом, і його спонсорує [Sangoma](https://www.sangoma.com/). Sangoma також пропонує комерційні продукти, які використовують Asterisk під капотом, і залежно від вашого досвіду та бюджету використання цих продуктів може бути більш вигідним, ніж використання власних. Тільки ви та ваша організація знаєте цю відповідь. +Asterisk є безкоштовним програмним забезпеченням з відкритим вихідним кодом, яке спонсорується [Sangoma](https://www.sangoma.com/). Sangoma також пропонує комерційні продукти, які використовують Asterisk під капотом, і залежно від вашого досвіду та бюджету використання цих продуктів може бути більш вигідним, ніж використання власних. Тільки ви та ваша організація знаєте цю відповідь. Слід зазначити, що цей посібник вимагає від адміністратора провести достатню кількість досліджень самостійно. Встановлення комунікаційного сервера не є складним процесом, але запустити його може бути досить складно. Хоча цей посібник допоможе запустити ваш сервер, він не буде повністю готовий для використання у виробництві. @@ -31,8 +31,8 @@ Asterisk є безкоштовним і відкритим вихідним ко - Знання того, як користуватися редактором командного рядка (тут ми використовуємо `vi`, але можете замінити його на свій улюблений редактор.) - Вам потрібен доступ root і, в ідеалі, увійдіть як користувач root у вашому терміналі - Репозиторії EPEL від Fedora -- Можливість входити як root або виконувати команди root за допомогою `sudo`. Усі команди тут припускають користувача з правами `sudo`. Однак процеси конфігурації та збирання виконуються за допомогою `sudo -s`. -- Щоб отримати останню збірку Asterisk, вам потрібно буде використовувати `curl` або `wget`. У цьому посібнику використовується `wget`, але не соромтеся замінити відповідний рядок `curl`, якщо ви хочете його використовувати. +- Можливість увійти як root або виконати root-команди за допомогою `sudo`. Усі команди тут передбачають користувача з правами `sudo`. Однак процеси налаштування та збірки виконуються з командою `sudo -s`. +- Щоб отримати останню збірку Asterisk, потрібно скористатися `curl` або `wget`. У цьому посібнику використовується `wget`, але ви можете замінити його відповідним рядком `curl`, якщо бажаєте. ## Оновлення Rocky Linux і встановлення `wget` @@ -79,7 +79,7 @@ sudo dnf -y install git wget ### Завантаження та налаштування збірки Asterisk -Перш ніж завантажити цей сценарій, переконайтеся, що у вас остання версія. Для цього перейдіть за [посиланням для завантаження Asterisk тут](http://downloads.asterisk.org/pub/telephony/asterisk/) і знайдіть останню збірку Asterisk. Потім скопіюйте розташування посилання. На момент написання цього документа останньою була така збірка: +Перш ніж завантажити цей сценарій, переконайтеся, що у вас остання версія. Щоб це зробити, перейдіть за посиланням [для завантаження Asterisk тут] (http://downloads.asterisk.org/pub/telephony/asterisk/) та знайдіть останню версію Asterisk. Потім скопіюйте розташування посилання. На момент написання цього документа останньою була така збірка: ```bash wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-20-current.tar.gz @@ -87,7 +87,7 @@ tar xvfz asterisk-20-current.tar.gz cd asterisk-20.0.0/ ``` -Перш ніж запускати `install_prereq` нижче (і інші команди), вам потрібно бути суперкористувачем або root. На цьому етапі набагато простіше перейти до `sudo` назавжди на деякий час. Пізніше ви вийдете з `sudo`: +Перш ніж запускати команду `install_prereq`, наведену нижче (та решту команд), вам потрібно бути суперкористувачем або root. На цьому етапі набагато легше на деякий час постійно використовувати `sudo`. Ви вийдете з `sudo` пізніше в процесі: ```bash sudo -s @@ -167,7 +167,7 @@ chown -R asterisk.asterisk /etc/asterisk /var/{lib,log,spool}/asterisk /usr/lib6 restorecon -vr {/etc/asterisk,/var/lib/asterisk,/var/log/asterisk,/var/spool/asterisk} ``` -Тепер, коли основна частина нашої роботи завершена, вийдіть із команди `sudo -s`. Для цього необхідно, щоб більшість інших команд знову використовували `sudo`: +Оскільки більша частина збірки завершена, вийдіть з команди `sudo -s`. Це вимагатиме, щоб більшість решти команд знову використовували `sudo`: ```bash exit @@ -205,7 +205,7 @@ sudo systemctl enable asterisk ### Налаштування брандмауера -У цьому прикладі для брандмауера використовується `firewalld`, який є типовим у Rocky Linux. Метою тут є відкрити порти SIP для світу та відкрити RTP (транспортний протокол реального часу) для світу на портах 10000-20000, як рекомендовано в документації Asterisk. +У цьому прикладі для брандмауера використовується `firewalld`, який є стандартним у Rocky Linux. Метою тут є відкрити порти SIP для світу та відкрити RTP (транспортний протокол реального часу) для світу на портах 10000-20000, як рекомендовано в документації Asterisk. Вам майже напевно знадобляться інші правила брандмауера для інших прямих служб (HTTP/HTTPS), які ви, ймовірно, захочете обмежити своїми IP-адресами. Це виходить за рамки цього документа: @@ -262,4 +262,4 @@ pjsip show auth 1101 Вищезазначене допоможе вам почати роботу з сервером, але завершити налаштування, підключити пристрої та подальше усунення несправностей залежить від вас. -Запуск комунікаційного сервера Asterisk потребує часу та зусиль і вимагає дослідження з боку адміністратора. Щоб отримати додаткові відомості про налаштування та використання Asterisk, перегляньте [Asterisk Wiki тут.](https://docs.asterisk.org/Configuration/) +Запуск комунікаційного сервера Asterisk потребує часу та зусиль і вимагає дослідження з боку адміністратора. Для отримання додаткової інформації про налаштування та використання Asterisk див. [Вікі-сторінку Asterisk тут.] (https://docs.asterisk.org/Configuration/) diff --git a/docs/guides/containers/lxd_web_servers.uk.md b/docs/guides/containers/lxd_web_servers.uk.md index fb97671e69..d0d579453b 100644 --- a/docs/guides/containers/lxd_web_servers.uk.md +++ b/docs/guides/containers/lxd_web_servers.uk.md @@ -9,11 +9,11 @@ update: 28 лютого 2022 р ## Вступ -Гаразд, у нас уже є [посібник із встановлення LXD/LXC на Rocky Linux](../../books/lxd_server/00-toc.md), але його написав хтось, хто знає, що робить, і він хотів побудувати контейнерну мережу серверів та/або програм на фізичній машині у своїй локальній мережі. Це чудово, і я просто вкраду його шматочки, щоб мені не довелося так багато писати. +Добре, отже, у нас вже є [посібник з встановлення LXD/LXC на Rocky Linux](../../books/lxd_server/00-toc.md), але його написав хтось, хто знає, що робить, і хотів побудувати контейнерну мережу серверів та/або програм на фізичній машині у своїй локальній мережі. Це чудово, і я просто вкраду його шматочки, щоб мені не довелося так багато писати. -Але якщо ви щойно чули про контейнери Linux і ще не дуже розумієте, як вони працюють, але хочете розмістити деякі веб-сайти, це посібник для вас. *Цей посібник навчить вас розміщувати основні веб-сайти за допомогою LXD і LXC у будь-якій системі, включаючи віртуальні приватні сервери та хмарний хостинг.* +Але якщо ви щойно чули про контейнери Linux і ще не дуже розумієте, як вони працюють, але хочете розмістити деякі веб-сайти, це посібник для вас. _Цей посібник навчить вас, як розміщувати прості веб-сайти за допомогою LXD та LXC на будь-якій системі, включаючи віртуальні приватні сервери та хмарний хостинг._ -Отже, по-перше, що таке контейнер Linux? Що ж, для абсолютного початківця це спосіб змусити один комп’ютер удавати, що насправді це набагато більше комп’ютерів. Кожен із цих «контейнерів» містить базову (зазвичай урізану) версію обраної вами операційної системи. Ви можете використовувати кожен контейнер як окремий сервер; помістіть *nginx* на один, *Apache* на інший і навіть використовуйте третій як сервер бази даних. +Отже, по-перше, що таке контейнер Linux? Що ж, для абсолютного початківця це спосіб змусити один комп’ютер удавати, що насправді це набагато більше комп’ютерів. Кожен із цих «контейнерів» містить базову (зазвичай урізану) версію обраної вами операційної системи. Ви можете використовувати кожен контейнер як окремий сервер; розмістити _nginx_ на одному, _Apache_ на іншому, і навіть використовувати третій як сервер бази даних. Основна перевага полягає в тому, що якщо одна програма чи веб-сайт у власному контейнері зазнає серйозних помилок, злому чи інших проблем, це навряд чи вплине на решту вашого сервера чи інші програми та веб-сайти. Крім того, контейнери надзвичайно легко знімати, створювати резервні копії та відновлювати. @@ -25,13 +25,15 @@ update: 28 лютого 2022 р Якщо ви коли-небудь грали з VirtualBox для запуску деяких програм Windows, це так, але ні. На відміну від віртуальних машин, контейнери Linux не емулюють усе апаратне середовище для кожного контейнера. Навпаки, усі вони спільно використовують декілька віртуальних пристроїв за умовчанням для роботи в мережі та зберігання, хоча ви можете додати більше віртуальних пристроїв. Як результат, вони вимагають набагато менше накладних витрат (обчислювальної потужності та оперативної пам’яті), ніж віртуальна машина. -Для тих любителів Docker (Docker — це ще одна система на основі контейнерів, *не* система VM), контейнери Linux менш ефемерні, ніж те, до чого ви звикли. Усі дані в кожному екземплярі контейнера є постійними, і будь-які внесені вами зміни є постійними, якщо ви не повернетеся до резервної копії. Коротше кажучи, закриття контейнера не зітре жодних проблем, які ви могли створити. +Для тих шанувальників Docker (Docker — це ще одна система на основі контейнерів, _не_ система віртуальної машини), контейнери Linux менш ефемерні, ніж те, до чого ви звикли. Усі дані в кожному екземплярі контейнера є постійними, і будь-які внесені вами зміни є постійними, якщо ви не повернетеся до резервної копії. Коротше кажучи, закриття контейнера не зітре жодних проблем, які ви могли створити. Зокрема, LXD — це програма командного рядка, яка допомагає налаштовувати контейнери Linux і керувати ними. Це те, що ми сьогодні встановимо на хост-сервер Rocky Linux. Однак я буду багато писати про LXC/LXD, оскільки існує багато старої документації, яка стосується лише LXC, і я намагаюся полегшити людям пошук оновлених посібників, подібних до цього. !!! Note "Примітка" + ``` Був додаток-попередник LXD, який також називався "LXC". Сьогодні LXC – це технологія, а LXD – це додаток. + ``` Ми будемо використовувати їх обидва, щоб створити середовище, яке працює приблизно так: @@ -41,18 +43,20 @@ update: 28 лютого 2022 р !!! Note "Примітка" + ``` Зворотний проксі — це програма, яка приймає вхідні з’єднання з Інтернету (або вашої локальної мережі) і направляє їх на потрібний сервер, контейнер або програму. Існують також спеціальні інструменти для цієї роботи, наприклад HaProxy... але я вважаю Nginx набагато простішим у використанні. + ``` ## Передумови та припущення -* Базове знайомство з інтерфейсом командного рядка Linux. Ви повинні знати, як використовувати SSH, якщо ви встановлюєте LXC/LXD на віддаленому сервері. -* Підключений до Інтернету сервер, фізичний або віртуальний, на якому вже працює Rocky Linux. -* Два доменних імена вказують прямо на ваш сервер із записом A. - * Два субдомени також працюватимуть так само добре. Також буде один домен із записом піддомену зі знаком узагальнення або спеціальний домен локальної мережі. -* Текстовий редактор командного рядка. *nano* підійде, *micro* мій улюблений, але використовуйте те, що вам зручно. -* Ви *можете* стежити за цим посібником як користувач root, але це не дуже гарна ідея. Після початкової інсталяції LXC/LXD ми допоможемо вам створити непривілейованого користувача спеціально для керування командами LXD. -* Тепер доступні образи Rocky Linux для створення контейнерів. -* Якщо ви не надто знайомі з Nginx або Apache, вам **буде** потрібно ознайомитися з деякими іншими нашими посібниками, якщо ви хочете запустити повноцінний робочий сервер. Не хвилюйтеся, я дам посилання на них нижче. +- Базове знайомство з інтерфейсом командного рядка Linux. Ви повинні знати, як використовувати SSH, якщо ви встановлюєте LXC/LXD на віддаленому сервері. +- Підключений до Інтернету сервер, фізичний або віртуальний, на якому вже працює Rocky Linux. +- Два доменних імена вказують прямо на ваш сервер із записом A. + - Два субдомени також працюватимуть так само добре. Також буде один домен із записом піддомену зі знаком узагальнення або спеціальний домен локальної мережі. +- Текстовий редактор командного рядка. _нано_ підійде, _мікро_ — мій улюблений, але використовуйте той, що вам зручно. +- Ви _можете_ виконати весь цей посібник як користувач root, але це не найкраща ідея. Після початкової інсталяції LXC/LXD ми допоможемо вам створити непривілейованого користувача спеціально для керування командами LXD. +- Тепер доступні образи Rocky Linux для створення контейнерів. +- Якщо ви не дуже добре знайомі з Nginx або Apache, вам **буде** потрібно ознайомитися з деякими іншими нашими посібниками, якщо ви хочете запустити повноцінний продакшн-сервер. Не хвилюйтеся, я дам посилання на них нижче. ## Налаштування середовища хост-сервера @@ -92,13 +96,13 @@ systemctl enable snapd systemctl start snapd ``` -Перш ніж продовжити, перезавантажте сервер. Це можна зробити за допомогою команди `reboot` або з панелі адміністратора VPS/хмарного хостингу. +Перш ніж продовжити, перезавантажте сервер. Ви можете зробити це за допомогою команди `reboot` або з адміністративної панелі вашого VPS/хмарного хостингу. -А потім запустіть: +\* _snap_ — це метод пакування програм, завдяки якому вони постачаються з усіма необхідними залежностями та можуть працювати майже на будь-якій системі Linux. ### Встановлення LXD -Перш ніж продовжити, перезавантажте сервер. Це можна зробити за допомогою команди `reboot` або з панелі адміністратора VPS/хмарного хостингу. +Перш ніж продовжити, перезавантажте сервер. Це можна зробити за допомогою команди reboot або з панелі адміністратора VPS/хмарного хостингу. ```bash snap install lxd @@ -122,13 +126,13 @@ lxd init Would you like to use LXD clustering? (Бажаєте використовувати кластеризацію LXD?) (yes/no) [default=no]: ``` -Якщо вас цікавить кластеризація, проведіть додаткові дослідження з цього приводу [тут](https://documentation.ubuntu.com/lxd/en/latest/clustering/). В іншому випадку просто натисніть «Enter», щоб прийняти параметр за замовчуванням. +Якщо вас цікавить кластеризація, проведіть додаткові дослідження з цього питання [тут](https://documentation.ubuntu.com/lxd/en/latest/clustering/). В іншому випадку просто натисніть «Enter», щоб прийняти параметр за замовчуванням. ```text Do you want to configure a new storage pool? (Бажаєте налаштувати новий пул зберігання?) (yes/no) [default=yes]: ``` - Прийміть значення за замовчуванням. +Прийміть значення за замовчуванням. ```text Ім’я нового пулу сховищ [default=default]: server-storage @@ -148,7 +152,7 @@ Do you want to configure a new storage pool? (Бажаєте налаштува Create a new LVM pool? (Створити новий пул LVM?) (yes/no) [default=yes]: ``` -Якщо у вас є певний жорсткий диск або розділ, який ви хочете використовувати для всього пулу сховищ, напишіть «так». Якщо ви робите все це на VPS, вам, ймовірно, *доведеться* вибрати «ні». +Якщо у вас є певний жорсткий диск або розділ, який ви хочете використовувати для всього пулу сховищ, напишіть «так». Якщо ви робите все це на VPS, вам, ймовірно, _доведеться_ вибрати «ні». ```text Would you like to use an existing empty block device (e.g. a disk or partition)? (`Чи бажаєте ви використовувати наявний порожній блочний пристрій (наприклад, диск або розділ)? (yes/no) [default=no]:` @@ -208,7 +212,7 @@ Would you like a YAML "lxd init" preseed to be printed? (yes/no) [default=no]: #### Налаштування прав користувача -Перш ніж продовжити, нам потрібно створити нашого користувача «lxdadmin» і переконатися, що він має необхідні привілеї. Нам потрібен користувач «lxdadmin», щоб він міг використовувати *sudo* для доступу до кореневих команд, і він має бути членом групи «lxd». Щоб додати користувача та переконатися, що він є членом обох груп, виконайте: +Перш ніж продовжити, нам потрібно створити нашого користувача «lxdadmin» і переконатися, що він має необхідні привілеї. Нам потрібно, щоб користувач "lxdadmin" мав можливість використовувати _sudo_ для доступу до команд root, і нам потрібно, щоб він був членом групи “lxd”. Щоб додати користувача та переконатися, що він є членом обох груп, виконайте: ```bash useradd -G wheel,lxd lxdadmin @@ -224,11 +228,11 @@ passwd lxdadmin ## Налаштування брандмауера -Перш ніж ми зробимо щось інше з контейнерами, вам потрібно мати доступ до свого проксі-сервера ззовні. Якщо ваш брандмауер блокує порт 80 (порт за замовчуванням, який використовується для HTTP/веб-трафіку) або порт 443 (використовується для HTTPS/*захищеного* веб-трафіку), тоді ви нічого не робитимете з точки зору сервера. +Перш ніж ми зробимо щось інше з контейнерами, вам потрібно мати доступ до свого проксі-сервера ззовні. Якщо ваш брандмауер блокує порт 80 (порт за замовчуванням, який використовується для HTTP/веб-трафіку) або порт 443 (який використовується для HTTPS/_захищеного_ веб-трафіку), то ви майже нічого не зробите на сервері. -Інший посібник LXD покаже вам, як це зробити за допомогою брандмауера *iptables*, якщо це те, що ви хочете зробити. Я зазвичай використовую стандартний брандмауер CentOS: *firewalld*. Ось що ми робимо цього разу. +В іншому посібнику LXD ви побачите, як це зробити за допомогою брандмауера _iptables_, якщо ви цього хочете. Я зазвичай використовую брандмауер CentOS за замовчуванням: _firewalld_. Ось що ми робимо цього разу. -`firewalld` налаштовується за допомогою команди `firewall-cmd`. **Перше, що ми хочемо зробити,** перш ніж відкривати будь-які порти, — переконатися, що IP-адреси ваших контейнерів можуть бути призначені автоматично: +`firewalld` налаштовується за допомогою команди `firewall-cmd`. **Абсолютно перше, що ми хочемо зробити,** перш ніж відкривати будь-які порти, це переконатися, що вашим контейнерам можна автоматично призначити IP-адреси: ```bash firewall-cmd --zone=trusted --permanent --change-interface=lxdbr0 @@ -246,9 +250,9 @@ firewall-cmd --permanent --zone=public --add-port=80/tcp Давайте розберемо це: -* Прапор `-–permanent` вказує брандмауеру переконатися, що ця конфігурація використовується під час кожного перезапуску брандмауера та під час перезапуску самого сервера. -* `–zone=public` повідомляє брандмауеру приймати вхідні підключення до цього порту від усіх. -* Нарешті, `–add-port=80/tcp` повідомляє брандмауеру приймати вхідні з’єднання через порт 80, якщо вони використовують протокол керування передачею, а це те, що вам потрібно в цьому випадку. +- Прапор `-–permanent` вказує брандмауеру переконатися, що ця конфігурація використовується під час кожного перезапуску брандмауера та під час перезапуску самого сервера. +- `–zone=public` повідомляє брандмауеру приймати вхідні підключення до цього порту від усіх. +- Нарешті, `–add-port=80/tcp` повідомляє брандмауеру приймати вхідні з’єднання через порт 80, якщо вони використовують протокол керування передачею, а це те, що вам потрібно в цьому випадку. Щоб повторити процес для трафіку HTTPS, просто запустіть команду ще раз і змініть номер. @@ -256,19 +260,19 @@ firewall-cmd --permanent --zone=public --add-port=80/tcp firewall-cmd --permanent --zone=public --add-port=443/tcp ``` -Ці конфігурації не почнуть діяти, доки ви не примусово усунете проблему. Для цього скажіть *firewalld* перезавантажити свої конфігурації, наприклад: +Ці конфігурації не почнуть діяти, доки ви не примусово усунете проблему. Щоб це зробити, накажіть _firewalld_ перезавантажити свої конфігурації, ось так: ```bash firewall-cmd --reload ``` -Імовірність того, що це не спрацює, дуже мала. У таких рідкісних випадках змусьте *firewalld* виконувати ваші ставки за допомогою старого вимикання-і-вмикання-знову. +Імовірність того, що це не спрацює, дуже мала. У цих рідкісних випадках змусьте _firewalld_ виконувати ваші накази за допомогою старого методу "вимкни-й-знову-ввімкни". ```bash systemctl restart firewalld ``` -Щоб переконатися, що порти додано правильно, запустіть `firewall-cmd --list-all`. Правильно налаштований брандмауер виглядатиме приблизно так (у мене є кілька додаткових портів, відкритих на локальному сервері, ігноруйте їх): +Щоб переконатися, що порти додано правильно, виконайте команду `firewall-cmd --list-all`. Правильно налаштований брандмауер виглядатиме приблизно так (у мене є кілька додаткових портів, відкритих на локальному сервері, ігноруйте їх): ```bash public (active) @@ -295,7 +299,9 @@ public (active) !!! Note "Примітка" + ``` З цього моменту кожну команду слід запускати від імені користувача `lxdadmin` або як ви вирішите її назвати, хоча деякі потребують використання *sudo* для тимчасових привілеїв адміністратора. + ``` Для цього підручника вам знадобляться три контейнери: зворотний проксі-сервер, тестовий сервер Nginx і тестовий сервер Apache, усі вони працюють на основі контейнерів Rocky. @@ -303,7 +309,7 @@ public (active) Для цього уроку вам знадобляться три контейнери: -Ми назвемо їх «проксі-сервер» (для контейнера, який спрямовуватиме веб-трафік до двох інших контейнерів), «nginx-сервер» і «apache-сервер». Так, я покажу вам, як змінити проксі на сервери на основі *nginx* і *apache*. +Ми назвемо їх «проксі-сервер» (для контейнера, який спрямовуватиме веб-трафік до двох інших контейнерів), «nginx-сервер» і «apache-сервер». Так, я покажу вам, як налаштувати зворотний проксі-сервер як для серверів на базі _nginx_, так і для _apache_. Ми почнемо з того, що з’ясуємо, на якому зображенні ми хочемо базувати наші контейнери. У цьому підручнику ми просто використовуємо Rocky Linux. Використання Alpine Linux, наприклад, може призвести до набагато менших контейнерів (якщо зберігання є проблемою), але це виходить за рамки цього конкретного документа. @@ -346,9 +352,11 @@ lxc image list images: | grep rockylinux !!! Note "Примітка" + ``` Нижче наведено швидкий спосіб створення всіх цих контейнерів. Ви можете зачекати, перш ніж створювати контейнер проксі-сервера. Є трюк, який я покажу вам нижче, який може заощадити ваш час. + ``` -Знайшовши потрібне зображення, скористайтеся командою `lxc launch`, як показано вище. Щоб створити контейнери, які нам потрібні для цього підручника, послідовно виконайте ці команди (змінюючи їх за потреби): +Щойно ви знайдете потрібне зображення, скористайтеся командою `lxc launch`, як показано вище. Щоб створити контейнери, які нам потрібні для цього підручника, послідовно виконайте ці команди (змінюючи їх за потреби): ```bash lxc launch images:rockylinux/8/amd64 proxy-server @@ -382,15 +390,15 @@ lxc list Отже, інший посібник, посилання на який наведено на початку цього, містить цілий посібник про те, як налаштувати LXC/LXD для роботи з Macvlan. Це особливо корисно, якщо ви використовуєте локальний сервер і хочете, щоб кожен контейнер мав IP-адресу, видиму в локальній мережі. -Коли ви працюєте на VPS, ви не часто маєте таку можливість. Насправді у вас може бути лише одна IP-адреса, з якою вам дозволено працювати. Конфігурація мережі за замовчуванням розроблена з урахуванням такого роду обмежень; відповідаючи на запитання `lxd init`, як я вказав вище, *має* подбати про все. +Коли ви працюєте на VPS, ви не часто маєте таку можливість. Насправді у вас може бути лише одна IP-адреса, з якою вам дозволено працювати. Конфігурація мережі за замовчуванням розроблена з урахуванням такого роду обмежень; відповіді на запитання `lxd init`, як я вказав вище, _мають_ вирішити все. По суті, LXD створює віртуальний мережевий пристрій, який називається мостом (зазвичай називається «lxdbr0»), і всі контейнери підключаються до цього мосту за замовчуванням. Через нього вони можуть підключатися до Інтернету через мережевий пристрій вашого хоста за умовчанням (Ethernet, Wi-Fi або пристрій віртуальної мережі, наданий вашим VPS). Дещо важливіше те, що всі контейнери можуть з’єднуватися один з одним. -Щоб забезпечити такий зв’язок між контейнерами, *кожен контейнер отримує внутрішнє доменне ім’я*. За замовчуванням це просто назва контейнера плюс «.lxd». Отже, контейнер «проксі-сервер» доступний для всіх інших контейнерів у «proxy-server.lxd». Але ось *справді* важлива річ, яку слід знати: за **за умовчанням домени «.lxd» доступні лише всередині самих контейнерів.** +Щоб забезпечити цей міжконтейнерний зв'язок, _кожен контейнер отримує внутрішнє доменне ім'я_. За замовчуванням це просто назва контейнера плюс «.lxd». Отже, контейнер «проксі-сервер» доступний для всіх інших контейнерів у «proxy-server.lxd». Але ось _дійсно_ важлива річ, яку слід знати: **за замовчуванням домени «.lxd» доступні лише всередині самих контейнерів.** -Якщо ви запустите `ping proxy-server.lxd` на головній ОС (або деінде), ви нічого не отримаєте. Однак ці внутрішні домени стануть у нагоді пізніше. +Якщо ви запустите `ping proxy-server.lxd` на хост-ОС (або деінде), ви нічого не отримаєте. Однак ці внутрішні домени стануть у нагоді пізніше. -Ви можете технічно змінити це та зробити внутрішні домени контейнера доступними на хості. Ймовірно, найкраще все одно помістити ваш зворотний проксі-сервер у контейнер, щоб ви могли легко зробити знімок і резервне копіювання. +Технічно ви можете це змінити та зробити внутрішні домени контейнера доступними на хості… але я ніколи цього насправді не розумів. Ймовірно, найкраще все одно помістити ваш зворотний проксі-сервер у контейнер, щоб ви могли легко зробити знімок і резервне копіювання. ### Керування вашими контейнерами @@ -420,13 +428,13 @@ lxc restart --all Ви можете керувати операційною системою всередині контейнера двома способами: запускати команди всередині них із головної ОС або відкривати оболонку. -Ось що я маю на увазі. Щоб виконати команду всередині контейнера, можливо, щоб встановити *Apache*, просто скористайтеся `lxc exec`, наприклад: +Ось що я маю на увазі. Щоб виконати команду всередині контейнера, можливо, для встановлення _Apache_, просто використовуйте `lxc exec`, ось так: ```bash lxc exec my-container dnf install httpd -y ``` -Це змусить *Apache* інсталюватися самостійно, і ви побачите результат команди на терміналі вашого хосту. +Це змусить _Apache_ інсталюватися самостійно, і ви побачите результат команди на терміналі вашого хосту. Щоб відкрити оболонку (де ви можете просто запускати всі команди, які хочете від імені адміністратора), скористайтеся цим: @@ -434,7 +442,7 @@ lxc exec my-container dnf install httpd -y lxc exec my-container bash ``` -Якщо ви, як я, цінуєте зручність, а не простір для зберігання, і встановили альтернативну оболонку, наприклад *fish*, у всіх своїх контейнерах, просто змініть команду так: +Якщо ви, як я, цінуєте зручність, а не простір для зберігання, і встановили альтернативну оболонку, наприклад _fish_, у всіх своїх контейнерах, просто змініть команду так: ```bash lxc exec my-container fish @@ -462,7 +470,7 @@ lxc start my-other-container #### Налаштування сховища & Обмеження ЦП -LXC/LXD зазвичай визначає, скільки місця для зберігання отримує контейнер, і загалом керує ресурсами, але ви можете контролювати це. Якщо ви турбуєтеся про те, щоб ваші контейнери були невеликими, ви можете скористатися командою `lxc config`, щоб зменшувати та розтягувати їх за потреби. +LXC/LXD зазвичай визначає, скільки місця для зберігання отримує контейнер, і загалом керує ресурсами, але ви можете контролювати це. Якщо ви турбуєтеся про те, щоб ваші контейнери були малими, ви можете скористатися командою `lxc config`, щоб стискати та розтягувати їх за потреби. Наступна команда встановить «м’який» ліміт у 2 ГБ для контейнера. М’яке обмеження насправді є скоріше «мінімальним обсягом пам’яті», і контейнер використовуватиме більше пам’яті, якщо воно доступне. Як завжди, змініть «my-container» на назву фактичного контейнера. @@ -518,7 +526,7 @@ lxc exec apache-server dnf update -y Потім стрибайте в кожен контейнер і починайте працювати. -Вам також знадобиться текстовий редактор для кожного контейнера. За замовчуванням Rocky Linux постачається з *vi*, але якщо ви хочете спростити своє життя, підійде *nano*. Ви можете встановити його в кожен контейнер перед тим, як його відкрити. +Вам також знадобиться текстовий редактор для кожного контейнера. За замовчуванням Rocky Linux постачається з _vi_, але якщо ви хочете спростити собі життя, _nano_ підійде. Ви можете встановити його в кожен контейнер перед тим, як його відкрити. ```bash lxc exec proxy-server dnf install nano -y @@ -526,7 +534,7 @@ lxc exec nginx-server dnf install nano -y lxc exec apache-server dnf install nano -y ``` -Надалі я використовуватиму *nano* в усіх командах, пов’язаних із текстовим редактором, але ви це робите. +Надалі я використовуватиму _nano_ в усіх командах, пов’язаних із текстовим редактором, але ви це робите. ### Сервер веб-сайту Apache @@ -538,17 +546,17 @@ lxc exec apache-server dnf install nano -y lxc exec apache-server bash ``` -Увійшовши в систему, просто встановіть *Apache* простим способом: +Увійшовши в систему, просто встановіть _Apache_ простим способом: ```bash dnf install httpd ``` -Тепер ви можете слідувати нашому [посібнику з налаштування веб-сервера Apache Multi-Site](../web/apache-sites-enabled.md) від цього моменту, але це насправді надмірно для наших цілей. Зазвичай ми не хочемо налаштовувати Apache для кількох веб-сайтів у такому контейнерному середовищі, як це. Зрештою, суть контейнерів полягає в тому, щоб розділити інтереси. +Тепер ви можете скористатися нашим [посібником з налаштування кількох сайтів веб-сервера Apache](../web/apache-sites-enabled.md), але для наших цілей це дещо зайве. Зазвичай ми не хочемо налаштовувати Apache для кількох веб-сайтів у такому контейнерному середовищі, як це. Зрештою, суть контейнерів полягає в тому, щоб розділити інтереси. Крім того, SSL-сертифікати надходять на проксі-сервер, тому ми збираємося зробити все просто. -Після встановлення *Apache* переконайтеся, що він запущений і може продовжувати роботу після перезавантаження: +Після встановлення _Apache_ переконайтеся, що він запущений і може продовжувати роботу після перезавантаження: ```bash systemctl enable --now httpd @@ -566,7 +574,7 @@ systemctl start httpd curl [container-ip-address] ``` -Пам’ятайте, що ви можете побачити всі IP-адреси контейнерів за допомогою `списку lxc`. І якщо ви встановите curl на всіх ваших контейнерах, ви *можете* просто запустити: +Пам’ятайте, що ви можете побачити всі IP-адреси контейнерів за допомогою `lxc list`. А якщо ви встановите curl на всі свої контейнери, ви _можете_ просто виконати: ```bash curl localhost @@ -593,19 +601,21 @@ RemoteIPHeader X-Real-IP RemoteIPTrustedProxy proxy-server.lxd ``` -За потреби не забудьте змінити `proxy-server.lxd` на те, що ви назвали фактичним контейнером проксі. Тепер **поки що не перезапускайте сервер Apache.** Цей файл конфігурації, який ми додали, може спричинити проблеми, *поки* ми не запустить проксі-сервер. +Не забудьте змінити `proxy-server.lxd` на назву вашого фактичного проксі-контейнера, якщо це необхідно. Тепер **поки що не перезапускайте сервер Apache**. Той файл конфігурації, який ми додали, може спричинити проблеми, _поки_ ми не запустимо проксі-сервер. Наразі вийдіть із оболонки та розпочнімо роботу на сервері Nginx. !!! Note "Примітка" + ``` Хоча ця техніка *працює* (ваші веб-програми та веб-сайти отримають справжні IP-адреси користувачів), власні журнали доступу Apache *не відображатимуть правильні IP-адреси.* Вони зазвичай відображатимуть IP-адресу контейнера, у якому знаходиться ваш зворотний проксі-сервер. Очевидно, це проблема з тим, як Apache веде журнал. Ви можете перевірити журнали доступу до проксі-сервера, якщо вам потрібно самостійно побачити IP-адреси, або перевірити журнали будь-якої веб-програми, яку ви встановлюєте. + ``` ### Сервер сайту Nginx -Знову ж таки, ми коротко. Якщо ви хочете використовувати останню (і рекомендовану) версію Nginx у виробництві, перегляньте наш [посібник із встановлення Nginx для початківців](../web/nginx-mainline.md). Це охоплює повний посібник зі встановлення та деякі найкращі методи налаштування вашого сервера. +Знову ж таки, ми коротко. Якщо ви хочете використовувати останню (і рекомендовану) версію Nginx у продакшені, ознайомтеся з нашим [посібником для початківців зі встановлення Nginx](../web/nginx-mainline.md). Це охоплює повний посібник зі встановлення та деякі найкращі методи налаштування вашого сервера. Спочатку увійдіть в оболонку контейнера: @@ -627,14 +637,16 @@ dnf enable --now nginx !!! Note "Примітка" + ```` Пам’ятаєте, я казав зачекати перед створенням проксі-контейнера? Ось чому: на цьому етапі ви можете заощадити час, залишивши контейнер «nginx-server» і скопіювавши його, щоб створити контейнер «proxy-server»: - + ```bash lxc copy nginx-server proxy-server ``` - - + + Обов’язково запустіть проксі-контейнер за допомогою lxc start proxy-server і додайте проксі-порти до контейнера, як описано нижче. + ```` Знову ж таки, ви можете переконатися, що контейнер працює на хості за допомогою: @@ -644,7 +656,7 @@ curl [your-container-ip] #### Отримання реальних IP-адрес користувача з проксі-сервера (знову) -Цього разу журнали *мають* працювати. Повинен. Для цього ми розміщуємо дуже схожий файл у `/etc/nginx/conf.d`: +Цього разу журнали _мають_ працювати. Повинен. Для цього ми розміщуємо дуже схожий файл у `/etc/nginx/conf.d`: ```bash nano /etc/nginx/conf.d/real-ip.conf @@ -657,14 +669,14 @@ real_ip_header X-Real-IP; set_real_ip_from proxy-server.lxd; ``` -Нарешті, **ще не перезапускайте сервер**. Знову ж таки, файл конфігурації може викликати проблеми, доки не буде налаштовано проксі-сервер. +Насамкінець, **поки що не перезапускайте сервер**. Знову ж таки, файл конфігурації може викликати проблеми, доки не буде налаштовано проксі-сервер. ### Зворотний проксі-сервер Пам’ятайте, як я сказав, що вам знадобляться два домени чи субдомени? Ось де вони вам потрібні. Субдомени, які я використовую для цього посібника: -* apache.server.test -* nginx.server.test +- apache.server.test +- nginx.server.test За потреби змініть їх у всіх файлах та інструкціях. @@ -681,7 +693,7 @@ curl nginx-server.lxd Якщо ці дві команди завантажують HTML сторінок привітання сервера за умовчанням у вашому терміналі, це означає, що все налаштовано правильно. -#### *Обов’язковий крок:* Налаштування контейнера «проксі-сервер» для прийому всього вхідного трафіку сервера +#### _Обов’язковий крок:_ Налаштування контейнера «проксі-сервер» для прийому всього вхідного трафіку сервера Знову ж таки, ви можете зробити це пізніше, коли ви фактично створите проксі-сервер, але ось інструкції, які вам знадобляться: @@ -700,11 +712,13 @@ lxc config device add proxy-server myproxy443 proxy listen=tcp:0.0.0.0:443 conne !!! Note "Примітка" + ``` Після налаштування цих пристроїв вам слід перезавантажити всі контейнери, щоб переконатися. + ``` Цей віртуальний пристрій в ідеалі має бути унікальним. Зазвичай краще не додавати пристрій «myport80» до іншого контейнера, який зараз працює; це потрібно буде назвати якось інакше. -*Подібним чином лише один контейнер може одночасно слухати будь-який конкретний порт ОС хоста.* +_Подібним чином лише один контейнер може одночасно слухати будь-який конкретний порт ОС хоста._ #### Спрямування трафіку на сервер Apache @@ -740,28 +754,30 @@ server { Давайте трохи розберемо це: -1. Розділ `upstream` точно визначає, куди зворотний проксі збирається надсилати весь свій трафік. Зокрема, він надсилає трафік до внутрішнього доменного імені контейнера "apache-server": `apache-server.lxd`. -2. Два рядки, які починаються з `listen`, повідомляють серверу прослуховувати трафік, який надходить на порт 80 за допомогою протоколу проксі. Перший через IPv4, а другий через IPv6. +1. Розділ `upstream` визначає, куди саме зворотний проксі-сервер надсилатиме весь свій трафік. Зокрема, він надсилає трафік на внутрішнє доменне ім'я контейнера "apache-server": `apache-server.lxd`. +2. Два рядки, що починаються з `listen`, вказують серверу прослуховувати трафік, що надходить на порт 80 за допомогою проксі-протоколу. Перший через IPv4, а другий через IPv6. 3. Функція `server_name` приймає весь трафік, який надходить спеціально до "apache.server.test", і направляє його через зворотний проксі. 4. Функція `proxy-pass` — це частина, яка фактично спрямовує весь трафік, отриманий змінною `server_name`, і надсилає його на сервер, визначений у `upstream` розділ. 5. Очевидно, що функція `proxy_redirect` може заважати зворотним проксі-серверам, тому ми переконалися, що її вимкнено. 6. Усі параметри `proxy-set-header` надсилають на веб-сервер таку інформацію, як IP-адреса користувача тощо. -!!! warning "Важливо" +!!! warning - Біт `proxy_protocol` у змінних `listen` є *необхідним* для роботи проксі-сервера. Ніколи не залишайте це поза увагою. + Біт `proxy_protocol` у змінних `listen` є _необхідним_ для роботи проксі-сервера. Ніколи не залишайте це поза увагою. -Для кожного файлу конфігурації LXD/веб-сайту вам потрібно буде відповідно змінити налаштування `upstream`, `server`, `server_name` та `proxy_pass`. Текст після "http://" у `proxy-pass` має збігатися з текстом, що йде після тексту `upstream`. +Для кожного файлу конфігурації LXD/вебсайту вам потрібно буде відповідно змінити налаштування `upstream`, `server`, `server_name` та `proxy_pass`. Текст після "http://" у `proxy-pass` має збігатися з текстом, що йде після тексту `upstream`. -Перезавантажте сервер за допомогою `systemctl restart nginx`, а потім укажіть у своєму браузері будь-який домен, який ви використовуєте, замість `apache.server.test`. Якщо ваша сторінка виглядає так, ви досягли успіху: +Перезавантажте сервер за допомогою `systemctl restart nginx`, потім вкажіть у браузері будь-який домен, який ви використовуєте, замість `apache.server.test`. Якщо ваша сторінка виглядає так, ви досягли успіху: ![Знімок екрана стандартної сторінки привітання Rocky Linux Apache](../images/lxd-web-server-03.png) !!! Note "Примітка" + ``` Ви можете називати конфігураційні файли як завгодно. Я використовую спрощені імена для навчальних посібників, але деякі системні адміністратори рекомендують імена на основі фактичного домену, але навпаки. Це організація в алфавітному порядку. Наприклад, "apache.server.test" отримає файл конфігурації з назвою "test.server.apache.conf". + ``` #### Спрямування трафіку на сервер Nginx @@ -867,7 +883,7 @@ listen [::]:443 ssl ipv6only=on; # managed by Certbot listen 443 ssl; # managed by Certbot ``` -Так, у них відсутній параметр `proxy_protocol`, і це погано. Додайте його. +Так, їм бракує налаштування `proxy_protocol`, і це погано. Додайте його. ```bash listen proxy_protocol [::]:443 ssl ipv6only=on; # managed by Certbot diff --git a/docs/guides/containers/podman-nextcloud.uk.md b/docs/guides/containers/podman-nextcloud.uk.md index 6d1049f147..cbc6c12ff4 100644 --- a/docs/guides/containers/podman-nextcloud.uk.md +++ b/docs/guides/containers/podman-nextcloud.uk.md @@ -13,7 +13,7 @@ tags: ## Вступ -У цьому документі пояснюються всі кроки, необхідні для створення та запуску примірника [Nextcloud](https://nextcloud.com) як контейнера Podman у Rocky Linux. Більше того, увесь цей посібник було протестовано на Raspberry Pi, тому він має бути сумісний із кожною архітектурою процесора, яку підтримує Rocky. +У цьому документі пояснюються всі необхідні кроки для створення та запуску екземпляра [Nextcloud](https://nextcloud.com) як контейнера Podman на Rocky Linux. Більше того, увесь цей посібник було протестовано на Raspberry Pi, тому він має бути сумісний із кожною архітектурою процесора, яку підтримує Rocky. Процедура розбита на кілька кроків, кожен з яких має власні сценарії оболонки для автоматизації: @@ -27,11 +27,13 @@ tags: !!! Note "Примітка для початківців:" + ``` Podman — це інструмент для керування контейнерами, зокрема контейнерами OCI (Open Containers Initiative). Його розроблено, щоб бути майже сумісним із Docker, оскільки більшість, якщо не всі, однакові команди працюватимуть для обох інструментів. Якщо «Docker» нічого не означає для вас або навіть якщо вам просто цікаво, ви можете прочитати більше про Podman і про те, як він працює на [власному веб-сайті Podman] (https://podman.io). `buildah` — це інструмент, який створює зображення контейнерів Podman на основі "DockerFiles". Цей посібник був розроблений як вправа, щоб допомогти людям ознайомитися з роботою контейнерів Podman загалом і зокрема на Rocky Linux. + ``` ## Передумови та припущення @@ -39,13 +41,13 @@ tags: - Знайомство з командним рядком, сценаріями bash та редагуванням конфігураційних файлів Linux. - Доступ SSH при роботі на віддаленій машині. -- Текстовий редактор на основі командного рядка на ваш вибір. Для цього посібника ми будемо використовувати `vi`. +- Текстовий редактор на основі командного рядка на ваш вибір. У цьому посібнику ми використовуватимемо `vi`. - Підключена до Інтернету машина Rocky Linux (Raspberry Pi чудово працюватиме). - Багато з цих команд потрібно запускати від імені користувача root, тому на машині вам знадобиться користувач із підтримкою root або sudo. - Знайомство з веб-серверами та MariaDB точно допоможе. -- Знайомство з контейнерами та, можливо, Docker було б *безсумнівним* плюсом, але це не обов’язково. +- Знайомство з контейнерами та, можливо, Docker було б _безсумнівним_ плюсом, але це не обов’язково. -## Крок 01. Встановіть `podman` і `buildah` +## Крок 01: Встановлення `podman` та `buildah` По-перше, переконайтеся, що ваша система оновлена: @@ -267,7 +269,7 @@ vi db-init.sh А ось код, який вам знадобиться: -!!! warning "Важливо" +!!! warning Для цілей цього посібника наступний сценарій видалить усі томи Podman. Якщо у вас є інші програми, що працюють із власними томами, змініть/закоментуйте рядок «podman volume rm --all»; @@ -358,7 +360,7 @@ cd /root/nextcloud vi Dockerfile ``` -!!! note "Примітка" +!!! note Цей наступний біт передбачає архітектуру ARM (для Raspberry Pi), тому, якщо ви використовуєте іншу архітектуру, не забудьте змінити це. @@ -384,7 +386,7 @@ buildah bud --no-cache -t nextcloud . ; buildah images -a ``` -Тепер ми збираємося створити купу локальних папок на хост-сервері (*не* в жодному контейнері Podman), щоб ми могли перебудувати наші контейнери та бази даних, не боячись втратити всі наші файли: +Тепер ми збираємося створити купу локальних папок на хост-сервері (_не_ в жодному контейнері Podman), щоб ми могли перебудувати наші контейнери та бази даних, не боячись втратити всі наші файли: ```bash mkdir -p /usr/local/nc/nextcloud /usr/local/nc/apps /usr/local/nc/config /usr/local/nc/data @@ -396,7 +398,7 @@ mkdir -p /usr/local/nc/nextcloud /usr/local/nc/apps /usr/local/nc/config /usr/lo vi run.sh ``` -І ось увесь необхідний для цього код. Переконайтеся, що ви змінили IP-адресу `MYSQL_HOST` на контейнер докерів, у якому запущено ваш екземпляр MariaDB. +І ось увесь необхідний для цього код. Переконайтеся, що ви змінили IP-адресу для `MYSQL_HOST` на IP-адресу контейнера Docker, на якому запущено ваш екземпляр MariaDB. ```bash #!/bin/bash @@ -428,7 +430,7 @@ chmod +x *.sh ./build.sh ``` -Щоб переконатися, що всі ваші зображення створено правильно, запустіть `podman images`. Ви повинні побачити список, який виглядає так: +Щоб переконатися, що всі ваші образи були зібрані правильно, запустіть команду `podman images`. Ви повинні побачити список, який виглядає так: ```bash REPOSITORY TAG IMAGE ID CREATED SIZE @@ -452,7 +454,7 @@ CONTAINER ID IMAGE COMMAND CREATED 32534e5a5890 docker.io/arm64v8/nextcloud:latest apache2-foregroun... 12 seconds ago Up 12 seconds ago nextcloud ``` -Звідти ви зможете вказати свій браузер на IP-адресу вашого сервера. Якщо ви дотримуєтесь і маєте ту саму IP-адресу, що й у нашому прикладі, ви можете замінити її тут (наприклад, ) і побачити, як Nextcloud працює. +Звідти ви зможете вказати свій браузер на IP-адресу вашого сервера. Якщо ви дотримуєтеся інструкцій і маєте таку ж IP-адресу, як у нашому прикладі, ви можете підставляти її сюди (наприклад, ) і спостерігати, як Nextcloud працює. ## Висновок diff --git a/docs/guides/containers/podman_guide.uk.md b/docs/guides/containers/podman_guide.uk.md index b5813bea7f..fd96998abd 100644 --- a/docs/guides/containers/podman_guide.uk.md +++ b/docs/guides/containers/podman_guide.uk.md @@ -10,11 +10,9 @@ tags: ## Вступ -!!! note "Примітка" +!!! note -``` -Цей документ представляє розширений вміст із [батьківського документа](../../gemstones/containers/podman.md). Якщо вам потрібна коротка інструкція, цього батьківського документа може бути достатньо. -``` + Цей документ представляє розширений вміст із [батьківського документа](../../gemstones/containers/podman.md). Якщо вам потрібна коротка інструкція, цього батьківського документа може бути достатньо. [Podman](https://podman.io/) (Pod Manager) — це інструмент керування контейнерами та зображеннями, сумісний з [OCI](https://opencontainers.org/) (Ініціатива відкритого контейнера). @@ -85,11 +83,9 @@ Available Commands: | `unpause` | Відновлює процеси в одному або кількох контейнерах | | `volume` | Керує обсягами | -!!! note "Примітка" +!!! note -``` -Podman може запускати майже будь-яку команду Docker завдяки подібному інтерфейсу CLI. -``` + Podman може запускати майже будь-яку команду Docker завдяки подібному інтерфейсу CLI. Якщо вам потрібно використовувати файл створення, не забудьте встановити пакет `podman-compose`: @@ -113,13 +109,11 @@ podman run -d -p 8080:80 nextcloud ![Nextcloud in container](../../gemstones/images/podman_nextcloud.png) -!!! tip "Підказка" +!!! tip -``` -Щоб стежити за виведенням журналу останнього створеного контейнера, використовуйте `podman logs -lf`. `-l` вказує на використання останнього створеного контейнера, тоді як `-f` вказує на відстеження журналів у міру їх створення. Натисніть Ctrl+C, щоб зупинити виведення журналу. -``` + Щоб стежити за виведенням журналу останнього створеного контейнера, використовуйте `podman logs -lf`. `-l` вказує на використання останнього створеного контейнера, тоді як `-f` вказує на відстеження журналів у міру їх створення. Натисніть Ctrl+C, щоб зупинити виведення журналу. -## Запуск контейнерів як служб systemd +## Запуск контейнерів як служб `systemd` ### Використання `quadlet` @@ -158,11 +152,9 @@ systemctl --user daemon-reload systemctl --user start nextcloud.service ``` -!!! note "Примітка" +!!! note -``` -Якщо ви створили файл в одному з каталогів для кореневих служб, опустіть позначку `--user`. -``` + Якщо ви створили файл в одному з каталогів для кореневих служб, опустіть позначку `--user`. Щоб автоматично запускати контейнер після запуску системи або входу користувача, ви можете додати ще один розділ до свого файлу `nextcloud.container`: @@ -179,11 +171,9 @@ WantedBy=default.target Podman додатково надає підкоманду `generate systemd`. Використовуйте цю підкоманду для створення службових файлів `systemd`. -!!! warning "Важливо" +!!! warning -``` -`generate systemd` не підтримується і не матиме подальших функцій. Рекомендовано використовувати Quadlet. -``` + `generate systemd` не підтримується і не матиме подальших функцій. Рекомендовано використовувати Quadlet. Давайте тепер зробимо це за допомогою Nextcloud. Запустіть: @@ -335,11 +325,9 @@ Welcome to Rocky podman stop rockywebserver && podman rm rockywebserver ``` -!!! tip "Підказка" +!!! tip -``` -Ви можете додати перемикач `--rm`, щоб автоматично видалити контейнер після його зупинки. -``` + Ви можете додати перемикач `--rm`, щоб автоматично видалити контейнер після його зупинки. Якщо ви перезапустите процес збирання, `podman` використовуватиме кеш на кожному кроці збирання: @@ -388,24 +376,24 @@ Pods — це спосіб групувати контейнери разом. У Podman ви керуєте контейнерами за допомогою підкоманди `podman pod`, подібної до багатьох команд Podman: -| Команда | Опис | -| ------- | ---------------------------------------------------------------------------------------------------------------------- | -| clone | Створює копію існуючого модуля. | -| create | Створює новий пакет. | -| exists | Перевіряє наявність пакета в локальному сховищі. | -| inspect | Відображає інформацію, що описує контейнер. | -| kill | Вбиває основний процес кожного контейнера в одному або кількох контейнерах. | -| logs | Відображає журнали для модуля з одним або кількома контейнерами. | -| pause | Призупиняє один або кілька модулів. | -| prune | Видаляє всі зупинені стручки та їхні контейнери. | -| ps | Роздруковує інформацію про pods. | -| restart | Перезапускає один або кілька модулів. | -| rm | Видаляє одну або кілька зупинених коробок і контейнерів. | -| start | Запускає один або кілька контейнерів. | -| stats | Відображає прямий потік статистики використання ресурсів для контейнерів в одному або кількох пакетах. | -| stop | Зупиняє один або кілька контейнерів. | -| top | Відображає запущені процеси контейнерів у модулі. | -| unpause | Відновлює паузу одного або кількох модулів. | +| Команда | Опис | +| --------- | ---------------------------------------------------------------------------------------------------------------------- | +| clone | Створює копію існуючого модуля. | +| створення | Створює новий пакет. | +| exists | Перевіряє наявність пакета в локальному сховищі. | +| inspect | Відображає інформацію, що описує контейнер. | +| kill | Вбиває основний процес кожного контейнера в одному або кількох контейнерах. | +| logs | Відображає журнали для модуля з одним або кількома контейнерами. | +| pause | Призупиняє один або кілька модулів. | +| prune | Видаляє всі зупинені стручки та їхні контейнери. | +| ps | Роздруковує інформацію про pods. | +| restart | Перезапускає один або кілька модулів. | +| rm | Видаляє одну або кілька зупинених коробок і контейнерів. | +| start | Запускає один або кілька контейнерів. | +| stats | Відображає прямий потік статистики використання ресурсів для контейнерів в одному або кількох пакетах. | +| stop | Зупиняє один або кілька контейнерів. | +| top | Відображає запущені процеси контейнерів у модулі. | +| unpause | Відновлює паузу одного або кількох модулів. | Контейнери, згруповані в pod, можуть отримувати доступ один до одного за допомогою localhost. Це корисно, наприклад, під час налаштування Nextcloud із спеціальною базою даних, наприклад Postgres. Nextcloud може отримати доступ до бази даних, але база даних не обов’язково має бути доступна поза контейнерами. diff --git a/docs/guides/contribute/beginners.uk.md b/docs/guides/contribute/beginners.uk.md index 4ef6018190..c8324fe3fa 100644 --- a/docs/guides/contribute/beginners.uk.md +++ b/docs/guides/contribute/beginners.uk.md @@ -11,11 +11,11 @@ tags: # Посібник для новачків -*Кожен з чогось починає. Якщо ви вперше робите свій внесок у документацію з відкритим кодом на GitHub, вітаємо з цим кроком. Нам не терпиться побачити вашу думку!* Для найкращих результатів ознайомтеся з [нашим посібником зі стилю](style_guide.md), який містить посилання на кілька інших документів, що допоможуть вам ознайомитися з найкращими практиками документування. +_Усі з чогось починають. Якщо ви вперше робите свій внесок у документацію з відкритим кодом на GitHub, вітаємо з цим кроком. Нам не терпиться побачити вашу думку!_ Для найкращих результатів ознайомтеся з [нашим посібником зі стилю](style_guide.md), який містить посилання на кілька інших документів, що допоможуть вам ознайомитися з найкращими практиками документування. ## Git і GitHub -Усі наші інструкції для учасників передбачають наявність облікового запису GitHub. Якщо ви ніколи цього не робили, зараз саме час. Якщо у вас є 12 хвилин, дізнайтеся основи GitHub за допомогою [Посібника Git і GitHub для початківців](https://www.udacity.com/blog/2015/06/a-beginners-git-github-tutorial.html) від Udemy. +Усі наші інструкції для учасників передбачають наявність облікового запису GitHub. Якщо ви ніколи цього не робили, зараз саме час. Якщо у вас є 12 хвилин, вивчіть основи GitHub за допомогою [Посібника для початківців з Git та GitHub](https://www.udacity.com/blog/2015/06/a-beginners-git-github-tutorial.html) від Udemy. Можливо, ви не починаєте зі створення та керування репозиторіями для Rocky Linux, але цей [посібник Hello World](https://docs.github.com/en/get-started/quickstart/hello-world) проведе вас через створення облікового запису GitHub, вивчення термінології та розуміння того, як працюють репозиторії. Зосередьтеся на вивченні того, як створювати та фіксувати оновлення в існуючих документах, а також на тому, як створити Pull Request. @@ -35,7 +35,7 @@ Markdown — це проста мова, яка дозволяє включат - [Zettlr](https://www.zettlr.com/) – безкоштовний, кросплатформний із відкритим кодом - [MarkText](https://github.com/marktext/marktext) – безкоштовний, міжплатформний і відкритий код - [Remarkable](https://remarkableapp.github.io/) – Linux і Windows, відкритий код -- [NvChad](https://nvchad.com/) для користувача vi/vim і клієнта nvim. Доступно багато плагінів для вдосконалення редактора для уцінки. Перегляньте [цей документ](https://docs.rockylinux.org/books/nvchad/), щоб отримати чудові інструкції зі встановлення. +- [NvChad](https://nvchad.com/) для користувача vi/vim та клієнта nvim. Доступно багато плагінів для вдосконалення редактора для уцінки. Дивіться [цей документ](https://docs.rockylinux.org/books/nvchad/) для отримання гарного набору інструкцій з встановлення. - [VS Code](https://code.visualstudio.com/) – частково відкритий код від Microsoft. VS Code — це легкий і потужний редактор, доступний для Windows, Linux і MacOS. Щоб зробити свій внесок у цей проект документів, ви повинні отримати такі розширення: Git Graph, HTML Preview, HTML Snippets, Markdown All in One, Markdown Preview Enhanced, Markdown Preview Mermaid Support та інші, які вам сподобаються. ## Створіть локальне сховище @@ -52,48 +52,48 @@ Markdown — це проста мова, яка дозволяє включат ## Надішліть оновлення -*Додайте пропущене слово, виправте помилку або поясніть заплутаний фрагмент тексту.* +_Додайте пропущене слово, виправте помилку або поясніть заплутаний фрагмент тексту._ 1. Почніть зі сторінки, яку потрібно оновити. - Натисніть на олівець «Редагувати» у верхньому правому куті документа, який потрібно оновити. Ви перейдете до оригінального документа на GitHub. + Натисніть на олівець «Редагувати» у верхньому правому куті документа, який потрібно оновити. Ви перейдете до оригінального документа на GitHub. - Під час першого внеску в репозиторій RL вам буде запропоновано зелену кнопку «**розщепити** це **репозиторій** і запропонувати зміни». Це створює дублікат репозиторію RL, де ви вносите запропоновані зміни. Просто натисніть зелену кнопку та продовжуйте. + Під час першого внеску до репозиторію Rocky Linux (RL) ви побачите запит із зеленою кнопкою «**Створити розгалуження** цього репозиторію та запропонувати зміни». Це створює дублікат репозиторію RL, де ви вносите запропоновані зміни. Просто натисніть зелену кнопку та продовжуйте. 2. Внесіть свої зміни - Дотримуйтеся форматування Markdown. Можливо, пропущене слово або, наприклад, потрібно виправити посилання в рядку 21. Внесіть необхідні зміни. + Дотримуйтеся форматування Markdown. Можливо, пропущене слово або, наприклад, потрібно виправити посилання в рядку 21. Внесіть необхідні зміни. 3. Запропонуйте зміни - Унизу сторінки напишіть однорядковий опис у заголовку блоку під назвою «**Запропонувати зміни»**. Це корисно, але не обов’язково посилатися на ім’я файлу, указане у верхній частині документа. + Внизу сторінки напишіть однорядковий опис у заголовку блоку під назвою «**Запропонувати зміни**». Це корисно, але не обов’язково посилатися на ім’я файлу, указане у верхній частині документа. - Отже, якщо ви оновили посилання в рядку 21 тексту розмітки, ви б сказали щось на зразок «Оновіть README.md правильними посиланнями». + Отже, якщо ви оновили посилання в рядку 21 тексту розмітки, ви б сказали щось на зразок «Оновіть README.md правильними посиланнями». - **Примітка: сформулюйте свою дію в теперішньому часі.** + **Примітка: сформулюйте свою дію в теперішньому часі.** - Потім натисніть «Запропонувати зміни», що **закріпить** ваші зміни до повного документа у вашому розгалуженому сховищі. + Потім натисніть «Запропонувати зміни», що **закріпить** ваші зміни до повного документа у вашому розгалуженому сховищі. 4. Перегляньте зміни - Тепер ви можете переглянути, що ви зробили, рядок за рядком. Ви щось пропустили? Створіть резервну копію попередньої сторінки та знову виправте її (вам доведеться почати спочатку), а потім знову натисніть «Запропонувати зміни». + Тепер ви можете переглянути, що ви зробили, рядок за рядком. Ви щось пропустили? Створіть резервну копію попередньої сторінки та знову виправте її (вам доведеться почати спочатку), а потім знову натисніть «Запропонувати зміни». - Коли документ буде таким, як ви хочете, натисніть зелену кнопку з написом «Створити запит на вилучення». Це дає ще один шанс ще раз перевірити ваші зміни та підтвердити, що документ готовий. + Коли документ буде таким, як ви хочете, натисніть зелену кнопку з написом «Створити запит на вилучення». Це дає ще один шанс ще раз перевірити ваші зміни та підтвердити, що документ готовий. 5. Створіть Pull Request - Усю вашу роботу досі виконували у вашому власному сховищі, без можливості зламати основне сховище RL. Потім ви надсилаєте його групі документації, щоб об’єднати вашу версію в основну версію документа. + Усю вашу роботу досі виконували у вашому власному сховищі, без можливості зламати основне сховище RL. Потім ви надсилаєте його групі документації, щоб об’єднати вашу версію в основну версію документа. - Натисніть велику зелену кнопку з написом Create Pull Request. Хороші новини, ви все ще нічого не зламали, тому що тепер це відправлено на перевірку групі документації RL. + Натисніть велику зелену кнопку з написом Create Pull Request. Хороші новини, ви все ще нічого не зламали, тому що тепер це відправлено на перевірку групі документації RL. 6. Зачекайте - Коли команда RL отримає ваш запит, вона відповість одним із трьох способів. + Коли команда RL отримає ваш запит, вона відповість одним із трьох способів. - - Прийме і об'єднає ваш PR - - Прокоментує відгук і попросить внести зміни - - Відмовить вашому PR з поясненням + - Прийме і об'єднає ваш PR + - Прокоментує відгук і попросить внести зміни + - Відмовить вашому PR з поясненням - Остання відповідь малоймовірна. Ми дійсно хочемо включити вашу точку зору тут! Якщо вам доведеться внести зміни, ви раптом зрозумієте, навіщо вам локальне сховище. Команда може [пояснити вам](https://chat.rockylinux.org/rocky-linux/channels/documentation), що робити далі. Хороша новина: це все ще можна виправити. Якщо вам потрібно додати або змінити ваш запит на зміщення (pull request), член команди додасть його до розділу коментарів. + Остання відповідь малоймовірна. Ми дійсно хочемо включити вашу точку зору тут! Якщо вам доведеться внести зміни, ви раптом зрозумієте, навіщо вам локальне сховище. Команда може [пояснити вам](https://chat.rockylinux.org/rocky-linux/channels/documentation), що робити далі. Хороша новина: це все ще можна виправити. Якщо вам потрібно додати або змінити ваш запит на зміщення (pull request), член команди додасть його до розділу коментарів. - В іншому випадку ваш запит буде прийнято та об’єднано. Ласкаво просимо до команди, тепер ви офіційно учасник! Подивіться, чи за кілька днів ваше ім’я з’явиться у списку всіх співавторів унизу посібника для співавторів. + В іншому випадку ваш запит буде прийнято та об’єднано. Ласкаво просимо до команди, тепер ви офіційно учасник! Подивіться, чи за кілька днів ваше ім’я з’явиться у списку всіх співавторів унизу посібника для співавторів. diff --git a/docs/guides/contribute/createnew.uk.md b/docs/guides/contribute/createnew.uk.md index 57d4e47f5b..d708f90c05 100644 --- a/docs/guides/contribute/createnew.uk.md +++ b/docs/guides/contribute/createnew.uk.md @@ -9,7 +9,7 @@ tags: # Як створити новий документ у GitHub -*Коли ви будете готові подати оригінальну письмову документацію на затвердження, виконайте наступні кроки:* +_Коли ви будете готові подати оригінальну письмову документацію на затвердження, виконайте наступні кроки:_ ## З графічним інтерфейсом GitHub @@ -23,11 +23,11 @@ tags: 6. Це дозволить вам перетягувати файли сюди або переглядати їх на комп’ютері. Використовуйте спосіб, який вам більше подобається. 7. Після завантаження файлу наступне, що вам потрібно зробити, це створити Pull Request. Цей запит повідомляє адміністраторам верхнього рівня, що у вас є новий файл (або файли), які ви хочете об’єднати з основним. 8. Натисніть `Pull Request` у верхньому лівому куті екрана. -9. Напишіть коротке повідомлення в розділі «Write», щоб повідомити адміністраторам, що ви зробили. (Новий документ, редакція, запропонована зміна тощо), а потім надішліть свої зміни. +9. Напишіть коротке повідомлення в розділі «Write», щоб повідомити адміністраторам, що ви зробили. (Новий документ, редакція, запропонована зміна тощо) потім надішліть свої зміни. ## З командного рядка Git -Якщо ви віддаєте перевагу запуску Git локально на своєму комп’ютері, ви можете клонувати репозиторій [Rocky Linux Documentation](https://github.com/rocky-linux/documentation), внести зміни, а потім зафіксувати зміни. Щоб спростити все, виконайте кроки 1-3, використовуючи підхід **За допомогою графічного інтерфейсу GitHub** вище, а потім: +Якщо ви бажаєте запускати Git локально на своєму комп’ютері, ви можете клонувати репозиторій [Rocky Linux Documentation](https://github.com/rocky-linux/documentation), внести зміни, а потім закомітувати зміни. Щоб спростити завдання, виконайте кроки 1-3, використовуючи підхід **За допомогою графічного інтерфейсу GitHub**, описаний вище, а потім: 1. Клонуйте репозиторій Git: @@ -35,19 +35,22 @@ tags: git clone https://github.com/your_fork_name/documentation.git ``` -2. Тепер на вашій машині додайте файли до каталогу. Приклад: +2. Тепер на вашій машині додайте файли до каталогу. + Приклад: ```bash mv /home/myname/help.md /home/myname/documentation/ ``` -3. Далі запустіть Git add для цього імені файлу. Приклад: +3. Далі запустіть Git add для цього імені файлу. + Приклад: ```text git add help.md ``` -4. Тепер запустіть git commit для внесених вами змін. Приклад: +4. Тепер запустіть git commit для внесених вами змін. + Приклад: ```text git commit -m "Added the help.md file" diff --git a/docs/guides/contribute/localdocs/index.uk.md b/docs/guides/contribute/localdocs/index.uk.md index e0527fbac7..f81add841c 100644 --- a/docs/guides/contribute/localdocs/index.uk.md +++ b/docs/guides/contribute/localdocs/index.uk.md @@ -20,6 +20,4 @@ tags: !!! info "Увага" -``` -Для жодного з пунктів цієї категорії («Локальна документація») не потрібно писати документи та подавати їх на затвердження. Вони існують для тих, хто хоче дотримуватися філософії [документи як код](https://www.writethedocs.org/guide/docs-as-code/), яка включає, як мінімум, локальну копію документації. -``` + Для жодного з пунктів цієї категорії («Локальна документація») не потрібно писати документи та подавати їх на затвердження. Вони існують для тих, хто хоче дотримуватися філософії [документи як код](https://www.writethedocs.org/guide/docs-as-code/), яка включає, як мінімум, локальну копію документації. diff --git a/docs/guides/contribute/localdocs/local_docs.uk.md b/docs/guides/contribute/localdocs/local_docs.uk.md index 5dd73c40ca..c45fe38304 100644 --- a/docs/guides/contribute/localdocs/local_docs.uk.md +++ b/docs/guides/contribute/localdocs/local_docs.uk.md @@ -10,7 +10,7 @@ tags: # Вступ -Ви можете створити систему документації локально без Docker або LXD, якщо хочете. Однак якщо ви вирішите використовувати цю процедуру, майте на увазі, що якщо ви багато кодуєте на Python або використовуєте Python локально, найбезпечніше створити віртуальне середовище Python, [описане тут](https://docs.python.org/3/library/venv.html). Це захищає всі ваші процеси Python один від одного, що рекомендовано. Якщо ви вирішите використовувати цю процедуру без віртуального середовища Python, пам’ятайте, що ви ризикуєте. +Ви можете створити систему документації локально без Docker або LXD, якщо хочете. Однак, якщо ви вирішите скористатися цією процедурою, майте на увазі, що якщо ви багато кодуєте на Python або використовуєте Python локально, найбезпечніше створити віртуальне середовище Python [описано тут](https://docs.python.org/3/library/venv.html). Це захищає всі ваші процеси Python один від одного, що рекомендовано. Якщо ви вирішите використовувати цю процедуру без віртуального середовища Python, пам’ятайте, що ви ризикуєте. ## Процедура diff --git a/docs/guides/contribute/localdocs/mkdocs_lsyncd.uk.md b/docs/guides/contribute/localdocs/mkdocs_lsyncd.uk.md index 25d2585175..febe1fe13c 100644 --- a/docs/guides/contribute/localdocs/mkdocs_lsyncd.uk.md +++ b/docs/guides/contribute/localdocs/mkdocs_lsyncd.uk.md @@ -15,7 +15,7 @@ tags: Процедури тут працюватимуть як з Incus, так і з LXD. -Є кілька способів запустити копію `mkdocs`, щоб точно побачити, як виглядатиме ваш документ Rocky Linux після об’єднання в живу систему. Цей документ стосується використання контейнера LXD на вашій локальній робочій станції для відокремлення коду Python у `mkdocs` від інших проектів, над якими ви можете працювати. +Існує кілька способів запустити копію `mkdocs`, щоб побачити, як саме виглядатиме ваш документ Rocky Linux після об'єднання в робочій системі. У цьому конкретному документі розглядається використання LXD-контейнера на вашій локальній робочій станції для відокремлення коду Python у `mkdocs` від інших проектів, над якими ви, можливо, працюєте. Рекомендується зберігати проекти окремо, щоб уникнути проблем із кодом робочої станції. @@ -26,7 +26,7 @@ tags: - Знайомство та комфорт роботи з командним рядком - Комфортно користуватися інструментами для редагування, SSH і синхронізації або готовий слідкувати за цим і вчитися - Довідка про LXD – тут є довгий документ про [створення та використання LXD на сервері](../../../books/lxd_server/00-toc.md), але ви будете використовувати лише базову інсталяцію на нашій робочій станції Linux -- Використання `lsyncd` для дзеркального відображення файлів. Перегляньте [документацію про це тут](../../backup/mirroring_lsyncd.md) +- Використання `lsyncd` для дзеркалювання файлів. Див. [документацію з цього питання тут](../../backup/mirroring_lsyncd.md) - Вам знадобляться відкриті ключі, згенеровані для вашого користувача та користувача «root» на локальній робочій станції за допомогою [цього документа](../../security/ssh_public_private_keys.md) - Наш інтерфейс мосту працює на 10.56.233.1, а наш контейнер працює на 10.56.233.189 у наших прикладах. Однак ваші IP-адреси для моста та контейнера будуть різними. - "youruser" у цьому документі представляє ваш ідентифікатор користувача @@ -44,7 +44,7 @@ tags: lxc launch images:rockylinux/8 mkdocs ``` -Контейнер повинен бути проксі. За замовчуванням, коли `mkdocs serve` запускається, він працює на 127.0.0.1:8000. Це добре, коли він знаходиться на вашій локальній робочій станції без контейнера. Однак, якщо він знаходиться в **контейнері** LXD на вашій локальній робочій станції, вам потрібно налаштувати контейнер із проксі-портом. Зробіть це за допомогою: +Контейнер повинен бути проксі. За замовчуванням, коли запускається `mkdocs serve`, він працює на 127.0.0.1:8000. Це добре, коли він знаходиться на вашій локальній робочій станції без контейнера. Однак, коли він знаходиться в **контейнери** LXD на вашій локальній робочій станції, вам потрібно налаштувати контейнер із проксі-портом. Зробіть це за допомогою: ```bash lxc config device add mkdocs mkdocsport proxy listen=tcp:0.0.0.0:8000 connect=tcp:127.0.0.1:8000 @@ -54,7 +54,9 @@ lxc config device add mkdocs mkdocsport proxy listen=tcp:0.0.0.0:8000 connect=tc !!! Note "Примітка" + ``` Якщо ви запускаєте екземпляр lxd на іншій машині у вашій мережі, не забудьте переконатися, що порт 8000 відкритий у брандмауері. + ``` ### Встановлення пакетів @@ -67,20 +69,15 @@ lxc exec mkdocs bash !!! warning "Зміни у requirements.txt для 8.x" Поточний `requirements.txt` потребуватиме новішої версії Python, ніж та, яка встановлена за замовчуванням у Rocky Linux 8.5 або 8.6. Щоб мати можливість інсталювати всі інші залежності, виконайте такі дії: - - ``` - sudo dnf module enable python38 - sudo dnf install python38 - ``` - - + + ` sudo dnf module enable python38 sudo dnf install python38 ` + + Якщо ви використовуєте Rocky Linux 8.x, використовуйте наступне для встановлення пакета: - - ``` - dnf install git openssh-server rsync - ``` - - + + ` dnf install git openssh-server rsync ` + + **НЕ** встановлюйте `python3-pip` Для Rocky Linux 9.x вам знадобиться кілька пакетів (дивіться «Зміни в requirements.txt для 8.x» для встановлення пакета 8.x!): @@ -97,7 +94,7 @@ systemctl enable --now sshd ### Користувачі контейнерів -Вам потрібно встановити пароль для нашого користувача root, а потім додати нашого користувача (користувача, якого ви використовуєте на своїй локальній машині) до списку sudoers. На даний момент ви є «root» користувачем. Щоб змінити пароль, введіть: +Вам потрібно встановити пароль для нашого користувача root, а потім додати нашого користувача (користувача, якого ви використовуєте на своїй локальній машині) до списку sudoers. На даний момент ви є "root" користувачем. Щоб змінити пароль, введіть: ```text passwd @@ -122,13 +119,13 @@ usermod -aG wheel youruser ## SSH для root і вашого користувача -У цій процедурі root-користувач (як мінімум) повинен мати можливість входити в контейнер через SSH без введення пароля; це через процес `lsyncd`, який ви запроваджуватимете. Тут припускається, що ви можете використовувати sudo для користувача root на вашій локальній робочій станції: +У цій процедурі користувач root (як мінімум) повинен мати можливість увійти до контейнера через SSH без введення пароля; це пов'язано з процесом `lsyncd`, який ви будете реалізовувати. Тут припускається, що ви можете використовувати sudo для користувача root на вашій локальній робочій станції: ```bash sudo -s ``` -Також припускається, що користувач root має ключ `id_rsa.pub` у каталозі `./ssh`. Якщо ні, створіть його за допомогою [цієї процедури](../../security/ssh_public_private_keys.md): +Також припускається, що користувач root має ключ `id_rsa.pub` у каталозі `./ssh`. Якщо ні, згенеруйте його за допомогою [цієї процедури](../../security/ssh_public_private_keys.md): ```bash ls -al .ssh/ @@ -145,7 +142,7 @@ drwx------ 14 root root 4096 Feb 25 08:10 .. ssh-copy-id root@10.56.233.189 ``` -Однак для нашого користувача вам потрібен увесь каталог `.ssh/`, скопійований у наш контейнер. Ви збережете все те саме для цього користувача, щоб наш доступ до GitHub через SSH був однаковим. +Однак для нашого користувача вам потрібно скопіювати весь каталог `.ssh/` у наш контейнер. Ви збережете все те саме для цього користувача, щоб наш доступ до GitHub через SSH був однаковим. Щоб скопіювати все до нашого контейнера, вам просто потрібно зробити це як ваш користувач, **а не** sudo: @@ -159,7 +156,7 @@ scp -r .ssh/ youruser@10.56.233.189:/home/youruser/ ssh -l youruser 10.56.233.189 ``` -Вам потрібно зробити речі ідентичними. Ви робите це за допомогою `ssh-add`. Для цього переконайтеся, що у вас є `ssh-agent`: +Вам потрібно зробити речі ідентичними. Ви робите це за допомогою `ssh-add`. Для цього вам потрібно переконатися, що у вас доступний `ssh-agent`: ```bash eval "$(ssh-agent)" @@ -168,9 +165,9 @@ ssh-add ## Клонування сховищ -Вам потрібно клонувати два репозиторії, але не потрібно додавати віддалені `git`. У сховищі документації тут відображатиметься лише поточна документація (віддзеркалена з вашої робочої станції) і документи. +Вам потрібно клонувати два репозиторії, але не потрібно додавати жодних віддалених `git`. У сховищі документації тут відображатиметься лише поточна документація (віддзеркалена з вашої робочої станції) і документи. -Репозиторій rockylinux.org призначений для запуску `mkdocs serve` і використовуватиме дзеркало як джерело. Виконайте всі ці кроки від імені користувача без права root. Якщо ви не можете клонувати репозиторії як свій ідентифікатор користувача, то **Є** проблема з вашою ідентичністю, що стосується `git`, і ви потрібно переглянути кілька останніх кроків для повторного створення вашого ключового середовища (вище). +Репозиторій rockylinux.org призначений для запуску `mkdocs serve` та використовуватиме дзеркало як джерело. Виконайте всі ці кроки від імені користувача без права root. Якщо ви не можете клонувати репозиторії під своїм ідентифікатором користувача, тоді **Є** проблема з вашою ідентифікацією стосовно `git`, і вам потрібно буде переглянути останні кілька кроків для повторного створення вашого ключового середовища (вище). Спочатку клонуйте документацію: @@ -188,7 +185,7 @@ git clone git@github.com:rocky-linux/docs.rockylinux.org.git ## Налаштування `mkdocs` -Встановлення необхідних плагінів виконується за допомогою `pip3` і файлу «requirements.txt» у каталозі docs.rockylinux.org. Хоча цей процес буде суперечити вам щодо використання користувача root для запису змін до системних каталогів, ви повинні запустити його як root. +Встановлення необхідних плагінів виконується за допомогою `pip3` та файлу "requirements.txt" у каталозі docs.rockylinux.org. Хоча цей процес буде суперечити вам щодо використання користувача root для запису змін до системних каталогів, ви повинні запустити його як root. Ви можете зробити це за допомогою `sudo` тут. @@ -204,7 +201,7 @@ cd docs.rockylinux.org sudo pip3 install -r requirements.txt ``` -Далі ви повинні налаштувати `mkdocs` з додатковим каталогом. `mkdocs` вимагає створення каталогу документів, а потім каталогу документації/документів, пов’язаного з ним. Зробіть це за допомогою: +Далі вам потрібно налаштувати `mkdocs` з додатковим каталогом. `mkdocs` вимагає створення каталогу docs, а потім каталогу documentation/docs, на який посилання розташоване нижче. Зробіть це за допомогою: ```bash mkdir docs @@ -214,7 +211,7 @@ ln -s ../../documentation/docs ### Тестування `mkdocs` -Тепер, коли ви налаштували `mkdocs`, спробуйте запустити сервер. Пам’ятайте, що цей процес буде стверджувати, що це схоже на виробництво. Це не так, тому ігноруйте попередження. Запустіть `mkdocs serve` за допомогою: +Тепер, коли у вас налаштовано `mkdocs`, спробуйте запустити сервер. Пам’ятайте, що цей процес буде стверджувати, що це схоже на виробництво. Це не так, тому ігноруйте попередження. Запустіть `mkdocs serve` за допомогою: ```bash mkdocs serve -a 0.0.0.0:8000 @@ -249,7 +246,7 @@ INFO - [14:12:56] Reloading browsers А тепер момент істини! Якщо ви зробили все правильно, ви зможете відкрити веб-браузер і перейти до IP-адреси свого контейнера на порту :8000 і переглянути сайт документації. -У нашому прикладі введіть наступне в адресу веб-переглядача (**ПРИМІТКА** Щоб уникнути непрацюючих URL-адрес, IP-адресу тут змінено на «ip-адресу вашого-сервера». Потрібно просто підставити в IP): +У нашому прикладі введіть наступне в адресу браузера (**ПРИМІТКА**. Щоб уникнути непрацюючих URL-адрес, IP-адресу тут змінено на "ip-адреса-вашего-сервера". Потрібно просто підставити в IP): ```bash http://your-server-ip:8000 @@ -261,7 +258,7 @@ http://your-server-ip:8000 Як зазначено вище, ви робите це тут за допомогою `lsyncd`. -Встановлення `lsyncd` відрізняється залежно від вашої версії Linux. [Цей документ](../../backup/mirroring_lsyncd.md) описує способи його встановлення на Rocky Linux і з джерела. Якщо ви використовуєте інші типи Linux (Ubuntu, наприклад), вони зазвичай мають власні пакети, але мають нюанси. +Встановлення `lsyncd` відрізняється залежно від вашої версії Linux. [Цей документ](../../backup/mirroring_lsyncd.md) охоплює способи його встановлення на Rocky Linux, а також з вихідного коду. Якщо ви використовуєте інші типи Linux (Ubuntu, наприклад), вони зазвичай мають власні пакети, але мають нюанси. Ubuntu, наприклад, називає файл конфігурації по-різному. Просто майте на увазі, що якщо ви використовуєте інший тип робочої станції Linux, відмінний від Rocky Linux, і не бажаєте встановлювати його з вихідного коду, ймовірно, для вашої платформи є доступні пакунки. @@ -271,7 +268,9 @@ Ubuntu, наприклад, називає файл конфігурації п !!! Note "Примітка" + ``` Користувач root повинен запускати демон, тому ви повинні бути root для створення файлів конфігурації та журналів. Для цього ми припускаємо `sudo -s`. + ``` Для запису `lsyncd` потрібно мати деякі файли журналу: @@ -286,7 +285,7 @@ touch /var/log/lsyncd.log touch /etc/lsyncd.exclude ``` -Нарешті, вам потрібно створити файл конфігурації. У цьому прикладі ми використовуємо `vi` як наш редактор, але ви можете використовувати будь-який редактор, який вам зручно: +Нарешті, вам потрібно створити файл конфігурації. У цьому прикладі ми використовуємо `vi` як редактор, але ви можете використовувати будь-який інший редактор, з яким вам зручніше: ```bash vi /etc/lsyncd.conf diff --git a/docs/guides/contribute/localdocs/mkdocs_venv.uk.md b/docs/guides/contribute/localdocs/mkdocs_venv.uk.md index 3c11284100..cdecdfa229 100644 --- a/docs/guides/contribute/localdocs/mkdocs_venv.uk.md +++ b/docs/guides/contribute/localdocs/mkdocs_venv.uk.md @@ -1,315 +1,315 @@ ---- -title: Метод Python VENV -author: Franco Colussi -contributors: Steven Spencer, Ganna Zhyrnova -tested_with: 8.7, 9.1, 9.4 -tags: - - mkdocs - - тестування - - документація ---- - -# MkDocs (віртуальне середовище Python) - -## Вступ - -Одним із аспектів процесу створення документації для Rocky Linux є перевірка правильності відображення нового документа перед публікацією. - -Метою цього посібника є надання деяких порад щодо виконання цього завдання в локальному середовищі python, призначеному виключно для цієї мети. - -Документація для Rocky Linux написана з використанням мови Markdown, яка зазвичай конвертується в інші формати. Markdown має чистий синтаксис і особливо добре підходить для написання технічної документації. - -У нашому випадку документація перетворюється на `HTML` за допомогою програми python, яка піклується про створення статичного сайту. Розробники використовують програму [MkDocs](https://www.mkdocs.org/). - -Одна з проблем, яка виникає під час розробки програми python, полягає в тому, щоб ізолювати примірник python, який використовується для розробки, від системного інтерпретатора. Ізоляція запобігає несумісності між модулями, необхідними для встановлення програми Python, і тими, які встановлені на хост-системі. - -Уже існують чудові посібники, які використовують **контейнери** для ізоляції інтерпретатора Python. Ці посібники, однак, передбачають знання різних методів контейнеризації. - -У цьому посібнику для розділення використовується модуль `venv`, що надається пакетом *python* Rocky Linux. Цей модуль доступний у всіх нових версіях *Python*, починаючи з версії 3.6. Це дозволить напряму досягти ізоляції інтерпретатора Python у системі без необхідності інсталювати та налаштовувати нові "**системи**". - -### Вимоги - -- запущена копія Rocky Linux -- пакет *python* встановлено правильно -- знайомство з командним рядком -- активне підключення до Інтернету - -## Підготовка середовища - -Середовище надає кореневу папку, що містить два необхідні репозиторії Rocky Linux GitHub і папку, де відбувається ініціалізація та запуск вашої копії python у віртуальному середовищі. - -Спершу створіть папку, яка міститиме все інше, а також контекстно створіть папку **env**, де запускатиметься MkDocs: - -```bash -mkdir -p ~/lab/rockydocs/env -``` - -### Віртуальне середовище Python - -Щоб створити свою копію Python, де працюватиме MkDocs, скористайтеся модулем python `venv`, спеціально розробленим для цієї мети. Це дозволяє створити віртуальне середовище, похідне від встановленого в системі, повністю ізольоване та незалежне. - -Це дозволить нам мати копію інтерпретатора в окремій папці лише з пакетами, які потрібні `MkDocs` для запуску документації Rocky Linux. - -Перейдіть до щойно створеної папки (*rockydocs*) і створіть віртуальне середовище за допомогою: - -```bash -cd ~/lab/rockydocs/ -python -m venv env -``` - -Ця команда заповнить папку **env** серією папок і файлів, які імітують дерево *python* вашої системи, показано тут: - -```text -env/ -├── bin -│   ├── activate -│   ├── activate.csh -│   ├── activate.fish -│   ├── Activate.ps1 -│   ├── pip -│   ├── pip3 -│   ├── pip3.11 -│   ├── python -> /usr/bin/python -│   ├── python3 -> python -│   └── python3.11 -> python -├── include -│   └── python3.11 -├── lib -│   └── python3.11 -├── lib64 -> lib -└── pyvenv.cfg -``` - -Як бачите, інтерпретатор python, який використовується віртуальним середовищем, усе ще доступний у системі `python -> /usr/bin/python`. Процес віртуалізації дбає лише про ізоляцію вашого екземпляра. - -#### Активація віртуального середовища - -Серед файлів, перелічених у структурі, є декілька файлів під назвою **activate**, які служать для цієї мети. Суфікс кожного файлу вказує на відповідну *оболонку*. - -Активація відокремлює цей екземпляр python від екземпляра системи та дозволяє нам виконувати розробку документації без втручання. Щоб активувати його, перейдіть до папки *env* і виконайте команду: - -```bash -[rocky_user@rl9 rockydocs]$ cd ~/lab/rockydocs/env/ -[rocky_user@rl9 env]$ source ./bin/activate -``` - -Команду *activate* було видано без суфікса, оскільки це стосується оболонки *bash*, оболонки Rocky Linux за замовчуванням. На цьому етапі ваша *підказка оболонки* має бути такою: - -```bash -(env) [rocky_user@rl9 env]$ -``` - -Як бачите, початкова частина *(env)* вказує на те, що ви перебуваєте у віртуальному середовищі. Перше, що потрібно зробити на цьому етапі, це оновити **pip**, менеджер модулів python, який використовуватиметься для встановлення MkDocs. Для цього використовуйте команду: - -```bash -python -m pip install --upgrade pip -``` - -```bash -python -m pip install --upgrade pip -Requirement already satisfied: pip in ./lib/python3.9/site-packages (21.2.3) -Collecting pip - Downloading pip-23.1-py3-none-any.whl (2.1 MB) - |████████████████████████████████| 2.1 MB 1.6 MB/s -Installing collected packages: pip - Attempting uninstall: pip - Found existing installation: pip 21.2.3 - Uninstalling pip-21.2.3: - Successfully uninstalled pip-21.2.3 -Successfully installed pip-23.1 -``` - -#### Деактивація середовища - -Щоб вийти з віртуального середовища, скористайтеся командою *deactivate*: - -```bash -(env) [rocky_user@rl9 env]$ deactivate -[rocky_user@rl9 env]$ -``` - -Як бачите, *підказка* після деактивації повернулася до системної. Завжди уважно перевіряйте підказку перед запуском інсталяції *MkDocs* і подальших команд. Позначте цей прапорець, щоб запобігти непотрібним і небажаним глобальним встановленням програм і пропущеним запускам `mkdocs serve`. - -### Завантаження репозиторіїв - -Тепер, коли ви побачили, як створити своє віртуальне середовище та як ним керувати, ви можете переходити до підготовки всього необхідного. - -Для реалізації локальної версії документації Rocky Linux потрібні два репозиторії: сховище документації [documentation](https://github.com/rocky-linux/documentation) та сховище структури сайту [docs.rockylinux.org](https://github.com/rocky-linux/docs.rockylinux.org). Їх завантаження здійснюється з Rocky Linux GitHub. - -Почніть зі сховища структури сайту, яке ви клонуєте в папку **rockydocs**: - -```bash -cd ~/lab/rockydocs/ -git clone https://github.com/rocky-linux/docs.rockylinux.org.git -``` - -У цій папці є два файли, які ви збираєтеся використовувати для створення локальної документації. Це **mkdocs.yml**, файл конфігурації, який використовується для ініціалізації MkDocs, і **requirement.txt**, який містить усі пакети python, необхідні для встановлення *mkdocs*. - -Після завершення вам також потрібно завантажити репозиторій документації: - -```bash -git clone https://github.com/rocky-linux/documentation.git -``` - -На цьому етапі ви матимете таку структуру в папці **rockydocs**: - -```text -rockydocs/ -├── env -├── docs.rockylinux.org -├── documentation -``` - -Схематично ви можете сказати, що папка **env** буде вашим механізмом *MkDocs*, який використовуватиме **docs.rockylinux.org** як контейнер для відображення даних, що містяться в **документації**. - -### Установка MkDocs - -Як зазначалося раніше, розробники Rocky Linux надають файл **requirement.txt**, який містить список модулів, необхідних для належного запуску спеціального екземпляра MkDocs. Ви будете використовувати файл, щоб установити все необхідне за одну операцію. - -Спочатку ви входите у своє віртуальне середовище python: - -```bash -[rocky_user@rl9 rockydocs]$ cd ~/lab/rockydocs/env/ -[rocky_user@rl9 env]$ source ./bin/activate -(env) [rocky_user@rl9 env]$ -``` - -Далі перейдіть до встановлення MkDocs і всіх його компонентів за допомогою команди: - -```bash -(env) [rocky_user@rl9 env]$ python -m pip install -r ../docs.rockylinux.org/requirements.txt -``` - -Щоб перевірити, чи все пройшло добре, ви можете викликати довідку MkDocs, яка також знайомить нас із доступними командами: - -```bash -(env) [rocky_user@rl9 env]$ mkdocs -h -Usage: mkdocs [OPTIONS] COMMAND [ARGS]... - - MkDocs - Проектна документація з Markdown. - -Опції: - -V, --version Показує версію та вихід. - -q, --quiet Попередження про тишу - -v, --verbose Вмикає докладний вивід - -h, --help Показує це повідомлення та виходить. - -Команди: - build Збирає документацію MkDocs - gh-deploy Розгортає вашу документацію на сторінках GitHub - new Створює новий проект MkDocs - serve Запускає вбудований сервер розробки -``` - -Якщо все спрацювало, як планувалося, ви можете вийти з віртуального середовища і почати підготовку необхідних підключень. - -```bash -(env) [rocky_user@rl9 env]$ deactivate -[rocky_user@rl9 env]$ -``` - -### Приєднання документації - -Тепер, коли все необхідне доступне, вам просто потрібно зв’язати сховище документації на веб-сайті контейнера *docs.rockylinux.org*. Дотримуючись налаштувань, визначених у *mkdocs.yml*: - -```yaml -docs_dir: 'docs/docs' -``` - -Спершу потрібно створити папку **docs** на **docs.rockylinux.org**, а потім у ній пов’язати свою папку **docs** зі сховища **документації**. - -```bash -cd ~/lab/rockydocs/docs.rockylinux.org -mkdir docs -cd docs/ -ln -s ../../documentation/docs/ docs -``` - -## Запуск локальної документації - -На цьому етапі ви готові почати локальну копію документації Rocky Linux. Спочатку вам потрібно запустити віртуальне середовище python, а потім ініціалізувати свій екземпляр MkDocs із налаштуваннями, визначеними в **docs.rockylinux.org/mkdocs.yml**. - -Цей файл містить усі параметри для локалізації, керування функціями та темами. - -Розробники інтерфейсу користувача сайту обрали тему [Material for MkDocs](https://squidfunk.github.io/mkdocs-material/), яка надає багато додаткових функцій і налаштувань порівняно зі стандартною темою MkDocs. - -Виконайте наступні команди: - -```bash -[rocky_user@rl9 rockydocs]$ cd ~/lab/rockydocs/env/ -[rocky_user@rl9 rockydocs]$ source ./bin/activate -(env) [rocky_user@rl9 env]$ mkdocs serve -f ../docs.rockylinux.org/mkdocs.yml -``` - -Ви повинні побачити у своєму терміналі початок білду сайту. На дисплеї відображатимуться будь-які помилки, знайдені MkDocs, наприклад, відсутні посилання чи інші: - -```text -INFO - Building documentation... -INFO - Adding 'de' to the 'plugins.search.lang' option -INFO - Adding 'fr' to the 'plugins.search.lang' option -INFO - Adding 'es' to the 'plugins.search.lang' option -INFO - Adding 'it' to the 'plugins.search.lang' option -INFO - Adding 'ja' to the 'plugins.search.lang' option -... -... -INFO - Documentation built in 102.59 seconds -INFO - [11:46:50] Watching paths for changes: - '/home/rocky_user/lab/rockydocs/docs.rockylinux.org/docs/docs', - '/home/rocky_user/lab/rockydocs/docs.rockylinux.org/mkdocs.yml' -INFO - [11:46:50] Serving on http://127.0.0.1:8000/ -``` - -Ваша копія сайту документації буде запущена під час відкриття вашого браузера за вказаною адресою [http://127.0.0.1:8000](http://127.0.0.1:8000). Копія ідеально відображає онлайн-сайт за функціональністю та структурою, дозволяючи оцінити зовнішній вигляд і вплив вашої сторінки на сайт. - -MkDocs містить механізм для перевірки змін у файлах у папці, визначеній шляхом `docs_dir`, і вставлення нової сторінки або зміна існуючої в `documentation/docs` буде автоматично розпізнано та створить нову статичну збірку сайту. - -Оскільки MkDocs створює статичний сайт за кілька хвилин, радимо уважно переглянути сторінку, яку ви пишете, перш ніж зберігати або вставляти її. Це економить чекання створення сайту лише тому, що ви забули, наприклад, знаки пунктуації. - -### Вихід із середовища розробки - -Коли відображення нової сторінки задовольнить вас, ви можете вийти з середовища розробки. Для цього потрібно спочатку вийти з *MkDocs*, а потім дезактивувати віртуальне середовище python. Щоб вийти з *MkDocs*, вам потрібно використати комбінацію клавіш ++ctrl++ + ++"C"++, і, як ви бачили вище, щоб вийти з віртуального середовища, вам потрібно буде викликати `deactivate `. - -```bash -... -INFO - [22:32:41] Serving on http://127.0.0.1:8000/ -^CINFO - Shutting down... -(env) [rocky_user@rl9 env]$ -(env) [rocky_user@rl9 env]$ deactivate -[rocky_user@rl9 env]$ -``` - -### Створіть псевдонім для методу venv - -Ви можете створити псевдонім bash, щоб пришвидшити процес обслуговування mkdocs за допомогою методу venv. - -Виконайте наведену нижче команду, щоб додати псевдонім `venv` до вашого `.bash_profile`: - -```bash -printf "# mkdocs alias\nalias venv='source $HOME/lab/rockydocs/env/bin/activate && mkdocs serve -f $HOME/lab/rockydocs/docs.rockylinux.org/mkdocs.yml'" >> ~/.bash_profile -``` - -Оновіть середовище оболонки за допомогою свого щойно створеного псевдоніма: - -```bash -source ~/.bash_profile -``` - -Тепер ви можете запустити `venv`, щоб створити локальний сайт розробки з mkdocs за допомогою методу venv: - -```bash -venv -``` - -Щоб вийти з віртуального середовища, все одно потрібно виконати `deactivate`: - -```bash -deactivate -``` - -## Висновки та заключні думки - -Перевірка ваших нових сторінок на сайті локальної розробки гарантує нам, що ваша робота завжди відповідатиме веб-сайту онлайн-документації, дозволяючи нам робити оптимальний внесок. - -Відповідність документів також є великою підмогою для кураторів сайту документації, яким потім залишається лише займатися коректністю контенту. - -На завершення можна сказати, що цей метод дозволяє виконати вимоги щодо «чистої» інсталяції MkDocs без необхідності вдаватися до контейнеризації. +--- +title: Метод Python VENV +author: Franco Colussi +contributors: Steven Spencer, Ganna Zhyrnova +tested_with: 8.7, 9.1, 9.4 +tags: + - mkdocs + - тестування + - документація +--- + +# MkDocs (віртуальне середовище Python) + +## Вступ + +Одним із аспектів процесу створення документації для Rocky Linux є перевірка правильності відображення нового документа перед публікацією. + +Метою цього посібника є надання деяких порад щодо виконання цього завдання в локальному середовищі python, призначеному виключно для цієї мети. + +Документація для Rocky Linux написана з використанням мови Markdown, яка зазвичай конвертується в інші формати. Markdown має чистий синтаксис і особливо добре підходить для написання технічної документації. + +У нашому випадку документація конвертується в `HTML` за допомогою застосунку на Python, який займається створенням статичного сайту. Розробники використовують програму [MkDocs](https://www.mkdocs.org/). + +Одна з проблем, яка виникає під час розробки програми python, полягає в тому, щоб ізолювати примірник python, який використовується для розробки, від системного інтерпретатора. Ізоляція запобігає несумісності між модулями, необхідними для встановлення програми Python, і тими, які встановлені на хост-системі. + +Вже існують чудові посібники, які використовують **контейнери** для ізоляції інтерпретатора Python. Ці посібники, однак, передбачають знання різних методів контейнеризації. + +У цьому посібнику для розділення використовується модуль `venv`, що постачається з пакета _python_ Rocky Linux. Цей модуль доступний у всіх нових версіях _Python_, починаючи з версії 3.6. Це безпосередньо досягне ізоляції інтерпретатора Python у системі без необхідності встановлювати та налаштовувати нові "**системи**". + +### Вимоги + +- запущена копія Rocky Linux +- пакет _python_ встановлено правильно +- знайомство з командним рядком +- активне підключення до Інтернету + +## Підготовка середовища + +Середовище надає кореневу папку, що містить два необхідні репозиторії Rocky Linux GitHub і папку, де відбувається ініціалізація та запуск вашої копії python у віртуальному середовищі. + +Спершу створіть папку, яка міститиме все інше, а також контекстно створіть папку **env**, де запускатиметься MkDocs: + +```bash +mkdir -p ~/lab/rockydocs/env +``` + +### Віртуальне середовище Python + +Щоб створити власну копію Python, де працюватиме MkDocs, використовуйте спеціально розроблений для цієї мети модуль python `venv`. Це дозволяє створити віртуальне середовище, похідне від встановленого в системі, повністю ізольоване та незалежне. + +Це дозволить нам мати копію інтерпретатора в окремій папці лише з пакетами, які потрібні `MkDocs` для запуску документації Rocky Linux. + +Перейдіть до щойно створеної папки (_rockydocs_) і створіть віртуальне середовище за допомогою: + +```bash +cd ~/lab/rockydocs/ +python -m venv env +``` + +Ця команда заповнить папку **env** серією папок і файлів, які імітують дерево _python_ вашої системи, показано тут: + +```text +env/ +├── bin +│   ├── activate +│   ├── activate.csh +│   ├── activate.fish +│   ├── Activate.ps1 +│   ├── pip +│   ├── pip3 +│   ├── pip3.11 +│   ├── python -> /usr/bin/python +│   ├── python3 -> python +│   └── python3.11 -> python +├── include +│   └── python3.11 +├── lib +│   └── python3.11 +├── lib64 -> lib +└── pyvenv.cfg +``` + +Як бачите, інтерпретатор Python, який використовується віртуальним середовищем, все ще є тим самим, що доступний у системі `python -> /usr/bin/python`. Процес віртуалізації дбає лише про ізоляцію вашого екземпляра. + +#### Активація віртуального середовища + +Серед файлів, перелічених у структурі, є кілька файлів з назвою **activate**, які служать цій меті. Суфікс кожного файлу вказує на відповідну _оболонку_. + +Активація відокремлює цей екземпляр python від екземпляра системи та дозволяє нам виконувати розробку документації без втручання. Щоб активувати його, перейдіть до папки _env_ та виконайте команду: + +```bash +[rocky_user@rl9 rockydocs]$ cd ~/lab/rockydocs/env/ +[rocky_user@rl9 env]$ source ./bin/activate +``` + +Команду _activate_ було виконано без будь-якого суфікса, оскільки вона стосується оболонки _bash_, оболонки Rocky Linux за замовчуванням. На цьому етапі ваш _запит оболонки_ має виглядати так: + +```bash +(env) [rocky_user@rl9 env]$ +``` + +Як бачите, початкова частина _(env)_ вказує на те, що ви зараз перебуваєте у віртуальному середовищі. Перше, що потрібно зробити на цьому етапі, це оновити **pip**, менеджер модулів Python, який використовується для встановлення MkDocs. Для цього використовуйте команду: + +```bash +python -m pip install --upgrade pip +``` + +```bash +python -m pip install --upgrade pip +Requirement already satisfied: pip in ./lib/python3.9/site-packages (21.2.3) +Collecting pip + Downloading pip-23.1-py3-none-any.whl (2.1 MB) + |████████████████████████████████| 2.1 MB 1.6 MB/s +Installing collected packages: pip + Attempting uninstall: pip + Found existing installation: pip 21.2.3 + Uninstalling pip-21.2.3: + Successfully uninstalled pip-21.2.3 +Successfully installed pip-23.1 +``` + +#### Деактивація середовища + +Щоб вийти з віртуального середовища, скористайтеся командою _deactivate_: + +```bash +(env) [rocky_user@rl9 env]$ deactivate +[rocky_user@rl9 env]$ +``` + +Як бачите, термінальний _запит_ повернувся до системного стану після деактивації. Завжди слід уважно перевіряти запит, перш ніж запускати встановлення _MkDocs_ та наступні команди. Позначення цього параметра запобіжить непотрібним та небажаним глобальним встановленням програм і пропущеним запускам `mkdocs serve`. + +### Завантаження репозиторіїв + +Тепер, коли ви побачили, як створити своє віртуальне середовище та як ним керувати, ви можете переходити до підготовки всього необхідного. + +Для реалізації локальної версії документації Rocky Linux потрібні два репозиторії: репозиторій документації [documentation](https://github.com/rocky-linux/documentation) та репозиторій структури сайту [docs.rockylinux.org](https://github.com/rocky-linux/docs.rockylinux.org). Їх завантаження здійснюється з Rocky Linux GitHub. + +Почніть зі сховища структури сайту, яке ви клонуєте в папку **rockydocs**: + +```bash +cd ~/lab/rockydocs/ +git clone https://github.com/rocky-linux/docs.rockylinux.org.git +``` + +У цій папці є два файли, які ви збираєтеся використовувати для створення локальної документації. Це **mkdocs.yml**, файл конфігурації, який використовується для ініціалізації MkDocs, та **requirement.txt**, який містить усі пакети Python, необхідні для встановлення _mkdocs_. + +Після завершення вам також потрібно завантажити репозиторій документації: + +```bash +git clone https://github.com/rocky-linux/documentation.git +``` + +На цьому етапі ви матимете таку структуру в папці **rockydocs**: + +```text +rockydocs/ +├── env +├── docs.rockylinux.org +├── documentation +``` + +Схематично ви можете сказати, що папка **env** буде вашим механізмом _MkDocs_, який використовуватиме **docs.rockylinux.org** як контейнер для відображення даних, що містяться в **документації**. + +### Установка MkDocs + +Як зазначалося раніше, розробники Rocky Linux надають файл **requirement.txt**, який містить список модулів, необхідних для належного запуску користувацького екземпляра MkDocs. Ви будете використовувати файл, щоб установити все необхідне за одну операцію. + +Спочатку ви входите у своє віртуальне середовище python: + +```bash +[rocky_user@rl9 rockydocs]$ cd ~/lab/rockydocs/env/ +[rocky_user@rl9 env]$ source ./bin/activate +(env) [rocky_user@rl9 env]$ +``` + +Далі перейдіть до встановлення MkDocs і всіх його компонентів за допомогою команди: + +```bash +(env) [rocky_user@rl9 env]$ python -m pip install -r ../docs.rockylinux.org/requirements.txt +``` + +Щоб перевірити, чи все пройшло добре, ви можете викликати довідку MkDocs, яка також знайомить нас із доступними командами: + +```bash +(env) [rocky_user@rl9 env]$ mkdocs -h +Usage: mkdocs [OPTIONS] COMMAND [ARGS]... + + MkDocs - Проектна документація з Markdown. + +Опції: + -V, --version Показує версію та вихід. + -q, --quiet Попередження про тишу + -v, --verbose Вмикає докладний вивід + -h, --help Показує це повідомлення та виходить. + +Команди: + build Збирає документацію MkDocs + gh-deploy Розгортає вашу документацію на сторінках GitHub + new Створює новий проект MkDocs + serve Запускає вбудований сервер розробки +``` + +Якщо все спрацювало, як планувалося, ви можете вийти з віртуального середовища і почати підготовку необхідних підключень. + +```bash +(env) [rocky_user@rl9 env]$ deactivate +[rocky_user@rl9 env]$ +``` + +### Приєднання документації + +Тепер, коли все доступно, вам потрібно підключити репозиторій документації до сайту-контейнера _docs.rockylinux.org_. Дотримуючись налаштувань, визначених у _mkdocs.yml_: + +```yaml +docs_dir: 'docs/docs' +``` + +Спершу потрібно створити папку **docs** на **docs.rockylinux.org**, а потім у ній пов’язати свою папку **docs** зі сховища **документації**. + +```bash +cd ~/lab/rockydocs/docs.rockylinux.org +mkdir docs +cd docs/ +ln -s ../../documentation/docs/ docs +``` + +## Запуск локальної документації + +На цьому етапі ви готові почати локальну копію документації Rocky Linux. Спочатку вам потрібно запустити віртуальне середовище Python, а потім ініціалізувати ваш екземпляр MkDocs з налаштуваннями, визначеними в **docs.rockylinux.org/mkdocs.yml**. + +Цей файл містить усі параметри для локалізації, керування функціями та темами. + +Розробники інтерфейсу користувача сайту обрали тему [Material for MkDocs](https://squidfunk.github.io/mkdocs-material/), яка надає багато додаткових функцій і налаштувань порівняно зі стандартною темою MkDocs. + +Виконайте наступні команди: + +```bash +[rocky_user@rl9 rockydocs]$ cd ~/lab/rockydocs/env/ +[rocky_user@rl9 rockydocs]$ source ./bin/activate +(env) [rocky_user@rl9 env]$ mkdocs serve -f ../docs.rockylinux.org/mkdocs.yml +``` + +Ви повинні побачити у своєму терміналі початок білду сайту. На дисплеї відображатимуться будь-які помилки, знайдені MkDocs, наприклад, відсутні посилання чи інші: + +```text +INFO - Building documentation... +INFO - Adding 'de' to the 'plugins.search.lang' option +INFO - Adding 'fr' to the 'plugins.search.lang' option +INFO - Adding 'es' to the 'plugins.search.lang' option +INFO - Adding 'it' to the 'plugins.search.lang' option +INFO - Adding 'ja' to the 'plugins.search.lang' option +... +... +INFO - Documentation built in 102.59 seconds +INFO - [11:46:50] Watching paths for changes: + '/home/rocky_user/lab/rockydocs/docs.rockylinux.org/docs/docs', + '/home/rocky_user/lab/rockydocs/docs.rockylinux.org/mkdocs.yml' +INFO - [11:46:50] Serving on http://127.0.0.1:8000/ +``` + +Ваша копія сайту з документацією буде запущена після відкриття браузера за вказаною адресою [http://127.0.0.1:8000](http://127.0.0.1:8000). Копія ідеально відображає онлайн-сайт за функціональністю та структурою, дозволяючи оцінити зовнішній вигляд і вплив вашої сторінки на сайт. + +MkDocs містить механізм для перевірки змін у файлах у папці, визначеній шляхом `docs_dir`, і вставлення нової сторінки або зміна існуючої в `documentation/docs` буде автоматично розпізнано та створить нову статичну збірку сайту. + +Оскільки MkDocs створює статичний сайт за кілька хвилин, радимо уважно переглянути сторінку, яку ви пишете, перш ніж зберігати або вставляти її. Це економить чекання створення сайту лише тому, що ви забули, наприклад, знаки пунктуації. + +### Вихід із середовища розробки + +Коли відображення нової сторінки задовольнить вас, ви можете вийти з середовища розробки. Це передбачає спочатку вихід з _MkDocs_, а потім деактивацію віртуального середовища python. Щоб вийти з _MkDocs_, потрібно скористатися комбінацією клавіш ++ctrl++ + ++"C"++, і, як ви бачили вище, для виходу з віртуального середовища потрібно буде викликати команду `deactivate`. + +```bash +... +INFO - [22:32:41] Serving on http://127.0.0.1:8000/ +^CINFO - Shutting down... +(env) [rocky_user@rl9 env]$ +(env) [rocky_user@rl9 env]$ deactivate +[rocky_user@rl9 env]$ +``` + +### Створіть псевдонім для методу venv + +Ви можете створити псевдонім bash, щоб пришвидшити процес обслуговування mkdocs за допомогою методу venv. + +Виконайте наведену нижче команду, щоб додати псевдонім `venv` до вашого `.bash_profile`: + +```bash +printf "# mkdocs alias\nalias venv='source $HOME/lab/rockydocs/env/bin/activate && mkdocs serve -f $HOME/lab/rockydocs/docs.rockylinux.org/mkdocs.yml'" >> ~/.bash_profile +``` + +Оновіть середовище оболонки за допомогою свого щойно створеного псевдоніма: + +```bash +source ~/.bash_profile +``` + +Тепер ви можете запустити `venv`, щоб створити локальний сайт розробки з mkdocs за допомогою методу venv: + +```bash +venv +``` + +Щоб вийти з віртуального середовища, все одно потрібно виконати `deactivate`: + +```bash +deactivate +``` + +## Висновки та заключні думки + +Перевірка ваших нових сторінок на сайті локальної розробки гарантує нам, що ваша робота завжди відповідатиме веб-сайту онлайн-документації, дозволяючи нам робити оптимальний внесок. + +Відповідність документів також є великою підмогою для кураторів сайту документації, яким потім залишається лише займатися коректністю контенту. + +На завершення можна сказати, що цей метод дозволяє виконати вимоги щодо «чистої» інсталяції MkDocs без необхідності вдаватися до контейнеризації. diff --git a/docs/guides/contribute/localdocs/rockydocs_web_dev.uk.md b/docs/guides/contribute/localdocs/rockydocs_web_dev.uk.md index 319adca8ef..830e8be0ec 100644 --- a/docs/guides/contribute/localdocs/rockydocs_web_dev.uk.md +++ b/docs/guides/contribute/localdocs/rockydocs_web_dev.uk.md @@ -7,7 +7,7 @@ update: 27 лютого 2022 р # Запуск локальної копії веб-сайту docs.rockylinux.org для веб-розробників та/або авторів вмісту -У цьому документі описано, як відтворити та запустити локальну копію всього веб-сайту docs.rockylinux.org на вашій локальній машині. **Це незавершено.** +У цьому документі описано, як відтворити та запустити локальну копію всього веб-сайту docs.rockylinux.org на вашій локальній машині. **Це незавершена робота.** Запуск локальної копії веб-сайту документації може бути корисним у таких випадках: @@ -25,9 +25,10 @@ update: 27 лютого 2022 р ## Створення середовища вмісту -1. Змініть поточний робочий каталог у вашій локальній системі на папку, у якій ви збираєтеся писати. Ми називатимемо цей каталог як `$ROCKYDOCS` в решті цього посібника. Для нашої демонстрації тут `$ROCKYDOCS` вказує на `~/projects/rockydocs` у нашій демонстраційній системі. +1. Змініть поточний робочий каталог у вашій локальній системі на папку, у якій ви збираєтеся писати. Далі в цьому посібнику ми називатимемо цей каталог + `$ROCKYDOCS`. Для нашої демонстрації `$ROCKYDOCS` вказує на `~/projects/rockydocs` у нашій демонстраційній системі. - Створіть $ROCKYDOCS, якщо він ще не існує, а потім введіть: + Створіть $ROCKYDOCS, якщо він ще не існує, а потім введіть: ```bash cd $ROCKYDOCS @@ -68,7 +69,7 @@ update: 27 лютого 2022 р wsoyinka/rockydocs:latest ``` - Крім того, за бажанням і якщо у вас встановлено `docker-compose`, ви можете створити файл створення під назвою `docker-compose.yml` із таким вмістом: + Крім того, за бажанням і якщо у вас встановлено `docker-compose`, ви можете створити файл створення під назвою `docker-compose.yml` із таким вмістом: ```bash version: "3.9" @@ -84,7 +85,7 @@ update: 27 лютого 2022 р - "8000:8000" ``` - Збережіть файл із назвою `docker-compose.yml` у робочому каталозі $ROCKYDOCS. І запустіть службу/контейнер, виконавши: + Збережіть файл під назвою `docker-compose.yml` у вашому робочому каталозі $ROCKYDOCS. І запустіть службу/контейнер, виконавши: ```bash docker-compose up diff --git a/docs/guides/contribute/localdocs/rockydocs_webdev_v2.uk.md b/docs/guides/contribute/localdocs/rockydocs_webdev_v2.uk.md index 7e61970c0b..22a7d17d03 100644 --- a/docs/guides/contribute/localdocs/rockydocs_webdev_v2.uk.md +++ b/docs/guides/contribute/localdocs/rockydocs_webdev_v2.uk.md @@ -11,7 +11,8 @@ update: 13 лютого 2023 р # Запуск веб-сайту docs.rockylinux.org локально для веб-розробки | Podman -Цей документ допоможе вам створити та запустити локальну копію всього веб-сайту docs.rockylinux.org на вашій локальній машині. Запуск локальної копії веб-сайту документації може бути корисним у таких випадках: +Цей документ допоможе вам створити та запустити локальну копію всього веб-сайту docs.rockylinux.org на вашій локальній машині. +Запуск локальної копії веб-сайту документації може бути корисним у таких випадках: - Вам цікаво дізнатися про аспекти веб-розробки веб-сайту docs.rockylinux.org і зробити свій внесок у них - Ви автор і хотіли б побачити, як ваші документи відображатимуться/виглядатимуть на веб-сайті документів, перш ніж надсилати їх @@ -44,9 +45,11 @@ sudo chmod 666 /var/run/docker.sock 1. Переконайтеся, що передумови виконано. -2. Змініть поточний робочий каталог у вашій локальній системі на папку, у якій ви збираєтеся писати. Ми будемо посилатися на цей каталог як `$ROCKYDOCS` в решті цього посібника. Для нашої демонстрації тут `$ROCKYDOCS` вказує на `$HOME/projects/rockydocs` у нашій демонстраційній системі. +2. Змініть поточний робочий каталог у вашій локальній системі на папку, у якій ви збираєтеся писати. + Далі в цьому посібнику ми називатимемо цей каталог + `$ROCKYDOCS`. Для нашої демонстрації `$ROCKYDOCS` вказує на `$HOME/projects/rockydocs` у нашій демонстраційній системі. - Створіть `$ROCKYDOCS`, якщо він ще не існує, і змініть свій робочий каталог на тип `$ROCKYDOCS`: + Створіть `$ROCKYDOCS`, якщо він ще не існує, і змініть свій робочий каталог на тип `$ROCKYDOCS`: ```bash mkdir -p $HOME/projects/rockydocs @@ -60,19 +63,19 @@ sudo chmod 666 /var/run/docker.sock git clone https://github.com/rocky-linux/documentation.git ``` - Тепер у вас буде папка `$ROCKYDOCS/documentation`. Ця папка є репозиторієм git і знаходиться під контролем git. + Тепер у вас буде папка `$ROCKYDOCS/documentation`. Ця папка є репозиторієм git і знаходиться під контролем git. -4. Також використовуйте `git`, щоб клонувати офіційне сховище docs.rockylinux.org. Впишіть: +4. Також використовуйте `git` для клонування офіційного репозиторію docs.rockylinux.org. Впишіть: ```bash git clone https://github.com/rocky-linux/docs.rockylinux.org.git ``` -Тепер у вас є папка `$ROCKYDOCS/docs.rockylinux.org`. У цій папці ви можете експериментувати зі своїми внесками в веб-розробку. +Тепер у вас буде папка `$ROCKYDOCS/docs.rockylinux.org`. У цій папці ви можете експериментувати зі своїми внесками в веб-розробку. ## Створіть і запустіть середовище веб-розробки RockyDocs -1. Переконайтеся, що Podman запущено та працює на вашій локальній машині (це можна перевірити за допомогою `systemctl`). Перевірте, запустивши: +1. Переконайтеся, що Podman запущено та працює на вашій локальній машині (ви можете перевірити за допомогою `systemctl`). Перевірте, запустивши: ```bash systemctl enable --now podman.socket @@ -113,9 +116,9 @@ sudo chmod 666 /var/run/docker.sock /usr/local/bin/mike serve -F mkdocs.yml -a 0.0.0.0:8001" ``` - Збережіть файл із назвою `docker-compose.yml` у робочому каталозі $ROCKYDOCS. + Збережіть файл із назвою `docker-compose.yml` у робочому каталозі $ROCKYDOCS. - Ви також можете швидко завантажити копію файлу docker-compose.yml, виконавши: + Ви також можете швидко завантажити копію файлу docker-compose.yml, виконавши: ```bash curl -SL https://raw.githubusercontent.com/rocky-linux/documentation-test/main/docs/labs/docker-compose-rockydocs.yml -o docker-compose.yml @@ -136,13 +139,13 @@ sudo chmod 666 /var/run/docker.sock firewall-cmd --reload ``` - Коли контейнер запущений і запущений, тепер ви зможете вказати свій веб-браузер за такою URL-адресою, щоб переглянути локальну копію сайту: +Коли контейнер запущений і запущений, тепер ви зможете вказати свій веб-браузер за такою URL-адресою, щоб переглянути локальну копію сайту: - + - Або +Або - + ## Примітки: diff --git a/docs/guides/contribute/navigation.uk.md b/docs/guides/contribute/navigation.uk.md index c5629838a1..06d13267f7 100644 --- a/docs/guides/contribute/navigation.uk.md +++ b/docs/guides/contribute/navigation.uk.md @@ -30,15 +30,15 @@ tags: ## Зміни середовища -З цими змінами виникає справжня потреба «побачити», як будь-які зміни, які ви вносите, впливають на вміст у контексті веб-сайту, *ПЕРЕД*, як цей вміст буде закріплено в сховищі документів, а згодом стане «активним». +З цими змінами виникає справжня потреба «побачити», як будь-які зміни, які ви вносите, впливають на вміст у контексті веб-сайту, _ПЕРЕД_, як цей вміст буде закріплено в сховищі документів, а згодом стане «активним». -MkDocs — це програма [Python](https://www.python.org), і додаткові пакети, які вона використовує, також є кодом Python, це означає, що середовище, необхідне для запуску MkDocs, має бути **правильно налаштованим середовищем Python**. Налаштування Python для завдань розробки (а саме те, що робиться під час запуску MkDocs) не є тривіальним завданням, і інструкції щодо цього виходять за рамки цього документа. Деякі міркування: +MkDocs — це застосунок на [Python](https://www.python.org), а додаткові пакети, які він використовує, також є кодом Python, тобто середовище, необхідне для запуску MkDocs, має бути **правильно налаштованим середовищем Python**. Налаштування Python для завдань розробки (а саме те, що робиться під час запуску MkDocs) не є тривіальним завданням, і інструкції щодо цього виходять за рамки цього документа. Деякі міркування: -- Версія Python має бути >= 3.8. Також **особливо обережно не використовуйте «системну» версію Python комп’ютера, якщо на комп’ютері працює Linux або MacOS**. Наприклад, на момент написання цього документа системною версією Python для MacOS залишається версія 2.7. -- Запуск «віртуального середовища» Python. Під час запуску проектів програм Python і встановлення пакетів, наприклад MkDocs, спільнота Python **наполегливо рекомендує** [створити ізольоване віртуальне середовище](https://realpython.com/python-virtual-environments-a-primer/) для кожного проекту. +- Версія Python має бути >= 3.8. Також **будьте особливо обережні та не використовуйте «системну» версію Python комп’ютера, якщо на комп’ютері працює Linux або MacOS**. Наприклад, на момент написання цього документа системною версією Python для MacOS залишається версія 2.7. +- Запуск «віртуального середовища» Python. Під час запуску проекту Python-застосунку та встановлення пакетів, наприклад MkDocs, спільнота Python **настійно рекомендує** [створити ізольоване віртуальне середовище](https://realpython.com/python-virtual-environments-a-primer/) для кожного проекту. - Використовуйте сучасне IDE (інтегроване середовище розробки), яке добре підтримує Python. Дві популярні IDE, які також мають вбудовану підтримку запуску віртуальних середовищ, це: - - PyCharm - (доступна безкоштовна версія) провідна IDE для Python - - Visual Studio Code - (доступна безкоштовна версія) від Microsoft + - PyCharm - (доступна безкоштовна версія) провідна IDE для Python + - Visual Studio Code - (доступна безкоштовна версія) від Microsoft Щоб це зробити ефективно, потрібно: @@ -49,13 +49,15 @@ MkDocs — це програма [Python](https://www.python.org), і додат - Посилання на папку `docs` у вашому клонованому сховищі документації (ви також можете просто змінити файл mkdocs.yml, якщо хочете завантажити правильну папку, але зв’язування зробить ваше середовище mkdocs чистішим) - Запуск `mkdocs serve` у вашому клоні docs.rockylinux.org -!!! tip "Підказка" +!!! tip Ви можете створювати окремі середовища для `mkdocs`, використовуючи будь-яку з процедур у розділі «Локальна документація» меню «Внести свій внесок». !!! Note "Примітка" + ``` Цей документ було написано в середовищі Linux. Якщо ваше середовище інше (Windows або Mac), вам потрібно буде дослідити відповідність деяких із цих кроків. Редактор або менеджер, який читає це, може внести до нього зміни, щоб додати кроки для цих середовищ. + ``` ### Встановлення @@ -69,21 +71,21 @@ MkDocs — це програма [Python](https://www.python.org), і додат `ln -s /home/username/documentation/docs docs` -Знову ж таки, за бажанням ви можете змінити локальну копію файлу `mkdocs.yml`, щоб установити шлях. Якщо ви використовуєте цей метод, ви повинні змінити цей рядок, щоб вказувати на вашу папку `documentation/docs`: +Знову ж таки, ви можете змінити локальну копію файлу `mkdocs.yml`, щоб встановити шлях. Якщо ви використовуєте цей метод, вам потрібно змінити цей рядок, щоб він вказував на вашу папку `documentation/docs`: ```text docs_dir: 'docs/docs' ``` -Після завершення ви можете спробувати запустити `mkdocs serve`, щоб побачити, чи ви отримали бажаний вміст. Це буде працювати на вашому локальному хості на порту 8000; наприклад: +Після завершення ви можете спробувати запустити `mkdocs serve`, щоб побачити, чи отримаєте ви бажаний контент. Це буде працювати на вашому локальному хості на порту 8000; наприклад: ## Навігація та інші зміни -Навігація обробляється за допомогою файлів mkdocs `.pages` **АБО** значенням мета "title:" у передній частині документа. Файли `.pages` не є складними, АЛЕ якщо щось пропущено, це може спричинити збій завантаження сервера. Ось чому ця процедура **ЛИШЕ** для менеджерів і редакторів. Ці особи матимуть інструменти (локальне встановлення mkdocs, а також клони документації та docs.rockylinux.org), щоб щось, передане та об’єднане з GitHub, не порушувало обслуговування веб-сайту документації. Не можна очікувати, що учасник відповідатиме хоча б одній із цих вимог. +Mkdocs обробляє навігацію за допомогою файлів `.pages` за допомогою **АБО** значення мета-тегу "title:" у вступній частині документа. Файли `.pages` не надто складні, АЛЕ якщо щось пропустити, це може призвести до збою завантаження сервера. Ось чому ця процедура **ЛИШЕ** для менеджерів та редакторів. Ці особи матимуть інструменти (локальне встановлення mkdocs, а також клони документації та docs.rockylinux.org), щоб щось, передане та об’єднане з GitHub, не порушувало обслуговування веб-сайту документації. Не можна очікувати, що учасник відповідатиме хоча б одній із цих вимог. ### Файли `.pages` -Як уже зазначалося, файли `.pages` загалом досить прості. Це файл у форматі YAML, який `mkdocs` зчитує перед відтворенням вмісту. Щоб поглянути на один із складніших файлів `.pages`, давайте розглянемо файл, створений для форматування бічної навігації: +Як уже зазначалося, файли `.pages` загалом досить прості. Вони являють собою файл у форматі YAML, який `mkdocs` зчитує перед відображенням вмісту. Щоб побачити один із складніших файлів `.pages`, розглянемо той, що створений для форматування бічної навігації: ```yaml --- @@ -110,9 +112,9 @@ nav: - ... ``` -Тут `index*md` показує «Guides Home: », `installation*.md` показує посилання на документ «Встановлення Rocky Linux», а `migrate2rocky*.md` показує посилання на документ «Міграція на Rocky Linux». `*` у кожному посиланні дозволяє документу бути будь-якою мовою, наприклад, `index.fr.md`, `index.de.md`, і так далі. Нарешті, розміщення "Внести свій внесок" знаходиться під цими елементами, а не в звичайному (алфавітному) порядку сортування. Переглядаючи список, ви можете побачити, що робить кожен елемент. Зауважте, що після запису «Керування пакетами: package_management» є ще дві папки (безпека та веб). Вони не потребують додаткового форматування. Файл `.pages` повідомляє `mkdocs` завантажувати їх у звичайному режимі за допомогою `- ...`. +Тут `index*.md` показує сторінку "Guides Home:", `installation*.md` показує посилання на документ "Installing Rocky Linux", а `migrate2rocky*.md` показує посилання на документ "Migrating To Rocky Linux". Символ `*` у кожному посиланні дозволяє, щоб документ був будь-якою мовою, наприклад, `index.fr.md`, `index.de.md` тощо. Нарешті, розміщення "Внести свій внесок" знаходиться під цими елементами, а не в звичайному (алфавітному) порядку сортування. Переглядаючи список, ви можете побачити, що робить кожен елемент. Зауважте, що після запису «Керування пакетами: package_management» є ще дві папки (безпека та веб). Вони не потребують додаткового форматування. Файл `.pages` повідомляє `mkdocs` про необхідність їх звичайного завантаження за допомогою `- ...`. -Ви також можете використовувати форматування YAML у реальному файлі. Причиною для цього може бути те, що початковий заголовок файлу такий довгий, що він просто погано відображається в розділі навігації. Як приклад візьмемо заголовок цього документа "# `mod_ssl` на Rocky Linux у середовищі веб-сервера httpd Apache". Це дуже довго. Він дуже погано відображається на бічній панелі навігації, коли відкрито навігаційний елемент «Інтернет». Щоб виправити це, ви можете спільно з автором змінити його заголовок або змінити спосіб його відображення в меню, додавши заголовок перед заголовком усередині документа. У цьому прикладі додавання заголовка до основного матеріалу скорочує довжину заголовка в списку: +Ви також можете використовувати форматування YAML у реальному файлі. Причиною для цього може бути те, що початковий заголовок файлу такий довгий, що він просто погано відображається в розділі навігації. Як приклад, візьмемо цей документ під заголовком "# `mod_ssl` на Rocky Linux у середовищі веб-сервера Apache з httpd". Це дуже довго. Він дуже погано відображається на бічній панелі навігації, коли відкрито навігаційний елемент «Інтернет». Щоб виправити це, ви можете спільно з автором змінити його заголовок або змінити спосіб його відображення в меню, додавши заголовок перед заголовком усередині документа. У цьому прикладі додавання заголовка до основного матеріалу скорочує довжину заголовка в списку: ```text --- @@ -122,7 +124,7 @@ title: Apache With `mod_ssl` Це змінює назву щодо навігації, але залишає оригінальну назву автора в документі. -!!! info "Інформація" +!!! info У більшості випадків заголовок автора буде заголовком рівня 1, а головна частина заголовка ТАКОЖ буде заголовком рівня 1 («#»). Це створює помилку розцінки в документі. Щоб уникнути цього, або повністю видаліть назву автора, або змініть її на заголовок рівня 2 ("##"). @@ -130,4 +132,4 @@ title: Apache With `mod_ssl` ## Висновок -Хоча внесення необхідних навігаційних змін до файлів `.pages` не є складним завданням, існує ймовірність зламати поточну документацію. З цієї причини лише менеджери та редактори з відповідними інструментами повинні мати дозвіл на редагування цих файлів. Наявність повного доступного середовища для перегляду того, що відображаються на живих веб-сторінках, утримує менеджера чи редактора від помилок під час редагування цих файлів. +Хоча внесення необхідних змін у навігацію з файлами `.pages` нескладне, існує потенціал для порушення роботи документації. З цієї причини лише менеджери та редактори з відповідними інструментами повинні мати дозвіл на редагування цих файлів. Наявність повного доступного середовища для перегляду того, що відображаються на живих веб-сторінках, утримує менеджера чи редактора від помилок під час редагування цих файлів. diff --git a/docs/guides/contribute/rockydocs_formatting.uk.md b/docs/guides/contribute/rockydocs_formatting.uk.md index fa1a5b4b18..67cedbe47f 100644 --- a/docs/guides/contribute/rockydocs_formatting.uk.md +++ b/docs/guides/contribute/rockydocs_formatting.uk.md @@ -16,45 +16,32 @@ tags: !!! note "Примітка про заголовки" Заголовки не є спеціальними символами форматування; скоріше це стандартний markdown синтаксис. Вони містять **один** заголовок першого рівня: - - ``` - # Це перший рівень - ``` - - + + ` # Це перший рівень ` + + і будь-яка кількість значень підзаголовків, рівні від 2 до 6: - - ``` - ## Заголовок рівня 2 - ### Заголовок рівня 3 - #### Заголовок рівня 4 - ##### Заголовок 5 рівня - ###### Заголовок 6 рівня - ``` - - + + ` ## Заголовок рівня 2 ### Заголовок рівня 3 #### Заголовок рівня 4 ##### Заголовок 5 рівня ###### Заголовок 6 рівня ` + + Ключовим тут є те, що ви можете використовувати скільки завгодно заголовків із 2–6, але лише **ОДИН** заголовок рівня 1. Хоча документ відображатиметься правильно з кількома заголовками рівня 1, автоматично створений зміст документа, який з’являється праворуч, **НЕ** відображатиметься правильно (або іноді взагалі) із кількома заголовками. Майте це на увазі під час написання документів. Ще одна важлива примітка щодо заголовка рівня 1: якщо мета `title:` використовується, то це буде типовий заголовок рівня 1. Ви не повинні додавати ще один. Наприклад, мета заголовка цього документа: - - ``` - --- - title: Document Formatting - ``` - - + + ` --- title: Document Formatting ` + + Таким чином, найпершим доданим заголовком є ​​«Вступ» на рівні 2. - - ``` - ## Вступ - ``` + + ` ## Вступ ` !!! warning "Примітка про підтримувані елементи HTML" Існують елементи HTML, які технічно підтримуються у розмітці. Деякі з них описані в цьому документі, де не існує синтаксису розмітки, який би їх замінив. Ці підтримувані HTML-теги слід використовувати рідко, оскільки лінтери розмітки скаржаться на них у документі. Наприклад: - - * Inline HTML [element name] - + + \* Inline HTML [element name] + Якщо вам потрібно використовувати підтримуваний елемент HTML, подивіться, чи можете ви знайти інший спосіб написати свій документ, який не використовуватиме ці елементи. Якщо ви повинні їх використовувати, це все одно дозволено. !!! info "Примітка про посилання" @@ -62,16 +49,10 @@ tags: Посилання – це не спеціальне форматування, а стандартні методи посилання на інші документи (внутрішні посилання) або зовнішні веб-сторінки. Однак є один тип посилання, який не слід використовувати під час створення документів для Rocky Linux, і це прив’язка або посилання на місце в тому самому документі. Якір працює на вихідній мові для Rocky Linux (англійська), але щойно їх перекладає наш інтерфейс Crowdin, вони ламаються на цих мовах. Це відбувається через те, що прийнятний прив’язка у markdown, яка не містить елементів HTML, використовує заголовок для створення посилання: - - ``` - ## Заголовок - - текст - - Посилання [на заголовок](#-заголовок) - ``` - - + + ` ## Заголовок текст Посилання [на заголовок](#-заголовок) ` + + Це посилання можна знайти, навівши курсор миші на постійне посилання у створеному документі, але це, по суті, заголовок із «#» і заголовок у нижньому регістрі, розділений тире (-). Коли документ перекладається, перекладається заголовок, АЛЕ посилання знаходиться за межами того, що Crowdin дозволяє перекладати, тому воно залишається в оригінальному (англійському) стані. @@ -82,22 +63,22 @@ tags: Попередження — це спеціальні візуальні «коробки», які звертають увагу на важливі факти та виділяють їх. Існують наступні типи застережень: -| тип | Опис | -| ------------------- | -------------------------------------------------------------- | -| note "примітка" | відображає текст у синьому полі | -| abstract "анотація" | відображає світло-блакитне текстове поле | -| info "Інформація" | відображає синьо-зелене текстове поле | +| тип | Опис | +| ------------------- | --------------------------------------------------------------------------------- | +| note "примітка" | відображає текст у синьому полі | +| abstract "анотація" | відображає світло-блакитне текстове поле | +| info "Інформація" | відображає синьо-зелене текстове поле | | tip "Підказка" | відображає синьо-зелене текстове поле (значок трохи зеленіший) | -| success "Успіх" | відображає зелене текстове поле | -| question "Питання" | відображає світло-зелене текстове поле | -| warning "Важливо" | відображає помаранчеве текстове поле | -| failure "Невдача" | відображає світло-червоне текстове поле | -| danger "Небезпечно" | відображає червоне текстове поле | -| bug "Помилка" | відображає червоне текстове поле | -| example "Приклад" | відображає фіолетове текстове поле | -| quote "Цитата" | відображає сіре текстове поле | -| custom ^1^ | завжди відображає синє текстове поле | -| custom ^2^ | використовує спеціальну назву в іншому типі | +| success "Успіх" | відображає зелене текстове поле | +| question "Питання" | відображає світло-зелене текстове поле | +| warning "Важливо" | відображає помаранчеве текстове поле | +| failure "Невдача" | відображає світло-червоне текстове поле | +| danger "Небезпечно" | відображає червоне текстове поле | +| bug "Помилка" | відображає червоне текстове поле | +| example "Приклад" | відображає фіолетове текстове поле | +| quote "Цитата" | відображає сіре текстове поле | +| custom ^1^ | завжди відображає синє текстове поле | +| custom ^2^ | використовує спеціальну назву в іншому типі | Попередження необмежені, як зазначено в custom 1 вище. Додайте спеціальний заголовок до будь-якого типу попередження, щоб отримати потрібний колір рамки для конкретного попередження, як зазначено в custom 2 вище. @@ -113,81 +94,85 @@ tags: Ось приклади кожного типу застережень і того, як вони виглядатимуть у вашому документі: -!!! note "Примітка" +!!! note текст -!!! abstract "анотація" +!!! abstract текст -!!! info "Інформація" +!!! info текст -!!! tip "Підказка" +!!! tip текст -!!! success "Успіх" +!!! success текст -!!! question "Питання" +!!! question текст -!!! warning "Важливо" +!!! warning текст -!!! failure "Невдача" +!!! failure текст -!!! danger "Небезпечно" +!!! danger текст !!! custom "Власний заголовок" + ``` Спеціальний тип^1^. Тут ми використали "спеціальний" як наш тип попередження. Знову ж таки, це завжди відображатиметься синім кольором. + ``` !!! warning "Власний заголовок" Спеціальний тип^2^. Ми змінили тип попередження «попередження» за допомогою спеціального заголовка. Ось як це виглядає: - - ``` - !!! warning "Власний заголовок" - ``` + + ` !!! warning "Власний заголовок" ` ### Попередження, що розгортаються Якщо застереження має дуже довгий вміст, розгляньте можливість використання розгорнутого застереження. Це розглядається як звичайне застереження, але починається з трьох знаків питання, а не з трьох знаків оклику. Застосовуються всі інші правила попередження. Попередження, що розгортається, виглядає так: -??? warning "Вміст попередження" +??? warning "" Це попередження, не дуже багато змісту. Ви б хотіли використовувати для цього звичайне попередження, але це лише приклад! Це виглядає так у вашому редакторі: -```text -??? warning "Вміст попередження" - - Це попередження, має не дуже багато змісту. Ви б хотіли використовувати для цього звичайне попередження, але це лише приклад! -``` +??? warning "" + + "Зміст попередження" + + Це попередження, яке не має особливого змісту. Ви б хотіли використовувати для цього звичайне попередження, але це лише приклад! ## Вміст із вкладками в документі Вміст із вкладками форматується подібно до попереджень. Замість трьох знаків оклику чи питання, він починається трьома знаками рівності. Усе форматування попередження (4 пробіли тощо) застосовується до цього вмісту. Наприклад, для документації може знадобитися інша процедура для іншої версії Rocky Linux. Якщо для версій використовується вміст із вкладками, останній випуск Rocky Linux має бути першим. На момент написання цієї статті це було 9.0: -=== "9.0" +\=== "9.0" + ``` Процедура для цього в 9.0 + ``` -=== "8.6" +\=== "8.6" + ``` Процедура для цього в 8.6 + ``` У вашому редакторі це виглядатиме так: @@ -229,7 +214,7 @@ tags: 1. Коли ви маєте справу з багаторядковими нумерованими списками, які включають блоки коду, використовуйте відступ пробілу, щоб отримати те, що ви хочете. - Наприклад: це має відступ на чотири (4) пробіли та представляє новий абзац тексту. Крім того, ми додаємо блок коду. Він також має такі ж чотири (4) пробіли, як і наш абзац: + Наприклад: це має відступ на чотири (4) пробіли та представляє новий абзац тексту. Крім того, ми додаємо блок коду. Він також має такі ж чотири (4) пробіли, як і наш абзац: ```bash dnf update @@ -250,7 +235,7 @@ tags: ## Таблиці -У наведеному вище випадку таблиці допомагають нам розмістити параметри команд або типи попереджень і описи. This shows the entry of the table in the Admonitions section: +У наведеному вище випадку таблиці допомагають нам розмістити параметри команд або типи та описи попереджень. Це показує запис таблиці в розділі «Застереження»: ```text | type | Description | @@ -296,21 +281,23 @@ tags: ## Вбудовані та блочні кодові блоки -Our approach to the use of code blocks is pretty simple. Якщо `ваш код` достатньо короткий, щоб ви могли (і хотіли) використовувати його в реченні, яке ви щойно бачили, використовуйте одинарні зворотні галочки ++"`"++: +Наш підхід до використання блоків коду досить простий. Якщо `ваш код` достатньо короткий, щоб ви могли (і хотіли) використати його в реченні, як ви щойно бачили, використовуйте одинарні зворотні лапки ++"\`"++: ```bash Речення з `командою за вашим вибором`. ``` -Будь-яка команда, яка не використовується всередині текстового абзацу (особливо довгі шматки коду з кількома рядками), має бути повним блоком коду, визначеним потрійними зворотними галочками ++"```"++: +Будь-яка команда, яка не використовується всередині текстового абзацу (особливо довгі шматки коду з кількома рядками), має бути повним блоком коду, визначеним потрійними зворотними галочками ++"\`\`\`"++: ````markdown ```bash sudo dnf install the-kitchen-sink ``` ```` -Біт `bash` цього форматування є рекомендованим ідентифікатором коду для розмітки, але може допомогти підсвічувати синтаксис. Якщо ви демонструєте текст, Python, PHP, Ruby, HTML, CSS або будь-який інший код, «bash» зміниться на будь-яку мову, яку ви використовуєте. -До речі, якщо вам потрібно показати блок коду в блоці коду, додайте ще одну зворотну галочку ++"`"++ до батьківського блоку: + +Частина `bash` цього форматування є рекомендованим ідентифікатором коду Markdown, але може допомогти з підсвічуванням синтаксису. Якщо ви демонструєте текст, Python, PHP, Ruby, HTML, CSS або будь-який інший код, «bash» зміниться на будь-яку мову, яку ви використовуєте. + +До речі, якщо вам потрібно показати блок коду в блоці коду, додайте ще одну зворотну галочку ++"\`"++ до батьківського блоку: `````markdown ````markdown @@ -335,12 +322,15 @@ sudo dnf install the-kitchen-sink [root@localhost root] cd /usr/local ``` ```` + При використанні цього методу автоматичний переклад рядка також пригнічується. + ## Клавіатура -Інший спосіб додати якомога більше ясності вашим документам - це відобразити правильний спосіб введення клавіш на клавіатурі. У розмітці зробіть це, оточивши ключ або ключі подвійними знаками плюс (`++`). Зробіть це за допомогою `++key++`. Наприклад, щоб показати, що вам потрібно натиснути клавішу Esc у вашому документі, ви повинні використати `++escape++`. Якщо потрібно вказати натискання кількох клавіш, додайте між ними `+` так: `++ctrl+f4++`. Для клавіш, які не визначені (наприклад, ми вказуємо таємничу функціональну клавішу, `Fx` нижче), візьміть своє визначення в лапки (`++ctrl+"Fx"++`). Якщо потрібно натискати клавіші одночасно, додайте до своїх інструкцій «одночасно» або «одночасно» або іншу подібну фразу. Ось приклад клавіатурної інструкції у вашому редакторі: + +Інший спосіб додати якомога більше ясності вашим документам - це відобразити правильний спосіб введення клавіш на клавіатурі. У markdown це робиться шляхом обведення клавіші або клавіш подвійним знаком плюс (`++`). Зробіть це за допомогою `++key++`. Наприклад, щоб показати, що вам потрібно натиснути клавішу Escape у вашому документі, ви б використали `++escape++`. Коли вам потрібно вказати на натискання кількох клавіш, додайте знак `+` між ними ось так: `++ctrl+f4++`. Для клавіш, які не визначені (наприклад, нижче ми вказуємо на таємничу функціональну клавішу `Fx`), візьміть визначення в лапки (`++ctrl+"Fx"++`). Якщо потрібно натискати клавіші одночасно, додайте до своїх інструкцій «одночасно» або «одночасно» або іншу подібну фразу. Ось приклад клавіатурної інструкції у вашому редакторі: ```text -Інсталяція типу робочої станції (з графічним інтерфейсом) запускає цей інтерфейс на терміналі 1. Оскільки Linux є багатокористувацьким, можна підключати кількох користувачів кілька разів до різних **фізичних терміналів** (TTY) або **віртуальних терміналів** (PTS). Віртуальні термінали доступні в графічному середовищі. Користувач перемикається з одного фізичного терміналу на інший за допомогою ++alt+"Fx"++ у командному рядку або за допомогою ++ctrl+alt+"Fx"++. +Інсталяція типу робочої станції (з графічним інтерфейсом) запускає цей інтерфейс на терміналі 1. Оскільки Linux є багатокористувацькою системою, можна підключити кількох користувачів кілька разів на різних **фізичних терміналах** (TTY) або **віртуальних терміналах** (PTS). Віртуальні термінали доступні в графічному середовищі. Користувач перемикається з одного фізичного термінала на інший за допомогою ++alt+"Fx"++ з командного рядка або ++ctrl+alt+"Fx"++. ``` Ось як це відображається під час відображення: @@ -349,7 +339,7 @@ sudo dnf install the-kitchen-sink Список прийнятих команд клавіатури [у цьому документі](https://facelessuser.github.io/pymdown-extensions/extensions/keys/#key-map-index). -!!! note "Примітка" +!!! note Ці комбінації клавіш завжди вводяться в нижньому регістрі, за винятком випадків, коли в лапках використовується спеціальна клавіатурна команда. @@ -357,32 +347,32 @@ sudo dnf install the-kitchen-sink Іноді простий ++enter++ на клавіатурі не дасть вам новий рядок у розмітці. Іноді це трапляється, коли в маркованих елементах використовується багато символів форматування. Ви також можете додати розрив рядка до тексту в кращому форматі. У таких випадках вам потрібно додати два пробіли в кінці рядка, де ви хочете створити новий рядок. Оскільки пробіли не будуть видимі в деяких редакторах розміток, у цьому прикладі показано введені пробіли: -* **Елемент маркера з додатковим форматуванням** ++пробіл+пробіл++ -* **Ще один елемент** +- **Елемент маркованого списку з додатковим форматуванням** ++пробіл+пробіл++ +- **Ще один елемент** ## Верхній, нижній індекс та спеціальні символи -Верхній і нижній індекси підтримуються в документації Rocky Linux за допомогою `^` для верхнього індексу та `~` для нижнього індексу. Верхній індекс розміщує текст, введений між тегами, трохи вище звичайного тексту, тоді як нижній індекс розміщує текст трохи нижче. Верхній індекс є найбільш часто використовуваним з цих двох на письмі. Деякі спеціальні символи вже з’являються в верхньому індексі без додавання тегів, але ви також можете комбінувати теги, щоб змінити орієнтацію цих символів, як показано на символі авторського права нижче. Ви можете використовувати верхній індекс, щоб: +У документації Rocky Linux підтримуються верхні та нижні індексні нотації за допомогою символів `^` для верхнього індексу та `~` для нижнього індексу. Верхній індекс розміщує текст, введений між тегами, трохи вище звичайного тексту, тоді як нижній індекс розміщує текст трохи нижче. Верхній індекс є найбільш часто використовуваним з цих двох на письмі. Деякі спеціальні символи вже з’являються в верхньому індексі без додавання тегів, але ви також можете комбінувати теги, щоб змінити орієнтацію цих символів, як показано на символі авторського права нижче. Ви можете використовувати верхній індекс, щоб: -* представити порядкові числа, наприклад 1^st^, 2^nd^, 3^rd^ -* символи авторського права та товарних знаків, наприклад ^©^, ^TM^, або ^™^, ^®&^ -* як позначення для посилань, наприклад так^1^, так^2^ та так^3^ +- представити порядкові числа, наприклад 1^st^, 2^nd^, 3^rd^ +- символи авторського права та торговельних марок, такі як ^©^, ^TM^ або ^™^, ^®&^ +- як позначення для посилань, наприклад так^1^, так^2^ та так^3^ -Деякі спеціальні символи, такі як © зазвичай не мають верхнього індексу, тоді як інші, наприклад ™, мають. +Деякі спеціальні символи, такі як ©, зазвичай не є верхніми індексами, тоді як інші, такі як ™, є. Ось як все вищесказане виглядає у вашому коді markdown: ```text -* позначають порядкові числівники, наприклад 1^st^, 2^nd^, 3^rd^ -* символи авторського права та товарних знаків, наприклад ^©^, ^TM^ або ^™^, ^®^ -* як позначення для посилань, наприклад this^1^, this^2^ і this^3^ +* позначають порядкові числа, такі як 1^st^, 2^nd^, 3^rd^ +* символи авторського права та торговельних марок, такі як ^©^, ^TM^ або ^™^, ^®^ +* як позначення для посилань, таких як this^1^, this^2^ та this^3^ -Деякі спеціальні символи, такі як © зазвичай не є верхнім індексом, тоді як інші, такі як ™, є. +Деякі спеціальні символи, такі як ©, зазвичай не є надрядковими, тоді як інші, такі як ™, є. ``` -Щоб змусити верхній індекс, обведіть потрібний верхній індекс `^`. +Щоб примусово використовувати верхній індекс, потрібно оточувати потрібний верхній індекс символом `^`. -Введіть нижній індекс, оточивши текст тегом `~` (H~2~0 це `H~2~0`), і, як зазначалося раніше, він майже не використовується в письмі. +Введіть нижній індекс, оточивши текст тегом `~` (H~2~0 є `H~2~0`), і, як зазначалося раніше, він не так часто використовується в письмовій формі. ### Верхній індекс для посилань @@ -413,47 +403,45 @@ or ## Виділення тексту -Ще один можливий спосіб покращити документацію за допомогою ==підсвічування==. Ви можете використовувати виділення, оточивши текст `==`. +Ще один можливий спосіб покращити документацію за допомогою ==підсвічування==. Підсвічування обробляється оточуванням тексту `==`. У вашому редакторі це виглядає так: ```bash -Ще один можливий спосіб покращити документацію за допомогою ==підсвічування==. Підсвічування обробляється оточуванням тексту `==`. +Ще один можливий спосіб покращити документацію – це використання ==highlighting==. Ви можете використовувати підсвічування, обрамляючи текст у `==`. ``` ## Групування різних типів форматування Документація Rocky пропонує кілька елегантних варіантів форматування при поєднанні кількох елементів в одному елементі. Наприклад, попередження з пронумерованим списком: -!!! note "Примітка" - - Усе може стати трохи божевільним, коли ви групуєте речі. Як коли: - - 1. Ви додаєте пронумерований список опцій до попередження +!!! note - 2. Або ви додаєте нумерований список із кількома блоками коду: - - ``` - dnf install some-great-package - ``` - - Це також є в нумерованому списку з кількох абзаців. + Групування елементів може призвести до певних незручностей. Наприклад, коли: + + 1. Ви додаєте нумерований список опцій у застереженні + + 2. Або ви додаєте нумерований список з кількома блоками коду: + + ` dnf install some-great-package ` + + Який також знаходиться всередині багатоабзацного нумерованого списку. Або у вас може бути пронумерований список із додатковим зауваженням: -1. Цей предмет є дуже важливим +1. Цей елемент є дуже важливим - Тут ми додаємо команду з клавіатури до елемента списку: + Тут ми додаємо команду з клавіатури до елемента списку: - Натисніть ++escape++ без особливої причини. + Натисніть ++escape++ без особливої причини. -2. Але цей пункт є дуже важливим *і* містить кілька абзаців +2. Але цей пункт дуже важливий _і_ має кілька абзаців - І в середині це застереження: + І в середині це застереження: - !!! warning "Важливо" - - З кількома елементами в різних типах форматування все може стати трохи божевільним! + !!! warning + + З кількома елементами в різних типах форматування може бути трохи складно! Якщо ви будете стежити за магічними чотирма (4) пробілами, щоб робити відступи та розділяти ці елементи, вони відображатимуться логічно та саме так, як ви хочете. Іноді це дійсно важливо. @@ -463,20 +451,22 @@ or 2. Якщо ви відчуваєте себе перевантаженими, подумайте про: - !!! warning "важливо: я думаю, що болить мозок!" - - Поєднуючи кілька елементів форматування, ваш мозок може трохи збожеволіти. Подумайте про те, щоб висмоктати трохи кофеїну, перш ніж почати! - - | тип | добова норма кофеїну | - |-----------------|------------------------------ ---| - | чай | зрештою це приведе вас туди | - | кава | для вибагливих смакових рецепторів | - | red bull | на смак жахливий, але він вас утримає! | - | гірська роса | над розкрученим | - - > **цукор**, якщо кофеїн вам не подобається - - > **потерпіть**, якщо нічого не допомагає, зосередьтеся більше + !!! warning "важливо: здається, у мене болить мозок!" + + ``` + Під час поєднання кількох елементів форматування ваш мозок може трохи збожеволіти. Подумайте про те, щоб випити трохи більше кофеїну, перш ніж почати! + + | type | caffeine daily allowance | + |-----------------|----------------------------------| + | tea | it will get you there eventually | + | coffee | for discerning taste buds | + | red bull | tastes terrible - but it will keep you going! | + | mountain dew | over hyped | + + > **sugar** if caffeine is not to your liking + + > **suffer** if all else fails, concentrate more + ``` 3. Є більше прикладів, але наведене вище повинно показати, що все може бути вкладено всередину. Просто запам’ятайте чотири (4) магічних місця. @@ -484,79 +474,79 @@ or ```text -Поки ви стежите за чарівними чотирма (4) пробілами для розділення цих предметів, вони відображатимуться логічно й саме так, як ви хочете. Іноді це дійсно важливо. +As long as you keep track of the magic four (4) spaces to separate these items, they will display logically and exactly the way you want them to. Sometimes that is really important. -Ви можете вставити таблицю або заблокувати цитату (буквально будь-який тип елемента форматування) в іншу. Тут є пронумерований список, застереження, таблиця та деякі елементи блок-цитат, усі разом: +You can even embed a table or block quote (literally any formatting item type) within another one. Here have a numbered list, an admonition, a table, and some block quote elements all bundled together: -1. Намагатися встигати за всім, що відбувається у вашому документі, може бути справжньою проблемою під час роботи з кількома елементами. +1. Trying to keep up with everything that is going on in your document can be a real task when working with multiple elements. -2. Якщо ви відчуваєте себе перевантаженими, подумайте про: +2. If you are feeling overwhelmed, consider: - !!! warning "важливо: я думаю, що болить мозок!" + !!! warning "important: I think my brain hurts!" - Поєднуючи кілька елементів форматування, ваш мозок може трохи збожеволіти. Подумайте про те, щоб висмоктати трохи кофеїну, перш ніж почати! + When combining multiple formatting elements, your brain can go a little crazy. Consider sucking down some extra caffeine before you begin! - | тип | добова норма кофеїну | + | type | caffeine daily allowance | |-----------------|----------------------------------| - | чай | зрештою це приведе вас туди | - | кава | для вибагливих смакових рецепторів | - | red bull | на смак жахливий, але він вас утримає! | - | mountain dew | роздутий | + | tea | it will get you there eventually | + | coffee | for discerning taste buds | + | red bull | tastes terrible - but it will keep you going! | + | mountain dew | over hyped | - > **цукор** якщо кофеїн вам не до вподоби + > **sugar** if caffeine is not to your liking - > **страждання** якщо нічого не допомагає, зосередьтеся більше + > **suffer** if all else fails, concentrate more -3. Є більше прикладів, але наведене вище повинно показати, що все може бути вкладено всередину. Просто запам’ятайте чотири (4) магічних місця. +3. Many examples exist, but the above illustrates that it is possible to nest everything within. Just remember the four (4) magic spaces. ``` ## Символи, що не відображаються -У розмітці є деякі символи, які не відображаються належним чином. Іноді це тому, що ці символи є HTML або іншими типами тегів (наприклад, посилання). Під час написання документації може бути час, коли вам **потрібно** відобразити ці символи, щоб донести свою думку. Правило відображення цих символів полягає в тому, щоб їх екранувати. Ось таблиця цих символів, що не відображаються, за якою йде блок коду, який показує код таблиці. +У розмітці є деякі символи, які не відображаються належним чином. Іноді це тому, що ці символи є HTML або іншими типами тегів (наприклад, посилання). Під час написання документації можуть виникнути випадки, коли вам **потрібно** відобразити ці символи, щоб донести свою думку. Правило відображення цих символів полягає в тому, щоб їх екранувати. Ось таблиця цих символів, що не відображаються, за якою йде блок коду, який показує код таблиці. -| символ | опис | -| ------- | ------------------------------------------------------------- | -| \\ | зворотна коса риска (використовується для екранування) | -| \` | зворотна галочка (використовується для блоків коду) | -| \* | зірочка (використовується для списків) | -| \_ | підкреслення | -| \{ \} | фігурні дужки | +| символ | опис | +| ----------------------------------------------------------- | -------------------------------------------------------------------------------- | +| \\ | зворотна коса риска (використовується для екранування) | +| \\` | зворотна галочка (використовується для блоків коду) | +| \* | зірочка (використовується для списків) | +| \_ | підкреслення | +| \{ \} | фігурні дужки | | \[ \] | дужки (використовуються для заголовків посилань) | -| < > | кутові дужки (використовуються для прямого HTML) | -| \( \) | круглі дужки (використовуються для вмісту посилання) | -| \# | знак фунта (використовується для заголовків уцінки) | -| | | риска (використовується в таблицях) | -| + | знак плюс (використовується в таблицях) | -| - | знак мінус або дефіс (використовується в таблицях і маркерах) | -| ! | знак оклику (використовується в застереженнях і таблицях) | +| < > | кутові дужки (використовуються для прямого HTML) | +| \( \) | круглі дужки (використовуються для вмісту посилання) | +| \# | знак фунта (використовується для заголовків уцінки) | +| | | риска (використовується в таблицях) | +| + | знак плюс (використовується в таблицях) | +| - | знак мінус або дефіс (використовується в таблицях і маркерах) | +| ! | знак оклику (використовується в застереженнях і таблицях) | Ця таблиця в коді: ```table -| символ | опис | +| symbol | description | |-------------|---------------------------------------------------| -| \\ | зворотна коса риска (використовується для екранування) | -| \` | зворотна галочка (використовується для блоків коду) | -| \* | зірочка (використовується для списків) | -| \_ | підкреслення | -| \{ \} | фігурні дужки | -| \[ \] | дужки (використовуються для заголовків посилань) | -| < > | кутові дужки (використовуються для прямого HTML) | -| \( \) | круглі дужки (використовуються для вмісту посилання) | -| \# | знак номеру (використовується для заголовків) | -| | | риска (використовується в таблицях) | -| + | знак плюс (використовується в таблицях) | -| - | знак мінус або дефіс (використовується в таблицях і маркерах | -| ! | вигук (використовується в застереженнях і таблицях) | +| \\ | backslash (used for escaping) | +| \` | backtick (used for code blocks) | +| \* | asterisk (used for bullets) | +| \_ | underscore | +| \{ \} | curly braces | +| \[ \] | brackets (used for link titles) | +| < > | angle brackets (used for direct HTML) | +| \( \) | parentheses (used for link content) | +| \# | pound sign (used for markdown headers) | +| | | pipe (used in tables) | +| + | plus sign (used in tables) | +| - | minus sign or hyphen (used in tables and bullets) | +| ! | exclamation (used in admonitions and tables) | ``` Останній код показує, що певні символи потребують коду символів HTML, якщо вони використовуються в таблиці. -У реальному тексті ви б уникли символу. Наприклад, `\|` покаже символ труби, `\>` покаже символ кутової дужки, `\+` покаже знак плюс, `\-` покаже знак мінус, а `\!` покаже знак оклику. +У реальному тексті ви б уникли символу. Наприклад, `\|` покаже символ вертикальної лінії, `\>` покаже символ кутової дужки, `\+` покаже знак плюс, `\-` покаже знак мінус, а `\!` покаже знак оклику. Ви можете побачити, що якщо ми позбудемося задніх галочок у цьому реченні: -У реальному тексті ви б уникли символу. Наприклад, \| відобразиться символ труби \> покаже символ кутової дужки, \+ покаже знак плюс, \- покаже знак мінус, а \! покаже знак оклику. +У реальному тексті ви б уникли символу. Наприклад, \| покаже символ вертикальної лінії, \> покаже символ кутової дужки, \+ покаже знак плюс, \- покаже знак мінус, а \! покаже знак оклику. ## Останній пункт – коментарі @@ -566,7 +556,7 @@ or ```text -[//]: Це коментар, який буде замінено пізніше +[//]: Цей коментар буде замінено пізніше ``` @@ -574,18 +564,18 @@ or ## Більше читання -* Rocky Linux [документ про те, як зробити внесок](README.md) +- Rocky Linux [документ про те, як зробити внесок] (README.md) -* Докладніше про [застереження](https://squidfunk.github.io/mkdocs-material/reference/admonitions/#supported-types) +- Більше про [застереження](https://squidfunk.github.io/mkdocs-material/reference/admonitions/#supported-types) -* [Коротка довідка щодо уцінки](https://wordpress.com/support/markdown-quick-reference/) +- [Короткий довідник з Markdown](https://wordpress.com/support/markdown-quick-reference/) -* [Більше коротких довідників](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet) для Markdown +- [Більше коротких довідників](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet) для Markdown ## Висновок Форматування документа за допомогою заголовків, попереджень, таблиць, нумерованих списків і цитат може додати чіткості вашому документу. Використовуючи поради, подбайте про те, щоб вибрати правильний тип. Це може полегшити візуальне розуміння важливості конкретного застереження. -Вам не *потрібно* використовувати розширені параметри форматування. Надмірне використання спеціальних елементів може додати безладу. Навчання використовувати ці елементи форматування консервативно та добре може бути дуже корисним, щоб донести свою точку зору в документі. +Вам не _потрібно_ використовувати розширені параметри форматування. Надмірне використання спеціальних елементів може додати безладу. Навчання використовувати ці елементи форматування консервативно та добре може бути дуже корисним, щоб донести свою точку зору в документі. Нарешті, щоб спростити форматування, подумайте про те, щоб змінити значення TAB редактора розмітки на чотири (4) пробіли. diff --git a/docs/guides/contribute/style_guide.uk.md b/docs/guides/contribute/style_guide.uk.md index 33d2e49d80..53f09fa0b5 100644 --- a/docs/guides/contribute/style_guide.uk.md +++ b/docs/guides/contribute/style_guide.uk.md @@ -9,15 +9,15 @@ tags: # Керівництво по стилю Rocky Linux Documentation -*Rocky Linux — це корпоративний Linux, який найшвидше розвивається у світі, його документація також зростає в геометричній прогресії завдяки таким учасникам, як ви. Ваш вміст вітається в будь-якому форматі, і стилісти документів RL допоможуть вам узгодити його зі стандартами, викладеними тут.* +_Rocky Linux (RL) — це найшвидше зростаюча корпоративна Linux-система у світі, а її документація також зростає експоненціально завдяки таким учасникам, як ви. Ваш контент вітається в будь-якому форматі, а стилісти документів RL допоможуть вам узгодити його зі стандартами, викладеними тут._ ## Вступ ### Про -*Нові внески вітаються, щоб виростити це місце в Інтернеті для інформації про використання Rocky Linux. Ви можете створювати документи у зручному для вас форматі, а команда документації працюватиме з вами або іншим чином допоможе відформатувати їх, щоб вони виглядали та відчувалися частиною родини Rocky.* +_Нові внески вітаються, щоб перетворити цю сторінку на найкраще місце в Інтернеті для отримання інформації про використання Rocky Linux. Ви можете створювати документи у форматі, який вам підходить, а команда документації співпрацюватиме з вами або іншим чином допоможе відформатувати їх так, щоб вони виглядали та сприймалися як частина родини Rocky._ -У цьому посібнику описано стандарти стилю англійської мови, щоб **покращити читабельність, виділити виняткові випадки** та **поліпшити переклад** у документації Rocky Linux. Щодо запитань про стиль, які не розглядаються в цьому посібнику, зверніться до наступного: +У цьому посібнику викладено стандарти стилю англійської мови для **покращення читабельності, виділення особливих випадків** та **покращення роботи з перекладом** документації Rocky Linux. Щодо запитань про стиль, які не розглядаються в цьому посібнику, зверніться до наступного: - [Merriam Webster Dictionary](https://www.merriam-webster.com/) - [Chicago Manual of Style (CMOS), 17th ed.](https://www.chicagomanualofstyle.org/home.html) @@ -32,7 +32,7 @@ tags: ## Рекомендації щодо стилю -*Метою документації RL є використання чіткої та узгодженої мови для доступності та сприяння поточним перекладам.* +_Метою документації RL є використання чіткої та узгодженої мови для доступності та сприяння поточним перекладам._ ### Граматика і пунктуація @@ -52,20 +52,20 @@ tags: ### Голос і тон -- **Проста мова.** Це можна описати як *менш розмовний* стиль. Більшість нашої документації відповідає цьому стандарту. - - Уникайте метафор і ідіом. - - Скажіть те, що ви маєте на увазі, якомога меншою кількістю слів. - - Визначте та уникайте непотрібних технічних термінів. Подумайте, що ваша аудиторія – це переважно люди, які певною мірою знайомі з предметом, але можуть не бути експертами в цьому предметі. - - Винятки для простої мови: - - Більш розмовний стиль підходить для документації, адресованої новачкам або початківцям, або для написання вмісту, як-от дописів у блогах. - - Більш формальний або стислий стиль формулювання підходить для документації, адресованої досвідченим користувачам, або документації API (інтерфейс прикладного програмування). +- **Проста мова.** Описується як _менш розмовний_ стиль. Більшість нашої документації відповідає цьому стандарту. + - Уникайте метафор і ідіом. + - Скажіть те, що ви маєте на увазі, якомога меншою кількістю слів. + - Визначте та уникайте непотрібних технічних термінів. Подумайте, що ваша аудиторія – це переважно люди, які певною мірою знайомі з предметом, але можуть не бути експертами в цьому предметі. + - Винятки для простої мови: + - Більш розмовний стиль підходить для документації, адресованої новачкам або початківцям, або для написання вмісту, як-от дописів у блогах. + - Більш формальний або стислий стиль формулювання підходить для документації, адресованої досвідченим користувачам, або документації API (інтерфейс прикладного програмування). - **Інклюзивна мова.** - - Використання мови розвивається з часом. Деякі слова еволюціонували, щоб нести негативні конотації, тому документацію слід переписати, щоб використовувати нові слова. - - *Master/slave* стає *primary/secondary* або узгодженим організаційним стандартом. - - *Blacklist/whitelist* стає *blocklist/allowlist* або узгодженим організаційним стандартом. - - Під час створення документації ви можете подумати про інші відповідні приклади. - - Говорячи про особу *невідомої* або *небінарної* статі, зараз вважається прийнятним використовувати "вони" як займенник однини. - - Говорячи про свої здібності, формулюйте відповіді як *здібності*, а не *обмеження.* Наприклад, якщо вам цікаво, чи ми маємо документацію про запуск Steam на Rocky Linux, відповідь не просто «ні». Скоріше, «Здається, це чудове місце для вас, щоб створити щось, щоб додати до нашого дерева!» + - Використання мови розвивається з часом. Деякі слова еволюціонували, щоб нести негативні конотації, тому документацію слід переписати, щоб використовувати нові слова. + - _Master/slave_ стає _primary/secondary_ або узгодженим організаційним стандартом. + - _Blacklist/whitelist_ стає _blocklist/allowlist_ або узгодженим організаційним стандартом. + - Під час створення документації ви можете подумати про інші відповідні приклади. + - Говорячи про особу _невідомої_ або _небінарної_ статі, зараз вважається прийнятним використовувати "вони" як займенник однини. + - Коли ви говорите про свої можливості, формулюйте відповіді як _здібності_, а не _обмеження_. Наприклад, якщо вам цікаво, чи є у нас документація щодо запуску Steam на Rocky Linux, відповідь не буде просто «ні». Скоріше, «Здається, це чудове місце для вас, щоб створити щось, щоб додати до нашого дерева!» - **Уникайте скорочень.** Це допомагає з перекладом. Винятком є написання чогось у більш розмовному тоні, як-от публікації в блозі чи вітальні інструкції для нових учасників спільноти. - **Використовуйте active voice.** Active voice є точнішим і прямим і допомагає читачеві швидко зрозуміти ваш зміст. @@ -91,11 +91,11 @@ tags: - Текстові інструкції щодо інтерфейсу користувача: описуючи команду, яку потрібно ввести в інтерфейс користувача, використовуйте слово «enter», а не «put» або «type». Використовуйте блок коду, щоб написати команду (тобто встановити її зворотними галочками): -*Приклад тексту Markdown* `У полі **повідомлення про фіксацію** введіть update_thisdoc.` +_Приклад тексту Markdown_ `У полі **повідомлення про фіксацію** введіть update_thisdoc.` - Назви елементів інтерфейсу користувача: **жирним шрифтом** назви елементів інтерфейсу, таких як кнопки, пункти меню, назви діалогових вікон тощо, навіть якщо це слово не можна натиснути: -*Example Markdown text* `In the **Format** menu, click **Line Spacing**.` +_Example Markdown text_ `In the **Format** menu, click **Line Spacing**.` ## Структура @@ -107,13 +107,13 @@ tags: - **Рівень складності.** 1 зірка для легкого, 2 для середнього тощо. - **Час читання.** Щоб визначити це число, розділіть слова у вашому документі на швидкість читання 75 слів на хвилину. -### Застереження +### Попередження -У Markdown попередження — це спосіб помістити інформацію у вікно, щоб виділити її. Вони не є обов'язковими для документування, але можуть бути корисним інструментом. Дізнайтеся більше про застереження в нашому [Rocky Formatting doc](rockydocs_formatting.md). +У Markdown попередження — це спосіб помістити інформацію у вікно, щоб виділити її. Вони не є обов'язковими для документування, але можуть бути корисним інструментом. Дізнайтеся більше про застереження з нашого [документа Rocky Formatting] (rockydocs_formatting.md). ## Доступність -*Наступні стандарти покращують доступ до нашої документації для тих, хто користується такими засобами, як програми зчитування з екрана.* +_Наступні стандарти покращують доступ до нашої документації для тих, хто користується такими засобами, як програми зчитування з екрана._ ### Зображення @@ -135,7 +135,7 @@ tags: ### Кольори - Деяким елементам у Markdown, наприклад попередженням, призначено колір, щоб полегшити візуальне розуміння. Загалом, вони також мають присвоєну назву; наприклад, застереження «небезпека» відображає червону рамку, але також містить дескриптор «небезпека», вбудований в опис. Але, створюючи спеціальне попередження, майте на увазі, що колір не може бути єдиним засобом передачі команди або рівня попередження. -- Будь-яка команда, яка містить сенсорний напрямок, як-от *вище* або *нижче*, *колір*, *розмір*, *візуальне розташування* на сторінці тощо, також має включати напрямок, який можна передати лише текстовим описом. +- Будь-яка команда, яка містить сенсорний напрямок, як-от _вище_ або _нижче_, _колір_, _розмір_, _візуальне розташування_ на сторінці тощо, також має включати напрямок, який можна передати лише текстовим описом. - Створюючи графічний елемент, переконайтеся, що існує достатній контраст між кольорами переднього плану та фону, щоб програмі зчитування з екрана було легко інтерпретувати його. ### Заголовки @@ -146,8 +146,8 @@ tags: ## Підсумок -У цьому документі викладено наші стандарти внеску, зокрема **інструкції щодо стилю**, те, як **структурувати** ваш документ, і способи включення **інклюзивність** і **доступність** до тексту. Це стандарти, до яких ми прагнемо. У міру своїх можливостей пам’ятайте про ці стандарти під час створення та редагування документації. +У цьому документі викладено наші стандарти щодо внеску, зокрема **стильові рекомендації**, як **структурувати** ваш документ і способи врахування **інклюзивності** та **доступності** в тексті. Це стандарти, до яких ми прагнемо. У міру своїх можливостей пам’ятайте про ці стандарти під час створення та редагування документації. -Однак — і не пропустіть це застереження — **ставтеся до цих стандартів як до інструменту, а не як до перешкоди.** У дусі інклюзивності та доступності ми хочемо переконатися, що ваш внесок має плавне входження в сімейне дерево Роккі. Ми є дружньою командою документалістів і стилістів, які допомагають вам, і ми допоможемо привести ваш документ у його остаточний вигляд. +Однак — і не пропустіть це застереження — **ставтеся до цих стандартів як до інструменту, а не як до перешкоди**. У дусі інклюзивності та доступності ми хочемо забезпечити безперешкодне включення вашого внеску до генеалогічного дерева Роккі. Ми є дружньою командою документалістів і стилістів, які допомагають вам, і ми допоможемо привести ваш документ у його остаточний вигляд. Ви готові? Давайте розпочнемо! diff --git a/docs/guides/database/database_mariadb-server.uk.md b/docs/guides/database/database_mariadb-server.uk.md index 6e247deeea..8c667bb2f0 100644 --- a/docs/guides/database/database_mariadb-server.uk.md +++ b/docs/guides/database/database_mariadb-server.uk.md @@ -13,92 +13,65 @@ tags: ## Передумови - Сервер Rocky Linux -- Вміння працювати з редактором командного рядка (у цьому прикладі ми використовуємо *vi*) +- Вміння працювати з редактором командного рядка (у цьому прикладі ми використовуємо _vi_) - Високий рівень комфорту з видачею команд із командного рядка, переглядом журналів та іншими загальними обов’язками системного адміністратора -- Розуміння баз даних *mariadb-server* є корисним -- Усі команди виконуються від імені користувача root або *sudo* +- Розуміння баз даних _mariadb-server_ є корисним +- Усі команди виконуються від імені користувача root або _sudo_ ## Вступ -*Mariadb-сервер* і його клієнт *mariadb* є альтернативою *mysql-server* і *mysql* з відкритим вихідним кодом і мають спільну структуру команд. *mariadb-server* можна знайти запущеним на багатьох веб-серверах завдяки популярній +_mariadb-server_ та його клієнт _mariadb_ є альтернативами з відкритим кодом для _mysql-server_ та _mysql_, і вони мають спільну структуру команд. _mariadb-server_ працює на багатьох вебсерверах завдяки популярній [Wordpress CMS](https://wordpress.org/), яка його вимагає. Однак ця база даних має багато інших застосувань. -Wordpress CMS яка цього вимагає. Однак ця база даних має багато інших застосувань.

- -Якщо ви бажаєте використовувати це разом з іншими інструментами для посилення безпеки веб-сервера, поверніться до [посібника Apache Hardened Web Server](../web/apache_hardened_webserver/index.md). - - - -## Встановлення mariadb-сервера - -Вам потрібно встановити *mariadb-server*: +Якщо ви хочете використовувати це разом з іншими інструментами для посилення захисту веб-сервера, зверніться до [посібника Apache Hardened Web Server](../web/apache_hardened_webserver/index.md). +## Встановлення `mariadb-сервера` +Вам потрібно встановити _mariadb-server_: ```bash dnf install mariadb-server ``` +## Securing `mariadb-server` - - -## Захист mariadb-сервера - -Щоб посилити безпеку *mariadb-сервера*, вам потрібно запустити сценарій, але перед тим, як це зробити, вам потрібно ввімкнути та запустити mariadb: - - +Щоб посилити безпеку _mariadb-сервера_, вам потрібно запустити скрипт, але перед цим вам потрібно ввімкнути та запустити mariadb: ```bash systemctl enable --now mariadb ``` - Далі виконайте цю команду: - - ```bash mysql_secure_installation ``` +!!! tip -!!! tip "Підказка" - - Версія MariaDB-сервера, яка ввімкнена за замовчуванням у Rocky Linux 8.5, це 10.3.32. Ви можете встановити 10.5.13, увімкнувши модуль: + Версія mariadb-server, яка ввімкнена за замовчуванням у Rocky Linux 8.5, — 10.3.32. Ви можете встановити 10.5.13, увімкнувши модуль: - - - - ```bash - dnf module enable mariadb:10.5 - ``` - - - Потім ми встановлюємо `mariadb`. Починаючи з версії 10.4.6 MariaDB, доступні спеціальні команди MariaDB, які можна використовувати замість старих команд із префіксом `mysql`. До них відноситься раніше згадана `mysql_secure_installation`, яку тепер можна викликати за допомогою версії MariaDB `mariadb-secure-installation`. + `bash dnf module enable mariadb:10.5 ` + А потім встановлення `mariadb`. Починаючи з версії 10.4.6 MariaDB, доступні специфічні команди MariaDB, які можна використовувати замість старих команд з префіксом `mysql`. До них належать раніше згадана `mysql_secure_installation`, яку тепер можна викликати з версією MariaDB `mariadb-secure-installation`. Це викликає діалогове вікно: - - ```text NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY! -In order to log into MariaDB to secure it, we'll need the current -password for the root user. If you've just installed MariaDB, and -you haven't set the root password yet, the password will be blank, +In order to log into MariaDB to secure it, you will need the current +password for the root user. If you have just installed MariaDB, and +you have not set the root password yet, the password will be blank, so you should just press enter here. Enter current password for root (enter for none): ``` - -Оскільки це абсолютно нова інсталяція, пароль адміністратора не встановлено. Тож просто натисніть тут ++enter++. +Оскільки це абсолютно нова інсталяція, пароль root не встановлено. Просто натисніть тут ++enter++. Наступна частина діалогу продовжується: - - ```text OK, successfully used password, moving on... @@ -108,32 +81,23 @@ root user without the proper authorization. Set root password? [Y/n] ``` - -Ви абсолютно *обов'язково* бажаєте встановити пароль root. Ви захочете з’ясувати, що це має бути, і задокументувати це десь у менеджері паролів, щоб за потреби можна було його відкрити. Почніть із натискання ++enter++, щоб прийняти «Y» за умовчанням. Відкриється діалогове вікно пароля: - - +Ви абсолютно _обов'язково_ бажаєте встановити пароль root. Ви захочете з’ясувати, що це має бути, і задокументувати це десь у менеджері паролів, щоб за потреби можна було його відкрити. Почніть із натискання ++enter++, щоб прийняти «Y» за умовчанням. Відкриється діалогове вікно пароля: ```text New password: Re-enter new password: ``` - Введіть вибраний пароль, а потім підтвердіть його, ввівши ще раз. Якщо це буде успішно, ви отримаєте таке діалогове вікно: - - ```text Password updated successfully! Reloading privilege tables.. ... Success! ``` - Далі діалогове вікно має справу з анонімним користувачем: - - ```text By default, a MariaDB installation has an anonymous user, allowing anyone to log into MariaDB without having to have a user account created for @@ -144,13 +108,10 @@ production environment. Remove anonymous users? [Y/n] ``` - Відповідь тут "Y", тому просто натисніть ++enter++, щоб прийняти значення за умовчанням. Діалогове вікно переходить до розділу, що стосується дозволу користувача root входити віддалено: - - ```text ... Success! @@ -160,12 +121,9 @@ ensures that someone cannot guess at the root password from the network. Disallow root login remotely? [Y/n] ``` - root потрібен лише локально на машині. Тому також прийміть це значення за замовчуванням, натиснувши ++enter++. -Потім діалогове вікно переходить до «тестової» бази даних, яка автоматично встановлюється за допомогою *mariadb-server*: - - +Потім діалогове вікно переходить до «тестової» бази даних, яка автоматично встановлюється за допомогою _mariadb-server_: ```text ... Success! @@ -178,13 +136,10 @@ before moving into a production environment. Remove test database and access to it? [Y/n] ``` - Знову ж таки, відповідь є типовою, тому просто натисніть ++enter++, щоб видалити її. Нарешті, діалогове вікно запитає вас, чи бажаєте ви перезавантажити привілеї: - - ```text - Dropping test database... ... Success! @@ -197,11 +152,8 @@ will take effect immediately. Reload privilege tables now? [Y/n] ``` - Знову ж таки, просто натисніть ++enter++, щоб зробити це. Якщо все піде добре, ви повинні отримати це повідомлення: - - ```text ... Success! @@ -213,37 +165,26 @@ installation should now be secure. Thanks for using MariaDB! ``` - Тепер MariaDB має бути готова до використання. - - ### Зміни Rocky Linux 9.0 -Rocky Linux 9.2 використовує `mariadb-server-10.5.22` як версію mariadb-server за умовчанням. Починаючи з версії 10.4.3, на сервері автоматично вмикається новий плагін, який змінює діалогове вікно `mariadb-secure-installation`. Цей плагін є автентифікацією `unix-socket`. [Ця стаття](https://mariadb.com/kb/en/authentication-plugin-unix-socket/) добре пояснює нову функцію. По суті, під час автентифікації unix-сокетів для доступу до бази даних використовуються облікові дані користувача, який увійшов у систему. Це робить так, що якщо користувач root, наприклад, увійшов, а потім використав `mysqladmin` для створення або видалення бази даних (або будь-якої іншої функції), для доступу не потрібен пароль. Те саме працює з `mysql`. Це також означає, що немає пароля для віддаленого зламу. Це залежить від безпеки користувачів, налаштованих на сервері для захисту всіх баз даних. - -Друге діалогове вікно під час `mariadb-secure-installation` після встановлення пароля для адміністратора: - +Rocky Linux 9.2 використовує `mariadb-server-10.5.22` як версію mariadb-server за умовчанням. Починаючи з версії 10.4.3, на сервері автоматично вмикається новий плагін, який змінює діалогове вікно `mariadb-secure-installation`. Цей плагін є автентифікацією `unix-socket`. [У цій статті](https://mariadb.com/kb/en/authentication-plugin-unix-socket/) добре пояснюється нова функція. По суті, під час автентифікації unix-сокетів для доступу до бази даних використовуються облікові дані користувача, який увійшов у систему. Це робить так, що якщо, наприклад, користувач root входить у систему, а потім використовує `mysqladmin` для створення або видалення бази даних (або будь-якої іншої функції), для доступу не потрібен пароль. Те саме працює з `mysql`. Це також означає, що немає пароля для віддаленого зламу. Це залежить від безпеки користувачів, налаштованих на сервері для захисту всіх баз даних. +Друге діалогове вікно під час `mariadb-secure-installation` після встановлення пароля для користувача-адміністратора виглядає так: ```text Switch to unix_socket authentication Y/n ``` - За замовчуванням тут є «Y», але навіть якщо ви відповідаєте «n», коли плагін увімкнено, пароль для користувача не запитуватиметься, принаймні через інтерфейс командного рядка. Ви можете вказати пароль або не вказати пароль, і вони обидва працюють: - - ```bash mysql MariaDB [(none)]> ``` - - - ```bash mysql -p Enter password: @@ -251,11 +192,8 @@ Enter password: MariaDB [(none)]> ``` - Щоб дізнатися більше про цю функцію, перейдіть за посиланням вище. Існує спосіб вимкнути цей плагін і повернути пароль як обов’язкове поле, яке також детально описано в цьому посиланні. - - ## Висновок -Сервер бази даних, такий як *mariadb-server*, можна використовувати для багатьох цілей. Через популярність [CMS Wordpress](https://wordpress.org) її часто можна знайти на веб-серверах. Однак перед тим, як запускати базу даних у виробництві, доцільно посилити її захист. +Сервер бази даних, такий як _mariadb-server_, може використовуватися для багатьох цілей. Через популярність [CMS WordPress] (https://wordpress.org), її часто можна знайти на веб-серверах. Однак перед тим, як запускати базу даних у виробництві, доцільно посилити її захист. diff --git a/docs/guides/desktop/kde_installation.uk.md b/docs/guides/desktop/kde_installation.uk.md index 93cb319210..afa246398e 100644 --- a/docs/guides/desktop/kde_installation.uk.md +++ b/docs/guides/desktop/kde_installation.uk.md @@ -12,9 +12,9 @@ tags: Завдяки команді розробників Rocky Linux є живі образи для кількох установок на робочому столі, включаючи KDE. Для тих, хто може не знати, що таке живий образ, він завантажить ОС і середовище робочого столу за допомогою інсталяційного носія та дасть вам можливість попрацювати (випробувати) перед встановленням. -!!! note "Примітка" +!!! note - Ця процедура є специфічною для Rocky Linux 9. Наразі не існує процедури встановлення KDE для попередніх версій Rocky Linux. + Ця процедура є специфічною для Rocky Linux 9. Наразі не існує процедури встановлення KDE для попередніх версій Rocky Linux. Не соромтеся написати одну! ## Передумови @@ -25,7 +25,7 @@ tags: ## Отримання, перевірка та запис живого образу KDE -Першим кроком до інсталяції є завантаження живого образу та запис його на DVD або флешку USB. Як було зазначено раніше, образ буде завантажувальний, як і будь-який інший інсталяційний носій для Linux. Ви можете знайти останній образ KDE у розділі завантаження для Rocky Linux 9 [живі образи](https://dl.rockylinux.org/pub/rocky/9.6/live/x86_64/). +Першим кроком до інсталяції є завантаження живого образу та запис його на DVD або флешку USB. Як було зазначено раніше, образ буде завантажувальний, як і будь-який інший інсталяційний носій для Linux. Ви можете знайти найновіший образ KDE у розділі завантажень для Rocky Linux 9 [live-образи] (https://dl.rockylinux.org/pub/rocky/9.6/live/x86_64/). Зауважте, що це конкретне посилання передбачає x86_64 як архітектуру вашого процесора. Якщо у вас є архітектура aarch64, ви можете використовувати це зображення. Завантажте живий образ і файли контрольної суми. @@ -49,7 +49,7 @@ Rocky-9-KDE-x86_64-latest.iso: OK ![kde_boot](images/kde_boot.png) -Якщо так, то ви на вірному шляху! Якщо ви хочете перевірити носій, ви можете спочатку вибрати цей параметр або ввести **S**, щоб **запустити Rocky Linux KDE 9**. +Якщо так, то ви на вірному шляху! Якщо ви хочете протестувати носій, ви можете спочатку ввести цю опцію або ввести **S**, щоб **запустити Rocky Linux XFCE 9.0**. Пам’ятайте, що це живе зображення. Завантаження на перший екран займе деякий час. Не панікуйте, просто почекайте! Коли живе зображення з’явиться, ви побачите цей екран: @@ -57,22 +57,22 @@ Rocky-9-KDE-x86_64-latest.iso: OK ## Встановлення KDE -На цьому етапі ви можете використовувати середовище KDE і перевірити, чи воно вам подобається. Коли ви вирішите, що хочете використовувати його назавжди, двічі клацніть опцію **Установити на жорсткий диск**. +На цьому етапі ви можете використовувати середовище KDE і перевірити, чи воно вам подобається. Коли ви вирішите, що хочете використовувати його назавжди, двічі клацніть опцію **Install to Hard Drive**. Це почне знайомий процес встановлення для тих, хто встановив Rocky Linux. Перший екран дозволить вам змінити мову на вашу регіональну мову: ![kde_language](images/kde_language.png) -Після вибору мови та натискання **Продовжити** програма встановлення перейде до наступного екрана. Ми виділили те, що ви *можете* забажати змінити та/або перевірити: +Після вибору мови та натискання **Continue** програма встановлення перейде до наступного екрана. Ми виділили те, що ви _можете_ забажати змінити та/або перевірити: ![kde_install](images/kde_install.png) -1. **Keyboard**. Подивіться на цей параметр і переконайтеся, що він відповідає розкладці клавіатури, яку ви використовуєте. +1. **Клавіатура** – переконайтеся, що вона відповідає розкладці клавіатури, яку ви використовуєте. 2. **Time & Date** – переконайтеся, що вона відповідає вашому часовому поясу. 3. **Installation Destination**. Вам потрібно буде натиснути цей параметр, навіть якщо це потрібно для прийняття того, що вже є. -4. **Network & Host Name**. Переконайтеся, що тут є те, що ви хочете. Поки мережа ввімкнена, ви завжди можете змінити це пізніше, якщо знадобиться. -5. **Root Password** – встановіть пароль адміністратора. Не забудьте зберегти це в безпечному місці (менеджер паролів), головним чином, якщо ви не використовуєте його часто. -6. **User Creation** – обов’язково створіть принаймні одного користувача. Якщо ви хочете, щоб користувач мав права адміністратора, не забудьте встановити цей параметр під час створення користувача. +4. **Мережа та ім’я хоста** – Перевірте, чи у вас є все, що вам потрібно. Поки мережа ввімкнена, ви завжди можете змінити це пізніше, якщо знадобиться. +5. **Пароль root** – Встановіть пароль root. Не забудьте зберегти це в безпечному місці (менеджер паролів), головним чином, якщо ви не використовуєте його часто. +6. **Створення користувача** – Обов’язково створіть хоча б одного користувача. Якщо ви хочете, щоб користувач мав права адміністратора, не забудьте встановити цей параметр під час створення користувача. 7. **Begin Installation** – коли всі параметри встановлено або перевірено, натисніть цю опцію. Коли ви виконаєте крок 7, процес інсталяції має почати інсталяцію пакетів, як на знімку екрана нижче: diff --git a/docs/guides/desktop/mate_installation.uk.md b/docs/guides/desktop/mate_installation.uk.md index 5309a3cee0..41dba07d1b 100644 --- a/docs/guides/desktop/mate_installation.uk.md +++ b/docs/guides/desktop/mate_installation.uk.md @@ -16,11 +16,12 @@ tags: ## Передумови -* Комп’ютер (ноутбук або робоча станція) з екраном і всім необхідним. -* Бажання запустити робочий стіл MATE замість стандартного GNOME. +- Комп’ютер (ноутбук або робоча станція) з екраном і всім необхідним. +- Бажання запустити робочий стіл MATE замість стандартного GNOME. -=== "9" +\=== "9" + ```` ## 9: Вступ Команда розробників Rocky Linux 9 спростила встановлення MATE та інших популярних робочих середовищ, включивши живі образи. Для тих, хто може не знати, що це таке, живий образ – це завантажувальний образ, який завантажує ОС без встановлення. Після завантаження ви можете встановити його на дисковод вашої машини та використовувати. На додаток до інструкцій щодо живого образу, ми включили інструкції для тих із вас, хто хоче встановити MATE після встановлення ОС. @@ -33,19 +34,19 @@ tags: Тепер перевірте зображення за допомогою файлу CHECKSUM за допомогою наступного (зверніть увагу, це приклад! Переконайтеся, що назва вашого зображення та файли CHECKSUM збігаються): - + ``` sha256sum -c CHECKSUM --ignore-missing Rocky-9.6-MATE-x86_64-20250530.3.iso.CHECKSUM ``` - - + + Якщо все піде добре, ви повинні отримати це повідомлення: - + ``` Rocky-9.5-MATE-x86_64-20221124.0.iso: OK ``` - - + + Якщо контрольна сума для файлу повертає ОК, тепер ви готові записати образ ISO на носій. Ця процедура відрізняється залежно від вашої ОС, носія та інструментів. Ми припускаємо, що ви знаєте, як записати зображення на свій носій. ### 9: Завантаження @@ -67,7 +68,7 @@ tags: Це почне знайомий процес встановлення для тих, хто встановив Rocky Linux. На наступному екрані ми виділили речі, які ви *можете* захотіти змінити. ![mate_install](images/mate_install.png) - + 1. **Keyboard**. Подивіться на цей параметр і переконайтеся, що він відповідає розкладці клавіатури, яку ви використовуєте. 2. **Time & Date** – переконайтеся, що вона відповідає вашому часовому поясу. 3. **Installation Destination**. Вам потрібно буде натиснути цей параметр, навіть якщо це потрібно для прийняття того, що вже є. @@ -75,136 +76,139 @@ tags: 5. **Root Password** – встановіть пароль адміністратора. Не забудьте зберегти це в безпечному місці (менеджер паролів), головним чином, якщо ви не використовуєте його часто. 6. **User Creation** – обов’язково створіть принаймні одного користувача. Якщо ви хочете, щоб користувач мав права адміністратора, не забудьте встановити цей параметр під час створення користувача. 7. **Begin Installation** – коли всі параметри встановлено або перевірено, натисніть цю опцію. - + Коли ви виконаєте крок 7, процес інсталяції має почати інсталяцію пакетів, як на знімку екрана нижче: - + ![mate_install_2](images/mate_install_2.png) - + Після завершення інсталяції на жорсткий диск ви побачите такий екран: - + ![mate_install_final](images/mate_install_final.png) - + Натисніть **Finish Installation**. - + У цей момент ОС перезавантажиться. Видаліть завантажувальний носій, і коли ОС з’явиться вперше, з’явиться екран ліцензійної угоди: - + ![eula](images/eula.png) - + Поставте прапорець **Я приймаю ліцензійну угоду**, а потім натисніть **Готово**. Це приведе вас до останнього екрана, що стосується встановлення. На цьому екрані натисніть **Завершити налаштування**. - + ![mate_finish](images/mate_finish.png) - + Далі ви отримаєте екран входу з користувачем, якого ви створили вище. Введіть свій пароль, який переведе вас на робочий стіл MATE: - + ![mate_desktop](images/mate_desktop.png) - - + + ## 9: MATE після встановлення ОС - + MATE також можна встановити після встановлення ОС. Це вимагає ще кількох кроків, але це не складний процес. Просто дотримуйтесь цих інструкцій. - - + + ### 9: Увімкнення репозиторіїв - + Вам потрібні репозиторій CRB і репозиторій EPEL. Увімкніть їх зараз: - + ``` sudo dnf config-manager --set-enabled crb sudo dnf install epel-release ``` - + Запустіть `dnf upgrade`, щоб переконатися, що всі активовані репозиторії зчитуються в системі. - - + + ### 9: Встановлення пакетів - + Наступне, що нам потрібно, це багато пакунків. Ви можете встановити їх, просто скопіювавши та вставивши наступне в командний рядок на вашому комп’ютері: - + ``` sudo dnf install NetworkManager-adsl NetworkManager-bluetooth NetworkManager-libreswan-gnome NetworkManager-openvpn-gnome NetworkManager-ovs NetworkManager-ppp NetworkManager-team NetworkManager-wifi NetworkManager-wwan adwaita-gtk2-theme alsa-plugins-pulseaudio atril atril-caja atril-thumbnailer caja caja-actions caja-image-converter caja-open-terminal caja-sendto caja-wallpaper caja-xattr-tags dconf-editor engrampa eom firewall-config gnome-disk-utility gnome-epub-thumbnailer gstreamer1-plugins-ugly-free gtk2-engines gucharmap gvfs-fuse gvfs-gphoto2 gvfs-mtp gvfs-smb initial-setup-gui libmatekbd libmatemixer libmateweather libsecret lm_sensors marco mate-applets mate-backgrounds mate-calc mate-control-center mate-desktop mate-dictionary mate-disk-usage-analyzer mate-icon-theme mate-media mate-menus mate-menus-preferences-category-menu mate-notification-daemon mate-panel mate-polkit mate-power-manager mate-screensaver mate-screenshot mate-search-tool mate-session-manager mate-settings-daemon mate-system-log mate-system-monitor mate-terminal mate-themes mate-user-admin mate-user-guide mozo network-manager-applet nm-connection-editor p7zip p7zip-plugins pluma seahorse seahorse-caja xdg-user-dirs-gtk ``` - + Це встановить необхідні пакунки та всі залежності. - + Також встановіть ligtdm-settings і ligtdm: - + ``` sudo dnf install lightdm-settings lightdm ``` - - + + ### 9: Останні кроки - + Якщо перед установкою MATE у вашій системі був встановлений Gnome або інший робочий стіл, ви повинні бути готові до перезавантаження зараз. Якщо робочий стіл не встановлено, вам потрібно буде використати таку команду, щоб установити графічну ціль: - + ``` sudo systemctl set-default graphical.target ``` - + Потім перезавантажте - + ``` sudo reboot ``` - + Коли система перезавантажиться, клацніть своє ім’я користувача, але перш ніж вводити пароль, клацніть значок шестірні в нижньому правому куті екрана та виберіть MATE зі списку робочого столу. Потім увійдіть, і у вас має бути повнофункціональний робочий стіл MATE. Майбутні входи повинні пам'ятати ваш вибір. + ```` -=== "8" +\=== "8" + ```` ## 8: Встановіть Rocky Linux Minimal Під час встановлення Rocky Linux ми використовували такі набори пакетів: - + * Minimal * Standard - - + + ## 8: Увімкнення репозиторіїв - + Вам потрібні репозиторій CRB і репозиторій EPEL. Увімкніть їх зараз: - + ``` sudo dnf config-manager --set-enabled powertools sudo dnf install epel-release ``` - + Щоб встановити репозиторій EPEL, дайте відповідь «Y». - + Запустіть `dnf update`, щоб переконатися, що всі активовані репозиторії зчитуються в системі. - - + + ## 8: Встановлення пакетів - + Наступне, що нам потрібно, це багато пакунків. Ви можете встановити їх, просто скопіювавши та вставивши наступне в командний рядок на вашому комп’ютері: - + ``` sudo dnf install NetworkManager-adsl NetworkManager-bluetooth NetworkManager-libreswan-gnome NetworkManager-openvpn-gnome NetworkManager-ovs NetworkManager-ppp NetworkManager-team NetworkManager-wifi NetworkManager-wwan abrt-desktop abrt-java-connector adwaita-gtk2-theme alsa-plugins-pulseaudio atril atril-caja atril-thumbnailer caja caja-actions caja-image-converter caja-open-terminal caja-sendto caja-wallpaper caja-xattr-tags dconf-editor engrampa eom firewall-config gnome-disk-utility gnome-epub-thumbnailer gstreamer1-plugins-ugly-free gtk2-engines gucharmap gvfs-afc gvfs-afp gvfs-archive gvfs-fuse gvfs-gphoto2 gvfs-mtp gvfs-smb initial-setup-gui libmatekbd libmatemixer libmateweather libsecret lm_sensors marco mate-applets mate-backgrounds mate-calc mate-control-center mate-desktop mate-dictionary mate-disk-usage-analyzer mate-icon-theme mate-media mate-menus mate-menus-preferences-category-menu mate-notification-daemon mate-panel mate-polkit mate-power-manager mate-screensaver mate-screenshot mate-search-tool mate-session-manager mate-settings-daemon mate-system-log mate-system-monitor mate-terminal mate-themes mate-user-admin mate-user-guide mozo network-manager-applet nm-connection-editor p7zip p7zip-plugins pluma seahorse seahorse-caja xdg-user-dirs-gtk ``` - + Це встановить необхідні пакунки та всі залежності. - + Встановіть lightdm-settings і lightdm також: - + ``` sudo dnf install lightdm-settings lightdm ``` - - + + ## 8: Останні кроки - + Тепер, коли ми встановили все необхідне, ми повинні встановити мінімальну інсталяцію для завантаження в графічний інтерфейс користувача (GUI). Ми можемо зробити це, ввівши: - + ``` sudo systemctl set-default graphical.target ``` - + Тепер просто тримайте кулаки та перезавантажте: - + ``` sudo reboot ``` - + Далі клацніть своє ім’я користувача на екрані, але перш ніж ввести пароль і увійти, клацніть значок шестірні ліворуч від опції «Увійти». Виберіть «MATE» із доступних варіантів робочого столу, після чого ви зможете ввести свій пароль і увійти. Подальші входи запам'ятають ваш вибір. + ```` ## Висновок diff --git a/docs/guides/desktop/xfce_installation.uk.md b/docs/guides/desktop/xfce_installation.uk.md index db9149a718..f8a8cbfff2 100644 --- a/docs/guides/desktop/xfce_installation.uk.md +++ b/docs/guides/desktop/xfce_installation.uk.md @@ -1,8 +1,12 @@ -- - - -title: XFCE Desktop author: Gerard Arthus, Steven Spencer, Emre Camalan contributors: Steven Spencer, Antoine Le Morvan, K.Prasad, Ganna Zhyrnova tested_with: 8.9, 9.5 tags: +--- +title: XFCE Desktop +author: Gerard Arthus, Steven Spencer, Emre Camalan +contributors: Steven Spencer, Antoine Le Morvan, K.Prasad, Ganna Zhyrnova +tested_with: 8.9, 9.5 +tags: - xfce - робочий стіл -- - - +--- # Середовище робочого столу XFCE @@ -12,278 +16,130 @@ title: XFCE Desktop author: Gerard Arthus, Steven Spencer, Emre Camalan contribu ## Передумови -* Робоча станція або ноутбук -* Бажання запустити XFCE як робочий стіл замість стандартного робочого столу GNOME -* Для 9 мінімальних і 8 процедур, можливість `sudo` для підвищення привілеїв - -=== "9" - - ## 9: Вступ - - Команда розробників Rocky Linux 9 спростила встановлення XFCE та інших популярних робочих середовищ, включивши живі образи. Для тих, хто може не знати, що це таке, живий образ – це завантажувальний образ, який завантажує ОС без встановлення. Ви можете встановити його на дисковод вашої машини та використовувати після завантаження. - - ## 9: Отримайте, перевірте та запишіть живий образ XFCE - - Першим кроком до інсталяції є завантаження живого образу та запис його на DVD або флешку USB. Як було зазначено раніше, образ буде завантажувальний, як і будь-який інший інсталяційний носій для Linux. Ви можете знайти найновіший образ XFCE у розділі завантажень для Rocky Linux 9 [live-образи] (https://dl.rockylinux.org/pub/rocky/9.6/live/x86_64/). Зауважте, що це конкретне посилання передбачає, що x86_64 є архітектурою вашого процесора. - - На момент написання цієї статті ви можете використовувати архітектуру x86_64 або aarch64 для цього живого образу. Завантажте живий образ і файли контрольної суми. - - Тепер перевірте зображення за допомогою файлу CHECKSUM за допомогою наступного - (зверніть увагу, це приклад! Переконайтеся, що назва вашого зображення та файли CHECKSUM збігаються): +- Робоча станція або ноутбук +- Бажання запустити XFCE як робочий стіл замість стандартного робочого столу GNOME +- Для цієї процедури можливість використання команди `sudo` для підвищення привілеїв - ``` - sha256sum -c CHECKSUM --ignore-missing Rocky-9-XFCE-x86_64-latest.iso.CHECKSUM - ``` +## Встановлення Rocky Linux Minimal +!!! note - Якщо все піде добре, ви повинні побачити це повідомлення: + У цьому розділі вам потрібно буде або бути користувачем root, або мати можливість підвищити свої привілеї за допомогою команди `sudo`. - ``` - Rocky-9-XFCE-x86_64-latest.iso: OK - ``` +Під час встановлення Rocky Linux ми використовували такі набори пакетів: +- Minimal +- Standard - Якщо контрольна сума для файлу повертає ОК, тепер ви готові записати образ ISO на носій. Ця процедура відрізняється залежно від вашої ОС, носія та інструментів. Ми припускаємо, що ви знаєте, як записати зображення на свій носій. - - ## 9: Завантаження - - Знову ж таки, це залежить від машини, BIOS, ОС тощо. Вам потрібно буде переконатися, що ваша машина налаштована на завантаження будь-якого носія (DVD або USB) як першого завантажувального пристрою. Якщо все добре, з'явиться цей екран: - - ![xfce_boot](images/xfce_boot.png) - - Якщо так, то ви на вірному шляху! Якщо ви хочете протестувати носій, ви можете спочатку ввести цю опцію або ввести **S**, щоб **запустити Rocky Linux XFCE 9.0**. - - Пам’ятайте, це живе зображення. Завантаження на перший екран займе деякий час. Просто зачекайте! Коли живий образ завантажиться, ви побачите цей екран: - - - ![xfce_install](images/xfce_install.png) - - ## 9: Встановлення XFCE - - На цьому етапі ви можете використовувати середовище XFCE. Якщо ви вирішите використовувати його назавжди, двічі клацніть опцію «Встановити на жорсткий диск». - - Це почне знайомий процес встановлення для тих, хто встановив Rocky Linux. Перший екран дозволить вибрати мову за умовчанням: - - ![xfce_language](images/xfce_language.png) - - На наступному екрані буде кілька речей, які вам потрібно перевірити або змінити. Параметри пронумеровані для довідки: - - ![xfce_install2](images/xfce_install_2.png) - - 1. **Keyboard**. Подивіться на цей параметр і переконайтеся, що він відповідає розкладці клавіатури, яку ви використовуєте. - 2. **Time & Date** – переконайтеся, що вона відповідає вашому часовому поясу. - 3. **Installation Destination**. Вам потрібно буде натиснути цей параметр, навіть якщо це потрібно для прийняття того, що вже є. - 4. **Network & Host Name**. Переконайтеся, що тут є те, що ви хочете. Поки мережа ввімкнена, ви завжди можете змінити це пізніше, якщо знадобиться. - 5. **Root Password** – встановіть пароль адміністратора. Не забудьте зберегти це в безпечному місці (менеджер паролів), головним чином, якщо ви не використовуєте його часто. - 6. **User Creation** – обов’язково створіть принаймні одного користувача. Якщо ви хочете, щоб користувач мав права адміністратора, не забудьте встановити цей параметр під час створення користувача. - 7. **Begin Installation** – після завершення та перевірки натисніть цю опцію. - - Коли ви виконаєте крок 7, процес інсталяції має почати інсталяцію пакетів, як на знімку екрана нижче: - - ![xfce_install3](images/xfce_install_3.png) - - Після завершення інсталяції на жорсткий диск ви побачите такий екран: - - ![xfce_install_final](images/xfce_install_final.png) - - Натисніть **Finish Installation**. - - Коли ви це зробите, ви повернетеся до екрана живого зображення. Перезавантажте машину та видаліть завантажувальний носій, який використовувався для встановлення XFCE. - - Далі ви отримаєте екран входу з користувачем, якого ви створили вище. Введіть свій пароль, який переведе вас на робочий стіл XFCE: - - ![xfce_desktop](images/xfce_desktop.png) - -=== "9-minimal" - - ## 9 minimal: Вступ - - Якщо ви встановили Rocky Linux 9.x і вирішите встановити XFCE після цього, ця процедура допоможе вам це зробити. Ця процедура передбачає встановлення `Rocky-9.4-x86_64-minimal.iso`. - - ### Оновіть свою систему - - Спочатку переконайтеся, що ваша система оновлена: - - ```bash - sudo dnf update -y && dnf upgrade -y - ``` - +## Запуск оновлення системи - ![9_min1](images/xfce_9_min_1.png) - - По-друге, виконайте наведену нижче команду, щоб установити репозиторій epel-release, який містить усі пакунки, необхідні для встановлення для Xfce Desktop. +Спочатку запустіть команду оновлення сервера. Система перебудує кеш сховища. Таким чином система може розпізнавати доступні пакети. - ```bash - sudo dnf install epel-release -y - ``` +``` +dnf update +``` +## Увімкнення репозиторіїв - ![9_min2](images/xfce_9_min_2.png) - - ### Встановіть XFCE desktop - - Встановіть XFCE, виконавши цю команду: +Нам потрібен неофіційний репозиторій для XFCE у сховищі EPEL для роботи на версіях Rocky 8.x. - ```bash - sudo dnf groupinstall xfce -y - ``` +Увімкніть це сховище, ввівши: +``` +dnf install epel-release +``` - ![9_min3](images/xfce_9_min_3.png) - - ### Запуск робочого столу XFCE - - Ви можете запустити робочий стіл XFCE з командного рядка, якщо побачите повідомлення «Complete!» у виведенні команди та без помилок. +Щоб установити його, дайте відповідь «Y». - ```bash - sudo systemctl isolate graphical.target - ``` +Вам також потрібні репозиторії Powertools і lightdm. Увімкніть їх зараз: +``` +dnf config-manager --set-enabled powertools +dnf copr enable stenstorp/lightdm +``` - ### Увімкнути робочий стіл XFCE під час завантаження - - На цьому етапі ви встановили робочий стіл XFCE у системі та переконалися, що він працює, запустивши його з командного рядка. Якщо ви хочете, щоб ваша система завжди запускалася з XFCE замість командного рядка, ви повинні виконати таку команду. Вам потрібно буде спочатку відкрити термінал XFCE за допомогою значка 9 точок: +!!! Warning "Важливо" - ```bash - sudo systemctl set-default graphical.target ``` - - - ![9_min5](images/xfce_9_min_5.png) - - **Важливо:** Ви можете увійти за допомогою свого імені користувача та пароля root. - - ![9_min6](images/xfce_9_min_6.png) - - Тепер ви можете перевірити це. Перезавантажте систему за допомогою команди `sudo reboot`. Ви побачите, що ваша система відкривається на екрані входу на робочий стіл XFCE. - - ![9_min7](images/xfce_9_min_7.png) - -=== "8" - - ## 8: Встановлення Rocky Linux Minimal - - !!! note "Примітка" - - У цьому розділі вам потрібно буде або бути користувачем root, або мати можливість використовувати sudo, щоб підвищити свої привілеї. - - Під час встановлення Rocky Linux ми використовували такі набори пакетів: - - * Minimal - * Standard - - - ## 8: Запуск оновлення системи - - Спочатку запустіть команду оновлення сервера. Система перебудує кеш сховища. Таким чином система може розпізнавати доступні пакети. - - ``` - dnf update + Система збірки `copr` створює репозиторій, який, як відомо, працює для встановлення `lightdm`, але не підтримується спільнотою Rocky Linux. Використовуйте на свій страх і ризик! ``` +Знову вам буде запропоновано попередження про репозиторій. Дайте відповідь `Y` на підказку. - ## 8: Увімкнення репозиторіїв +## Перевіка доступних середовищ та інструментів в групі - Нам потрібен неофіційний репозиторій для XFCE у сховищі EPEL для роботи на версіях Rocky 8.x. +Тепер, коли репозиторії ввімкнено, виконайте наступні команди, щоб перевірити все. - Увімкніть це сховище, ввівши: +Спочатку перевірте свій список сховища за допомогою: - ``` - dnf install epel-release - ``` +``` +dnf repolist +``` - Щоб установити його, дайте відповідь «Y». +Ви повинні отримати наступне, що показує всі ввімкнені сховища: - Вам також потрібні репозиторії Powertools і lightdm. Увімкніть їх зараз: +```bash +appstream Rocky Linux 8 - AppStream +baseos Rocky Linux 8 - BaseOS +copr:copr.fedorainfracloud.org:stenstorp:lightdm Copr repo for lightdm owned by stenstorp +epel Extra Packages for Enterprise Linux 8 - x86_64 +epel-modular Extra Packages for Enterprise Linux Modular 8 - x86_64 +extras Rocky Linux 8 - Extras +powertools Rocky Linux 8 - PowerTools +``` - ``` - dnf config-manager --set-enabled powertools - dnf copr enable stenstorp/lightdm - ``` +Виконайте наступну команду для перевірки XFCE: - !!! Warning "Увага" +``` +dnf grouplist +``` - Система збірки `copr` створює репозиторій, який, як відомо, працює для встановлення `lightdm`, але не підтримується спільнотою Rocky Linux. Використовуйте на свій страх і ризик! +Ви повинні побачити "Xfce" у нижній частині списку. - Знову вам буде запропоновано попередження про репозиторій. Дайте відповідь `Y` на підказку. +Запустіть `dnf update` ще раз, щоб переконатися, що всі активовані репозиторії зчитуються в системі. +## Встановлення пакетів - ## 8: Перевірте доступні середовища та інструменти в групі +Щоб встановити XFCE, запустіть: - Тепер, коли репозиторії ввімкнено, виконайте наступні команди, щоб перевірити все. +``` +dnf groupinstall "xfce" +``` - Спочатку перевірте свій список сховища за допомогою: +Також встановіть lightdm: - ``` - dnf repolist - ``` +``` +dnf install lightdm +``` - Ви повинні отримати наступне, що показує всі ввімкнені сховища: +## Останні кроки - ```bash - appstream Rocky Linux 8 - AppStream - baseos Rocky Linux 8 - BaseOS - copr:copr.fedorainfracloud.org:stenstorp:lightdm Copr repo for lightdm owned by stenstorp - epel Extra Packages for Enterprise Linux 8 - x86_64 - epel-modular Extra Packages for Enterprise Linux Modular 8 - x86_64 - extras Rocky Linux 8 - Extras - powertools Rocky Linux 8 - PowerTools - ``` +Вам потрібно вимкнути `gdm`, який додається та вмикається під час _dnf groupinstall "xfce"_: - Виконайте наступну команду для перевірки XFCE: +``` +systemctl disable gdm +``` - ``` - dnf grouplist - ``` - - Ви повинні побачити «Xfce» у нижній частині списку. - - Запустіть `dnf update` ще раз, щоб переконатися, що всі активовані репозиторії зчитуються в системі. - - - ## 8: Встановлення пакетів - - Щоб встановити XFCE, запустіть: - - ``` - dnf groupinstall "xfce" - ``` - - Також встановіть lightdm: - - ``` - dnf install lightdm - ``` +Тепер ви можете увімкнути _lightdm_: +``` +systemctl enable lightdm +``` - ## 8: Останні кроки +Після завантаження потрібно вказати системі використовувати лише графічний інтерфейс користувача. Встановіть цільову систему за замовчуванням на інтерфейс GUI: - Вам потрібно вимкнути `gdm`, який додається та вмикається під час *dnf groupinstall "xfce"*: +``` +systemctl set-default graphical.target +``` - ``` - systemctl disable gdm - ``` - - Тепер ви можете ввімкнути *lightdm*: - - ``` - systemctl enable lightdm - ``` - - Вам потрібно повідомити системі після завантаження використовувати лише графічний інтерфейс користувача. Встановіть цільову систему за замовчуванням на інтерфейс GUI: +Потім перезавантажте: - ``` - systemctl set-default graphical.target - ``` - - Потім перезавантажте: - - ``` - reboot - ``` +``` +reboot +``` - Ви маєте отримати запит на вхід у графічний інтерфейс XFCE, і коли ви ввійдете, ви матимете все середовище XFCE. +Ви маєте отримати запит на вхід у графічний інтерфейс XFCE, і коли ви ввійдете, ви матимете все середовище XFCE. ## Висновок -XFCE — це легке середовище з простим інтерфейсом. Це альтернатива стандартному робочому столу GNOME у Rocky Linux. Якщо ви використовуєте Rocky Linux 9, розробники створили зручний живий образ, який пришвидшує процес встановлення. +XFCE — це легке середовище з простим інтерфейсом. Це альтернатива стандартному робочому столу GNOME у Rocky Linux. diff --git a/docs/guides/dns/private_dns_server_using_bind.uk.md b/docs/guides/dns/private_dns_server_using_bind.uk.md index c6294647b0..de64c5702e 100644 --- a/docs/guides/dns/private_dns_server_using_bind.uk.md +++ b/docs/guides/dns/private_dns_server_using_bind.uk.md @@ -16,18 +16,18 @@ tags: - Кілька внутрішніх серверів, яким потрібен лише локальний доступ, а не через Інтернет - Кілька робочих станцій, яким потрібен доступ до тих самих серверів, які існують в одній мережі - Здоровий рівень комфорту при введенні команд із командного рядка -- Знайомство з редактором командного рядка (у цьому прикладі ми використовуємо *vi*) -- Можливість використовувати *firewalld* для створення правил брандмауера +- Знайомство з редактором командного рядка (у цьому прикладі ми використовуємо _vi_) +- Можливість використовувати _firewalld_ для створення правил брандмауера ## Вступ Зовнішні або загальнодоступні DNS-сервери відображають імена хостів на IP-адреси, а у випадку записів PTR (відомих як «вказівник» або «зворотний»), відображають IP-адреси в імені хоста. Це важлива частина Інтернету. Завдяки цьому ваш поштовий сервер, веб-сервер, FTP-сервер або багато інших серверів і служб працюють належним чином, незалежно від того, де ви знаходитесь. -У приватній мережі, зокрема для розробки багатьох систем, ви можете використовувати файл */etc/hosts* вашої робочої станції Rocky Linux, щоб зіставити ім’я з IP-адресою. +У приватній мережі, зокрема для розробки багатьох систем, ви можете використовувати файл _/etc/hosts_ вашої робочої станції Rocky Linux, щоб зіставити ім’я з IP-адресою. -Це працюватиме для *вашої* робочої станції, але не для будь-якої іншої машини у вашій мережі. Найкращий спосіб зробити речі універсальними — це взяти деякий час і створити локальний приватний DNS-сервер, який оброблятиме це для всіх ваших машин. +Це працюватиме для _вашої_ робочої станції, але не для жодної іншої машини у вашій мережі. Найкращий спосіб зробити речі універсальними — це взяти деякий час і створити локальний приватний DNS-сервер, який оброблятиме це для всіх ваших машин. -Припустімо, ви створюєте загальнодоступні DNS-сервери та резолвери робочого рівня. У такому випадку автор рекомендує надійніший авторитетний і рекурсивний DNS [PowerDNS](https://www.powerdns.com/), який можна встановити на серверах Rocky Linux. Однак цей документ призначений для локальної мережі, яка не відкриває свої DNS-сервери для зовнішнього світу. Ось чому автор вибрав для цього прикладу `bind`. +Припустімо, ви створюєте загальнодоступні DNS-сервери та резолвери робочого рівня. У такому разі, автор рекомендує надійніший авторитетний та рекурсивний DNS [PowerDNS](https://www.powerdns.com/), який можна встановити на серверах Rocky Linux. Однак цей документ призначений для локальної мережі, яка не відкриває свої DNS-сервери для зовнішнього світу. Ось чому автор обрав `bind` для цього прикладу. ### Пояснення компонентів DNS-сервера @@ -43,7 +43,7 @@ DNS поділяє служби на авторитетні та рекурси dnf install bind bind-utils ``` -Службовий демон *bind* має `named`. Увімкніть це для запуску під час завантаження: +Демон служби _bind_ має назву `named`. Увімкніть це для запуску під час завантаження: ```bash systemctl enable named @@ -57,15 +57,15 @@ systemctl start named ## Конфігурація -Перш ніж вносити зміни до будь-якого файлу конфігурації, створіть резервну копію вихідного встановленого робочого файлу *named.conf*: +Перш ніж вносити зміни до будь-якого файлу конфігурації, створіть резервну копію вихідного встановленого робочого файлу _named.conf_: ```bash cp /etc/named.conf /etc/named.conf.orig ``` -Це допоможе в майбутньому, якщо станеться введення помилок у файл конфігурації. *Завжди* є чудовою ідеєю зробити резервну копію перед внесенням змін. +Це допоможе в майбутньому, якщо станеться введення помилок у файл конфігурації. _Завжди_ гарною ідеєю є створення резервної копії перед внесенням змін. -Відредагуйте файл *named.conf*. Автор використовує *vi*, але ви можете замінити його улюбленим редактором командного рядка: +Відредагуйте файл _named.conf_. Автор використовує _vi_, але ви можете замінити його своїм улюбленим редактором командного рядка: ```bash vi /etc/named.conf @@ -83,7 +83,7 @@ options { # listen-on-v6 port 53 { ::1; }; ``` -Нарешті, перейдіть до кінця файлу *named.conf* і додайте розділ для вашої мережі. Наш приклад — «ourdomain», тож підставте те, що ви хочете назвати хостами локальної мережі: +Нарешті, перейдіть до кінця файлу _named.conf_ та додайте розділ для вашої мережі. Наш приклад — «ourdomain», тож підставте те, що ви хочете назвати хостами локальної мережі: ```bash # primary forward and reverse zones @@ -103,11 +103,11 @@ zone "1.168.192.in-addr.arpa" IN { }; ``` -Збережіть зміни (для *vi*, ++shift+colon+w+q+exclam++) +Збережіть зміни (для _vi_, ++shift+colon+w+q+exclam++) ## Прямі та зворотні записи -Вам потрібно створити два файли в `/var/named`. Ви будете редагувати ці файли, якщо додасте машини до своєї мережі, щоб включити їх у DNS. +Вам потрібно створити два файли у `/var/named`. Ви будете редагувати ці файли, якщо додасте машини до своєї мережі, щоб включити їх у DNS. Перший — це файл пересилання, щоб зіставити нашу IP-адресу з іменем хоста. Знову ж таки, ми використовуємо "ourdomain" як приклад. Зверніть увагу, що IP-адреса нашого локального DNS тут 192.168.1.136. Хости додаються внизу цього файлу. @@ -174,11 +174,11 @@ $TTL 86400 ### Що все це означає -Оскільки ви все це додали та готуєтеся перезапустити наш DNS-сервер *bind*, давайте розглянемо деякі терміни, які використовуються в цих двох файлах. +Оскільки ви все це додали та готуєтеся перезапустити наш DNS-сервер _bind_, давайте розглянемо деякі терміни, які використовуються в цих двох файлах. Просто змушувати все працювати недостатньо, якщо ви не знаєте, що означає кожен термін, чи не так? -- **TTL** означає "Time To Live". TTL повідомляє DNS-серверу, як довго зберігати його кеш, перш ніж запитувати нову копію. У цьому випадку TTL є налаштуванням за замовчуванням для всіх записів, якщо не встановлено певний TTL запису. За замовчуванням тут встановлено 86400 секунд або 24 години. +- **TTL** розшифровується як «Time To Live (Час жити)». TTL повідомляє DNS-серверу, як довго зберігати його кеш, перш ніж запитувати нову копію. У цьому випадку TTL є налаштуванням за замовчуванням для всіх записів, якщо не встановлено певний TTL запису. За замовчуванням тут встановлено 86400 секунд або 24 години. - **IN** означає Інтернет. У цьому випадку ми не використовуємо Інтернет. Подумайте про це як про інтранет. - **SOA** означає "Start Of Authority" або те, що є основним сервером DNS для домену. - **NS** означає "сервер імен" @@ -191,7 +191,7 @@ $TTL 86400 ## Тестування конфігурацій -Коли ви створите всі свої файли, вам потрібно переконатися, що файли конфігурації та зони працюють у належному стані, перш ніж запускати службу *bind* знову. +Коли ви створите всі свої файли, вам потрібно переконатися, що файли конфігурації та зони працюють у належному стані, перш ніж запускати службу _bind_ знову. Перевірте основну конфігурацію: @@ -227,30 +227,31 @@ zone 192.168.1.136/IN: loaded serial 2019061800 OK ``` -Якщо припустити, що все виглядає добре, перезапустіть *bind*: +Якщо припустити, що все виглядає добре, перезапустіть _bind_: ```bash systemctl restart named ``` -=== "9" +\=== "9" + ```` ## 9 за допомогою IPv4 у вашій локальній мережі Щоб використовувати ТІЛЬКИ IPv4 у вашій локальній мережі, вам потрібно внести одну зміну в `/etc/sysconfig/named`: - + ``` vi /etc/sysconfig/named ``` - - + + а потім додайте це внизу файлу: - + ``` OPTIONS="-4" ``` - - + + Збережіть зміни. ## 9 Тестування машин @@ -264,14 +265,14 @@ systemctl restart named ??? warning "Дурні імена профілів" У NetworkManager підключення змінюються не за назвою пристрою, а за назвою профілю. Це можуть бути такі речі, як "Wired connection 1" або "Wireless connection 1". Ви можете переглянути профіль, запустивши `nmcli` без будь-яких параметрів: - + ``` nmcli ``` - - + + Це покаже вам такі результати: - + ```bash enp0s3: connected to Wired Connection 1 "Intel 82540EM" @@ -282,30 +283,30 @@ systemctl restart named route4 default via 192.168.1.1 metric 100 inet6 fe80::f511:a91b:90b:d9b9/64 route6 fe80::/64 metric 1024 - + lo: unmanaged "lo" loopback (unknown), 00:00:00:00:00:00, sw, mtu 65536 - + DNS configuration: servers: 192.168.1.1 domains: localdomain interface: enp0s3 - + Use "nmcli device show" to get complete information about known devices and "nmcli connection show" to get an overview on active connection profiles. ``` - - + + Перш ніж ми навіть почнемо змінювати з’єднання, ви повинні назвати це як-небудь розумне, наприклад ім’я інтерфейсу (**зверніть увагу**, що «\» нижче пропускає пробіли в назві): - + ``` nmcli connection modify Wired\ connection\ 1 con-name enp0s3 ``` - - + + Коли закінчите, знову запустіть `nmcli` самостійно, і ви побачите щось на зразок цього: - + ```bash enp0s3: connected to enp0s3 "Intel 82540EM" @@ -316,39 +317,41 @@ systemctl restart named route4 default via 192.168.1.1 metric 100 ... ``` - - + + Це значно спростить решту конфігурації DNS! Якщо припустити, що ім’я вашого профілю з’єднання – «enp0s3», ми включимо вже налаштований DNS, але спочатку додамо наш локальний DNS-сервер: - + ``` nmcli con mod enp0s3 ipv4.dns '192.168.1.138,192.168.1.1' ``` - - + + Ви можете мати більше DNS-серверів. Для комп’ютера, налаштованого на загальнодоступні DNS-сервери, скажімо, відкритий DNS Google, ви можете мати це замість цього: - + ``` nmcli con mod enp0s3 ipv4.dns '192.168.1.138,8.8.8.8,8.8.4.4' ``` - - + + Після того, як ви додасте DNS-сервери, які хочете з’єднати, ви зможете розпізнавати хости в *ourdomain.lan*, а також хости Інтернету. + ```` -=== "8" +\=== "8" + ```` ## 8 Використання IPv4 у вашій локальній мережі Вам потрібно внести дві зміни, якщо ви використовуєте лише IPv4 у своїй локальній мережі. Перший міститься в `/etc/named.conf`, а другий — у `/etc/sysconfig/named` Спочатку знову поверніться до файлу `named.conf` за допомогою `vi /etc/named.conf`. Нам потрібно додати наступний параметр у будь-якому місці розділу параметрів. - + ``` filter-aaaa-on-v4 yes; ``` - - + + Показано нижче: ![Додати фільтр IPv6](images/dns_filter.png) @@ -356,19 +359,19 @@ systemctl restart named Щойно ви внесете цю зміну, збережіть її та вийдіть із `named.conf` (для _vi_, ++shift+colon+w+q+exclam++) Вам потрібно внести аналогічні зміни до `/etc/sysconfig/named`: - + ``` vi /etc/sysconfig/named ``` - - + + Додайте це внизу файлу: - + ``` OPTIONS="-4" ``` - - + + Збережіть ці зміни (знову ж таки, для _vi_, ++shift+colon+w+q+exclam++) @@ -379,14 +382,14 @@ systemctl restart named Ви захочете додати DNS-сервер до списку, оскільки вам все одно знадобиться доступ до Інтернету, для якого знадобляться ваші наразі призначені DNS-сервери. DHCP (протокол динамічної конфігурації хоста) зазвичай призначає або призначається статично. На робочій станції Rocky Linux, де активним мережевим інтерфейсом є eth0, використовуйте: - + ``` vi /etc/sysconfig/network-scripts/ifcfg-eth0 ``` - - + + Якщо ваш увімкнений мережевий інтерфейс відрізняється, ви повинні замінити це ім’я інтерфейсу. Файл конфігурації, який ви відкриваєте, виглядатиме так для статично призначеної IP-адреси (не DHCP, як згадувалося вище). У прикладі нижче IP-адреса нашої машини 192.168.1.151: - + ``` DEVICE=eth0 BOOTPROTO=none @@ -400,10 +403,10 @@ systemctl restart named TYPE=Ethernet MTU= ``` - - + + Ви хочете замінити наш новий DNS-сервер замість основного (DNS1) і перемістити кожен інший DNS-сервер на один нижче: - + ``` DEVICE=eth0 BOOTPROTO=none @@ -418,16 +421,17 @@ systemctl restart named TYPE=Ethernet MTU= ``` - - + + Після завершення змін перезапустіть машину або перезапустіть мережу за допомогою: - + ``` systemctl restart network ``` - - + + Тепер ви зможете отримувати будь-який доступ у домені *ourdomain.lan* зі своїх робочих станцій, а також матимете змогу розпізнавати та отримувати доступ до Інтернет-адрес. + ```` ## Правила брандмауера - `firewalld` @@ -435,7 +439,7 @@ systemctl restart named У Rocky Linux 9.0 і вище використання правил `iptables` застаріло. Замість цього слід використовувати `firewalld`. -Автор не робить жодних припущень щодо мережі чи послуг, які вам можуть знадобитися, за винятком увімкнення доступу SSH і доступу DNS лише для нашої локальної мережі. Для цього ви будете використовувати вбудовану зону `firewalld`, "довірену". Щоб обмежити доступ SSH до локальної мережі, вам доведеться внести зміни в службу «публічної» зони. +Автор не робить жодних припущень щодо мережі чи послуг, які вам можуть знадобитися, за винятком увімкнення доступу SSH і доступу DNS лише для нашої локальної мережі. Для цього ви будете використовувати вбудовану зону "довірена" `firewalld`. Щоб обмежити доступ SSH до локальної мережі, вам доведеться внести зміни в службу «публічної» зони. Першим кроком буде додавання нашої локальної мережі до «довіреної» зони: @@ -509,6 +513,6 @@ public ## Висновки -Зміна */etc/hosts* на окремій робочій станції дасть вам доступ до машини у вашій внутрішній мережі, але ви можете використовувати її лише на цій машині. Приватний сервер DNS, який використовує *bind*, дозволить вам додавати хости до DNS; за умови, що робочі станції мають доступ до цього приватного сервера DNS, вони можуть отримати доступ до цих локальних серверів. +Зміна _/etc/hosts_ на окремій робочій станції надасть вам доступ до машини у вашій внутрішній мережі, але ви зможете використовувати його лише на цій одній машині. Приватний DNS-сервер, який використовує _bind_, дозволить вам додавати хости до DNS, і за умови, що робочі станції мають доступ до цього приватного DNS-сервера, вони зможуть отримати доступ до цих локальних серверів. Якщо вам не потрібні комп’ютери для вирішення в Інтернеті, але вам потрібен локальний доступ кількох машин до локальних серверів, розгляньте натомість приватний DNS-сервер. diff --git a/docs/guides/editors/micro.uk.md b/docs/guides/editors/micro.uk.md index 6b2503e8d5..6a5d7e4554 100644 --- a/docs/guides/editors/micro.uk.md +++ b/docs/guides/editors/micro.uk.md @@ -13,7 +13,7 @@ tags: ## Вступ -*[micro](https://micro-editor.github.io)* – це фантастичний маленький термінальний текстовий редактор, який знаходиться між *nano* та *vim* з точки зору складності. Він має простий, легко впізнаваний робочий процес із кількома приголомшливими функціями: +_[micro](https://micro-editor.github.io)_ — це фантастичний маленький текстовий редактор на базі терміналу, який за складністю знаходиться десь між _nano_ та _vim_. Він має простий, легко впізнаваний робочий процес із кількома приголомшливими функціями: - Усі ваші звичайні команди ++control+c++, ++control+v++ та ++control+f++ працюють так само, як і в текстовому редакторі на основі настільного комп’ютера. Звичайно, усі прив’язки клавіш можна перев’язати. - Підтримка миші — клацніть і перетягніть, щоб вибрати текст, двічі клацніть, щоб вибрати слова, та тричі клацніть, щоб вибрати рядки. @@ -28,7 +28,9 @@ tags: !!! Note "Примітка" + ``` Ви *можете* встановити micro за допомогою швидкої програми. Якщо ви вже використовуєте snap на своїй машині.. Я маю на увазі... чому б і ні? Але я вважаю за краще отримувати це прямо з джерела. + ``` ## Передумови @@ -38,19 +40,19 @@ tags: ### Як встановити мікро -Це, мабуть, найпростіший підручник з усіх, що я написав, із рівно трьома командами. Спочатку переконайтеся, що *tar* і *curl* встановлено. Це має бути актуальним, лише якщо ви запускаєте мінімальну інсталяцію Rocky або запускаєте його всередині контейнера. +Це, мабуть, найпростіший підручник з усіх, що я написав, із рівно трьома командами. Спочатку переконайтеся, що _tar_ та _curl_ встановлені. Це має бути актуальним, лише якщо ви запускаєте мінімальну інсталяцію Rocky або запускаєте його всередині контейнера. ```bash sudo dnf install tar curl ``` -Далі вам знадобиться інсталятор із веб-сайту *micro*. Наступна команда отримає інсталятор і запустить його в будь-якому каталозі, в якому ви працюєте. Я знаю, що зазвичай ми не радимо копіювати та вставляти команди з веб-сайтів, але це ніколи не створювало мені жодних проблем. +Далі вам знадобиться інсталятор з вебсайту _micro_. Наступна команда отримає інсталятор і запустить його в будь-якому каталозі, в якому ви працюєте. Я знаю, що зазвичай ми не радимо копіювати та вставляти команди з веб-сайтів, але це ніколи не створювало мені жодних проблем. ```bash curl https://getmic.ro | bash ``` -Щоб установити програму в системі (тобто ви можете просто ввести «мікро», щоб відкрити програму), ви можете запустити сценарій від імені користувача root у `/usr/bin/`. Однак якщо ви хочете спочатку перевірити це та бути обережними, ви можете встановити *micro* у будь-яку папку, а потім перемістити програму пізніше за допомогою: +Щоб встановити програму на всю систему (і щоб ви могли просто ввести «micro», щоб відкрити програму), ви можете запустити скрипт від імені root всередині `/usr/bin/`. Однак, якщо ви хочете спочатку перевірити це та бути обережними, ви можете встановити _micro_ у будь-яку папку, а потім перенести програму за допомогою: ```bash sudo mv micro /usr/bin/ @@ -60,17 +62,17 @@ sudo mv micro /usr/bin/ ### Дійсно простий спосіб -Я створив неймовірно простий сценарій, який просто запускає всі ці команди. Ви можете знайти його в моїх [Github Gists](https://gist.github.com/EzequielBruni/0e29f2c0a63500baf6fe9e8c51c7b02f) і або скопіювати/вставити текст у файл на своєму комп’ютері, або завантажити його за допомогою `wget`. +Я створив неймовірно простий сценарій, який просто запускає всі ці команди. Ви можете знайти його в моїх [гістах Github](https://gist.github.com/EzequielBruni/0e29f2c0a63500baf6fe9e8c51c7b02f) та або скопіювати/вставити текст у файл на вашому комп'ютері, або завантажити його за допомогою `wget`. ## Видалення мікро -Перейдіть до папки, у яку ви встановили *micro*, і (за потреби використовуючи свої божественні повноваження root) запустіть: +Перейдіть до папки, у яку ви встановили _micro_, і (за потреби використовуючи свої божественні повноваження root) запустіть: ```bash rm micro ``` -Крім того, *micro* залишить деякі конфігураційні файли у вашому домашньому каталозі (і в домашніх каталогах кожного користувача, який його запускав). Ви можете позбутися їх за допомогою: +Також _micro_ залишить деякі файли конфігурації у вашому домашньому каталозі (та домашніх каталогах кожного користувача, який його запускав). Ви можете позбутися їх за допомогою: ```bash rm -rf /home/[username]/.config/micro @@ -78,8 +80,8 @@ rm -rf /home/[username]/.config/micro ## Висновок -Якщо вам потрібен повний посібник із використання *micro*, відвідайте [основний веб-сайт](https://micro-editor.github.io) та документацію в [сховищі Github](https://github.com/zyedidia/micro/tree/master/runtime/help). Ви також можете натиснути «Control-G», щоб відкрити основний файл довідки в самій програмі. +Якщо вам потрібен повний посібник з використання _micro_, перегляньте [головний веб-сайт](https://micro-editor.github.io) та документацію в [репозиторії Github](https://github.com/zyedidia/micro/tree/master/runtime/help). Ви також можете натиснути «Control-G», щоб відкрити основний файл довідки в самій програмі. -*micro*, ймовірно, не задовольнить потреби тих, хто присвятив себе *vim* або *emacs*, але він ідеально підходить для таких людей, як я. Мені завжди хотілося мати цей старий досвід Sublime Text у терміналі, і тепер у мене є щось *справді* близьке. +_micro_, ймовірно, не задовольнить потреби тих, хто присвятив себе роботі з _vim_ або _emacs_, але він ідеально підійде для таких людей, як я. Я завжди хотів той старий інтерфейс Sublime Text у терміналі, і тепер у мене є щось _дійсно_ близьке до нього. Спробуйте, перевірте, чи це вам підходить. diff --git a/docs/guides/email/01-email-system.uk.md b/docs/guides/email/01-email-system.uk.md index 8fd0c119d6..7d9c805e98 100644 --- a/docs/guides/email/01-email-system.uk.md +++ b/docs/guides/email/01-email-system.uk.md @@ -15,26 +15,26 @@ version: 1.0.0 Система електронної пошти в основному складається з чотирьох частин: **MUA**, **MTA**, **MRA** та **MDA**. - **MUA (Mail User Agent)**: це поштові клієнти для користувачів, наприклад Outlook, Foxmail тощо. -- **MTA (агент передачі електронної пошти)**: відноситься до програми сервера електронної пошти, яка використовується для передачі пошти. MTA є реалізацією SMTP. +- **MTA (Mail Transfer Agent)**: програма-сервер електронної пошти, яка використовується для передачі пошти. MTA є реалізацією SMTP. - **MDA (агент доставки пошти)**: коли MTA отримує пошту, MDA відповідає за збереження електронної пошти у вказаному місці на сервері електронної пошти, а також виконує фільтрацію електронної пошти та антивірусні операції. - **MRA (агент отримання пошти)**: MRA – це реалізація IMAP і POP3, яка використовується для взаємодії з MUA та передачі електронних листів поштовим клієнтам через IMAP або POP3. ### Три протоколи -- **SMTP (Simple Mail Transfer Protocol)**: стандартний протокол для надсилання електронних листів із стандартним портом TCP 25. Використовуйте порт "TCP 465", якщо потрібна функція шифрування. -- **IMAP (Internet Mail Access Protocol)**: використовується для отримання електронних листів із сервера електронної пошти, порт за умовчанням – 143. Якщо потрібна функція шифрування, використовуйте порт 993. -- **POP3 (протокол поштового відділення – версія 3)**: використовується для отримання електронних листів із сервера електронної пошти, порт за умовчанням – 110. Якщо потрібна функція шифрування, використовуйте порт 995. +- **SMTP (Простий протокол передачі пошти)**: Стандартний протокол для надсилання електронних листів із портом за замовчуванням «TCP 25». Використовуйте порт "TCP 465", якщо потрібна функція шифрування. +- **IMAP (Протокол доступу до інтернет-пошти)**: Використовується для отримання електронних листів із поштового сервера, порт за замовчуванням – 143. Якщо потрібна функція шифрування, використовуйте порт 993. +- **POP3 (Post Office Protocol – версія 3)**: Використовується для отримання електронних листів із поштового сервера, порт за замовчуванням – 110. Якщо потрібна функція шифрування, використовуйте порт 995. Різниця між IMAP і POP3 полягає в наступному: -| Робоча позиція | Зміст операції | IMAP | POP3 | -|:-------------------------:|:--------------------------------------------------------------------:|:------------------------------------------------------:|:------------------------:| +| Робоча позиція | Зміст операції | IMAP | POP3 | +| :-----------------------: | :----------------------------------------------------------------------------------: | :----------------------------------------------------: | :----------------------: | | Inbox | Читання, позначення, переміщення, видалення електронних листів тощо. | Клієнт синхронізується з оновленнями поштової скриньки | Тільки всередині клієнта | -| Outbox | Збереження в Надісланих | Клієнт синхронізується з оновленнями поштової скриньки | Тільки всередині клієнта | -| створити папку | Створення нової спеціальної папки | Клієнт синхронізується з оновленнями поштової скриньки | Тільки всередині клієнта | -| чернетка | Збереження чернетки електронного листа | Клієнт синхронізується з оновленнями поштової скриньки | Тільки всередині клієнта | -| Папка із спамом | Отримуються електронні листи, які помилково надходять до папки спаму | підтримується | не підтримується | -| Рекламна електронна пошта | Отримуються повідомлення, які переміщують в папку рекламної пошти | підтримується | не підтримується | +| Outbox | Збереження в Надісланих | Клієнт синхронізується з оновленнями поштової скриньки | Тільки всередині клієнта | +| створити папку | Створення нової спеціальної папки | Клієнт синхронізується з оновленнями поштової скриньки | Тільки всередині клієнта | +| чернетка | Збереження чернетки електронного листа | Клієнт синхронізується з оновленнями поштової скриньки | Тільки всередині клієнта | +| Папка із спамом | Отримуються електронні листи, які помилково надходять до папки спаму | підтримується | не підтримується | +| Рекламна електронна пошта | Отримуються повідомлення, які переміщують в папку рекламної пошти | підтримується | не підтримується | ### Конкретна реалізація @@ -53,7 +53,7 @@ version: 1.0.0 ## Postfix Процес надсилання та отримання електронних листів -**Sendmail** було створено в 1983 році та встановлено за замовчуванням у версіях до CentOS6. Через історичні причини (наприклад, складні конфігураційні файли) розробка sendmail перешкоджала. Хоча sendmail є складним, якщо у вас є сильні технічні навички або великий досвід, добре налаштований sendmail є чудовим щодо ефективності та продуктивності. +**Sendmail** був створений у 1983 році та встановлювався за замовчуванням у версіях до CentOS6. Через історичні причини (наприклад, складні конфігураційні файли) розробка sendmail перешкоджала. Хоча sendmail є складним, якщо у вас є сильні технічні навички або великий досвід, добре налаштований sendmail є чудовим щодо ефективності та продуктивності. **Postfix** був створений у 1990 році Wietse Venema, голландським дослідником з IBM, для покращення поштового сервера sendmail. diff --git a/docs/guides/email/02-basic-email-system.uk.md b/docs/guides/email/02-basic-email-system.uk.md index ede7e2b740..31b6e14df8 100644 --- a/docs/guides/email/02-basic-email-system.uk.md +++ b/docs/guides/email/02-basic-email-system.uk.md @@ -12,13 +12,13 @@ contributors: Ganna Zhyrnova, Neel Chauhan ## Перелік основних відомостей -| Роль | ОС | IP-адреса | версія | -|:-------------------------:|:------:|:----------------:|:----------------------------------------:| -| База даних Mysql | RL 8.8 | 192.168.100.4/24 | 8.0.33 | +| Роль | ОС | IP-адреса | версія | +| :-----------------------: | :--------------------: | :--------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------------------: | +| База даних Mysql | RL 8.8 | 192.168.100.4/24 | 8.0.33 | | Система електронної пошти | RL 8.8 | 192.168.100.6/24 | postfix: 3.5.8
dovecot: 2.3.16 | -| `bind` DNS | RL 8.8 | 192.168.100.7/24 | 9.11.36 | +| `bind` DNS | RL 8.8 | 192.168.100.7/24 | 9.11.36 | -!!! info "Інформація" +!!! info Postfix і Dovecot все ще можуть працювати для невеликої установки без бази даних. @@ -60,7 +60,7 @@ zone "rockylinux.me" IN { }; ``` -!!! question "Питання" +!!! question **Що таке зона DNS?** Зона DNS — це частина простору імен DNS, розміщена на сервері DNS. Зона DNS містить записи ресурсів, а сервер DNS відповідає на запити щодо записів у цьому просторі імен. DNS-сервер може мати кілька зон DNS. Простіше кажучи, зона DNS аналогічна каталогу книг. @@ -114,7 +114,7 @@ dns.rockylinux.me. 86400 IN A 192.168.100.7 ... ``` -!!! info "Інформація" +!!! info Наше доменне ім’я не може бути ім’ям хоста нашого сервера. @@ -188,7 +188,7 @@ Mysql > create user 'mailrl'@'%' identified by 'mail.rockylinux.me'; Mysql > grant all privileges on *.* to 'mailrl'@'%' with grant option; ``` -!!! info "Інформація" +!!! info Ви також можете встановити MySQL зі сховища або контейнера `dnf`. @@ -284,14 +284,14 @@ Shell(192.168.100.6) > dnf -y install postfix postfix-mysql - `/usr/sbin/postalias`: ця програма створює базу даних псевдонімів у `/etc/aliases.db` на основі файлу /etc/aliases. - `/usr/sbin/postcat` переглядає вміст пошти в черзі пошти. - `/usr/sbin/postconf` запитує конфігурацію Postfix. -- `/usr/sbin/postfix` є головним демоном. Його можна використовувати наступним чином: - - `postfix check` - - `postfix start` - - `postfix stop` - - `postfix reload` - - `postfix status` +- `/usr/sbin/postfix` — це головний демон. Його можна використовувати наступним чином: + - `postfix check` + - `postfix start` + - `postfix stop` + - `postfix reload` + - `postfix status` -!!! tip "Підказка" +!!! tip Якщо ваш сервер має більше ніж один MTA, ви можете вказати MTA за замовчуванням за допомогою команди `alternatives -config mta`. @@ -341,7 +341,7 @@ shlib_directory = /usr/lib64/postfix - `data_directory = /var/lib/postfix`. Каталог кешу Postfix. - `myhostname = host.domain.tld`: **Важливо:** Вам потрібно змінити його на ім’я хосту вашого доменного імені. - `mydomain = domain.tld`: **Важливо:** Вам потрібно змінити його на ваше доменне ім’я. -- `myorigin = $myhostname` and `myorigin = $mydomain`: **Важливо:** параметри, які були закоментовані. Основна функція — доповнити поштовий суфікс відправника. `$` представляє змінну еталонного параметра. +- `myorigin = $myhostname` та `myorigin = $mydomain`: **Важливо:** параметри, які було закоментовано. Основна функція — доповнити поштовий суфікс відправника. `$` представляє змінну параметра посилання. - `inet_interfaces = localhost`: Інтерфейси для прослуховування. Зазвичай це значення змінюється на «all». - `inet_protocols = all`: Вмикає IPv4 та IPv6, якщо адресу знайдено. - `mydestination = \$myhostname, localhost.\$mydomain, localhost`: Вказує хости призначення поштового сервера. @@ -354,11 +354,11 @@ shlib_directory = /usr/lib64/postfix - `debug_peer_level = 2`: Рівень журнальних записів. - `setgid_group = postdrop`: Група Unix для керування чергами Postfix. -За винятком елементів параметрів, згаданих або показаних вище, деякі параметри приховані, і їх можна переглянути за допомогою команди `postconf`. Найпомітніші параметри: +За винятком згаданих або відображених вище параметрів, деякі параметри приховані та їх можна переглянути за допомогою команди `postconf`. Найпомітніші параметри: - `message_size_limit = 10240000`. Максимальний розмір одного повідомлення в байтах. - `mailbox_size_limit = 1073741824`: Максимальний розмір поштової скриньки користувача. -- `smtpd_sasl_type = cyrus`: Програмне забезпечення сервера IMAP використовується для автентифікації SASL. Ви можете використовувати `postconf -a` для перегляду. +- `smtpd_sasl_type = cyrus`: Програмне забезпечення сервера IMAP, що використовується для автентифікації SASL. Ви можете скористатися командою `postconf -a` для перегляду. - `smtpd_sasl_auth_enable = no`: Чи вмикати автентифікацію SASL. - `smtpd_sasl_security_options = noanonymous`. Параметри безпеки для SASL. Анонімну автентифікацію вимкнено за умовчанням. - `smtpd_sasl_local_domain =`. Ім'я локального домену. @@ -366,7 +366,7 @@ shlib_directory = /usr/lib64/postfix #### Модифікація /etc/postfix/main.cf -Після встановлення пакетів вам потрібно налаштувати Postfix. Зробіть такі зміни в `/etc/postfix/main.cf`: +Після встановлення пакетів вам потрібно налаштувати Postfix. Внесіть такі зміни у `/etc/postfix/main.cf`: ```bash myhostname = mail.rockylinux.me @@ -479,7 +479,7 @@ dbname = mailserver query = SELECT email FROM virtual_users WHERE email='%s' ``` -!!! warning "Важливо" +!!! warning Якщо ви зіткнулися з такою помилкою після запуску `systemctl start postfix.service`: `fatal: відкрити файл блокування /var/lib/postfix/master.lock: неможливо встановити ексклюзивне блокування: ресурс тимчасово недоступний.` Видаліть наявний ` /var/lib/postfix/master.lock` файл @@ -534,7 +534,7 @@ smtps inet n - n - - smtpd -o milter_macro_daemon_name=ORIGINATING ``` -Нарешті, запустіть `systemctl restart postfix.service`. На цьому етапі ми налаштували Postfix. +Нарешті, запустіть команду `systemctl restart postfix.service`. На цьому етапі ми налаштували Postfix. ### Встановлення і налаштування `dovecot` @@ -581,26 +581,31 @@ Shell(192.168.100.6) > tree /etc/dovecot/ Опис файлу такий: - `dovecot.conf` є основним конфігураційним файлом Dovecot. - - Завантажте інші конфігураційні файли через `!include conf.d/*.conf`. - - Цифровий префікс файлу підконфігурації полегшує розуміння людиною порядку його аналізу. - - Через історичні причини деякі конфігураційні файли досі є окремими, зазвичай мають назву `*.conf.ext`. - - У файлі конфігурації ви можете використовувати змінні, розділені на **Глобальні змінні** та **Змінні користувача**, починаючи з `%`. Див. [тут](https://doc.dovecot.org/configuration_manual/config_file/config_variables/#config-variables). + - Завантажте інші конфігураційні файли через `!include conf.d/*.conf`. + - Цифровий префікс файлу підконфігурації полегшує розуміння людиною порядку його аналізу. + - Через історичні причини деякі конфігураційні файли досі є окремими, зазвичай мають назву `*.conf.ext`. + - У файлі конфігурації можна використовувати змінні, розділені на **глобальні змінні** та **змінні користувача**, починаючи з `%`. Див. [тут](https://doc.dovecot.org/configuration_manual/config_file/config_variables/#config-variables). - `10-auth.conf`: Конфігурація автентифікації. + - `10-logging.conf`. Конфігурація, пов'язана з журналом. + - `10-mail.conf`. Конфігурація розташування поштових скриньок і просторів імен. За замовчуванням значення розташування поштової скриньки користувача порожнє, що означає, що Dovecot автоматично шукає розташування поштової скриньки. Якщо у користувача немає пошти, ви повинні явно повідомити Dovecot розташування всіх поштових скриньок. + - `10-metrics.conf`. Конфігурація, пов'язана зі статистичною інформацією. + - `15-mailboxes.conf`. Конфігурація визначення поштової скриньки. + - `auth-sql.conf.ext`. Аутентифікація для користувачів SQL. #### Деякі важливі параметри конфігураційного файлу - `protocols = imap pop3 lmtp submission`: Список протоколів, які будуть використовуватися. -- `listen = *, ::`. Відокремлений комами список IP-адрес або хостів, на яких слід прослуховувати з’єднання. `*` listens in all IPv4 interfaces, `::` слухає в усіх інтерфейсах IPv6. +- `listen = *, ::`: Список IP-адрес або хостів, розділених комами, для яких слід перевіряти з'єднання. `*` прослуховує всі інтерфейси IPv4, `::` прослуховує всі інтерфейси IPv6. - `disable_plaintext_auth = yes`: Чи вимкнути автентифікацію відкритого тексту. -- `auth_mechanisms =`: Тип механізму автентифікації, який буде використовуватися. Можна вказати кілька значень і розділити їх пробілами. Значення: plain, login, digest-md5, cram-md5, ntlm, rpa, apop, anonymous, gssapi, otp, skey, gss-spnego. -- `login_trusted_networks=`: Яким IP-мережам дозволено використовувати Dovecot. Це може бути одна IP-адреса, сегмент мережі або обидва. Як приклад: `login_trusted_networks = 10.1.1.0/24 192.168.100.2` -- `mail_location =`: Якщо значення пусте, Dovecot намагається автоматично знайти поштові скриньки (переглядаючи `~/Maildir`, `/var/mail/username`, `~/mail` і `~/Mail` у такому порядку). Однак автоматичне виявлення зазвичай не вдається користувачам, чий поштовий каталог ще не створено, тому вам слід явно вказати тут повне місцезнаходження, якщо це можливо. +- `auth_mechanisms =`: Тип механізму автентифікації, який буде використано. Можна вказати кілька значень і розділити їх пробілами. Значення: plain, login, digest-md5, cram-md5, ntlm, rpa, apop, anonymous, gssapi, otp, skey, gss-spnego. +- `login_trusted_networks =`: Яким IP-мережам дозволено використовувати Dovecot. Це може бути одна IP-адреса, сегмент мережі або обидва. Як приклад: `login_trusted_networks = 10.1.1.0/24 192.168.100.2` +- `mail_location =`: Якщо значення пусте, Dovecot намагається знайти поштові скриньки автоматично (переглядаючи `~/Maildir`, `/var/mail/username`, `~/mail` та `~/Mail` у такому порядку). Однак автоматичне виявлення зазвичай не вдається користувачам, чий поштовий каталог ще не створено, тому вам слід явно вказати тут повне місцезнаходження, якщо це можливо. - `mail_privileged_group =`: Ця група тимчасово ввімкнена для привілейованих операцій. Це використовується лише з INBOX, коли його початкове створення або блокування не вдається. Зазвичай для доступу до `/var/mail` встановлюється значення `mail`. #### Модифікація декількох файлів @@ -657,7 +662,7 @@ userdb { } ``` -!!! warning "Важливо" +!!! warning Не пишіть наведену вище граматику в один рядок, наприклад `userdb {driver = sql args = uid=vmail gid=vmail home=/var/mail/vhosts/%d/%n}`. Інакше не вийде. diff --git a/docs/guides/email/postfix_reporting.uk.md b/docs/guides/email/postfix_reporting.uk.md index d9cec280f7..54a0b92608 100644 --- a/docs/guides/email/postfix_reporting.uk.md +++ b/docs/guides/email/postfix_reporting.uk.md @@ -14,44 +14,42 @@ tags: ## Передумови - Повний комфорт роботи з командного рядка на сервері Rocky Linux -- Знайомство з редактором на ваш вибір (у цьому документі використовується редактор _vi_, але ви можете замінити його улюбленим редактором) +- Знайомство з редактором на ваш вибір (у цьому документі використовується редактор \`vi, але ви можете замінити його улюбленим редактором) - Розуміння DNS (системи доменних імен) та імен хостів - Можливість призначати змінні в сценарії bash -- Знання того, що роблять команди _tail_, _more_, _grep_ і _date_ +- Знання того, що роблять команди `tail`, `more`, `grep`, та `date` ## Вступ Багато адміністраторів серверів Rocky Linux пишуть сценарії для виконання певних завдань, таких як резервне копіювання або синхронізація файлів, і багато з цих сценаріїв створюють журнали, які містять корисну, а часом і дуже важливу інформацію. Однак мати лише журнали недостатньо. Якщо процес дає збій і реєструє цю помилку, але зайнятий адміністратор не переглядає журнал, тоді може бути катастрофа. -У цьому документі показано, як використовувати `postfix` MTA (агент передачі пошти), щоб отримати подробиці журналу з певного процесу та надіслати їх вам електронною поштою. Він також торкається форматів дати в журналах і допомагає визначити, який формат використовувати в процедурі звітування. +У цьому документі показано, як використовувати MTA (агент передачі пошти) `postfix` для отримання даних журналу з певного процесу та надсилання їх вам електронною поштою. Він також торкається форматів дати в журналах і допомагає визначити, який формат використовувати в процедурі звітування. -Пам’ятайте, що це лише верхівка айсберга щодо того, що ви можете зробити, створюючи звіти за допомогою `postfix`. Зауважте, що обмежити запущені процеси лише тими, які вам будуть потрібні постійно, завжди є хорошим заходом безпеки. +Пам'ятайте, що це лише верхівка айсберга щодо того, що ви можете робити зі звітами через `postfix`. Зауважте, що обмежити запущені процеси лише тими, які вам будуть потрібні постійно, завжди є хорошим заходом безпеки. У цьому документі показано, як увімкнути Postfix лише для звітів, які вам потрібні, а потім знову вимкнути його. ## Визначення `postfix` -Postfix — це серверний демон, який використовується для надсилання електронної пошти. Це більш безпечний і зрозумілий, ніж sendmail, ще один MTA, який роками використовувався за умовчанням. Ви можете використовувати його як частину повнофункціонального поштового сервера. +`postfix` — це демон сервера, який використовується для надсилання електронної пошти. Це більш безпечний і зрозумілий, ніж sendmail, ще один MTA, який роками використовувався за умовчанням. Ви можете використовувати його як частину повнофункціонального поштового сервера. ## Встановлення `postfix` -Окрім `postfix`, вам знадобиться `mailx`, щоб перевірити вашу здатність надсилати електронні листи. Щоб установити ці та будь-які необхідні залежності, введіть наступне в командному рядку сервера Rocky Linux: +Окрім `postfix`, вам знадобиться `mailx`, щоб перевірити свою здатність надсилати електронні листи. Щоб установити ці та будь-які необхідні залежності, введіть наступне в командному рядку сервера Rocky Linux: `dnf install postfix mailx` !!! warning "Зміни у Rocky Linux 9.0" Ця процедура чудово працює в Rocky Linux 9.0. Різниця тут полягає в тому, звідки походить команда `mailx`. Хоча ви можете встановити його за назвою у 8.x, `mailx` походить із пакета appstream `s-nail` у 9.0. Щоб встановити необхідні пакети, потрібно використовувати: - - ``` - dnf install postfix s-nail - ``` + + ` dnf install postfix s-nail ` ## Тестування та налаштування `postfix` ### Тестування пошти -Перш ніж налаштувати `postfix`, вам потрібно дізнатися, як виглядатиме пошта, коли вона залишає сервер, оскільки ви, ймовірно, захочете це змінити. Для цього запустіть `postfix`: +Перш ніж налаштовувати `postfix`, вам потрібно з'ясувати, як виглядатиме пошта після відправлення із сервера, оскільки ви, ймовірно, захочете це змінити. Щоб це зробити, запустіть `postfix`: `systemctl start postfix` @@ -71,7 +69,7 @@ Postfix — це серверний демон, який використову `EOT` -Мета цього — побачити, як виглядає наша пошта для зовнішнього світу. Ви можете відчути це з _maillog_, який стає активним із запуском `postfix`. +Мета цього — побачити, як виглядає наша пошта для зовнішнього світу. Ви можете отримати уявлення про це з _maillog_, який активується після запуску `postfix`. Використовуйте цю команду, щоб переглянути вихідні дані файлу журналу: @@ -97,7 +95,7 @@ Mar 4 16:52:06 hedgehogct postfix/qmgr[739]: C9D42EC0ADD: removed ## Налаштування `postfix` -Оскільки ви не налаштовуєте повний, повністю функціональний поштовий сервер, параметри конфігурації, які ви використовуватимете, не такі великі. Перше, що потрібно зробити, це змінити файл _main.cf_ (буквально основний файл конфігурації для `postfix`). Спочатку зробіть резервну копію: +Оскільки ви не налаштовуєте повний, повністю функціональний поштовий сервер, параметри конфігурації, які ви використовуватимете, не такі великі. Перше, що потрібно зробити, це змінити файл _main.cf_ (буквально, головний файл конфігурації для `postfix`). Спочатку зробіть резервну копію: `cp /etc/postfix/main.cf /etc/postfix/main.cf.bak` @@ -127,11 +125,11 @@ Mar 4 16:52:06 hedgehogct postfix/qmgr[739]: C9D42EC0ADD: removed Збережіть зміни (у vi це буде `Shift : wq!`) і закрийте файл. -Перш ніж редагувати загальний файл, ви повинні побачити, як буде виглядати електронний лист. Зокрема, ви хочете створити «загальний» файл, на який ви посилалися у файлі _main.cf_ вище: +Перш ніж продовжити редагування загального файлу, вам потрібно побачити, як виглядатиме електронний лист. Зокрема, вам потрібно створити "загальний" файл, на який ви посилалися у файлі _main.cf_ вище: `vi /etc/postfix/generic` -Цей файл повідомляє `postfix`, як виглядатиме будь-який електронний лист із цього сервера. Пам’ятаєте наш тестовий електронний лист і файл журналу? Тут ми все виправляємо: +Цей файл повідомляє `postfix`, як виглядатиме будь-який електронний лист, що надходить з цього сервера. Пам’ятаєте наш тестовий електронний лист і файл журналу? Тут ми все виправляємо: ```bash root@somehost.localdomain root@bruno.ourdomain.com @@ -142,15 +140,15 @@ root@somehost.localdomain root@bruno.ourdomain.com `postmap /etc/postfix/generic` -Запустіть `postfix` і знову перевірте свою електронну пошту за допомогою описаної вище процедури. Тепер ви побачите, що всі екземпляри "localdomain" тепер є фактичним доменом. +Запустіть `postfix` та знову перевірте свою електронну пошту, виконавши ту саму процедуру, що й вище. Тепер ви побачите, що всі екземпляри "localdomain" тепер є фактичним доменом. ### Команда `date` і змінна, яка називається today -Не кожна програма використовуватиме той самий формат журналювання для дати. Можливо, вам доведеться підійти творчо до будь-якого сценарію, який ви створите для звітування за датою. +Не кожна програма використовуватиме однаковий формат дати. Можливо, вам доведеться проявити креативність до будь-якого сценарію, який ви пишете для звітності за датою. Скажімо, ви хочете переглянути свій системний журнал як приклад, витягніть усе, що стосується dbus-daemon на сьогоднішню дату, і надішліть це собі електронною поштою. (Це, мабуть, не найкращий приклад, але він дасть вам уявлення про те, як ви можете це зробити.) -Вам потрібно використовувати змінну у вашому сценарії. Назвіть це "today". Ви хочете, щоб він стосувався виводу команди "date" і форматував його в певний спосіб, щоб ви могли отримати потрібні дані з нашого системного журналу (у _/var/log /повідомлення_). Для початку проведіть пошукову роботу. +Вам потрібно використовувати змінну у вашому скрипті. Назвіть це "today". Ви хочете, щоб він пов'язувався з виводом команди "date" та форматувався певним чином, щоб ви могли отримати потрібні дані з нашого системного журналу (у _/var/log/messages_). Для початку проведемо розслідування. Спочатку введіть команду date в командному рядку: @@ -172,15 +170,15 @@ Mar 4 18:50:41 hedgehogct dbus-daemon[60]: [system] Activating via systemd: ser Mar 4 18:50:41 hedgehogct dbus-daemon[60]: [system] Successfully activated service 'org.freedesktop.nm_dispatcher ``` -Дата та вихідні дані журналу мають бути точно однаковими в нашому сценарії. Давайте подивимося, як відформатувати дату за допомогою змінної під назвою "today". +Дата та вихідні дані журналу мають бути точно однаковими в нашому сценарії. Давайте розглянемо, як відформатувати дату за допомогою змінної під назвою "today". -Перевірте, що вам потрібно зробити з датою, щоб отримати той самий результат, що й системний журнал. Ви можете посилатися на [довідкову сторінку Linux](https://man7.org/linux/man-pages/man1/date.1.html) або ввести `man-date` у командному рядку, щоб відкрити сторінку посібника з датою та отримати потрібну інформацію. +Перевірте, що вам потрібно зробити з датою, щоб отримати той самий результат, що й системний журнал. Ви можете звернутися до [довідкової сторінки Linux](https://man7.org/linux/man-pages/man1/date.1.html) або ввести `man date` у командному рядку, щоб відкрити сторінку довідки з дати та отримати потрібну інформацію. Що ви знайдете, це форматувати дату так само, як _/var/log/messages_ , вам потрібно використовувати рядки формату %b і %e з %b це місяць із 3 символів, а %e — день із пробілами. ### Сценарій -Для нашого сценарію bash ви бачите, що ви збираєтеся використовувати команду `date` і змінну під назвою «сьогодні». (Майте на увазі, що "today" є довільним. Ви можете назвати цю змінну "late_for_dinner", якщо хочете!). Ви викличете свій сценарій у цьому прикладі `test.sh` і розмістите його в _/usr/local/sbin_: +Для нашого bash-скрипта, як ви можете бачити, ви збираєтеся використовувати команду `date` та змінну з назвою "today". (Майте на увазі, що "today" є довільним. Ви можете назвати цю змінну "late_for_dinner", якщо хочете!). У цьому прикладі ви викличете свій скрипт `test.sh` та помістите його в _/usr/local/sbin_: `vi /usr/local/sbin/test.sh` @@ -188,15 +186,15 @@ Mar 4 18:50:41 hedgehogct dbus-daemon[60]: [system] Successfully activated serv Крім того, у нашій першій спробі ви захоплюєте всі повідомлення на поточну дату, а не лише повідомлення dbus-daemon. Ви незабаром розберетеся з цим. -Майте на увазі, що команда `grep` поверне ім'я файлу у вихідних даних, що вам не потрібно в цьому випадку. Щоб видалити це, додайте опцію "-h" до grep. Крім того, коли ви встановлюєте змінну «сьогодні», вам потрібно шукати всю змінну як рядок, для якого потрібен рядок у лапках: +Майте на увазі, що команда `grep` поверне ім'я файлу у виводі, що вам у цьому випадку не знадобиться. Щоб видалити це, додайте опцію "-h" до grep. Крім того, коли ви встановлюєте змінну "today", вам потрібно шукати всю змінну як рядок, для якого потрібен рядок у лапках: ```bash #!/bin/bash -# встановити рядок дати відповідно до /var/log/messages -сьогодні=`дата +"%b %e"` +# set the date string to match /var/log/messages +today=`date +"%b %e"` -# отримати повідомлення dbus-daemon і надіслати їх електронною поштою +# grab the dbus-daemon messages and send them to email grep -h "$today" /var/log/messages ``` @@ -208,23 +206,23 @@ grep -h "$today" /var/log/messages `/usr/local/sbin/test.sh` -Якщо все працює правильно, ви отримаєте довгий список усіх повідомлень у _/var/log/messages_ від сьогодні, включаючи, але не обмежуючись повідомленнями dbus-daemon. Наступним кроком є обмеження повідомлень повідомленнями демона dbus. Знову змініть сценарій: +Якщо все працює правильно, ви отримаєте довгий список усіх повідомлень у _/var/log/messages_ за сьогодні, включаючи, але не обмежуючись повідомленнями dbus-daemon. Наступним кроком є обмеження повідомлень повідомленнями демона dbus. Знову змініть сценарій: `vi /usr/local/sbin/test.sh` ```bash #!/bin/bash -# встановити рядок дати відповідно до /var/log/messages -сьогодні=`дата +"%b %e"` +# set the date string to match /var/log/messages +today=`date +"%b %e"` -# отримати повідомлення dbus-daemon і надіслати їх електронною поштою -grep -h "$today" /var/log/messages | grep dbus-демон +# grab the dbus-daemon messages and send them to email +grep -h "$today" /var/log/messages | grep dbus-daemon ``` Повторний запуск сценарію призведе до отримання лише повідомлень демона dbus і тих, які виникли сьогодні. -Однак є ще один останній крок. Пам’ятайте, вам потрібно надіслати це електронною поштою адміністратору для перевірки. Ви не хочете залишати службу запущеною, тому що ви використовуєте лише `postfix` на цьому сервері для звітування. Запускайте його на початку сценарію та зупиняйте в кінці. Тут команда `sleep` призупиняється на 20 секунд, забезпечуючи надсилання електронної пошти перед повторним вимкненням `postfix`. Це остаточне редагування додає проблеми зупинки, запуску та сну, які щойно обговорювалися, а також передає вміст на електронну пошту адміністратора. +Однак є ще один останній крок. Пам’ятайте, вам потрібно надіслати це електронною поштою адміністратору для перевірки. Оскільки ви використовуєте `postfix` на цьому сервері лише для звітності, ви не хочете залишати службу запущеною. Запускайте його на початку сценарію та зупиняйте в кінці. Тут команда `sleep` призупиняється на 20 секунд, забезпечуючи надсилання електронного листа перед повторним вимкненням `postfix`. Це остаточне редагування додає проблеми зупинки, запуску та сну, які щойно обговорювалися, а також передає вміст на електронну пошту адміністратора. `vi /usr/local/sbin/test.sh` @@ -233,19 +231,19 @@ grep -h "$today" /var/log/messages | grep dbus-демон ```bash #!/bin/bash -# запуск postfix +# start postfix /usr/bin/systemctl start postfix -# встановити рядок дати відповідно до /var/log/messages +# set the date string to match /var/log/messages today=`date +"%b %e"` -# візьміть повідомлення dbus-daemon і надішліть їх електронною поштою +# grab the dbus-daemon messages and send them to email grep -h "$today" /var/log/messages | grep dbus-daemon | mail -s "dbus-daemon messages for today" myname@mydomain.com -# перш ніж продовжити, переконайтеся, що електронний лист закінчено +# make sure the email has finished before continuing sleep 20 -# зупинити postfix +# stop postfix /usr/bin/systemctl stop postfix ``` diff --git a/docs/guides/file_sharing/glusterfs.uk.md b/docs/guides/file_sharing/glusterfs.uk.md index 379a4a2290..dd0103f028 100644 --- a/docs/guides/file_sharing/glusterfs.uk.md +++ b/docs/guides/file_sharing/glusterfs.uk.md @@ -9,7 +9,7 @@ update: 11 лютого 2022 р ## Передумови -- Вміння працювати з редактором командного рядка (у цьому прикладі використовується *vi*) +- Вміння працювати з редактором командного рядка (у цьому прикладі використовується _vi_) - Високий рівень комфорту з видачею команд із командного рядка, переглядом журналів та іншими загальними обов’язками системного адміністратора - Усі команди виконуються від імені користувача root або sudo @@ -44,7 +44,9 @@ GlusterFS може працювати в двох режимах: !!! Note "Примітка" + ``` Переконайтеся, що у вас є необхідна пропускна здатність між серверами кластера. + ``` Кожен сервер у кластері має другий диск для зберігання даних. @@ -62,11 +64,13 @@ sudo mkdir -p /data/glusterfs/volume1 !!! Note "Примітка" + ```` Якщо LVM недоступний на ваших серверах, інсталюйте його за допомогою наступної команди: - + ``` sudo dnf install lvm2 ``` + ```` Тепер ми можемо додати цей логічний том до файлу `/etc/fstab`: @@ -100,7 +104,9 @@ sudo dnf install centos-release-gluster9 !!! Note "Примітка" + ``` Пізніше, коли він буде готовий на стороні Rocky, ми зможемо змінити назву цього пакета. + ``` Оскільки список сховищ і URL-адреса більше не доступні, давайте змінимо вміст `/etc/yum.repos.d/CentOS-Gluster-9.repo`: @@ -139,7 +145,7 @@ sudo firewall-cmd --reload ## Роздільна здатність імен -Ви можете дозволити DNS виконувати розпізнавання імен серверів у вашому кластері, або ви можете звільнити сервери від цього завдання, вставивши записи для кожного з них у ваші файли `/etc/hosts`. Це також забезпечить роботу навіть під час збою DNS. +Ви можете дозволити DNS обробку імен серверів у вашому кластері або ж позбавити сервери цього завдання, вставивши записи для кожного з них у файли `/etc/hosts`. Це також забезпечить роботу навіть під час збою DNS. ```text 192.168.10.10 node1.cluster.local @@ -193,7 +199,7 @@ Other names: ```bash $ sudo gluster volume create volume1 replica 2 node1.cluster.local:/data/glusterfs/volume1/brick0/ node2.cluster.local:/data/glusterfs/volume1/brick0/ -Replica 2 volumes are prone to split-brain. Щоб уникнути цього, використовуйте Arbiter або Replica 3. Див.: https://docs.gluster.org/en/latest/Administrator-Guide/Split-brain-and-ways-to-deal-with-it/. +Replica 2 volumes are prone to split-brain. Use Arbiter or Replica 3 to avoid this. See: https://docs.gluster.org/en/latest/Administrator-Guide/Split-brain-and-ways-to-deal-with-it/. Do you still want to continue? (y/n) y volume create: volume1: success: please start the volume to access data @@ -201,7 +207,9 @@ volume create: volume1: success: please start the volume to access data !!! Note "Примітка" + ``` Як говорить команда return, кластер із 2 вузлами — не найкраща ідея проти розщепленого мозку у світі. Але цього буде достатньо для нашої тестової платформи. + ``` Тепер ми можемо запустити том для доступу до даних: @@ -338,4 +346,4 @@ $ ll /data/test ## Висновки -Хоча поточних сховищ немає, використання архівних сховищ, які були в CentOS для GlusterFS, все одно працюватиме. Як було зазначено, GlusterFS досить легко встановити та підтримувати. Використання інструментів командного рядка є досить простим процесом. GlusterFS допоможе створити та підтримувати кластери високої доступності для зберігання та резервування даних. Ви можете знайти більше інформації про GlusterFS і використання інструменту на [сторінках офіційної документації.](https://docs.gluster.org/en/latest/) +Хоча поточних сховищ немає, використання архівних сховищ, які були в CentOS для GlusterFS, все одно працюватиме. Як було зазначено, GlusterFS досить легко встановити та підтримувати. Використання інструментів командного рядка є досить простим процесом. GlusterFS допоможе створити та підтримувати кластери високої доступності для зберігання та резервування даних. Більше інформації про GlusterFS та використання інструментів можна знайти на [офіційних сторінках документації.] (https://docs.gluster.org/en/latest/) diff --git a/docs/guides/file_sharing/nfsserver.uk.md b/docs/guides/file_sharing/nfsserver.uk.md index 144e876175..dca3e961fa 100644 --- a/docs/guides/file_sharing/nfsserver.uk.md +++ b/docs/guides/file_sharing/nfsserver.uk.md @@ -6,7 +6,8 @@ contributors: Steven Spencer, Serge, Ganna Zhyrnova # Мережева файлова система -**Знання**: :star: :star: **Складність**: :star: :star: +**Знання**: :star: :star: +**Складність**: :star: :star: **Час читання**: 15 хвилин @@ -81,7 +82,7 @@ sudo firewall-cmd --reload - **IP-адреса**: `192.168.1.2` - **Мережева адреса**: `192.168.1.0/255.255.255.0` або формат CIDR `192.168.1.0/24` -- **FQDN**: client_*.rockylinux.org: дозволяє FQDN починатися з client_ з домену rockylinux.org +- **FQDN**: client_\*.rockylinux.org: дозволяє FQDN починатися з client_ з домену rockylinux.org - `*` для всіх Кілька специфікацій клієнта можливі в одному рядку, розділених пробілом. @@ -109,11 +110,15 @@ sudo firewall-cmd --reload - `/share client(ro,all_squash)` Користувачі клієнта мають доступ лише для читання до ресурсів і ідентифікуються як анонімні на сервері. -- `/share client(rw)` Користувачі клієнта можуть змінювати ресурси та зберігати свій UID на сервері. Лише `root` ідентифікується як `anonymous`. +- `/share client(rw)` + Користувачі клієнта можуть змінювати ресурси та зберігати свій UID на сервері. Тільки `root` ідентифікується як `anonym`. -- `/share client1(rw) client2(ro)` Користувачі клієнтської робочої станції 1 можуть змінювати ресурси, а користувачі клієнтської робочої станції 2 мають доступ лише для читання. UID зберігаються на сервері, і лише `root` визначається як `anonymous`. +- `/share client1(rw) client2(ro)` + Користувачі на клієнтській робочій станції 1 можуть змінювати ресурси, тоді як користувачі на клієнтській робочій станції 2 мають доступ лише для читання. + UID зберігаються на сервері, і лише `root` ідентифікується як `anonym`. -- `/share client(rw,all_squash,anonuid=1001,anongid=100)` Користувачі Client1 можуть змінювати ресурси. Їх UID змінено на `1001`, а GID на `100` на сервері. +- `/share client(rw,all_squash,anonuid=1001,anongid=100)` + Користувачі Client1 можуть змінювати ресурси. Їхній UID змінюється на `1001`, а їхній GID на `100` на сервері. ### Команда `exportfs` @@ -123,7 +128,7 @@ sudo firewall-cmd --reload exportfs [-a] [-r] [-u share_name] [-v] ``` -| Опції | Опис | +| Параметри | Опис | | --------------- | ------------------------------------------------- | | `-a` | Вмикає спільний доступ до NFS | | `-r` | Застосовує спільні ресурси з файлу `/etc/exports` | @@ -138,10 +143,10 @@ exportfs [-a] [-r] [-u share_name] [-v] showmount [-a] [-e] [host] ``` -| Опції | Опис | -| ----- | -------------------------------------------------- | -| `-e` | Відображає спільні ресурси на призначеному сервері | -| `-a` | Відображає всі поточні спільні ресурси на сервері | +| Параметри | Опис | +| --------- | -------------------------------------------------- | +| `-e` | Відображає спільні ресурси на призначеному сервері | +| `-a` | Відображає всі поточні спільні ресурси на сервері | Ця команда також визначає, чи може робоча станція клієнта монтувати спільні ресурси. diff --git a/docs/guides/file_sharing/secure_ftp_server_vsftpd.uk.md b/docs/guides/file_sharing/secure_ftp_server_vsftpd.uk.md index d3e96c219d..bcd92b5bc6 100644 --- a/docs/guides/file_sharing/secure_ftp_server_vsftpd.uk.md +++ b/docs/guides/file_sharing/secure_ftp_server_vsftpd.uk.md @@ -20,9 +20,9 @@ tags: ## Вступ -`vsftpd` — це дуже безпечний FTP-демон (FTP — це протокол передачі файлів). Він доступний протягом багатьох років і є демоном FTP за умовчанням у Rocky Linux та багатьох інших дистрибутивах Linux. +`vsftpd` — це дуже безпечний демон FTP (FTP — протокол передачі файлів). Він доступний протягом багатьох років і є демоном FTP за умовчанням у Rocky Linux та багатьох інших дистрибутивах Linux. -`vsftpd` дозволяє використовувати віртуальних користувачів із підключеними модулями автентифікації (PAM). Ці віртуальні користувачі не існують у системі та не мають інших дозволів, окрім FTP. Якщо віртуального користувача скомпрометовано, особа з такими обліковими даними не матиме інших дозволів після отримання доступу як цей користувач. Це налаштування є дуже безпечним, але вимагає додаткової роботи. +`vsftpd` дозволяє використовувати віртуальних користувачів з підключаємими модулями автентифікації (PAM). Ці віртуальні користувачі не існують у системі та не мають інших дозволів, окрім FTP. Якщо віртуального користувача скомпрометовано, особа з такими обліковими даними не матиме інших дозволів після отримання доступу як цей користувач. Це налаштування є дуже безпечним, але вимагає додаткової роботи. !!! tip "Розгляньте `sftp`" @@ -30,7 +30,7 @@ tags: ## Встановлення `vsftpd` -Ви також повинні переконатися, що встановлено `openssl`. Якщо ви використовуєте веб-сервер, можливо, **є** вже встановлено, але для перевірки ви можете виконати: +Ви також повинні забезпечити встановлення `openssl`. Якщо ви використовуєте веб-сервер, це, ймовірно, вже встановлено, але просто щоб перевірити, чи можете ви запустити: ```bash dnf install vsftpd openssl @@ -46,7 +46,7 @@ systemctl enable vsftpd ## Налаштування `vsftpd` -Ви бажаєте вимкнути деякі параметри та ввімкнути інші. Як правило, встановлення `vsftpd` включає в себе найбільш розумні параметри, які вже встановлені. Це все ще гарна ідея перевірити їх. +Ви бажаєте вимкнути деякі параметри та ввімкнути інші. Зазвичай, встановлення `vsftpd` включає вже встановлені найрозумніші опції. Це все ще гарна ідея перевірити їх. Щоб перевірити файл конфігурації та за потреби внести зміни, запустіть: @@ -54,7 +54,7 @@ systemctl enable vsftpd vi /etc/vsftpd/vsftpd.conf ``` -Знайдіть рядок «anonymous_enable=" і переконайтеся, що він «НІ» та **НЕ** закоментований. (Коментування цього рядка увімкне анонімний вхід). Рядок виглядатиме так, якщо він правильний: +Знайдіть рядок "anonymous_enable=" та переконайтеся, що для нього встановлено значення "НІ" та що він **НЕ** закоментований. (Коментування цього рядка увімкне анонімний вхід). Рядок виглядатиме так, якщо він правильний: ```bash anonymous_enable=NO @@ -66,7 +66,7 @@ anonymous_enable=NO local_enable=YES ``` -Додайте рядок для локального користувача root. Якщо сервер є веб-сервером, і ви використовуєте [налаштування веб-сервера Apache Multi-Site](../web/apache-sites-enabled.md), це відображатиме ваш локальний корень. Якщо ваші налаштування відрізняються або це не веб-сервер, змініть параметр "local_root": +Додайте рядок для локального користувача root. Якщо сервер є веб-сервером, і ви використовуєте [Apache Web Server Multi-Site Setup](../web/apache-sites-enabled.md), ваш локальний кореневий каталог відображатиме це. Якщо ваші налаштування відрізняються або це не веб-сервер, змініть параметр "local_root": ```bash local_root=/var/www/sub-domains @@ -98,7 +98,7 @@ nopriv_user=vsftpd guest_username=vsftpd ``` -Вам потрібно додати розділ у нижній частині файлу, щоб примусово шифрувати паролі, надіслані через Інтернет. Вам потрібно встановити `openssl` і створити сертифікат для цього. +Вам потрібно додати розділ у нижній частині файлу, щоб примусово шифрувати паролі, надіслані через Інтернет. Вам потрібно встановити `openssl`, а також створити для нього сертифікат. Почніть із додавання цих рядків у нижній частині файлу: @@ -121,7 +121,7 @@ pasv_max_port=7500 ## Налаштування сертифіката RSA -Вам потрібно створити файл сертифіката RSA `vsftpd`. Автор взагалі вважає, що сервер служить 4-5 років. Встановіть дні для цього сертифіката на основі років, за якими ви вважаєте, що сервер буде працювати на цьому обладнанні. +Вам потрібно створити файл RSA-сертифіката `vsftpd`. Автор взагалі вважає, що сервер служить 4-5 років. Встановіть дні для цього сертифіката на основі років, за якими ви вважаєте, що сервер буде працювати на цьому обладнанні. Відредагуйте кількість днів, як вважаєте за потрібне, і використовуйте формат цієї команди, щоб створити файли сертифіката та закритого ключа: @@ -177,7 +177,7 @@ Email Address []: ## Налаштування віртуальних користувачів -Як було сказано раніше, використання віртуальних користувачів для `vsftpd` набагато безпечніше, оскільки вони не мають системних привілеїв. Тим не менш, вам потрібно додати користувача для віртуальних користувачів. Також потрібно додати групу: +Як зазначалося раніше, використання віртуальних користувачів для `vsftpd` набагато безпечніше, оскільки вони не мають системних привілеїв. Тим не менш, вам потрібно додати користувача для віртуальних користувачів. Також потрібно додати групу: ```bash groupadd nogroup @@ -200,7 +200,7 @@ cd /etc/vsftpd vi vusers.txt ``` -Користувач і пароль розділені рядками, введіть користувача, натисніть ++enter++ і введіть пароль. Продовжуйте, доки не додасте всіх користувачів, яким наразі потрібно надати доступ до системи. Приклад: +Користувач і пароль розділені рядками, введіть користувача, натисніть ++enter++ і введіть пароль. Продовжуйте, доки не додасте всіх користувачів, яким наразі потрібно надати доступ до системи. Приклади: ```bash user_name_a @@ -209,7 +209,7 @@ user_name_b user_password_b ``` -Після завершення створення текстового файлу ви хочете створити базу даних паролів, яку `vsftpd` використовуватиме для віртуальних користувачів. Зробіть це за допомогою команди `db_load`. `db_load` надається `libdb-utils`, який має бути завантажений у вашій системі, але якщо це не так, ви можете просто встановити його за допомогою: +Після створення текстового файлу потрібно створити базу даних паролів, яку `vsftpd` використовуватиме для віртуальних користувачів. Зробіть це за допомогою команди `db_load`. `db_load` надається `libdb-utils`, яку слід завантажити у вашу систему, але якщо ні, ви можете просто встановити її за допомогою: ```bash dnf install libdb-utils @@ -221,14 +221,14 @@ dnf install libdb-utils db_load -T -t hash -f vusers.txt vsftpd-virtual-user.db ``` - Приділіть хвилинку, щоб переглянути, що робить `db_load`: +Приділіть хвилинку, щоб переглянути, що робить `db_load`: - Параметр -T дозволяє імпортувати текстовий файл до бази даних - Параметр -t каже, що потрібно вказати основний метод доступу -- *Хеш* є основним методом доступу, який ви вказуєте +- _Хеш_ є основним методом доступу, який ви вказуєте - Параметр -f говорить про читання з указаного файлу -- Указаний файл — *vusers.txt* -- А база даних, яку ви створюєте чи додаєте, це *vsftpd-virtual-user.db* +- Указаний файл — _vusers.txt_ +- А база даних, яку ви створюєте чи додаєте, це _vsftpd-virtual-user.db_ Змініть дозволи за замовчуванням для файлу бази даних: @@ -246,7 +246,7 @@ rm vusers.txt ## Налаштування PAM -`vsftpd` встановлює файл pam за умовчанням, коли ви встановлюєте пакет. Ви збираєтеся замінити це своїм вмістом. **Завжди** спочатку створюйте резервну копію старого файлу. +`vsftpd` встановлює файл pam за замовчуванням під час встановлення пакета. Ви збираєтеся замінити це своїм вмістом. **Завжди** спочатку створюйте резервну копію старого файлу. Створіть каталог для файлу резервної копії в /root: @@ -315,14 +315,14 @@ systemctl restart vsftpd ### Тестування `vsftpd` -Ви можете перевірити налаштування за допомогою командного рядка на машині та спробувати отримати доступ до машини за допомогою FTP. Тим не менш, найпростіший спосіб тестування — це перевірка за допомогою клієнта FTP, наприклад [FileZilla](https://filezilla-project.org/). +Ви можете перевірити налаштування за допомогою командного рядка на машині та спробувати отримати доступ до машини за допомогою FTP. Тим не менш, найпростіший спосіб протестувати – це за допомогою FTP-клієнта, такого як [FileZilla](https://filezilla-project.org/). -Коли ви тестуєте віртуального користувача на сервері, на якому працює `vsftpd`, ви отримаєте повідомлення про довіру сертифіката SSL/TLS. Це довірче повідомлення повідомляє особі, що сервер використовує сертифікат, і просить її підтвердити його перед продовженням. Ви можете розміщувати файли в папці "local_root", якщо підключилися як віртуальний користувач. +Під час тестування з віртуальним користувачем на сервері, на якому запущено `vsftpd`, ви отримаєте повідомлення про довіру до сертифіката SSL/TLS. Це довірче повідомлення повідомляє особі, що сервер використовує сертифікат, і просить її підтвердити його перед продовженням. Ви можете розміщувати файли в папці "local_root", якщо підключилися як віртуальний користувач. Якщо ви не можете завантажити файл, вам, можливо, доведеться повернутися та ще раз перевірити кожен із кроків. Наприклад, можливо, права власності для "local_root" не встановлено для користувача "vsftpd" і групи "nogroup". ## Висновок -`vsftpd` є популярним і поширеним FTP-сервером, який може бути окремим сервером або частиною [захищеного веб-сервера Apache](../web/apache_hardened_webserver/index.md). Це досить безпечно, якщо налаштовано використовувати віртуальних користувачів і сертифікат. +`vsftpd` — це популярний та поширений FTP-сервер, який може бути окремим сервером або частиною [Apache Hardened Web Server](../web/apache_hardened_webserver/index.md). Це досить безпечно, якщо налаштовано використовувати віртуальних користувачів і сертифікат. -Ця процедура містить багато кроків для налаштування `vsftpd`. Додатковий час для правильного налаштування гарантує, що ваш сервер буде максимально безпечним. +Ця процедура налаштування `vsftpd` складається з багатьох кроків. Додатковий час для правильного налаштування гарантує, що ваш сервер буде максимально безпечним. diff --git a/docs/guides/file_sharing/sftp.uk.md b/docs/guides/file_sharing/sftp.uk.md index f2a61f8019..a75b18f07f 100644 --- a/docs/guides/file_sharing/sftp.uk.md +++ b/docs/guides/file_sharing/sftp.uk.md @@ -16,7 +16,7 @@ tags: ## Вступ -Якщо сам протокол SSH безпечний, може здатися дивним мати документ, присвячений «безпечному» використанню SFTP (частина пакету openssh-server). Але більшість системних адміністраторів не хочуть відкривати SSH для всіх, щоб запровадити SFTP для всіх. У цьому документі описано реалізацію зміни кореня (**chroot**) jail1 для SFTP з обмеженням доступу SSH. +Якщо сам протокол SSH безпечний, може здатися дивним мати документ, присвячений «безпечному» використанню SFTP (частина пакету openssh-server). Але більшість системних адміністраторів не хочуть відкривати SSH для всіх, щоб запровадити SFTP для всіх. У цьому документі описано реалізацію джейл-системи change root (**chroot**) для SFTP з обмеженням доступу SSH. Багато документів стосуються створення SFTP chroot jail, але більшість не розглядають випадки використання, коли користувач може отримати доступ до веб-каталогу на сервері з багатьма веб-сайтами. Цей документ присвячений цьому. Якщо це не ваш випадок використання, ви можете швидко адаптувати ці концепції до різних ситуацій. @@ -31,9 +31,11 @@ tags: !!! Note "chroot jails для початківців:" + ``` chroot jails — це спосіб обмежити дії процесу та його різноманітних дочірніх процесів на вашому комп’ютері. Це дозволяє вам вибрати певний каталог/папку на вашому комп’ютері та зробити його «кореневим» каталогом для будь-якого процесу чи програми. З цього моменту цей процес або програма може *тільки* отримати доступ до цієї папки та її вкладених папок. + ``` !!! tip "Оновлення для Rocky Linux 8.х та 9.х" @@ -51,7 +53,7 @@ tags: - ваш багатосайтовий веб-сайт налаштовано так: [Apache Multisite](../web/apache-sites-enabled.md) - `httpd` (Apache) уже встановлено на сервері. -!!! note "Примітка" +!!! note Ви можете застосувати ці концепції до будь-якої установки сервера та будь-якого веб-демона. Хоча ми тут припускаємо Apache, ви також можете використовувати це для Nginx. @@ -61,8 +63,10 @@ tags: **Сайти:** -- mybrokenaxel = (site1.com) user = mybroken -- myfixedaxel = (site2.com) user = myfixed +- mybrokenaxel = (site1.com) + user = mybroken +- myfixedaxel = (site2.com) + user = myfixed **Адміністратори:** @@ -73,7 +77,7 @@ tags: ### Встановлення -Установка проста. Вам потрібно встановити `openssh-server`, який, ймовірно, уже встановлено. Щоб переконатися, введіть цю команду: +Установка проста. Вам просто потрібно встановити `openssh-server`, який, ймовірно, вже встановлений. Щоб переконатися, введіть цю команду: ```bash dnf install openssh-server @@ -103,7 +107,7 @@ mkdir -p /var/www/sub-domains/com.site2/html ### Конфігурація `httpd` -Вам потрібно змінити вбудований файл `httpd.conf`, щоб він завантажував файли конфігурації в каталозі `/etc/httpd/sites-enabled`. Зробіть це, додавши один рядок у нижній частині файлу `httpd.conf`. +Вам потрібно змінити вбудований файл `httpd.conf`, щоб він завантажував файли конфігурації з каталогу `/etc/httpd/sites-enabled`. Зробіть це, додавши один рядок внизу файлу `httpd.conf`. Відредагуйте файл за допомогою улюбленого редактора. Автор використовує тут `vi`: @@ -121,13 +125,13 @@ Include /etc/httpd/sites-enabled ### Конфігурація сайту -Потрібно створити два сайти. Ви створите конфігурації в `/etc/httpd/sites-available` і зв’яжете їх з `../sites-enabled`: +You need two sites created. Ви створите конфігурації у `/etc/httpd/sites-available` та зв'яжете їх з `../sites-enabled`: ```bash vi /etc/httpd/sites-available/com.site1 ``` -!!! note "Примітка" +!!! note У прикладі використовується лише протокол HTTP. Будь-якому реальному веб-сайту потрібна конфігурація протоколу HTTPS, сертифікати SSL і, можливо, багато іншого. @@ -215,7 +219,7 @@ useradd -g wheel lblakely Додаючи наших користувачів до групи "wheel", ви надаєте їм доступ `sudo`. -Вам усе одно потрібен пароль для доступу до `sudo`. Є способи обійти це, але жоден із них не є настільки безпечним. Чесно кажучи, якщо у вас є проблеми з безпекою під час використання `sudo` на вашому сервері, у вас є набагато більші проблеми з усією установкою. Встановіть два паролі адміністратора з безпечними паролями: +Вам все ще потрібен пароль для доступу `sudo`. Є способи обійти це, але жоден із них не є настільки безпечним. Чесно кажучи, якщо у вас проблеми з безпекою при використанні `sudo` на вашому сервері, то у вас набагато більші проблеми з усією вашою конфігурацією. Встановіть два паролі адміністратора з безпечними паролями: ```bash passwd ssimpson @@ -231,16 +235,16 @@ Retype new password: passwd: all authentication tokens updated successfully. ``` -Перевірте доступ до сервера за допомогою `ssh` для ваших двох адміністраторів. Ви повинні вміти: +Перевірте доступ до сервера за допомогою `ssh` для двох ваших адміністративних користувачів. Ви повинні вміти: -- використовувати `ssh`, щоб увійти як один із адміністраторів на сервері. (Приклад: `ssh lblakely@192.168.1.116` або `ssh lblakely@mywebserver.com`) +- використовуйте `ssh` для входу як один з адміністративних користувачів сервера. (Приклад: `ssh lblakely@192.168.1.116` або `ssh lblakely@mywebserver.com`) - ви повинні мати доступ до root за допомогою `sudo -s` та введення пароля адміністратора. Ви будете готові до наступного кроку, якщо це спрацює для всіх адміністраторів. #### Веб-користувачі (SFTP) -Вам потрібно додати наших веб-користувачів. Структура каталогу `../html` уже існує, тому ви не хочете створювати її під час додавання користувача, але ви *бажаєте* вказати це. Вам також не потрібен інший вхід, окрім SFTP, тому ви повинні використовувати оболонку, яка забороняє вхід. +Вам потрібно додати наших веб-користувачів. Ця структура каталогів `../html` вже існує, тому ви не хочете створювати її під час додавання користувача, але ви _потрібно_ її вказати. Вам також не потрібен інший вхід, окрім SFTP, тому ви повинні використовувати оболонку, яка забороняє вхід. ```bash useradd -M -d /var/www/sub-domains/com.site1/html -g apache -s /usr/sbin/nologin mybroken @@ -249,8 +253,8 @@ useradd -M -d /var/www/sub-domains/com.site2/html -g apache -s /usr/sbin/nologin Трохи розберемо ці команди: -- Параметр `-M` каже *не* створювати стандартний домашній каталог для користувача. -- `-d` вказує, що далі буде *фактичний* домашній каталог. +- Параметр `-M` каже _не_ створювати стандартний домашній каталог для користувача. +- `-d` вказує, що далі буде _фактичний_ домашній каталог. - `-g` повідомляє, що група, до якої належить цей користувач, — `apache`. - `-s` повідомляє, що призначена оболонка `/usr/sbin/nologin` - У кінці вказано фактичне ім’я користувача. @@ -266,15 +270,13 @@ passwd myfixed ### Конфігурація SSH -!!! warning "Важливо" +!!! warning Перш ніж почати цей процес, настійно рекомендуємо створити резервну копію системного файлу, який ви змінюєте: `/etc/ssh/sshd_config`. Злам цього файлу та відсутність можливості повернутися до оригіналу може спричинити вам цілий душевний біль! + + ` cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak ` - ``` - cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak - ``` - -Вам потрібно внести одну зміну у файл `/etc/ssh/sshd_config`. Ви створите шаблон, щоб вносити зміни у свій веб-каталог поза конфігураційним файлом, і створите сценарій доповнень, які вам знадобляться. +Вам потрібно внести одну зміну до файлу `/etc/ssh/sshd_config`. Ви створите шаблон, щоб вносити зміни у свій веб-каталог поза конфігураційним файлом, і створите сценарій доповнень, які вам знадобляться. Спочатку внесіть необхідні зміни вручну: @@ -299,11 +301,11 @@ Subsystem sftp internal-sftp Збережіть і закрийте файл. -`sftp-сервер` і `internal-sftp` є частиною OpenSSH. `internal-sftp`, хоч і не надто відрізняється від `sftp-сервера`, спрощує конфігурації за допомогою `ChrootDirectory`, щоб примусово використовувати іншу кореневу файлову систему для клієнтів. Ось чому ви використовуєте `internal-sftp`. +`sftp-server` та `internal-sftp` є частиною OpenSSH. `internal-sftp`, хоча й не надто відрізняється від `sftp-server`, спрощує налаштування за допомогою `ChrootDirectory` для примусового використання клієнтами іншої кореневої файлової системи. Ось чому ви використовуєте `internal-sftp`. ### Шаблон і сценарій -Чому ви створюєте шаблон і сценарій для наступної частини? Причина полягає в тому, щоб максимально уникнути людської помилки. Ви ще не закінчили змінювати цей файл `/etc/ssh/sshd_config`, але ви хочете усунути якомога більше помилок щоразу, коли вам потрібно буде внести ці зміни. Ви створите все це в `/usr/local/sbin`. +Чому ви створюєте шаблон і сценарій для наступної частини? Причина полягає в тому, щоб максимально уникнути людської помилки. Ви ще не закінчили змінювати файл `/etc/ssh/sshd_config`, але хочете усунути якомога більше помилок, коли вам знадобиться внести ці зміни. Ви створите все це у `/usr/local/sbin`. #### Шаблон @@ -324,19 +326,19 @@ Match User replaceuser X11Forwarding no ``` -!!! note "Примітка" +!!! note `PasswordAuthentication yes` зазвичай не потрібен для chroot jail. Однак пізніше ви вимкнете `PasswordAuthentication` для всіх інших, тому наявність цього рядка в шаблоні є важливою. -#### Зміни сценарію і `sshd_config` +Вам потрібен каталог для файлів користувача, який ви також створите з шаблону: ```bash mkdir /usr/local/sbin/templates ``` -#### Сценарій і `sshd_config` змінюються +#### Зміни у скрипті та `sshd_config` -У випусках Rocky Linux 8.6 і 9.0 нова опція для файлу `sshd_config` дозволяє вставляти конфігурації. Це **ЧУДОВА** зміна. Це означає, що для цих версій ви внесете одну додаткову зміну у файл `sshd_config`, а потім наш сценарій створить зміни sftp в окремому файлі конфігурації. Ця нова зміна робить речі ще безпечнішими. Безпека - це добре!! +З випусками Rocky Linux 8.6 та 9.0, нова опція для файлу `sshd_config` дозволяє створювати конфігурації за допомогою випадання. Це **ЧУДОВА** зміна. Це означає, що вам потрібно буде внести одну додаткову зміну до файлу `sshd_config`, а наш скрипт запише зміни sftp в окремий файл конфігурації. Ця нова зміна робить речі ще безпечнішими. Безпека - це добре!! Через зміни, дозволені для файлу `sshd_config` у Rocky Linux 8.6 і 9.0, наш сценарій використовуватиме новий файл конфігурації: `/etc/ssh/sftp/sftp_config`. @@ -358,7 +360,7 @@ cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak Додайте /etc/ssh/sftp/sftp_config ``` -Збережіть зміни та вийдіть із файлу. Вам потрібно буде перезапустити `sshd`, але наш сценарій зробить це за нас після оновлення файлу `sftp_config`, тому створіть сценарій і запустіть його. +Збережіть зміни та вийдіть із файлу. Вам потрібно буде перезапустити `sshd`, але наш скрипт зробить це за нас після оновлення файлу `sftp_config`, тому створіть скрипт і запустіть його. ```bash vi /usr/local/sbin/webuser @@ -428,13 +430,13 @@ vi /usr/local/sbin/webuser ### Остаточні зміни та примітки до сценарію -!!! tip "Підказка" +!!! tip Якщо ви подивіться на сценарій вище, ви помітите зміну розділювача, який `sed` використовує за замовчуванням, з `/` на `,`. `sed` дозволяє використовувати будь-який однобайтовий символ як роздільник. Те, що ви шукаєте у файлі, містить купу символів "/", і вам довелося б уникнути кожного з них (додати "\" перед ними), щоб знайти та замінити ці рядки. Зміна розділювача робить це нескінченно легшим, оскільки усуває необхідність виконувати ці екранування. -Є кілька речей, які слід знати про сценарій і SFTP chroot загалом. Спочатку ви запитуєте необхідну інформацію та повертаєте її користувачеві електронною поштою для перевірки. Якщо ви відповідаєте «N» на запитання підтвердження, сценарій завершується і нічого не робить. Сценарій для 8.5 робить резервну копію `sshd_config` (`/etc/ssh/sshd_config.bak`) такою, якою вона була до запуску сценарію. Сценарій 8.6 або 9.0 робить те саме для файлу `sftp_config` (`/etc/ssh/sftp/sftp_config.bak`). Якщо ви зробили помилки в записі, ви можете відновити відповідний файл резервної копії та перезапустити `sshd`, щоб все знову запрацювало. +Є кілька речей, які слід знати про сценарій і SFTP chroot загалом. Спочатку ви запитуєте необхідну інформацію та повертаєте її користувачеві електронною поштою для перевірки. Якщо ви відповідаєте «N» на запитання підтвердження, сценарій завершується і нічого не робить. Скрипт для версії 8.5 створює резервну копію `sshd_config` (`/etc/ssh/sshd_config.bak`) у тому вигляді, у якому вона була до запуску скрипта. Скрипт 8.6 або 9.0 робить те саме для файлу `sftp_config` (`/etc/ssh/sftp/sftp_config.bak`). Таким чином, якщо ви допустите помилки в записі, ви можете відновити відповідний файл резервної копії та перезапустити `sshd`, щоб все знову запрацювало. -SFTP chroot вимагає, щоб шлях, указаний у `sshd_config`, мав права власності root. З цієї причини вам не потрібно додавати каталог `html` у кінець шляху. Після автентифікації користувача chroot перемкне домашній каталог користувача, каталог `../html`, на будь-який домен, який ви вводите. Ваш сценарій належним чином змінив власника каталогу `../html` на sftpuser і групу apache. +SFTP chroot вимагає, щоб шлях, вказаний у `sshd_config`, мав root-права власності. З цієї причини вам не потрібно додавати каталог `html` в кінець шляху. Після автентифікації користувача chroot переключить домашній каталог користувача, у цьому випадку каталог `../html`, на той домен, який ви вводите. Ваш скрипт належним чином змінив власника каталогу `../html` на sftpuser та групу apache. Зробіть сценарій виконуваним: @@ -446,22 +448,22 @@ chmod +x /usr/local/sbin/webuser ### Тестування відмови SSH і доступу SFTP -Спочатку перевірте за допомогою `ssh` з іншої машини на нашу хост-машину як один із користувачів SFTP. Ви повинні отримати це після введення пароля: +Спочатку перевіримо підключення за допомогою `ssh` з іншої машини на нашу головну машину як один з користувачів SFTP. Ви повинні отримати це після введення пароля: ```bash -Ця служба дозволяє лише з’єднання sftp. +This service allows sftp connections only. ``` #### Тестування графічного інструменту -Якщо ви *отримаєте* це повідомлення, наступним чином перевірте доступ SFTP. Для простоти тестування ви можете використовувати графічну програму FTP, яка підтримує SFTP, наприклад Filezilla. У таких випадках ваші поля виглядатимуть приблизно так: +Якщо ви _отримаєте_ це повідомлення, наступним кроком буде перевірка доступу SFTP. Для простоти тестування ви можете використовувати графічну програму FTP, яка підтримує SFTP, наприклад Filezilla. У таких випадках ваші поля виглядатимуть приблизно так: - **Host:** sftp://hostname_or_IP_of_the_server - **Username:** (Приклад: myfixed) - **Password:** (пароль користувача SFTP) - **Port:** якщо ви використовуєте SSH і SFTP на порті за замовчуванням 22, введіть цей порт -Після заповнення ви можете натиснути кнопку «Швидке підключення» (Filezilla), і ви підключитесь до каталогу `../html` відповідного сайту. Двічі клацніть на каталозі "html", щоб помістити себе в нього та спробувати перекинути файл у каталог. Якщо ви досягли успіху, все працює правильно. +Після заповнення ви можете натиснути кнопку «Швидке підключення» (Filezilla), і ви підключитеся до каталогу `../html` відповідного сайту. Двічі клацніть на каталозі "html", щоб помістити себе в нього та спробувати перекинути файл у каталог. Якщо ви досягли успіху, все працює правильно. #### Тестування інструментів командного рядка @@ -479,7 +481,7 @@ chmod +x /usr/local/sbin/webuser ### Веб-тестові файли -Для наших фіктивних доменів ви хочете створити пару файлів `index.html`, якими можна заповнити каталог `../html`. Після створення їх потрібно розмістити в каталозі для кожного домену з обліковими даними SFTP. Ці файли спрощені. Ви просто хочете щось перевірити, чи ваші сайти запущені й працюють, а SFTP працює належним чином. Ось приклад цього файлу. Ви можете змінити його, якщо хочете: +Для наших фіктивних доменів вам потрібно створити кілька файлів `index.html`, якими можна заповнити каталог `../html`. Після створення їх потрібно розмістити в каталозі для кожного домену з обліковими даними SFTP. Ці файли спрощені. Ви просто хочете щось перевірити, чи ваші сайти запущені й працюють, а SFTP працює належним чином. Ось приклад цього файлу. Ви можете змінити його, якщо хочете: ```html @@ -498,7 +500,7 @@ chmod +x /usr/local/sbin/webuser ### Веб-тести -Вам потрібно змінити файл *hosts* на вашій робочій станції, щоб перевірити, чи ці файли відображаються та завантажуються належним чином. Для Linux це буде `sudo vi /etc/hosts` і додайте IP-адресу та імена хостів, які ви тестуєте, ось так: +Вам потрібно змінити файл _hosts_ на вашій робочій станції, щоб перевірити, чи ці файли відображаються та завантажуються належним чином. Для Linux це буде `sudo vi /etc/hosts`, і додайте IP-адресу та імена хостів, які ви тестуєте, ось так: ```bash 127.0.0.1 localhost @@ -512,15 +514,15 @@ ff02::1 ip6-allnodes ff02::2 ip6-allrouters ``` -!!! tip "Підказка" +!!! tip - Ви б хотіли заповнити ваші DNS-сервери зазначеними вище хостами для справжніх доменів. Однак ви можете використовувати цей *DNS бідняка* для тестування будь-якого домену, навіть того, який не був активований на справжніх серверах DNS. + Ви б хотіли заповнити ваші DNS-сервери зазначеними вище хостами для справжніх доменів. Однак ви можете використовувати цей _DNS бідняка_ для тестування будь-якого домену, навіть того, який не був активований на справжніх серверах DNS. -Відкрийте веб-переглядач і переконайтеся, що ваш файл `index.html` для кожного домену відображається, ввівши URL-адресу в адресний рядок вашого браузера. (Приклад: ) Якщо файли тестового індексу завантажуються, все працює правильно. +Відкрийте веббраузер і переконайтеся, що файл `index.html` для кожного домену відображається, ввівши URL-адресу в адресний рядок браузера. (Приклад: ) Якщо ваші тестові індексні файли завантажуються, все працює правильно. ## Частина 3: Адміністративний доступ за допомогою пар ключів SSH -Зауважте, що ви використовуватимете концепції, розглянуті в документі [Відкриті та приватні ключі SSH](../security/ssh_public_private_keys.md) тут, але також вдосконалюватимете їх. Якщо ви новачок у цьому процесі, прочитайте цю статтю, перш ніж продовжити. +Зверніть увагу, що ви використовуватимете концепції, обговорені в документі [SSH Public and Private Keys](../security/ssh_public_private_keys.md), а також удосконалюватимете його. Якщо ви новачок у цьому процесі, прочитайте цю статтю, перш ніж продовжити. ### Створення пар відкритих/приватних ключів @@ -533,8 +535,8 @@ ssh-keygen -t rsa Що дасть вам це: ```text -Generating public/private rsa key pair. -Enter file in which to save the key (/home/lblakely/.ssh/id_rsa): +Генерація пари ключів rsa (публічний/приватний). +Введіть файл, у якому потрібно зберегти ключ (/home/lblakely/.ssh/id_rsa): ``` Натисніть Enter, щоб створити закритий ключ у вказаному місці. Це дасть вам таке діалогове вікно: @@ -563,7 +565,7 @@ Enter same passphrase again: ssh-id-copy lblakely@192.168.1.116 ``` -Сервер один раз запитає пароль користувача та скопіює ключ у *authorized_keys*. Ви також отримаєте це повідомлення: +Сервер один раз запросить пароль користувача та скопіює ключ у _authorized_keys_. Ви також отримаєте це повідомлення: ```bash Number of key(s) added: 1 @@ -668,7 +670,7 @@ systemctl restart sshd ## Додаток: нові системні адміністратори -Ще не обговорювалося те, що відбувається при додаванні іншого системного адміністратора. `ssh-copy-id` не працюватиме з вимкненою автентифікацією пароля. Ось що рекомендує автор у таких ситуаціях. Зверніть увагу, що існує більше одного рішення. На додаток до методів, згаданих тут, існуючий адміністратор може створити та розгорнути ключі для іншого адміністратора. +Ще не обговорювалося те, що відбувається при додаванні іншого системного адміністратора. `ssh-copy-id` не працюватиме, якщо вимкнено автентифікацію за паролем. Ось що рекомендує автор у таких ситуаціях. Зверніть увагу, що існує більше одного рішення. На додаток до методів, згаданих тут, існуючий адміністратор може створити та розгорнути ключі для іншого адміністратора. ### Перше рішення – Sneaker Net @@ -690,7 +692,7 @@ systemctl restart sshd Цей процес використовує системного адміністратора, який уже має доступ на основі ключів, і сценарій, який має виконуватися з `bash [script-name]`, щоб виконати те саме, що й у «Рішенні два» вище: -- вручну відредагуйте файл `sshd_config` і видаліть виділений рядок, який виглядає так: `#PasswordAuthentication no`. Цей рядок документує процес вимкнення автентифікації пароля, але він заважатиме сценарію нижче, оскільки наш сценарій шукатиме перше входження `PasswordAuthentication no`, а пізніше перше входження ` PasswordAuthentication так`. Якщо ви видалите цей один рядок, наш сценарій працюватиме нормально. +- вручну відредагуйте файл `sshd_config` та видаліть зарезервований рядок, який виглядає так: `#PasswordAuthentication no`. Цей рядок документує процес вимкнення автентифікації за паролем, але він заважатиме виконанню наведеного нижче скрипта, оскільки наш скрипт шукатиме перше входження `PasswordAuthentication no`, а потім перше входження `PasswordAuthentication yes`. Якщо ви видалите цей один рядок, наш сценарій працюватиме нормально. - створіть сценарій на сервері SFTP під назвою "quickswitch" або як завгодно його називаєте. Вміст цього сценарію виглядатиме так: ```bash @@ -708,10 +710,10 @@ read yn echo "Changes reversed" ``` -Пояснення сценарію: ви не робите цей сценарій виконуваним. Причина в тому, що ви не хочете, щоб він запускався випадково. Сценарій працює (як зазначено вище) так: `bash /usr/local/sbin/quickswitch`. Цей сценарій створює резервну копію файлу `sshd_config`, як і інші наші приклади вище. Потім він редагує файл `sshd_config` на місці та шукає *ПЕРШУ* появу `PasswordAuthentication no` та змінює його на `PasswordAuthentication yes`, потім перезапускає `sshd` і чекає, поки користувач сценарію натисне ++enter++, перш ніж продовжити. Системний адміністратор, який запускає сценарій, спілкуватиметься з новим системним адміністратором, і коли цей новий системний адміністратор запускає `ssh-copy-id`, щоб скопіювати свій ключ на сервер, системний адміністратор, який запускає сценарій натискає Enter, і це скасовує зміни. +Пояснення сценарію: ви не робите цей сценарій виконуваним. Причина в тому, що ви не хочете, щоб він запускався випадково. Скрипт працює (як зазначено вище) так: `bash /usr/local/sbin/quickswitch`. Цей скрипт створює резервну копію файлу `sshd_config`, як і всі інші наші приклади вище. Потім він редагує файл `sshd_config` на місці та шукає _ПЕРШИЙ_ вхід `PasswordAuthentication no` та змінює його на `PasswordAuthentication yes`, потім перезапускає `sshd` та чекає, поки користувач скрипта натисне ++enter++, перш ніж продовжити. Системний адміністратор, який запускає скрипт, зв'язуватиметься з новим системним адміністратором, і щойно новий системний адміністратор запустить `ssh-copy-id`, щоб скопіювати свій ключ на сервер, системний адміністратор, який запускає скрипт, натискатиме Enter, і це скасує зміни. Коротше кажучи, існує багато способів додати іншого системного адміністратора після впровадження процедур блокування SSH. ## Висновок -Цей документ великий. Це зробить багатосайтовий веб-сервер більш безпечним і менш схильним до векторів атак через SSH під час увімкнення SFTP для доступу клієнтів. SFTP є набагато безпечнішим, ніж FTP, навіть якщо ви використовуєте справді *ХОРОШІ* FTP-сервери та налаштували їх якомога безпечніше, як зазначено в цьому [документ на VSFTPD](secure_ftp_server_vsftpd.md). Виконавши *усі* кроки в цьому документі, ви можете почувати себе комфортно, відкриваючи порт 22 (SSH) у вашій загальнодоступній зоні та все ще знати, що ваше середовище безпечне. +Цей документ великий. Це зробить багатосайтовий веб-сервер більш безпечним і менш схильним до векторів атак через SSH під час увімкнення SFTP для доступу клієнтів. SFTP набагато безпечніший за FTP, навіть якщо ви використовуєте справді _ХОРОШИЙ_ FTP-сервер і налаштовуєте його максимально безпечно, як зазначено в цьому [документі про VSFTPD](secure_ftp_server_vsftpd.md). Виконуючи _всі_ кроки, описані в цьому документі, ви можете впевнено відкривати порт 22 (SSH) для вашої публічної зони та все одно бути впевненим у безпеці вашого середовища. diff --git a/docs/guides/interoperability/import_rocky_to_wsl.uk.md b/docs/guides/interoperability/import_rocky_to_wsl.uk.md index 99382bda5c..b27f2818f0 100644 --- a/docs/guides/interoperability/import_rocky_to_wsl.uk.md +++ b/docs/guides/interoperability/import_rocky_to_wsl.uk.md @@ -9,68 +9,54 @@ tags: - сумісність --- -# Імпорт Rocky Linux до WSL +!!! note "Зображення для інших версій" + + Якщо ви шукаєте інструкції WSL для іншої версії Rocky Linux, виберіть потрібну версію у верхньому меню, а потім зверніться до інструкцій WSL у розділі «Інтероперабельність». ## Передумови -Необхідно ввімкнути функцію Windows-Subsystem для Linux. Це можливо за допомогою одного з цих варіантів: +Ви повинні ввімкнути функцію Windows-Subsystem для Linux. Зробіть це за допомогою одного з цих варіантів: -- [Новіша версія WSL із додатковими функціями доступна в Microsoft Store](https://apps.microsoft.com/store/detail/windows-subsystem-for-linux/9P9TQF7MRM4R). Використовуйте цю новішу версію, коли це можливо. -- Відкрийте адміністративний термінал (PowerShell або Command-Prompt) і запустіть `wsl --install` ([посил.](https://docs.microsoft.com/en-us/windows/wsl/install)) +- [Новіша версія WSL з додатковими функціями доступна в магазині Microsoft] (https://apps.microsoft.com/store/detail/windows-subsystem-for-linux/9P9TQF7MRM4R). Використовуйте цю новішу версію, коли це можливо. +- Відкрийте адміністративний термінал (PowerShell або командний рядок) та виконайте `wsl --install` ([посилання](https://docs.microsoft.com/en-us/windows/wsl/install)) - Перейдіть до графічних налаштувань Windows і ввімкніть додаткову функцію `Підсистема Windows для Linux` Тепер ця функція має бути доступна в усіх підтримуваних версіях Windows 10 і 11. !!! tip "Версія WSL" - Переконайтеся, що ваша версія WSL оновлена, оскільки деякі функції були представлені лише в пізніших версіях. Якщо ви не впевнені, виконайте команду `wsl --update`. + Переконайтеся, що ваша версія WSL оновлена, оскільки деякі функції були введені лише в пізніших версіях. Якщо ви не впевнені, виконайте команду `wsl --update`. ## Кроки -### Встановлювані образи WSL (бажано) - -1. Завантажте образ WSL з CDN або іншого дзеркала, ближчого до вас: - - - 9: [x86_64](https://dl.rockylinux.org/pub/rocky/9/images/x86_64/Rocky-9-WSL-Base.latest.x86_64.wsl) або [aarch64](https://dl.rockylinux.org/pub/rocky/9/images/aarch64/Rocky-9-WSL-Base.latest.aarch64.wsl) - - 10: [x86_64](https://dl.rockylinux.org/pub/rocky/10/images/x86_64/Rocky-10-WSL-Base.latest.x86_64.wsl) або [aarch64](https://dl.rockylinux.org/pub/rocky/10/images/aarch64/Rocky-10-WSL-Base.latest.aarch64.wsl) - -2. Існує кілька варіантів встановлення образу `.wsl`: - - - Двічі клацніть на зображенні, і воно буде встановлено з ім'ям зображення за замовчуванням - - Встановіть образ через командний рядок: - - ```sh - wsl --install --from-file - ``` - ### Зображення звичайних контейнерів 1. Отримайте контейнер rootfs. Це можливо кількома способами: - - Завантажте зображення з CDN: - - 8: [Base x86_64](https://dl.rockylinux.org/pub/rocky/8/images/x86_64/Rocky-8-Container-Base.latest.x86_64.tar.xz), [Minimal x86_64](https://dl.rockylinux.org/pub/rocky/8/images/x86_64/Rocky-8-Container-Minimal.latest.x86_64.tar.xz), [UBI x86_64](https://dl.rockylinux.org/pub/rocky/8/images/x86_64/Rocky-8-Container-UBI.latest.x86_64.tar.xz), [Base aarch64](https://dl.rockylinux.org/pub/rocky/8/images/aarch64/Rocky-8-Container-Base.latest.aarch64.tar.xz), [Minimal aarch64](https://dl.rockylinux.org/pub/rocky/8/images/aarch64/Rocky-8-Container-Minimal.latest.aarch64.tar.xz), [UBI aarch64](https://dl.rockylinux.org/pub/rocky/8/images/aarch64/Rocky-8-Container-UBI.latest.aarch64.tar.xz) - - 9: [Base x86_64](https://dl.rockylinux.org/pub/rocky/9/images/x86_64/Rocky-9-Container-Base.latest.x86_64.tar.xz), [Minimal x86_64](https://dl.rockylinux.org/pub/rocky/9/images/x86_64/Rocky-9-Container-Minimal.latest.x86_64.tar.xz), [UBI x86_64](https://dl.rockylinux.org/pub/rocky/9/images/x86_64/Rocky-9-Container-UBI.latest.x86_64.tar.xz), [Base aarch64](https://dl.rockylinux.org/pub/rocky/9/images/aarch64/Rocky-9-Container-Base.latest.aarch64.tar.xz), [Minimal aarch64](https://dl.rockylinux.org/pub/rocky/9/images/aarch64/Rocky-9-Container-Minimal.latest.aarch64.tar.xz), [UBI aarch64](https://dl.rockylinux.org/pub/rocky/9/images/aarch64/Rocky-9-Container-UBI.latest.aarch64.tar.xz) - - 10: [Base x86_64](https://dl.rockylinux.org/pub/rocky/10/images/x86_64/Rocky-10-Container-Base.latest.x86_64.tar.xz), [Minimal x86_64](https://dl.rockylinux.org/pub/rocky/10/images/x86_64/Rocky-10-Container-Minimal.latest.x86_64.tar.xz), [UBI x86_64](https://dl.rockylinux.org/pub/rocky/10/images/x86_64/Rocky-10-Container-UBI.latest.x86_64.tar.xz), [Base aarch64](https://dl.rockylinux.org/pub/rocky/10/images/aarch64/Rocky-10-Container-Base.latest.aarch64.tar.xz), [Minimal aarch64](https://dl.rockylinux.org/pub/rocky/10/images/aarch64/Rocky-10-Container-Minimal.latest.aarch64.tar.xz), [UBI aarch64](https://dl.rockylinux.org/pub/rocky/10/images/aarch64/Rocky-10-Container-UBI.latest.aarch64.tar.xz) - - Витягніть образ з Docker Hub або Quay.io ([посилання.](https://docs.microsoft.com/en-us/windows/wsl/use-custom-distro#export-the-tar-from-a-container)) + - Завантажте зображення з CDN: + - 8: [Базова x86_64](https://dl.rockylinux.org/pub/rocky/8/images/x86_64/Rocky-8-Container-Base.latest.x86_64.tar.xz), [Мінімальна x86_64](https://dl.rockylinux.org/pub/rocky/8/images/x86_64/Rocky-8-Container-Minimal.latest.x86_64.tar.xz), [UBI x86_64](https://dl.rockylinux.org/pub/rocky/8/images/x86_64/Rocky-8-Container-UBI.latest.x86_64.tar.xz), [Базова aarch64](https://dl.rockylinux.org/pub/rocky/8/images/aarch64/Rocky-8-Container-Base.latest.aarch64.tar.xz), [Мінімальний aarch64](https://dl.rockylinux.org/pub/rocky/8/images/aarch64/Rocky-8-Container-Minimal.latest.aarch64.tar.xz), [UBI aarch64](https://dl.rockylinux.org/pub/rocky/8/images/aarch64/Rocky-8-Container-UBI.latest.aarch64.tar.xz) + - Витягніть образ з Docker Hub або Quay.io ([посилання](https://docs.microsoft.com/en-us/windows/wsl/use-custom-distro#export-the-tar-from-a-container)) ```sh - export rockylinux:10 > rocky-10-image.tar + export rockylinux:8 > rocky-8-image.tar ``` -2. (необов’язково) Вам доведеться розпакувати файл .tar із файлу .tar.xz, якщо ви не використовуєте одну з останніх версій WSL +2. (необов'язково) Вам доведеться витягти файл .tar з файлу `.tar.xz`, якщо ви використовуєте одну з останніх версій WSL. + 3. Створіть каталог, де WSL зберігатиме свої файли (переважно десь у профілі користувача) + 4. Нарешті імпортуйте зображення до WSL ([ посилання](https://docs.microsoft.com/en-us/windows/wsl/use-custom-distro#import-the-tar-file-into-wsl)): - - WSL: + - WSL: ```sh - wsl --import --version 1 + wsl --import --version 1 ``` - - WSL 2: + - WSL 2: ```sh - wsl --import --version 2 + wsl --import --version 2 ``` !!! tip "WSL vs. WSL 2" diff --git a/docs/guides/migrate2rocky.uk.md b/docs/guides/migrate2rocky.uk.md index f46b730ca2..07d2c58b43 100644 --- a/docs/guides/migrate2rocky.uk.md +++ b/docs/guides/migrate2rocky.uk.md @@ -13,7 +13,7 @@ update: 23.11.2021 - Практичні знання командного рядка. - Практичні знання SSH для віддалених машин. - Помірно ризиковане ставлення. -- Виконання команд від імені root. Або увійдіть як root, або отримайте можливість підвищити привілеї за допомогою `sudo`. +- Виконання команд від імені root. Або увійдіть як root, або майте можливість підвищити привілеї за допомогою `sudo` ## Вступ @@ -30,7 +30,7 @@ update: 23.11.2021 ### Застереження та попередження 1. Перегляньте сторінку README migrate2rocky (посилання на яку наведено вище), оскільки існує відома суперечність між сценарієм і сховищами Katello. З часом ми, ймовірно, виявимо (і, зрештою, виправимо) більше зіткнень і несумісностей, тож ви захочете знати про це, особливо для робочих серверів. -2. Найвірогідніше, що цей сценарій працюватиме без інцидентів при повністю свіжих встановленнях. _Якщо ви хочете перетворити робочий сервер, заради всього святого й доброго, **зробіть резервну копію даних і знімок системи або зробіть спочатку в середовищі для демонстрації.**_ +2. Найвірогідніше, що цей сценарій працюватиме без інцидентів при повністю свіжих встановленнях. Якщо ви хочете конвертувати робочий сервер, **створіть резервну копію даних та знімок системи або спочатку зробіть це в проміжному середовищі.**_ Ви готові? @@ -40,14 +40,14 @@ update: 23.11.2021 ### Ручний спосіб -Завантажте стислі файли з GitHub і розпакуйте потрібний (це буде *migrate2rocky.sh* або *migrate2rocky9.sh*). Ви можете знайти zip-файли для будь-якого сховища GitHub у правій частині головної сторінки сховища: +Завантажте стиснуті файли з GitHub та розпакуйте потрібний вам файл (це буде _migrate2rocky.sh_ або _migrate2rocky9.sh_). Ви можете знайти zip-файли для будь-якого сховища GitHub у правій частині головної сторінки сховища: ![Кнопка "Download Zip"](images/migrate2rocky-github-zip.png) Потім завантажте виконуваний файл на свій сервер за допомогою SSH, виконавши цю команду на локальному комп’ютері: -!!! Note "Примітка" - Якщо ви використовуєте систему 9.x, додайте 9 перед `.sh` +!!! Note +Якщо ви використовуєте систему версії 9.x, додайте 9 перед `.sh` ```bash scp PATH/TO/FILE/migrate2rocky.sh root@yourdomain.com:/home/ @@ -73,25 +73,25 @@ git clone https://github.com/rocky-linux/rocky-tools.git ### Легкий спосіб -Це, мабуть, найпростіший спосіб отримати сценарій. Вам потрібен лише відповідний клієнт HTTP (`curl`, `wget`, `lynx` тощо), встановлений на сервері. +Це, мабуть, найпростіший спосіб отримати сценарій. Вам потрібен лише відповідний HTTP-клієнт (`curl`, `wget`, `lynx` тощо), встановлений на сервері. Припускаючи, що у вас встановлено утиліту `curl`, виконайте таку команду, щоб завантажити сценарій у будь-який каталог, який ви використовуєте: -!!! Note "Примітка" - Якщо ви використовуєте систему 9.x, додайте 9 перед `.sh` +!!! Note +Якщо ви використовуєте систему версії 9.x, додайте 9 перед `.sh` ```bash curl https://raw.githubusercontent.com/rocky-linux/rocky-tools/main/migrate2rocky/migrate2rocky.sh -o migrate2rocky.sh ``` -Ця команда завантажить файл на ваш сервер і *тільки* той файл, який ви хочете. Але знову ж таки, проблеми безпеки свідчать про те, що це не обов’язково найкраща практика, тому майте це на увазі. +Ця команда завантажить файл на ваш сервер, і _лише_ той файл, який вам потрібен. Але знову ж таки, проблеми безпеки свідчать про те, що це не обов’язково найкраща практика, тому майте це на увазі. ## Скрипти виконання та встановлення Використовуйте команду `cd`, щоб перейти до каталогу, де знаходиться сценарій, переконатися, що файл є виконуваним, і надати дозволи власнику файлу сценарію x. -!!! Note "Примітка" - У наведених нижче командах, якщо ви використовуєте систему 9.x, додайте 9 перед `.sh` +!!! Note +У наведених нижче командах, якщо ви використовуєте систему версії 9.x, додайте 9 перед `.sh` ```bash chmod u+x migrate2rocky.sh @@ -115,6 +115,6 @@ chmod u+x migrate2rocky.sh ![повідомлення про успішну міграцію ОС](images/migrate2rocky-convert-02.png) -Дайте трохи часу, увійдіть знову, і ви матимете чудовий новий сервер Rocky Linux. Виконайте команду `hostnamectl`, щоб перевірити, чи ваша ОС переміщена належним чином і все в порядку. +Дайте трохи часу, увійдіть знову, і ви матимете чудовий новий сервер Rocky Linux. Виконайте команду `hostnamectl`, щоб перевірити, чи ваша ОС перенесла дані належним чином, і чи все гаразд. ![Результати виконання команди hostnamectl](images/migrate2rocky-convert-03.png) diff --git a/docs/guides/mirror_management/add_mirror_manager.uk.md b/docs/guides/mirror_management/add_mirror_manager.uk.md index b9af844a11..81a8eba3af 100644 --- a/docs/guides/mirror_management/add_mirror_manager.uk.md +++ b/docs/guides/mirror_management/add_mirror_manager.uk.md @@ -7,7 +7,7 @@ contributors: Amin Vakil, Steven Spencer, Ganna Zhyrnova ## Мінімальні вимоги до публічних дзеркал -Ми завжди раді новим публічним дзеркалам. Але вони повинні добре підтримуватися та розміщуватися в цілодобовому середовищі, схожому на центр обробки даних. Доступна пропускна здатність має бути не менше 1 Гбіт/с. Ми віддаємо перевагу дзеркалам із подвійним стеком (IPv4 та IPv6). Не надсилайте дзеркала, налаштовані за допомогою динамічного DNS. Ми також приймаємо нижчу швидкість, якщо ви перебуваєте в регіоні, де лише кілька дзеркал. +Ми завжди раді новим публічним дзеркалам. Але вони повинні добре підтримуватися та розміщуватися в цілодобовому середовищі, схожому на центр обробки даних. Доступна пропускна здатність має бути не менше 1 Гбіт/с. Ми надаємо перевагу дзеркалам, що пропонують подвійний стек (IPv4 та IPv6). Не надсилайте дзеркала, налаштовані за допомогою динамічного DNS. Ми також приймаємо нижчу швидкість, якщо ви перебуваєте в регіоні, де лише кілька дзеркал. Будь ласка, не надсилайте дзеркала, розміщені в Anycast-CDN, як-от Cloudflare тощо, оскільки це може призвести до неоптимальної продуктивності через вибір найшвидшого дзеркала в `dnf`. @@ -15,13 +15,14 @@ contributors: Amin Vakil, Steven Spencer, Ganna Zhyrnova На момент написання цієї статті (кінець 2022 року) вимоги до пам’яті для віддзеркалення всіх поточних і минулих випусків Rocky Linux становлять близько 2 ТБ. -Наше головне дзеркало — `rsync://msync.rockylinux.org/rocky/mirror/pub/rocky/`. Для першої синхронізації використовуйте дзеркало поблизу. Ви можете знайти всі офіційні дзеркала [тут](https://mirrors.rockylinux.org). +Наше головне дзеркало — `rsync://msync.rockylinux.org/rocky/mirror/pub/rocky/`. +Для першої синхронізації використовуйте дзеркало поблизу. Ви можете знайти всі офіційні дзеркала [тут](https://mirrors.rockylinux.org). -Будь ласка, зверніть увагу, що ми можемо обмежити доступ до офіційного головного дзеркала офіційними публічними дзеркалами. Тому, якщо ви використовуєте приватне дзеркало, подумайте про `rsyncing` із публічного дзеркала, розташованого поблизу. Крім того, локальні дзеркала можуть швидше синхронізуватися. +Будь ласка, зверніть увагу, що ми можемо обмежити доступ до офіційного головного дзеркала офіційними публічними дзеркалами. Тож, будь ласка, розгляньте можливість `rsync` з публічного дзеркала поруч із вами, якщо ви використовуєте приватне дзеркало. Крім того, локальні дзеркала можуть швидше синхронізуватися. ## Налаштування дзеркала -Налаштуйте завдання cron, щоб періодично синхронізувати ваше дзеркало та дозволяти йому запускатися 6 разів на день. Але не забудьте синхронізувати годину, щоб допомогти розподілити навантаження в часі. Якщо ви перевіряєте лише зміни `fullfiletimelist-rocky` і виконуєте повну синхронізацію, лише якщо цей файл змінився, ви можете синхронізувати щогодини. +Налаштуйте завдання cron, щоб періодично синхронізувати ваше дзеркало та дозволяти йому запускатися 6 разів на день. Але не забудьте синхронізувати годину, щоб допомогти розподілити навантаження в часі. Якщо ви перевіряєте лише зміни `fullfiletimelist-rocky` та виконуєте повну синхронізацію, лише якщо цей файл змінився, ви можете синхронізувати щогодини. Ось кілька прикладів crontab для вас: @@ -45,7 +46,7 @@ rsync -aqH --delete source-mirror destination-dir Розгляньте можливість використання механізму блокування, щоб уникнути одночасного запуску кількох завдань `rsync`, коли ми випускаємо новий випуск. -За потреби ви також можете змінити наш приклад сценарію, реалізуючи блокування та повну синхронізацію. Його можна знайти на . +За потреби ви також можете змінити наш приклад сценарію, реалізуючи блокування та повну синхронізацію. Його можна знайти за адресою . Після першої повної синхронізації перевірте, чи все в порядку з дзеркалом. Найголовніше, перевірте, чи всі файли та каталоги синхронізовані, чи ваше завдання cron працює належним чином, а ваше дзеркало доступне з загальнодоступного Інтернету. Ще раз перевірте правила брандмауера! Щоб уникнути будь-яких проблем, не використовуйте примусове переспрямування http на https. @@ -61,7 +62,7 @@ rsync -aqH --delete source-mirror destination-dir Rocky використовує Mirror Manager Fedora для організації дзеркал спільноти. -Отримайте доступ до Rocky's Mirror Manager тут: [https://accounts.rockylinux.org/](https://mirrors.rockylinux.org/mirrormanager/) +Отримайте доступ до менеджера дзеркал Роккі тут: Після успішного входу ваш профіль буде вгорі праворуч. Виберіть спадне меню та натисніть "My sites". @@ -71,7 +72,7 @@ Rocky використовує Mirror Manager Fedora для організаці - "Site Name" - "Site Password" - використовується сценарієм `report_mirrors`, ви робите все, що забажаєте -- "Organization URL" - URL-адреса компанії/школи/організації, напр. +- «URL-адреса організації» – URL-адреса компанії/навчального закладу/організації, наприклад, - "Private" - Установивши цей прапорець, ваше дзеркало буде приховано від публічного використання. - "User active" - Зніміть цей прапорець, щоб тимчасово вимкнути цей сайт; його буде видалено з публічних списків. - "All sites can pull from me?" - Увімкнути всі сайти-дзеркала для отримання від мене без явного додавання їх до мого списку. diff --git a/docs/guides/network/basic_network_configuration.uk.md b/docs/guides/network/basic_network_configuration.uk.md index d3dee064cc..e0f77b46f2 100644 --- a/docs/guides/network/basic_network_configuration.uk.md +++ b/docs/guides/network/basic_network_configuration.uk.md @@ -18,38 +18,39 @@ tags: - Підвищені або адміністративні привілеї в системі (наприклад, root, `sudo` тощо) - Додатково: знайомство з мережевими концепціями -=== "9" +\=== "9" + ```` ## Конфігурація мережі - Rocky Linux 9 З Rocky Linux 9 багато чого змінилося в конфігурації мережі. Однією з головних змін є перехід від мережевих сценаріїв (досі доступних для встановлення, але фактично застарілих) до використання Менеджера мережі та ключових файлів, а не файлів на основі `ifcfg`. `NetworkManager`, починаючи з 9, надає пріоритет `keyfiles` над попередніми `ifcfg` файлами. Оскільки зараз це значення за замовчуванням, налаштування мережі має прийняти значення за замовчуванням як правильний спосіб виконання завдань, враховуючи, що інші зміни протягом багатьох років означали остаточне припинення підтримки та видалення старіших утиліт. Цей посібник спробує ознайомити вас із використанням Network Manager та останніми змінами в Rocky Linux 9. ## Передумови - + - Певний комфорт роботи з командного рядка - Підвищені або адміністративні привілеї в системі (наприклад, root, `sudo` тощо) - Додатково: знайомство з мережевими концепціями - - + + ## Використання служби NetworkManager - + На рівні користувача мережевим стеком керує `NetworkManager`. Цей інструмент працює як служба, і ви можете перевірити його стан за допомогою такої команди: - + ```bash systemctl status NetworkManager ``` - - + + ## Файли конфігурації - + Як зазначалося на початку, файли конфігурації за замовчуванням тепер життєво важливі. Ви можете побачити, як `NetworkManager` визначає пріоритет цих файлів, виконавши таку команду: - + ``` NetworkManager --print-config ``` - + Це дає результат, який виглядає так: - + ``` [main] # plugins=keyfile,ifcfg-rh @@ -58,25 +59,25 @@ tags: # iwd-config-path= dhcp=dhclient configure-and-quit=no - + [logging] # backend=journal # audit=false - + [device] # wifi.backend=wpa_supplicant - + # no-auto-default file "/var/lib/NetworkManager/no-auto-default.state" ``` - + Зверніть увагу на те, що у верхній частині файлу конфігурації є посилання на `keyfile`, а потім `ifcfg-rh`. Це означає, що типовим є `keyfile`. Кожного разу, коли ви запускаєте будь-який із інструментів `NetworkManager` для налаштування інтерфейсу (приклад: `nmcli` або `nmtui`), він автоматично створюватиме або оновлюватиме ключові файли. - + !!! tip "Місце зберігання конфігурації" - + У Rocky Linux 8 місце зберігання конфігурації мережі було в `/etc/sysconfig/Network-Scripts/`. У Rocky Linux 9 нове місце зберігання ключових файлів за умовчанням знаходиться в `/etc/NetworkManager/system-connections`. - + Основною (але не єдиною) утилітою, яка використовується для налаштування мережевого інтерфейсу, є команда `nmtui`. Це також можна зробити за допомогою команди `nmcli`, але це набагато менш інтуїтивно зрозуміло. Ми можемо показати інтерфейс, як він наразі налаштований за допомогою `nmcli` за допомогою: - + ``` nmcli device show enp0s3 GENERAL.DEVICE: enp0s3 @@ -98,61 +99,61 @@ tags: IP6.GATEWAY: -- IP6.ROUTE[1]: dst = fe80::/64, nh = ::, mt = 1024 ``` - - + + !!! tip "**Поради:**" - + Існує кілька способів або механізмів, за допомогою яких системам можна призначити інформацію про конфігурацію IP. Два найпоширеніші методи: схема **конфігурації статичної IP-адреси** та схема **конфігурації динамічної IP-адреси**. - + Схема конфігурації статичного IP є модною в системах або мережах серверного класу. - + Динамічний IP-підхід популярний у домашніх і офісних мережах, робочих станціях і настільних системах у бізнес-середовищі. Динамічна схема зазвичай потребує *щось* додаткового, що є локально доступним і може надати правильну інформацію про конфігурацію IP для запитуючих робочих станцій і робочих столів. Це *щось* називається протоколом динамічної конфігурації хоста (DHCP). У домашній мережі та навіть у більшості бізнес-мереж ця послуга надається сервером DHCP, налаштованим для цієї мети. Це може бути окремий сервер або частина конфігурації маршрутизатора. - - + + ## IP-адреса - + У попередньому розділі показана конфігурація для інтерфейсу `enp0s3` що генерується з файлу `.ini` `/etc/NetworkManager/system-connections/enp0s3.nmconnection`. Це показує, що IP4.ADDRESS[1] було налаштовано статично, а не динамічно через DHCP. Якщо ми хочемо перемкнути цей інтерфейс назад на динамічно виділену адресу, найпростішим способом є використання команди `nmtui`. - + 1. Спочатку запустіть команду `nmtui` в командному рядку, яка має показати наступне - + ![nmtui](images/nmtui_first.png) - + 2. Нам уже потрібне «Редагувати з’єднання» у виділеному пункті, тож натисніть клавішу ++tab++, щоб виділити «ОК», і натисніть ++enter++ - + 3. Відкриється екран, на якому показано підключення Ethernet на машині, і ви зможете вибрати одне з них. У нашому випадку є *ЛИШЕ* один, тому він уже виділений, нам просто потрібно натиснути клавішу ++tab++, доки не буде виділено «Редагувати», а потім натисніть ++enter++ - + ![nmtui_edit](images/nmtui_edit.png) - + 4. Коли ми це зробимо, ми будемо на екрані, де буде показано нашу поточну конфігурацію. Що нам потрібно зробити, це перемкнутися з «Вручну» на «Автоматично», тому кілька разів натисніть клавішу ++tab++, доки не дійдете до місця, де буде виділено «Вручну», а потім натисніть ++enter++. - + ![nmtui_manual](images/nmtui_manual.png) - + 5. Стрілка вгору, доки не буде виділено «Автоматично», а потім натисніть ++enter++ - + ![nmtui_automatic](images/nmtui_automatic.png) - + 6. Після того, як ми перемкнули інтерфейс на «Автоматичний», нам потрібно видалити статично призначену IP-адресу, тому натисніть клавішу ++tab++, доки «Видалити» не буде виділено поруч із IP-адресою, і натисніть ++enter++. - + ![nmtui_remove](images/nmtui_remove.png) - + 7. Нарешті натисніть клавішу ++tab++ кілька разів, доки не дійдете до нижньої частини екрана `nmtui` і не буде виділено «OK», а потім натисніть ++enter++ - + Ви також можете вимкнути та знову активувати свій інтерфейс за допомогою `nmtui`, але натомість зробимо це за допомогою `nmcli`. Таким чином ми можемо зв’язати деактивацію та повторну активацію інтерфейсу, щоб інтерфейс ніколи не був недоступним надовго: - + ``` nmcli con down enp0s3 && nmcli con up enp0s3 ``` - + Подумайте про це як про еквівалент старого `ifdown enp0s3 && ifup enp0s3` використовується в старих версіях ОС. - + Щоб переконатися, що це спрацювало, перевірте за допомогою команди `ip addr` або команди `nmcli device show enp0s3`, яку ми використовували раніше. - + ``` ip addr ``` - + У разі успіху ви побачите, що статичну IP-адресу видалено та додано динамічно виділену адресу, подібну до цієї: - + ```bash 2: enp0s3: mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 08:00:27:ba:ce:88 brd ff:ff:ff:ff:ff:ff @@ -161,46 +162,46 @@ tags: inet6 fe80::a00:27ff:feba:ce88/64 scope link noprefixroute valid_lft forever preferred_lft forever ``` - - + + ### Зміна IP-адреси за допомогою `nmcli` - + Користуватися `nmtui` добре, але якщо ви хочете швидко переналаштувати мережевий інтерфейс, не витрачаючи час між екранами, ви, ймовірно, захочете використовувати `nmcli` окремо. Давайте розглянемо наведений вище приклад статично призначеної IP-адреси та кроки для переналаштування інтерфейсу на DHCP лише за допомогою `nmcli`. - + Перш ніж почати, майте на увазі, що для переналаштування інтерфейсу на DHCP нам потрібно: - + - Видаліть шлюз IPv4 - Видаліть IPv4-адресу, яку ми статично призначили - Змініть метод IPv4 на автоматичний - Інтерфейс вниз і вгору - + Зауважте, що ми не використовуємо приклади, які говорять вам про використання -ipv4.address тощо. Вони не змінюють повністю інтерфейс. Для цього ми повинні встановити порожній рядок для ipv4.address і ipv4.gateway. Знову ж таки, щоб заощадити якомога більше часу за допомогою нашої команди, ми збираємося об’єднати їх усі в один рядок: - + ``` nmcli con mod enp0s3 ipv4.gateway '' && nmcli con mod enp0s3 ipv4.address '' && nmcli con mod enp0s3 ipv4.method auto && nmcli con down enp0s3 && nmcli con up enp0s3 ``` - + Повторне виконання команди `ip addr` має показати ті самі результати, що й під час виконання змін за допомогою `nmtui`. Очевидно, ми могли б зробити все і навпаки (змінити адресу DHCP на статичну). Для цього ми б запустили команди у зворотному порядку, починаючи зі зміни `ipv4.method` на ручний, налаштувавши `ipv4.gateway`, а потім налаштувавши `ipv4.address`. Оскільки в усіх цих прикладах ми повністю змінюємо конфігурацію інтерфейсу, а не додаємо чи віднімаємо до нього значення, ми знову не будемо використовувати моделі, які говорять про використання `+ipv4.method`,` +ipv4.gateway` та `+ipv4.address`. Якщо ви використаєте ці команди замість тих, які ми використовували вище, ви отримаєте інтерфейс із *ОБОДВА* адресою, призначеною DHCP, і адресою, призначеною статично. Проте інколи це може бути дуже зручно. Якщо у вас є веб-служба, яка слухає одну IP-адресу, а SFTP-сервер – іншу IP-адресу. Наявність методу призначення кількох IP-адрес інтерфейсу є досить корисним. - - + + ## Роздільна здатність DNS - + Налаштувати DNS-сервери можна за допомогою `nmtui` або `nmcli`. Хоча інтерфейс `nmtui` простий у навігації та набагато більш інтуїтивно зрозумілий, процес набагато повільніший. Зробити це за допомогою `nmcli` набагато швидше. У випадку адреси, призначеної DHCP, зазвичай немає необхідності встановлювати DNS-сервери, оскільки вони зазвичай пересилаються з сервера DHCP. Проте ви *можете* статично додавати DNS-сервери до інтерфейсу DHCP. У випадку зі статично призначеним інтерфейсом ви *МАЄТЕ* це зробити, оскільки йому потрібно знати, як отримати дозвіл DNS, і не матимете автоматично призначеного методу. - + Оскільки найкращим прикладом для всього цього є статично призначений IP, давайте повернемося до нашої вихідної статично призначеної адреси в нашому прикладі інтерфейсу (enp0s3). Перш ніж змінювати значення DNS, нам потрібно побачити, які вони зараз. Щоб отримати правильний дозвіл імен, видаліть уже налаштовані DNS-сервери та додайте інші. Наразі для `ipv4.dns` встановлено `8.8.8.8,8.8.4.4,192.168.1.1`. У цьому випадку нам не потрібно встановлювати для ipv4.dns порожній рядок. Ми можемо використовувати таку команду, щоб замінити наші значення: - + ``` nmcli con mod enp0s3 ipv4.dns '208.67.222.222,208.67.220.220,192.168.1.1' ``` - + Запуск `nmcli con show enp0s3 | grep ipv4.dns` має показати, що ми успішно змінили сервери DNS. Щоб активувати все, давайте перенесемо наш інтерфейс вниз і знову, щоб наші зміни були активними: - + ``` nmcli con down enp0s3 && nmcli con up enp0s3 ``` - + Щоб перевірити, чи ми *робимо* розпізнавання імен, спробуйте перевірити ping на відомому хості. Ми будемо використовувати google.com як приклад: - + ```bash ping google.com PING google.com (172.217.4.46) 56(84) bytes of data. @@ -209,69 +210,69 @@ tags: 64 bytes from lga15s46-in-f14.1e100.net (172.217.4.46): icmp_seq=3 ttl=119 time=14.4 ms ^C ``` - - + + ## Використання утиліти `ip` - + Команда `ip` (надається пакетом *iproute2*) є потужним інструментом для отримання інформації та налаштування мережі сучасної системи Linux, такої як Rocky Linux. - + У цьому прикладі ми припустимо такі параметри: - + - interface name: enp0s3 - ip address: 192.168.1.151 - subnet mask: 24 - gateway: 192.168.1.1 - - + + ### Отримання загальної інформації - + Щоб переглянути детальний стан усіх інтерфейсів, використовуйте - + ```bash ip a ``` - + !!! tip "**Професійні поради:**" - + * використовуйте прапорець `-c`, щоб отримати більш читабельний кольоровий вивід: `ip -c a`. * `ip` приймає абревіатуру, тому `ip a`, `ip addr` та `ip address` еквівалентні - - + + ### Переміщення інтерфейсу вгору або вниз - + !!! note "Примітка" - + Незважаючи на те, що цей метод все ще можна використовувати для зміни інтерфейсу в Rocky Linux 9, команда реагує набагато повільніше, ніж просто використання команди `nmcli` у наших попередніх прикладах. - + Щоб повернути *enp0s3* вниз і знову, ми можемо просто використати: - + ``` ip link set enp0s3 down && ip link set enp0s3 up ``` - - + + ### Призначення інтерфейсу статичної адреси - + Наразі наш інтерфейс enp0s3 має IP-адресу 192.168.1.151. Щоб перемкнути його на 192.168.1.152, ми видалимо старий IP-адресу за допомогою - + ```bash ip addr delete 192.168.1.151/24 dev enp0s3 && ip addr add 192.168.1.152/24 dev enp0s3 ``` - + Якби ми хотіли, щоб інтерфейсу було призначено другий IP замість видалення адреси 192.168.1.151, ми б просто додали другу адресу за допомогою: - + ```bash ip addr add 192.168.1.152/24 dev enp0s3 ``` - + Ми можемо перевірити, чи було додано IP-адресу за допомогою - + ```bash ip a show dev enp0s3 ``` - + виведе: - + ```bash 2: enp0s3: mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 08:00:27:ba:ce:88 brd ff:ff:ff:ff:ff:ff @@ -282,39 +283,39 @@ tags: inet6 fe80::a00:27ff:feba:ce88/64 scope link noprefixroute valid_lft forever preferred_lft forever ``` - + Хоча перемикання інтерфейсу за допомогою утиліти `ip` набагато повільніше, ніж `nmcli`, `ip` має явну перевагу під час встановлення нових або додаткових IP-адрес, як це відбувається в режимі реального часу, без переривання інтерфейсу. - - + + ### Конфігурація шлюзу - - + + Тепер, коли інтерфейс має адресу, ми повинні встановити його маршрут за замовчуванням. Це можна зробити за допомогою: - + ```bash ip route add default via 192.168.1.1 dev enp0s3 ``` - + Таблицю маршрутизації ядра можна відобразити за допомогою - + ```bash ip route ``` - + або скорочено `ip r`. - + Це має вивести щось на зразок цього: - + ```bash default via 192.168.1.1 dev enp0s3 192.168.1.0/24 dev enp0s3 proto kernel scope link src 192.168.1.151 metric 100 ``` - - + + ## Перевірка підключення до мережі - + У наведених вище прикладах ми провели певне тестування. Найкращий вибір для тестування — почати з перевірки ping шлюзу за замовчуванням. Це завжди має працювати: - + ```bash ping -c3 192.168.1.1 PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data. @@ -322,18 +323,18 @@ tags: 64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=0.879 ms 64 bytes from 192.168.1.1: icmp_seq=3 ttl=64 time=0.633 ms ``` - + Далі перевірте, чи ваша маршрутизація локальної мережі працює повністю, виконавши ping до хосту у вашій локальній мережі: - + ```bash ping -c3 192.168.1.10 PING 192.168.1.10 (192.168.1.10) 56(84) bytes of data. 64 bytes from 192.168.1.10: icmp_seq=2 ttl=255 time=0.684 ms 64 bytes from 192.168.1.10: icmp_seq=3 ttl=255 time=0.676 ms ``` - + Перевірте, щоб переконатися, що ми можемо бачити доступний хост поза вашою мережею. Для наведеного нижче тесту ми використовуємо відкритий DNS-сервер Google: - + ```bash ping -c3 8.8.8.8 PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data. @@ -341,9 +342,9 @@ tags: 64 bytes from 8.8.8.8: icmp_seq=2 ttl=119 time=20.2 ms 64 bytes from 8.8.8.8: icmp_seq=3 ttl=119 time=20.1 ms ``` - + Останнім тестом є перевірка роботи роздільної здатності DNS. Для цього прикладу ми використовуємо google.com: - + ```bash ping -c3 google.com PING google.com (172.217.4.46) 56(84) bytes of data. @@ -351,36 +352,38 @@ tags: 64 bytes from lga15s46-in-f14.1e100.net (172.217.4.46): icmp_seq=2 ttl=119 time=15.1 ms 64 bytes from lga15s46-in-f14.1e100.net (172.217.4.46): icmp_seq=3 ttl=119 time=14.6 ms ``` - + Якщо ваша машина має кілька інтерфейсів і ви хочете протестувати з певного інтерфейсу, просто скористайтеся опцією `-I` з ping: - + ```bash ping -I enp0s3 -c3 192.168.1.10 ``` - - + + ## Висновок - + У Rocky Linux 9 є багато змін у мережевому стеку. Серед них пріоритетність `keyfile` над раніше використовуваними файлами `ifcfg`, знайденими в Network-Scripts. Оскільки в наступних версіях Rocky Linux мережеві сценарії будуть застарілими та видаленими, краще зосередити увагу на таких методологіях, як `nmcli`, `nmtui` та в у деяких випадках `ip`, для налаштування мережі. + ```` -=== "8" +\=== "8" + ```` ## Конфігурація мережі - Rocky Linux 8 ## Використання служби NetworkManager На рівні користувача мережевим стеком керує *NetworkManager*. Цей інструмент працює як служба, і ви можете перевірити його стан за допомогою такої команди: - + ```bash systemctl status NetworkManager ``` - - + + ### Конфігураційні файли NetworkManager просто застосовує конфігурацію, зчитану з файлів, знайдених у `/etc/sysconfig/network-scripts/ifcfg-`. Кожен мережевий інтерфейс має свій конфігураційний файл. Нижче показано приклад стандартної конфігурації сервера: - + ```bash TYPE=Ethernet PROXY_METHOD=none @@ -400,8 +403,8 @@ tags: DNS2=1.1.1.1 IPV6_DISABLED=yes ``` - - + + Ім’я інтерфейсу – **enp1s0**, тому ім’я цього файлу буде `/etc/sysconfig/network-scripts/ifcfg-enp1s0`. !!! tip "**Поради:**" @@ -421,32 +424,32 @@ tags: Якщо натомість ви хочете налаштувати систему на використання схеми динамічної IP-адреси, вам доведеться змінити значення параметра `BOOTPROTO` з `none` на `dhcp`, а також видалити `IPADDR`, `PREFIX` і рядки `GATEWAY`. Це необхідно, оскільки вся ця інформація буде автоматично отримана з будь-якого доступного сервера DHCP. Щоб налаштувати атрибуцію статичної IP-адреси, установіть наступне: - + * IPADDR: IP-адреса для призначення інтерфейсу * PREFIX: маска підмережі в [нотації CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) * GATEWAY: шлюз за умовчанням - + Параметр `ONBOOT` зі значенням `yes` вказує на те, що це підключення буде активовано під час завантаження. - - + + ### Роздільна здатність DNS - + Для правильного розпізнавання імен необхідно встановити наступні параметри: - + * DNS1: IP-адреса основного сервера імен * DNS2: IP-адреса вторинного сервера імен - - + + ### Перевірка конфігурації - + Перевірити правильність застосування конфігурації можна за допомогою такої команди `nmcli`: - + ```bash [user@server ~]$ sudo nmcli device show enp1s0 ``` - + який повинен дати вам наступний результат: - + ```conf GENERAL.DEVICE: enp1s0 GENERAL.TYPE: ethernet @@ -464,26 +467,26 @@ tags: IP4.DNS[2]: 1.1.1.1 IP6.GATEWAY: -- ``` - - + + ### CLI - + Основною функцією NetworkManager є керування «з’єднаннями», які відображають фізичний пристрій для більш логічних мережевих компонентів, таких як IP-адреса та налаштування DNS. Щоб переглянути наявні підключення, які підтримує NetworkManager, ви можете запустити `nmcli connection show`. - + ```bash [user@server ~]$ sudo nmcli connection show NAME UUID TYPE DEVICE enp1s0 625a8aef-175d-4692-934c-2c4a85f11b8c ethernet enp1s0 ``` - + З результатів вище ми можемо визначити, що NetworkManager керує з’єднанням (`NAME`) під назвою `enp1s0`, яке відображається на фізичному пристрої (`DEVICE`) `enp1s0`. - + !!! tip "Назва з'єднання" - + У цьому прикладі з’єднання та пристрій мають однакове ім’я, але це не завжди так. Зазвичай можна побачити підключення під назвою `System eth0`, яке, наприклад, відображається на пристрої під назвою `eth0`. - + Тепер, коли ми знаємо назву нашого підключення, ми можемо переглянути його налаштування. Для цього скористайтеся командою `nmcli connection show [connection]`, яка роздрукує всі параметри, зареєстровані NetworkManager для даного з’єднання. - + ```bash [user@server ~]$ sudo nmcli connection show enp1s0 ... @@ -506,219 +509,220 @@ tags: ipv4.dhcp-send-hostname: yes ... ``` - + Унизу лівого стовпця ми бачимо назву параметра, а внизу праворуч – значення. - + Наприклад, ми бачимо, що `ipv4.method` тут наразі встановлено на `auto`. Існує багато дозволених значень для параметра `ipv4.method`, але два основні, які ви, швидше за все, побачите: - + - `auto`: для інтерфейсу використовується відповідний автоматичний метод (DHCP, PPP тощо), більшість інших властивостей можна не налаштовувати. - `manual`: використовується статична IP-адреса, і принаймні одну IP-адресу потрібно вказати у властивості 'addresses'. - + Якщо замість цього ви хочете налаштувати систему на використання схеми статичної IP-адреси, вам доведеться змінити значення `ipv4.method` на `manual`, а також вказати `ipv4.gateway` та `ipv4.addresses`. - + Щоб змінити налаштування, ви можете скористатися командою nmcli `nmcli connection modify [connection] [setting] [value]`. - + ```bash # set 10.0.0.10 as the static ipv4 address [user@server ~]$ sudo nmcli connection modify enp1s0 ipv4.addresses 10.0.0.10 - + # set 10.0.0.1 as the ipv4 gateway [user@server ~]$ sudo nmcli connection modify enp1s0 ipv4.gateway 10.0.0.1 - + # change ipv4 method to use static assignments (set in the previous two commands) [user@server ~]$ sudo nmcli connection modify enp1s0 ipv4.method manual ``` - + !!! tip "Коли з’єднання оновлюється?" - + `nmcli connection modify` не змінюватиме конфігурацію *runtime*, але оновлюватиме конфігурацію `/etc/sysconfig/network-scripts` файли з відповідними значеннями на основі того, що ви сказали `nmcli` налаштувати. - + Щоб налаштувати ваші DNS-сервери за допомогою NetworkManager через CLI, ви можете змінити параметр `ipv4.dns`. - + ```bash # set 10.0.0.1 and 1.1.1.1 as the primary and secondary DNS servers [user@server ~]$ sudo nmcli connection modify enp1s0 ipv4.dns '10.0.0.1 1.1.1.1' ``` - - + + ### Застосування конфігурації - + Щоб застосувати конфігурацію мережі, ви можете скористатися командою `nmcli connection up [connection]`. - + ```bash [user@server ~]$ sudo nmcli connection up enp1s0 Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/2) ``` - + Щоб отримати стан підключення, просто використовуйте: - + ```bash [user@server ~]$ sudo nmcli connection show NAME UUID TYPE DEVICE enp1s0 625a8aef-175d-4692-934c-2c4a85f11b8c ethernet enp1s0 ``` - + Ви також можете використати команди `ifup` та `ifdown`, щоб змінити інтерфейс (вони є простими обгортками навколо `nmcli`): - + ```bash [user@server ~]$ sudo ifup enp1s0 [user@server ~]$ sudo ifdown enp1s0 ``` - - + + ## Використання утиліти ip - + Команда `ip` (надається пакетом *iproute2*) є потужним інструментом для отримання інформації та налаштування мережі сучасної системи Linux, такої як Rocky Linux. - + У цьому прикладі ми припустимо такі параметри: - + - назва інтерфейсу: ens19 - ip-адреса: 192.168.20.10 - subnet mask: 24 - шлюз: 192.168.20.254 - - + + ### Отримання загальної інформації - + Щоб переглянути детальний стан усіх інтерфейсів, використовуйте - + ```bash ip a ``` - + !!! tip "**Професійні поради:**" - + - використовуйте прапорець `-c`, щоб отримати більш читабельний кольоровий вивід: `ip -c a`. - `ip` приймає абревіатуру, тому `ip a`, `ip addr` та `ip address` еквівалентні - - + + ### Переміщення інтерфейсу вгору або вниз - + Щоб активувати інтерфейс *ens19*, просто скористайтеся `ip link set ens19 up`, а щоб вивести його з ладу, використовуйте `ip link set ens19 down`. - - + + ### Призначення інтерфейсу статичної адреси - + Команда, яка буде використана, має вигляд: - + ```bash ip addr add dev ``` - + Щоб призначити наведені вище приклади параметрів, ми використаємо: - + ```bash ip a add 192.168.20.10/24 dev ens19 ``` - + Потім перевірте результат за допомогою: - + ```bash ip a show dev ens19 ``` - + виведе: - + ```bash 3: ens19: mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 4a:f2:f5:b6:aa:9f brd ff:ff:ff:ff:ff:ff inet 192.168.20.10/24 scope global ens19 valid_lft forever preferred_lft forever ``` - + Наш інтерфейс працює та налаштований, але йому все ще чогось не вистачає! - - + + ### Використання утиліти ifcfg - + Щоб додати інтерфейс *ens19* до нашої нової прикладної IP-адреси, скористайтеся такою командою: - + ```bash ifcfg ens19 add 192.168.20.10/24 ``` - + Щоб видалити адресу: - + ```bash ifcfg ens19 del 192.168.20.10/24 ``` - + Щоб повністю вимкнути IP-адресу в цьому інтерфейсі: - + ```bash ifcfg ens19 stop ``` - + *Зауважте, що це не призведе до роботи інтерфейсу; він просто скасовує всі IP-адреси з інтерфейсу.* - - + + ### Конфігурація шлюзу - + Тепер, коли інтерфейс має адресу, ми повинні встановити його маршрут за замовчуванням; це можна зробити за допомогою наступного: - + ```bash ip route add default via 192.168.20.254 dev ens19 ``` - + Таблицю маршрутизації ядра можна відобразити за допомогою - + ```bash ip route ``` - + або скорочено `ip r`. - - + + ## Перевірка підключення до мережі - + На цьому етапі ваш мережевий інтерфейс має бути належним чином налаштований. Є кілька способів перевірити підключення. - + Шляхом *pinging* іншої IP-адреси в тій же мережі (ми використаємо `192.168.20.42` як приклад): - + ```bash ping -c3 192.168.20.42 ``` - + Ця команда надішле 3 *пінги* (відомі як запит ICMP) і чекає на відповідь. Якщо все пройшло добре, ви повинні отримати такий результат: - + ```bash PING 192.168.20.42 (192.168.20.42) 56(84) bytes of data. 64 bytes from 192.168.20.42: icmp_seq=1 ttl=64 time=1.07 ms 64 bytes from 192.168.20.42: icmp_seq=2 ttl=64 time=0.915 ms 64 bytes from 192.168.20.42: icmp_seq=3 ttl=64 time=0.850 ms - + --- 192.168.20.42 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 5ms rtt min/avg/max/mdev = 0.850/0.946/1.074/0.097 ms ``` - + Потім, щоб переконатися, що ваша конфігурація маршрутизації правильна, спробуйте *ping* зовнішнього хосту, наприклад, цього добре відомого загальнодоступного розпізнавача DNS: - + ```bash ping -c3 8.8.8.8 ``` - + Якщо ваша машина має кілька мережевих інтерфейсів і ви хочете зробити запит ICMP через певний інтерфейс, ви можете використати позначку `-I`: - + ```bash ping -I ens19 -c3 192.168.20.42 ``` - + Настав час переконатися, що роздільна здатність DNS працює правильно. Нагадуємо, що роздільна здатність DNS — це механізм, який використовується для перетворення зрозумілих для людини імен машин на їхні IP-адреси та навпаки (зворотний DNS). - + Якщо файл `/etc/resolv.conf` вказує на доступний DNS-сервер, тоді має працювати наступне: - + ```bash host rockylinux.org ``` - + Результат має бути: - + ```bash rockylinux.org has address 76.76.21.21 ``` - - + + ## Висновок - + У Rocky Linux 8 є інструменти для налаштування мережі за допомогою командного рядка. Цей документ допоможе вам швидко почати роботу з цими інструментами. + ```` diff --git a/docs/guides/network/librenms_monitoring_server.uk.md b/docs/guides/network/librenms_monitoring_server.uk.md index 3fe2b79775..d5d59c258b 100644 --- a/docs/guides/network/librenms_monitoring_server.uk.md +++ b/docs/guides/network/librenms_monitoring_server.uk.md @@ -1,8 +1,12 @@ -- - - -title: LibreNMS Monitoring Server author: Steven Spencer contributors: Ezequiel Bruni, Ganna Zhyrnova tested_with: 8.5, 8.6, 9.0 tags: +--- +title: Сервер моніторингу LibreNMS +author: Steven Spencer +contributors: Ezequiel Bruni, Ganna Zhyrnova +tested_with: 8.5, 8.6, 9.0 +tags: - моніторинг - мережа -- - - +--- # Сервер моніторингу LibreNMS @@ -12,21 +16,21 @@ title: LibreNMS Monitoring Server author: Steven Spencer contributors: Ezequiel Цей документ є лише відправною точкою для LibreNMS. Автор вкаже вам на чудову (і розширену) документацію проекту для отримання додаткових варіантів. Автор використовував багато інших рішень для моніторингу, Nagios і Cacti, але LibreNMS пропонує те, що пропонують ці два проекти окремо, в одному місці. -Встановлення відбуватиметься відповідно до [офіційних інструкцій із встановлення](https://docs.librenms.org/Installation/Install-LibreNMS/). Пояснення та незначні зміни в цій процедурі роблять цю процедуру кращою за чудовий документ. +Встановлення буде здійснюватися відповідно до [офіційних інструкцій з встановлення](https://docs.librenms.org/Installation/Install-LibreNMS/). Пояснення та незначні зміни в цій процедурі роблять цю процедуру кращою за чудовий документ. ## Передумови, припущення та умовності - Сервер або контейнер (так, LibreNMS працюватиме в контейнері. Якщо у вас є багато чого для моніторингу, найкращим варіантом буде інсталяція на автономному апаратному забезпеченні) під керуванням Rocky Linux. Усі команди передбачають нову інсталяцію Rocky Linux. -- Припущення: ви можете запускати команди від імені адміністратора або *sudo* для підвищення привілеїв -- Практичні знання інструментів командного рядка, включаючи текстові редактори, такі як *vi* +- Припущення: що ви можете виконувати команди від імені root або використовувати _sudo_ для підвищення привілеїв +- Практичне знання інструментів командного рядка, включаючи текстові редактори, такі як _vi_ - Припущення: використання SNMP v2. Якщо ви хочете використовувати SNMP v3, LibreNMS підтримує це і буде працювати. Ви повинні змінити конфігурацію та параметри SNMP на своїх пристроях, щоб відповідати версії 3. -- Тут включено процедуру SELinux. Контейнер, який автор використовує в лабораторії, не включає його за замовчуванням. З цієї причини процедура SELinux **не** була лабораторно перевірена. -- У цьому документі в прикладах використовується редактор *vi*. Коли в документі написано зберегти зміни та вийти, використовуйте ++shift+colon+w+q+exclam++. +- Тут включено процедуру SELinux. Контейнер, який автор використовує в лабораторії, не включає його за замовчуванням. З цієї причини процедура SELinux **не** була протестована в лабораторії. +- У цьому документі приклади використовують редактор _vi_. Коли в документі написано зберегти зміни та вийти, використовуйте ++shift+colon+w+q+exclam++. - Процедура вимагає певних навичок усунення несправностей, включаючи моніторинг журналів, веб-тестування тощо ## Встановлення пакетів -Введіть ці команди від імені користувача root. Перш ніж почати, зауважте, що ця процедура встановлення зосереджена на *httpd*, а не на *nginx*. Якщо ви віддаєте перевагу останньому, дотримуйтеся [інструкцій зі встановлення Librenms](https://docs.librenms.org/Installation/Install-LibreNMS/) і вказівок. +Введіть ці команди від імені користувача root. Перш ніж розпочати, зверніть увагу, що ця процедура встановлення зосереджена на _httpd_, а не на _nginx_. Якщо ви надаєте перевагу останньому варіанту, дотримуйтесь [Інструкцій з встановлення Librenms] (https://docs.librenms.org/Installation/Install-LibreNMS/) та посібників там. Спочатку встановіть репозиторій EPEL (додаткові пакети для Enterprise Linux): @@ -65,7 +69,7 @@ dnf install bash-completion cronie fping git httpd ImageMagick mariadb-server mt useradd librenms -d /opt/librenms -M -r -s "$(which bash)" ``` -Ця команда встановлює каталог за замовчуванням для користувача на `/opt/librenms`, однак параметр `-M` говорить «не створювати каталог». Причина в тому, що це відбувається під час встановлення LibreNMS. `-r` каже зробити цього користувача системним обліковим записом, а `-s` говорить про встановлення оболонки (у цьому випадку на "bash"). +Ця команда встановлює для користувача каталог за замовчуванням на `/opt/librenms`, проте опція `-M` говорить «не створювати каталог». Причина в тому, що це відбувається під час встановлення LibreNMS. `-r` вказує на те, що цьому користувачеві потрібно зробити системний обліковий запис, а `-s` — встановити оболонку (у цьому випадку, "bash"). ## Завантаження LibreNMS і встановлення дозволів @@ -90,11 +94,11 @@ setfacl -d -m g::rwx /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstra setfacl -R -m g::rwx /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache/ /opt/librenms/storage/ ``` -Команда `setfacl` розшифровується як «встановити списки контролю доступу до файлів» і є іншим способом захисту каталогів і файлів. +Команда `setfacl` розшифровується як «встановити списки контролю доступу до файлів» і є ще одним способом захисту каталогів і файлів. -## Встановлення залежності PHP як `librenms` +## Встановлення залежностей PHP як `librenms` -Залежності PHP у LibreNMS потрібно інсталювати за допомогою користувача `librenms`. Для цього запустіть: +Залежності PHP у LibreNMS потребують встановлення з користувачем `librenms`. Для цього запустіть: ```bash su - librenms @@ -118,13 +122,13 @@ exit ## Встановлення часового поясу -Вам потрібно переконатися, що налаштування системи та PHP є правильними. Ви можете знайти список [дійсних налаштувань часового поясу для PHP тут](https://php.net/manual/en/timezones.php). Наприклад, для центрального часового поясу стандартним записом є «Америка/Чикаго». Почніть із редагування файлу `php.ini`: +Вам потрібно переконатися, що налаштування системи та PHP є правильними. Ви можете знайти список [дійсних налаштувань часового поясу для PHP тут] (https://php.net/manual/en/timezones.php). Наприклад, для центрального часового поясу стандартним записом є «Америка/Чикаго». Почніть з редагування файлу `php.ini`: ```bash vi /etc/php.ini ``` -Знайдіть рядок `date.timezone` і змініть його. Зауважте, що це позначено, тому видаліть ";" від початку рядка та додайте свій часовий пояс після знака "=". Для прикладу центрального часового поясу використовуйте наступне: +Знайдіть рядок `date.timezone` та змініть його. Зауважте, що це позначено, тому видаліть ";" від початку рядка та додайте свій часовий пояс після знака "=". Для прикладу центрального часового поясу використовуйте наступне: ```bash date.timezone = America/Chicago @@ -140,7 +144,7 @@ timedatectl set-timezone America/Chicago ## Налаштування MariaDB -Перш ніж розпочинати вимоги до бази даних для LibreNMS, виконайте [процедуру MariaDB](../database/database_mariadb-server.md), зокрема розділ «Захист mariadb-сервера», і поверніться сюди, щоб отримати ці конкретні налаштування. Змініть файл `mariadb-server.cnf`: +Перш ніж розпочати налаштування вимог до бази даних для LibreNMS, виконайте [процедуру MariaDB](../database/database_mariadb-server.md), зокрема розділ "Захист сервера mariadb", і поверніться сюди для цих конкретних налаштувань. Змініть файл `mariadb-server.cnf`: ```bash vi /etc/my.cnf.d/mariadb-server.cnf @@ -153,7 +157,7 @@ innodb_file_per_table=1 lower_case_table_names=0 ``` -Потім увімкніть і перезапустіть сервер `mariadb`: +Потім увімкніть та перезапустіть сервер `mariadb`: ```bash systemctl enable mariadb @@ -168,7 +172,7 @@ mysql -u root -p Внесіть певні зміни для LibreNMS. За допомогою наведеної нижче команди не забудьте змінити пароль "password" на щось безпечне та задокументувати те, що знаходиться в безпечному місці. -У підказці `mysql` виконайте: +У командному рядку `mysql` виконайте: ```sql CREATE DATABASE librenms CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; @@ -183,7 +187,7 @@ FLUSH PRIVILEGES; Це не змінилося в офіційній документації, за винятком шляху до файлу. Спочатку скопіюйте `www.conf`: -Змініть файл `librenms.conf`: +Введіть "exit", щоб вийти з `mariadb`. ```bash cp /etc/php-fpm.d/www.conf /etc/php-fpm.d/librenms.conf @@ -205,7 +209,7 @@ group = librenms listen = /run/php-fpm-librenms.sock ``` -Збережіть зміни та вийдіть із файлу. Якщо це єдина веб-служба, яка працюватиме на цій машині, ви можете видалити старий файл www.conf, який ви скопіювали: +Збережіть зміни та вийдіть із файлу. Якщо це єдиний веб-сервіс, який працюватиме на цьому комп'ютері, ви можете видалити старий скопійований файл : ```bash rm -f /etc/php-fpm.d/www.conf @@ -244,13 +248,13 @@ vi /etc/httpd/conf.d/librenms.conf ``` -Ви повинні видалити старий сайт за замовчуванням, `welcome.conf`: +Вам слід видалити старий сайт за замовчуванням, `welcome.conf`: ```bash rm /etc/httpd/conf.d/welcome.conf ``` -Увімкніть `httpd` і `php-fpm`: +Увімкнути `httpd` та `php-fpm`: ```bash systemctl enable --now httpd @@ -282,7 +286,7 @@ chcon -t httpd_sys_rw_content_t /opt/librenms/.env ### Дозволити `fping` -Створіть будь-де файл під назвою `http_fping.tt`. Не має значення де. Встановлення цього відбувається далі. Вміст цього файлу: +Створіть файл під назвою `http_fping.tt` будь-де. Не має значення де. Встановлення цього відбувається далі. Вміст цього файлу: ```bash module http_fping 1.0; @@ -316,20 +320,20 @@ audit2why < /var/log/audit/audit.log Інструкції `firewalld` відповідають офіційній документації. -Команда для використання правил дозволу `firewalld` наступна: +Команда, яку потрібно використовувати для правил дозволу `firewalld`, така: ```bash firewall-cmd --zone public --add-service http --add-service https firewall-cmd --permanent --zone public --add-service http --add-service https ``` -Автор має проблеми з цим спрощеним набором правил `firewalld`. Це правило дозволяє вашим веб-сервісам бути відкритими для світу, але чи цього ви хочете від сервера моніторингу? +У автора є проблеми з цим спрощеним набором правил `firewalld`. Це правило дозволяє вашим веб-сервісам бути відкритими для світу, але чи цього ви хочете від сервера моніторингу? -Зазвичай це **ні**. Якщо вам потрібен більш детальний підхід до використання `firewalld`, перегляньте [цей документ](../security/firewalld.md), а потім внесіть відповідні зміни до своїх правил `firewalld`. +Зазвичай це **не** так. Якщо вам потрібен більш детальний підхід до використання `firewalld`, перегляньте [цей документ](../security/firewalld.md) та внесіть відповідні зміни до правил `firewalld`. -## Увімкнення символьного посилання та автозаповнення табуляції для команд `lnms` +## Увімкнути символічне посилання та автозаповнення за допомогою клавіші Tab для команд `lnms` -По-перше, вам потрібне символічне посилання на вашу команду `lnms`, щоб можна було запускати будь-де: +Спочатку вам потрібне символічне посилання на команду `lnms`, щоб її можна було запустити з будь-якого місця: ```bash ln -s /opt/librenms/lnms /usr/bin/lnms @@ -343,11 +347,11 @@ cp /opt/librenms/misc/lnms-completion.bash /etc/bash_completion.d/ ## Налаштування `snmpd` -*SNMP* означає "Simple Network Management Protocol (Простий протокол керування мережею)" і використовується багатьма програмами моніторингу для отримання даних. Для версії 2, яка тут використовується, потрібен «рядок спільноти», який відповідає вашому середовищу. +_SNMP_ розшифровується як «Простий протокол керування мережею» і використовується багатьма програмами моніторингу для отримання даних. Для версії 2, яка тут використовується, потрібен «рядок спільноти», який відповідає вашому середовищу. -Призначте цей «рядок спільноти» мережевим пристроям, які ви хочете контролювати, щоб `snmpd` («d» тут означає демон) міг знайти його. Якщо ваша мережа існує певний час, можливо, ви вже використовуєте «рядок спільноти». +Призначте цей "рядок спільноти" вашим мережевим пристроям, які ви хочете контролювати, щоб `snmpd` ("d" тут означає демон) зміг його знайти. Якщо ваша мережа існує певний час, можливо, ви вже використовуєте «рядок спільноти». -Скопіюйте файл `snmpd.conf` із LibreNMS: +Скопіюйте файл `snmpd.conf` з LibreNMS: ```bash cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf @@ -397,7 +401,7 @@ cp /opt/librenms/misc/librenms.logrotate /etc/logrotate.d/librenms PHP Composer є вимогою для поточної інсталяції (згаданої в попередній процедурі). Якщо встановлення, яке ви запустили раніше, не вдалось, ви повинні це зробити. -Перш ніж почати, вам потрібно прив’язати вашу поточну версію двійкового файлу `php` до розташування в шляху. Ця процедура використовувала інсталяцію REMI для отримання правильної версії PHP, і її не було встановлено в межах шляху. +Перш ніж почати, вам потрібно прив’язати вашу поточну версію бінарного файлу `php` до місця в шляху. Ця процедура використовувала інсталяцію REMI для отримання правильної версії PHP, і її не було встановлено в межах шляху. Це можна виправити за допомогою символічного посилання, і це значно полегшить ваше життя під час виконання решти кроків: @@ -405,7 +409,7 @@ PHP Composer є вимогою для поточної інсталяції (з ln -s /opt/remi/php81/root/usr/bin/php /usr/bin/php ``` -Перейдіть на [веб-сайт Composer](https://getcomposer.org/download/) і переконайтеся, що наведені нижче дії не змінилися. Потім запустіть ці команди десь на машині. Ви перемістите composer, коли це буде зроблено: +Перейдіть на [вебсайт Composer](https://getcomposer.org/download/) та переконайтеся, що наступні кроки не змінилися. Потім запустіть ці команди десь на машині. Ви перемістите composer, коли це буде зроблено: ```php php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" @@ -414,7 +418,7 @@ php composer-setup.php php -r "unlink('composer-setup.php');" ``` -Перемістіть його в місце на шляху. Для цього використовуйте `/usr/local/bin/`: +Перемістіть його в місце на шляху. Використайте для цього `/usr/local/bin/`: ```bash mv composer.phar /usr/local/bin/composer @@ -430,23 +434,23 @@ IP-адреса лабораторної машини 192.168.1.140. Перей Далі буде переспрямування до перевірки перед інсталяцією, припускаючи, що все працює правильно. Якщо всі вони позначені зеленим, ви можете продовжувати. -![Попередні перевірки LibreNMS](../images/librenms_prechecks.png) +![LibreNMS Prechecks](../images/librenms_prechecks.png) Чотири кнопки знаходяться під логотипом LibreNMS. Перша кнопка зліва призначена для попередніх перевірок. Наступна кнопка для бази даних. Вам знадобиться пароль, який ви встановили раніше для користувача бази даних «librenms». Якщо ви стежили за цим, значить, ви зберегли це в безпечному місці. Натисніть на кнопку «Database». Тут необхідні «Користувач» і «Пароль». Коли ви це зробите, натисніть кнопку «Перевірити облікові дані». -![База даних LibreNMS](../images/librenms_configure_database.png) +![LibreNMS Database](../images/librenms_configure_database.png) Натисніть кнопку «Створити базу даних», якщо вона знову стане зеленою. -![Статус бази даних LibreNMS](../images/librenms_configure_database_status.png) +![LibreNMS Database Status](../images/librenms_configure_database_status.png) Кнопка «Створити адміністратора» тепер буде активною. Натисніть її. Далі буде запропоновано ввести ім’я користувача адміністратора. У лабораторії це «admin». Створіть пароль для цього користувача. Переконайтеся, що пароль надійний, і зареєструйте його в безпечному місці, наприклад у менеджері паролів. Вам також потрібно буде додати адресу електронної пошти користувача-адміністратора. Після завершення натисніть кнопку «Додати користувача». -![Користувач-адміністратор LibreNMS](../images/librenms_administrative_user.png) +![LibreNMS Administrative User](../images/librenms_administrative_user.png) Тепер ви побачите екран «Завершити встановлення». Для завершення інсталяції залишиться лише один елемент: рядок із запитом «перевірити інсталяцію». @@ -460,7 +464,7 @@ IP-адреса лабораторної машини 192.168.1.140. Перей ### Налаштування робочої станції Ubuntu -Спочатку встановіть `snmpd` на робочу станцію та оновіть пакунки просто для безпеки: +Спочатку встановіть `snmp` на робочу станцію та оновіть пакети про всяк випадок: ```bash sudo update && sudo apt-get upgrade && sudo apt-get install snmpd @@ -479,7 +483,7 @@ sysLocation Desktop sysContact Username ``` -Встановлення `snmpd` на Ubuntu прив’язується лише до локальної адреси. Він не прослуховує IP-адресу вашого пристрою. Це не дозволить LibreNMS підключитися до нього. Вам потрібно виділити цей рядок: +Коли ви встановлюєте `snmp` на Ubuntu, він прив'язується лише до локальної адреси. Він не прослуховує IP-адресу вашого пристрою. Це не дозволить LibreNMS підключитися до нього. Вам потрібно виділити цей рядок: ```bash agentaddress 127.0.0.1,[::1] @@ -506,7 +510,7 @@ rocommunity LABone Збережіть зміни та вийдіть. -Увімкніть і запустіть `snmpd`: +Увімкнути та запустити `snmpd`: ```bash sudo systemctl enable snmpd @@ -517,7 +521,7 @@ sudo systemctl start snmpd ### Налаштування сервера CentOS або Rocky Linux -Припускається, що ви є користувачем root або можете `sudo` щоб підвищити привілеї. Вам потрібно встановити деякі пакети: +Припускається, що ви є root-користувачем або можете скористатися командою `sudo` для підвищення привілеїв. Вам потрібно встановити деякі пакети: ```bash dnf install net-snmp net-snmp-utils @@ -561,7 +565,7 @@ CentOS і Rocky використовують угоду про відображ Після внесення змін збережіть їх і закрийте файл. -Увімкніть і запустіть `snmpd`: +Увімкнути та запустити `snmpd`: ```bash systemctl enable snmpd @@ -570,7 +574,7 @@ systemctl start snmpd #### Firewall -Якщо ви використовуєте сервер, то ви **використовуєте** брандмауер, вірно? Якщо ви використовуєте `firewalld`, припускаємо, що ви використовуєте «довірену» зону і просто хочете дозволити весь трафік із вашого сервера моніторингу, 192.168.1.140: +Якщо ви використовуєте сервер, то ви використовуєте брандмауер, чи не так? Якщо ви використовуєте `firewalld`, припускається, що ви використовуєте "довірену" зону та хочете дозволити весь трафік лише з вашого сервера моніторингу, 192.168.1.140: ```bash firewall-cmd --zone=trusted --add-source=192.168.1.140 --permanent @@ -582,7 +586,7 @@ firewall-cmd --zone=trusted --add-source=192.168.1.140 --permanent Коли ваші зразки пристроїв налаштовано на прийом SNMP-трафіку від сервера LibreNMS, наступним кроком буде додавання цих пристроїв до LibreNMS. Відкривши веб-інтерфейс для LibreNMS, натисніть, щоб додати пристрій: -![LibreNMS Додати пристрій](../images/librenms_add_device.png) +![LibreNMS Add Device](../images/librenms_add_device.png) Введіть інформацію, яка використовується для ваших тестових пристроїв. Введіть IP-адресу робочої станції Ubuntu для запуску. У прикладі це 192.168.1.122. Додайте рядок спільноти "LABone" у поле "Community". @@ -596,7 +600,7 @@ firewall-cmd --zone=trusted --add-source=192.168.1.140 --permanent Цей документ не містить процедур створення правил сповіщень. Замість цього ви відредагуєте вбудоване правило сповіщення «Пристрій не працює! Через відсутність відповіді ICMP", яка попередньо налаштована з коробки. Для «Transports» використовуйте «Mail», яка є просто електронною поштою. Знайте, що цей тип оповіщення не обмежує вас. -Пошта має працювати, щоб використовувати електронну пошту для транспортування. Використовуйте цю [Процедуру Postfix](../email/postfix_reporting.md), щоб розпочати це. +Пошта має працювати, щоб використовувати електронну пошту для транспортування. Використайте цю [процедуру Postfix](../email/postfix_reporting.md), щоб розпочати це. ### Транспорти @@ -641,14 +645,14 @@ firewall-cmd --zone=trusted --add-source=192.168.1.140 --permanent Перед збереженням ваше правило буде таким: -![Правило сповіщень LibreNMS](../images/librenms_alert_rule.png) +![LibreNMS Alert Rule](../images/librenms_alert_rule.png) Ці два пристрої сповіщатимуть вас електронною поштою, якщо вони не працюють, а також після відновлення. ## Висновок -LibreNMS — це потужний інструмент моніторингу з повним набором функцій в одній програмі. У цьому документі *лише* наведено поверхню його можливостей. Деякі з простіших екранів не показані. +LibreNMS — це потужний інструмент моніторингу з повним набором функцій в одній програмі. Цей документ _лише_ поверхнево розкрив його можливості. Деякі з простіших екранів не показані. Коли ви додаєте пристрої, припускаючи, що всі властивості SNMP налаштовано правильно, ви отримаєте графіки пропускної здатності, використання пам’яті та використання ЦП на кожному пристрої. Ця лабораторія не показала вам багатства транспортів, крім «Пошти». -Цей документ показав вам достатньо, щоб почати добре контролювати своє середовище. LibreNMS потребує деякого часу, щоб освоїти всі елементи. Щоб отримати додаткову інформацію, відвідайте [чудову документацію](https://docs.librenms.org/) проекту. +Цей документ показав вам достатньо, щоб почати добре контролювати своє середовище. LibreNMS потребує деякого часу, щоб освоїти всі елементи. Для отримання додаткової інформації вам слід відвідати [чудову документацію проєкту](https://docs.librenms.org/). diff --git a/docs/guides/package_management/index.uk.md b/docs/guides/package_management/index.uk.md index 8032a7018f..a21e48fcf0 100644 --- a/docs/guides/package_management/index.uk.md +++ b/docs/guides/package_management/index.uk.md @@ -6,6 +6,6 @@ title: Вступ Цей розділ документації присвячений збіркам пакетів. -!!! warning "Важливо" +!!! warning Документи в цьому розділі старіші, і, можливо, їх потрібно переписати. Якщо ви використовуєте ці інструкції та маєте проблеми, будь ласка, повідомте про проблеми, щоб відповідним чином змінити ці документи. Ви можете повідомити про будь-які проблеми [тут](https://chat.rockylinux.org/rocky-linux/channels/documentation). diff --git a/docs/guides/package_management/package_build_troubleshooting.uk.md b/docs/guides/package_management/package_build_troubleshooting.uk.md index 40fc8e3ba9..8b158aef8c 100644 --- a/docs/guides/package_management/package_build_troubleshooting.uk.md +++ b/docs/guides/package_management/package_build_troubleshooting.uk.md @@ -2,15 +2,15 @@ title: Збірка пакета та вирішення проблем --- -!!! danger "Небезпечно" +!!! danger -Ця стаття була написана на початку 2021 року під час завантаження Rocky Linux. Вміст цієї сторінки зберігається з історичних причин, але був дещо відредагований, щоб виправити посилання, надати контекст або видалити інструкції, які більше не актуальні, щоб уникнути плутанини. Цей документ буде заархівовано. + # Спочатку ознайомтеся з інструментом створення макетів Коли ви пройдете це, найбільша та найрелевантніша технічна/вступна сторінка для наших зусиль з налагодження пакунків буде такою: -[https://wiki.rockylinux.org/archive/legacy/mock_building_guide/](https://wiki.rockylinux.org/archive/legacy/mock_building_guide/) + Ми використовуємо програму «mock» для виконання наших збірок, як і інфраструктуру Rocky. Ви повинні встановити його та звикнути до нього. Будь ласка, скористайтеся цим посібником, щоб почати, і поясніть, чого ми сподіваємося досягти, і чому ми повинні створювати всі ці пакети в певному порядку. @@ -38,4 +38,4 @@ Mock справді чудовий, оскільки це проста у вик З’ясуйте, що відбувається, і як це виправити. Це може мати форму спеціальних фіктивних налаштувань або патча, доданого до програми + спецфайл. Повідомте про свої знахідки на канал #Dev/Packaging, і хтось запише їх на сторінку Wiki Package_Error_Tracking, посилання на яку наведено вище. -Ідея полягає в тому, щоб зменшити кількість помилок збірки та збільшити сторінку Package_Error_Tracking. Якщо необхідно, ми внесемо виправлення збірки в наше сховище виправлень для різних пакунків, розташованих тут: . +Ідея полягає в тому, щоб зменшити кількість помилок збірки та збільшити сторінку Package_Error_Tracking. За потреби ми додамо виправлення збірки до нашого репозиторію патчів для різних пакетів, розташованих тут: . diff --git a/docs/guides/package_management/package_debranding.uk.md b/docs/guides/package_management/package_debranding.uk.md index deb77b2794..a98283e9b0 100644 --- a/docs/guides/package_management/package_debranding.uk.md +++ b/docs/guides/package_management/package_debranding.uk.md @@ -12,8 +12,10 @@ title: Дебрендінг упаковки Розробіть заміни для цих файлів, але замість цього розмістіть бренд Rocky. Залежно від вмісту, який замінюється, для певних типів тексту також можуть знадобитися файли diff/patch. -Файли заміни знаходяться під Файл конфігурації (вказує, як застосовувати патчі) міститься в +Файли заміни розміщуються в +Файл конфігурації (що визначає, як застосовувати патчі) розміщується в -Примітка. Використовуйте пробіли, а не табуляції. Коли srpmproc імпортує пакунок до Rocky, він побачить виконану роботу в і застосує збережені патчі дебрендування, прочитавши файл конфігурації( s) під ROCKY/CFG/*.cfg +Примітка. Використовуйте пробіли, а не табуляції. +Коли srpmproc імпортує пакет до Rocky, він побачить виконану роботу в та застосує збережені патчі для дебрендингу, прочитавши конфігураційний(і) файл(и) у ROCKY/CFG/\*.cfg з [вікі-сторінки дебрендування](https://wiki.rockylinux.org/team/release_engineering/debranding/) diff --git a/docs/guides/package_management/package_dev_start.uk.md b/docs/guides/package_management/package_dev_start.uk.md index 345c1d0dc5..03b646fc10 100644 --- a/docs/guides/package_management/package_dev_start.uk.md +++ b/docs/guides/package_management/package_dev_start.uk.md @@ -4,9 +4,10 @@ title: Посібник розробника та із упаковки # Посібник розробника та із упаковки для початківців -Rocky Devtools — це набір домашніх сценаріїв і утиліт, створених членами спільноти Rocky Linux, щоб допомогти з пошуком, створенням, брендингом, виправленням і створенням програмних пакетів, що поширюються разом з операційною системою Rocky Linux. Rocky Devtools складається з `rockyget`, `rockybuild`, `rockypatch` і `rockyprep`. +Rocky Devtools — це набір домашніх сценаріїв і утиліт, створених членами спільноти Rocky Linux, щоб допомогти з пошуком, створенням, брендингом, виправленням і створенням програмних пакетів, що поширюються разом з операційною системою Rocky Linux. +Rocky Devtools складається з `rockyget`, `rockybuild`, `rockypatch` та `rockyprep`. -На низькому рівні Rocky Devtools — це оболонка для запуску користувальницьких і традиційних програм для різноманітних завдань керування пакетами. Rocky Devtools значною мірою покладається на [`srpmproc`](https://github.com/mstg/srpmproc), `go`, `git< /code> і rpmbuild`. +На низькому рівні Rocky Devtools — це оболонка для запуску користувальницьких і традиційних програм для різноманітних завдань керування пакетами. Rocky Devtools значною мірою залежить від [`srpmproc`](https://github.com/mstg/srpmproc), `go`, `git` та `rpmbuild`. Для встановлення та використання інструментів розробника Rocky вам знадобиться сучасна система Linux на базі RPM. @@ -72,7 +73,7 @@ sudo make install rockyget sed ``` -Під час першого запуску rockyget він автоматично створить структуру каталогів, яка приблизно імітує структуру сховища серверів збірки Rocky. Наприклад, автоматично буде створено папку `~/rocky/rpms`. +Під час першого запуску rockyget він автоматично створить структуру каталогів, яка приблизно імітує структуру сховища серверів збірки Rocky. Наприклад, папка `~/rocky/rpms` буде створена автоматично. Для нашого поточного прикладу sed його джерела зберігатимуться в такій зразковій ієрархії папок: @@ -89,17 +90,21 @@ rockyget sed └── sed.spec ``` -!!! tip "Порада" +!!! Tip "Порада" + ``` Коли ви отримаєте вихідні коди, можливо, буде гарний час переглянути файл SPECs (`~rocky/rpms/sed/SPECS/specs.spec`), щоб знайти потенційні можливості дебрендування в даному пакеті. Дебрендінг може включати заміну зображень/логотипів і так далі. + ``` -!!! tip "Порада" +!!! Tip "Порада" + ``` Якщо ви шукаєте інші пакети Rocky для створення та експериментів, ви можете переглянути список пакетів, які наразі не працюють у автоматизованому середовищі збирання Rocky [тут](https://kojidev.rockylinux.org/koji/builds?state =3&order=-build_id) + ``` ## 4. Використовуйте Rocky Devtools (rockybuild), щоб створити новий пакет для ОС Rocky -Під капотом `rockybuild` викликає утиліти `rpmbuild` і `mock` для створення вихідного пакета в середовищі chroot для програми, зазначеної в командному рядку. Він покладається на джерела програми та файл RPM SPEC, який було автоматично завантажено за допомогою команди `rockyget`. +Під капотом `rockybuild` викликає утиліти `rpmbuild` та `mock` для збірки вихідного пакета в середовищі chroot для програми, зазначеної в командному рядку. Він спирається на вихідні коди програми та файл RPM SPEC, який був автоматично завантажений за допомогою команди `rockyget`. Використовуйте `rockybuild` для створення утиліти sed: @@ -121,13 +126,13 @@ INFO: Results and/or logs in: /home/centos/rocky/builds/sed/r8 ........ ``` -Якщо все піде добре, у каталозі `~/rocky/builds/sed/r8` має бути готовий до Rocky файл SRPM. +Якщо все пройде добре, ви повинні отримати готовий до Rocky SRPM-файл у каталозі `~/rocky/builds/sed/r8`. `~/rocky/rpms/sed/r8/SRPMS/sed-4.5-2.el8.src.rpm` ## 5. Налагодження невдалої збірки пакета -Попередній процес rockybuild створить деякі файли журналу, які можна використовувати для налагодження невдалих збірок програми. Результати та/або журнали процесу збирання зберігаються в `~/rocky/builds/<ІМ'Я ПАКЕТА>/r8`. Наприклад `~/rocky/builds/sed/r8` +Попередній процес rockybuild створить деякі файли журналу, які можна використовувати для налагодження невдалих збірок програми. Результати та/або журнали процесу збірки зберігаються у файлі `~/rocky/builds//r8`. Наприклад, `~/rocky/builds/sed/r8` ```bash ~/rocky/builds/sed/r8 diff --git a/docs/guides/package_management/package_signing.uk.md b/docs/guides/package_management/package_signing.uk.md index 5292fddd57..c4a9468676 100644 --- a/docs/guides/package_management/package_signing.uk.md +++ b/docs/guides/package_management/package_signing.uk.md @@ -4,6 +4,8 @@ title: Підписання пакетів та тестування # Підписання та тестування пакетів -Вироблені нами RPM мають бути криптографічно підписані ключем Rocky Linux, який гарантує користувачам, що пакет було дійсно створений проектом Rocky Linux. +Вироблені нами RPM мають бути криптографічно підписані ключем Rocky Linux, який гарантує користувачам, що пакет було +дійсно створений проектом Rocky Linux. -Пакет також потрібно буде протестувати - бажано автоматизовано. Характер тестування ще належить визначити, але ми захочемо хоча б провести деякі перевірки розумності перед тим, як розв’язати його у світі. (Чи можна встановити цей пакет? Ми випадково пропустили якісь файли? Чи викликає це конфлікти залежностей dnf/yum? тощо) +Пакет також потрібно буде протестувати - бажано автоматизовано. Характер тестування ще належить визначити, +але ми захочемо хоча б провести деякі перевірки розумності перед тим, як розв’язати його у світі. (Чи можна встановити цей пакет? Ми випадково пропустили якісь файли? Чи викликає це конфлікти залежностей dnf/yum? тощо) diff --git a/docs/guides/proxies/haproxy_apache_lxd.uk.md b/docs/guides/proxies/haproxy_apache_lxd.uk.md index a69aad4045..65a5d66e75 100644 --- a/docs/guides/proxies/haproxy_apache_lxd.uk.md +++ b/docs/guides/proxies/haproxy_apache_lxd.uk.md @@ -22,13 +22,13 @@ HAProxy розшифровується як «High Availability Proxy». Цей - Повний комфорт у командному рядку на машині Linux - Досвід роботи з редактором командного рядка (тут ми використовуємо `vim`) - Досвід роботи з `crontab` -- Знання LXD. Для отримання додаткової інформації ви можете ознайомитися з документом [LXD Server](../../books/lxd_server/00-toc.md). Можна встановити LXD на ноутбук або робочу станцію, не виконуючи повномасштабну інсталяцію сервера. Цей документ написаний на лабораторній машині, на якій працює LXD, але не налаштований як цілий сервер, як це використовується в наведеному вище документі. +- Знання LXD. Для отримання додаткової інформації ви можете звернутися до документа [LXD Server](../../books/lxd_server/00-toc.md). Можна встановити LXD на ноутбук або робочу станцію, не виконуючи повномасштабну інсталяцію сервера. Цей документ написаний на лабораторній машині, на якій працює LXD, але не налаштований як цілий сервер, як це використовується в наведеному вище документі. - Деякі знання щодо встановлення, налаштування та використання веб-серверів. - Ми припустимо, що LXD вже встановлений і готовий до створення контейнерів. ## Установка контейнерів -На вашому хості LXD для цього посібника вам знадобляться три контейнери. За бажанням може бути більше контейнерів веб-сервера. Ви будете використовувати **web1** і **web2** для наших контейнерів веб-сайтів і **proxyha ** для нашого контейнера HAProxy. Щоб установити їх на хост LXD, виконайте такі дії: +На вашому хості LXD для цього посібника вам знадобляться три контейнери. За бажанням може бути більше контейнерів веб-сервера. Ви використовуватимете **web1** та **web2** для контейнерів нашого веб-сайту та **proxyha** для контейнера HAProxy. Щоб установити їх на хост LXD, виконайте такі дії: ```bash lxc launch images:rockylinux/8 web1 @@ -52,7 +52,7 @@ lxc launch images:rockylinux/8 proxyha ## Створення та використання профілю `macvlan` -Контейнери працюють на стандартному інтерфейсі мосту з адресами DHCP, призначеними мостом. Їх потрібно змінити на адреси DHCP з нашої локальної локальної мережі. Перше, що потрібно, це створити та призначити профіль `macvlan`. +Контейнери працюють на стандартному інтерфейсі мосту з адресами DHCP, призначеними мостом. Їх потрібно змінити на адреси DHCP з нашої локальної локальної мережі. Перше, що потрібно зробити, це створити та призначити профіль `macvlan`. Почніть зі створення профілю: @@ -62,7 +62,7 @@ lxc launch images:rockylinux/8 proxyha `export EDITOR=/usr/bin/vim` -Далі змініть профіль `macvlan`. Але перш ніж це зробити, ви повинні знати, який інтерфейс хост використовує для нашої локальної мережі. Запустіть `ip addr` і знайдіть інтерфейс із призначенням IP-адреси локальної мережі: +Далі змініть профіль `macvlan`. Але перш ніж це зробити, ви повинні знати, який інтерфейс хост використовує для нашої локальної мережі. Запустіть команду `ip addr` та знайдіть інтерфейс із призначеною IP-адресою локальної мережі: ```bash 2: eno1: mtu 1500 qdisc fq_codel state UP group default qlen 1000 @@ -72,7 +72,9 @@ lxc launch images:rockylinux/8 proxyha !!! Note "Примітка" + ``` У цьому випадку ви шукаєте інтерфейс "eno1", який може бути зовсім іншим у вашій системі. Використовуйте інформацію про **ваш** інтерфейс! + ``` Тепер, коли ви знаєте інтерфейс локальної мережі, ви можете змінити наш профіль `macvlan`. Для цього в командному рядку введіть: @@ -92,7 +94,7 @@ devices: name: macvlan ``` -Під час створення профілю `macvlan` система копіює профіль `за замовчуванням`. Змінити профіль `за замовчуванням` неможливо. +Під час створення профілю `macvlan` система копіює профіль `default`. Зміна профілю «за замовчуванням» неможлива. Тепер, коли профіль `macvlan` існує, вам потрібно застосувати його до наших трьох контейнерів: @@ -149,7 +151,7 @@ lxc exec web2 dnf install httpd Вам знадобиться більше, ніж Apache для будь-якого сучасного веб-сервера, але цього достатньо, щоб провести деякі тести. -Потім увімкніть `httpd`, запустіть його та змініть типовий екран привітання. Таким чином ви знаєте, що сервер відповідає на спробу доступу через проксі. +Далі увімкніть `httpd`, запустіть його та змініть екран привітання за замовчуванням. Таким чином ви знаєте, що сервер відповідає на спробу доступу через проксі. Увімкніть і запустіть `httpd`: @@ -160,11 +162,11 @@ lxc exec web2 systemctl enable httpd lxc exec web2 systemctl start httpd ``` -Змініть екран привітання. Цей екран з’являється, коли веб-сайт не налаштовано, по суті це сторінка за замовчуванням, яка завантажується. У Rocky Linux ця сторінка розташована тут `/usr/share/httpd/noindex/index.html`. Зміна цього файлу не вимагає прямого доступу до контейнера. Просто виконайте наступне: +Змініть екран привітання. Цей екран з’являється, коли веб-сайт не налаштовано, по суті це сторінка за замовчуванням, яка завантажується. У Rocky Linux ця сторінка знаходиться тут: `/usr/share/httpd/noindex/index.html`. Зміна цього файлу не вимагає прямого доступу до контейнера. Просто виконайте наступне: `lxc exec web1 vi /usr/share/httpd/noindex/index.html` -знайдіть тег `

`, який покаже це: +пошукайте тег `

`, який покаже це: `

HTTP Server Test Page

` @@ -180,7 +182,7 @@ lxc exec web2 systemctl start httpd `lxc exec proxyha dnf install haproxy` -Далі ви хочете налаштувати `haproxy` для прослуховування веб-служб на портах 80 і 443. Зробіть це за допомогою підкоманди configure `lxc`: +Далі потрібно налаштувати `haproxy` для прослуховування веб-сервісів на портах 80 та 443. Зробіть це за допомогою підкоманди configure `lxc`: ```bash lxc config device add proxyha http proxy listen=tcp:0.0.0.0:80 connect=tcp:127.0.0.1:80 @@ -191,7 +193,7 @@ lxc config device add proxyha https proxy listen=tcp:0.0.0.0:443 connect=tcp:127 ## Конфігурація HAProxy -Ви встановили HAProxy на контейнер, але нічого не зробили з конфігурацією. Перш ніж налаштовувати, вам потрібно щось зробити, щоб вирішити ваші хости. Зазвичай ви використовуєте повні доменні імена, але в цьому лабораторному середовищі ви використовуєте IP-адреси. Щоб отримати деякі імена, пов’язані з машинами, ви збираєтеся додати деякі записи файлів хосту до контейнера **proxyha**. +Ви встановили HAProxy на контейнер, але нічого не зробили з конфігурацією. Перш ніж налаштовувати, вам потрібно щось зробити, щоб вирішити ваші хости. Зазвичай ви використовуєте повні доменні імена, але в цьому лабораторному середовищі ви використовуєте IP-адреси. Щоб отримати деякі імена, пов'язані з машинами, вам потрібно додати деякі записи файлу хоста до контейнера **proxyha**. `lxc exec proxyha vi /etc/hosts` @@ -288,19 +290,19 @@ backend subdomain2 Невелике пояснення того, що відбувається вище. Ви повинні побачити це під час тестування, коли перейдете до розділу тестування цього посібника (нижче): -Визначення для **site1** і **site2** знаходяться в розділі «acl». Кожен сайт є циклічним циклом для відповідних серверів. Що відбувається, коли ви заходите на site1.testdomain.com у тесті, URL-адреса не змінюється, але сторінка всередині змінюватиметься щоразу, коли ви переходите на сторінку з **site1** на тестові сторінки **site2**. Те саме стосується site2.testdomain.com. +Визначення для **site1** та **site2** знаходяться в розділі "acl". Кожен сайт є циклічним циклом для відповідних серверів. Що відбувається, коли ви переходите на site1.testdomain.com у тесті? URL-адреса не змінюється, але сторінка всередині перемикатиметься щоразу, коли ви звертаєтесь до неї з тестової сторінки **site1** на **site2**. Те саме стосується site2.testdomain.com. Це показує, що відбувається перемикання, але вміст вашого веб-сайту виглядатиме однаково незалежно від того, який сервер ви використовуєте. У документі показано, як ви можете розподілити трафік між кількома хостами. Ви також можете використовувати «leastcon» у рядку балансу, і замість перемикання на основі попереднього попадання він завантажуватиме сайт із найменшою кількістю підключень. ### Файли помилок -Деякі версії HAProxy постачаються зі стандартним набором веб-файлів помилок; однак у версії від Rocky Linux (і постачальника вищої версії) немає цих файлів. Ймовірно, ви **робите** хочете їх створити, оскільки вони можуть допомогти вам вирішити будь-які проблеми. Ці файли зберігаються в каталозі `/etc/haproxy/errors`, якого не існує. +Деякі версії HAProxy постачаються зі стандартним набором веб-файлів помилок; однак у версії від Rocky Linux (і постачальника вищої версії) немає цих файлів. Ви, ймовірно, **так** хочете їх створити, оскільки вони можуть допомогти вам вирішити будь-які проблеми. Ці файли знаходяться в директорії `/etc/haproxy/errors`, якої не існує. Спочатку створіть цей каталог: `lxc exec proxyha mkdir /etc/haproxy/errors` -Створіть кожен із цих файлів у цьому каталозі. Зауважте, що ви можете зробити це з кожним ім’ям файлу на вашому хості LXD за допомогою команди `lxc exec proxyha vi /etc/haproxy/errors/filename.http`, де «filename.http» посилається на одне з імен файлів нижче. У виробничому середовищі ваша компанія може мати більш специфічні помилки, які вони хочуть використовувати: +Створіть кожен із цих файлів у цьому каталозі. Зверніть увагу, що ви можете зробити це з кожним ім'ям файлу з вашого LXD-хоста за допомогою команди `lxc exec proxyha vi /etc/haproxy/errors/filename.http`, де "filename.http" посилається на одне з наведених нижче імен файлів. У виробничому середовищі ваша компанія може мати більш специфічні помилки, які вони хочуть використовувати: Ім'я файлу `400.http`: @@ -367,7 +369,7 @@ The server returned an invalid or incomplete response. ``` -Filename `503.http`: +Ім'я файлу `503.http`: ```bash HTTP/1.0 503 Service Unavailable @@ -380,7 +382,7 @@ No server is available to handle this request. ``` -Filename `504.http`: +Ім'я файлу `504.http`: ```bash HTTP/1.0 504 Gateway Time-out @@ -416,7 +418,7 @@ lxc exec proxyha systemctl start haproxy Як і у випадку з налаштуваннями хостів (`/etc/hosts`), які використовуються для того, щоб наш контейнер **proxyha** міг розпізнавати веб-сервери, а оскільки наше лабораторне середовище робить не має запущеного локального DNS-сервера, встановіть значення IP на нашій локальній машині для кожного веб-сайту, щоб відповідати нашому haproxy контейнеру. -Для цього змініть файл `/etc/hosts` на локальній машині. Вважайте цей метод визначення домену «DNS для бідняків». +Для цього змініть файл `/etc/hosts` на вашій локальній машині. Вважайте цей метод визначення домену «DNS для бідняків». `sudo vi /etc/hosts` @@ -490,4 +492,4 @@ HAProxy — це потужний механізм проксі, який мож Його також можна використовувати для інших програм, включаючи бази даних. Він працює в контейнерах LXD, а також на голих і автономних серверах. -Є багато застосувань, які не розглядаються в цьому документі. Перегляньте [офіційний посібник для HAProxy тут.](https://cbonte.github.io/haproxy-dconv/1.8/configuration.html) +Є багато застосувань, які не розглядаються в цьому документі. Перегляньте [офіційний посібник з HAProxy тут.] (https://cbonte.github.io/haproxy-dconv/1.8/configuration.html) diff --git a/docs/guides/proxies/pound.uk.md b/docs/guides/proxies/pound.uk.md index a31febdeaa..5d024543a1 100644 --- a/docs/guides/proxies/pound.uk.md +++ b/docs/guides/proxies/pound.uk.md @@ -18,7 +18,7 @@ tags: Pound — це незалежний від веб-сервера зворотний проксі та балансувальник навантаження, який дуже простий у налаштуванні та керуванні. Він не використовує веб-службу, але прослуховує порти веб-служби (http, https). -Тепер існує багато параметрів проксі-сервера, деякі з яких згадуються на цих сторінках документації. Існує документ про використання [HAProxy тут](haproxy_apache_lxd.md), а в інших документах є посилання на використання Nginx для зворотного проксі. +Тепер існує багато параметрів проксі-сервера, деякі з яких згадуються на цих сторінках документації. Документ про використання [HAProxy знаходиться тут] (haproxy_apache_lxd.md), а також посилання на застосування Nginx для зворотного проксі-сервера існують в інших документах. Сервіси балансування навантаження дуже корисні для завантаженого середовища веб-сервера. Існує багато проксі-серверів, у тому числі згаданий раніше HAProxy, які використовують для багатьох типів послуг. @@ -30,26 +30,22 @@ Pound — це незалежний від веб-сервера зворотн - Бажання збалансувати навантаження між кількома веб-сайтами або готовність вивчити новий інструмент, щоб робити те саме. - Можливість запускати команди від імені користувача root або використовувати `sudo` для підвищення привілеїв. -- Знайомство з редактором командного рядка. Автор використовує тут `vi` або `vim`, але замініть у вашому улюбленому редакторі. +- Знайомство з редактором командного рядка. Автор використовує тут `vi` або `vim`, але замініть їх вашим улюбленим редактором. - Комфорт зі зміною портів прослуховування на кількох типах веб-серверів. - Я припускаю попередню інсталяцію серверів Nginx і Apache. - Я припускаю, що ви використовуєте сервери або контейнери Rocky Linux для всього тут. -- Хоча в цьому документі є всілякі твердження щодо `https`, цей посібник стосується лише служби `http`. Щоб правильно виконувати `https`, ви повинні налаштувати ваш pound-сервер за допомогою справжнього сертифіката від справжнього центру сертифікації. +- Хоча в цьому документі містяться всілякі твердження щодо `https`, цей посібник стосується лише сервісу `http`. Щоб правильно використовувати `https`, вам потрібно буде налаштувати ваш сервер pound за допомогою справжнього сертифіката від справжнього центру сертифікації. -!!! tip "Підказка" +!!! tip Якщо у вас не встановлено жоден із цих серверів, ви можете зробити це в контейнерному середовищі (LXD або Docker) або на голому металі та запустити їх у роботу. Для цієї процедури ви повинні встановити їх разом із відповідними пакетами, увімкнути та запустити служби. Ми не будемо жодним чином їх суттєво змінювати. - - ``` - dnf -y install nginx && systemctl enable --now nginx - ``` - - + + ` dnf -y install nginx && systemctl enable --now nginx ` + + або - - ``` - dnf -y install httpd && systemctl enable --now httpd - ``` + + ` dnf -y install httpd && systemctl enable --now httpd ` ## Умовності @@ -59,7 +55,7 @@ Pound — це незалежний від веб-сервера зворотн Ви перемкнете свої порти прослуховування на внутрішніх серверах на 8080 для сервера Nginx і 8081 для сервера Apache. (Все буде відображено нижче.) -!!! note "Примітка" +!!! note Не забудьте змінити пов’язані IP-адреси на будь-які, які вони є у вашому середовищі, і замінити їх там, де це можливо, протягом цієї процедури. @@ -79,7 +75,7 @@ dnf -y install Pound ## Налаштування Pound -Тепер, коли пакунки встановлено, нам потрібно налаштувати Pound. Автор використовує `vi`, щоб оновити це, але якщо ви віддаєте перевагу `nano` або щось інше, замініть це в: +Тепер, коли пакунки встановлено, нам потрібно налаштувати Pound. Автор використовує `vi` для оновлення цього, але якщо ви надаєте перевагу `nano` або чомусь іншому, замініть це тут: ```bash vi /etc/pound.cfg @@ -118,17 +114,17 @@ End ### Придивляючись ближче -- «User» і «Group» - заповнюються під час інсталяції +- "User" і "Group" - заповнюються під час інсталяції - Файл "Control" ніде не використовується. -- Розділ «ListenHTTP» представляє службу `http` (порт 80) і «Address», який проксі-сервер слухатиме. Вам необхідно змінити це на фактичну IP-адресу нашого сервера Pound. -- Розділ «ListenHTTPS» представляє службу `https` (порт 443) і «Address», який проксі-сервер слухатиме. Необхідно змінити це на IP-адресу сервера Pound. -- Опція «Cert» — це самопідписаний сертифікат, наданий процесом встановлення Pound. Ви хочете замінити це у робочому середовищі справжнім сертифікатом за допомогою однієї з цих процедур: [Генерація ключів SSL](../security/ssl_keys_https.md) або [ключі SSL із Let's Encrypt](../security/generating_ssl_keys_lets_encrypt.md). +- Розділ "ListenHTTP" представляє службу `http` (порт 80) та "адресу", яку проксі-сервер прослуховуватиме. Вам необхідно змінити це на фактичну IP-адресу нашого сервера Pound. +- Розділ "ListenHTTPS" представляє службу `https` (порт 443) та "адресу", яку проксі-сервер прослуховуватиме. Необхідно змінити це на IP-адресу сервера Pound. +- Опція «Cert» — це самопідписаний сертифікат, наданий процесом встановлення Pound. Ви хочете замінити це у виробничому середовищі справжнім сертифікатом, використовуючи одну з цих процедур: [Генерація ключів SSL](../security/ssl_keys_https.md) або [Ключі SSL за допомогою Let's Encrypt](../security/generating_ssl_keys_lets_encrypt.md). - Розділ «Service» налаштовує «BackEnd» сервери з їх портами прослуховування. Ви можете мати скільки завгодно "BackEnd" серверів. ### Зміна конфігурації - змініть IP-адресу під кожною опцією прослуховування на IP-адресу нашого сервера Pound, 192.168.1.103 -- змініть IP-адреси та порти в розділах «BackEnd» відповідно до нашої конфігурації, знайденої в «Умовних поняттях» вище (IP-адреси та порти) +- змініть IP-адреси та порти в розділах "BackEnd" відповідно до нашої конфігурації, знайденої в «Умовних поняттях» вище (IP-адреси та порти) Коли ви закінчите змінювати конфігурацію, ви повинні мати змінений файл, який виглядає приблизно так: @@ -163,7 +159,7 @@ End ## Налаштування Nginx для прослуховування на 8080 -Оскільки ви встановили порт прослуховування для Nginx у нашій конфігурації Pound на 8080, вам також потрібно внести цю зміну на запущеному сервері Nginx. Це можна зробити, змінивши `nginx.conf`: +Оскільки ви встановили порт прослуховування для Nginx у нашій конфігурації Pound на 8080, вам також потрібно внести цю зміну на запущеному сервері Nginx. Ви робите це, змінюючи `nginx.conf`: ```bash vi /etc/nginx/nginx.conf @@ -183,13 +179,13 @@ systemctl restart nginx ## Налаштування Apache для прослуховування 8081 -Оскільки ми встановили порт прослуховування для Apache у нашій конфігурації Pound на 8081, нам також потрібно зробити цю зміну на нашому запущеному сервері Apache. Для цього необхідно змінити `httpd.conf`: +Оскільки ми встановили порт прослуховування для Apache у нашій конфігурації Pound на 8081, нам також потрібно зробити цю зміну на нашому запущеному сервері Apache. Ви робите це, змінюючи `httpd.conf`: ```bash vi /etc/httpd/conf/httpd.conf ``` -Ви хочете змінити рядок «Listen» на новий номер порту: +Ви хочете змінити рядок "Listen" на новий номер порту: ```bash Listen 8081 @@ -209,17 +205,11 @@ systemctl restart httpd systemctl enable --now pound ``` -!!! warning "Важливо" +!!! warning Використання Nginx і Apache, як ми робимо тут для демонстрації, означатиме, що сервер Nginx майже завжди відповідатиме першим. З цієї причини для ефективного тестування вам потрібно буде призначити низький пріоритет серверу Nginx, щоб ви могли бачити обидва екрани. Це багато говорить про швидкість Nginx над Apache. Щоб змінити пріоритет для сервера Nginx, вам просто потрібно додати пріоритет (1-9, де 9 є найнижчим пріоритетом) у розділі «BackEnd» для сервера Nginx таким чином: - - ``` - BackEnd - Address 192.168.1.111 - Port 8080 - Priority 9 - End - ``` + + ` BackEnd Address 192.168.1.111 Port 8080 Priority 9 End ` Коли ви відкриваєте IP проксі-сервера у веб-браузері, ви побачите один із цих двох екранів: @@ -231,7 +221,7 @@ systemctl enable --now pound ## Використання "Emergency" -Єдине, що вам може знадобитися під час використання балансувальника навантаження, такого як Pound, це відключити виробничі сервери для обслуговування або мати запасний «BackEnd» для повного збою. Це робиться за допомогою оголошення "Emergency" у файлі `pound.conf`. На одну послугу можна мати лише одну «Надзвичайну» декларацію. У нашому випадку це з’явиться в кінці розділу «Service» у файлі конфігурації: +Єдине, що вам може знадобитися під час використання балансувальника навантаження, такого як Pound, це відключити виробничі сервери для обслуговування або мати запасний "BackEnd" для повного збою. Зробіть це за допомогою оголошення "Emergency" у файлі `pound.conf`. На одну послугу можна мати лише одну «Надзвичайну» декларацію. У нашому випадку це з’явиться в кінці розділу «Service» у файлі конфігурації: ```bash ... @@ -257,13 +247,13 @@ End ## Міркування безпеки -Більшість документів, що стосуються проксі-серверів балансування навантаження, не розглядають питання безпеки. Наприклад, якщо це загальнодоступний веб-сервер, вам потрібно буде мати служби `http` і `https`, відкриті для світу на проксі-сервері балансування навантаження. Але як щодо «BackEnd» серверів? +Більшість документів, що стосуються проксі-серверів балансування навантаження, не розглядають питання безпеки. Наприклад, якщо це публічний веб-сервер, вам потрібно буде відкрити для всього світу сервіси `http` та `https` на проксі-сервере балансування навантаження. Але як щодо «BackEnd» серверів? Їм потрібен лише доступ через їхні порти з сервера Pound, але оскільки сервер Pound переспрямовує на 8080 або 8081 на серверах BackEnd, і оскільки сервери BackEnd мають `http` прослуховування цих наступних портів, ви можете використовувати назви служб для команд брандмауера на цих серверах BackEnd. У цьому розділі буде розглянуто ці проблеми та команди `firewalld`, необхідні для блокування всього. -!!! warning "Важливо" +!!! warning Припускається, що ви маєте прямий доступ до відповідних серверів і не є віддаленим. Якщо ви віддалені, будьте вкрай обережні, видаляючи служби із зони `firewalld`! @@ -271,9 +261,9 @@ End ### Брандмауер - сервер Pound -Для сервера Pound, як зазначено вище, ми хочемо дозволити `http` і `https` зі світу. Було б найкраще розглянути, чи потрібно дозволити `ssh` зі світу. Якщо ви локально на сервері, це, мабуть, **НІ**. Тут автор припускає, що сервер доступний через вашу локальну мережу і що ви маєте прямий доступ до нього, тому ви заблокуєте `ssh` для своїх IP-адрес локальної мережі. +Для сервера Pound вам потрібно дозволити `http` та `https` з усього світу. Найкраще подумати, чи потрібно вам дозволити `ssh` від світу чи ні. Якщо ви локально підключені до сервера, це, ймовірно, **НЕ** так. Автор припускає, що сервер доступний через вашу локальну мережу, і що у вас є прямий доступ до нього, тому ви заблокуєте `ssh` для ваших IP-адрес локальної мережі. -Щоб виконати це, ви будете використовувати вбудований брандмауер для Rocky Linux, `firewalld` і структуру команд `firewall-cmd`. Ви також будете використовувати дві вбудовані зони, «загальнодоступну» та «довірену», щоб не було складнощів. +Для цього ви будете використовувати вбудований брандмауер для Rocky Linux, `firewalld` та структуру команд `firewall-cmd`. Ви також будете використовувати дві вбудовані зони, «загальнодоступну» та «довірену», щоб не було складнощів. Почнемо з додавання наших вихідних IP-адрес до «trusted» зони. Ось наша локальна мережа (у нашому прикладі: 192.168.1.0/24): @@ -313,7 +303,7 @@ trusted (active) ``` -Далі вам необхідно внести зміни в «публічну» зону, у якій за замовчуванням увімкнено службу `ssh`. Це потрібно обережно видалити (знову ж таки, ми припускаємо, що ви **НЕ** тут віддалені від сервера!) за допомогою наступного: +Далі вам потрібно внести зміни до зони "public", у якій за замовчуванням увімкнено службу `ssh`. Це потрібно обережно видалити (знову ж таки, автор припускає, що ви **НЕ** віддалено підключені до сервера!) з наступним: ```bash firewall-cmd --zone=public --remove-service=ssh --permanent @@ -354,11 +344,11 @@ public ### Брандмауер - внутрішні сервери -Для серверів "BackEnd" нам не потрібно дозволяти доступ із світу для будь-чого. Вам потрібно буде дозволити `ssh` з IP-адрес локальної мережі та `http` і `https` з нашого балансувальника навантаження Pound. +Для серверів "BackEnd" нам не потрібно дозволяти доступ із світу для будь-чого. Вам потрібно буде дозволити `ssh` з IP-адрес локальної мережі, а також `http` та `https` з нашого балансувальника навантаження Pound. Це майже все. -Знову ж таки, ви збираєтеся додати службу `ssh` до вашої «довіреної» зони з тими самими командами, що використовуються для вашого сервера pound. Потім додайте зону під назвою «баланс», яку ви використовуватимете для решти `http` і `https`, і встановіть IP-адресу джерела на IP-адресу балансувальника навантаження. +Знову ж таки, ви збираєтеся додати службу `ssh` до вашої "довіреної" зони, використовуючи по суті ті ж команди, що й для вашого pound-сервера. Потім додайте зону під назвою "balance", яку ви використовуватимете для решти `http` та `https`, і встановіть вихідні IP-адреси на рівні балансувальника навантаження. Щоб спростити речі, використовуйте всі ті команди, які ви використовували для «довіреної» зони, в одному наборі команд: @@ -388,7 +378,7 @@ trusted (active) rich rules: ``` -Ще раз перевірте своє правило `ssh` з IP-адреси в локальній мережі, а потім видаліть службу `ssh` із «публічної» зони. **Пам’ятайте наше попередження вище та робіть це, лише якщо у вас є локальний доступ до сервера!** +Знову ж таки, перевірте правило `ssh` з IP-адреси в локальній мережі, а потім видаліть службу `ssh` з "публічної" зони. **Пам’ятайте про наше попередження раніше та робіть це, лише якщо у вас є локальний доступ до сервера!** ```bash firewall-cmd --zone=public --remove-service=ssh --permanent @@ -415,9 +405,9 @@ public rich rules: ``` -Додайте цю нову зону для роботи з `http` і `https`. Пам’ятайте, що IP джерела тут має бути лише нашим балансувальником навантаження (у нашому прикладі: 192.168.1.103): +Додайте цю нову зону для обробки `http` та `https`. Пам’ятайте, що IP джерела тут має бути лише нашим балансувальником навантаження (у нашому прикладі: 192.168.1.103): -!!! note "Примітка" +!!! note Нова зона має бути додана з опцією `--permanent` і не може бути використана до перезавантаження брандмауера. Крім того, не забудьте `--set-target=ACCEPT` для цієї зони! @@ -456,7 +446,7 @@ balance (active) ## Інша інформація -Є *БАГАТО* параметрів, які можна включити у ваш файл `pound.conf`, включаючи директиви повідомлень про помилки, параметри журналювання, значення часу очікування і т.д. Ви можете знайти те, що доступно, [тут.](https://linux.die.net/man/8/pound) +У вашому файлі `pound.conf` можна використовувати _багато_ опцій, включаючи директиви повідомлень про помилки, опції журналювання, значення часу очікування тощо. Ви можете знайти доступні опції [за цим посиланням.] (https://linux.die.net/man/8/pound) Зручно, Pound автоматично визначає, якщо один із «BackEnd» серверів офлайн, і вимикає його, щоб веб-сервіси могли продовжувати працювати без затримки. Він також автоматично бачить їх знову, коли вони знову в мережі. diff --git a/docs/guides/security/authentication/active_directory_authentication.uk.md b/docs/guides/security/authentication/active_directory_authentication.uk.md index 97922f6f6e..cd542d861f 100644 --- a/docs/guides/security/authentication/active_directory_authentication.uk.md +++ b/docs/guides/security/authentication/active_directory_authentication.uk.md @@ -14,7 +14,7 @@ tested_with: 9.4 Microsoft Active Directory (AD) є системою автентифікації за замовчуванням для систем Windows і зовнішніх служб, підключених через LDAP, на більшості підприємств. Він дозволяє налаштовувати користувачів і групи, контролювати доступ, дозволи, автоматичне монтування тощо. -Тепер, хоча підключення Linux до кластера AD не може підтримувати _усі_ згадані функції, воно може працювати з користувачами, групами та контролем доступу. Розповсюджувати ключі SSH за допомогою AD можливо (хоча деякі налаштування конфігурації на стороні Linux і деякі додаткові параметри на стороні AD). +Хоча підключення Linux до кластера AD не може підтримувати _всі_ згадані функції, воно може обробляти користувачів, групи та контролювати доступ. Розповсюджувати ключі SSH за допомогою AD можливо (хоча деякі налаштування конфігурації на стороні Linux і деякі додаткові параметри на стороні AD). Однак у цьому посібнику йдеться лише про налаштування автентифікації для Active Directory і не включатиме жодних додаткових налаштувань для Windows. @@ -22,7 +22,9 @@ Microsoft Active Directory (AD) є системою автентифікації !!! Note "Примітка" + ``` Доменне ім’я ad.company.local у цьому посібнику представлятиме домен Active Directory. Щоб слідувати цьому посібнику, замініть його ім’ям свого домену AD. + ``` Першим кроком до приєднання системи Linux до AD є виявлення вашого кластера AD, щоб переконатися, що конфігурація мережі правильна з обох сторін. @@ -31,7 +33,7 @@ Microsoft Active Directory (AD) є системою автентифікації - Переконайтеся, що такі порти відкриті для хосту Linux на контролері домену: | Служба | Порт(и) | Примітки | - | -------- | ----------------- | ------------------------------------------------------------------------------ | + | -------- | ------------------------------------ | ------------------------------------------------------------------------------ | | DNS | 53 (TCP+UDP) | | | Kerberos | 88, 464 (TCP+UDP) | Використовується `kadmin` для налаштування та оновлення паролів | | LDAP | 389 (TCP+UDP) | | @@ -42,8 +44,8 @@ Microsoft Active Directory (AD) є системою автентифікації **З NetworkManager:** ```sh - # де основним підключенням NetworkManager є «System eth0», а AD - # сервер доступний за IP-адресою 10.0.0.2. + # where your primary NetworkManager connection is 'System eth0' and your AD + # server is accessible on the IP address 10.0.0.2. [root@host ~]$ nmcli con mod 'System eth0' ipv4.dns 10.0.0.2 ``` @@ -62,7 +64,6 @@ Microsoft Active Directory (AD) є системою автентифікації [user@host ~]$ sudo dnf install realmd oddjob oddjob-mkhomedir sssd adcli krb5-workstation ``` - ### Відкриття Тепер ви зможете виявити сервер(и) AD на хості Linux. @@ -108,16 +109,18 @@ administrator@ad.company.local:*:1450400500:1450400513:Administrator:/home/admin !!! Note "Примітка" + ``` `getent` отримує записи з бібліотек перемикання служб імен (NSS). Це означає, що, наприклад, на відміну від `passwd` або `dig`, він запитуватиме різні бази даних, у тому числі `/etc/hosts` для `getent hosts` або з `sssd` у випадку `getent passwd`. + ``` `realm` надає кілька цікавих параметрів, якими можна скористатися: -| Опція | Функціональність | -| ---------------------------------------------------------- | ----------------------------------------------- | +| Опція | Функціональність | +| -------------------------------------------------------------------------- | ----------------------------------------------- | | --computer-ou='OU=LINUX,OU=SERVERS,dc=ad,dc=company.local' | Підрозділ, де зберігати обліковий запис сервера | -| --os-name='rocky' | Укажіть назву ОС, яка зберігається в AD | -| --os-version='8' | Укажіть версію ОС, яка зберігається в AD | -| -U admin_username | Вкажіть обліковий запис адміністратора | +| --os-name='rocky' | Укажіть назву ОС, яка зберігається в AD | +| --os-version='8' | Укажіть версію ОС, яка зберігається в AD | +| -U admin_username | Вкажіть обліковий запис адміністратора | ### Спроба автентифікації @@ -139,7 +142,7 @@ Last login: Wed Sep 15 17:37:03 2021 from 10.0.10.241 ### Встановлення домену за замовчуванням -У повному налаштуванні за замовчуванням вам потрібно буде ввійти за допомогою свого облікового запису AD, вказавши домен у своєму імені користувача (наприклад, `john.doe@ad.company.local`). Якщо це не бажана поведінка, і ви натомість хочете мати можливість опускати доменне ім’я під час автентифікації, ви можете налаштувати SSSD на певний домен за замовчуванням. +У повністю стандартній конфігурації вам потрібно буде увійти, використовуючи свій обліковий запис AD, вказавши домен у своєму імені користувача (наприклад, `john.doe@ad.company.local`). Якщо це не бажана поведінка, і ви натомість хочете мати можливість опускати доменне ім’я під час автентифікації, ви можете налаштувати SSSD на певний домен за замовчуванням. Це відносно простий процес, який потребує налаштування конфігурації у файлі конфігурації SSSD. @@ -150,7 +153,7 @@ Last login: Wed Sep 15 17:37:03 2021 from 10.0.10.241 default_domain_suffix = ad.company.local ``` -Додавши `default_domain_suffix`, ви вказуєте SSSD (якщо не вказано інший домен) зробити висновок, що користувач намагається автентифікуватися як користувач із `ad.company.local` домен. Це дозволяє вам автентифікуватись як щось на зразок `john.doe` замість `john.doe@ad.company.local`. +Додаючи `default_domain_suffix`, ви даєте вказівку SSSD (якщо не вказано інший домен) робити висновок, що користувач намагається автентифікуватися як користувач з домену `ad.company.local`. Це дозволяє вам автентифікуватися як щось на кшталт `john.doe` замість `john.doe@ad.company.local`. Щоб ця зміна конфігурації набула чинності, потрібно перезапустити модуль `sssd.service` за допомогою `systemctl`. @@ -222,7 +225,9 @@ computer-site = site1 !!! Note "Примітка" + ``` Цього разу ми надамо ім’я користувача адміністратора завдяки параметру `-U` + ``` ```sh [user@host ~]$ adcli show-computer pctest -U admin_username diff --git a/docs/guides/security/dnf_automatic.uk.md b/docs/guides/security/dnf_automatic.uk.md index b14ae9a55b..49d12f7c68 100644 --- a/docs/guides/security/dnf_automatic.uk.md +++ b/docs/guides/security/dnf_automatic.uk.md @@ -7,14 +7,14 @@ tags: - безпека - dnf - автоматизація - - updates + - оновлення --- # Виправлення серверів за допомогою `dnf-automatic` Керування встановленням оновлень безпеки є важливим для системного адміністратора. Надання оновлень програмного забезпечення — добре проторений шлях, який зрештою спричиняє мало проблем. З цих причин доцільно автоматизувати щоденне та автоматичне завантаження та застосування оновлень на серверах Rocky. -Безпека вашої інформаційної системи буде посилена. `dnf-automatic` є додатковим інструментом, який дозволить вам досягти цього. +Безпека вашої інформаційної системи буде посилена. `dnf-automatic` — це додатковий інструмент, який дозволить вам цього досягти. !!! tip "Якщо ви хвилюєтесь..." @@ -24,7 +24,7 @@ tags: ## Встановлення -Ви можете встановити `dnf-automatic` зі складних репозиторіїв: +Ви можете встановити `dnf-automatic` із репозиторіїв rocky: ```bash sudo dnf install dnf-automatic @@ -62,7 +62,7 @@ sudo systemctl enable --now dnf-automatic.timer ## А як щодо серверів CentOS 7? -!!! tip "Підказка" +!!! tip Так, це документація Rocky Linux, але якщо ви є системним або мережевим адміністратором, у вас все ще можуть бути деякі машини CentOS 7 у грі. Ми це розуміємо, і тому включили цей розділ. diff --git a/docs/guides/security/enabling_iptables_firewall.uk.md b/docs/guides/security/enabling_iptables_firewall.uk.md index cf75951452..8db6cdb84d 100644 --- a/docs/guides/security/enabling_iptables_firewall.uk.md +++ b/docs/guides/security/enabling_iptables_firewall.uk.md @@ -13,7 +13,7 @@ tags: ## Передумови -- Палаюче, невгамовне бажання вимкнути стандартну програму *firewalld* і ввімкнути *iptables*. +- Палаюче, невгамовне бажання вимкнути стандартну програму _firewalld_ і ввімкнути _iptables_. !!! warning "Процес застарілий" @@ -21,17 +21,17 @@ tags: ## Вступ -*firewalld* тепер є брандмауером за умовчанням у Rocky Linux. *firewalld* **був** нічим іншим, як динамічним застосуванням *iptables* за допомогою файлів xml, які завантажували зміни без очищення правил у CentOS 7/RHEL 7. У CentOS 8/RHEL 8/Rocky 8 *firewalld* тепер є оболонкою для *nftables*. Проте все ще можна встановити та використовувати прямі *iptables*, якщо це ваші переваги. Щоб установити та запустити звичайні *iptables* без *firewalld*, ви можете зробити це, дотримуючись цього посібника. Цей посібник **не** розповість вам, як писати правила для *iptables*. Передбачається, що якщо ви хочете позбутися *firewalld*, ви вже повинні знати, як писати правила для *iptables*. +_firewalld_ тепер є брандмауером за замовчуванням у Rocky Linux. _firewalld_ **був** не чим іншим, як динамічною програмою _iptables_, що використовує XML-файли, яка завантажувала зміни без скидання правил у CentOS 7/RHEL 7. У CentOS 8/RHEL 8/Rocky 8, _firewalld_ тепер є обгорткою навколо _nftables_. Однак, все ще можливо встановити та використовувати безпосередньо _iptables_, якщо ви цього бажаєте. Щоб встановити та запустити безпосередньо _iptables_ без _firewalld_, ви можете це зробити, дотримуючись цього посібника. Цей посібник **не** розповість вам, як писати правила для _iptables_. Передбачається, що якщо ви хочете позбутися _firewalld_, ви вже повинні знати, як писати правила для _iptables_. ## Відключення брандмауера -Ви не можете запустити старі утиліти *iptables* разом із *firewalld*. Вони просто не сумісні. Найкращий спосіб обійти це — повністю вимкнути *firewalld* (не потрібно видаляти його, якщо ви цього не хочете) і повторно встановити утиліти *iptables*. Вимкнути *firewalld* можна за допомогою цих команд: +Ви не можете запускати старі утиліти _iptables_ разом із _firewalld_. Вони просто не сумісні. Найкращий спосіб обійти це — повністю вимкнути _firewalld_ (не потрібно його видаляти, якщо ви цього не хочете) та перевстановити утиліти _iptables_. Вимкнення _firewalld_ можна виконати за допомогою цих команд: -Зупинити *firewalld*: +Зупинити _firewalld_: `systemctl stop firewalld` -Вимкніть *firewalld*, щоб він не запускався під час завантаження: +Вимкніть _firewalld_, щоб він не запускався під час завантаження: `systemctl disable firewalld` @@ -41,16 +41,16 @@ tags: ## Встановлення та ввімкнення служб iptables -Далі нам потрібно встановити старі служби та утиліти *iptables*. Це робиться за допомогою наступного: +Далі нам потрібно встановити старі служби та утиліти _iptables_. Це робиться за допомогою наступного: `dnf install iptables-services iptables-utils` -Це встановить усе необхідне для запуску звичайного набору правил *iptables*. +Це встановить усе необхідне для запуску звичайного набору правил _iptables_. -Тепер нам потрібно ввімкнути службу *iptables*, щоб переконатися, що вона запускається під час завантаження: +Тепер нам потрібно ввімкнути службу _iptables_, щоб переконатися, що вона запускається під час завантаження: `systemctl enable iptables` ## Висновок -Ви можете повернутися до використання простого *iptables*, якщо ви віддаєте перевагу цьому над *firewalld*. Ви можете повернутися до використання типового *брандмауера*, просто скасувавши ці зміни. +Ви можете повернутися до використання безпосередньо _iptables_, якщо надаєте йому перевагу над _firewalld_. Ви можете повернутися до використання стандартного _firewalld_, просто скасувавши ці зміни. diff --git a/docs/guides/security/firewalld-beginners.uk.md b/docs/guides/security/firewalld-beginners.uk.md index 2b8a6a9166..115fab6d3e 100644 --- a/docs/guides/security/firewalld-beginners.uk.md +++ b/docs/guides/security/firewalld-beginners.uk.md @@ -8,11 +8,11 @@ contributors: Steven Spencer, Ganna Zhyrnova ## Вступ -Давним-давно я був маленьким початківцем, який чув, що мати брандмауер *це* дуже добре. Це дозволило б мені вирішувати, що входило та виходило з мого комп’ютера, чи не так? Але здебільшого це завадило моїм відеоіграм отримати доступ до Інтернету; Я був *не* щасливим. +Колись давно я був маленьким новачком у комп'ютерному світі та чув, що наявність брандмауера _нібито_ дуже корисна. Це дозволило б мені вирішувати, що входило та виходило з мого комп’ютера, чи не так? Але здебільшого, здавалося, це заважало моїм відеоіграм отримувати доступ до Інтернету; я був _не_ щасливий. Звичайно, якщо ви тут, то, ймовірно, краще знаєте, що таке брандмауер і що він робить, ніж я. Але якщо ваш брандмауер означає повідомлення Захиснику Windows, що вашій новій програмі дозволено використовувати Інтернет, не хвилюйтеся. Як зазначено в назві цього документа, цей посібник для вас (та інших початківців)! -Отже, давайте поговоримо про те, для чого ми тут. `firewalld` — це програма брандмауера за замовчуванням, яка входить до складу Rocky Linux і розроблена так, що вона досить проста у використанні. Потрібно трохи знати про брандмауери і не боятися використовувати командний рядок. +Отже, давайте поговоримо про те, для чого ми тут. `firewalld` — це стандартний брандмауер, що входить до комплекту Rocky Linux, і він розроблений для досить простого використання. Потрібно трохи знати про брандмауери і не боятися використовувати командний рядок. Тут ви дізнаєтеся про: @@ -21,11 +21,11 @@ contributors: Steven Spencer, Ganna Zhyrnova - Як дозволити лише людям із певних IP-адрес або місць віддалено входити на вашу машину - Як керувати деякими спеціальними функціями `firewalld`, наприклад зонами. -Зауважте, що це *не* є повним чи вичерпним посібником із брандмауера, тому в ньому розглядаються лише основи. +Зауважте, що це _не_ є повним чи вичерпним посібником із брандмауера, тому в ньому розглядаються лише основи. ### Примітка щодо використання командного рядка для керування брандмауером -Ну... є ** параметри конфігурації графічного брандмауера. На робочому столі є `firewall-config`, який можна встановити зі сховищ, а на серверах можна [інсталювати Cockpit](https://wiki.crowncloud.net/?How_to_enable_Cockpit_Server_Manager_in_Rocky_Linux_9), щоб допомогти вам керувати брандмауерами та цілою купою інших речей. **Однак у цьому посібнику я навчатиму вас способу виконання завдань за допомогою командного рядка з кількох причин:** +Ну... є _є_ графічні параметри налаштування брандмауера. На робочому столі є `firewall-config`, який можна встановити з репозиторіїв, а на серверах можна [встановити Cockpit](https://wiki.crowncloud.net/?How_to_enable_Cockpit_Server_Manager_in_Rocky_Linux_9), щоб допомогти вам керувати брандмауерами та багатьма іншими речами. **Однак у цьому посібнику я навчу вас виконувати дії за допомогою командного рядка з кількох причин:** 1. Якщо ви використовуєте сервер, ви все одно будете використовувати командний рядок для більшості цих речей. Багато підручників і посібників для сервера Rocky нададуть інструкції командного рядка для керування брандмауером, і ви повинні зрозуміти ці інструкції, а не просто копіювати та вставляти все, що бачите. 2. Розуміння того, як працюють команди `firewalld`, може допомогти вам краще зрозуміти, як працює програмне забезпечення брандмауера. Якщо ви вирішите використовувати графічний інтерфейс у майбутньому, ви можете використовувати ті самі принципи, які ви дізналися тут, і краще розуміти, що ви робите. @@ -36,14 +36,14 @@ contributors: Steven Spencer, Ganna Zhyrnova - Машина Rocky Linux будь-якого типу, локальна чи віддалена, фізична чи віртуальна - Доступ до терміналу та бажання ним користуватися -- Вам потрібен доступ root або можливість використовувати `sudo` у вашому обліковому записі користувача. Для простоти я припускаю, що всі команди виконуються від імені користувача root +- Вам потрібен root-доступ або принаймні можливість використовувати `sudo` у вашому обліковому записі користувача. Для простоти я припускаю, що всі команди виконуються від імені користувача root - Базове розуміння SSH не завадить керувати віддаленими машинами. ## Основне використання ### Службові команди системи -`firewalld` запускається як служба на вашій машині. Він починається, коли машина це робить, або повинна. Якщо з якоїсь причини `firewalld` ще не ввімкнено на вашій машині, ви можете зробити це за допомогою простої команди: +`firewalld` запускається як служба на вашому комп'ютері. Він починається, коли машина це робить, або повинна. Якщо з якоїсь причини `firewalld` ще не ввімкнено на вашому комп'ютері, ви можете зробити це за допомогою простої команди: ```bash systemctl enable --now firewalld @@ -71,13 +71,13 @@ systemctl restart firewalld ### Базові команди налаштування та керування `firewalld` -`firewalld` налаштовується за допомогою команди `firewall-cmd`. Ви можете, наприклад, перевірити стан `firewalld` за допомогою: +`firewalld` налаштовується командою `firewall-cmd`. Наприклад, ви можете перевірити стан `firewalld` за допомогою: ```bash firewall-cmd --state ``` -Після кожної *постійної* зміни брандмауера вам потрібно буде перезавантажувати його, щоб побачити зміни. Ви можете надати конфігураціям брандмауера "м'який перезапуск" за допомогою: +Після кожної _постійної_ зміни у вашому брандмауері вам потрібно буде перезавантажити його, щоб побачити зміни. Ви можете надати конфігураціям брандмауера "м'який перезапуск" за допомогою: ```bash firewall-cmd --reload @@ -85,7 +85,9 @@ firewall-cmd --reload !!! Note "Примітка" + ``` Якщо ви перезавантажите свої конфігурації, які не стали постійними, вони зникнуть. + ``` Ви можете переглянути всі свої конфігурації та налаштування одночасно за допомогою: @@ -116,9 +118,11 @@ public (active) !!! Warning "Попередження: серйозно, прочитайте наступний фрагмент." + ``` За замовчуванням усі зміни конфігурації `firewalld` є тимчасовими. Якщо ви перезапустите всю службу `firewalld` або перезапустите машину, жодні ваші зміни в брандмауері не будуть збережені, якщо ви не зробите одну з двох дуже конкретних дій. + ``` - Найкраще тестувати ваші зміни окремо, перезавантажуючи конфігурацію брандмауера під час роботи. Якщо ви випадково заблокуєте себе від чогось, ви можете перезапустити службу (або машину), і всі ці зміни зникнуть, як зазначено вище. +Найкраще тестувати ваші зміни окремо, перезавантажуючи конфігурацію брандмауера під час роботи. Якщо ви випадково заблокуєте себе від чогось, ви можете перезапустити службу (або машину), і всі ці зміни зникнуть, як зазначено вище. Але коли у вас буде робоча конфігурація, ви зможете назавжди зберегти свої зміни за допомогою: @@ -134,20 +138,30 @@ firewall-cmd --permanent [the rest of your command] ## Управління зонами -Перш за все, мені потрібно пояснити зони. Зони — це функція, яка дозволяє визначати різні набори правил для різних ситуацій. Зони є величезною частиною `firewalld`, тому варто зрозуміти, як вони працюють. +Перш за все, мені потрібно пояснити зони. Зони — це функція, яка дозволяє визначати різні набори правил для різних ситуацій. Зони є важливою частиною `firewalld`, тому варто зрозуміти, як вони працюють. Якщо ваш комп’ютер має кілька способів підключення до різних мереж (наприклад, Ethernet і Wi-Fi), ви можете вирішити, яке з’єднання є більш надійним, ніж інше. Ви можете встановити ваше підключення Ethernet до «довіреної» зони, якщо воно підключено лише до локальної мережі, яку ви створили, і помістити Wi-Fi (який може бути підключений до Інтернету) у «загальнодоступній» зоні з більш суворими обмеженнями. !!! Note "Примітка" + ``` Зона може *тільки* бути в активному стані, якщо вона має одну з цих двох умов: - + 1. Зона призначається мережевому інтерфейсу 2. Зоні призначаються вихідні IP-адреси або діапазони мережі (докладніше про це нижче) + ``` Стандартні зони включають наступне (я взяв це пояснення з [посібника DigitalOcean щодо `firewalld`](https://www.digitalocean.com/community/tutorials/how-to-set-up-a-firewall-using-firewalld-on-centos-8), який вам також слід прочитати): -> **drop:** Найнижчий рівень довіри. Усі вхідні з’єднання розриваються без відповіді, і можливі лише вихідні з’єднання. **block:** Подібно до вищезазначеного, але замість того, щоб просто розірвати з’єднання, вхідні запити відхиляються повідомленням icmp-host-prohibited або icmp6-adm-prohibited. **public:** Представляє публічні, ненадійні мережі. Ви не довіряєте іншим комп’ютерам, але можете дозволити вибрані вхідні підключення в кожному конкретному випадку. **external:** Зовнішні мережі, якщо ви використовуєте брандмауер як шлюз. Він налаштований на маскування NAT, щоб ваша внутрішня мережа залишалася приватною, але доступною. **internal:** Інша сторона зовнішньої зони, яка використовується для внутрішньої частини шлюзу. Комп’ютери досить надійні, доступні деякі додаткові послуги. **dmz:** Використовується для комп’ютерів, розташованих у DMZ (ізольовані комп’ютери, які не матимуть доступу до решти вашої мережі). Дозволені лише певні вхідні підключення. **work:** Використовується для робочих машин. Довіряйте більшості комп’ютерів у мережі. Можливо, буде дозволено ще декілька послуг. **home:** Домашнє середовище. Зазвичай це означає, що ви довіряєте більшості інших комп’ютерів і що буде прийнято ще кілька послуг. **trusted:** Довіряє всім машинам у мережі. Найбільш відкритий з доступних варіантів, і його слід використовувати помірковано. +> **drop:** Найнижчий рівень довіри. Усі вхідні з’єднання розриваються без відповіді, і можливі лише вихідні з’єднання. +> **block:** Подібно до вищезазначеного, але замість простого розриву з'єднань, вхідні запити відхиляються з повідомленням icmp-host-prohibited або icmp6-adm-prohibited. +> **public:** Представляє публічні, ненадійні мережі. Ви не довіряєте іншим комп’ютерам, але можете дозволити вибрані вхідні підключення в кожному конкретному випадку. +> **external:** Зовнішні мережі, якщо ви використовуєте брандмауер як шлюз. Він налаштований на маскування NAT, щоб ваша внутрішня мережа залишалася приватною, але доступною. +> **internal:** Інша сторона зовнішньої зони, що використовується для внутрішньої частини шлюзу. Комп’ютери досить надійні, доступні деякі додаткові послуги. +> **dmz:** Використовується для комп’ютерів, розташованих у демілітаризованій зоні (ізольовані комп’ютери, які не матимуть доступу до решти вашої мережі). Дозволені лише певні вхідні підключення. +> **work:** Використовується для робочих машин. Довіряє більшості комп’ютерів у мережі. Можливо, буде дозволено ще декілька послуг. +> **home:** Домашнє середовище. Загалом це означає, що ви довіряєте більшості інших комп’ютерів і що буде прийнято ще кілька послуг. +> **trusted:** Довіра всім машинам у мережі. Найбільш відкритий з доступних варіантів, і його слід використовувати помірковано. Гаразд, деякі з цих пояснень стають складнішими, але чесно кажучи? Звичайний початківець може обійтися розумінням понять «довірений», «домашній» і «загальнодоступний», а також те, що використовувати. @@ -167,7 +181,9 @@ firewall-cmd --get-active-zones !!! Note "Примітка: деякі з них могли бути зроблені для вас." - Якщо ви використовуєте Rocky Linux на VPS, базова конфігурація, ймовірно, налаштована для вас. Зокрема, ви повинні мати доступ до сервера через SSH, а мережевий інтерфейс уже буде додано до «публічної» зони. + ``` + Якщо ви використовуєте Rocky Linux на VPS, базова конфігурація, ймовірно, налаштована для вас. Зокрема, ви повинні мати доступ до сервера через SSH, а мережевий інтерфейс уже буде додано до «публічної» зони. + ``` Щоб змінити стандартну зону: @@ -210,19 +226,21 @@ firewall-cmd --get-zones Зокрема, порт 80 дозволяє передавати дані через протокол передачі гіпертексту (HTTP), а порт 443 зарезервовано для даних захищеного протоколу передачі гіпертексту (HTTPS). -Порт 22 зарезервовано для протоколу Secure Shell (SSH), який дозволяє входити в систему та керувати іншими машинами за допомогою командного рядка (див. [наш короткий посібник](ssh_public_private_keys.md) на цю тему). Абсолютно новий віддалений сервер може дозволяти підключення лише через порт 22 для SSH і нічого іншого. +Порт 22 зарезервовано для протоколу Secure Shell (SSH), який дозволяє входити в систему та керувати іншими машинами через командний рядок (див. [наш короткий посібник](ssh_public_private_keys.md) з цього питання). Абсолютно новий віддалений сервер може дозволяти підключення лише через порт 22 для SSH і нічого іншого. Iнші приклади включають FTP (порти 20 і 21), SSH (порт 22) і багато інших. Ви також можете налаштувати власні порти, які використовуватимуться новими програмами, які ви можете інсталювати, але для яких ще немає стандартного номера. !!! Note "Примітка. Ви не повинні використовувати порти для всього." + ``` Для таких речей, як SSH, HTTP/S, FTP тощо, насправді рекомендується додавати їх у зону брандмауера як *послуги*, а не як номери портів. Нижче я покажу вам, як це працює. Тим не менш, вам все одно потрібно знати, як відкривати порти вручну. + ``` \* Для абсолютних початківців HTTPS в основному (більш-менш) такий же, як HTTP, але зашифрований. ### Команди керування портами -У цьому розділі я використаю `--zone=public`... і порт 9001 як випадковий приклад, оскільки він перевищує 9000. +Для цього розділу я використовуватиму `--zone=public`... і порт 9001 як випадковий приклад, оскільки його кількість перевищує 9000. Щоб побачити всі відкриті порти: @@ -238,11 +256,13 @@ firewall-cmd --zone=public --add-port=9001/tcp !!! Note "Примітка" + ``` Щодо цього біта `/tcp`: Цей біт `/tcp` у кінці повідомляє брандмауеру, що з’єднання надходитимуть через протокол керування передачею, який ви використовуватимете для більшості речей, пов’язаних із сервером і домом. Такі альтернативи, як UDP, призначені для налагодження чи інших конкретних речей, які не входять до сфери застосування цього посібника. Зверніться до документації будь-якої програми чи служби, для якої ви хочете відкрити порт. + ``` Щоб видалити порт, просто змініть команду, змінивши одне слово: @@ -252,7 +272,7 @@ firewall-cmd --zone=public --remove-port=9001/tcp ## Управління службами -Як ви можете собі уявити, служби — це досить стандартизовані програми, які працюють на вашому комп’ютері. `firewalld` налаштовано таким чином, що його можна використовувати для легкого доступу до звичайних служб, що працюють на хості. +Як ви можете собі уявити, служби — це досить стандартизовані програми, які працюють на вашому комп’ютері. `firewalld` налаштовано таким чином, щоб його можна було використовувати для легкого доступу до поширених служб, що працюють на хості. Це найкращий спосіб відкрити порти для цих загальних служб і багато іншого: @@ -263,11 +283,13 @@ firewall-cmd --zone=public --remove-port=9001/tcp !!! Warning "Важливо" + ``` **Ніколи не видаляйте службу SSH із брандмауера віддаленого сервера!** Пам’ятайте, що ви використовуєте SSH для входу на свій сервер. Якщо у вас немає іншого способу доступу до фізичного сервера або його оболонки (тобто через. панель керування, яку надає хост), видалення служби SSH заблокує вас назавжди. Вам потрібно або звернутися до служби підтримки, щоб повернути доступ, або повністю перевстановити ОС. + ``` ## Команди керування сервісом @@ -297,7 +319,9 @@ firewall-cmd --zone=public --remove-service=http !!! Note "Примітка. Ви можете додавати власні послуги" + ``` І налаштовувати їх також. Однак це тема, яка стає досить складною. Спочатку ознайомтеся з `firewalld` і переходьте звідти. + ``` ## Обмеження доступу @@ -325,7 +349,7 @@ firewall-cmd --permanent --zone=trusted --add-source=192.168.1.0/24 [< insert yo # firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" service name="ssh" accept' ``` -Після того, як rich правило буде введено в дію, *не* ще робіть правила постійними. Спочатку видаліть службу SSH із конфігурації загальнодоступної зони та перевірте своє з’єднання, щоб переконатися, що ви все ще можете отримати доступ до сервера через SSH. +Щойно правило багатства буде запроваджено, _не_ робіть його постійним поки що. Спочатку видаліть службу SSH із конфігурації загальнодоступної зони та перевірте своє з’єднання, щоб переконатися, що ви все ще можете отримати доступ до сервера через SSH. Тепер ваша конфігурація має виглядати так: @@ -389,6 +413,7 @@ trusted (active) !!! Warning "Важливо" + ``` Ці методи працюють, лише якщо у вас є статична IP-адреса. Якщо ви застрягли в Інтернет-провайдері, який змінює вашу IP-адресу кожного разу, коли ваш модем перезавантажується, не використовуйте ці правила (принаймні для SSH), доки не знайдете виправлення. Ви заблокуєте себе на своєму сервері @@ -398,15 +423,16 @@ trusted (active) Тим часом [встановіть і налаштуйте fail2ban](https://wiki.crowncloud.net/?How_to_Install_Fail2Ban_on_RockyLinux_8), який може допомогти зменшити кількість атак грубою силою. Очевидно, що в локальній мережі, якою ви керуєте (і де ви можете встановити IP-адресу кожної машини вручну), ви можете використовувати всі ці правила скільки завгодно. + ``` ## Заключні примітки -Це далеко не вичерпний посібник, і ви можете дізнатися набагато більше з [офіційної `firewalld` документації](https://firewalld.org/documentation/). В Інтернеті також є зручні посібники для окремих програм, які покажуть вам, як налаштувати брандмауер для цих конкретних програм. +Це далеко не вичерпний посібник, і ви можете дізнатися набагато більше з [офіційної документації `firewalld`](https://firewalld.org/documentation/). В Інтернеті також є зручні посібники для окремих програм, які покажуть вам, як налаштувати брандмауер для цих конкретних програм. -Для вас, шанувальників `iptables` (якщо ви зайшли так далеко...), [у нас є посібник](firewalld.md), який докладно описує деякі відмінності в тому, як `firewalld` і `iptables` працюють. Цей посібник може допомогти вам зрозуміти, чи хочете ви залишитися з `firewalld` чи повернутися до The Old Ways^(TM)^. У цьому випадку є що сказати про The Old Ways^(TM)^. +Для вас, шанувальників `iptables` (якщо ви вже дійшли до цього місця...), [у нас є посібник] (firewalld.md), у якому детально описані деякі відмінності в роботі `firewalld` та `iptables`. Цей посібник може допомогти вам зрозуміти, чи хочете ви залишитися з `firewalld`, чи повернутися до старих методів^(TM)^. У цьому випадку є що сказати про The Old Ways^(TM)^. ## Висновок -І це `firewalld` якомога кількома словами, які я зміг обійти, але при цьому пояснював усі основи. Дійте повільно, обережно експериментуйте та не робіть жодних правил постійними, доки не переконаєтеся, що вони працюють. +І це «брандмауер» (firewalld), якщо коротко описати його, пояснивши при цьому всі основи. Дійте повільно, обережно експериментуйте та не робіть жодних правил постійними, доки не переконаєтеся, що вони працюють. І, знаєте, веселіться. Після того, як ви ознайомитеся з основами, фактичне налаштування пристойного, працездатного брандмауера може зайняти 5-10 хвилин. diff --git a/docs/guides/security/firewalld.uk.md b/docs/guides/security/firewalld.uk.md index 2d7a4317f8..00f0d61413 100644 --- a/docs/guides/security/firewalld.uk.md +++ b/docs/guides/security/firewalld.uk.md @@ -10,17 +10,17 @@ tags: # Посібник `iptables` для `firewalld` - Вступ -Коли було представлено `firewalld` як брандмауер за замовчуванням (його було представлено у 2011 році, але я вважаю, що він з’явився вперше в CentOS 7.), автор продовжував використовувати `iptables`. На це було дві причини. По-перше, доступна на той час документація для `firewalld` використовувала спрощені правила й не показувала, як `firewalld` захищав сервер *аж до рівня IP*. По-друге, автор мав понад десятиліття досвіду роботи з `iptables`, і було легше продовжувати використовувати його замість вивчення `firewalld`. +Коли відбулося введення `firewalld` як брандмауера за замовчуванням (його впровадження відбулося у 2011 році, але я вважаю, що він вперше з'явився в CentOS 7.), автор продовжував використовувати `iptables`. На це було дві причини. По-перше, документація, доступна на той час для `firewalld`, використовувала спрощені правила та не показувала, як `firewalld` захищав сервер _аж до рівня IP_. По-друге, автор мав понад десять років досвіду роботи з `iptables`, і було легше продовжувати використовувати його, ніж вивчати `firewalld`. Цей документ має на меті розглянути обмеження більшості посилань на `firewalld` і змусити автора використовувати `firewalld` для імітації цих детальніших правил брандмауера. -Зі сторінки посібника: «`firewalld` надає динамічно керований брандмауер із підтримкою мережевих зон/зон брандмауера для визначення рівня довіри мережевих з’єднань або інтерфейсів. Він підтримує параметри брандмауера IPv4, IPv6, мости Ethernet і розділення параметрів часу виконання та постійної конфігурації. Він також підтримує інтерфейс для служб або програм для безпосереднього додавання правил брандмауера». +Зі сторінки довідки: «`firewalld` забезпечує динамічно керований брандмауер з підтримкою мережевих/брандмауерних зон для визначення рівня довіри мережевих підключень або інтерфейсів». Він підтримує параметри брандмауера IPv4, IPv6, мости Ethernet і розділення параметрів часу виконання та постійної конфігурації. Він також підтримує інтерфейс для служб або програм для безпосереднього додавання правил брандмауера». `firewalld` — це зовнішня частина підсистем ядра netfilter і nftables у Rocky Linux. -Цей посібник присвячено застосуванню правил із брандмауера `iptables` до брандмауера `firewalld`. Якщо ви справді лише на початку свого шляху до брандмауера, [цей документ](firewalld-beginners.md) може допомогти вам більше. Прочитайте обидва документи, щоб максимально використати `firewalld`. +Цей посібник зосереджений на застосуванні правил з брандмауера `iptables` до брандмауера `firewalld`. Якщо ви справді тільки починаєте свій шлях у сфері брандмауера, [цей документ](firewalld-beginners.md) може вам допомогти. Спробуйте прочитати обидва документи, щоб отримати максимальну користь від `firewalld`. -## Передумови та припущення +## Передумови і Припущення - У цьому документі припускається, що ви є користувачем root або маєте підвищені привілеї за допомогою `sudo`. - Побіжне знання правил брандмауера, зокрема `iptables`, або, як мінімум, ви хочете дізнатися щось про `firewalld`. @@ -29,25 +29,27 @@ tags: ## Зони -Щоб зрозуміти `firewalld`, вам потрібно зрозуміти використання зон. Зони забезпечують деталізацію наборів правил брандмауера. +Щоб по-справжньому розібратися у брандмауері (firewalld), вам потрібно зрозуміти використання зон. Зони забезпечують деталізацію наборів правил брандмауера. `firewalld` має кілька вбудованих зон: -| зона | приклад використання | -| -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| зона | приклад використання | +| -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | drop | скидає вхідні з'єднання без відповіді - дозволяє лише вихідні пакети. | | block | відхиляє вхідні з’єднання з повідомленням icmp-host-prohibited для IPv4 та icmp6-adm-prohibited для IPv6 – можливі лише мережеві з’єднання, ініційовані в цій системі. | | public | для використання в громадських місцях - приймає лише вибрані вхідні з'єднання. | | external | приймає лише вибрані вхідні підключення для використання у зовнішніх мережах із увімкненим маскуванням. | | dmz | лише вибрані вхідні з’єднання приймаються для загальнодоступних комп’ютерів у вашій демілітаризованій зоні з обмеженим доступом до вашої внутрішньої мережі. | | work | для комп'ютерів у робочих зонах - приймає лише вибрані вхідні з'єднання. | -| home | для використання в домашніх умовах - приймає лише вибрані вхідні з'єднання | +| home | для використання в домашніх умовах - приймає лише вибрані вхідні з'єднання | | internal | для доступу до внутрішнього мережевого пристрою – приймає лише вибрані вхідні з’єднання. | | trusted | приймає всі мережеві підключення. | !!! Note "Примітка" + ``` `firewall-cmd` — програма командного рядка для керування демоном `firewalld`. + ``` Щоб отримати список існуючих зон у вашій системі, введіть: @@ -55,23 +57,25 @@ tags: !!! Warning "Важливо" + ```` Не забудьте перевірити стан свого брандмауера, якщо `firewalld-cmd` повертає помилку, за допомогою: команда `firewall-cmd`: - + ``` $ firewall-cmd --state running ``` - - + + команда `systemctl`: - + ``` $ systemctl status firewalld ``` + ```` -Автору більшість цих назв зон не подобається. drop, block, public і trusted є зрозумілими, але деякі недостатньо добрі для ідеальної гранульованої безпеки. Візьмемо цей розділ правил `iptables` як приклад: +Автору більшість цих назв зон не подобається. drop, block, public і trusted є зрозумілими, але деякі недостатньо добрі для ідеальної гранульованої безпеки. Візьмемо, наприклад, цей розділ правила `iptables`: `iptables -A INPUT -p tcp -m tcp -s 192.168.1.122 --dport 22 -j ACCEPT` @@ -86,50 +90,45 @@ firewall-cmd --zone trusted --add-service=ssh --permanent ### Додавання зон -Щоб додати зону, потрібно використати `firewall-cmd` із параметром `--new-zone`. Ви збираєтеся додати "admin" (для адміністратора) як зону: +Щоб додати зону, потрібно скористатися командою `firewall-cmd` з параметром `--new-zone`. Ви збираєтеся додати "admin" (для адміністратора) як зону: `firewall-cmd --new-zone=admin --permanent` !!! Note "Примітка" + ``` Автор часто використовує прапорець `--permanent`. Для тестування рекомендується додати правило без прапорця `--permanent`, перевірити його та, якщо воно працює належним чином, використати `firewall-cmd --runtime-to-permanent`, щоб перемістити правило до активного використання. запустивши `firewall-cmd --reload`. Якщо ризик низький (іншими словами, ви не заблокуєте себе), ви можете додати позначку `--permanent`, як це зроблено тут. + ``` Перед використанням цієї зони необхідно перезавантажити брандмауер: `firewall-cmd --reload` -!!! tip "Підказка" +!!! tip Примітка щодо настроюваних зон: якщо вам потрібно додати зону, яка буде довіреною, але міститиме лише певну IP-адресу джерела чи інтерфейс, а не протоколи чи служби, і «довірена» зона не працює для вас, можливо, через те, що у вас є вже використовував її для чогось іншого тощо. Для цього ви можете додати спеціальну зону, але ви повинні змінити ціль зони з «за замовчуванням» на «ПРИЙНЯТИ» (можна також використовувати REJECT або DROP, залежно від ваших цілей). Ось приклад використання інтерфейсу мосту (lxdbr0 у цьому випадку) на машині LXD. Спочатку ви додаєте зону та перезавантажуєте її, щоб можна було її використовувати: - - ``` - firewall-cmd --new-zone=bridge --permanent - firewall-cmd --reload - ``` - - + + ` firewall-cmd --new-zone=bridge --permanent firewall-cmd --reload ` + + Далі ви змінюєте ціль зони з «за замовчуванням» на «ACCEPT» (**зауважте, що для зміни цілі потрібен параметр «--permanent»**), потім призначаєте інтерфейс і перезавантажуєте: - - ``` - firewall-cmd --zone=bridge --set-target=ACCEPT --permanent - firewall-cmd --zone=bridge --add-interface=lxdbr0 --permanent - firewall-cmd --reload - ``` - - + + ` firewall-cmd --zone=bridge --set-target=ACCEPT --permanent firewall-cmd --zone=bridge --add-interface=lxdbr0 --permanent firewall-cmd --reload ` + + Це повідомляє брандмауеру, що ви: - + 1. змінюєте ціль зони на ACCEPT 2. додаєте до зони інтерфейс мосту "lxdbr0". 3. перезавантажуєте брандмауер - + Все це означає, що ви приймаєте весь трафік з інтерфейсу мосту. ### Перелік зон -Перш ніж продовжувати, вам потрібно вивчити процес переліку зон. Ви отримуєте один робочий стовпець, а не табличний вивід, наданий `iptables -L`. Виведіть зону в список за допомогою команди `firewall-cmd --zone=[zone_name] --list-all`. Ось як це виглядає, коли ви перераховуєте щойно створену зону «admin»: +Перш ніж продовжувати, вам потрібно вивчити процес переліку зон. Ви отримуєте один стовпець виробництва, а не табличний вивід, що надається командою `iptables -L`. Список зон можна отримати за допомогою команди `firewall-cmd --zone=[назва_зони] --list-all`. Ось як це виглядає, коли ви перераховуєте щойно створену зону «admin»: `firewall-cmd --zone=admin --list-all` @@ -156,14 +155,16 @@ admin !!! Note "Важливо: активні зони" + ``` Зона може *тільки* бути в активному стані, якщо вона має одну з цих двох умов: - + 1. Зона призначається мережевому інтерфейсу. 2. Зоні призначаються вихідні IP-адреси або діапазони мережі. + ``` ### Видалення IP і служби із зони -Якщо ви дотримувалися попередніх інструкцій щодо додавання IP-адреси до «довіреної» зони, вам потрібно видалити її зараз. Пам’ятаєте нашу примітку про використання позначки `--permanent`? Це гарне місце, щоб уникати його використання під час належного тестування перед тим, як застосувати це правило: +Якщо ви дотримувалися попередніх інструкцій щодо додавання IP-адреси до «довіреної» зони, вам потрібно видалити її зараз. Пам'ятаєте нашу примітку про використання прапорця `--permanent`? Це гарне місце, щоб уникати його використання під час належного тестування перед тим, як застосувати це правило: `firewall-cmd --zone=trusted --remove-source=192.168.1.122` @@ -171,7 +172,7 @@ admin `firewall-cmd --zone=trusted --remove-service ssh` -Тоді тестуйте. Ви хочете переконатися, що у вас є вихід через `ssh` з іншої зони перед виконанням останніх двох кроків. (Див. **Попередження** нижче!). Якщо ви не внесли жодних інших змін, у «загальнодоступній» зоні все одно буде дозволено SSH, оскільки він є там за замовчуванням. +Тоді тестуйте. Перш ніж виконувати два останні кроки, переконайтеся, що у вас є спосіб увійти через `ssh` з іншої зони. (Див. **Попередження** нижче!). Якщо ви не внесли жодних інших змін, у «загальнодоступній» зоні все одно буде дозволено SSH, оскільки він є там за замовчуванням. Коли ви задоволені, перенесіть правила виконання на постійні: @@ -183,9 +184,11 @@ admin !!! Warning "Важливо" + ``` Затримайтеся з останньою інструкцією, якщо ви працюєте на віддаленому сервері або VPS! *НІКОЛИ не видаляйте службу `ssh` з віддаленого сервера*, якщо у вас немає іншого способу доступу до оболонки (див. нижче). Припустімо, ви заблокували собі доступ до ssh через брандмауер. У такому випадку вам потрібно буде (у найгіршому випадку) відремонтувати сервер особисто, звернутися до служби підтримки або, можливо, перевстановити ОС із панелі керування (залежно від того, фізичний чи віртуальний сервер). + ``` ### Використання нової зони - Додавання адміністративних IP @@ -202,7 +205,7 @@ firewall-cmd --zone admin --add-service=ssh Перевірте своє правило, щоб переконатися, що воно працює. Для тестування: -1. SSH як користувач root або ваш користувач із підтримкою sudo з вашої вихідної IP-адреси (вище це 192.168.1.122) (*використовуйте користувача root, оскільки ви збираєтеся запускати команди на хості, якому це потрібно. Якщо ви використовуєте користувача sudo, не забудьте `sudo -s` після підключення.*) +1. SSH as root, or your sudo capable user, from your source IP (above it is 192.168.1.122) (_use the root user because you are going to run commands on the host that require it. Якщо ви використовуєте користувача sudo, не забудьте виконати команду `sudo -s` після підключення._) 2. Після підключення запустіть `tail /var/log/secure`, і ви отримаєте результат, який виглядає приблизно так: ```bash @@ -222,7 +225,9 @@ Feb 14 22:02:34 serverhostname sshd[9805]: pam_unix(sshd:session): session opene !!! Warning "Важливо" + ``` За замовчуванням у «загальнодоступній» зоні ввімкнено службу `ssh`; це може бути зобов'язанням безпеки. Після створення адміністративної зони, призначення `ssh` і перевірки ви можете видалити службу з публічної зони. + ``` Якщо у вас є кілька адміністративних IP-адрес, які вам потрібно додати (цілком імовірно), додайте їх до джерел для зони. У цьому випадку ви додаєте IP-адресу до зони «admin»: @@ -230,11 +235,13 @@ Feb 14 22:02:34 serverhostname sshd[9805]: pam_unix(sshd:session): session opene !!! Note "Примітка" + ``` Пам’ятайте, що якщо ви працюєте на віддаленому сервері або VPS і маєте підключення до Інтернету, яке не завжди використовує ту саму IP-адресу, ви можете відкрити свою службу `ssh` для діапазону IP-адрес, які використовує ваш постачальник послуг Інтернету або географічний область. Знову ж таки, це робиться для того, щоб вас не заблокував ваш брандмауер. Багато провайдерів стягують додаткову плату за виділені IP-адреси, якщо вони пропонуються, тому це викликає справжнє занепокоєння. У наведених тут прикладах передбачається, що ви використовуєте IP-адреси у власній приватній мережі для доступу до сервера, який також є локальним. + ``` ## Правила ICMP @@ -305,7 +312,7 @@ firewall-cmd --zone=public --add-service=http --add-service=https --permanent ## Порти FTP -Поверніться до нашого сценарію `iptables`. У вас є такі правила роботи з FTP: +Повертаючись до скрипта `iptables`. У вас є такі правила роботи з FTP: ```bash iptables -A INPUT -p tcp -m tcp --dport 20-21 -j ACCEPT @@ -314,7 +321,7 @@ iptables -A INPUT -p tcp -m tcp --dport 7000-7500 -j ACCEPT Ця частина сценарію стосується стандартних портів FTP (20 і 21) і деяких додаткових пасивних портів. FTP-сервери, такі як [VSFTPD](../file_sharing/secure_ftp_server_vsftpd.md), часто потребують таких правил. Як правило, таке правило буде на загальнодоступному веб-сервері, і воно призначене для дозволу ftp-з’єднань від ваших клієнтів. -У `firewalld` не існує служби даних ftp (порт 20). Перелічені тут порти з 7000 по 7500 призначені для пасивних з’єднань FTP, і знову ж таки, вони не існують як служби в `firewalld`. Ви можете перейти на SFTP, який спрощує правила дозволу портів і, ймовірно, є рекомендованим способом. +У `firewalld` немає служби ftp-даних (порт 20). Порти з 7000 по 7500, перелічені тут, призначені для пасивних FTP-з’єднань, і знову ж таки, вони не існують як служба у `firewalld`. Ви можете перейти на SFTP, який спрощує правила дозволу портів і, ймовірно, є рекомендованим способом. Це демонструє перетворення набору правил `iptables` на `firewalld`. Щоб уникнути всіх цих проблем, ви можете зробити наступне. @@ -336,13 +343,13 @@ iptables -A INPUT -p tcp -m tcp --dport 7000-7500 -j ACCEPT ## Порти бази даних -Якщо ви маєте справу з веб-сервером, ви майже напевно маєте справу з базою даних. Ви обробляєте доступ до цієї бази даних так само ретельно, як і до інших служб. Якщо доступ не потрібен зі світу, застосуйте своє правило до чогось іншого, ніж "публічне". Інше міркування: чи потрібно взагалі пропонувати доступ? Знову ж таки, це, ймовірно, залежить від вашого середовища. Там, де раніше працював автор, наші клієнти використовували розміщений веб-сервер. У багатьох були сайти WordPress; ніхто не потребує доступу до будь-якого інтерфейсу для `MariaDB`. Якщо клієнту потрібен був додатковий доступ, нашим рішенням було створення контейнера LXD для його веб-сервера, побудова брандмауера за бажанням клієнта та покладання на нього відповідальності за те, що відбувається на цьому сервері. Проте, якщо ваш сервер загальнодоступний, вам може знадобитися надати доступ до `phpmyadmin` або іншого інтерфейсу `MariaDB`. У цьому випадку вам потрібно подбати про вимоги до пароля для бази даних і встановити для користувача бази даних щось інше, ніж значення за замовчуванням. Для автора довжина пароля є [основним фактором під час створення паролів](https://xkcd.com/936/). +Якщо ви маєте справу з веб-сервером, ви майже напевно маєте справу з базою даних. Ви обробляєте доступ до цієї бази даних так само ретельно, як і до інших служб. Якщо доступ не потрібен зі світу, застосуйте своє правило до чогось іншого, ніж "публічне". Інше міркування: чи потрібно взагалі пропонувати доступ? Знову ж таки, це, ймовірно, залежить від вашого середовища. Там, де раніше працював автор, наші клієнти використовували розміщений веб-сервер. Багато хто мав сайти на WordPress, і жоден з них насправді не потребував і не просив доступу до будь-якого фронтенду для `MariaDB`. Якщо клієнту потрібен був додатковий доступ, нашим рішенням було створення контейнера LXD для його веб-сервера, побудова брандмауера за бажанням клієнта та покладання на нього відповідальності за те, що відбувається на цьому сервері. Однак, якщо ваш сервер публічний, вам може знадобитися надати доступ до `phpmyadmin` або якогось іншого інтерфейсу до `MariaDB`. У цьому випадку вам потрібно подбати про вимоги до пароля для бази даних і встановити для користувача бази даних щось інше, ніж значення за замовчуванням. Для автора довжина пароля є [головним фактором, який слід враховувати під час створення паролів] (https://xkcd.com/936/). -Безпека пароля — це обговорення в іншому документі, присвяченому цьому. Припускається, що у вас є хороша політика паролів для доступу до вашої бази даних, а рядок `iptables` у вашому брандмауері, який працює з базою даних, виглядає так: +Безпека пароля — це обговорення в іншому документі, присвяченому цьому. Припускається, що у вас є хороша політика паролів для доступу до бази даних, а рядок `iptables` у вашому брандмауері, що відповідає за базу даних, виглядає так: `iptables -A INPUT -p tcp -m tcp --dport=3600 -j ACCEPT` - У цьому випадку додайте службу до «публічної» зони для перетворення `firewalld`: +У цьому випадку додайте службу до «публічної» зони для перетворення `firewalld`: `firewall-cmd --zone=public --add-service=mysql --permanent` @@ -374,7 +381,9 @@ Postgresql використовує свій службовий порт. Ось !!! Note "Примітка" + ``` Ви *можете* перерахувати всі правила, якщо хочете, перерахувавши правила nftables. Це негарно, і я не рекомендую цього, але якщо вам справді потрібно, ви можете створити `набір правил списку nft`. + ``` Єдине, чого ви ще не зробили, це перелік правил. Це те, що ви можете зробити за зоною. Ось приклади зон, які ви використовували. Зауважте, що ви можете вказати зону перед тим, як перемістити правило на постійне місце, і це гарна ідея. @@ -451,7 +460,7 @@ public ## Інтерфейси -`firewalld` за замовчуванням слухатиме всі доступні інтерфейси. На базовому сервері з багатьма інтерфейсами, що стикаються з багатьма мережевими шлюзами, вам потрібно буде призначити інтерфейс зоні на основі мережі, до якої він стикається. +За замовчуванням, `firewalld` прослуховуватиме всі доступні інтерфейси. На базовому сервері з багатьма інтерфейсами, що стикаються з багатьма мережевими шлюзами, вам потрібно буде призначити інтерфейс зоні на основі мережі, до якої він стикається. У наших прикладах інтерфейси не додано, оскільки лабораторія використовує для тестування LXD. У цьому випадку у вас є лише один інтерфейс для роботи. Скажімо, ваша «загальнодоступна» зона потребує конфігурації для використання порту Ethernet enp3s0, оскільки на цьому порту є загальнодоступна IP-адреса, і скажіть, що ваші «довірена» та «адміністративна» зони знаходяться на інтерфейсі LAN, який може бути enp3s1. @@ -468,9 +477,9 @@ firewall-cmd --reload Ви вже використали деякі команди. Ось ще кілька поширених команд і те, що вони роблять: -| Команда | Результат | -| -------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -| `firewall-cmd --list-all-zones` | подібно до `firewall-cmd --list-all --zone=[zone]`, за винятком того, що тут перераховано *усі* зони та їхній вміст. | +| Команда | Результат | +| -------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | +| `firewall-cmd --list-all-zones` | подібно до `firewall-cmd --list-all --zone=[zone]`, за винятком того, що тут перераховано _усі_ зони та їхній вміст. | | `firewall-cmd --get-default-zone` | показує зону за замовчуванням, "публічну", якщо ви її не зміните. | | `firewall-cmd --list-services --zone=[zone]` | показує всі служби, активовані для зони. | | `firewall-cmd --list-ports --zone=[zone]` | показує всі відкриті порти в зоні. | @@ -482,7 +491,7 @@ firewall-cmd --reload ## Висновок -Оскільки `firewalld` рекомендований і включає брандмауер із Rocky Linux, гарною ідеєю буде ознайомитися з тим, як він працює. Спрощені правила, включені в документацію для застосування служб за допомогою `firewalld`, часто не враховують використання сервера та не пропонують жодних варіантів, крім публічного дозволу служби. Це недолік із отворами безпеки, які не обов’язково присутні. +Оскільки `firewalld` є рекомендованим та включеним брандмауером до Rocky Linux, варто розібратися, як він працює. Спрощені правила, включені до документації щодо застосування сервісів за допомогою `firewalld`, часто не враховують використання сервером і не пропонують жодних варіантів, окрім публічного дозволу сервісу. Це недолік із отворами безпеки, які не обов’язково присутні. Коли ви побачите ці інструкції, подумайте, для чого використовується ваш сервер і чи має служба бути відкритою для світу. Якщо ні, спробуйте застосувати більшу деталізацію своїх правил, як описано вище. diff --git a/docs/guides/security/generating_ssl_keys_lets_encrypt.uk.md b/docs/guides/security/generating_ssl_keys_lets_encrypt.uk.md index a42a3030b1..aebba11062 100644 --- a/docs/guides/security/generating_ssl_keys_lets_encrypt.uk.md +++ b/docs/guides/security/generating_ssl_keys_lets_encrypt.uk.md @@ -13,9 +13,9 @@ tags: - Володіння командним рядком - Знайомство із захистом веб-сайтів за допомогою сертифікатів SSL є перевагою -- Знання текстових редакторів командного рядка (у цьому прикладі використовується *vi*) -- Веб-сервер, відкритий для світу та працює на порту 80 (http) -- Знайомство з *ssh* (захищена оболонка) і можливість доступу до вашого сервера за допомогою *ssh* +- Знання текстових редакторів командного рядка (у цьому прикладі використовується _vi_) +- Веб-сервер, відкритий для світу та працює на порту 80 (`http`) +- Знайомство з _SSH_ (захищена оболонка) і можливість доступу до вашого сервера за допомогою _SSH_ - Усі команди припускають, що ви є користувачем root або що ви використовували `sudo` для отримання доступу root ## Вступ @@ -26,7 +26,7 @@ tags: ## Встановлення -Щоб виконати наступні кроки, скористайтеся `ssh` для входу на свій сервер. Якщо повне DNS-ім’я вашого сервера було www.myhost.com, ви б використовували: +Щоб виконати наступні кроки, використовуйте `ssh` для входу на ваш сервер. Якщо повне DNS-ім’я вашого сервера було www.myhost.com, ви б використовували: ```bash ssh -l root www.myhost.com @@ -46,7 +46,7 @@ sudo -s У цьому випадку вам знадобляться облікові дані вашого користувача, щоб отримати доступ до системи як root. -Let's Encrypt використовує пакет під назвою *certbot*, який потрібно встановити через репозиторії EPEL. Додайте їх першими: +Let's Encrypt використовує пакет під назвою _certbot_, який ви встановлюєте разом із репозиторієм EPEL. Додайте їх першими: ```bash dnf install epel-release @@ -68,11 +68,13 @@ dnf install certbot python3-certbot-nginx !!! Note "Примітка" + ``` Попередня версія цього посібника вимагала версії пакета знімків *certbot*, яка тоді була необхідною. Версії RPM були нещодавно повторно перевірені та зараз працюють. Проте Certbot наполегливо рекомендує використовувати [процедуру швидкого встановлення](https://certbot.eff.org/instructions?ws=apache&os=centosrhel8). Rocky Linux 8 і 9 мають *certbot*, доступний у EPEL, тому ми показуємо цю процедуру тут. Якщо ви бажаєте скористатися процедурою, рекомендованою Certbot, дотримуйтеся цієї процедури. + ``` ## Отримання сертифіката Let's Encrypt для сервера Apache -Ви можете отримати свій сертифікат Let's Encrypt двома способами: за допомогою команди для зміни файлу конфігурації `http` або лише отриманням сертифіката. Якщо ви використовуєте процедуру багатосайтового налаштування, запропоновану для одного або кількох сайтів у процедурі [Мультисайтове налаштування веб-сервера Apache](../web/apache-sites-enabled.md), просто отримайте свій сертифікат. +Ви можете отримати свій сертифікат Let's Encrypt двома способами: за допомогою команди для зміни конфігураційного файлу `http` або отриманням лише сертифіката. Якщо ви використовуєте процедуру для налаштування кількох сайтів, запропоновану для одного або кількох сайтів у процедурі [Налаштування кількох сайтів веб-сервера Apache](../web/apache-sites-enabled.md), просто отримайте свій сертифікат. Налаштування на кількох сайтах є припущенням, тому наведені нижче інструкції отримають лише сертифікат. Якщо ви використовуєте автономний веб-сервер із конфігурацією за замовчуванням, ви можете отримати сертифікат і змінити файл конфігурації одним кроком: @@ -161,7 +163,7 @@ IMPORTANT NOTES: Один файл PEM (Privacy Enhanced Mail) містить сертифікат і файл ланцюжка. Зараз це загальний формат для всіх файлів сертифікатів. Незважаючи на те, що в посиланні є «Пошта», це лише тип файлу сертифіката. Нижче наведено ілюстрацію файлу конфігурації та опис того, що відбувається: -!!! info "Інформація" +!!! info Раніше ця документація містила рядок у конфігурації для директиви `SSLCertificateChainFile`. Починаючи з версії Apache 2.4.8, ця директива застаріла як директива `SSLCertificateFile` [тепер включає проміжний файл CA](https://httpd.apache.org/docs/2.4/mod/mod_ssl.html#sslcertificatechainfile). @@ -211,13 +213,13 @@ IMPORTANT NOTES: - SSLProtocol all -SSLv2 -SSLv3 -TLSv1 - говорить про використання всіх доступних протоколів, крім тих, які мають вразливості. Ви повинні періодично досліджувати, які протоколи зараз прийнятні для використання. - SSLHonorCipherOrder on - це стосується наступного рядка щодо наборів шифрів і повідомляє, що потрібно мати справу з ними в тому порядку, у якому вони вказані. Це ще одна область, де ви повинні переглядати набори шифрів, які ви хочете періодично включати - SSLCertificateFile – це файл PEM, який містить сертифікат сайту **ТА** проміжний сертифікат. -- SSLCertificateKeyFile – файл PEM для закритого ключа, згенерований за допомогою запиту *certbot*. +- SSLCertificateKeyFile – файл PEM для закритого ключа, згенерований за допомогою запиту _certbot_. -Коли ви внесете всі зміни, перезапустіть *httpd* і, якщо він почнеться, протестуйте свій сайт, щоб переконатися, що тепер у вас відображається дійсний файл сертифіката. Якщо так, ви готові переходити до наступного кроку: автоматизації. +Після внесення всіх змін перезапустіть _httpd_, і якщо він запуститься, перевірте свій сайт, щоб переконатися, що тепер у вас відображається дійсний файл сертифіката. Якщо так, ви готові переходити до наступного кроку: автоматизації. -## Використання *certbot* із Nginx +## Використання _certbot_ із Nginx -Коротка примітка: використання *certbot* з Nginx майже таке ж, як і з Apache. Ось коротка версія посібника: +Невелике зауваження: використання _certbot_ з Nginx майже таке ж, як і з Apache. Ось коротка версія посібника: Виконайте цю команду, щоб почати: @@ -251,7 +253,7 @@ server { ``` -Коли *certbot* впорається з цим, це виглядатиме приблизно так: +Коли _certbot_ впорається з цим, це виглядатиме приблизно так: ```bash server { @@ -283,15 +285,15 @@ server { } ``` -Якщо ви використовуєте Nginx як зворотний проксі, вам може знадобитися змінити новий файл конфігурації, щоб виправити деякі речі, які *certbot* не впорається ідеально. +Якщо ви використовуєте Nginx як зворотний проксі, вам може знадобитися змінити новий файл конфігурації, щоб виправити деякі речі, які _certbot_ не впорається ідеально. ## Автоматизація поновлення сертифіката Let's Encrypt -!!! note "Примітка" +!!! note Замініть випадки на «ім’я хоста-вашого-сервера» в цих прикладах на фактичне ім’я домену або ім’я хосту. -Принадність встановлення *certbot* полягає в тому, що сертифікат Let's Encrypt автоматично поновлюється. Для цього не потрібно створювати процес. Вам *треба* перевірити оновлення за допомогою: +Перевага встановлення _certbot_ полягає в тому, що сертифікат Let's Encrypt буде автоматично поновлюватися. Для цього не потрібно створювати процес. Вам _дійсно_ потрібно перевірити поновлення за допомогою: ```bash certbot renew --dry-run @@ -325,13 +327,13 @@ Congratulations, all simulated renewals succeeded: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ``` -Команду для оновлення *certbot* можна знайти одним із таких методів: +Команду для оновлення _certbot_ можна знайти одним із таких методів: - Перерахувавши вміст `/etc/crontab/` - Перерахувавши вміст `/etc/cron.*/*` - Запустивши `systemctl list-timers` -Використовуючи метод `systemctl list-timers`, ви можете побачити, що *certbot* існує, і його інсталяцію було виконано за допомогою процедури `snap`: +Використовуючи метод `systemctl list-timers`, ви можете побачити, що _certbot_ існує, і його інсталяцію було виконано за допомогою процедури `snap`: ```bash sudo systemctl list-timers diff --git a/docs/guides/security/learning_selinux.uk.md b/docs/guides/security/learning_selinux.uk.md index 85f5317bbe..10df697e88 100644 --- a/docs/guides/security/learning_selinux.uk.md +++ b/docs/guides/security/learning_selinux.uk.md @@ -21,7 +21,7 @@ tags: **SELinux** (Security Enhanced Linux) — це обов’язкова система контролю доступу. -До появи систем MAC стандартний захист керування доступом базувався на **DAC** (**D**iscretionary **A**ccess **C**ontrol). Програма або демон, які працюють за допомогою **UID** або **SUID** (**S**et **O**wner **U**ser **I**d) права, які дозволили оцінити дозволи (на файли, сокети та інші процеси...) відповідно до цього користувача. Ця операція недостатньо обмежує права пошкодженої програми, потенційно дозволяючи їй отримати доступ до підсистем операційної системи. +До появи систем MAC стандартна безпека керування доступом базувалася на системах **DAC** (\*\*дискреційний **Контроль доступу**). Програма або демон, що працює з правами **UID** або **SUID** (**S**set **O**wner **U**ser **I**d), що дозволяє оцінювати дозволи (для файлів, сокетів та інших процесів...) за словами цього користувача. Ця операція недостатньо обмежує права пошкодженої програми, потенційно дозволяючи їй отримати доступ до підсистем операційної системи. Система MAC посилює розділення конфіденційності та цілісності інформації для досягнення системи стримування. Система обмеження не залежить від традиційної системи прав, і тут немає поняття суперкористувача. @@ -29,7 +29,7 @@ tags: ![SELinux](../images/selinux_001.png) -SELinux використовує для цього набір правил (політик). Надається набір із двох стандартних наборів правил (**targeted** і **strict**), і кожна програма зазвичай надає власні правила. +SELinux використовує для цього набір правил (політик). Надається набір із двох стандартних наборів правил (**цільових** та **суворих**), і кожна програма зазвичай має власні правила. ### Контекст SELinux @@ -47,7 +47,7 @@ SELinux використовує для цього набір правил (по Правила іменування: **user_u:role_r:type_t**. -Контекст безпеки призначається користувачеві під час його підключення відповідно до його ролей. Контекст безпеки файлу визначається `chcon` (**ch**ange **con**text), яку ми побачимо далі в цьому документі. +Контекст безпеки призначається користувачеві під час його підключення відповідно до його ролей. Контекст безпеки файлу визначається командою `chcon` (**ch**ange **con**text), яку ми розглянемо пізніше в цьому документі. Розглянемо такі частини головоломки SELinux: @@ -56,7 +56,7 @@ SELinux використовує для цього набір правил (по - Політики - Режими -Коли суб’єкт (наприклад, програма) намагається отримати доступ до об’єкта (наприклад, файлу), частина SELinux ядра Linux запитує його базу даних політики. Залежно від режиму роботи, SELinux авторизує доступ до об’єкта в разі успіху, інакше він записує помилку у файл `/var/log/messages`. +Коли суб’єкт (наприклад, програма) намагається отримати доступ до об’єкта (наприклад, файлу), частина SELinux ядра Linux запитує його базу даних політики. Залежно від режиму роботи, SELinux авторизує доступ до об'єкта у разі успіху, в іншому випадку записує невдачу у файл `/var/log/messages`. #### Контекст стандартних процесів SELinux @@ -88,7 +88,7 @@ SELinux використовує для цього набір правил (по semanage [object_type] [options] ``` -Приклад: +Наприклад: ```bash semanage boolean -l @@ -135,7 +135,9 @@ httpd_can_sendmail (off , off) Allow httpd to send mail !!! Note "Примітка" + ``` Як бачите, існує стан «за замовчуванням» (наприклад, під час запуску) і стан роботи. + ``` Команда `setsebool` використовується для зміни стану логічного об’єкта: @@ -143,20 +145,22 @@ httpd_can_sendmail (off , off) Allow httpd to send mail setsebool [-PV] boolean on|off ``` -Приклад: +Наприклад: ```bash sudo setsebool -P httpd_can_sendmail on ``` -| Опції | Функціональність | -| ----- | ---------------------------------------------------------------------------------- | +| Опції | Функціональність | +| ----- | ----------------------------------------------------------------------------------------------------- | | `-P` | Змінює значення за замовчуванням під час запуску (інакше лише до перезавантаження) | -| `-V` | Видаляє об’єкт | +| `-V` | Видаляє об’єкт | !!! Warning "Важливо" + ``` Не забудьте опцію `-P`, щоб зберегти стан після наступного запуску. + ``` ### Адміністрування об'єктів порту @@ -196,7 +200,7 @@ SELinux має три режими роботи: getenforce ``` -Приклад: +Наприклад: ```bash $ getenforce @@ -209,7 +213,7 @@ Enforcing sestatus ``` -Приклад: +Наприклад: ```bash $ sestatus @@ -241,7 +245,9 @@ sudo setenforce 0 !!! Warning "Важливо" + ``` Вимкнення SELinux виконується на ваш власний ризик! Краще дізнатися, як працює SELinux, ніж систематично відключати його! + ``` Відредагуйте файл `/etc/sysconfig/selinux` @@ -251,7 +257,9 @@ SELINUX=disabled !!! Note "Примітка" + ``` `/etc/sysconfig/selinux` є символічним посиланням на `/etc/selinux/config` + ``` Перезавантажте систему: @@ -261,7 +269,9 @@ sudo reboot !!! Warning "Важливо" + ``` Остерігайтеся зміни режиму SELinux! + ``` У вимкненому режимі новостворені файли не матимуть міток. @@ -283,7 +293,7 @@ SELinux надає два стандартних типи правил: ## Контекст -Відображення контекстів безпеки виконується за допомогою параметра `-Z`. Він пов'язаний з багатьма командами: +Відображення контекстів безпеки здійснюється за допомогою опції `-Z`. Він пов'язаний з багатьма командами: Приклади: @@ -301,7 +311,7 @@ lsof -Z # for open files matchpathcon directory ``` -Приклад: +Наприклад: ```bash sudo matchpathcon /root @@ -317,7 +327,7 @@ sudo matchpathcon / chcon [-vR] [-u USER] [–r ROLE] [-t TYPE] file ``` -Приклад: +Наприклад: ```bash sudo chcon -vR -t httpd_sys_content_t /data/websites/ @@ -335,7 +345,7 @@ sudo chcon -vR -t httpd_sys_content_t /data/websites/ restorecon [-vR] directory ``` -Приклад: +Наприклад: ```bash sudo restorecon -vR /home/ @@ -354,9 +364,11 @@ semanage fcontext -a options file !!! Note "Примітка" + ``` Якщо ви виконуєте перемикання контексту для папки, яка не є стандартною для системи, гарною практикою є створення правила, а потім застосування контексту, як у прикладі нижче! + ``` -Приклад: +Наприклад: ```bash sudo semanage fcontext -a -t httpd_sys_content_t "/data/websites(/.*)?" @@ -377,9 +389,9 @@ audit2why [-vw] sudo cat /var/log/audit/audit.log | grep AVC | grep denied | tail -1 | audit2why ``` -| Опції | Функціональність | -| ----- | ---------------------------------------------------------------------------------------------------- | -| `-v` | Перемикається в багатослівний режим | +| Опції | Функціональність | +| ----- | ----------------------------------------------------------------------------------------------------------------------- | +| `-v` | Перемикається в багатослівний режим | | `-w` | Перекладає причину відхилення SELinux і пропонує рішення для її усунення (параметр за замовчуванням) | ### Йти далі з SELinux @@ -390,14 +402,14 @@ sudo cat /var/log/audit/audit.log | grep AVC | grep denied | tail -1 | audit2why audit2allow [-mM] ``` -Приклад: +Наприклад: ```bash sudo cat /var/log/audit/audit.log | grep AVC | grep denied | tail -1 | audit2allow -M mylocalmodule ``` -| Опції | Функціональність | -| ----- | ----------------------------------------------- | +| Опції | Функціональність | +| ----- | ------------------------------------------------------------------ | | `-m` | Просто створює модуль (`*.te`) | | `-M` | Створює модуль, компілює та пакує його (`*.pp`) | diff --git a/docs/guides/security/pam.uk.md b/docs/guides/security/pam.uk.md index 8356747b85..7c6c985edb 100644 --- a/docs/guides/security/pam.uk.md +++ b/docs/guides/security/pam.uk.md @@ -12,19 +12,20 @@ tags: ## Передумови та припущення -* Некритичний ПК, сервер або віртуальна машина Rocky Linux -* Root доступ -* Деякі існуючі знання Linux (дуже допоможуть) -* Бажання дізнатися про автентифікацію користувачів і програм у Linux -* Здатність приймати наслідки власних дій +- Некритичний ПК, сервер або віртуальна машина Rocky Linux +- Root доступ +- Деякі існуючі знання Linux (дуже допоможуть) +- Бажання дізнатися про автентифікацію користувачів і програм у Linux +- Здатність приймати наслідки власних дій ## Вступ -PAM (**Pluggable Authentication Modules**) — це система під GNU/Linux, яка дозволяє багатьом програмам або службам централізовано автентифікувати користувачів. Іншими словами: +PAM (**Pluggable Authentication Modules (Під’ємні модулі автентифікації)**) – це система під GNU/Linux, яка дозволяє багатьом програмам або службам централізовано автентифікувати користувачів. Іншими словами: -> PAM — це набір бібліотек, який дозволяє системному адміністратору Linux налаштовувати методи автентифікації користувачів. Він забезпечує гнучкий і централізований спосіб перемикання методів автентифікації для захищених програм за допомогою файлів конфігурації замість зміни коду програми. \- [Wikipedia](https://en.wikipedia.org/wiki/Linux_PAM) +> PAM — це набір бібліотек, який дозволяє системному адміністратору Linux налаштовувати методи автентифікації користувачів. Він забезпечує гнучкий і централізований спосіб перемикання методів автентифікації для захищених програм за допомогою файлів конфігурації замість зміни коду програми. +> \- [Wikipedia](https://en.wikipedia.org/wiki/Linux_PAM) -Цей документ *не* призначений для того, щоб навчити вас, як саме загартувати машину. Це скоріше довідковий посібник, щоб показати вам, що PAM *може* робити, а не те, що ви *маєте робити*. +Цей документ _не_ призначений для того, щоб навчити вас, як саме загартувати вашу машину. Це радше довідник, який показує, що PAM _може_ робити, а не те, що вам _слід_ робити. ## Загальні положення @@ -32,17 +33,19 @@ PAM (**Pluggable Authentication Modules**) — це система під GNU/Li ![Загальні положення PAM](images/pam-001.png) -Реалізація нового методу автентифікації не повинна вимагати змін у вихідному коді конфігурації програми чи служби. Ось чому програми покладаються на PAM, який надає їм примітиви*, необхідні для автентифікації своїх користувачів. +Реалізація нового методу автентифікації не повинна вимагати змін у вихідному коді конфігурації програми чи служби. Ось чому програми покладаються на PAM, який надає їм примітиви\*, необхідні для автентифікації своїх користувачів. -Таким чином, усі програми в системі можуть реалізувати такі складні функції, як **SSO** (єдиний вхід), **OTP** (Одноразовий пароль) або **Kerberos** у абсолютно прозорий спосіб. Системний адміністратор може вибрати, яку саме політику автентифікації використовувати для окремої програми (наприклад, для посилення служби SSH) незалежно від програми. +Таким чином, усі програми в системі можуть реалізовувати складні функції, такі як **SSO** (єдиний вхід), **OTP** (одноразовий пароль) або **Kerberos**, повністю прозорим чином. Системний адміністратор може вибрати, яку саме політику автентифікації використовувати для окремої програми (наприклад, для посилення служби SSH) незалежно від програми. -Кожна програма або служба, що підтримує PAM, матиме відповідний файл конфігурації в каталозі `/etc/pam.d/`. Наприклад, процес `login` призначає назву `/etc/pam.d/login` своєму файлу конфігурації. +Кожна програма або служба, що підтримує PAM, матиме відповідний файл конфігурації в каталозі `/etc/pam.d/`. Наприклад, процес `login` призначає своєму конфігураційному файлу ім'я `/etc/pam.d/login`. \* Примітиви — це буквально найпростіші елементи програми або мови, які дозволяють створювати на їх основі більш витончені та складні речі. !!! WARNING "Увага" + ``` Неправильно налаштований екземпляр PAM може поставити під загрозу безпеку всієї системи. Якщо PAM вразливий, то вразлива вся система. Робіть будь-які зміни обережно. + ``` ## Директиви @@ -54,7 +57,7 @@ mechanism [control] path-to-module [argument] **Директива** (повний рядок) складається з **механізму** (`auth`, `обліковий запис`, `пароль` або `сеанс`), **перевірка успіху** (`включити `, `необов'язково`, `обов'язково`, ...), **шлях до модуля** та, можливо, **аргументи** (наприклад, `revoke`). -Кожен файл конфігурації PAM містить набір директив. Директиви інтерфейсу модуля можна складати або розміщувати одна на одній. Насправді **порядок, у якому перераховані модулі, дуже важливий для процесу автентифікації.** +Кожен файл конфігурації PAM містить набір директив. Директиви інтерфейсу модуля можна складати або розміщувати одна на одній. Фактично, **порядок, у якому перелічені модулі, дуже важливий для процесу автентифікації.** Наприклад, ось файл конфігурації `/etc/pam.d/sudo`: @@ -72,66 +75,66 @@ session include system-auth Це забезпечує автентифікацію запитувача та встановлює права облікового запису: -* Зазвичай автентифікується за допомогою пароля, порівнюючи його зі значенням, що зберігається в базі даних, або покладаючись на сервер автентифікації, +- Зазвичай автентифікується за допомогою пароля, порівнюючи його зі значенням, що зберігається в базі даних, або покладаючись на сервер автентифікації, -* Встановлює параметри облікового запису: uid, gid, групи та обмеження ресурсів. +- Встановлює параметри облікового запису: uid, gid, групи та обмеження ресурсів. ### `account` – керування обліковим записом Перевіряє доступність запитуваного облікового запису: -* Пов’язано з доступністю облікового запису з причин, відмінних від автентифікації (наприклад, через часові обмеження). +- Пов’язано з доступністю облікового запису з причин, відмінних від автентифікації (наприклад, через часові обмеження). ### `session` – керування сеансом Відноситься до налаштування та завершення сеансу: -* Виконує завдання, пов’язані з налаштуванням сеансу (наприклад, журналювання), -* Виконує завдання, пов'язані із завершенням сесії. +- Виконує завдання, пов’язані з налаштуванням сеансу (наприклад, журналювання), +- Виконує завдання, пов'язані із завершенням сесії. ### `password` – керування паролями Використовується для зміни маркера автентифікації, пов’язаного з обліковим записом (закінчення терміну дії або зміна): -* Змінює маркер автентифікації та, можливо, перевіряє, чи він достатньо надійний або ще не використовувався. +- Змінює маркер автентифікації та, можливо, перевіряє, чи він достатньо надійний або ще не використовувався. ## Контрольні індикатори -Механізми PAM (`auth`, `account`, `session` і `password`) вказують на `успіх` або `помилку`. Контрольні прапорці (`required`, `requisite`, `sufficient`, `optional`) повідомляють PAM, як обробляти цей результат. +Механізми PAM (`auth`, `account`, `session` та `password`) вказують на «успіх» або «невдачу». Керуючі прапорці (`required`, `requisite`, `sufficient`, `optional`) вказують PAM, як обробити цей результат. ### `required` Успішне завершення всіх `required` модулів є необхідним. -* **Якщо модуль пройдено:** решта ланцюжка виконується. Запит дозволений, якщо інші модулі не дають збою. +- **Якщо модуль пройде успішно:** Виконується решта ланцюжка. Запит дозволений, якщо інші модулі не дають збою. -* **Якщо модуль виходить з ладу:** виконується решта ланцюжка. Зрештою запит відхилено. +- **Якщо модуль завершується невдачею:** Виконується решта ланцюжка. Зрештою запит відхилено. -Для продовження автентифікації модуль має бути успішно перевірено. Якщо перевірка модуля, позначеного як `required`, не вдається, користувач не отримує сповіщення, доки не буде перевірено всі модулі, пов’язані з цим інтерфейсом. +Для продовження автентифікації модуль має бути успішно перевірено. Якщо перевірка модуля з позначкою «обов’язковий» не вдається, користувач не отримує сповіщення, доки не будуть перевірені всі модулі, пов’язані з цим інтерфейсом. ### `requisite` Необхідно успішне проходження всіх `необхідних` модулів. -* **Якщо модуль пройдено:** решта ланцюжка виконується. Запит дозволений, якщо інші модулі не дають збою. +- **Якщо модуль пройде успішно:** Виконується решта ланцюжка. Запит дозволений, якщо інші модулі не дають збою. -* **Якщо модуль не працює:** запит негайно відхиляється. +- **Якщо модуль не працює:** запит негайно відхиляється. -Для продовження автентифікації модуль має бути успішно перевіреним. Проте, якщо перевірка модуля, позначеного `requisite`, не вдається, користувач негайно отримує повідомлення про невдачу першого `required` або `requisite` модуля. +Для продовження автентифікації модуль має бути успішно перевіреним. Однак, якщо перевірка модуля з позначкою `requisite` не вдається, користувач негайно отримує повідомлення про невдачу першого `requisite` або `requisite` модуля. ### `sufficient` Модулі з позначкою `sufficient` можуть бути використані, щоб дозволити користувачеві «достроково» за певних умов: -* **Якщо модуль завершується успішно:** Запит на автентифікацію негайно дозволяється, якщо жоден із попередніх модулів не вдався. +- **Якщо модуль завершується успішно:** Запит на автентифікацію негайно дозволяється, якщо жоден із попередніх модулів не вдався. -* **Якщо модуль не працює:** модуль ігнорується. Решта ланцюжка виконується. +- **Якщо модуль не працює:** Модуль ігнорується. Решта ланцюжка виконується. Проте, якщо перевірка модуля з позначкою `sufficient` пройшла успішно, але модулі з позначкою `required` або `requisite` не пройшли перевірки, успіх модуля `sufficient` ігнорується, і запит не виконується. ### `optional` -Модуль виконується, але результат запиту ігнорується. Якби всі модулі в ланцюжку були позначені як `опціональні`, усі запити завжди приймалися б. +Модуль виконується, але результат запиту ігнорується. Якби всі модулі в ланцюжку були позначені як «необов'язкові», усі запити завжди приймалися б. ### Висновок @@ -141,17 +144,17 @@ session include system-auth Існує багато модулів для PAM. Ось найпоширеніші з них: -* pam_unix -* pam_ldap -* pam_wheel -* pam_cracklib -* pam_console -* pam_tally -* pam_securetty -* pam_nologin -* pam_limits -* pam_time -* pam_access +- pam_unix +- pam_ldap +- pam_wheel +- pam_cracklib +- pam_console +- pam_tally +- pam_securetty +- pam_nologin +- pam_limits +- pam_time +- pam_access ### `pam_unix` @@ -165,10 +168,10 @@ password sufficient pam_unix.so sha512 nullok Для цього модуля можливі аргументи: -* `nullok`: у механізмі `auth` дозволяє порожній пароль для входу. -* `sha512` визначає алгоритм шифрування в механізмі пароля. -* `debug`: надсилає інформацію до `syslog`. -* `remember=n`: використовуйте це, щоб запам’ятати останні `n` використаних паролів (працює разом із файлом `/etc/security/opasswd`, який створюється адміністратором). +- `nullok`: у механізмі `auth` дозволяє порожній пароль для входу. +- `sha512` визначає алгоритм шифрування в механізмі пароля. +- `debug`: надсилає інформацію до `syslog`. +- `remember=n`: використовуйте це, щоб запам’ятати останні `n` використаних паролів (працює разом із файлом `/etc/security/opasswd`, який створюється адміністратором). ### `pam_cracklib` @@ -180,26 +183,26 @@ password sufficient pam_unix.so sha512 nullok password sufficient pam_cracklib.so retry=2 ``` -Цей модуль використовує бібліотеку `cracklib` для перевірки надійності нового пароля. Він також може перевірити, чи новий пароль не побудовано на основі старого. Це *лише* впливає на механізм пароля. +Цей модуль використовує бібліотеку `cracklib` для перевірки надійності нового пароля. Він також може перевірити, чи новий пароль не побудовано на основі старого. Це впливає _лише_ на механізм пароля. За замовчуванням цей модуль перевіряє наступні аспекти та відхиляє, якщо це так: -* Чи це новий пароль зі словника? -* Чи є новий пароль паліндромом старого (наприклад: azerty <> ytreza)? -* Користувач змінив лише регістр пароля (наприклад, azerty <>AzErTy)? +- Чи це новий пароль зі словника? +- Чи є новий пароль паліндромом старого (наприклад: azerty <> ytreza)? +- Користувач змінив лише регістр пароля (наприклад, azerty <>AzErTy)? Можливі аргументи для цього модуля: -* `retry=n`: накладає `n` запитів (1` за умовчанням) для нового пароля. -* `difok=n`: накладає принаймні `n` символів (`10` за умовчанням), відмінних від старого пароля. Якщо половина символів нового пароля відрізняється від старого, новий пароль вважається дійсним. -* `minlen=n`: накладає пароль мінімум з `n+1` символів. Ви не можете призначати мінімум менше 6 символів (модуль скомпільовано таким чином). +- `retry=n`: накладає `n` запитів (1\` за умовчанням) для нового пароля. +- `difok=n`: встановлює щонайменше `n` символів (`10` за замовчуванням), відмінних від старого пароля. Якщо половина символів нового пароля відрізняється від старого, новий пароль вважається дійсним. +- `minlen=n`: встановлює пароль мінімум з `n+1` символів. Ви не можете призначати мінімум менше 6 символів (модуль скомпільовано таким чином). Інші можливі аргументи: -* `dcredit=-n`: нав’язує пароль, що містить щонайменше `n` цифр, -* `ucredit=-n`: нав’язує пароль, що містить принаймні `n` великих літер, -* `credit=-n`: нав’язує пароль, що містить принаймні `n` малих літер, -* `ocredit=-n`: накладає пароль, що містить принаймні `n` спеціальних символів. +- `dcredit=-n`: нав’язує пароль, що містить щонайменше `n` цифр, +- `ucredit=-n`: нав’язує пароль, що містить принаймні `n` великих літер, +- `credit=-n`: нав’язує пароль, що містить принаймні `n` малих літер, +- `ocredit=-n`: накладає пароль, що містить принаймні `n` спеціальних символів. ### `pam_tally` @@ -218,12 +221,12 @@ account required /lib/security/pam_tally.so deny=3 reset no_magic_root Деякі аргументи модуля pam_tally включають: -* `onerr=fail`: збільшує лічильник. -* `deny=n`: після перевищення кількості `n` невдалих спроб обліковий запис блокується. -* `no_magic_root`: можна використовувати для заборони доступу до служб кореневого рівня, запущених демонами. - * напр. не використовуйте це для `su`. -* `reset`: скидає лічильник до 0, якщо автентифікацію перевірено. -* `lock_time=nsec`: обліковий запис заблоковано на `n` секунд. +- `onerr=fail`: збільшує лічильник. +- `deny=n`: після перевищення кількості `n` невдалих спроб обліковий запис блокується. +- `no_magic_root`: можна використовувати для заборони доступу до служб кореневого рівня, запущених демонами. + - наприклад, не використовуйте це для `su`. +- `reset`: скидає лічильник до 0, якщо автентифікацію перевірено. +- `lock_time=nsec`: обліковий запис заблоковано на `n` секунд. Цей модуль працює разом із файлом за замовчуванням для невдалих спроб `/var/log/faillog` (який можна замінити іншим файлом з аргументом `file=xxxx`) і пов’язаним команда `faillog`. @@ -235,9 +238,9 @@ faillog[-m n] |-u login][-r] Опції: -* `m`: щоб визначити максимальну кількість невдалих спроб у вікні команд, -* `u`: щоб вказати користувача, -* `r`: щоб розблокувати користувача. +- `m`: щоб визначити максимальну кількість невдалих спроб у вікні команд, +- `u`: щоб вказати користувача, +- `r`: щоб розблокувати користувача. ### `pam_time` @@ -264,27 +267,27 @@ services; ttys; users; times У наведених нижче визначеннях логічний список використовує: -* `&`: логічне значення "і". -* `|`: логічне "або". -* `!`: означає заперечення або "всі, крім". -* `*`: символ підстановки. +- `&`: логічне значення "і". +- `|`: логічне "або". +- `!`: означає заперечення або "всі, крім". +- `*`: символ підстановки. Стовпці відповідають: -* `services`: логічний список служб, керованих PAM, якими також керуватиме це правило -* `ttys`: логічний список пов’язаних пристроїв -* `users`: логічний список користувачів, керованих правилом -* `times`: логічний список авторизованих часових інтервалів +- `services`: логічний список служб, керованих PAM, якими також керуватиме це правило +- `ttys`: логічний список пов’язаних пристроїв +- `users`: логічний список користувачів, керованих правилом +- `times`: логічний список авторизованих часових інтервалів Як керувати часовими інтервалами: -* Дні: `Mo`, `Tu`, `We`, `Th`, `Fr,` `Sa`, `Su`, `Wk`, (з понеділка по п’ятницю), `Wd` (субота та неділя) та `Al` (з понеділка по неділю) -* Погодинний діапазон: `HHMM-HHMM` -* Повторення скасовує ефект: `WkMo` = усі дні тижня (пн-пт), мінус понеділок (повтор). +- Дні: `Mo`, `Tu`, `We`, `Th`, `Fr,` `Sa`, `Su`, `Wk`, (з понеділка по п’ятницю), `Wd` (субота та неділя) та `Al` (з понеділка по неділю) +- Погодинний діапазон: `HHMM-HHMM` +- Повторення скасовує ефект: `WkMo` = усі дні тижня (пн-пт), мінус понеділок (повтор). Приклади: -* Боб, можна входити через термінал щодня з 07:00 до 09:00, крім середи: +- Боб, можна входити через термінал щодня з 07:00 до 09:00, крім середи: ``` login; tty*; bob; alth0700-0900 @@ -322,7 +325,9 @@ auth required pam_wheel.so !!! NOTE "Примітка" + ``` Якщо група `my_group` порожня, то команда `su` більше не доступна в системі, що змушує використовувати команду sudo. + ``` ### `pam_mount` @@ -345,6 +350,6 @@ session optional pam_mount.so ## Підсумок -Наразі ви повинні мати набагато краще уявлення про те, що може робити PAM, і як вносити зміни, коли це необхідно. Однак ми повинні повторити важливість бути дуже, *дуже* обережними з будь-якими змінами, які ви вносите в модулі PAM. Ви можете заблокувати себе у своїй системі або впустити всіх інших. +Наразі ви повинні мати набагато краще уявлення про те, що може робити PAM, і як вносити зміни, коли це необхідно. Однак, ми повинні ще раз наголосити на важливості бути дуже, _дуже_ обережним з будь-якими змінами, які ви вносите до PAM-модулів. Ви можете заблокувати себе у своїй системі або впустити всіх інших. Ми наполегливо рекомендуємо тестувати всі зміни в середовищі, яке можна легко повернути до попередньої конфігурації. Тим не менш, отримуйте задоволення! diff --git a/docs/guides/security/ssh_public_private_keys.uk.md b/docs/guides/security/ssh_public_private_keys.uk.md index 5707ab76ca..7245f0f1ed 100644 --- a/docs/guides/security/ssh_public_private_keys.uk.md +++ b/docs/guides/security/ssh_public_private_keys.uk.md @@ -13,9 +13,9 @@ tags: ## Передумови -* Певний комфорт роботи з командного рядка -* Сервер або робочі станції Linux із встановленим *openssh* -* Додатково: знайомство з дозволами на файли та каталоги Linux +- Певний комфорт роботи з командного рядка +- Сервер або робочі станції Linux із встановленим _openssh_ +- Додатково: знайомство з дозволами на файли та каталоги Linux ## Вступ @@ -46,18 +46,18 @@ Enter file in which to save the key (/root/.ssh/id_rsa): Натисніть ENTER тут. Нарешті він попросить вас повторно ввести парольну фразу: -`Введіть ту саму парольну фразу ще раз:` +`Enter same passphrase again:` Натисніть ENTER востаннє. -Тепер у вашому каталозі *.ssh* має бути пара відкритих і закритих ключів типу RSA: +Тепер у вашому каталозі _.ssh_ має бути пара відкритих і закритих ключів типу RSA: ``` ls -a .ssh/ . .. id_rsa id_rsa.pub ``` -Вам потрібно надіслати відкритий ключ (*id_rsa.pub*) на кожну машину, до якої ви збираєтеся отримати доступ. Перш ніж це зробити, вам потрібно переконатися, що ви можете підключитися до серверів, на які ви надсилаєте ключ, через SSH. У цьому прикладі використовуються три сервери. +Вам потрібно надіслати відкритий ключ (_id_rsa.pub_) на кожну машину, до якої ви збираєтеся отримати доступ. Перш ніж це зробити, вам потрібно переконатися, що ви можете підключитися до серверів, на які ви надсилаєте ключ, через SSH. У цьому прикладі використовуються три сервери. Ви можете отримати до них доступ за допомогою SSH за допомогою імені DNS або IP-адреси, але в цьому прикладі використовується ім’я DNS. Наші приклади серверів: web, mail, та portal. Для кожного сервера ви вводите SSH (ботаніки люблять використовувати SSH як дієслово) і залишаєте відкритим вікно терміналу: @@ -67,7 +67,7 @@ ls -a .ssh/ `ssh-copy-id -i ~/.ssh/id_rsa.pub` user@web.ourdomain.com -Повторіть цей крок з кожною з ваших трьох машин. Це заповнить файл *authorized_keys* на кожному сервері вашим відкритим ключем. +Повторіть цей крок з кожною з ваших трьох машин. Це заповнить файл _authorized_keys_ на кожному сервері вашим відкритим ключем. Спробуйте ще раз підключитися до сервера через SSH із робочої станції Rocky Linux. Ви не повинні отримати запит на введення пароля. diff --git a/docs/guides/security/ssl_keys_https.uk.md b/docs/guides/security/ssl_keys_https.uk.md index e3d53a0962..78fd7dc837 100644 --- a/docs/guides/security/ssl_keys_https.uk.md +++ b/docs/guides/security/ssl_keys_https.uk.md @@ -8,17 +8,17 @@ tags: - ssl - openssl --- - + ## Передумови -* Робоча станція та сервер під керуванням Rocky Linux -* _OpenSSL_, інстальований на машині, на якій ви збираєтеся генерувати закритий ключ і CSR, а також на сервері, де ви в кінцевому підсумку встановлюватимете свій ключ і сертифікати -* Здатність зручно виконувати команди з командного рядка -* Корисно: знання команд SSL і OpenSSL +- Робоча станція та сервер під керуванням Rocky Linux +- _OpenSSL_ встановлено на комп'ютері, на якому ви збираєтеся генерувати закритий ключ та CSR (запит на підпис сертифіката), а також на сервері, де ви зрештою встановлюватимете свій ключ та сертифікати +- Здатність зручно виконувати команди з командного рядка +- Корисно: знання команд SSL і OpenSSL ## Вступ -Майже кожен веб-сайт сьогодні _має_ працювати з сертифікатом SSL/TLS (рівень захищених сокетів). Ця процедура допоможе вам створити закритий ключ для вашого веб-сайту, а потім створити CSR (запит на підписання сертифіката), який ви використовуватимете для придбання сертифіката. +Майже кожен веб-сайт сьогодні _повинен_ працювати з сертифікатом SSL/TLS (протокол захисту даних). Ця процедура допоможе вам створити закритий ключ для вашого веб-сайту, а потім створити CSR (запит на підписання сертифіката), який ви використовуватимете для придбання сертифіката. ## Генерація закритого ключа @@ -46,7 +46,7 @@ dnf install openssl openssl genrsa -des3 -out example.com.key.pass 2048 ``` -Зверніть увагу, що ви назвали ключ із розширенням *.pass*. Це тому, що коли ви виконуєте цю команду, вона вимагає ввести парольну фразу. Введіть спрощену парольну фразу, яку ви можете запам’ятати, оскільки незабаром збираєтеся видалити це: +Зверніть увагу, що ви назвали ключ із розширенням _.pass_. Це тому, що коли ви виконуєте цю команду, вона вимагає ввести парольну фразу. Введіть спрощену парольну фразу, яку ви можете запам’ятати, оскільки незабаром збираєтеся видалити це: ```bash Enter pass phrase for example.com.key.pass: @@ -73,7 +73,7 @@ openssl rsa -in example.com.key.pass -out example.com.keys Під час генерації CSR виникає запит щодо кількох фрагментів інформації. Це атрибути X.509 сертифіката. -Одним із запитів буде «Загальне ім’я (наприклад, ВАШЕ доменне ім’я)». Це поле має містити повне доменне ім’я сервера, який захищає SSL/TLS. Якщо веб-сайт, який ви захищаєте, , тоді введіть у цьому запиті: +Одним із запитів буде «Загальне ім’я (наприклад, ВАШЕ доменне ім’я)». Це поле має містити повне доменне ім’я сервера, який захищає SSL/TLS. Якщо вебсайт, який ви захищаєте, має значення , тоді введіть у цьому запиті: ```bash openssl req -new -key example.com.key -out example.com.csr @@ -89,7 +89,7 @@ openssl req -new -key example.com.key -out example.com.csr `Organization Name (eg, company) [Default Company Ltd]:` Якщо хочете, ви можете ввести організацію, частиною якої є цей домен, або просто натиснути ++enter++, щоб пропустити. -`Organizational Unit Name (eg, section) []:` Це буде опис підрозділу організації, до якої належить ваш домен. Знову ж таки, ви можете просто натиснути ++enter++, щоб пропустити. +`Назва організаційного підрозділу (наприклад, розділ) []:` Це описує підрозділ організації, до якого належить ваш домен. Знову ж таки, ви можете просто натиснути ++enter++, щоб пропустити. `Common Name наприклад, ваше ім'я або ім'я хосту вашого сервера []:` Тут вам потрібно ввести ім’я хосту свого сайту, наприклад «www.example.com» @@ -108,7 +108,7 @@ An optional company name []: ## Придбання Сертифікату -Кожен постачальник сертифікатів матиме в основному однакову процедуру. Ви купуєте SSL/TLS і термін (1 або 2 роки тощо), а потім надсилаєте свій CSR. Для цього вам потрібно буде використати команду `more`, а потім скопіювати вміст вашого файлу CSR. +Кожен постачальник сертифікатів матиме в основному однакову процедуру. Ви купуєте SSL/TLS та термін дії (1 або 2 роки тощо) а потім ви надсилаєте свій CSR. Для цього вам потрібно буде скористатися командою `more`, а потім скопіювати вміст вашого CSR-файлу. `more example.com.csr` diff --git a/docs/guides/security/tailscale_vpn.uk.md b/docs/guides/security/tailscale_vpn.uk.md index 814c1f3b24..8ae787f0ba 100644 --- a/docs/guides/security/tailscale_vpn.uk.md +++ b/docs/guides/security/tailscale_vpn.uk.md @@ -20,7 +20,7 @@ tags: Нижче наведено мінімальні вимоги для використання цієї процедури: -- Можливість запускати команди від імені користувача root або використовувати `sudo` для підвищення привілеїв. +- Можливість запускати команди від імені користувача root або використовувати `sudo` для підвищення привілеїв - Обліковий запис Tailscale ## Встановлення Tailscale diff --git a/docs/guides/update_versions.uk.md b/docs/guides/update_versions.uk.md index d20c6f91f4..a6ff82c3f0 100644 --- a/docs/guides/update_versions.uk.md +++ b/docs/guides/update_versions.uk.md @@ -12,9 +12,7 @@ contributors: Ganna Zhyrnova !!! note "Застереження" -``` -Навіть враховуючи цю процедуру, багато речей можуть піти не так під час переходу від старішої версії однієї операційної системи (ОС) до новішої версії тієї самої чи іншої ОС. Програми застарівають і замінюються супроводжуючими на зовсім інші імена пакетів, або назви не збігаються від однієї ОС до іншої. Також ознайомтеся з репозиторіями програмного забезпечення вашого комп’ютера та переконайтеся, що вони досі функціональні для нової ОС. Якщо ви переходите зі старішої версії на новішу, переконайтеся, що ваш процесор та інші вимоги до комп’ютера відповідають новим. З цих та багатьох інших причин ви повинні бути обережними та звертати увагу на будь-які помилки чи проблеми під час виконання цієї процедури. Тут автор використав Rocky Linux 8 як стару версію та Rocky Linux 9 як нову основну версію. Формулювання всіх прикладів використовує ці дві версії. Ви завжди можете продовжити на свій страх і ризик. -``` + Навіть враховуючи цю процедуру, багато речей можуть піти не так під час переходу від старішої версії однієї операційної системи (ОС) до новішої версії тієї самої чи іншої ОС. Програми застарівають і замінюються супроводжуючими на зовсім інші імена пакетів, або назви не збігаються від однієї ОС до іншої. Також ознайомтеся з репозиторіями програмного забезпечення вашого комп’ютера та переконайтеся, що вони досі функціональні для нової ОС. Якщо ви переходите зі старішої версії на новішу, переконайтеся, що ваш процесор та інші вимоги до комп’ютера відповідають новим. З цих та багатьох інших причин ви повинні бути обережними та звертати увагу на будь-які помилки чи проблеми під час виконання цієї процедури. Тут автор використав Rocky Linux 8 як стару версію та Rocky Linux 9 як нову основну версію. Формулювання всіх прикладів використовує ці дві версії. Ви завжди можете продовжити на свій страх і ризик. ## Необхідні кроки @@ -33,15 +31,11 @@ contributors: Ganna Zhyrnova !!! info "Оновлення тієї ж версії" -``` -Як обговорювалося раніше, ця процедура має однаково добре працювати для копіювання інсталяції машини з тим самим випуском операційної системи, наприклад 8.10 до 8.10 або 9.5 до 9.5. Різниця полягає в тому, що вам не потрібен `--skip-broken` під час встановлення пакунків із файлу `installed.txt`. Ймовірно, ви пропустите репозиторій, якщо під час інсталяції версії ви отримаєте помилки пакета. Зупиніть процедуру та перегляньте файл `repolist.txt`. У прикладах тут використовується 8.10 як стара інсталяція та 9.5 як нова. -``` + Як обговорювалося раніше, ця процедура має однаково добре працювати для копіювання інсталяції машини з тим самим випуском операційної системи, наприклад 8.10 до 8.10 або 9.5 до 9.5. Різниця полягає в тому, що вам не потрібен `--skip-broken` під час встановлення пакунків із файлу `installed.txt`. Ймовірно, ви пропустите репозиторій, якщо під час інсталяції версії ви отримаєте помилки пакета. Зупиніть процедуру та перегляньте файл `repolist.txt`. У прикладах тут використовується 8.10 як стара інсталяція та 9.5 як нова. !!! warning "Версія 10 невідома" -``` -Через значні зміни між версією 9.5 і майбутньою версією 10 ця процедура **може не працювати** для переходу між версією 9.5 і 10. Це буде досліджено, коли буде випуск 10 для тестування. -``` + Через значні зміни між версією 9.5 і майбутньою версією 10 ця процедура **може не працювати** для переходу між версією 9.5 і 10. Це буде досліджено, коли буде випуск 10 для тестування. ### Приклад старої машини @@ -49,13 +43,9 @@ contributors: Ganna Zhyrnova !!! info "Готовий конструктор коду" -```` -Репозиторій Code Ready Builder (CRB) у Rocky Linux 9 замінює функціональність у застарілому репозиторії PowerTools, який існував у версії 8. Якщо ви переходите з версії 8 на 9, де у вас є EPEL, вам потрібно буде ввімкнути CRB на вашій новій машині за допомогою наступного: - -```bash -sudo dnf config-manager --enable crb -``` -```` + Репозиторій Code Ready Builder (CRB) у Rocky Linux 9 замінює функціональність у застарілому репозиторії PowerTools, який існував у версії 8. Якщо ви переходите з версії 8 на 9, де у вас є EPEL, вам потрібно буде ввімкнути CRB на вашій новій машині за допомогою наступного: + + `bash sudo dnf config-manager --enable crb ` #### Отримати список користувачів @@ -159,15 +149,11 @@ platform-python-setuptools.noarch xorg-x11-font-utils.x86_64 ``` -!!! note "Примітка" +!!! note -```` -Якщо вам потрібна функція цих відсутніх пакетів під час нової інсталяції, збережіть їх у файлі для використання пізніше. Ви можете переглянути стан доступності відсутніх пакетів, використовуючи наступне: - -```bash -sudo dnf whatprovides [package_name] -``` -```` + Якщо вам потрібна функція цих відсутніх пакетів під час нової інсталяції, збережіть їх у файлі для використання пізніше. Ви можете переглянути стан доступності відсутніх пакетів, використовуючи наступне: + + `bash sudo dnf whatprovides [package_name] ` Виконайте команду ще раз, але цього разу з додаванням `--skip-broken`: diff --git a/docs/guides/virtualization/vbox-rocky.uk.md b/docs/guides/virtualization/vbox-rocky.uk.md index c654ebad15..bc3b68873f 100644 --- a/docs/guides/virtualization/vbox-rocky.uk.md +++ b/docs/guides/virtualization/vbox-rocky.uk.md @@ -18,33 +18,35 @@ VirtualBox® це потужний продукт віртуалізації ## Передумови -* Машина (Windows, Mac, Linux, Solaris) із пам’яттю та місцем на жорсткому диску для створення та запуску VirtualBox® екземпляр. -* VirtualBox® встановлений на вашій машині. Ви можете знайти його [тут](https://www.virtualbox.org/wiki/Downloads). -* Копія Rocky Linux [DVD ISO](https://rockylinux.org/download) для вашої архітектури. (x86_64 або ARM64). -* Переконайтеся, що ваша ОС є 64-розрядною, а у вашому BIOS увімкнено апаратну віртуалізацію. +- Машина (Windows, Mac, Linux, Solaris) із пам’яттю та місцем на жорсткому диску для створення та запуску VirtualBox® екземпляр. +- VirtualBox® встановлений на вашій машині. Ви можете знайти це [тут](https://www.virtualbox.org/wiki/Downloads). +- Копія Rocky Linux [DVD ISO](https://rockylinux.org/download) для вашої архітектури. (x86_64 або ARM64). +- Переконайтеся, що ваша ОС є 64-розрядною, а у вашому BIOS увімкнено апаратну віртуалізацію. !!! Note "Примітка" + ``` Апаратна віртуалізація на 100% необхідна для встановлення 64-розрядної ОС. Якщо ваш екран конфігурації показує лише 32-розрядні параметри, ви повинні зупинитися та виправити це, перш ніж продовжити. + ``` ## Підготовка конфігурації VirtualBox® Після встановлення VirtualBox® наступний крок - його запуск. Якщо зображення не встановлено, ви отримаєте екран, який виглядає приблизно так: - ![Нова інсталяція VirtualBox](../images/vbox-01.png) +![Нова інсталяція VirtualBox](../images/vbox-01.png) - По-перше, вам потрібно повідомити VirtualBox® якою буде ваша ОС: +По-перше, вам потрібно повідомити VirtualBox® якою буде ваша ОС: -* Натисніть «Новий» (піктограма зуба пилки). -* Введіть назву. Приклад: "Rocky Linux 8.5". -* Залиште папку машини автоматично заповненою. -* Змініть тип на "Linux". -* І виберіть «Red Hat (64-bit)». -* Натисніть «Далі». +- Натисніть «Новий» (піктограма зуба пилки). +- Введіть назву. Приклад: "Rocky Linux 8.5". +- Залиште папку машини автоматично заповненою. +- Змініть тип на "Linux". +- І виберіть «Red Hat (64-bit)». +- Натисніть «Далі». - ![Назва та операційна система](../images/vbox-02.png) +![Назва та операційна система](../images/vbox-02.png) -Далі нам потрібно виділити трохи оперативної пам’яті для цієї машини. За замовчуванням VirtualBox® автоматично заповнить його до 1024 Мб. Це не буде оптимальним для будь-якої сучасної ОС, включаючи Rocky Linux. Якщо у вас є вільна пам’ять, виділіть від 2 до 4 ГБ (2048 МБ або 4096 МБ) — або більше. VirtualBox® використовуватиме цю пам’ять лише під час роботи віртуальної машини. +Далі нам потрібно виділити трохи оперативної пам’яті для цієї машини. За замовчуванням VirtualBox® автоматично заповнить його до 1024 Мб. Це не буде оптимальним для будь-якої сучасної ОС, включаючи Rocky Linux. Якщо у вас є вільна пам’ять, виділіть від 2 до 4 ГБ (2048 МБ або 4096 МБ) — або більше. VirtualBox® використовуватиме цю пам'ять лише під час роботи віртуальної машини. Немає знімка екрана для цього, змініть значення на основі доступної пам’яті. Використовуйте найкраще судження. @@ -52,13 +54,13 @@ VirtualBox® це потужний продукт віртуалізації ![Жорсткий диск](../images/vbox-03.png) -* Натисніть ++"Create"++ («Створити») +- Натисніть ++"Create"++ («Створити») -Ви отримаєте діалогове вікно для створення різних типів віртуальних жорстких дисків. Тут є декілька типів жорстких дисків. Перегляньте документацію Oracle VirtualBox, щоб отримати [додаткову інформацію](https://docs.oracle.com/en/virtualization/virtualbox/6.0/user/vdidetails.html) про вибір типів віртуальних жорстких дисків. Для цього документа збережіть значення за замовчуванням (VDI): +Ви отримаєте діалогове вікно для створення різних типів віртуальних жорстких дисків. Тут є декілька типів жорстких дисків. Див. документацію Oracle VirtualBox для отримання [додаткової інформації](https://docs.oracle.com/en/virtualization/virtualbox/6.0/user/vdidetails.html) про вибір типів віртуальних жорстких дисків. Для цього документа збережіть значення за замовчуванням (VDI): ![Тип файлу жорсткого диска](../images/vbox-04.png) -* Натисніть ++"Next"++ («Далі») +- Натисніть ++"Next"++ («Далі») Наступний екран стосується сховища на фізичному жорсткому диску. Є два варіанти. «Фіксований розмір» створюватиметься повільніше, використовуватиметься швидше, але менш гнучким щодо простору (якщо вам потрібно більше місця, ви застрягли на тому, що створили). @@ -66,13 +68,13 @@ VirtualBox® це потужний продукт віртуалізації ![Зберігання на фізичному жорсткому диску](../images/vbox-05.png) -* Натисніть ++"Next"++ («Далі») +- Натисніть ++"Next"++ («Далі») VirtualBox® тепер дозволяє вказати, де ви хочете розмістити файл віртуального жорсткого диска. Тут також є можливість збільшити стандартний простір на віртуальному жорсткому диску розміром 8 ГБ. Цей варіант хороший, оскільки 8 ГБ місця на жорсткому диску недостатньо для встановлення будь-яких параметрів інсталяції графічного інтерфейсу користувача, а тим більше для використання. Встановіть значення 20 ГБ (або більше) залежно від того, для чого ви хочете використовувати віртуальну машину, і від того, скільки дискового простору у вас є: ![Розташування та розмір файлу](../images/vbox-06.png) -* Натисніть ++"Create"++ («Створити») +- Натисніть ++"Create"++ («Створити») Ви закінчили базову конфігурацію. Ви повинні мати екран, який виглядає приблизно так: @@ -84,24 +86,24 @@ VirtualBox® тепер дозволяє вказати, де ви хочет ![Налаштування](../images/vbox-08.png) -* Натисніть пункт «Сховище» в меню зліва. -* У розділі «Пристрої зберігання даних» у середньому розділі клацніть значок компакт-диска з написом «Порожній». -* У розділі «Атрибути» праворуч натисніть значок компакт-диска. -* Виберіть «Вибрати/Створити віртуальний оптичний диск». -* Натисніть кнопку «Додати» (значок «плюс») і перейдіть до місця, де зберігається ISO-образ Rocky Linux. -* Виберіть ISO та натисніть «Відкрити». +- Натисніть пункт «Сховище» в меню зліва. +- У розділі «Пристрої зберігання даних» у середньому розділі клацніть значок компакт-диска з написом «Порожній». +- У розділі «Атрибути» праворуч натисніть значок компакт-диска. +- Виберіть «Вибрати/Створити віртуальний оптичний диск». +- Натисніть кнопку «Додати» (значок «плюс») і перейдіть до місця, де зберігається ISO-образ Rocky Linux. +- Виберіть ISO та натисніть «Відкрити». Тепер у вас має бути доданий ISO до доступних пристроїв таким чином: ![Додано зображення ISO](../images/vbox-09.png) -* Виділіть ISO-образ і натисніть «Вибрати». +- Виділіть ISO-образ і натисніть «Вибрати». ISO-образ Rocky Linux тепер вибрано в розділі «Контролер:IDE» у середньому розділі: ![Образ ISO вибрано](../images/vbox-10.png) -* Натисніть ++"OK"++ +- Натисніть ++"OK"++ ### Відеопам'ять для графічних установок @@ -109,25 +111,27 @@ VirtualBox® встановлює 16 МБ пам’яті для викори Якщо Rocky Linux працює з графічним інтерфейсом користувача, призначте достатньо пам’яті для запуску графіки. Якщо вашій машині недостатньо пам’яті, змініть це значення на 16 МБ, доки все не запрацює гладко. Роздільна здатність відео вашого хост-комп’ютера також є фактором, який потрібно враховувати. -Уважно подумайте про те, що ви хочете, щоб робила ваша віртуальна машина Rocky Linux, і спробуйте виділити відеопам’ять, сумісну з вашою хост-машиною та іншими вашими вимогами. Ви можете знайти більше інформації про налаштування відображення в [офіційній документації Oracle](https://docs.oracle.com/en/virtualization/virtualbox/6.0/user/settings-display.html). +Уважно подумайте про те, що ви хочете, щоб робила ваша віртуальна машина Rocky Linux, і спробуйте виділити відеопам’ять, сумісну з вашою хост-машиною та іншими вашими вимогами. Більше інформації про налаштування дисплея можна знайти в [офіційній документації Oracle] (https://docs.oracle.com/en/virtualization/virtualbox/6.0/user/settings-display.html). Якщо у вас достатньо пам’яті, ви можете встановити для цього значення максимум 128 МБ. Щоб виправити це перед запуском віртуальної машини, клацніть «Налаштування» (значок шестірні), і ви повинні отримати той самий екран налаштувань, який ми отримали під час прикріплення нашого ISO-образу (вище). Цього разу: -* Натисніть «Дисплей» зліва. -* На вкладці «Екран» з правого боку ви помітите опцію «Відеопам’ять» із значенням за замовчуванням 16 МБ. -* Змініть це значення на потрібне. Ви можете змінити це значення вгору, повернувшись на цей екран будь-коли. У цьому прикладі це 128 МБ. +- Натисніть «Дисплей» зліва. +- На вкладці «Екран» з правого боку ви помітите опцію «Відеопам’ять» із значенням за замовчуванням 16 МБ. +- Змініть це значення на потрібне. Ви можете змінити це значення вгору, повернувшись на цей екран будь-коли. У цьому прикладі це 128 МБ. -!!! tip "Порада" +!!! Tip "Порада" + ``` Є способи встановити відеопам'ять до 256 Мб. Якщо вам потрібно більше, перегляньте [цей документ](https://docs.oracle.com/en/virtualization/virtualbox/6.0/user/vboxmanage-modifyvm.html) з офіційної документації Oracle. + ``` Ваш екран має виглядати приблизно так: ![Налаштування Відео](../images/vbox-12.png) -* Натисніть ++"OK"++ +- Натисніть ++"OK"++ ## Початок встановлення @@ -135,11 +139,11 @@ VirtualBox® встановлює 16 МБ пам’яті для викори Тепер, коли ви підготували все для встановлення, вам потрібно натиснути «Пуск» (зелена піктограма стрілки вправо), щоб розпочати встановлення Rocky. Після того, як ви клацнете мимо екрана вибору мови, вашим наступним екраном буде «Підсумок встановлення». Вам потрібно встановити будь-який із цих елементів, які стосуються вас, але обов’язковими є такі: -* Час & Дата -* Вибір програмного забезпечення (якщо вам потрібно щось окрім стандартного «Сервера з графічним інтерфейсом») -* Місце призначення -* Мережа & Ім'я хоста -* Налаштування користувача +- Час & Дата +- Вибір програмного забезпечення (якщо вам потрібно щось окрім стандартного «Сервера з графічним інтерфейсом») +- Місце призначення +- Мережа & Ім'я хоста +- Налаштування користувача Якщо ви не впевнені щодо будь-якого з цих параметрів, перегляньте документ для [Встановлення Rocky](../installation.md). @@ -151,7 +155,7 @@ VirtualBox® встановлює 16 МБ пам’яті для викори ## Інша інформація -Цей документ не має на меті зробити вас експертом щодо всіх функцій, які VirtualBox® може забезпечити. Щоб дізнатися, як виконувати конкретні дії, перегляньте [офіційну документацію](https://docs.oracle.com/en/virtualization/virtualbox/6.0/user/). +Цей документ не має на меті зробити вас експертом щодо всіх функцій, які VirtualBox® може забезпечити. Щоб дізнатися, як виконувати конкретні дії, будь ласка, перегляньте [офіційну документацію](https://docs.oracle.com/en/virtualization/virtualbox/6.0/user/). !!! tip "Підказка" diff --git a/docs/guides/web/apache-sites-enabled.uk.md b/docs/guides/web/apache-sites-enabled.uk.md index 197c99f7a6..48e9d1caae 100644 --- a/docs/guides/web/apache-sites-enabled.uk.md +++ b/docs/guides/web/apache-sites-enabled.uk.md @@ -13,14 +13,15 @@ tags: ## Що тобі потрібно -* Сервер під керуванням Rocky Linux -* Знання командного рядка та текстових редакторів. У цьому прикладі використовується *vi*, але сміливо використовуйте свій улюблений редактор. +- Сервер під керуванням Rocky Linux - !!! tip "Підказка" - - Якщо ви хочете дізнатися про текстовий редактор vi, [ось зручний підручник](https://www.tutorialspoint.com/unix/unix-vi-editor.htm). +- Знання командного рядка та текстових редакторів. У цьому прикладі використовується _vi_, але ви можете скористатися своїм улюбленим редактором. -* Базові знання встановлення та запуску веб-служб + !!! tip + + Якщо ви хочете дізнатися про текстовий редактор vi, [ось зручний підручник](https://www.tutorialspoint.com/unix/unix-vi-editor.htm). + +- Базові знання встановлення та запуску веб-служб ## Вступ @@ -32,9 +33,9 @@ tags: ## Встановіть Apache -Ймовірно, вам знадобляться інші пакети для вашого веб-сайту, такі як PHP, бази даних або інші пакети. Встановивши PHP разом із `http`, ви отримаєте останню версію зі сховищ Rocky Linux. +Ймовірно, вам знадобляться інші пакети для вашого веб-сайту, такі як PHP, бази даних або інші пакети. Встановлення PHP разом із `http` отримає найновішу версію з репозиторіїв Rocky Linux. -Просто пам’ятайте, що вам можуть знадобитися такі модулі, як `php-bcmath` або `php-mysqlind`. Специфікації вашої веб-програми визначатимуть, що вам потрібно. Ви можете встановити їх за потреби. Наразі ви встановите `http` і PHP, оскільки вони майже вирішені: +Просто пам’ятайте, що вам можуть знадобитися модулі, такі як `php-bcmath` або `php-mysqlind`. Специфікації вашої веб-програми визначатимуть, що вам потрібно. Ви можете встановити їх за потреби. Наразі ви встановите `http` та PHP, оскільки це майже вирішальний момент: З командного рядка запустіть: @@ -44,7 +45,7 @@ dnf install httpd php ## Додайте додаткові каталоги -Цей метод використовує пару додаткових каталогів, які наразі не існують у системі. Вам потрібно додати два каталоги в */etc/httpd/* під назвою "sites-available" і "sites-enabled". +Цей метод використовує пару додаткових каталогів, які наразі не існують у системі. Вам потрібно додати два каталоги в _/etc/httpd/_ з назвами "sites-available" та "sites-enabled". З командного рядка введіть: @@ -54,11 +55,11 @@ mkdir -p /etc/httpd/sites-available /etc/httpd/sites-enabled Це створить обидва необхідні каталоги. -Вам також потрібен каталог, де будуть розміщені наші сайти. Це може бути де завгодно, але гарним способом упорядкувати все є створити каталог «піддоменів». Помістіть це в /var/www: `mkdir /var/www/sub-domains/`, щоб зменшити складність. +Вам також потрібен каталог, де будуть розміщені наші сайти. Це може бути де завгодно, але гарним способом упорядкувати все є створити каталог «піддоменів». Вставте це в /var/www: `mkdir /var/www/sub-domains/`, щоб зменшити складність. ## Конфігурація -Вам також потрібно додати рядок у нижню частину файлу `httpd.conf`. Для цього введіть: +Також потрібно додати рядок у нижню частину файлу `httpd.conf`. Для цього введіть: ```bash vi /etc/httpd/conf/httpd.conf @@ -70,17 +71,17 @@ vi /etc/httpd/conf/httpd.conf Include /etc/httpd/sites-enabled ``` -Наші фактичні конфігураційні файли будуть у */etc/httpd/sites-available*, і ви створите символічне посилання на них у */etc/httpd /sites-enabled*. +Наші фактичні конфігураційні файли будуть у _/etc/httpd/sites-available_, і ви створите символічне посилання на них у _/etc/httpd /sites-enabled_. **Навіщо ти це робиш?** -Скажімо, у вас є 10 веб-сайтів, які працюють на одному сервері з різними IP-адресами. Скажімо, на сайті B є кілька основних оновлень, і вам потрібно внести зміни в конфігурацію цього сайту. Скажімо також, що щось пішло не так із внесеними змінами, і коли ви перезапускаєте `httpd`, щоб прочитати зміни, `httpd` не запускається. Не запуститься не тільки сайт, над яким ви працювали, але й інші. За допомогою цього методу ви можете видалити символічне посилання на сайт, який спричинив проблему, і перезапустити `httpd`. Він знову почне працювати, і ви зможете виправити несправну конфігурацію сайту. +Скажімо, у вас є 10 веб-сайтів, які працюють на одному сервері з різними IP-адресами. Скажімо, на сайті B є кілька основних оновлень, і вам потрібно внести зміни в конфігурацію цього сайту. Також скажіть, що щось пішло не так зі внесеними змінами, і коли ви перезапускаєте `httpd` для зчитування змін, `httpd` не запускається. Не запуститься не тільки сайт, над яким ви працювали, але й інші. За допомогою цього методу ви можете видалити символічне посилання на сайт, який спричинив проблему, та перезапустити `httpd`. Він знову почне працювати, і ви зможете виправити несправну конфігурацію сайту. Це знімає напругу, знаючи, що телефон не дзвонить із засмученим клієнтом або босом, оскільки послуга офлайн. ### Конфігурація сайту -Ще одна перевага цього методу полягає в тому, що він дозволяє нам вказувати все, що знаходиться поза типовим файлом `httpd fully.conf`. Файл `httpd.conf` за замовчуванням завантажує стандартні параметри, а конфігурації вашого сайту виконують усе інше. Чудово, правда? Крім того, знову ж таки, це робить усунення несправностей несправної конфігурації сайту менш складним. +Іншою перевагою цього методу є те, що він дозволяє нам повністю вказати все поза файлом `httpd.conf` за замовчуванням. Файл `httpd.conf` за замовчуванням завантажує значення за замовчуванням, а конфігурації вашого сайту виконують все інше. Чудово, правда? Крім того, знову ж таки, це робить усунення несправностей несправної конфігурації сайту менш складним. Скажімо, у вас є веб-сайт, який завантажує вікі. Вам знадобиться файл конфігурації, який робить сайт доступним на порту 80. @@ -88,7 +89,7 @@ Include /etc/httpd/sites-enabled Ви можете перевірити це нижче в розділі «Конфігурація `https` за допомогою сертифіката SSL/TLS». -Спочатку вам потрібно створити цей файл конфігурації в *sites-available*: +Спочатку вам потрібно створити цей файл конфігурації в _sites-available_: ```bash vi /etc/httpd/sites-available/com.wiki.www @@ -123,7 +124,7 @@ vi /etc/httpd/sites-available/com.wiki.www Після створення вам потрібно записати (зберегти) його за допомогою ++shift+colon+w+q++. -У цьому прикладі завантаження вікі-сайту відбувається з підкаталогу «html» *your-server-hostname*, що означає, що шлях, який ви створили в */var/www* (вище) знадобиться кілька додаткових каталогів, щоб задовольнити це: +У цьому прикладі завантаження вікі-сайту відбувається з підкаталогу «html» _your-server-hostname_, що означає, що шлях, який ви створили в _/var/www_ (вище) знадобиться кілька додаткових каталогів, щоб задовольнити це: ```bash mkdir -p /var/www/sub-domains/your-server-hostname/html @@ -139,7 +140,7 @@ cp -Rf wiki_source/* /var/www/sub-domains/your-server-hostname/html/ ## Конфігурація `https` за допомогою сертифіката SSL/TLS -Як зазначалося раніше, кожен створений сьогодні веб-сервер *має* працювати з SSL/TLS (рівень захищених сокетів). +Як зазначалося раніше, кожен створений сьогодні веб-сервер _має_ працювати з SSL/TLS (рівень захищених сокетів). Цей процес починається зі створення закритого ключа та CSR (запиту на підписання сертифіката) і надсилання CSR до центру сертифікації для придбання сертифіката SSL/TLS. Процес генерації цих ключів є дещо розширеним. @@ -149,9 +150,9 @@ cp -Rf wiki_source/* /var/www/sub-domains/your-server-hostname/html/ ### Розміщення ключів і сертифікатів SSL/TLS -Оскільки у вас є ваші ключі та файли сертифікатів, ви повинні розмістити їх логічно у своїй файловій системі на веб-сервері. Як видно з прикладу файлу конфігурації, ви розміщуєте свої веб-файли в `/var/www/sub-domains/your-server-hostname/html`. +Оскільки у вас є ваші ключі та файли сертифікатів, ви повинні розмістити їх логічно у своїй файловій системі на веб-сервері. Як ви бачили з прикладу конфігураційного файлу, ви розміщуєте свої веб-файли в `/var/www/sub-domains/your-server-hostname/html`. -Ви бажаєте розмістити свій сертифікат і ключові файли в домені, але за межами кореня документа, яким у даному випадку є папка *html*. +Ви бажаєте розмістити свій сертифікат і ключові файли в домені, але за межами кореня документа, яким у даному випадку є папка _html_. Ви ніколи не захочете розкрити свої сертифікати та ключі в Інтернеті. Це було б погано! @@ -167,7 +168,7 @@ mkdir -p /var/www/sub-domains/your-server-hostname/ssl/{ssl.key,ssl.crt,ssl.csr} Попереднє зауваження: зберігати файл із запитом на підписання сертифіката (CSR) у дереві непотрібно, але це спрощує деякі речі. Якщо вам колись знадобиться повторно видати сертифікат від іншого постачальника, гарною ідеєю буде мати збережену копію файлу CSR. Виникає питання, де ви можете зберегти це, щоб запам’ятати, і логічно зберігати його в дереві вашого веб-сайту. -Якщо припустити, що ви назвали файли ключа, csr і crt (сертифікат) іменем свого сайту та зберегли їх у */root*, ви скопіюєте їх до місця розташування: +Якщо припустити, що ви назвали файли ключа, csr і crt (сертифікат) іменем свого сайту та зберегли їх у _/root_, ви скопіюєте їх до місця розташування: ```bash cp /root/com.wiki.www.key /var/www/sub-domains/your-server-hostname/ssl/ssl.key/ @@ -179,9 +180,9 @@ cp /root/com.wiki.www.crt /var/www/sub-domains/your-server-hostname/ssl/ssl.crt/ Після того, як ви згенерували свої ключі та придбали сертифікат SSL/TLS, ви можете перейти до налаштування веб-сайту за допомогою своїх ключів. -Для початку розбийте початок конфігураційного файлу. Наприклад, навіть якщо ви все ще бажаєте прослуховувати вхідні запити на порту 80 (стандартний порт `http`), ви не хочете, щоб будь-який із цих запитів фактично надходив на порт 80. +Для початку розбийте початок конфігураційного файлу. Наприклад, навіть якщо ви все ще хочете прослуховувати вхідні запити на порту 80 (стандартний порт `http`), ви не хочете, щоб жоден з цих запитів фактично надсилався на порт 80. -Ви хочете, щоб вони переходили на порт 443 (або «захищений `http`», більш відомий як SSL/TLS або `https`). Наш розділ конфігурації порту 80 буде мінімальним: +Ви хочете, щоб вони переходили на порт 443 (або "`http` secure", більш відомий як SSL/TLS або `https`). Наш розділ конфігурації порту 80 буде мінімальним: ```apache @@ -191,7 +192,7 @@ cp /root/com.wiki.www.crt /var/www/sub-domains/your-server-hostname/ssl/ssl.crt/ ``` -Натомість це означає надсилати будь-який звичайний веб-запит до конфігурації `https`. Відображена опція "Перенаправлення" apache є тимчасовою. Коли тестування буде завершено, і ви побачите, що сайт працює належним чином, ви можете змінити це на «Переадресувати постійно». +Це означає, що будь-який звичайний веб-запит слід надсилати до конфігурації `https`. Відображена опція "Перенаправлення" apache є тимчасовою. Коли тестування буде завершено, і ви побачите, що сайт працює належним чином, ви можете змінити це на «Переадресувати постійно». Постійне переспрямування навчить пошукові системи, і незабаром будь-який трафік на ваш сайт, який надходить із пошукових систем, спрямовуватиметься лише на порт 443 (`https`) без потрапляння на порт 80 (`http`) спочатку. @@ -242,24 +243,24 @@ cp /root/com.wiki.www.crt /var/www/sub-domains/your-server-hostname/ssl/ssl.crt/ Отже, розбиваючи цю конфігурацію далі, після звичайних частин конфігурації та вниз до розділу SSL/TLS: -* SSLEngine on - каже використовувати SSL/TLS -* SSLProtocol all -SSLv2 -SSLv3 -TLSv1 - каже використовувати всі доступні протоколи, окрім тих, що містять уразливості. Ви повинні періодично досліджувати протоколи, прийнятні для використання. -* SSLHonorCipherOrder on -це стосується наступного рядка, що стосується наборів шифрів, і каже мати справу з ними у вказаному порядку. Це ще одна область, де періодично слід переглядати набори шифрів. -* SSLCertificateFile - це саме те, що в ньому сказано: нещодавно придбаний і застосований файл сертифіката та його розташування -* SSLCertificateKeyFile - ключ, який ви створили під час створення запиту на підписання сертифіката +- SSLEngine on - каже використовувати SSL/TLS +- SSLProtocol all -SSLv2 -SSLv3 -TLSv1 - каже використовувати всі доступні протоколи, окрім тих, що містять уразливості. Ви повинні періодично досліджувати протоколи, прийнятні для використання. +- SSLHonorCipherOrder on -це стосується наступного рядка, що стосується наборів шифрів, і каже мати справу з ними у вказаному порядку. Це ще одна область, де періодично слід переглядати набори шифрів. +- SSLCertificateFile - це саме те, що в ньому сказано: нещодавно придбаний і застосований файл сертифіката та його розташування +- SSLCertificateKeyFile - ключ, який ви створили під час створення запиту на підписання сертифіката Візьміть усе в режимі реального часу, і якщо веб-служба не запускає жодних помилок і якщо перехід на ваш веб-сайт показує `https` без помилок, ви готові до роботи. ## Оживіть його -Пам’ятайте, що наш файл *httpd.conf* містить */etc/httpd/sites-enabled* у кінці файлу. Коли `httpd` перезапускається, він завантажує будь-які конфігураційні файли в каталозі *sites-enabled*. Справа в тому, що всі наші конфігураційні файли знаходяться в *sites-available*. +Пам’ятайте, що наш файл _httpd.conf_ містить _/etc/httpd/sites-enabled_ в кінці файлу. Коли `httpd` перезавантажиться, він завантажить усі файли конфігурації, що знаходяться в каталозі _sites-enabled_. Річ у тім, що всі наші файли конфігурації знаходяться в _sites-available_. -Це передбачено задумом, тож ви можете видалити речі, коли `httpd` не вдається перезапустити. Щоб увімкнути наш файл конфігурації, вам потрібно створити символічне посилання на цей файл у *sites-enabled* і запустити або перезапустити веб-службу. Для цього ви використовуєте цю команду: +Це задумано так, щоб ви могли видаляти елементи, коли або якщо `httpd` не вдається перезапустити. Щоб увімкнути наш файл конфігурації, вам потрібно створити символічне посилання на цей файл у _sites-enabled_ та запустити або перезапустити веб-сервіс. Для цього ви використовуєте цю команду: ```bash ln -s /etc/httpd/sites-available/your-server-hostname /etc/httpd/sites-enabled/ ``` -Це створить посилання на файл конфігурації в *sites-enabled*, як ми хочемо. +Це створить посилання на файл конфігурації в _sites-enabled_, як ми хочемо. -Тепер просто запустіть `httpd` за допомогою `systemctl start httpd`. Або перезапустіть його, якщо він уже запущений: `systemctl restart httpd`, і припустімо, що веб-служба перезапуститься, тепер ви можете піти й провести тестування на своєму сайті. +Тепер просто запустіть `httpd` за допомогою `systemctl start httpd`. Або перезапустіть його, якщо він вже запущено: `systemctl restart httpd`, і, припускаючи, що веб-сервіс перезавантажиться, тепер ви можете виконати деякі тести на своєму сайті. diff --git a/docs/guides/web/apache_hardened_webserver/index.uk.md b/docs/guides/web/apache_hardened_webserver/index.uk.md index 6de8929bc6..61ddeff819 100644 --- a/docs/guides/web/apache_hardened_webserver/index.uk.md +++ b/docs/guides/web/apache_hardened_webserver/index.uk.md @@ -13,12 +13,12 @@ tags: ## Передумови та припущення -* Веб-сервер Rocky Linux під керуванням Apache -* Високий рівень комфорту з видачею команд із командного рядка, переглядом журналів та іншими загальними обов’язками системного адміністратора -* Рівень комфорту з редактором командного рядка (у наших прикладах використовується `vi`, який зазвичай запускає редактор `vim`, але ви можете замінити його улюбленим редактором) -* Припускає `firewalld` для брандмауера фільтра пакетів -* Передбачається використання апаратного брандмауера шлюзу, за яким розміщуватимуться наші надійні пристрої -* Припускає загальнодоступну IP-адресу, застосовану безпосередньо до веб-сервера. (Використовуючи приватну IP-адресу для наших прикладів тут) +- Веб-сервер Rocky Linux під керуванням Apache +- Високий рівень комфорту з видачею команд із командного рядка, переглядом журналів та іншими загальними обов’язками системного адміністратора +- Рівень комфорту з редактором командного рядка (у наших прикладах використовується `vi`, який зазвичай запускає редактор `vim`, але ви можете замінити його улюбленим редактором) +- Припускає `firewalld` для брандмауера фільтра пакетів +- Передбачається використання апаратного брандмауера шлюзу, за яким розміщуватимуться наші надійні пристрої +- Припускає загальнодоступну IP-адресу, застосовану безпосередньо до веб-сервера. (Використовуючи приватну IP-адресу для наших прикладів тут) ## Вступ @@ -30,16 +30,16 @@ tags: Захист веб-сервера може приймати різні форми, включаючи будь-який або всі інструменти, наведені тут, і, можливо, інші, не визначені. -Ви можете використовувати пару цих інструментів, а не інші. Цей документ поділено на окремі документи для кожного інструменту для ясності та зручності читання. Винятком буде брандмауер на основі пакетів (`firewalld`) у цьому основному документі. +Ви можете використовувати пару цих інструментів, а не інші. Цей документ поділено на окремі документи для кожного інструменту для ясності та зручності читання. Винятком буде пакетний брандмауер (`firewalld`) у цьому основному документі. -* Хороший брандмауер фільтрації пакетів на основі портів (iptables, firewalld або апаратний брандмауер - використання `firewalld` для наших прикладів) Дивіться процедуру `firewalld` далі в цьому документі. -* Система виявлення вторгнень на основі хосту (HIDS), у цьому випадку _ossec-hids_ [Apache Hardened Web Server - ossec- ховається](ossec-hids.md) -* Брандмауер веб-додатків (WAF) із правилами `mod_security` [Apache Hardened Web Server - mod_security](modsecurity.md) -* Rootkit Hunter (`rkhunter`): інструмент сканування, який перевіряє Linux на зловмисне програмне забезпечення [Apache Hardened Web Server - rkhunter](rkhunter.md) -* Безпека бази даних (тут використовується `mariadb-server`) [Сервер бази даних MariaDB](../../database/database_mariadb-server.md) -* Захищений сервер FTP або SFTP (тут використовуючи `vsftpd`) [Захищений сервер FTP - vsftpd](../../file_sharing/secure_ftp_server_vsftpd.md) Ви також можете використовувати [_sftp_ і процедури блокування SSH тут](../../file_sharing/sftp.md) +- Хороший брандмауер фільтрації пакетів на основі портів (iptables, firewalld або апаратний брандмауер - використання `firewalld` для наших прикладів) Дивіться процедуру `firewalld` далі в цьому документі. +- Система виявлення вторгнень на основі хосту (HIDS), у цьому випадку _ossec-hids_ [Apache Hardened Web Server - ossec- ховається](ossec-hids.md) +- Брандмауер веб-додатків (WAF) із правилами `mod_security` [Apache Hardened Web Server - mod_security](modsecurity.md) +- Rootkit Hunter (`rkhunter`): інструмент сканування, який перевіряє Linux на зловмисне програмне забезпечення [Apache Hardened Web Server - rkhunter](rkhunter.md) +- Безпека бази даних (тут використовується `mariadb-server`) [Сервер бази даних MariaDB](../../database/database_mariadb-server.md) +- Захищений сервер FTP або SFTP (тут використовуючи `vsftpd`) [Захищений сервер FTP - vsftpd](../../file_sharing/secure_ftp_server_vsftpd.md) Ви також можете використовувати [_sftp_ і процедури блокування SSH тут](../../file_sharing/sftp.md) -Ця процедура не замінює [налаштування кількох сайтів веб-сервера Apache](../apache-sites-enabled.md), вона додає ці елементи безпеки. Якщо ви не читали цей документ, знайдіть час, щоб переглянути його, перш ніж продовжити. +Ця процедура не замінює [Налаштування кількох сайтів веб-сервера Apache](../apache-sites-enabled.md), вона додає до нього ці елементи безпеки. Якщо ви не читали цей документ, знайдіть час, щоб переглянути його, перш ніж продовжити. ## Інше @@ -47,7 +47,7 @@ tags: Також можливе придбання обладнання для багатьох із цих варіантів. Якщо ви бажаєте не турбуватися про встановлення та обслуговування системи, доступні інші варіанти, ніж описані тут. -У цьому документі використовується брандмауер `firewalld`. Доступні посібники щодо `firewalld`. Той, який дозволяє комусь із знаннями `iptables` [передати свої знання на `firewalld` тут,](../../security/firewalld.md) та той, який більше [присвячений для початківців](../../security/firewalld-beginners.md). Ви можете переглянути одну з цих процедур, перш ніж почати. +У цьому документі використовується брандмауер `firewalld`. Доступні посібники з `firewalld`. Один, який дозволяє комусь зі знанням `iptables` [передати свої знання до `firewalld` тут](../../security/firewalld.md), і один, який більше [присвячений початківцям тут](../../security/firewalld-beginners.md). Ви можете переглянути одну з цих процедур, перш ніж почати. Вам потрібно налаштувати всі ці інструменти для ваших систем. Щоб досягти цього, потрібен ретельний моніторинг журналів і повідомлень клієнтів про веб-досвід. Крім того, ви побачите, що буде потрібно постійне налаштування. @@ -57,15 +57,17 @@ tags: ## Умовності -* **IP-адреси:** тут імітується загальнодоступна IP-адреса з приватним блоком: 192.168.1.0/24 і використовується блок IP-адреси локальної мережі 10.0.0.0/24. Маршрутизація цих IP-блоків через Інтернет неможлива, оскільки вони призначені для приватного використання, але імітація загальнодоступних IP-блоків неможлива без використання справжньої IP-адреси, призначеної якійсь компанії чи організації. Просто пам’ятайте, що для наших цілей блок 192.168.1.0/24 є «публічним» IP-блоком, а 10.0.0.0/24 — «приватним» IP-блоком. +- **IP-адреси:** імітація публічної IP-адреси за допомогою приватного блоку: 192.168.1.0/24 та використання блоку IP-адреси локальної мережі 10.0.0.0/24. Маршрутизація цих IP-блоків через Інтернет неможлива, оскільки вони призначені для приватного використання, але імітація загальнодоступних IP-блоків неможлива без використання справжньої IP-адреси, призначеної якійсь компанії чи організації. Просто пам’ятайте, що для наших цілей блок 192.168.1.0/24 є «публічним» IP-блоком, а 10.0.0.0/24 — «приватним» IP-блоком. -* **Апаратний брандмауер:** це брандмауер, який контролює доступ до пристроїв серверної кімнати з довіреної мережі. Це не те саме, що ваш пакетний брандмауер, хоча це може бути інший екземпляр `firewalld`, який працює на іншій машині. Цей пристрій підтримує ICMP (ping) і SSH (захищену оболонку) для наших довірених пристроїв. Визначення цього пристрою виходить за рамки цього документа. Автор використав [PfSense](https://www.pfsense.org/) та [OPNSense](https://opnsense.org/) та встановив на спеціального обладнання для цього пристрою з великим успіхом. Для цього пристрою буде призначено дві IP-адреси. Один, який підключається до імітованої загальнодоступної IP-адреси Інтернет-маршрутизатора (192.168.1.2), і інший, який підключається до нашої локальної мережі, 10.0.0.1. -* **IP-адреса Інтернет-маршрутизатора:** імітація цього за допомогою 192.168.1.1/24 -* **IP-адреса веб-сервера:** це «публічна» IP-адреса, призначена нашому веб-серверу. Знову ж таки, моделюючи це за допомогою приватної IP-адреси 192.168.1.10/24 +- **Апаратний брандмауер:** Це брандмауер, який контролює доступ до пристроїв вашої серверної кімнати з вашої довіреної мережі. Це не те саме, що ваш упакований брандмауер, хоча це може бути ще один екземпляр `firewalld`, що працює на іншій машині. Цей пристрій підтримує ICMP (ping) і SSH (захищену оболонку) для наших довірених пристроїв. Визначення цього пристрою виходить за рамки цього документа. Автор успішно використав [PfSense](https://www.pfsense.org/) та [OPNSense](https://opnsense.org/) та встановив їх на спеціалізоване обладнання для цього пристрою. Для цього пристрою буде призначено дві IP-адреси. Один, який підключається до імітованої загальнодоступної IP-адреси Інтернет-маршрутизатора (192.168.1.2), і інший, який підключається до нашої локальної мережі, 10.0.0.1. + +- **IP-адреса Інтернет-маршрутизатора:** імітація цього за допомогою 192.168.1.1/24 + +- **IP-адреса веб-сервера:** Це «публічна» IP-адреса, призначена нашому веб-серверу. Знову ж таки, моделюючи це за допомогою приватної IP-адреси 192.168.1.10/24 ![Захищений веб-сервер](images/hardened_webserver_figure1.jpeg) -На схемі показано наш загальний план. Брандмауер `firewalld` на основі пакетів працює на веб-сервері. +На схемі показано наш загальний план. Пакетний брандмауер `firewalld` працює на веб-сервері. ## Встановлення пакетів @@ -87,17 +89,21 @@ firewall-cmd --reload Ось що відбувається: -* встановлення нашої надійної зони на IP-адресу апаратного брандмауера -* приймання SSH (порт 22) від нашої надійної мережі, пристроїв за апаратним брандмауером (лише одна IP-адреса) -* приймання DNS із загальнодоступної зони (це можна додатково обмежити, вказавши IP-адреси серверів або локальні DNS-сервери, якщо вони є) -* приймання веб-трафіку з будь-якого місця через порт 80 і 443. -* приймання стандартного FTP (порти 20-21) і пасивних портів, необхідних для обміну двостороннім зв'язком у FTP (7000-7500). Ці порти можна довільно змінити на інші порти залежно від конфігурації вашого ftp-сервера. +- встановлення нашої надійної зони на IP-адресу апаратного брандмауера + +- приймання SSH (порт 22) від нашої надійної мережі, пристроїв за апаратним брандмауером (лише одна IP-адреса) + +- приймання DNS із загальнодоступної зони (це можна додатково обмежити, вказавши IP-адреси серверів або локальні DNS-сервери, якщо вони є) + +- приймання веб-трафіку з будь-якого місця через порт 80 і 443. + +- приймання стандартного FTP (порти 20-21) і пасивних портів, необхідних для обміну двостороннім зв'язком у FTP (7000-7500). Ці порти можна довільно змінити на інші порти залежно від конфігурації вашого ftp-сервера. + + !!! note - !!! note "Примітка" - - Використання SFTP є найкращим методом на сьогоднішній день. Ви можете дізнатися, як [безпечно використовувати SFTP у цьому документі](../../file_sharing/sftp.md). + Використання SFTP є найкращим методом на сьогоднішній день. Ви можете дізнатися, як [безпечно використовувати SFTP у цьому документі](../../file_sharing/sftp.md). -* нарешті перезавантажте брандмауер +- нарешті перезавантажте брандмауер ## Висновок diff --git a/docs/guides/web/apache_hardened_webserver/modsecurity.uk.md b/docs/guides/web/apache_hardened_webserver/modsecurity.uk.md index e783696892..5cb8af9654 100644 --- a/docs/guides/web/apache_hardened_webserver/modsecurity.uk.md +++ b/docs/guides/web/apache_hardened_webserver/modsecurity.uk.md @@ -9,32 +9,32 @@ tags: - apache - nginx --- - + # Брандмауер веб-додатків (WAF) ## Передумови -* Веб-сервер Rocky Linux, на якому працює Apache -* Вміння працювати з редактором командного рядка (у цьому прикладі ми використовуємо _vi_) -* Високий рівень комфорту з видачею команд із командного рядка, переглядом журналів та іншими загальними обов’язками системного адміністратора -* Розуміння того, що встановлення цього інструменту також потребує моніторингу дій і налаштування під ваше середовище -* Користувач root виконує всі команди або звичайний користувач за допомогою `sudo` +- Веб-сервер Rocky Linux, на якому працює Apache +- Вміння працювати з редактором командного рядка (у цьому прикладі ми використовуємо _vi_) +- Високий рівень комфорту з видачею команд із командного рядка, переглядом журналів та іншими загальними обов’язками системного адміністратора +- Розуміння того, що встановлення цього інструменту також потребує моніторингу дій і налаштування під ваше середовище +- Користувач root виконує всі команди або звичайний користувач за допомогою `sudo` ## Вступ -`mod_security` – це брандмауер веб-додатків (WAF) із відкритим кодом. Це лише одна з можливих частин посиленого веб-сервера Apache. Використовуйте його з іншими інструментами або без них. +`mod_security` — це веб-брандмауер додатків (WAF) з відкритим кодом. Це лише одна з можливих частин посиленого веб-сервера Apache. Використовуйте його з іншими інструментами або без них. -Якщо ви бажаєте скористатися цим та іншими інструментами захисту, зверніться до [посібника з надійного веб-сервера Apache](index.md). У цьому документі також використовуються всі припущення та умовності, викладені в цьому оригінальному документі. Перш ніж продовжити, варто переглянути його. +Якщо ви хочете використовувати цей та інші інструменти посилення захисту, зверніться до [посібника з Apache Hardened Web Server] (index.md). У цьому документі також використовуються всі припущення та умовності, викладені в цьому оригінальному документі. Перш ніж продовжити, варто переглянути його. -Одного не вистачає `mod_security` під час встановлення із загальних репозиторіїв Rocky Linux: встановлені мінімальні правила. Щоб отримати розширеніший пакет безкоштовних правил `mod_security`, ця процедура використовує [OWASP `mod_security` правила, які можна знайти тут](https://coreruleset.org/). OWASP означає Open Web Application Security Project. Ви можете [дізнатися більше про OWASP тут](https://owasp.org/). +Одна річ, якої бракує `mod_security` під час встановлення із загальних репозиторіїв Rocky Linux, це мінімальний набір встановлених правил. Щоб отримати більш розширений пакет безкоштовних правил `mod_security`, ця процедура використовує [правила OWASP `mod_security` можна знайти тут](https://coreruleset.org/). OWASP означає Open Web Application Security Project. Ви можете [дізнатися більше про OWASP тут] (https://owasp.org/). -!!! tip "Підказка" +!!! tip Як зазначено, ця процедура використовує правила OWASP `mod_security`. Не використовується конфігурація, надана цим сайтом. Цей сайт також містить чудові посібники з використання `mod_security` та інших інструментів, пов’язаних із безпекою. Документ, над яким ви працюєте mow, лише допомагає встановити інструменти та правила, необхідні для захисту за допомогою `mod_security` на веб-сервері Rocky Linux. Netnea — це команда технічних професіоналів, яка проводить курси безпеки на своєму веб-сайті. Значна частина цього вмісту безкоштовна, але у них є варіанти внутрішнього або групового навчання. ## Встановлення `mod_security` -Щоб встановити базовий пакет, використовуйте цю команду. Він встановить усі відсутні залежності. Вам також потрібен `wget`, якщо він не встановлений: +Щоб встановити базовий пакет, використовуйте цю команду. Він встановить усі відсутні залежності. Вам також знадобиться `wget`, якщо він у вас не встановлений: ```bash dnf install mod_security wget @@ -42,7 +42,7 @@ dnf install mod_security wget ## Встановлення правил `mod_security` -!!! note "Примітка" +!!! note Важливо ретельно дотримуватися цієї процедури. Конфігурацію від Netnea було змінено відповідно до Rocky Linux. @@ -58,7 +58,7 @@ dnf install mod_security wget cd /etc/httpd/conf ``` -5. Введіть `wget` і вставте своє посилання. Приклад: +5. Введіть `wget` та вставте посилання. Приклад: ```bash wget https://github.com/coreruleset/coreruleset/archive/refs/tags/v3.3.5.tar.gz @@ -70,7 +70,7 @@ dnf install mod_security wget tar xzvf v3.3.5.tar.gz ``` - Це створює каталог із інформацією про випуск у назві. Приклад: "coreruleset-3.3.5" + Це створює каталог із інформацією про випуск у назві. Приклад: "coreruleset-3.3.5" 7. Створіть символічне посилання «crs» на каталог випуску. Приклад: @@ -90,7 +90,7 @@ dnf install mod_security wget cp crs/crs-setup.conf.example crs/crs-setup.conf ``` - Цей файл можна редагувати, але вам, імовірно, не потрібно буде вносити жодних змін. + Цей файл можна редагувати, але вам, імовірно, не потрібно буде вносити жодних змін. Тепер діють правила `mod_security`. @@ -171,8 +171,8 @@ Engine-Mode: "ENABLED" ## Висновок -`mod_security` з правилами OWASP є ще одним інструментом, який допоможе посилити веб-сервер Apache. Періодична перевірка [сайту GitHub на наявність новіших правил](https://github.com/coreruleset/coreruleset) і останньої офіційної версії є постійним етапом обслуговування, який вам потрібно робити. +`mod_security` з правилами OWASP – це ще один інструмент, який допомагає посилити захист веб-сервера Apache. Періодична перевірка [сайту GitHub на наявність нових правил](https://github.com/coreruleset/coreruleset) та останнього офіційного релізу – це постійний крок з обслуговування, який вам необхідно виконувати. Як і в інших інструментах захисту, `mod_security` має потенціал хибнопозитивних відповідей, тому ви повинні підготуватися до налаштування цього інструменту для вашої установки. -Подібно до інших рішень, згаданих у [посібнику з надійного веб-сервера Apache](index.md), існують інші безкоштовні та платні рішення для правил `mod_security` та для що важливо, інші програми WAF доступні. Ви можете переглянути один із них на [сайті Atomicorp `mod_security`](https://atomicorp.com/atomic-modsecurity-rules/). +Як і інші рішення, згадані в [посібнику з Apache Hardened Web Server] (index.md), існують інші безкоштовні та платні рішення для правил `mod_security`, а також інші доступні програми WAF. Ви можете переглянути один із них на [сайті `mod_security` від Atomicorp](https://atomicorp.com/atomic-modsecurity-rules/). diff --git a/docs/guides/web/apache_hardened_webserver/ossec-hids.uk.md b/docs/guides/web/apache_hardened_webserver/ossec-hids.uk.md index ce23b58d74..94329e829e 100644 --- a/docs/guides/web/apache_hardened_webserver/ossec-hids.uk.md +++ b/docs/guides/web/apache_hardened_webserver/ossec-hids.uk.md @@ -14,22 +14,22 @@ tags: ## Передумови -* Вміння працювати з текстовим редактором командного рядка (у цьому прикладі використовується `vi`) -* Високий рівень комфорту з видачею команд із командного рядка, переглядом журналів та іншими загальними обов’язками системного адміністратора -* Розуміння того, що встановлення цього інструменту також потребує моніторингу дій і налаштування під ваше середовище -* Користувач root виконує всі команди або звичайний користувач за допомогою `sudo` +- Вміння працювати з текстовим редактором командного рядка (у цьому прикладі використовується `vi`) +- Високий рівень комфорту з видачею команд із командного рядка, переглядом журналів та іншими загальними обов’язками системного адміністратора +- Розуміння того, що встановлення цього інструменту також потребує моніторингу дій і налаштування під ваше середовище +- Користувач root виконує всі команди або звичайний користувач за допомогою `sudo` ## Вступ -`ossec-hids` – це система виявлення вторгнень на хост, яка пропонує автоматичні кроки дії-відповіді для пом’якшення атак вторгнення на хост. Це лише одна з можливих частин посиленого веб-сервера Apache. Ви можете використовувати його з іншими інструментами або без них. +`ossec-hids` — це система виявлення вторгнень на хост, яка пропонує автоматичні кроки дії та реагування, щоб допомогти пом'якшити атаки вторгнень на хост. Це лише одна з можливих частин посиленого веб-сервера Apache. Ви можете використовувати його з іншими інструментами або без них. -Якщо ви бажаєте скористатися цим та іншими інструментами захисту, зверніться до документа [Apache Hardened Web Server](index.md). У цьому документі також використовуються всі припущення та умовності, викладені в цьому оригінальному документі. Перш ніж продовжити, варто переглянути його. +Якщо ви хочете використовувати цей та інші інструменти посилення захисту, зверніться до документа [Apache Hardened Web Server](index.md). У цьому документі також використовуються всі припущення та умовності, викладені в цьому оригінальному документі. Перш ніж продовжити, варто переглянути його. ## Встановлення репозиторію Atomicorp -Щоб установити `ossec-hids`, нам потрібен сторонній репозиторій від Atomicorp. Atomicorp також пропонує платну підтримувану версію за розумною ціною для тих, хто потребує професійної підтримки, якщо у них виникнуть проблеми. +Щоб встановити `ossec-hids`, нам потрібен сторонній репозиторій від Atomicorp. Atomicorp також пропонує платну підтримувану версію за розумною ціною для тих, хто потребує професійної підтримки, якщо у них виникнуть проблеми. -Якщо ви віддаєте перевагу підтримці та маєте на це бюджет, перегляньте [платні `ossec-hids`](https://atomicorp.com/atomic-enterprise-ossec/) Atomicorp версії. Вам потрібно лише кілька пакетів із безкоштовного сховища Atomicorp. Ви збираєтеся змінити репозиторій після завантаження. +Якщо ви надаєте перевагу підтримці та маєте на це кошти, перегляньте платну версію [Atomicorp `ossec-hids`](https://atomicorp.com/atomic-enterprise-ossec/). Вам потрібно лише кілька пакетів із безкоштовного сховища Atomicorp. Ви збираєтеся змінити репозиторій після завантаження. Для завантаження репозиторію потрібен `wget`. Спочатку встановіть це, а потім інсталюйте репозиторій EPEL, якщо він у вас ще не встановлений, за допомогою: @@ -61,7 +61,7 @@ vi /etc/yum.repos.d/atomic.repo includepkgs = ossec* GeoIP* inotify-tools ``` -Це єдина зміна, яка вам потрібна. Збережіть зміни та вийдіть із сховища (у `vi` це ++esc++ для входу в командний режим, потім ++shift+двокрапка+"wq"++ для збереження та виходу). +Це єдина зміна, яка вам потрібна. Збережіть зміни та вийдіть з репозиторію (у `vi` це ++esc++ для входу в командний режим, потім ++shift+двокрапка+"wq"++ для збереження та виходу). Це обмежує репозиторій Atomicorp лише для встановлення та оновлення цих пакетів. @@ -77,7 +77,7 @@ dnf install ossec-hids-server ossec-hids inotify-tools Конфігурація за замовчуванням знаходиться в стані, що потребує багатьох змін. Більшість із них стосується сповіщень адміністратора сервера та розташування журналів. -`ossec-hids` переглядає журнали, щоб спробувати вирішити, чи відбувається атака та чи застосовувати пом’якшення. Він також надсилає звіти адміністратору сервера зі сповіщенням або повідомленням про процедуру пом’якшення, запущену на основі того, що побачив `ossec-hids`. +`ossec-hids` переглядає журнали, щоб спробувати визначити, чи триває атака, і чи слід застосовувати заходи пом'якшення наслідків. Він також надсилає звіти адміністратору сервера зі сповіщенням або повідомленням щодо запущеної процедури усунення наслідків на основі побаченого `ossec-hids`. Щоб відредагувати файл конфігурації, введіть: @@ -100,13 +100,13 @@ vi /var/ossec/etc/ossec.conf ``` -Сповіщення електронною поштою вимкнено за умовчанням, а конфігурація `` майже порожня. Ви хочете ввімкнути сповіщення електронною поштою та визначити людей, які отримуватимуть звіти електронною поштою, за їхніми електронними адресами. +Сповіщення електронною поштою вимкнено за замовчуванням, а конфігурація `` майже порожня. Ви хочете ввімкнути сповіщення електронною поштою та визначити людей, які отримуватимуть звіти електронною поштою, за їхніми електронними адресами. У розділі `` наразі показано локальний хост, однак ви можете вказати ретранслятор електронної пошти, якщо бажаєте, або налаштувати постфіксні параметри електронної пошти для локального хосту, виконавши [цей посібник](../../email/postfix_reporting.md). -Вам потрібно встановити адресу електронної пошти "from". Це потрібно для роботи з фільтрами СПАМу на вашому сервері електронної пошти, які можуть бачити цей електронний лист як СПАМ. Щоб уникнути перенасичення електронною поштою, встановіть звітування електронною поштою 1 раз на годину. Ви можете розширити або виділити цю команду, починаючи з `ossec-hids`. +Вам потрібно встановити адресу електронної пошти "from". Це потрібно для роботи з фільтрами СПАМу на вашому сервері електронної пошти, які можуть бачити цей електронний лист як СПАМ. Щоб уникнути перенасичення електронною поштою, встановіть звітування електронною поштою 1 раз на годину. Ви можете розширити або зробити замітку з цієї команди, починаючи з `ossec-hids`. -Розділи `` стосуються локальної IP-адреси сервера та «загальнодоступної» IP-адреси (пам’ятайте, що ми замінюємо приватну IP-адресу) брандмауера, з якого відображатимуться всі з’єднання в довіреній мережі. Ви можете додати багато записів ``. +Розділи `` стосуються локальної IP-адреси сервера та "публічної" IP-адреси (пам'ятайте про нашу заміну приватної IP-адреси) брандмауера, з якого відображатимуться всі з'єднання в довіреній мережі. Ви можете додати багато записів ``. ```bash @@ -116,11 +116,11 @@ vi /var/ossec/etc/ossec.conf ``` -Розділ `` переглядає список каталогів, які слід включити та виключити під час пошуку скомпрометованих файлів. Подумайте про це як про ще один інструмент для спостереження та захисту файлової системи від уразливостей. Вам потрібно переглянути список каталогів і додати інші, які ви хочете, до розділу ``. +У розділі `` переглядається список каталогів, які потрібно включити та виключити під час пошуку скомпрометованих файлів. Подумайте про це як про ще один інструмент для спостереження та захисту файлової системи від уразливостей. Вам потрібно переглянути список каталогів і додати інші, які ви хочете, до розділу ``. -Розділ `` безпосередньо під розділом `` є ще одним рівнем захисту. Розташування, які спостерігають `` і ``, можна редагувати, але вам, ймовірно, не потрібно буде вносити в них жодних змін. +Розділ `` одразу під розділом `` — це ще один рівень захисту. Місця, які спостерігають `` та ``, можна редагувати, але вам, ймовірно, не потрібно буде вносити до них жодних змін. -Змінення `` для виконання `` на один раз кожні 24 години (86400 секунд) замість 22 годин за замовчуванням є необов’язковою зміною. +Зміна значення `` для запуску `` на один раз кожні 24 години (86400 секунд) зі значення за замовчуванням 22 години є необов'язковою зміною, яку показано. ```bash @@ -133,7 +133,7 @@ vi /var/ossec/etc/ossec.conf ``` -Розділ `` стосується розташування журналів, які ви хочете переглянути. У журналах _syslog_ і _secure_ вже є записи, шлях до яких потрібно перевірити, але все інше може залишитися. +У розділі `` вказано розташування журналів, які ви хочете переглянути. Записи для журналів _syslog_ та _secure_, шлях до яких потрібно лише перевірити, вже є, але все інше можна залишити. Вам потрібно додати розташування журналів Apache і додати їх як символи підстановки, оскільки ви можете мати купу журналів для багатьох різних веб-клієнтів. @@ -151,9 +151,9 @@ vi /var/ossec/etc/ossec.conf ``` -Нарешті, ближче до кінця файлу вам потрібно додати розділ активної відповіді. Він має дві частини: розділ `` і розділ ``. +Нарешті, ближче до кінця файлу вам потрібно додати розділ активної відповіді. Він складається з двох частин: секції `` та секції ``. -Сценарій "firewall-drop" уже існує в межах шляху `ossec-hids`. Він повідомляє `ossec-hids`, що якщо виникає рівень 7, додайте правило брандмауера для блокування IP-адреси. +Скрипт "firewall-drop" вже існує в шляху `ossec-hids`. Це повідомляє `ossec-hids`, що якщо виникає рівень 7, додається правило брандмауера для блокування IP-адреси. Увімкніть і запустіть службу після завершення всіх змін конфігурації. Якщо все розпочато правильно, ви готові рухатися далі: @@ -162,10 +162,10 @@ systemctl enable ossec-hids systemctl start ossec-hids ``` -Файл конфігурації `ossec-hids`. Ви можете дізнатися про ці параметри, відвідавши [сайт офіційної документації](https://www.ossec.net/docs/). +Файл конфігурації `ossec-hids`. Ви можете дізнатися про ці опції, відвідавши [офіційний сайт документації](https://www.ossec.net/docs/). ## Висновок -`ossec-hids` — це лише один із захищених Apache елементів веб-сервера. Ви можете отримати кращий захист, вибравши його з іншими інструментами. +`ossec-hids` — це лише один із елементів захищеного веб-сервера Apache. Ви можете отримати кращий захист, вибравши його з іншими інструментами. -Хоча встановлення та конфігурація відносно прості, ви побачите, що це **не** програма «встановити й забути». Ви повинні налаштувати його відповідно до свого середовища, щоб отримати максимальну безпеку з найменшою кількістю хибно-позитивних відповідей. +Хоча встановлення та налаштування відносно прості, ви побачите, що це **не** програма за принципом «встановив і забув». Ви повинні налаштувати його відповідно до свого середовища, щоб отримати максимальну безпеку з найменшою кількістю хибно-позитивних відповідей. diff --git a/docs/guides/web/apache_hardened_webserver/rkhunter.uk.md b/docs/guides/web/apache_hardened_webserver/rkhunter.uk.md index 3571bae20b..b4c4b58aaf 100644 --- a/docs/guides/web/apache_hardened_webserver/rkhunter.uk.md +++ b/docs/guides/web/apache_hardened_webserver/rkhunter.uk.md @@ -9,20 +9,24 @@ tags: - rkhunter --- -# Rootkit hunter +!!! Warning "`rkhunter` — це мертвий проект станом на 2018 рік" + + ``` + Хоча встановити `rkhunter` у Rocky Linux 8 все ще можливо, проєкт функціонально мертвий, а вся розробка зупинена у 2018 році. Найкращим варіантом для безпеки сервера є підтримка належного брандмауера та філософії безпеки, використовуючи інші доступні інструменти посилення безпеки. + ``` ## Вступ -Rootkit hunter (`rkhunter`) — добре відомий інструмент для перевірки вразливостей, руткітів, бекдорів і можливих локальних експлойтів на сервері. Його можна використовувати на _будь-якому_ сервері, який використовується з _будь-якою_ метою. Після налаштування та автоматизації він може повідомляти про будь-яку підозрілу активність системному адміністратору. У цій процедурі описано встановлення, налаштування та використання rootkit hunter. +Rootkit Hunter (`rkhunter`) – це добре відомий інструмент для перевірки вразливостей, руткітів, бекдорів та можливих локальних експлойтів на сервері. Його можна використовувати на _будь-якому_ сервері, що використовується для _будь-яких_ цілей. Після налаштування та автоматизації він може повідомляти про будь-яку підозрілу активність системному адміністратору. У цій процедурі описано встановлення, налаштування та використання rootkit hunter. -`rkhunter` — це лише одна з можливих частин надійного налаштування сервера. Використовуйте його окремо або з іншими інструментами для максимального захисту. +`rkhunter` — це лише один із можливих елементів налаштування захищеного сервера. Використовуйте його окремо або з іншими інструментами для максимального захисту. ## Передумови -* Вміння працювати з редактором командного рядка (у цьому прикладі використовується `vi`) -* Рівень комфорту з видачею команд із командного рядка, переглядом журналів та іншими загальними обов’язками системного адміністратора -* Корисним є розуміння того, що може викликати відповідь на змінені файли у файловій системі (наприклад, оновлення пакетів) -* Виконання всіх команд від імені root або звичайного користувача за допомогою `sudo` +- Вміння працювати з редактором командного рядка (у цьому прикладі використовується `vi`) +- Рівень комфорту з видачею команд із командного рядка, переглядом журналів та іншими загальними обов’язками системного адміністратора +- Корисним є розуміння того, що може викликати відповідь на змінені файли у файловій системі (наприклад, оновлення пакетів) +- Виконання всіх команд від імені root або звичайного користувача за допомогою `sudo` Цей документ був спочатку написаний разом із захищеними програмами веб-сервера Apache, але однаково добре працює на сервері, на якому запущено будь-яке програмне забезпечення. @@ -36,7 +40,7 @@ Rootkit hunter (`rkhunter`) — добре відомий інструмент ## Встановлення `rkhunter` -Для `rkhunter` потрібен репозиторій EPEL (Extra Packages for Enterprise Linux). Встановіть цей репозиторій, якщо він у вас ще не встановлений: +Для роботи з `rkhunter` потрібен репозиторій EPEL (Додаткові пакети для корпоративного Linux). Встановіть цей репозиторій, якщо він у вас ще не встановлений: ```bash dnf install epel-release @@ -52,7 +56,7 @@ dnf install rkhunter Єдині параметри конфігурації, які вам _потрібно_ встановити, стосуються надсилання звітів адміністратору. -!!! warning "Важливо" +!!! warning Модифікація _будь-якого_ файлу конфігурації в Linux несе ризик. Перш ніж змінювати **будь-який** файл конфігурації в Linux, рекомендується створити резервну копію _оригінального_ файлу. @@ -82,11 +86,11 @@ MAIL_CMD=mail -s "[rkhunter] Warnings found for ${HOST_NAME}" ## Запуск `rkhunter` -Запустіть `rkhunter` вручну, ввівши його в командному рядку. Завдання cron піклується про автоматичний запуск `rkhunter` у `/etc/cron.daily`. Якщо ви хочете автоматизувати процедуру за іншим розкладом, перегляньте [Посібник із автоматизації завдань cron](../../automation/cron_jobs_howto.md). +Запустіть `rkhunter` вручну, ввівши його в командному рядку. Завдання cron автоматично запускає `rkhunter` у `/etc/cron.daily`. Якщо ви хочете автоматизувати процедуру за іншим розкладом, ознайомтеся з [Посібником з автоматизації завдань cron](../../automation/cron_jobs_howto.md). -Вам також потрібно буде перемістити сценарій кудись, крім `/etc/cron.daily/`, наприклад `/usr/local/sbin/`, і викликати його з вашого спеціального cron робота. Найпростіший спосіб — залишити стандартні налаштування `cron.daily` без змін. +Вам також потрібно буде перемістити скрипт кудись, крім `/etc/cron.daily/`, наприклад, `/usr/local/sbin/`, та викликати його з вашого користувацького cron-завдання. Найпростіший метод — залишити налаштування `cron.daily` за замовчуванням недоторканими. -Якщо ви хочете перевірити `rkhunter` перед початком роботи, включаючи всі функції електронної пошти, запустіть `rkhunter --check` з командного рядка. Якщо встановлено та функціонує належним чином, ви маєте отримати подібний до наступного результату: +Якщо ви хочете протестувати `rkhunter` перед початком роботи, включаючи всі функції електронної пошти, виконайте `rkhunter --check` з командного рядка. Якщо встановлено та функціонує належним чином, ви маєте отримати подібний до наступного результату: ```bash [root@sol admin]# rkhunter --check @@ -242,7 +246,7 @@ Performing file properties checks [Press to continue] ``` -Відкладіть виконання решти кроків, якщо виникають проблеми з налаштуванням електронної пошти. Коли підтвердження електронної пошти працює, але перед тим, як дозволити `rkhunter` запускатися автоматично, знову запустіть команду вручну з прапорцем «--propupd», щоб створити файл `rkhunter.dat`. Це забезпечує розпізнавання вашого середовища та конфігурації: +Відкладіть виконання решти кроків, якщо виникають проблеми з налаштуванням електронної пошти. Якщо підтвердження електронної пошти працює, але перед тим, як дозволити `rkhunter` автоматично запускатися, виконайте команду вручну ще раз з прапорцем "--propupd", щоб створити файл `rkhunter.dat`. Це забезпечує розпізнавання вашого середовища та конфігурації: ```bash rkhunter --propupd @@ -250,4 +254,4 @@ rkhunter --propupd ## Висновок -`rkhunter` є частиною надійної серверної стратегії, яка може допомогти контролювати файлову систему та повідомляти про будь-які проблеми адміністратору. Можливо, це один із найпростіших інструментів захисту, який можна встановити, налаштувати та запустити. +`rkhunter` — це частина стратегії захищеного сервера, яка може допомогти контролювати файлову систему та повідомляти про будь-які проблеми адміністратору. Можливо, це один із найпростіших інструментів захисту, який можна встановити, налаштувати та запустити. diff --git a/docs/guides/web/caddy.uk.md b/docs/guides/web/caddy.uk.md index 26aef3e8b7..f779fa24de 100644 --- a/docs/guides/web/caddy.uk.md +++ b/docs/guides/web/caddy.uk.md @@ -81,13 +81,13 @@ sudo firewall-cmd --reload !!! Note "Примітка" -```` -Тепер є мінімальний шанс, що це не спрацює. У тих рідкісних випадках змусьте `firewalld` виконувати ваші ставки за допомогою старої функції вимкнути і знову ввімкнути. - -```bash -systemctl restart firewalld -``` -```` + ```` + Тепер є мінімальний шанс, що це не спрацює. У тих рідкісних випадках змусьте `firewalld` виконувати ваші ставки за допомогою старої функції вимкнути і знову ввімкнути. + + ```bash + systemctl restart firewalld + ``` + ```` Щоб забезпечити доступність портів, запустіть `firewall-cmd --list-all`. Правильно налаштований брандмауер виглядатиме приблизно так: diff --git a/docs/guides/web/mod_SSL_apache.uk.md b/docs/guides/web/mod_SSL_apache.uk.md index 56f5e34d43..48bda7a97d 100644 --- a/docs/guides/web/mod_SSL_apache.uk.md +++ b/docs/guides/web/mod_SSL_apache.uk.md @@ -7,21 +7,21 @@ update: 20 січня 2022 р # `mod_ssl` на Rocky Linux у середовищі веб-сервера Apache -Веб-сервер Apache існує вже багато років. `mod_ssl` забезпечує більшу безпеку для веб-сервера та його можна встановити майже на будь-якій версії Linux. +Веб-сервер Apache існує вже багато років. `mod_ssl` забезпечує підвищений рівень безпеки для веб-сервера та може бути встановлений майже на будь-якій версії Linux. Ця процедура допоможе вам почати працювати з Rocky Linux і `mod_ssl` у середовищі веб-сервера Apache. ## Передумови -* Робоча станція або сервер, бажано з уже встановленим Rocky Linux. -* Можливість запускати команди як *root* або `sudo` для підвищення привілеїв. +- Робоча станція або сервер, бажано з уже встановленим Rocky Linux. +- Можливість запускати команди як _root_ або `sudo` для підвищення привілеїв. ## Встановлення Rocky Linux Minimal Під час встановлення Rocky Linux ми використовували наступні набори пакетів: -* Minimal -* Standard +- Minimal +- Standard ## Запуск оновлення системи @@ -56,11 +56,12 @@ powertools Rocky Linux 8 - Щоб увімкнути модуль `mod_ssl`, виконайте: -`apachectl restart httpd` `apachectl -M | grep ssl` +`apachectl restart httpd` +`apachectl -M | grep ssl` Ви побачите: - `ssl_module (shared)` +`ssl_module (shared)` ## Відкриття порту TCP 443 diff --git a/docs/guides/web/nginx-mainline.uk.md b/docs/guides/web/nginx-mainline.uk.md index a0ad81da04..de86898186 100644 --- a/docs/guides/web/nginx-mainline.uk.md +++ b/docs/guides/web/nginx-mainline.uk.md @@ -12,28 +12,28 @@ tags: ## Вступ -*Nginx* — це веб-сервер, розроблений як швидкий, ефективний і сумісний практично з усім, що ви можете собі уявити. Особисто я досить часто ним користуюся, і, як тільки ви його зрозумієте, його насправді досить легко встановити та налаштувати. З цією метою я написав цей посібник для початківців. +_Nginx_ — це вебсервер, розроблений для швидкої, ефективної роботи та сумісності практично з усім. Особисто я досить часто ним користуюся, і, як тільки ви його зрозумієте, його насправді досить легко встановити та налаштувати. З цією метою я написав цей посібник для початківців. Ось короткий виклад того, яку функціональність має Nginx: -* Базовий веб-сервер -* Зворотний проксі для спрямування трафіку на кілька сайтів -* Вбудований балансир навантаження для керування трафіком на кількох веб-сайтах -* Вбудоване кешування файлів для збільшення швидкості -* WebSockets -* Підтримка FastCGI -* І, звичайно, IPv6 +- Базовий веб-сервер +- Зворотний проксі для спрямування трафіку на кілька сайтів +- Вбудований балансир навантаження для керування трафіком на кількох веб-сайтах +- Вбудоване кешування файлів для збільшення швидкості +- WebSockets +- Підтримка FastCGI +- І, звичайно, IPv6 -Це чудово! Тож просто `sudo dnf install nginx`, чи не так? Так, це приблизно так, але ми включили кілька корисних порад, які допоможуть вам почати. +Це чудово! Тож просто `sudo dnf install nginx`, так? Так, це приблизно так, але ми включили кілька корисних порад, які допоможуть вам почати. ## Передумови та припущення Вам знадобиться: -* Підключена до Інтернету машина або сервер Rocky Linux. -* Базове знайомство з командним рядком. -* Можливість запускати команди від імені root, або від імені root-користувача, або за допомогою `sudo`. -* Текстовий редактор на ваш вибір, будь то графічний або заснований на командному рядку. Для цього підручника я використовую `nano`. +- Підключена до Інтернету машина або сервер Rocky Linux. +- Базове знайомство з командним рядком. +- Можливість запускати команди від імені root, або від імені root-користувача, або за допомогою `sudo`. +- Текстовий редактор на ваш вибір, будь то графічний або заснований на командному рядку. Для цього посібника я використовую `nano`. ## Встановлення та запуск Nginx @@ -55,29 +55,33 @@ sudo dnf install nginx sudo systemctl enable --now nginx ``` -Щоб перевірити, чи встановлено останню версію *Nginx* (принаймні, останню версію зі сховищ Rocky), виконайте: +Щоб перевірити, чи встановлено останню версію _Nginx_ (принаймні, останню версію зі сховищ Rocky), виконайте: ```bash nginx -v ``` -Звідти ви можете просто почати перекидати HTML-файли в каталог `/usr/share/nginx/html/`, щоб створити простий статичний веб-сайт. Файл конфігурації веб-сайту/віртуального хосту за умовчанням називається «nginx.conf» і знаходиться в `/etc/nginx/`. Він також містить кілька інших базових конфігурацій сервера Nginx, тому навіть якщо ви перемістите фактичну конфігурацію веб-сайту в інший файл, ви, ймовірно, залишите решту "nginx.conf" недоторканою. +Звідти ви можете просто почати перетягувати HTML-файли в каталог `/usr/share/nginx/html/`, щоб створити простий статичний веб-сайт. Файл конфігурації для веб-сайту/віртуального хоста за замовчуванням називається «nginx.conf» і знаходиться у файлі `/etc/nginx/`. Він також містить кілька інших базових конфігурацій сервера Nginx, тому навіть якщо ви перемістите фактичну конфігурацію веб-сайту в інший файл, ви, ймовірно, залишите решту "nginx.conf" недоторканою. !!! Note "Примітка" + ``` У попередніх версіях цього посібника описано встановлення nginx-mainline. Однак це вже не є опцією. У більшості випадків версії Nginx у сховищах Rocky більш ніж достатньо, забезпечуючи стабільну базу з портованими виправленнями безпеки. Ті, хто все ще бажає використовувати nginx-mainline, можуть знайти методи для цього, здійснивши пошук в Інтернеті. Однак усі знайдені документи стосуватимуться Rocky Linux 8. Зауважте, що використання nginx-mainline зазвичай цілком життєздатне, але не підтримується. + ``` ## Налаштування брандмауера !!! Note "Примітка" + ``` Якщо ви інсталюєте Nginx на такий контейнер, як LXD/LXC або Docker, ви можете поки що пропустити цю частину. Брандмауер має оброблятися головною ОС. + ``` Ймовірно, ви нічого не отримаєте, якщо спробуєте переглянути веб-сторінку за IP-адресою чи доменним іменем свого комп’ютера з іншого комп’ютера. Що ж, це буде так, якщо у вас є та працює брандмауер. -Щоб відкрити необхідні порти, щоб ви могли «бачити» свої веб-сторінки, ми використаємо вбудований брандмауер Rocky Linux, `firewalld`. Для цього використовується команда `firewalld` `firewall-cmd`. Є два способи зробити це: офіційний і ручний. *У цьому випадку найкращим є офіційний спосіб,* але ви повинні знати обидва для довідки в майбутньому. +Щоб відкрити необхідні порти, щоб ви могли фактично «бачити» свої веб-сторінки, ми скористаємося вбудованим брандмауером Rocky Linux, `firewalld`. Команда `firewalld` для цього — `firewall-cmd`. Є два способи зробити це: офіційний і ручний. _У цьому випадку офіційний спосіб є найкращим,_ але вам слід знати обидва для подальшого використання. -Офіційний спосіб відкриває брандмауер для служби `http`, яка, звичайно, є службою, яка обробляє веб-сторінки. Просто запустіть це: +Офіційний спосіб відкриває брандмауер для служби `http`, яка, звичайно ж, є службою, що обробляє веб-сторінки. Просто запустіть це: ```bash sudo firewall-cmd --permanent --zone=public --add-service=http @@ -85,9 +89,9 @@ sudo firewall-cmd --permanent --zone=public --add-service=http Давайте розберемо це: -* Прапор `-–permanent` повідомляє брандмауеру забезпечити використання цієї конфігурації під час кожного перезапуску брандмауера та сервера. -* `–zone=public` повідомляє брандмауеру приймати вхідні підключення до цього порту від усіх. -* Нарешті, `--add-service=http` повідомляє `firewalld` пропускати весь HTTP-трафік до сервера. +- Прапор `-–permanent` повідомляє брандмауеру забезпечити використання цієї конфігурації під час кожного перезапуску брандмауера та сервера. +- `–zone=public` повідомляє брандмауеру приймати вхідні підключення до цього порту від усіх. +- Нарешті, `--add-service=http` повідомляє `firewalld` пропускати весь HTTP-трафік до сервера. Now here's the manual way to do it. Це майже те саме, за винятком того, що ви спеціально відкриваєте порт 80, який використовує HTTP. @@ -95,7 +99,7 @@ Now here's the manual way to do it. Це майже те саме, за виня sudo firewall-cmd --permanent --zone=public --add-port=80/tcp ``` -* `–-add-port=80/tcp` повідомляє брандмауеру приймати вхідні з’єднання через порт 80, якщо вони використовують протокол керування передачею, який вам потрібен у цьому випадку. +- `–-add-port=80/tcp` повідомляє брандмауеру приймати вхідні з’єднання через порт 80, якщо вони використовують протокол керування передачею, який вам потрібен у цьому випадку. Щоб повторити процес трафіку SSL/HTTPS, повторно запустіть команду та змініть службу та/або номер порту. @@ -105,7 +109,7 @@ sudo firewall-cmd --permanent --zone=public --add-service=https sudo firewall-cmd --permanent --zone=public --add-port=443/tcp ``` -Ці конфігурації не почнуть діяти, доки ви не примусово усунете проблему. Для цього скажіть `firewalld` перезапустити свої конфігурації, наприклад: +Ці конфігурації не почнуть діяти, доки ви не примусово усунете проблему. Щоб це зробити, накажіть `firewalld` відновити свої конфігурації, ось так: ```bash sudo firewall-cmd --reload @@ -113,13 +117,15 @@ sudo firewall-cmd --reload !!! Note "Примітка" + ```` Імовірність того, що це не спрацює, дуже мала. У тих рідкісних випадках змусьте `firewalld` виконувати ваші ставки за допомогою старої функції вимкнути і знову ввімкнути. - + ```bash systemctl restart firewalld ``` + ```` -Щоб переконатися, що порти додано правильно, запустіть `firewall-cmd --list-all`. Правильно налаштований брандмауер виглядатиме приблизно так: +Щоб переконатися, що порти додано правильно, виконайте команду `firewall-cmd --list-all`. Правильно налаштований брандмауер виглядатиме приблизно так: ```bash public (active) @@ -140,7 +146,7 @@ public (active) І це має бути все, що вам потрібно, з точки зору брандмауера. -*Тепер* ви зможете побачити веб-сторінку, яка виглядає приблизно так: +_Тепер_ ви зможете побачити веб-сторінку, яка виглядає приблизно так: ![Сторінка привітання Nginx](nginx/images/welcome-nginx.png) @@ -152,19 +158,19 @@ curl -I http://[your-ip-address] ## Створення користувача сервера та зміна кореневої папки веб-сайту -Хоча ви *можете* перемістити свій веб-сайт у каталог за замовчуванням і перейти (і це може бути добре для *Nginx*, коли він працює всередині контейнера або на сервері тестування/розробки), це не те, що ми називаємо найкращою практикою. Натомість доцільно створити конкретного користувача Linux у вашій системі для вашого веб-сайту та помістити файли веб-сайту в каталог, створений спеціально для цього користувача. +Хоча ви _можете_ просто перетягнути свій вебсайт у каталог за замовчуванням і перейти (і це може бути нормально для _Nginx_, коли він працює всередині контейнера або на тестовому/розробочому сервері), це не те, що ми називаємо найкращою практикою. Натомість доцільно створити конкретного користувача Linux у вашій системі для вашого веб-сайту та помістити файли веб-сайту в каталог, створений спеціально для цього користувача. Якщо ви хочете створити кілька веб-сайтів, гарною ідеєю буде створення різних користувачів і кореневих каталогів для організації та безпеки. У цьому посібнику у мене буде лише один користувач: на ім’я «www». Вирішити, куди розмістити файли веб-сайту, стає складніше. -Ви можете розмістити файли веб-сайту в кількох місцях залежно від налаштувань сервера. Якщо ви користуєтеся «голим металом» (фізичним) сервером або встановлюєте `nginx` безпосередньо на VPS, можливо, у вас запущено Security Enhanced Linux (SELinux). SELinux — це інструмент, який значною мірою захищає вашу машину, але він також визначає, де ви можете розміщувати певні речі, наприклад веб-сторінки. +Ви можете розмістити файли веб-сайту в кількох місцях залежно від налаштувань сервера. Якщо ви користуєтеся фізичним сервером (голим металом) або встановлюєте `nginx` безпосередньо на VPS, ймовірно, у вас запущено Security Enhanced Linux (SELinux). SELinux — це інструмент, який значною мірою захищає вашу машину, але він також визначає, де ви можете розміщувати певні речі, наприклад веб-сторінки. -Отже, якщо ви встановлюєте `nginx` безпосередньо на свій комп’ютер, ви захочете розмістити свої веб-сайти в підкаталогах кореневої папки за замовчуванням. У цьому випадку кореневою системою за замовчуванням є `/usr/share/nginx/html`, тому веб-сайт для користувача «www» може перейти до `/usr/share/nginx/html/www`. +Отже, якщо ви встановлюєте `nginx` безпосередньо на свій комп'ютер, вам потрібно буде розмістити свої вебсайти в підкаталогах кореневої папки за замовчуванням. У цьому випадку кореневий каталог за замовчуванням — `/usr/share/nginx/html`, тому вебсайт для користувача з «www» може знаходитися в `/usr/share/nginx/html/www`. -Однак, якщо ви використовуєте `nginx` у такому контейнері, як LXD/LXC, SELinux, ймовірно, *не* буде встановлено, і ви можете розмістити свій файли, де завгодно. У цьому випадку я хочу помістити всі файли веб-сайту користувача в каталог у звичайній домашній папці, наприклад: `/home/www/`. +Однак, якщо ви використовуєте `nginx` у контейнері, такому як LXD/LXC, SELinux, ймовірно, _не_ буде встановлено, і ви зможете розмістити свої файли де завгодно. У цьому випадку мені подобається розміщувати всі файли веб-сайту користувача в директорії звичайної домашньої папки, наприклад: `/home/www/`. -Я продовжу цей посібник так, ніби SELinux встановлено. Просто змініть те, що вам потрібно, залежно від вашого випадку використання. Ви також можете дізнатися більше про те, як працює SELinux, у [нашому посібнику на цю тему](../security/learning_selinux.md). +Я продовжу цей посібник так, ніби SELinux встановлено. Просто змініть те, що вам потрібно, залежно від вашого випадку використання. Ви також можете дізнатися більше про те, як працює SELinux, у [нашому посібнику з цього питання](../security/learning_selinux.md). ### Створення користувача @@ -188,17 +194,17 @@ sudo adduser -G nginx -g www -d /usr/share/nginx/html/www www --system --shell=/ Ця команда повідомляє машині: -* Зробіть користувача під назвою «www» (відповідно до середнього фрагмента тексту), -* помістити всі його файли в `/usr/share/nginx/html/www`, -* і додайте його до таких груп: «nginx» як додаткову, «www» як основну. -* Прапорець `--system` говорить, що користувач не є людиною, він зарезервований для системи. Якщо ви хочете створити облікові записи людей для керування різними веб-сайтами, це зовсім інший посібник. -* `--shell=/bin/false` гарантує, що ніхто не зможе навіть *спробувати* увійти як користувач «www». +- Зробіть користувача під назвою «www» (відповідно до середнього фрагмента тексту), +- помістити всі його файли в `/usr/share/nginx/html/www`, +- і додайте його до таких груп: «nginx» як додаткову, «www» як основну. +- Прапорець `--system` вказує, що користувач не є людиною, він зарезервований для системи. Якщо ви хочете створити облікові записи людей для керування різними веб-сайтами, це зовсім інший посібник. +- `--shell=/bin/false` гарантує, що ніхто не зможе навіть _спробувати_ увійти як користувач «www». -Група «nginx» робить справжню магію. Це дозволяє веб-серверу читати та змінювати файли, які належать користувачеві «www» і групі користувачів «www». Додаткову інформацію див. у [посібнику з керування користувачами](../../books/admin_guide/06-users.md) Rocky Linux. +Група «nginx» робить справжню магію. Це дозволяє веб-серверу читати та змінювати файли, які належать користувачеві «www» і групі користувачів «www». Див. [посібник з керування користувачами] Rocky Linux (../../books/admin_guide/06-users.md) для отримання додаткової інформації. ### Зміна кореневої папки сервера -Тепер, коли у вас є новий обліковий запис користувача, настав час змусити `nginx` шукати файли вашого веб-сайту в цій папці. Знову візьміть свій улюблений текстовий редактор. +Тепер, коли у вас є новий обліковий запис користувача, час налаштувати `nginx` на пошук файлів вашого веб-сайту в цій папці. Знову візьміть свій улюблений текстовий редактор. Наразі просто запустіть: @@ -206,7 +212,7 @@ sudo adduser -G nginx -g www -d /usr/share/nginx/html/www www --system --shell=/ sudo nano /etc/nginx/conf.d/default.conf ``` -Коли файл відкрито, знайдіть рядок, який виглядає як `root /usr/share/nginx/html;`. Змініть його на вибрану кореневу папку веб-сайту, наприклад. `root /usr/share/nginx/html/www;` (або `/home/www`, якщо ви запускаєте `nginx` у контейнерах, як я ). Збережіть і закрийте файл, а потім перевірте конфігурацію `nginx`, щоб переконатися, що ви не пропустили крапку з комою чи щось інше: +Коли файл відкрито, знайдіть рядок, який виглядає так: `root /usr/share/nginx/html;`. Змініть його на вибрану кореневу папку веб-сайту, наприклад. `root /usr/share/nginx/html/www;` (або `/home/www`, якщо ви використовуєте `nginx` у контейнерах, як я). Збережіть та закрийте файл, а потім перевірте конфігурацію `nginx`, щоб переконатися, що ви не пропустили крапку з комою чи щось інше: ```bash nginx -t @@ -227,13 +233,15 @@ sudo systemctl reload nginx !!! Note "Примітка" + ```` У малоймовірному випадку, коли м’який перезапуск не спрацює, зробіть наступне: - + ```bash sudo systemctl restart nginx ``` + ```` -Будь-які файли HTML у вашій новій кореневій папці тепер можна переглядати у вашому браузері. +Будь-які HTML-файли у вашій новій кореневій папці тепер мають бути доступні для перегляду з… вашого браузера. ### Зміна прав доступу до файлу @@ -256,14 +264,14 @@ That basically gives everyone the right to look at files on the server, but not ## Отримання SSL-сертифікатів для вашого сайту -Наразі наш [посібник із отримання сертифікатів SSL за допомогою certbot](../security/generating_ssl_keys_lets_encrypt.md) оновлено деякими основними інструкціями для `nginx`. Подивіться на це; він містить повні інструкції щодо встановлення Certbot і створення сертифікатів. +Станом на зараз, наш [посібник з отримання SSL-сертифікатів за допомогою certbot](../security/generating_ssl_keys_lets_encrypt.md) оновлено деякими основними інструкціями для `nginx`. Подивіться на це; він містить повні інструкції щодо встановлення Certbot і створення сертифікатів. Наближається час, коли веб-переглядачі можуть перестати дозволяти людям переглядати сайти без сертифікатів, тому переконайтеся, що ви отримуєте по одному для кожного сайту. ## Додаткові параметри конфігурації та посібники -* Якщо ви хочете побачити, як змусити *Nginx* працювати з PHP, зокрема з PHP-FPM, перегляньте наш [посібник із PHP у Rocky Linux](../web/php.md). -* Якщо ви хочете дізнатися, як налаштувати *Nginx* для кількох веб-сайтів, тепер у нас є [посібник саме на цю тему](nginx-multisite.md). +- Якщо ви хочете побачити, як змусити _Nginx_ працювати з PHP, зокрема з PHP-FPM, перегляньте наш [посібник із PHP у Rocky Linux](../web/php.md). +- Якщо ви хочете дізнатися, як налаштувати _Nginx_ для кількох веб-сайтів, тепер у нас є [посібник саме на цю тему](nginx-multisite.md). ## Правила SELinux @@ -283,6 +291,6 @@ sudo setsebool httpd_can_network_connect 1 -P ## Висновок -Базові встановлення та налаштування `nginx` прості, навіть якщо отримати останню версію складніше, ніж мало б бути. Але дотримуйтесь інструкцій, і ви матимете один із найкращих варіантів сервера, який швидко запрацює. +Базова інсталяція та налаштування `nginx` прості, навіть якщо отримати останню версію складніше, ніж мало б бути. Але дотримуйтесь інструкцій, і ви матимете один із найкращих варіантів сервера, який швидко запрацює. -Тепер вам потрібно піти і створити веб-сайт? Скільки це може зайняти, ще десять хвилин? *Тихо ридає у Web Designer* +Тепер вам потрібно піти і створити веб-сайт? Скільки це може зайняти, ще десять хвилин? _Тихо ридає у веб-дизайнері_ diff --git a/docs/guides/web/nginx-multisite.uk.md b/docs/guides/web/nginx-multisite.uk.md index 6da260f997..149eeccf67 100644 --- a/docs/guides/web/nginx-multisite.uk.md +++ b/docs/guides/web/nginx-multisite.uk.md @@ -15,13 +15,13 @@ tags: Ось мій обіцяний посібник із багатосайтових налаштувань Nginx у Rocky Linux. Почну з примітки для початківців; решта ви знаєте, для чого ви тут, тому прокрутіть вниз. -Привіт новачки! Однією з речей, які Nginx робить *дуже* добре, є спрямування трафіку з однієї центральної точки на кілька веб-сайтів і програм на одному сервері або на кількох інших серверах. Ця функція називається «зворотний проксі», і відносна легкість, з якою Nginx це робить, є однією з причин, чому я почав її використовувати. +Привіт новачки! Одна з речей, яку Nginx робить _дуже_ добре, це спрямування трафіку з однієї центральної точки на кілька веб-сайтів і програм на одному сервері або на кількох інших серверах. Ця функція називається «зворотний проксі», і відносна легкість, з якою Nginx це робить, є однією з причин, чому я почав її використовувати. Тут я покажу вам, як керувати декількома веб-сайтами в одній інсталяції Nginx і як це робити простим і організованим способом, який дозволить швидко й легко вносити зміни. Для тих, хто шукає подібне налаштування для Apache, перегляньте [цей посібник.](apache-sites-enabled.md) -Я поясню *багато* деталей... але, зрештою, весь процес передбачає налаштування деяких папок і створення невеликих текстових файлів. У цьому посібнику ми не будемо використовувати надто складні конфігурації веб-сайтів. Коли ви дізнаєтесь, як це зробити, це займе лише кілька хвилин, щоб виконувати кожен раз. Це легко.\* +Я поясню _багато_ деталей... але зрештою, весь процес по суті включає налаштування кількох папок та створення невеликих текстових файлів. У цьому посібнику ми не будемо використовувати надто складні конфігурації веб-сайтів. Коли ви дізнаєтесь, як це зробити, це займе лише кілька хвилин, щоб виконувати кожен раз. Це легко.\* \* Для заданих значень "легко". @@ -29,35 +29,39 @@ tags: Це все, що вам знадобиться: -- Сервер Rocky Linux, підключений до Інтернету, на якому вже працює Nginx. Якщо ви ще не зайшли так далеко, ви можете спочатку слідувати [нашому посібнику зі встановлення Nginx](nginx-mainline.md). +- Сервер Rocky Linux, підключений до Інтернету, на якому вже працює Nginx. Якщо ви ще не зайшли так далеко, можете спочатку скористатися [нашим посібником зі встановлення Nginx](nginx-mainline.md). + - Деякий комфорт із виконанням завдань у командному рядку та встановленням термінального текстового редактора, наприклад `nano`. - !!! tip "У крайньому випадку" - - ... ви можете використати щось на кшталт Filezilla або WinSCP — і звичайний текстовий редактор на основі графічного інтерфейсу користувача — щоб відтворити більшість цих кроків, але в цьому підручнику ми будемо робити все простим шляхом. + !!! tip "У крайньому випадку" + + ``` + ... ви можете використати щось на кшталт Filezilla або WinSCP — і звичайний текстовий редактор на основі графічного інтерфейсу користувача — щоб відтворити більшість цих кроків, але в цьому підручнику ми будемо робити все простим шляхом. + ``` - Принаймні один домен вказує на ваш сервер для одного з тестових веб-сайтів. Ви можете використовувати або другий домен, або субдомен для іншого. - !!! tip "Підказка" - - Налаштуйте свій хост-файл для створення імітованих доменних імен, якщо ви робите це на локальному сервері. Інструкції нижче. + !!! tip + + Налаштуйте свій хост-файл для створення імітованих доменних імен, якщо ви робите це на локальному сервері. Інструкції нижче. - Ми припускаємо, що ви використовуєте Nginx на голому сервері або звичайному VPS і SELinux працює. Усі інструкції будуть сумісні з SELinux за замовчуванням. -- *Усі команди потрібно запускати від імені користувача root,* увійшовши в систему як користувач root або використовуючи `sudo`. + +- _Усі команди потрібно запускати від імені користувача root,_ увійшовши в систему як користувач root або використовуючи `sudo`. ## Налаштування ваших папок і тестових сайтів ### Папки сайту -По-перше, вам знадобиться кілька папок для файлів вашого сайту. Коли ви вперше встановлюєте Nginx, усі «демо» файли веб-сайту будуть у `/usr/share/nginx/html`. Це добре, якщо ви розміщуєте лише один сайт, але ми станемо цікавішими. Наразі проігноруйте каталог `html` і просто перейдіть до його батьківської папки: +По-перше, вам знадобиться кілька папок для файлів вашого сайту. Під час першої інсталяції Nginx усі файли "демо-версії" веб-сайту будуть знаходитися в `/usr/share/nginx/html`. Це добре, якщо ви розміщуєте лише один сайт, але ми станемо цікавішими. Ігноруйте каталог `html` поки що та просто перейдіть до його батьківської папки: ```bash cd /usr/share/nginx ``` -Тестовими доменами для цього підручника будуть `site1.server.test` і `site2.server.test`, і ми збираємося назвати папки веб-сайтів відповідно. Ви, звичайно, повинні змінити ці домени на ті, які використовуєте. Однак (і ось трюк, який я взяв від Smarter People^TM^), ми будемо писати доменні імена «задом наперед». +Тестовими доменами для цього посібника будуть `site1.server.test` та `site2.server.test`, і ми назвемо ці папки вебсайтів відповідно. Ви, звичайно, повинні змінити ці домени на ті, які використовуєте. Однак (і ось трюк, який я взяв від Smarter People^TM^), ми будемо писати доменні імена «задом наперед». -напр. "yourwebsite.com" буде розміщено в папці під назвою `com.yourwebsite`. Майте на увазі, що ви можете *буквально* назвати ці папки як завгодно, але для цього методу є вагома причина, яку я описав нижче. +напр. «yourwebsite.com» поміститься в папку під назвою `com.yourwebsite`. Зверніть увагу, що ви можете _буквально_ називати ці папки як завгодно, але для цього методу є вагома причина, яку я виклав нижче. Наразі просто створіть свої папки: @@ -66,13 +70,15 @@ mkdir -p test.server.site1/html mkdir -p test.server.site2/html ``` -Отже, ця команда створить, наприклад, папку `test.server.site1` і помістить у неї іншу папку під назвою `html`. Саме там ви розмістите файли, які хочете обслуговувати через веб-сервер. (Ви також можете назвати це "webroot" або щось подібне.) +Отже, ця команда створить, наприклад, папку `test.server.site1` і помістить у неї іншу папку з назвою `html`. Саме там ви розмістите файли, які хочете обслуговувати через веб-сервер. (Ви також можете назвати це "webroot" або щось подібне.) -Це робиться для того, щоб ви могли розміщувати пов’язані з веб-сайтами файли, які ви *не* хочете оприлюднювати, у батьківському каталозі, зберігаючи все в одному місці. +Це робиться для того, щоб ви могли розміщувати пов’язані з веб-сайтами файли, які ви _не_ хочете оприлюднювати, у батьківському каталозі, зберігаючи все в одному місці. !!! Note "Примітка" + ``` Прапорець `-p` повідомляє команді `mkdir` про створення будь-яких відсутніх папок у щойно визначеному шляху, тому вам не потрібно створювати кожну папку по одній. + ``` Для цього тесту ми робимо самі «веб-сайти» дуже простими. Просто створіть файл HTML у першій папці за допомогою вашого улюбленого текстового редактора: @@ -97,7 +103,7 @@ nano test.server.site1/html/index.html ``` -Збережіть і закрийте файл, а потім повторіть кроки з папкою `test.server.site2`, змінивши «Сайт 1» на «Сайт 2» у HTML-коді вище. Це робиться для того, щоб пізніше ми могли бути впевнені, що все працює належним чином. +Збережіть та закрийте файл, потім повторіть кроки з папкою `test.server.site2`, змінивши "Site 1" на "Site 2" у наведеному вище HTML-коді. Це робиться для того, щоб пізніше ми могли бути впевнені, що все працює належним чином. Ваші тестові веб-сайти готові; їдемо далі. @@ -109,11 +115,11 @@ nano test.server.site1/html/index.html cd /etc/nginx/ ``` -Якщо ви запустите команду `ls`, щоб побачити, які тут файли та папки, ви побачите багато різних речей, більшість із яких сьогодні неактуальні. Слід звернути увагу на такі: +Якщо ви виконаєте команду `ls`, щоб побачити, які файли та папки тут знаходяться, ви побачите купу різних речей, більшість з яких сьогодні неактуальні. Слід звернути увагу на такі: -- `nginx.conf` — це файл, який містить стандартну конфігурацію Nginx. Ми відредагуємо це пізніше. -- `conf.d` — це каталог, куди ви можете розміщувати власні конфігураційні файли. Ви *можете* використовувати це для веб-сайтів, але краще використовувати його для налаштувань окремих функцій, які ви хочете використовувати на всіх своїх веб-сайтах. -- `default.d` – це каталог, куди *може* перейти конфігурація вашого веб-сайту, якщо на сервері працює лише один сайт або якщо ваш сервер має " первинний" веб-сайт. Залиште це поки що. +- `nginx.conf` — це файл, який містить, як ви вже здогадалися, конфігурацію Nginx за замовчуванням. Ми відредагуємо це пізніше. +- `conf.d` — це каталог, де ви можете розмістити власні файли конфігурації. Ви _могли б_ використовувати це для вебсайтів, але краще використовувати це для налаштувань окремих функцій, які ви хочете використовувати на всіх своїх вебсайтах. +- `default.d` — це каталог, куди _може_ потрапити конфігурація вашого вебсайту, якщо на сервері працює лише один сайт або якщо на вашому сервері є «основний» вебсайт. Залиште це поки що. Ми хочемо створити дві нові папки під назвою `sites-available` та `sites-enabled`: @@ -122,30 +128,32 @@ mkdir sites-available mkdir sites-enabled ``` -Ми розмістимо всі конфігураційні файли нашого веб-сайту в папці `sites-available`. Ви можете працювати над конфігураційними файлами там скільки завгодно, поки не будете готові активувати файли за допомогою символічного посилання на папку `sites-enabled`. +Що ми зробимо, так це помістимо всі файли конфігурації нашого вебсайту в папку `sites-available`. Там ви можете працювати з файлами конфігурації скільки завгодно, доки не будете готові активувати файли за допомогою символічного посилання на папку `sites-enabled`. Нижче я покажу вам, як це працює. Наразі ми закінчили із папками. !!! Note "Чому ви (можете) захотіти записати свої домени в зворотному порядку:" + ```` Простіше кажучи, це організаційна річ, яка особливо корисна під час використання командного рядка із завершенням табуляції, але вона все ще є досить цінною для програм на основі графічного інтерфейсу користувача. Він розроблений для людей, які запускають *багато* веб-сайтів або програм на сервері. Усі папки вашого веб-сайту (і файли конфігурації) будуть упорядковані в алфавітному порядку спочатку за доменом верхнього рівня (наприклад, .com, .org тощо), потім за основним доменом, а потім за будь-якими субдоменами. Під час пошуку в довгому списку доменів може бути легше звузити те, що ви шукаєте. Це також полегшує сортування ваших папок і конфігураційних файлів за допомогою інструментів командного рядка. Щоб отримати список усіх папок, пов’язаних із певним доменом, ви можете виконати: - + ```bash ls /usr/share/nginx/ | grep com.yoursite* ``` - - + + Що виведе щось на зразок: - + ``` com.yoursite.site1 com.yoursite.site2 com.yoursite.site3 ``` + ```` ## Налаштування файлів конфігурації @@ -233,9 +241,11 @@ systemctl restart nginx !!! Note "Примітка" + ``` Для абсолютних новачків символічні посилання — це спосіб дозволити файлам удавати, що вони знаходяться у двох папках одночасно. Змініть вихідний файл (або «ціль»), і він зміниться всюди, де ви на нього посилаєтеся. Оригінал буде змінено, якщо ви використовуєте програму для редагування файлу за посиланням. Однак нічого не станеться з оригінальним файлом, якщо ви видалите посилання на ціль. Цей трюк дозволяє нам помістити файли конфігурації веб-сайту в робочий каталог (`sites-available`), а потім «активувати» їх, посилаючись на ці файли з `sites-enabled`. + ``` Я покажу вам, що я маю на увазі. Створіть файл конфігурації для першого веб-сайту так: @@ -287,27 +297,31 @@ ln -s ../sites-available/test.server.site1.conf systemctl restart nginx ``` -Потім наведіть свій браузер на домен, який ви використовуєте для цього першого сайту (у моєму випадку: site1.server.test), і знайдіть повідомлення «Це сайт 1», яке ми розмістили у файлі HTML. Якщо у вашій системі встановлено `curl`, ви можете запустити `curl site1.server.test` і перевірити, чи завантажується HTML-код у вашому терміналі. +Потім наведіть свій браузер на домен, який ви використовуєте для цього першого сайту (у моєму випадку: site1.server.test), і знайдіть повідомлення «Це сайт 1», яке ми розмістили у файлі HTML. Якщо у вашій системі встановлено `curl`, ви можете запустити `curl site1.server.test` і перевірити, чи завантажиться HTML-код у вашому терміналі. !!! Note "Примітка" + ``` Деякі браузери (з найкращими намірами) змушують вас використовувати HTTPS, коли ви вводите домен свого сервера в адресний рядок. Якщо у вас не налаштовано HTTPS, це викличе помилки. Не забудьте вручну вказати "http://" в адресному рядку браузера, щоб уникнути цієї проблеми. Якщо це не спрацює, очистіть кеш або використовуйте менш вимогливий браузер для цієї частини тестування. Я рекомендую [Min](https://minbrowser.org). + ``` -Якщо *все* піде правильно, *повторіть кроки вище, змінивши назви файлів і вміст файлів конфігурації*. "site1" до "site2" і все це. Коли у вас є файли конфігурації та символічні посилання для сайту 1 і сайту 2, і ви перезапустили Nginx, це має виглядати так: +Якщо _все_ пройде правильно, _повторіть вищезазначені кроки, змінюючи назви файлів та вміст файлів конфігурації_ по ходу роботи. "site1" до "site2" і все це. Коли у вас є файли конфігурації та символічні посилання для сайту 1 і сайту 2, і ви перезапустили Nginx, це має виглядати так: ![Скріншот двох тестових веб-сайтів поруч](nginx/images/multisite-nginx.png) !!! Note "Примітка" + ```` Ви також можете створювати посилання за межами каталогу з підтримкою сайтів за допомогою довгої форми команди `ln -s`. Це виглядатиме як `ln -s [source-file] [link]`. У цьому контексті це: - + ```bash ln -s /etc/nginx/sites-available/test.server.site1.conf /etc/nginx/sites-enabled/test.server.site1.conf ``` + ```` ### Відключення веб-сайту @@ -323,13 +337,13 @@ rm /etc/nginx/sites-enabled/test.server.site1.conf Ця частина однозначно для новачків. Усі інші, ймовірно, можуть пропустити. -Цей розділ *тільки* застосовується, якщо ви пробуєте цей посібник у локальному середовищі розробки. Це якщо ви запускаєте свій тестовий сервер на своїй робочій станції або іншому комп’ютері у вашій локальній домашній чи корпоративній мережі. +Тож цей розділ застосовується _лише_, якщо ви випробовуєте цей посібник у локальному середовищі розробки. Це якщо ви запускаєте свій тестовий сервер на своїй робочій станції або іншому комп’ютері у вашій локальній домашній чи корпоративній мережі. Оскільки вказати зовнішні домени на ваші локальні комп’ютери – це складно (і потенційно небезпечно, якщо ви не знаєте, що робите), ви можете налаштувати кілька «підроблених» доменів, які добре працюватимуть у вашій локальній мережі й ніде більше. -Найпростіший спосіб зробити це за допомогою хост-файлу на вашому комп’ютері. Файл хосту – це лише текстовий файл, який може замінити налаштування DNS. Ви можете вручну вказати доменне ім’я для будь-якої IP-адреси. Однак він працюватиме *лише* на цьому одному комп’ютері. +Найпростіший спосіб зробити це за допомогою хост-файлу на вашому комп’ютері. Файл хосту – це лише текстовий файл, який може замінити налаштування DNS. Ви можете вручну вказати доменне ім’я для будь-якої IP-адреси. Однак це працюватиме _лише_ на цьому одному комп'ютері. -Отже, на Mac і Linux файл host знаходиться в каталозі `/etc/` і його можна дуже легко редагувати за допомогою командного рядка (вам знадобиться root-доступ). Якщо ви працюєте на робочій станції Rocky Linux, просто запустіть: +Отже, на Mac та Linux файл hosts знаходиться в каталозі `/etc/` і його можна дуже легко редагувати через командний рядок (вам знадобиться root-доступ). Якщо ви працюєте на робочій станції Rocky Linux, просто запустіть: ```bash nano /etc/hosts @@ -355,12 +369,12 @@ nano /etc/hosts ## Налаштування SSL-сертифікатів для ваших сайтів -Перегляньте [наш посібник із отримання сертифікатів SSL за допомогою Let's Encrypt і certbot](../security/generating_ssl_keys_lets_encrypt.md). Інструкції там працюватимуть чудово. +Перегляньте [наш посібник з отримання SSL-сертифікатів за допомогою Let's Encrypt та certbot](../security/generating_ssl_keys_lets_encrypt.md). Інструкції там працюватимуть чудово. ## Висновок -Пам’ятайте, що більшість угод про організацію папок/файлів і іменування є технічно необов’язковими. Конфігураційні файли вашого веб-сайту здебільшого мають зберігатися всередині `/etc/nginx/`, а `nginx.conf` має знати, де знаходяться ці файли. +Пам’ятайте, що більшість угод про організацію папок/файлів і іменування є технічно необов’язковими. Файли конфігурації вашого вебсайту здебільшого потрібно розмістити будь-де всередині `/etc/nginx/`, а `nginx.conf` має знати, де знаходяться ці файли. -Фактичні файли веб-сайту мають бути десь у `/usr/share/nginx/`. +Фактичні файли веб-сайту повинні знаходитися десь у `/usr/share/nginx/`, а решта — це вже питання. -Спробуйте, попрацюйте з Science^TM^ і не забудьте запустити `nginx -t` перед перезапуском Nginx, щоб переконатися, що ви не пропустили крапку з комою або що завгодно. Це заощадить вам багато часу. +Спробуйте, потренуйтеся в Science^TM^ і не забудьте виконати `nginx -t` перед перезапуском Nginx, щоб переконатися, що ви не пропустили крапку з комою чи щось подібне. Це заощадить вам багато часу. diff --git a/docs/guides/web/php.uk.md b/docs/guides/web/php.uk.md index c82a3434f9..82c6262256 100644 --- a/docs/guides/web/php.uk.md +++ b/docs/guides/web/php.uk.md @@ -11,184 +11,104 @@ tags: # PHP та PHP-FPM -**PHP** (**P**HP **H**ypertext **P**reprocessor) — вихідна мова сценаріїв, спеціально розроблена для розробки веб-додатків. У 2024 році PHP становив трохи менше 80% веб-сторінок, створених у світі. PHP має відкритий код і є ядром найвідоміших CMS (WordPress, Drupal, Joomla!, Magento, ...). +**PHP** (**P**HP \*\*Hypertext **P**reprocessor) — це мова програмування вихідного коду, спеціально розроблена для розробки вебзастосунків. У 2024 році PHP становив трохи менше 80% веб-сторінок, створених у світі. PHP має відкритий код і є ядром найвідоміших CMS (WordPress, Drupal, Joomla!, Magento, ...). -**PHP-FPM** (**F**astCGI **P**rocess **M**anager) інтегровано в PHP з версії 5.3.3. Версія PHP FastCGI надає додаткові функції. +**PHP-FPM** (**F**astCGI **P**process **M**anager) інтегровано в PHP, починаючи з версії 5.3.3. Версія PHP FastCGI надає додаткові функції. ## Загальні положення -**CGI** (**C**common **G**ateway **I**interface) і **FastCGI** дозволяють спілкуватися між веб-сервером (Apache, Nginx, ...) і мовою розробки (Php, Python, Java): +**CGI** (\*\*Звичайний інтерфейс **Gateway**) та **FastCGI** дозволяють зв'язок між веб-сервером (Apache, Nginx та інші) та мовою розробки (PHP, Python, Java): -* У випадку **CGI** кожен запит призводить до створення **нового процесу**, який менш ефективний в умовах виконання. -* **FastCGI** покладається на **певну кількість процесів** для обробки своїх клієнтських запитів. +- У випадку **CGI** кожен запит призводить до створення **нового процесу**, який менш ефективний в умовах виконання. +- **FastCGI** покладається на **певну кількість процесів** для обробки своїх клієнтських запитів. PHP-FPM, **крім кращої продуктивності**, забезпечує: -* Можливість кращого **поділу програм**: запуск процесів з різними uid/gid, з персоналізованими файлами `php.ini`, -* Управління статистикою, -* Керування журналами, -* Динамічне керування процесами та перезапуск без переривання обслуговування («витончений»). +- Можливість кращого **поділу програм**: запуск процесів з різними uid/gid, з персоналізованими файлами `php.ini`, +- Управління статистикою, +- Керування журналами, +- Динамічне керування процесами та перезапуск без переривання обслуговування («витончений»). !!! Note "Примітка" + ``` Оскільки Apache має модуль PHP, php-fpm частіше використовується на сервері Nginx. + ``` ## Вибір версії PHP -Rocky Linux, як і його вихідна версія, пропонує багато версій мови. Деякі з них досягли кінця свого життя, але зберігаються для розміщення історичних програм, які ще несумісні з новими версіями PHP. Перегляньте сторінку [підтримуваних версій](https://www.php.net/supported-versions.php) веб-сайту php.net, щоб вибрати підтримувану версію. +Rocky Linux, як і його апстрім, пропонує багато версій мови. Деякі з них досягли кінця свого терміну служби, але продовжують розміщувати історичні програми, які ще не сумісні з новими версіями PHP. Будь ласка, зверніться до сторінки [підтримувані версії](https://www.php.net/supported-versions.php) на вебсайті php.net, щоб вибрати підтримувану версію. Щоб отримати список доступних версій, просто введіть наступну команду: -=== "9.3 Список модулів PHP" - - ```bash - $ sudo dnf module list php - - Rocky Linux 9 - AppStream - Name Stream Profiles Summary - php 8.1 [d] common [d], devel, minimal - - Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled - ``` - - - Репозиторій Remi пропонує новіші версії PHP, ніж репозиторій Appstream, включаючи версії 8.2 і 8.3. - - Щоб установити репозиторій Remi, виконайте таку команду: - - ```bash - sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-9.rpm - ``` - - - Після встановлення репозиторію Remi увімкніть його, виконавши таку команду. - - ```bash - sudo dnf config-manager --set-enabled remi - ``` +## Визначення останньої версії PHP +Щоб визначити останню доступну версію PHP, використовуйте: - Тепер ви можете активувати новіший модуль (PHP 8.3), ввівши таку команду: - - ```bash - sudo dnf module enable php:remi-8.3 - ``` - -=== "8.9 Список модулів PHP" - - ```bash - $ sudo dnf module list php - - Rocky Linux 8 - AppStream - Name Stream Profiles Summary - php 7.2 [d] common [d], devel, minimal PHP scripting language - php 7.3 common [d], devel, minimal PHP scripting language - php 7.4 common [d], devel, minimal PHP scripting language - php 8.0 common [d], devel, minimal PHP scripting language - - Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled - ``` +```bash +$ sudo dnf module list php + +Last metadata expiration check: 1:57:32 ago on Wed 22 Oct 2025 11:49:06 AM UTC. +Rocky Linux 8 - AppStream +Name Stream Profiles Summary +php 7.2 [d] common [d], devel, minimal PHP scripting language +php 7.3 common [d], devel, minimal PHP scripting language +php 7.4 common [d], devel, minimal PHP scripting language +php 8.0 common [d], devel, minimal PHP scripting language +php 8.2 common [d], devel, minimal PHP scripting language + +Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled +``` +Rocky надає зі свого репозиторію AppStream різні модулі PHP. - Rocky надає зі свого репозиторію AppStream різні модулі PHP. - - Ви зауважите, що стандартною версією Rocky 8.9 є 7.2, термін служби якої вже закінчився на момент написання статті. - - Ви можете активувати новіший модуль, ввівши таку команду: +Ви помітите, що версія Rocky 8 за замовчуванням — 7.2, термін служби якої на момент написання цієї статті вже закінчився. - ```bash - sudo dnf module enable php:8.0 - ============================================================================================== - Package Architecture Version Repository Size - ============================================================================================== - Enabling module streams: - httpd 2.4 - nginx 1.14 - php 8.0 +Ви можете активувати новіший модуль, ввівши таку команду: - Transaction Summary - ============================================================================================== +```bash +sudo dnf module enable php:8.2 +============================================================================================== +Package Architecture Version Repository Size +============================================================================================== +Enabling module streams: +httpd 2.4 +nginx 1.14 +php 8.2 - Is this ok [y/N]: +Transaction Summary +============================================================================================== - Transaction Summary - ============================================================================================== +Is this ok [y/N]: y +Complete! - Is this ok [y/N]: y - Complete! - ``` +``` Тепер можна переходити до встановлення движка PHP. ## Режим PHP cgi -Спочатку давайте подивимося, як встановити та використовувати PHP у режимі CGI. Ми можемо змусити його працювати лише з веб-сервером Apache та його модулем `mod_php`. Далі в цьому документі, у частині FastCGI (php-fpm), ми побачимо, як інтегрувати PHP у Nginx (але також Apache). +Спочатку встановіть PHP у режимі CGI. Ви можете змусити його працювати лише за допомогою веб-сервера Apache та його модуля `mod_php`. Далі в цьому документі ви побачите, як інтегрувати PHP у Nginx та Apache. -### Встановлення +### Встановлення PHP Встановлення PHP є відносно тривіальним, оскільки воно складається з встановлення основного пакета та декількох модулів, які вам знадобляться. -У наведеному нижче прикладі встановлюється PHP із модулями, які зазвичай встановлюються разом із ним. - -=== "9.3 встановлення PHP" - - ```bash - sudo dnf install php php-cli php-gd php-curl php-zip php-mbstring - ``` - - - Вам буде запропоновано імпортувати ключі GPG для сховищ epel9 (додаткові пакети для Enterprise Linux 9) і Remi під час встановлення. Введіть y, щоб імпортувати ключі: - - ```bash - Extra Packages for Enterprise Linux 9 - x86_64 - Importing GPG key 0x3228467C: - Userid : "Fedora (epel9) " - Fingerprint: FF8A D134 4597 106E CE81 3B91 8A38 72BF 3228 467C - From : /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-9 - Is this ok [y/N]: y - Key imported successfully - Remi's RPM repository for Enterprise Linux 9 - x86_64 - Importing GPG key 0x478F8947: - Userid : "Remi's RPM repository (https://rpms.remirepo.net/) " - Fingerprint: B1AB F71E 14C9 D748 97E1 98A8 B195 27F1 478F 8947 - From : /etc/pki/rpm-gpg/RPM-GPG-KEY-remi.el9 - Is this ok [y/N]: y - Key imported successfully - Running transaction check - Transaction check succeeded. - Running transaction test - Transaction test succeeded. - - Complete! - ``` - -=== "8.9 встановлення PHP" +У наведеному прикладі встановлюється PHP з модулями, які зазвичай встановлюються разом з ним: - ```bash - sudo dnf install php php-cli php-gd php-curl php-zip php-mbstring - ``` +```bash +sudo dnf install php php-cli php-gd php-curl php-zip php-mbstring +``` Ви можете перевірити, чи відповідає встановлена версія очікуваній: -=== "9.3 перевірка версії PHP" - - ```bash - $ php -v - PHP 8.3.2 (cli) (built: Jan 16 2024 13:46:41) (NTS gcc x86_64) - Copyright (c) The PHP Group - Zend Engine v4.3.2, Copyright (c) Zend Technologies - with Zend OPcache v8.3.2, Copyright (c), by Zend Technologies - ``` - -=== "8.9 перевірка версії PHP" - - ```bash - $ php -v - PHP 7.4.19 (cli) (built: May 4 2021 11:06:37) ( NTS ) - Copyright (c) The PHP Group - Zend Engine v3.4.0, Copyright (c) Zend Technologies - with Zend OPcache v7.4.19, Copyright (c), by Zend Technologies - ``` +```bash +php -v +PHP 8.2.28 (cli) (built: Mar 11 2025 17:58:12) (NTS gcc x86_64) +Copyright (c) The PHP Group +Zend Engine v4.2.28, Copyright (c) Zend Technologies + with Zend OPcache v8.2.28, Copyright (c), by Zend Technologies +``` ### Конфігурація @@ -196,27 +116,29 @@ Rocky Linux, як і його вихідна версія, пропонує ба Щоб обслуговувати сторінки PHP у режимі CGI, ви повинні встановити сервер apache, налаштувати його, активувати та запустити. -* Встановлення: +- Встановлення: - ```bash - sudo dnf install httpd - ``` - - * Активація: + ```bash + sudo dnf install httpd + ``` - ```bash - sudo systemctl enable --now httpd - sudo systemctl status httpd + ``` + * Акттивація: ``` -* Не забудьте налаштувати брандмауер: + ```bash + sudo systemctl enable --now httpd + sudo systemctl status httpd + ``` - ```bash - sudo firewall-cmd --add-service=http --permanent - sudo firewall-cmd --reload - ``` +- Не забудьте налаштувати брандмауер: -Vhost за замовчуванням має працювати з коробки. PHP надає функцію `phpinfo()`, яка генерує зведену таблицю його конфігурації. Дуже корисно перевірити ефективність PHP. Однак будьте обережні, щоб не залишати такі тестові файли на своїх серверах. Вони становлять величезний ризик для безпеки вашої інфраструктури. + ```bash + sudo firewall-cmd --add-service=http --permanent + sudo firewall-cmd --reload + ``` + +Vhost за замовчуванням має запрацювати одразу. PHP надає функцію `phpinfo()`, яка генерує зведену таблицю своєї конфігурації. Це дуже корисно для перевірки належної роботи PHP. Однак будьте обережні, щоб не залишати такі тестові файли на своїх серверах. Вони становлять величезний ризик для безпеки вашої інфраструктури. Створіть файл `/var/www/html/info.php` (`/var/www/html` є каталогом vhost за замовчуванням конфігурації apache за замовчуванням): @@ -228,23 +150,25 @@ phpinfo(); Використовуйте веб-браузер, щоб перевірити, чи сервер працює належним чином, перейшовши на сторінку [http://your-server-ip/info.php ](http://your-server-ip/info.php). -!!! Warning "Важливо" +!!! Warning "Увага" - Не залишайте файл info.php на своєму сервері! + ``` + Не залишайте файл `info.php` на своєму сервері! + ``` ## PHP-FPM (FastCGI) Як ми зазначали раніше в цьому документі, перехід веб-хостингу в режим PHP-FPM має багато переваг. -### Встановлення +### Встановлення PHP-FPM -Встановлення обмежено пакетом php-fpm: +Щоб встановити пакет `php-fpm`, використовуйте: ```bash sudo dnf install php-fpm ``` -Оскільки php-fpm є системною службою, її необхідно активувати та запустити: +Оскільки `php-fpm` є сервісом з точки зору системи, ви повинні активувати та запустити його: ```bash sudo systemctl enable --now php-fpm @@ -253,7 +177,7 @@ sudo systemctl status php-fpm ### Конфігурація -Основний файл конфігурації зберігається в `/etc/php-fpm.conf`. +Основний файл конфігурації знаходиться у файлі `/etc/php-fpm.conf`: ```bash include=/etc/php-fpm.d/*.conf @@ -265,11 +189,13 @@ daemonize = yes !!! Note "Примітка" - Конфігураційні файли php-fpm широко коментуються. Ідіть і подивіться! + ``` + Файли конфігурації `php-fpm` широко коментуються. Зайдіть та подивіться! + ``` Як бачите, файли в каталозі `/etc/php-fpm.d/` із розширенням `.conf` завжди включені. -За замовчуванням пул процесів PHP під назвою `www` оголошено в `/etc/php-fpm.d/www.conf`. +За замовчуванням, `php-fpm` оголошує пул процесів PHP з назвою `www` у `/etc/php-fpm.d/www.conf`: ```bash [www] @@ -295,12 +221,12 @@ php_value[session.save_path] = /var/lib/php/session php_value[soap.wsdl_cache_dir] = /var/lib/php/wsdlcache ``` -| Інструкції | Опис | -| ---------- | ------------------------------------------------------------------------------------------------------------------------ | +| Інструкції | Опис | +| ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `[pool]` | Ім'я пулу процесів. Конфігураційний файл може містити декілька пулів процесів (ім’я пулу в дужках починає новий розділ). | -| `listen` | Визначає інтерфейс прослуховування або використовуваний сокет Unix. | +| `listen` | Визначає інтерфейс прослуховування або використовуваний сокет Unix. | -#### Налаштування способу доступу до процесів php-fpm +#### Налаштування способу доступу до процесів `php-fpm` Є 2 способи підключення. @@ -308,25 +234,27 @@ php_value[soap.wsdl_cache_dir] = /var/lib/php/wsdlcache `listen = 127.0.0.1:9000`. -Або через сокет Unix: +Або з Unix-сокетом: `listen = /run/php-fpm/www.sock`. !!! Note "Примітка" + ``` Використання сокета, коли веб-сервер і сервер PHP знаходяться на одній машині, усуває рівень TCP/IP і оптимізує продуктивність. + ``` -Під час роботи через інтерфейс вам потрібно налаштувати `listen.owner`, `listen.group`, `listen.mode`, щоб указати власника, групу власників і права на сокет Unix. **Попередження:** обидва сервери (веб і PHP) повинні мати права доступу до сокета. +Під час роботи з інтерфейсом потрібно налаштувати `listen.owner`, `listen.group`, `listen.mode`, щоб вказати власника, групу власників та права Unix-сокета. **Попередження:** Обидва сервери (веб- і PHP) повинні мати права доступу до сокета. -Під час роботи через сокет вам потрібно налаштувати `listen.allowed_clients`, щоб обмежити доступ до сервера PHP певними IP-адресами. +Під час роботи з сокетом необхідно налаштувати `listen.allowed_clients`, щоб обмежити доступ до PHP-сервера певним IP-адресам. Приклад: `listen.allowed_clients = 127.0.0.1` #### Статична або динамічна конфігурація -Процесами PHP-FPM можна керувати статично або динамічно. +Ви можете керувати процесами PHP-FPM статично або динамічно. -У статичному режимі кількість дочірніх процесів встановлюється значенням `pm.max_children`; +У статичному режимі значення `pm.max_children` встановлює кількість дочірніх процесів: ```bash pm = static @@ -349,19 +277,21 @@ pm.max_spare_servers = 3 PHP-FPM створить новий процес замість того, який обробив кількість запитів, еквівалентну `pm.max_requests`. -За замовчуванням `pm.max_requests` встановлено на 0, що означає, що процеси ніколи не повторюються. Використання параметра `pm.max_requests` може бути цікавим для програм із витоками пам’яті. +За замовчуванням значення `pm.max_requests` дорівнює 0, що означає, що процеси ніколи не перезавантажуються. Використання опції `pm.max_requests` може бути цікавим для програм з витоками пам'яті. -Існує третій режим роботи, режим `ondemand`. Цей режим запускає процес лише тоді, коли він отримує запит. Цей режим не є оптимальним для сайтів із сильним впливом і має бути зарезервований для конкретних потреб (сайти зі слабкими запитами, сервер керування тощо). +Існує третій режим роботи – режим «на вимогу». Цей режим запускає процес лише тоді, коли він отримує запит. Це не оптимальний режим для сайтів із сильним впливом, і вам слід зарезервувати його для конкретних потреб (сайти з дуже слабкими запитами, адміністраторська база даних тощо). !!! Note "Примітка" + ``` Конфігурація режиму роботи PHP-FPM необхідна для забезпечення оптимальної роботи вашого веб-сервера. + ``` #### Статус процесу -PHP-FPM пропонує, як і Apache та його модуль `mod_status`, сторінку, яка вказує на статус процесу. +PHP-FPM пропонує, подібно до Apache та його модуля `mod_status`, сторінку, що вказує на стан процесу. -Щоб активувати сторінку, налаштуйте її шлях доступу за допомогою директиви `pm.status_path`: +Щоб активувати сторінку, встановіть її шлях доступу за допомогою директиви `pm.status_path`: ```bash pm.status_path = /status @@ -387,7 +317,7 @@ slow requests: 0 #### Реєстрація довгих запитів -Директива slowlog вказує файл, який отримує надто довгі запити (тобто час яких перевищує значення директиви `request_slowlog_timeout`). +Директива `slowlog` вказує файл, який приймає логування занадто довгих запитів (наприклад, файлів, час яких перевищує значення директиви `request_slowlog_timeout`). Розташування згенерованого файлу за замовчуванням — `/var/log/php-fpm/www-slow.log`. @@ -400,7 +330,7 @@ slowlog = /var/log/php-fpm/www-slow.log ### Інтеграція NGinx -Налаштування за замовчуванням nginx уже включають необхідну конфігурацію, щоб PHP працював із PHP-FPM. +Налаштування `nginx` за замовчуванням вже включає необхідну конфігурацію для роботи PHP з PHP-FPM. Файл конфігурації `fastcgi.conf` (або `fastcgi_params`) знаходиться в `/etc/nginx/`: @@ -432,7 +362,7 @@ fastcgi_param SERVER_NAME $server_name; fastcgi_param REDIRECT_STATUS 200; ``` -Щоб nginx міг обробляти файли `.php`, у файл конфігурації сайту потрібно додати такі директиви: +Щоб `nginx` обробляв файли `.php`, потрібно додати такі директиви до файлу конфігурації сайту: Якщо PHP-FPM прослуховує порт 9000: @@ -443,7 +373,7 @@ location ~ \.php$ { } ``` -Якщо php-fpm прослуховує сокет Unix: +Якщо `php-fpm` прослуховує сокет Unix: ```bash location ~ \.php$ { @@ -454,7 +384,7 @@ location ~ \.php$ { ### Інтеграція Apache -Конфігурація apache для використання пулу PHP досить проста. Вам просто потрібно використовувати проксі-модулі з директивою `ProxyPassMatch`, наприклад: +Конфігурація Apache для використання пулу PHP досить проста. Ви повинні використовувати проксі-модулі з директивою `ProxyPassMatch`, наприклад: ```bash @@ -474,9 +404,9 @@ location ~ \.php$ { ### Надійна конфігурація пулів PHP -Важливо оптимізувати кількість запитів, які можна буде обслуговувати, і проаналізувати пам’ять, яку використовують скрипти PHP, щоб оптимізувати максимальну кількість запущених потоків. +Важливо оптимізувати кількість обслуговуваних запитів та проаналізувати пам'ять, що використовується PHP-скриптами, щоб оптимізувати максимальну кількість запущених потоків. -Перш за все, нам потрібно знати середній обсяг пам’яті, який використовується процесом PHP за допомогою команди: +Налаштування за замовчуванням nginx уже включають необхідну конфігурацію, щоб PHP працював із PHP-FPM. ```bash while true; do ps --no-headers -o "rss,cmd" -C php-fpm | grep "pool www" | awk '{ sum+=$1 } END { printf ("%d%s\n", sum/NR/1024,"Mb") }' >> avg_php_proc; sleep 60; done @@ -484,11 +414,11 @@ while true; do ps --no-headers -o "rss,cmd" -C php-fpm | grep "pool www" | awk ' Через деякий час це повинно дати нам досить точне уявлення про середній обсяг пам’яті процесу PHP на цьому сервері. -У решті цього документа скажемо, що результатом є відбиток пам’яті 120 МБ на процес при повному завантаженні. +У решті цього документа показано обсяг пам'яті, що займає 120 мегабайт на процес при повному навантаженні. -На сервері з 8 Гб оперативної пам’яті, зберігаючи 1 Гб для системи та 1 Гб для OPCache (див. решту цього документа), залишається 6 Гб для обробки запитів PHP від клієнтів. +Сервер з 8 гігабайтами оперативної пам'яті, залишаючи 1 гігабайт для системи та 1 гігабайт для OPCache (див. решту цього документа), залишає 6 гігабайт для обробки PHP-запитів від клієнтів. -Ми можемо легко зробити висновок, що цей сервер може приймати щонайбільше **50 потоків** `((6*1024) / 120)`. +Можна зробити висновок, що цей сервер може прийняти максимум **50 потоків** `((6*1024) / 120)`. Хорошою конфігурацією `php-fpm` для цього випадку використання буде: @@ -503,9 +433,9 @@ pm.max_requests = 500 з: -* `pm.start_servers` = 25% `max_children` -* `pm.min_spare_servers` = 25% `max_children` -* `pm.max_spare_servers` = 75% `max_children` +- `pm.start_servers` = 25% `max_children` +- `pm.min_spare_servers` = 25% `max_children` +- `pm.max_spare_servers` = 75% `max_children` ### Конфігурація Opcache @@ -513,11 +443,11 @@ pm.max_requests = 500 Він зберігає скомпільовані сценарії PHP у пам’яті, що сильно впливає на виконання веб-сторінок (виключає читання сценарію на диску + час компіляції). -Щоб налаштувати його, ми повинні попрацювати над: +Щоб його налаштувати, потрібно попрацювати над: -* Розмір пам’яті, виділеної для opcache, відповідно до коефіцієнта звернення -* кількість скриптів PHP для кешу (кількість ключів + максимальна кількість скриптів) -* кількість рядків для кешу +- Розмір пам'яті, виділеної для `opcache`, відповідно до коефіцієнта влучань, за умови правильного налаштування +- кількість скриптів PHP для кешу (кількість ключів + максимальна кількість скриптів) +- кількість рядків для кешу Щоб встановити його: @@ -535,16 +465,20 @@ opcache.max_accelerated_files=4000 де: -* `opcache.memory_consumption` відповідає об’єму пам’яті, необхідному для opcache (потрібно збільшувати, доки не буде отримано правильне співвідношення відвідувань). -* `opcache.interned_strings_buffer` кількість рядків для кешу. -* `opcache.max_accelerated_files` близький до результату команди `find ./ -iname "*.php"|wc -l`. +- `opcache.memory_consumption` відповідає об'єму пам'яті, необхідному для `opcache` (ви збільшуєте його, доки не отримаєте правильний коефіцієнт влучань). +- `opcache.interned_strings_buffer` кількість рядків для кешу. +- `opcache.max_accelerated_files` близький до результату команди `find ./ -iname "*.php"|wc -l`. -Ви можете звернутися до сторінки `info.php` (включаючи `phpinfo();`), щоб налаштувати opcache (перегляньте, наприклад, значення `Cached scripts` > і `Кешовані рядки`). +Ви можете звернутися до сторінки `info.php` (включно з `phpinfo();`), щоб налаштувати `opcache` (див., наприклад, значення `Cached scripts` та `Cached strings`). !!! Note "Примітка" - При кожному новому розгортанні нового коду необхідно буде очищати opcache (наприклад, перезапустивши процес php-fpm). + ``` + Під час кожного нового розгортання нового коду необхідно буде очищати opcache (наприклад, перезапускаючи процес `php-fpm`). + ``` !!! Note "Примітка" - Не варто недооцінювати збільшення швидкості, досягнуте правильним налаштуванням opcache. + ``` + Не варто недооцінювати приріст швидкості, якого можна досягти, правильно налаштувавши та сконфігурувавши `opcache`. + ``` diff --git a/docs/guides/web/tor_onion_service.uk.md b/docs/guides/web/tor_onion_service.uk.md index a3638a7280..7460fd4b1a 100644 --- a/docs/guides/web/tor_onion_service.uk.md +++ b/docs/guides/web/tor_onion_service.uk.md @@ -21,8 +21,8 @@ tags: Нижче наведено мінімальні вимоги для використання цієї процедури: -- Можливість запускати команди від імені користувача root або використовувати `sudo` для підвищення привілеїв. -- Знайомство з редактором командного рядка. Автор використовує `vi` або `vim` тут, але замініть у вашому улюбленому редакторі. +- Можливість запускати команди від імені користувача root або використовувати `sudo` для підвищення привілеїв +- Знайомство з редактором командного рядка. Автор використовує `vi` або `vim` тут, але замініть у вашому улюбленому редакторі - Веб-сервер, що працює на локальному хості або іншому порту TCP/IP ## Встановлення Tor @@ -59,11 +59,9 @@ HiddenServicePort 80 127.0.0.1:80 - «HiddenServiceDir» — це розташування імені хоста вашої onion-служби та криптографічних ключів. Ви зберігаєте ці ключі в `/var/lib/tor/onion-site/` - «HiddenServicePort» — це порт, який переадресовує ваш локальний сервер до служби onion. Ви пересилаєте 127.0.0.1:80 на порт 80 у нашій службі Tor -!!! warning "Важливо" +!!! warning -``` -Якщо ви плануєте використовувати каталог для ключів підпису служби onion за межами `/var/lib/tor/`, ви повинні переконатися, що дозволи `0700`, а власник `toranon:toranon`. -``` + Якщо ви плануєте використовувати каталог для ключів підпису служби onion за межами `/var/lib/tor/`, ви повинні переконатися, що дозволи `0700`, а власник `toranon:toranon`. ## Налаштування веб-сервера diff --git a/docs/index.uk.md b/docs/index.uk.md index 4aafd7c692..454c8ce475 100644 --- a/docs/index.uk.md +++ b/docs/index.uk.md @@ -16,27 +16,27 @@ title: Головна сторінка ### Короткий огляд -Зараз ви на головній сторінці документації. Якщо ви поглянете на верхнє меню (яке завжди доступне на мобільних пристроях), ви побачите основну структуру, яка показує розділи верхнього рівня сайту документації. Якщо ви натиснете на кожен пункт верхнього меню (наприклад, спробуйте 'Guides'), то ліворуч ви побачите список *секцій* для кожного розділу. Посібники мають багато цікавих тем. +Зараз ви на головній сторінці документації. Якщо ви поглянете на верхнє меню (яке завжди доступне на мобільних пристроях), ви побачите основну структуру, яка показує розділи верхнього рівня сайту документації. Якщо ви натиснете на кожен пункт верхнього меню (наприклад, спробуйте «Посібники»), то ліворуч ви побачите список _підрозділів_ для кожного головного розділу. Посібники мають багато цікавих тем. -Коли ви відкриєте документ, праворуч ви побачите "Таблиця змісту" з посиланнями на цей документ (для мобільних пристроїв спробуйте альбомну орієнтацію). Для довгих документів, таких як [Release Notes](release_notes/8_8.md), зміст дає змогу швидко переміщатися по документу. Якщо ви читаєте довгий документ і хочете повернутися до початку, натисніть ++page-up++, і ви побачите кнопку `Назад до початку`, яка з’явиться у верхній частині екрана. +Коли ви відкриєте документ, праворуч ви побачите "Таблиця змісту" з посиланнями на цей документ (для мобільних пристроїв спробуйте альбомну орієнтацію). Для довгих документів, таких як [Примітки до випуску](release_notes/8_8.md), зміст дозволяє легко переміщатися по документу. Якщо ви читаєте довгий документ і хочете повернутися на початок, натисніть ++page-up++, і ви побачите кнопку «На початок» у верхній частині екрана. Основні розділи документації такі: -* **Guides (Посібники)**, які охоплюють конкретні способи налаштування та використання Rocky Linux. -* **Books (Книги)**: більш детальна інформація на обрану тему. -* **Labs (Лабораторні роботи)**: це те саме, що «Повернутися до школи», але вони вам сподобаються! -* **Gemstones**: поділіться тут деякими типовими порадами щодо використання сценаріїв або команд. -* **Release Notes (Примітки до випуску)**: охоплює примітки до випуску Rocky Linux та інформацію про оновлення версії. -* **Rocky Linux**: посилання на офіційний сайт. +- **Guides (Посібники)**, які охоплюють конкретні способи налаштування та використання Rocky Linux. +- **Books (Книги)**: більш детальна інформація на обрану тему. +- **Labs (Лабораторні роботи)**: це те саме, що «Повернутися до школи», але вони вам сподобаються! +- **Gemstones**: поділіться тут деякими типовими порадами щодо використання сценаріїв або команд. +- **Release Notes (Примітки до випуску)**: охоплює примітки до випуску Rocky Linux та інформацію про оновлення версії. +- **Rocky Linux**: посилання на офіційний сайт. ### Багатомовність -У Rocky Linux ми хочемо зробити сайт документації максимально доступним для всіх — *переклад на різні мови є невід’ємною частиною цього*. Якщо натиснути на перемикач мови у верхньому меню, ви побачите мови, на які перекладена документація. Це дві частини: +У Rocky Linux ми хочемо зробити сайт документації максимально доступним для всіх — _переклад різними мовами є важливою частиною цього_. Якщо натиснути на перемикач мови у верхньому меню, ви побачите мови, на які перекладена документація. Це дві частини: 1. Локалізація інтерфейсу веб-сайту: якщо ви виберете іншу мову, наприклад, французьку, ви помітите, що інтерфейс, наприклад навігатори «Далі» та «Попередній», буде локалізовано. -1. Вміст: переклад вмісту є [постійним](https://crowdin.com/project/rockydocs/activity-stream) (значним) [завданням](https://crowdin.com/project/rockydocs). Ще не весь вміст перекладено всіма мовами. Будь-які сторінки, які були перекладені (на вибрану мову), відображатимуться цією мовою; якщо перекладу немає - відобразиться сторінка англійською. Якщо ви хочете внести свій внесок у спільноту через переклади, команда документації буде рада познайомитися з вами — подробиці дивіться нижче. +2. Контент: переклад контенту є [постійним](https://crowdin.com/project/rockydocs/activity-stream) (важливим) [завданням](https://crowdin.com/project/rockydocs). Ще не весь вміст перекладено всіма мовами. Будь-які сторінки, які були перекладені (на вибрану мову), відображатимуться цією мовою; якщо перекладу немає - відобразиться сторінка англійською. Якщо ви хочете внести свій внесок у спільноту через переклади, команда документації буде рада познайомитися з вами — подробиці дивіться нижче. -!!! note "Примітка" +!!! note Не всі функції можуть бути доступні всіма мовами; це обмеження доступних основних модулів MkDocs. @@ -48,10 +48,10 @@ title: Головна сторінка ## Перший раз -Якщо ви вперше відвідуєте сайт документації Rocky Linux, то, ймовірно, ви новачок у Rocky Linux і вам дуже хочеться його встановити! Немає проблем, перейдіть до сторінки [Встановлення Rocky Linux](guides/installation.md), щоб отримати детальні інструкції. +Якщо ви вперше відвідуєте сайт документації Rocky Linux, то, ймовірно, ви новачок у Rocky Linux і вам дуже хочеться його встановити! Немає проблем, перейдіть на сторінку [Встановлення Rocky Linux](guides/installation.md) для отримання детальних інструкцій. -Якщо у вас виникли запитання, спільнота Rocky Linux готова допомогти. Відвідайте [форум спільноти](https://forums.rockylinux.org), де ви знайдете рішення або опублікуєте власні запитання для спільноти. +Якщо у вас виникли запитання, спільнота Rocky Linux готова допомогти. Відвідайте [форум спільноти](https://forums.rockylinux.org), де ви можете шукати рішення або публікувати власні запитання спільноті. ## Зробити внесок -Ви зрозуміли, що чогось не вистачає? Ви знайшли помилку? Вам цікаво, як створити власний документ чи як тут щось виправити? Пам’ятаєте, як ми казали, що *ви* є спільнотою Rocky? Це означає, що *ви* важливі для нас, і ми хочемо, щоб ви приєдналися до нас, і допомогли покращити цю документацію. Якщо ви зацікавлені в цьому, перейдіть до нашого [Посібника зі внеску](https://github.com/rocky-linux/documentation/blob/main/README.md), щоб дізнатися, як ви може це зробити! +Ви зрозуміли, що чогось не вистачає? Ви знайшли помилку? Вам цікаво, як створити власний документ чи як тут щось виправити? Пам'ятаєш, як ми казали, що _ти_ — спільнота Роккі? That means that _you_ are important to us and we want you to join us, if you like, and help make this documentation better. Якщо вас це цікавить, перегляньте наш [Посібник зі створення контенту](https://github.com/rocky-linux/documentation/blob/main/README.md), щоб дізнатися, як це зробити! diff --git a/docs/labs/index.uk.md b/docs/labs/index.uk.md index b9fe99ac85..80f7dbf437 100644 --- a/docs/labs/index.uk.md +++ b/docs/labs/index.uk.md @@ -4,6 +4,6 @@ title: Навчальні лаборатораторні роботи # Лабораторні роботи Rocky Linux -Що таке **Лабораторні роботи** і чим вони відрізняються від більшої документації, як-от **Книги**? Розділ **Лабораторні роботи** призначений для покрокової роботи з процесами, які можуть покращити ваше розуміння. Вони містять вправи для перевірки ваших знань. Ці лабораторні роботи призначені виключно для освітніх і навчальних цілей. Вони допоможуть вам зрозуміти конкретні теми системного адміністрування, стимулюватимуть експериментування та заохочуватимуть співпрацю в безпечному та змодельованому лабораторному середовищі. +Що таке **Лабораторні роботи** та чим вони відрізняються від більшої документації, такої як **Книги**? Розділ **Лабораторні роботи** призначений для покрокової роботи з процесами, які можуть покращити ваше розуміння. Вони містять вправи для перевірки ваших знань. Ці лабораторні роботи призначені виключно для освітніх і навчальних цілей. Вони допоможуть вам зрозуміти конкретні теми системного адміністрування, стимулюватимуть експериментування та заохочуватимуть співпрацю в безпечному та змодельованому лабораторному середовищі. -Чи є у вас досвід у предметі, який можна було б перевести в лабораторну роботу? Це чудово! Ми будемо раді вашій участі тут. Участь – це нічим не відрізняється від участі в будь-якій документації Rocky Linux – просто перейдіть на [канал документації Mattermost](https://chat.rockylinux.org/rocky-linux/channels/documentation), приєднуйтеся до розмови, дайте нам знати, що ви хотіли б написати, і ми допоможемо вам у цьому. +Чи є у вас досвід у предметі, який можна було б перевести в лабораторну роботу? Це чудово! Ми будемо раді вашій участі тут. Долучитися до обговорення так само, як долучитися до будь-якої документації Rocky Linux – перейдіть на [канал документації Mattermost](https://chat.rockylinux.org/rocky-linux/channels/documentation), приєднайтеся до розмови, повідомте нам, що ви хочете написати, і ми допоможемо вам на вашому шляху. diff --git a/docs/labs/networking/lab5-nfs.uk.md b/docs/labs/networking/lab5-nfs.uk.md index aa466d1cb6..1349d471bd 100644 --- a/docs/labs/networking/lab5-nfs.uk.md +++ b/docs/labs/networking/lab5-nfs.uk.md @@ -12,7 +12,7 @@ tags: # Лабораторна робота 5: NFS -## Завдання +## Цілі Виконавши цю лабораторну роботу, ви зможете @@ -40,7 +40,7 @@ NFS - це абревіатура від Network File System. Це дозвол ## /etc/exports -Файл конфігурації `/etc/exports` служить списком контролю доступу для визначення файлових систем, які можна експортувати через NFS авторизованим клієнтам. Він надає інформацію для `mountd` і демона файлового сервера NFS на основі ядра `nfsd`. +Файл конфігурації `/etc/exports` служить списком контролю доступу для визначення файлових систем, які можна експортувати через NFS авторизованим клієнтам. Він надає інформацію для `mountd` та демона файлового сервера NFS на базі ядра `nfsd`. Директиви в `/etc/exports` використовують наступний синтаксис: @@ -54,7 +54,7 @@ shareable_directory allowed_clients(options_affecting_allowed_clients) У цій вправі ви надасте спільний доступ (експортуєте) локальний каталог, який буде надано спільно з вашою партнерською системою, але спочатку ви навчитеся керувати службою NFS. -NFS — це клієнтсько-серверна програма на основі Remote Procedure Call (RPC). Тому корисно мати під рукою утиліти RPC, які можна використовувати для запитів, налагодження та здійснення викликів RPC до серверів RPC (наприклад, серверів NFS). `rpcinfo` є однією з таких корисних утиліт. Його синтаксис використання та параметри показані тут: +NFS — це клієнтсько-серверна програма на основі Remote Procedure Call (RPC). Тому корисно мати під рукою утиліти RPC, які можна використовувати для запитів, налагодження та здійснення викликів RPC до серверів RPC (наприклад, серверів NFS). `rpcinfo` — одна з таких корисних утиліт. Його синтаксис використання та параметри показані тут: ```bash SYNOPSIS @@ -73,33 +73,33 @@ SYNOPSIS 1. Переконайтеся, що ви ввійшли до системи як користувач із правами адміністратора. -2. Почніть із встановлення пакета `nfs-utils`. Цей пакет містить різноманітні утиліти для використання з клієнтами та серверами NFS. Впишіть: +2. Почніть з встановлення пакета `nfs-utils`. Цей пакет містить різноманітні утиліти для використання з клієнтами та серверами NFS. Впишіть: ```bash dnf -y install nfs-utils ``` -3. Серед іншого, щойно встановлений пакет nfs-utils також містить модуль обслуговування systemd (`nfs-server.service`), необхідний для керування демоном NFS у системі. Використовуйте `systemctl` для перегляду деяких допоміжних служб, які «Wants» модуль NFS-сервера. Впишіть: +3. Серед іншого, щойно встановлений пакет nfs-utils також надає сервісний модуль systemd (`nfs-server.service`), необхідний для керування демоном NFS у системі. Використовуйте `systemctl` для перегляду деяких допоміжних служб, які "потрібні" модулю nfs-server. Впишіть: ```bash systemctl show -p "Wants" nfs-server ``` - **Вихід** + **Вихід** ```bash Wants=nfs-idmapd.service nfsdcld.service rpcbind.socket rpc-statd-notify.service rpc-statd.service auth-rpcgss-module.service network-online.target ``` - Деякі важливі та помітні служби, яких потребує nfs-сервер, це `nfs-idmapd`, `nfsdcld`, `rpcbind`, `rpc-statd-notify`, `rpc-statd`, `auth-rpcgss-module`. + Деякі важливі та помітні служби, яких потребує nfs-сервер, це `nfs-idmapd`, `nfsdcld`, `rpcbind`, `rpc-statd-notify`, `rpc-statd`, `auth-rpcgss-module`. -4. Команда `rpcinfo` здійснює виклики RPC до сервера RPC, а потім звітує про свої результати. `rpcinfo` містить список усіх служб RPC, зареєстрованих у `rpcbind`. Використовуйте `rpcinfo`, щоб запитати на локальному сервері список усіх зареєстрованих служб RPC. Впишіть: +4. Команда `rpcinfo` використовується для здійснення RPC-викликів до RPC-сервера та подальшого звітування про результати. `rpcinfo` містить список усіх RPC-сервісів, зареєстрованих у `rpcbind`. Використовуйте `rpcinfo`, щоб запросити список усіх зареєстрованих RPC-служб на вашому локальному сервері. Впишіть: ```bash rpcinfo -p localhost ``` - **Вихід** + **Вихід** ```bash program vers proto port service @@ -109,15 +109,17 @@ SYNOPSIS 100000 4 udp 111 portmapper ``` - З наведеного вище зразка вихідних даних ми можемо сказати, що служба portmapper зареєстрована на сервері RPC, на якому працює localhost. + З наведеного вище зразка вихідних даних ми можемо сказати, що служба portmapper зареєстрована на сервері RPC, на якому працює localhost. - !!! question "Питання" + !!! Question "Питання" - 1. Що таке portmapper? - - 2. Дізнайтеся значення різних полів команди `rpcinfo` (заголовки стовпців) (Програма, Версія, прото та служба). + ``` + 1. Що таке портмапер? + + 2. З'ясуйте значення різних полів команди `rpcinfo` (заголовки стовпців) (Program, Vers, proto та service) + ``` -5. Перевірте статус `nfs-server.service`. Впишіть: +5. Перевірте стан `nfs-server.service`. Впишіть: ```bash systemctl status nfs-server @@ -129,9 +131,9 @@ SYNOPSIS ● nfs-server.service - NFS server and services Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; disabled; vendor preset: disabled) Active: inactive (dead) - ``` + ``` - nfs-server.service наразі не працює відповідно до результатів нашої демонстраційної системи. + nfs-server.service наразі не працює відповідно до результатів нашої демонстраційної системи. 6. Використовуйте systemctl для запуску демона nfs-server. Впишіть: @@ -143,11 +145,13 @@ SYNOPSIS 8. Виконайте команду `rpcinfo` ще раз, щоб перевірити, чи щось змінилося. - !!! Question "Питання" - - Які нові служби ви побачите у списку `rpcinfo` після запуску nfs-сервера? + !!! Question "Питання" -9. Переконайтеся, що `nfs-server.service` налаштовано на запуск кожного разу, коли система автоматично перезавантажується. Впишіть: + ``` + Які нові служби ви побачите у списку `rpcinfo` після запуску nfs-сервера? + ``` + +9. Перевірте, чи налаштовано автоматичний запуск `nfs-server.service` щоразу після перезавантаження системи. Впишіть: ```bash systemctl is-enabled nfs-server @@ -179,9 +183,9 @@ SYNOPSIS /usr/sbin/exportfs -s ``` -!!! note "Примітка" +!!! note - Не забудьте замінити всі посилання на сервер із фактичним іменем хоста ваших партнерів. + Не забудьте замінити всі посилання на server фактичним ім'ям хоста вашого партнера. #### Щоб створити та експортувати спільний доступ @@ -201,7 +205,7 @@ SYNOPSIS touch {1..5}nfs ``` -4. Використовуйте функцію оболонки HEREDOC, щоб створити новий запис експорту NFS у `/etc/exports`. Потрібний однорядковий запис - `/mnt/nfs foocentos2(rw) localhost(rw)`. Впишіть: +4. Використайте функцію оболонки HEREDOC для створення нового запису експорту NFS у `/etc/exports`. Потрібний вам однорядковий запис — `/mnt/nfs foocentos2(rw) localhost(rw)`. Впишіть: ```bash cat << EOF > /etc/exports @@ -209,25 +213,25 @@ SYNOPSIS EOF ``` - Ви також можете скористатися будь-яким зручним для вас текстовим редактором для створення запису. + Ви також можете скористатися будь-яким зручним для вас текстовим редактором для створення запису. 5. Перевірте вміст `/etc/exports`, щоб переконатися, що немає помилок. -6. Після внесення будь-яких змін у файл `/etc/exports` слід виконати команду `exportfs`. Впишіть: +6. Після внесення будь-яких змін до файлу `/etc/exports` слід виконати команду `exportfs`. Впишіть: ```bash exportfs -r ``` -7. Використовуйте позначку `-s` з командою `exportfs`, щоб відобразити поточний список експорту, який підходить для `/etc/exports`. Наприклад, перегляньте список каталогів, дозволених хостів і параметрів. Впишіть: +7. Використовуйте прапорець `-s` з командою `exportfs`, щоб відобразити поточний список експорту, придатний для `/etc/exports`. Наприклад, перегляньте список каталогів, дозволених хостів і параметрів. Впишіть: ```bash exportfs -s ``` - !!! question "Питання" + !!! question - Який був вихід? Складіть список вихідного вмісту. + Що було на виході? Складіть список вмісту виводу. ## Завдання 3 @@ -235,7 +239,7 @@ SYNOPSIS Ця вправа стосується клієнтської сторони NFS. Ви спробуєте отримати доступ до сервера NFS як клієнт. -`showmount` — це зручна утиліта для запиту та показу інформації про монтування на серверах NFS. Він також може показувати стан сервера NFS і список клієнтів, які монтуються з сервера. Його синтаксис і параметри показані тут: +`showmount` — це зручна утиліта для запиту та відображення інформації про монтування на NFS-серверах. Він також може показувати стан сервера NFS і список клієнтів, які монтуються з сервера. Його синтаксис і параметри показані тут: ```bash SYNOPSIS @@ -258,24 +262,24 @@ OPTIONS #### Для локального доступу до спільного ресурсу NFS -Ви перевірите конфігурацію сервера NFS із *Вправи 1*, спробувавши отримати доступ до експортованого каталогу з вашого локального комп’ютера, перш ніж тестувати його з віддаленого комп’ютера. +Ви перевірите конфігурацію сервера NFS із _Вправи 1_, спробувавши отримати доступ до експортованого каталогу з вашого локального комп’ютера, перш ніж тестувати його з віддаленого комп’ютера. -1. Увійшовши як суперкористувач, створіть каталог під назвою `/mnt/nfs-local`. Цей каталог слугуватиме тестовою точкою монтування для спільного ресурсу NFS. +1. Увійшовши в систему як суперкористувач, створіть каталог під назвою `/mnt/nfs-local`. Цей каталог слугуватиме тестовою точкою монтування для спільного ресурсу NFS. -2. Для швидкої перевірки перед польотом запустіть `showmount` як клієнт, щоб показати доступний список експорту на сервері. Впишіть: +2. Для швидкої передпочаткової перевірки запустіть `showmount` як клієнт, щоб показати список доступного експорту на сервері. Впишіть: ```bash showmount -e localhost ``` - **Вихід** + **Вихід** ```bash Export list for localhost: /mnt/nfs 172.16.99.0/24,localhost ``` - Ви повинні побачити будь-який експорт NFS, налаштований на сервері. + Ви повинні побачити будь-який експорт NFS, налаштований на сервері. 3. Тепер ви готові змонтувати спільний ресурс NFS у тестовій точці монтування. Впишіть: @@ -285,22 +289,24 @@ OPTIONS 4. Змініть свій PWD на каталог `/mnt/nfs-local` і перегляньте його вміст. -5. Перебуваючи в каталозі `/mnt/nfs-local`, спробуйте видалити деякі файли. Впишіть: +5. Поки ви все ще перебуваєте в каталозі `/mnt/nfs-local`, спробуйте видалити деякі файли. Впишіть: ```bash rm -rf 1nfs 2nfs ``` - **Вихід** + **Вихід** ```bash rm: cannot remove '1nfs': Permission denied rm: cannot remove '2nfs': Permission denied ``` - !!! Question "Питання" + !!! Question "Питання" - Чи була ваша спроба видалити файл успішною? + ``` + Чи була ваша спроба видалення файлу успішною? + ``` 6. Тепер спробуйте створити додаткові файли (6nfs, 7nfs, 8nfs) на спільному ресурсі NFS. Впишіть: @@ -308,9 +314,11 @@ OPTIONS touch {6..8}nfs ``` - !!! Question "Питання" + !!! Question "Питання" - Ваша спроба створити файл була успішною? Як ви думаєте, чому це не вдалося? + ``` + Чи була ваша спроба створення файлу успішною? Чому, на вашу думку, це не вдалося? + ``` ВИКОНАЙТЕ ЦЮ ВПРАВУ ЗІ СВОЄЇ ПАРТНЕРСЬКОЇ СИСТЕМИ @@ -318,7 +326,7 @@ OPTIONS 1. Увійшовши в serverPR як суперкористувач, установіть пакет `nfs-utils`, якщо його не встановлено. -2. Створіть каталог під назвою “`/mnt/nfs-remote`”, який слугуватиме точкою монтування для віддаленого ресурсу NFS. Впишіть: +2. Створіть каталог під назвою “`/mnt/nfs-remote`”, який слугуватиме точкою монтування для віддаленого спільного ресурсу NFS. Впишіть: ```bash mkdir /mnt/nfs-remote @@ -330,28 +338,28 @@ OPTIONS mount -t nfs 172.16.99.100:/mnt/nfs /mnt/nfs-remote ``` -4. Використовуйте команду `mount`, щоб відобразити додаткову інформацію про спільний ресурс NFS, який ви щойно змонтували. Впишіть: +4. Використайте команду `mount`, щоб відобразити додаткову інформацію про спільний NFS-ресурс, який ви щойно змонтували. Впишіть: ```bash mount -t nfs4 ``` - **Вихід** + **Вихід** ```bash 172.16.99.100:/mnt/nfs on /mnt/nfs-remote type nfs4 (rw,relatime,vers=4.2,rsize=1048576,wsize=1048576,namlen=255 ...... ``` -5. `cd` до точки монтування NFS і спробуйте видалити її вміст. Впишіть: +5. `cd` до точки монтування NFS та спробуйте видалити її вміст. Впишіть: ```bash cd /mnt/nfs-remote ; rm -f ``` - !!! question "Питання" + !!! question - Чи була ця спроба успішною? + Ваша спроба була успішною? 6. Вийдіть із serverPR як суперкористувач і знову увійдіть як непривілейований користувач «ying» @@ -363,16 +371,20 @@ OPTIONS 8. Занотуйте вміст довідника. Якщо ви бачите очікувані файли, ви завершили лабораторію NFS! - !!! question "Лабораторні завдання:" - - 1. Налаштуйте налаштування NFS на локальному сервері (serverXY), щоб суперкористувач у H.Q. (hq.example.org) зможе підключити ваш спільний ресурс nfs (/mnt/nfsXY) для використання на машині hq. - - 2. Суперкористувач у HQ повинен мати можливість записувати (створювати) нові файли та видаляти файли на вашому спільному ресурсі NFS. + !!! question "Лабораторні завдання:" - !!! tip "Порада" - - Вам потрібно вимкнути спеціальну обробку NFS файлів, які належать root. Це робиться шляхом вказівки певного параметра, який «скасує» суперкористувача у файлі «/etc/exports». Спеціальна опція називається `no_root_squash`. Зверніть увагу, що використання параметра `no_root_squash` вважається поганою практикою та ризиком для безпеки. Зразок запису для виконання цього для будь-якого хосту, який відповідає `localhost` в `/etc/exports`, виглядатиме так: + ``` + 1. Налаштуйте налаштування NFS на локальному сервері (serverXY), щоб суперкористувач у H.Q. (hq.example.org) зможе підключити ваш спільний ресурс nfs (/mnt/nfsXY) для використання на машині hq. + + 2. Суперкористувач у HQ повинен мати можливість записувати (створювати) нові файли та видаляти файли на вашому спільному ресурсі NFS. + ``` - ```bash - /mnt/nfs 172.16.99.0/24(rw) localhost(rw,no_root_squash) + !!! Tip "Порада" + + ``` + Вам потрібно вимкнути спеціальну обробку NFS файлів, які належать root. Це робиться шляхом вказівки певного параметра, який «скасує» суперкористувача у файлі «/etc/exports». Спеціальна опція називається `no_root_squash`. Зверніть увагу, що використання параметра `no_root_squash` вважається поганою практикою та ризиком для безпеки. Зразок запису для виконання цього для будь-якого хосту, який відповідає `localhost` в `/etc/exports`, виглядатиме так: + + ```bash + /mnt/nfs 172.16.99.0/24(rw) localhost(rw,no_root_squash) + ``` ``` diff --git a/docs/labs/security/lab3-auditing_the_system.uk.md b/docs/labs/security/lab3-auditing_the_system.uk.md index 3f7328fc19..5345f5ae56 100644 --- a/docs/labs/security/lab3-auditing_the_system.uk.md +++ b/docs/labs/security/lab3-auditing_the_system.uk.md @@ -1,10 +1,12 @@ -- - - -Title: Лабораторна робота 3 – Аудит системи author: Wale Soyinka contributors: Steven Spencer, Ganna Zhyrnova -- - - +--- +Title: Лабораторна робота 3 – Аудит системи +author: Wale Soyinka +contributors: Steven Spencer, Ganna Zhyrnova +--- # Лабораторна робота 3 – Аудит системи -## Завдання +## Цілі Після виконання цієї лабораторної роботи ви зможете: @@ -23,9 +25,9 @@ Title: Лабораторна робота 3 – Аудит системи auth 1. Відразу після встановлення базової системи вона створить резервні копії деяких файлів конфігурації системи в каталозі /etc у каталозі etc.bak у кореневому каталозі. - Зокрема, він створить резервні копії всіх файлів у /etc із суфіксом «*.conf» + Зокрема, він створить резервні копії всіх файлів у /etc із суфіксом «\*.conf» - Він робить це, коли виконується з параметром ініціалізації ( -- initialization| -i) + Він робить це, коли виконується з параметром ініціалізації ( -- initialization| -i) 2. Потім сценарій отримає контрольні суми md5 відомих придатних файлів (незабруднених файлів). @@ -33,9 +35,9 @@ Title: Лабораторна робота 3 – Аудит системи auth 4. Коли сценарій виконується в режимі перевірки, програма md5sum буде викликана з опцією «- -check», щоб перевірити поточні суми MD5 за вказаним списком (файл md5_good). - Сценарій роздрукує вихідні дані перевірки у стандартний вихідний файл і надішле копію результату електронною поштою суперкористувачу. + Сценарій роздрукує вихідні дані перевірки у стандартний вихідний файл і надішле копію результату електронною поштою суперкористувачу. -5. Кожного разу, коли вносяться зміни (законні чи незаконні) до конфігураційних файлів у /etc, сценарій можна викликати за допомогою `--rebuild| -r` параметр для затвердження змін і перебудови базової псевдобази даних. +5. Щоразу, коли до файлів конфігурації /etc вносяться зміни (допустимі чи недопустимі), скрипт можна викликати з опцією `--rebuild| -r` для затвердження змін та перебудови базової псевдобази даних. 6. Ви можете періодично запускати сценарій вручну або створити завдання cron для автоматичного запуску сценарію. @@ -136,21 +138,22 @@ esac ```bash [root@localhost scripts]# ./check.sh -i - + Untainted baseline file (~/etc.bak/md5_good) has been created !! ``` -5. Використовуйте команду `ls` для перегляду вмісту домашнього каталогу root. У ньому має бути новий каталог під назвою `etc.bak`. Використовуйте команду `cat`, щоб переглянути файл `/root/etc.bak/md5_good`. +5. Використовуйте команду `ls` для перегляду вмісту домашнього каталогу root. У вас має бути новий каталог з назвою `etc.bak`. + Використайте команду `cat` для перегляду файлу `/root/etc.bak/md5_good`. 6. Запустіть сценарій за допомогою параметра перевірки. Впишіть: ```bash [root@localhost scripts]# ./check.sh -v - - Тут все вірно. + + Nothing wrong here. ``` - Ви маєте отримати результат вище, якщо все добре. + Ви маєте отримати результат вище, якщо все добре. 7. Ви навмисно зміните файли `/etc/kdump.conf` у каталозі `/etc`. Впишіть: @@ -163,15 +166,16 @@ esac ```bash [root@localhost scripts]# ./check.sh -v **** - + /etc/kdump.conf: FAILED - + Update the baseline file if you approve of the changes to the file(s) above - + Re-run the script with the re-build option (e.g. ./check.sh --rebuild) to approve ``` -9. Згідно з наведеним вище попередженням, вам слід додатково дослідити, чи відповідає змінений файл вашому схваленню. Якщо так, ви можете запустити сценарій із параметром `--rebuild`. Щоб переглянути лише відмінності між «заплямованим» та «незаплямованим» файлом, ви можете ввести: +9. Згідно з наведеним вище попередженням, вам слід додатково дослідити, чи відповідає змінений файл вашому схваленню. Якщо це так, ви можете запустити скрипт з опцією `--rebuild`. + Щоб переглянути лише відмінності між «заплямованим» та «незаплямованим» файлом, ви можете ввести: ```bash [root@localhost scripts]# sdiff -s /etc/kdump.conf /root/etc.bak/kdump.conf @@ -193,7 +197,9 @@ Tripwire порівнює новий підпис файлу з підписом 1. Встановіть програмне забезпечення з вихідного або двійкового файлу -2. Запустіть сценарій налаштування: (twinstall.sh). Цей сценарій використовується для: a) Створення ключа сайту та локального ключа і запиту парольних фраз для обох b) Підпису файлу політики та файлу конфігурації ключем сайту. +2. Запустіть сценарій налаштування: (twinstall.sh). Цей сценарій використовується для: + a) Створення ключа сайту та локального ключа і запиту парольних фраз для обох + b) Підпису файлу політики та файлу конфігурації ключем сайту. 3. Ініціалізуйте бази даних tripwire @@ -284,7 +290,7 @@ Tripwire приймає такі параметри командного ряд policyfile.txt ``` -**Підсумок параметрів для команди `tripwire`:** +**Зведений опис опцій команди `tripwire`:** ```bash SYNOPSIS @@ -300,17 +306,17 @@ SYNOPSIS ### `twadmin` -Утиліта `twadmin` виконує адміністративні функції, пов’язані з файлами tripwire та параметрами конфігурації. Зокрема, `twadmin` дозволяє кодувати, декодувати, підписувати та перевіряти файли Tripwire і надає засоби для створення та зміни локальних ключів і ключів сайту. +Утиліта `twadmin` виконує адміністративні функції, пов'язані з файлами Tripwire та параметрами конфігурації. Зокрема, `twadmin` дозволяє кодувати, декодувати, підписувати та перевіряти файли Tripwire, а також надає засоби для генерації та зміни локальних ключів та ключів сайту. ```bash -Створити файл конфігурації: twadmin [-m F|--create-cfgfile][options] cfgfile.txt -Друк файлу конфігурації: twadmin [-m f|--print-cfgfile] [options] -Створити файл політики: twadmin [-m P|--create-polfile] [options] polfile.txt -Файл політики друку: twadmin [-m p|--print-polfile] [options] -Видалити шифрування: twadmin [-m R|--remove-encryption] [options] [file1...] -Шифрування: twadmin [-m E|--encrypt] [options] [file1...] -Вивчіть шифрування: twadmin [-m e|--examine] [options] [file1...] -Генерувати ключі: twadmin [-m G|--generate-keys] [options] +Create Configuration File: twadmin [-m F|--create-cfgfile][options] cfgfile.txt +Print Configuration File: twadmin [-m f|--print-cfgfile] [options] +Create Policy File: twadmin [-m P|--create-polfile] [options] polfile.txt +Print Policy File: twadmin [-m p|--print-polfile] [options] +Remove Encryption: twadmin [-m R|--remove-encryption] [options] [file1...] +Encryption: twadmin [-m E|--encrypt] [options] [file1...] +Examine Encryption: twadmin [-m e|--examine] [options] [file1...] +Generate Keys: twadmin [-m G|--generate-keys] [options] ``` ### `twprint` @@ -343,21 +349,21 @@ SYNOPSIS ### `siggen` -`siggen` — це процедура збору підписів для Tripwire. Це утиліта, яка відображає значення хеш-функції для вказаних файлів. +`siggen` — це процедура збору сигнатур для Tripwire. Це утиліта, яка відображає значення хеш-функції для вказаних файлів. ```bash -Опції +ОПЦІЇ ‐t, --terse - Terse mode. Друкує запитувані хеші для заданого файлу в одному рядку, розділеному пробілами, без сторонньої інформації. + Стислий режим. Виводить запитувані хеші для заданого файлу в одному рядку, розділені пробілами, без зайвої інформації. - ‐h, --шістнадцятковий - Відображення результатів у шістнадцятковій системі нотації, а не в системі base64. + ‐h, --hexadecimal + Відображає результати у шістнадцятковій системі числення, а не у форматі base64. - ‐a, --всі + ‐a, --all Відображає всі значення хеш-функції (за замовчуванням). ‐C, --CRC32 - Відображає CRC-32, сумісну з POSIX 1003.2 32-розрядну циклічну перевірку надмірності. + Відображає CRC-32, сумісний з POSIX 1003.2 32-бітний циклічний перевірний код надмірності. ‐M, --MD5 Відображає MD5, алгоритм дайджесту повідомлень RSA Data Security, Inc. @@ -366,10 +372,10 @@ SYNOPSIS Відображає SHA, реалізацію Tripwire стандарту безпечного хешування NIST, SHS (NIST FIPS 180). ‐H, --HAVAL - Показати значення Haval, 128-бітний хеш-код. + Відображає значення Haval, 128-бітний хеш-код. file1 [ file2... ] - Список об'єктів файлової системи, для яких потрібно відобразити значення. + Список об'єктів файлової системи, для яких слід відображати значення. ``` ## Завдання 2 @@ -383,7 +389,7 @@ SYNOPSIS tripwire-* ``` - Якщо ви отримаєте результат, подібний до наведеного вище, це означає, що він уже встановлений. Пропустіть наступний крок. + Якщо ви отримаєте результат, подібний до наведеного вище, це означає, що він уже встановлений. Пропустіть наступний крок. 2. Якщо у вас його не встановлено, отримайте двійковий файл Tripwire і встановіть його. Впишіть: @@ -418,44 +424,46 @@ SYNOPSIS Generating key (this may take several minutes)...Key generation complete. ``` - Далі вам буде запропоновано ввести локальний ключ. Знову виберіть інший пароль, ЯКИЙ ВИ не забудете. (Локальний ключ підписує файли бази даних tripwire і файли звітів) + Далі вам буде запропоновано ввести локальний ключ. Знову виберіть інший пароль, ЯКИЙ ВИ не забудете. (Локальний ключ підписує файли бази даних tripwire і файли звітів) ```bash Enter the local keyfile passphrase: Verify the local keyfile passphrase: .... Generating key (this may take several minutes)...Key generation complete. - + ``` - Після вибору ваших парольних фраз програма `tripwire-setup-keyfiles` продовжить фактичне створення/підписання зашифрованих версій оригінальних простих текстових файлів (тобто буде створено tw.cfg і tw.pol відповідно). Вам знову буде запропоновано ввести парольні фрази, які ви вибрали раніше. На цьому етапі просто дотримуйтесь підказок, доки сценарій не завершить роботу. + Після вибору парольних фраз програма `tripwire-setup-keyfiles` перейде до фактичного створення/підписування зашифрованих версій оригінальних текстових файлів (тобто, відповідно, будуть створені tw.cfg та tw.pol). Вам знову буде запропоновано ввести парольні фрази, які ви вибрали раніше. На цьому етапі просто дотримуйтесь підказок, доки сценарій не завершить роботу. ```bash ---------------------------------------------- Signing configuration file... Please enter your site passphrase: ******** - + ---------------------------------------------- Signing policy file... Please enter your site passphrase: ******** ...... - + Wrote policy file: /etc/tripwire/tw.pol ``` - !!! question "Лабораторне завдання:" + !!! question "Лабораторні завдання:" - Виведіть новий вміст каталогу /etc/tripwire. + ``` + Вивести новий вміст каталогу /etc/tripwire. + ``` -6. Відповідно до попередження, яке ви отримали під час роботи утиліти `tripwire-setup-keyfiles`, тепер ви перемістите звичайні текстові версії файлу конфігурації та файлів політики з локальної системи. Ви можете зберегти їх на зовнішньому носії видалення або зашифрувати на місці (використовуючи, наприклад, такий інструмент, як GPG), АБО повністю видалити їх, якщо ви відчуваєте себе особливо сміливим. Впишіть: +6. Згідно з попередженням, яке ви отримали під час роботи утиліти `tripwire-setup-keyfiles`, тепер вам потрібно буде перемістити текстові версії файлу конфігурації та файлів політик з локальної системи. Ви можете зберегти їх на зовнішньому носії видалення або зашифрувати на місці (використовуючи, наприклад, такий інструмент, як GPG), АБО повністю видалити їх, якщо ви відчуваєте себе особливо сміливим. Впишіть: ```bash [root@localhost tripwire]# mkdir /root/tripwire_stuff && mv twcfg.txt twpol.txt /root/tripwire_stuff ``` -!!! note "Примітка" +!!! note - Може бути корисно зберігати версії з простим текстом у безпечному місці, якщо ви забудете свої парольні фрази. Тоді ви завжди можете повторно запустити `tripwire-setup-keyfiles` на основі конфігурацій і політик, які ви налаштували з часом. + Можливо, буде корисно зберігати версії у звичайному текстовому форматі в безпечному місці, якщо ви забудете свої парольні фрази. Ви завжди зможете повторно запустити `tripwire-setup-keyfiles` на основі конфігурацій та правил, які ви налаштували з часом. ### Для ініціалізації бази даних @@ -465,19 +473,19 @@ SYNOPSIS ```bash [root@localhost tripwire]# tripwire --init - + Please enter your local passphrase: Parsing policy file: /etc/tripwire/tw.pol Generating the database... *** Processing Unix File System *** - + ``` - Коли буде запропоновано, введіть локальну парольну фразу. Створення бази даних завершиться, і ви повинні отримати результат, подібний до наведеного нижче: + Коли буде запропоновано, введіть локальну парольну фразу. Створення бази даних завершиться, і ви повинні отримати результат, подібний до наведеного нижче: - **Базу даних успішно створено.** + **Базу даних успішно згенеровано.** -2. Використовуйте команду `ls`, щоб переконатися, що базу даних було створено у вказаному місці. Впишіть: +2. Використайте команду `ls`, щоб перевірити, чи базу даних було створено у вказаному місці. Впишіть: ```bash [root@localhost tripwire]# ls -lh /var/lib/tripwire/$(hostname).twd @@ -500,15 +508,17 @@ SYNOPSIS [root@localhost tripwire]# tripwire --check ``` - Під час цієї перевірки ви побачите [очікуваний] потік попереджень. + Під час цієї перевірки ви побачите [очікуваний] потік попереджень. - Перевірте в каталозі `/var/lib/tripwire/report`, щоб побачити, чи там також створено звіт для вас. + Перевірте каталог `/var/lib/tripwire/report`, чи не було там також створено звіт. - !!! question "Лабораторне завдання:" + !!! question "Лабораторні завдання:" - Запишіть назву створеного файлу звіту. - - FILE_NAME = + ``` + Запишіть назву створеного файлу звіту. + + FILE_NAME = + ``` 2. Знову запустіть перевірку цілісності, але вручну вкажіть ім’я файлу звіту. Впишіть: @@ -530,9 +540,9 @@ SYNOPSIS - під час перевірки цілісності - у вигляді електронного листа, автоматично надісланого вам -- за допомогою команди `twprint`, що надається разом із пакетом Tripwire +- за допомогою команди `twprint`, що постачається з пакетом Tripwire -!!! note "Примітка" +!!! note Ви, мабуть, помітили під час попередньої вправи, що tripwire за замовчуванням використовує комбінацію імені FQDN системи, дати та часу для іменування файлів звіту. @@ -542,15 +552,15 @@ SYNOPSIS [root@localhost report]# cd /var/lib/tripwire/report && twprint --print-report -r ``` - Замініть вище значенням, яке ви зазначили раніше. + Замініть вище значенням, яке ви записали раніше. - Щоб використати коротку форму наведеної вище команди, введіть: + Щоб використати коротку форму наведеної вище команди, введіть: ```bash [root@localhost report]# twprint -m r -r | less ``` - Ми перенаправляємо вихід до команди less, оскільки звіт швидко прокручується. + Ми перенаправляємо вихід до команди less, оскільки звіт швидко прокручується. 2. Тепер перегляньте інший звіт, який ви створили вручну, у домашньому каталозі root. Впишіть: @@ -576,9 +586,11 @@ Here you will test the e-mail functionality of Tripwire. Система спов [root@localhost report]# twadmin -m f | less ``` - !!! question "Лабораторне завдання:" + !!! question "Лабораторні завдання:" - Запишіть відповідну(і) змінну(и). + ``` + Запишіть відповідну(і) змінну(и). + ``` 2. Далі переконайтеся, що ваша локальна поштова система запущена та працює, перевіривши стан Postfix. Впишіть: @@ -589,7 +601,7 @@ Here you will test the e-mail functionality of Tripwire. Система спов ....... ``` - Ваш результат має бути подібним до наведеного вище. Якщо ваша система розсилки не працює, спочатку усуньте її та запустіть її, перш ніж продовжувати. + Ваш результат має бути подібним до наведеного вище. Якщо ваша система розсилки не працює, спочатку усуньте її та запустіть її, перш ніж продовжувати. 3. Надішліть тестове повідомлення root. Впишіть: @@ -603,19 +615,21 @@ Here you will test the e-mail functionality of Tripwire. Система спов [root@localhost report]# mail ``` - Суперкористувач має мати повідомлення з темою «Тестове повідомлення електронної пошти від Tripwire» + Суперкористувач має мати повідомлення з темою «Тестове повідомлення електронної пошти від Tripwire» 5. Переконавшись, що функція електронної пошти працює, ви можете спробувати вручну надіслати собі копію одного зі звітів. - !!! question "Питання" - - Яка команда для цього? + !!! question + + Яка команда для цього? ### Тонка настройка Tripwire -Після інсталяції Tripwire, створення знімка системи та запуску першої перевірки цілісності вам, швидше за все, знадобиться точно налаштувати Tripwire відповідно до потреб вашого конкретного середовища. Це здебільшого тому, що файл конфігурації та політики за замовчуванням, який постачається разом із Tripwire, може не зовсім відповідати вашим потребам або не відображати фактичні об’єкти у вашій файловій системі. +Після інсталяції Tripwire, створення знімка системи та запуску першої перевірки цілісності вам, швидше за все, знадобиться точно налаштувати Tripwire відповідно до потреб вашого конкретного середовища. +Це здебільшого тому, що файл конфігурації та політики за замовчуванням, який постачається разом із Tripwire, може не зовсім відповідати вашим потребам або не відображати фактичні об’єкти у вашій файловій системі. -Вам потрібно з’ясувати, чи є порушення файлової системи, про які повідомляється у файлі звіту під час перевірки цілісності, фактичними порушеннями чи законними/авторизованими змінами об’єктів вашої файлової системи. Знову ж таки, Tripwire пропонує кілька способів зробити це. +Вам потрібно з’ясувати, чи є порушення файлової системи, про які повідомляється у файлі звіту під час перевірки цілісності, фактичними порушеннями чи законними/авторизованими змінами об’єктів вашої файлової системи. +Знову ж таки, Tripwire пропонує кілька способів зробити це. ### Оновлення файлу політики @@ -638,22 +652,22 @@ Here you will test the e-mail functionality of Tripwire. Система спов ```bash [root@localhost root]# less tripwire_diffs.txt 207: Filename: /proc/scsi - + 210: Filename: /root/.esd_auth - + 213: Filename: /root/.gnome_private - + 216: Filename: /sbin/fsck.minix - + 219: Filename: /sbin/mkfs.bfs .................................. ``` 3. Тепер вам потрібно відредагувати файл політики tripwire і закоментувати або видалити записи у файлі, яких там не повинно бути. Наприклад, деякі файли відсутні у вашій системі, а також файли, які, ймовірно, ніколи не будуть у вашій системі. Наприклад, одним із файлів, які файл політики намагається контролювати, є файл /proc/scsi. Якщо у вашій системі немає пристрою SCSI, то немає сенсу контролювати цей файл. - Іншим спірним прикладом того, що контролювати чи ні контролювати, є різні файли блокувань у каталозі `/var/lock/subsys/`. Вибір моніторингу цих файлів має бути особистим рішенням. + Ще один дискусійний приклад того, що слід контролювати, а що ні, – це різні файли блокування в каталозі `/var/lock/subsys/`. Вибір моніторингу цих файлів має бути особистим рішенням. - Повторно створіть текстову версію файлу політики - на випадок, якщо ви видалили його (як рекомендовано) з локальної системи. Впишіть: + Повторно створіть текстову версію файлу політики - на випадок, якщо ви видалили його (як рекомендовано) з локальної системи. Впишіть: ```bash [root@localhost root]# twadmin --print-polfile > twpol.txt @@ -665,37 +679,41 @@ Here you will test the e-mail functionality of Tripwire. Система спов [root@localhost root]# vi twpol.txt ``` - Збережіть зміни у файлі та закрийте його. + Збережіть зміни у файлі та закрийте його. -5. Запустіть `tripwire` у режимі оновлення файлу політики. Впишіть: +5. Запустіть `tripwire` у режимі оновлення файлу політик. Впишіть: ```bash [root@localhost root]# tripwire --update-policy /root/twpol.txt ``` - Коли з’явиться відповідний запит, введіть ваші локальні та сайтові парольні фрази. + Коли з’явиться відповідний запит, введіть ваші локальні та сайтові парольні фрази. - Новий підписаний і зашифрований файл політики буде створено для вас у каталозі `/etc/tripwire/`. + Новий підписаний та зашифрований файл політики буде створено для вас у каталозі `/etc/tripwire/`. 6. Видаліть або видаліть текстову версію файлу політики з локальної системи. -7. Виконання команди на кроці 5 вище також створить для вас файл звіту в каталозі `/var/lib/tripwire/report directory`. +7. Виконання команди на кроці 5 вище також створить файл звіту в каталозі `/var/lib/tripwire/report`. + + !!! Question "Лабораторне завдання:" - !!! Question "Лабораторне завдання:" - - Запишіть назву останнього файлу звіту. - - + ``` + Запишіть назву вашого останнього файлу звіту. + + + ``` 8. Повторно запустіть перевірку цілісності системи, доки не переконаєтеся, що у вас є хороша базова лінія системи, на основі якої можна приймати майбутні рішення. - !!! Question "Питання" - - Яка команда для цього? + !!! Question "Питання" + + ``` + Яка команда для цього? + ``` ### Оновлення бази даних -Запуск `tripwire` у режимі оновлення бази даних після перевірки цілісності забезпечує швидкий і брудний спосіб точного налаштування Tripwire. Це пояснюється тим, що режим оновлення бази даних дозволяє узгодити будь-які відмінності між базою даних і поточною системою. Це дозволить запобігти відображенню порушень у майбутніх звітах. +Запуск `tripwire` у режимі оновлення бази даних після перевірки цілісності забезпечує швидкий та простий спосіб точного налаштування Tripwire. Це пояснюється тим, що режим оновлення бази даних дозволяє узгодити будь-які відмінності між базою даних і поточною системою. Це дозволить запобігти відображенню порушень у майбутніх звітах. Цей процес оновлення економить час, дозволяючи оновлювати базу даних без необхідності її повторно ініціалізувати. @@ -713,15 +731,15 @@ Here you will test the e-mail functionality of Tripwire. Система спов [root@localhost report]# tripwire --update -Z low -r ``` - Замініть назвою файлу звіту, яку ви зазначили раніше. + Замініть на ім'я файлу звіту, яке ви записали раніше. - Наведена вище команда також запустить текстовий редактор за замовчуванням (наприклад, `vi`), який надасть вам так звані «оновлені скриньки для голосування». Можливо, знадобиться прокрутити файл. + Вищевказана команда також запустить ваш текстовий редактор за замовчуванням (наприклад, `vi`), який представить вам так зване «оновлення скриньок для голосування». Можливо, знадобиться прокрутити файл. - Записи, позначені «[x]», означають, що базу даних слід оновити цим конкретним об’єктом. + Записи, позначені «[x]», означають, що базу даних слід оновити цим конкретним об’єктом. - Видаліть «x» із урни «[ ]», щоб запобігти оновленню бази даних новими значеннями для цього об’єкта. + Видаліть «x» із урни «[ ]», щоб запобігти оновленню бази даних новими значеннями для цього об’єкта. - Використовуйте звичайні натискання клавіш текстового редактора, щоб зберегти та вийти з редактора. + Використовуйте звичайні натискання клавіш текстового редактора, щоб зберегти та вийти з редактора. 3. Далі спробуйте використати режим оновлення бази даних у неінтерактивний спосіб. тобто ви погодитеся, що всі записи у файлі звіту будуть прийняті без запиту. Впишіть: @@ -747,54 +765,56 @@ Here you will test the e-mail functionality of Tripwire. Система спов [root@localhost tripwire]# vi twcfg.txt ``` - Відредагуйте файл, щоб він виглядав як приклад файлу нижче: + Відредагуйте файл, щоб він виглядав як приклад файлу нижче: - (ПРИМІТКА: щойно додані та змінені змінні були виділені для вас) + (ПРИМІТКА: щойно додані та змінені змінні були виділені для вас) ```bash 1 ROOT =/usr/sbin - + 2 POLFILE =/mnt/usbdrive/tw.pol - + 3 DBFILE =/var/lib/tripwire/$(HOSTNAME).twd - + 4 REPORTFILE =/var/lib/tripwire/report/$(HOSTNAME)-$(DATE).twr - + 5 SITEKEYFILE =/mnt/usbdrive/site.key - + 6 LOCALKEYFILE =/mnt/usbdrive/$(HOSTNAME)-local.key - + 7 EDITOR =/bin/vi - + 8 LATEPROMPTING =false - + 9 LOOSEDIRECTORYCHECKING =true - + 10 GLOBALEMAIL =root@localhost - + 11 MAILNOVIOLATIONS =true - + 12 EMAILREPORTLEVEL =3 - + 13 REPORTLEVEL =3 - + 14 MAILMETHOD =SENDMAIL - + 15 SYSLOGREPORTING =true - + 16 MAILPROGRAM =/usr/sbin/sendmail -oi -t ``` - !!! question "Лабораторне завдання:" - - Перегляньте сторінку довідки для “twconfig”, щоб дізнатися, для чого призначені наступні змінні: - - ```txt - LOOSEDIRECTORYCHECKING - - GLOBALEMAIL + !!! question "Лабораторні завдання:" - SYSLOGREPORTING + ``` + Зверніться до сторінки довідки «twconfig», щоб дізнатися, для чого призначені наступні змінні: + + ```txt + LOOSEDIRECTORYCHECKING + + GLOBALEMAIL + + SYSLOGREPORTING + ``` ``` 4. Змонтуйте носій для видалення в каталог /mnt/usbdrive. Впишіть: @@ -803,9 +823,9 @@ Here you will test the e-mail functionality of Tripwire. Система спов [root@localhost tripwire]# mount /dev/usbdrive /mnt/usbdrive ``` - !!! note "Примітка" + !!! note - Якщо ви вирішите зберігати свої файли в іншому місці (наприклад, на компакт-диску), внесіть необхідні зміни до команд. + Якщо ви вирішите зберігати файли в іншому місці (наприклад, на компакт-диску), внесіть необхідні зміни до команд. 5. Перемістіть ключ сайту, локальний ключ і двійкові файли в розташування, указане в новому файлі конфігурації. Впишіть: @@ -819,35 +839,35 @@ Here you will test the e-mail functionality of Tripwire. Система спов [root@localhost tripwire]# twadmin --create-cfgfile -S /mnt/usbdrive/site.key twcfg.txt* ``` - Для вас буде створено файл `/etc/tripwire/tw.cfg`. + Файл `/etc/tripwire/tw.cfg` буде створено для вас. 7. Перевірте своє нове налаштування. Від’єднайте USB-накопичувач і вийміть його. -8. Спробуйте запустити одну з команд `tripwire`, для якої потрібні файли, збережені на дисководі. Впишіть: +8. Спробуйте виконати одну з команд `tripwire`, якій потрібні файли, що зберігаються на дисководі. Впишіть: ```bash [root@localhost tripwire]# twadmin --print-polfile - + ### Error: File could not be opened. - + ### Filename: /mnt/usbdrive/tw.pol - + ### No such file or directory - + ### - + ### Unable to print policy file. - + ### Exiting... ``` - Ви повинні отримати помилку, подібну до наведеної вище. + Ви повинні отримати помилку, подібну до наведеної вище. 9. Підключіть носій, де зберігаються ваші файли Tripwire, і повторіть команду вище. - !!! question "Питання" - - Команда виконана успішно цього разу? + !!! question + + Чи цього разу команда виконала свою роботу успішно? 10. Знайдіть і видаліть усі звичайні текстові версії конфігураційних файлів Tripwire, які ви створили на даний момент у своїй системі. @@ -857,6 +877,8 @@ Here you will test the e-mail functionality of Tripwire. Система спов 1. Налаштуйте інсталяцію tripwire, запускайте перевірку цілісності щодня о 2 годині ночі та надсилайте звіт про перевірку цілісності електронною поштою суперкористувачеві системи. - !!! hint "Підказка" - - Вам може знадобитися зробити це за допомогою завдання cron. + !!! hint "Підказка" + + ``` + Можливо, вам доведеться зробити це за допомогою cron-завдання. + ``` diff --git a/docs/labs/security/lab8-iptables.uk.md b/docs/labs/security/lab8-iptables.uk.md index 4a399388c3..52839cb5bd 100644 --- a/docs/labs/security/lab8-iptables.uk.md +++ b/docs/labs/security/lab8-iptables.uk.md @@ -1,11 +1,12 @@ -- - - -Title: Лабораторна робота 8 - iptables author: Wale Soyinka contributors: -- - - +--- +Title: Лабораторна робота 8 - iptables +author: Wale Soyinka +contributors: +--- +# Лабораторна робота 8: iptables -# Лабораторна робота 8: `iptables` - -## Завдання +## Цілі Виконавши цю лабораторну роботу, ви зможете @@ -14,17 +15,17 @@ Title: Лабораторна робота 8 - iptables author: Wale Soyinka con Приблизний час виконання цієї лабораторної роботи: 60 хвилин -> Я завжди використовую iptables на своїх пристроях Linux. Подивіться – навіть якщо ви не хочете, щоб хакери потрапили на вулицю, ви можете блокувати такі рекламні сайти, як* doubleclick.com та інші злі виродки. Або, можливо, ви хочете зробити трохи більше журналу? …Iptables вас врятує! +> Я завжди використовую iptables на своїх пристроях Linux. Подивіться – навіть якщо ви не хочете, щоб хакери потрапили на вулицю, ви можете блокувати такі рекламні сайти, як\* doubleclick.com та інші злі виродки. Або, можливо, ви хочете зробити трохи більше журналу? …Iptables вас врятує! --- George W.Bush +\-- George W.Bush ## `iptables` -`iptables` — це інструмент, який використовується для керування фільтрацією пакетів IPv4 і підсистемою NAT ядра Linux. Підсистема відома як netfilter. +`iptables` — це інструмент, який використовується для керування фільтрацією пакетів IPv4 та підсистемою NAT ядра Linux. Підсистема відома як netfilter. -Утиліта командного рядка `iptables` надає інтерфейсні (пользовательські) інструменти для керування цією підсистемою. Вона використовується для налаштування, підтримки та перевірки таблиць правил фільтрації IP-пакетів у ядрі. Можна визначити кілька різних таблиць. +Утиліта командного рядка `iptables` надає інструменти інтерфейсу (користувацького середовища) для керування цією підсистемою. Вона використовується для налаштування, підтримки та перевірки таблиць правил фільтрації IP-пакетів у ядрі. Можна визначити кілька різних таблиць. -Деякі загальні терміни, які використовуються в обговореннях `iptables`, описані нижче: +Деякі поширені терміни, що використовуються в обговореннях `iptables`, описані нижче: ### TABLES (ТАБЛИЦІ) @@ -32,23 +33,23 @@ Title: Лабораторна робота 8 - iptables author: Wale Soyinka con - filter: Це основна таблиця та таблиця за замовчуванням (якщо параметр -t не передано). Він містить вбудовані ланцюжки: - - **INPUT** (для пакетів, що надходять у саму коробку) - - **FORWARD** (для пакетів, що направляються через ящик) - - **OUTPUT** (для локально згенерованих пакетів). + - **INPUT** (для пакетів, що надходять у саму коробку) + - **FORWARD** (для пакетів, що маршрутизуються через коробку) + - **OUTPUT** (для локально згенерованих пакетів). - nat: До цієї таблиці звертаються, коли зустрічається пакет, який створює нове з’єднання. Він складається з наступних трьох вбудованих ланцюжків: - - **PREROUTING** (для зміни пакетів, щойно вони надходять) - - **OUTPUT** (для зміни локально згенерованих пакетів перед маршрутизацією) - - **POSTROUTING** (для зміни пакетів, коли вони збираються вийти) + - **PREROUTING** (для зміни пакетів одразу після їх надходження) + - **OUTPUT** (для зміни локально згенерованих пакетів перед маршрутизацією) + - **POSTROUTING** (за зміну пакетів перед їх відправкою) - mangle: Ця таблиця використовується для спеціалізованої зміни пакетів. Вона має наступні 5 вбудованих ланцюгів: - - **PREROUTING** (для зміни вхідних пакетів перед маршрутизацією) - - **OUTPUT** (для зміни локально згенерованих пакетів перед маршрутизацією) - - **INPUT** (для пакетів, що надходять у саму коробку) - - **FORWARD** (для зміни пакетів, що направляються через ящик) - - **POSTROUTING** (для зміни пакетів, коли вони збираються вийти) + - **PREROUTING** (для зміни вхідних пакетів перед маршрутизацією) + - **OUTPUT** (для зміни локально згенерованих пакетів перед маршрутизацією) + - **INPUT** (для пакетів, що надходять у саму коробку) + - **FORWARD** (для зміни пакетів, що маршрутизуються через приставку) + - **POSTROUTING** (за зміну пакетів перед їх відправкою) ### CHAINS (ЛАНЦЮГИ) @@ -60,7 +61,7 @@ Title: Лабораторна робота 8 - iptables author: Wale Soyinka con ```bash -Використання: iptables -[ACD] chain rule-specification [options] +Usage: iptables -[ACD] chain rule-specification [options] iptables -I chain [rulenum] rule-specification [options] iptables -R chain rulenum rule-specification [options] iptables -D chain rulenum [options] @@ -71,8 +72,8 @@ Title: Лабораторна робота 8 - iptables author: Wale Soyinka con iptables -P chain target [options] iptables -h (print this help information) -Команди: -Допускаються як довгі, так і короткі варіанти. +Commands: +Either long or short options are allowed. --append -A chain Append to chain --check -C chain Check for the existence of a rule --delete -D chain Delete matching rule from chain @@ -98,7 +99,7 @@ Title: Лабораторна робота 8 - iptables author: Wale Soyinka con -E old-chain new-chain Change chain name, (moving any references) -Опції: +Options: --ipv4 -4 Nothing (line is ignored by ip6tables-restore) --ipv6 -6 Error (line is ignored by iptables-restore) [!] --protocol -p proto protocol: by number or name, eg. `tcp' @@ -133,9 +134,9 @@ Title: Лабораторна робота 8 - iptables author: Wale Soyinka con Основи `iptables` -У цій вправі ви навчитеся деяким основам `iptables`. Зокрема, ви дізнаєтеся, як переглядати або перераховувати правила `iptables`, створювати основні правила фільтрації, видаляти правила, створювати/видаляти спеціальні ланцюжки тощо. +Ця вправа навчить вас деяким основам `iptables`. Зокрема, ви дізнаєтеся, як переглядати або переглядати правила `iptables`, створювати основні правила фільтрації, видаляти правила, створювати/видаляти користувацькі ланцюжки тощо. -Без зайвих слів, давайте зануримося безпосередньо у використання `iptables`. +Без зайвих слів, давайте одразу перейдемо до використання `iptables`. #### Щоб переглянути діючі правила @@ -189,9 +190,9 @@ Title: Лабораторна робота 8 - iptables author: Wale Soyinka con ```bash [root@serverXY root]# iptables -L mychain - + Chain mychain (0 references) - + target prot opt source destination ``` @@ -203,9 +204,9 @@ Title: Лабораторна робота 8 - iptables author: Wale Soyinka con [root@serverXY root]# iptables -X INPUT ``` - !!! question "Питання" + !!! question - Яким був ваш результат? + Яким був ваш результат? 2. Далі спробуйте видалити ланцюжок, який ви створили вище. Впишіть: @@ -231,13 +232,13 @@ Title: Лабораторна робота 8 - iptables author: Wale Soyinka con ```bash [root@serverXY root]# ping -c 2 serverPR - + - + --- serverPR ping statistics --- - + 2 packets transmitted, 2 received, 0% packet loss, time 1005ms - + ............................................... ``` @@ -253,17 +254,17 @@ Title: Лабораторна робота 8 - iptables author: Wale Soyinka con [root@serverXY root]# iptables -A OUTPUT -o eth0 -p icmp -j DROP ``` - Зрозуміло, попередню команду можна інтерпретувати так: «*Додати правило до ланцюжка OUTPUT у таблиці фільтрів. Нехай це правило видаляє кожен пакет типу ICMP, який виходить через інтерфейс eth0*” + Простими словами, попередню команду можна інтерпретувати як: «_Додати правило до ланцюжка OUTPUT у таблиці фільтрів». Дозвольте цьому правилу відкидати кожен пакет типу ICMP, який проходить через інтерфейс eth0_ 4. Перевірте дію свого правила, спробувавши перевірити serverPR. Впишіть: ```bash [root@serverXY root]# ping -c 2 serverPR - + PING serverPR (10.0.5.8) 56(84) bytes of data. - + ping: sendmsg: Operation not permitted - + ping: sendmsg: Operation not permitted ``` @@ -271,19 +272,19 @@ Title: Лабораторна робота 8 - iptables author: Wale Soyinka con ```bash [root@serverXY root]# iptables -vL OUTPUT - + Chain OUTPUT (policy ACCEPT 21221 packets, 2742K bytes) - + pkts bytes target prot opt in out source destination - + 93 7812 DROP icmp -- any eth0 anywhere anywhere ``` 6. Очистіть усі правила та повторіть команду ping з обох систем. - !!! question "Питання" - - Успіх чи невдача? + !!! question + + Успіх чи невдача? 7. Тепер створіть ще одне правило, яке видалятиме пакети icmp, які надходять із певної небажаної IP-адреси (наприклад, 172.16.0.44). Впишіть: @@ -291,7 +292,7 @@ Title: Лабораторна робота 8 - iptables author: Wale Soyinka con [root@serverXY root]# iptables -A INPUT -i eth0 -p icmp --source 172.16.0.44 -j DROP ``` - Наведену вище команду можна прочитати просто так: *«Додайте правило в ланцюжок INPUT у таблиці фільтрів. Нехай це правило видаляє всі пакети типу ICMP і має адресу джерела 172.16.0.44”* + Ви б прочитали наведену вище команду простою мовою так: _«Додати правило до ланцюжка INPUT у таблиці фільтрів». Нехай це правило відкидає всі пакети типу ICMP та має адресу джерела 172.16.0.44”_ 8. Щоб перевірити дію цього правила, ви можете попросити когось іншого у вашій лабораторії [кому не було призначено IP-адресу 172.16.0.44] спробувати перевірити вас. Успіх чи невдача? @@ -299,16 +300,16 @@ Title: Лабораторна робота 8 - iptables author: Wale Soyinka con ```bash [root@serverXY root]# iptables -vL INPUT --line-numbers - + Chain INPUT (policy ACCEPT 31287 packets, 9103K bytes) - + num pkts bytes target prot opt in out source destination - + 1 486 40824 DROP icmp -- eth0 any serverPR anywhere - + ``` - Стовпець, що містить номер правила, було виділено у зразку вихідних даних вище. + Стовпець, що містить номер правила, було виділено у зразку вихідних даних вище. 10. Використовуючи номер рядка, який відповідає правилу, яке потрібно видалити, ви можете видалити певне правило (рядок номер 1) у ланцюжку INPUT, виконавши: @@ -328,13 +329,13 @@ Title: Лабораторна робота 8 - iptables author: Wale Soyinka con ```bash [root@serverXY root]# *service vsftpd restart* - + Shutting down vsftpd: [ OK ] - + Starting vsftpd for vsftpd: [ OK ] ``` -2. Попросіть свого партнера спробувати увійти на ваш ftp-сервер як анонімний користувач. Переконайтеся, що ваш партнер може успішно ввійти в систему з serverPR - зробіть це *перед* переходом до наступного кроку. +2. Попросіть свого партнера спробувати увійти на ваш ftp-сервер як анонімний користувач. Переконайтеся, що ваш партнер може успішно увійти з serverPR — зробіть це _перед_ тим, як перейти до наступного кроку. 3. Поки ваш партнер ще ввійшов у систему, створіть правило, щоб вимкнути весь трафік типу ftp, що надходить із serverPR. Впишіть: @@ -342,21 +343,23 @@ Title: Лабораторна робота 8 - iptables author: Wale Soyinka con [root@serverXY root]# iptables -A INPUT -i eth0 -s 172.16.0.z -p tcp --dport 21 -j DROP* ``` - Якщо говорити простою мовою, наведене вище правило/команда означає: *Додати правило до ланцюжка INPUT у таблиці фільтрів. Нехай це правило ВИДАЛИТЬ усі пакети з адресою джерела 172.16.0.z, призначені для порту 21 у нашій локальній системі.* + Простіше кажучи, вищезгадане правило/команда перекладається як: _Додати правило до ланцюжка INPUT у таблиці фільтрів. Нехай це правило ВІДКИДАЄ всі пакети з адресою джерела 172.16.0.z, призначені для порту 21 на нашій локальній системі._ -4. Щойно ви виконаєте наведену вище команду, стек netfilter негайно введе її в дію. Щоб побачити це, попросіть свого партнера спробувати будь-які ftp-команди, залишаючись на вашому ftp-сервері - напр. `ls`. Успіх чи невдача? +4. Щойно ви виконаєте наведену вище команду, стек netfilter негайно введе її в дію. Щоб переконатися в цьому, попросіть свого партнера спробувати будь-які ftp-команди, залишаючись увімкненим на ваш ftp-сервер, наприклад, `ls`. Успіх чи невдача? - !!! Успіх чи невдача? - - Успіх чи невдача? - - Якщо це не вдасться, попросіть свого партнера спробувати від’єднатися та увійти з нуля, а потім знову перевірте, чи вдалося. + !!! question "Лабораторні завдання:" + + ``` + Успіх чи невдача? + + Якщо це не вдасться, попросіть свого партнера спробувати відключитися та спробувати увійти знову з нуля, а потім перевірте, чи все вийде. + ``` 5. Попросіть іншу особу, яка НЕ є вашим партнером, спробувати анонімно увійти на ваш ftp-сервер. Ви також можете попросити когось із hq.example.org спробувати підключитися до вашого ftp-сайту. - !!! question "Питання" - - Успіх чи невдача? + !!! question + + Успіх чи невдача? 6. Увімкніть і запустіть веб-сервер на serverXY. @@ -414,11 +417,11 @@ iv. Що ви успішно пройшли «Лабораторну робот 3. Очистіть усі правила iptables, які ви зараз завантажили. - !!! note "Примітка" - - Очищення таблиць не завжди є необхідним або обов'язковим. Можливо, ви помітили, що на початку деяких виконаних вправ ми вказали, що ви очищаєте існуючі таблиці. Це гарантує, що ви починаєте з чистого аркуша і що у вас немає помилкових правил, які ховаються десь у ваших таблицях, які можуть спричинити неправильну роботу. Зазвичай у вас можуть бути завантажені сотні правил одночасно, які виконують різні функції. + !!! note -4. Попросіть свого партнера в serverPR спробувати перевірити ping 172.16.0.100 (hq.example.org), це має завершитися невдачею, тому що ви зараз працюєте як шлюз за замовчуванням serverPR і ви ще *не* ще ввімкнули маршрутизацію у своїй системі. + Очищення таблиць не завжди є необхідним або обов'язковим. Ви могли помітити, що на початку деяких виконаних досі вправ ми вказали, що потрібно очищати існуючі таблиці. Це для того, щоб ви почали з чистого аркуша і щоб у вас не було жодних помилкових правил, прихованих десь у ваших таблицях, які можуть призвести до неправильної роботи. Зазвичай одночасно можуть бути завантажені сотні правил, що виконують різні функції. + +4. Попросіть свого партнера з serverPR спробувати ping-нути 172.16.0.100 (hq.example.org). Це має не спрацювати, оскільки ви тепер є шлюзом за замовчуванням для serverPR, і ви ще _не_ ввімкнули маршрутизацію у своїй системі. 5. Як root на serverXY тип: @@ -428,9 +431,9 @@ iv. Що ви успішно пройшли «Лабораторну робот 6. Тепер знову повторіть крок 4. - !!! question "Питання" - - Все вийшло? + !!! question + + Чи вам вдалося? 7. Вищезазначене повинно було вийти з ладу. Вам також потрібно ввімкнути пересилання пакетів у запущеному ядрі. Впишіть: @@ -446,34 +449,34 @@ iv. Що ви успішно пройшли «Лабораторну робот #### Щоб зберегти правила `iptables` -До цього часу всі правила та ланцюжки `iptables`, які ви створювали, були тимчасовими або непостійними. Це означає, що якщо вам доведеться перезавантажити систему в будь-який момент, усі внесені вами правила та зміни буде втрачено. +Досі всі правила та ланцюжки `iptables`, які ви створювали, були тимчасовими або непостійними. Це означає, що якщо вам доведеться перезавантажити систему в будь-який момент, усі внесені вами правила та зміни буде втрачено. -Щоб запобігти цьому, вам потрібен механізм для запису або збереження тимчасових правил `iptables` у системі, щоб вони завжди були доступними під час перезавантаження системи. +Щоб запобігти цьому, вам потрібен механізм для запису або збереження тимчасових правил `iptables` під час виконання в системі, щоб вони завжди були доступні після перезавантаження системи. -1. Використовуйте команду `iptables-save`, щоб зберегти всі зміни у файлі /etc/sysconfig/iptables. Впишіть: +1. Використайте команду `iptables-save`, щоб зберегти всі зміни у файлі /etc/sysconfig/iptables. Впишіть: ```bash [root@serverXY root]# *iptables-save > /etc/sysconfig/iptables* ``` - !!! tip "Підказка" + !!! tip - Ви обмежені тим, що ви можете з `iptables` тільки вашою уявою. Ми ледь подряпали поверхню в цій роботі. Сподіваємось, ми достатньо подряпали поверхню, щоб дозволити вашій уяві розквітнути. + Ваші можливості з `iptables` обмежені лише вашою уявою. У цій лабораторній роботі ми ледве торкнулися поверхні. Сподіваємося, що ми доторкнулися достатньо, щоб ви могли дати волю своїй уяві. ## Додаткові питання -Ось кілька додаткових способів вивчення `iptables`: - -!!! question "Запитання і завдання:" - - 1. Який параметр потрібен, щоб отримати більш докладну версію цієї команди *iptables -L -t nat*? - - 2. Яка команда для відображення правил у ланцюжку OUTPUT? - - 3. Який порт «звичайно» прослуховує служба ftp? - - 4. Яка команда для створення ланцюжка під назвою “mynat-chain” у таблиці nat? - - 5. Дослідіть в Інтернеті та перелічіть назви деяких простіших у використанні інструментів або програм, які можна використовувати для керування підсистемою брандмауера в системах на базі Linux. - - 6. Створіть правило `iptables`, щоб заблокувати http-трафік від hq.example.org до вашої локальної машини. Який добре відомий порт прослуховують веб-сервери? Запишіть повну команду для досягнення цього? Перетворіть або перекладіть команду, яку ви записали вище, на її звичайний еквівалент. +Ось кілька додаткових способів дослідження `iptables`: + +!!! question "Запитання та завдання:" + + 1. Який параметр потрібен, щоб отримати більш детальну версію цієї команди _iptables -L -t nat_? + + 2. Яка команда відображає правила в ланцюжку OUTPUT? + + 3. На якому порту «зазвичай» прослуховує ftp-сервіс? + + 4. Яка команда створює ланцюжок під назвою "mynat-chain" у таблиці nat? + + 5. Знайдіть в Інтернеті список деяких простіших у використанні інструментів або програм, які можна використовувати для керування підсистемою брандмауера в системах на базі Linux. + + 6. Створіть правило `iptables` для блокування http-трафіку з hq.example.org на ваш локальний комп'ютер. Який загальновідомий порт прослуховують веб-сервери? Запишіть повну команду для цього? Перетворіть або перекладіть команду, яку ви записали вище, у її еквівалент простою мовою. diff --git a/docs/labs/security/lab9-cryptography.uk.md b/docs/labs/security/lab9-cryptography.uk.md index c8b722b5e4..b34dc0cdcb 100644 --- a/docs/labs/security/lab9-cryptography.uk.md +++ b/docs/labs/security/lab9-cryptography.uk.md @@ -1,7 +1,8 @@ -- - - -Title: Лабораторна робота 9 - Криптографія author: Wale Soyinka contributors: Steven Spencer, Ganna Zhyrnova -- - - - +--- +Title: Lab 9 - Криптографія +author: Wale Soyinka +contributors: Steven Spencer, Ganna Zhyrnova +--- # Lab 9: Криптографія @@ -12,9 +13,10 @@ Title: Лабораторна робота 9 - Криптографія author: - застосовувати криптографічні концепції для захисту даних і зв'язку Приблизний час виконання цієї лабораторної роботи: 120 хвилин + > Троє можуть зберігати таємницю, якщо двоє з них мертві... -> -> -- Benjamin Franklin + +\-- Benjamin Franklin ## Загальні терміни та визначення криптографії @@ -46,15 +48,15 @@ Title: Лабораторна робота 9 - Криптографія author: Криптографічні хеш-функції використовуються в різних контекстах, наприклад, для обчислення дайджесту повідомлення під час створення цифрового підпису. Хеш-функція стискає біти повідомлення до хеш-значення фіксованого розміру, щоб рівномірно розподілити можливі повідомлення між можливими хеш-значеннями. Криптографічна хеш-функція робить це таким чином, що надзвичайно ускладнює створення повідомлення, яке хешує до певного хеш-значення. Нижче наведено кілька прикладів найвідоміших і найпоширеніших хеш-функцій. -**a)** - **SHA-1 (Secure Hash Algorithm)** - це криптографічний хеш-алгоритм, опублікований урядом Сполучених Штатів. Він створює 160-бітне хеш-значення з рядка довільної довжини. Вважається, що це дуже добре. +**a)** - **SHA-1 (Secure Hash Algorithm)** -Це криптографічний алгоритм хешування, опублікований урядом Сполучених Штатів. Він створює 160-бітне хеш-значення з рядка довільної довжини. Вважається, що це дуже добре. -**b)**- **MD5 (Message Digest Algorithm 5)** – це криптографічний геш-алгоритм, розроблений у RSA Laboratories. Його можна використовувати для хешування байтового рядка довільної довжини до 128-бітного значення. +**b)**- **MD5 (Message Digest Algorithm 5)** - це криптографічний алгоритм хешування, розроблений у RSA Laboratories. Його можна використовувати для хешування байтового рядка довільної довжини до 128-бітного значення. ### Алгоритм Він описує покрокову процедуру розв’язування задачі, особливо усталену, рекурсивну обчислювальну процедуру для розв’язання задачі за кінцеву кількість кроків. Технічно алгоритм повинен досягти результату після кінцевої кількості кроків. Ефективність алгоритму можна виміряти як кількість елементарних кроків, необхідних для вирішення проблеми. Існує два класи алгоритмів на основі ключів. Це: -**a) **-- **Алгоритми симетричного шифрування (секретний ключ)** +\*\*a) \*\*-- **Симетричні алгоритми шифрування (secret-key)** Симетричні алгоритми використовують один і той самий ключ для шифрування та дешифрування (або ключ дешифрування легко отримати з ключа шифрування). Алгоритми із секретним ключем використовують один і той самий ключ для шифрування та дешифрування (або один легко вивести з іншого). Це більш простий підхід до шифрування даних, він математично менш складний, ніж криптографія з відкритим ключем. Симетричні алгоритми можна розділити на потокові шифри та блочні шифри. Потокові шифри можуть шифрувати один біт відкритого тексту за раз, тоді як блочні шифри беруть кілька бітів (зазвичай 64 біти в сучасних шифрах) і шифрують їх як єдине ціле. Симетричні алгоритми набагато швидше виконуються на комп’ютері, ніж асиметричні. @@ -82,17 +84,17 @@ RSA, ймовірно, найвідоміший алгоритм асиметр Це протокол для безпечних розподілених служб імен. Наразі він доступний як чернетка в Інтернеті. -**ii.)** Secure Socket Layer (SSL) +**ii.)** Захищений сокетний шар (SSL) SSL — це один із двох протоколів, які використовуються для безпечних WWW-з’єднань (інший — SHTTP). Безпека WWW стала необхідною, оскільки все більша кількість конфіденційної інформації, такої як номери кредитних карток, передається через Інтернет. -**iii.)** Secure Hypertext Transfer Protocol (SHTTP) +**iii.)** Протокол безпечної передачі гіпертексту (SHTTP) Це ще один протокол для забезпечення більшої безпеки для транзакцій WWW. -**iv.)** Безпека електронної пошти та супутні послуги +**iv.)** Безпека електронної пошти та пов'язані з нею послуги -**GnuPG** – GNU Privacy Guard – відповідає запропонованому Інтернет-стандарту OpenPGP, описаному в RFC2440. +**GnuPG** - GNU Privacy Guard — відповідає запропонованому інтернет-стандарту OpenPGP, описаному в RFC2440. **v.)** Протокол SSH2 @@ -119,7 +121,7 @@ GnuPG (GNU Privacy Guard) — це набір програм для шифрув gnupg-*.* ``` - Якщо це не так, попросіть суперкористувача встановити його. + Якщо це не так, попросіть суперкористувача встановити його. 3. Перерахуйте та запишіть усі приховані каталоги у вашому домашньому каталозі. @@ -129,73 +131,75 @@ GnuPG (GNU Privacy Guard) — це набір програм для шифрув [ying@serverXY ying]$ gpg --list-keys ``` - !!! note "Примітка" + !!! note - У вашому key-ring ще не повинно бути ключів. Але наведена вище команда також допоможе створити середовище за замовчуванням, щоб ви могли успішно створити нову пару ключів з першого разу. + У вашій зв'язці ключів ще не повинно бути жодних ключів. Але наведена вище команда також допоможе створити середовище за замовчуванням, яке дозволить вам успішно створити нову пару ключів з першого разу. - !!! question "Лабораторне завдання:" + !!! question "Лабораторні завдання:" - Перерахуйте приховані каталоги у вашому домашньому каталозі. Як називається новий доданий каталог? + ``` + Знову перелічіть приховані каталоги у вашому домашньому каталозі. Як називається новий доданий каталог? + ``` 5. Використовуйте програму gpg для створення нових пар ключів. Впишіть: ```bash - [ying@serverXY ying\]$ gpg --gen-key - + [ying@serverXY ying]$ gpg --gen-key + ...................................... - + gpg: keyring `/home/ying/.gnupg/secring.gpg' created - + gpg: keyring `/home/ying/.gnupg/pubring.gpg' created - + Please select what kind of key you want: - + (1) DSA and ElGamal (default) - + (2) DSA (sign only) - + (5) RSA (sign only) - + Your selection? 1 ``` - У запиті типу ключа, який ви хочете створити, прийміть значення за замовчуванням, тобто (DSA та ElGamal). Впишіть 1 + У запиті типу ключа, який ви хочете створити, прийміть значення за замовчуванням, тобто (DSA та ElGamal). Впишіть 1 - !!! warning "Важливо" + !!! warning - Варіант (1) створить для вас дві пари ключів. Пара ключів DSA буде основною парою ключів - для створення цифрових підписів і підпорядкованою парою ключів ELGamel для шифрування даних. + Варіант (1) створить для вас дві пари ключів. Пара ключів DSA буде первинною парою ключів — для створення цифрових підписів, а підпорядкована пара ключів ELGamel — для шифрування даних. 6. Ви створите розмір ключа ELG-E 1024. Знову прийміть значення за замовчуванням у запиті нижче: ```bash DSA key pair will have 1024 bits. - + About to generate a new ELG-E key pair. - + minimum key size is 768 bits - + default key size is 1024 bits - + highest suggested key size is 2048 bits - + What key size do you want? (1024) 1024 ``` 7. Створіть ключі, термін дії яких закінчиться через рік. Введіть «1y» у рядку нижче: - Please specify how long the key should be valid. + Please specify how long the key should be valid. - 0 = key does not expire + 0 = key does not expire - ++"n"++ = key expires in n days + \++"n"++ = key expires in n days - ++"n"+"w"++ = key expires in n weeks + \++"n"+"w"++ = key expires in n weeks - ++"n"+"m"++> = key expires in n months + \++"n"+"m"++> = термін дії ключа закінчується через n місяців - ++"n"+"y"++ = key expires in n years + \++"n"+"y"++ = key expires in n years - Key is valid for? (0) 1y + Key is valid for? (0) 1y 8. Введіть «y», щоб прийняти термін придатності, показаний у запиті: @@ -205,25 +209,25 @@ GnuPG (GNU Privacy Guard) — це набір програм для шифрув 9. Створіть ідентифікатор користувача, щоб ідентифікувати свій ключ за допомогою: - You need a User-ID to identify your key; the software constructs the user id + You need a User-ID to identify your key; the software constructs the user id - from Real Name, Comment and Email Address in this form: + from Real Name, Comment and Email Address in this form: - "Firstname Lastname (any comment) " + "Ім'я Прізвище (будь-який коментар) " - Real name: Ying Yang ++enter++ + Real name: Ying Yang ++enter++ - Comment : my test ++enter++ + Comment : my test ++enter++ - Email address: ying@serverXY ++enter++ + Email address: ying@serverXY ++enter++ - У запиті підтвердження введіть «o» (Добре), щоб прийняти правильні значення. + У запиті підтвердження введіть «o» (Добре), щоб прийняти правильні значення. - You selected this USER-ID: + You selected this USER-ID: - "Ying Yang (my test) " + "Ying Yang (my test) " - Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O + Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O 10. Виберіть парольну фразу, яку ви НЕ забудете під час наступного запиту: @@ -244,16 +248,16 @@ GnuPG (GNU Privacy Guard) — це набір програм для шифрув 1. Увійдіть в систему як користувач ying. Покажіть ключі у вашому key-ring. Впишіть: ```bash - [ying@serverXY ying\]$ gpg --list-keys - + [ying@serverXY ying]$ gpg --list-keys + gpg: WARNING: using insecure memory! - + /home/ying/.gnupg/pubring.gpg - + ----------------------------- - + pub 1024D/1D12E484 2003-10-16 Ying Yang (my test) - + sub 1024g/1EDB00AC 2003-10-16 [expires: 2004-10-15] ``` @@ -269,7 +273,7 @@ GnuPG (GNU Privacy Guard) — це набір програм для шифрув ```bash [ying@serverXY ying]$ gpg --list-sigs - + /home/ying/.gnupg/pubring.gpg ``` @@ -277,13 +281,13 @@ GnuPG (GNU Privacy Guard) — це набір програм для шифрув ```bash [ying@serverXY ying]$ gpg --list-secret-keys - + /home/ying/.gnupg/secring.gpg - + ----------------------------- - + sec 1024D/1D12E484 2003-10-16 Ying Yang (my test) - + ssb 1024g/1EDB00AC 2003-10-16 ``` @@ -291,19 +295,19 @@ GnuPG (GNU Privacy Guard) — це набір програм для шифрув ```bash [ying@serverXY ying]$ gpg --fingerprint - + /home/ying/.gnupg/pubring.gpg - + ----------------------------- - + pub 1024D/1D12E484 2003-10-16 Ying Yang (my test) - + Key fingerprint = D61E 1538 EA12 9049 4ED3 5590 3BC4 A3C1 1D12 E484 - + sub 1024g/1EDB00AC 2003-10-16 [expires: 2004-10-15] - + Revocation certificates - + Revocation certificates are used to revoke keys in case someone gets knowledge of your secret key or in case you forget your passphrase. They are also useful for other various functions. ``` @@ -315,11 +319,11 @@ GnuPG (GNU Privacy Guard) — це набір програм для шифрув [ying@serverXY ying]$ gpg --gen-revoke ying@serverXY ``` - Дотримуйтесь підказок і введіть свою парольну фразу, коли буде запропоновано це зробити. + Дотримуйтесь підказок і введіть свою парольну фразу, коли буде запропоновано це зробити. 2. Тепер створіть сертифікат відкликання, який зберігатиметься у форматі ASCII у файлі під назвою - - “revoke.asc”. Впишіть: + “revoke.asc”. Впишіть: ```bash [ying@serverXY ying]$ gpg --output revoke.asc --gen-revoke ying@serverXY @@ -345,19 +349,19 @@ GnuPG (GNU Privacy Guard) — це набір програм для шифрув [ying@serverXY ying]$ gpg --output ying-pub.gpg --export ``` - !!! note "Примітка" + !!! note - Замініть з будь-яким рядком, який правильно визначає ваші ключі. У нашій зразковій системі це значення може бути будь-яким із наведеного нижче: - - ying@serverXY, ying, yang - - АБО - - The actual key ID - 1D12E484 + Будь ласка, замініть будь-яким рядком, який правильно ідентифікує ваші ключі. У нашій системі-прикладі це значення може бути будь-яким із наведених нижче: + + ying@serverXY, ying, yang + + Або + + The actual key ID - 1D12E484 2. Експортуйте відкритий ключ у файл під назвою «ying-pub.asc». Але цього разу згенеруйте його - ASCII-броньований формат. Впишіть: + ASCII-броньований формат. Впишіть: ```bash [ying@serverXY ying]$gpg --output ying-pub.asc --armor --export ying@serverXY @@ -365,7 +369,7 @@ GnuPG (GNU Privacy Guard) — це набір програм для шифрув 3. Використовуйте команду cat, щоб переглянути двійкову версію відкритого ключа ying (ying-pub.gpg) -4. Щоб скинути термінал, введіть: `reset` +4. Щоб скинути налаштування терміналу, введіть: `reset` 5. Використовуйте команду cat, щоб переглянути версію ASCII відкритого ключа ying (ying-pub.asc) @@ -393,17 +397,17 @@ GnuPG (GNU Privacy Guard) — це набір програм для шифрув [ying@serverXY ying]$ gpg -s secret1.txt ``` - Введіть свою парольну фразу, коли буде запропоновано. + Введіть свою парольну фразу, коли буде запропоновано. - Наведена вище команда створить ще один файл «secret1.txt.gpg», який буде стиснутий і до якого додано підпис. Виконайте команду «file» для файлу, щоб перевірити це. Перегляньте файл із cat + Наведена вище команда створить ще один файл «secret1.txt.gpg», який буде стиснутий і до якого додано підпис. Виконайте команду «file» для файлу, щоб перевірити це. Перегляньте файл із cat 4. Перевірте підпис у підписаному файлі “secret1.txt.gpg”. Впишіть: ```bash [ying@serverXY ying]$ gpg --verify secret1.txt.gpg - + gpg: Signature made Thu 16 Oct 2003 07:29:37 AM PDT using DSA key ID 1D12E484 - + gpg: Good signature from "Ying Yang (my test) " ``` @@ -415,7 +419,7 @@ GnuPG (GNU Privacy Guard) — це набір програм для шифрув [ying@serverXY ying]$ gpg -sa secret2.txt ``` - У вашому pwd буде створено броньований файл ASCII під назвою “secret2.txt.asc”. + У вашому pwd буде створено броньований файл ASCII під назвою “secret2.txt.asc”. 7. Використовуйте команду cat, щоб переглянути вміст ASCII-файлу, створеного для вас вище. @@ -431,27 +435,27 @@ GnuPG (GNU Privacy Guard) — це набір програм для шифрув [ying@serverXY ying]$ gpg --clearsign secret3.txt ``` - Це створить нестиснений файл (secret3.txt.asc), загорнутий у ваш ASCII-підпис. + Це створить нестиснений файл (secret3.txt.asc), загорнутий у ваш ASCII-підпис. - Запишіть команду для перевірки створеного для вас підпису файлу. + Запишіть команду для перевірки створеного для вас підпису файлу. 10. Відкрийте файл, щоб переглянути його вміст за допомогою будь-якого пейджера. - !!! question "Питання" - - Чи можете ви прочитати текст, який ви ввели у файл? + !!! question + + Чи можете ви прочитати текст, який ви ввели у файл? !!! warning "Прочитайте, перш ніж продовжити" - Переконайтеся, що ваш партнер виконав усі «Вправи 1, 2 і 3» вище, перш ніж перейти до Вправи 4 нижче. + Переконайтеся, що ваш партнер виконав усі «Вправи 1, 2 та 3» вище, перш ніж ви перейдете до вправи 4 нижче. - Якщо у вас немає партнера, вийдіть з облікового запису користувача Ying і увійдіть у систему як користувач «me». + Якщо у вас немає партнера, вийдіть з облікового запису користувача Ying та увійдіть у систему як користувач «me». - Потім повторіть усі «Вправи 1, 2 і 3» як користувач «me». + Потім повторіть усі «Вправи 1, 2 та 3» як користувач «me». - Потім ви можете виконати вправу 4 нижче. Замініть усі посилання на користувача Ying на "serverPR" на користувача "me" на ServerXY (тобто ваш локальний хост). + Потім ви можете виконати вправу 4 нижче. Замініть усі посилання на користувача Ying на «serverPR» на користувача «me» на ServerXY (тобто ваш локальний хост). - У наступній вправі ви можете використовувати або користувача «me@serverXY», або користувача «ying@serverPR». + Ви можете використовувати користувача «me@serverXY» або користувача «ying@serverPR» як свого партнера в наступній вправі. ## Завдання 4 @@ -463,27 +467,27 @@ GnuPG (GNU Privacy Guard) — це набір програм для шифрув 2. Зробіть свій ASCII-броньований файл відкритого ключа (ying-pub.asc) доступним для вашого партнера (використайте - або - me@serverXY або ying@serverPR) + або - me@serverXY або ying@serverPR) + + !!! note - !!! note "Примітка" - - Є кілька способів зробити це, напр. електронна пошта, копіювання та вставка, scp, ftp, збереження на дискеті тощо. - - Виберіть для себе найефективніший спосіб. + Існує кілька способів зробити це, наприклад, електронною поштою, копіюванням та вставкою, scp, ftp, збереженням на дискеті тощо. + + Оберіть для себе найефективніший метод. 3. Попросіть свого партнера надати вам доступ до файлу відкритого ключа. 4. Припустимо, що відкритий ключ вашого партнера зберігається у файлі під назвою «me-pub.asc» у вашому pwd; - Імпортуйте ключ у свій key-ring. Впишіть: + Імпортуйте ключ у свій key-ring. Впишіть: ```bash [ying@serverXY ying]$ gpg --import me-pub.asc - + gpg: key 1D0D7654: public key "Me Mao (my test) " imported - + gpg: Total number processed: 1 - + gpg: imported: 1 ``` @@ -491,17 +495,17 @@ GnuPG (GNU Privacy Guard) — це набір програм для шифрув ```bash [ying@serverXY ying]$ gpg --list-keys - + /home/ying/.gnupg/pubring.gpg - + ----------------------------- - + pub 1024D/1D12E484 2003-10-16 Ying Yang (my test) - + sub 1024g/1EDB00AC 2003-10-16 [expires: 2004-10-15] - + pub 1024D/1D0D7654 2003-10-16 Me Mao (my test) - + sub 1024g/FD20DBF1 2003-10-16 [expires: 2004-10-15] ``` @@ -517,15 +521,15 @@ GnuPG (GNU Privacy Guard) — це набір програм для шифрув [ying@serverXY ying]$ gpg --fingerprint me@serverXY ``` - Шифрування та дешифрування файлів + Шифрування та розшифрування файлів - Процедура шифрування та дешифрування файлів або документів проста. + Процедура шифрування та дешифрування файлів або документів проста. - Якщо ви хочете зашифрувати повідомлення для користувача ying, ви зашифруєте його за допомогою відкритого ключа користувача ying. + Якщо ви хочете зашифрувати повідомлення для користувача ying, ви зашифруєте його за допомогою відкритого ключа користувача ying. - Після отримання ying потрібно буде розшифрувати повідомлення за допомогою закритого ключа ying. + Після отримання ying потрібно буде розшифрувати повідомлення за допомогою закритого ключа ying. - ТІЛЬКИ ying може розшифрувати повідомлення або файл, зашифрований відкритим ключем ying + ТІЛЬКИ ying може розшифрувати повідомлення або файл, зашифрований відкритим ключем ying #### Щоб зашифрувати файл @@ -535,7 +539,7 @@ GnuPG (GNU Privacy Guard) — це набір програм для шифрув [ying@serverXY ying]$ echo "hello" > encrypt-sec.txt ``` - Переконайтеся, що ви можете прочитати вміст файлу за допомогою cat. + Переконайтеся, що ви можете прочитати вміст файлу за допомогою cat. 2. Зашифруйте файл encrypt-sec.txt, щоб лише користувач «me» міг переглядати файл. тобто ви зашифруєте його за допомогою відкритого ключа me@serverXY (який зараз є у вашому key-ring). Впишіть: @@ -543,21 +547,21 @@ GnuPG (GNU Privacy Guard) — це набір програм для шифрув [ying@serverXY ying]$ gpg --encrypt --recipient me@serverXY encrypt-sec.txt ``` - Наведена вище команда створить зашифрований файл під назвою «encrypt-sec.txt.gpg» у вашому pwd. + Наведена вище команда створить зашифрований файл під назвою «encrypt-sec.txt.gpg» у вашому pwd. #### Щоб розшифрувати файл 1. Файл, який ви зашифрували вище, призначений для me@serverXY. - Спробуйте розшифрувати файл. Впишіть: + Спробуйте розшифрувати файл. Впишіть: ```bash [ying@serverXY ying]$ gpg --decrypt encrypt-sec.txt.gpg - + gpg: encrypted with 1024-bit ELG-E key, ID FD20DBF1, created 2003-10-16 - + "Me Mao (my test) " - + gpg: decryption failed: secret key not available ``` @@ -565,34 +569,34 @@ GnuPG (GNU Privacy Guard) — це набір програм для шифрув 3. Зробіть зашифрований файл, який ви створили, доступним для належного власника та попросіть його виконати наведену вище команду, щоб розшифрувати файл. Чи вдалося їм розшифрувати файл. - !!! note "Примітка" - - Будьте дуже обережні, розшифровуючи двійкові файли (наприклад, програми), тому що після успішного розшифрування файлу gpg спробує надіслати вміст файлу на стандартний вивід. + !!! note + + Будьте дуже обережні під час розшифрування бінарних файлів (наприклад, програм), оскільки після успішного розшифрування файлу gpg спробує вивести вміст файлу на стандартний вивід. - Візьміть звичку використовувати команду нижче під час розшифровки файлів: + Візьміть звичку використовувати команду нижче під час розшифровки файлів: ```bash [ying@serverXY ying]$ gpg --output encrypt-sec --decrypt encrypt-sec.txt.gpg ``` - Це примусово надсилає вихідні дані у файл під назвою «encrypt-sec». - - Який потім можна переглянути (або запустити) за допомогою будь-якої програми, яка підходить для типу файлу (або вмісту). - - !!! Tip "Поради" - - Більшість команд і параметрів, які використовуються з програмою gpg, також мають короткі форми, що призводить до того, що користувач менше вводить текст у командному рядку. наприклад. + Це примусово надсилає вихідні дані у файл під назвою «encrypt-sec». - ``` - gpg --encrypt --recipient me@serverXY encrypt-sec.txt - ``` + Який потім можна переглянути (або запустити) за допомогою будь-якої програми, яка підходить для типу файлу (або вмісту). + !!! Tip "Поради" - Коротка форма наведеної вище команди: - - ``` - gpg -e -r me@serverXY encrypt-sec.txt - ``` + ``` + Більшість команд і опцій, що використовуються програмою gpg, також мають короткі форми, що зменшує кількість введених користувачем команд у командному рядку. Наприклад, + + ``` + gpg --encrypt --recipient me@serverXY encrypt-sec.txt + ``` + Коротка форма вищезазначеної команди така: + + ``` + gpg -e -r me@serverXY encrypt-sec.txt + ``` + ``` 4. Щоб зашифрувати рядок "hello" і надіслати його як броньоване повідомлення ASCII користувачеві з адресою електронної пошти ying@serverXY, використовуйте команду нижче: @@ -602,7 +606,7 @@ GnuPG (GNU Privacy Guard) — це набір програм для шифрув 5. Щоб зашифрувати файл "your_file" відкритим ключем "me@serverXY" і записати його в "your_file.gpg" - підписавши його своїм ідентифікатором користувача (використовуючи свій цифровий підпис), використовуйте команду нижче: + підписавши його своїм ідентифікатором користувача (використовуючи свій цифровий підпис), використовуйте команду нижче: ```bash gpg -se -r me@serverXY your_file @@ -610,7 +614,7 @@ GnuPG (GNU Privacy Guard) — це набір програм для шифрув 6. Існує загальнодоступний сервер ключів на wwwkeys.pgp.net. Ви можете використовувати gpg, щоб завантажити туди свій ключ за допомогою: - gpg --send-keys --keyserver wwwkeys.pgp.net + gpg --send-keys --keyserver wwwkeys.pgp.net ## [OpenSSH](https://www.openssh.org) @@ -624,7 +628,7 @@ OpenSSH — це реалізація протоколу SSH (Secure SHell) Open ### sshd -На стороні сервера є демон безпечної оболонки (`sshd`). `sshd` — це демон, який прослуховує підключення клієнтів. +Серверна частина включає демон захищеної оболонки (`sshd`). `sshd` — це демон, який прослуховує з'єднання від клієнтів. Він створює новий демон для кожного вхідного з’єднання. Розгалужені демони обробляють обмін ключами, шифрування, автентифікацію, виконання команд і обмін даними. Згідно зі сторінкою довідки sshd, `sshd` працює наступним чином: @@ -638,7 +642,7 @@ OpenSSH — це реалізація протоколу SSH (Secure SHell) Open ### ssh -Набір програм клієнта включає `ssh`. Це програма, яка використовується для входу у віддалені системи, а також може використовуватися для виконання команд у віддалених системах. +Клієнтський пакет програм включає `ssh`. Це програма, яка використовується для входу у віддалені системи, а також може використовуватися для виконання команд у віддалених системах. ## Завдання 5 @@ -668,7 +672,7 @@ Options: -o option Process the option as if it was read from a configuration file. ``` -Більшість систем Linux із коробки вже мають сервер OpenSSH, налаштований і запущений із деякими параметрами за замовчуванням. Конфігураційний файл для `sshd` зазвичай знаходиться в `/etc/ssh/` і має назву `sshd_config`. +Більшість систем Linux із коробки вже мають сервер OpenSSH, налаштований і запущений із деякими параметрами за замовчуванням. Файл конфігурації для `sshd` зазвичай знаходиться в `/etc/ssh/` і має назву `sshd_config`. ### `sshd_config` @@ -678,22 +682,22 @@ Options: [root@serverXY root]# less /etc/ssh/sshd_config ``` - !!! note "Примітка" + !!! note + + `sshd_config` — це досить дивний конфігураційний файл. На відміну від інших конфігураційних файлів Linux, коментарі (#) у файлі `sshd_config` позначають значення опцій за замовчуванням (тобто коментарі представляють вже скомпільовані значення за замовчуванням) - `sshd_config` є досить дивним конфігураційним файлом. На відміну від інших конфігураційних файлів Linux, коментарі (#) у файлі `sshd_config` позначають значення параметрів за замовчуванням. (тобто коментарі представляють уже скомпільовані значення за замовчуванням.) +2. Зверніться до сторінки довідки щодо `sshd_config`. -2. Перегляньте довідкову сторінку для `sshd_config`. + !!! question - !!! question "Питання" - - Що роблять наступні параметри? - - - AuthorizedKeysFile - - Ciphers - - Port - - Protocol - - X11Forwarding - - HostKey + Що роблять наступні опції? + + - AuthorizedKeysFile + - Ciphers + - Port + - Protocol + - X11Forwarding + - HostKey 3. Змініть свій pwd на каталог /etc/ssh/. @@ -711,22 +715,22 @@ Options: [root@serverXY ssh]# mkdir spare-keys && cd spare-keys ``` -2. Використовуйте програму `ssh-keygen`, щоб створити ключ хоста з такими характеристиками: +2. Використайте програму `ssh-keygen` для створення ключа хоста з такими характеристиками: - - тип ключа має бути "rsa" - - Ключ не повинен мати коментарів - - Файл закритого ключа повинен мати назву - ssh_host_rsa_key - - Ключ не повинен використовувати парольну фразу + - тип ключа має бути "rsa" + - Ключ не повинен мати коментарів + - Файл закритого ключа повинен мати назву - ssh_host_rsa_key + - Ключ не повинен використовувати парольну фразу - Впишіть: + Впишіть: ```bash [root@serverXY spare-keys]# ssh-keygen -q -t rsa -f ssh_host_rsa_key -C '' -N '' ``` - !!! question "Питання" + !!! question "Питання" - Що потрібно зробити, щоб демон sshd використовував ключ хоста, який ви щойно згенерували? + Що потрібно зробити, щоб демон sshd використовував щойно згенерований вами ключ хоста? 3. Перегляньте відбиток ключа, який ви створили вище. Впишіть: @@ -754,7 +758,7 @@ Options: 5. Запишіть команду для створення ключа типу dsa під назвою «ssh_host_dsa_key» без коментарів і фрази-паролю. -6. Перевірити стан служби `sshd`. Впишіть: +6. Перевірте стан служби `sshd`. Впишіть: ```bash [root@localhost ~]# systemctl -n 0 status sshd.service @@ -764,7 +768,7 @@ Options: ...... ``` -7. Якщо ви вносите будь-які зміни у конфігураційний файл `sshd`, ви можете перезапустити службу `sshd`, виконавши: +7. Якщо ви внесете будь-які зміни до конфігураційного файлу `sshd`, ви можете перезапустити службу `sshd`, виконавши команду: ```bash [root@localhost ~]# systemctl restart sshd.service @@ -774,7 +778,7 @@ Options: ### `ssh` -Цей розділ охоплює вправи, що стосуються клієнтської програми `ssh`. +У цьому розділі розглядаються вправи, що охоплюють клієнтську програму `ssh`. ```bash usage: ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-B bind_interface] @@ -786,7 +790,7 @@ usage: ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-B bind_interface] [-w local_tun[:remote_tun]] destination [command] ``` -#### Щоб використовувати `ssh` +#### Використання `ssh` 1. Увійдіть на serverXY як користувач me. @@ -796,7 +800,7 @@ usage: ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-B bind_interface] [me@serverXY me]$ ssh serverPR ``` - Введіть пароль користувача me, коли буде запропоновано. Якщо ви отримаєте будь-які попередження, введіть «yes», щоб продовжити. + Введіть пароль користувача me, коли буде запропоновано. Якщо ви отримаєте будь-які попередження, введіть «yes», щоб продовжити. 3. Після входу створіть каталог під назвою - myexport і створіть порожній файл під назвою foobar у новому каталозі. Впишіть: @@ -810,9 +814,9 @@ usage: ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-B bind_interface] [me@serverPR me]$ exit ``` - Ви повернетеся до локальної оболонки на serverXY. + Ви повернетеся до локальної оболонки на serverXY. -5. Використовуйте `ssh`, щоб віддалено виконати команду “ls” для рекурсивного перегляду списку файлів домашньому каталозі me на serverPR. Впишіть: +5. Використовуйте `ssh` для віддаленого виконання команди “ls” для рекурсивного перегляду списку файлів у домашньому каталозі користувача serverPR. Впишіть: ```bash [root@localhost ~]# ssh me@serverPR 'ls -lR /home/me/myexport' @@ -823,9 +827,9 @@ usage: ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-B bind_interface] -rw-rw-r-- 1 me me 0 Oct 9 16:48 foobar ``` - Введіть мій пароль користувача me, коли буде запропоновано. Якщо ви отримаєте будь-які попередження, введіть «yes», щоб продовжити. + Введіть мій пароль користувача me, коли буде запропоновано. Якщо ви отримаєте будь-які попередження, введіть «yes», щоб продовжити. -6. Перебуваючи на сервері serverXY, спробуйте віддалено перезавантажити serverPR як користувач `ying`. Впишіть: +6. Під час авторизації на сервері serverXY спробуйте віддалено перезавантажити serverPR від імені користувача `ying`. Впишіть: ```bash [me@localhost ~]# ssh -l ying localhost 'reboot' @@ -833,13 +837,15 @@ usage: ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-B bind_interface] ...... ``` - Коли буде запропоновано, введіть пароль користувача ying. + Коли буде запропоновано, введіть пароль користувача ying. - !!! Questions "Питання" + !!! Questions "Питання" - Чи міг користувач ying віддалено перезавантажити serverPR? Чому ying не може віддалено перезавантажити serverPR? + ``` + Чи зміг користувач ying віддалено перезавантажити serverPR? Чому ying не може віддалено перезавантажити serverPR? + ``` -7. На сервері XY спробуйте віддалено переглянути статус служби `sshd`, що працює на serverPR, як користувач `ying`. Впишіть: +7. З сервера serverXY спробуйте віддалено переглянути стан служби `sshd`, що працює на serverPR від імені користувача `ying`. Впишіть: ```bash [root@localhost ~]# ssh -l ying localhost 'systemctl status sshd.service' @@ -847,7 +853,7 @@ usage: ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-B bind_interface] ● sshd.service - OpenSSH server daemon ``` -8. З сервера XY спробуйте віддалено перезапустити службу `sshd`, яка працює на сервері PR від імені користувача `ying`. Впишіть: +8. З сервера serverXY спробуйте віддалено перезапустити службу `sshd`, що працює на serverPR, від імені користувача `ying`. Впишіть: ```bash [root@localhost ~]# ssh -l ying localhost 'systemctl restart sshd.service' @@ -856,17 +862,19 @@ usage: ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-B bind_interface] See system logs and 'systemctl status sshd.service' for details. ``` - !!! Question "Питання" + !!! Questions "Питання" - - Чи міг користувач ying віддалено переглянути статус служби sshd на serverPR? - - Чи зміг користувач ying віддалено перезапустити службу sshd на serverPR? - - Напишіть коротке пояснення поведінки, яку ви спостерігаєте. + ``` + - Чи міг користувач ying віддалено переглядати стан служби sshd на serverPR? + - Чи зміг користувач ying віддалено перезапустити службу sshd на serverPR? + - Напишіть коротке пояснення поведінки, яку ви спостерігаєте. + ``` 9. Введіть «exit», щоб вийти з serverPR і повернутися до serverXY. -### `scp` - безпечне копіювання (програма віддаленого копіювання файлів) +### `scp` - безпечне копіювання (програма для віддаленого копіювання файлів) -`scp` копіює файли між хостами в мережі. Він використовує SSH для передачі даних, використовує ту саму автентифікацію та забезпечує таку саму безпеку, що й `ssh`. +`scp` копіює файли між хостами в мережі. Він використовує SSH для передачі даних, використовує ту саму автентифікацію та забезпечує ту саму безпеку, що й `ssh`. ```bash usage: scp [-346BCpqrTv] [-c cipher] [-F ssh_config] [-i identity_file] @@ -874,13 +882,14 @@ usage: scp [-346BCpqrTv] [-c cipher] [-F ssh_config] [-i identity_file] [-S program] source ... target ``` -#### Щоб використовувати `scp` +#### Використання `scp` -1. Переконайтеся, що ви все ще ввійшли як користувач `me` на serverXY. +1. Переконайтеся, що ви все ще ввійшли в систему як користувач `me` на serverXY. -2. Створіть каталог у своєму домашньому каталозі під назвою `myimport` і перейдіть до каталогу. +2. Створіть каталог під назвою `myimport` у вашому домашньому каталозі та перейдіть до нього за допомогою cd. -3. Використовуйте `scp`, щоб скопіювати всі файли в каталозі “/home/me/myexport/” на віддаленому сервері PR. (крапка «.» у кінці команди важлива). Впишіть: +3. Використайте `scp` для копіювання всіх файлів з каталогу “/home/me/myexport/” на віддаленому сервері serverPR. + (крапка «.» у кінці команди важлива). Впишіть: ```bash [me@localhost ~myimport]# scp serverPR:/home/me/myexport . @@ -888,11 +897,11 @@ usage: scp [-346BCpqrTv] [-c cipher] [-F ssh_config] [-i identity_file] scp: /home/me/myexport: not a regular file ``` - !!! Question "Питання" + !!! question "Питання" - Напишіть коротке пояснення, чому попередня команда не вдалася? + Напишіть коротке пояснення, чому попередня команда не виконала свою роботу? -4. Виконайте попередню команду знову, але цього разу додайте рекурсивний параметр до `scp`. Впишіть: +4. Знову виконайте попередню команду, але цього разу додайте рекурсивний параметр до `scp`. Впишіть: ```bash [me@localhost ~myimport]# scp -r me@serverPR:/home/me/myexport . @@ -900,15 +909,15 @@ usage: scp [-346BCpqrTv] [-c cipher] [-F ssh_config] [-i identity_file] foobar ``` - !!! Question "Питання" + !!! question "Питання" - Яка різниця між варіаціями цих двох команд і за яких обставин вони матимуть однаковий результат? - - - scp me@serverPR:/home/me/myexport. - - та - - - scp serverPR:/home/me/myexport. + Яка різниця між варіаціями цих двох команд і за яких обставин вони матимуть однаковий результат? + + - scp me@serverPR:/home/me/myexport. + + та + + - scp serverPR:/home/me/myexport. 5. Яка команда скопіює всі файли в “/home/me/.gnugp/” на serverPR? @@ -924,35 +933,39 @@ usage: scp [-346BCpqrTv] [-c cipher] [-F ssh_config] [-i identity_file] [me@localhost ~myimport]# scp -r ying@localhost:/home/ying ying_home_directory_on_serverPR ``` - !!! Question "Питання" + !!! Questions "Питання" - Яка невелика, але суттєва різниця між варіаціями двох попередніх команд? І який результат кожної команди? - - - `scp -r ying@localhost:/home/ying/ ying_home_directory_on_serverPR` - - та - - - `scp -r ying@localhost:/home/ying ying_home_directory_on_serverPR` + ``` + Яка невелика, але суттєва різниця між варіантами двох попередніх команд? І який результат кожної команди? + + - `scp -r ying@localhost:/home/ying/ ying_home_directory_on_serverPR` + + та + + - `scp -r ying@localhost:/home/ying ying_home_directory_on_serverPR` + ``` -8. Використовуйте команду `ls -alR`, щоб переглянути перелік вмісту двох попередніх кроків. Впишіть: +8. Використайте команду `ls -alR`, щоб переглянути список вмісту двох попередніх кроків. Впишіть: ```bash [me@localhost ~myimport]# ls -al ying_home_directory_on_serverPR/ ``` - !!! Question "Питання" + !!! question "Питання" - Надайте коротке пояснення виводу команди `ls -alR`? Поясніть, наприклад, чому у вас є дублікати цих файлів .bash_history, .bashrc ... + Надайте коротке пояснення результату виконання команди `ls -alR`. Поясніть, наприклад, чому у вас, здається, є дублікати цих файлів .bash_history, .bashrc ... ## Завдання 7 ### Створення відкритих і закритих ключів користувача для SSH -Кожному користувачеві, який хоче використовувати SSH з автентифікацією RSA або DSA, потрібна пара відкритого та закритого ключів. Програму `ssh-keygen` можна використати для створення цих ключів (так само, як вона використовувалася раніше, коли ви створювали нові ключі хосту для вашої системи) +Кожному користувачеві, який хоче використовувати SSH з автентифікацією RSA або DSA, потрібна пара відкритого та закритого ключів. Для створення цих ключів можна використовувати програму `ssh-keygen` (так само, як вона використовувалася раніше, коли ви створювали нові ключі хоста для вашої системи) !!! TIP "Підказка" - Основна відмінність між ключами хоста та користувача полягає в тому, що настійно рекомендується захищати їх за допомогою парольної фрази. Парольна фраза – це пароль, який використовується для шифрування закритого ключа [простого тексту]. + ``` + Одна з головних відмінностей між ключами хоста та користувача полягає в тому, що наполегливо рекомендується захищати ключі користувача за допомогою парольної фрази. Парольна фраза — це пароль, який використовується для шифрування закритого ключа [звичайного тексту]. + ``` Загальнодоступний ключ зберігається у файлі з тим же ім’ям, що й закритий ключ, але з розширенням «.pub». Немає простого способу відновити втрачену парольну фразу. Необхідно створити новий ключ, якщо парольну фразу втрачено або забуто. @@ -960,22 +973,22 @@ usage: scp [-346BCpqrTv] [-c cipher] [-F ssh_config] [-i identity_file] 1. Увійдіть на локальну машину як користувач ying. -2. Запустіть програму `ssh-keygen`, щоб створити ключ типу «dsa» із довжиною за замовчуванням. Впишіть: +2. Запустіть програму `ssh-keygen`, щоб створити ключ типу «dsa» з довжиною за замовчуванням. Впишіть: ```bash [ying@serverXY ying]$ ssh-keygen -t dsa - + Generating public/private dsa key pair. ``` - Натисніть ++enter++, щоб прийняти розташування файлу за замовчуванням. + Натисніть ++enter++, щоб прийняти розташування файлу за замовчуванням. ```bash Enter file in which to save the key (/home/ying/.ssh/id_dsa): Created directory '/home/ying/.ssh'. ``` - Вам двічі буде запропоновано ввести парольну фразу. Введіть хорошу парольну фразу, яку досить складно вгадати. Натисніть ENTER після кожного запиту. + Вам двічі буде запропоновано ввести парольну фразу. Введіть хорошу парольну фразу, яку досить складно вгадати. Натисніть ENTER після кожного запиту. ```bash Enter passphrase (empty for no passphrase): ***** @@ -991,13 +1004,13 @@ usage: scp [-346BCpqrTv] [-c cipher] [-F ssh_config] [-i identity_file] ...... ``` - Після успішного завершення ви побачите повідомлення про те, що вашу ідентифікацію та відкритий ключі збережено в каталозі `/home/ying/.ssh/`. + Після успішного завершення ви побачите повідомлення про те, що ваші ідентифікаційні дані та відкриті ключі збережено в каталозі `/home/ying/.ssh/`. -3. cd у ваш каталог `~/.ssh/`. Список файлів у каталозі. +3. перейдіть до вашого каталогу `~/.ssh/` за допомогою команди cd. Список файлів у каталозі. -4. Що таке команда `ssh-keygen` для перегляду відбитків ваших ключів? +4. Яка команда `ssh-keygen` для перегляду відбитка ваших ключів? -5. Використовуйте команду cat, щоб переглянути вміст вашого файлу відкритого ключа (тобто `~/.ssh/id_dsa.pub`). +5. Використайте команду cat для перегляду вмісту вашого файлу відкритого ключа (наприклад, `~/.ssh/id_dsa.pub`). ## Завдання 8 @@ -1011,32 +1024,37 @@ usage: scp [-346BCpqrTv] [-c cipher] [-F ssh_config] [-i identity_file] #### Щоб налаштувати автентифікацію за допомогою відкритого ключа -1. Увійдіть на локальну машину як користувач *ying*. +1. Увійдіть у свою локальну систему як користувач _ying_. 2. cd у ваш каталог «~/.ssh». -3. Введіть наведені нижче команди точно так, як показано. Вам буде запропоновано ввести пароль ying на serverPR. Впишіть: +3. Введіть наведені нижче команди точно так, як показано. Вам буде запропоновано ввести пароль ying на serverPR. + Впишіть: ```bash [ying@serverXY .ssh]$ cat id_dsa.pub | ssh ying@serverPR \ - + '(cd ~/.ssh && cat - >> authorized_keys && chmod 600 authorized_keys)' ``` - Якщо говорити простою мовою, наведена вище команда звучить так: + Якщо говорити простою мовою, наведена вище команда звучить так: - a. cat вміст вашого файлу відкритого ключа DSA та передайте/надішліть ( | ) вихід до `ssh ying@serverPR` + a. отримати вміст вашого файлу відкритого ключа dsa та надіслати ( | ) вивід до `ssh ying@serverPR` - b. запустіть команду “cd ~/.ssh && cat - >> authorized_keys && chmod 600 authorized_keys” як користувач, який знаходиться на serverPR. + b. виконайте команду “cd ~/.ssh && cat - >> authorized_keys && chmod 600 authorized_keys” від імені користувача serverPR. - !!! Note "Примітка" + !!! Note "Примітка" - Мета попередньої складної на вигляд команди полягає в тому, щоб скопіювати та додати вміст вашого файлу відкритого ключа до “/home/ying/.ssh/authorized_keys” на serverPR і надати йому правильні дозволи. + ``` + Мета попередньої складної команди — скопіювати та додати вміст вашого файлу відкритого ключа до «/home/ying/.ssh/authorized_keys» на serverPR та надати йому правильні дозволи. + ``` - !!! tip "Порада" + !!! Tip "Порада" - Ви можете використовувати утиліту `ssh-copy-id`, щоб легко та більш витончено налаштувати автентифікацію відкритих/приватних ключів між системами. `ssh-copy-id` — це сценарій, який використовує `ssh` для входу на віддалену машину (імовірно, спочатку використовуючи пароль для входу. - Він складає список з одного або кількох відбитків пальців (як описано нижче) і намагається ввійти за допомогою кожної клавіші, щоб побачити, чи якийсь із них уже встановлено. Потім він збирає список тих, кому не вдалося ввійти, і за допомогою `ssh` дозволяє ввійти за допомогою цих ключів у віддалену систему. За замовчуванням він додає ключі, додаючи їх до ~/.ssh/authorized_keys віддаленого користувача (створюючи файл і каталог, якщо необхідно). + ``` + Ви можете скористатися утилітою `ssh-copy-id` для легкого та більш витонченого налаштування автентифікації за допомогою відкритого/приватного ключа між системами. `ssh-copy-id` – це скрипт, який використовує `ssh` для входу на віддалену машину (ймовірно, спочатку з використанням пароля для входу). + Він складає список одного або кількох відбитків пальців (як описано нижче) та намагається увійти за допомогою кожного ключа, щоб перевірити, чи якийсь із них вже встановлений. Потім він складає список тих, яким не вдалося увійти, та за допомогою `ssh` дозволяє вхід за допомогою цих ключів на віддаленій системі. За замовчуванням він додає ключі, додаючи їх до ~/.ssh/authorized_keys віддаленого користувача (створюючи файл та каталог, якщо необхідно). + ``` 4. Після додавання відкритого ключа до файлу authorized_keys у віддаленій системі. Спробуйте увійти на serverPR як ying через ssh. Впишіть: @@ -1045,7 +1063,7 @@ usage: scp [-346BCpqrTv] [-c cipher] [-F ssh_config] [-i identity_file] Enter passphrase for key '/home/ying/.ssh/id_dsa': ** ``` - Зверніть увагу, що цього разу вам буде запропоновано ввести парольну фразу замість пароля користувача. Введіть парольну фразу, яку ви створили раніше під час створення ключів. + Зверніть увагу, що цього разу вам буде запропоновано ввести парольну фразу замість пароля користувача. Введіть парольну фразу, яку ви створили раніше під час створення ключів. 5. Після успішного входу на serverPR - вийдіть. @@ -1053,17 +1071,17 @@ usage: scp [-346BCpqrTv] [-c cipher] [-F ssh_config] [-i identity_file] ### `ssh-agent` -According to the man page - `ssh-agent` is a program to hold private keys used for public key authentication (RSA, DSA, ECDSA, Ed25519). Ідея полягає в тому, що `ssh-agent` запускається на початку сеансу користувача або сеансу входу, а всі інші вікна або програми запускаються як клієнти для `ssh-agent` програма. За допомогою змінних середовища можна знайти агента та автоматично використовувати його для автентифікації під час входу на інші машини за допомогою `ssh`. +Згідно зі сторінкою довідки, `ssh-agent` — це програма для зберігання закритих ключів, що використовуються для автентифікації за відкритим ключем (RSA, DSA, ECDSA, Ed25519). Ідея полягає в тому, що `ssh-agent` запускається на початку сеансу користувача або входу в систему, а всі інші вікна або програми запускаються як клієнти програми `ssh-agent`. Завдяки використанню змінних середовища агент може бути знайдений та автоматично використаний для автентифікації під час входу на інші машини за допомогою `ssh`. ```bash -СИНОПСИС +SYNOPSIS ssh-agent [-c | -s] [-Dd] [-a bind_address] [-E fingerprint_hash] [-P pkcs11_whitelist] [-t life] [command [arg ...]] ssh-agent [-c | -s] -k ``` У цій вправі ви дізнаєтеся, як налаштувати агента, щоб вам не доводилося вводити свою парольну фразу щоразу, коли ви хочете підключитися до іншої системи за допомогою автентифікації з відкритим ключем. -1. Увійдіть у свою локальну систему як користувач *ying*. +1. Переконайтеся, що ви ввійшли у свою локальну систему як користувач _ying_. 2. Введіть команду нижче: @@ -1072,46 +1090,46 @@ According to the man page - `ssh-agent` is a program to hold private keys used f Agent pid 6354 ``` - Зверніть увагу на значення ідентифікатора процесу агента (PID) у вихідних даних. + Зверніть увагу на значення ідентифікатора процесу агента (PID) у вихідних даних. -3. Запустіть програму `ssh-add`, щоб отримати список відбитків пальців усіх [публічних/приватних] ідентифікацій, які зараз представляє агент. Впишіть: +3. Запустіть програму `ssh-add`, щоб отримати список відбитків усіх [публічних/приватних] ідентифікаційних даних, які наразі представлені агентом. Впишіть: ```bash [ying@localhost ~]$ ssh-add -l The agent has no identities. ``` - Ви ще не повинні мати жодних ідентифікаторів у списку. + Ви ще не повинні мати жодних ідентифікаторів у списку. -4. Використовуйте програму `ssh-add` без будь-яких опцій, щоб додати свої ключі до агента, який ви запустили вище. Впишіть: +4. Використайте програму `ssh-add` без будь-яких опцій, щоб додати свої ключі до агента, якого ви запустили вище. Впишіть: ```bash [ying@localhost ~]$ ssh-add ``` - Введіть свою парольну фразу, коли буде запропоновано. + Введіть свою парольну фразу, коли буде запропоновано. ```bash Enter passphrase for /home/ying/.ssh/id_dsa: Identity added: /home/ying/.ssh/id_dsa (ying@localhost.localdomain) ``` -5. Тепер знову запустіть команду `ssh-add`, щоб отримати список відомих ідентифікаторів відбитків пальців. Впишіть: +5. Тепер знову запустіть команду `ssh-add`, щоб переглянути список відомих ідентифікаторів відбитків пальців. Впишіть: ```bash [ying@localhost ~]$ ssh-add -l 1024 SHA256:ne7bHHb65e50.......0AZoQCEnnFdBPedGrDQ ying@server (DSA) ``` -6. Як користувач *ying*, спробуйте підключитися віддалено до serverPR і запустіть просту тестову команду. +6. Тепер, коли користувач _ying_, спробуйте віддалено підключитися до serverPR та виконати просту тестову команду. - Якщо припустити, що ви зробили все правильно до цього моменту щодо налаштування та збереження відповідних ключів, ви зробили правильно до цього моменту, вам НЕ буде запропоновано ввести пароль або парольну фразу. Впишіть: + Якщо припустити, що ви зробили все правильно до цього моменту щодо налаштування та збереження відповідних ключів, ви зробили правильно до цього моменту, вам НЕ буде запропоновано ввести пароль або парольну фразу. Впишіть: ```bash [ying@serverXY .ssh]$ ssh serverPR 'ls /tmp' ``` -7. Якщо ви закінчили і більше не потребуєте послуг `ssh-агента` або просто хочете повернутися до автентифікації на основі ключів, ви можете видалити всі [private/public] ідентифікаційні дані з агента. Впишіть: +7. Якщо ви закінчили і більше не потребуєте послуг `ssh-agent`, або просто хочете повернутися до автентифікації на основі ключів, ви можете видалити всі [приватні/публічні] ідентифікатори з агента. Впишіть: ```bash [ying@localhost ~]$ ssh-add -D diff --git a/docs/release_notes/10_0.uk.md b/docs/release_notes/10_0.uk.md index af887d60b3..7f7cb571b3 100644 --- a/docs/release_notes/10_0.uk.md +++ b/docs/release_notes/10_0.uk.md @@ -46,7 +46,7 @@ Rocky Linux 10 підтримується на таких архітектура #### Зовсім нова підтримка архітектури RISC-V -Команда розробників релізу Rocky Linux довго та наполегливо працювала над тим, щоб забезпечити підтримку Rocky Linux 10 для певних реалізацій RISC-V.\ +Команда розробників релізу Rocky Linux довго та наполегливо працювала над тим, щоб забезпечити підтримку Rocky Linux 10 для певних реалізацій RISC-V. Платформи/підсистеми, що підтримувалися на день випуску, включають StarFive VisionFive 2 (VF2), **QEMU** та SiFive HiFive Premier P550. Щоб отримати докладнішу інформацію про цю віху, зокрема про підтримку RISC-V у RL10, відвідайте [цей сайт](https://rockylinux.org/news/rockylinux-support-for-riscv). @@ -59,7 +59,9 @@ Rocky Linux 10 підтримується на таких архітектура !!! Note "Відмінності зображень Raspberry Pi" + ``` Ключова відмінність між образами Rocky Linux Pi для версії 10 полягає в тому, що 10 підтримує Pi 4 та Pi 5, тоді як 9 підтримує Pi 3, Pi 4, Pi 5 та Pi Zero 2W. + ``` ### Встановлення та створення зображень @@ -106,7 +108,7 @@ Kea DHCP замінює DHCP-сервер ISC, термін служби яко У попередніх версіях Rocky Linux функція об'єднання мережевих карт була застарілою. У RL 10 це тепер повністю видалено. Як заміну, налаштуйте зв'язок замість мережевої команди. -### Пам’ять +### Сховище Окрім наступних змін, з RL 10 додано, оновлено або видалено кілька драйверів пристроїв, пов’язаних із сховищем. @@ -159,12 +161,12 @@ Podman 5 у RL 10 впроваджує кілька покращень, зокр RPM тепер версії 4.19, яка включає покращення та оновлення інструментів пакування та збірки. Для правильного впорядкування рядків версій RPM у вихідних конвеєрах додано нову команду `rpmsort`. Для прикладу: -The old `sort`: `rpm -q kernel | sort`\ -kernel-6.12.0-130.el10.x86_64\ +The old `sort`: `rpm -q kernel | sort` +kernel-6.12.0-130.el10.x86_64 kernel-6.12.0-13.el10.x86_64 -The new `rpmsort`: `rpm -q kernel | rpmsort`\ -kernel-6.12.0-13.el10.x86_64\ +The new `rpmsort`: `rpm -q kernel | rpmsort` +kernel-6.12.0-13.el10.x86_64 kernel-6.12.0-130.el10.x86_64 #### DNF @@ -181,15 +183,15 @@ kernel-6.12.0-130.el10.x86_64 #### Зміни компонентів робочого столу -| Видалено | Замінено | -| :------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------- | -| текстовий редактор gedit | GNOME Text Editor (gnome-text-editor) | -| Додаток Tweaks | Використовуйте параметри налаштувань у налаштуваннях GNOME та/або використовуйте Flatpak на Flathub | -| Festival speech synthesizer | Espeak NG | -| Eye of GNOME (eog) image viewer | GNOME Image Viewer (loupe) | -| Cheese camera application | Snapshot application | -| GNOME Terminal | ptyxis terminal | -| PulseAudio daemon (but not the client interfaces) | Pipewire (вже був стандартним у RL 9) | +| Видалено | Замінено | +| :----------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------- | +| текстовий редактор gedit | GNOME Text Editor (gnome-text-editor) | +| Додаток Tweaks | Використовуйте параметри налаштувань у налаштуваннях GNOME та/або використовуйте Flatpak на Flathub | +| Festival speech synthesizer | Espeak NG | +| Eye of GNOME (eog) image viewer | GNOME Image Viewer (loupe) | +| Cheese camera application | Snapshot application | +| GNOME Terminal | ptyxis terminal | +| Демон PulseAudio (але не клієнтські інтерфейси) | Pipewire (вже був стандартним у RL 9) | Кілька графічних програм для робочого столу більше не входять до дистрибутиву Rocky Linux 10. У більшості випадків ви можете отримати ці програми з основних джерел або як Flatpak на Flathub. @@ -202,7 +204,7 @@ kernel-6.12.0-130.el10.x86_64 | Inkscape Vector Graphics Editor | У RL 10 немає редактора векторної графіки, але ви можете знайти Flatpak на Flathub. | | Totem (GNOME Videos) media player | У RL 10 немає стандартного медіаплеєра для настільних комп'ютерів. Веббраузер все ще може відтворювати веб-медіафайли. Або ж ви можете вибрати інший медіаплеєр зі сторонніх репозиторіїв або як Flatpak від Flathub. | -TigerVNC видалено з RL 10. Для функціональності VNC-клієнта використовуйте програму Connections. VNC-сервер не передбачено.\ +TigerVNC видалено з RL 10. Для функціональності VNC-клієнта використовуйте програму Connections. VNC-сервер не передбачено. gnome-remote-desktop, використовуючи RDP, замінює TigerVNC для спільного використання робочого столу, віддаленого входу та безголових сеансів. Це вбудовано в GNOME, і ви можете налаштувати це в програмі "Налаштування". Середовище робочого столу та інструментарій Motif X11 також видалено з RL 10. diff --git a/docs/release_notes/8-changelog.uk.md b/docs/release_notes/8-changelog.uk.md index f338bb9823..86182c4c2a 100644 --- a/docs/release_notes/8-changelog.uk.md +++ b/docs/release_notes/8-changelog.uk.md @@ -9,8 +9,8 @@ tags: # Журнал змін Rocky Linux 8 -Дані журналу змін для версій Rocky Linux наразі знаходяться в стадії розробки. У цьому документі описано, де можна знайти інформацію про журнал змін для версії 8. З’явиться більш формалізований підхід, який також включатиме версію 9. Якщо ви хочете дізнатися, як ця інформація виглядатиме в майбутньому, перегляньте [це питання](https://github.com/rocky-linux/peridot/issues/9) і додайте свої коментарі. Крім того, ви можете знайти поточні та історичні зміни для версії 8 [тут](https://errata.build.resf.org/). +Дані журналу змін для версій Rocky Linux наразі знаходяться в стадії розробки. У цьому документі описано, де можна знайти інформацію про журнал змін для версії 8. З’явиться більш формалізований підхід, який також включатиме версію 9. Якщо ви хочете висловити свою думку щодо того, як ця інформація виглядатиме в майбутньому, перегляньте [це питання](https://github.com/rocky-linux/peridot/issues/9) та додайте свої коментарі. Крім того, ви можете знайти поточні та історичні зміни для версії 8 [тут](https://errata.build.resf.org/). -Оновлення, випущені з початку розгортання, публікуються в наших поточних архітектурах. Ми настійно рекомендуємо всім користувачам застосовувати *усі* оновлення, включно з вмістом, випущеним сьогодні, на ваших існуючих машинах Rocky Linux. Це можна зробити, запустивши `dnf upgrade`. +Оновлення, випущені з початку розгортання, публікуються в наших поточних архітектурах. Ми наполегливо рекомендуємо всім користувачам встановити _всі_ оновлення, включаючи контент, випущений сьогодні, на ваших існуючих комп’ютерах Rocky Linux. Це можна зробити, запустивши команду `dnf upgrade`. -Усі компоненти Rocky Linux створено з вихідних кодів, розміщених на [git.rockylinux.org](https://git.rockylinux.org). Крім того, SRPM публікуються разом із репозиторіями у відповідному каталозі «source». Ви можете знайти їх на будь-якому з наших дзеркал. Ці вихідні пакети відповідають кожному двійковому RPM, який ми випускаємо. +Усі компоненти Rocky Linux зібрані з вихідних кодів, розміщених на [git.rockylinux.org](https://git.rockylinux.org). Крім того, SRPM публікуються разом із репозиторіями у відповідному каталозі «source». Ви можете знайти їх на будь-якому з наших дзеркал. Ці вихідні пакети відповідають кожному двійковому RPM, який ми випускаємо. diff --git a/docs/release_notes/8_4.uk.md b/docs/release_notes/8_4.uk.md index edd45b1a1d..0bd6a406f1 100644 --- a/docs/release_notes/8_4.uk.md +++ b/docs/release_notes/8_4.uk.md @@ -16,7 +16,7 @@ Rocky Linux — це корпоративна операційна систем ## Підтримувані оновлення -!!! warning "Важливо" +!!! warning Перехід на Rocky Linux 8.4 **не** підтримується Rocky Linux 8.3 RC1, Rocky Linux 8.4 RC1 або будь-якими іншими випусками-кандидатами. @@ -28,10 +28,10 @@ Rocky Linux — це корпоративна операційна систем Члени спільноти успішно перенесли тестові системи на Rocky Linux з: -* Alma Linux (8.4) -* CentOS Linux (8.4) -* Red Hat Enterprise Linux (8.4) -* Oracle Linux (8.4) +- Alma Linux (8.4) +- CentOS Linux (8.4) +- Red Hat Enterprise Linux (8.4) +- Oracle Linux (8.4) Хоча міграції можуть працювати з інших точкових випусків, лише міграції з поточної проміжної версії Enterprise Linux підтримуються як кандидати на оновлення. @@ -39,48 +39,48 @@ Rocky Linux — це корпоративна операційна систем Зовсім новим у Rocky Linux 8.4 є такі нові потоки модулів: -* Python 3.9 -* SWIG 4.0 -* Subversion 1.14 -* Redis 6 -* PostgreSQL 13 -* MariaDB 10.5 +- Python 3.9 +- SWIG 4.0 +- Subversion 1.14 +- Redis 6 +- PostgreSQL 13 +- MariaDB 10.5 ## Основні зміни ### Безпека -* IPsec VPN, наданий Libreswan, тепер підтримує інкапсуляцію TCP і мітки безпеки для IKEv2. +- IPsec VPN, наданий Libreswan, тепер підтримує інкапсуляцію TCP і мітки безпеки для IKEv2. -* Пакунки scap-security-guide було змінено до версії 0.1.54, а OpenSCAP – до версії 1.3.4. Ці оновлення забезпечують значні покращення, зокрема покращене керування пам’яттю, +- Пакунки scap-security-guide було змінено до версії 0.1.54, а OpenSCAP – до версії 1.3.4. Ці оновлення забезпечують значні покращення, зокрема покращене керування пам’яттю, -* Фреймворк `fapolicyd` тепер забезпечує перевірку цілісності, а плагін RPM тепер реєструє будь-які оновлення системи, які обробляються менеджером пакетів YUM або менеджером пакетів RPM. +- Фреймворк `fapolicyd` тепер забезпечує перевірку цілісності, а плагін RPM тепер реєструє будь-які оновлення системи, які обробляються менеджером пакетів YUM або менеджером пакетів RPM. ### Мережа -* Nmstate — це мережевий API для хостів, який повністю підтримується в Rocky Linux 8.4. Пакети `nmstate` містять бібліотеку та утиліту командного рядка `nmstatectl` для декларативного керування параметрами хост-мережі. +- Nmstate — це мережевий API для хостів, який повністю підтримується в Rocky Linux 8.4. Пакети `nmstate` надають бібліотеку та утиліту командного рядка `nmstatectl` для керування налаштуваннями мережі хоста декларативним чином. -* Багатопротокольна комутація міток (MPLS) — це механізм пересилання даних у ядрі для маршрутизації потоку трафіку через корпоративні мережі. Наприклад, ви можете додати `tc filters` для узгодженого керування пакетами, отриманими з певних портів або перенесенням певних типів трафіку. +- Багатопротокольна комутація міток (MPLS) — це механізм пересилання даних у ядрі для маршрутизації потоку трафіку через корпоративні мережі. Наприклад, ви можете додати `tc-фільтри` для узгодженого керування пакетами, отриманими з певних портів, або для перенесення певних типів трафіку. -* Утиліта `iproute2` представляє три нові дії керування трафіком (tc); `mac_push`, `push_eth` і `pop_eth` для додавання міток MPLS, створення заголовка Ethernet на початку пакета та видалення зовнішнього заголовка Ethernet відповідно. +- Утиліта `iproute2` представляє три нові дії керування трафіком (tc); `mac_push`, `push_eth` і `pop_eth` для додавання міток MPLS, створення заголовка Ethernet на початку пакета та видалення зовнішнього заголовка Ethernet відповідно. ### Ядро -* **Проактивне стиснення** регулярно починає роботу зі стиснення пам’яті **перед** надходженням запиту на розподіл. Таким чином, затримка для конкретних запитів на виділення пам’яті зменшується. +- **Проактивне стиснення** регулярно ініціює роботу зі стиснення пам'яті **до** надсилання запиту на виділення. Таким чином, затримка для конкретних запитів на виділення пам’яті зменшується. -* У Rocky Linux 8.4 тепер доступна нова реалізація контролера пам’яті slab для технології **контрольних груп**. Контролер пам’яті плити покращує використання плити та забезпечує функціональні можливості для перенесення обліку пам’яті з рівня сторінки на рівень об’єкта. У результаті ви можете спостерігати значне зниження загального обсягу пам’яті ядра та позитивний вплив на фрагментацію пам’яті. +- Нова реалізація контролера пам'яті slab для технології **контрольних груп** тепер доступна в Rocky Linux 8.4. Контролер пам’яті плити покращує використання плити та забезпечує функціональні можливості для перенесення обліку пам’яті з рівня сторінки на рівень об’єкта. У результаті ви можете спостерігати значне зниження загального обсягу пам’яті ядра та позитивний вплив на фрагментацію пам’яті. -* Функція простору імен часу доступна в Rocky Linux 8.4. Ця функція підходить для зміни дати й часу всередині контейнерів Linux. Також тепер можливе налаштування годинника в контейнері після відновлення з контрольної точки. +- Функція простору імен часу доступна в Rocky Linux 8.4. Ця функція підходить для зміни дати й часу всередині контейнерів Linux. Також тепер можливе налаштування годинника в контейнері після відновлення з контрольної точки. -* Rocky Linux 8.4 підтримує модуль ядра виявлення та виправлення помилок (EDAC) у процесорах Intel Core 8-го та 9-го поколінь. +- Rocky Linux 8.4 підтримує модуль ядра виявлення та виправлення помилок (EDAC) у процесорах Intel Core 8-го та 9-го поколінь. ### Висока доступність і кластери -* Постійний агент ресурсів Pacemaker, який зберігає дані про стан, може асинхронно виявляти збої та негайно вводити збій у Pacemaker, не чекаючи наступного інтервалу моніторингу. Постійний агент ресурсу також може пришвидшити час відповіді кластера для служб із високими накладними витратами на стан, оскільки підтримка даних стану може зменшити накладні витрати на стан для таких дій кластера, як запуск, зупинка та моніторинг, не викликаючи стан окремо для кожної дії. +- Постійний агент ресурсів Pacemaker, який зберігає дані про стан, може асинхронно виявляти збої та негайно вводити збій у Pacemaker, не чекаючи наступного інтервалу моніторингу. Постійний агент ресурсу також може пришвидшити час відповіді кластера для служб із високими накладними витратами на стан, оскільки підтримка даних стану може зменшити накладні витрати на стан для таких дій кластера, як запуск, зупинка та моніторинг, не викликаючи стан окремо для кожної дії. ### Компілятори та засоби розробки -* Оновлено такі набори інструментів компілятора: +- Оновлено такі набори інструментів компілятора: > * GCC Toolset 10 > * LLVM Toolset 11.0.0 @@ -89,7 +89,7 @@ Rocky Linux — це корпоративна операційна систем ### Управління ідентифікацією -* Rocky Linux 8.4 надає модулі Ansible для автоматизованого керування керуванням доступом на основі ролей (RBAC) в Identity Management (IdM), роль Ansible для резервного копіювання та відновлення серверів IdM, а також модуль Ansible для керування розташуванням. +- Rocky Linux 8.4 надає модулі Ansible для автоматизованого керування керуванням доступом на основі ролей (RBAC) в Identity Management (IdM), роль Ansible для резервного копіювання та відновлення серверів IdM, а також модуль Ansible для керування розташуванням. ## Відомі проблеми @@ -104,7 +104,7 @@ Rocky Linux — це корпоративна операційна систем #### Rsyslog відсутній у мінімальному ISO -Rocky Linux Minimal ISO (`Rocky-8.4-x86_64-minimal.iso`) не містить пакета `rsyslog`. Як наслідок, система, встановлена з Rocky Linux Minimal ISO, не включатиме `rsyslog.service` або `/var/log/messages` з коробки. Пакет `rsyslog` можна встановити відразу після перезавантаження зі сховища Rocky Linux AppStream, щоб вирішити цю проблему. +Мінімальний ISO-образ Rocky Linux (`Rocky-8.4-x86_64-minimal.iso`) не містить пакета `rsyslog`. Як результат, система, встановлена ​​з мінімальним ISO-образом Rocky Linux, не міститиме `rsyslog.service` або `/var/log/messages` з коробки. Пакет `rsyslog` можна встановити одразу після перезавантаження з репозиторію Rocky Linux AppStream, щоб вирішити цю проблему. Ви можете запустити наступну команду після встановлення, щоб завершити встановлення rsyslog: @@ -118,7 +118,7 @@ dnf install @minimal-environment #### Кнопка Anaconda "Help" не працює (#20) -Кнопка «Help» у програмі встановлення Anaconda наразі не працює. Команда Rocky Linux надала [інструкцію встановлення](../guides/installation.md) в документації Rocky Linux, щоб допомогти вирішити проблеми зі встановленням. +Кнопка «Help» у програмі встановлення Anaconda наразі не працює. Команда Rocky Linux надала [покрокову інструкцію з встановлення](../guides/installation.md) у документації Rocky Linux, щоб допомогти вирішити проблеми з встановленням. #### Звіт про помилку GUI відсутній дебрендінг (libreport) diff --git a/docs/release_notes/8_5.uk.md b/docs/release_notes/8_5.uk.md index 4abc6cb7d3..0ef13d2d27 100644 --- a/docs/release_notes/8_5.uk.md +++ b/docs/release_notes/8_5.uk.md @@ -7,6 +7,7 @@ title: Реліз 8.5 ## Дякуємо Дякуємо за підтримку Rocky Linux. Це примітки до випуску Rocky Linux 8.5, доступні для архітектур x86_64 і aarch64 (ARM). + > Для створення цього випуску було витрачено неймовірний обсяг роботи та співпраці. Команда Rocky Release Engineering пішла далеко й перевищила свої обов’язки, щоб зробити 8.5 реальністю так швидко. Будь ласка, надішліть їм подяку, радісні думки та купу пива в першу ж вільну хвилину! — Gregory Kurtzer @@ -19,7 +20,7 @@ title: Реліз 8.5 Менш ніж за 48 годин після випуску RHEL-8.5 ми провели успішні тести наших ISO, і незадовго до того, як ми збиралися перейти на GA з 8.5, Microsoft підписала нашу прокладку Secure Boot. Ми швидко обміркували й вирішили відступити та включити це у випуск 8.5. -Були деякі речі, які ми мали привести в порядок і вирішити, але ми з великим задоволенням, що цей випуск містить офіційну прокладку, підписану Rocky Linux. Ось повний текст огляду shim: [https://github.com/rhboot/shim-review/issues/ 194](https://github.com/rhboot/shim-review/issues/194). +Були деякі речі, які ми мали привести в порядок і вирішити, але ми з великим задоволенням, що цей випуск містить офіційну прокладку, підписану Rocky Linux. Ось повний потік огляду прокладки: [https://github.com/rhboot/shim-review/issues/194](https://github.com/rhboot/shim-review/issues/194). Як і в будь-якому випадку, пов’язаному з безпекою, важливо мати можливість перевірити, чи прокладка Secure Boot відповідає вашим очікуванням і чи правильно її активовано. Після інсталяції Rocky Linux 8.5 увійдіть і виконайте ці команди, щоб перевірити нашу прокладку безпечного завантаження: @@ -55,28 +56,28 @@ SecureBoot enabled #### Нові модулі -* Ruby 3.0 -* nginx 1.20 -* Node.js 16 +- Ruby 3.0 +- nginx 1.20 +- Node.js 16 #### Оновлені компоненти -* PHP до версії 7.4.19 -* Squid до версії 4.15 -* Mutt до версії 2.0.7 +- PHP до версії 7.4.19 +- Squid до версії 4.15 +- Mutt до версії 2.0.7 #### Компілятори та засоби розробки -* GCC Toolset 11 -* LLVM Toolset 12.0.1 -* Rust Toolset 1.54.0 -* Go Toolset 1.16.7 +- GCC Toolset 11 +- LLVM Toolset 12.0.1 +- Rust Toolset 1.54.0 +- Go Toolset 1.16.7 #### Оновлення OpenJDK -* Open Java Development Kit 17 (OpenJDK 17) уже доступний. Щоб отримати додаткові відомості про функції, представлені в цьому випуску, і зміни в існуючих функціях, перегляньте функції OpenJDK. -* OpenJDK 11 оновлено до версії 11.0.13. Щоб отримати додаткові відомості про функції, представлені в цьому випуску, і зміни в існуючих функціях, перегляньте примітки до випуску для OpenJDK 11.0.13. -* OpenJDK 8 оновлено до версії 8.0.312. Щоб отримати додаткові відомості про функції, представлені в цьому випуску, і зміни в існуючих функціях, перегляньте примітки до випуску для OpenJDK 8.0.312. +- Open Java Development Kit 17 (OpenJDK 17) уже доступний. Щоб отримати додаткові відомості про функції, представлені в цьому випуску, і зміни в існуючих функціях, перегляньте функції OpenJDK. +- OpenJDK 11 оновлено до версії 11.0.13. Щоб отримати додаткові відомості про функції, представлені в цьому випуску, і зміни в існуючих функціях, перегляньте примітки до випуску для OpenJDK 11.0.13. +- OpenJDK 8 оновлено до версії 8.0.312. Щоб отримати додаткові відомості про функції, представлені в цьому випуску, і зміни в існуючих функціях, перегляньте примітки до випуску для OpenJDK 8.0.312. #### Найшвидші дзеркала @@ -88,9 +89,9 @@ SecureBoot enabled #### Додані пакети -* У репозиторії plus додано thunderbird з підтримкою PGP -* У репозиторій plus додано openldap-сервери -* У репозиторії rockypi додано ядро rasperrypi2 для підтримки aarch64 для Raspberry +- У репозиторії plus додано thunderbird з підтримкою PGP +- У репозиторій plus додано openldap-сервери +- У репозиторії rockypi додано ядро rasperrypi2 для підтримки aarch64 для Raspberry Щоб отримати повне порівняння пакетів та їхніх версій між Rocky Linux і Red Hat Enterprise Linux, зверніться до нашого сайту [RepoCompare](https://repocompare.rockylinux.org). @@ -114,8 +115,8 @@ sudo dnf -y upgrade ### Відомі проблеми -Перегляньте [розділ 5 – Виправлення помилок](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/8.5_release_notes/bug_fixes) і [Розділ 8. Виправлення помилок](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/8.5_release_notes/known-issues) у примітках до випуску Red Hat Enterprise Linux 8.5, щоб дізнатися більше інформація про помилки та відомі проблеми у вихідному дистрибутиві. +Будь ласка, дивіться [Розділ 5 - Виправлення помилок](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/8.5_release_notes/bug_fixes) та [Розділ 8 - Виправлення помилок](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/8.5_release_notes/known-issues) нотаток до випуску Red Hat Enterprise Linux 8.5 для отримання додаткової інформації щодо помилок та відомих проблем у дистрибутиві основної версії. #### Повідомлення про помилки -Будь ласка, повідомляйте про будь-які помилки, з якими ви стикаєтеся, на Rocky Linux Bug Tracker. Ми також запрошуємо вас приєднатися до нашої спільноти будь-яким способом на наших [форумах](https://forums.rockylinux.org), [Mattermost](https://chat. rockylinux.org), [IRC на Libera.Chat](irc://irc.liberachat/rockylinux), [Reddit](https://reddit.com/ r/rockylinux), [Списки розсилки](https://lists.resf.org) або будь-яким іншим способом, яким ви бажаєте взяти участь! +Будь ласка, повідомляйте про будь-які помилки, з якими ви стикаєтеся, на Rocky Linux Bug Tracker. Ми також запрошуємо вас приєднатися до нашої спільноти будь-яким зручним для вас способом, будь то на наших [Форумах](https://forums.rockylinux.org), [Mattermost](https://chat.rockylinux.org), [IRC на Libera.Chat](irc://irc.liberachat/rockylinux), [Reddit](https://reddit.com/r/rockylinux), [Списках розсилки](https://lists.resf.org) або будь-яким іншим способом, яким ви бажаєте взяти участь! diff --git a/docs/release_notes/8_6.uk.md b/docs/release_notes/8_6.uk.md index d53f7305c3..b60aa92921 100644 --- a/docs/release_notes/8_6.uk.md +++ b/docs/release_notes/8_6.uk.md @@ -16,47 +16,47 @@ tags: ### Безпека -* `fapolicyd`: оновлено до версії 1.1. Включає можливість використання каталогів `/rules.d` і `/trust.d`, можливість використання сценарію `fagenrules` і нові параметри для команди `fapolicyd-cli`. -* Сервер OpenSSH тепер підтримує вставні конфігурації. Це означає, що ви можете використовувати директиву `Include` у `sshd_config` подібно до того, що зараз доступно для `ssh_config`. -* Пакет `pcsc-lite`: оновлено до попередньої версії 1.9.5 із новими вдосконаленнями та виправленнями помилок. -* SELinux: тепер ви можете перевірити версії встановлених модулів політики за допомогою параметра `--checksum` з командою `semodule`. -* Пакунки SCAP Security Guide (SSG): оновлено до версії 0.1.60, а пакети OpenSCAP оновлено до версії 1.3.6. +- fapolicyd`: оновлено до версії 1.1. Включає можливість використання каталогів `/rules.d`та`/trust.d`, можливість використання скрипта `fagenrules`та нові опції для команди`fapolicyd-cli\`. +- Сервер OpenSSH тепер підтримує вставні конфігурації. Це означає, що ви можете використовувати директиву `Include` у `sshd_config`, подібно до того, що зараз доступно для `ssh_config`. +- Пакет `pcsc-lite`: оновлено до попередньої версії 1.9.5 із новими вдосконаленнями та виправленнями помилок. +- SELinux: тепер ви можете перевірити версії встановлених модулів політики за допомогою параметра `--checksum` з командою `semodule`. +- Пакунки SCAP Security Guide (SSG): оновлено до версії 0.1.60, а пакети OpenSCAP оновлено до версії 1.3.6. ### Веб і програмування Нові модулі доступні для: -* PHP 8.0 -* Perl 5.32 +- PHP 8.0 +- Perl 5.32 ### Управління ідентифікацією -* Ролі та модулі `ansible-freeipa` доступні в Ansible Automation Hub. +- Ролі та модулі `ansible-freeipa` доступні в Ansible Automation Hub. ### Послуги інфраструктури -* `bind9.16` випущений як альтернатива звичайним пакетам `bind` із розширеним набором функцій. Додаткову інформацію про це див. у [інфраструктурних службах](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html-single/8.6_release_notes#enhancement_infrastructure-services). +- `bind9.16` випущено як альтернатива звичайним пакетам `bind` з розширеним набором функцій. Більше інформації про це див. у розділі [Інфраструктурні служби](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html-single/8.6_release_notes#enhancement_infrastructure-services) у верхній частині розгортання. ### Ansible -Тепер ви можете встановити `ansible-core` зі сховища Rocky Linux Appstream. Якщо у вас уже встановлено `ansible` з іншого джерела, вам потрібно буде видалити його, щоб мати можливість оновити ansible. +Тепер ви можете встановити `ansible-core` з репозиторію Rocky Linux Appstream. Якщо у вас вже встановлено `ansible` з іншого джерела, вам потрібно буде видалити його, щоб мати змогу оновити ansible. ## Нові модулі -* container-tools:4.0 -* eclipse:rhel8 -* log4j:2 -* perl:5.32 -* php:8.0 +- container-tools:4.0 +- eclipse:rhel8 +- log4j:2 +- perl:5.32 +- php:8.0 ## Компілятори та засоби розробки Основні моменти включають: -* GCC Toolset 11 -* LLVM Toolset 13.0.1 -* Rust Toolset 1.58.1 -* Go Toolset 1.17.7 +- GCC Toolset 11 +- LLVM Toolset 13.0.1 +- Rust Toolset 1.58.1 +- Go Toolset 1.17.7 Щоб отримати докладнішу інформацію про останні зміни, перегляньте попередній список [тут](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/8.6_release_notes/new-features#enhancement_compilers-and-development -tools). @@ -72,12 +72,12 @@ tags: ## Відомі проблеми -* `kdump`: наразі під час використання будь-якого інтерактивного методу інсталяції ключ `kdump` потрібно вводити останнім. Це включає будь-які плани щодо шифрування диска. У цих випадках, якщо ви плануєте вимкнути `kdump`, відформатуйте диск із шифруванням, перш ніж вимикати його. -* Мінімальний ISO: Виконуючи інсталяцію з мінімальним ISO, будьте готові до відсутності пакетів, особливо з репозиторію AppStream (rsyslog, policycoreutils-python-utils тощо). Цього й слід очікувати. -* KDE та [ця помилка ядра](https://bugzilla.redhat.com/show_bug.cgi?id=2082719): якщо ви використовуєте KDE на 8.5 та оновлюєтеся до 8.6, це дуже ймовірно що у вас виникнуть проблеми. Згадана помилка стосується неможливості розблокувати екран після блокування. Обхідним шляхом є завантаження старішого ядра в GRUB під час запуску. +- `kdump`: Наразі, під час використання будь-якого інтерактивного методу встановлення, спицю `kdump` потрібно вводити останньою. Це включає будь-які плани щодо шифрування диска. У цих випадках, якщо ви плануєте вимкнути `kdump`, відформатуйте диск із шифруванням перед його вимиканням. +- Мінімальний ISO: Виконуючи інсталяцію з мінімальним ISO, будьте готові до відсутності пакетів, особливо з репозиторію AppStream (rsyslog, policycoreutils-python-utils тощо). Цього й слід очікувати. +- KDE та [ця помилка ядра](https://bugzilla.redhat.com/show_bug.cgi?id=2082719): Якщо ви використовуєте KDE на версії 8.5 та оновлюєтеся до 8.6, дуже ймовірно, що у вас виникнуть проблеми. Згадана помилка стосується неможливості розблокувати екран після блокування. Обхідним шляхом є завантаження старішого ядра в GRUB під час запуску. -Як і в будь-якому випуску, є проблеми, про які вже відомо. Ви можете переглянути поточний перелік проблем у верхній частині [тут](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/8.6_release_notes/known-issues). +Як і в будь-якому випуску, є проблеми, про які вже відомо. Ви можете переглянути поточний список проблем з основної розробки [тут](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/8.6_release_notes/known-issues). ### Повідомлення про помилки -Будь ласка, повідомляйте про будь-які виявлені помилки в [Відстеження помилок Rocky Linux](https://bugs.rockylinux.org/). Ми також запрошуємо вас приєднатися до нашої спільноти будь-яким способом на наших [форумах](https://forums.rockylinux.org), [Mattermost](https://chat. rockylinux.org), [IRC на Libera.Chat](irc://irc.liberachat/rockylinux), [Reddit](https://reddit.com/ r/rockylinux), [Списки розсилки](https://lists.resf.org) або будь-яким іншим способом, яким ви бажаєте взяти участь! +Будь ласка, повідомляйте про будь-які помилки, з якими ви зіткнулися, до [системи відстеження помилок Rocky Linux] (https://bugs.rockylinux.org/). Ми також запрошуємо вас приєднатися до нашої спільноти будь-яким зручним для вас способом, будь то на наших [Форумах](https://forums.rockylinux.org), [Mattermost](https://chat.rockylinux.org), [IRC на Libera.Chat](irc://irc.liberachat/rockylinux), [Reddit](https://reddit.com/r/rockylinux), [Списках розсилки](https://lists.resf.org) або будь-яким іншим способом, яким ви бажаєте взяти участь! diff --git a/docs/release_notes/8_7.uk.md b/docs/release_notes/8_7.uk.md index f0d60d00d8..0c25c7e290 100644 --- a/docs/release_notes/8_7.uk.md +++ b/docs/release_notes/8_7.uk.md @@ -38,33 +38,33 @@ tags: ### Безпека -* Служби безпеки мережі (NSS) більше не підтримують ключі RSA, коротші за 1023 біти. -* `clevis-luks-askpass` тепер увімкнено за умовчанням. -* `fapolicyd` перероблено на версії 1.1.1.3 +- Служби безпеки мережі (NSS) більше не підтримують ключі RSA, коротші за 1023 біти. +- `clevis-luks-askpass` тепер увімкнено за умовчанням. +- `fapolicyd` перероблено на версії 1.1.1.3 #### DISA STIG -Цей випуск змінює `scap-security-guide` для кращого узгодження з DISA. Для отримання додаткової інформації про цю та інші зміни пов'язаних із безпекою, дивіться [цей документ](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/8.7_release_notes/new-features#enhancement_security) +Цей випуск змінює `scap-security-guide` таким чином, щоб він краще відповідав DISA. Щоб отримати докладнішу інформацію про це та інші зміни, пов’язані з безпекою, див. [документ, що міститься в основній версії](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/8.7_release_notes/new-features#enhancement_security) -* Керівництво з безпеки SCAP (SSG) оновлено до версії 0.1.63 разом із кількома іншими змінами, що стосуються SSG і DISA STIG. +- Керівництво з безпеки SCAP (SSG) оновлено до версії 0.1.63 разом із кількома іншими змінами, що стосуються SSG і DISA STIG. ### Оболонки та інструменти командного рядка -* `xmlstarlet` - новий інструмент, який надає простий набір утиліт командного рядка для аналізу файлів XML. -* `opencryptoki` оновлено до 3.18.0 -* `powerpc-utils` оновлено до 1.3.10 -* `libva` оновлено до 2.13.0 +- `xmlstarlet` - новий інструмент, який надає простий набір утиліт командного рядка для аналізу файлів XML. +- `opencryptoki` оновлено до 3.18.0 +- `powerpc-utils` оновлено до 1.3.10 +- `libva` оновлено до 2.13.0 ### Мережа -* NetworkManager оновлено до версії 1.40. Щоб ознайомитися з суттєвими змінами, перегляньте [примітки до випуску вищевказаного потоку тут](https://github.com/NetworkManager/NetworkManager/blob/nm-1-40/NEWS). -* NetworkManager тепер зберігає інформацію про оренду DHCP у каталозі `/run/NetworkManager/devices/` +- NetworkManager оновлено до версії 1.40. Щодо помітних змін дивіться [нотатки до випуску основної версії тут](https://github.com/NetworkManager/NetworkManager/blob/nm-1-40/NEWS). +- NetworkManager тепер зберігає інформацію про оренду DHCP у каталозі `/run/NetworkManager/devices/` ### Файлова система та сховище -* Додано `nfsrahead`. Може використовуватися для зміни значення `readahead` для монтувань NFS і таким чином впливати на продуктивність читання NFS. -* Команда `rpcctl` тепер відображає інформацію про підключення SunRPC. -* `multipath.conf` тепер може включати перевизначення конфігурації протоколу в DM Multipath +- Додано `nfsrahead`. Може використовуватися для зміни значення `readahead` для монтування NFS, і таким чином впливати на продуктивність читання NFS. +- Команда `rpcctl` тепер відображає інформацію про підключення SunRPC. +- `multipath.conf` тепер може включати перевизначення конфігурації протоколу в DM Multipath ### Мови динамічного програмування, веб-сервери та сервери баз даних @@ -72,63 +72,63 @@ tags: Пізніші версії таких компонентів тепер доступні як нові потоки модулів: -* `ruby:3.1` -* `mercurial:6.2` -* `Node.js 18` +- `ruby:3.1` +- `mercurial:6.2` +- `Node.js 18` #### Додаткові зміни -* `mariadb-java-client` оновлено до версії 2.7.1 -* `redis` змінено на 6.2.7 -* Нове замовчування для директиви `LimitRequestBody` у конфігурації `httpd` +- `mariadb-java-client` оновлено до версії 2.7.1 +- `redis` змінено на 6.2.7 +- Нове замовчування для директиви `LimitRequestBody` у конфігурації `httpd` Для отримання додаткових змін, відвідайте сторінку [першоджерел](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/8.7_release_notes/new-features#enhancement_dynamic-programming-languages-web-and-database-servers) з цими змінами. ### Послуги інфраструктури -* `chrony` оновлено до 4.2 -* `unbound` оновлено до 1.16.2 +- `chrony` оновлено до 4.2 +- `unbound` оновлено до 1.16.2 ### Компілятори та засоби розробки #### Зміни, пов'язані з процесорами та машинами -* `libpfm` тепер підтримує процесори AMD Zen 2 і Zen 3 -* `papi` тепер підтримує процесори AMD Zen 2 та Zen 3 -* Поліпшена ідентифікація обладнання для обробників ARM -* `Золотий модуль LLVM` тепер доступний на архітектурі IBM Z +- `libpfm` тепер підтримує процесори AMD Zen 2 і Zen 3 +- `papi` тепер підтримує процесори AMD Zen 2 та Zen 3 +- Поліпшена ідентифікація обладнання для обробників ARM +- `Золотий модуль LLVM` тепер доступний на архітектурі IBM Z #### GCC Toolset 12 -* Annobin оновлено до версії 10.79 -* `binutils` оновлено до версії 2.38 -* GCC 12 і новіші версії підтримують `_FORTIFY_SOURCE` рівня 3 -* GDB оновлено до версії 11.2 +- Annobin оновлено до версії 10.79 +- `binutils` оновлено до версії 2.38 +- GCC 12 і новіші версії підтримують `_FORTIFY_SOURCE` рівня 3 +- GDB оновлено до версії 11.2 #### Потоки модулів -* Новий потік модуля `maven:3.8` +- Новий потік модуля `maven:3.8` #### Додаткові зміни -* Параметр DNS-заглушки тепер підтримує параметр `no-aaaa` -* Rust Toolset оновлено до версії 1.62.1 -* LLVM Toolset оновлено до версії 14.0.0 +- Параметр DNS-заглушки тепер підтримує параметр `no-aaaa` +- Rust Toolset оновлено до версії 1.62.1 +- LLVM Toolset оновлено до версії 14.0.0 ### Управління ідентифікацією -* SSSD тепер підтримує кешування пам’яті для запитів SID -* Тепер IdM підтримує налаштування довіри AD у Windows Server 2022 -* Тепер IdM під час пошуку імені вказує, чи є дане ім’я користувачем чи групою в довіреному домені AD -* Нові ролі `ipasmartcard_server` і `ipasmartcard_client` -* `samba` оновлено до версії 4.16.1 -* SSSD тепер підтримує пряму інтеграцію з Windows Server 2022 +- SSSD тепер підтримує кешування пам’яті для запитів SID +- Тепер IdM підтримує налаштування довіри AD у Windows Server 2022 +- Тепер IdM під час пошуку імені вказує, чи є дане ім’я користувачем чи групою в довіреному домені AD +- Нові ролі `ipasmartcard_server` і `ipasmartcard_client` +- `samba` оновлено до версії 4.16.1 +- SSSD тепер підтримує пряму інтеграцію з Windows Server 2022 ### Віртуалізація -* open-vm-tools оновлено до 12.0.5 -* Гіпервізор ESXi і SEV-ES тепер повністю підтримуються +- open-vm-tools оновлено до 12.0.5 +- Гіпервізор ESXi і SEV-ES тепер повністю підтримуються ## Повідомлення про Проблеми -Будь ласка, повідомляйте про будь-які виявлені помилки в [Відстеження помилок Rocky Linux](https://bugs.rockylinux.org/). Ми також запрошуємо вас приєднатися до нашої спільноти будь-яким способом на наших [форумах](https://forums.rockylinux.org), [Mattermost](https://chat. rockylinux.org), [IRC на Libera.Chat](irc://irc.liberachat/rockylinux), [Reddit](https://reddit.com/ r/rockylinux), [Списки розсилки](https://lists.resf.org) або будь-яким іншим способом, яким ви бажаєте взяти участь! +Будь ласка, повідомляйте про будь-які помилки, з якими ви зіткнулися, до [системи відстеження помилок Rocky Linux] (https://bugs.rockylinux.org/). Ми також запрошуємо вас приєднатися до нашої спільноти будь-яким зручним для вас способом, будь то на наших [Форумах](https://forums.rockylinux.org), [Mattermost](https://chat.rockylinux.org), [IRC на Libera.Chat](irc://irc.liberachat/rockylinux), [Reddit](https://reddit.com/r/rockylinux), [Списках розсилки](https://lists.resf.org) або будь-яким іншим способом, яким ви бажаєте взяти участь! diff --git a/docs/release_notes/8_8.uk.md b/docs/release_notes/8_8.uk.md index 299ba01927..0d73990019 100644 --- a/docs/release_notes/8_8.uk.md +++ b/docs/release_notes/8_8.uk.md @@ -18,7 +18,7 @@ tags: Доступні образи для Oracle Cloud Platform (OCP), GenericCloud, Amazon AWS (EC2), Container RootFS/OCI, Google Cloud Platform, Microsoft Azure та інші образи, які підтримує CSP. Образи GenericCloud, EC2 і Microsoft Azure мають варіант, який використовує розділ LVM для кореневої файлової системи, що дає системним адміністраторам додаткову гнучкість і більше можливостей для налаштування їхніх систем. -Образи Vagrant і Container доступні для x86_64 і aarch64. З останнього випуску ми додали варіант `rockylinux/rockylinux:8-ubi-init` для використання systemd у контейнері. Ми також додали варіант `rocky linux/rocky linux:8-ubi-micr`, який є мінімальним зображенням, яке можна використовувати в самодостатніх програмах без використання менеджера пакетів. Ми також додали зображення [Toolbox](https://containertoolbx.org/) для більшої кількості архітектур. +Образи Vagrant і Container доступні для x86_64 і aarch64. З моменту випуску останнього релізу ми додали варіант `rockylinux/rockylinux:8-ubi-init` для використання systemd у контейнері. Ми також додали варіант `rockylinux/rockylinux:8-ubi-micro`, який є мінімальним образом, що можна використовувати в автономних програмах без використання менеджера пакетів. Ми також додали зображення [Toolbox](https://containertoolbx.org/) для більшої кількості архітектур. Ви можете знайти інформацію про артефакти, створені Cloud Special Interest Group, а також інформацію про те, як взяти участь, на [SIG/Cloud Wiki сторінки](https://sig-cloud.rocky.page/). @@ -32,14 +32,14 @@ tags: ### Ключові зміни -* Зображення Microsoft Azure тепер публікуються в Спільній галереї зображень, а також у Marketplace. Параметр «Спільна галерея зображень» забезпечує прямий спосіб використовувати Rocky Images у Microsoft Azure, не стрибаючи через обручі підписки на зображення через Marketplace. Крім того, ця спільна галерея зображень дозволить нам публікувати частіше оновлювані зображення на Marketplace. -* Варіанти хмарних образів LVM для всіх типів тепер видаляють `/etc/lvm/devices/system.devices`, щоб вирішити проблеми з PV/VG/LV після встановлення образів через їх жорстке кодування на певному пристрої. -* **Універсальний базовий образ контейнера** `rockylinux/rockylinux:8-ubi` змінено, щоб бути більш схожим на зображення RHEL UBI. Це означає, що внесено такі зміни: +- Зображення Microsoft Azure тепер публікуються в Спільній галереї зображень, а також у Marketplace. Параметр «Спільна галерея зображень» забезпечує прямий спосіб використовувати Rocky Images у Microsoft Azure, не стрибаючи через обручі підписки на зображення через Marketplace. Крім того, ця спільна галерея зображень дозволить нам публікувати частіше оновлювані зображення на Marketplace. +- Варіанти хмарних образів LVM для всіх типів тепер видаляють `/etc/lvm/devices/system.devices`, щоб вирішити проблеми з PV/VG/LV після встановлення образів через їх жорстке кодування на певному пристрої. +- Універсальний базовий образ контейнера `rockylinux/rockylinux:8-ubi` змінено, щоб бути більш схожим на образи RHEL UBI. Це означає, що внесено такі зміни: - * Замінено пакунки: `libcurl` -> `curl-minimal`, `libcurl-minimal` - * Додано пакети: `gdb-gdbserver`, `gzip` - * Видалені пакунки: `binutils`, `brotli`, `dmidecode` - * додано очищення конфігурації мережі + - Замінено пакунки: `libcurl` -> `curl-minimal`, `libcurl-minimal` + - Додано пакети: `gdb-gdbserver`, `gzip` + - Видалені пакунки: `binutils`, `brotli`, `dmidecode` + - додано очищення конфігурації мережі ## Основні зміни @@ -49,18 +49,18 @@ tags: ### Інсталятор і створення образу -* Image Builder тепер пропонує новий і покращений спосіб створення креслень і зображень у веб-консолі Image Builder. +- Image Builder тепер пропонує новий і покращений спосіб створення креслень і зображень у веб-консолі Image Builder. ### Безпека -Основні моменти, пов’язані з безпекою в останньому випуску Rocky Linux 8.8, наведено нижче. Повний список змін, пов'язаних з безпекою, дивіться [тут](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/8.8_release_notes/new-features#new-features-security). +Основні моменти, пов’язані з безпекою в останньому випуску Rocky Linux 8.8, наведено нижче. Повний список змін, пов’язаних із безпекою, див. за [посиланням на оновлення тут](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/8.8_release_notes/new-features#new-features-security). -* Параметри режиму FIPS у ядрі налаштовано відповідно до Федерального стандарту обробки інформації (FIPS) 140-3. Ця зміна вводить суворіші налаштування для багатьох криптографічних алгоритмів, функцій і наборів шифрів. -* Пакунки `libreswan` оновлено до версії 4.9. -* Тепер ви можете фільтрувати базу даних RPM за допомогою пакетів `fapolicyd`. -* Пакунки `openscap` оновлено до версії 1.3.7. -* Драйвер OpenSSL тепер може використовувати ланцюжки сертифікатів у Rsyslog. -* Служба **systemd-socket-proxyd** тепер працює у власному домені SELinux завдяки оновленню політики SELinux. +- Параметри режиму FIPS у ядрі налаштовано відповідно до Федерального стандарту обробки інформації (FIPS) 140-3. Ця зміна вводить суворіші налаштування для багатьох криптографічних алгоритмів, функцій і наборів шифрів. +- Пакунки `libreswan` оновлено до версії 4.9. +- Тепер ви можете фільтрувати базу даних RPM за допомогою пакетів `fapolicyd`. +- Пакунки `openscap` оновлено до версії 1.3.7. +- Драйвер OpenSSL тепер може використовувати ланцюжки сертифікатів у Rsyslog. +- Служба **systemd-socket-proxyd** тепер працює у власному домені SELinux завдяки оновленню політики SELinux. ### Мови динамічного програмування, веб-сервери та сервери баз даних @@ -68,23 +68,23 @@ tags: Тепер доступні новіші версії таких потоків програм: -* nginx 1.22 -* PostgreSQL 15 -* Jakarta XML Binding (`jaxb`) 4 -* Swig 4.1 +- nginx 1.22 +- PostgreSQL 15 +- Jakarta XML Binding (`jaxb`) 4 +- Swig 4.1 Були додані наступні програми: -* Python 3.11 -* Tomcat 9 +- Python 3.11 +- Tomcat 9 Оновлені або додані наступні компоненти: -* Git до версії 2.39.1: +- Git до версії 2.39.1: - * Тепер підтримується підписання комітів за допомогою ключів SSH + - Тепер підтримується підписання комітів за допомогою ключів SSH -* Git LFS до версії 3.2.0 +- Git LFS до версії 3.2.0 ### Компілятори та засоби розробки @@ -92,68 +92,68 @@ tags: #### Оновлені набори інструментів компілятора -* GCC Toolset 12 -* LLVM Toolset 15.0.7 -* Rust Toolset 1.66 -* Go Toolset 1.19.4 +- GCC Toolset 12 +- LLVM Toolset 15.0.7 +- Rust Toolset 1.66 +- Go Toolset 1.19.4 #### Оновлені засоби підвищення продуктивності та налагоджувачі Оновлено наступні засоби підвищення продуктивності та налагоджувачі: -* Valgrind 3.19 -* SystemTap 4.8 -* elfutils 0.188 +- Valgrind 3.19 +- SystemTap 4.8 +- elfutils 0.188 #### Оновлені засоби моніторингу продуктивності Оновлено наступні інструменти моніторингу продуктивності: -* PCP 5.3.7 -* Grafana 7.5.15 +- PCP 5.3.7 +- Grafana 7.5.15 ### Контейнери -Перелік змін у цій категорії дивіться [тут](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/8.8_release_notes/new-features#new-features-containers). Помітні зміни включають: +Детальніше про зміни в цій категорії див. [посилання на вищезгадану версію тут](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/8.8_release_notes/new-features#new-features-containers). Помітні зміни включають: -* Системні ролі podman Linux тепер доступні -* Тепер доступні клієнти для підписів Sigstore із Fulcio та Rekor -* Skopeo тепер підтримує генерацію пар ключів sigstore -* Podman тепер підтримує події для аудиту -* Пакети Container Tools оновлено -* Мережевий стек Aardvark і Netavark тепер підтримує власний вибір DNS-сервера -* Podman Quadlet тепер доступний як попередній перегляд технології +- Системні ролі podman Linux тепер доступні +- Тепер доступні клієнти для підписів Sigstore із Fulcio та Rekor +- Skopeo тепер підтримує генерацію пар ключів sigstore +- Podman тепер підтримує події для аудиту +- Пакети Container Tools оновлено +- Мережевий стек Aardvark і Netavark тепер підтримує власний вибір DNS-сервера +- Podman Quadlet тепер доступний як попередній перегляд технології ### Графічна інфраструктура -* Підтримка графічного процесора Intel ARC тепер доступна як попередній перегляд технології +- Підтримка графічного процесора Intel ARC тепер доступна як попередній перегляд технології ## Відомі проблеми Існує велика кількість відомих проблем у 8.8, які стосуються: -* Інсталятор і створення образу -* Управління програмним забезпеченням -* Оболонки та засоби командного рядка -* Інфраструктурні послуги -* Безпека -* Мережі -* Ядро -* Завантажувач -* Файлові системи та сховище -* Динамічні мови програмування, сервери веб та бази даних -* Управління ідентифікацією -* Робочий стіл -* Графічна інфраструктура -* Веб-консоль -* Системні ролі -* Віртуалізація -* Хмарні середовища -* Підтримка -* Контейнери +- Інсталятор і створення образу +- Управління програмним забезпеченням +- Оболонки та засоби командного рядка +- Інфраструктурні послуги +- Безпека +- Мережі +- Ядро +- Завантажувач +- Файлові системи та сховище +- Мови динамічного програмування, веб-сервери та сервери баз даних +- Управління ідентифікацією +- Робочий стіл +- Графічна інфраструктура +- Веб-консоль +- Системні ролі +- Віртуалізація +- Хмарні середовища +- Підтримка +- Контейнери Перегляньте [список першоджерел](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/8.8_release_notes/known-issues) для повної інформації про ці проблеми. ## Повідомлення про Проблеми -Будь ласка, повідомляйте про будь-які виявлені помилки в [Відстеження помилок Rocky Linux](https://bugs.rockylinux.org/). Ми також запрошуємо вас приєднатися до нашої спільноти будь-яким способом, будь то на наших [форумах](https://forums.rockylinux.org), [Mattermost](https://chat.rockylinux.org), [IRC на Libera.Chat](irc://irc.liberachat/rockylinux), [Reddit](https://reddit.com /r/rockylinux), [Списки розсилки](https://lists.resf.org) або будь-яким іншим способом, яким ви бажаєте взяти участь! +Будь ласка, повідомляйте про будь-які помилки, з якими ви зіткнулися, до [системи відстеження помилок Rocky Linux] (https://bugs.rockylinux.org/). Ми також запрошуємо вас приєднатися до нашої спільноти будь-яким зручним для вас способом, будь то на наших [Форумах](https://forums.rockylinux.org), [Mattermost](https://chat.rockylinux.org), [IRC на Libera.Chat](irc://irc.liberachat/rockylinux), [Reddit](https://reddit.com/r/rockylinux), [Списках розсилки](https://lists.resf.org) або будь-яким іншим способом, яким ви бажаєте взяти участь! diff --git a/docs/release_notes/9_0.uk.md b/docs/release_notes/9_0.uk.md index c23b3822f5..9bc9117565 100644 --- a/docs/release_notes/9_0.uk.md +++ b/docs/release_notes/9_0.uk.md @@ -15,12 +15,12 @@ tags: !!! warning "Перевірте сумісність ЦП" З Rocky Linux 9.0 деякі старі процесори працюватимуть погано або, можливо, взагалі не працюватимуть. Наступні архітектури вважаються мінімальними вимогами для успішного встановлення: - - * 64-розрядні архітектури AMD і Intel (x86-64-v2) [Переконайтеся, що процесор сумісний із цією процедурою!](https://docs.rockylinux.org/gemstones/test_cpu_compat/) - * 64-розрядна архітектура ARM (ARMv8.0-A) - * IBM Power Systems, Little Endian (POWER9) - * 64-bit IBM Z (z14) - + + \* 64-розрядні архітектури AMD і Intel (x86-64-v2) [Переконайтеся, що процесор сумісний із цією процедурою!](https://docs.rockylinux.org/gemstones/test_cpu_compat/) + \* 64-розрядна архітектура ARM (ARMv8.0-A) + \* IBM Power Systems, Little Endian (POWER9) + \* 64-bit IBM Z (z14) + Для отримання додаткової інформації про підтримувані архітектури та ризики використання тих, які не підтримуються, перегляньте примітку до випуску на цю тему [тут](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html /9.0_release_notes/architectures). Деякі основні моменти цього випуску детально описано далі. @@ -29,111 +29,112 @@ tags: Rocky Linux 9 було з любов’ю створено за допомогою нашої власної розробки та відкритої системи збірки Cloud Native під назвою Peridot. Peridot використовувався для створення Rocky Linux 9 для архітектур x86_64, aarch64, s390x і ppc64le. -Серед іншого, цей випуск представляє нашу постійну обіцянку та зобов’язання перед спільнотою забезпечити довговічність проекту Rocky Linux, дозволяючи користувачам створювати, покращувати або відтворювати Rocky Linux самостійно з нуля. Вихідний код для системи збірки доступний [тут](https://github.com/rocky-linux/peridot) +Серед іншого, цей випуск представляє нашу постійну обіцянку та зобов’язання перед спільнотою забезпечити довговічність проекту Rocky Linux, дозволяючи користувачам створювати, покращувати або відтворювати Rocky Linux самостійно з нуля. Вихідний код системи збірки доступний [тут](https://github.com/rocky-linux/peridot) ### Безпека -* Використання дайджесту повідомлень **SHA-1** для криптографічних цілей більше не підтримується. Криптографічні хеш-функції, створені SHA-1, більше не вважаються безпечними. Існують деякі винятки, які детально описано в посиланні вище. -* **OpenSSL** тепер має версію 3.0.1 із багатьма вдосконаленнями, зокрема концепцією провайдера, новою схемою управління версіями, покращеним клієнтом HTTP(S), підтримкою нових протоколів, форматів і алгоритмів, і більше. -* **OpenSSH** тепер є версією 8.7p1 із багатьма вдосконаленнями, зокрема заміною протоколу SCP/RCP на протокол SFTP, який пропонує більш передбачувану обробку імен файлів. -* Продуктивність **SELinux**, накладні витрати пам’яті, час завантаження тощо було суттєво покращено. Є багато змін з більш детальною інформацією в примітках до випуску. -* Rocky Linux 9 підтримує автоматичне налаштування параметрів відповідності вимогам безпеки для PCI-DSS, HIPAA, DISA та багатьох інших безпосередньо за допомогою інсталятора Anaconda, заощаджуючи час і зусилля для виконання складних вимог у середовищі безпеки, що швидко розвивається. +- Використання дайджесту повідомлень **SHA-1** для криптографічних цілей застаріло. Криптографічні хеш-функції, створені SHA-1, більше не вважаються безпечними. Існують деякі винятки, які детально описано в посиланні вище. +- **OpenSSL** тепер має версію 3.0.1 із багатьма вдосконаленнями, зокрема концепцією провайдера, новою схемою управління версіями, покращеним клієнтом HTTP(S), підтримкою нових протоколів, форматів і алгоритмів, і більше. +- **OpenSSH** тепер є версією 8.7p1 із багатьма вдосконаленнями, зокрема заміною протоколу SCP/RCP на протокол SFTP, який пропонує більш передбачувану обробку імен файлів. +- Продуктивність **SELinux**, витрати пам'яті, час завантаження та багато іншого було суттєво покращено. Є багато змін з більш детальною інформацією в примітках до випуску. +- Rocky Linux 9 підтримує автоматичне налаштування параметрів відповідності вимогам безпеки для PCI-DSS, HIPAA, DISA та багатьох інших безпосередньо за допомогою інсталятора Anaconda, заощаджуючи час і зусилля для виконання складних вимог у середовищі безпеки, що швидко розвивається. ### Мережа -Нижче наведено основні зміни, пов’язані з мережею. Для детального висвітлення цих змін, а також інших змін, пов’язаних з мережею, перейдіть за посиланням вище [тут](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html/9.0_release_notes/new- features#enhancement_networking). +Нижче наведено основні зміни, пов’язані з мережею. Для детального висвітлення цих змін, а також інших змін, пов’язаних із мережею, будь ласка, перейдіть за посиланням [тут](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html/9.0_release_notes/new-features#enhancement_networking). -* **mptcpd** або MultiPath TCP Daemon можна використовувати замість `iproute2` для налаштування кінцевих точок MultiPath TCP. -* NetworkManager тепер використовує ключові файли для зберігання нових профілів підключення за замовчуванням, але все ще підтримує використання `ifcfg`. -* **iptables-nft** і **ipset** тепер не підтримуються, що включає утиліти `iptables`, `ip6tables`, `ebtables` та `arptables`. Усі вони замінені фреймворком `nftables`. -* Пакет **network-scripts** видалено. Використовуйте NetworkManager для налаштування мережевих підключень. +- **mptcpd** або MultiPath TCP Daemon можна використовувати замість `iproute2` для налаштування кінцевих точок MultiPath TCP. +- NetworkManager тепер використовує ключові файли для зберігання нових профілів підключення за замовчуванням, але все ще підтримує використання `ifcfg`. +- Пакети **iptables-nft** та **ipset** тепер застарілі, включаючи утиліти `iptables`, `ip6tables`, `ebtables` та `arptables`. Усі вони замінені фреймворком `nftables`. +- Пакет **network-scripts** було видалено. Використовуйте NetworkManager для налаштування мережевих підключень. ### Веб і програмування -Кілька пакетів програм для динамічного програмування, контролю версій і веб-додатків, перелічених далі, оновлено до нових версій у Rocky Linux 9.0. Щоб отримати повний список змін і описи, дивись [це вихідне посилання](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html/9.0_release_notes/New-features#enhancement_dynamic-programming-languages-web-and-database-servers). +Кілька пакетів програм для динамічного програмування, контролю версій і веб-додатків, перелічених далі, оновлено до нових версій у Rocky Linux 9.0. +Повний список змін та описів дивіться за [цим посиланням на розширену версію](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html/9.0_release_notes/New-features#enhancement_dynamic-programming-languages-web-and-database-servers). #### Динамічне програмування -* **Node.js 16** -* **Perl 5.32** -* **PHP 8.0** -* **Python 3.9** -* **Ruby 3.0** +- **Node.js 16** +- **Perl 5.32** +- **PHP 8.0** +- **Python 3.9** +- **Ruby 3.0** #### Контроль версій -* **Git 2.31** -* **Subversion 1.14** +- **Git 2.31** +- **Subversion 1.14** #### Веб-сервери -* **Apache HTTP Server 2.4.51** -* **nginx 1.20** +- **Apache HTTP Server 2.4.51** +- **nginx 1.20** #### Проксі-сервери кешування -* **Varnish Cache 6.6** -* **Squid 5.2** +- **Varnish Cache 6.6** +- **Squid 5.2** #### Сервери баз даних -* **MariaDB 10.5** -* **MySQL 8.0** -* **PostgreSQL 13** -* **Redis 6.2** +- **MariaDB 10.5** +- **MySQL 8.0** +- **PostgreSQL 13** +- **Redis 6.2** ### Компілятори та засоби розробки -Щоб отримати повний детальний список змін, дивись [це вихідне посилання](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html/9.0_release_notes/New-features#enhancement_compilers-and-development-tools). Основні моменти наведено нижче. +Повний детальний список змін дивіться за [цим посиланням на розширену версію](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html/9.0_release_notes/New-features#enhancement_compilers-and-development-tools). Основні моменти наведено нижче. #### Системний інструментарій -* **GCC 11.2.1** -* **glibc 2.34** -* **binutils 2.35.2** +- **GCC 11.2.1** +- **glibc 2.34** +- **binutils 2.35.2** #### Інструменти продуктивності та налагодження -* **GDB 10.2** -* **Valgrind 3.18.1** -* **SystemTap 4.6** -* **Dyninst 11.0.0** -* **elfutils 0.186** +- **GDB 10.2** +- **Valgrind 3.18.1** +- **SystemTap 4.6** +- **Dyninst 11.0.0** +- **elfutils 0.186** #### Інструменти моніторингу продуктивності -* **PCP 5.3.5** -* **Grafana 7.5.11** +- **PCP 5.3.5** +- **Grafana 7.5.11** #### Набори інструментів компілятора -* **LLVM Toolset 13.0.1** -* **Rust Toolset 1.58.1** -* **Go Toolset 1.17.7** +- **LLVM Toolset 13.0.1** +- **Rust Toolset 1.58.1** +- **Go Toolset 1.17.7** #### Реалізація Java Надаються такі середовища виконання Java та комплекти розробки Java: -* `java-17-openjdk` -* `java-11-openjdk` -* `java-1.8.0-openjdk` +- `java-17-openjdk` +- `java-11-openjdk` +- `java-1.8.0-openjdk` Надаються такі інструменти Java: -* **Maven 3.6** -* **Ant 1.10** +- **Maven 3.6** +- **Ant 1.10** ### Віртуалізація -Щоб отримати повний список змін і вдосконалень у віртуалізації, див. [це вихідне посилання](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html/9.0_release_notes/New-features#enhancement_virtualization). +Повний список змін та покращень у віртуалізації дивіться за [цим посиланням на розширену версію](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html/9.0_release_notes/New-features#enhancement_virtualization). Ключові моменти: -* Тепер QEMU створено з використанням компілятора CLANG, який дозволяє гіпервізору KVM використовувати низку розширених функцій безпеки та налагодження. -* vTPM (Virtual Trusted Platform Module) тепер повністю підтримується. -* Реалізовано функцію `virtiofs`, яку можна використовувати для більш ефективного обміну файлами між хостом Rocky Linux та його віртуальними машинами. -* `cgroup-v2`, який реалізує єдину модель ієрархії, тепер є типовою групою керування Linux у версії 9.0. Це матиме певні наслідки для тих, хто використовує системи на основі контейнерів (Docker, Kubernetes тощо). Більше інформації доступно за посиланням вище. +- Тепер QEMU створено з використанням компілятора CLANG, який дозволяє гіпервізору KVM використовувати низку розширених функцій безпеки та налагодження. +- vTPM (Virtual Trusted Platform Module) тепер повністю підтримується. +- Реалізовано функцію `virtiofs`, яку можна використовувати для більш ефективного обміну файлами між хостом Rocky Linux та його віртуальними машинами. +- `cgroup-v2`, яка реалізує єдину ієрархічну модель, тепер є групою керування Linux за замовчуванням у версії 9.0. Це матиме певні наслідки для тих, хто використовує системи на основі контейнерів (Docker, Kubernetes тощо). Більше інформації доступно за посиланням вище. ## Оновлення @@ -141,23 +142,24 @@ Rocky Linux 9 було з любов’ю створено за допомого ## Встановлення -Щоб установити Rocky Linux 9.0, перейдіть на [сторінку завантаження](https://rockylinux.org/download/) та завантажте версію, яка вам потрібна для вашої архітектури. Повна інструкція зі встановлення Rocky Linux 9.0 доступна на [веб-сайті документації Rocky Linux тут](https://docs.rockylinux.org/guides/installation/). +Щоб встановити Rocky Linux 9.0, перейдіть на [сторінку завантаження](https://rockylinux.org/download/) та завантажте версію, потрібну для вашої архітектури. +Повна інструкція з встановлення Rocky Linux 9.0 доступна на [вебсайті документації Rocky Linux тут] (https://docs.rockylinux.org/guides/installation/). Хоча це описано в інструкції з інсталяції (вище), важливо перевірити завантаження за CHECKSUM для цього файлу, щоб переконатися, що немає пошкоджень або підробок. Ви можете зробити це, виконавши наведені нижче дії, припускаючи, що ви завантажили файл на іншу машину за допомогою Linux: -* У каталозі, куди ви завантажили образ ISO для вашої цільової архітектури, також завантажте файл CHECKSUM. Приклад: +- У каталозі, куди ви завантажили образ ISO для вашої цільової архітектури, також завантажте файл CHECKSUM. Приклад: ```bash curl https://download.rockylinux.org/pub/rocky/9/isos/x86_64/CHECKSUM -o CHECKSUM ``` -* Потім видайте команду: +- Потім видайте команду: ```bash sha256sum -c CHECKSUM --ignore-missing ``` -* Якщо ви отримаєте наступне в командному рядку, ваш файл перевірено. Зверніть увагу, що ми припускаємо мінімальний ISO нижче, але це також може бути ISO DVD: +- Якщо ви отримаєте наступне в командному рядку, ваш файл перевірено. Зверніть увагу, що ми припускаємо мінімальний ISO нижче, але це також може бути ISO DVD: ```bash Rocky-9.0-x86_64-minimal.iso: OK @@ -167,10 +169,10 @@ Rocky Linux 9 було з любов’ю створено за допомого ## Відомі проблеми -Як і в будь-якому випуску, є проблеми, про які вже відомо. Ви можете переглянути поточний перелік проблем у верхній частині [тут](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html/9.0_release_notes/known-issues). +Як і в будь-якому випуску, є проблеми, про які вже відомо. Ви можете переглянути поточний список проблем з основної розробки [тут](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html/9.0_release_notes/known-issues). -* **Обмеження використання мінімальної установки ISO** – більшість пакетів, пов’язаних із безпекою, не працюватимуть. Якщо під час інсталяції вам потрібні профілі та пакети безпеки/SCAP, використовуйте DVD ISO. +- **Обмеження використання мінімальної інсталяції ISO** – більшість пакетів, пов’язаних із безпекою, не працюватимуть. Якщо під час інсталяції вам потрібні профілі та пакети безпеки/SCAP, використовуйте DVD ISO. -## Повідомлення про помилки +## Повідомлення про Проблеми -Будь ласка, повідомляйте про будь-які виявлені помилки в [Відстеження помилок Rocky Linux](https://bugs.rockylinux.org/). Ми також запрошуємо вас приєднатися до нашої спільноти будь-яким способом на наших [форумах](https://forums.rockylinux.org), [Mattermost](https://chat. rockylinux.org), [IRC на Libera.Chat](irc://irc.liberachat/rockylinux), [Reddit](https://reddit.com/ r/rockylinux), [Списки розсилки](https://lists.resf.org) або будь-яким іншим способом, яким ви бажаєте взяти участь! +Будь ласка, повідомляйте про будь-які помилки, з якими ви зіткнулися, до [системи відстеження помилок Rocky Linux] (https://bugs.rockylinux.org/). Ми також запрошуємо вас приєднатися до нашої спільноти будь-яким зручним для вас способом, будь то на наших [Форумах](https://forums.rockylinux.org), [Mattermost](https://chat.rockylinux.org), [IRC на Libera.Chat](irc://irc.liberachat/rockylinux), [Reddit](https://reddit.com/r/rockylinux), [Списках розсилки](https://lists.resf.org) або будь-яким іншим способом, яким ви бажаєте взяти участь! diff --git a/docs/release_notes/9_1.uk.md b/docs/release_notes/9_1.uk.md index a467da8f69..337d4146cc 100644 --- a/docs/release_notes/9_1.uk.md +++ b/docs/release_notes/9_1.uk.md @@ -12,7 +12,7 @@ tags: Ви можете оновити Rocky Linux 9.0 до Rocky Linux 9.1, просто запустивши `sudo dnf -y upgrade` -!!! note "Примітка" +!!! note Rocky Linux не пропонує шлях оновлення будь-якої версії Rocky Linux 8. Ми рекомендуємо встановити нову ОС для переходу на Rocky Linux 9.x. @@ -44,139 +44,139 @@ tags: ## Управління програмним забезпеченням -* Команда `modulesync` тепер доступна для заміни певних робочих процесів у `dnf` і `createrepo_c`. +- Команда `modulesync` тепер доступна для заміни певних робочих процесів у `dnf` і `createrepo_c`. ## Безпека ### Зміни в OpenSSH -* Нова опція підтримує встановлення мінімальної довжини ключа RSA -* `crypto-policies` за замовчуванням вимагає мінімальної довжини 2048-бітного ключа RSA -* `crypto-policies` тепер підтримує `sntrup761x25519-sha512@openssh.com` +- Нова опція підтримує встановлення мінімальної довжини ключа RSA +- `crypto-policies` за замовчуванням вимагає мінімальної довжини 2048-бітного ключа RSA +- `crypto-policies` тепер підтримує `sntrup761x25519-sha512@openssh.com` ### Зміни в SELinux -* Політика SELinux обмежує додаткові служби -* SELinux підтримує ключове слово self у переходах типів -* Оновлено пакети простору користувача SELinux -* Автоматичне перемаркування SELinux тепер паралельне за замовчуванням +- Політика SELinux обмежує додаткові служби +- SELinux підтримує ключове слово self у переходах типів +- Оновлено пакети простору користувача SELinux +- Автоматичне перемаркування SELinux тепер паралельне за замовчуванням ### Інші зміни -* Нова опція в OpenSSL підтримує SHA-1 для підписів -* Служби безпеки мережі (NSS) більше не підтримують ключі RSA, коротші за 1023 біти -* Керівництво з безпеки SCAP оновлено до версії 0.1.63 -* Нові пакети: `keylime` інструмент для атестації віддалених систем, який використовує технологію Trusted Platform Module (TPM). За допомогою Keylime ви можете перевіряти та постійно контролювати цілісність віддалених систем. -* Додано параметр максимального розміру для файлів помилок Rsyslog -* `clevis-luks-askpass` тепер увімкнено за умовчанням -* `fapolicyd` змінено на 1.1.3 +- Нова опція в OpenSSL підтримує SHA-1 для підписів +- Служби безпеки мережі (NSS) більше не підтримують ключі RSA, коротші за 1023 біти +- Керівництво з безпеки SCAP оновлено до версії 0.1.63 +- New packages: `keylime` a tool for attestation of remote systems, which uses the trusted platform module (TPM) technology. За допомогою Keylime ви можете перевіряти та постійно контролювати цілісність віддалених систем. +- Додано параметр максимального розміру для файлів помилок Rsyslog +- `clevis-luks-askpass` тепер увімкнено за умовчанням +- `fapolicyd` змінено на 1.1.3 ## Оболонки та інструменти командного рядка -* `Cronie` додає підтримку для випадкового часу в межах вибраного діапазону -* ReaR додає нові змінні для виконання команд до та після відновлення -* Новий пакет: `xmlstarlet` – набір утиліт командного рядка для аналізу, перетворення, запитів, перевірки та редагування файлів XML -* `pencryptoki` оновлено до версії 3.18.0 -* `powerpc-utils` оновлено до версії 1.3.10 -* `libvpd` оновлено до версії 2.2.9 -* `lsvpd` оновлено до версії 1.7.14 -* `ppc64-diag` оновлено до версії 2.7.8 -* `sysctl` вводить ідентичний синтаксис для аргументів, як `systemd-sysctl` +- `Cronie` додає підтримку для випадкового часу в межах вибраного діапазону +- ReaR додає нові змінні для виконання команд до та після відновлення +- Новий пакет: `xmlstarlet` – набір утиліт командного рядка для аналізу, перетворення, запитів, перевірки та редагування файлів XML +- `pencryptoki` оновлено до версії 3.18.0 +- `powerpc-utils` оновлено до версії 1.3.10 +- `libvpd` оновлено до версії 2.2.9 +- `lsvpd` оновлено до версії 1.7.14 +- `ppc64-diag` оновлено до версії 2.7.8 +- `sysctl` вводить ідентичний синтаксис для аргументів, як `systemd-sysctl` ## Послуги інфраструктури ### Зміни в `chrony` -* тепер використовує сервери DHCPv6 NTP, а також DHCPv4 -* перероблено до версії 4.2 +- тепер використовує сервери DHCPv6 NTP, а також DHCPv4 +- перероблено до версії 4.2 ### Інші зміни -* `unbound` оновлено до версії 1.16.2 -* Функція шифрування пароля тепер доступна в `whois` -* `frr` оновлено до версії 8.2.2 +- `unbound` оновлено до версії 1.16.2 +- Функція шифрування пароля тепер доступна в `whois` +- `frr` оновлено до версії 8.2.2 ## Мережі -* Додано модуль ядра `act_ctinfo` -* Драйвер PTP тепер підтримує віртуальні годинники та відмітку часу -* `firewalld` перетворено на версію 1.1.1 -* NetworkManager тепер підтримує атрибути маршруту `advmss`, `rto_min` і `quickack` -* Підтримка опції `vlan-protocol` 802.ad у `nmstate` -* Більше атрибутів автоконфігурації DHCP та IPv6 додано до API nmstate -* NetworkManager тепер чітко вказує, що підтримка WEP недоступна +- Додано модуль ядра `act_ctinfo` +- Драйвер PTP тепер підтримує віртуальні годинники та відмітку часу +- `firewalld` перетворено на версію 1.1.1 +- NetworkManager тепер підтримує атрибути маршруту `advmss`, `rto_min` і `quickack` +- Підтримка опції `vlan-protocol` 802.ad у `nmstate` +- Більше атрибутів автоконфігурації DHCP та IPv6 додано до API nmstate +- NetworkManager тепер чітко вказує, що підтримка WEP недоступна ## Висока доступність і кластер -* `pcs` підтримує оновлення багатошляхових пристроїв SCSI без перезавантаження системи -* Підтримка UUID кластера -* Новий параметр команди `pcs resource config` для відображення команд `pcs`, які повторно створюють налаштовані ресурси -* Новий параметр команди `pcs stonith config` для відображення команд `pcs`, які повторно створюють налаштовані пристрої огорожі -* Pacemaker оновлено до версії 2.1.4 -* Samba більше не встановлюється автоматично з пакетами кластера +- `pcs` підтримує оновлення багатошляхових пристроїв SCSI без перезавантаження системи +- Підтримка UUID кластера +- Новий параметр команди `pcs resource config` для відображення команд `pcs`, які повторно створюють налаштовані ресурси +- Новий параметр команди `pcs stonith config` для відображення команд `pcs`, які повторно створюють налаштовані пристрої огорожі +- Pacemaker оновлено до версії 2.1.4 +- Samba більше не встановлюється автоматично з пакетами кластера ## Мови динамічного програмування, веб-сервери та сервери баз даних ### Потоки модулів -* Новий потік модуля: `php:8.1` -* Новий потік модуля: `ruby:3.1` +- Новий потік модуля: `php:8.1` +- Новий потік модуля: `ruby:3.1` ### Інші зміни -* httpd оновлено до версії 2.4.53 -* Нове замовчування для директиви `LimitRequestBody` у конфігурації `httpd` -* Новий пакет: httpd-core -* `pcre2` оновлено до версії 10.40 +- httpd оновлено до версії 2.4.53 +- Нове замовчування для директиви `LimitRequestBody` у конфігурації `httpd` +- Новий пакет: httpd-core +- `pcre2` оновлено до версії 10.40 ## Компілятори та засоби розробки ### Потоки модулів -* Новий потік модуля: `maven:3.8` +- Новий потік модуля: `maven:3.8` ### Новий GCC Toolset 12 -* GCC Toolset 12: Annobin оновлено до версії 10.79 -* GCC Toolset 12: `binutils` оновлено до версії 2.38 -* GCC 12 і новіші версії підтримують `_FORTIFY_SOURCE` рівня 3 -* GCC Toolset 12: GDB оновлено до версії 11.2 +- GCC Toolset 12: Annobin оновлено до версії 10.79 +- GCC Toolset 12: `binutils` оновлено до версії 2.38 +- GCC 12 і новіші версії підтримують `_FORTIFY_SOURCE` рівня 3 +- GCC Toolset 12: GDB оновлено до версії 11.2 ### Інші зміни -* Компілятор GCC 11.2.1 оновлено з численними виправленнями помилок і вдосконаленнями -* Параметр DNS-заглушки тепер підтримує параметр `no-aaaa` -* GDB підтримує інструкції Power 10 PLT -* Rust Toolset оновлено до версії 1.62.1 -* LLVM Toolset оновлено до версії 14.0.0 +- Компілятор GCC 11.2.1 оновлено з численними виправленнями помилок і вдосконаленнями +- Параметр DNS-заглушки тепер підтримує параметр `no-aaaa` +- GDB підтримує інструкції Power 10 PLT +- Rust Toolset оновлено до версії 1.62.1 +- LLVM Toolset оновлено до версії 14.0.0 ## Управління ідентифікацією ### Зміни SSSD -* SSSD тепер підтримує кешування пам’яті для запитів SID -* Підтримка SSSD для анонімного PKINIT для FAST -* SSSD тепер підтримує пряму інтеграцію з Windows Server 2022 +- SSSD тепер підтримує кешування пам’яті для запитів SID +- Підтримка SSSD для анонімного PKINIT для FAST +- SSSD тепер підтримує пряму інтеграцію з Windows Server 2022 ### Зміни IdM -* Тепер IdM підтримує випадкові серійні номери -* Тепер IdM підтримує обмеження на кількість прив’язок LDAP, дозволених після закінчення терміну дії пароля користувача -* Тепер IdM підтримує налаштування довіри AD у Windows Server 2022 +- Тепер IdM підтримує випадкові серійні номери +- Тепер IdM підтримує обмеження на кількість прив’язок LDAP, дозволених після закінчення терміну дії пароля користувача +- Тепер IdM підтримує налаштування довіри AD у Windows Server 2022 ### Інші зміни -* Нові ролі `ipasmartcard_server` і `ipasmartcard_client` -* Повідомлення про налагодження `ipa-dnskeysyncd` і `ipa-ods-exporter` більше не реєструються в `/var/log/messages` за умовчанням -* `samba` оновлено до версії 4.16.1 -* Сервер каталогів тепер підтримує рекурсивні операції видалення під час використання `ldapdelete` +- Нові ролі `ipasmartcard_server` і `ipasmartcard_client` +- Повідомлення про налагодження `ipa-dnskeysyncd` і `ipa-ods-exporter` більше не реєструються в `/var/log/messages` за умовчанням +- `samba` оновлено до версії 4.16.1 +- Сервер каталогів тепер підтримує рекурсивні операції видалення під час використання `ldapdelete` ## Віртуалізація -* Покращена відповідність архітектурі KVM -* `open-vm-tools` оновлено до версії 12.0.5 +- Покращена відповідність архітектурі KVM +- `open-vm-tools` оновлено до версії 12.0.5 ## Повідомлення про помилки -Будь ласка, повідомляйте про будь-які виявлені помилки в [Відстеження помилок Rocky Linux](https://bugs.rockylinux.org/). Ми також запрошуємо вас приєднатися до нашої спільноти будь-яким способом на наших [форумах](https://forums.rockylinux.org), [Mattermost](https://chat. rockylinux.org), [IRC на Libera.Chat](irc://irc.liberachat/rockylinux), [Reddit](https://reddit.com/ r/rockylinux), [Списки розсилки](https://lists.resf.org) або будь-яким іншим способом, яким ви бажаєте взяти участь! +Будь ласка, повідомляйте про будь-які помилки, з якими ви зіткнулися, до [системи відстеження помилок Rocky Linux] (https://bugs.rockylinux.org/). Ми також запрошуємо вас приєднатися до нашої спільноти будь-яким зручним для вас способом, будь то на наших [Форумах](https://forums.rockylinux.org), [Mattermost](https://chat.rockylinux.org), [IRC на Libera.Chat](irc://irc.liberachat/rockylinux), [Reddit](https://reddit.com/r/rockylinux), [Списках розсилки](https://lists.resf.org) або будь-яким іншим способом, яким ви бажаєте взяти участь! diff --git a/docs/release_notes/9_2.uk.md b/docs/release_notes/9_2.uk.md index 8c444d651a..b15bde8269 100644 --- a/docs/release_notes/9_2.uk.md +++ b/docs/release_notes/9_2.uk.md @@ -10,13 +10,13 @@ tags: !!! Помилка "PowerPC (ppc64le) held back" - Під час тестування Rocky Linux 9.2 для Power (Little Endian) AKA ppc64le команди Rocky Release Engineering and Testing виявили серйозну проблему з версією python3.9, що входить до складу випуску 9.2 RHEL і Rocky Linux, яка вважається блокувальником випусків на наші політики. +Під час тестування Rocky Linux 9.2 для Power (Little Endian) AKA ppc64le команди Rocky Release Engineering and Testing виявили серйозну проблему з версією python3.9, що входить до складу випуску 9.2 RHEL і Rocky Linux, яка вважається блокувальником випусків на наші політики. - Через природу цієї помилки та потенціал, який вона може порушити існуючі інсталяції Rocky Linux on Power, ми вирішили як спільнота затримати лише архітектуру ppc64le для Rocky Linux 9.2 і випустити інші три архітектури, коли вони пройшли нашу перевірку процедури тестування та відповідні критерії. Примітно, що ми не змогли відтворити помилку python3.9 на будь-якій іншій архітектурі (x86_64, aarch64 або s390x), і вважаємо, що помилка є специфічною для архітектури. +Через природу цієї помилки та потенціал, який вона може порушити існуючі інсталяції Rocky Linux on Power, ми вирішили як спільнота затримати лише архітектуру ppc64le для Rocky Linux 9.2 і випустити інші три архітектури, коли вони пройшли нашу перевірку процедури тестування та відповідні критерії. Примітно, що ми не змогли відтворити помилку python3.9 на будь-якій іншій архітектурі (x86_64, aarch64 або s390x), і вважаємо, що помилка є специфічною для архітектури. - [rhbz#2203919](https://bugzilla.redhat.com/show_bug.cgi?id=2203919) відкрито для відстеження цієї помилки, яка існує в CentOS Stream 9 і RHEL 9, крім того до Рокі 9. +[rhbz#2203919](https://bugzilla.redhat.com/show_bug.cgi?id=2203919) відкрито для відстеження цієї помилки, яка існує в CentOS Stream 9 і RHEL 9, крім того до Рокі 9. - Запуск DNF із системи ppc64le Rocky 9, яка налаштована на використання дзеркального списку та/або налаштована зі змінною dnf `releasever` зі значенням `9`, призведе до невдалих транзакцій метаданих DNF як наш дзеркальний список не в змозі стримати одну архітектуру. Щоб вирішити цю проблему, установіть для змінної `releasever` значення `9.1`. Це можна зробити за допомогою аргументу `--releasever 9.1` вашої команди DNF або шляхом редагування або створення файлу `/etc/dnf/vars/releasever` із вмістом `9.1`. Після випуску Rocky 9.2 для Power ви повинні скасувати цю зміну, і випуск налаштувань більше не буде потрібним. +Запуск DNF із системи ppc64le Rocky 9, налаштованої на використання списку дзеркал та/або налаштованої зі змінною dnf `releasever`, встановленою на `9`, призведе до невдалих транзакцій метаданих DNF, оскільки наш список дзеркал не може стримувати жодну архітектуру. Щоб обійти це, будь ласка, встановіть для змінної `releasever` значення `9.1`. Це можна зробити, використовуючи аргумент `--releasever 9.1` до вашої команди DNF, або редагуючи чи створюючи файл `/etc/dnf/vars/releasever` з вмістом `9.1`. Після випуску Rocky 9.2 для Power ви повинні скасувати цю зміну, і випуск налаштувань більше не буде потрібним. ## Оновлення @@ -28,28 +28,29 @@ tags: !!! Помилка "Оновлення за допомогою пристроїв LVM може призвести до збою завантаження" + ```` Через зміни в пакеті lvm2 між Rocky 9.0, 9.1 і 9.2 після перезавантаження після оновлення ваша система може перейти в режим відновлення через те, що один або кілька розділів LVM не знайдено. Ми відкрили [rhbz#2208039](https://bugzilla.redhat.com/show_bug.cgi?id=2208039), щоб відстежити цю регресію. Хоча ця помилка впливає як на фізичні, так і на віртуальні системи, про проблеми з Libvirt(KVM), VMWare, а також деякими іншими гостями ще не повідомлялося. Щоб перевірити, чи може вас вплинути на цю помилку, перегляньте вміст `/etc/lvm/devices/system.devices`. Якщо цей файл існує **і** містить пристрій типу "sys_wwid", після якого йде кілька повторюваних підкреслень, це, ймовірно, стосується вас. Для прикладу дивіться наступне: - + ``` # Created by LVM command lvmdevices pid 3668 at Wed May 17 12:15:53 2023 VERSION=1.1.2 IDTYPE=sys_wwid IDNAME=t10.ATA_____Colorful_SL500_256GB____________________A157DB6A12200152343_ DEVNAME=/dev/sda3 PVID=LHWedIRTsSv3aXFpM2w4vyJc3cygYyh9 PART=3 ``` - - + + Якщо ви зіткнулися з цією помилкою, доки RHEL і Rocky не випустять виправлення помилки, перегляньте та виконайте один із наведених нижче варіантів **перед** оновленням і перезавантаженням системи: - + 1. Після оновлення пакета `lvm2`, але перед перезавантаженням, повторно згенеруйте `/etc/lvm/devices/system.devices`, запустивши `lvmdevices --update`. Перед перезавантаженням системи переконайтеся, що вміст `/etc/lvm/devices/system.devices` змінено відповідно до нового формату. 2. Перед перезавантаженням після оновлення перейменуйте файл `/etc/lvm/devices/system.devices` (наприклад, `mv /etc/lvm/devices/system.devices{,.bak}`) і після перезавантаження системи запустіть `vgimportdevices --all`, щоб повторно створити файл у новому форматі. - + Правильно відформатований файл `system.devices` для Rocky Linux 9.2 не матиме повторюваних символів підкреслення в полі IDNAME пристрою. - + У випадку системи, яка вже була оновлена та перебуває в режимі відновлення, ви можете просто перемістити файл `/etc/lvm/devices/system.devices` із режиму відновлення та перезавантажити система. Після перезавантаження системи повторно згенеруйте файл у новому форматі. Дивіться варіант 2 вище для отримання додаткової інформації. - + ```` ## Зображення @@ -57,7 +58,7 @@ tags: Доступні образи для Oracle Cloud Platform (OCP), GenericCloud, Amazon AWS (EC2), Container RootFS/OCI, Google Cloud Platform, Microsoft Azure та інші образи, які підтримує CSP. Образи GenericCloud, EC2 і Microsoft Azure мають варіант, який використовує розділ LVM для кореневої файлової системи, що дає системним адміністраторам додаткову гнучкість і параметри для налаштування своїх систем, а образ GenericCloud також доступний для s390x. -Образи Vagrant доступні для x86_64 і aarch64, а також образи контейнерів для всіх 4 арок. З останнього випуску також було додано варіант `rockylinux/rockylinux:9-ubi-init` для використання systemd у контейнері та `rockylinux/rockylinux:9-ubi-micro`, який є найпростішим мінімальним зображенням, яке можна розмістити в самодостатніх програмах без використання менеджера пакетів. Також було додано більше зображень панелі інструментів для більшої кількості арок. +Образи Vagrant доступні для x86_64 і aarch64, а також образи контейнерів для всіх 4 арок. З моменту виходу останнього релізу також було додано варіант `rockylinux/rockylinux:9-ubi-init` для використання systemd у контейнері, а також варіант `rockylinux/rockylinux:9-ubi-micro`, який є мінімальним образом, можливим для розміщення в автономних програмах без використання менеджера пакетів. Також було додано більше зображень панелі інструментів для більшої кількості арок. Більше інформації про артефакти, створені Cloud Special Interest Group, а також інформацію про те, як взяти участь, можна знайти на [SIG/Cloud Wiki сторінки](https://sig-cloud.rocky.page/). @@ -73,25 +74,27 @@ tags: ### Важливі Зміни -* centos-release-nfv тепер надає вміст, побудований на RHEL 9 buildroots замість CentOS Stream 9, з міркувань сумісності -* **Універсальний базовий образ контейнера** `rockylinux/rockylinux:9-ubi` змінено, щоб бути більш схожим на зображення RHEL UBI. Це означає, що внесено такі зміни: +- centos-release-nfv тепер надає вміст, побудований на RHEL 9 buildroots замість CentOS Stream 9, з міркувань сумісності + +- **Універсальний базовий образ контейнера** `rockylinux/rockylinux:9-ubi` змінено, щоб бути більш схожим на образи RHEL UBI. Це означає, що внесено такі зміни: + + - Замінено пакунки: `libcurl` -> `curl-minimal`, `libcurl-minimal` + - Додано пакети: `gdb-gdbserver`, `gzip` + - Видалені пакунки: `binutils`, `brotli`, `dmidecode` + - додано очищення конфігурації мережі - * Замінено пакунки: `libcurl` -> `curl-minimal`, `libcurl-minimal` - * Додано пакети: `gdb-gdbserver`, `gzip` - * Видалені пакунки: `binutils`, `brotli`, `dmidecode` - * додано очищення конфігурації мережі +- Зображення Microsoft Azure тепер публікуються в Спільній галереї зображень, а також у Marketplace. Параметр «Спільна галерея зображень» забезпечує прямий спосіб використовувати Rocky Images у Microsoft Azure, не стрибаючи через обручі підписки на зображення через Marketplace. Крім того, ця спільна галерея зображень дозволить нам публікувати частіше оновлювані зображення на Marketplace. -* Зображення Microsoft Azure тепер публікуються в Спільній галереї зображень, а також у Marketplace. Параметр «Спільна галерея зображень» забезпечує прямий спосіб використовувати Rocky Images у Microsoft Azure, не стрибаючи через обручі підписки на зображення через Marketplace. Крім того, ця спільна галерея зображень дозволить нам публікувати частіше оновлювані зображення на Marketplace. -* Варіанти хмарних образів LVM для всіх типів тепер видаляють `/etc/lvm/devices/system.devices`, щоб вирішити проблеми з PV/VG/LV після встановлення образів через їх жорстке кодування на певному пристрої. +- Варіанти хмарних образів LVM для всіх типів тепер видаляють `/etc/lvm/devices/system.devices`, щоб вирішити проблеми з PV/VG/LV після встановлення образів через їх жорстке кодування на певному пристрої. ### Нові та помітні -* Додано ядро aarch64 64k (`kernel-64k`) -* Додано NFS `nfsrahead` -* Wayland тепер увімкнено за замовчуванням для графічних процесорів Aspeed -* Графічні процесори Intel ARC теоретично також повинні працювати зараз -* Виправлено помилку Flatpak, яка ламає всі шрифти у Flatpaks (Cantarell) -* Тепер Wireguard знову працює з SELinux +- Додано ядро aarch64 64k (`kernel-64k`) +- Додано NFS `nfsrahead` +- Wayland тепер увімкнено за замовчуванням для графічних процесорів Aspeed +- Графічні процесори Intel ARC теоретично також повинні працювати зараз +- Виправлено помилку Flatpak, яка ламає всі шрифти у Flatpaks (Cantarell) +- Тепер Wireguard знову працює з SELinux ## Основні зміни @@ -101,23 +104,23 @@ tags: ### Інсталятор і створення образу -* Image Builder тепер пропонує новий і покращений спосіб створення креслень і зображень у веб-консолі Image Builder. -* Тепер підтримується створення налаштованих файлів і каталогів у каталозі `/etc`. +- Image Builder тепер пропонує новий і покращений спосіб створення креслень і зображень у веб-консолі Image Builder. +- Тепер підтримується створення налаштованих файлів і каталогів у каталозі `/etc`. ### Безпека -Основні моменти, пов’язані з безпекою в останньому випуску Rocky Linux 9.2, перераховані нижче. Повний перелік змін змін, пов'язаних з безпекою, дивіться [тут](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html/9.2_release_notes/new-features#new-features-security). +Основні моменти, пов’язані з безпекою в останньому випуску Rocky Linux 9.2, перераховані нижче. Повний список змін, пов’язаних із безпекою, див. за [посиланням на оновлення тут](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html/9.2_release_notes/new-features#new-features-security). -* Бібліотеку захищених комунікацій OpenSSL було оновлено до версії 3.0.7. -* Пакети простору користувача SELinux оновлено до версії 3.5. -* Keylime було оновлено до версії 6.5.2 -* OpenSCAP оновлено до версії 1.3.7. -* Посібник з безпеки SCAP перетворено на версію 0.1.66. -* До Керівництва з безпеки SCAP додано нове правило для припинення неактивного сеансу. -* Clevis тепер приймає зовнішні токени. -* Журналування, зашифроване TLS Rsyslog, тепер підтримує кілька файлів CA. -* Привілеї Rsyslog обмежені для мінімізації ризику безпеки. (це вплине на будь-кого, хто має спеціальну конфігурацію rsyslog!) -* Фреймворк fapolicyd тепер забезпечує фільтрацію бази даних RPM. +- Бібліотеку захищених комунікацій OpenSSL було оновлено до версії 3.0.7. +- Пакети простору користувача SELinux оновлено до версії 3.5. +- Keylime було оновлено до версії 6.5.2 +- OpenSCAP оновлено до версії 1.3.7. +- Посібник з безпеки SCAP перетворено на версію 0.1.66. +- До Керівництва з безпеки SCAP додано нове правило для припинення неактивного сеансу. +- Clevis тепер приймає зовнішні токени. +- Журналування, зашифроване TLS Rsyslog, тепер підтримує кілька файлів CA. +- Привілеї Rsyslog обмежені для мінімізації ризику безпеки. (це вплине на будь-кого, хто має спеціальну конфігурацію rsyslog!) +- Фреймворк fapolicyd тепер забезпечує фільтрацію бази даних RPM. ### Динамічні мови програмування, сервери веб та бази даних @@ -125,22 +128,22 @@ tags: Тепер доступні пізніші версії таких потоків програм: -* nginx 1.22 -* PostgreSQL 15 -* Swig 4.1 (частина CRB) +- nginx 1.22 +- PostgreSQL 15 +- Swig 4.1 (частина CRB) Були додані такі програми: -* Python 3.11 -* Tomcat 9 +- Python 3.11 +- Tomcat 9 Наступні компоненти були додані або оновлені: -* Git до версії 2.39.1: +- Git до версії 2.39.1: - * Тепер підтримується підписання комітів за допомогою ключів SSH + - Тепер підтримується підписання комітів за допомогою ключів SSH -* Git LFS до версії 3.2.0 +- Git LFS до версії 3.2.0 ### Компілятори та засоби розробки @@ -150,76 +153,76 @@ tags: Оновлено такі компоненти системи інструментів: -* GCC 11.3.1 -* glibc 2.34 -* binutils 2.35.2 +- GCC 11.3.1 +- glibc 2.34 +- binutils 2.35.2 #### Оновлені засоби підвищення продуктивності та налагоджувачі Оновлено наступні засоби підвищення продуктивності та налагоджувачі: -* GDB 10.2 -* Valgrind 3.19 -* SystemTap 4.8 -* Dyninst 12.1.0 -* elfutils 0.188 +- GDB 10.2 +- Valgrind 3.19 +- SystemTap 4.8 +- Dyninst 12.1.0 +- elfutils 0.188 #### Оновлені засоби моніторингу продуктивності Оновлено наступні інструменти моніторингу продуктивності: -* PCP 6.0.1 -* Grafana 9.0.9 +- PCP 6.0.1 +- Grafana 9.0.9 #### Оновлені набори інструментів компілятора Оновлено такі набори інструментів компілятора: -* GCC Toolset 12 -* LLVM Toolset 15.0.7 -* Rust Toolset 1.66 -* Go Toolset 1.19.6 +- GCC Toolset 12 +- LLVM Toolset 15.0.7 +- Rust Toolset 1.66 +- Go Toolset 1.19.6 ### Контейнери -Перелік змін у цій категорії дивіться [тут](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html/9.2_release_notes/new-features#new-features-containers). Помітні зміни включають: +Детальніше про зміни в цій категорії див. [посилання на вищезгадану версію тут](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html/9.2_release_notes/new-features#new-features-containers). Помітні зміни включають: -* Системна роль podman Linux тепер доступна -* Тепер доступні клієнти для підписів Sigstore із Fulcio та Rekor -* Skopeo тепер підтримує генерацію пар ключів sigstore -* Podman тепер підтримує події для аудиту -* Пакети Container Tools оновлено -* Мережевий стек Aardvark і Netavark тепер підтримує власний вибір DNS-сервера -* Podman Quadlet тепер доступний як попередній перегляд технології -* Мережний стек CNI застарів +- Системна роль podman Linux тепер доступна +- Тепер доступні клієнти для підписів Sigstore із Fulcio та Rekor +- Skopeo тепер підтримує генерацію пар ключів sigstore +- Podman тепер підтримує події для аудиту +- Пакети Container Tools оновлено +- Мережевий стек Aardvark і Netavark тепер підтримує власний вибір DNS-сервера +- Podman Quadlet тепер доступний як попередній перегляд технології +- Мережний стек CNI застарів ## Відомі проблеми Існує велика кількість відомих проблем у 9,2 пов'язана з цим: -* Встановлення та створення зображень -* Керування програмним забезпеченням -* Оболонки та засоби командного рядка -* Інфраструктурні послуги -* Безпека -* Мережі -* Ядро -* Завантажувач -* Файлові системи та сховище -* Динамічні мови програмування, веб-сервіси бази даних -* Компілятори та засоби розробки -* Управління ідентифікацією -* Робочий стіл -* Графіка інфраструктури -* Веб-консоль -* Системні ролі -* Віртуалізація -* Хмарні середовища -* Підтримка -* Контейнери +- Встановлення та створення зображень +- Керування програмним забезпеченням +- Оболонки та засоби командного рядка +- Інфраструктурні послуги +- Безпека +- Мережі +- Ядро +- Завантажувач +- Файлові системи та сховище +- Динамічні мови програмування, веб-сервіси бази даних +- Компілятори та засоби розробки +- Управління ідентифікацією +- Робочий стіл +- Графіка інфраструктури +- Веб-консоль +- Системні ролі +- Віртуалізація +- Хмарні середовища +- Підтримка +- Контейнери Ознайомтеся з [переліком вищих напрямків](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html/9.2_release_notes/known-issues), щоб отримати повну інформацію щодо цих проблем. ## Повідомлення про Проблеми -Будь ласка, повідомляйте про будь-які виявлені помилки в [Відстеження помилок Rocky Linux](https://bugs.rockylinux.org/). Ми також запрошуємо вас приєднатися до нашої спільноти будь-яким способом на наших [форумах](https://forums.rockylinux.org), [Mattermost](https://chat. rockylinux.org), [IRC на Libera.Chat](irc://irc.liberachat/rockylinux), [Reddit](https://reddit.com/ r/rockylinux), [Списки розсилки](https://lists.resf.org) або будь-яким іншим способом, яким ви бажаєте взяти участь! +Будь ласка, повідомляйте про будь-які помилки, з якими ви зіткнулися, до [системи відстеження помилок Rocky Linux] (https://bugs.rockylinux.org/). Ми також запрошуємо вас приєднатися до нашої спільноти будь-яким зручним для вас способом, будь то на наших [Форумах](https://forums.rockylinux.org), [Mattermost](https://chat.rockylinux.org), [IRC на Libera.Chat](irc://irc.liberachat/rockylinux), [Reddit](https://reddit.com/r/rockylinux), [Списках розсилки](https://lists.resf.org) або будь-яким іншим способом, яким ви бажаєте взяти участь! diff --git a/docs/release_notes/9_4.uk.md b/docs/release_notes/9_4.uk.md index 3073f434f5..cc35867951 100644 --- a/docs/release_notes/9_4.uk.md +++ b/docs/release_notes/9_4.uk.md @@ -16,9 +16,9 @@ tags: !!! Note "Примітка" -``` -Rocky Linux не пропонує шлях оновлення з будь-якої версії Rocky Linux 8. Ми рекомендуємо оновити ОС, щоб перейти до Rocky Linux 9.4. -``` + ``` + Rocky Linux не пропонує шлях оновлення з будь-якої версії Rocky Linux 8. Ми рекомендуємо оновити ОС, щоб перейти до Rocky Linux 9.4. + ``` ## Зображення @@ -152,9 +152,7 @@ Rocky Linux не пропонує шлях оновлення з будь-яко !!! info "Застаріле програмне забезпечення" -``` -Деякі потоки програм, які є частиною репозиторіїв Rocky Linux 9.4, не отримуватимуть подальших оновлень. Наразі це Node.js 16 (вихід на пенсію у квітні 2024 року) та .NET 7 (вихід на пенсію у травні 2024 року). Крім того, OpenJDK 11 досягне свого EoL для Rocky Linux 9 у жовтні 2024 року. Будь ласка, переконайтеся, що використовуєте підтримувані версії (модулі Node.js 18 або 20, пакети .NET 6 або 8, пакети OpenJDK 1.8.0, 17 або 21), якщо далі патчі бажані. -``` + Деякі потоки програм, які є частиною репозиторіїв Rocky Linux 9.4, не отримуватимуть подальших оновлень. Наразі це Node.js 16 (вихід на пенсію у квітні 2024 року) та .NET 7 (вихід на пенсію у травні 2024 року). Крім того, OpenJDK 11 досягне свого EoL для Rocky Linux 9 у жовтні 2024 року. Будь ласка, переконайтеся, що використовуєте підтримувані версії (модулі Node.js 18 або 20, пакети .NET 6 або 8, пакети OpenJDK 1.8.0, 17 або 21), якщо далі патчі бажані. ## Повідомлення про помилки diff --git a/docs/release_notes/9_5.uk.md b/docs/release_notes/9_5.uk.md index db005416f1..d7d7a8e106 100644 --- a/docs/release_notes/9_5.uk.md +++ b/docs/release_notes/9_5.uk.md @@ -16,9 +16,9 @@ tags: !!! Note "Примітка" -``` -Rocky Linux не пропонує шлях оновлення з будь-якої версії Rocky Linux 8. Ми рекомендуємо оновити ОС, щоб перейти до Rocky Linux 9.5. -``` + ``` + Rocky Linux не пропонує шлях оновлення з будь-якої версії Rocky Linux 8. Ми рекомендуємо оновити ОС, щоб перейти до Rocky Linux 9.5. + ``` ## Зображення @@ -127,9 +127,7 @@ Podman отримав значне оновлення до версії 5.0, в !!! info "Застаріле програмне забезпечення" -``` -Деякі потоки програм, які є частиною репозиторіїв Rocky Linux 9.5, не отримуватимуть подальших оновлень. Наразі вони включають gcc-toolset 12 (вихід на пенсію в листопаді 2024 р.), .NET 6 (вихід на пенсію в листопаді 2024 р.), Ruby 3.1 (вихід на пенсію в березні 2025 р.) і Node.js 18 (вихід на пенсію в квітні 2025 р.). Крім того, OpenJDK 11 досягне свого EoL для Rocky Linux 9 у жовтні 2024 року. Обов’язково використовуйте підтримувані версії (пакети gcc-toolset 13 або 14, пакети .NET 8 або 9, модуль Ruby 3.3, модулі Node.js 20 або 22). , OpenJDK 1.8.0, 17 або 21 пакет), якщо є додаткові виправлення бажаний. -``` + Деякі потоки програм, які є частиною репозиторіїв Rocky Linux 9.5, не отримуватимуть подальших оновлень. Наразі вони включають gcc-toolset 12 (вихід на пенсію в листопаді 2024 р.), .NET 6 (вихід на пенсію в листопаді 2024 р.), Ruby 3.1 (вихід на пенсію в березні 2025 р.) і Node.js 18 (вихід на пенсію в квітні 2025 р.). Крім того, OpenJDK 11 досягне свого EoL для Rocky Linux 9 у жовтні 2024 року. Обов’язково використовуйте підтримувані версії (пакети gcc-toolset 13 або 14, пакети .NET 8 або 9, модуль Ruby 3.3, модулі Node.js 20 або 22). , OpenJDK 1.8.0, 17 або 21 пакет), якщо є додаткові виправлення бажаний. ## Повідомлення про помилки diff --git a/docs/release_notes/index.uk.md b/docs/release_notes/index.uk.md index dae5237f61..f8dba466c9 100644 --- a/docs/release_notes/index.uk.md +++ b/docs/release_notes/index.uk.md @@ -15,9 +15,9 @@ tags: Rocky 10 (кодова назва «Red Quartz») має загальну підтримку до 31 травня 2030 року та підтримку безпеки до 31 травня 2035 року. Підтримувані архітектури: x86_64_v3, riscv64, aarch64, ppc64le та s390x. -| Номер випуску | Загальна дата доступності | Версія ядра | -| ------------- | ------------------------- | -------------- | -| 10.0 | 2025-06-11 | 6.12.0-55.14.1 | +| Номер випуску | Загальна дата доступності | Версія ядра | +| -------------------- | ------------------------- | ------------------------------------------------------------------------------ | +| 10.0 | 2025-06-11 | 6.12.0-55.14.1 | ## Rocky 9 @@ -27,15 +27,15 @@ Rocky 9 (кодове ім’я «Blue Onyx») має загальну підт ### Інформація про випуск -| Номер випуску | Загальна дата доступності | Версія ядра | -| ------------- | ------------------------- | --------------- | -| 9.0 | 2022-07-14 | 5.14.0-70.13.1 | -| 9.1 | 2022-11-26 | 5.14.0-162.6.1 | -| 9.2 | 2023-05-16 | 5.14.0-284.11.1 | -| 9.3 | 2023-11-20 | 5.14.0-362.8.1 | -| 9.4 | 2024-05-09 | 5.14.0-427.13.1 | -| 9.5 | 2024-11-19 | 5.14.0-503.14.1 | -| 9.6 | 2025-06-04 | 5.14.0-570.18.1 | +| Номер випуску | Загальна дата доступності | Версія ядра | +| ------------------- | ------------------------- | ------------------------------------------------------------------------------- | +| 9.0 | 2022-07-14 | 5.14.0-70.13.1 | +| 9.1 | 2022-11-26 | 5.14.0-162.6.1 | +| 9.2 | 2023-05-16 | 5.14.0-284.11.1 | +| 9.3 | 2023-11-20 | 5.14.0-362.8.1 | +| 9.4 | 2024-05-09 | 5.14.0-427.13.1 | +| 9.5 | 2024-11-19 | 5.14.0-503.14.1 | +| 9.6 | 2025-06-04 | 5.14.0-570.18.1 | ## Rocky 8 @@ -45,14 +45,14 @@ Rocky 8 (кодове ім’я «Зелений обсидіан») має за ### Інформація про випуск -| Номер випуску | Загальна дата доступності | Версія ядра | -| ------------- | ------------------------- | --------------- | -| 8.4 | 2021-06-21 | 4.18.0-305 | -| 8.5 | 2021-11-15 | 4.18.0-348 | -| 8.6 | 2022-05-16 | 4.18.0-372.9.1 | -| 8.7 | 2022-11-14 | 4.18.0-425.3.1 | -| 8.8 | 2023-05-19 | 4.18.0-477.10.1 | -| 8.9 | 2023-11-22 | 4.18.0-513.5.1 | -| 8.10 | 2024-05-31 | 4.18.0-553 | +| Номер випуску | Загальна дата доступності | Версія ядра | +| -------------------- | ------------------------- | ------------------------------------------------------------------------------- | +| 8.4 | 2021-06-21 | 4.18.0-305 | +| 8.5 | 2021-11-15 | 4.18.0-348 | +| 8.6 | 2022-05-16 | 4.18.0-372.9.1 | +| 8.7 | 2022-11-14 | 4.18.0-425.3.1 | +| 8.8 | 2023-05-19 | 4.18.0-477.10.1 | +| 8.9 | 2023-11-22 | 4.18.0-513.5.1 | +| 8.10 | 2024-05-31 | 4.18.0-553 | Якщо у вас є запитання чи коментарі, будь ласка, приєднайтеся до обговорення [тут](https://chat.rockylinux.org/rocky-linux/channels/documentation). diff --git a/docs/rocky_insights/announcements/index.uk.md b/docs/rocky_insights/announcements/index.uk.md new file mode 100644 index 0000000000..ae5688dedc --- /dev/null +++ b/docs/rocky_insights/announcements/index.uk.md @@ -0,0 +1,7 @@ +--- +title: Вступ +author: Steven Spencer +contributors: +--- + +Це нова область, призначена для роботи з оголошеннями команд та проектів. Це включатиме такі речі, як рекомендації «Скверного літа документації» (RSOD) та цілі команди з документування. Ви також знайдете тут архівовані проекти RSOD. diff --git a/docs/rocky_insights/announcements/rsod/2024/summer-of-docs-2024.uk.md b/docs/rocky_insights/announcements/rsod/2024/summer-of-docs-2024.uk.md index f444f2f1ce..323e351aa0 100644 --- a/docs/rocky_insights/announcements/rsod/2024/summer-of-docs-2024.uk.md +++ b/docs/rocky_insights/announcements/rsod/2024/summer-of-docs-2024.uk.md @@ -4,9 +4,9 @@ title: Rocky Linux Summer of Docs 2024 !!! NOTE "Проект завершено" -``` -Цей проект завершився. Слідкуйте за майбутніми програмами RSOD. -``` + ``` + Цей проект завершився. Слідкуйте за майбутніми програмами RSOD. + ``` ## Проект: Покращення документації користувача робочого столу @@ -45,3 +45,7 @@ title: Rocky Linux Summer of Docs 2024 - Перегляньте та перекладіть 4 посібники, орієнтовані на робочий стіл, і отримайте 100 доларів США (до 500 доларів США). Мета полягає в тому, щоб додати принаймні 25 нових документів і 20 перекладів до нової категорії Desktop. + + + + diff --git a/docs/rocky_insights/announcements/rsod/index.uk.md b/docs/rocky_insights/announcements/rsod/index.uk.md index b8f6eb644c..383e2b34ca 100644 --- a/docs/rocky_insights/announcements/rsod/index.uk.md +++ b/docs/rocky_insights/announcements/rsod/index.uk.md @@ -1,7 +1,7 @@ --- title: Rocky Summer of Docs author: Steven Spencer -contributors: null +contributors: --- ## Вступ diff --git a/docs/rocky_insights/blogs/active_voice.uk.md b/docs/rocky_insights/blogs/active_voice.uk.md new file mode 100644 index 0000000000..be1289fb39 --- /dev/null +++ b/docs/rocky_insights/blogs/active_voice.uk.md @@ -0,0 +1,60 @@ +--- +author: Steven Spencer +contributors: +--- + +# Active voice: Шлях до простого, зрозумілого спілкування + +## Active проти passive voice + +Сьогодні точаться великі дебати щодо використання активного стану в документації. Не повинно бути. Причина полягає в тому, що використання активного стану допомагає створювати документацію, яка є прямою та зрозумілою. Нещодавно я прочитав допис у соціальних мережах, де вони ставили під сумнів цю реальність. Суть розмови була такою: _«Пасивний стан не здається таким вже й поганим у документації, чи варто мені цим перейматися?»_ Можу вас запевнити, що це **має** значення, і вам **повинно** бути важливо. Пасивний стан часто буває двозначним і незрозумілим. Пасивний стан може призвести до плутанини в технічному письмі, особливо там, де ваша аудиторія різна та де трапляються переклади. Наша мета з документацією Rocky Linux — мати чудову документацію, і чудова документація не включає використання пасивного стану. Ознайомтеся з нашим «Посібником зі стилю»: + +> Висловлюйте те, що ви маєте на увазі, якомога коротшими словами. + +Активний стан змушує це робити. Ось приклад інструкції для пасивного стану: + +For our web platform, Apache must be installed using this command: `sudo dnf install httpd` + +Хоча тут активний стан дорівнює: + +For your web platform, install Apache with this command: `sudo dnf install httpd` + +У цьому прикладі примітно кілька речей. Фраза пасивного стану має 11 слів, тоді як активний стан має 9. Фраза в активному стані вказує користувачеві на необхідність «встановити» Apache, а не на те, що його «потрібно встановити». Однак в обох прикладах інструкція, найважливіший елемент, прихована в основній частині речення. Хоча 9 слів – це вже покращення, ми можемо зробити більше. Якщо ви пам'ятаєте правило «Говоріть те, що маєте на увазі, якомога меншою кількістю слів», то подумайте про це: + +Install Apache with: `sudo dnf install httpd` + +Знову ж таки, ми використовуємо активний стан, але тепер лише 3 слова замість 9 (або 11). Крім того, наша інструкція не могла бути більш зрозумілою. Це просто та безпосередньо. Це має наслідки для перекладу та структури документа. Переклад трьох слів потребує менше зусиль для наших перекладачів. Інструкція з 3 слів зрозуміла вашим читачам. Це перемога з усіх боків. + +Коли ви прагнете отримати чіткі інструкції, поєднання спрощення з активним станом допомагає досягти вашої мети. + +## Визначення пасивного стану + +Коли я вперше почав писати документацію для Rocky Linux ще у 2021 році, я почав із кешу документів, які я написав, ще працюючи мережевим адміністратором. Мої документи були повні фраз у пасивному стані, і на той час я не міг легко їх розпізнати. Лише наприкінці 2023 року редактор, який я почав використовувати як для створення, так і для редагування документів (редактор [на базі Neovim](https://neovim.io/) з [Vale](https://vale.sh/)), почав виділяти фрази пасивного стану. Було важко навчити око «бачити» фрази пасивного стану з першого погляду. Це все ще не завжди легко побачити. Ось на що слід звернути увагу, щоб розпізнати пасивний стан: + +- Інструкції, що починаються з або включачно з «ми» чи «наш» + + Це майже завжди призводить до фразування, яке є першим, непрямим і часто включає пасивний стан. Використовуйте «ви» або «ваш» у своїх інструкціях. + +- Звертайте увагу на такі дієслова, як: «was», «were», «are», «been», «be» тощо, за якими йде дієприкметникова фраза минулого часу, яка зазвичай (але не завжди) закінчується на «ed». Приклади: + + - "was created" + - "were backed up" + - "are manipulated" + - "been restored" + - "be installed" + - "is hidden" + + Кожен з них є прикладом пасивного стану. + +- Звертайте увагу на речення, де інструкція **не** є першим, найважливішим елементом (підметом). + +Ви можете натренувати своє око бачити це під час коректури, але якщо ви будете дотримуватися мети спрощення інструкцій, ви побачите, що позбавлення від пасивного стану відбувається без особливих зусиль. Все ще **дуже** корисно використовувати редактор, який підтримує інтеграцію з Vale. + +## Висновок + +Використання активного стану у ваших технічних текстах допомагає забезпечити прості та зрозумілі інструкції. Крім того, подальше спрощення вашого тексту покращує читабельність, зрозумілість і допомагає полегшити переклад. Пам’ятайте: «Говоріть те, що ви маєте на увазі, якомога коротшими словами». + +## Більше читання + +- Tech Whirl - [Avoiding Passive Voice](https://techwhirl.com/avoiding-passive-voice/) +- Google Developers - [Active voice vs. passive voice](https://developers.google.com/tech-writing/one/active-voice) diff --git a/docs/rocky_insights/blogs/good_docs.it.md b/docs/rocky_insights/blogs/good_docs.it.md index 2a4d3db59d..fd9972f13d 100644 --- a/docs/rocky_insights/blogs/good_docs.it.md +++ b/docs/rocky_insights/blogs/good_docs.it.md @@ -20,9 +20,9 @@ In linea di principio, non si ha idea di chi siano i fruitori della documentazio Idiomi, gergo, contrazioni e acronimi possono confondere i lettori che non li conoscono, in particolare coloro che non sono madrelingua, i nuovi dipendenti o tutti coloro che estranei al vostro settore specifico. -Gli **idiomi** sono spesso specifici di una determinata cultura e possono essere difficili da comprendere per i lettori internazionali.\ -Il **gergo** comprende termini specialistici che solo gli esperti di un settore possono riconoscere.\ -Le **contrazioni** sostituiscono le parole della lingua inglese con scorciatoie, che però non sempre esistono in tutte le lingue, rendendo difficile la traduzione.\ +Gli **idiomi** sono spesso specifici di una determinata cultura e possono essere difficili da comprendere per i lettori internazionali. +Il **gergo** comprende termini specialistici che solo gli esperti di un settore possono riconoscere. +Le **contrazioni** sostituiscono le parole della lingua inglese con scorciatoie, che però non sempre esistono in tutte le lingue, rendendo difficile la traduzione. Gli **acronimi** possono essere ambigui, soprattutto se non vengono definiti al momento del loro utilizzo. Esempio: @@ -72,7 +72,7 @@ Ad esempio: Passo 1 - Accedere alla sezione Passo 2 - Fare clic sul pulsante Passo 3 - Compilare il modulo -...\ +... Passo N - salvare le modifiche ## Screenshot quando necessario diff --git a/docs/rocky_insights/blogs/open_source.uk.md b/docs/rocky_insights/blogs/open_source.uk.md new file mode 100644 index 0000000000..6ed49a0fdb --- /dev/null +++ b/docs/rocky_insights/blogs/open_source.uk.md @@ -0,0 +1,34 @@ +--- +author: Steven Spencer +contributors: +--- + +# Open source: Чому ніколи не пишуть через дефіс + +## Open source чи open-source, дебати завершено + +Був час, коли використання дефісної форми назви «відкритий код» було прийнятним, якщо вона використовувалася як прикметник перед іменником, але не більше. Причина? Відкритий код став частиною лексикону як складний іменник. Використання його як прикметника більше не є прийнятною практикою. Лексикалізація — це процес, під час якого слово або фраза стає усталеною частиною мови, в цьому випадку нашої технічної мови. Ось як це описує Ініціатива з відкритим кодом: + +> Слово «відкритий» у терміні «відкритий код» не має значення «відкритий», як це можна знайти у словнику. Натомість, «відкритий вихідний код» також передбачає свободи користувачів, оскільки користувачам програмного забезпечення для будь-яких цілей не потрібно вести переговори з власниками прав, щоб користуватися (використовувати/вдосконалювати/поширювати/монетизувати) програмним забезпеченням. Тобто, справа не лише в прозорості. + +Ви все ще знайдете в Інтернеті джерела, які радять ставити дефіс слова «відкритий код», якщо використовувати його як прикметник перед іменником. Реальність така, що слово «відкритий код» _є_ складним іменником, тому воно ніколи не повинно бути прикметником. Ви зрозуміли. + +## Приклади інших складних іменників + +Інші приклади складних іменників, що увійшли до лексикону: + +- high school +- green card +- yellow journalism + +Це все складні іменники. Досить легко зрозуміти, чому це так. Їхнє значення як окремих слів відрізняється від того, що вони означають разом. _Yellow_ та _journalism_ означають різні речі окремо. _Yellow_ — це колір спектру, що знаходиться між зеленим і помаранчевим. _Journalism_ це діяльність або обов'язок написання текстів для журналу, новин або веб-ресурсу. **Але** _yellow journalism_ це вид журналістики, який використовує сенсаційність та перебільшення. Це іменник. + +Вони не входять до нашого технічного словника, але легко зрозуміти, як вони стосуються відкритого коду, яким він є. + +## Висновки + +Як зазначалося раніше, ви знайдете джерела, що підтверджують використання дефісу у відкритому коді (якщо застосовуються правила прикметників), тому все зводиться до прийняття рішення проектом та його дотримання. Що стосується проєкту документації Rocky Linux, ми вважаємо, що ніколи не слід використовувати термін «відкритий код» як прикметник. Ми вирішили використовувати його **лише** як складний іменник за прикладом Ініціативи з відкритим кодом. Ми вирішили використовувати його **лише** як складний іменник за прикладом Ініціативи з відкритим кодом. Мета полягає в тому, щоб все було просто та зрозуміло. + +## Інше читання + +- Ініціатива з відкритого коду - [Чи коли-небудь слово "відкритий код" писалося з дефісом?] (https://opensource.org/blog/is-open-source-ever-hyphenated) diff --git a/docs/rocky_insights/links/index.uk.md b/docs/rocky_insights/links/index.uk.md new file mode 100644 index 0000000000..42f9473ede --- /dev/null +++ b/docs/rocky_insights/links/index.uk.md @@ -0,0 +1,12 @@ +--- +title: Rocky Links +author: Steven Spencer +contributors: +--- + +- Rocky Linux [main website](https://rockylinux.org) +- Docs Team [Mattermost](https://chat.rockylinux.org/rocky-linux/channels/documentation) +- [Forums](https://forums.rockylinux.org) +- [Wiki](https://wiki.rockylinux.org) +- [Code of Conduct](https://rockylinux.org/about/coc) +- [Account Services](https://accounts.rockylinux.org)