nginx-hardening

nginx-hardening (Роль Ansible)

Внимание: Эта роль была перенесена в нашу коллекцию жесткой настройки:

Требования

  • Ansible >= 2.5

Переменные роли

  • nginx_client_body_buffer_size
    • Значение по умолчанию: 1k
    • Описание: Устанавливает размер буфера для чтения тела запроса клиента. Если тело запроса больше буфера, оно полностью или частично записывается во временный файл.
  • nginx_remove_default_site
    • Значение по умолчанию: true
    • Описание: Отключает стандартный сайт. Установите в false, чтобы включить стандартный сайт в nginx.
  • nginx_client_max_body_size
    • Значение по умолчанию: 1k
    • Описание: Устанавливает максимальный разрешенный размер тела запроса клиента, указанный в заголовке “Content-Length”. Если размер в запросе превышает указанное значение, клиенту возвращается ошибка 413 (Запрос слишком большой).
  • nginx_keepalive_timeout
    • Значение по умолчанию: 5 5
    • Описание: Первый параметр устанавливает таймаут, в течение которого соединение keep-alive останется открытым на серверной стороне. Нулевое значение отключает соединения keep-alive. Второй необязательный параметр устанавливает значение в заголовке ответа “Keep-Alive: timeout=time”.
  • nginx_server_tokens
    • Значение по умолчанию: off
    • Описание: Отключает отображение версии nginx в сообщениях об ошибках и в заголовке ответа "Server". Установите в on, чтобы включить версию nginx в сообщениях об ошибках и заголовке "Server".
  • nginx_client_header_buffer_size
    • Значение по умолчанию: 1k
    • Описание: Устанавливает размер буфера для чтения заголовка запроса клиента. Для большинства запросов буфера размером 1K байт достаточно.
  • nginx_large_client_header_buffers
    • Значение по умолчанию: 2 1k
    • Описание: Устанавливает максимальное количество и размер буферов, используемых для чтения больших заголовков запроса клиента.
  • nginx_client_body_timeout
    • Значение по умолчанию: 10
    • Описание: Устанавливает таймаут для чтения тела запроса клиента.
  • nginx_client_header_timeout
    • Значение по умолчанию: 10
    • Описание: Устанавливает таймаут для чтения заголовка запроса клиента.
  • nginx_send_timeout
    • Значение по умолчанию: 10
    • Описание: Устанавливает таймаут для передачи ответа клиенту.
  • nginx_limit_conn_zone
    • Значение по умолчанию: $binary_remote_addr zone=default:10m
    • Описание: Устанавливает параметры для зоны общей памяти, которая будет хранить состояния для различных ключей.
  • nginx_limit_conn
    • Значение по умолчанию: default 5
    • Описание: Устанавливает зону общей памяти и максимальное количество подключений для данного значения ключа.
  • nginx_add_header
    • Значение по умолчанию: [ "X-Frame-Options SAMEORIGIN", "X-Content-Type-Options nosniff", "X-XSS-Protection \"1; mode=block\"" ]
    • Описание: Добавляет указанный заголовок к ответу, если код ответа равен 200, 201, 204, 206, 301, 302, 303, 304 или 307.
  • nginx_ssl_protocols
    • Значение по умолчанию: TLSv1.2
    • Описание: Указывает SSL-протокол, который следует использовать.
  • nginx_ssl_ciphers
    • Значение по умолчанию: см. defaults.yml
    • Описание: Указывает шифры TLS, которые следует использовать.
  • nginx_ssl_prefer_server_ciphers
    • Значение по умолчанию: on
    • Описание: Указывает, что шифры сервера должны иметь приоритет перед шифрами клиента при использовании протоколов TLS. Установите в false, чтобы отключить это.
  • nginx_dh_size
    • Значение по умолчанию: 2048
    • Описание: Указывает длину параметров DH для шифров EDH.

Установка

Установите роль с помощью ansible-galaxy:

ansible-galaxy install dev-sec.nginx-hardening

Пример Playbook

- hosts: localhost
  roles:
    - dev-sec.nginx-hardening

Локальное тестирование

Предпочтительный способ локального тестирования роли – использовать Docker. Вам нужно будет установить Docker на вашу систему. Смотрите Начало работы для получения информации о пакете Docker, подходящем для вашей системы.

Вы также можете использовать Vagrant и Virtualbox или VMWare для запуска тестов локально. Вам нужно будет установить Virtualbox и Vagrant на вашу систему. Смотрите Загрузки Vagrant для пакета Vagrant, подходящего для вашей системы. Для всех наших тестов мы используем test-kitchen. Если вы не знакомы с test-kitchen, пожалуйста, ознакомьтесь с их руководством.

Затем установите test-kitchen:

# Установка зависимостей
gem install bundler
bundle install

Тестирование с Docker

# быстрый тест на одной машине
bundle exec kitchen test default-ubuntu-1204

# тест на всех машинах
bundle exec kitchen test

# для разработки
bundle exec kitchen create default-ubuntu-1204
bundle exec kitchen converge default-ubuntu-1204

Тестирование с Virtualbox

# быстрый тест на одной машине
KITCHEN_YAML=".kitchen.vagrant.yml" bundle exec kitchen test nginx-ansible-19-ubuntu-1404

# тест на всех машинах
KITCHEN_YAML=".kitchen.vagrant.yml" bundle exec kitchen test

# для разработки
KITCHEN_YAML=".kitchen.vagrant.yml" bundle exec kitchen create nginx-ansible-19-ubuntu-1404
KITCHEN_YAML=".kitchen.vagrant.yml" bundle exec kitchen converge nginx-ansible-19-ubuntu-1404

Для получения дополнительной информации смотрите test-kitchen

Участие

Смотрите руководство для участников.

Лицензия и автор

  • Автор:: Себастьян Гумприх

Лицензировано по лицензии Apache, версия 2.0 (далее "Лицензия"); вы не можете использовать этот файл, кроме как в соответствии с Лицензией. Вы можете получить копию Лицензии по адресу

http://www.apache.org/licenses/LICENSE-2.0

Если иное не предусмотрено применимым законодательством или согласовано в письменной форме, программное обеспечение, распространяемое по Лицензии, предоставляется "КАК ЕСТЬ", БЕЗ ГАРАНТИЙ И УСЛОВИЙ ЛЮБОГО ВИДА, явных или подразумеваемых. Смотрите Лицензию для получения конкретной информации об условиях использования и ограничениях, установленных Лицензией.

О проекте

This Ansible role provides secure nginx configurations. http://dev-sec.io/

Установить
ansible-galaxy install dev-sec/ansible-nginx-hardening
Лицензия
Unknown
Загрузки
32323
Владелец
Security + DevOps: Automatic Server Hardening