Разное

Как установить apache на debian: Как установить Apache на Debian 10 – База знаний Timeweb Community

Содержание

Установка веб-сервера Apache в Debian 9

Введение

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

В этом обучающем модуле мы расскажем, как установить веб-сервер Apache на сервере Debian 9.

Предварительные требования

Прежде чем начать прохождение настоящего обучающего модуля, необходимо настроить на сервере обычного пользователя без привилегий root и с привилегиями sudo. Также вам потребуется включить базовый брандмауэр, чтобы заблокировать все порты, кроме необходимых. Вы научитесь настраивать учетную запись обычного пользователя и брандмауэр для вашего сервера, следуя указаниям руководства Начальная настройка сервера Debian 9.

Создав учетную запись, войдите в систему как пользователь без привилегий root.

Шаг 1 — Установка Apache

Apache поставляется с используемыми по умолчанию хранилищами программного обеспечения Debian, что позволяет использовать для его установки инструменты управления из стандартных пакетов.

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

Затем установим пакет apache2:

После подтверждения установки apt выполнит установку Apache и всех требуемых зависимостей.

Шаг 2 — Настройка брандмауэра

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

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

Выведите список профилей приложений ufw, введя следующую команду:

Вы увидите список профилей приложений:

Output

Available applications: AIM Bonjour CIFS . . . WWW WWW Cache WWW Full WWW Secure . . .

Профили Apache начинаются с WWW:

  • WWW: этот профиль открывает только порт 80 (обычный веб-трафик без шифрования)
  • WWW Cache: этот профиль открывает только порт 8080 (иногда используется для кэширования и веб-прокси)
  • WWW Full: этот профиль открывает порт 80 (обычный веб-трафик без шифрования) и порт 443 (трафик TLS/SSL с шифрованием)
  • WWW Secure: этот профиль открывает только порт 443 (трафик с шифрованием TLS/SSL)

Рекомендуется применять самый ограничивающий профиль, который будет разрешать заданный трафик. Поскольку в этом модуле мы еще не настроили SSL для нашего сервера, нам нужно будет только разрешить трафик на порту 80.

Для проверки изменений введите:

В результатах вы должны увидеть, что трафик HTTP разрешен:

Output

Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere WWW ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) WWW (v6) ALLOW Anywhere (v6)

Как видите, профиль был активирован для разрешения доступа к веб-серверу.

Шаг 3 — Проверка веб-сервера

В конце процесса установки Debian 9 запускает Apache. Веб-сервер уже должен быть запущен и работать.

Используйте команду systemd init system, чтобы проверить работу службы:

  • sudo systemctl status apache2

Output

● apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2018-09-05 19:21:48 UTC; 13min ago Main PID: 12849 (apache2) CGroup: /system.slice/apache2.service ├─12849 /usr/sbin/apache2 -k start ├─12850 /usr/sbin/apache2 -k start └─12852 /usr/sbin/apache2 -k start Sep 05 19:21:48 apache systemd[1]: Starting The Apache HTTP Server... Sep 05 19:21:48 apache systemd[1]: Started The Apache HTTP Server.

Как видно из результатов, служба успешно запущена. Однако лучше всего протестировать ее запуск посредством запроса страницы из Apache.

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

Попробуйте ввести в командной строке сервера следующую команду:

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

Альтернатива заключается в использовании инструмента curl, который должен предоставить вам публичный IP-адрес, отображаемый в других местах в интернете.

Вначале выполните установку curl с помощью apt:

Затем используйте curl для получения icanhazip.com с помощью IPv4:

Когда вы узнаете IP-адрес вашего сервера, введите его в адресную строку браузера:

http://your_server_ip

Вы увидите веб-страницу Debian 9 Apache по умолчанию:

Эта страница показывает, что Apache работает корректно. Также на ней содержится информация о важных файлах Apache и расположении каталогов.

Шаг 4 — Управление процессом Apache

Теперь ваш веб-сервер запущен и работает, и настало время изучить некоторые простые команды управления.

Чтобы остановить веб-сервер, введите:

  • sudo systemctl stop apache2

Чтобы запустить остановленный веб-сервер, введите:

  • sudo systemctl start apache2

Чтобы остановить и снова запустить службу, введите:

  • sudo systemctl restart apache2

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

  • sudo systemctl reload apache2

По умолчанию Apache настроен на автоматический запуск при загрузке сервера. Если вы не хотите этого, отключите такое поведение с помощью следующей команды:

  • sudo systemctl disable apache2

Чтобы перезагрузить службу для запуска во время загрузки, введите:

  • sudo systemctl enable apache2

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

Шаг 5 — Настройка виртуальных хостов (рекомендуется)

При использовании веб-сервера Apache вы можете использовать виртуальные хосты (аналогичные серверным блокам в Nginx) для инкапсуляции данных конфигурации и размещения на одном сервере нескольких доменов. Мы создадим домен example.com, но вы должны заменить это имя собственным доменным именем. Чтобы узнать больше о настройке доменного имени с помощью DigitalOcean, пройдите наш обучающий модуль Введение в DigitalOcean DNS.

В Apache в Debian 9 по умолчанию включен один серверный блок, настроенный на обслуживание документов из каталога /var/www/html. Хотя это хорошо работает для отдельного сайта, при хостинге нескольких сайтов это неудобно. Вместо изменения /var/www/html мы создадим в /var/www структуру каталогов для нашего сайта example.com, оставив /var/www/html как каталог по умолчанию для вывода в случае, если запросу клиента не соответствуют никакие другие сайты.

Создайте каталог для example.com следующим образом, используя опцию -p для создания необходимых родительских каталогов:

sudo mkdir -p /var/www/example.com/html

Затем назначьте владение каталогом с помощью переменной среды $USER:

  • sudo chown -R $USER:$USER /var/www/example.com/html

Разрешения корневых каталогов веб-сервера должны быть правильными, если вы не изменяли значение unmask. Тем не менее, вы можете проверить это с помощью следующей команды:

  • sudo chmod -R 755 /var/www/example. com

Затем создайте в качестве примера страницу index.html, используя nano или свой любимый редактор:

  • nano /var/www/example.com/html/index.html

Добавьте в страницу следующий образец кода HTML:

/var/www/example.com/html/index.html

<html>
    <head>
        <title>Welcome to Example.com!</title>
    </head>
    <body>
        <h2>Success!  The example.com virtual host is working!</h2>
    </body>
</html>

Сохраните файл и закройте его после завершения.

Для обслуживания этого контента Apache необходимо создать файл виртуального хоста с правильными директивами. Вместо изменения файла конфигурации по умолчанию /etc/apache2/sites-available/000-default.conf мы создадим новый файл /etc/apache2/sites-available/example.com.conf:

  • sudo nano /etc/apache2/sites-available/example. com.conf

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

/etc/apache2/sites-available/example.com.conf

<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /var/www/example.com/html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Обратите внимание, что мы изменили DocumentRoot на новый каталог, а ServerAdmin — на адрес электронной почты, доступный администратору сайта example.com. Также мы добавили две директивы: директиву ServerName, которая устанавливает базовый домен и должна соответствовать определению виртуального хоста, и директиву ServerAlias, которая задает дополнительные имена, которые должны давать совпадение, как если бы они были базовыми именами.

Сохраните файл и закройте его после завершения.

Активируем файл с помощью инструмента a2ensite:

  • sudo a2ensite example.com.conf

Отключите сайт по умолчанию, определеный в 000-default.conf:

  • sudo a2dissite 000-default.conf

Затем проверим ошибки конфигурации:

  • sudo apache2ctl configtest

Вы должны увидеть следующий результат:

Output

Syntax OK

Перезапустие Apache для внесения изменений:

  • sudo systemctl restart apache2

Теперь Apache должен обслуживать ваше доменное имя. Вы можете проверить это, открыв в браузере адрес http://example.com, после чего должны увидеть примерно следующее:

Шаг 6 — Знакомство с важными файлами и каталогами Apache

Теперь вы научились управлять службой Apache, и настало время познакомиться с несколькими важными каталогами и файлами.

Контент

  • /var/www/html: веб-контент, в состав которого по умолчанию входит только показанная ранее страница Apache по умолчанию, выводится из каталога /var/www/html. Это можно изменить путем изменения файлов конфигурации Apache.

Конфигурация сервера

  • /etc/apache2: каталог конфигурации Apache. Здесь хранятся все файлы конфигурации Apache.
  • /etc/apache2/apache2conf: главный файл конфигурации Apache. Его можно изменить для внесения изменений в глобальную конфигурацию Apache. Этот файл отвечает за загрузку многих других файлов в каталоге конфигурации.
  • /etc/apache2/ports.conf: этот файл задает порты, которые будет прослушивать Apache. По умолчанию Apache прослушивает порта 80, а если активирован модуль с функциями SSL, он также прослушивает порт 443.
  • /etc/apache2/sites-available/: каталог, где можно хранить виртуальные хосты для каждого сайта. Apache не будет использовать файлы конфигурации из этого каталога, если они не будут связаны с каталогом sites-enabled. Обычно все изменения конфигурации серверных блоков выполняются в этом каталоге, а затем активируются посредством ссылки на другой каталог с помощью команды a2ensite.
  • /etc/apache2/sites-enabled/: каталог, где хранятся активные виртуальные хосты для каждого сайта. Обычно они создаются посредством создания ссылок на файлы конфигурации из каталога sites-available с помощью команды a2ensite. Apache считывает файлы конфигурации и ссылки из этого каталога при запуске или перезагрузке, когда компилируется полная конфигурация.
  • /etc/apache2/conf-available/, /etc/apache2/conf-enabled/: эти каталоги имеют те же отношения, что и каталоги sites-available и sites-enabled, но используются для хранения фрагментов конфигурации, которые не принадлежат виртуальному хосту. Файлы из каталога conf-available можно активировать с помощью команды a2enconf и отключить с помощью команды a2disconf.
  • /etc/apache2/mods-available/, /etc/apache2/mods-enabled/: эти каталоги содержат доступны и активированные модули соответственно. Файлы с расширением .load содержат фрагменты для загрузки определенных модулей, а файлы с расширением .conf содержат конфигурации этих модулей. Модули можно активировать и отключать с помощью команд a2enmod и a2dismod.

Журналы сервера

  • /var/log/apache2/access.log: по умолчанию каждый запрос веб-сервера регистрируется в этом файле журналда, если Apache не настроен по другому.
  • /var/log/apache2/error.log: по умолчанию все ошибки регистрируются в этом файле. Директива LogLevel в конфигурации Apache указывает, насколько детальные записи регистрируются в журналах ошибок.

Заключение

Теперь вы установили веб-сервер и у вас есть богатые возможности выбора типа обслуживаемого контента и технологий для расширения возможностей пользователя.

Если вы хотите развернуть более полный комплекс приложений, ознакомьтесь с этой статьей Настройка набора LAMP в Debian 9.

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

Apache — это популярнейший свободный веб-сервер. Состоянием на 2020 год он используется на 33% всех сайтов интернета, а это приблизительно 304 миллиарда сайтов. Этот веб-сервер был разработан в далеком 1995, как замена для популярного того сервера NCSA и исправил множество его проблем. Ходят слухи что его имя походит от a patchy, заплатка, так как он исправлял ошибки NCSA. Сейчас же, это кроссплатформенная программа, поддерживающая Windows, Linux и MacOS и обеспечивающая достаточную гибкость, настраиваемость и функциональность. Программа имеет модульную структуру, что позволяет расширять ее функциональность почти до бесконечности с помощью модулей.

Установить Apache в Linux можно с помощью нескольких команд, но программа предоставляет очень большое количество настроек, которые можно изменить, а также модулей, после включения которых она будет работать лучше. В этой статье будет рассмотрена установка и настройка Apache, в качестве основной системы мы будем использовать Ubuntu, но вы можете повторить эти действия в любом другом дистрибутиве. Будет рассмотрена не только установка самой программы, но и способы ее настройки, настройка виртуальных хостов apache, а также самые полезные модули.

Содержание статьи:

Установка Apache

На данный момент, самая новая версия программы 2.4 поэтому и будет рассмотрена настройка apache 2.4. Как я уже говорил, в Linux программа устанавливается буквально в пару команд. Для установки в Ubuntu сначала обновим систему до самой новой версии:

sudo apt update
sudo apt upgrade

Затем установка apache2:

sudo apt install apache2

В других дистрибутивах пакет программы называется либо так, либо httpd и его установка у вас не вызовет трудностей.

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

sudo systemctl enable apache2

Настройка Apache

Уже прошло то время, когда конфигурация Apache хранилась в одном файле. Но оно и правильно, когда все распределено по своим директориям, в конфигурационных файлах легче ориентироваться.

Все настройки содержатся в папке /etc/apache/:

  • Файл /etc/apache2/apache2.conf отвечает за основные настройки
  • /etc/apache2/conf-available/* — дополнительные настройки веб-сервера
  • /etc/apache2/mods-available/* — настройки модулей
  • /etc/apache2/sites-available/* — настойки виртуальных хостов
  • /etc/apache2/ports.conf — порты, на которых работает apache
  • /etc/apache2/envvars

Как вы заметили есть две папки для conf, mods и site. Это available и enabled. При включении модуля или хоста создается символическая ссылка из папки available (доступно) в папку enable (включено). Поэтому настройки лучше выполнять именно в папках available. Вообще говоря, можно было бы обойтись без этих папок, взять все и по старинке свалить в один файл, и все бы работало, но сейчас так никто не делает.

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

vi /etc/apache2/apache2.conf

Timeout — указывает как долго сервер будет пытаться продолжить прерванную передачу или прием данных. 160 секунд будет вполне достаточно.

KeepAlive On — очень полезный параметр, позволяет передавать несколько файлов, за одно соединение, например, не только саму html страницу, но и картинки и css файлы.

MaxKeepAliveRequests 100 — максимальное количество запросов за одно соединение, чем больше, тем лучше.

KeepAliveTimeout 5 — таймаут соединения, обычно для загрузки страницы достаточно 5-10 секунд, так что больше ставить не нужно, но и рвать соединение раньше чем загрузились все данные тоже не нужно.

User, Group — пользователь и группа, от имени которых будет работать программа.

HostnameLookups — записывать в логи вместо ip адресов доменные имена, лучше отключить, чтобы ускорить работу.

LogLevel — уровень логирования ошибок. По умолчанию используется warn, но чтобы логи заполнялись медленнее достаточно включить error

Include — все директивы include отвечают за подключение рассмотренных выше конфигурационных файлов.

Директивы Directory отвечают за настройку прав доступа к той или иной директории в файловой системе. Синтаксис здесь такой:

<Directory /адрес/в/файловой/системе/>
Параметр значение
</Directory>

Здесь доступны такие основные опции:

AllowOverride — указывает нужно ли читать .htaccess файлы из этой директории, это такие же файлы настроек и таким же синтаксисом. All — разрешать все, None — не читать эти файлы.

DocumentRoot — устанавливает из какой папки нужно брать документы для отображенияа пользователю

Options — указывает какие особенности веб-сервера нужно разрешить в этой папке. Например, All — разрешить все, FollowSymLinks — переходить по символическим ссылкам, Indexes — отображать содержимое каталога если нет файла индекса.

Require — устанавливает, какие пользователи имеют доступ к этому каталогу. Require all denied — всем запретить, Require all granted — всем разрешить. можно использовать вместо all директиву user или group чтобы явно указать пользователя.

Order — позволяет управлять доступом к директории. Принимает два значения Allow,Deny — разрешить для всех, кроме указанных или Deny,Allow — запретить для всех, кроме указанных. Теперь мы можем запретить доступ к директории для всех: Deny from all, а затем разрешить только для приложения от losst.ru: Allow from losst.ru.

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

У нас остался файл /etc/apache2/ports.conf:

В нем только одна директива, Listen, которая указывает программе на каком порту нужно работать.

Последний файл /etc/apache2/envvars, его вы вряд ли будете использовать, в нем указанны переменные, которые можно использовать в других конфигурационных файлах.

Дальше поговорим немного о htacess. Совсем немного.

Настройка сервера Apache через htaccess

Файлы .htaccess позволяют настраивать веб-сервер на Ubuntu для поведения в определенной директории. Все инструкции, указанные в этом файле выполняются как бы они были обвернуты в тег <directory адрес_папки> если бы находились в основном файле.

Важно заметить, что для того, чтобы сервер читал инструкции из .htaccess настройки для этой папки в основном файле или файле виртуального хоста не должны содержать AllowOverride None, чтобы могли работать все настройки нужно AllowOverride All. /\.]+)/?$ product.php?id=$1 [L]

Но это очень обширная тема и выходит за рамки этой статьи.

Настройка модулей Apache

Как я уже говорил, Apache — модульная программа, ее функциональность можно расширять с помощью модулей. Все доступные модули загрузчики и конфигурационные файлы модулей находятся в папке /etc/apache/mods-available. А активированные в /etc/apache/mods-enable.

Но вам необязательно анализировать содержимое этих папок. Настройка Apache 2.4 с помощью добавления модулей выполняется с помощью специальных команд. Посмотреть все запущенные модули можно командой:

apache2ctl -M

Включить модуль можно командой:

sudo a2enmod имя_модуля

А отключить:

sudo a2dismod имя_модуля

После включения или отключения модулей нужно перезагрузить apache:

sudo systemctl restart apache2

Во время выполнения одной из этих команд создается или удаляется символическая ссылка на файл модуля с расширением load в директории mods-available. Можете посмотреть содержимое этого файла, там только одна строка. Например:

vi /etc/apache2/mods-available/deflate.load

Это к тому, что активировать модуль можно было просто добавив эту строчку в файл apache2.conf. Но принято делать именно так, чтобы избежать путаницы.

Настройки модулей находятся в той же папке, только в файле с расширением .conf вместо load. Например, посмотрим настройки того же модуля для сжатия deflate:

vi /etc/apache2/mods-available/deflate.conf

Файлы в папке conf-available, это такие же модули, только они установлены отдельно от apache, это может быть конфигурационные файлы для включения модуля php или любого другого языка программирования. Здесь работает все точно так же, только команды для включения и отключения этих модулей немного другие:

a2enconf имя_модуля

a2disconf имя модуля

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

sudo a2enmod expires
sudo a2enmod headers
sudo a2enmod rewrite
sudo a2enmod ssl

Модули expires и headers уменьшают нагрузку на сервер. Они возвращают заголовок Not Modified, если документ не изменился с последнего запроса. Модуль expiries позволяет устанавливать время, на которое браузер должен кэшировать полученный документ. Rewrite позволяет изменять запрашиваемые адреса на лету, очень полезно при создании ЧПУ ссылок и т д. А последний для включения поддержки шифрования по SSL. Не забудьте перезагрузить apache2 после завершения настроек.

Настройка виртуальных хостов Apache

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

Настройки хостов Apache расположены в папке /etc/apache2/sites-available/. Для создания нового хоста достаточно создать файл с любым именем (лучше кончено с именем хоста) и заполнить его нужными данными. Обернуть все эти параметры нужно в директиву VirtualHost. Кроме рассмотренных параметров здесь будут использоваться такие:

  • ServerName — основное имя домена
  • ServerAlias — дополнительное имя, по которому будет доступен сайт
  • ServerAdmin — электронная почта администратора
  • DocumentRoot — папка с документами для этого домена

Например:

vi /etc/apache2/sites-available/test.site.conf

<VirtualHost *:80>
ServerName test.site
ServerAlias www.test.site
ServerAdmin webmaster@localhost
DocumentRoot /var/www/test.site/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Виртуальные хосты, как и модули нужно активировать. Для этого есть специальные утилиты. Чтобы активировать наберите:

sudo a2ensite test. site

Здесь test.site — имя файла виртуального хоста. Для отключения тоже есть команда:

sudo a2dissite test.site

Настройка виртуальных хостов Apache завершена и на публичном сервере это все бы уже работало, но если вам нужна настройка Apache на домашней машине, то вы ваш новый сайт не откроется в браузере. Браузер не знает такого сайта. И откуда ему знать? DNS службы не могут ничего сообщить об этом доменном имени. Но в системе Linux мы можем сами указать ip адреса для доменных имен в файле /etc/hosts. Поэтому добавляем в конец файла такие строки:

vi /etc/hosts

127.0.0.1 test.site
127.0.0.1 www.test.site

Вот, ну теперь будет работать, открывайте браузер, проверяйте.

Выводы

Вот и все. Установка и настройка Apache linux завершена, вы можете использовать программу для размещения ваших сайтов. Более того, вы не просто настроили ее, вы разобрались со всеми подробностями и теперь знаете чуточку больше. Если у вас остались еще вопросы, пишите в комментариях!

Оцените статью:

Загрузка…

Как установить веб-сервер Apache в Debian 10

HTTP-сервер Apache является одним из самых популярных веб-серверов в мире. Это кросс-платформенный HTTP-сервер с открытым исходным кодом, который обслуживает большой процент веб-сайтов в Интернете. Apache предоставляет множество мощных функций, которые можно расширить с помощью дополнительных модулей.

В этой статье мы объясним, как установить Apache на Debian 10, Buster.

 

Перед началом работы убедитесь, что вы вошли в систему как пользователь с привилегиями sudo.

 

Пакеты Apache доступны в репозиториях Debian по умолчанию.

Установка довольно проста. Обновите индекс пакета и установите веб-сервер Apache с помощью следующих команд:

sudo apt updatesudo apt install apache2

Вот и все, Apache установлен и автоматически запущен.  Чтобы проверить тип статуса:

sudo systemctl status apache2
● apache2.service - The Apache HTTP Server
   Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: 
   Active: active (running) since Sat 2019-07-27 13:55:49 PDT; 21s ago
   ...

Пользователи UFW могут открывать порты HTTP ( 80) и HTTPS ( 443), включив профиль «Nginx Full»:

sudo ufw allow 'Apache Full'

Если вы используете nftables для фильтрации подключений к вашей системе, откройте необходимые порты, введя следующую команду:

nft add rule inet filter input tcp dport {80, 443} ct state new,established counter accept

Чтобы убедиться, что Apache работает правильно, откройте браузер, введите IP-адрес сервера или доменное имя, http://YOUR_IP_OR_DOMAIN/и вы увидите страницу приветствия Apache по умолчанию, как показано ниже:

Страница содержит основную информацию о файлах конфигурации Apache, вспомогательных сценариях и расположениях каталогов.

  • В системах на основе Debian файлы конфигурации Apache находятся в каталоге /etc/apache2.
  • Основной файл конфигурации Apache /etc/apache2/apache2.conf.
  • Порты, которые Apache будет прослушивать, указаны в файле /etc/apache2/ports.conf.
  • Файлы Apache Virtual Hosts находятся в каталоге /etc/apache2/sites-available. Файлы конфигурации, найденные в этом каталоге, не используются Apache, если они не связаны с каталогом /etc/apache2/sites-enabled.
  • Вы можете активировать директиву виртуального хоста, создав символическую ссылку, используя команду a2ensite из файлов конфигурации, найденных в каталоге sites-available и каталоге sites-enabled. Чтобы деактивировать виртуальный хост, используйте команду a2dissite.
  • Настоятельно рекомендуется следовать стандартному соглашению об именах, например, если ваше доменное имя является, mydomain.comтогда файл конфигурации домена должен быть назван/etc/apache2/sites-available/mydomain. com.conf
  • Файлы конфигурации, которые используются для загрузки различных модулей Apache, находятся в каталоге /etc/apache2/mods-available. Конфигурации в каталоге mods-available могут быть включены путем создания символической ссылки на каталог /etc/apache2/mods-enable с помощью команды a2enconf и отключены с помощью команды a2disconf.
  • Файлы, содержащие фрагменты глобальной конфигурации, хранятся в каталоге /etc/apache2/conf-available. Файлы в conf-availableкаталоге могут быть включены путем создания символической ссылки /etc/apache2/conf-enabled с помощью команды a2enconf и отключены с помощью команды a2disconf.
  • Файлы журнала Apache ( access.logи error.log) находятся в каталоге /var/log/apache. Рекомендуется использовать разные лог – файлы access и error для каждого виртуального хоста.
  • Вы можете установить корневой каталог документа вашего домена в любое место, которое вы хотите. Наиболее распространенные места для webroot включают в себя:
    • /home/<user_name>/<site_name>
    • /var/www/<site_name>
    • /var/www/html/<site_name>
    • /opt/<site_name>

 

Установка Apache в Debian – это запуск одной команды.

Теперь вы можете начать развертывание своих приложений и использовать Apache в качестве веб-сервера или прокси-сервера.

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Установка Apache OpenMeetings на Debian 10

OpenMeetings – это бесплатное программное обеспечение, использующее браузер, которое позволяет мгновенно настроить конференцию в Интернете. Вы можете использовать свой микрофон или веб-камеру, делиться документами, показывать свой экран или записывать встречи. Он доступен как размещенный сервис, или как установленный пакет на свой сервер без ограничений в использовании или пользователях.

OpenMeetings содержит множество возможностей для проведения мероприятий, основные из которых:

  • Личный и групповой чат;
  • Создание неограниченного количества сессий для общения;
  • Почтовый клиент;
  • Интеграция с LDAP;
  • Календарь с функцией планирования;
  • Запись встречи во время проведения трансляции;
  • Создание опросов и голосования в режиме реального времени между участниками;
  • Редактирование документов участниками встречи;
  • Приложение для ОС Android.

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

Требования к оборудованию

  • Минимальные требования (без конвертеров документов, функции записи и загрузки) 2 ГГц ЦП 4 ГБ ОЗУ;
  • Рекомендуемое требование 2x/4x 2 ГГц ++ CPU (32 или 64 бит) 8 ГБ ОЗУ. Если у вас есть 64-битная операционная система, проверьте, доступна ли 64-битная версия OpenOffice для вашей ОС;
  • Рекомендации для гарнитуры/микрофона: Logitech ClearChat PC Wireless. Смотрите все рекомендации для камер, гарнитур и громкой связи.

Дальнейшие действия выполняется под пользователем root.

Обновление системы
apt-get update && apt-get upgrade
Установка OpenJava

Для работы OpenMeetings необходима Java 11, поэтому мы будем устанавливать Openjava 11.

apt-get install openjdk-11-jdk openjdk-11-jdk-headless vim checkinstall

Если у вас установлено более одной версии Java, необходимо выбрать основную:

update-alternatives --config java

Смотрим установленную Java версию:

root@debian:~# java -version
openjdk version "11. 0.6" 2020-01-14
OpenJDK Runtime Environment (build 11.0.6+10-post-Debian-1deb10u1)
OpenJDK 64-Bit Server VM (build 11.0.6+10-post-Debian-1deb10u1, mixed mode, sharing)
Установка LibreOffice

LibreOffice нужен для того, чтобы конвертировать в pdf загруженные офисные файлы. Но мы устанавливаем его специально для сервера iso:

apt-get install libreoffice
apt-get install software-properties-common
apt-get update
ImageMagick и SoX
apt-get install -y imagemagick libjpeg62 zlib1g-dev sox

Модифицируем ImageMagick, чтобы можно было загружать офисные файлы.

vim /etc/ImageMagick-6/policy.xml
Компиляция FFmpeg
add-apt-repository ppa:jonathonf/ffmpeg-4
apt-get -y install autoconf automake build-essential libass-dev libfreetype6-dev libgpac-dev libsdl1. 2-dev libtheora-dev libtool libva-dev libvdpau-dev libvorbis-dev libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev pkg-config texi2html zlib1g-dev nasm libx264-dev cmake mercurial libopus-dev curl git vlc unzip make build-essential wget nmap ffmpeg
echo "# FFmpeg compilation for Ubuntu 18.04, 18.10 and Debian 10.
# Alvaro Bustos. Thanks to Hunter.
# 8-3-2019

sudo apt update
sudo apt -y --force-yes install autoconf automake build-essential libass-dev libfreetype6-dev libsdl1.2-dev libtheora-dev libtool libva-dev libvdpau-dev libvorbis-dev libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev pkg-config texi2html zlib1g-dev mercurial cmake libx264-dev libfdk-aac-dev libmp3lame-dev libvpx-dev libmp3lame-dev

# Create a directory for sources.
SOURCES=$(mkdir ~/ffmpeg_sources)
cd ~/ffmpeg_sources

# Download the necessary sources.
wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
# wget -O fdk-aac. tar.gz https://github.com/mstorsjo/fdk-aac/tarball/master
wget https://netcologne.dl.sourceforge.net/project/opencore-amr/fdk-aac/fdk-aac-0.1.6.tar.gz
wget http://ffmpeg.org/releases/ffmpeg-4.1.tar.gz

# Unpack files
for file in `ls ~/ffmpeg_sources/*.tar.*`; do
tar -xvf $file
done

cd yasm-*/
./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" && make && checkinstall && make distclean; cd ..

cd fdk-aac-*/
autoreconf -fiv && ./configure --prefix="$HOME/ffmpeg_build" --disable-shared
make V=s -j$(($(getconf _NPROCESSORS_ONLN) + 1))
checkinstall && make distclean; cd ..

cd ffmpeg-*/
PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure --prefix="$HOME/ffmpeg_build" --pkg-config-flags="--static" --extra-cflags="-I$HOME/ffmpeg_build/include" --extra-ldflags="-L$HOME/ffmpeg_build/lib" --bindir="$HOME/bin" --enable-gpl --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-nonfree && PATH="$HOME/bin:$PATH" make && checkinstall && make distclean && hash -r; cd . .

cd ~/bin
cp ffmpeg ffprobe vsyasm yasm ytasm /usr/local/bin

echo "FFmpeg Compilation is Finished!"


" > /usr/src/ffmpeg.sh
chmod +x /usr/src/ffmpeg.sh
./usr/src/ffmpeg.s
Установка и настройка MySQL
apt-get install mariadb-server
systemctl start mysql
systemctl enable mysql
mysql_secure_installation

Создаем БД

CREATE DATABASE open503 DEFAULT CHARACTER SET 'utf8';
GRANT ALL PRIVILEGES ON open503.* TO 'open'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
quit
  • open503 – база данных;
  • open – имя пользователя;
  • password – пароль имени пользователя.
