Гид по технологиям

Установка, защита и автоматизация AWStats на CentOS/RHEL

5 min read DevOps Обновлено 07 Nov 2025
AWStats: установка и защита на CentOS/RHEL
AWStats: установка и защита на CentOS/RHEL

Обзор и цели

AWStats анализирует файлы логов (Apache, Nginx, FTP и т.д.) и строит на их основе отчёты в виде графиков и таблиц. Цель этой инструкции — дать воспроизводимый рабочий процесс установки, защиты и автоматизации AWStats на серверах CentOS/RHEL с минимальными усилиями.

Кому полезно: системным администраторам, DevOps-инженерам, специалистам по безопасности. Требования: root/sudo, SELinux в permissive/disabled или корректная политика, iptables настроен под требования сервиса.

Требования и предварительная проверка

  • Дистрибутив: CentOS/RHEL (5/6/7 аналогично для YUM-пакетов).
  • Права root или sudo.
  • Доступ к интернету для загрузки RPM-репозитория.
  • SELinux либо permissive, либо подготовленная политика.
  • При использовании firewall — разрешён вход на порт 80/443.

Важно: тестируйте изменения на стенде перед продом.

Установка

1) Добавление репозитория RPMForge (YUM)

Для x86 (32-bit) систем выполните:

rpm -Uhv http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm

Для x64 (64-bit) систем выполните:

rpm -Uhv http://apt.sw.be/redhat/el5/en/x86_64/rpmforge/RPMS//rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm

(Репозитории предоставлены Dag Wieers.)

2) Установка и конфигурация зависимостей

Установите Apache:

yum install httpd

Включите запуск Apache при старте системы:

/sbin/chkconfig --levels 345 httpd on

Если вы используете iptables, добавьте правило для порта 80 и сохраните конфигурацию:

/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
/etc/init.d/iptables save
/etc/init.d/iptables restart

Примечание по SELinux: если SELinux включён в enforcing, либо переключите в permissive, либо настройте контексты httpd для доступа к каталогам AWStats (restorecon/chcon и политика).

3) Установка AWStats через YUM

yum install awstats

4) Конфигурация Apache для AWStats

Отредактируйте /etc/httpd/conf.d/awstats.conf. Пример конфигурации:

Alias /awstats/icon/ /var/www/awstats/icon/

ScriptAlias /awstats/ /var/www/awstats/

        DirectoryIndex awstats.pl
        Options ExecCGI
        order deny,allow
        allow from all


Alias /awstatsclasses "/var/www/awstats/lib/"
Alias /awstats-icon/ "/var/www/awstats/icon/"
Alias /awstatscss "/var/www/awstats/examples/css"

Важно: модуль mod_cgi должен быть загружен в Apache, иначе CGI-скрипты не будут выполняться корректно.

5) Настройка конфигурационного файла AWStats

Отредактируйте строки в /etc/awstats/awstats.localhost.localdomain.conf:

SiteDomain="."
HostAliases=""

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

mv /etc/awstats/awstats.localhost.localdomain.conf /etc/awstats/awstats...conf

6) Обновление статистики вручную

По умолчанию AWStats обновляет данные каждую ночь/час (в зависимости от cron). Для немедленного обновления выполните:

/usr/bin/awstats_updateall.pl now -confdir="/etc" -awstatsprog="/var/www/awstats/awstats.pl"

7) Запуск Apache

/etc/init.d/httpd start

Для добавления Apache в автозагрузку:

chkconfig --add httpd

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

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

http://./awstats/awstats.pl?config=.

Если видите страницу отчёта — установка успешна.

Защита AWStats

Ниже — практические шаги по ограничению доступа к чувствительным файлам и интерфейсу AWStats.

Настройка прав файловой системы

AWStats и веб-серверу требуется только чтение для вывода статических файлов и генерации отчётов через CGI. Ограничим права:

$ find ./awstats -type d -exec chmod 701 '{}' \;
$ find ./awstats -not -type d -exec chmod 404 '{}' \;

Защитите конфигурации AWStats от чтения вебом:

