Настройка сервера debian 10

Обновлено: 02.07.2024

Этот раздел поможет наглядно подготовить чистую систему Debian к полноценному использованию в качестве того, что вы выберите сами. Нижеуказанные настройки рекомендую выполнять в пошаговом режиме. Каждый блок проверен, теория, практика и описания подаются кратко, без излишеств. Если мало, подробности ищите в Google.

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

Такой подход наиболее полно реализует преимущества Debian перед Ubuntu и Gentoo - оптимальное сочетание затрат на установку\настройку к эффективности\захламлённости ненужным ПО.

Разработка страницы завершена, новые рецепты добавляются по мере их изучения и отладки

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

  1. Подготовка свежеустановленной системы Debian к использованию
  2. Система
    1. Политика установки ПО
    2. Дата и время
      1. Настройка
      2. Синхронизация локально
      3. Синхронизация для клиентов в сети
      1. sudo
      1. Автологин в консоли с mingetty
      2. Автологин в консоли с стандартным agetty
      1. Глобальные параметры локализации системы
      2. Кириллица в консоли
      3. Удаление неиспользуемых файлов локализации
      1. GRUB2
      1. Сетевые настройки
        1. Базовая настройка
        2. Настройка в консольном интерфейсе wicd-curses
        1. Общие сведения
        2. Apf-firewall
        3. Vuurmuur
          1. Установка
          2. Настройка rsyslog
          3. Настройка
          4. Подсчёт трафика
          5. Решение проблем.
          1. Авторизация по ключам
            1. Генерация ключей
            2. Настройка сервера
            3. Настройка клиента
            4. Настройка Putty
            1. Тorrent
            2. SMB (CIFS)
              1. Корзина
              2. Аудит
              3. Принтеры
              4. Web интерфейс для администрирования
              1. Файловый менеджер
              2. Сессии в консоли
                1. Screen
                1. Эмулятор терминала
                  1. guake
                  1. SQL сервер
                  2. Web-сервер
                    1. Apache2
                      1. Поддержка PHP5
                      1. Поддержка PHP5
                      2. Множество сайтов на одном сервере (virtual host)
                      3. Лог доступа
                      1. Примечание 1 (настройка aptitude)
                      2. Примечание 2 (ошибка запуска сети)
                      3. Примечание 3 (настройка мс)
                      4. Примечание 4 (ошибка pcspkr)
                      5. Примечание 5 (setfacl неподдерживаемая операция)

                      Политика установки ПО

                      aptitude - локализованный менеджер пакетов с псевдографическим интерфейсом, который используется для наглядной и функциональной установки программ в Debian.

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

                      Запускем программу и настраиваем её параметры.

                      Дата и время

                      Настройка

                      С консоли время в системе можно установить так:

                      Где MM — месяц, DD — день месяца, hh — часы, mm — минуты, CCYY — 4 цифры года, ss — секунды.

                      Синхронизация локально

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

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

                      Синхронизация для клиентов в сети

                      Устанавливаем ntp: - комплекс программ, позволяющих получить текущее время со специальных серверов в интернет и стать таким сервером для локальной сети.

                      Пример для сети 192.168.0.xx

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

                      Далее можно прописывать IP адрес компьютера в качестве источника синхронизации.

                      Автоматическое обновление

                      Правим общие настройки обновления:

                      Правим настройки периодичности обновления

                      Логи обновления смотрим тут - /var/log/unattended-upgrades/unattended-upgrades.log.

                      Указываем время выполнения обновления. Например каждый день в 6:25 утра:

                      Пользователи и группы

                      Устанавливаем sudo: - утилиту для временного получения root прав

                      Добавляем пользователя в группу sudo

                      Для применения настроек пока приходится перезагружать систему

                      Для подробоностей - Гугл в помощь

                      Автологин в консоли с mingetty

                      Устанавливаем Mingetty: - упрощённый вариант стандартной программы agetty, в задачи которой входит управление доступом к физическим и виртуальным терминалам.:

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

                      Автологин в консоли с стандартным agetty

                      Стандартный менеджер входа agetty (util-linux) начиная с v.2.20 содержит функциональность mingetty

                      Далее настраиваем вход, вместо root пишем нужный логин

                      Локализация

                      Глобальные параметры локализации системы

                      Кроме LC_ALL все параметры должны быть ru_RU.UTF-8.

                      Если это не так, тогда запускаем настройку

                      Если системная локаль не применяется к пользователю, то стоит посмотреть файл настроек интерпретатора командной строки (bash, dash, ash) в домашнем каталоге пользователя.

                      Кириллица в консоли

                      Настраиваем кириллицу в консоли

                      Настраиваем все параметры пакета:

                      Удаление неиспользуемых файлов локализации

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

                      Удаление происходит при запуске утилиты:

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

                      Загрузчик

                      GRUB2

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

                      sysv-rc-conf: - утилита с curses интерфейсом, преназначенная для быстрого управления работой и запуском служб (демонов, сервисов). Очень удобна для просмотра установленных служб в системе.

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

                      Сглаживание шрифтов

                      Сетевые настройки

                      Базовая настройка

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

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

                      Ищем нашу сетевую карту в списке:

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

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

                      Строки, начинающиеся со слова "auto", используются для идентификации физических интерфейсов при их подьеме во время запуска ifup с опцией -a. (Эта опция используется сценариями загрузки системы.) Имена физических интерфейсов должны следовать за словом "auto" в той же строке. Может быть несколько строф "auto". ifup поднимет названные интерфейсы в порядке их перечисления.

                      Строки, начинающиеся с "allow-", используются для идентификации интерфейсов, которые должны быть подняты автоматически различными подсистемами. Это может быть сделано, например, с использованием команды "ifup --allow=hotplug eth0 eth1", которая будет поднимать только eth0 или eth1, если они перечислены в строке "allow-hotplug". Учтите, что "allow-auto" и "auto" - синонимы.

                      Если настройки статические, тогда, к примеру, заполняем так:

                      Если настройки сети раздаются через DHCP, тогда, к примеру, заполняем по-другому:

                      Если необходимо использовать одновременно несколько IP адресов на одной сетевой карте, тогда, к примеру, добавляем строки:

                      Для настройки DNS нужно редактировать файл /etc/resolv.conf

                      Статичный DNS, например:

                      Динамический DNS по DHCP вносится в /etc/resolv.conf автоматически.

                      Настройка в консольном интерфейсе wicd-curses

                      wicd - cлужба управления проводными и беспроводными сетями для Linux с Qt, GTK+ и curses интерфейсами. Эта служба наиболее удобна, если часто возникает необходимость в быстром подключении к различным сетям.

                      После первого запуска wicd автоматические переключает все настройки сети на DHCP.

                      Для управления службой в консоли необходим curses клиент wicd-curses.

                      Для применения настроек необходимо нажать "Shift+C"

                      Firewall (брандмауэр, межсетевой экран и т.п.)

                      Общие сведения

                      Межсетевой экран - средство контроля и фильтрации сетевых соединений. В защищенной домашней или корпоративной сети установка firewall не актуальна и может принести больше вреда чем пользы. В случае если Ваш компьютер напрямую подключен к Интернет, то использование сетевого экрана просто обязательно. В Debian эта задача решается с помощью утилиты Iptables. Эту утилиту можно использовать в "чистом" виде путём ручного ввода команд в консоли, или запускать команды в самописном скипте, либо с помощью различных надстроек, облегчающих формирование сложных команд iptables. В зависимости от поставленной задачи каждый из способов имеет свои достоинства и преимущества.

                      Apf-firewall

                      Простой аскетичный аpf-firewall для быстрой защиты сервера без самописных скриптов.

                      Правим файл конфигурации

                      Vuurmuur

                      Vuurmuur - мощная свободная надстройка к iptables с curses интерфейсом. Псевдографический интерфейс значительно упрощает оперативную работу с сетевым экраном. К сожалению разработка программы продвигается очень медленно. Имеются deb пакеты в репозитории официального сайта. Раньше эти пакеты присутствовали в официальных репозиториях Debian, но были заброшены сопровождающим, что привело к их удалению. Программа полностью документирована и переведена на русский язык.

                      Аналогов даже близких по функциональности найдено не было. В итоге получаем что vuurmuur это единственный в современном linux интерактивный firewall менеджер c curses интерфейсом. Подобная функциональность оправдывает все усилия по его установке.

                      Пакеты установки можно взять с сайта разработчика и из репозиториев Ubuntu.

                      К сожалению оба варианта содержат в себе весьма досадные проблемы:

                      • Проблемы отображения кириллицы с системной кодировкой UTF8
                      • Собраны в бинарник только для i386
                      • init.d скрипт запуска, как я понял, имеет проблемы совместимости с Debian
                      • В консоль постоянно сыпется мусор, который по-идее должен литься только в лог и то не всегда.

                      Компиляция пакетов - лишь один из вариантов решения проблемы. Оставим его профессионалам. А мы пойдем другим путём:

                      Основой будет пакет из Ubuntu, пару органов получим из пакета офф.сайта. Такой вот франкенштейн.

                      Установка

                      Устанавливаем утилиту просмотра сетевых соединений conntrack

                      Качаем 3 пакета из официальных репозиториев Ubuntu (пример для amd64)

                      Далее донором будет вполне подходящий i386 пакет из официального сайта.

                      Выкапываем тело из официального могильника

                      Пересаживаем органы из одного тела в другое

                      Рисуем магическое заклинание

                      И оживляем тело.

                      Установка завершена. 8)

                      Настройка rsyslog

                      или одной строкой

                      Настраиваем vuurmuur (Настройки vuurmuur --> Ведение журналов)

                      Настройка

                      1. Настраиваем пути к служебным утилитам Vuurmuur Config --> General

                      2. Настраиваем interfaces, т.е. указываем с какими сетевыми картами будем работать.

                      Будьте внимательны - опция Active в настройках должна быть Yes, иначе Vuurmuur будет их игнорировать.

                      3. Смотрим Services, если нет нужных добавляем свои (версия от Ubuntu не содержит служб вообще, но позволяет добавлять новые). Я добавил входящий порт для Web морды SWAT.

                      4. Настраиваем Zones, т.е. делим и\или объединяем наши сети в "зонах" на "свои" и "чужие". Каждая "зона" может содержать несколько сетей, хостов (т.е. компьютеров в сети) и групп хостов. Я создал две.

                      5. В каждую из "зон" я добавил по одной соответствующей ей сети: интернет

                      6. В "домашнюю зону" я добавил хост, т.к. для него будут отдельные правила доступа.

                      7. Настраиваем "rules", т.е. правила доступа в сети. Ниже переброс портов на комп локальной сети временно отключен.

                      Настройки применяем в главном меню нажав F11.

                      Подсчёт трафика

                      В текущей стабильной версии подсчет трафика невозможен из-за бага

                      Решение проблем.

                      Диагностика DNS

                      Устанавливаем dnsutils: - получаем утилиту nslookup, позволяющую быстро диагностировать проблемы преобрзования доменных имен в IP адреса.

                      Или более мощный варинант

                      Нагрузка на сеть

                      Устанавливаем nethogs: - получаем утилиту наглядно отображающую какой процесс насколько сильно и какую нагружает сетевую карту.

                      Анонимный доступ в интернет

                      Динамическая регистрация в DNS

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

                      Удаленный доступ к консоли

                      Устанавливаем ssh: - комплекс программ, позволяющих соединяться с удалёнными машинами по защищённому каналу и выполнять команды в консоли:

                      Этот метапакет содержит программу клиента ssh и службу sshd, обрабатывающую входящие ssh подключения к вашему компьютеру.

                      Авторизация по ключам

                      Генерация ключей

                      Вариaнт 1 (подходит для putty и native ssh клиентов Linux)

                      В итоге получаем в "/user/.ssh/" два файла "newserver.key" и "newserver.key.pub"

                      Вариaнт 2 (для всех + проприетарный Bitvise Tunnelier)

                      К сожалению, я не нашёл способа сконвертировать OpenSSH ключи в понятный Tunnelier-у формат. Поэтому действовать будем от обратного.

                      На Windows машине запускаем Bitvise Tunnelier. На вклaдке "Login" выбираем раздел "Authentickation" --> "Use keypair manager". В новом окне жмём "Generate New . ", выставляем опции на свой вкус --> "Generate". Далее выбираем "Export" и сохраняем любым удобным способом публичный ключ в формате OpenSSH в файл /user/.ssh/newserver.key.pub на ssh сервере.

                      Для использования в других ssh клиентах аналогично экспортируем и закрытый ключ. В итоге получаем в "/user/.ssh/" два файла "newserver.key" и "newserver.key.pub"

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

                      Перемещаем открытый ключ в список разрешённых ключей Например так

                      Правим конфигурацию сервера

                      Проверяем права доступа, должно быть так

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

                      При появлении проблем доступа смотрим лог

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

                      Выбираем пользователя на клиенте под которым будем логиниться в ssh. Например это будет "user". Логинимся по юзером. Любым удобным способом копируем сгенерированный ранее файл newserver.key в папку /home/user/.ssh. Если хочется, чтобы ssh клиент подхватывал ключ автоматически, сохраняем ключ с новыми именем "id_dsa"

                      Выставляем права доступа, иначе ssh клиент проигнорирует ключ.

                      Запускаем ssh клиента.

                      Всё должно работать.

                      Настройка Putty

                      К сожалению, Putty не понимает ключи в формате OpenSSH. Поэтому загружаем latest development snapshot Puttygen. Обычный Puttygen нам не подойдёт.

                      Скармливаем проге наш newserver.key (Conversions --> Import key), если нужно вводим пароль для доступа ключу. Получаем окно

                      Если надо меняем комментарий и пароль доступа к ключу. В разделе "Parameters" рекомендую выбрать SSH-2 RSA и 2048 bits. Далее жмём "Save private key" и получаем ключ в формате ppk, пригодный для скармливания обычному Putty в разделе Сonnection --> SSH --> Auth

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

                      1: Логин root

                      Чтобы подключиться к серверу, вам понадобится его внешний IP-адрес. Кроме того, нужно знать пароль или иметь закрытый ключ (если используется аутентификация на основе SSH-ключей) администратора – пользователя root.

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

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

                      Что такое root?

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

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

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

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

                      Чтобы создать нового пользователя по имени 8host, введите:

                      Примечание: Замените условное имя 8host именем своего пользователя.

                      После запуска команды вам будет предложено ввести информацию о пользователе.

                      Установите надёжный пароль и при желании укажите дополнительную информацию. Чтобы принять данные по умолчанию, просто нажмите Enter.

                      3: Доступ к sudo

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

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

                      В Debian 10 доступ к этой команде есть по умолчанию у всех, кто входит в группу sudo. Чтобы добавить нового пользователя в эту группу, запустите следующую команду в сессии пользователя root:

                      usermod -aG sudo 8host

                      Теперь новый пользователь имеет права суперпользователя и может выполнять задачи администратора.

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

                      Серверы Debian могут использовать брандмауэр для блокировки соединений с отдельными сервисами. Мы используем UFW, чтобы установить политики брандмауэра и настроить исключения.

                      С помощью менеджера пакетов apt установите брандмауэр UFW. Сначала обновите локальный индекс.

                      apt update
                      apt install ufw

                      Различные приложения при установке регистрируют свои профили в UFW. Такие профили позволяют UFW управлять этими приложениями по имени. OpenSSH (сервис, который позволяет подключаться к серверу) имеет в UFW свой профиль.

                      Чтобы просмотреть его, введите:

                      ufw app list
                      Available applications:
                      . . .
                      OpenSSH
                      . . .

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

                      ufw allow OpenSSH

                      После этого можно включить брандмауэр:

                      Чтобы продолжить, нажмите у и Enter. Чтобы убедиться, что соединения SSH не блокируются брандмауэром, введите эту команду:

                      ufw status
                      Status: active
                      To Action From
                      -- ------ ----
                      OpenSSH ALLOW Anywhere
                      OpenSSH (v6) ALLOW Anywhere (v6)

                      На данный момент брандмауэр блокирует все, кроме SSH. Если вы установили и настроили дополнительные сервисы, вам необходимо откорректировать настройки брандмауэра, чтобы он не блокировал другой трафик.

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

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

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

                      Настройка SSH-доступа для вашего нового пользователя зависит от того, что использует ваша учетная запись root для аутентификации – пароль или SSH-ключи.

                      Парольная аутентификация

                      Если вы вошли в свою учетную запись root через пароль, значит, SSH поддерживает парольную аутентификацию. Вы можете подключиться по SSH к новому пользователю, открыв новую сессию терминала и используя SSH с именем нового пользователя:

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

                      При первом запуске sudo в каждой сессии (и периодически при запуске разных команд) вам будет предложено ввести пароль текущего пользователя.

                      Чтобы повысить безопасность сервера, вместо парольной аутентификации мы рекомендуем настроить SSH-ключи. Следуйте инструкциям в мануале Установка SSH-ключей в Debian 10.

                      Аутентификация на основе SSH-ключей

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

                      /.ssh/authorized_keys нового пользователя для дальнейшего доступа к системе.

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

                      /.ssh/authorized_keys, вы можете скопировать эту структуру файлов и каталогов в учетную запись нового пользователя в текущем сеансе с помощью команды cp. Чтобы установить привилегии, используйте команду chown . Обязательно укажите свои данные в приведенных ниже командах.

                      /.ssh /home/8host
                      chown -R 8host:8host /home/8host/.ssh

                      Команда cp -r копирует весь каталог в домашний каталог нового пользователя, а команда chown -R передает этот каталог (и всего внутри) в собственность указанного пользователя и группы в формате username:groupname (Debian создает для пользователя одноименную группу по умолчанию).

                      Откройте терминал и создайте новое SSH соединение:

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

                      При первом запуске sudo в каждой сессии (и периодически при запуске разных команд) вам будет предложено ввести пароль текущего пользователя.

                      Заключение

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

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

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

                      Данная статья является частью единого цикла статьей про сервер Debian.

                      Введение

                      Любая работа с сервером после установки чаще всего начинается со стандартных обязательных действий, без которых либо не получится продвинуться дальше, либо будет неудобно работать. Например, вам в любом случае необходимо выполнить сетевые настройки, желательно обновить систему и установить часовой пояс. Рекомендуется сразу настроить автообновление времени, подрихтовать параметры sshd, установить midnight commander и выполнить другие настройки.

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

                      Указываем сетевые параметры

                      Итак, у нас в наличии только что установленная система. Узнать или проверить ее версию можно командами:

                      Очень подробно про настройку сети в Debian я написал в отдельной статье. Рекомендую с ней ознакомиться. Здесь же кратко выполним основное. Для настройки сети, необходимо отредактировать файл /etc/network/interfaces. Сделаем это:

                      Для получения IP адреса по dhcp достаточно будет следующего содержания:

                      Если у вас статический адрес, то его настроить можно следующими параметрами в файле:

                      Сохраняем файл. Теперь нужно выполнить перезапуск сети. В Debian это делается командой:

                      В системном логе /var/log/syslog при этом будут записи:

                      Будьте аккуратны при настройке и перезапуске сети, если подключаетесь к серверу удаленно. Обязательно должен быть доступ к консоли на случай, если где-то ошибетесь и потеряете доступ к серверу.

                      К сетевым настройкам я отношу установку пакета net-tools, в состав которого входят старые и привычные утилиты для работы с сетью - ifconfig, netstat, route и другие. В современных дистрибутивах их заменили одной командой ip, но лично мне вывод некоторых старых команд, конкретно, netstat, нравится больше, поэтому я иногда ими тоже пользуюсь.

                      На этом настройка сети закончена.

                      Обновление системы, отличие apt upgrade от dist-upgrade и full-upgrade

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

                      Обновление debian

                      Посмотреть список пакетов, готовых к обновлению, можно с помощью команды:

                      Теперь выполним простое обновление всех пакетов системы:

                      apt upgrade

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

                      Ключ dist-upgrade или full-upgrade (это одно и то же) в дополнение к upgrade обрабатывает все изменения зависимостей для новых пакетов и во время работы может удалять ненужные и ставить необходимые пакеты для обновления. Вот выдержка из документации по поводу этих двух ключей.

                      Отличие apt upgrade от apt dist-upgrade и full-upgrade

                      Так что после обычного обновления, делаем еще full-upgrade.

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

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

                      На этом обновление системы закончено. Если вы хотите обновить версию релиза, например Debian 9 обновить до Debian 10 Buster, то читайте отдельный материал.

                      Настройка ssh

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

                      Существует расхожее мнение, что менять порт ssh это наивность, а не защита. Надо просто настроить сертификаты, fail2ban или еще каким-то образом защитить ssh порт, к примеру, с помощью ограничений iptables, и т.д. Тем не менее, я все же рекомендую порт сменить на нестандартный. Даже если у вас все защищено от подбора паролей, так как вы используете сертификаты, лишние запросы к ssh порту тратят ресурсы сервера, хоть и не очень большие. Идет установка соединения, обмен рукопожатиями и т.д. Зачем вам это нужно?

                      По-умолчанию в Debian, впрочем как и в любом другом дистрибутиве Linux, ssh сервер работает на 22 порту. Изменим этот порт, к примеру, на 23331. Так же я еще изменяю конфигурацию для разрешения подключения по ssh пользователя root с использованием пароля. В Debian из коробки пользователь root по ssh паролем авторизовываться не может. Изменим и это. Открываем файл настроек:

                      И изменяем там следующие строки. Приводим их к виду:

                      Сохраняем изменения и перезапускаем сервер ssh следующей командой:

                      Все в порядке, сервер слушает 23331 порт. Теперь новое подключение будет осуществлено только по порту 23331. При этом, после перезапуска ssh, старое подключение не будет разорвано.

                      Я знаю, что многие возражают против подключения рутом к серверу. Якобы это небезопасно и т.д. и т.п. Мне эти доводы кажутся не убедительными. Не понимаю, в чем может быть проблема, если у меня нормальный сложный пароль на root, который не получится подобрать или сбрутить. Ни разу за всю мою работу системным администратором у меня не возникло проблем с этим моментом. А вот работать так значительно удобнее, особенно, когда необходимо оперативно куда-то подключиться по форс мажорным обстоятельствам.

                      Отдельно тему подключения к серверу под root я рассмотрел в статье про sudo. Кому интересно, переходите в нее и делитесь своим мнением на этот счет.

                      Установка утилит mc, htop, iftop

                      Следующим шагом я настраиваю некоторые полезные утилиты, которыми регулярно пользуюсь в повседневной работе. Первая из них это всем известный двухпанельный файловый менеджер Midnight Commander. Установим mc на наш сервер:

                      И сразу же для него включаю подсветку синтаксиса всех файлов, которые не обозначены явно в файле /usr/share/mc/syntax/Syntax синтаксисом для sh и bash скриптов. Этот универсальный синтаксис нормально подходит для конфигурационных файлов, с которыми чаще всего приходится работать на сервере. Перезаписываем файл unknown.syntax. Именно этот шаблон будет применяться к .conf и .cf файлам, так как к ним явно не привязано никакого синтаксиса.

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

                      Так же я рекомендую очень удобный диспетчер задач - htop. Мне он помог, к примеру, решить проблему Взлома сервера CentOS. Ставим его на сервер:

                      Полезной утилитой, позволяющей смотреть сетевую загрузку в режиме реального времени, является iftop. Очень рекомендую. Более простого и удобного инструмента мне не попадалось, хотя я много перепробовал подобных вещей. Устанавливаем iftop на сервер:

                      debian iftop

                      Настройка и обновление времени в Debian

                      Теперь проверим установленный часовой пояс, время и включим автоматическую синхронизацию времени с удаленного сервера. Очень подробно этот вопрос я рассмотрел в отдельной статье - настройка времени в Debian.

                      Узнать дату, время, часовой пояс можно командой date:

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

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

                      Выбирая соответствующие пункты визарда, указываете свой часовой пояс.

                      Дальше синхронизируем время с сервером времени в интернете. Для разовой или ручной синхронизации понадобится отдельная утилита. Установим ntpdate на сервер:

                      И синхронизируем время:

                      Если получаете ошибку:

                      Значит у вас уже работает служба ntp. Ее нужно остановить и обновить время вручную. Хотя если она работает, то у вас и так должно быть все в порядке.

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

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

                      Настройка firewall (iptables) в Debian

                      В качестве firewall в Debian по-умолчанию используется iptables, его и будем настраивать. Изначально фаервол полностью открыт и пропускает весь трафик. Проверить список правил iptables можно следующей командой:

                      Обращаю пристальное внимание на то, что настраивать firewall без прямого доступа к консоли сервера не следует. Особенно, если вы не очень разбираетесь в этом и копируете команды с сайта. Шанс ошибиться очень высок. Вы просто потеряете удаленный доступ к серверу.

                      Создадим файл с правилами iptables:

                      Очень подробно вопрос настройки iptables я рассмотрел отдельно, рекомендую ознакомиться. Хотя в примере другая ОС linux, принципиальной разницы нет, настройки iptables абсолютно одинаковые, так как правила одни и те же.

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

                      Даем файлу права на запуск:

                      Настройка iptables в debian

                      Проверяем, что правила записались в файл /etc/iptables_rules. Если их там нет, то записываем их вручную.

                      Правила применились и произошла их запись в файл /etc/iptables_rules. Теперь нужно сделать так, чтобы они применялись при загрузке сервера. Для этого делаем следующее. Открываем файл /etc/network/interfaces и добавляем в него строку pre-up iptables-restore < /etc/iptables_rules Должно получиться вот так:

                      Для проверки перезагрузите сервер и посмотрите правила iptables. Должен загрузиться настроенный набор правил из файла /etc/iptables_rules.

                      Настройка логов cron

                      По-умолчанию, в Debian нет отдельного лог файла для событий cron, они все сыпятся в общий лог /var/log/syslog. Лично мне это не очень нравится, я предпочитаю выводить эти события в отдельный файл. Об этом я написал отдельно - вывести логи cron в отдельный файл. Рекомендую пройти по ссылке и настроить, если вам это необходимо. Там очень кратко и только по делу, не буду сюда копировать эту информацию.

                      Установка и настройка screen

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

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

                      Позже я решил подробнее ознакомиться с этим инструментом и обнаружил, что там есть несколько удобных моментов, которые можно использовать в ежедневной работе. Вот как использую утилиту screen я. При подключении к серверу у меня запускается screen с тремя окнами 1, 2, 3. Первое окно автоматически переходит в каталог /, второе в /etc, третье в /var/log. Я осмысленно назвал эти окна: Main, etc, logs соответственно. Внизу находится строка состояния, в которой отображен список всех открытых окон и подсвечено активное окно.

                      С помощью горячих клавиш я очень быстро переключаюсь между окнами в случае необходимости. Вот как выглядит мое рабочее окно ssh подключения:

                      настройка screen в debian

                      Переключаюсь между окнами с помощью стандартных горячих клавиш screen: ctrl+a 1, ctrl+a 2, ctrl+a 3. Я специально изменил нумерацию, чтобы она начиналась не с 0 по-дефолту, а с 1. Так удобнее на клавиатуре переключать окна. Кнопка 0 находится слишком далеко от 1 и 2.

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

                      Создаем в каталоге /root конфигурационный файл .screenrc следующего содержания:

                      Заключение

                      Не понравилась статья и хочешь научить меня администрировать? Пожалуйста, я люблю учиться. Комментарии в твоем распоряжении. Расскажи, как сделать правильно!

                      Теперь можно перезагрузить сервер и проверить, все ли в порядке. У меня все в порядке, проверил :) На этом базовая настройка сервера debian окончена. Можно приступать к конфигурации различных сервисов, под которые он настраивался. Об этом я рассказываю в отдельных статьях.

                      Напоминаю, что данная статья является частью единого цикла статьей про сервер Debian.

                      Установка сервера баз данных

                      Для начала необходимо установить MariaDB (MySQL) сервер. В подавляющем большинстве веб-сайтов это — один из главных шагов, без которого нет смысла запускать проект.

                      Ниже приведены несколько команд, которые помогут запустить сервер БД на начальном этапе:

                      Состояние должно быть в активном режиме.

                      Установка веб-сервера

                      Возможно, в Ubuntu Server понадобится ещё установить пакет apache2-ssl

                      Состояние должно быть в активном режиме.

                      На другой машине в сети открываем браузер и в адресной строке впишем адрес сервера:

                      Должна отображаться страница по умолчанию.


                      Для активации SSL необходимо включить модуль ssl и активировать соответствующую страницу по умолчанию

                      Далее перезапускаем службу apache2

                      Возвращаемся на другую машину в сети в браузер и проверяем работу SSL

                      Должна отображаться такая же страница по умолчанию

                      Если страница отображается, значит всё сделано правильно.

                      Установка PHP

                      Пришло время установить интерпретатор PHP

                      После установки перезапускаем службу apache2

                      В директории /var/www/html создадим файл info.php и откроем его


                      Настройка виртуальных хостов

                      Создадим директории для хранения файлов сайтов ws30.local и test.ws30.local

                      и создадим соответствующие файлы конфигураций для обычных сайтов и SSL

                      Теперь откроем файл для сайта ws30.local

                      и впишем в него:

                      затем SSL для него же:

                      а также для test.ws30.local

                      Затем включаем эти сайты

                      и перезапускаем службу apache2





                      Подключение SSL сертификатов

                      Читайте также: