Андрей Смирнов
Время чтения: ~23 мин.
Просмотров: 44

Изучение и настройка CentOS 6.4 для сервера

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

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

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

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

yum install net-tools

Install-ifconfig.jpeg

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

ip addr show

Check-IP-Address.jpeg

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

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

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

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

Network-Details-620x344-2.jpeg

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

service network restart

Restarat-Network-620x344.jpeg

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

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

echo $HOSTNAME

Check-System-Hostname-620x344.jpeg

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

vi /etc/hostname

Set-System-Hostname-620x344.jpeg

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

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

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

yum update && yum upgrade

Update-CentOS-Server-620x344.jpeg

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

yum install links

Install-Commandline-Browser-620x344.jpeg

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

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

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

timedatectl list-timezones

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

 timedatectl set-timezone Europe/Kyiv

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

 timedatectl

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

localectl set-locale LANG=ru_RU.UTF-8

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

 localectl

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

localectl set-keymap us

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

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

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

sestatus

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

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

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

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

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

visudo

%wheel ALL = (ALL) ALL

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

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

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

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

Protocol 2

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

PermitRootLogin no

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

yum install httpd

Install-Apache-on-CentOS-620x344.jpeg

Когда установка будет завершена, перед тем, как вы сможете перейти к работе нужно разрешить 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

Дальше вы можете проверить его работоспособность с помощью links:

links 127.0.0.1

Verify-Apache-Status-620x344.jpeg

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

yum install php

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

 systemctl restart httpd.service

Далее создадим тестовый файл со сриптом, чтобы проверить правильность установки:

echo -e "nphpinfo();n" > /var/www/html/phpinfo.php

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

links http://127.0.0.1/phpinfo.php

Verify-PHP-620x344.jpeg

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

yum install mariadb-server mariadb

Install-MariaDB-Database-620x344.jpeg

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

systemctl start mariadb.service # systemctl enable mariadb.service

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

firewall-cmd --add-service=mysql

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

/usr/bin/mysql_secure_installation

Secure-MariaDB-620x344.jpeg

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

yum install gcc

Install-GCC-in-CentOS-620x344.jpeg

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

gcc -v

Check-GCC-Version-620x344.jpeg

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

yum install java

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

java

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

Автор: · Опубликовано 23.07.2019 · Обновлено 01.08.2019

Введение

В настоящей статье будет рассмотрен процесс минимальной первоначальной настройки сервера на операционной системе CentOS 7. CentOS — это Linux дистрибутив основанный на Red Hat Enterprise Linux. Как и сам RHEL CentOS известен своей стабильностью и длительным сроком поддержки, который равен 10 годам. Используется преимущественно в серверах. Настраивать мы будем CentOS установленный в минимальном варианте. Рассмотрим процесс минимальной защиты SSH подключения, настройку межсетевого экрана, отключение SELinux,  установку некоторых полезных программ и подключим репозиторий EPEL.

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

Репозиторий EPEL (Extra Packages for Enterprise Linux) создан участниками проекта Fedora, содержит достаточно новые версии популярных программ. Пакеты EPEL чаще всего основаны на их аналогах в Fedora. Репозиторий EPEL это в первую очередь дополнительные пакеты для Red Hat Enterprise Linux, но по мимо RHEL поддерживает так же CentOS, Scientific Linux и Oracle Linux. Он включен в репозиторий Extras, который подключен по умолчанию, поэтому установить EPEL не составит никакого труда. Делается это через yum одной командой:

yum install epel-release

Установка EPEL

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

Установка nano

Nano — текстовый консольный редактор для UNIX-подобных операционных систем, распространяемый под лицензией GNU GPL. Первый выпуск состоялся еще в 2000 году. Достаточно удобен в использовании. Устанавливается из base репозитория.

yum install nano

Установка nano

Что бы открыть текстовый файл в nano нужно выполнить команду вида:

nano /путь к файлу/название файла

Если такой файл существует — откроется его содержимое, если нет — создастся новый файл.

Консольный текстовый редактор nano

Для сохранения изменений необходимо нажать комбинацию клавиш Ctrl+O, для выхода из редактора — Ctrl+X, для поиска по файлу — Ctrl+W. В принципе все команды прописаны в нижней части файла.

Установка Midnight Commander

Midnight Commander — файловый менеджер поддерживающий не только UNIX-подобные операционные системы, но и Microsoft Windows и Mac OS X. Первый выпуск состоялся в 1998 году. С помощью Midnight Commander очень удобно осуществлять навигацию по файловой системе, создавать/удалять каталоги, редактировать файлы и многое другое. Имеет встроенный редактор файлов. Устанавливается из base репозитория.

yum install mc

Установка Midnight Commander

Для того, что бы открыть Midnight Commander нужно ввести команду:

mc

Midnight Commander

При удаленном SSH подключении к серверу навигацию по Midnight Commander можно выполнять с помощью мыши.

Установка net-tools

Net-tools — набор утилит и инструментов для работы с сетью в операционных системах семейства Linux. В CentOS 7 по умолчанию он отсутствует. Устанавливается из base репозитория.

yum install net-tools

Установка net-tools

После установки пакета net-tools станут доступны такие команды как netstat и ifconfig.

Установка htop

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

yum install htop

Htop

Для запуска htop необходимо ввести команду:

htop

Htop

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

Top

Настройка Firewall

В CentOS 7 для управления брандмауэром используется инструмент FirewallD. Он выступает в качестве внешнего интерфейса межсетевого экрана Netfilter,  встроенного в ядро Linux с версии 2.4. FirewallD предоставляет функционал межсетевого экрана с поддержкой сетевых зон, которые определяют уровень доверия для сетевого соединения или интерфейса. Поддерживает применение конфигурации без  перезагрузки межсетевого экрана. При необходимости FirewallD можно отключить и использовать в качестве утилиты настройки брандмауэра Iptables. Но сегодня речь пойдет именно о стандартном инструменте — FirewallD.

В FirewallD существует 9 предустановленных зон:

  1. Drop — Все входящие соединения сбрасываются без ответа, возможны только исходящие соединения.
  2. Block — Все входящие соединения блокируются, отправителю пакета отправляется сообщение о блокировке. Возможны только исходящие соединения.
  3. Public — Для использования в общественных местах. Разрешены отдельные входящие соединения. По умолчанию это ssh и dhcpv6-client. После установки используется как зона по умолчанию и является единственной активной зоной.
  4. External — Для использования во внешних сетях с активированным режимом маскарадинга. Разрешены отдельные входящие соединения. По умолчанию это только ssh.
  5. Internal — Для использования во внутренних сетях. Разрешены отдельные входящие соединения. По умолчанию это ssh, dhclient, samba-client и mdns.
  6. Dmz — Демилитаризованная зона. Для компьютеров с ограниченным доступом к внутренней сети. Разрешены отдельные входящие соединения. По умолчанию это только ssh.
  7. Work — Для использования в рабочей среде. Разрешены отдельные входящие соединения. По умолчанию это ssh и dhcpv6-client.
  8. Home — Для использования в домашних сетях. Разрешены отдельные входящие соединения. По умолчанию это ssh, dhclient, samba-client и mdns.
  9. Trusted — Для использования в доверенной сети. Разрешены все соединения.

Команды FirewallD

  • Статус FirewallD:

firewall-cmd —state

  • Вывод зоны по умолчанию:

firewall-cmd —get-default-zone

  • Изменение зоны по умолчанию:

firewall-cmd —set-default-zone=наименование зоны

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

  • Вывод активных зон и интерфейсов относящихся к данным зонам:

firewall-cmd —get-active-zones

  • Получение списка всех поддерживаемых сервисов:

