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

15 августа, 2014 12:57 пп 18 669 views | Комментариев нет

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

1: Войдите как root-пользователь

Получив свой IP-адрес и root-пароль, войдите на сервер как главный пользователь (root). Для этого используйте команду (замените выделенный IP своим IP-адресом):

ssh [email protected]

Терминал вернет что-то вроде:

The authenticity of host "111.22.33.444 (111.22.33.444)" can"t be established.
ECDSA key fingerprint is 79:95:46:1a:ab:37:11:8e:86:54:36:38:bb:3c:fa:c0.
Are you sure you want to continue connecting (yes/no)?

Выберите yes и введите свой root-пароль.

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

2: Измените пароль

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

Что касается устанавливаемых паролей, система CentOS очень осторожна. Потому после ввода нового пароля может появиться извещение BAD PASSWORD. Можно либо установить более сложный пароль, либо же проигнорировать сообщение: на самом деле, CentOS примет даже слишком простой или короткий пароль, хотя и предложит использовать более сложную комбинацию.

3: Создайте нового пользователя

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

Итак, создайте нового пользователя; для этого используйте следующую команду (замените demo своим именем пользователя):

adduser demo

Теперь создайте пароль для этого пользователя (опять же, замените demo именем только что созданного пользователя):

passwd demo

4: Root-привилегии

На данный момент все права администратора принадлежат root-пользователю. Чтобы иметь возможность постоянно использовать новую учетную запись, нужно передать новому пользователю (demo) все root-привилегии.

Для выполнения задач с привилегиями root нужно начинать команду с sudo. Эта фраза полезна по двум причинам: 1) она защищает систему от разрушающих ошибок, допущенных пользователем; 2) она хранит все запущенные с sudo команды в файле /var/log/secure, который позже можно просмотреть.

Теперь нужно изменить настройки sudo; для этого используйте текстовый редактор CentOS по умолчанию, который называется vi:

Найдите раздел User privilege specification, который выглядит так:

# User privilege specification
root ALL=(ALL) ALL

После строки с привилегиями root внесите следующую строку, которая передаст все привилегии новому пользователю (чтобы начать ввод текста в vi, нажмите i):

demo ALL=(ALL) ALL

Чтобы завершить ввод текста, нажмите Esc; затем введите:, wq, Enter, чтобы сохранить и закрыть файл.

5: Настройте SSH (дополнительно)

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

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

sudo vi /etc/ssh/sshd_config

Найдите следующие разделы и внесите в них соответствующие изменения:

Port 25000
PermitRootLogin no

Port : хотя по умолчанию используется порт 22, его номер можно заменить любым другим в диапазоне от 1025 до 65536. В данном руководстве используется SSHD-порт 25000. Обратите внимание: новый номер порта нужно обязательно запомнить/записать, поскольку он понадобится для входа на сервер через SSH.

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

Чтобы SSH мог использовать только конкретный пользователь, добавьте эту строку в нижней части документа (замените demo своим именем пользователя):

AllowUsers demo

Затем сохраните изменения и закройте файл.

Перезапуск SSH

Чтобы активировать внесенные изменения, перезапустите сервис SSHD:

sudo systemctl reload sshd.service

Чтобы протестировать новые настройки (пока что не выходите из учетной записи root), откройте терминал и войдите на сервер как новый пользователь (не забудьте указать правильный IP-адрес и порт):

ssh -p 25000 demo @111.22.33.444

Должно появиться извещение:

Многие и не подозревают, что все сервисы и услуги, которыми мы пользуемся в Сети, базируются на точно таких же компьютерах, что работают в наших квартирах, только настроены совершенно иначе, не могут похвастать красивым графическим интерфейсом и управляются с помощью специализированных команд. Эти компьютеры именуются серверами. Люди осведомленные, конечно, знают, как произвести настройку и «поднять» собственный сервер. Тем же, кто в этом деле новичок, необходимо проштудировать не один форум, чтобы окончательно освоиться. Одно известно точно: для настройки недорогого и стабильного сервера необходимо выбрать такую же недорогую и стабильную основу, а именно операционную систему на основе Linux. Выбор большинства падает на CentOS 7. В данном материале собрана краткая информация о том, как произвести установку CentOS 7 и создать на ее основе базовый сервер.

Что такое CentOS?

CentOS - Linux, главным достоинством которого является стабильность. Данная система, как и ближайший конкурент Fedora, была построена на исходном коде платного дистрибутива Red Hat Linux. Последний, в свою очередь, является идеальным инструментом для системных администраторов, в работе которых требуется предсказуемость, стабильная работа и удобное управление.

CentOS не может похвастать самыми последними версиями пакетов, в отличие от той же Fedora, но каждый системный администратор будет этому только рад, когда Fedora или другой современный дистрибутив со своими свежими пакетами «упадет», а CentOS продолжит спокойно работать независимо от обстоятельств. В данном материале вкратце описывается процесс настройки и установки CentOS 7, основные особенности системы и рабочая среда.

Загрузка CentOS 7

Перед установкой CentOS 7 необходимо загрузить дистрибутив операционной системы на официальном сайте.

Существует несколько вариантов загрузки:

  • ISO-файл для записи на диск - идеальный вариант для большинства с полноценной системой и графическим интерфейсом;
  • ISO-файл для установки с жесткого диска и USB-флешки - самый полный комплект пакетов;
  • ISO для минимальной выгрузки - содержит в себе только базовую операционную систему с минимальным набором пакетов и без графического интерфейса (на этой версии дистрибутива можно без проблем «поднять» сервер, не устанавливая ничего лишнего).

В числе загрузочных файлов можно отыскать два «живых» образа диска с двумя разными рабочими средами (KDE и Gnome). Эти образы подойдут тем, кто хочет опробовать систему в деле до установки на жесткий диск.

Установка CentOS 7

Даже при выборе минимального образа CentOS 7 предложит воспользоваться графическим интерфейсом для установки системы на жесткий диск.

Процесс этот проходит в 6 основных шагов:

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

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

Установка сервера CentOS 7

Здесь вкратце поговорим о том, как развернуть универсальный сервер на базе CentOS 7 с минимальным набором необходимых инструментов, которые требуются для его полноценной работы.

Итак, для начала необходимо отыскать сам сервер. Его можно либо нанять в Сети (от 250 рублей), либо настроить на локальной машине. Единственное, что потребуется, - это данные SSH, которые будут использоваться для входа на сервер. Возьмем в качестве примера абстрактный почтовый адрес [email protected] и имя пользователя c паролем тоже centos.

Начать конфигурацию стоит с создания пользователя и выдачи ему всех необходимых прав:

  • Добавляем пользователя командой useradd centos;
  • Создаем для него уникальный пароль - passwd centos;
  • Заставляем систему отправлять root-почту этому пользователю - vi /etc/aliases;
  • Даем пользователю права sudo командой visudo (командная строка отзовется подтверждением операции).

После нужно отключить Firewall и SeLinux. Это необходимо сделать для того, чтобы случайно не лишить себя прав доступа к серверу. Приостановить работу Firewall можно, используя команды systemctl stop firewalld и systemctl disable firewalld. Ситуация с SeLinux немного сложнее: необходимо открыть соответствующий конфигурационный файл в текстовом редакторе Vi с помощью команды vi /etc/selinux/config, разыскать там строку SELINUX=enabled и заменить на SELINUX=disabled. Затем нужно перезагрузить систему.

Следующим этапом настройки будет установка SSH.

Для этого необходимо:

  • Добавить соответствующие ключи с севера [email protected].
  • Изменить порт в конфигурационном файле /etc/ssh/sshd_config на Port 222.
  • Запретить вход на сервер без прав Root, вписав строку PermitRootLogin without-password.
  • И перезагрузить сервер командой systemctl restart sshd.

Также нужно обновить все системы и установить хранилища epel и rpmforge. Для этого необходимо:

  • Обновить все системные элементы командой yum update.
  • Загрузить новые системные компоненты командой yum -enablerepo=cr update.
  • Если существующих компонентов недостаточно, можно загрузить более современные версии epel и rpmforge, для этого вводим команду yum -y install *адрес репозитория, где хранится нужная версия программного обеспечения* (подходящий репозиторий можно легко найти на профильных ресурсах).

Проверка сервисов, настройка Apache и PHP

Для установки дополнительных компонентов в существующий каркас сервера потребуется проверка и отключение некоторых сервисов и MTA-служб.

Для этого нужно:

  • Проверить, что из служб уже запущено, командой systemctl -t service.
  • Отключить все ненужные и запретить их запуск, например для установки почтовых служб потребуется отключение postfix командами systemctl stop postfix и systemctl disable postfix.

Затем нужно загрузить Apache и PHP, необходимые для полноценного функционирования нашего сервера.

Итак, для этого:

  • Устанавливаем пакет Apache командой yum -y install httpd.
  • Вносим изменения в конфигурационный файл (там необходимо указать адрес сервера, имя, подписи и прочее).
  • Запускаем Apache и включаем функцию автозапуска командами systemctl start httpd и systemctl enable httpd.
  • Затем добавляем PHP командой yum -y install php php-mbstring php-near.
  • Перезагружаем Apache командой systemctl restart httpd.

Установка системы управления БД MySql

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

Для установки MySql необходимо:

  • Загрузить клиент MySql с официального репозитория утилиты с помощью команды wget *ссылка на файл с клиентом MySql*.
  • Затем установить его в sudo rpm -ivh *полное название rpm файла с нужной версией MySql* и sudo yum install mysql-server.
  • Затем дважды подтвердить операцию, введя в командную строку Y.

мониторинга Zabbix

Для установки Zabbix в CentOS 7 необходимо найти свежую версию клиента на официальном сайте разработчика и затем инсталлировать его в системе.

