Настройка сервера CentOS 7: Установка Apache, PostgreSQL, TFTP | Пошаговая инструкция | AdminWiki

Настройка серверов CentOS: Полное руководство от базовой установки до развертывания Apache, PostgreSQL и TFTP

17 декабря 2025 7 мин. чтения #apache #centos #centos 7 #devops #linux #postgresql #sysadmin #tftp #настройка сервера

С чего начать: Базовая настройка CentOS 7

Представь, что ты только что получил чистый сервер с CentOS 7. Давай разберем, что нужно сделать в первую очередь, чтобы подготовить его к работе. Базовая настройка сервера CentOS 7 — это фундамент, на котором строится всё остальное.

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

Первым делом обновим репозитории и установим последние обновления безопасности.

bash
sudo yum update -y
sudo yum install -y epel-release
sudo yum install -y wget curl vim htop net-tools

2. Настройка сетевого интерфейса и hostname

Для статического IP отредактируем конфиг сетевого интерфейса.

bash
sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0

Пример конфигурации для статического IP:

config
TYPE="Ethernet"
BOOTPROTO="static"
DEFROUTE="yes"
NAME="eth0"
DEVICE="eth0"
ONBOOT="yes"
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
DNS2=1.1.1.1
Важно: После изменения сетевых настроек перезапусти сетевую службу командой sudo systemctl restart network.

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

Теперь перейдем к установке Apache на CentOS. Apache (httpd) — один из самых популярных веб-серверов в мире.

Пошаговая установка Apache

bash
# Установка Apache
sudo yum install -y httpd

# Запуск и добавление в автозагрузку
sudo systemctl start httpd
sudo systemctl enable httpd

# Проверка статуса
sudo systemctl status httpd

Базовая конфигурация Apache

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

config
# Открываем конфиг для редактирования
sudo vi /etc/httpd/conf/httpd.conf

# Пример изменений:
ServerAdmin admin@your-domain.com
ServerName your-server-ip:80

# Ограничим доступ к системным директориям
<Directory "/">
    Options FollowSymLinks
    AllowOverride None
</Directory>

# Настройки для основной директории
<Directory "/var/www/html">
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>
Внимание: Не забудь настроить firewall для доступа к веб-серверу: sudo firewall-cmd --permanent --add-service=http && sudo firewall-cmd --reload.

Установка и настройка PostgreSQL на CentOS

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

Установка PostgreSQL из официального репозитория

bash
# Добавляем официальный репозиторий PostgreSQL
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

# Устанавливаем PostgreSQL 13 (можно выбрать другую версию)
sudo yum install -y postgresql13-server postgresql13-contrib

# Инициализируем базу данных
sudo /usr/pgsql-13/bin/postgresql-13-setup initdb

# Запускаем и добавляем в автозагрузку
sudo systemctl start postgresql-13
sudo systemctl enable postgresql-13

Базовая настройка безопасности PostgreSQL

По умолчанию PostgreSQL использует peer-аутентификацию. Давай настроим пароль для пользователя postgres и разрешим удаленные подключения.

bash
# Переключаемся на пользователя postgres
sudo -i -u postgres

# Заходим в psql
psql

# Меняем пароль для пользователя postgres
ALTER USER postgres WITH PASSWORD 'YourStrongPassword123!';
\q

exit

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

config
# 1. Редактируем pg_hba.conf
sudo vi /var/lib/pgsql/13/data/pg_hba.conf

# Добавляем строку для MD5 аутентификации
# TYPE  DATABASE        USER            ADDRESS                 METHOD
host    all             all             0.0.0.0/0               md5

# 2. Редактируем postgresql.conf
sudo vi /var/lib/pgsql/13/data/postgresql.conf

# Раскомментируем и меняем строку:
listen_addresses = '*'
После изменения конфигурации PostgreSQL необходимо перезапустить службу: sudo systemctl restart postgresql-13. И не забудь добавить правило в firewall для порта 5432.

Настройка TFTP-сервера на CentOS 7

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

Установка и настройка TFTP-сервера

bash
# Устанавливаем tftp-server и клиент
sudo yum install -y tftp-server tftp xinetd

# Копируем конфигурационный файл xinetd для TFTP
sudo cp /usr/lib/systemd/system/tftp.service /etc/xinetd.d/tftp

