Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Регистрируясь, я даю согласие на обработку данных и условия почтовых рассылок.
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр Перемещайте деревянные блоки и направляйте их в ворота, соответствующие их цвету! Это спокойная и расслабляющая головоломка без таймеров и ограничений — играйте в комфортном темпе.

Деревянные цветные блоки

Головоломки, Казуальные, Логическая

Играть

Топ прошлой недели

  • solenakrivetka solenakrivetka 7 постов
  • Animalrescueed Animalrescueed 53 поста
  • ia.panorama ia.panorama 12 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая «Подписаться», я даю согласие на обработку данных и условия почтовых рассылок.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Промокоды Яндекс Еда Постила Футбол сегодня
0 просмотренных постов скрыто
3
tahomogames
tahomogames
Лига Разработчиков Видеоигр
Серия Разработка GlideBTL

“Аллея” VS “Болото”⁠⁠

1 месяц назад

“Аллея” и “Болото”. Две карты. Один режим. Но в чём особенности каждой?

“Аллея” VS “Болото”

На “Аллее” существуют 7 зон, на которых могут появиться флаги. Каждая зона отмечена интерактивной подсветкой. Воровать флаги у других команд сложно - с одной стороны палит пушка, с другой - мешает инверсия управления, а запасной вход вообще взрывается. Сама карта ограничивает полёт узкой застройкой, но позволяет как открытое противостояние, так и более скрытое перемещение через улочки и дворы.

Перейти к видео

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

Перейти к видео


Итак, как тебе кажется, какая область получилась интереснее? Тебе по душе больше городские улочки или свободные разрушенные временем и природой места?
Подписывайся, чтобы не пропустить обновления и в числе первых увидеть, как преображается Glide BTL :)

Наш Steam

Свежие новости в Telegram

Показать полностью 2
[моё] Инди игра Gamedev Инди Разработка Онлайн-игры Unreal Engine 5 Короткие видео Дрон Карты Сравнение Steam Компьютерные сети Процесс разработки Видео Длиннопост
0
20
0sennijLis
0sennijLis
Лига Сисадминов

Продвинутая защита Nginx⁠⁠

7 месяцев назад

Nginx — пока еще один из самых популярных веб-серверов, и ключевой компонент современной корпоративной архитектуры. В этой статье мы рассмотрим базовые параметры конфигурации (доступные "из коробки"), которые упрощают мониторинг, улучшают производительность и усиливают безопасность — в конечном итоге повышая устойчивость вашей инфраструктуры.

Логирование в формате JSON

JSON — лучший выбор формата для логов Nginx по двум основным причинам. Во-первых, он гораздо более читаем для человека. Во-вторых, передача логов в такие системы, как OpenSearch, для последующего мониторинга или в рамках SIEM-решений становится сильно проще.

Вот простой пример из nginx.conf:

log_format json-logger escape=json '{

"type": "access-log",

"time": "$time_iso8601",

"remote-ip": "$remote_addr",

"x-forward-for": "$proxy_add_x_forwarded_for",

"request-id": "$request_id",

"request-length": "$request_length",

"response-bytes": "$bytes_sent",

"response-body-size": "$body_bytes_sent",

"status": "$status",

"vhost": "$host",

"protocol": "$server_protocol",

"path": "$uri",

"query": "$args",

"duration": "$request_time",

"backend-duration": "$upstream_response_time",

"backend-status": "$upstream_status",

"method": "$request_method",

"referer": "$http_referer",

"user-agent": "$http_user_agent",

"active-connections": "$connections_active"

}';

access_log /var/log/nginx/access.log json-logger;

Это приведёт к следующему выводу в файле access.log:

{

"type": "access-log",

"time": "2025-02-25T16:02:54+00:00",

"remote-ip": "130.61.78.239",

"x-forward-for": "130.61.78.239",

"request-id": "38750f2a1a51b196fa0a76025b0d1be9",

"request-length": "258",

"response-bytes": "353",

"response-body-size": "167",

"status": "404",

"vhost": "3.69.78.187",

"protocol": "HTTP/1.1",

"path": "/lib/phpunit/Util/PHP/eval-stdin.php",

"query": "",

"duration": "0.016",

"backend-duration": "0.016",

"backend-status": "404",

"method": "GET",

"referer": "",

"user-agent": "Custom-AsyncHttpClient",

"active-connections": "1"

}

Параметризация запросов

Большие размеры тела запроса, длительные тайм-ауты и чрезмерно увеличенные настройки KeepAlive могут негативно повлиять на производительность. Чтобы повысить эффективность, лучше устанавливать эти параметры на минимально возможные значения — при этом, само собой, соблюдая требования вашего приложения.

Пример из nginx.conf:

client_max_body_size 10M;

client_body_timeout 10s;

client_header_timeout 10s;

keepalive_timeout 5s 5s;

Описание параметров:

  • client_max_body_size

Определяет максимальный размер тела HTTP-запроса, который клиент может отправить. Если лимит превышен, Nginx возвращает ошибку 413 Request Entity Too Large.

  • client_body_timeout

Задает максимальное время ожидания полного тела запроса. Если за это время тело не получено, соединение будет закрыто.

  • client_header_timeout

Устанавливает максимальное время ожидания полного заголовка HTTP-запроса от клиента. Если лимит превышен — соединение также закрывается.

  • keepalive_timeout

Определяет, как долго будет оставаться открытым соединение Keep-Alive после последнего запроса.

Первый параметр (например, 5s) задаёт тайм-аут на стороне сервера. Второй (опциональный) параметр передаётся клиенту как предложение о том, как долго он может держать соединение открытым.

Ограничение количества запросов

На случай если клиент пытается перегрузить веб-сервер частыми запросами, Nginx предоставляет возможность настроить "зоны ограничения запросов" (limit request zones) — для контроля трафика по различным параметрам.

Пример настройки (реверс-прокси с зоной ограничения запросов):

limit_req_zone $binary_remote_addr zone=limitreqsbyaddr:20m rate=15r/s;

limit_req_status 429;

upstream app.localhost {

server localhost:8080;

}

server {

listen 443 ssl;

server_name app.devlab.intern;

location / {

limit_req zone=limitreqsbyaddr burst=10;

proxy_pass http://app.localhost;

}

}

Пояснение параметров:

  • $binary_remote_addr

Используется для настройки зоны ограничения по IP-адресу клиента. Адрес сохраняется в бинарной форме (это снижает потребление памяти).

  • zone=limitreqsbyaddr:20m

Создаёт общую (shared) область памяти объёмом 20 МБ с именем limitreqsbyaddr. В этой зоне хранятся данные о лимитах для разных IP-адресов.

  • rate=15r/s

Ограничивает количество запросов до 15 запросов в секунду на IP. Превышение лимита приводит к отклонению избыточных запросов.

  • limit_req_status 429;

При превышении лимита Nginx возвращает статус 429 Too Many Requests, что означает: "Слишком много запросов за короткое время".

Эта конфигурация помогает защитить сервисы от перегрузки и злоупотреблений.

Ограничение только на необходимые HTTP-методы

На мой взгляд, ограничение допустимых HTTP-методов только теми, которые действительно необходимы или поддерживаются приложением (например, REST API), — это чистый и логичный способ синхронизации настроек веб-сервера с логикой приложения. Это помогает не только предотвратить неправильное использование API или вызов нежелательных методов, но и блокирует потенциально опасные запросы вроде TRACE. Кроме того, это снижает ненужную нагрузку на сервер, устраняя неподдерживаемые или неуместные запросы.

Пример: разрешён только метод GET (HEAD разрешается по умолчанию):

# HEAD is implicit

limit_except GET {

deny all;

}

Пример: разрешить все методы, кроме TRACE и PATCH:

if ($request_method ~ ^(PATCH|TRACE)$) {

return 405;

}

Простая защита от ботов

