Посты с тэгом: apache

Рассмотрим как реализовать доступ к FreePBX GUI через HTTPS. Все действия производились на FreePBX установленный на Debian 9 Stretch (как установить можно почитать тут) и Apache.

 

Любым удобным вам способом копируем сертификат, закрытый ключ, промежуточные + корневой сертификат в систему (как это сделать через SSH можно почитать тут). Так как сертификатом будет пользоваться веб-сервер Apache, то не забываем прописать на файлы сертификатов соответствующие права. Я выставляю такие права доступа на файлы сертификатов:

chown root:www-data {путь к файлу}
chmod 640 {путь к файлу}

 

Включаем модуль SSL в Apache:

a2enmod ssl

 

Конфигурация виртуального хоста. Приводим дефолтный вирт. хост /etc/apache2/sites-available/000-default.conf к виду:

<VirtualHost *:80>
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

<VirtualHost *:443>
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        SSLEngine On
        SSLCertificateFile /etc/ssl/crt.crt
        SSLCertificateKeyFile /etc/ssl/key.key
        SSLCACertificateFile /etc/ssl/crt-ca.crt
</VirtualHost>

[stextbox id=’warning’]ВНИМАНИЕ. Обращаю внимание что в SSLCertificateFileSSLCertificateKeyFileSSLCACertificateFile указываем свой путь к файлам.[/stextbox]

Разберем как установить phpMyAdmin последней версии из исходников в Debian 9 Stretch. Так же рассмотрим как обезопасить доступ к нему.

 

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

apt-get install php php-common php-cli libapache2-mod-php php-gd php-mbstring php-zip php-xml php-curl php-bz2 php-mysql php-common php-tcpdf php-gettext mariadb-server -y

 

Скачиваем последнюю версию phpMyAdmin, распаковываем скачанный архив и перемещаем его в пользовательский каталог:

wget https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.zip

unzip phpMyAdmin-latest-all-languages.zip
rm phpMyAdmin-latest-all-languages.zip
mv phpMyAdmin-*-all-languages/ /usr/share/phpmyadmin

 

Создадим каталог в котором phpMyAdmin будет хранить свои временные файлы и назначаем права доступа к нему для веб-сервера (www-data):

mkdir -p /var/lib/phpmyadmin/tmp
chown -R www-data:www-data /var/lib/phpmyadmin

 

Создаем базу данных и таблицы конфигурации для phpMyAdmin. Применяем поставляемый вместе с phpMyAdmin скрипт:

mariadb < /usr/share/phpmyadmin/sql/create_tables.sql

Однажды при попытке посмотреть какие «Виртуальные хосты» сейчас активны на Веб-сервере apache, я получил следующие ошибки в выводе:

apache2ctl -t -D DUMP_VHOSTS

[core:warn] [pid 4514] AH00111: Config variable ${APACHE_LOCK_DIR} is not defined
[core:warn] [pid 4514] AH00111: Config variable ${APACHE_PID_FILE} is not defined
[core:warn] [pid 4514] AH00111: Config variable ${APACHE_RUN_USER} is not defined
[core:warn] [pid 4514] AH00111: Config variable ${APACHE_RUN_GROUP} is not defined
[core:warn] [pid 4514] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
[core:warn] [pid 4514] AH00111: Config variable ${APACHE_RUN_DIR} is not defined
[core:warn] [pid 4514] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
[core:warn] [pid 4514] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
[core:warn] [pid 4514] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
[core:warn] [pid 4514] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
[core:warn] [pid 4514] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
AH00526: Syntax error on line 74 of /etc/apache2/apache2.conf:
Invalid Mutex directory in argument file:${APACHE_LOCK_DIR}

 

Исправляется это следующими действиями:

source /etc/apache2/envvars 
apache2 -V
service apache2 restart

 

Разберем как установить систему управления проектами Redmine 4.0.1 на Debian 9 Stretch.

 

Подготовка системы

Перед началом установки обновляем систему до актуального состояния:

sudo apt-get update && sudo apt-get upgrade -y

 

Устанавливаем необходимые зависимости:

sudo apt-get install apache2 apache2-dev libapr1-dev libaprutil1-dev libapache2-mpm-itk mysql-server curl libapache2-mod-passenger default-libmysqlclient-dev libcurl4-openssl-dev ruby-rmagick libmagickwand-dev gnupg2 dirmngr -y

 

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

sudo mysql_secure_installation

[stextbox id=’warning’]В ходе выполнения команды, будет заданы вопросы (смены пароля root, удаления анонимных учетных записей, отключения удаленного доступа для root, удаления тестовой базы данных, сброса привилегий)[/stextbox]

Продолжаем рассматривать способы защиты веб-сервера, от потенциальных угроз. На этот раз рассмотрим такой инструмент как Fail2ban.

 

Принцип работы Fail2ban, заключается в анализе лог-файлов и реагировании на определенные события которые определены в настройках Fail2ban.

 

Рассмотрим как установить Fail2ban и настроить на защиту веб-сервера (Apache), развернутом на Debian 9 Stretch.

 

Устанавливаем пакет fail2ban:

apt-get install fail2ban -y

 

Конфигурационный файл настройки правил /etc/fail2ban/jail.conf, разработчики не рекомендуют изменять, поэтому создадим его локальную копию, из которого будут в приоритете считываться правила:

cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Рассмотрим применение базовых мер безопасности на веб-сервере (Apache), развернутом на Linux (DEB) (Debian 8 Jessie/Debian 9 Stretch/Ubuntu Server 14.04 LTS и т.д.).

 

После установки веб-сервера и PHP, в первую очередь необходимо скрыть версии самого веб-сервера и PHP. Знание злоумышленником версии установленных продуктов, может облегчить ему задачу по поиску известных уязвимостей, для этих версий продуктов.

 

Скрытие версии Apache

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

Рассмотрим установку стека LAMP (Linux, Apache, MySQL/MariaDB, PHP) на Debian 9 Stretch.

 

Подготовка системы

Обновляем систему до актуального состояния:

apt-get update && sudo apt-get upgrade -y

 

Установка Apache

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

apt-get install apache2 apache2-utils

Имеется развернутый почтовый сервер MS Exchange 2010 SP3, который находится в бэкэнде (Backend) локальной сети. На фронтэнде (Frontend) находится веб-сервер на базе Debian 8 Jessie + Apache.

 

Для доступа к веб-ресурсам Outlook (OWA, OAB, EWS, Autodiscover и т.д.) необходимо выполнить настройку Reverse Proxy на Apache.

 

Включение необходимых модулей Apache

Включаем модули Apache, для работы Reverse Proxy (proxy, proxy_http):

a2enmod proxy
a2enmod proxy_http

 

Перезапускаем Apache:

service apache2 restart

 

Теперь Apache готов действовать как обратный прокси-сервер (Reverse Proxy) для HTTP-запросов.

phpMyAdmin — это приложение для удобного администрирования MySQL серверов. Разберем как установить его на Debian 8 Jessie/Ubuntu Server 14.04 и настроить безопасность доступа.

 

Подготовка системы

Перед началом установки обновляем систему до актуального состояния:

apt-get update && sudo apt-get upgrade -y

 

Установка phpMyAdmin

Для установки в терминале вводим:

apt-get install phpmyadmin

В процессе установки, в запросе на какой веб-сервер будет настроен phpMyAdmin, выбираем apache2. В конце установки, в запросе настроить базу данных для phpMyAdmin, нажимаем «Да», вводим пароль от учетной записи (root) и задаем пароль для доступа к phpMyAdmin.

SSO (Single Sing-on) – позволяет пользователям вошедшим в систему не вводить пароль при авторизации на доменных сетевых ресурсах. Этот же механизм можно запросто прикрепить к Apache, что бы позволить доменным пользователям проходить аутентификацию, например на внутреннем сайте компании, не вводя имя пользователя и пароль.

 

Исходные данные:

  • Контроллер домена (DC1) на Windows Server 2012 R2, домен JAKONDA.LOCAL
  • Веб-сервер (webserver) (Apache 2.4.10) на Debian 10 Buster.

 

[stextbox id=’info’]ИНФОРМАЦИЯ. Данная статья так же применительная будет ко всем debian-like системам.[/stextbox]

 

Подготовка системы

# Обновляем информацию о репозиториях и обновляем установленные пакеты:

apt-get update && apt-get upgrade -y

 

Указываем FQDN (Fully Qualified Domain Name) имя системы, в файле /etc/hostname:

webserver.jakonda.local

Файл /etc/hosts приводим к виду таким образом, чтобы в нём была запись с полным доменным именем компьютера и с коротким именем, ссылающаяся на один из внутренних IP хоста:

127.0.0.1 localhost 
127.0.1.1 webserver.jakonda.local webserver

 

Настраиваем синхронизацию времени с контроллером домена, выполняем установку NTP, выполняем синхронизацию времени с контроллером домена:

apt-get install ntp ntpdate

ntpdate dc1.jakonda.local

[stextbox id=’info’]Более подробно о синхронизации времени на Debian можно почитать в этой статье[/stextbox]

Разберем как установить систему управления проектами Redmine 3.4.3 на Debian 8 Jessie.

 

Подготовка системы

Перед началом установки обновляем систему до актуального состояния:

sudo apt-get update && sudo apt-get upgrade -y

Устанавливаем необходимые зависимости (в ходе установки зависимостей, необходимо будет задать пароль для mysql):

sudo apt-get install apache2 apache2-mpm-prefork mysql-server curl libapache2-mod-passenger libmysqlclient-dev libcurl4-openssl-dev apache2-threaded-dev ruby-rmagick libmagickwand-dev -y

 

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

Разберем как развернуть систему управления версиями Subversion (SVN) на Ubuntu 14.04 Trusty Tahr. Так же данная инструкция работает на Debian 8 Jessie. Рассмотрим базовые параметры управления SVN (Создание, удалении репозиториев), разграничение прав пользователей SVN.

 

Подготовка системы

Перед началом установки обновляем систему до актуального состояния:

sudo apt-get update && sudo apt-get upgrade -y

 

Добавляем системного пользователя (subversion), который будет владельцем репозитория и от него будет запускаться демон (SVN):

sudo adduser subversion --system --shell /sbin/nologin --group --disabled-password --home /var/svn

 

Назначаем права доступа к папке для размещения репозиториев (SVN):

sudo chown -R subversion:subversion /var/svn
sudo chmod -R 775 /var/svn