Настройка сервера debian 10
Обновлено: 02.07.2024
Этот раздел поможет наглядно подготовить чистую систему Debian к полноценному использованию в качестве того, что вы выберите сами. Нижеуказанные настройки рекомендую выполнять в пошаговом режиме. Каждый блок проверен, теория, практика и описания подаются кратко, без излишеств. Если мало, подробности ищите в Google.
Настоятельно рекомендую использовать только чистый Debian, т.е. без "заранее подобранных наборов ПО".
Такой подход наиболее полно реализует преимущества Debian перед Ubuntu и Gentoo - оптимальное сочетание затрат на установку\настройку к эффективности\захламлённости ненужным ПО.
Разработка страницы завершена, новые рецепты добавляются по мере их изучения и отладки
Если есть что добавить, то смело дополняйте разделы новой информацией. Наши опечатки и ошибки в статье также правте смело, не нужно сообщать об этом на почту, просьба соблюдать стилевое оформление этой страницы и использовать разделители разделов (серые линии различной толщины).
- Подготовка свежеустановленной системы Debian к использованию
- Система
- Политика установки ПО
- Дата и время
- Настройка
- Синхронизация локально
- Синхронизация для клиентов в сети
- sudo
- Автологин в консоли с mingetty
- Автологин в консоли с стандартным agetty
- Глобальные параметры локализации системы
- Кириллица в консоли
- Удаление неиспользуемых файлов локализации
- GRUB2
- Сетевые настройки
- Базовая настройка
- Настройка в консольном интерфейсе wicd-curses
- Общие сведения
- Apf-firewall
- Vuurmuur
- Установка
- Настройка rsyslog
- Настройка
- Подсчёт трафика
- Решение проблем.
- Авторизация по ключам
- Генерация ключей
- Настройка сервера
- Настройка клиента
- Настройка Putty
- Тorrent
- SMB (CIFS)
- Корзина
- Аудит
- Принтеры
- Web интерфейс для администрирования
- Файловый менеджер
- Сессии в консоли
- Screen
- Эмулятор терминала
- guake
- SQL сервер
- Web-сервер
- Apache2
- Поддержка PHP5
- Поддержка PHP5
- Множество сайтов на одном сервере (virtual host)
- Лог доступа
- Примечание 1 (настройка aptitude)
- Примечание 2 (ошибка запуска сети)
- Примечание 3 (настройка мс)
- Примечание 4 (ошибка pcspkr)
- Примечание 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 это делается достаточно просто. Воспользуемся несколькими командами. Сначала обновим локальный индекс пакетов до последних изменений в репозиториях:
Посмотреть список пакетов, готовых к обновлению, можно с помощью команды:
Теперь выполним простое обновление всех пакетов системы:
Ключ upgrade выполняет только обновление одной версии пакета на другую, более свежую. Он не будет устанавливать или удалять пакеты, даже если это необходимо для обновления других. Это наиболее безопасный и надежный вариант обновления, но он может обновить не все. Например, с ее помощью не обновить ядро до более свежей версии.
Ключ dist-upgrade или full-upgrade (это одно и то же) в дополнение к 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
Теперь проверим установленный часовой пояс, время и включим автоматическую синхронизацию времени с удаленного сервера. Очень подробно этот вопрос я рассмотрел в отдельной статье - настройка времени в Debian.
Узнать дату, время, часовой пояс можно командой date:
Если все указано верно, то менять ничего не нужно. Если же у вас неправильное время или указан часовой пояс не соответствующий вашему, то настроить это можно следующим образом. Сначала обновим часовые пояса:
Теперь выберем правильный часовой пояс с помощью команды:
Выбирая соответствующие пункты визарда, указываете свой часовой пояс.
Дальше синхронизируем время с сервером времени в интернете. Для разовой или ручной синхронизации понадобится отдельная утилита. Установим ntpdate на сервер:
И синхронизируем время:
Если получаете ошибку:
Значит у вас уже работает служба ntp. Ее нужно остановить и обновить время вручную. Хотя если она работает, то у вас и так должно быть все в порядке.
Для того, чтобы время автоматически синхронизировалось без вашего участия с определенной периодичностью, используется инструмент ntp. Установим его:
После установки он сам запустится и будет автоматически синхронизировать часы сервера. Проверим, запустился ли сервис ntpd:
Настройка firewall (iptables) в Debian
В качестве firewall в Debian по-умолчанию используется iptables, его и будем настраивать. Изначально фаервол полностью открыт и пропускает весь трафик. Проверить список правил iptables можно следующей командой:
Обращаю пристальное внимание на то, что настраивать firewall без прямого доступа к консоли сервера не следует. Особенно, если вы не очень разбираетесь в этом и копируете команды с сайта. Шанс ошибиться очень высок. Вы просто потеряете удаленный доступ к серверу.Создадим файл с правилами iptables:
Очень подробно вопрос настройки iptables я рассмотрел отдельно, рекомендую ознакомиться. Хотя в примере другая ОС linux, принципиальной разницы нет, настройки iptables абсолютно одинаковые, так как правила одни и те же.
Добавляем набор простых правил для базовой настройки. Все необходимое вы потом сможете сами открыть или закрыть по аналогии с существующими правилами:
Даем файлу права на запуск:
Проверяем, что правила записались в файл /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: 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 сертификатов
Читайте также:
- Apache2