Если на сервер поступают запросы от ботов или плохо сконфигурированных сканеров (часто с «говорящими» user-agent'ами), можно внести путаницу и затруднить их работу, возвращая нестандартный статус HTTP от самого Nginx.

Для этого создаём файл bot.protection.conf в директории /etc/nginx/snippets со следующим содержимым:

map $http_user_agent $blacklist_user_agents {

~*wpscan 1;

~*dirbuster 1;

~*gobuster 1;

}

Вы можете дополнять список по мере необходимости.

Внутри конфигурации виртуального хоста (VHost) подключите файл следующим образом:

include /etc/nginx/snippets/bot.protection.conf;

if ($blacklist_user_agents) {

return 444;

}

HTTP 444 также можно «весело» использовать для предотвращения угадывания служебных файлов, таких как .env:

# <your-domain>/.bash_history for example ends with HTTP 444.

location ~ /\. {

return 444;

}

Что означает HTTP 444?

HTTP 444 — это нестандартизированный статус-код, используемый в NGINX, который заставляет сервер мгновенно закрыть соединение без отправки заголовков ответа клиенту. Чаще всего используется для отклонения вредоносных или некорректно оформленных запросов. Интересный побочный эффект: некоторые сканеры не умеют корректно обрабатывать такие ответы, что добавляет дополнительный уровень защиты.

Включение TCP Fast Open

TCP Fast Open — это важное улучшение в Nginx, которое позволяет более эффективно устанавливать TCP-соединения. Эта функция даёт возможность начать передачу данных уже во время начального рукопожатия, что заметно ускоряет процесс установления соединения. Особенно полезна она в условиях высокой сетевой задержки, так как помогает сократить латентность и повысить производительность.

Проверка поддержки TCP Fast Open в ядре Linux

Выполните следующую команду:

cat /proc/sys/net/ipv4/tcp_fastopen

Если в ответе вернётся 1, функция уже включена. Если нет — включите её командой:

echo 1 > /proc/sys/net/ipv4/tcp_fastopen

Использование в конфигурации Nginx

Добавьте параметр fastopen в директивы listen:

listen [::]:443 ssl http2 fastopen=500;

listen 443 ssl http2 fastopen=500;

Число 500 — это количество подключений, которые могут использовать TCP Fast Open одновременно (значение можно адаптировать под вашу нагрузку).

Сжатие с помощью GZip

GZip — это метод сжатия данных, позволяющий уменьшить размер файлов. При этом исходные данные можно полностью восстановить путём распаковки («разархивирования») сжатого файла.

Для веб-приложений и сайтов GZip особенно важен, поскольку HTTP-протокол поддерживает передачу данных в сжатом виде до того, как они попадут в сеть.

Почему GZip важен:

  • Снижение трафика: при включённом GZip размер передаваемых файлов уменьшается, что приводит к меньшему потреблению пропускной способности.

  • Экономия на хостинге: меньше трафика — ниже затраты на обслуживание.

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

Пример конфигурации:

gzip on;

gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

Эта настройка включает GZip и указывает типы содержимого, которые следует сжимать (текст, CSS, JavaScript, XML, JSON и др.).

Показать полностью
IT Linux Гайд Системное администрирование Nginx Компьютерные сети Текст Длиннопост
9
4958
Haproxy
Haproxy
Лига слаботочников

И снова работка ))⁠⁠

10 месяцев назад

На проект зашёл в самом конце протяжек.
Ну и собственно вот в таком состоянии получил сие чудо.

Далее пошли расчёски по 24 кабеля. И заводка косичек в комнату.

Ну и непосредственно укладка кабеля на кабель-канале)

Завезли шкафы. Установка и запуск в них косичек.

Ну и установка коннекторов и панелей и финальный вариант Непосредственно шкафов. Осталось наклеить нумерацию, завершить установку коннекторов на местах и проверки. (Ну и чуть прибраться, так как в этой комнате работали не только мы, а ещё очень много народа ).

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

Показать полностью 13
[моё] Монтаж СКС Трудовые будни Работа Компьютерные сети Локальная сеть Длиннопост Технопрон
710
14
TechSavvyZone
TechSavvyZone

