Первоначальные настройки
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-08-13 16:58:29 +07:00
README.md Update README.md 2026-08-13 16:58:29 +07:00

Первоначальная настройка Debian Server

Базовая настройка чистой установки Debian Server перед установкой сервисов.

Все команды выполняются от root, если не указано иное.

1. Проверка версии Debian

cat /etc/debian_version
cat /etc/os-release

Проверить hostname:

hostnamectl

2. Настройка имени сервера

Задать hostname:

hostnamectl set-hostname server

Например:

hostnamectl set-hostname webserver

Проверить:

hostnamectl
hostname

Добавить имя сервера в /etc/hosts:

nano /etc/hosts

Пример:

127.0.0.1       localhost
127.0.1.1       webserver

Если у сервера статический IP:

192.168.1.10    webserver

3. Настройка часового пояса

Посмотреть доступные часовые пояса:

timedatectl list-timezones | grep Europe

Для Томска:

timedatectl set-timezone Asia/Tomsk

Проверить:

timedatectl
date

4. Настройка локали

Установить необходимые пакеты:

apt install -y locales

Запустить настройку:

dpkg-reconfigure locales

Рекомендуемый вариант:

en_US.UTF-8 UTF-8

Для русской локали можно дополнительно включить:

ru_RU.UTF-8 UTF-8

Проверить:

locale

5. Обновление системы

Обновить список пакетов:

apt update

Установить обновления:

apt full-upgrade -y

Удалить ненужные пакеты:

apt autoremove -y

Очистить кеш:

apt clean

После обновления проверить:

reboot

После перезагрузки снова подключиться по SSH.


6. Установка базовых утилит

Установить набор наиболее полезных инструментов:

apt install -y \
    sudo \
    curl \
    wget \
    git \
    nano \
    vim \
    htop \
    btop \
    ncdu \
    lsof \
    net-tools \
    iproute2 \
    dnsutils \
    traceroute \
    tcpdump \
    rsync \
    unzip \
    zip \
    tar \
    tree \
    jq \
    ca-certificates \
    gnupg \
    apt-transport-https \
    software-properties-common \
    bash-completion

Проверить:

htop

или:

btop

7. Создание отдельного пользователя

Не рекомендуется постоянно работать под root.

Создать пользователя:

adduser admin

Добавить его в группу sudo:

usermod -aG sudo admin

Проверить:

id admin

Должно присутствовать:

sudo

Проверить работу sudo:

su - admin
sudo whoami

Результат:

root

Вернуться в root:

exit

8. Настройка SSH

Основной конфигурационный файл:

/etc/ssh/sshd_config

Перед изменением сделать резервную копию:

cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

Открыть конфигурацию:

nano /etc/ssh/sshd_config

Рекомендуемые параметры:

PermitRootLogin yes

PasswordAuthentication yes
PubkeyAuthentication yes
MaxAuthTries 3
X11Forwarding no

PasswordAuthentication yes можно оставить на этапе первоначальной настройки. После проверки входа по SSH-ключу его рекомендуется отключить.

Проверить конфигурацию:

sshd -t

Если ошибок нет:

systemctl restart ssh

Проверить:

systemctl status ssh

9. Настройка SSH-ключей

На клиентском компьютере создать ключ:

ssh-keygen -t ed25519

Скопировать ключ на сервер:

ssh-copy-id admin@SERVER_IP

Например:

ssh-copy-id admin@192.168.1.10

Проверить вход:

ssh admin@SERVER_IP

10. Отключение входа по паролю

Выполнять только после успешной проверки входа по SSH-ключу.

Открыть:

nano /etc/ssh/sshd_config

Установить:

PasswordAuthentication no
KbdInteractiveAuthentication no
PermitRootLogin no

Проверить:

sshd -t

Применить:

systemctl restart ssh

Не закрывать текущую SSH-сессию.

В отдельном окне проверить новый вход:

ssh admin@SERVER_IP

Только после успешного входа закрыть старую сессию.


11. Проверка сетевых интерфейсов

Посмотреть интерфейсы:

ip addr

Краткий вариант:

ip -br addr

Маршруты:

ip route

DNS:

resolvectl status

Проверить интернет:

ping -c 4 1.1.1.1

Проверить DNS:

ping -c 4 debian.org

Проверить DNS отдельно:

dig debian.org

12. Настройка DNS

Посмотреть текущую конфигурацию:

resolvectl status

Временное изменение DNS:

resolvectl dns eth0 1.1.1.1 8.8.8.8

Проверить:

resolvectl status

Для постоянной настройки DNS способ зависит от того, чем управляется сеть: systemd-networkd, NetworkManager, ifupdown, Netplan и т. д.


13. Проверка дисков

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

lsblk

Использование файловой системы:

df -h

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

df -i

Найти занимающие место каталоги:

du -xh /var | sort -h | tail -30

Удобный интерактивный вариант:

ncdu /

14. Проверка памяти

free -h

Информация о памяти:

cat /proc/meminfo

15. Проверка CPU

lscpu

Текущая загрузка:

uptime

16. Проверка запущенных сервисов

Список активных сервисов:

systemctl --type=service --state=running

Неудачно завершившиеся сервисы:

systemctl --failed

После установки сервера рекомендуется проверить:

systemctl --failed

Результат желательно:

0 loaded units listed.

17. Проверка открытых портов

Посмотреть TCP-порты:

ss -ltnp

TCP + UDP:

ss -lntup

Например:

ss -lntup

Позволяет определить, какие программы слушают сетевые порты.


18. Firewall

Для простой настройки можно использовать nftables.

Установить:

apt install -y nftables

Включить:

systemctl enable --now nftables

Проверить:

systemctl status nftables

Текущие правила:

nft list ruleset

19. Базовая конфигурация nftables

Создать резервную копию:

cp /etc/nftables.conf /etc/nftables.conf.bak

Открыть:

nano /etc/nftables.conf

Минимальный пример:

#!/usr/sbin/nft -f

flush ruleset

table inet filter {

    chain input {
        type filter hook input priority filter;
        policy drop;

        # Loopback
        iif lo accept

        # Established connections
        ct state established,related accept

        # ICMP
        ip protocol icmp accept
        ip6 nexthdr icmpv6 accept

        # SSH
        tcp dport 22 accept
    }

    chain forward {
        type filter hook forward priority filter;
        policy drop;
    }

    chain output {
        type filter hook output priority filter;
        policy accept;
    }
}

Проверить конфигурацию:

nft -c -f /etc/nftables.conf

Если ошибок нет:

systemctl restart nftables

Проверить:

nft list ruleset

Перед включением firewall обязательно убедитесь, что SSH разрешён. Иначе можно потерять доступ к серверу.


20. Автоматическая синхронизация времени

Проверить:

timedatectl

Если используется systemd-timesyncd:

systemctl status systemd-timesyncd

Включить:

systemctl enable --now systemd-timesyncd

Проверить:

timedatectl timesync-status

21. Проверка системных логов

Основной журнал:

journalctl

Ошибки:

journalctl -p err -b

Ошибки предыдущей загрузки:

journalctl -p err -b -1

SSH:

journalctl -u ssh

Следить за логом в реальном времени:

journalctl -f

22. Настройка размера journal

Посмотреть размер:

journalctl --disk-usage

Например, ограничить журнал:

nano /etc/systemd/journald.conf

Указать:

SystemMaxUse=500M
SystemKeepFree=1G
MaxRetentionSec=30day

Перезапустить:

systemctl restart systemd-journald

Проверить:

journalctl --disk-usage

23. Проверка времени загрузки

systemd-analyze

Подробно:

systemd-analyze blame

Критический путь:

systemd-analyze critical-chain

24. Настройка swappiness

Посмотреть текущее значение:

sysctl vm.swappiness

Для серверов часто используют:

vm.swappiness=10

Создать конфигурацию:

nano /etc/sysctl.d/99-server.conf

Добавить:

vm.swappiness=10

Применить:

sysctl --system

Проверить:

sysctl vm.swappiness

Значение 10 не является обязательным. Для конкретного сервера параметр следует выбирать с учётом объёма RAM и характера нагрузки.


25. Проверка температуры и оборудования

Установить:

apt install -y lm-sensors

Определить датчики:

sensors-detect

Посмотреть температуру:

sensors

26. Установка SMART

Установить:

apt install -y smartmontools

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

lsblk

Проверить SMART:

smartctl -a /dev/sda

Для NVMe:

smartctl -a /dev/nvme0

27. Полезные команды мониторинга

CPU / RAM

htop

или:

btop

Диск

df -h

Сеть

ip -br addr
ss -lntup

Процессы

ps aux --sort=-%cpu | head

По памяти:

ps aux --sort=-%mem | head

Нагрузка

uptime

28. Проверка установленных пакетов

Поиск пакета:

dpkg -l | grep PACKAGE

Информация:

apt show PACKAGE

Например:

apt show nginx

29. Проверка свободного места

df -h

Особое внимание:

/
 /var
 /home
 /tmp

Если /var находится на отдельном разделе:

df -h /var

30. Очистка старых пакетов

Удалить ненужные зависимости:

apt autoremove -y

Очистить кеш:

apt clean

Проверить:

df -h

31. Рекомендуемая структура каталогов

Для дополнительных серверных приложений удобно использовать:

/opt/

Например:

/opt/scripts/
/opt/apps/
/opt/docker/
/opt/backups/

Создать:

mkdir -p /opt/{scripts,apps,backups}

32. Скрипты администратора

Рекомендуемый каталог:

/opt/scripts/

Создать:

mkdir -p /opt/scripts
chmod 755 /opt/scripts

Скрипты:

/opt/scripts/
├── backup.sh
├── healthcheck.sh
└── monitoring.sh

33. Настройка Git

Установить:

apt install -y git

Проверить:

git --version

Настроить имя:

git config --global user.name "Server Admin"

Настроить email:

git config --global user.email "admin@example.com"

Проверить:

git config --global --list

34. Настройка Bash

Создать пользовательский файл:

nano ~/.bashrc

Полезные настройки:

alias ll='ls -lah'
alias la='ls -A'
alias l='ls -CF'

alias ports='ss -lntup'
alias mem='free -h'
alias disk='df -h'

Применить:

source ~/.bashrc

35. Проверка SSH после всех изменений

С другого компьютера:

ssh admin@SERVER_IP

Проверить:

whoami
hostname
uptime

Проверить sudo:

sudo -i

36. Финальная проверка

Перед установкой прикладного ПО рекомендуется проверить:

Система

cat /etc/os-release

Hostname

hostnamectl

Время

timedatectl

Сеть

ip -br addr
ip route

DNS

resolvectl status

Диск

df -h

RAM

free -h

CPU

lscpu

Сервисы

systemctl --failed

Открытые порты

ss -lntup

Firewall

nft list ruleset

SSH

systemctl status ssh

37. Рекомендуемый порядок дальнейшей настройки

После выполнения базовой настройки можно переходить к установке конкретных сервисов:

Debian
  │
  ├── Обновление системы
  ├── Hostname
  ├── Timezone
  ├── Locale
  ├── Пользователь + sudo
  ├── SSH + ключи
  ├── DNS
  ├── Firewall
  ├── NTP
  ├── SMART
  ├── Мониторинг
  │
  └── Прикладное ПО
       ├── Nginx
       ├── PHP
       ├── MariaDB
       ├── Docker
       ├── Mail
       ├── Zabbix
       └── другие сервисы

38. Быстрая установка базового набора

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

apt update && apt full-upgrade -y && \
apt install -y \
    sudo \
    curl \
    wget \
    git \
    nano \
    vim \
    htop \
    btop \
    ncdu \
    lsof \
    net-tools \
    iproute2 \
    dnsutils \
    traceroute \
    tcpdump \
    rsync \
    unzip \
    zip \
    jq \
    ca-certificates \
    gnupg \
    bash-completion \
    nftables \
    lm-sensors \
    smartmontools

После установки:

systemctl enable --now nftables

Проверить систему:

systemctl --failed

Важно

Перед изменением сетевых настроек, SSH или firewall:

  1. Убедитесь, что есть доступ к консоли сервера.
  2. Не закрывайте текущую SSH-сессию.
  3. Проверяйте конфигурацию перед перезапуском сервисов.
  4. После изменения SSH проверяйте подключение из отдельной сессии.
  5. После настройки firewall проверяйте доступ к необходимым портам.

Проверка SSH:

sshd -t

Проверка nftables:

nft -c -f /etc/nftables.conf

Проверка systemd:

systemctl --failed

Проверка портов:

ss -lntup