137.94K
Category: programmingprogramming

10лб

1.

КОНФИГУРАЦИОННЫЕ НАСТРОЙКИ APACHE СЕРВЕРА
В
ФАЙЛЕ HTTPD.CONF И МАТЕРИАЛЫ ПО
ОБЕСПЕЧЕНИЮ ЕГО БЕЗОПАСНОСТИ
Иб-341
Борисков Д.А.

2.

НАИБОЛЕЕ СЕРЬЁЗНЫЕ УГРОЗЫ
БЕЗОПАСНОСТИ ВЕБ-ПРИЛОЖЕНИЮ
•SQL-инъекции: Вредоносные запросы к базе данных через форму ввода. Приводят к утечке данных или их
уничтожению.
•XSS (межсайтовый скриптинг): Внедрение вредоносных скриптов на веб-страницу. Может использоваться для
кражи куки или перенаправления на фишинговые сайты.
•CSRF (межсайтовая подделка запросов): Пользователь, авторизованный на сайте, непреднамеренно выполняет
действия по запросу злоумышленника.
•Ошибки аутентификации и управления сессиями: Недостаточная защита сеансов пользователя может привести к
перехвату сессии и хищению данных.
•Недостатки конфигурации безопасности: Неправильная настройка серверов и приложений, таких как
оставленные по умолчанию учетные записи или директории, доступные через веб.
•Использование уязвимых или устаревших компонентов: Устаревшее программное обеспечение может содержать
известные уязвимости, которые злоумышленники могут использовать.

3.

Х А РА К Т Е Р И С Т И К И П О Л Ь З О В АТ Е Л Я " R O O T ". Т Р Е Б О В А Н И Я К
ПАРОЛЮ
Пользователь "root" — это суперпользователь с неограниченным доступом к
системе. Требования к паролю для root должны быть строгими:
•Длина не менее 12–16 символов.
•Содержать заглавные и строчные буквы, цифры и специальные
символы.
•Избегать использования словарных слов или предсказуемых
комбинаций.
•Пароль должен быть уникальным и не повторяться на других
сервисах.
•Желательно использовать менеджеры паролей для создания и
хранения сложных паролей.
•Рекомендуется регулярная смена пароля и многофакторная
аутентификация (если доступно).

4.

П Р О С ТО Й КО Н Т Р ОЛ Ь ДО С Т У П А С П О М О Щ Ь Ю H T M L ФОРМЫ И PHP
Контроль доступа можно реализовать с использованием формы для ввода логина
и пароля и проверки этих данных на сервере. Пример кода:
HTML форма
PHP сценарий

5.

ФАЙЛ ДЛЯ АУТЕНТИФИКАЦИИ
ПОЛЬЗОВАТЕЛЯ И ЕГО НЕДОСТАТОК
Один из простых способов аутентификации —
использование текстового файла для хранения логинов и
паролей. Пример такого файла:
admin:12345
user:password
Недостатки:
•Небезопасное хранение данных: пароли хранятся в открытом виде,
что делает их уязвимыми для утечки.
•Отсутствие масштабируемости: по мере роста числа пользователей
увеличивается сложность управления доступом.
•Легкость атак: файл может быть легко скомпрометирован при
недостаточной защите файловой системы.

6.

ИСПОЛЬЗОВАНИЕ БАЗЫ ДАННЫХ ДЛЯ
АУТЕНТИФИКАЦИИ
Для аутентификации с использованием базы данных
(например, MySQL) необходимо:
•Хранить данные пользователей (логины и хешированные
пароли) в таблице.
•При попытке входа пользователя, его логин и пароль
сверяются с данными в базе. Пример SQL-запроса:
Преимущества:
•Централизованное и более безопасное
хранение данных.
•Возможность
использования
шифрования и регулярных обновлений
паролей.

7.

ШИФРОВАНИЕ ПАРОЛЕЙ В PHP
Шифрование паролей в PHP можно реализовать с помощью встроенной функции password_hash(),
которая использует алгоритм BCrypt, Argon2 или другой современный алгоритм хеширования.
Пример:
Хеширование — это односторонний процесс, что значит, что невозможно восстановить пароль из
хеша. Это делает такой метод безопасным.

8.

БАЗОВАЯ АУТЕНТИФИКАЦИЯ ПРОТОКОЛА
HTTP И ЕЁ ИСПОЛЬЗОВАНИЕ В PHP
Базовая HTTP-аутентификация передает логин и пароль через заголовки
запроса. В PHP можно использовать глобальные массивы для обработки
этой аутентификации:

9.

ФАЙЛ КОНФИГУРАЦИИ APACHE:
HTTPD.CONF
Файл httpd.conf — основной файл конфигурации веб-сервера Apache, в котором определяются все
настройки сервера, такие как расположение файлов, параметры производительности и
безопасности.
•Listen: Указывает порт, на котором Apache должен ожидать подключения. По умолчанию используется порт 80 для HTTP и 443 для
HTTPS.
Listen 80
Listen 443
•DocumentRoot: Определяет директорию, из которой сервер обслуживает файлы. Безопасность директории, определенной в этом
параметре, критически важна.
DocumentRoot "/var/www/html"
•Directory: Определяет параметры доступа к определённым директориям. Важными аспектами являются настройки индексации
файлов и прав на выполнение скриптов.
<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>

