Встановлюємо і налаштовуємо Debian 12 Bookworm

Автор | 14.06.2023

Якщо ви тільки встановили Debian 12 із мінімальною конфігурацією, система, ймовірно, має базовий набір інструментів. Для комфортної роботи її варто трохи “допилити”. У цій статті я розповім, які програми та утиліти на мою думку варто встановити, що налаштувати, і як переконатися, що в подальшому трішки полегшить життя.

Почати, мабуть варто, з перевірки – якщо встановлювали систему не ви, то можна переглянути що це за система і якої ревізії, зробити це можна так:

cat /etc/*-rel*

Крім того, якщо систему встановлюва не ви – доцільно буде змінити пароль, особливо актуально для серверів що встановлюються провайдерами. Якщо ви користуєтесь root акаунтом – це можна зробити командою passwd, якщо є інші акаунти – треба додати їх логін після команди.

paaswd
passwd user1

1. Оновіть систему

Перед тим як щось налаштовувати, переконайтеся, що всі пакети у системі оновлені. Це важливо, оскільки нові версії пакетів містять виправлення помилок, патчі безпеки та нові можливості. Також оновлення мінімізують ризик конфліктів при встановленні нових програм.

apt update && apt upgrade -y

2. Базові утиліти для зручності

Ці утиліти необхідні для виконання повсякденних задач:

wget — завантажує файли через HTTP, HTTPS і FTP, працює навіть у мінімальних середовищах без графічного інтерфейсу.
curl — дозволяє відправляти запити до серверів і отримувати відповіді (наприклад, для перевірки API).
mc (Midnight Commander) — файловий менеджер із простим інтерфейсом, що дозволяє працювати з файлами прямо в консолі.

htop — монітор системи, який показує процеси, використання CPU, пам’яті та дозволяє їх зручно керувати.

apt install wget curl mc htop -y

3. Утиліти для розробки

Розробникам часто потрібні інструменти для компіляції, версійного контролю та роботи з конфігураціями. Навіть якщо ви не збираєтесь займатись розробкою прямо зараз, ці інструменти можуть знадобитись для встановлення складніших пакетів.
build-essential — набір основних інструментів для компіляції (компілятор gcc, make, тощо).
git — дозволяє клонувати репозиторії, працювати з гілками і спільно розробляти проєкти.
pkg-config — менеджер конфігурацій, який допомагає збирати пакети, знаходячи залежності.
software-properties-common — розширює можливості роботи з репозиторіями, додаючи підтримку PPA.

apt install build-essential git pkg-config software-properties-common -y

4. Автодоповнення команд

Автодоповнення економить час і знижує ризик помилок у введенні команд. Наприклад, ви можете набрати перші пару літер команди і натиснути Tab, щоб швидко доповнити назву пакету чи файлу. bash-completion активує цю функцію для багатьох команд, як apt, git чи навіть імена файлів.

apt install bash-completion -y
source /etc/bash_completion

5. Перевірка версій важливих компонентів
Перевірити, які версії ядра, ОС та пакетів встановлені, — це важливий етап для розуміння, з чим ви працюєте. Ця інформація допоможе вам діагностувати проблеми або порівняти налаштування з документацією.

lsb_release -a — показує версію Debian.
uname -a — показує інформацію про ядро.
dpkg -l — список встановлених пакетів.

lsb_release -a
uname -a
dpkg -l

6. Логування та моніторинг
Логи важливі для аналізу помилок і діагностики проблем. Без автоматичної ротації логи можуть займати занадто багато місця.

logrotate — автоматично архівує та видаляє старі лог-файли.
ncdu — аналізатор використання диска, який допомагає знайти зайві або великі файли.

apt install logrotate ncdu -y

7. Додаткові пакети для роботи в консолі
Консольні утиліти спрощують виконання базових завдань:

screen та tmux — дозволяють запускати кілька сесій у терміналі, навіть після виходу з SSH.
nano або vim — текстові редактори, які підходять для редагування конфігурацій.
net-tools — набір мережевих утиліт (наприклад, ifconfig, netstat), який іноді зручніший, ніж базовий ip.

apt install screen nano net-tools  -y

8. Зміна часового поясу
В більшості випадків час на серверах вказано з урахуванням часового поясу, де він знаходиться. Мені зручніше, коли я можу порівняти файли, записи в лозі і інші речі по часовому поясі, де знаходжуся я. Якщо у вас немає команди, що знаходиться по світу – раджу робити так само.

dpkg-reconfigure tzdata

9. Налаштування SSH
Одним з інструментів захисту ssh є зміна порту, це допоможе уникнути атак перебором паролів з підключенням до стандартного порту. Змініть порт на нестандартний (наприклад, 2222).

nano /etc/ssh/sshd_config
Port 2222

і перезапустіть SSH:

systemctl restart sshd

10. Резервне копіювання та автоматизація
Rsync дозволяє створювати швидкі та ефективні резервні копії, передаваи файли, тощо. Cron допоможе автоматизувати завдання, наприклад, виконання бекапів кожної ночі. Можливо, я теж напишу чергову статтю про те як цими інструментами користуватись, але раджу встановити і мати їх на сервері.

apt install rsync cron -y

11. Захист системи
Базовий фаєрвол — це важливий елемент безпеки. ufw дозволяє налаштувати правила з мінімальними зусиллями.
Зверніть увагу, після встановлення фаєрвола всі підключення до серевера будуть недоступні, і для кожного нового сервіса буде необхідно створювати окреме правило, що дозволить його використовувати.
Фаєрвол – не єдиний інструмент для захисту системи, і колись створю окрему статтю про інструменти захисту сервера.

apt install ufw -y
ufw allow 2222/tcp
ufw enable

12. Зручності для роботи
Додаткові утиліти для зручності роботи в консолі:

neofetch — красиво виводить інформацію про систему.
bat — альтернатива cat із підсвіткою синтаксису.
exa — сучасний аналог ls із кольоровим відображенням та підтримкою деревовидного вигляду.

apt install neofetch bat exa -y

Це приблизний список улюблених утіліт, які в більшості випадків я встановлюю на чисту систему, можливо у вас є свої – долучайтесь до коментарів, будемо доповнювати статтю разом!

Категорія: Linux