Дебиан 11 как локальный сервер
Перейти к содержимому

Дебиан 11 как локальный сервер

  • автор:

Дебиан 11 как локальный сервер

В данной статье мы рассмотрим, как настроить сеть в ОС Debian. Будет дана инструкция с описанием процедуры настройки.

1. Для начала нужно узнать свой IP ifconfig. Это можно сделать с помощью утилиты Net-tools. Для этого нужно выполнить команду:
apt install net-tools

Настройка сети в Debian

2. Далее небходимо отредактировать конфигурационный файл /etc/network/interfaces. Это можно сделать любым редактором, например Nano. Для этого необходимо выполнить команду:
nano /etc/network/interfaces

Конфигурация по умолчанию выглядит вот так:

Настройка сети в Debian

3. Для настройки статического адреса нобходимо поменять настройки интерфейса с dhcp на static и ниже куазать адрес, маску, шлюз и серверы имен.

Настройка сети в Debian

4. Для настройки нескольких адресов, необходимо добавить еще один интерфейс с тем же именем и дописать к нему номер. Далее так же указать данные адреса и маски.

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

При установке чистой операционной системы Debian 11 необходимо сделать несколько несложных шагов по её настройке, которые являются частью базовой конфигурации виртуального сервера. Эти настройки позволят повысить уровень безопасности вашего VPS и дадут вам твёрдую основу для дальнейших с ним манипуляций.

Далее мы изучим, как авторизоваться на сервере пользователем root, создать новую учётную запись с полномочиями суперпользователя, а также произвести начальные настройки брандмауэра.

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

Для первого подключения к виртуальному серверу вам нужно знать его IP-адрес. Также вы должны знать пароль для учётной записи root. Эти данные вы можете увидеть в личном кабинете вашего VPS.

Личный кабинет RUVDS

Непосредственно подключение к VPS осуществляется из командной строки следующей инструкцией:

ssh root@194.87.214.253

В данном примере:

  • root – имя учётной записи, под именем которой производится подключение;
  • 194.87.214.253 – IP-адрес сервера.

При первом подключении система может выдать вам предупреждение о подлинности хоста. Чтобы принять данное предупреждение, наберите yes .

Предупреждение о подлинности хоста

Пользователь root – это административная учётная запись в среде Linux, имеющая очень широкие полномочия. Из-за того, что данный пользователь владеет такими повышенными привилегиями, крайне нежелательно использовать его на регулярной основе. Связано это с тем, учётная запись root может быть применена для внесения в вашу систему деструктивных изменений вплоть до потери работоспособности.

На следующем этапе первоначальной настройки сервера мы создадим альтернативного пользователя с полномочиями меньшего уровня. Такую учётную запись можно будет более безопасно использовать в повседневной работе.

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

После того, как вы зарегистрировались в системе с помощью пользователя root , необходимо создать новую учётную запись, которую вы будете использовать далее.

Для создания нового пользователя наберите следующую команду:

# adduser new-user

Здесь new-user – имя новой учётной записи, в качестве которого вы можете выбрать какое-либо своё. При создании нового пользователя система попросит сначала дважды ввести пароля для этой учётной записи. После этого нужно будет ответить на несколько вопросов, которые будет задавать система. Что-либо вводить при этом необязательно, можно просто нажимать Enter .

Предоставление привилегий администратора

Теперь, когда мы создали новую учётную запись, необходимо наделить её администраторскими полномочиями, чтобы выполнять задачи, требующие их наличия. Выполнение инструкции от имени суперпользователя производится при помощи команды sudo . Для того, чтобы наш новый пользователь мог запускать команду sudo , его необходимо добавить в соответствующую группу.

# usermod -aG sudo new-user

Теперь вы сможете выполнять команды от имени учётной записи root , зарегистрировавшись при этом в системе под вашим новым пользователем. Но сначала вы должны проинсталлировать sudo на свой VPS обновив списки пакетов:

# apt update # apt install sudo

На практике применение данной команды выглядит как добавление слова sudo перед исполняемой инструкцией:

$ sudo your_executable_command

Базовая настройка брандмауэра

В операционных системах семейства Debian используется межсетевой экран, разрешающий определённые подключения к серверу. Такой брандмауэр называется Uncomplicated Firewall (UFW). С его помощью вы сможете произвести настройки политики безопасности, а также, управлять её исключениями.

Установка брандмауэра производится следующей командой:

$ sudo apt install ufw

После завершения инсталляции у вас появится возможность управлять наборами правил межсетевого экрана для установленных приложений. Для большинства распространённых программ профили по умолчанию поставляются в комплекте с UFW. Дополнительные профили можно регистрировать в брандмауэре в процессе дальнейшей настройки.

Список всех доступных профилей приложений доступен по команде:

$ sudo ufw app list

Чтобы разрешить подключения к вашему серверу по SSH, запустите на выполнение следующую команду:

$ sudo ufw allow OpenSSH

Активация межсетевого экрана производится при помощи команды:

$ sudo ufw enable

Чтобы увидеть текущее состояние брандмауэра, наберите:

$ sudo ufw status

Статус сервиса UFW

Вывод данной команды говорит нам о том, что межсетевой экран блокирует все соединения с сервером кроме SSH.

Настроить брандмауэр можно таким образом, чтобы это соответствовало вашим требованиям. Например, вы можете разрешить доступ к VPS только с хостов со строго определёнными IP-адресами:

$ sudo ufw allow from XXX.XXX.XXX.XXX

Таким же образом можно ограничить доступ к серверу какой-либо определённой подсетью:

$ sudo ufw allow from XXX.XXX.XXX.0/24

Плюс ко всему у вас есть возможность разрешить подключения только к строго определённому порту. Например, использование следующей команды открывает доступ к серверу только для подключений по SSH, где используется порт 22.

$ sudo ufw allow from XXX.XXX.XXX.XXX to any port 22

Авторизация с использованием SSH-ключей

Чтобы повысить уровень безопасности вашего виртуального сервера, можно настроить на нём авторизацию при помощи SSH-ключей.

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

ssh-keygen

Данная команда как раз и генерирует SSH-ключ. При генерации ключа вы можете изменить или оставить по умолчанию имя файла ключа и его расположение. Также необходимо будет дважды набрать парольную фразу, если она нужна. В случае, если вы хотите подключаться к серверу без использования каких-либо паролей, вместо ввода парольной фразы просто нажимайте Enter .

Вывод команды ssh-keygen - Первоначальная настройка сервера с Debian 11

В результате на вашей рабочей станции появятся два файла: публичный ключ сервера id_rsa.pub и ваш приватный ключ id_rsa .

После этого подключитесь к вашему VPS и перейдите в домашнюю директорию:

Там создайте каталог .ssh :

$ mkdir .ssh

Созданному каталогу назначьте необходимые права:

$ chmod 700 .ssh/

Далее, перейдите в директорию .ssh и создайте в ней файл authorized_keys . Данному файлу назначьте права 600 :

$ cd .ssh $ touch authorized_keys $ chmod 600 authorized_keys

После чего откройте его для редактирования:

$ nano authorized_keys

В этот файл необходимо скопировать содержимое файла id_rsa.pub с вашей локальной рабочей станции. При этом не следует копировать пробелы, расположенные после последнего символа. После чего закройте файл authorized_keys с сохранением внесённых изменений.

Результатом произведённых настроек должна стать возможность подключаться к вашему VPS без использования пароля учётной записи.

Чтобы совсем закрыть доступ к серверу для авторизации с использованием паролей, отредактируйте файл /etc/ssh/sshd_config:

$ cd /etc/ssh/ $ sudo nano sshd_config

В этом файле следует раскомментировать строку PasswordAuthentication и установить её значение в no . После чего перезапустите службу SSH:

$ sudo service ssh restart

Настройка сервера на Debian Ubuntu

Эта статья описывает установку «с нуля» сервера на linux, предназначенного, к примеру, для размещения сайтов.

Статья может пригодиться в качестве:

  • Шпаргалки/контрольного списка (чтобы не забыть что-либо);
  • Инструкции для начинающих;
  • Источника чужого опыта продвинутому администратору. Рассмотрим полезные штатные утилиты, о которых возможно вы не знали.
sudo -i

В этом режиме надо быть предельно осторожным — например, если перепутать /dev/sda с /dev/sdb, то операция будет произведена с другим жёстким диском.

Команды в статье начинаются с символа «#» ­— его вводить не надо, это приветствие терминала, нужно чтобы в статье отличить вводимую команду от вывода.

[править] Работа в терминале

Если вы раньше не работали в консоли Linux, запомните несколько правил:

  • Прочтите статьи для начинающих, например http://help.ubuntu.ru/manual/терминал;
  • Регистр букв имеет значение. Чаще всего, команды пишутся с маленькой буквы. Если написать команду с большой буквы, система сообщит вам, что команда не найдена;
  • Удобно пользоваться автодополнением, чтобы не ошибаться при наборе команды. Когда наберёте первые символы, просто нажмите TAB один-два раза;

[править] Выбор сервера

Если у вас ещё нет своего сервера — не беда, можно взять его в аренду, например (в алфавитном порядке):

  • https://digitalocean.com
  • https://hetzner.de/en/
  • https://linode.com
  • https://selectel.ru

[править] Выбор операционной системы

Debian 7 или Ubuntu 14.04 — на ваш выбор, для новичка разницы нет. Если Ubuntu, то только LTS (14.04, например). На виртуальный сервер с менее 4 ГБ оперативной памяти устанавливаем 32-разрядную систему, на «железный» сервер — 64-разрядную. Устанавливаем в минимальном виде, без графики и дополнительных пакетов.

[править] editor

Если вам нравится стиль встроенных редакторов Far manager / Norton commander, то вам, наверное, понравится редактор mcedit. Установите Midnigth commander:

apt-get install mc -y

В статье везде для редактирования используется команда editor — она является ссылкой на ваш любимый консольный редактор. Поменять его можно командой:

update-alternatives --config editor

[править] sudo

Если у нас Debian, то лучше сразу установить sudo:

su -c "apt-get update" su -c "apt-get -y install sudo"

и добавить себя в группу sudo:

su -c "addgroup ваш_логин sudo"

(если вы забыли, как назвали своего пользователя при установке системы, посмотрите вывод команды getent passwd, он скорее всего последний в списке).

[править] Базовые настройки

В файле /etc/default/rcS прописываем «FSCKFIX=yes», чтобы в случае аварийной перезагрузки ошибки были по-возможности исправлены автоматически.

editor /etc/default/rcS

[править] Пользователи

Для каждого человека, имеющего доступ к серверу, надо делать отдельные логин и пароль. Тогда:

  • у пользователя будет свой пароль SSH ключ для входа (или несколько SSH ключей, если надо входить с разных устройств),
  • у пользователя будет своя домашняя директория, к примеру удобно понять, кого спросить если заканчивается место на диске,
  • у пользователя будет свои настройки терминала и редакторов,
  • у пользователя будет своя история команд, чтобы вытаскивать из неё,
  • командами w или who можно посмотреть, кто сейчас залогинен на сервере,
  • можно видеть в логах, кто когда входил на сервер,
  • в списке процессов видно, кто запускал процесс.

Поменяем настройки по-умолчанию, чтобы у вновь созданных пользователей домашние директории были доступны для чтения только самим этим пользователям:

editor /etc/adduser.conf

заменяем «DIR_MODE=0755» на «DIR_MODE=0750».

Добавлять пользователей в систему можно командой

adduser новый_пользователь

Если пользователь будет подключаться только удалённо, создаём его без пароля (см. раздел #SSH):

adduser --disabled-password новый_пользователь

Если нужно предоставить пользователю права суперпользователя (через sudo), добавляем его в группу sudo:

addgroup новый_пользователь sudo

[править] Генерация пароля

Не надо пытаться генерировать пароли самому, для этого есть множество отличных способов:

head /dev/urandom | tr -dc A-Za-z0-9 | head -c 30 ; echo
pwgen 30 1
apg -m 30 -s

[править] Локальный сервер

Пара советов ниже важны, если сервер у вас не удалённый, а находится в локальной сети.

[править] Именование сетевых интерфейсов

Если у вас сервер, находящийся на границе локальной сети и интернет, и у него несколько сетевых интерфейсов, то интерфейс, смотрящий в локальную сеть, принято именовать eth0, соответственно вторая сетевая карта, подключенная к внешней сети, будет называться eth1. Поменять названия интерфейсов можно, отредактировав файл:

editor /etc/udev/rules.d/70-persistent-net.rules

Настройки применятся после перезагрузки.

[править] arpwatch

Полезен, чтобы узнавать о новых устройствах в локальной сети (и конфликтах адресов, если они у вас бывают). В /etc/default/arpwatch правим ARGS=»-N -p -i eth0″, чтобы он слушал только на интерфейсе локальной сети, а не пытался отслеживать сеть провайдера.

Письма будет присылать на root, так что обязательно читаем ниже про почту.

Если точно не надо отправлять почту от arpwatch, добавьте «-Q» к опциям.

[править] IP-адресация

Эти темы не раскрыты:

[править] Репозитории

Репозитории — это специальные серверы-хранилища, с которых скачиваются deb-пакеты с программами для установки. Скорее всего, у вас уже указаны все необходимые репозитории, но можете проверить:

[править] Ubuntu

Пример файла /etc/apt/sources.list для Ubuntu 14.04:

deb http://ru.archive.ubuntu.com/ubuntu/ trusty main restricted universe multiverse deb-src http://ru.archive.ubuntu.com/ubuntu/ trusty main restricted universe multiverse deb http://ru.archive.ubuntu.com/ubuntu/ trusty-updates main restricted universe multiverse deb-src http://ru.archive.ubuntu.com/ubuntu/ trusty-updates main restricted universe multiverse deb http://ru.archive.ubuntu.com/ubuntu/ trusty-backports main restricted universe multiverse deb-src http://ru.archive.ubuntu.com/ubuntu/ trusty-backports main restricted universe multiverse deb http://security.ubuntu.com/ubuntu trusty-security main restricted universe multiverse deb-src http://security.ubuntu.com/ubuntu trusty-security main restricted universe multiverse #deb http://archive.canonical.com/ubuntu trusty partner #deb-src http://archive.canonical.com/ubuntu trusty partner #deb http://extras.ubuntu.com/ubuntu trusty main #deb-src http://extras.ubuntu.com/ubuntu trusty main

[править] Debian

Пример файла /etc/apt/sources.list для Debian 7:

deb http://ftp.ru.debian.org/debian/ wheezy main contrib non-free deb-src http://ftp.ru.debian.org/debian/ wheezy main contrib non-free deb http://ftp.ru.debian.org/debian/ wheezy-updates main contrib non-free deb-src http://ftp.ru.debian.org/debian/ wheezy-updates main contrib non-free deb http://security.debian.org/ wheezy/updates main contrib non-free deb-src http://security.debian.org/ wheezy/updates main contrib non-free

[править] Точное время

Время на сервере должно быть точным.

Просто установите службу ntp:

apt-get -y install ntp

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

ntpq -pn remote refid st t when poll reach delay offset jitter ============================================================================== +192.168.155.1 85.21.78.8 3 u 13 256 377 0.126 3.582 0.403 *10.100.12.14 89.109.251.22 2 u 20 256 377 0.408 -1.304 0.202 +10.100.12.15 89.109.251.23 2 u 222 256 377 0.543 -1.068 0.248

Если у одного из ip-адресов слева стоит символ «*», значит всё в порядке.

[править] Часовой пояс

dpkg-reconfigure tzdata

Выбираем то, что вам удобнее, например, Азия → Екатеринбург.

[править] Имя сервера

Имя сервера должно быть «полным» ­— например, srv01.example.com. Команда «host srv01.example.com», выполненная на другом компьютере, должна выдавать ip-адрес сервера, а команда «host ip-адрес_сервера» должна выдавать его полное имя.

Это имя прописываем в /etc/hosts напротив ip-адреса сервера, после полного имени через пробел пишем сокращённое имя, например:

192.168.0.1 srv01.example.com srv01

Применить полное имя на ходу можно командой hostname, например

hostname srv01.example.com

В файл /etc/hostname прописываем сокращённое имя (см. man 1 hostname).

[править] У меня нет своего домена

Если у вас не куплено своё уникальное внешнее имя (например, example.com), то можно использовать выдуманное имя, но тогда сервер будет доступен по имени только в локальной сети. Для вымышленного имени не рекомендуется использовать .local, т.к. этот домен зарезервирован для служебных целей. Выберите другое имя, например .zone. Если же вам нужен доступ к серверу по имени из интернета, или купите свой домен, или возьмите у знакомых поддомен бесплатно.

[править] У меня есть свой домен

Добавьте к вашему домену произвольное имя, например srv01, и назовите ваш сервер полученным «srv01.example.com». Не называйте сервер «example.com», чтобы не путать его с вашим сайтом (которых потом может стать несколько). К тому же, сайт через какое-то время вы можете перенести на другой сервер (например, srv02.example.com), и настройки для srv01 не придётся менять.

[править] Локализация

[править] Ubuntu

В Ubuntu предварительно установить пакет language-pack-ru (он потянет за собой лишний firefox-locale-ru, ну и ладно):

apt-get -y install language-pack-ru

[править] Debian

dpkg-reconfigure locales

ставим пробелом галочки на en_US.utf8 и ru_RU.utf8, жмём «Ok», в следующем окне по-умолчанию рекомендую выбрать en_US.utf8.

Также в Debian можно добавить строку в файл:

echo ': $; export LANG' >> /etc/profile

[править] Почтовая система

Почтовая система нужна на сервере, чтобы получать различные отчёты о его работе.

Проверяем, что команда «hostname -f» выдаёт полное имя сервера.

apt-get -y install postfix

В Debian будет предложено удалить Exim, это нормально. В начальной конфигурации выбираем «Internet Site», дальше со всем соглашаемся.

В конфигурации Postfix оставляем 25-й порт открытым только для локальных сервисов, иначе нас быстро завалит спамом:

editor /etc/postfix/main.cf
inet_interfaces = loopback-only

Перезапускаем почтовый сервер:

service postfix restart

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

editor /etc/aliases

правим строку, начинающуюся с «root:»

root: root, yourmail@test.ru
newaliases

Для теста, отправим письмо на свой внешний почтовый ящик:

mail -s "Test" yourmail@test.ru

Далее вводим текст письма, затем [Enter], точка и ещё раз [Enter], например:

Test .

Если будет запрос «Cc:» — просто нажимаем [Enter]. Если письмо не пришло, следует изучить содержимое файла /var/log/mail.log

[править] SSH

Очень важно правильно настроить на сервере удалённый доступ, чтобы боты не подобрали пароль.

apt-get -y install openssh-server editor /etc/ssh/sshd_config

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

Номер порта для SSH-сервера выбираем случайный от 1024 до 65535:

python3 -c 'import random; print(random.randint(1024, 65535))'

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

Port 42837 AllowUsers ваш_логин PermitRootLogin no
service ssh reload

Теперь проверьте из отдельного терминала (этот не закрывайте!), что SSH-доступ работает.

Крайне рекомендую пользоваться SSH ключами и отключить вход на сервер по паролю указанием PasswordAuthentication no , подробнее про SSH здесь: https://vazhnov.dreamwidth.org/10833.html.

[править] MySQL

Если нужен SQL сервер, то для примера установим MySQL. Надо заранее подготовить хороший пароль, сохраним его в вашу базу паролей (я генерирую и храню пароли в KeePassX) и пропишем в /root/.my.cnf:

[client] password = "c8M2oWUJSrYrc2kiqQ"
apt-get -y install mysql-server

При установке будет просьба ввести новый пароль для администрирования MySQL — вводите заранее подготовленный.

Немного обезопасим БД:

mysql_secure_installation
  • Change the root password? [Y/n] n
  • Remove anonymous users? [Y/n] y
  • Disallow root login remotely? [Y/n] y
  • Remove test database and access to it? [Y/n] y
  • Reload privilege tables now? [Y/n] y

[править] Тюнинг

Скорее всего, ничего настраивать не нужно. Если же сильно нужно поковырять MySQL на предмет тонкой настройки, стоит попробовать https://github.com/rackerhacker/MySQLTuner-perl

[править] Web-сервер

Принимать подключения и распределять их будем с помощью быстрого Nginx, а «за ним» можно будет ставить каждому сайту своё, здесь рассмотрим Apache.

[править] Nginx

apt-get -y install nginx

Защитим конфигурацию и файлы журналов от просмотра любыми пользователями:

chmod 750 /etc/nginx /var/log/nginx chgrp adm /var/log/nginx
rm /etc/nginx/sites-enabled/default

[править] Apache

Разделять пользователей сайтов будем с помощью mpm-itk. Перед установкой остановим Nginx, иначе установка Apache завершиться ошибкой из-за занятого http-порта 80.

service nginx stop apt-get -y install apache2 apache2-mpm-itk service apache2 stop

Отключаем опасный в неумелых руках модуль:

a2dismod autoindex

Эти темы не раскрыты:

Редактируем файлы /mods-available/status.conf /mods-available/info.conf

Так как у нас соединения на 80 порту принимает Nginx, то Apache не может занимать 80 порт. Пропишем ему, например, порт 8080, да ещё и чтобы не был доступен удалённо:

editor /etc/apache2/ports.conf
NameVirtualHost 127.0.0.1:8080 Listen 127.0.0.1:8080
editor /etc/apache2/sites-enabled/000-default

приводим строку к следующему виду:

Устанавливаем libapache2-mod-rpaf, он нужен чтобы в журналах Apache были ip-адреса клиентов, а не проксирующего Nginx:

apt-get -y install libapache2-mod-rpaf
service apache2 start

Убедимся, что Apache принимает соединения только на локальном 8080:

netstat -tupln | grep apache tcp 0 0 127.0.0.1:8080 0.0.0.0:* LISTEN 12941/apache2

[править] phpMyAdmin

Перед добавлением сайтов, установим phpMyAdmin, чтобы удобно было администрировать базу данных. Вам понадобится пароль, который мы задавали при установке MySQL!

apt-get -y install phpmyadmin

От автоматического конфигурирования Apache/Lighttpd отказываемся. Соглашаемся с «Configure database for phpmyadmin with dbconfig-common». На первый запрос пароля вводим пароль для администрирования MySQL, на второй запрос ничего не вводим — пароль для БД phpmyadmin будет сгенерирован автоматически, он нам не нужен.

editor /etc/nginx/sites-available/phpmyadmin.example.com.conf
server < server_name phpmyadmin.example.com www.phpmyadmin.example.com; root /usr/share/phpmyadmin; auth_basic "Restricted"; auth_basic_user_file /home/example/www/htpasswd; location / < proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header Host $host; proxy_pass http://127.0.0.1:8080; >location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ < expires max; log_not_found off; >>
ln -s /etc/nginx/sites-available/phpmyadmin.example.com.conf /etc/nginx/sites-enabled/

Файл конфигурации для Apache /etc/apache2/sites-available/phpmyadmin.example.com сделан на основе файла /etc/apache2/conf.d/phpmyadmin.conf из комплекта поставки в Debian:

 DocumentRoot /usr/share/phpmyadmin ServerName phpmyadmin.example.com ServerAlias www.phpmyadmin.example.com Options FollowSymLinks DirectoryIndex index.php AddType application/x-httpd-php .php php_flag magic_quotes_gpc Off php_flag track_vars On php_flag register_globals Off php_admin_flag allow_url_fopen Off php_value include_path . php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/  # Disallow web access to directories that don't need it Order Deny,Allow Deny from All Order Deny,Allow Deny from All  
a2ensite phpmyadmin.example.com apachectl -t service apache2 reload

С помощью phpMyAdmin добавим SQL-пользователя и пустую базу данных для будущего сайта. Заходим в браузере по адресу: http://example.com/phpmyadmin/ Вводим доступы к базе данных:

  • Пользователь: root
  • Пароль: c8M2oWUJSrYrc2kiqQ
  • Привилегии → Добавить нового пользователя
  • Имя пользователя: example
  • Хост: Локальный
  • Пароль: придумываем новый хороший пароль, или генерируем, например, такой: cehckfv#vOFaSQdeQI
  • Внизу обязательно ставим галочку «Создать базу данных с именем пользователя в названии и предоставить на нее полные привилегии».
  • Нажимаем на ОК в самом низу.

[править] Добавляем сайт

Для примера, запустим сайт на WordPress. Добавляем в систему отдельного пользователя example, от которого будут запускаться процессы этого сайта:

adduser --disabled-password --gecos "example.com" example

Создаём директорию для будущего сайта:

chgrp www-data /home/example mkdir -p /home/example/www/example.com

Создаём конфигурацию нашего сайта в Nginx:

editor /etc/nginx/sites-available/example.com.conf

Конфигурация будет примерно такой (позаимствовано отсюда http://wiki.nginx.org/Wordpress + http://kbeezie.com/apache-with-nginx/ + дополнил для /wp-admin):

server < server_name example.com www.example.com; root /home/example/www/example.com; limit_req_zone $binary_remote_addr zone=dosexample:2m rate=3r/s; location / < limit_req zone=dosexample burst=10 nodelay; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header Host $host; proxy_pass http://127.0.0.1:8080; >location = /favicon.ico < log_not_found off; access_log off; >location = /robots.txt < allow all; log_not_found off; access_log off; >location = /wp-admin < auth_basic "Restricted"; auth_basic_user_file /home/example/www/htpasswd; >location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ < expires max; log_not_found off; >>

Здесь limit_req не даёт обращаться к php-скриптам с одного ip-адреса чаще 3 раз в секунду, при этом не затрагивая выдачу статики. Таким образом, мы защищаем наш сайт от простейших DoS-атак.

Панель администрирования дополнительно защищена http-авторизацией, параметры которой берутся из файла /home/example/www/htpasswd. Заведём в нём пользователя:

htpasswd -c /home/example/www/htpasswd examplehttpuser

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

ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/

Проверяем, что в конфигурации Nginx нет ошибок:

nginx -t
service nginx reload

Дальше часть команд мы будем делать от нового пользователя example, чтобы по неосторожности не испортить что-нибудь в системе (у этого пользователя просто нет прав на такое). Становимся им:

su - example

Приглашение в терминале должно было смениться с «#» на «$» — это значит, что теперь мы не обладаем правами суперпользователя. Установим свежий WordPress (кто-нибудь знает ссылку на всегда свежий WordPress?):

mkdir -p /home/example/www/example.com cd /home/example/www/example.com wget "http://ru.wordpress.org/wordpress-3.7.1-ru_RU.tar.gz" tar -xzpf "wordpress-3.7.1-ru_RU.tar.gz"

В результате у нас получится директория ~/www/example.com/wordpress, а нам надо ~/www/example.com. Переместим файлы:

mv ~/www/example.com/wordpress/* ~/www/example.com/

Выходим из-под пользователя example:

exit

Создаём место для журналов:

mkdir -p /var/log/apache2/example.com

Создаём конфигурацию Apache.

editor /etc/apache2/sites-available/example.com

с подобным содержимым:

 DocumentRoot "/home/example/www/example.com" ServerName example.com ServerAlias www.example.com CustomLog /var/log/apache2/example.com/access.log common ErrorLog /var/log/apache2/example.com/error.log AssignUserId example example  
a2ensite example.com

Проверяем, что в конфигурации Apache нет ошибок:

apachectl -t
service apache2 reload

Заходим в своём браузере на свой сайт: http://example.com/

Выбираем в полученном окне:

  • Создать файл настроек
  • Имя базы данных: example
  • Имя пользователя: example
  • Пароль: cehckfv#vOFaSQdeQI
  • Сервер базы данных: localhost
  • Префикс таблиц: wp_

[править] Добавляем второй сайт

Добавляем системного пользователя, SQL базу данных и пользователя, настраиваем Nginx, Apache.

[править] Резервное копирование

Эти темы не раскрыты:

Информацию с сервера необходимо периодически копировать куда-либо, чтобы в случае потери сервера (отказ оборудования, ошибка в работе администратора) было из чего восстанавливать его настройки и сохранённые на сервере данные. Если есть отдельный сервер, на нём можно запустить BackupPC. (rdiff-backup? rsnapshot?)

К базовым бэкапам (файлы, БД) хорошо бы добавить резервное копирование информации о разделах и загрузочную область (может, использовать для этого vbackup?). Сделать это можно так:

sfdisk -d

[править] Резервное копирование MySQL

Просто устанавливаем AutoMySQLBackup:

apt-get -y install automysqlbackup

Можно ничего не настраивать, если вы хотите хранить дампы базы MySQL на том же сервере (что небезопасно) в каталоге /var/lib/automysqlbackup/.

Структура папок, создаваемая AutoMySQLBackup:

ls -l /var/lib/automysqlbackup drwxr-xr-x 4 root root 40 00:20 daily drwxr-xr-x 2 root root 40 00:20 monthly drwxr-xr-x 4 root root 40 00:20 weekly

Таким образом, ротация резервных копий происходит в рамках каталогов с ежедневными, еженедельными и ежемесячными архивами. Для более точной настройки см. файл конфигурации /etc/automysqlbackup/myserver.conf

[править] Резервное копирование PostgreSQL

Есть скрипт autopostgresqlbackup, установим его:

apt-get -y install autopostgresqlbackup

Он будет автоматически каждый день делать резервную копию всех баз данных PostgreSQL в /var/lib/autopostgresqlbackup.

[править] BackupPC

Если есть другой сервер, на котором есть много свободного места, можно установить на него BackupPC и настроить.

[править] Обновления

Установите пакет apticron, чтобы получать на почту информацию о необходимых обновлениях. Чтобы автоматически устанавливать обновления, связанные с безопасностью, установите unattended-upgrades:

apt-get -y install unattended-upgrades

Выберем режим обновления:

dpkg-reconfigure unattended-upgrades
apt-get update apt-get dist-upgrade

В пределах выбранного вам релиза (например, Debian 7 или Ubuntu 12.04) при обновлении ничего не должно ломаться, можете смело обновляться. А вот при переходе между релизами могут возникать проблемы.

[править] Защита

От подбора паролей по SSH можно защититься, просто установив fail2ban. Его же можно настроить и на отражение некоторых других атак.

apt-get -y install fail2ban

[править] Межсетевой экран

Чтобы правила межсетевого экрана автоматически загружались при загрузке системы, установим специальный пакет:

apt-get -y install iptables-persistent

Прописываем правила, не забывая менять 22222 на ваш SSH-порт:

editor /etc/iptables/rules.v4
*filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :fail2ban-ssh - [0:0] # Allows all loopback (lo0) traffic and drop all traffic to 127/8 that doesn't use lo0 -A INPUT -i lo -j ACCEPT -A INPUT ! -i lo -d 127.0.0.0/8 -j REJECT # Allow PING -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT # Allow HTTP -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT # Fail2ban -A INPUT -p tcp -m multiport --dports 22222 -j fail2ban-ssh -A fail2ban-ssh -j RETURN # Allow SSH -A INPUT -p tcp -m tcp --dport 22222 -j ACCEPT # Accepts all established inbound connections -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # Reject all other -A INPUT -j REJECT --reject-with icmp-port-unreachable COMMIT
editor /etc/iptables/rules.v6
*filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] # Accepts all established inbound connections -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # HTTP -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT # SSH -A INPUT -p tcp -m tcp --dport 22222 -j ACCEPT # http://www.sixxs.net/wiki/IPv6_Firewalling # Allow multicast -A INPUT -d ff00::/8 -j ACCEPT -A OUTPUT -d ff00::/8 -j ACCEPT # Allow ICMP -A INPUT -p icmpv6 -j ACCEPT -A OUTPUT -p icmpv6 -j ACCEPT -A INPUT -j REJECT --reject-with icmp6-adm-prohibited COMMIT

В первый раз применяем правила командой iptables-apply — она после применения спросит, стоит ли их оставить. Если вы сможете ответить «y» — значит, удалённый доступ у вас остался. Если же ответа некоторое время не будет, правила будут откачены.

#iptables-apply /etc/iptables/rules.v4 #ip6tables-apply /etc/iptables/rules.v6

[править] Защита от ошибочного выключения

Когда много сидишь в консоли, есть риск вместо своего компьютера выключить удалённый сервер. Чтобы избежать этого, просто установим на сервер molly-guard. С ним, при попытке выключить/перезагрузить сервер по SSH, будет выдан запрос имени сервера.

[править] Ведение истории изменений конфигурации

Просто устанавливаем etckeeper, в файле /etc/etckeeper/etckeeper.conf комментируем все «VCS=», кроме «VCS=»git»», потом:

cd /etc etckeeper init etckeeper commit "Initial commit"

Теперь когда что-нибудь меняем в директории /etc, то вносим изменения в систему контроля версий:

cd /etc etckeeper commit "Changing: blabla"

[править] Ротация журналов

Эти темы не раскрыты:

[править] Наблюдение

[править] logwatch

Чтобы получать на почту ежедневные отчёты о работе системы, установите пакет logwatch. Он объединяет информацию полученную от других служб — к примеру, если в системе установлена и запущена служба smartd (см. ниже), то в ежедневном отчёте будет информация об изменении состояния жёстких дисков (например, температуры).

[править] logcheck

Эти темы не раскрыты: Отличие от logwatch

[править] atop/sysstat

Также можно установить пакеты atop и sysstat, чтобы можно было посмотреть, к примеру, какой процесс вызвал нагрузку 2 часа назад, или сколько вчера было свободной памяти на сервере. В файле /etc/default/atop можно увеличить частоту записи информации о текущих процессах, например, до 1 раза в минуту: INTERVAL=60

Смотрим историю так (перемотка вперёд-назад клавишами t и T, выход по q): atop -r /var/log/atop/atop_20131118

[править] smokeping

Если у вас есть постоянно включенный другой компьютер, можно установить на него SmokePing. Он строит симпатичные графики, показывающие основные параметры сетевых соединений. Удобен для быстрого определения проблем с сетью. Желательно добавить в наблюдение цепочку узлов, идущих в Интернет, чтобы было видно, на каком из них возникают проблемы: ближайший маршрутизатор (выясняем с помощью traceroute), сайт провайдера, какой-нибудь сервер из точки обмена трафиком (ntp.ix.ru), rr0.mtu.ru и 4.2.2.2.

[править] Monit

Для мониторинга одного сервера, возможно, будет достаточно Monit — он может перезапустить зависший процесс, отправить письмо при высокой нагрузке и т.п.

Настройка Monit: TODO.

[править] nagios/zabbix

Для более серъёзного наблюдения за параметрами системы и для оперативного уведомления о проблемах, необходимо разбираться с такими системами, как например Nagios или Zabbix, здесь они рассмотрены не будут.

[править] Оборудование

[править] Жёсткие диски

Для получения уведомлений о состоянии жёстких дисков, просто установите smartmontools и разрешите запуск его службы в файле /etc/default/smartmontools, убрав символ комментария «#» из строки:

start_smartd=yes
service smartd start

В ежедневных отчётах не стоит обращать внимание на небольшие колебания «Raw_Read_Error_Rate».

[править] Система охлаждения

Чтобы посмотреть температуру системных компонентов и скорости вращения вентиляторов, установите lm-sensors:

apt-get install lm-sensors

После чего запускаем процесс поиска (иногда и без него всё работает — попробуйте перейти сразу к следующему пункту):

sensors-detect
sensors atk0110-acpi-0 Adapter: ACPI interface Vcore Voltage: +1.10 V (min = +0.85 V, max = +1.60 V) +3.3 Voltage: +3.26 V (min = +2.97 V, max = +3.63 V) +5 Voltage: +4.92 V (min = +4.50 V, max = +5.50 V) +12 Voltage: +12.10 V (min = +10.20 V, max = +13.80 V) CPU FAN Speed: 1486 RPM (min = 600 RPM) CHASSIS FAN Speed: 1115 RPM (min = 600 RPM) POWER FAN Speed: 0 RPM (min = 600 RPM) CPU Temperature: +39.0°C (high = +60.0°C, crit = +95.0°C) MB Temperature: +42.0°C (high = +45.0°C, crit = +95.0°C) k10temp-pci-00c3 Adapter: PCI adapter temp1: +29.0°C (high = +70.0°C) (crit = +83.5°C, hyst = +81.5°C)

[править] Что дальше?

Теперь, когда сервер настроен, остаётся:

  • Читать почту — отчёты от LogWatch, apticron и, в худшем случае, от smartd;
  • своевременно обновлять пакеты сервере;
  • при изменениях настроек, вносить их в etckeeper;

[править] Ссылки

Использованы материалы статей, также распространяющихся по лицензии CC-BY-SA:

  • Ubuntu 12.04 OpenLDAP Samba3
  • Использование Linux в сервисном центре (рус.)

[править] См. также

[править] Лицензия на текст

Текст доступен на условиях лицензии Creative Commons Attribution/Share-Alike версии 3.0 или более новой.

Записки IT специалиста

Linux — начинающим. Установка и первоначальная настройка Debian 11 для сервера

  • Автор: Уваров А.С.
  • 10.08.2022

Debian — один из самых старых и популярных Linux-дистрибутивов общего применения, одинаково подходящего для создания как сервера, так и рабочей станции. Но сегодня мы поговорим именно о серверном применении, где Debian ценится, в первую очередь, за высочайшую стабильность и консервативность. В данной статье мы пошагово расскажем, как установить и настроить Debian 11 в минимальной серверной конфигурации, которую потом можно будет использовать как основу для любых серверных решений на базе этой системы.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Для установки мы будем использовать образ Netinstall, который сейчас предлагается к скачиванию по умолчанию и предполагает наличие доступа к интернет во время установки. Однако, вопреки распространенному мнению, вы можете выполнить с его помощью минимальную установку системы, даже не имея доступа к сети. Все образа Debian являются гибридными, они могут быть записаны как на оптический носитель, так и на USB-флеш накопители.

Начало установки

После того, как вы загрузились с установочного носителя, вас встречает меню, в котором вы можете выбрать варианты установщика: текстовый или графический. Мы будем использовать текстовый режим, поэтому выбираем второй пункт — Install.

install-debian-11-minimal-server-001.png

Затем следует выполнить ряд настроек будущей системы, которыми не следует пренебрегать. Начнем с выбора языка установки, в соответствие с которым будут сделаны языковые и региональные настройки системы.

install-debian-11-minimal-server-002.png

Укажите сочетание клавиш для переключения раскладки, по умолчанию предлагается стандартный Alt + Shift.

install-debian-11-minimal-server-003.png

В дальнейшем установщик попытается настроить сеть и если в вашей сети есть работающий DHCP-сервер, то сетевые настройки будут получены автоматически, иначе вы можете ввести их руками или продолжить установку без сети, в этом случае будет доступна только минимальная установка.

install-debian-11-minimal-server-004.png

Следующий важный шаг — настройка пользователей. Debian предлагает несколько вариантов: с активным пользователем root или через sudo, когда учетная запись суперпользователя отключена и административные права получает созданный при установке пользователь (как в Ubuntu). Если исходить из соображение безопасности, то второй вариант лучше, но вы можете настроить систему по собственному усмотрению.

Сделать это просто: если вы укажете пароль root, то суперпользователь будет включен, а созданная далее учетная запись получит обычные права, утилита sudo установлена не будет. Если оставить пароль root пустым, то учетная запись суперпользователя будет отключена, установлена утилита sudo и созданный на следующем шаге пользователь получит административные права.

При отсутствии сети доступен только первый вариант (с активной учетной записью root).

install-debian-11-minimal-server-005.png

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

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

install-debian-11-minimal-server-006.png

На этом начальный этап установки завершен.

Разметка дискового пространства

Пожалуй, разметка дисков — это самый важный этап процесса установки, с принятыми на этом этапе решениями вам потом придется жить все время существования системы, так как изменить многие из них без переустановки не удастся. Сразу начнем с того, что, если вы не знаете как именно разметить диск — размечайте его самым простым образом, в большинстве случаев отдельного раздела будет достаточно. Тоже самое касается и выбора файловой системы — ext4 успешно закрывает большинство сценариев, не следует использовать иные файловые системы если вы не имеете опыта работы с ними и не знаете зачем они вам нужны.

Автоматическая разметка

Если вы поднимаете очередной сервер для рядовых задач с единственным диском, то автоматическая разметка является неплохим вариантом. На выбор предлагаются: простая разметка, разметка с LVM и LVM с шифрованием, и, хотя LVM весьма мощный инструмент, во многих случаях он будет избыточен и достаточно простой разметки.

install-debian-11-minimal-server-007.png

Для всех представленных вариантов предлагается три схемы разметки: все файлы в одном разделе, выделение /home и выделение /home, /var и /tmp. Для сервера подходит только первый вариант, тогда как второй предпочтителен для рабочих станций. Третий, кроме как недоразумением назвать нельзя. Автоматически бить диск на несколько разделов, не имея четкого понимания причин такого разделения — глупо. А имея понимание и представление проще настроить сразу как надо вручную. Поэтому безальтернативно выбираем Все файлы в одном разделе.

install-debian-11-minimal-server-008.png

В этом случае система выполнит классическую разбивку: корневой раздел в начале диска и раздел подкачки в его конце.

install-debian-11-minimal-server-009.png

Для UEFI-систем добавится ESP-раздел c EFI-загрузчиком в самом начале диска, затем корневой и подкачка.

install-debian-11-minimal-server-010.png

На этом этапе вы можете либо поправить схему разметки, либо оставить все как есть и перейти к следующему этапу нажав Сохранить разметку и записать изменения на диск.

Ручная разметка

Автоматическая разметка — это хорошо, вы получите заведомо рабочий результат без лишних действий, но это будет не самый оптимальный вариант. Поэтому можно разметить диск вручную и сразу так, как нужно. Если вы используете SSD, то мы советуем отказаться от стандартной схемы разметки и перенести раздел подкачки в начало диска. Почему?

Исторически раздел подкачки располагался в конце диска, потому что кривая скорости доступа жестких дисков представляла собой пологую дугу, наибольшая скорость была в начале и плавно снижалась к концу диска. Вполне логично, что систему размещали в наиболее быстрой области, а подкачку в более медленной. С твердотельными накопителями все иначе, да и понятие «начала» и «конца» диска там весьма условны, во всяком случае скорость доступа не зависит от физического места размещения данных. Поэтому при разметке мы можем исходить из иных соображений, например, удобства обслуживания.

Если при классической схеме мы скопируем разметку на более емкий диск или увеличим диск виртуальной машины, то получим схему: корневой раздел — подкачка — свободное место. Конечно, если вы используете LVM, то такая схема не доставит затруднений, а вот в остальных случаях вам придется потратить дополнительное время на перемещение раздела подкачки в конец диска и расширения корневого раздела на свободное место.

Если же поместить подкачку вначале диска, то вы получите: подкачка — корневой раздел — свободное место, после чего расширить основной раздел не составит труда.

При использовании EFI не забывайте, что первым должен идти ESP-раздел.

Перейдем к практике, на первом экране разметки дисков выбираем метод Вручную, затем выберите из списка нужный диск и нажмите Enter:

install-debian-11-minimal-server-011.png

Будет предложено создать новую таблицу разделов, соглашаемся с этим. Мы рекомендуем создавать новую таблицу разделов каждый раз при новой установке.

install-debian-11-minimal-server-012.png

Теперь на нашем диске появится пункт Свободное пространство, переходим на него и снова нажимаем Enter, будет предложено создать новый раздел.

install-debian-11-minimal-server-013.png

Если у вас UEFI-система, то сначала создаем раздел размером не менее 500 МБ:

install-debian-11-minimal-server-014.png

Указываем его местоположение в начале диска:

install-debian-11-minimal-server-015.png

И выбираем тип Системный раздел EFI, метка «загрузочный» будет включена автоматически.

install-debian-11-minimal-server-016.png

Затем точно также создаете раздел подкачки нужного размера:

install-debian-11-minimal-server-017.png

И корневой, на все оставшееся место. По умолчанию предлагается файловая система ext4, советуем ее оставить, если нет действительных оснований использования другой файловой системы и понимания всех плюсов и минусов ее использования.

install-debian-11-minimal-server-018.png

В итоге вы должны получить следующий вариант разметки:

install-debian-11-minimal-server-019.png

В MBR-системах у вас будет просто раздел подкачки и корневой раздел.

Настройка LVM

Ручная настройка LVM — достаточно сложный процесс, требующий определенных знаний и выходящий за рамки данной статьи, поэтому мы будем рассматривать автоматическую настройку и сопутствующие этому особенности, для ручной настройки LVM следует обратиться к нашей статье:

Важной особенностью LVM-разметки является то, что загрузчик (раздел /boot) должен находиться за ее пределами, в UEFI-системах также за пределами LVM следует располагать и ESP-раздел. Таким образом выбрав автоматическую разметку LVM и схему Все файлы в одном разделе мы получим следующую схему:

install-debian-11-minimal-server-020.png

Как мы говорили выше, система автоматически создала ESP и /boot разделы размером по 500 МБ каждый, при этом ESP раздел должен располагаться первым. Запомните эту особенность на случай ручной настройки LVM в последующем. Также обращаем ваше внимание, что для современных ядер минимальный размер /boot раздела должен быть не менее 500 МБ, встречающиеся рекомендации в 256 МБ следует считать устаревшими.

Что касается самой LVM-разметки, то создана единственная группа томов (VG) — debian-vg, внутри которой расположены два логических тома (LV): root и swap_1. Расположение логических томов на диске роли не играет, так как LVM позволяет гибко управлять пространством томов, не оглядываясь на физическую конфигурацию дисковой подсистемы.

Настройка программного RAID

Программный RAID широко используется для обеспечения отказоустойчивости дисковой подсистемы и поэтому его настройку нельзя обойти стороной. Как и с LVM, при настройке программного RAID имеются некоторые особенности. В UEFI-системах ESP-разделы также следует располагать за пределами RIAD-массивов, однако на этом особенности настройки программного RAID не заканчиваются, и мы советуем обратиться к нашей статье:

Отдельного разговора также заслуживает раздел подкачки. Мы, конечно, можем объединить его в RAID, но вот толку от этого немного, своп не содержит никаких критических данных, которым требуется отказоустойчивость, поэтому более разумно оставить разделы подкачки на каждом диске, не создавая из них массив. Этим вы получите в два раза больший объем пространств подкачки и более высокое быстродействие, так как будет отсутствовать пенальти на запись и современные системы умеют работать с несколькими пространствами подкачки параллельно.

Что касается схемы разметки, то мы точно также советуем размещать раздел подкачки перед корневым, в UEFI-системах самым первым должен быть ESP-раздел.

Основной залог успешного создания программного RAID-массива — это одинаковая разметка для входящих в его состав томов. Поэтому план действий будет следующий. Создаем на обоих дисках новую таблицу разделов.

install-debian-11-minimal-server-021.png

Затем размечаем согласно принятой схемы, основное внимание уделяем одинаковым размерам разделов. В итоге мы должны получить на каждом диске два одинаковых раздела подкачки и два раздела для RAID, система предложит по умолчанию отформатировать в ext4 и смонтировать как корень и /home, на самом деле это не имеет никакого значения, главное — полная идентичность разметки. В UEFI-системах к ним еще добавится два ESP-раздела, которые должны располагаться самыми первыми.

install-debian-11-minimal-server-022.png

Теперь переходим в раздел Настройка программного RAID и выбираем пункт Создать MD-устройство.

install-debian-11-minimal-server-023.png

Затем выбираем тип RAID, в современных условиях практический смысл имеют RAID 1 и RAID 10, в нашем случае мы можем собрать из двух дисков только RAID 1 (зеркало).

install-debian-11-minimal-server-024.png

После чего указываем устройства, из которых мы будем собирать RAID-массив. Обратите внимание, что программный RAID строится по схеме один массив — один раздел. Поэтому если вы применяете разметку отличную от все файлы в одном разделе, то заранее создайте нужное количество разделов на каждом диске.

install-debian-11-minimal-server-025.png

Теперь созданные нами ранее разделы на каждом из дисков будут представлены как Linux RAID, а в списке дисков появится новое RAID-устройство. Создаем на нем раздел с нужной файловой системой и точкой монтирования в корень.

install-debian-11-minimal-server-026.png

А общая схема разметки будет выглядеть следующим образом:

install-debian-11-minimal-server-027.png

На этом завершим тему разметки дисков и двинемся дальше.

Завершение установки

Если считать установкой системы именно копирование файлов на диск, то все это время мы занимались подготовкой и только по завершение разметки на диск была скопирована базовая система. После чего нам снова придется ответить на ряд вопросов. В первую очередь нам предложит выбрать зеркало репозиториев Debian, по соображениям быстродействия следует выбирать сервера расположенные как можно ближе к физическому размещению сервера. Скажем, если сервер в датацентре в условной Германии, то следует отдать предпочтение немецким серверам. Если не знаете, какое зеркало выбрать — оставьте значение по умолчанию.

install-debian-11-minimal-server-028.png

После выбора зеркала система скачает и обновит списки пакетов, а также ряд ключевых элементов системы, после чего вам будет предложено выбрать компоненты для установки. Оставляем только SSH-сервер и Стандартные системные утилиты.

install-debian-11-minimal-server-029.png

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

install-debian-11-minimal-server-030.png

В завершение будет предложено установить загрузчик GRUB, соглашаемся с этим предложением.

install-debian-11-minimal-server-031.png

При этом можно заметить, что программа установки позволяет выбрать только один диск и если вы используете программный RAID, то на втором диске у вас загрузчика не будет. Это не то, чтобы плохо, установить загрузчик можно и позднее, но также просто об этом и забыть. Поэтому сначала установим загрузчик на первый диск.

install-debian-11-minimal-server-032.png

А в следующем окне вместо предложения перезагрузить систему нажмем кнопку Вернуться.

install-debian-11-minimal-server-033.png

Перед вами появится следующее меню, в котором выбираем пункт Установка системного загрузчика GRUB:

install-debian-11-minimal-server-034.png

После чего установите загрузчик на второй диск.

install-debian-11-minimal-server-035.png

На этом установка завершена, можете перезагружать систему.

Вход в систему, повышение прав

Так как мы уже установили пакет OpenSSH-сервера, то можем войти в систему как локально, так и удаленно. Второй способ безусловно удобнее, даже если сервер стоит у вас под боком, потому как SSH-консоль можно держать открытой на рабочем месте вместе с другими приложениями, скажем, браузером и копировать в нее нужные команды.

Первая особенность, с которой столкнется начинающий администратор — невозможность зайти под пользователем root через SSH, это связано с настройками безопасности, и мы не видим веских причин разрешать такой вход. Лучше всего сразу приучаться делать правильно. Поэтому войдите в систему под обычным пользователем.

Теперь нужно повысить права. Если суперпользователь включен, то используйте команду:

После чего укажите пароль суперпользователя. Ключ (-l, —login) вызывает оболочку регистрации входа пользователя, что эквивалентно непосредственному входу пользователя в систему. При этом будет изменен домашний каталог и применены все настройки рабочей среды суперпользователя (маска, переменные окружения и т.д.).

Если root выключен, то выполните команду:

sudo -s 

И введите пароль пользователя, под которым вошли в систему. Ключ -s аналогичен ключу команды su и позволяет открыть оболочку как будто бы при интерактивном входе суперпользователя в систему (со сменой домашнего каталога, переменных окружения и т.д.).

Настройка сети

На этапе установки мы уже получали сетевые настройки, но они были автоматические, теперь же настала пора присвоить нашему серверу статический IP-адрес. Прежде всего посмотрим, какие сетевые интерфейсы существуют и какие у них адреса, для этого выполните команду:

ip a

install-debian-11-minimal-server-036.png

Как видим, у нас есть интерфейс локальной петли и сетевой адаптер ens33, который получил динамический адрес 192.168.233.130, допустим мы хотим присвоить ему статический адрес 192.168.233.81. Для этого откроем на редактирование файл /etc/network/interfaces:

nano /etc/network/interfaces

install-debian-11-minimal-server-037.png

И приведем блок, относящийся к адаптеру ens33 к следующему виду:

allow-hotplug ens33 
iface ens33 inet static
address 192.168.233.81
netmask 255.255.255.0
gateway 192.168.233.2
dns-nameservers 192.168.233.2

Набор опций понятен без дополнительных пояснений, мы указали адрес, маску сети, шлюз и DNS-сервера. Если их несколько, то указываем через пробел.

Сохраняем файл нажатием Ctrl + x.

reboot

Теперь можем присоединиться к нему по новому адресу.

Настройка репозиториев

По умолчанию в Debian подключен только репозиторий main, содержащий только свободное ПО, соответствующее критериям FSF (Free Software Foundation, Фонд свободного ПО), но существуют еще два репозитория: non-free — бесплатно распространяемое ПО, не соответствующее критериям свободного ПО, contrib — программное обеспечение содержащее несвободные компоненты или требующие проприетарного ПО, например, Oracle Java.

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

sed -i "s/main/main contrib non-free/g" /etc/apt/sources.list

install-debian-11-minimal-server-038.png

После чего не забудьте выполнить обновление списка пакетов:

apt update

После чего можно выполнить обновление системы:

apt full-upgrade 

Или установить дополнительное ПО, обычно мы устанавливаем двухпанельный менеджер Midnight Commander и диспетчер задач Htop:

apt install mc htop

Настройка брандмауэра iptables

В Debian 11 в качестве брандмауэра установлен пакет nftables, это более мощное и продвинутое ПО, но требующее отдельного изучения. Если вы не готовы с ним работать, то можно вернуть привычный iptables и продолжать его использование. При этом на самом деле будет продолжать работать nftables, но в режиме совместимости с iptables.

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

apt install iptables iptables-persistent

Теперь в порядке перечисленном ниже выполним следующие команды:

iptables -A INPUT -i ens33 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i ens33 -m conntrack --ctstate INVALID -j DROP
iptables -A INPUT -i ens33 -p icmp -j ACCEPT
iptables -A INPUT -i ens33 -p tcp --dport 22 -m conntrack --ctstate NEW -j ACCEPT
iptables -A INPUT -i ens33 -j DROP

Тем самым мы создадим минимальную конфигурацию брандмауэра. Первое правило разрешает уже установленные и связанные с ними соединения. Второе блокирует пакеты, не являющиеся первым пакетом соединения и не относящиеся к другим соединениям. Затем мы разрешаем соединения по протоколу ICMP (ping, PMTUD) и SSH-соединения (порт TCP 22). Затем полностью блокируем все остальные входящие соединения.

Проверяем, что все работает и сервер остается доступным по сети, после чего сохраняем правила командой:

iptables-save > /etc/iptables/rules.v4

Благодаря пакету iptables-persistent сохранённые правила теперь будут автоматически восстанавливаться при загрузке системы. Для их изменения удобнее всего вносить правки в файл /etc/iptables/rules.v4.

install-debian-11-minimal-server-039.png

Редактируя файл следует придерживаться следующих правил: первыми всегда должны идти два правила, выделенные нами желтым, а последним — запрещающее. выделенное красным. Все остальные правила должны размещаться между ними, при этом учитывайте, что правила проверяются в порядке их перечисления в файле и после срабатывания правила прохождение пакета через брандмауэр прекращается. Поэтому размещайте более частные правила выше более общих, в противном случае они никогда не сработают.

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

iptables-restore < /etc/iptables/rules.v4

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

iptables -L -vn

install-debian-11-minimal-server-040.png

Не пренебрегайте настройкой брандмауэра даже если ваш сервер находится внутри периметра и не имеет непосредственного выхода во внешнюю сеть. Безопасности много не бывает!

Установка sudo и отключение учетной записи root

Если вы первоначально включили учетную запись суперпользователя, а теперь хотите ее выключить и далее работать через sudo, то следует выполнить ряд простых действий. Во-первых, установим пакет sudo:

apt install sudo

Затем добавим нужного пользователя в группу sudo:

usermod -a -G sudo andrey

В нашем случае это пользователь andrey. Затем выйдите из системы и войдите в нее снова, или просто перезагрузитесь. Проверьте, что указанный пользователь может повышать свои права при помощи sudo и только затем отключите учетную запись суперпользователя.

passwd -l root

Еще раз повторим, данная схема используется по умолчанию в Ubuntu и представляется нам более безопасной, нежели наличие активной учетной записи root.

Установка нового ядра

В Debian 11 используется достаточно актуальное ядро с длительным сроком поддержки 5.10 LTS, выпущенное 13.12.2020 года. Однако бывают ситуации, когда для поддержки оборудования или каких-то дополнительных возможностей требуется более свежее ядро. В этом случае потребуется установка более свежей версии. Ничего страшного в этом нет, но мы не рекомендуем устанавливать новые версии ядер без насущной на то необходимости. Хотя это Linux и здесь каждый сам кузнец собственного счастья.

Есть много способов обновить ядро, но мы рассмотрим самый безопасный - с использованием репозитория Backports. Он предоставляет пакеты из testing (в основном) и unstable (в некоторых случаях, например, для обновления безопасности) версий Debian, адаптированных для работы в стабильном (stable) выпуске.

Прежде всего подключим репозиторий:

echo "deb http://deb.debian.org/debian bullseye-backports main contrib non-free" > /etc/apt/sources.list.d/bullseye-backports.list

И обновим список пакетов:

apt update

Затем перейдем к собственно обновлению. В системе существует метапакет linux-image-amd64, указывающий на последнюю версию ядра. Выполним:

apt policy linux-image-amd64

install-debian-11-minimal-server-041.png

Как можем увидеть, доступны ядра 5.10 и 5.18, но так как репозиторий Backports имеет более низкий приоритет (100 против 500), то автоматического обновления ядра не произойдет и для его установки нужно будет выполнить команду:

apt install linux-image-amd64 -t bullseye-backports

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

apt-cache search linux-image

В выводе команды мы без труда найдем пакеты последней LTS-версии 5.15.

install-debian-11-minimal-server-042.png

Выбираем нужный нам пакет и устанавливаем его командой:

apt install linux-image-5.15.0-0.bpo.3-amd64 -t bullseye-backports

Перезагружаемся и убеждаемся, что система работает с новой версией ядра.

install-debian-11-minimal-server-043.png

Заключение

В данном материале мы постарались коротко изложить все основные аспекты установки современной системы Debian для серверного применения, позволяющие разумно подойти к этому вопросу и получить на выходе полностью работающую систему, удовлетворяющую предъявленным требованиям. Но это только начало большого пути, и мы рекомендуем для дальнейшей настройки использовать материалы нашего сайта, как наиболее проверенные и совместимые с полученной в результате начальной настройки конфигурацией.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Дополнительные материалы:

  1. Linux - начинающим. Часть 1. Первое знакомство
  2. Linux - начинающим. Часть 2. Установка Ubuntu Server
  3. Linux - начинающим. Часть 3. Установка Debian 7 для сервера
  4. Linux - начинающим. Часть 4. Работаем с файловой системой. Теория
  5. Linux - начинающим. Часть 4. Работаем с файловой системой. Практика
  6. Linux - начинающим. Часть 5. Управление пакетами в Debian и Ubuntu
  7. Linux - начинающим. Часть 6. Управление пользователями и группами. Теория
  8. Linux - начинающим. Часть 6. Управление пользователями и группами. Практика
  9. Linux - начинающим. Часть 7. Потоки, перенаправление потоков, конвейер
  10. Настройка языка и региональных стандартов в Ubuntu Server/Debian
  11. Используем APT Pinning для закрепления пакетов в Debian и Ubuntu
  12. Linux - начинающим. Что такое Load Average и какую информацию он несет
  13. Обновляем снятый с поддержки дистрибутив Ubuntu
  14. Linux - начинающим. Обновление Debian до следующего выпуска
  15. Осваиваем эффективную работу в Midnight Commander
  16. Linux - начинающим. Что такое пространства подкачки и как они работают
  17. Linux - начинающим. Screen - многозадачность в терминале и ни единого разрыва!
  18. Linux - начинающим. Как узнать температуру процессора и накопителей
  19. Linux - начинающим. Как получить информацию об оборудовании ПК
  20. Linux - начинающим. Установка и первоначальная настройка Debian 11 для сервера

Помогла статья? Поддержи автора и новые статьи будут выходить чаще:

Поддержи проект!

Подпишись на наш Telegram-канал

Или подпишись на наш Телеграм-канал:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *