En

Настройка сервера Nginx с учетом безопасности, на проекте CRYSTAL v1.0

25.02.2025

Данная инструкция подразумевает, что у вас уже установлен SSL-сертификат.


1. Создание директории — ‘nginxconf’, в которой будут правила безопасности — ‘security.conf’.


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

mkdir /etc/nginx/nginxconf

Затем:

nano /etc/nginx/nginxconf/security.conf

Добавьте в открывшиеся окно, код ниже:

server_tokens off;
	add_header X-XSS-Protection "1; mode=block" always;
	add_header X-Content-Type-Options "nosniff" always;
	add_header Referrer-Policy "no-referrer-when-downgrade" always;
	add_header Permissions-Policy "interest-cohort=()" always;
	add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
	add_header X-Frame-Options "DENY";
	add_header Content-Security-Policy "default-src 'self' 'unsafe-inline' 'unsafe-eval' blob: https://www.google.com/recaptcha/ https://www.gstatic.com/recaptcha/; frame-ancestors 'self' https://www.google.com/ https://www.gstatic.com/; img-src 'self' data: blob:; style-src 'self'; script-src 'self' blob: https://www.google.com/ https://www.gstatic.com/;" always;

После добавления кода, нажмите последовательно — ‘ctrl + x’, ‘y’, ‘Enter’.


2. Подключение — ‘security.conf’, к серверу.


Введите код:

nano /etc/nginx/sites-available/crystal

Добавьте в открывшимся окне, код ниже, после второй строки сверху — ‘server_name ВашДомен www.ВашДомен;’:

# security
		include /etc/nginx/nginxconf/security.conf;
	# /security

Пример:

server {
		server_name crysty.ru www.crysty.ru;
		# security
		include /etc/nginx/nginxconf/security.conf;
		# /security
		location /
		{
			root /var/www/crystal/frontend/dist;
			try_files $uri $uri /index.html;
		}.....

После добавления кода, нажмите последовательно — ‘ctrl + x’, ‘y’, ‘Enter’.


Затем перезагрузите nginx, командой:

systemctl restart nginx

Чтобы обезопасить сайт от ботов, вы можете установить — reCAPTCHA v3, которая будет срабатывать при регистрации нового пользователя, для этого воспользуйтесь следующей инструкцией.

Проект тестируется в

BrowserStack

Поделиться

Копировать

BTC (Network BTC) - 1C2EWWeEXVhg93hJA9KovpkSd3Rn3BkcYm

Ethereum (Network ERC20) - 0x05037ecbd8bcd15631d780c95c3799861182e6b8

Этот сайт использует файлы cookies. Нажимая кнопку 'Принять' или продолжая пользоваться сайтом, вы соглашаетесь на использование файлов cookies.