10.

•ErrorLog: Определяет файл для записи ошибок сервера. Настройка ведения логов важна для диагностики
проблем безопасности.
ErrorLog "/var/log/httpd/error_log"
•ServerAdmin: Указывает адрес электронной почты администратора сервера, который будет использоваться для
уведомления о проблемах.
ServerAdmin [email protected]
•ServerTokens: Позволяет скрыть детальную информацию о версии сервера, чтобы усложнить атаки на
конкретные уязвимости.
ServerTokens Prod
•ServerSignature: Управляет отображением серверной информации в сообщениях об ошибках. Отключение
может снизить риски информационных атак.
ServerSignature Off

11.

ОСНОВНЫЕ НАСТРОЙКИ
БЕЗОПАСНОСТИ APACHE
Чтобы обеспечить безопасность веб-сервера Apache, необходимо внести
ряд изменений в конфигурацию, а также учитывать некоторые
рекомендации.

12.

ОБНОВЛЕНИЕ APACHE
Регулярное обновление Apache — важный аспект безопасности. Следует
следить за релизами новых версий, так как они часто включают
исправления уязвимостей.

13.

ОГРАНИЧЕНИЕ ДОСТУПА К ФАЙЛАМ И
ДИРЕКТОРИЯМ
Для повышения безопасности необходимо
конфигурационным и служебным файлам:
ограничить
доступ
к
<Directory />
AllowOverride None
Require all denied
</Directory>
<Directory "/var/www/html">
Options -Indexes +FollowSymLinks
AllowOverride None
Require all granted
</Directory>
Опция Options -Indexes запрещает автоматическое отображение списка
файлов, что может предотвратить доступ злоумышленников к
конфиденциальной информации.

14.

КОНФИГУРАЦИЯ SSL/TLS
Для защиты передаваемых данных рекомендуется настроить SSL/TLS.
Использование HTTPS предотвращает перехват данных:
<VirtualHost *:443>
SSLEngine on
SSLCertificateFile "/path/to/certificate.crt"
SSLCertificateKeyFile "/path/to/private.key"
SSLCertificateChainFile "/path/to/chain.crt"
</VirtualHost>
Важно обеспечить использование современных и безопасных протоколов,
таких как TLS 1.2 или выше, и отключить устаревшие:
SSLProtocol all -SSLv2 -SSLv3

15.

ЗАЩИТА ОТ АТАК ЧЕРЕЗ ЗАГОЛОВКИ
Использование HTTP-заголовков для защиты от распространенных атак
(XSS, MIME-sniffing и т.д.):
Header set X-Content-Type-Options "nosniff"
Header set X-XSS-Protection "1; mode=block"
Header set Strict-Transport-Security "maxage=31536000; includeSubDomains"

16.

ОГРАНИЧЕНИЕ РАЗМЕРА ЗАПРОСОВ И
ФАЙЛОВ
Для защиты от атак, связанных с переполнением буфера и загруженными
файлами, рекомендуется ограничить размеры запросов:
LimitRequestBody 10485760 # 10 MB

17.

НАСТРОЙКА ВИРТУАЛЬНЫХ ХОСТОВ
Для каждого сайта рекомендуется настроить отдельные виртуальные
хосты с индивидуальными конфигурациями:
<VirtualHost *:80>
ServerName www.example.com
DocumentRoot "/var/www/example"
ErrorLog "/var/log/httpd/example_error_log"
CustomLog "/var/log/httpd/example_access_log"
common
</VirtualHost>

18.

ИСПОЛЬЗОВАНИЕ МОДУЛЕЙ
БЕЗОПАСНОСТИ
•mod_security: Фильтрация HTTP-запросов и предотвращение атак с
использованием веб-приложений (WAF — веб-аппликационный фаервол).
•mod_evasive: Защита от атак типа "отказ в обслуживании" (DDoS).

19.

ОГРАНИЧЕНИЕ ПРАВ ПОЛЬЗОВАТЕЛЕЙ
И ПРОЦЕССОВ
Необходимо запускать
пользователя:
Apache
от
имени
непривилегированного
User apache
Group apache
Эта настройка ограничивает права процессов Apache на изменение
системных файлов.2.9.

20.

ДЕАКТИВАЦИЯ НЕНУЖНЫХ МОДУЛЕЙ
Отключение неиспользуемых модулей может улучшить безопасность.
Например:
LoadModule status_module modules/mod_status.so
<Location /server-status>
SetHandler server-status
Require ip 192.168.1.0/24
</Location>
Модуль mod_status позволяет следить за состоянием сервера, но его
следует ограничить для внутреннего использования.

21.

ВЫВОДЫ
Безопасность Apache сервера зависит от многих факторов, таких как
правильная настройка конфигурационного файла, использование
актуальных версий программного обеспечения, настройка SSL/TLS и HTTPзаголовков для защиты от атак. Важно проводить регулярные аудиты
конфигураций, следить за обновлениями и применять современные
методы шифрования и защиты данных.
English     Русский Rules