Меню Рубрики

Установка centos 7 на серверную материнку

Установка CentOS 7

Любая работа по администрированию сервера начинается с самого очевидного и обязательного процесса — инсталляции необходимой ОС, чем мы и займемся. Скачаем и установим CentOS 7 server в конфигурации minimal или netinstall с загрузочной флешки или по сети на обычный диск или raid раздел. Перед этим выполним небольшую подготовительную работу и познакомимся с подробностями нашего дистрибутива, которые могут быть полезны в будущем.

Цели статьи

  1. Кратко рассказать о системе Centos 7.
  2. Объяснить различия установочных образов.
  3. Показать, как сделать загрузочную флешку с Centos для установки с флешки или по сети.
  4. Подробно описать все этапы установки Centos 7 на сервер.
  5. Показать установку Centos на программный рейд mdadm на тех серверах, где нет физического рейд контроллера.

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

Cистемные требования CentOS 7

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

Cистемные требования CentOS 7

Поддержка i386 архитектуры нет
Минимальное количество памяти 1GB
Рекомендуемое количество памяти 1GB на каждое ядро процессора
Минимальное место на диске 10GB
Рекомендуемое место на диске 20GB
Максимальный размер файла (ext3) 2TB
Максимальный размер файловой системы (ext3) 16TB
Максимальный размер файла (ext4) 16TB
Максимальный размер файловой системы (ext4) 50TB

Это официальные данные с сайта CentOS. У RHEL они такие же, я проверял. У меня лично на VDS благополучно все работает и с 512MB памяти, меньше не пробовал ставить, думаю и с 256 заведется.

Типы iso образов CentOS 7

Релиз CentOS содержал в себе несколько видов iso образов. Подробное описание каждого из них представлено в таблице:

Редакции CentOS 7

CentOS-7-x86_64-DVD Этот DVD образ содержит все пакеты, которые могут быть установлены с помощью инсталлера. Рекомендуется для большинства пользователей.
CentOS-7-x86_64-NetInstall Этот NetInstall образ для установки по сети и для восстановления. Инсталлятор спросит, откуда будет производиться установка пакетов. Удобно использовать, если у вас есть локальный репозиторий пакетов.
CentOS-7-x86_64-Everything В этом Everything образе содержится полный набор пакетов CentOS 7. Он может быть использован для установки, либо обновления локального зеркала. Для этого образа требуется двухсторонний DVD, либо флешка на 8 Гб.
CentOS-7-x86_64-LiveGNOME
CentOS-7-x86_64-LiveKDE
Эти два образа являются LiveCD CenOS 7. В зависимости от названия используется та или иная графическая оболочка. Они разработаны для тестирования окружения CentOS 7. Они не устанавливаются на жесткий диск, если вы не собираетесь этого делать принудительно. Набор установленного программного обеспечения поменять нельзя, это можно сделать только на установленной операционной системе с помощью yum.
CentOS-7-x86_64-Minimal С помощью этого Minimal образа можно установить базовую систему CentOS с минимальным набором пакетов, необходимых для работоспособности системы. Все остальное можно доустановить позже с помощью yum. Набор пакетов в этом образе будет такой же, как и на DVD при выборе установки minimal.

Я обычно использую для установки либо minimal образ, либо netinstall.

Cкачать CentOS 7

Скачать свежую на текущий момент версию CentOS 7.2.1511 можно двумя способами:

  1. Через torrent сеть
  2. С ближайшего зеркала

Я в качестве такого зеркала предпочитаю использовать CentOS Yandex Mirror:

Скачать CentOS 7

Torrent Yandex Mirror Размер
Скачать CentOS 7 DVD torrent Скачать CentOS 7 DVD iso 4G
СкачатьCentOS 7 NetInstall torrent СкачатьCentOS 7 NetInstall iso 360M
СкачатьCentOS 7 Everything torrent СкачатьCentOS 7 Everything iso 7G
СкачатьCentOS 7 LiveGNOME torrent СкачатьCentOS 7 LiveGNOME iso 1G
СкачатьCentOS 7 LiveKDE torrent СкачатьCentOS 7 LiveKDE iso 1G
СкачатьCentOS 7 Minimal torrent СкачатьCentOS 7 Minimal iso 634M

Напоминаю, что 32 bit или i386 редакции CentOS 7 не существует. Все дистрибутивы только x86_64, то есть 64 bit.

Загрузочная флешка для CentOS 7

Последнее время лично я практически не пользуюсь обычными CD, предпочитая им загрузочные флешки. Они удобнее, занимают меньше места, проще обновить дистрибутив на них. Но иногда приходится заморочиться для создания загрузочной флешки. Например, для создания загрузочной флешки CentOS 6 я раньше пользовался программой unetbootin, но с 7-й версией этот номер не прошел. Созданная в ней флешка не позволяет установить CentOS 7, так как сам инсталлятор в какой-то момент не видит источник установки на флешке.

Но на выручку пришла бесплатная программа Win32DiskImager. С ее помощью без проблем удается создать загрузочную флешку CentOS 7. Вот как это делается:

  1. Скачиваем дистрибутив программы.
  2. Скачиваем дистрибутив CentOS 7. Я для теста использовал версию Minimal.
  3. Вставляем чистую флешку, запускаем программу и указываем настройки:
  4. Нажимаем Write и ждем окончания записи.
  5. Загрузочная флешка CentOS 7 готова.

Этого достаточно для создания флешки. Теперь ей можно пользоваться для установки операционной системы с флешки.

Установка CentOS 7 с флешки

После создания загрузочной флешки, можно приступить к установке. Вставляем флешку в сервер, указываем в качестве источника загрузки USB и запускаем компьютер. Нас встречает начальное меню установки CentOS:

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

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

CentOS 7 minimal

Если вы используете диск centos minimal iso, то увидите следующий экран:

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

  1. Выбор часового пояса centos.
  2. Выбор раскладки клавиатуры.
  3. Поддержка каких языков будет осуществляться на сервере.
  4. Откуда будет происходить установка. Так как у нас дистрибутив centos minimal, установка будет с локального iso.
  5. Выбор пакетов для установки. В образе minimal доступен только минимальный набор софта.
  6. Разбивка жесткого диска. Подробнее коснемся этого пункта, когда будем разбирать установку на ra >Для продолжения установки необходимо выполнить как минимум разбивку жесткого диска. Без этого продолжение установки невозможно. Но мы пройдемся по всем параметрам и установим необходимые для нас значения.

Итак, нажимаем на DATE & TIME и настраиваем параметры времени:

  1. Указываем регион.
  2. Выбираем город.
  3. Включаем при необходимости службу времени для синхронизации часов centos с внешними серверами.
    Это возможно сделать только если вы уже настроили сетевые параметры. Если нет, то вернитесь к этой настройке позже.
  4. Выбираем список внешних серверов для синхронизации времени:
  5. Указываем формат, в котором будет отображаться текущее время.
  6. При необходимости изменяем дату сервера.

После завершения настроек жмем сверху синюю кнопку Done .

Идем в следующую настройку — KEYBOARD LAYOUT :

  1. Добавляем необходимые раскладки. Я добавил Russian .
  2. Нажимаем Options и выбираем, как будет происходить переключение раскладок.
  3. Тестируем раскладки и переключение. Если все в порядке, идем дальше.

Нажимаем LANGUAGE SUPPORT :

Выбираем дополнительные языки, которые будет поддерживать система. Чаще всего мне это не нужно, но для примера добавим поддержку русского языка. Это может пригодиться, например, при создании файлового архива с русскими названиями в файлах. С поддержкой русского языка можно работать в консоли с русскими названиями папок и файлов. Если у вас, к примеру, сервер настраивается для работы в качестве шлюза, поддержка дополнительных языков скорее всего не пригодится. После выбора снова жмем Done .

Теперь выполним сетевые настройки. Идем в раздел NETWORK & HOSTNAME . Подробно о настройке сетевых интерфейсов я указывал в одной из своих статей, поэтому останавливаться на этом вопросе не буду. Включаем ползунок в положение ON и получаем автоматически настройки по dhcp:

  1. Включение ползунка в положение ON активирует интерфейс, он получает настройки по dhcp.
  2. Если вы хотите изменить эти настройки, нажимаете Configure.
  3. Указываете hostname . Если забудете, то после установки этот параметр можно изменить.

Завершаем настройку нажатием на Done . Теперь можно вернуться в настройки часов и активировать Network Time .

Теперь перейдем в раздел INSTALLATION SOURCE . При установке centos minimal менять этот параметр нет необходимости. Там по-умолчанию установлен локальный источник, нам это подходит. Можно ничего не трогать:

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

Нам осталось рассмотреть последнюю обязательную настройку, без которой установка centos не начнется — INSTALLATION DESTINATION . Зайдя в нее вы увидите список подключенных к серверу дисков. В моем случае это один жесткий диск.

Если ваш диск определился правильно, выбираете его и нажимаете Done . Выскакивает окошко с предупреждением, что для установки системе понадобится примерно 1 Гб места на жестком диске, а на вашем жестком диске нет необходимого свободного места. Это происходит потому, что раньше на этом диске была установлена другая система и она занимала весь жесткий диск. Нам нужно удалить всю старую информацию для установки новой системы. Делаем это, нажимая Reclaim space:

Выбираем диск и удаляем все существующие разделы на нем — жмем сначала Delete all, а потом Reclaim space:

После этого установщик выберет весь диск в качестве диска для установки. После этого можно начать непосредственно установку centos, нажав кнопку Begin Installation.

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

CentOS 7 netinstall

Установка Centos 7 с образа netinstall отличается от прочих только одним моментом. Во время подготовки к установке по сети в разделе INSTALLATION SOURCE вам вместо локального источника необходимо указать путь к образу, расположенному где-то в сети. Очевидно, что перед этим необходимо выполнить настройку сети и убедиться, что у компьютера есть доступ в интернет.

В качестве источника для установки я буду использовать упомянутое ранее зеркало яндекса. CentOS netinstall url — https://mirror.yandex.ru/centos/7/os/x86_64/

Указываем путь и жмем Done . После проверки доступности источника, в разделе SOFTWARE SELECTION можно выбрать необходимый для установки набор софта:

Дальше можно начинать установку, указав все остальные параметры, которые мы рассмотрели выше.

CentOS 7 установка на raid

Теперь рассмотрим наиболее сложный вариант установки. Мы будем ставить CentOS 7 на программный рейд. Для примера возьмем 2 диска и ra >INSTALLATION DESTINATION .

Подключаем 2 диска к системе, загружаемся с установочного диска и идем в раздел разбивки диска. Видим 2 жестких диска. Выбираем оба и отмечаем пункт I will configure partition:

Жмем Done . Открывается немного кривое окно управления разделами жесткого диска.

Здесь мы первым делом удаляем все существующие разделы:

И создаем свои новые, нажимая плюсик. Нам нужно создать 3 раздела: boot , swap и корень / . Размеры разделов выбирайте сами, исходя из своих потребностей и оперативной памяти на сервере. Для раздела boot достаточно 500Мб, для swap хватит объема оперативной памяти. Все остальное можно либо заполнить одним корневым разделом, либо создать несколько, если в этом есть необходимость. Device Type ставим RAID . Тип файловой системы выбирайте на свое усмотрение. Что лучше — xfs или ext4 зависит от конкретной ситуации. Считается, что xfs работает лучше с большими файлами, ext4 с кучей мелких. Это тема отдельного разговора. RA >RA >.

Должно получиться примерно так:

Нажимаем Done , когда закончим. В новом окне подтверждаем разбивку диска, нажимая Accept Сhanges:

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

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

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

Посмотрим информацию о корневом массиве:

Все в порядке, установка сервера закончена. Рейд раздел нормально функционирует, обеспечивая отказоустойчивость сервера.

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

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

источник

Домашний сервер на платформе Intel Atom и ОС Centos 7

В своей статье я хочу представить уважаемому хаброобществу практическое руководство по сборке, настройке и вводу в эксплуатацию недорогого и экономичного сервера на платформе Intel Atom и ОС Centos 7. Сей труд не претендует на полноценный и исчерпывающий учебник и рассчитан, скорее, на начинающих, чем на профессионалов. Если человек, до этого в глаза линукс не видевший, сможет при помощи этой статьи сконфигурировать свой первый сервер, я буду считать свою задачу выполненной.

Первая часть статьи (небольшая по объёму) посвящена аппаратной составляющей, а вторая, основная часть — подробному описанию процесса настройки на этой аппаратуре системы Centos 7. Кому интересно, прошу под кат.

Седьмое поколение систем семейства Red Hat (RHEL7, Centos 7, Sceintific Linux 7, Fedora 20) является пока ещё довольно новым, и, несмотря на очень подробную документацию на официальном сайте Red Hat, далеко не все удалось завести вполоборота. Поэтому я и решил написать подробное how-to на тему настройки сервера общего назначения с использованием последнего дистрибутива Centos.

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

  • Энергоэффективность
  • 19-дюймовый корпус для монтажа в стойку, высотой не более 1.5U и глубиной не более 30 см,
  • Доступ к дискам спереди,
  • Минимум два гигабитных сетевых порта,
  • Полностью пассивное охлаждение, то есть отсутствие вентиляторов как на процессоре, так и на блоке питания. Это требование чисто эстетическое, так как изделие будет использоваться в домашних условиях.

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

  • Маршрутизатор (IP router) и межсетевой экран (firewall),
  • X-сервер с современной оболочкой, лично мне очень нравится третий Gnome. Будет использоваться как для администрирования, так и для нечастого запуска прикладных программ, с которыми я имею дело по роду своей профессиональной деятельности,
  • Сервер точного времени (NTP),
  • DNS для внутренней сети с блокировкой баннерных сетей (идея позаимствована отсюда),
  • Высокопроизводительный файловый сервер.

В туда же встанут SVN сервер с броузерной оболочкой (прошу не винить за устаревшие технологии), пакетный репозиторий (типа Nexus), сервер релизов (скорее всего, Hudson, хотя тут я ещё не определился). Хотя эти последние компоненты я уже описывать не буду.

Немного про аппаратную составляющую

Корпус я отыскал достаточно быстро: По высоте всего 1U, по глубине — 25 см. Отсюда сразу же возникли ограничения на материнскую плату — Mini-ITX, и на блок питания — 1U FlexATX.

С материнской платой все оказалось не так просто. Формат Mini-ITX, два гигабитных порта и пассивное охлаждение оказались серьёзными ограничениями. Сначала рассматривал вариант от GIGABYTE и уже почти смирился с 10 ваттами рассеиваемой мощности процессора и, судя по форумам, возможными проблемами с линуксом. Однако в самый последний момент буквально случайно наткнулся на плату от SUPERMICRO с процессором Intel Atom и уже через пару дней держал её в руках. Основным фактором помимо низкого энергопотребления явилась то, что производитель заявил полную и безоговорочную поддержку этой платой Red Hat, хоть и не самой последней версии. Забегая вперёд скажу, что это оправдалось — при настройке линукса со стороны железа проблем не было никаких, от слова совсем.

Плата имеет один разъем памяти, максимум 8GB DDR3-1333 ECC SO-DIMM. Список сертифицированной памяти на сайте производителя достаточно скудный, пришлось зайти с другой стороны. Стал искать, кто из производителей памяти поддерживает эту плату. Нашёл. Выбор пал на Crucial, так как на ихнем сайте есть не только возможность поиска по наименованию материнской платы, но и возможность непосредственного заказа. У них же заказал SSD на 250 Гб, с почти одинаковой скоростью чтения/записи около 500 Мб/сек.

Последняя деталька — блок питания. К сожалению, БП с пассивным охлаждением пока ещё экзотика, нашёл только один вариант, его и заказал. Им оказался FSP150-50TNF. Сайт производителя отыскать так и не смог, купить же его можно в огромном количестве онлайн магазинов.

Со сборкой никаких проблем не было. Втыкать, как говорится, не паять. В корпусе имеются два вентилятора, подключать я их не стал. Итого, получилась такая конструкция:

Общая стоимость всех компонент с доставкой получилась 745 евро. Забегая вперёд скажу, что потребляемая мощность собранного и полностью настроенного сервера около 14-15 ватт.

Много про программную составляющую

О программной настройке этого сервера речь дальше и пойдёт. Дистрибутив линукса я выбрал, исходя из меркантильных соображений. В компании, где я работаю (оффтопик: я математик-инженер, разрабатываю прикладное ПО в области систем управления воздушным движением), мы используем Red Hat или Centos как для разработки, так и как платформу для установки клиентам.

Шаг первый: подготовка установочной флешки.

Дистрибутив в виде ISO, оптимизированный для сетевой установки (CentOS-7-x86_64-NetInstall-1503.iso), можно взять отсюда. После чего из него нужно сделать загрузочную флешку.

Моей первой ошибкой было использовать для этой цели утилиту Unetbootin для Windows. Флешку эта утилита конечно записала, она даже опознавалась как загрузочна, но вот ядро инсталлятора с неё категорически отказывалось грузиться, постоянно вылетая с какими-то левыми сообщениями типа «kernel panic». Исследование форумов показало, что я не один такой криворукий. Поэтому флешку я в результате подготовил из под линукса:

  1. вставляем пустую флешку объема большего, чем файл ISO. Тип файловой системы на ней не важен. главное, она не должна быть разбита на тома.
  2. смотрим, как она смонтирована и какому устройству соответствует:
  3. размонтируем это устройство, иначе в требуемом нам режиме оно будет недоступно:
  4. переходим в режим root и переходим в каталог, где сохранен файл ISO.
  5. используем стандартную утилиту блочного копирования данных:

Все, флешка готова. Для следующего шага нужен любой монитор с возможностью подключения к VGA разъёму, так как плата не имеет ни DVI, ни HDMI, только старый добрый VGA. Также на плате всего два внешних USB3 порта, внутренних портов нет. Один порт нужен для загрузочной флешки, во второй через USB-хаб воткнём клавиатуру и мышь.

Шаг второй: подготовка изделия к загрузке.

Подключаем монитор, клавиатуру, мышь, сетевой кабель с доступом в интернет, кабель питания. Устройство включается само. На плате мигает зелёный светодиод, насколько я понял, он связан с тактированием. Входим в BIOS. Цель и конечный результат — разрешить загрузку с USB. Все остальные настройки я оставил без изменений.

Шаг третий: сетевая инсталляция.

Вставляем флешку в свободный разъем, перезагружаемся. На мой взгляд, графический инсталлятор интуитивно понятен, поэтому пока обойдусь без картинок. Уже в процессе написания статьи я обнаружил красочное руководство по установке, там все очень подробно сфотографировано. Опишу только, что необходимо сделать на данном этапе, чтобы потом сберечь время и нервы:

  • Задать все параметры сетевой карты, к которой подключён кабель, чтобы работал доступ в интернет: ip, шлюз, dns, и активировать адаптер.
  • В окне настроек времени выбрать правильный часовой пояс и настроить время. Я лично всегда использую синхронизацию времени по сети.
  • Разбить диск на разделы. Обычно я использую схему разбивки по умолчанию. В ней папка home располагается на своём разделе. Так как пользователь у меня один (я сам), не считая рута, то home мне особо не нужен. Поэтому я переименовываю в этой схеме том home в work, чтобы в будущем система создавала домашние директории пользователей в корневом разделе /home.
  • Задать адрес сервера, откуда будут вытягиваться пакеты в процессе инсталляции.
  • Выбирать компоненты, которые точно понадобятся. В моем случае это файловый сервер, средства разработки, утилиты мониторинга железа, http-сервер. Все остальное можно добавить потом.