chmod 400 /etc/awstats/*.conf

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

Защита каталога AWStats с помощью .htaccess и паролей

  1. Установите владельца каталога AWStats так, чтобы только нужный пользователь имел доступ.
  2. Создайте файл с паролями в /etc/awstats:
htpasswd -c /etc/awstats/htpasswd.users user
  1. Создайте .htaccess в /var/www/awstats/ с содержимым:
AuthName "STOP - Do not continue unless you are authorized to view this site! - Server Access"
AuthType Basic
AuthUserFile /etc/awstats/htpasswd.users
Require valid-user
htpasswd -c /etc/awstat/htpasswd.users awstats_online
  1. Защитите файл .htaccess и сами пароли:
chmod 404 awstats/.htaccess

Примечание: некоторые конфигурации Apache не разрешают использовать .htaccess. В таких случаях добавьте директивы авторизации прямо в конфигурацию виртуального хоста.

Автоматизация: cron для обновления статистики

Добавьте в cron periodic задачу для обновления всех конфигов AWStats. Пример для root Crontab (обновление каждый час):

0 * * * * /usr/bin/awstats_updateall.pl now -confdir="/etc" -awstatsprog="/var/www/awstats/awstats.pl" >/dev/null 2>&1

Или используйте systemd-timer (на системах с systemd) для гибкого управления расписанием.

Практические рекомендации по безопасности

  • Отключите отображение версий сервера в заголовках HTTP.
  • Разграничьте права: конфигурации — root, каталоги отчётов — отдельный системный пользователь.
  • Логи ротации: обеспечьте ротацию логов (logrotate) и обработки для новых файлов.
  • SELinux: при включённом SELinux используйте правильные контексты для /var/www/awstats и /etc/awstats.

Отладка и частые проблемы

  • Страница отображается как текст или предлагает скачать файл — mod_cgi не подключён.
  • Ничего не обновляется по cron — проверьте PATH в crontab и права пользователя.
  • Ошибки чтения конфига — убедитесь, что права на /etc/awstats/*.conf позволяют процессу (обычно root) читать файл.
  • Проблемы с правами изображений/иконок — проверьте Alias и права в /var/www/awstats/icon/.

SOP: пошаговый план развёртывания (коротко)

  1. Подготовка: резервная копия текущих конфигураций и логов.
  2. Добавить rpmforge-репозиторий (команды выше).
  3. yum install httpd awstats.
  4. Настроить Apache (awstats.conf), включить mod_cgi.
  5. Отредактировать /etc/awstats/awstats..conf.
  6. Переименовать конфиг и проверить запуск awstats_updateall.pl вручную.
  7. Добавить cron/systemd-timer.
  8. Настроить htpasswd и .htaccess или директивы в VirtualHost.
  9. Проверить доступность в браузере и провести нагрузочное тестирование при необходимости.

Ролевые контрольные списки

Администратор сервера:

  • Проверить наличие root/sudo.
  • Установить репозитории и пакеты.
  • Настроить автозапуск httpd.

DevOps:

  • Добавить задачу в CI/CD для обновления конфигов.
  • Настроить мониторинг (возвращаемые коды, время обновления).

Инженер по безопасности:

  • Проверить права на /etc/awstats и /var/www/awstats.
  • Настроить аутентификацию и ограничение по IP/SSL.

Критерии приёмки

  • AWStats открывается в браузере по адресу /awstats/awstats.pl?config=.
  • Конфигурационный файл /etc/awstats/awstats..conf существует и читается.
  • Cron или systemd-timer обновляет статистику согласно расписанию.
  • Доступ к интерфейсу защищён паролем или ограничен по IP/SSL.

Короткая сводка

AWStats легко установить через YUM при наличии дополнительного репозитория. Основные шаги: установка Apache и AWStats, настройка конфигураций, защита конфигов и каталогов, автоматизация обновлений через cron. Всегда проверяйте права и SELinux-контексты.

Глоссарий в одну строку

  • AWStats — Perl-скрипт для аналитики логов и генерации графических отчётов.
  • RPMForge — сторонний репозиторий RPM для CentOS/RHEL.
  • mod_cgi — модуль Apache для выполнения CGI-скриптов.

Дополнительные заметки и совместимость

  • Версии пакетов и репозиториев могут отличаться по дистрибутивам и релизам; проверяйте URL репозитория и подписи RPM.
  • На RHEL/CentOS 7+ используйте systemd вместо init-скриптов и проверьте, поддерживает ли пакет awstats системные пути, отличающиеся от старых релизов.

Важно: не удаляйте исходные логи до того, как AWStats их проанализирует и вы не убедились в корректности отчётов.


Краткий список контрольных точек при вводе в эксплуатацию:

  • Конфигурация сохранена в /etc/awstats
  • CGI-скрипт awstats.pl доступен и исполняем
  • Cron/Timer обновляет данные регулярно
  • Интерфейс защищён паролем и/или SSL
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Herodotus: механизм и защита Android‑трояна
Кибербезопасность

Herodotus: механизм и защита Android‑трояна

Включить новое меню «Пуск» в Windows 11
Windows руководство

Включить новое меню «Пуск» в Windows 11

Панель полей сводной таблицы в Excel — руководство
Excel

Панель полей сводной таблицы в Excel — руководство

Включить новое меню «Пуск» в Windows 11
Windows 11

Включить новое меню «Пуск» в Windows 11

Дубликаты Диспетчера задач в Windows 11 — как исправить
Windows

Дубликаты Диспетчера задач в Windows 11 — как исправить

История просмотров Reels в Instagram — как найти
Instagram

История просмотров Reels в Instagram — как найти