Установка локального сервера на centos 7. Настройка системной почты

  • 21.11.2020

Сегодня я познакомлю вас со своим видением начальной конфигурации универсального сервера на популярной ОС. Я расскажу о том, как сделать базовую настройку сервера 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.
  • Способность быстро решать возникающие проблемы и обеспечивать стабильную и бесперебойную работу системы.
  • Проверьте себя на вступительном тесте и смотрите подробнее программу по.

    В данном руководстве мы проведем установку операционной системы CentOS 7 на сервер поддерживающий 64bit архитектуру, так как дистрибутива под архитектуру 32bit разработчики не выпустили, по крайней мере я нигде не нашел.

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

    CentOS - дистрибутив Linux, основанный на коммерческом Red Hat Enterprise Linux компании Red Hat и совместимый с ним. Red Hat Enterprise Linux состоит из свободного ПО с открытым кодом, но доступен в виде дисков с бинарными пакетами только для платных подписчиков. Как требуется в лицензии GPL и других, Red Hat предоставляет все исходные коды. Разработчики CentOS используют данный исходный код для создания окончательного продукта, очень близкого к Red Hat Enterprise Linux и доступного для скачивания.

    Скачиваем CentOS 7 на официальном сайте для архитиктуры x64:
    Скачиваем дистрибутив удобного для Вас размера по ссылкам:

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

    Многие и не подозревают, что все сервисы и услуги, которыми мы пользуемся в Сети, базируются на точно таких же компьютерах, что работают в наших квартирах, только настроены совершенно иначе, не могут похвастать красивым графическим интерфейсом и управляются с помощью специализированных команд. Эти компьютеры именуются серверами. Люди осведомленные, конечно, знают, как произвести настройку и «поднять» собственный сервер. Тем же, кто в этом деле новичок, необходимо проштудировать не один форум, чтобы окончательно освоиться. Одно известно точно: для настройки недорогого и стабильного сервера необходимо выбрать такую же недорогую и стабильную основу, а именно операционную систему на основе 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 - это свободный дистрибутив, основанный на исходном коде Red Hat Enterprise Linux, фактически, он создается с этих исходников практически без изменений, разработчики только вырезают весь брендинг Red Hat. Но в отличие от Red Hat, CentOS полностью бесплатна и получает регулярные обновления, спустя немного времени после выхода их для Red Hat поскольку они тоже собираются из исходного кода.

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

    1. Настройка статического IP адреса

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

    yum install net-tools

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

    Теперь можно перейти к настройке интерфейса через файл /etc/sysconfig/network-scripts/ifcfg-enp0s3, например, с помощью редактора vi:

    vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

    IPADDR = ваш_ip
    GATEWAY = шлюз_для_доступа_к_сети
    DNS1 = IP_адрес_DNS1
    DNS2 = IP_адрес_DNS2

    После внесения изменений этот файл будет выглядеть вот так:

    Затем останется перезагрузить сеть чтобы применить новые настройки:

    service network restart

    Потом, при необходимости вы можете сменить IP адрес таким же способом.

    2. Имя компьютера

    Следующее что нам нужно сделать - это изменить имя компьютера. Текущее имя компьютера хранится в переменной HOSTNAME:

    Чтобы его изменить вам нужно отредактировать файл /etc/hostname и заменить там старое имя на новое.

    vi /etc/hostname

    Также вы можете использовать команду hostnamectl:

    hostnamectl set-hostname "имя_хоста"

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

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

    yum update && yum upgrade

    4. Установите браузер

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

    yum install links

    Вы можете найти и другие консольные браузеры для Linux, например, Lynx или Elinks.

    5. Настройка часового пояса

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

    Сначала получите список часовых поясов:

    timedatectl list-timezones

    Затем установите нужный, например, Europe/Kyiv:

    timedatectl set-timezone Europe/Kyiv

    Затем проверьте:

    7. Настройка локали

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

    localectl set-locale LANG=ru_RU.UTF-8

    Затем смотрим что получилось:

    Затем устанавливаем раскладку клавиатуры:

    localectl set-keymap us

    8. Отключите SELinux

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

    sed -i "s/(^SELINUX=).*/SELINUX=disabled/" /etc/selinux/config

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

    9. Создайте пользователя

    Использовать систему от имени суперпользователя небезопасно и тем более небезопасно оставлять открытым доступ к root аккаунту по ssh. Сначала создайте обычного пользователя и установите для него пароль:

    useradd имя_пользователя
    # passwd пароль

    Затем добавьте пользователя в группу wheel, чтобы разрешать пользователю работать от имени администратора:

    usermod -G wheel имя_пользователя

    Теперь осталось подправить настройки sudo, для этого добавьте такую строчку, если ее там еще нет:

    %wheel ALL = (ALL) ALL

    10. Включите сторонние репозитории

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

    Для добавления репозитория Enterprise Linux Repository (EPEL) выполните:

    yum install epel-release
    # rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm

    10. Настройка SSH

    Чаще всего нам приходится работать с серверами не напрямую, а по сети, через SSH. Обычно служба SSH уже установлена и активирована, но для ее правильной работы нужно выполнить несколько настроек. Сначала нужно настроить использование только безопасного протокола, для этого откройте файл /etc/ssh/ssh_config и удалите строчку Protocol 2,1. А вместо нее добавьте:

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

    PermitRootLogin no

    11. Установите веб-сервер Apache

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

    yum install httpd

    Когда установка будет завершена, перед тем, как вы сможете перейти к работе нужно разрешить HTTP в брандмауере:

    firewall-cmd --add-service=http
    # firewall-cmd -permanent -add-port=3221/tcp
    # firewall-cmd --reload

    Теперь осталось добавить Apache в автозагрузку:

    systemctl start httpd.service
    # systemctl enable httpd.service

    12. Установите PHP

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

    После установки необходимо перезапустить Apache:

    echo -e "" > /var/www/html/phpinfo.php

    Затем откройте созданный файл в браузере:

    links http://127.0.0.1/phpinfo.php

    13. Установка базы данных

    MariaDB - это база данных, основанная на исходном коде MySQL. Дистрибутивы Linux на базе Red Hat используют MariaDB вместо MySQL. Базы данных - незаменимая вещь на сервере, поэтому настройка CentOS после установки должна включать ее установку. Для установки MariaDB наберите:

    yum install mariadb-server mariadb

    Затем запустите и добавьте в автозагрузку:

    systemctl start mariadb.service
    # systemctl enable mariadb.service

    И разрешите в использование службы в брандмауэре:

    firewall-cmd --add-service=mysql

    Осталось запустить скрипт настройки:

    /usr/bin/mysql_secure_installation

    14. Установите GCC

    GCC расшифровывается как GNU Compiler Collection, это набор компиляторов, которые считаются стандартом для сборки программ в Linux. Но по умолчанию он не поставляется с CentOS, поэтому для установки наберите:

    Затем вы можете посмотреть версию GCC:

    15. Установите Java

    Java - это объективно-ориентированный язык программирования общего назначения. Он не устанавливается по умолчанию, поэтому настройка CentOS 7 после установки может включать и его установку. Для этого выполните:

    yum install java

    Затем проверьте версию:

    Выводы

    В этой статье мы рассмотрели как выполняется настройка сервера CentOS 7 после установки. Как видите, есть много элементарных действий, которые желательно сделать перед тем, как использовать сервер на производстве. Если у вас остались вопросы, спрашивайте в комментариях!

    Установка операционной системы 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, необходимо выбрать созданного пользователя и ввести его пароль. По итогу вы попадете на рабочий стол, если таковой был выбран для установки в процессе настройки установщика системы. Если вы выполняли каждое действие, изложенное в инструкции, то настройка системы не требуется, так как она была выполнена ранее, в противном случае некоторые элементы могут работать некорректно.