firewall-cmd —get-services

  • Добавление временного разрешающего правила для сервиса в указанной зоне:

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

Данное правило разрешает http трафик. Вместо http можно указать наименование любого другого сервиса. Такое правило применяется незамедлительно и действует до перезагрузки.

  • Добавление постоянного разрешающего правила для сервиса в указанной зоне:

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

Данное правило действует до его удаления.

  • Добавление временного разрешающего правила для зоны по умолчанию:

firewall-cmd —add-service=http

  • Добавление постоянного разрешающего правила для зоны по умолчанию:

firewall-cmd —permanent —add-service=http

  • Временное правило для открытия порта для указанной зоны:

firewall-cmd —zone=public —add-port=80/tcp

Данное правило открывает 80 TCP порт. Применяется немедленно, действует только до перезагрузки.

  • Постоянное правило для открытия порта для указанной зоны:

firewall-cmd —zone=public —permanent —add-port=80/tcp

  • Вывод списка разрешенных сервисов в указанной зоне:

firewall-cmd —zone=public —list-services

  • Вывод открытых портов в указанной зоне:

firewall-cmd —zone=public —list-ports

  • Временное удаление разрешающего правила для сервиса в указанной зоне:

firewall-cmd —zone=public —remove-service=http

  • Постоянное удаление разрешающего правила для сервиса в указанной зоне:

firewall-cmd —zone=public —permanent —remove-service=http

С удалением правил для открытых портов ситуация аналогичная как и с удалением правил для сервисов:

firewall-cmd —zone=public —remove-port=80/tcp

firewall-cmd —zone=public —permanent —remove-port=80/tcp

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

firewall-cmd —reload

Отключение SELinux

SELinux (Security Enhanced Linux) — это система принудительного контроля доступа. Принудительный контроль доступа — разграничение доступа, которое основано на назначении метки конфиденциальности информации и допуске к информации такого уровня конфиденциальности. SELinux имеет три режима работы:

  • Enforcing — SELinux включен, принудительные правила политики
  • Permissive — SELinux включен, правила политики не принудительные
  • Disabled — SELinux отключен

SELinux — это достаточно серьезный инструмент безопасности. В CentOS, как и в RHEL и Fedora, активен по умолчанию. Включён в состав ядра Linux начиная с версии 2.6. Работа с ним требует определенных навыков, на освоение которых требует время. Поэтому чаще всего SELinux просто отключают когда он начинает мешать, не прибегая к его настройке. Однако отключать его следует только в том случае, когда это действительно необходимо. Во всех остальных случаях лучшим решением будет разобраться в настройке политик SELinux и не отключать его. Проверить статус работы SELinux можно командой:

sestatus

или

getenforce

Если вы все-таки решили его отключить, то выполните:

nano /etc/selinux/config

И замените SELINUX=enforcing на SELINUX=disabled. После этого перезагрузите сервер и проверьте статус. SELinux должен быть отключен.

Защита SSH подключения

SSH (Secure Shell) — это сетевой протокол прикладного уровня, использующейся для удалённого управления операционной системой и передачи данных. Шифрует абсолютно весь трафик, включая передаваемые пароли. В CentOS доступен сразу после установки, в том числе разрешен в брандмауэре. Если ваш сервер доступен из вне, то с большой долей вероятности его постоянно будут пытаться взломать путем подбора паролей. Поэтому необходимо обезопасить себя от взлома и выполнить хотя бы минимальную настройку для предотвращения печального исхода. Об этом и пойдет речь в этом разделе. Я не буду описывать аутентификацию по ключу, хоть она и считается более безопасной, сегодня речь о минимальной настройке.

Отключаем авторизацию под пользователем root

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

nano /etc/ssh/sshd_config

Находим строку #PermitRootLogin yes и меняем ее на PermitRootLogin no. Обратите внимание, что комментария (#) на строке быть не должно. Сохраняем файл и перезапускаем службу ssh:

systemctl restart sshd

Теперь с логином root авторизоваться невозможно. Только перед тем как делать запрет на подключение под root создайте пользователя с возможность выполнения sudo. Для это пользователя необходимо добавить в группу, пользователи которой могут выполнять sudo. В CentOS это группа wheel. Для добавления существующего пользователя в эту группу введите:

usermod -G wheel user

Для создания нового пользователя:

adduser user

Затем нужно задать для него пароль:

passwd user

Меняем порт по умолчанию

SSH по умолчанию работает на 22 порту. Именно по этому порту и пытаются подключится к серверу для подбора пароля. Если сменить этот порт на любой другой, то вероятность взлома вашего сервера будет существенно снижена. Перед сменой порта необходимо убедится, что порт который вы собираетесь использовать для SSH не используется другим сервисом. Так же необходимо открыть порт в брандмауэре, иначе вы не сможете подключиться. Для изменения порта открываем тот же самый конфигурационный файл, находим строку #Port 22 и меняем ее на Port 8770. Вместо 8770 необходимо указать номер порта который вы хотите использовать для SSH подключения. Сохраняем файл и перезапускаем службу ssh:

systemctl restart sshd

После перезапуска службы авторизоваться по 22 порту будет невозможно. Теперь для подключения по SSH к серверу необходимо вместо ssh user@ip-адрес вводить команду ssh -p 8770 user@ip-адрес. Если подключаетесь через PuTTY достаточно просто сменить номер порта.

Настройка авторизации с определенного ip-адреса

Запрет на подключение к серверу со всех ip-адресов кроме своего является достаточно эффективной мерой защиты сервера, так как с любого другого адреса подключиться к серверу будет просто невозможно. Для реализации этой меры защиты у вас должен быть статический белый ip-адрес. Если такового нет, то можно вместо ip добавить сеть из диапазона которой вам выдаются динамические адреса. Для этого в файл hosts.allow нужно добавить ваш адрес или сеть:

nano /etc/hosts.allow

Добавляем в конец файла запись для ip-адреса 192.168.0.3:

SSHD: 192.168.0.3

Для всей сети:

SSHD: 192.168.0.0/24

Если нужно указать несколько адресов:

SSHD: 192.168.0.3 192.168.0.5

Теперь открываем:

nano /etc/hosts.deny

И добавляем:

SSHD: ALL

После этого перезагружаем SSH:

systemctl restart sshd

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

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

Заключение

Настройка приведенная в данной статье не является единственно правильной. Это всего лишь один из возможных вариантов настройки сервера. Программы установленные в руководстве не являются специфическими и подойдут к серверам настраиваемым под любые задачи, будь то сервер виртуализации или веб-сервер. Если у вас есть вопросы или дополнения к настоящей статье — пишите в комментариях.

beaf90b5123535a664e8d6480efdfb7b.png Сразу скажу я не специалист по Linux, начал изучать Linux только потому что аренда серверов под Windows в разы дороже, то есть как ни крути Linux это просто выгодно, а еще как оказалось в некоторых моментах и попроще чем Windows. Статья написана как полное руководство по одному из возможных вариантов настройки веб сервера на CentOS от начала и до конца, со всеми подводными камнями, на устранение которых человеку не знакомому с Linux, может понадобиться много времени. Сервер предполагается на Apache+PHP+Postgres, кому нужна MySQL без труда смогут найти руководство в интернете, Postgres все таки менее популярен, а поэтому чуть посложнее. Кроме возможной пользы для других, планирую и сам пользоваться своим руководством чтобы вспомнить моменты которые напрягли при настройки CentOS и быстро разворачивать сервера на CentOS по мере необходимости, поэтому любые и советы и дополнения приветствуются! Почему CentOS ?, тут тоже все просто так как я не работал ни с одной версией Linux, выбирал лучшую из доступных под мои требования, а требования простые раз это сервер, то нужна максимальная стабильность ну и бесплатность, а CentOS это операционная система корпоративного класса созданная на основе платной Red Hat Linux и в отличии от Fedora без всяких экспериментов только проверенные и надежные технологии от Red Hat. Несмотря на заявленную стабильность, советую начинать изучение CentOS на локальном компе в виртуальной машине, и в качестве виртуальной машины советую Virtual Box, потому что в любимой мной VMware Workstation, CentOS умудрилась вызвать зависание всей VMware, которое я за много лет пользования VMware вообще никогда не видел и еще CentOS почему то не ставиться на VMware Workstation 9 в минимальной конфигурации, а именно в этой конфигурации (то есть просто доступ к командной строке, без всяких графических оболочек) в идеале использовать CentOS на удаленном сервере, так же с VMware возникли проблемы с установкой 64-битной версии CentOS 6.4. Конечно я уверен что все эти проблемы с VMware решаемы, но как то не хотелось разбираться еще и в этом, когда изучение самой ОС намного интереснее, просто имейте ввиду при прочих равных лучше начать изучение в Virtual Box.Итак начнем: Для начала советую ставить CentOS с графическим интерефейсом, дистрибутив легко отличить по самому большому размеру, основную работу все равно придется делать в окне терминала, но привычный вид рабочего стола поможет легче пережить шок от того что можно работать и без графики. После установки CentOS и создания пользователя например Test, входить в систему нужно под пользователем root, а пароль вводить от пользователя Test, root это администратор системы и только под ним можно сделать все то что нужно для настройки нашего сервака, странная логика но это нужно знать. Так же можно зайти под Test и ввести # su root в итоге все будете делать под root, этот способ так же более безопасен спасибо Falcon_peregrinus за совет После того как логин прошел успешно, нужно открыть окно терминала в графической версии CentOS, либо просто начать писать команды в командную строку в минимальной версии CentOS. Для начала сделаем обновление системы. Просто напишем в терминале:# yum update и нажмем enter Знак # писать не нужно, я просто написал его чтобы было понятно что это команда для терминала CentOS. После yum update если у вас есть соединение с интернетом, пойдет обновление всей системы из официального репозитория CentOS. Чем мне сразу понравилась CentOS в сравнении с Windows это наличие такого репозитория, где собрано куча оттестированного софта для вашей системы. Конечно пользоваться им только из окна терминала не так удобно как могло бы быть, но в случае сервера, софта будет не много и этого более чем достаточно.Сеть Если у вас все таки какие то проблемы с интернетом на CentOS то опишу как настроить сетевой адаптер. Набираем в терминале команду# ifconfig Не ipconfig, а именно if В результате нам покажут все сетевые интерфейсы которые есть на CentOS. Чтобы был интернет в списке доступных интерфейсов кроме lo(то есть локальный), должен быть хотя бы один адаптер eth, например eth0. Если нет ни одного eth, вводим# ifconfig eth0 up После чего вводим опять ifconfig и проверяем, eth0 должен появиться. Если интернета все равно нет, то открываем настройки eth0# vi /etc/sysconfig/network-scripts/ifcfg-eth0 vi это текстовый редактор чтобы начать редактировать нужно нажать клавишу i внизу появится надпись INSERT, чтобы выйти из режима редактирования нажимаем ESC. После чего пишем :wq что значит сохранить и выйти(:q! чтобы выйти не сохраняясь). Как именно редактировать файл настроек сетевого адаптера eth0 это вам виднее, единственное скажу что нужно поставить ONBOOT=”yes”, чтобы сетевой адаптер загружался автоматически. Мне этот параметр помог наконец получить IP адрес от моего роутера по DHCP по другому почему то не получилось. Еще скажу что для настройки сети есть графическая прога вызвать которую можно командой system-config-network Но в ней нельзя настроить параметр ONBOOT=”yes”, да и вообще по моему в обычном файле как то удобнее. Да и в минимальной конфигурации CentOS эту прогу еще нужно поставить из репозитория.Apache Когда мы обновили систему, а значит не имеем проблем с интернетом в нашей ОС, можно переходить к настройке сервака. Сначала поставим веб сервер.# yum -y install httpd -y значит что установщик нажмет yes если такое потребуется, можно запустить и просто# yum install httpd Но тогда нажимать y придется самим. Добавим апачи в автозагрузку# chkconfig httpd on И запустим# service httpd start Если появиться ОК значит все прошло хорошо.PHP Теперь поставим php# yum install php Сделаем файл для проверки# echo ' phpinfo(); ' > /var/www/html/test.php Перегрузим Apache# service httpd restart Смотрим по адресу IP-адрес_сервера/test.php информацию о php, если она есть значит все хорошо.Postgres Теперь с установкой Postgres сделаем немного посложнее. В официальном репозитории CentOS, находиться старая версия Postgres 8.3, по опыту работы с postgres скажу что у меня с ней были проблемы, поэтому советую ставить более новую версию. Оригинальное руководство на английском тут Для начала выключаем SELinux# vi /etc/sysconfig/selinux И устанавливаем переменную SELinux=disabled SELinux это система контроля доступа в Linux, она помешала мне соединиться с Postgres, в оригинальном английском руководстве об этом ни слова. Уже после написания статьи настраивал CentOS на другом сервере и соеденения с Postgres прошли нормально и без выключения SELinux, поэтому просто имейте ввиду если Postgres не работает возможно дело в SELinux. Теперь скачаем данные о репозитории Postgres с официального сайта.# wget yum.pgrpms.org/9.2/redhat/rhel-6-x86_64/pgdg-centos92-9.2-6.noarch.rpm Если ничего не качает установите прогу wget (yum install wget) Устанавливаем репозиторий чтобы можно было поставить Postgres через yum# rpm -ivh pgdg-centos92-9.2-6.noarch.rpm После чего ставим клиент сервер для Postgres# yum install postgresql92 postgresql92-server нажимая Y там где это нужно Инициализируем БД# service postgresql-9.2 initdb И стартуем# service postgresql-9.2 start добавим Postgres в автозагрузку# chkconfig postgresql-9.2 on Теперь нужно создать пользователя для Postgres# su postgres# psql -dpostgres должна появится надпись postgres=# вначале строки, значит мы залогинены под этим пользователем в БД. После чего создаем супер пользователя и пароль# CREATE role opensourcedbms LOGIN PASSWORD 'opensourcedbms' SUPERUSER; После чего выходим# q Теперь нужно сделать стандартные настройки Postgres# vi /var/lib/pgsql/9.2/data/postgresql.conf Расскоментируем строку #listen_addresses = ‘localhost’ и изменим ее на #listen_addresses = ‘*’ И настроим файл pg_hba.conf# vi /var/lib/pgsql/9.2/data/pg_hba.conf Я для проверки работы БД оставляю раскомментированными такие строки Host all all 0.0.0.0/0 trust Host all all ::1/128 trust То есть коннект принимается с любых адресов и без пароля, потом не забудьте это исправить. После настройки советую изменить trust на md5, пускать только локальные подключения к базе и в виде исключения прописать ваш IP адрес с которого можно подключатся к базе и удаленно, если IP динамический и нужно прямое подключение к базе то оставьте 0.0.0.0/0 После чего# service postgresql-9.2 restart И если у вас запущем фаервол нужно добавить в него такую запись# vi /etc/sysconfig/iptables -A INPUT -m state —state NEW -m tcp -p tcp —dport 5432 -j ACCEPT Хотя я для начала советую просто сделать# service iptables stop Чтобы выключить его совсем. После чего можно пробовать подключатся к базе данных из установленного не в CentOS, pgAdmin. Можно конечно поставить pgAdmin и в саму CentOS, но я думаю это лишнее, тем более для этого обязательно нужен графический интерфейс. В случае каких то проблем для начала перезапустите все сервисы или вообще весь сервер, возможно где то забыли это сделать и изменения еще не вступили в силу. Теперь осталось только связать Postgres c PHP# yum install php-pgsql после чего перезапускаем веб сервер и базу данных# service httpd restart# service postgresql-9.2 restart И в нашем файле test.php который мы создали ранее должна появиться информация о Postgres.FTP Теперь поставим FTP для доступа к файлам на нашем сервере.# yum install vsftpd# chkconfig vsftpd on# service vsftpd start Думаю эти три строчки понятны, я расскажу о том как создать пользователя для фтп и назначить ему папку не по умолчанию, именно назначение папки почему то неправильно описано в статьях что я читал по настройке vsftpd.# adduser ftpuser1# passwd ftpuser1 Создаем пользователя и пароль. Открываем файл со всеми пользователями CentOS# vi /etc/passwd Находим там ftpuser1 и меняем там папку на свое усмотрение После чего перезагружаем vsftpd и проверяем. Смена стандартной папки для ftp пользователя мне например пригодилась чтобы заливать файлы по ftp сразу в директорию вебсервера Конфигурация vsftpd находиться в /etc/vsftpd.conf, описывать не буду у каждого она индивидуальная но по умолчанию все работает. Можно только сразу выключить доступ анонимов по ftp anonymous_enable:noSFTP SFTP более безопасный аналог FTP, я о нем узнал недавно но во всех нужных мне прогах его поддержка уже давно есть Так что если вам не нужен именно FTP, советую сразу настроить передачу файлов на сервер по SFTP В моей системе даже ставить ничего не пришлось сделал просто# service sshd start# chkconfig sshd on Обратите внимание как примерно должна выглядеть запись о пользователе в /etc/passwd sftpuser:x:500:500::/var/www/html:/bin/bash в конце должна стоять запись /bin/bash это запись говорит о том какой шелл будет доступен для sftpuser Так же не забудьте разблокировать 22 порт в фаерволе если он заблокированГрафика Теперь хотелось бы сказать как поставить графический интерфейс на CentOS, если у вас такого нет. #yum groupinstall «X Window System» «Desktop» «Desktop Platform» «Fonts» И запуск # startx Чтобы выйти из графического интерфейса наберите # telinit 3 Обратите внимание команда с пробелом! По поводу доступа к графическому интерфейсу на удаленном сервере(на своей локальной виртуалке такой доступ не нужен) могу просто посоветовать использовать xrdp, по информации в интеренете этот доступ наиболее стабильный и быстрый, мне установили по требованию на мой хостинг и я не стал разбираться с установкой, потому что для настройки сервера вполне хватает обычной консоли которую можно получить в программе PuTTY. Я даже удивился как может быть удобна консоль советую просто попробовать, для сервака самое то, доступ к рабочему столу обычно тормозит и это раздражает, но даже если бы все было как на локальном компьютере я бы тоже использовал консоль. Графика очень полезна для начального изучения что и как, но когда быстро надо настроить сервак консоль просто лучше.Дополнительные мелкие полезности, планирую обновлять:# yum search file_name Поиск файла в репозитории CentOS# find /* -iname 'file_name' Поиск расположения файла на локальном компьютере# ls# ls –l Показывает содержание текущего каталога# system-config-firewall фаервол в графике можно удобно поставить галки на те сервисы которым разрешено выходить в интернет, иногда требуется установка из репозитория.Используемые источники:

  • https://losst.ru/nastrojka-servera-centos-7-posle-ustanovki
  • https://itseason.ru/setting-centos/
  • https://habr.com/post/195614/

Рейтинг автора
5
Подборку подготовил
Максим Уваров
Наш эксперт
Написано статей
171
Ссылка на основную публикацию
Похожие публикации