Установка операционной системы 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 . В противном случае выберите второй пункт, чтобы убедиться в пригодности записанного образа.
Весь процесс предварительной настройки системы можно разбить на этапы:
- Выберите из перечня язык и его разновидность. От вашего выбора будет зависеть язык текста, который будет отображаться в установщике.
- «Дата и время» .
- В появившемся интерфейсе выберите свой часовой пояс. Это сделать можно двумя способами: нажать на карте по своему населенному пункту или же выбрать его из списков «Регион»
и «Город»
, что находится в верхнем левом углу окна.
Здесь же можно определить формат отображаемого времени в системе: 24-часовое или AM/PM . Соответствующий переключатель находится в нижней части окна.
После выбора часового пояса нажмите кнопку «Готово» .
- В главном меню нажмите по пункту «Клавиатура» .
- Из списка, что находится в левом окне, перенесите нужные раскладки клавиатуры в правое. Для этого выделите ее и нажмите на соответствующую кнопку в нижней части.
Примечание: раскладка клавиатуры, которая находится выше, является приоритетной, то есть она будет выбрана в ОС сразу после ее загрузки.
Еще вы можете поменять клавиши для изменения раскладки в системе. Для этого вам надо нажать «Параметры» и указать их вручную (по умолчанию стоит Alt+Shift ). После проведения настройки кликните по кнопке «Готово» .
- В главном меню выберите пункт «Network & Host Name» .
- Поставьте переключатель сети, который находится в правом верхнем углу окна, в положение «Включено»
и впишите имя хоста в специальном поле для ввода.
Если параметры Ethernet вы получаете не в автоматическом режиме, то есть не по протоколу DHCP, то их вам нужно ввести вручную. Для этого нажмите по кнопке «Настроить» .
На вкладке «Ethernet» из списка выберите свой сетевой адаптер, к которому подключен кабель провайдера.
Теперь перейдите на вкладку «Параметры IPv4» , определите метод настройки как ручной и впишите в поля для ввода все данные, предоставленные вам провайдером.
- В меню кликните «Выбор программ» .
- В списке «Базовое окружение» выберите то окружение рабочего стола, которое хотите видеть в CentOS 7. Наряду с его наименованием, вы можете прочитать небольшое описание. В окне «Дополнения для выбранного окружения» выберите то программное обеспечение, которое желаете установить в системе.
Примечание: все указанное ПО можно будет загрузить после завершения установки операционной системы.
После этого предварительная настройка будущей системы считается оконченной. Далее нужно разметить диск и создать пользователей.
Шаг 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
Настройка SELinuxSELinux - система принудительного контроля доступа, призванная повысить уровень безопасности Вашего сервера. В некоторых случаях использование 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
Укажите настройки виртуального хоста:
Перезапустите 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 после установки. Как видите, есть много элементарных действий, которые желательно сделать перед тем, как использовать сервер на производстве. Если у вас остались вопросы, спрашивайте в комментариях!