Настройка centos: CentOS настройка сервера

Содержание

Настройка CentOS 8 после установки

В одной из прошлых статей мы разбирались как установить CentOS 8 на компьютер. Любая только что установленная операционная система нуждается в настройке и персонализации под ваши нужды. CentOS не исключение.

В этой статье мы разберем как выполняется настройка CentOS 8 после установки, как настроить сеть, ssh, брандмауэр, а также как убрать лишние службы. Все будет пошагово, главное — внимательно читайте и тогда у вас все получится, как по инструкции.

Содержание статьи:

Настройка CentOS 8 после установки

Шаг 1. Обновление системы

Пожалуй, самая стандартная процедура при установке любой операционной системы. Для начала нам надо зайти в текстовую консоль или открыть терминал если работаете в графическом интерфейсе. Открыть консоль можно сочетанием клавиш Ctrl+Alt+F1 (или F2, F3, F4 и так до F12). А терминал можно найти в главном меню. Мы рассмотрим вариант с текстовой консолью.

А вот и она, авторизуйтесь от имени пользователя root. Затем используйте команды:

dnf check-update

dnf update

У меня это заняло минуты 3-4, а в самом конце вы получите вот такое сообщение:

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

dnf clean all

Шаг 2. Установки системных утилит

Настройка centos 8 не обходится без установки сервисных утилит. Это те самые утилиты, которые можно использовать изо дня в день, поэтому давайте установим их заранее. Скорее всего, вам будет нужны след. утилиты: vim, wget, curl, net-tools, lsof и bash-completion. «И что же это такое?» — спросите вы. А вот что это:

  • wget и curl вам будут нужны для загрузки файлов по сети;
  • net-tools содержит набор программ для поддержки сетей;
  • lsof шикарная утилита, она позволяет выводить информацию о том, какие файлы задействованы теми или иными процессами;
  • nano и vim являются редакторами. Первый, кстати, больше для новичков подходит, а второй уже для опытных. Во многом из-за того, что в vim editor инструментарий шире.
  • bash-completion — без автозаполнений далеко не уедешь.

Итак, пишем команду длиною в жизнь:

dnf install nano vim wget curl net-tools lsof bash-completion

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

Шаг 3. Настройка имени компьютера

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

nmtui-hostname

Сразу же появится вот такое окно:

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

Шаг 4. Настройка статического IP

Теперь зададим статический IP. Используем все ту же команду nmtui:

nmtui-edit

Далее вас приветствует вот такое интерфейс:

Нажимаем на Edit и попадаем в след. меню:

Теперь я устанавливаю значения для статики. Напротив IPv4 Configuration выставите значение Manual.

Затем пропишите нужный ip адрес в поле Addresses, адрес шлюза (роутера) в поле Gateway и DNS серверы, которые хотите использовать, например, 8.8.8.8 от Google. Как только все сделали надо перезапустить сеть. Делается это командой:

nmtui-connect

Нажимаем на Deactivate/Activate. Сделали? Теперь новые настройки вступили в силу. Идем дальше. Давайте вообще проверим правильно ли мы указали данные. Пишем команды:

ifconfig enp0s3

ip a

ping -c2 google.com

Ко всему прочему есть ещё дополнительные утилиты, которые позволят вам узнать какая скорость в сети, её статус, да и вообще более подробную информацию подтянуть. Пишем команды:

ethtool enp0s3

mii-tool enp0s3

Шаг 5. Создаем нового пользователя

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

useradd nomanoma

Создаем пароль для пользователя:

passwd nomanoma

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

usermod -aG wheel nomanoma

Достаточно просто, да?

Шаг 6. Настройка SSH

Если вы собираетесь подключаться к вашему серверу по ssh, то более удобно будет использовать ssh ключи вместо логина и пароля. Мы будем использовать и публичный, и приватный ключи. Ещё их называют открытый и закрытый (public и private key). Сначала вам надо вернуться в вашу рабочую систему и создать эту пару ключей. Для этого выполните:

ssh-keygen -t RSA

Обратите внимание на строку

Enter passphrase (empty for no passphrase). Чтобы не вводить пароль при входе на сервер по SSH оставьте её пустой, одного тогда вы должны учитывать, что если этот файл попадет в чужие руки, то тот человек получит полный доступ к серверу.

Дальше система укажет, где сохранился SSH-ключ. Раз уж мы его сгенерировали, то стоит его использовать. Пишем команду ssh-copy-id, а также имя пользователя и IP-адрес нашего сервера, который мы сегодня настраиваем:

ssh-copy-id [email protected]

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

Шаг 7. Настройка безопасности ssh

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

vi /etc/ssh/sshd_config

Находим строку

#PermitRootLogin yes и меняем её на PermitRootLogin no. Смотрим на блок # Authentication, там и будет нужная для нас строка. Перезапускаем службу ssh, чтобы изменения вступили в силу:

systemctl restart sshd

Шаг 8. Настройка брандмауэра

Базовая настройка centos не обойдется без брандмауэра, по умолчанию здесь используется firewalld. Чтобы запустить его на сервере надо использовать команды:

systemctl enable firewalld

systemctl start firewalld

А чтобы посмотреть статус используйте:

systemctl status firewalld

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

firewall-cmd -–add-service=ssh
firewall-cmd -–add-service=ssh --permanent

Ну а если вам необходимо использовать SMTP или веб-сервер, то очевидно, что следует добавить разрешающие правила для этих служб:

firewall-cmd --permanent -–add-service=http
firewall-cmd --permanent -–add-service=https
firewall-cmd --permanent -–add-service=smtp

С помощью команды ниже я могу увидеть все правила на сервере.

firewall-cmd --permanent –list-all

Шаг 9. Удаление ненужных служб

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

ss -tulpn

Вот так это выглядит:

Для того, чтобы убрать ненужную службу используем команды

systemctl stop имя_службы

systemctl disable имя_службы

Шаг 10. Управление службами

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

systemctl list-units

Список действительно большой. В общем и целом, так можно отслеживать службы в вашей системе. Наша статья о том, как выполняется настройка centos после установки завершена, но настраивать там можно ещё очень много чего. Надеюсь, статья была полезной, и вы узнали что-то новое для вас. А что вы настраиваете после установки? Напишите в комментариях!

CentOS 7 установка и настройка

Рассмотрим установку системы CentOS 7 и последующую настройку исходя из практики использования этой операционной системы. Данная система для меня основная для использования на серверах в продакшн. Стабильность работы гарантированна. Поддержка  10 лет.

Введение

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

Установка CentOS 7

Создания USB носителя для установки

Существует множество программ для записи iso образа на устройство. Например, у меня два варианта для создания носителя для установки:

  1. Rufus — использую эту программа для создание загрузочных USB-дисков в системе Windows;
  2. ROSA ImageWriter — использую эту програму для любой системы Linux.

Варианты установки

Рассмотрим два самых популярных варианта установки СentOS 7.

Образы iso CentOS 7

Все свежие образы можно скачать по ссылке Download CentOS. Существует два варианта:

  1. DVD ISO — полный образ;
  2. Minimal ISO — минимальный образ.

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

Для сервера CentOS 7 система идеальна в плане обслуживания и стабильности работы.

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

Шаблоны

Шаблоны используются как правило для установки на VDS и предоставляются компаниями предоставляющие такие услуги. Удобно, но тем не менее я пару раз попадал в дурацкие ситуации.

Вот моменты почему я советую использовать установку на VDS систем с iso образа

:

  • Разбивка диска порой не учитывает конфигурацию тарифа или требований вашей системы — например, на одном хостинге при 2 G оперативной памяти был создал SWAP раздел в 512 М в результате пришлось переустанавливать систему дабы не терять место на и так небольшом диске;
  • Локализация как правило Английская — мне приятней работать на своем родном языке хотя и на английском если надо всё настрою;
  • Присутствие в шаблоне каких-то изменений отличающихся от стандартных минимальных параметров установки — порой не понимаешь откуда взялись какие то настройки которых раньше не видел. Кроме того, можно потратить кучу времени не понимая почему не работает то что всегда работало как часы. В итоге выясняется что в шаблоне установки нет пакета который всегда ставился в стандартном минимальном образе.

Все компании предоставляющие услуги VDS могут предоставить возможность установки системы с ISO образа системы. При установке надо правильно указать сетевые параметры исходя из предоставленных сетевых параметров настроек выбранного тарифа!

Разбивка диска для установки

Вариантов разбивки диска для CentOS 7 может быть множество исходя из пожеланий и предпочтений. Например, мне нравиться придерживатся таких параметров:

  • Размер диска под систему Linux 50 G  — этого мне хватает с запасом;
  • Создаю раздел boot размером 1 G — так я гарантирую что при заполнении диска система загрузится однозначно;
  • Создаю SWAP — согласно требованиям системы.

Можно выносить логи и кэш в отдельные разделы, но это лишняя трата времени.  Лучше всегда мониторить размер диска и в случае проблем решать их. Прежде всего, так и головная боль пропадает о том какой размер указывать разделам ( вариант с перераспределением очень сюрпризная тема) и больше времени потратится на правильную настройку сервера.

SWAP

Тема организации SWAP на сервере очень важная и поэтому я описал все основные моменты использования в статье SWAP для Linux

Настройка CentOS 7

Информация об установленной системе

Узнать какая система установлена на сервере можно следующей командой:

uname -a
= вывод команды = 
Linux vds.sevo44.ru 3.10.0-862.el7.x86_64 #1 SMP Fri Apr 20 16:44:24 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

Этой информации достаточно для понимания с какой системой предстоит  работать.

Отключение SELinux

Отключаем SELinux. Его использование и настройка в системе CentOS 7 отдельный разговор.

vi /etc/sysconfig/selinux
= меняем значение =
SELINUX=disabled

Перезагрузим для применения изменений. После перезагрузки проверяем статус:

sestatus
= вывод команды =
SELinux status: disabled

Надо иметь четкое понимание что SELinux система требующая хорошего понимания в том как она работает и как настраивать. Надо или отключить сразу или потратить время на изучение как она работает.

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

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

Всегда подключаю самый популярный репозиторий Epel (Extra Packages for Enterprise Linux). Epel хранилище пакетов, созданное группой специалистов операционной системы Fedora. Пакеты из Epel репозитория никогда не конфликтуют и не переустанавливают базовые пакеты RHEL.

yum -y install epel-release

Для свежих версий PHP использую репозиторий Remi. Расскажу про это в статье посещенной серверу LEMP.

Старюсь подключать репозитории которые поддерживают сами разработчики программ. Например, такие как Nginx, Zabbix, MariaDB.

Обновление CentOS 7

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

Прежде всего, всегда перед обновлениями делайте резервные копии!

Перед выполнением настройки лучше выполнить полное обновление системы:

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

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

Например, получать сообщения на почту об появившихся обновлениях и уже на основании этого принимать решение о необходимости обновления — для меня лучший вариант.

При моих пожеланиях мне подойдёт утилита yum-cron. Ставится она из базового репозитория командой:

yum install yum-cron

После установки создается автоматическое задание на выполнение утилиты в /etc/cron.daily и /etc/cron.hourly.

По-умолчанию, утилита скачивает найденные обновления, но не устанавливает их. Администратору на локальный почтовый ящик root отправляется уведомление об обновлениях.

Конфигурационный файл настройки yum-cron находятся по адресу /etc/yum/yum-cron.conf.

Самый важный параметр это update_cmd — которой будет говорить системе какие выполнять обновления. Доступно несколько вариантов:

  • default — полное обновление;
  • security — только обновление безопасности;
  • security-severity:Critical — только критические обновления безопасности;
  • minimal — минимальное обновление с исправлениями ошибок;
  • minimal-security — исправления ошибок и обновления безопасности;
  • minimal-security-severity:Critical — исправления ошибок и критические обновления.

В разделе настроек [email] указаны параметры отправки сообщений. По умолчанию отправка сообщений идет пользователю root.

Обычно я настраиваю глобально для всего сервера пересылку локальной почты root на внешний почтовый ящик через авторизацию на другом smtp сервере.

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

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

vi /etc/yum/yum-cron.conf
= часть кода =
update_cmd = minimal-security
update_messages = yes
download_updates = yes
apply_updates = no

Согласно которым будут вкачиваться все пакеты где есть исправления ошибок и обновления безопасности. Установка производиться не будет а на почту придет сообщение.

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

systemctl restart yum-cron

Популярные и полезные утилиты

Установим в начале основные популярные утилиты которые обычно требуются в работе.

yum -y install net-tools bind-utils htop atop iftop lsof wget bzip2 traceroute gdisk yum-utils vim
  • net-tools bind-utils — сетевые утилиты после установки которых будут работать команды # ifconfig и # nslookup,
  • htop atop — два интересных диспетчера задач,
  • iftop — показывает в режиме реального времени загрузку сетевого интерфейса,
  • lsof — вывода информации о том, какие файлы используются теми или иными процессами,
  • wget — неинтерактивная консольная программа для загрузки файлов по сети,
  • bzip2 — утилита командной строки с открытым исходным кодом для сжатия данных,
  • traceroute — утилита предназначенная для определения маршрутов следования данных в сетях TCP/IP,
  • fdisk — умеет работать с GPT-дисками разработано по подобию fdisk,
  • yum-utils — — это набор утилит для управления репозиториями, установки и отладки пакетов, поиска пакетов и много другого.

Отправка почты с авторизацией на другом SMTP сервере

Настраиваем на базе Postfix.

Проверка статуса:

systemctl status postfix

Если Postfix не установлен то производим установку выполнив команду:

yum install postfix

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

systemctl start postfix
systemctl enable postfix

Чтобы отправлять письма с консоли необходимо установить пакет mailx:

yum install mailx

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

uname -a | mail -s "info server" [email protected]

В результате на почту придёт сообщение:

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

Например, мне удобно в данном случае везде использовать почту [email protected] которая обслуживается Yandex.

Переименуем дефолтный конфиг Postfix. После этого, создадим рабочий и добавим необходимые настройки:

mv /etc/postfix/main.cf /etc/postfix/main.cf_orig
vim /etc/postfix/main.cf
= необходимый код =
# DEFAULT CONFIG 
queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
mail_owner = postfix
# Имя сервера, которое выводит команда hostname
myhostname = vds-micro2.sevo44.ru
# По логике нужно оставлять только домен, но в данном случае лучше оставить полное имя сервера, чтобы в поле отправитель 
# фигурировало полное имя сервера, так удобнее разбирать служебные сообщения
mydomain = vds-micro2.sevo44.ru
myorigin = $mydomain
mydestination = $myhostname, localhost.$mydomain, localhost
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

# SMTP YANDEX CONFIG
relayhost = smtp.yandex.ru:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
# База параметров авторизации с SMPT
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
# Беза подмены имени почтового ящика 
smtp_generic_maps = hash:/etc/postfix/generic
smtp_sasl_security_options = noanonymous
smtp_tls_security_level = may

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

vim /etc/postfix/sasl_passwd
= необходимый код =
smtp.yandex.ru:587 [email protected]:PASSWORD

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

postmap /etc/postfix/sasl_passwd

Для того чтобы почта уходила надо чтобы адрес отправителя а адрес авторизации на сервер smtp совпадал!

В случае если у нас имеется сайт отправляющий почту средствами PHP можно настроить корректную отправку почты. Например, добавим параметр для сайта crystalium44.ru.

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

mv /etc/postfix/generic /etc/postfix/generic_orig
vim /etc/postfix/generic
= необходимый код =
[email protected] [email protected]
[email protected] [email protected]

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

postmap /etc/postfix/generic

При получении ошибки «warning: SASL authentication failure: No worthy mechs found» Необходимо установить еще несколько пакетов для работы SASL!

Установим необходимые пакеты:

yum -y install cyrus-sasl cyrus-sasl-lib cyrus-sasl-plain

Перезапустим Postfix и проверим работу.

systemctl restart postfix

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

uname -a | mail -s "info server" [email protected]

Так выглядит письмо отправленное с сайта crystalium44.ru c помощью PHP:

 

Как видим теперь всё работает как надо!

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

tail -n 10 /var/log/maillog

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

vim /etc/aliases
= необходимо привести к виду =
# Person who should get root's mail
root: root,[email protected]

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

newaliases

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

Определим текущее время на сервере:

date
= вывод команды =
Ср ноя 14 12:17:34 CET 2018

Как видим временная зона не настроена.

Выполним необходимую настройку временной зоны Europe — Moscow:

= Сделать резервную копию текущей timezone =
mv /etc/localtime /etc/localtime.bak

= В папке /usr/share/zoneinfo/ ишем что надо и делаем ссылку =
ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime

В итоге получим:

date
= вывод команды =
Сб окт 13 02:59:46 MSK 2018
Синхронизация времени

В CentOS 7 по-умолчанию используется утилита для синхронизации времени chrony. Если у вас её нет, то устанавливайте:

yum install chrony

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

systemctl start chronyd
systemctl enable chronyd

Проверяем правильность работы:

systemctl status chronyd
= вывод команды =
● chronyd.service - NTP client/server
Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled; vendor preset: enabled)
Active: active (running) since Ср 2018-10-03 21:55:18 MSK; 27min ago
Docs: man:chronyd(8)
man:chrony.conf(5)
Main PID: 631 (chronyd)
CGroup: /system.slice/chronyd.service
└─631 /usr/sbin/chronyd

окт 03 21:55:17 lemp.sevo44.loc systemd[1]: Starting NTP client/server...
окт 03 21:55:17 lemp.sevo44.loc chronyd[631]: chronyd version 3.2 starting (+CMDMON +NTP +REFCLOCK +RTC +PRIVDROP +SCFILTER +SECHASH +SIGND +ASYNCDNS +IPV6 +DEBUG)
окт 03 21:55:17 lemp.sevo44.loc chronyd[631]: Frequency 1.141 +/- 1.440 ppm read from /var/lib/chrony/drift
окт 03 21:55:18 lemp.sevo44.loc systemd[1]: Started NTP client/server.
окт 03 21:55:35 lemp.sevo44.loc chronyd[631]: Selected source 89.109.251.23
окт 03 21:55:35 lemp.sevo44.loc chronyd[631]: System clock wrong by 1.035954 seconds, adjustment started
окт 03 21:55:36 lemp.sevo44.loc chronyd[631]: System clock was stepped by 1.035954 seconds

Сетевые параметры

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

В случае установки с образа iso на vds настройка сетевых параметров просто необходима.

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

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

nmtui
= вывод команды =
-bash: nmtui: команда не найдена
= команда установки необходимого пакета для работы nmtui =
yum install NetworkManager-tui

Сетевые настройки необходимо выполнять с помощью nmtui или руками предварительно отключив NetworkManager!

Руками вся настройка сводится к редактированию файлов в паке /etc/sysconfig/network-scripts/. Для определения интерфейсов необходимо предварительно выполнить команду ip addr которая покажет название всех имеющихся интерфейсов.

Например, мой файл настройки сетевого интерфейса ens18:

vim /etc/sysconfig/network-scripts/ifcfg-ens18
= вывод команды =
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="yes"
IPV6INIT="no"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens18"
UUID="2f1479ad-8a41-4886-acf4-64f0c5eff5c2"
DEVICE="ens18"
ONBOOT="yes"
IPADDR="135.21.15.51"
PREFIX="24"
GATEWAY="18.22.52.1"
DNS1="165.2.92.3"
ZONE=public

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

/etc/init.d/network restart
= вывод команды =
Restarting network (via systemctl):                        [  OK  ]

= или командой =
systemctl restart NetworkManager.service

= предварительно поняв название необходимого сервиса =
systemctl list-units | grep -i network

Подсчет сетевого трафика

Иногда необходимо посмотреть трафик сервера за определенный период и для этого идеально подходит утилита vnStat. При желании можно настроить web интерфейс, для красивого отображения статистики по трафику.

vnStat получает данные из ядра Linux, т.е. не снифит поток, благодаря чему работает быстро и не вызывает вопросов к безопасности. Кроме того, она отлично делает свое дело без root привилегий.

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

Установка производится командой при условии установленного репозитория EPEL:

yum install vnstat

Посмотреть документацию по программе можно выполнив команду:

Посмотреть список доступных интерфейсов можно командой:

vnstat --iflist
= вывод команды =
Available interfaces: lo ens18 (1000 Mbit)

Как видим у нас один сетевой интерфейс. Задаем сетевой интерфейс на который мы будем учитывать сетевой трафик, в данном примере это ens18:

vnstat -u -i ens18
= вывод команды =
Error: Unable to read database "/var/lib/vnstat/ens18": Нет такого файла или каталога
Info: -> A new database has been created.

Необходимая база создалась.

Настройки находятся в файле /etc/vnstat.conf и по умолчанию там стоит eth0 заменим его на наш:

vim /etc/vnstat.conf
= необходимое исправление =
# default interface
Interface "ens18"

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

systemctl status vnstat -l
= вывод команды =
● vnstat.service - vnStat network traffic monitor
   Loaded: loaded (/usr/lib/systemd/system/vnstat.service; enabled; vendor preset: disabled)
   Active: active (running) since Сб 2019-01-26 01:37:57 MSK; 3 days ago
     Docs: man:vnstatd(1)
           man:vnstat(1)
           man:vnstat.conf(5)
 Main PID: 12380 (vnstatd)
   CGroup: /system.slice/vnstat.service
           └─12380 /usr/sbin/vnstatd -n

янв 29 06:48:14 vds-micro2.sevo44.ru vnstatd[12380]: Error: Unable to create database backup "/var/lib/vnstat/.ens18".
янв 29 06:48:14 vds-micro2.sevo44.ru vnstatd[12380]: Error: Unable to create database backup "/var/lib/vnstat/.ens18".

Откроем файл конфигурации и добавим параметр vnstat в две строки кода:

vim /etc/vnstat.conf
= необходимые изменения =
# vnstatd
##

# switch to given user when started as root (leave empty to disable)
DaemonUser "vnstat"

# switch to given user when started as root (leave empty to disable)
DaemonGroup "vnstat"

Сменим пользователя сервиса с vnstat на root:

vim /lib/systemd/system/vnstat.service
= вывод команды с необходимыми изменениями = 
[Unit]
Description=vnStat network traffic monitor
Documentation=man:vnstatd(1) man:vnstat(1) man:vnstat.conf(5)
After=network.target

[Service]
User=root
ExecStart=/usr/sbin/vnstatd -n
ExecReload=/bin/kill -HUP $MAINPID

[Install]
WantedBy=multi-user.target

Проверим статус сервиса выполнив необходимую команду:

systemctl status vnstat
= вывод команды =
● vnstat.service - vnStat network traffic monitor
Loaded: loaded (/usr/lib/systemd/system/vnstat.service; disabled; vendor preset: disabled)
Active: inactive (dead)
Docs: man:vnstatd(1)
man:vnstat(1)
man:vnstat.conf(5)

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

systemctl start vnstat
systemctl enable vnstat

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

= С указанием необходимого интерфейса  =
vnstat -l -i ens18
= Показывает статистику default интерфейса =
vnstat -l

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

vnstat
= вывод команды =
Database updated: Tue Jan 22 19:42:45 2019
ens18 since 22.01.2019

rx:  2,16 MiB      tx:  58 KiB      total:  2,22 MiB

monthly
                rx      |     tx      |    total    |   avg. rate
     ------------------------+-------------+-------------+---------------
янв '19        2,16 MiB |      58 KiB |    2,22 MiB |    0,01 kbit/s
     ------------------------+-------------+-------------+---------------
estimated        --     |      --     |      --     |

daily
                rx      |     tx      |    total    |   avg. rate
     ------------------------+-------------+-------------+---------------
    today      2,16 MiB |      58 KiB |    2,22 MiB |    0,26 kbit/s
     ------------------------+-------------+-------------+---------------
estimated        --     |      --     |      --     |
  • rx – полученные;
  • tx – переданные пакеты.

Вот примеры отображения дневной и месячной статистики:

vnstat -d
= вывод дневной статистики =
ens18 / daily

day rx | tx | total | avg. rate
------------------------+-------------+-------------+---------------
29.01.2019 375,86 MiB | 5,71 MiB  | 381,57 MiB | 36,18 kbit/s
30.01.2019 535,89 MiB | 19,58 MiB | 555,47 MiB | 52,67 kbit/s
31.01.2019 509,02 MiB | 19,55 MiB | 528,57 MiB | 50,12 kbit/s
01.02.2019 366,43 MiB | 13,23 MiB | 379,66 MiB | 53,21 kbit/s
------------------------+-------------+-------------+---------------
estimated 541 MiB | 19 MiB | 560 MiB |

vnstat -m
= вывод статистики по месяцам =
 ens18  /  monthly

       month    rx      |     tx      |    total    |   avg. rate
    ------------------------+-------------+-------------+---------------
    янв '19    1,39 GiB |   44,83 MiB |    1,43 GiB |    4,48 kbit/s
    фев '19  366,43 MiB |   13,23 MiB |  379,66 MiB |   65,27 kbit/s
    ------------------------+-------------+-------------+---------------  estimated     18,14 GiB |     659 MiB |   18,79 GiB |

Русификация консоли

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

localectl set-locale LANG=ru_RU.UTF-8

После перезагрузки всё в консоли станет на русском языке.

Смена пароля root

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

passwd
= вывод команды =
Изменяется пароль пользователя root.
Новый пароль : 
Повторите ввод нового пароля : 
passwd: все данные аутентификации успешно обновлены.

Брандмауэр FirewallD

По умолчанию в системе CentOS 7 используется Файрвол (брандмауэр) FirewallD. О том как работать я описывал в статье FirewallD базовая настройка. Ниже я выполню необходимые действия не описывая всё подробно.

FirewallD многие советуют отключать и пользоваться старым проверенным механизмом iptables, так как он используется по умолчанию во многих системах Linux.

Найти информацию о том как настраивать iptables для разных вариантов работы вы можете на замечательном ресурсе serveradmin.ru.

Вывод информации об активных зонах:

firewall-cmd --get-active-zones
= вывод команды =
public
  interfaces: ens18

Выведем информацию о конкретной зоне:

firewall-cmd --list-all --zone=public
= вывод команды =
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens18
  sources: 
  services: ssh dhcpv6-client
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules:

Для безопасности порт ssh лучше поменять на нестандартный.

Добавим разрешение подключаться по этому порту:

firewall-cmd --permanent --zone=public --add-port=25555/tcp
= вывод команды = 
success

Кроме того, сразу далим ненужный сервис:

firewall-cmd --permanent --zone=public --remove-service=dhcpv6-client
= вывод команды =
success

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

firewall-cmd --reload
= вывод команды =
success

firewall-cmd --list-all --zone=public
= вывод команды =
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens18
  sources: 
  services: ssh
  ports: 25555/tcp
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules:

Только после настройки ssh для работы по новому порту удаляйте сервис ssh из FirewallD!

Смена порта SSH

Укажем порт в настройках ssh открыв конфигурационный файл командой:

vi /etc/ssh/sshd_config
= необходимые изменения =
Раскоментируем строку Port 22 и заменим на наш 25555

Перезапускаем сервис ssh командой:

systemctl restart sshd

Проверяем какой порт слушает sshd (для работы нужен установленный пакет net-tools):

netstat -tulpn | grep sshd
tcp 0 0 0.0.0.0:25555 0.0.0.0:* LISTEN 453/sshd 
tcp6 0 0 :::25555 :::* LISTEN 453/sshd
Подключение к SSH по нестандартному порту

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

ssh -p 25555 [email protected]

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

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

После настройки можно отключить в параметрах ssh авторизацию по паролю, но иногда подключение по паролю просто необходимо. Обычно я создаю 16 злачный пароль и меняю его если давал временный доступ специалистам любого уровня и моего доверия. Безопасность лишней не бывает!

Добавляем на сервер необходимый ключ командой:

ssh-copy-id -i /home/local/.ssh/sevo44_rsa.pub -p 25555 [email protected]

Установка Midnight Commander

Установим самый популярный файловых менеджеров с текстовым интерфейсом командой:

yum -y install mc

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

cp /usr/share/mc/syntax/sh.syntax /usr/share/mc/syntax/unknown.syntax
= вывод команды =
cp: переписать «/usr/share/mc/syntax/unknown.syntax»? y

В случае отказа от использования встроенного редактора MC необходимо в настройках «Настройки — Конфигурация» снять галки у параметров «Встроенный редактор» и «Встроенный просмотр»

Установка редактора Vim

По умолчанию в системе работает редактор vi и его вполне достаточно.

Установим Vim без вопросов командой:

yum -y install vim

Отображение приглашения в консоли bash

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

Стандартный вариант отображения приветсвия после установки CentOS 7:

[[email protected] ~]#

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

Выведем имеющиеся параметры:

echo $PS1
= вывод команды =
[\[email protected]\h \W]\$

Изменим для текущей сессии:

export PS1='\[\033[01;31m\]\[email protected]\H\[\033[01;34m\] \w \$\[\033[00m\] '
= в результате =
[email protected] ~ # 

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

vim .bashrc
= необходимые дополнения =
# Приветствие bash
PS1='\[\033[01;31m\]\[email protected]\H\[\033[01;34m\] \w \$\[\033[00m\] '

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

vim /etc/profile.d/bash_completion.sh
= необходимое дополнение =
# Вид bash
PS1='\[\033[01;32m\]\[email protected]\H\[\033[01;34m\] \w \$\[\033[00m\] '

В итоге я получил следующее:

[email protected] /etc #  = права root
[email protected] /etc #  = простой пользователь


Более подробно можно почитать в статье Изменение приглашения терминала в bash.

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

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

По умолчанию вывод команды history в консоли нам покажет:

history
= вывод команды =
1 yum update
2 reboot
3 htop
4 df -h

Как видим вывод не информативный. Кроме того, покажет только последние 1000 команд.

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

history | grep yum

Изменим эту ситуацию добавив в файл .bashrc находящийся в папке пользователя необходимые параметры:

# Настройки history
export HISTSIZE=10000
export HISTTIMEFORMAT="%h %d %H:%M:%S "
PROMPT_COMMAND='history -a'
export HISTIGNORE="ls:ll:history:w"

Расшифруем параметры:

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

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

source ~/.bashrc

В итоге мы получим:

history
= вывод команды =
1  янв 22 18:33:08 yum update
2  янв 22 18:33:08 reboot
3  янв 22 18:33:08 htop
4  янв 22 18:33:08 df -h

Можно применить эту настройку для всех пользователей указав параметр в файле /etc/profile.d/bash_completion.sh который мы создали ранее при настройке вида bash.

В таком варианте получаем гораздо большую информативность.

Установка Tmux

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

Установка выполняется командой:

yum install tmux

Cpaste или показываем свой код

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

yum install cpaste

Например, мы хотим показать код глобальной настройки nginx.

Выполним в консоли команду:

cat /etc/nginx/nginx.conf | cpaste
= результат команды =
Successfully pastebined to: https://paste.centos.org/view/0c2650772c

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

Можно отправить вывод команды. Например, информацию о размерах дискового пространства можно отправить командой:

df -h | cpaste
= вывод команды =
Successfully pastebined to: https://paste.centos.org/view/17671ad924

По умолчанию заметка будет храниться 1 день.

Вывод

В результате я получил статью в которой свёл в одно место все основные моменты которые я на практике использую при базовой настройке сервера CentOS 7. Возможно что-то сказано с ошибками или можно улучшить. Комментируйте и советуйте я всегда рад обратной связи с пользователями систем Linux.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

CentOS 7: Установка и настройка

Предисловие

Пара слов, почему же всё-таки CentOS, а не что-то иное. Вообще знакомство с Linux началось в 2000-м году с какой-то версии RedHat. Потом был BlackCat Linux (из-за его лучшей поддержки русского языка). Затем появился Gentoo и я считал его идеалом за то что за счёт USE-флагов устанавливалось только то что действительно нужно. Ну и за его оптимизацию, в то время более-менее нормально смотреть фильмы на компьютере с процессором AMD K6-2-300 можно было только под Gentoo. После Gentoo на работе была Ubuntu, но она как-то сразу не пошла. Вообще после Gentoo переходить на любой другой Linux сложно. Это как после OS X обратно на Windows садиться. В Gentoo и процесс загрузки, и многие другие вещи красивы с эстетической точки зрения, в Ubuntu же по дефолту в консоли только белый цвет на чёрном фоне.

Затем были курсы по RHEL и сертификат RHCSA. Я посчитал что глупо не пользоваться полученными знаниями – поэтому решил установить CentOS на паре серверов на работе под различные сервисы. В процессе так увлёкся что даже свой личный сервер перевёл с Gentoo на CentOS. Сначала был CentOS 5, затем CentOS 6, теперь вот уже CentOS 7.

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

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

$ emerge sync && emerge -upvND world

Да и разных неожиданностей во время обновления системы стало меньше. Хотя, Gentoo я благодарен за полученный опыт.

 

Прежде чем устанавливать CentOS 7 предлагаю прочитать эту брошюру RHEL 7: Installation Guide. По ссылке её можно скачать целиком или в виде .pdf-файла, или в виде .epub-файла, кому как будет удобно. Это официальное руководство по установке RHEL 7 (при чём на русском языке). А т.к. RHEL практически то же самое что и CentOS – всё описанное в брошюре применимо и к CentOS.

 

Update от 01.01.2016

В связи с выходом новой версии установочных дисков CentOS 7.2.1511, данная статья потеряла актуальность. Вашему вниманию представляется новая версия http://blog.acmenet.ru/2016/01/01/centos-7-2-install/.

 

Загрузка образа CentOS

Для установки CentOS первым делом нужно скачать образ установочного диска в виде iso-файла. Для этого заходим в раздел Downloads на сайте CentOS – http://www.centos.org/download/, а там находим раздел «Minimal Install Images» и нажимаем на ссылку «Download the Minimal ISO» – http://isoredirect.centos.org/centos/7/isos/x86_64/. Дальше выбираем ближайшее к нам зеркало и скачиваем файл CentOS-7.0-1406-x86_64-NetInstall.iso (в моём случае до сервисов Яндекса у меня 100Мбит, поэтому качаю с его зеркала).

 

Создание установочных носителей

Для установки CentOS в виртуальной машине – достаточно указать iso-образ в качестве диска для виртуального привода. Если установка будет производиться с CD-диска – запишите iso-образ на компакт-диск любой имеющейся в наличии программой. Так же можно, записать iso-образ на USB-диск и загрузиться для установки с неё. Сделать это в Linux можно следующей командой:

$ dd if=/%filepath%/image.iso of=/dev/%devname% bs=512k