Для этого необходимо:

  • Добавить репозиторий командой rpm Uvh *ссылка на rpm-файл с актуальной версией Zabbix*.
  • Обновить список доступного программного обеспечения командой yum update.
  • Затем установить клиент Zabbix в систему командой yum install zabbix-agent.
  • После остается проверить версию клиента (нужна третья) и утвердительно ответить на все запросы, вводя Y в командной строке.

Установка почтового сервера Zimbra

Перед тем как произвести установку Zimbra в CentOS 7, необходимо подготовить для этого систему.

Итак, нужно проделать следующее:

  • Правильно настроить файл etc/hosts и hostname.
  • Разрешить в iptables все порты Zimbra.
  • Выключить SeLinux.
  • Выключить все MTA-службы.
  • Обновить операционную систему командой yum update -y.
  • Затем нужно загрузить соответствующие пакеты командой yum install perl perl-core ntpl nmap sudo libidn gmp.
  • Затем - саму утилиту Zimbra *ссылка на файл с утилитой Zimbra актуальной версии*.
  • Распаковать файл командой tar и перейти в соответствующую директорию командой cd.
  • После чего нужно запустить процесс установки командой./install.sh —platform-override.

Настройка сети в CentOS 7

Который описан в соответствующей статье, необходимо выполнить ряд базовых настроек. Одна из которых — настройка сетевых подключений. Рассмотрим по порядку данную операцию.

У начинающих пользователей Linux могут возникнуть затруднения на самом первом этапе — не получится проверить текущее состояние сети командой ifconfig (будет выдаваться сообщение — команда не найдена). Это не проблема, это особенность работы CentOS, поэтому данную команду необходимо запускать от суперпользователя (администратора) командой:

Причина заключается в том, что обычные пользователи системы и root пользователь имеют различные переменные окружения PATH (вы можете посмотреть PATH пользователя при помощи echo $PATH). После ввода команды Linux, оболочка будет искать пользовательский PATH, чтобы попытаться найти команду для запуска. Она начинает поиск в каждой директории указанной в PATH, пока цель не будет найдена. Команды обычных пользователей обычно расположены в /usr/local/bin, /usr/bin и /bin. А команды пользователя root распологаются в основном в /usr/local/sbin, /usr/sbin, /sbin и корневой PATH это отражает. Поэтому, когда вы становитесь суперпользователем при помощи «su -«, то вы также принимаете и новый путь PATH к основным командам. А используя только ‘su’, сохраняется пользовательский путь PATH по умолчанию, следовательно, при попытке выполнить программу расположенную в /usr/local/sbin, /usr/sbin, /sbin выдаст результат: ‘command not found’ error. Для более детального объяснения, смотрите справочную страницу (man bash), особенно раздел login shells. Таким образом, вы или должны указывать полный путь к команде (пример — /sbin/ifconfig) при использовании ‘su’, либо использовать ‘su -‘, когда становитесь root-ом.

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

При работе в ОС семейства Linux, необходимо знать и понимать, что все аппаратные и программные устройства, а также различные параметры самой операционной системы и программ хранятся в конфигурационных файлах. Таким образом, конфигурационные файлы интерфейсов управляют программными интерфейсами отдельных сетевых устройств. При загрузке ОС происходит считывание этих файлов и информации в ней, на основе которой и происходит определение необходимых (используемых и настроенных) интерфейсов, а также их запуск.

Такие файлы обычно называются ifcfg-<имя> , где <имя> относится к имени устройства, которое управляется этим конфигурационным файлом. Как было сказано выше — все интерфейсы и параметры ОС хранятся в различных специализированных файлах, что дает администратору удобною и гибкую возможность настройки параметров ОС и оборудования.

Настройка сетевого интерфейса

Настроим сетевой интерфейс путем редактирования конфигурационного файла, который расположен в директории /etc/sysconfig/network-scripts/

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

# vi /etc/sysconfig/network-scripts/ifcfg-eth0

Напоминаю, чтобы внести изменения в содержание файла в редакторе vi — необходимо:

  • нажать клавишу «i» или «Insert»
  • для выхода из режима редактирования — «esc»
  • для сохранения внесенных изменений — «Shift+:» затем «wq» и нажать «Enter»

Для сети со статическим IP адресом:

DEVICE=»eth0″
BOOTPROTO=»none»
ONBOOT=»yes»
IPADDR=»192.168.1.100″
NETMASK=»255.255.255.0″
GATEWAY=»192.168.1.1″

Для сети с использованием DHCP:

DEVICE=»eth0″
BOOTPROTO=»dhcp»
ONBOOT=»yes»

Комментарии выполненных действий:

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

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

# vi /etc/sysconfig/network

Вводим следующие данные:

NETWORKING=»yes»
HOSTNAME=»Имя.Вашего.Сервера» или рабочей станции

Для корректного применения настроек (чтобы они вступили в силу) выполняем перезапуск сети:

# /etc/init.d/network restart

Если изменения в файле /etc/sysconfig/network не требуются, тогда можно рестартануть только интерфейс:

# ifdown eth0 && ifup eth0

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

ifconfig eth0 192.168.Х.Х netmask 255.255.255.0

Для отключения сетевого интерфейса выполните:

Если же вы хотите, чтобы настройки были получены автоматически по DHCP, то выполните следующую команду:

В данном случае, чтобы прекратить работу сетевого интерфейса необходимо будет завершить работу программы dhclient:

НО! При настройке сети подобным образом, после перезагрузки конфигурирование придется производить заново.

Настройка DNS

Открываем файл ‘resolv.conf’ :

Установка операционной системы CentOS 7 во многом отличается от таковой процедуры с другими дистрибутивами на базе ядра Linux, поэтому даже опытный пользователь может столкнуться со множеством проблем при выполнении этой задачи. К тому же система настраивается именно во время инсталляции. Хоть ее настройкой можно заняться и после завершения этого процесса, в статье будет представлена инструкция, как это сделать по ходу установки.

Инсталляция CentOS 7 может выполняться с флешки или CD/DVD, поэтому предварительно подготовьте накопитель, минимум, на 2 Гб.

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

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

При выборе отталкивайтесь от объема вашего накопителя. Так, если он вмещает 16 Гб, выберите «Everything ISO» , тем самым вы будете устанавливать операционную систему со всеми компонентами сразу.

Примечание: если вы собираетесь устанавливать CentOS 7 без подключенного интернета, необходимо выбирать именно этот способ.

Версия «DVD ISO» весит около 3,5 Гб, поэтому загружайте ее, если у вас есть флешка или диск минимум на 4 Гб. «Minimal ISO» — самый легковесный дистрибутив. Весит он около 1 Гб, так как в нем отсутствует ряд компонентов, например, нет выбора графической среды, то есть если у вас не установлено интернет-соединение, то вы установите серверную версию CentOS 7.

Примечание: после того как сеть будет настроена, из серверной версии ОС можно установить графическую оболочку рабочего стола.

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

Шаг 2: Создание загрузочного накопителя

Сразу же после того как образ дистрибутива будет загружен на компьютер его необходимо записать на накопитель. Как было отмечено выше, для этого можно использовать как флешку, так и CD/DVD. Существует множество способов выполнения этой задачи, со всеми ими вы можете ознакомиться у нас на сайте.

Шаг 3: Запуск ПК с загрузочного накопителя

Когда у вас на руках уже есть накопитель с записанным образом CentOS 7, необходимо вставить его в ПК и произвести запуск. На каждом компьютере это делается по-разному, это зависит от версии БИОС. Ниже приведены ссылки на все необходимые материалы, где рассказано как определить версию БИОС и как запустить компьютер с накопителя.

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

Запустив компьютер, вы увидите меню, в котором необходимо определить способ инсталляции системы. На выбор есть два варианта:

  • Install CentOS Linux 7 - обычная установка;
  • Test this media & Install CentOS Linux 7 - установка после проверки накопителя на критичные ошибки.

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

Весь процесс предварительной настройки системы можно разбить на этапы:

  1. Выберите из перечня язык и его разновидность. От вашего выбора будет зависеть язык текста, который будет отображаться в установщике.
  2. «Дата и время» .
  3. В появившемся интерфейсе выберите свой часовой пояс. Это сделать можно двумя способами: нажать на карте по своему населенному пункту или же выбрать его из списков «Регион» и «Город» , что находится в верхнем левом углу окна.

    Здесь же можно определить формат отображаемого времени в системе: 24-часовое или AM/PM . Соответствующий переключатель находится в нижней части окна.

    После выбора часового пояса нажмите кнопку «Готово» .

  4. В главном меню нажмите по пункту «Клавиатура» .
  5. Из списка, что находится в левом окне, перенесите нужные раскладки клавиатуры в правое. Для этого выделите ее и нажмите на соответствующую кнопку в нижней части.

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

    Еще вы можете поменять клавиши для изменения раскладки в системе. Для этого вам надо нажать «Параметры» и указать их вручную (по умолчанию стоит Alt+Shift ). После проведения настройки кликните по кнопке «Готово» .

  6. В главном меню выберите пункт «Network & Host Name» .
  7. Поставьте переключатель сети, который находится в правом верхнем углу окна, в положение «Включено» и впишите имя хоста в специальном поле для ввода.

    Если параметры Ethernet вы получаете не в автоматическом режиме, то есть не по протоколу DHCP, то их вам нужно ввести вручную. Для этого нажмите по кнопке «Настроить» .

    На вкладке «Ethernet» из списка выберите свой сетевой адаптер, к которому подключен кабель провайдера.

    Теперь перейдите на вкладку «Параметры IPv4» , определите метод настройки как ручной и впишите в поля для ввода все данные, предоставленные вам провайдером.

  8. В меню кликните «Выбор программ» .
  9. В списке «Базовое окружение» выберите то окружение рабочего стола, которое хотите видеть в CentOS 7. Наряду с его наименованием, вы можете прочитать небольшое описание. В окне «Дополнения для выбранного окружения» выберите то программное обеспечение, которое желаете установить в системе.
  10. Примечание: все указанное ПО можно будет загрузить после завершения установки операционной системы.

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

Шаг 5: Разметка дисков

Разметка диска в установке операционной системы - это важнейший этап, поэтому стоит внимательно ознакомиться с представленным ниже руководством.

Изначально нужно перейти непосредственно в окно разметки. Для этого:


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


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

Далее необходимо будет создать разделы для установки CentOS 7. Сделать это можно двумя способами: автоматически и вручную. Первый подразумевает выбор пункта «Нажмите здесь для их автоматического создания» .

Но стоит заметить, что установщик предлагает создать 4 раздела: домашний, корневой, /boot и раздел подкачки. При этом он автоматически выделит под каждый из них определенное количество памяти.

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


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

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

Зная, как создавать разделы, разметьте диск по своему желанию. И нажмите кнопку «Готово» . Как минимум рекомендуется создавать корневой раздел, обозначающийся символом «/» и раздел подкачки — «swap» .

После нажатия «Готово» появится окно, где будут перечислены все внесенные изменения. Внимательно ознакомьтесь с отчетом и, не заметив ничего лишнего, нажмите кнопку «Принять изменения» . Если в списке есть расхождения с ранее выполненными действиями, нажмите кнопку «Отменить и вернуться к настройке разделов» .

После проведения разметки дисков остается последний, завершающий этап установки операционной системы CentOS 7.

Шаг 6: Завершение установки

Выполнив разметку диска, вы попадете в главное меню установщика, где необходимо нажать кнопку «Начать установку» .

После этого вы попадете в окно «Пользовательские настройки» , где следует выполнить несколько несложных действий:


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

Как только полоса дойдет до конца, вам необходимо перезагрузить компьютер. Для этого нажмите по одноименной кнопке, предварительно вынув флешку или CD/DVD-диск с образом ОС из компьютера.

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

Если CentOS 7 вы устанавливали рядом с другой операционной системой, то строк в меню будет больше. Для запуска только что установленной системы вам необходимо выбрать пункт «CentOS Linux 7 (Core), with Linux 3.10.0-229.e17.x86_64» .

Заключение

После того как вы запустите CentOS 7 через загрузчик GRUB, необходимо выбрать созданного пользователя и ввести его пароль. По итогу вы попадете на рабочий стол, если таковой был выбран для установки в процессе настройки установщика системы. Если вы выполняли каждое действие, изложенное в инструкции, то настройка системы не требуется, так как она была выполнена ранее, в противном случае некоторые элементы могут работать некорректно.

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

  1. Перечислить начальные настройки centos, которые я выполняю на свежеустановленном сервере.
  2. Показать примеры конфигураций, которые я использую в типовой настройке.
  3. Дать советы по настройке centos на основе своего опыта работы с системой.
  4. Привести список типовых программ и утилит, которые помогают администрировать сервер.

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

Введение

После выхода нового релиза Centos 8, стало тяжело в единой статье описывать начальную настройку обоих серверов, но мне не захотелось разделять статью, так как на нее идет много входящих ссылок из разных мест. Удобнее поддерживать общий материал по обоим релизам, чем я и займусь. Заодно наглядно будут видны отличия двух версий, которые пару лет после выхода centos 8 будут актуальны обе и использовать придется и ту, и другую версию, в зависимости от ситуации.

В Centos 7 используется пакетный менеджер yum , а в Centos 8 — dnf . При этом оставили символьную ссылку с yum на dnf, так что можно писать как первое название, так и второе. Для единообразия я везде буду использовать yum, а вас предупреждаю, просто чтобы вы понимали, почему я делаю именно так. Реально в CentOS 8 используется dnf, это другой, более современный пакетный менеджер, которые позволяет работать с разными версиями одного и того же софта. Для этого используются отдельные репозитории, которые появились для centos 8.

Начальная настройка CentOS

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

Обновляем систему

# yum update

Для удобства администрирования, я всегда устанавливаю Midnight Commander, или просто mc:

# yum install mc

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

# cp /usr/share/mc/syntax/sh.syntax /usr/share/mc/syntax/unknown.syntax

Дальше нам пригодятся сетевые утилиты. В зависимости от набора начальных пакетов, которые вы выбираете при установке системы, у вас будет тот или иной набор сетевых утилит. Вот список тех, к которым привык лично я — ifconfig, netstat, nslookup и некоторые другие. Если она вам нужны, так же как и мне, то предлагаю их установить отдельно, если они еще не стоят. Если вам они особо не нужны и вы ими не пользуетесь, то можете пропустить их установку. Проверим, что у нас имеется в системе на текущий момент

# ifconfig

Если увидите ответ:

Bash: ifconfig: command not found

Значит утилита не установлена. Вместо ifconfig в CentOS теперь утилита ip . Это относится не только к центос. Такая картина почти во всех популярных современных дистрибутивах Linux. Я с давних времен привык к ifconfig, хотя последнее время практически не пользуюсь. Мне всегда нравилось, что в различных дистрибутивах линукс все примерно одинаковое. С помощью ifconfig можно настроить сеть не только в linux, но и в freebsd. Это удобно. А когда в каждом дистрибутиве свой инструмент это не удобно. Хотя сейчас это уже не очень актуально, так как с Freebsd больше не работаю, а утилита ip есть во всех дистрибутивах linux. Тем не менее, если вам нужен ifconfig, то можете установить пакет net-tools , в который она входит:

# yum install net-tools

Чтобы у нас работали команды nslookup или, к примеру, host необходимо установить пакет bind-utils . Если этого не сделать, то на команду:

# nslookup

Будет вывод:

Bash: nslookup: command not found

Так что устанавливаем bind-utils:

# yum install bind-utils

Отключить SELinux

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

# mcedit /etc/sysconfig/selinux

меняем значение

SELINUX=disabled

Чтобы изменения вступили в силу, можно перезагрузиться:

# reboot

А если хотите без перезагрузки применить отключение SELinux, то выполните команду:

# setenforce 0

Постоянно получаю очень много критики на тему отключения SELinux. Я знаю, как он работает, умею его настраивать. Это реально не очень сложно и освоить не трудно. Это мой осознанный выбор, хотя иногда я его настраиваю. Мой формат работы с системой таков, что SELinux мне чаще всего не нужен, поэтому я не трачу на него время и в базовой настройке centos отключаю. Безопасность системы — комплексная работа, особенно в современном мире web разработки, где правят бал микросервисы и контейнеры. SELinux нишевый инструмент, которые нужен не всегда и не везде. Поэтому в данном статье ему не место. Кому нужно, будет отдельно включать SELinux и настраивать.

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

Продолжаем базовую настройку centos после установки. Теперь произведем , если по какой-то причине не сделали это во время установки, либо если вам надо их изменить. В общем случае, сеть в Centos настраивается с помощью NetworkManager и его консольной утилиты nmtui . Она идет в базовой устновке системы. Там простой и понятный графический интерфейс, так что рассказывать нечего. Я больше привык настраивать сеть через конфигурационные файлы network-scripts. В centos 7-й версии они есть из коробки, в 8-й версии их убрали. Чтобы воспользоваться ими для настройки сети, надо отдельно установить пакет network-scripts .

# yum install network-scripts

Теперь можно выполнить настройку сети. Для этого открываем файл /etc/sysconfig/network-scripts/ifcfg-eth0

# mcedit /etc/sysconfig/network-scripts/ifcfg-eth0

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

TYPE="Ethernet" BOOTPROTO="dhcp" DEFROUTE="yes" IPV4_FAILURE_FATAL="no" NAME="eth0" DEVICE="eth0" ONBOOT="yes"

Для настройки статического ip адреса настройки будут следующие.

TYPE="Ethernet" BOOTPROTO="none" DEFROUTE="yes" IPV4_FAILURE_FATAL="no" NAME="eth0" DEVICE="eth0" ONBOOT="yes" IPADDR=192.168.167.117 DNS1=192.168.167.113 PREFIX=28 GATEWAY=192.168.167.113

В поле IPADDR вводим свой адрес, в PREFIX маску сети, в GATEWAY шлюз, DNS адрес днс сервера. Сохраняем файл и перезапускаем сеть для применения настроек:

# systemctl restart network

Настраиваем firewall

Добавление репозиториев

При настройке centos частенько нужен софт, которого нет в стандартной репе. Для инсталляции дополнительных пакетов необходимо . Наиболее популярный это EPEL. Раньше был rpmforge, но уже как несколько лет закрыт. Про него все позабыли. Подключаем репозиторий EPEL. С ним все просто, он добавляется из стандартной репы:

# yum install epel-release

Так же для CentOS 7 крайне полезен репозиторий REMI, который позволяет установить больее свежие версии php, в отличие от тех, что есть в стандартном репозитории. Напомню, что это версия php 5.4, которая уже никуда не годится и снята с поддержки.

# rpm -Uhv http://rpms.remirepo.net/enterprise/remi-release-7.rpm

Для Centos 8 remi пока не актуален, но думаю, что это временно. В принципе, мне этих двух репозиториев в centos обычно хватает в общем случае. Другие подключаются уже под конкретные нужды для установки различного софта.

Настройка хранения истории в bash_history

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

  1. По-умолчанию, сохраняются только последние 1000 команд. Если их будет больше, то более старые будут удаляться и заменяться новыми.
  2. Не указаны даты выполнения команд, только их список в порядке выполнения.
  3. Файл со списком команд обновляется после завершения сессии. При параллельных сессиях часть команд может быть утеряна.
  4. Сохраняются абсолютно все команды, хотя в хранении некоторых нет никакого смысла.

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

# history

и увидеть пронумерованный список. Быстро найти конкретную команду, можно с помощью фильтрации только нужных строк, например вот так:

# history | grep yum

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

Export HISTSIZE=10000 export HISTTIMEFORMAT="%h %d %H:%M:%S " PROMPT_COMMAND="history -a" export HISTIGNORE="ls:ll:history:w:htop"

Первый параметр увеличивает размер файла до 10000 строк. Можно сделать и больше, хотя обычно хватает такого размера. Второй параметр указывает, что необходимо сохранять дату и время выполнения команды. Третья строка вынуждает сразу же после выполнения команды сохранять ее в историю. В последней строке мы создаем список исключений для тех команд, запись которых в историю не требуется. Я привел пример самого простого списка. Можете дополнить его на свое усмотрение.

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

# source ~/.bashrc

По настройке хранения истории команд все. В файле .bashrc можно много чего настроить интересного. Я одно время увлекался и экспериментировал, но потом все забросил, так как не имеет смысла. Работая с серверами заказчиков я чаще всего вижу дефолтный bash, поэтому лучше привыкать и работать именно в нем. А отдельные настройки и украшательства это удел личных компьютеров и серверов. Не рабочих. Так что больше я ничего не настраивать по стандарту в centos сервере в этом плане.

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

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

Yum-cron

Для автоматической проверки обновлений в Centos 7 нам поможет утилита yum-cron . Ставится она традиционно через yum из стандартного репозитория.

# yum install yum-cron

После установки yum-cron создается автоматическое задание на выполнение утилиты в /etc/cron.daily и /etc/cron.hourly . По-умолчанию, утилита скачивает найденные обновления, но не применяет их. Вместо этого, администратору на локальный почтовый ящик root отправляется уведомление об обновлениях. Дальше вы уже в ручном режиме заходите и решаете, устанавливать обновления или нет в удобное для вас время. Мне такой режим работы видится наиболее удобным, поэтому я не меняю эти настройки.

Настраивать yum-cron можно через, конфигурационные файлы, которые находятся по адресу /etc/yum/yum-cron.conf и yum-cron-hourly.conf . Они неплохо прокомментированы, так что в подробных разъяснениях не нуждаются. Обращаю внимание на раздел , где можно указать параметры отправки сообщений. По-умолчанию стоит отправка почты через локальный хост. Можно тут изменить параметры и отправлять сообщения через сторонний почтовый сервер. Но вместо этого лично я предпочитаю глобально для всего сервера настроить пересылку локальной почты root на внешний почтовый ящик через авторизацию на другом smtp сервере.

Dnf-automatic

Как я уже говорил ранее, в Centos 8 используется другой пакетный менеджер — dnf. Настройка обновления пакетов там выполняется через утилиту dnf-automatic . Поставим ее и настроим.

# yum install dnf-automatic

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

# systemctl list-timers *dnf-*

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

# systemctl enable --now dnf-automatic.timer

Дефолтный таймер настроен на запуск dnf-automatic через час после загрузки сервера и ежедневное повторение. Конфиг таймера живет тут — /etc/systemd/system/multi-user.target.wants/dnf-automatic.timer .

Конфиг для dnf-automatic живет в /etc/dnf/automatic.conf . По-умолчанию он только скачивает обновления, но не применят их. Конфиг хорошо прокомментирован, так что можете его настроить так, как пожелаете. Отдельных пояснений не требуется. Настраивайте обновление пакетов системы на свое усмотрение. Как я уже сказал, автоматически только качаю их. Установку всегда держу под контролем с ручным управлением.

Отключаем флуд сообщений в /var/log/messages

Продолжая настройку centos, исправим одно небольшое неудобство. В дефолтной установке системы 7-й версии, весь ваш системный лог /var/log/messages через некоторое время работы сервера будет забит следующими записями.

Oct 16 14:01:01 xs-files systemd: Created slice user-0.slice. Oct 16 14:01:01 xs-files systemd: Starting user-0.slice. Oct 16 14:01:01 xs-files systemd: Started Session 14440 of user root. Oct 16 14:01:01 xs-files systemd: Starting Session 14440 of user root. Oct 16 14:01:01 xs-files systemd: Removed slice user-0.slice. Oct 16 14:01:01 xs-files systemd: Stopping user-0.slice. Oct 16 15:01:01 xs-files systemd: Created slice user-0.slice. Oct 16 15:01:01 xs-files systemd: Starting user-0.slice. Oct 16 15:01:01 xs-files systemd: Started Session 14441 of user root. Oct 16 15:01:01 xs-files systemd: Starting Session 14441 of user root. Oct 16 15:01:01 xs-files systemd: Started Session 14442 of user root. Oct 16 15:01:01 xs-files systemd: Starting Session 14442 of user root. Oct 16 15:01:01 xs-files systemd: Removed slice user-0.slice. Oct 16 15:01:01 xs-files systemd: Stopping user-0.slice. Oct 16 16:01:01 xs-files systemd: Created slice user-0.slice. Oct 16 16:01:01 xs-files systemd: Starting user-0.slice. Oct 16 16:01:01 xs-files systemd: Started Session 14443 of user root. Oct 16 16:01:01 xs-files systemd: Starting Session 14443 of user root. Oct 16 16:01:01 xs-files systemd: Removed slice user-0.slice.

В Centos 8 я их не заметил, поэтому там ничего делать не надо. Никакой практической пользы сообщения не несут, поэтому отключим их. Для этого создадим отдельное правило для rsyslog, где перечислим все шаблоны сообщений, которые будем вырезать. Разместим это правило в отдельном файле /etc/rsyslog.d/ignore-systemd-session-slice.conf .

# cd /etc/rsyslog.d && mcedit ignore-systemd-session-slice.conf if $programname == "systemd" and ($msg contains "Starting Session" or $msg contains "Started Session" or $msg contains "Created slice" or $msg contains "Starting user-" or $msg contains "Starting User Slice of" or $msg contains "Removed session" or $msg contains "Removed slice User Slice of" or $msg contains "Stopping User Slice of") then stop

Сохраняем файл и перезапускаем rsyslog для применения настроек.

# systemctl restart rsyslog

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

Установка iftop, atop, htop, lsof на CentOS

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

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

# yum install iftop

И два интересных диспетчера задач, я чаще всего пользуюсь htop, но иногда пригодится и atop. Ставим оба, сами посмотрите, разберетесь, что вам больше нравится, подходит:

# yum install htop # yum install atop

Для вывода информации о том, какие файлы используются теми или иными процессами, советую поставить утилиту lsof . Она скорее всего рано или поздно пригодится, когда будете диагностировать работу сервера.

# yum install wget bzip2 traceroute gdisk

На этом у меня все. Базовая настройка CentOS закончена, можно приступать к установке и настройке основного функционала.

Настройка системной почты

В завершение настройки сервера CentOS сделаем так, что бы почта, адресованная локальному root, отправлялась через внешний почтовый сервер на выбранный почтовый ящик. Если этого не сделать, то она будет локально складываться в файл /var/spool/mail/root . А там может быть важная и полезная информация. Настроим ее отправку в ящик системного администратора.

Подробно об этом я рассказал в отдельной статье — . Здесь кратко только команды и быстрая настройка. Ставим необходимые пакеты:

# yum install mailx cyrus-sasl cyrus-sasl-lib cyrus-sasl-plain postfix

Рисуем примерно такой конфиг для postfix.

Cat /etc/postfix/main.cf ## DEFAULT CONFIG BEGIN ###################### queue_directory = /var/spool/postfix command_directory = /usr/sbin daemon_directory = /usr/libexec/postfix data_directory = /var/lib/postfix mail_owner = postfix inet_interfaces = localhost inet_protocols = all unknown_local_recipient_reject_code = 550 alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases debug_peer_level = 2 debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5 sendmail_path = /usr/sbin/sendmail.postfix newaliases_path = /usr/bin/newaliases.postfix mailq_path = /usr/bin/mailq.postfix setgid_group = postdrop html_directory = no manpage_directory = /usr/share/man sample_directory = /usr/share/doc/postfix-2.10.1/samples readme_directory = /usr/share/doc/postfix-2.10.1/README_FILES ## DEFAULT CONFIG END ###################### # Имя сервера, которое выводит команда hostname myhostname = centos-test.xs.local # Здесь по логике нужно оставлять только домен, но в данном случае лучше оставить полное имя сервера, чтобы в поле отправитель # фигурировало полное имя сервера, так удобнее разбирать служебные сообщения mydomain = centos-test.xs.local mydestination = $myhostname myorigin = $mydomain # Адрес сервера, через который будем отправлять почту relayhost = mailsrv.mymail.ru:25 smtp_use_tls = yes smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = noanonymous smtp_tls_security_level = may

Создаем файл с информацией об имени пользователя и пароле для авторизации.

# mcedit /etc/postfix/sasl_passwd mailsrv.mymail.ru:25 [email protected]:password

Создаем db файл.

# postmap /etc/postfix/sasl_passwd

Теперь можно перезапустить postfix и проверить работу.

# systemctl restart postfix

К стандартному алиасу для root в /etc/aliases , добавьте внешний адрес, куда будет дублироваться почта, адресованная root. Для этого редактируем указанный файл, изменяя последнюю строку.

#root: marc

Root: root,[email protected]

Обновляем базу сертификатов:

# newaliases

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

# df -h | mail -s "Disk usage" root

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

Relay=smtp.yandex.ru:25, delay=0.25, delays=0/0/0.24/0.01, dsn=5.7.1, status=bounced (host smtp.yandex.ru said: 553 5.7.1 Sender address rejected: not owned by auth user. (in reply to MAIL FROM command))

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

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

Заключение

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

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

    Публикации по теме