Cтроительство дата-центра за несколько секунд⁠⁠

11 месяцев назад

Строительство:

Перейти к видео

Сервера перед установкой:

Перейти к видео

Монтаж в стойки:

Перейти к видео

Рабочие коридоры:

Перейти к видео
Показать полностью 3
Цод Вертикальное видео Компьютерное железо IT Технологии Серверная Сервер Серверный шкаф Дата-центр Компьютерные сети Видео Длиннопост
1
2
user7495548

Как вам название заведения?⁠⁠

11 месяцев назад
Как вам название заведения?

Сфоткал такое заведение в одном городе в северо-западном федеральном округе. Прикольное название же?

Наверное какой-то айтишник с зарплатой в 500.000р в месяц откладывал денег с каждой получки, и открыл его..

Показать полностью 1
[моё] Название Вывеска Креатив Креативная реклама Точка доступа Маршрутизация Сетевые инженеры Сисадмин Компьютерные сети Девушки Наружная реклама Длиннопост
6
23
TechSavvyZone
TechSavvyZone

Мечта перфекциониста продолжение⁠⁠

1 год назад

ОЖИДАНИЕ

Суровая Реальность

Показать полностью 10
IT Серверная Серверный шкаф IT юмор Ад перфекциониста Перфекционизм Компьютерное железо Локальная сеть Компьютерные сети Длиннопост
2
37
mik121
Лига Сисадминов

Wireguard, Keenetic и объединение сетей⁠⁠

1 год назад

Сделал вчера наверно пятую за последние три года попытку донастроить свою сеть. Маленькая сеточка из 4 подсетей, топология звезда, построена на Keenetic и wireguard. За выбор оборудования не ругать - сеть домашняя) А вообще - кинетики вполне рулят: настройка простая, работают быстро, с надежностью проблем тоже еще не было. А c появлением wireguard так вообще стало всё замечательно - можно за минуту, например, настроить выход в инет любого устройства из любой подсети через любой роутер. Полезная фича в наш век блокировок.

Вернее - почти любого через почти любой) Об этом и пойдет речь

Итак, условия задачи: есть сеть С (от слова Central, 10.220.60.0/24), в ней находится роутер Keenetic Giant - центральный узел нашей большой сети. Белый ip, резервный канал, все дела. Есть сети L и R (Left 10.220.14.0/24 и Right 10.220.19.0/24). Тоже кинетики, но попроще, и тоннели wireguard до сети C. Всё работает отлично, с любого устройства в сетях L и R можно зайти на любое устройство в сети C, а с любого устройства сети C - вообще на любое устройство всей нашей сети. Но вот из сети L в R, и наоборот - нельзя.

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

Чисто теоретически работать это всё должно без особых проблем

Из статьи "Настройка правил межсетевого экрана из командного интерфейса" с сайта кинетика

Из статьи "Настройка правил межсетевого экрана из командного интерфейса" с сайта кинетика

Нужно только сделать наши сети L и R приватными, на роутере C командой

interface <имя интерфейса> security-level private

Имена интерфейсов, а также их свойства смотрим командой show interface. Да, чтобы добраться до CLI - просто в адресной строке браузера допишите /a к ip адресу роутера.

Затем, руководствуясь этим "доступ закрыт, но может быть разрешен", делаем

no isolate-private

Казалось бы всё, должно работать! Но нееет))) Роем дальше, командой show ip nat в таблице маршрутизации видим, что кинетик C делает с пакета на входящем интерфейсе с сетей L и R SNAT, т.е. подменяет исходный адрес адресом интерфейса wireguard

Роемся в документации, делаем на роутере C

no ip nat <имя интерфейса>

Казалось бы теперь точно всё! Но снова нет. show ip nat говорит нам, что nat на интерфейсах сетей L и R по-прежнему включен! Соответственно, передачи пакетов между сетями L и R нет

Копаем дальше, находим пару интересных обсуждений про работу ip nat и ip static, в которых уже лет как 10 поднимается этот вопрос к инженерам кинетика... Суть следующая: если на роутер приходит пакет, адрес назначения находится вне известных кинетику приватных сетей, то он делает SNAT независимо от того, установлен или ip nat для исходного интерфейса или нет. И удалить эту конфигурационную запись вроде нельзя. Или можно? Точного ответа пока не нашел(

В общем - несмотря на то, что подсеть L и подсеть R прописаны в таблице статической маршрутизации роутера C, прописаны в настройках wireguard - для целей nat роутер считает эти сети неизвестными публичными (ну правильно, адрес интерфейса wireguard 10.220.100.1, а сеть за ним - 10.220.19.0/24) В итоге ip форвардинг не пашет.

Внимание, вопрос: кто-то сумел настроить сеть в такой конфигурации на кинетиках? Смену оборудования просьба не предлагать)

Разберусь сам - естественно напишу решение. Но как всегда хочется немного упростить задачу)))

Решение: всего час, и от пользователя stranneek получен совет, решивший проблему: на роутерах L и R нужно прописать в маршруты не только удаленные сети, но и подсети туннелей wireguard, ведущие к удаленным подсетям. Т.е. Не только 10.220.14.0/24, но и 10.220.100.0/24, в которой находятся два интерфейса wireguard 10.220.100.1 (на роутере C) и 10.220.100.2 (на роутере удаленной подсети). Спасибо огромное! Думаю, эта инфа кому-нибудь да сэкономит несколько часов)

З.Ы. Проверил - эти подсети должны быть и в настройках тоннеля wireguard, и в маршрутах. Всё со стороны удаленных сетей, в центре ничего прописывать не нужно

З.З.Ы. Да, все эти security-level и no isolate-private тоже не нужны. Достаточно в межсетевом экране на всех роутерах открыть нужные протоколы/порты на всех wireguard интерфейсах)

З.З.З.Ы. Еще полчаса экспериментов показали, что связь начинает работать, когда на роутере в подсети-получателе (т.е. не в той, из которой пингуем, а в той, которую пингуем) прописан маршрут до подсети wireguard отправителя. Ну и тогда вся логика сразу встала на свои места. nat никуда не делся, ip адрес отправителя путем SNAT поменялся на ip интерфейса wireguard, ну а роутер сети-получателя вообще не в курсе, что это за сеть и куда посылать к ней пакеты. И пока не пропишешь эту подсеть в настройках тоннеля и в маршрутизации - ничего не работает. Проверил show ip nat - и НЕТ! Нету этого коннекта в таблице nat на центральном роутере. В общем - полон загадок этот кинетик, но способ сделать полноценную распределенную сетку всё-таки есть)

Показать полностью 2
Wireguard VPN Компьютерные сети Длиннопост
19
3069
Haproxy
Haproxy
Лига слаботочников

Работка )⁠⁠

1 год назад

Всем привет. Как часто бывает получил проект после кого-то. Фоток с самого начала не сохранилось. За стенкой этой комнаты было очень много кабеля. И начали мы их заводить по 48 штук в одно отверстие. Которые потом будут заделываться герметично (но не нами).(потом покажу)

Далее разметил места под шкафы. Их будет 5 штук. Первый - все бэкбоны и все главное оборудование, второй - обычные точки, 3 - камеры и вайфай, 4 - мультимедиа, 5 - телефония.
Начинаем собирать по типу и разводить по местам шкафов.

Далее у нас расчёски а их там 28 штук на все шкафы.

Пошли в ход шкафы...

Формируем панели

Ну и ставим коннекторы и панели.

Ну и заканчиваем...

Финал

Ну и немного проверок...

Ну в итоге как-то так и вышло. Комната почти закончена. Спасибо за просмотр )) Всем пивка ))

Показать полностью 20
[моё] Локальная сеть Трудовые будни Компьютерные сети Монтаж СКС Работа Длиннопост
367
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Промокоды Яндекс Еда Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии