Начальная настройка centos 7.


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

CentOS - дистрибутив Linux, основанный на коммерческом Red Hat Enterprise Linux компании Red Hat и совместимый с ним. Срок поддержки каждой версии CentOS составляет 10 лет. CentOS обновляется каждые 6 месяцев для поддержки новых аппаратных средств.

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

Подготовка к установке

Переходим на официальный сайт CentOS

Кликаем "Get CentOS Now"

На открывшейся странице кликаем по кнопке "Minimal ISO"

По окончанию загрузки мы имеем ISO образ установочного диска CentOS 7. Этот образ необходимо записать на диск (в случае установки на железный сервер) или использовать его как есть (в случае установки на виртуальную машину). Если вы планируете установку системы на виртуальную машину, Вам также могут быть полезны следующие статьи:

Установка CentOS 7

Все готово к установке CentOS 7 . Запустите Ваш компьютер или виртуальную машину, предварительно выставив загрузку с CD-Rom (в случае использования виртуальной машины укажите непосредственно ISO файл). В результате загрузки Вы увидите следующее меню:

Запустить процесс установки.

Выполнить диагностику носителя и запустить процесс установки.

Выделим второй пункт и нажимаем "Enter".

После проверки носителя запустится установщик CentOS 7.

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

Настройки будем проводить в следующем порядке: настройка клавиатуры; настройка сети; дата и время; место установки.


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

Нажмите по кнопке "Сеть и имя узла". По умолчанию сеть отключена, для включения сетевого адаптера необходимо нажать на переключатель в правом верхнем углу экрана. Если в Вашей сети есть настроенный DHCP сервер, то все настройки подхватятся автоматически. Также если в Вашей сети есть настроенный DNS сервер, будет сгенерировано имя узла. Если DHCP и DNS серверов нет, то настройки необходимо указать вручную. Если Вы планируете использовать установленную систему для решения серверных задач, настоятельно рекомендую Вам указать настройки сети и имя хоста вручную! Укажите имя хоста, а для настройки сети необходимо нажать на кнопку "Настроить..."

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

На вкладке "Ethernet" в позиции "MAC - адрес устройства" необходимо указать сетевой адаптер.

На вкладке "Параметры IPv4 " в выпадающем меню "Способ настройки" по умолчанию выбран пункт "Автоматически (DHCP) ", меняем на "Вручную", далее нажимаем на кнопку "Добавить", указываем: адрес (должен быть свободен!); маска сети; шлюз; серверы DNS указываются через запятую; также можно указать поисковый домен (если Вы используете доменную сеть).

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

Настройка даты и времени. Выберите соответствующий раздел в меню установки. Указываем город и регион, затем активируем переключатель "Сетевое время" в правом верхнем углу экрана. Проверяем, что время успешно синхронизировано с NTP – сервером. Нажмите "Готово" для возврата в главное меню установщика.

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

Переходим к разделу "Место установки". Выбираем диск на который собираемся производить установку CentOS 7 . Отметим чек бокс "Я настрою разделы" и нажимаем кнопку "Готово".

Я специально использую диск на котором уже есть разделы, отмечаем и кликаем по кнопке "-" для удаления.

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

Нажмите кнопку "Удалить".

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

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

После того как мы удалили раздел home, у нас осталось свободная область на диске. Увеличим размер swap и установим его равным объему оперативной памяти, в моем случае 2Gb. Для этого выберите раздел и в строке "Desired Capacity" выставите необходимый объем:

Увеличим размер корневого раздела, для этого выделите его и в строке "Desired Capacity" выставите необходимый объем (можно указать размер больше доступного места, таким образом программа разметки автоматически подсчитает и выделит разделу все оставшееся свободное место):

Также можно изменить имя группы в выпадающем меню "Volume Group". Выбираем наш диск в поле "Имя" указываем название и сохраняем:

Нажмите кнопку "Готово" для завершения разметки дисков.

Программа разметки выведет список изменений, нажмите кнопку "Принять изменения".

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