# Редактируем конфигурацию
sudo vi /etc/xinetd.d/tftp

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

config
service tftp
{
    socket_type     = dgram
    protocol        = udp
    wait            = yes
    user            = root
    server          = /usr/sbin/in.tftpd
    server_args     = -s /var/lib/tftpboot -c
    disable         = no
    per_source      = 11
    cps             = 100 2
    flags           = IPv4
}

Создание директории и настройка прав

bash
# Создаем директорию для файлов TFTP
sudo mkdir -p /var/lib/tftpboot
sudo chmod -R 777 /var/lib/tftpboot
sudo chown -R nobody:nobody /var/lib/tftpboot

# Запускаем и включаем службы
sudo systemctl start xinetd
sudo systemctl enable xinetd
sudo systemctl start tftp
sudo systemctl enable tftp

# Открываем порт 69 в firewall
sudo firewall-cmd --permanent --add-port=69/udp
sudo firewall-cmd --reload
Безопасность: TFTP — небезопасный протокол (нет аутентификации). Используй его только в доверенных сетях или изолируй с помощью firewall правил.

Оптимизация и безопасность сервера CentOS

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

Настройка брандмауэра (firewalld)

Сервис Порт Команда для открытия
SSH 22/tcp firewall-cmd --permanent --add-service=ssh
HTTP 80/tcp firewall-cmd --permanent --add-service=http
HTTPS 443/tcp firewall-cmd --permanent --add-service=https
PostgreSQL 5432/tcp firewall-cmd --permanent --add-port=5432/tcp

После добавления всех правил выполни:

bash
sudo firewall-cmd --reload
sudo firewall-cmd --list-all

Настройка SELinux для сервисов

SELinux может блокировать работу сервисов. Вот основные команды для диагностики и настройки:

  • Проверить статус SELinux: sestatus
  • Посмотреть логи нарушений: sudo ausearch -m avc -ts recent
  • Для Apache: sudo setsebool -P httpd_can_network_connect 1
  • Для PostgreSQL: sudo setsebool -P httpd_can_network_connect_db 1

Часто задаваемые вопросы (FAQ)

Как проверить, что Apache работает правильно?

Создай тестовый файл в директории /var/www/html/index.html и открой в браузере IP-адрес сервера. Также проверь логи: sudo tail -f /var/log/httpd/access_log и sudo tail -f /var/log/httpd/error_log.

PostgreSQL не принимает удаленные подключения, что делать?

1. Убедись, что в postgresql.conf установлено listen_addresses = '*'. 2. Проверь pg_hba.conf — должна быть строка разрешающая подключения с нужных адресов. 3. Убедись, что firewall разрешает порт 5432. 4. Перезапусти PostgreSQL: sudo systemctl restart postgresql-13.

TFTP-сервер не отвечает на запросы

1. Проверь, что службы xinetd и tftp запущены. 2. Убедись, что порт 69/udp открыт в firewall. 3. Проверь права на директорию /var/lib/tftpboot — они должны быть 777. 4. Посмотри логи: sudo journalctl -u xinetd и sudo tail -f /var/log/messages.

Как автоматизировать настройку серверов CentOS?

Для автоматизации используй Ansible, Chef или Puppet. Например, простой Ansible playbook может установить все необходимые пакеты, настроить конфиги и запустить службы. Это особенно полезно при настройке серверов CentOS в больших количествах.

Заключение

Мы рассмотрели полный цикл настройки сервера CentOS 7 — от базовой конфигурации до развертывания ключевых сервисов: веб-сервера Apache, СУБД PostgreSQL и TFTP-сервера для сетевой загрузки.

Ключевые моменты, которые нужно запомнить:

  • Всегда начинай с обновления системы и настройки базовых параметров безопасности
  • При установке Apache на CentOS не забудь настроить firewall и SELinux
  • При установке PostgreSQL на CentOS удели особое внимание настройке аутентификации и удаленного доступа
  • CentOS 7 настройка TFTP сервера требует внимания к правам доступа к директории и настройкам xinetd
  • Регулярно проверяй логи и обновляй систему

Эти знания — фундамент для построения надежной и безопасной серверной инфраструктуры. Экспериментируй с настройками в тестовой среде, прежде чем применять их на production-серверах.

Поделиться:
Сохранить гайд? В закладки браузера