Установка OpenMeetings
cd /opt/
wget http://archive.apache.org/dist/openmeetings/5.0.0-M3/bin/apache-openmeetings-5.0.0-M3.tar.gz
tar xzvf apache-openmeetings-5. 0.0-M3.tar.gz
mv apache-openmeetings-5.0.0-M3 open503
mkdir -p /opt/open503/webapps/openmeetings/data/streams/{1,2,3,4,5,6,7,8,9,10,11,12,13,14}
mkdir -p /opt/open503/webapps/openmeetings/data/streams/hibernate
chmod -R 750 /opt/open503/webapps/openmeetings/data/streams
chown -R nobody /opt/open503

Скачивание и установка коннектора между OpenMeetings и MariaDB

cd /opt/
wget https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.18/mysql-connector-java-8.0.18.jar
cp /opt/mysql-connector-java-8.0.18.jar /opt/open503/webapps/openmeetings/WEB-INF/lib

Скрипт запуска TomCat-OpenMeetings

cd /opt/
wget https://cwiki.apache.org/confluence/download/attachments/27838216/tomcat3
cp tomcat3 /etc/init.d/
chmod +x /etc/init.d/tomcat3

Запускаем TomCat-OpenMeetings

/etc/init.d/tomcat3 start

Вывод будет следующим:

Using CATALINA_BASE:   /opt/open503
Using CATALINA_HOME:   /opt/open503
Using CATALINA_TMPDIR: /opt/open503/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /opt/open503/bin/bootstrap. jar:/opt/open503/bin/tomcat-juli.jar
Tomcat started.

Далее переключаемся в установку через браузер, для этого переходим по адресу https://localhost:5443/openmeetings.

На следующем шаге необходимо выбрать Тип БД – MySQL. Далее указать имя БД и авторизационные данные.

  • Имя базы данных – open503;
  • Пользователь БД – open;
  • Пароль пользователя БД – password.

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

И настраиваем соповещение для пользователей и настройки почтового сервера:

Далее настраиваем конверторы и пути:

Следующий этап – настройка SIP и комнат:

И, наконец, финальный этап установки:

После авторизации в системе вы увидите следующую страницу:


Любое использование материалов сайта возможно только с разрешения автора и с обязательным указанием источника.

установка, настройка и способы защиты от атак

Веб-сервер Apache не нуждается в представлении. Это программное обеспечение с открытым исходным кодом, выпущенное фондом Apache, один из самых используемых веб-серверов в мире. Рассмотрим, как его установить и как настроить конфигурацию брандмауэра для разрешения HTTP- и HTTPS-трафика и виртуальные хосты в Ubuntu 18.04.

Этапы установки Apache

Установить веб-сервер Apache в Ubuntu 18.04 Bionic Beaver очень просто:

$ sudo apt-get update && apt-get install apache2

Сценарии установки Ubuntu позаботятся о запуске и включении apache2-сервиса при загрузке.

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

Чтобы получить доступ к содержимому сервера на той же машине, где он работает, нужно запустить веб-браузер и ввести в адресную строку localhost. Если всё настроено правильно, страница поприветствует словами: «It works!».

http://local.server.ip

Если в системе включён брандмауэр (как и должно быть), то чтобы сделать контент доступным извне нашей машины, нужно разрешить входящий трафик через порт 80. Команда для запуска зависит от используемого менеджера брандмауэра. Например, при использовании ufw (используется в Ubuntu по умолчанию) мы должны запустить:

$ sudo ufw allow http

Если вы используете firewalld, можно запустить:

$ sudo firewall-cmd --permanent --add-service=http && firewall-cmd --reload

Обратите внимание, что приведённая выше команда будет по умолчанию действовать в зоне firewalld. Если вы хотите работать с другой зоной, нужно указать её с помощью опции --zone.

Настройка виртуального хоста

Веб-сервер Apache может запускать несколько веб-сайтов на одном компьютере. Каждый запущенный сайт («виртуальный хост» в терминологии Apache) должен иметь свою собственную конфигурацию. Виртуальный хост может быть IP или именем.

В этом руководстве мы сосредоточимся на втором типе, так как он проще в настройке и не требует нескольких IP-адресов (виртуальные хосты на основе имён позволяют нескольким веб-сайтам использовать один и тот же IP-адрес).

Виртуальный хост по умолчанию

В Ubuntu виртуальный хост по умолчанию определён в каталоге /etc/apache2/sites-available внутри файла 000-default.conf. Рассмотрим его:

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

	[...]

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

	[...]
</VirtualHost>

Директива <VirtualHost> на первой строке применяется для группы параметров, используемых Apache для конкретного виртуального хоста. Первое, что вы увидите в ней, — инструкцию *:80. Она указывает IP-адрес и порт, используемый виртуальным хостом.

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

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

DocumentRoot в строке 4 является обязательным, это важно для конфигурации виртуального хоста. Аргумент этой инструкции должен иметь доступ к файловой системе. Указанный каталог будет считаться корневым каталогом виртуального хоста и не должен содержать завершающий символ «/». В этом случае корневая директория документа — /var/www/html. Если мы посмотрим на её содержимое, то увидим, что она содержит страницу index.html, которую вы до этого видели в качестве страницы приветствия сервера.

Последние две команды на строках 8–9, представленные в этом VirtualHost, — ErrorLog и CustomLog. Используя первый, вы указываете файл, в который сервер будет записывать возникающие ошибки. Второй используется для регистрации запросов, отправленных на сервер в указанном формате.

Новый виртуальный хост

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

Как сказано выше, файлы виртуальных хостов должны быть определены внутри каталога /etc/apache2/sites-available (по крайней мере в дистрибутивах на основе Debian). Поэтому создадим этот файл там. Прежде чем сделать это, следует создать каталог, который будет использоваться как document root, а также создать базовую страницу, которая будет отображаться при открытии сайта:

$ sudo mkdir /var/www/example && echo "Welcome to example!" > /var/www/example/index.html

Теперь можно приступить к настройке виртуального хоста:

<VirtualHost *:80>
DocumentRoot /var/www/example
ServerName www.example.local
</VirtualHost>

Это минимальная конфигурация, необходимая для его запуска. Здесь вы можете увидеть новую директиву ServerName. Это то, что определяет ваш виртуальный хост. Сохраним этот файл как example.conf. Чтобы активировать ваш виртуальный хост, используйте команду a2ensite. Эта команда создаёт символическую ссылку файла в каталоге /etc/apache2/sites-enabled:

$ sudo a2ensite example.conf

После этого следует перезагрузить конфигурацию сервера:

$ sudo systemctl reload apache2.service

Чтобы убедиться, что конфигурация работает, вы должны добавить запись в файл /etc/hosts той машины, с которой вы пытаетесь связаться с сайтом.

$ sudo echo "192.168.122.241 www.example.local" >> /etc/hosts

Без этой строки (и без записи DNS) было бы невозможно связать адрес сервера с именем вашего виртуального хоста, а использование IP-сервера напрямую вместо этого «инициировало» бы виртуальный хост по умолчанию.

С клиентского компьютера, если вы теперь перейдёте к www.example.local, вы должны увидеть минимальную страницу, которую настроили выше.

Настройка SSL

SSL (Secure Sockets Layer) — это технология, которая позволяет нам шифровать данные, связанные с соединением между клиентом и сервером. При использовании SSL-сертификатов HTTPS (Hyper Text Transfer Protocol Secure) заменяет HTTP в URL-адресе.

SSL-сертификаты выдаются центром сертификации и могут быть очень дорогими, однако есть два других способа получить сертификат: создать самозаверяющий сертификат или воспользоваться сервисом Let’s encrypt.

Создаём самоподписанный SSL-сертификат

Создание самозаверенного сертификата — несложная задача. Это может быть удобно, если вы просто хотите получить шифрование. Мы можем создать самозаверяющий сертификат с помощью утилиты OpenSSL:

$ sudo openssl req -x509 \
 -days 365 \
 -sha256 \
 -newkey rsa:2048 \
 -nodes \
 -keyout example.key \
 -out example-cert.pem

Посмотрим, что делает эта команда. Первая опция, -x509определяет, что формируется сертификат стандарта X509.

С помощью -days мы устанавливаем срок действия сертификата в днях. Следующая опция — -newkey. С её помощью мы создаём новый ключ, в данном случае RSA-ключ размером 2048 бит. В тестовом примере нам не нужно шифровать файл закрытого ключа, поэтому используем -nodes. Если эта опция не указана, файл, в котором хранится ключ, будет защищён паролем, который нужно будет предъявлять каждый раз при перезапуске веб-сервера.

С помощью -keyout и -out мы указываем файл для записи сгенерированного ключа и сертификата соответственно. При запуске команды нам будет предложено ответить на несколько вопросов, после чего будет сгенерирован ключ и сертификат.

Скопируйте сгенерированный ключ и сертификат в каталоги /etc/ssl/private и /etc/ssl/ssl-certs соответственно:

$ sudo cp example-cert.pem /etc/ssl/certs

Сертификат является общедоступным, поэтому не требует специального разрешения.

Теперь ключ:

$ sudo cp example.key /etc/ssl/private

Важно настроить права доступа к файлу ключа. Папка /etc/ssl/private принадлежит root-пользователю и группе ssl-cert, и у неё есть права доступа 710. Это означает, что владелец имеет на неё полные права, а владелец группы может только получить к ней доступ и перечислить её содержимое, но не может дать разрешение другим:

$ ls -ld /etc/ssl/private
drwx--x--- 2 root ssl-cert 4096 Mar 16 11:57 /etc/ssl/private

Изменим права доступа к файлу ключа, предоставив владельцу права на чтение и запись, а группе — только для чтения:

$ sudo chown root:ssl-cert /etc/ssl/private/example.key
$ sudo chmod 640 /etc/ssl/private/example.key

Теперь, чтобы использовать сертификат, нужно включить модуль SSL с помощью команды a2enmod:

$ sudo a2enmod ssl

Почти всё готово. Теперь пришло время изменить наш виртуальный хост и настроить его следующим образом:

<VirtualHost *:443>
	DocumentRoot /var/www/example
	ServerName www.example.local

	# Enable ssl engine
	SSLEngine on

	SSLCertificate /etc/ssl/certs/example-cert.pem
	SSLCertificateKeyFile /etc/ssl/private/example.key
</VirtualHost>

Порт 443 в строке 1 — это порт, используемый для HTTPS (вместо порта 80, используемого для HTTP).

Мы также добавили инструкцию SSLEngine on в строке 6.

Наконец, в строках 8–9 мы определили пути для сертификата и файла ключей, используя инструкции SSLCertificateFile и SSLCertificateKeyFile.

Теперь следуйте инструкциям по открытию порты брандмауэра из начале статьи, но на этот раз чтобы разрешить HTTPS-службу:

$ sudo ufw allow https

Наконец, перезагрузите конфигурацию Apache:

$ sudo systemctl reload apache2

Готово. Теперь, если мы перейдём по адресу https://www.example.local, мы должны увидеть веб-сервер, предупреждающий нас о том, что используемый сертификат небезопасен. Это, однако, признак того, что наш сертификат работает, и трафик между клиентом и сервером будет зашифрован (вам необходимо добавить исключение для сертификата, чтобы использовать его).

Настройка Let’s encrypt

Альтернатива коммерческим и самозаверенным сертификатам — «Let’s encrypt». Это бесплатный, автоматизированный и открытый центр сертификации. Его цель — дать возможность автоматически получить сертификат, которому доверяет браузер, без какого-либо вмешательства человека.

Для этого используется протокол ACME (certificate management agent), который запускается на сервере.

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

Если же у вас есть доступ к shell, необходимо установить клиент certbotACME.

Для установки Certbot на Ubuntu 18.04 достаточно запустить:

$ sudo apt-get update && apt-get install certbot python-certbot-apache

Пакет Certbot поставляется с модулем systemd timer, который будет запускать Certbot два раза в день, чтобы поддерживать сертификат в актуальном состоянии. Получить сертификат довольно просто:

$ sudo certbot --apache -m  -d 

Очевидно, чтобы это работало, домен должен правильно указывать на ваш общедоступный IP-адрес. Certbot предложит вам несколько вопросов для настройки конфигурации, и, если всё пойдёт хорошо, сертификат и ключ будут сохранены в каталоге /etc/letsencrypt/live/. Просто настройте файл виртуального хоста, чтобы указать на них, и всё готово.

Как обезопасить сервер Apache

Основные средства защиты

Установка Fail2ban на Ubuntu Server 18.04

Если вы хотите обезопасить свой сервер Ubuntu, первое, что вы должны сделать, — это установить систему обнаружения вторжений Fail2ban.

Fail2ban отслеживает определённые файлы журналов (в /var/log) на предмет неудачных попыток входа или автоматических атак на сервер. Когда обнаруживается попытка компрометации с IP-адреса, Fail2ban блокирует его, добавляя новую цепочку в iptables и предотвращая доступ или дальнейшую атаку на сервер.

Fail2ban настолько легко установить и использовать, что его можно рассматривать как простое и универсальное решение для всех серверов Linux.

Установить его просто. Войдите в свой сервер Ubuntu и обновите его при необходимости. Обратите внимание, что если в этом процессе обновлено ядро, сервер нужно перезагрузить, поэтому выберите время, когда перезагрузка возможна. Чтобы обновить сервер, введите следующие команды:

sudo apt-get update
sudo apt-get upgrade

После выполнения команд при необходимости перезагрузите сервер.
Установить Fail2ban можно с помощью одной команды:

sudo apt-get install -y fail2ban

Проверьте установленную версию:

fail2ban-server --version

После этого Fail2ban готов к работе. Запустить и включить сервис можно так:

sudo systemctl start fail2ban
sudo systemctl enable fail2ban
Настройка jail

Настроим его для попыток входа по SSH. В каталоге /etc/fail2ban вы найдёте файл jail.conf. Не редактируйте его. Вместо этого создайте новый файл jail.local, который переопределит любые подобные настройки в jail.conf. Новая конфигурация будет отслеживать /var/log/auth.log, использовать фильтр sshd fail2ban, устанавливать для порта SSH значение 22 и устанавливать максимальное количество попыток — 3. Для этого выполните команду:

sudo nano /etc/fail2ban/jail.local

В новый файл вставьте следующее содержимое:

[sshd]
enabled = true
port = 22
filter = sshd
logpath = /var/log/auth.log
maxretry = 3

Сохраните и закройте его. Перезапустите Fail2ban с помощью команды:

sudo systemctl restart fail2ban

На этом этапе, если кто-либо попытается войти на ваш сервер Ubuntu через SSH и эта попытка 3 раза завершится ошибкой, он не сможет больше войти, поскольку iptables заблокирует IP-адрес.

Тестирование и разблокирование

Вы можете проверить, работает ли jail, намеренно провалив три попытки входа на сервер через SSH. После третьей неудачной попытки соединение будет зависать. Нажмите Ctrl+C, чтобы выйти, а затем попытайтесь вернуться по SSH на сервер. Вы больше не сможете использовать SSH на этом сервере с того IP-адреса, который вы использовали.

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

sudo fail2ban-client set sshd unbanip ip_address

Где ip_address — запрещённый IP-адрес.

Теперь вы снова можете войти.

Модуль mod_evasive

Ещё одна отличная утилита для обнаружения и блокировки IP-адресов, которые используются при атаке типа «отказ в обслуживании». Модуль помещает подозрительные IP-адреса во временный чёрный список и сохраняет их там, если они продолжают подозрительно себя вести.

Благодаря простоте настройки и эффективность он стал одним из любимых инструментов защиты систем Apache. Если вы хотите защитить свой сайт без затрат, можете также использовать его.

Установка mod_evasive в Ubuntu

Введите команду:

# apt-get update

Затем установите вспомогательную утилиту:

sudo apt-get install apache2-utils

Чтобы установить модуль mod_evasive в Ubuntu, введите следующее:

# apt-get install libapache2-mod-evasive
Настройка mod_evasive

Как и большинство программных пакетов Linux, mod_evasive управляется файлом конфигурации.

Откройте его в текстовом редакторе с помощью следующей команды:

sudo nano /etc/apache2/mods-enabled/evasive.conf

Найдите запись:

#DOSEmailNotify [email protected]

Знак # помечает это как комментарий. Удалите его, затем замените [email protected] своим адресом электронной почты. Используйте ту, которой вы постоянно пользуетесь — именно сюда будут отправляться оповещения.

Отредактируйте файл журнала, чтобы он выглядел следующим образом:

Сохраните и выйдите, затем перезагрузите Apache:

sudo systemctl reload apache2
Тестирование mod_evasive

Пришло время проверить, правильно ли работает модуль.
Используйте скрипт test.pl. Его сценарий расположен по этому адресу:

/usr/share/doc/libapache2-mod-evasive/examples/test.pl.

Для его запуска примените эту команду:

perl /usr/share/doc/libapache2-mod-evasive/examples/test.pl

Вывод должен выглядеть таким образом:

Параметры и настройки

DOSSystemCommand

Вы, возможно, заметили, что эта опция была помечена как комментарий и отключена. Она позволяет указать системную команду, которая будет выполняться при добавлении IP-адреса в чёрный список. Вы можете использовать её, чтобы запустить команду для добавления IP-адреса в брандмауэр или IP-фильтр.

DOSHashTableSize

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

DOSPageCount

Количество запросов для отдельной страницы, после которого адрес помещается в чёрный список. В примере стоит 2, но это достаточно маленькое (и агрессивное) значение. Увеличьте его, чтобы уменьшить количество ложных срабатываний.

DOSSiteCount

Общее количество запросов на один и тот же сайт по одному и тому же IP-адресу. По умолчанию установлено значение 50. Вы можете увеличить его до 100, чтобы уменьшить количество ложных срабатываний.

DOSPageInterval

Количество секунд для DOSPageCount. По умолчанию значение равно 1 секунде. Это означает, что если вы не измените его, запрос 2 страниц за 1 секунду временно поместит IP-адрес в чёрный список.

DOSSiteInterval

Как и DOSPageInterval, он определяет количество секунд, которые отслеживает DOSSiteCount. По умолчанию это значение равно 1 секунде, то есть если один IP-адрес запрашивает 50 ресурсов на одном и том же веб-сайте за одну секунду, он будет временно помещён в чёрный список.

DOSBlockingPeriod

Время, в течение которого IP-адрес остаётся в чёрном списке. По умолчанию установлено 10 секунд, но вы можете изменить его на любое значение, которое вам нравится.

DOSLogDir

По умолчанию он настроен на запись журналов в /var/log/mod_evasive. Эти журналы можно просмотреть позже, чтобы оценить поведение клиента.

Белые IP-адреса

Эта опция по умолчанию не включена в файл evasive.conf.

Откройте файл для редактирования и добавьте следующую строку:

DOSWhitelist ваш_IP_адрес

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

Обязательно сохраните файл и выйдите из него, а затем перезагрузите службу Apache перед тестированием любого из этих параметров.

DNS Injection

Спам из веб-форм не только распространён, но и является быстрым способом внести домен в чёрный список подобный Spamhaus. Чтобы предотвратить подобное, вам нужно добавить ещё один модуль в Apache.

В терминале введите:

sudo apt-get -y install libapache2-mod-spamhaus

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

sudo touch /etc/spamhaus.wl

Далее откройте файл /etc/apache2/apache2.conf (используя sudo и ваш любимый текстовый редактор) и добавьте в конец вашего файла конфигурации блок:

<IfModule mod_spamhaus.c>
  MS_METHODS POST, PUT, OPTIONS, CONNECT 
  MS_WhiteList /etc/spamhaus.wl 
  MS_CacheSize 256 
</IfModule>

Сохраните файл apache2.conf и перезапустите Apache, чтобы новый модуль вступил в силу.

Slowloris

В Apache есть модуль для предотвращения подобных DOS-атак. Вот как это работает. Откройте окно терминала. Введите команду:

sudo apt-get -y install libapache2-mod-qos

После завершения установки проверьте конфигурацию в /etc/apache2/mods-available/qos.conf, чтобы убедиться, что она идеально соответствует вашим потребностям. После настройки модуля (при необходимости) перезапустите Apache.

Дополнительные средства защиты

Скрыть версию сервера

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

$ Web_Server/conf

Измените httpd.conf с помощью редактора. Добавьте следующую директиву и сохраните httpd.conf:

ServerTokens Prod
ServerSignature Off

Перезапустите Apache.
ServerSignature удалит информацию о версии со страницы.
ServerTokens изменит заголовок только на рабочий, т. е. Apache.

Защита от атаки Clickjacking

Атака данного типа позволяет злоумышленнику выполнить клик на сайте-жертве от имени легитимного посетителя.

Чтобы обезопасить свой веб-сервер, вам нужно использовать заголовок «X-FRAME-OPTIONS»
Вы можете сделать это, отредактировав файл apache2.conf.

sudo nano /etc/apache2/apache2.conf

Добавьте следующую строку внутри Directory /var/www/html/:

Header always append X-Frame-Options SAMEORIGIN

Сохраните файл и перезапустите Apache.

sudo /etc/init.d/apache2 restart

Теперь попробуйте открыть веб-браузер для доступа к веб-серверу. Проверьте заголовки ответа HTTP в firebug. Вы должны увидеть X-Frame-Options.

Защита от атаки XSS

XSS (англ. Cross-Site Scripting — «межсайтовый скриптинг») является одной из наиболее распространённых атак на уровне приложений.

Вы можете защититься от неё, отредактировав файл конфигурации Apache.

sudo nano /etc/apache2/apache2.conf

Добавьте следующую строку внутри Directory /var/www/html/:

Header set X-XSS-Protection "1; mode=block"

Заключение

Мы рассмотрели установку и настройку, а также все наиболее важные способы защиты сервера Apache, и теперь вы можете полноценно приступить к изучению его работы на практике.

Вадим Сычёв

Настройка Аpache на Debian | Xelent


Данную статью можно рассматривать как руководство по настройке debian web server. Мы настроим веб-сервер на VDS, работающем под управлением дистрибутива Debian.

Установка Apache


Apache — это программное обеспечение, реализующее функцию веб-сервера. Установить Apache можно следующей командой: 


# apt install apache2 




Установка Apache 


Кроме Apache нужно установить еще и веб-браузер, поскольку нам нужно проверять работу веб-сервера:


 # apt install w3m 


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


# w3m 127.0.0.1


Вы должны увидеть страничку, изображенную ниже. 



It works! 


Для выхода из браузера нажмите q, а затем введите y для подтверждения выхода. 

Настройка debian web server 


После установки веб-сервера Debian можно приступить к его настройке. Веб-сервер редко используется для размещения одного сайта. Скорее всего, сайтов будет несколько. Далее будет показано, как создать два виртуальных узла — example1.com и example2.com. Чтобы не заморачиваться с настройкой DNS (это тема для отдельной статьи), добавьте в /etc/hosts строки:


127.0.0.1 www.example1.com
27.0.0.1 www.example2.com 


Создайте пользователя hosting, в домашнем каталоге которого будут находиться файлы обоих сайтов:


# adduser hosting 



Создание пользователя 


Войдите как этот пользователь: 


# su hosting 


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


cd ~

mkdir www

mkdir www/example1

cd example1

mkdir htdocs

mkdir cgi-bin

mkdir logs

cd ~

cp -R www/example1 www/example2

exit


Если облака для вас

не просто теория


Широкий спектр услуг

по выделенным северам

и мультиклауд-решениям


Конфигурация VPS и бесплатный тест уже через 2 минуты


Организация вашей IT-инфраструктуры на основе мультиклауд-решения


Мы создаем директорию веб-сервера, в ней два подкаталога — для каждого из сайтов. В каждом из них, в свою очередь, мы создаем каталоги htdocs, cgi-bin и logs. Первый будет содержать файлы конкретного сайта, второй — CGI-приложения, а третий — журналы. Теперь перейдем непосредственно к настройке веб-сервера. Начнем с ports.conf: 


# nano /etc/apache2/ports.conf 


Он должен выглядеть так, как показано на иллюстрации ниже. Директива NameVirtualHost *:80 нужна, чтобы на стандартном порту 80 можно было использовать виртуальные узлы, которые мы определим далее. 



Файл /etc/apache2/ports.conf 


Нажмите Ctrl + O, а затем — Ctrl + X — для сохранения и выхода из редактора. 


Перейдите в директорию sites-available. В ней нужно создать два конфига конфигурации — для каждого из наших виртуальных узлов: 


# cd /etc/apache2/sites-available
# nano example1.conf

# nano example2.conf 


Далее будет приведена конфигурация для первого узла. Для второго она будет аналогичной, отличаться будут только пути (вместо X укажите номер узла — 1 или 2): 

<VirtualHost *:80>

  ServerAdmin hosting@localhost

  ServerName www.exampleX.com

  ServerAlias exampleX.com

  # Путь к индексным файлам

  DirectoryIndex index.html

  DocumentRoot /home/hosting/www/exampleX/htdocs/

  # Путь к CGI

  ScriptAlias /cgi-bin/ /home/hosting/www/exampleX/cgi-bin

  <Location /cgi-bin>

    Options +ExecCGI

  </Location>

# Путь к файлам логов

ErrorLog /home/hosting/www/exampleX/logs/error.log

CustomLog /home/hosting/www/exampleX/logs/access.log combined

</VirtualHost>


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


su hosting

cd /home/hosting/www

echo «example1.com works» > example1/htdocs/index.html

echo «example2.com works» > example2/htdocs/index.html

exit 


Осталось активировать созданные виртуальные узлы и перезапустить веб-сервер. Чтобы активировать узлы, нужно создать ссылку на конфиг из каталога sites-available в каталоге sites-enabled: 


# cd /etc/apache2/sites-available

# ln -s example1.conf /etc/apache2/sites-enabled/example1.conf

# ln -s example2.conf /etc/apache2/sites-enabled/example2.conf


Осталось перезапустить Apache: 


# systemctl restart apache2.service 


Подключимся к первому узлу: 


# w3m www.example1.com 


Если вы все сделали правильно, вы должны увидеть индексный файл для первого сайта. Аналогично все должно работать и для второго. 



Первый открылся 🙂


На этом все. Настройка Apache и виртуальных узлов завершена.

Популярные услуги

Установка и отладка веб-сервера для сайта в UBUNTU


  1.   1
    2
    3
    4
    5
    6
    7
    8
      
      
         ServerAdmin [адрес электронной почты защищен]
         ServerName example.com
         ServerAlias ​​www.example.com
         DocumentRoot /var/www/example.com/public_html/
         ErrorLog /var/www/example.com/logs/error.log
         CustomLog /var/www/example.com/logs/access.log в сочетании
      

      1
    2
      
      Опции ExecCGI
    AddHandler cgi-script .pl  
  2.   1
    2
    3
    4
    5
    6
    7
    8
    9
      
      
    
        
             Привет, мир 
        
        
            

    Привет, мир! Это мой образец веб-сайта с Apache на Debian!

  1. Профиль Заголовок Порты
    Apache Веб-сервер 80 / tcp
    Apache Full 926
    Apache Secure Веб-сервер (HTTPS) 443 / tcp

ServerAdmin [email protected]

DocumentRoot /var/www/example.com

ServerName example.com

ServerAlias ​​www.example.com

#Allowoverride all ### При необходимости раскомментируйте

ErrorLog $ {APACHE_LOG_DIR} / example.com_error.log

CustomLog $ {APACHE_LOG_DIR} /example.com_access.log в сочетании

1

2

3

4

5

6

7

8

9

10

11

000

11

000

15

16

17

18

ServerAdmin admin @ пример.com

DocumentRoot /var/www/example.com

ServerName example.com

ServerAlias ​​www.example.com

#Allowoverride all ### Раскомментируйте, если необходимо

SSLEngine на

SSLCertificateFile /etc/pki/tls/certs/example.com.crt

SSLCertificateKeyFile /etc/pki/tls/certs/example.com.key

{APACHE_LOG_DIR} / пример.com_ssl-error.log

CustomLog $ {APACHE_LOG_DIR} /example.com_ssl-access.log в сочетании

SSLProtocol -all + TLSv1.2

SSLCipherSuite HIGH:! ANULL:! MD5