После этого нажимам на «Начать установку». Пока идёт скачивание и установка пакетов, имеется возможность задать пароль рута, а также добавить пользователей в систему. После завершения установки перезагружаемся и с другого компьютера проверяем доступ по ssh. Так как он по умолчанию сконфигурирован, то все должно работать. Самое время отцепить монитор и клавиатуру и установить сервер на место постоянной дислокации в стойку, подключить к сети и запустить. Дальнейшая настройка будет производиться удалённо через консоль.

Шаг четвёртый: настройка базового функционала.

Итак, логируемся с другого компьютера по SSH. Если другой компьютер работает под управлением Windows, то в качестве ssh-клиента можно взять старый добрый putty. Естественно, все дальнейшие операции делаются из под рута. Банальность, но отмечу, что переход в режим рута осуществляется командой:

1. Первое, что необходимо сделать на свежеустановленной системе — обновить её. В системе уже присутствует пакетный менеджер yum. Он доступен из консоли (команда yum). Пакетные репозитории уже настроены по умолчанию, поэтому для обновления всей системы достаточно команды:

2. Ещё с досовских времён я не могу жить без файлового менеджера, желательно в синих тонах, поэтому сразу ставлю себе линуксовый аналог нортон-коммандера. Хотя это вопрос личных предпочтений. Подтягивается около 30 дополнительных пакетов, в основном perl:

3. Затем мне нужны средства мониторинга для сенсоров, расположенных на материнской плате. Ставится один дополнительный пакет:

4. Сенсоры нужно инициализировать:

5. Просматривать значения сенсоров можно так:

Напомню, что вентиляторы отключены. Температура в трёх точках несколько завышена, но всё же далека от критичной.

Шаг пятый: удалённый рабочий стол.

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

Подтягивается около 650 дополнительных пакетов (объём загрузки около 660 Мб, объём установки около 2 Гб).

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

Так как удалённый рабочий стол мне нужен эпизодически, я не стал настраивать его автоматическую загрузку. Если он нужен, то необходимо сначала войти на сервер по ssh (не как рут, а как пользователь, от лица которого будет запускаться сессия), и запустить его вручную командой:

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

Этот номер и пароль потребуются на клиенте для подключения к рабочему столу с использованием любого VNC-клиетна.

Многие вещи можно настраивать через удалённый рабочий стол в графическом интерфейсе, а не в консоли. Например, имеются приложения gpk-application для установки/удаления и gpk-update-view для обновления пакетов:

Чтобы облегчить настройку рабочего стола под свои привычки, дополнительно можно установить утилиты настройки и модуль, позволяющий устанавливать из броузера (только из Firefox) расширения для оболочки GNOME:

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

Шаг шестой: Настройка сетевых интерфейсов и маршрутизация.

Одна из сетевых плат уже настроена в момент установки системы. Эта плата (интерфейс) с адресом 192.168.178.2 будет использоваться для доступа в мир, к ней напрямую будет подключёно внешнее интернет-соединение. Вторая плата с адресом 192.168.1.1 будет шлюзовой для внутренней сети, кабель от неё пойдёт в сетевой хаб локальной сети. Именно этот интерфейс и нужно сейчас настроить.

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

Воспользуемся графическим конфигуратором, для чего из консоли запустим:

Далее выберем иконку сети:

Задаём нужные параметры для обоих сетевых адаптеров. Важно, чтобы для каждого адаптера был обязательно включён флаг «Connect automatically», иначе после перезагрузки сетевой интерфейс останется выключенным:

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

Конфигурация адаптеров хранится в текстовых файлах /etc/sysconfig/network-scripts/ifcfg-enp5s0f0 и /etc/sysconfig/network-scripts/ifcfg-enp5s0f1, которые можно редактировать вручную. К сожалению, это придётся сделать позже, так как из графического интерфейса нет возможности привязать адаптер к нужной зоне межсетевого экрана, но об этом ниже. На данном же этапе статус сетевых интерфейсов такой:

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

Маршрутизация управляется параметром net.ipv4.ip_forward из файла /etc/sysctl.conf. Для её включения параметр нужно установить в единицу:

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

Для проверки, включена ли IP маршрутизация, можно выполнить следующую команду, которая должна вернуть единицу:

Шаг седьмой: Настраиваем межсетевой экран.

Межсетевой экран нужен для контроля и фильтрации проходящих через сервер сетевых пакетов. Цель — запрет доступа ко всем сервисам снаружи сети. Межсетевой экран обслуживается модулем Firewalld, который конфигурируется как из консоли (команда #firewall-cmd), так и с помощью графического интерфейса (команда #firewall-config). Служба FirewallD использует инструментарий iptables (iptables tool) для взаимодействия с фильтром пакетов ядра.

На официальном сайте Red Hat можно найти подробную документацию по этому модулю. Также в сети есть подробные руководства по его настройке, например это.

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

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

Зона является активной, если к ней привязана хотя бы одна сетевая плата. Правила фильтрации задаются именно для активных зон. Какие же зоны у нас активны изначально?

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

Интерфейс enp5s0f0 с адресом 192.168.1.1 будет доступен из внутренней сети, поэтому все установленные на сервере сервисы должны быть по этому интерфейсу доступны. Доступ же по наружному интерфейсу enp5s0f1 должен быть максимально урезан. Для внутренней сети волевым решением выберем зону internal. В неё нужно перекинуть интерфейс enp5s0f0.

Нюанс, однако: есть две таблицы фильтрации — активная в данный момент и постоянная. При перезагрузке сервера активная таблица восстанавливается из постоянной. Поэтому нужно либо стазу работать с постоянной таблицей (параметр —permanent в командах), либо потом не забыть скопировать активную таблицу в постоянную, когда все изменения сделаны. Изменения в активной таблице применяются мгновенно: сохранять или применять изменения не требуется. Изменения же в постоянной таблице вступят в силу только после перезагрузки таблицы (команда firewall-cmd —reload), сервиса (команда systemctl restart firewalld) или сервера.

Я буду сразу править постоянную таблицу. Удаляю интерфейс из зоны public:

Добавляю его в зону internal:

Вот здесь нас поджидает засада, а именно известный и до сих пор не закрытый баг в Centos 7. Суть: зона интерфейса при перезагрузке берётся из настроек самого интерфейса (файл /etc/sysconfig/network-scripts/ifcfg-enp5s0f0), а вот там она и не изменилась. Это придётся сделать вручную: правим файл /etc/sysconfig/network-scripts/ifcfg-enp5s0f0 и добавляем туда строку ZONE=internal:

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

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

Я же предпочитаю это делать из графической оболочки:

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

Не знаю, с чем это связано, но изменения флага маскировки для адаптера enp5s0f1 как из графической оболочки, так через firewall-cmd не дали никакого эффекта. Рабочее решение нашлось в этой статье. Его суть: задать дополнительное прямое правило POSTROUTING в таблицу iptables, надстройкой на которой FirewallD является:

Перезагрузим таблицу и проверим изменения:

На этом межсетевой экран настроен. Текущую конфигурацию брандмауэра можно проверить такой полезной командой:

Шаг восьмой: Сервер точного времени (NTP).

Для синхронизации времени по сети (как времени самого сервера, так и времени на клиентских машинах с сервером) настрою NTP сервер. В Centos 7 вместо старого доброго ntpd предустановлен и активирован новый сервис — chrony.

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

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

Автоматическая синхронизация времени с удалённым сервером разрешается командой:

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

После чего можно подправить настройки сервиса, которые хранятся в файле /etc/chrony.conf. В этом файле мне было достаточно сделать только две корректировки:

Проверим состояние и синхронизацию:

После замены адреса NTP сервера на клиентских устройствах (Windows, Linux, Zyxel) все они дружно подхватили время с сервера.

Шаг предпоследний: служба DNS.

Единственная цель, с которой я решил поднять службу DNS на сервере — блокировка баннерных сетей, сайтов статистики и всевозможных серверов телеметрии (например, Microsoft) на всех устройствах в локальной сети. Идея не моя, взята отсюда. Поискав в паутине, нашёл несколько сайтов, которые на регулярной основе публикуют чёрные списки доменов в формате hosts-файлов.

Например это и это. Особенностью второго списка является то, что сервера телеметрии Microsoft там уже есть.

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

Далее в конфигурационном файле внутреннего сетевого интерфейса (в моём случае /etc/sysconfig/network-scripts/ifcfg-enp5s0f0) нужно указать, что DNS сервером является локальный хост, т.е. добавить строку:

После включения или перезагрузки сервера служба NetworkManager на основе настроек из этого файла обновляет файл /etc/resolv.conf, который содержит адреса как внешнего DNS сервера (в моём случае это DSL/FritzBox), так и нашего:

Скачав отсюда исходники установленной версии, можно выдернуть оттуда пример конфигурационного файла, подправить его и сохранить как /etc/dnsmasq.d/main.conf. Я его сконфигурировал по-минимому:

Главное здесть — параметр addn-hosts=/etc/black_list_hosts.txt, где black_list_hosts.txt — это и есть чёрный список доменов. В моём случае, я пока просто скачал его отсюда. Как результат — баннерной рекламы на всех устройствах локальной сети (как настольных, так и мобильных) практически не стало. В будущем я собираюсь автоматизировать процесс обновления этого списка.

Последний шаг: файловый сервер (Samba).

Это последняя компонента, о которой я немного напишу. Samba — файловый сервер для совместного доступа к файлам со всех устройств локальной сети. Устанавливается он просто:

Я выдам в совместный доступ только одну папку: /work/nas. Для этого нужно отредактировать файл /etc/samba/smb.conf и указать там параметры доступа к этой папке:

По умолчанию папка сконфигурирована «только для чтения», но пользователь с именем family имеет доступ на запись. Запускаем сервис и проверяем его настройки:

Далее нужно создать папку и обеспечить доступ к ней. Доступ получит группа пользователей fileshare:

Далее есть особенность. Дело в том, что в Centos установлена дополнительная подсистема безопасности, которая регулирует доступ к ресурсам не только для пользователей, но и для модулей (компонентов) системы. Она называется SELinux. Чтобы сервер Samba сам мог долучить доступ к папке /work/nas, у неё должен быть задан дополнительный аттрибут samba_share_t помимо обычных прав чтения-записи:

Для манипуляции флагами есть стандартная команда chcon. Флаг samba_share_t с её помощью устанавливается так:

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

Часто бывает нужно подмонтировать к этой папке внешний накопитель (диск или флешку), отформатированные под NTFS. Драйвера NTFS в системе по умолчанию нет. Также его нет и в стандартных репозиториях. Если есть потребность подключать диски с NTFS к системе, то нужно установить 3rd-party репозиторий EPEL из проекта Федоры и уже оттуда установить драйвер:

После чего внешние диски диски NTFS будут автоматически опознаваться системой.

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

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

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

источник

Читайте также:  Установка информационных знаков на автомобильных дорогах

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

Adblock
detector