Вместо %filepath% нужно указать полный путь к iso-файлу, а вместо %devname% нужно указать название устройства под которым Linux видит наш USB-диск. Имейте в виду что USB-диск в этот момент не должен быть примонтирован.
В Windows для записи iso-образа на USB-диск можно воспользовавшись программой Fedora LiveUSB Creator (https://fedorahosted.org/liveusb-creator/). Необходимо скачать и установить эту программу. Имейте в виду, для её работы запускать её нужно с правами администратора. После запуска выберите iso-образ для записи нажав на кнопку Browse, затем в пункте Target Device выберите USB-диск для записи и нажмите на кнопку «Create Live USB».

 

Подготовка виртуальной машины

В Parallels Desktop нажимаем на кнопку «Создать…» для создания новой виртуальной машины, затем в мастере Parallels выделяем пункт «Установить Windows или другую ОС с DVD или из образа» и нажимаем на кнопку «Продолжить». В новом окне мастера Parallels выбираем пункт «Образ» и перетягиваем наш iso-образ на окошко мастера. Мастер будет ругаться сообщением «Не удалось определить операционную систему», не будем обращать на это внимание и нажмём на кнопку «Продолжить». Мастер предложит выбрать операционную систему из списка, выберем в нём «CentOS Linux» в группе «Другие версии Linux» и нажмём на кнопку «OK». Выбираем имя виртуальной машины, выбираем расположение виртуальной машины, ставим галочку напротив пункта «Настроить параметры до начала установки» и нажимаем на кнопку «Продолжить». Расписывать все настройки Parallels для виртуальной машины смысла нет, отмечу только что лучше бы оперативной памяти указать не менее 1Гб, количество процессоров можно увеличить до максимума, а вот жёсткий диск можно и урезать до 16Гб (по умолчанию Parallels делает 64Гб). Для минимальной установки и настройки основных сетевых сервисов 16Гб вполне должно хватить. Так же обратите внимание на настройки сети виртуальной машины, для установки нам необходимо чтобы в виртуальной машине был доступен Интернет (можно вместо общей сети указать мостовую, тогда виртуальная машина будет в локальной сети). Я ещё во вкладке «Безопасность» в настройках виртуальной машины ставлю галочки напротив пунктов «Интеграция: Изолировать Linux от Mac» и «Time Machine: Отключить» (так как виртуальная машина тестовая). Теперь закрываем настройки и опять нажимаем на кнопку «Продолжить».

 

Загрузка установки CentOS

Загружаем компьютер (или виртуальную машину) с носителя, который мы подготовили (или напрямую из iso-образа). После загрузки появится меню, которое предлагает запустить процесс установки (пункт «Install CentOS 7» или выполнить диагностику носителя и потом запустить процесс установки (пункт «Test this media & Install CentOS 7»). Выбираем второй пункт и нажимаем «Enter».

После проверки носителя запустится установщик CentOS 7.
В первом окне установщика выбираем русский язык и нажимаем на кнопку «Продолжить».

Выбор часового пояса и установку времени с датой пока пропустим, всё равно до настройки сети NTP-клиент доступен не будет.

Начнём с настроек клавиатуры, для этого нажмём на кнопку «Клавиатура» и поменяем приоритет у раскладок, передвинув английскую раскладку наверх. Так же, нажав на кнопку «Параметры» можно поменять комбинацию для переключения раскладок (например на Ctrl+Shift). После чего нажмём на кнопку «Готово».

Для настройки сети нажимаем на кнопку «Сеть и имя узла» в группе настроек «Система». По умолчанию сеть отключена, для её включения необходимо нажать на переключатель, который находится в верхнем правом углу экрана. У меня сразу с DHCP-сервера подхватились все сетевые настройки и из DNS определилось имя хоста. Если эти данные автоматически не подхватились – их нужно ввести вручную нажав на кнопку «Настроить…».

Во вкладке «Общий» ставим галочку напротив пункта «Автоматически подключаться к этой сети, когда она доступна».

Во вкладке «Параметры IPv4» в пункте «Способ настройки» либо оставляем выбранным «Автоматически (DHCP)», если в локальной сети используется DHCP, либо меняем на «Вручную» и заполняем все оставшиеся поля.

Если у нас в сети не используется IPv6, тогда во вкладке «Параметры IPv6» в пункте «Способ настройки» выбираем «Игнорировать».

После сохранения сетевых настроек нажимаем на кнопку «Готово» в левом верхнем углу экрана. Теперь можно вернуться к пропущенному шагу и настроить часовой пояс и дату. Для этого нажимаем на кнопку «Дата и время» в блоке «Региональные настройки». Сначала выбираем регион и город, а затем в правом верхнем углу нажимаем на переключатель «Сетевое время». После этого время должно синхронизироваться с NTP-сервером. Можно нажать на кнопку «Готово» для возвращения в главное меню установщика.

Сейчас укажем репозитарий из которого будем устанавливать CentOS, для этого теперь нажимаем на кнопку «Источник установки» в блоке «Программное обеспечение». В поле источника установки указываем путь к основному репозиторию CentOS (в моём случае я указываю mirror.yandex.ru/centos/7/os/x86_64/). В случае если доступ к Интернету у вас осуществляется через прокси – самое время это указать, нажав на кнопку «Настройки прокси…». Теперь нажимаем на кнопку «Готово».

Если адрес репозитория указан верно, то теперь под названием кнопки «Источник установки» появится адрес репозитория, а с иконки кнопки уберётся оранжевый треугольник. Если это произошло – нажимаем на кнопку «Выбор программ» в блоке «Программное обеспечение». Во время первоначальной установки я устанавливаю только минимальный набор программ, а все сервисы, которые будут работать на сервере устанавливаю и настраиваю позже. Так что оставляю выбранным пункт «Минимальная установка» и нажимаю на кнопку «Готово».

Осталось настроить расположение установки, для чего нажмём на кнопку «Место установки». Смотрим что галочкой выделен нужный нам жёсткий диск, отмечаем пункт «Я настрою разделы» в блоке «Разбиение» и нажимаем на кнопку «Готово».

У нас откроется мастер разметки жёсткого диска. Первым делом нажмём на кнопку «Нажмите здесь для их автоматического создания».

Теперь чуть подправим автоматическую разбивку.

Для этого сначала выделим корневой раздел «/» и изменим требуемый размер на 12ГБ. Тип устройства LVM и файловую систему xfs оставим без изменения, но вот название «Volume Group» изменим, для чего нажмём на кнопку «Изменить…». По умолчания установщик называет группу томов LVM как hostname_hostname, заменим это на vg_hostname и нажмём на кнопку «Сохранить» (вместо hostname подставьте название вашего хоста). Теперь поменяем имя раздела, вместо root напишем lv_root и нажмём на кнопку «Обновить настройки».

Для ровного числа заменим размер раздела /boot – вместо 500МБ укажем 512МБ. Тип устройства раздела /boot оставляем обычным, файловую систему так же оставляем xfs, после чего нажимаем на кнопку «Обновить настройки».

И напоследок изменим настройки раздела для swap. Имя раздела заменим с swap на lv_swap, а размер увеличим до 4ГБ, после чего нажимаем на кнопку «Обновить настройки». Так как диск для установки CentOS у меня всего 16ГБ, а мы уже сделали разделов на 16,5ГБ (512МБ+12ГБ+4ГБ) – установщик автоматически подправит раздел для swap до предельно допустимых 3,864ГБ.

Так как и корневой раздел, и раздел для swap у нас создаются в виде томов LVM, то расширить их в будущем не составит большого труда. Завершив разметку диска нажимаем на кнопку «Готово». Установщик нам покажет последовательность разметки диска, которую мы должны подтвердить нажав на кнопку «Принять изменения».

После того как всё подготовлено к установке CentOS – нажимаем на кнопку «Начать установку».

Первым делом установщик произведёт разбиение диска на разделы, как мы указали ранее. Затем разделы будут отформатированы и начнётся установка пакетов. В минимальной установке этих пакетов 298. После установки пакетов будет произведена их первоначальная настройка.

В то время пока пакеты устанавливаются и настраиваются – мы зададим пароль для пользователя root и создадим пользователя для повседневной работы (во время установки создание пользователя шаг не обязательный, его можно будет в любой момент создать позже).

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


Поздравляем! Установка CentOS завершена.

 

Прежде чем перейти к настройке CentOS 7 советую прочитать вот эту вот брошюру RHEL 7: System Administrators Guide. Это официальное руководство по настройке RHEL 7 (на русский язык эта брошюра пока что не переведена).

 

Первый запуск CentOS

После загрузки загрузчика появится меню выбора загрузки, в котором можно ничего не нажимать, по умолчанию запустится первый вариант «CentOS Linux, with Linux 3.10.0-123.el7.x86_64».

Загрузка по умолчанию достаточно молчаливая, не показывается ровным счётом ничего. А после загрузки нас ждёт стандартное приглашение ввода имени пользователя и пароля.

Дальше кому как удобно – можно либо подключаться через ssh, либо входить используя консоль.

После того как залогинились в CentOS первый раз – нужно выполнить ряд дополнительных настроек. Первым делом устанавливаем редактор nano, и делаем так, чтобы вся почта отправляемая пользователю root – форвардилась на ваш почтовый адрес.

$ yum -y install nano

$ echo %email% >~/.forward

$ chcon -u system_u ~/.forward

В CentOS 6 после этого необходимо было ещё восстанавливать заданный по умолчанию SELinux-контекст для файла .forward командой:

$ restorecon -v /root/.forward

А в CentOS 7 файл создаётся сразу с нормальным контекстом.

 

Настраиваем локаль и русскую раскладку

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

$ localectl set-locale LANG=»ru_RU.UTF-8″ LC_NUMERIC=»C» LC_TIME=»POSIX» LC_MESSAGES=»POSIX»

$ localectl set-keymap us ru —no-convert

$ localectl set-x11-keymap us,ru pc105 grp:ctrl_shift_toggle —no-convert

$ localectl status

   System Locale: LANG=ru_RU.UTF-8

                  LC_NUMERIC=C

                  LC_TIME=POSIX

                  LC_MESSAGES=POSIX

       VC Keymap: us

VC Toggle Keymap: ru

      X11 Layout: us,ru

       X11 Model: pc105

     X11 Variant: grp:ctrl_shift_toggle

$ sed -i —follow-symlinks ‘s/vconsole.font=[^ ]*/vconsole.font=latarcyrheb-sun16/g’ \

/etc/sysconfig/grub

$ sed -i —follow-symlinks ‘s/vconsole.keymap=[^ ]*/vconsole.keymap=ru/g’ \

/etc/sysconfig/grub

$ grub2-mkconfig —output=/boot/grub2/grub.cfg

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

$ loadkeys /lib/kbd/keymaps/i386/qwerty/ru.map.gz

 

Отключение IPv6

Есть два варианта отключения IPv6 в CentOS 7, первый вариант жёсткий:

$ sed -i —follow-symlinks ‘s/^GRUB_CMDLINE_LINUX=»/GRUB_CMDLINE_LINUX=»ipv6.disable=1 /g’ \

/etc/sysconfig/grub

$ grub2-mkconfig —output=/boot/grub2/grub.cfg

он запрещает ядру грузить модули связанные с IPv6. Этот вариант плох тем, что если включен SELinux (а зачем ставить CentOS и отключать SELinux?!), то мы будем периодически получать ругань в логах типа:

type=AVC msg=audit(1410648780.359:195): avc:  denied  { module_request } for  pid=727 comm=»chronyd» kmod=»net-pf-10″ scontext=system_u:system_r:chronyd_t:s0 tcontext=system_u:system_r:kernel_t:s0 tclass=system

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

$ nano -w /etc/sysctl.d/01-disable_ipv6.conf

net.ipv6.conf.all.disable_ipv6 = 1

net.ipv6.conf.default.disable_ipv6 = 1

$ systemctl restart systemd-sysctl.service

А для того чтобы после отключения IPv6 не было лишней ругани от разных сервисов в логах – нужно подправить конфиги postfix, демона синхронизации времени chrony и sshd:

$ sed -i ‘s/inet_protocols = [^ ]*/inet_protocols = ipv4/g’ /etc/postfix/main.cf

$ systemctl restart postfix.service

$ sed -i ‘s/^\(bindcmdaddress ::1\)/#\1/’ /etc/chrony.conf

$ nano -w /etc/sysconfig/chronyd

OPTIONS=»-4″

$ chcon -u system_u /etc/sysconfig/chronyd

$ systemctl restart chronyd.service

$ sed -i s/udp6/#udp6/ /etc/netconfig

$ sed -i s/tcp6/#tcp6/ /etc/netconfig

$ nano -w /etc/ssh/sshd_config

AddressFamily inet

ListenAddress 0.0.0.0

 

$ systemctl restart sshd.service

 

Настройка демона sshd

На новом сервере я сразу отключаю авторизацию по паролю, оставляю только авторизацию по ключу. А авторизацию по паролю разрешаю только определённым IP-адресам:

$ nano -w /etc/ssh/sshd_config

PasswordAuthentication no

Match address 1.2.3.4/32

PasswordAuthentication yes

Match address 2.3.4.5/32

PasswordAuthentication yes

 

$ systemctl restart sshd.service

Note: используйте только если знаете что делаете!
 

Настройка менеджера пакетов

Ограничиваем количество установленных версий пакетов до 3-х (например количество версий установленного ядра):

$ nano -w /etc/yum.conf

installonly_limit=3

$ yum -y install yum-cron yum-utils

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

$ nano -w /etc/yum/yum-cron.conf

download_updates = no

$ systemctl enable yum-cron.service

$ systemctl start yum-cron.service

 

Обновление базовой системы после установки

 

Установка необходимых утилит и программ

Теперь подключаем EPEL-репозиторий (Extra Packages for Enterprise Linux) и доустанавливаем необходимые пакеты, отсутствующие в базовой установке:

$ rpm -Uvh http://mirror.yandex.ru/epel/7/x86_64/e/epel-release-7-2.noarch.rpm

$ rpm —import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7

$ yum -y install bash-completion logwatch lsscsi mc mlocate mtr nfs-utils parted pciutils \

         pinfo policycoreutils-python rsync screen sysstat telnet unzip usbutils wget

Есть ещё интересный пакет atop, в котором можно посмотреть статистику загрузки сервера в реальном времени с разбивкой по процессам и устройствам. Но в настоящий момент этот пакет для CentOS 7 находится в тестовом репозитории EPEL, поэтому устанавливается он следующей командой:

$ yum -y install atop —enablerepo=epel-testing

Update: atop уже поместили в основной репозиторий, поэтому его можно устанавливать просто командой:

А статистика выглядит примерно таким образом:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

Установка и настройка CentOS 7

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

Читайте также:
Устанавливаем Debian 9
Устанавливаем Linux Mint
Устанавливаем Ubuntu

Устанавливаем и настраиваем CentOS 7

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

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

Шаг 1: Загрузка дистрибутива

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

Загрузить CentOS 7 с официального сайта

Перейдя по ссылке, расположенной выше, вы попадете на страницу выбора версии дистрибутива.

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

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

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

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

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

Рекомендуется загружать ОС по ссылкам, расположенных в группе «Actual Country», это обеспечит максимальную скорость загрузки.

Шаг 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: Разметка дисков

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

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

  1. В главном меню инсталлятора выберите «Место установки».
  2. В появившемся окне выберите накопитель, на который будет установлена CentOS 7, и поставьте переключатель в области «Другие параметры хранения данных» в положение «Я настрою разделы». После этого нажмите «Готово».
  3. Примечание: если вы инсталлируете CentOS 7 на чистый жесткий диск, то выбирайте пункт «создать разделы автоматически».

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

  1. Выберите тот раздел, который собираетесь удалить. В нашем случае «/boot».
  2. Нажмите на кнопку «-».
  3. Подтвердите действие, нажав на кнопку «Удалить» в появившемся окне.

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

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

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

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

  1. Нажмите по кнопке с символом «+», чтобы открылось окно создания точки монтирования.
  2. В появившемся окне выберите точку монтирования и укажите размер создаваемого раздела.
  3. Нажмите кнопку «Далее».

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

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

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

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

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

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

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

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

  1. Для начала задайте пароль суперпользователя. Для этого нажмите на пункт «Пароль root».
  2. В первую графу введите придуманный вами пароль, а затем повторите его ввод во второй графе, после чего нажмите «Готово».

    Примечание: если вы введете короткий пароль, то после нажатия «Готово» система вас попросит ввести более сложный. Это сообщение можно проигнорировать, нажав второй раз кнопку «Готово».

  3. Теперь нужно создать нового пользователя и присвоить ему права администратора. Это повысит уровень безопасности системы. Для начала нажмите на пункт «Создание пользователя».
  4. В новом окне вам необходимо задать имя пользователя, логин и установить пароль.

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

  5. Не забудьте сделать создаваемого пользователя администратором, установив галочку на соответствующем пункте.

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

Как только полоса дойдет до конца, вам необходимо перезагрузить компьютер. Для этого нажмите по одноименной кнопке, предварительно вынув флешку или 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 8

В этой статье мы рассмотрим чистую установку с нуля и в базовую настройку сервера CentOS 8 в минимальной конфигурации.

Что нового в CentOS 8?

24 сентября 2019 года, вышел релиз 8-ой версии CentOS. CentOS — дистрибутив Linux, основанный на коммерческом Red Hat Enterprise, компании Red Hat и совместимый с ним.

Рассмотрим наиболее крупные изменения в релизе CentOS 8:

  • Используется ядро Linux kernel 4.18.
  • Переход с пакетного менеджера yum на dnf. В данный момент yum существует как алиас к dnf.
  • Выполнено разделение основного репозитория на 2 — это BaseOS и AppStream. Сделано это для того, чтобы у пользователя появилась возможность устанавливать разные версии пакетов на сервер. BaseOS работает как и раньше.
  • Обновилось все ПО, в том числе и ядро. В базовом репозитории теперь устанавливается php версии 7.2 (наконец-то).
  • Замена iptables на nftables. Лично я пока еще со вторым не работал напрямую, поэтому не могу сказать, хорошо это или плохо. Единственный момент, если нужно будет переносить какие-то проекты на новую ОС, придется разбираться с правилами, так как есть сервера с чистым iptables.
  • network-skripts не используются по умолчанию для настройки сети, теперь управления сетью возложено на Network Manager.
  • По умолчанию устаналивается веб-интерфейс управления сервером cockpit (удобно для новичков).
  • Для управления контейнерами используется podman (вместо docker и mobdy).
  • Новая версия стека TCP/IP 4.16 с улучшенной производительностью и поддержкой алгоритмов контроля BBR и NV.
  • Новые версии дситрибутивов:

Установка CentOS 8 с помощью ISO-образа

Так как я проводил установку операционной системы на виртуальной машине KVM, предварительно я скачал установочный ISO-образ с одного из официальных зеркал (https://www.centos.org/download/mirrors/) и примонтировал его для установки на виртуальном сервере (при установке на физический сервер залейте установочный образ СentOS на USB флешку). Сразу скажу, процесс установки CentOS 8, не отличается от установки предыдущей версии и данная статья рассчитана на то, что будет служить помощником для пользователей, которые выполняют подобное впервые.

В рекомендуемых требования указано, что для установки CentOS 8 необходимо минимум 10 Гб места на диске и 512 Мб RAM на одно ядро процессора

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

Install CentOS Linux 8.0.1905

Выбрав его, у вас запустится процесс установки:

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

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

В приветствии, система попросит вас выбрать язык, я всегда ставлю English (английский), потому что мне так удобнее работать (да и не понимаю, зачем вообще ставить русский язык на сервере). Нажмите кнопку “Continue”. В следующем меню нужно выбрать основные настройки для установки CentOS.

Для запуска установки, обязательно настроить только один пункт “Installation Destination”, там вы указываете разбивку диска, но я предпочитаю так же, сразу настроить сеть и дату со временем.

В зависимости от вашего часового пояса, вы устанавливаете свои параметры, для меня это Москва.

Чтобы настроить сеть, переходим в пункт “Network & Host Name”

В поле “Host Name” указываем имя сервера и для конфигурации сетевых интерфейсов нажимаем “Configure”

В главной вкладке, нужно отметить галочкой “Automatically connect to this network when it is available”, это нужно для того, чтобы сетевой интерфейс поднимался автоматически.

Перейдите во вкладку “IPv4 Settings” (либо IPv6 если вы используете данный протокол) настройте IP-адрес, маску подсети и шлюз:

Для ввода конкретного IP, нужно выбрать метод “Manual” и нажать кнопку “Add”, после чего у вас появится возможность ввести нужные данные. Сохранив все, мы вернемся к начальному окну настроек сети

Как можно увидеть на скриншоте, IP адрес добавился и сетевой интерфейс уже поднят (состояние Connected).

Следующим шагом мы перейдем к разбивке диска:

Для примера установки я воспользовался автоматической разбивкой от разработчиков CentOS. Если вы хотите разбить диск по-своему, нужно выбрать пункт “Custom”.

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

Удалить разделы можно кнопкой “Delete all”, после чего потребуется нажать кнопку “Reclaim space”, чтобы размер дискового пространства стал актуальным.

Список пакетов для установки выбирается в пункте Software Selection. Если вы планируете использовать CentOS 8 в качестве сервера, достаточно выбрать Minimal Install, а из добавлений Standard и Guest Agents (если вы ставите гостевую ОС в виртуальной машине).

После вышеописанных действий, можно запускать установку кнопкой “Begin Installation”

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

Нажмите на кнопку “Root Password”, введите и повторите пароль и нажмите “Done”, чтобы вернуться к установке:

Изначально я задаю простой пароль, чтобы в случае проблем с сетью, я мог легко его ввести в VNC-консоли и исправить проблемы. После того, как система будет установлена, пароль рекомендуется изменить на более сложный. Установка CentOS 8 у меня заняла порядка 5-7 минут и когда в окне установки загорится кнопка “Reboot”, это означает, что все было установлено и нужно перезапустить сервер.

На этом установка CentOS 8 завершена.

Базовая настройка CentOS 8 после установки

Базовая настройка CentOS 8 практически не отличается от настройки CentOS, я делаю базовые настройки одинаковые на всех серверах.

CentOS 8: Установка обновлений и инструментов администратора

Как уже отмечалось ранее, в CentOS 8 на замену yum, пришел dnf.

Dnf – это следующее поколение приложения YUM, менеджер пакетов для дистрибутивов Linux на основе RPM-пакетов. Ранее dnf использовался в дистрибутивах Fedora, а теперь и в CentOS 8.

Первое действие, которое я выполняю на вновь установленном сервере, это обновление системы:

dnf update -y

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

[[email protected] var]# dnf update

Last metadata expiration check: 0:21:47 ago on Wed 09 Oct 2019 02:36:45 PM +06.
Dependencies resolved.
Nothing to do.
Complete!

Если у вас обнаружатся обновления, обязательно их установите.

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

dnf install epel-release -y
dnf install mc wget screen nano net-tools bind-utils curl lsof vim -y

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

Автоматическое обновление системы я не включаю, так как всегда устанавливаю необходимые обновления вручную. Если вы хотите настроить автоматическое обновление, установите пакет dnf-automatic:

dnf install -y dnf-automatic

Чтобы проверить активные задания на обновления системы введите:

systemctl list-timers *dnf-*

Отключение SELinux

На начальном этапе я всегда отключаю SELinux (для применения изменения нужно перезагрузить сервер):

nano /etc/sysconfig/selinux
reboot

Отключение SELinux налету, можно выполнить командой:

setenforce 0

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

Так как сеть я настроил на этапе установки системы, настройка ее в данный момент не требуется (подробная статья по настройке сети в CentOS). Хочу лишь сказать, что в CentOS 8, сеть управляется только через Network Manager и утилиту nmcl. Network-scripts по умолчанию не поддерживаются. Если честно, в своей работе я всегда отключал NM и не использовал, для меня это не удобный инструмент, теперь придется разбираться и с ним.

Проверка статуса сети:

[[email protected] ~]# systemctl status NetworkManager

● NetworkManager.service - Network Manager
Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2019-10-07 08:23:11 MSK; 3h 37min ago
Docs: man:NetworkManager(8)
Main PID: 870 (NetworkManager)
Tasks: 3 (limit: 5060)
Memory: 4.7M
CGroup: /system.slice/NetworkManager.service
└─870 /usr/sbin/NetworkManager --no-daemon
Установка и смена hostname

Если вы не задали корректный hostname сервера при установке или просто хотите изменить, это можно выполнить несколькими способами. Измените его в файле /etc/hostname или поменяйте с помощью команды:

hostnamectl set-hostname нужный_хостнейм

Настройка firewalld в CentOS 8

Добавим в доверенные зоны на firewalld, нужные для начальной работы сервисы (SSH и HTTP/HTTPS):

firewall-cmd –-add-service=ssh
firewall-cmd --permanent –-add-service=http
firewall-cmd --permanent –-add-service=https

Настройка времени и часового пояса (time-zone)

Чтобы посмотреть текущее время и time-zone, нужно ввести команду date:

[[email protected] var]# date

Wed Oct 9 13:03:00 MSK 2019

Мы указали time-zone при установке самой системы, поэтому у нас время по Москве. Чтобы поменять time-zone, нужно воспользоваться соответствующей командой:

timedatectl set-timezone Europe/Moscow

Где вместо Europe/Moscow вы можете указать свой вариант, например:

[[email protected] network-scripts]# date
Mon Oct 7 12:46:09 MSK 2019

[[email protected] network-scripts]# timedatectl set-timezone Asia/Almaty
[[email protected] network-scripts]# date

Mon Oct 7 15:46:22 +06 2019

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

systemctl start chronyd
systemctl enable chronyd

[[email protected] network-scripts]# systemctl status chronyd

● chronyd.service - NTP client/server
Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2019-10-07 16:13:48 +06; 9s ago
Docs: man:chronyd(8)
man:chrony.conf(5)
Main PID: 31700 (chronyd)
Tasks: 1 (limit: 5060)
Memory: 1.1M
CGroup: /system.slice/chronyd.service
└─31700 /usr/sbin/chronyd
Настройка истории команда в bash_history

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

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

[[email protected] ~]# history

1 dnf repolist
2 dnf install epel-release

То есть мы видим, что выполнялось на сервере, но не видим время и точную дату, для меня это критично, так как доступ к серверам могут иметь несколько специалистов. Поэтому приведем history к приятному виду:

Откроем файл /root/.bashrc и добавим в него нужные строки:
nano /root/.bashrc

export HISTSIZE=10000
export HISTTIMEFORMAT="%h/%d/%y - %H:%M:%S "

Теперь при проверке history, мы видим точное время выполнения той или иной команды:

[[email protected] ~]# history

1 Oct/07/19 - 16:16:29 dnf repolist
2 Oct/07/19 - 16:16:29 dnf install epel-release

Cockpit: Веб-интерфейс управления сервером в CentOS 8

Как мы уже упоминали, в CentOS 8 предустановлен веб-интерфейс управления сервером cockpit. Он также управляется через systemctl. Вы можете запустить его и добавить в автозгрузку:

# systemctl enable cockpit.socket
# systemctl start cockpit.socket

По–умолчанию веб сервер Cockpit слушает на порту 9090. Добавьте этот порт в разрешенные:

# firewall-cmd --get-active-zones
# firewall-cmd --add-port=9090/tcp --zone=MY_ACTIVE_ZONE --permanent
# firewall-cmd --reload

Для доступа к веб-интерфейсу Cockpit, откройте в браузере URL адрес https://your-CentOS8-IP:9090 и авторизуйтесь.

С помощью веб-интерфейса Cockpit вы можете смотреть загрузку своего сервера, управлять сетями и хранилищами, контейнерами, смотреть логи.

На этом моя типовая настройка CentOS сервера закончена, далее я выполняю настройки согласно технического задания по различным проектам и обычно они отличаются.

Настройка сервера CentOS 7 (первые шаги) — WebNoob.ru

#!/bin/bash

#

# Объявление переменных

export IPT=»iptables»

 

# Интерфейс который смотрит в интернет

export WAN=eth0

export WAN_IP=192.168.0.1

 

# Очистка всех цепочек iptables

$IPT -F

$IPT -F -t nat

$IPT -F -t mangle

$IPT -X

$IPT -t nat -X

$IPT -t mangle -X

 

# Установим политики по умолчанию для трафика, не соответствующего ни одному из правил

$IPT -P INPUT DROP

$IPT -P OUTPUT DROP

$IPT -P FORWARD DROP

 

# разрешаем локальный траффик для loopback

$IPT -A INPUT -i lo -j ACCEPT

$IPT -A OUTPUT -o lo -j ACCEPT

 

# Разрешаем исходящие соединения самого сервера

$IPT -A OUTPUT -o $WAN -j ACCEPT

 

# Состояние ESTABLISHED говорит о том, что это не первый пакет в соединении.

# Пропускать все уже инициированные соединения, а также дочерние от них

$IPT -A INPUT -p all -m state —state ESTABLISHED,RELATED -j ACCEPT

# Пропускать новые, а так же уже инициированные и их дочерние соединения

$IPT -A OUTPUT -p all -m state —state ESTABLISHED,RELATED -j ACCEPT

# Разрешить форвардинг для уже инициированных и их дочерних соединений

$IPT -A FORWARD -p all -m state —state ESTABLISHED,RELATED -j ACCEPT

 

# Включаем фрагментацию пакетов. Необходимо из за разных значений MTU

$IPT -I FORWARD -p tcp —tcp-flags SYN,RST SYN -j TCPMSS —clamp-mss-to-pmtu

 

# Отбрасывать все пакеты, которые не могут быть идентифицированы

# и поэтому не могут иметь определенного статуса.

$IPT -A INPUT -m state —state INVALID -j DROP

$IPT -A FORWARD -m state —state INVALID -j DROP

 

#Блок нулевых пакетов

$IPT -A INPUT -p tcp —tcp-flags ALL NONE -j DROP

 

# Приводит к связыванию системных ресурсов, так что реальный

# обмен данными становится не возможным, обрубаем

$IPT -A INPUT -p tcp ! —syn -m state —state NEW -j DROP

$IPT -A OUTPUT -p tcp ! —syn -m state —state NEW -j DROP

 

# Открываем порт для ssh

$IPT -A INPUT -i $WAN -p tcp —dport 22 -j ACCEPT

# Открываем порт для DNS

$IPT -A INPUT -i $WAN -p udp —dport 53 -j ACCEPT

# Открываем порт для NTP

$IPT -A INPUT -i $WAN -p udp —dport 123 -j ACCEPT

# Открываем порт для HTTP

$IPT -A INPUT -i $WAN -p tcp —dport 80 -j ACCEPT

# Открываем порт для HTTPS/SSL

$IPT -A INPUT -i $WAN -p tcp —dport 443 -j ACCEPT

 

# Логирование

# Все что не разрешено, но ломится отправим в цепочку undef

 

#$IPT -N undef_in

#$IPT -N undef_out

#$IPT -N undef_fw

#$IPT -A INPUT -j undef_in

#$IPT -A OUTPUT -j undef_out

#$IPT -A FORWARD -j undef_fw

 

# Логируем все из undef

 

#$IPT -A undef_in -j LOG —log-level info —log-prefix «— IN — DROP «

#$IPT -A undef_in -j DROP

#$IPT -A undef_out -j LOG —log-level info —log-prefix «— OUT — DROP «

#$IPT -A undef_out -j DROP

#$IPT -A undef_fw -j LOG —log-level info —log-prefix «— FW — DROP «

#$IPT -A undef_fw -j DROP

 

# Записываем правила

/sbin/iptables-save  > /etc/sysconfig/iptables

CentOS 7 и 8 настройка сервера после установки ⋆ Clip-Clap

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

Введение

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

После выхода нового релиза 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

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

# iptables -L -v -n

В Centos 8 вместо iptables используется nftables. Сразу скажу, что я с ним еще не разбирался и не знаю, буду ли. Реально, меня полностью устраивают iptables. Я ни разу не сталкивался с тем, что что-то не получалось или было невозможно настроить с их помощью. У меня написана куча конфигов к ним, настроены роли ansible с шаблонами правил. Я не понимаю, зачем мне все это переводить в nftables и какую выгоду я с этого получу. Поэтому пока я продолжаю использовать iptables.

Начиная с 7-й версии CentOS для настройки firewall разработан новый инструмент под названием firewalld и все управление производится через него. Он же используется и в Centos 8, только управляет при этом nftables, но сами правила для firewalld одинаковые в обоих версиях. Я не понял зачем в принципе придумали firewalld и не могу сказать, удобнее с ним стало или нет. По мне, так удобнее использовать одни и те же наработки по iptables. Мигрируя от сервера к серверу и от дистрибутива к дистрибутиву, я просто редактирую скрипт настроек фаервола либо шаблон ansible с правилами.

На тему отключения firewalld я тоже время от времени получаю критику, типа надо изучать новое и не цепляться за старое. Так вот, firewalld я изучил и пользуюсь относительно регулярно. Он долгое время использовался в Bitrixenv, с которым я работаю давно и плотно. Кстати, в последних версиях этого окружения bitrix отказался от firewalld. Удивился, когда это заметил. В связи с этим, firewalld мне приходится знать и использовать. И мне он нравится меньше, чем нативные правила в iptables и мои скрипты для управления ими.

Свое мнение не навязываю и убеждать никого не хочу. Делюсь в статье про настройку centos тем, что использую сам. А вы выбирайте тот инструмент, что вам больше подходит. Я привык управлять iptables через самописный скрипт, который переношу от сервера к серверу и редактирую под конкретные потребности. Этим скриптом я и поделюсь. Так что для начала остановим и отключим firewalld.Сразу хочу предупредить, что не имея доступа к консоли сервера, настраивать firewall плохая идея. Даже если вы очень хорошо понимаете что делаете и проделывали подобное много раз, все равно есть шанс остаться без доступа к серверу. Так что первым делом перед настройкой iptables проверяем доступ к консоли сервера.

# systemctl stop firewalld
# systemctl disable firewalld
rm '/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service'
rm '/etc/systemd/system/basic.target.wants/firewalld.service'

Установим утилиты для iptables:

# yum install iptables-services

Включим автозапуск iptables:

# systemctl enable iptables

Теперь создадим файл /etc/iptables.sh следующего содержания:

#!/bin/bash
#
# Объявление переменных
export IPT="iptables"

# Интерфейс который смотрит в интернет
export WAN=eth0
export WAN_IP=147.15.218.72

# Очистка всех цепочек iptables
$IPT -F
$IPT -F -t nat
$IPT -F -t mangle
$IPT -X
$IPT -t nat -X
$IPT -t mangle -X

# Установим политики по умолчанию для трафика, не соответствующего ни одному из правил
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP

# разрешаем локальный траффик для loopback
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT

# Разрешаем исходящие соединения самого сервера
$IPT -A OUTPUT -o $WAN -j ACCEPT

# Состояние ESTABLISHED говорит о том, что это не первый пакет в соединении.
# Пропускать все уже инициированные соединения, а также дочерние от них
$IPT -A INPUT -p all -m state – state ESTABLISHED,RELATED -j ACCEPT
# Пропускать новые, а так же уже инициированные и их дочерние соединения
$IPT -A OUTPUT -p all -m state – state ESTABLISHED,RELATED -j ACCEPT
# Разрешить форвардинг для уже инициированных и их дочерних соединений
$IPT -A FORWARD -p all -m state – state ESTABLISHED,RELATED -j ACCEPT

# Включаем фрагментацию пакетов. Необходимо из за разных значений MTU
$IPT -I FORWARD -p tcp – tcp-flags SYN,RST SYN -j TCPMSS – clamp-mss-to-pmtu

# Отбрасывать все пакеты, которые не могут быть идентифицированы
# и поэтому не могут иметь определенного статуса.
$IPT -A INPUT -m state – state INVALID -j DROP
$IPT -A FORWARD -m state – state INVALID -j DROP

# Приводит к связыванию системных ресурсов, так что реальный
# обмен данными становится не возможным, обрубаем
$IPT -A INPUT -p tcp ! – syn -m state – state NEW -j DROP
$IPT -A OUTPUT -p tcp ! – syn -m state – state NEW -j DROP

# Рзрешаем пинги
$IPT -A INPUT -p icmp – icmp-type echo-reply -j ACCEPT
$IPT -A INPUT -p icmp – icmp-type destination-unreachable -j ACCEPT
$IPT -A INPUT -p icmp – icmp-type time-exceeded -j ACCEPT
$IPT -A INPUT -p icmp – icmp-type echo-request -j ACCEPT

# Открываем порт для ssh
$IPT -A INPUT -i $WAN -p tcp – dport 22 -j ACCEPT
# Открываем порт для http
$IPT -A INPUT -i $WAN -p tcp – dport 80 -j ACCEPT
# Открываем порт для https
$IPT -A INPUT -i $WAN -p tcp – dport 443 -j ACCEPT

# Логирование
# Все что не разрешено, но ломится отправим в цепочку undef

$IPT -N undef_in
$IPT -N undef_out
$IPT -N undef_fw
$IPT -A INPUT -j undef_in
$IPT -A OUTPUT -j undef_out
$IPT -A FORWARD -j undef_fw

# Логируем все из undef

$IPT -A undef_in -j LOG – log-level info – log-prefix " – IN – DROP "
$IPT -A undef_in -j DROP
$IPT -A undef_out -j LOG – log-level info – log-prefix " – OUT – DROP "
$IPT -A undef_out -j DROP
$IPT -A undef_fw -j LOG – log-level info – log-prefix " – FW – DROP "
$IPT -A undef_fw -j DROP

# Записываем правила
/sbin/iptables-save  > /etc/sysconfig/iptables

В принципе, добавить нечего, в файле даны все комментарии. В таком виде, логи всего заблокированного будут писаться в файл /var/log/messages и записей там будет очень много. Так что в обычной работе эти строки нужно закомментировать, и использовать только во время отладки. Более подробное описание правил и примеры настроек firewall смотрите в отдельной статье, ссылку на которую я уже приводил в самом начале раздела.

Делаем файл c правилами исполняемым и запускаем:

# chmod 0740 /etc/iptables.sh
# /etc/iptables.sh

Проверяем, применились ли правила:

# iptables -L -v -n

При каждом запуске файла с правилами iptables, все изменения записываются в файл /etc/sysconfig/iptables и применяются при загрузке системы.

Настройка SSH в CentOS

Продолжаем настраивать centos. Внесем некоторые изменения в работу ssh для небольшого увеличения безопасности. Хотя речь стоит вести больше не о безопасности, а об удобстве и эффективности. По-умолчанию, сервис ssh работает на 22 порту и если все оставить как есть, то мы получим огромное количество попыток авторизоваться. Боты сканят непрерывно интернет и подбирают пароли к ssh. Это не доставляет в реальности каких-то серьезных хлопот и тем не менее, подобные запросы забивают лог secure и трятят некоторые ресурсы сервера как миниум на установку соединения и рукопожатия (handshake).

Чтобы немного закрыть себя от сканов простых ботов, изменим порт, на котором работает ssh. Можно выбрать любой пятизначный номер, это не принципиально. От автоматического сканирования это защитит. Повесим демон ssh на 25333 порт. Для этого редактируем файл /etc/ssh/sshd_config.

# mcedit /etc/ssh/sshd_config

Раскомментируем строку Port 22 и заменим значение 22 на 25333.

Port 25333

Так же я обычно разрешаю подключаться по ssh пользователю root. Мне так удобнее. Проблем с этим у меня никогда не возникало. Если вы считаете, что это не безопасно, не трогайте эту настройку. Чтобы разрешить пользователю root подключаться по ssh, раскомментируйте строку

PermitRootLogin yes.

Сохраняем файл. Теперь обязательно изменяем настройки iptables, добавляем в разрешенные подключения вместо 22 порта 25333. Если этого не сделать, то после перезапуска sshd мы потеряем удаленный доступ к серверу. Итак, открываем /etc/iptables.sh и меняем в строке

$IPT -A INPUT -i $WAN -p tcp – dport 22 -j ACCEPT

22 на 25333 и исполняем файл. Наше текущее соединение не оборвется, так как оно уже установлено, но заново подключиться по ssh к 22 порту уже не получится.

Перезапускаем sshd:

# systemctl restart sshd

Кстати, если вы не отключили SELinux, то просто так не сможете сменить порт ssh. Получите ошибку при перезапуске.

SELinux is preventing /usr/sbin/sshd from name_bind access on the tcp_socket port 25333.

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

Проверяем какой порт слушает sshd:

# netstat -tulpn | grep sshd
tcp        0      0 0.0.0.0:25333           0.0.0.0:*               LISTEN      1799/sshd
tcp6       0      0 :::25333                :::*                    LISTEN      1799/sshd

Если вывод такой же как у меня, то все в порядке, теперь к ssh можно подключаться по 25333 порту.

Добавим еще одну небольшую настройку. Иногда, когда возникают проблемы с dns сервером, логин по ssh подвисает на 30-60 секунд. Вы просто ждете после ввода логина, когда появится возможность ввести пароль. Чтобы избежать этого замедления, укажем ssh не использовать dns в своей работе. Для этого в конфиге раскомментируем строку с параметром UseDNS и отключим его. По-умолчанию он включен.

UseDNS no

Для применения изменений нужно перезапустить ssh службу, как мы уже делали ранее. Настройку службы sshd в centos закончили, двигаемся дальше.

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

Узнать, какое время настроено на сервере centos можно с помощью команды date:

# date

Чтобы сменить часовой пояс, можете воспользоваться специальной утилитой, которая входит в состав systemd.

# timedatectl set-timezone Europe/Moscow

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

# ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime

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

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

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

# yum install chrony

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

# systemctl start chronyd
# systemctl enable chronyd

Проверяем, нормально ли запустился:

# systemctl status chronyd

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

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

При настройке centos частенько нужен софт, которого нет в стандартной репе. Для инсталляции дополнительных пакетов необходимо подключить репозитории в 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. Они неплохо прокомментированы, так что в подробных разъяснениях не нуждаются. Обращаю внимание на раздел [email], где можно указать параметры отправки сообщений. По-умолчанию стоит отправка почты через локальный хост. Можно тут изменить параметры и отправлять сообщения через сторонний почтовый сервер. Но вместо этого лично я предпочитаю глобально для всего сервера настроить пересылку локальной почты 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

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

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

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

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

# yum install iftop

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

# yum install htop
# yum install atop

Вот как выглядит htop:

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

# yum install lsof

Рекомендую еще установить несколько нужных и полезных программ, которые часто необходимы, но отсутствуют в минимальной установке — wgetbzip2, traceroute, gdisk.

# 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[77.88.21.158]:25, delay=0.25, delays=0/0/0.24/0.01, dsn=5.7.1, status=bounced (host smtp.yandex.ru[77.88.21.158] said: 553 5.7.1 Sender address rejected: not owned by auth user. (in reply to MAIL FROM command))

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

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

Часто задаваемые вопросы по теме статьи (FAQ)

Почему вы используете скрипт для настройки iptables, вместо стандартного FirewallD?

Я работаю не только с серверами, где установлен firewalld. Правила для iptables более универсальные и применимы в любом linux дистрибутиве. Мне так просто удобно. Если вам удобнее работать с firewalld, то используйте его.Используете ли вы GIU в настройке и эксплуатации серверов?

Чаще всего нет. У меня давно налажен процесс настройки практически любого сервера. Я быстрее все делаю через консоль. Иногда использую Webmin из-за удобного просмотра логов сервисов, если они хранятся только на сервере. Если вам нужна консоль управления сервером, то я рекомендую попробовать Cockpit.Зачем вы отключаете SELinux? Неужели так трудно его настроить?

Я умею настраивать selinux и в некоторых статьях это показываю. Данный материал по общей, базовой настройке centos. В основном это для новичков, которых если сразу нагрузить еще и selinux, то будет тяжело. Если есть желание использовать selinux, его можно будет включить и настроить вместе с сервисом, который будет работать на сервере после предварительной настройки.Почему вы не используете sudo, а работаете в консоли под root?

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

Заключение

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

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

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

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

Настроить статический IP-адрес в CentOS

После установки CentOS вам не нужно будет настраивать IP-адрес. CentOS в основном используется как сервер. Таким образом, вы захотите дать ему статический IP-адрес. По умолчанию интерфейс CentOS настроен на получение IP от DHCP-сервера. Здесь я покажу вам, как настроить статический IP-адрес в системе CentOS.

Настроить статический IP-адрес в CentOS

Следующие шаги покажут настройку статического IP-адреса на машине CentOS.

  1. Файлы, необходимые для настройки сети, находятся в папке / etc / sysconfig / network-scripts . Итак, откройте файл с помощью редактора, например nano или vi . Здесь я буду использовать редактор nano . После запуска сервера под управлением CentOS введите учетные данные пользователя root и войдите. Введите команду
    # nano / etc / sysconfig / network-scripts / ifcfg-eth0
  2. Вы увидите такую ​​конфигурацию по умолчанию:
  3. Теперь измените конфигурацию на это,
  4. Затем сохраните файл, чтобы сохранить, нажмите ctrl + x для выхода и нажмите y для подтверждения.
  5. Теперь перезапустите сетевые службы, введя команду:
    [root @ hostname ~] # service network restart
  6. Чтобы проверить IP-адрес, введите следующую команду:
    [root @ hostname ~] # ifconfig
    После этого вы увидите следующую информацию:
  7. После настройки IP-адреса приступим к настройке DNS. Информация о сервере имен или DNS хранится в другом файле. Расположение: / etc / recolv.conf . Снова используя редактор nano для настройки информации DNS,
    [root @ hostname ~] # nano /etc/resolv.conf

    По умолчанию этот файл пуст, поэтому введите здесь хотя бы одну запись:
    nameserver 4.2.2.2
    IP-адрес сервера имен может отличаться в зависимости от сценария вашей сети. Я буду использовать www.google.com. Теперь сохраните файл и выйдите. Вы можете проверить конфигурацию, выполнив команду ping.

    [root @ hostname ~] # ping www.google.com

    Если вы получили ответ, вы успешно настроили IP-адрес и информацию DNS.


Следующие две вкладки изменяют содержимое ниже. Бипин — внештатный инженер по сетям и системам, имеющий опыт работы с Cisco, Juniper, Microsoft, VMware и другими технологиями. Вы можете нанять его на UpWork. Бипин любит писать статьи и учебные пособия по сетевым технологиям. Некоторые из его сертификатов: MCSE: Messaging, JNCIP-SEC, JNCIS-ENT и другие..

Настроить сеть • [How2CentOS]

Это руководство предназначено для системных администраторов, желающих либо изменить IP-адрес, либо добавить дополнительные сетевые карты (NIC) в свою систему CentOS 5. Есть несколько способов настроить сетевую карту с помощью командной строки, но только некоторые команды будут немедленно влиять на ядро. Если вы делаете это удаленно, помните, что вы потеряете соединение или если ваша конфигурация в вашей сети неверна, вы не сможете подключиться.

Настроить сеть с немедленным вступлением в силу

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

# ifconfig eth0 192.168.0.10 маска сети 255.255.255.0
 

[или]

# ip addr add 192.168.0.10 dev eth0
 

Настройте сеть с помощью программы установки или netconfig

Если вы используете утилиту настройки netconfig (или), она перезапишет только файл / etc / sysconfig / network-scripts / ifcfg-eth0. Затем после этого вам нужно перезапустить сетевую службу, например,

# настроить
 

Конфигурация сети -> Редактировать устройства -> eth0 (eth0) — Intel Corporation 82540EM Gigabit Ethernet Controller

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

[или]

# system-config-network
 

Редактировать устройства -> eth0 (eth0) — Intel Corporation 82540EM Gigabit Ethernet Controller

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

Перезагрузите сеть, чтобы конфигурация вступила в силу.

# /etc/init.d/network restart
 

Настроить сеть путем редактирования конфигурации

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

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

Добавить / изменить следующим образом:

# Intel Corporation 82540EM Gigabit Ethernet Controller
УСТРОЙСТВО = eth0
BOOTPROTO = нет
ONBOOT = да
HWADDR = 06: 01: 78: a7: 00: 33
СЕТЕВАЯ МАСКА = 255.255.255.0
IPADDR = 192.168.0.10
ТИП = Ethernet
 

Сохраните и закройте файл. Определите шлюз по умолчанию и имя хоста в / etc / sysconfig / файле конфигурации сети

# vi / etc / sysconfig / network
 

Добавить / изменить конфигурацию следующим образом:

СЕТЬ = да
NETWORKING_IPV6 = нет
HOSTNAME = centos.how2centos.com
ШЛЮЗ = 192.168.0.1
 

Сохраните и закройте файл. Перезапустить сеть:

# / etc / init.д / перезапуск сети
 
.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *