С чего начать настройку любого UNIX сервера

Обновлено Обновлено: Опубликовано Опубликовано:

Термины по теме: UNIX, Linux, FreeBSD, Ubuntu, CentOS

Описанные ниже действия рекомендуется выполнить в первую очередь после установки операционной системы на базе UNIX (например, Ubuntu, CentOS, FreeBSD) вне зависимости от того, как планируется ее использовать. В статье под системой CentOS подразумевается линейка RPM (CentOS, Red Hat, Fedora), под Ubuntu — deb (Ubuntu, Debian).

1. Работа с пользователями

Задаем пароль для пользователя root следующей командой:

passwd root

Создаем нового пользователя для работы с сервером.

а) если Rocky Linux / CentOS:

useradd kdo -G wheel -m

* где kdo — имя учетной записи; wheel — группа, которая позволяет входить в систему в привилегированном режиме (su).

б) если Linux Ubuntu:

useradd kdo -G sudo -m

* где kdo — имя учетной записи; sudo — группа, которая позволяет запускать команды в привилегированном (sudo) режиме.

в) если BSD:

pw useradd kdo -G wheel -m

После того, как создали пользователя, обязательно задаем пароль:

passwd kdo

2. Имя сервера

Linux:

vi /etc/hostname

server.dmosk.ru

или одной командой:

hostnamectl set-hostname server.dmosk.ru

BSD:

ee /etc/rc.local

hostname="server.dmosk.ru"

3. Обновление

Rocky Linux / CentOS / Red Hat

yum update

Ubuntu / Debian

apt-get update && apt-get upgrade

FreeBSD

pkg update && pkg upgrade

4. Правильное время

Настраиваем временную зону:

timedatectl set-timezone Europe/Moscow

* В данном примере мы задаем зону по московскому времени.
* Список всех доступных зон можно посмотреть командой timedatectl list-timezones. Если мы увидим только одну зону UTC, скорее всего, у нас установлена минимальная версия Ubuntu. Для установки всех зон вводим apt-get install tzdata.

Устанавливаем утилиту для синхронизации времени, разрешаем запуск демона и стартуем его.

а) если на системе Ubuntu / Debian:

apt-get install chrony

systemctl enable chrony

б) если на системе Rocky Linux / CentOS / Red Hat:

yum install chrony

systemctl enable chronyd --now

5. Обновление корневых сертификатов

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

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

6. Настройка vi (Debian или Ubuntu)

Некоторые дистрибутивы Linux используют версию vi, с которой работать не совсем удобно. Как правило, это относится к системам на основе deb.

Многие пользователи используют другие редакторы, например, nano. Но если мы хотим использовать, именно, vi, попробуем сделать работу с ним приятнее.

Tiny vi

Ставим пакет:

apt-get install vim vim.tiny

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

update-alternatives --config editor

Выбираем вариант с vim.tiny, например:

* 3            /usr/bin/vim.tiny    15        manual mode

* в данном примере, выбираем 3.

Выбираем вариант vi:

update-alternatives --config vi

Также выбираем вариант с vim.tiny, например:

* 2            /usr/bin/vim.tiny    15        manual mode

* в данном примере, выбираем 2.

Вводим команду:

alias vi="vim.tiny"

Добавим в файл:

vi /etc/bash.bashrc

* для всех.

... или:

vi ~/.bashrc

* для текущего пользователя.

... строку:

alias vi="vim.tiny"

Готово.

Set paste (вставка json и yaml)

При вставке текста с форматом специального назначения, например json и yaml, vi неправильно определяет синтаксис, что приводит к сбиванию формата строк.

Для решения проблемы нужно ввести команду :set paste.

Можно немного упростить процесс — добавляем в конфиг опцию set pastetoggle=<F3>.

а) для настройки всем пользователям:

vi /etc/vim/vimrc

б) только для текущего:

vi ~/.vimrc

Добавим строку:

set pastetoggle=<F3>

* в данном примере мы настроим быструю клавишу F3, при нажатии которой мы введем опцию set paste.

Теперь переходим в редактор, нажимаем F3, переходим в режим вставки (i) — можно вставлять код.

Позиция курсора после выхода из vim

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

Для решения проблемы открываем на редактирование:

а) для настройки всем пользователям:

vi /etc/vim/vimrc

б) только для текущего:

vi ~/.vimrc

Добавим строку:

set t_ti= t_te=

7. Автозавершение ввода команд

Значительно упрощает работу с консолью. Выполняется только на Linux — на BSD настроен по умолчанию.

Открываем на редактирование следующий файл:

vi /etc/inputrc

И добавляем:

set show-all-if-ambiguous On
"\e[A": history-search-backward
"\e[B": history-search-forward

Выходим из системы и входим снова для применения настроек.

8. Безопасность

Для Debian или Ubuntu стоит настроить брандмауэр. А для Rocky Linux / CentOS — отключить SELinux (если только мы не собираемся его настраивать).

Debian / Ubuntu

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

Разрешаем SSH:

iptables -I INPUT -p tcp --dport 22 -j ACCEPT

* если мы подключаемся к SSH по нестандартному порту, то меняе 22 на нужное значение.

Создаем правила для нормальной работы apt-get или yum:

iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

Разрешаем ICMP (для выполнения команды ping):

iptables -I INPUT -p icmp -j ACCEPT

Разрешаем все входящие на адрес локальной петли:

iptables -I INPUT -i lo -j ACCEPT

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

iptables -P INPUT DROP

Для сохранения правил ставим пакет iptables-persistent:

apt-get install iptables-persistent

Для сохранения правил вводим команду:

netfilter-persistent save

Rocky Linux / CentOS

В системах на базе RPM брандмауэр работает на запрет пакетов и не требует начальной настройки. Но в данных системах используется SELinux. Его, чаще, предпочитают отключать. Это делается двумя командами:

setenforce 0

sed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config

Подробнее в инструкции Как отключить SELinux. Если мы хотим его настроить, читаем инструкцию Настройка SELinux в CentOS.

# UNIX # Linux # FreeBSD # Операционные системы # Серверы # Настройки # Ubuntu
Дмитрий Моск — частный мастер
Был ли полезен этот ответ?

Да            Нет