Нажмите по кнопке "ПАРОЛЬ ROOT":

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

Ждем окончания процесса установки CentOS 7. По завершению нажимаем "Перезагрузить".

На этом установка CentOS 7 выполнена.

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

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

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

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

Также необходимо обезопасить удаленное соединение к серверу с CentOS 7 - .

По выполнению этих шагов добавим наиболее популярные репозитории EPEL и rpmforge.

Yum -y install epel-release

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

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

Yum -y install iftop

Два интересных диспетчера задач:

Yum -y install htop yum -y install atop

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

Yum -y install mc

На этом базовая настройка CentOS 7 после установки завершена.

Мне часто приходится работать с проектами различных сайтов, обладая знаниями и опытом администрирования ОС 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 7 Minimal , первичную настройку сети и установку графического интерфейса под названием Mate . У нас уже есть статья и видео об , но при установке Minimal есть несколько тонкостей, о них – ниже.

Первое отличие в том, что образ несколько больше - 700 Мб, но это всё равно несравнимо с объемом DVD или Full редакции. Следующее отличие, вытекающее из предыдущего – отсутствует возможность выбрать дополнительный софт для установки (скриншот ниже):

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

Процесс установки

Итак, выполняем все шаги последовательно , ждём 15-30 минут и вводим свои логин\пароль (предварительно подключившись через терминал).

Первым желанием было проверить, работает ли сетевой интерфейс и был ли ему назначен адрес – я ввёл команду ifconfig , и, как оказалось, данная команда на 7 версии является устаревшей и вместо неё необходимо использовать команду ipaddr для вывода информации об интерфейсах и команду iplink для вывода статистики на них же.

Но так все привыкли к стандартным командам пакета net-tools , его необходимо будет установить с помощью команды yum install net-tools . Однако, помня первое ощущение непонимания, когда у меня не работала сеть в минимальной инсталляции на 6 версии, я хочу дополнительно показать очень простой способ её настройки – об этом ниже.

Важно! Команда ifconfig устарела. Для сетевого взаимодействия с сервером рекомендуем пользоваться командой «ip» (ip -a), которая по функциональности (с точки зрения L2 и L3) превосходит «ifconfig».

Настройка сетевых интерфейсов с помощью nmtui

Вводим команду nmtui - в итоге должен запуститься простой графический интерфейс для настройки сети (скриншот ниже):


Я, к примеру, хочу изменить настройки единственного интерфейса – выбираем первую опцию Edit a connection и видим следующую картину:


Выбираем Edit… и делаем с интерфейсом всё, что вздумается:) Как видно на скриншоте ниже, наш сервер получил IP - адрес по DHCP – меня это устраивает и я оставлю всё как есть. Главной целью было продемонстрировать данную утилиту – nmtui


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

Итак, почему MATE? Ответ прост – он гораздо легче , очень нетребователен к ресурсам и крайне прост в установке. Итак, производим несколько простых шагов по установке пакетов(ниже):

  • yum groupinstall "Development Tools" - установка необходимого комплекта пакетов для работы GUI (только если уже не установлены) ;
  • yum install epel-release - установка EPEL репозитория;
  • yum groupinstall "X Window system" - установка группового пакета X Window System, это займет около 5 минут. Сам пакет имеет объем 73 Мб;
  • yum groupinstall "MATE Desktop" - установка непосредственно Mate – довольно объемный пакет - 506 Мб;
Установка и настройка Web-Server в CentOS 7

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

Установка MySQL

в CentOS 7 вместо MySQL используется свободная копия которая называется MariaDB,

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

# yum -y install mariadb-server mariadb

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

# systemctl start mariadb.service

# systemctl enable mariadb.service

Установка Apache

Для установки веб-сервера Apache нужно выполнить команду:

# yum -y install httpd

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

# systemctl start httpd.service

# systemctl enable httpd.service

В CentOS 7 используется firewall Firewall-cmd . Добавим настройку которая разрешает подключения на порт 80 (http) и порт 443 (https)

# firewall-cmd —permanent —zone=public —add-service=http

