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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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


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

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

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

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


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

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

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

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

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

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

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

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


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

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

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

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

Заключение

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

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

Подробно рассмотрим установку и настройку FTP сервера в CentOS 7 на базе ProFTPD . Как всегда для удобства восприятия материал разбит на смысловые блоки. В этой статье Вы найдете решения следующих задач:

  • Установка LAMP в CentOS 7
  • Настройка SELinux
  • Установка и настройка phpMyAdmin в CentOS 7
  • Создание и настройка виртуальных хостов
  • Создание баз данных для сайтов
  • Установка Joomla 3.6 в CentOS 7
  • Установка и настройка FTP сервера
  • Установка и настройка Firewalld
Подготовка системы

Подключение EPEL репозитория:

Sudo yum -y install epel-release

Обновим систему:

Sudo yum -y update

Установим файловый менеджер. Я привык работать с использованием Midnight Commander, меня вполне устраивает как удобство навигации по фаловой системе, так и встроенный редактор mcedit. Выполните в терминале:

Sudo yum -y install mc

Настройка SELinux

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

Настройка разрешений в SELinux

Для работы с контекстом SELinux нам необходима утилита semanage входящая в состав пакета policycoreutils-python, давайте установим ее:

Sudo yum -y install policycoreutils-python

Возможно установить как временные разрешения (будут работать до перезагрузки системы):

Sudo chcon -R -t httpd_sys_content_t /path/to/www sudo chcon -R -t httpd_sys_rw_content_t /path/to/www

Так и постоянные разрешения:

Sudo semanage fcontext -a -t httpd_sys_content_t "/path/to/www(/.*)?" sudo semanage fcontext -a -t httpd_sys_rw_content_t "/path/to/www(/.*)?" sudo restorecon -R /path/to/www

Данные разрешения необходимо указать после создания домашнего каталога для Вашего сайта (подробно рассмотрено ниже).

Где /path/to/www путь до корневого каталога Вашего сайта

httpd_sys_content_t – разрешаем доступ на чтение

httpd_sys_rw_content_t – разрешаем доступ на запись.

Отключение SELinux

Для отключения выполните в терминале:

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

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

Sudo systemctl reboot

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

Sestatus

Вы должны увидеть следующую информацию:

SELinux status: disabled

Установка и настройка MariaDB

Выполните для установки:

Sudo yum -y install mariadb-server mariadb

Запустим сервис:

Sudo systemctl start mariadb.service

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

Sudo systemctl enable mariadb.service

Выполните базовую настройку:

Sudo mysql_secure_installation

Рассмотрим подробно параметры настройки:

Enter current password for root (enter for none) оставляем поле пустым нажимаем Enter Set root password Y New password: Задаем пароль Re-enter new password: Подтверждаем Remove anonymous users Y Disallow root login remotely Y Remove test database and access to it Y Reload privilege tables now? Y All done! If you"ve completed all of the above steps, your MariaDB installation should now be secure. Thanks for using MariaDB!

Установка и настройка Apache

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

Sudo yum -y install httpd

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

Необходимо внести следующие изменения:

# Проверим, раскомментированна ли строчка в конце файла: IncludeOptional conf.d/*.conf # Также добавьте ниже следующую строку: ServerName 127.0.0.1

Запускаем Apache:

Sudo systemctl start httpd.service

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

Sudo systemctl enable httpd.service

Перейдя по адресу:

Http://xxx.xxx.xxx.xxx

(где xxx.xxx.xxx.xxx Ip адрес Вашего сервера), Вы должны увидеть тестовую страницу Apache:

* Если у Вас не открывается тестовая страница Apache, отключите на время Firewalld, подробная настройка файрвола будет рассмотрена ниже:

Sudo systemctl stop firewalld

Скроем информацию о версии Apache, модулях и операционной системе (по умолчанию эта информация доступна всем желающим из внешнего мира):

Sudo mcedit /etc/httpd/conf/httpd.conf

Добавьте в конец файла:

ServerSignature Off ServerTokens Prod

Перезапустите сервис:

Установка и настройка PHP

Выполните установку PHP:

Sudo yum -y install php php-mysql php-gd php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap curl curl-devel php-mcrypt php-pecl-apc

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

Sudo mcedit /etc/php.ini # раскомментируйте и внесите изменения realpath_cache_size = 1024k

Перезагрузите Apache:

Sudo systemctl restart httpd.service

Установка phpMyAdmin, ограничение доступа

Установка:

Sudo yum -y install phpmyadmin

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

Sudo mcedit /etc/httpd/conf.d/phpMyAdmin.conf

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


# Apache 2.4

# Require ip 127.0.0.1
# Require ip::1

Require ip xxx.xxx.xxx.xxx (IP адрес клиентской машины)

Require all granted




# Apache 2.2
Order Deny,Allow
Deny from All
Allow from 127.0.0.1
Allow from::1

# Страница настройки phpMyAdmin


# Apache 2.4

# Require ip 127.0.0.1
# Require ip::1
# Разрешаем удаленное подключение с определенного IP
Require ip xxx.xxx.xxx.xxx (IP адрес клиентской машины)
# Разрешаем все удаленные подключения
Require all granted




# Apache 2.2
Order Deny,Allow
Deny from All
Allow from 127.0.0.1
Allow from::1

Внимание! С целью повышения безопасности сервера, я не рекомендую Вам использовать разрешения для всех удаленных хостов (т.е. Require all granted), в данной статье эти настройки приведены для ознакомления.

Ограничьте доступ к директории /usr/share/phpMyAdmin/ до конкретного IP адреса Require ip xxx.xxx.xxx.xxx (где xxx.xxx.xxx.xxx IP адрес клиентской машины), а также в случае необходимости тонкой настройки, ограничьте доступ к директории /usr/share/phpMyAdmin/setup/ до Require ip 127.0.0.1 по окончанию всех настроек.

Я не приветствую использование phpMyAdmin на боевых серверах. Однако новичку или для тестового сервера эта веб панель предоставляет определенный уровень удобства.

Перезагрузите Apache:

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

Пользователь: root

Пароль: Вы установили его на стадии настройки MariaDB

Для доступа к странице настроек phpMyAdmin наберите в адресной строке:

Http://ip-адрес сервера/phpmyadmin/setup

Не забудьте ограничить доступ к странице настроек, по завершению всех установок.

Создание базы данных для сайта

Создание базы данных в консоле

Подключаемся к MySQL серверу:

Mysql -u root -p

Вводим пароль пользователя root (мы устанавливали его в начале статьи) нажимаем Enter.

Создание базы данных:

CREATE DATABASE `site` CHARACTER SET utf8 COLLATE utf8_general_ci;

Желательно сразу выбрать базу данных mysql, т.к. все дальнешие настройки будут вноситься в нее.

Use mysql;

Создаем пользователя site с паролем Zaq12wsx для базы данных site:

Внимание! используйте сложные пароли.

GRANT ALL PRIVILEGES ON site.* TO "site"@"localhost" IDENTIFIED BY "Zaq12wsx" WITH GRANT OPTION;

Отключаемся от MySQL сервера:

Создание базы данных с помощью phpMyAdmin

Откройте в браузере

Http://ip-адрес сервера/phpmyadmin

Перейдите в раздел "Базы данных"

Укажите имя базы данных, котировку и нажмите "Создать"

Перейдите в раздел "Пользователи", кликните "Добавить пользователя"

Укажите имя пользователя, ограничьте локальным доступом, задайте пароль и подтверждение. Отметьте чекбокс "Предоставить все привелегии на базу данных "base name" (в нашем случае site)". Нажмите "Вперед" для продолжения.

Внимание! Используйте сложные пароли.

Нажмите на значок "Выход" для завершения работы с phpMyAdmin.

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

Создание домашнего каталога, установка разрешений, подготовка Joomla

Создаем домашний каталог для сайта:

Sudo mkdir /var/www/html/site.ru

Создаем каталог для хранения логов:

Sudo mkdir /var/www/html/site.ru/logs

Переходим в домашний каталог сайта:

Cd /var/www/html/site.ru

Для установки Joomla 3.6 понадобится wget и unzip, выполните в терминале:

Sudo yum -y install wget unzip

Скачаем с официального сайта последнюю версию Joomla, на момент написания статьи это версия 3.6.2:

Sudo wget https://github.com/joomla/joomla-cms/releases/download/3.6.2/Joomla_3.6.2-Stable-Full_Package.zip

Распакуем:

Sudo unzip Joomla_3.6.2-Stable-Full_Package.zip

Установим права на файлы:

Sudo find . -type f -exec chmod 0644 {} \;

Установим права на каталоги:

Sudo find . -type d -exec chmod 0755 {} \;

Изменим владельца на пользователя Apache:

Sudo chown apache:apache -R /var/www/html/site.ru

Внимание! Если Вы не выключили SELinux, необходимо разрешить чтение и запись для Apache:

Sudo yum -y install policycoreutils-python sudo semanage fcontext -a -t httpd_sys_content_t "/var/www/html/site.ru(/.*)?" sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/html/site.ru(/.*)?" sudo restorecon -R /var/www/html/site.ru

Создание, настройка и проверка виртуальных хостов

Создаем виртуальный хост site.ru:

Sudo mcedit /etc/httpd/conf.d/site.ru.conf

Укажите настройки виртуального хоста:

ServerAdmin [email protected] ServerName site.ru ServerAlias www.site.ru DocumentRoot /var/www/html/site.ru Options FollowSymLinks AllowOverride All Require all granted ErrorLog /var/www/html/site.ru/logs/error.log CustomLog /var/www/html/site.ru/logs/access.log common

Перезапустите Apache:

Sudo systemctl restart httpd.service

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

Для проверки правильности настройки виртуального хоста необходимо отредактировать файл hosts на клиентской машине.

# Открываем текстовым редактором C:\Windows\System32\drivers\etc\hosts # Вносим следующие изменения xxx.xxx.xxx.xxx site.ru xxx.xxx.xxx.xxx www.site.ru

# Открываем текстовым редактором sudo mcedit /etc/hosts # Вносим следующие изменения xxx.xxx.xxx.xxx www.site.ru site.ru

*Где xxx.xxx.xxx.xxx ip адрес Вашего сервера

Сохраните и перезагрузите Ваш браузер.

Установка Joomla и запуск сайта

Откройте в браузере:

Http://site.ru

Http://www.site.ru

Вас встречает мастер установки Joomla :

Вам необходимо выбрать язык установки Joomla 3.6.2. укажите название сайта, Email администратора, логин, пароль адмнистратора и подтверждение пароля. Нажмите "Далее" для продолжения.

Конфигурация базы данных. Укажите тип базы данных, имя сервера оставьте по умолчанию "localhost". Укажите имя пользователя (в моем случае site), пароль (Zaq12wsx) и имя базы данных (site). Также можно указать вручную или автоматически "Префикс таблиц". Префикс можно использовать в случае хранения данных от нескольких сайтов в одной базе, в таком случае для каждого сайта необходимо указывать свой отличный от других префикс. Нажмите "Далее" для продолжения установки Joomla.

Завершение установки. На этой странице Вы можете увидеть сводку всех настроек сайта, а также произвести установку демо-данных. Нажмите на кнопку "Установка".

Ожидаем завершения процесса установки Joomla 3.6.2 на веб сервер CentOS 7 .

Предлагаю Вам сразу русифицировать Joomla 3.6.2 . Нажмите "Установка языковых пакетов".

Выберите требуемый язык из списка.

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

Нажмите "Удалить директорию "installation"".

Установка Joomla 3.6.2 на Ваш собственный веб сервер CentOS 7 успешно завершена.

Установка и настройка ProFTPD

Для установки ProFTPD выполните:

Sudo yum -y install proftpd proftpd-utils

Запустите службу:

Sudo systemctl start proftpd

Включаем proftpd в автозагрузку:

Sudo systemctl enable proftpd

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

Sudo mcedit /etc/proftpd.conf

Приведите параметр "DefaultRoot" к следующему виду:

DefaultRoot ~

Закоментируйте дефолтный параметр "AuthOrder":

#AuthOrder mod_auth_pam.c* mod_auth_unix.c

Добавьте в конец файла следующие параметры:

AuthUserFile /etc/ftpd.passwd RequireValidShell off AuthPAM off RootLogin off PassivePorts 30000 35000 ListOptions -a LoadModule mod_auth_file.c AuthOrder mod_auth_file.c

Просмотрим список пользователей:

Sudo cat /etc/passwd

Вывод комманды:

*** sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin mysql:x:27:27:MariaDB Server:/var/lib/mysql:/sbin/nologin apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin

В моем случае Apache имеет следующие идентификаторы пользователя и группы: UserId=48, GroupId=48.

Создаем виртуального ftp-пользователя с логином site, идентификатором пользователя 48, группы 48 и домашним каталогом /var/www/html/site.ru:

Sudo ftpasswd --passwd --file=/etc/ftpd.passwd --name=site --uid=48 --gid=48 --home=/var/www/html/site.ru --shell=/bin/false

После выполнения команды система попросит ввести дважды пароль для создаваемого пользователя (настоятельно рекоммендую использовать сложные пароли). В результате выполнения комманды будет создан файл /etc/ftp.passwd с записью о пользователе.

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

Sudo ftpasswd --file /etc/ftpd.passwd --passwd --name=site --change-password

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

Sudo chgrp nobody /etc/ftpd.passwd sudo chmod 640 /etc/ftpd.passwd

SELinux. Разрешите полный доступ к файлам для proftpd:

Sudo setsebool -P allow_ftpd_full_access=1

Перезапустите службу proftpd:

Sudo systemctl restart proftpd

Firewalld - повышение уровня безопасности сервера

Firewalld - новый брандмауэр входящий в состав CentOS 7. Для установки Firewalld выполните:

Sudo yum -y install firewalld

Запускаем:

Sudo systemctl start firewalld

Включаем в автозагрузку:

Sudo systemctl enable firewalld

Проверим:

Sudo systemctl status firewalld

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

Sudo firewall-cmd --permanent --list-all

Вывод команды:

Public (default) interfaces: sources: services: ssh dhcpv6-client masquerade: no forward-ports: icmp-blocks: rich rules:

На постоянной основе разрешен ssh, а также клиент dhcp v6. Я не использую на сервере ip v6, поэтому уберу соответствующее правило:

Sudo firewall-cmd --permanent --zone=public --remove-service=dhcpv6-client

Для работы веб сервера необходимо разрешить сервис http (80 порт):

Sudo firewall-cmd --permanent --zone=public --add-service=http

Если Вы планируете использовать https на Вашем сайте, необходимо разрешить https сервис (443 порт):

Sudo firewall-cmd --permanent --zone=public --add-service=https

Для работы FTP сервера необходимо открыть 21 порт, а также порты 30000-35000 для использования пассивного режима в FTP клиентах:

Sudo firewall-cmd --permanent --zone=public --add-port=21/tcp sudo firewall-cmd --permanent --zone=public --add-port=30000-35000/tcp

Перезагрузим правила:

На данном этапе настройки Firewalld Ваш сайт снова доступен. Но мне хочется предложить Вам выполнить еще несколько шагов по повышению уровня безопасности Вашего сервера. Есть довольно подробно написанный . Одним из этапов настройки является изменение стандартного порта, рассмотрим более подробно настройки Firewalld при смене порта ssh.

Разрешим на постоянной основе (чтобы после перезагрузки не потерлось) соединение на порт 2220/tcp (на него повесим sshd):

Sudo firewall-cmd --permanent --zone=public --add-port=2220/tcp

Перезагрузим правила:

Sudo firewall-cmd --reload

Проверим:

Sudo firewall-cmd --zone=public --list-ports

Вывод команды:

2220/tcp

Порт открыт. Редактируем конфиг sshd:

Sudo mcedit /etc/ssh/sshd_config

Вносим изменения:

*** # If you want to change the port on a SELinux system, you have to tell # SELinux about this change. # semanage port -a -t ssh_port_t -p tcp #PORTNUMBER # В файле необходимо только указать порт Port 2220 #AddressFamily any #ListenAddress 0.0.0.0 #ListenAddress:: ***

Перезапустим ssh:

Sudo systemctl restart sshd.service

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

Sudo semanage port -a -t ssh_port_t -p tcp 2220

После проверки подключения к ssh на новом порте, закройте доступ к порту 22:

Sudo firewall-cmd --permanent --zone=public --remove-service=ssh

Перезагрузите правила:

Sudo firewall-cmd --reload

Проверим настройки Firewalld:

Sudo firewall-cmd --list-all

Вывод команды:

Public (default) interfaces: sources: services: http https ports: 2220/tcp 21/tcp 30000-35000/tcp masquerade: no forward-ports: icmp-blocks: rich rules:

Мы открыли доступ к серверу по протоколу http, https, ftp, а также порт 2220 на котором теперь работает ssh сервис.

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

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

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

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

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

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

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

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

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

yum install net-tools

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

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

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

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

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

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

service network restart

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

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

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

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

vi /etc/hostname

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

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

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

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

yum update && yum upgrade

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

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

yum install links

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

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

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

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

timedatectl list-timezones

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

timedatectl set-timezone Europe/Kyiv

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

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

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

localectl set-locale LANG=ru_RU.UTF-8

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

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

localectl set-keymap us

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

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

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

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

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

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

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

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

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

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

%wheel ALL = (ALL) ALL

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

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

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

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

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

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

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

PermitRootLogin no

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

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

yum install httpd

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

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

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

systemctl start httpd.service
# systemctl enable httpd.service

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

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

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

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

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

links http://127.0.0.1/phpinfo.php

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

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

yum install mariadb-server mariadb

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

systemctl start mariadb.service
# systemctl enable mariadb.service

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

firewall-cmd --add-service=mysql

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

/usr/bin/mysql_secure_installation

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

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

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

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

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

yum install java

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

Выводы

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