# firewall-cmd —permanent —zone=public —add-service=https

# firewall-cmd —reload

После, откройте в браузере http://ip-address , и на экране будет отображаться стандартная страница веб-сервера Apache

По умолчанию в веб-сервере Apache корневая директория для сайтов (document root) расположена в директории /var/www/html

Конфигурационный файл (файл с настройками) веб-сервера Apache находится в файле /etc/httpd/conf/httpd.conf

Дополнительные конфигурационные файлы находятся в директории: /etc/httpd/conf.d/

Установка PHP

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

# yum -y install php

После установки нужно выполнить перезагрузку веб-сервера apache:

Для проверки работы PHP в корневой директории (document root) веб-сервера apache /var/www/html можно создать файл pi.php который будет содержать функцию phpinfo()

(функция phpinfo() отображает много полезной информации о настройках веб-сервера и PHP).

Для это нужно выполнить команду:

# echo «» > /var/www/html/pi.php

После чего в браузере можно открыть страницу:

http://ip-address/pi.php

На этой странице отображается вся необходимая информация о веб-сервере Apache и настройках PHP

Настройка поддержки MySQL в PHP

Для поддержки MariaDB в PHP нужно установить пакет php-mysql . Так же можно установить и некоторые другие пакеты для работы PHP с различными модулями, которые могут понадобится. Для этого выполним команду:

# yum -y install php-mysql php-gd php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap curl curl-devel

# systemctl restart httpd.service

Теперь можно переоткрыть страницу http://ip-address/pi.php и увидеть новую информацию.

Установка phpMyAdmin

phpMyAdmin это программа предоставляющая веб-интерфейс через который можно управлять базами данных MySQL и MariaDB

Для установки нужно выполнить инициализиацию репозитория EPEL так как в официальном репозитории CentOS 7 phpMyAdmin отсуствует.

# yum -y install epel-release

После добавления репозитория есть возможность установить phpMyAdmin:

# yum -y install phpmyadmin

После установки phpMyAdmin будет доступен по адресу: http://ip-address/phpmyadmin/

Установка WordPress

Для начала создадим директорию temp, в которую загрузим последнюю версию WordPress:

# mkdir temp

# cd temp

# yum install wget unzip net-tools

# wget http://wordpress.org/latest.zip

# yum -y install php-gd

# systemctl restart httpd.service

Распакуйтеzip файл WordPress в папку:

# unzip -q latest.zip -d /var/www/html/

Теперь предоставим директории соответствующие права доступа:

# chown -R apache:apache /var/www/html/wordpress

# chmod -R 755 /var/www/html/wordpress

# mkdir -p /var/www/html/wordpress/wp-content/uploads

Теперь необходимо разрешить веб-серверу производить запись в данную директорию. Это можно сделать, назначив владельцем группу apache. Это позволит серверу создавать файлы и другие директории внутри исходной директории, таким образом мы сможем в будущем загружать содержимое на сервер средствами движка WordPress (без FTP). Введите следующее:

# chown -R:apache /var/www/html/wordpress/wp-content/uploads

Затем нам необходимо проверить файл конфигурации, для этого нам необходимо скопировать его (за базу берётся стандартный файл примера). Тестовый файл конфигурации находится по адресу /var/www/html/wordpress:

# cd /var/www/html/wordpress/

# cp wp-config-sample.php wp-config.php

# mcedit wp-config.php

Смените значения на те, которые вы создали при инициализации баз данных.

Теперь обратимся к нашему сайту через web-интерфейс, для этого перейдем по адресу:http://ip-address/wordpress/wp-admin/install.php:

Сначала выберите язык и нажмите Continue:

Site Title = WordPress-testsite Admin Email = [email protected] Username = admin Admin password = testpassword Confirm Admin Password = testpassword

Значения могут отличаться, вы можете задать любые значения по вашему выбору. После этого нажмите Install WordPress:

Необходимо предоставить пару имя/пароль, которые мы выбрали при установке WordPress.







2024 © gtavrl.ru.