Pull to refresh
32
0.5
Осипов Давид @David_Osipov

B2B Lead Product Manager

Send message

Пользуюсь и благодарен!! Ещё и панель недавно прикрутили - так вообще шик. Хочется, правда, без лишних заморочек тестировать свои парсеры, но это на будущее. И отправку уведомлений в Телеграм.

Ну Европа и IT. Посмотреть на те же банковские услуги в Германии - СНГ на 10 лет впереди.

Ааа, вот оно что. Любопытно :) Спасибо вам за разъяснение!

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

Я заинтересовался в этом способе и хочу для себя понять, он лучше используемого мной или нет, где слабые места и преимущества, безопасен он или нет.

Из-за чего столько вопросов - схема в статье легко заменяется на связку nginx + VPN + nginx, при условии, что мы откроем порты в контейнерах на серверах (тогда как на схеме nginx + frp + frp + возможно последний nginx в контейнере у вас сидит). Даже вот статья есть о том, что связка nginx+VPN отлично заменяет пресловутый ngrok. Может админская панель FRP помогает быстро всё настраивать - хз, на гитхабе нормально не описано это, или я не могу увидеть никак.

Будет круто, если сможете начертить сложную схему, которая будет возможна с минимальными затратами времени с помощью FRP и трудозатратна для связки nginx + VPN + nginx.

Тоже не совсем понимаю, почему это сложно. На VPS ставите nginx в режиме reverse proxy и на том же сервере ставите wireguard. А потом просто создаёте wireguard приватную сеть со всей плеядой серверов, а nginx reverse proxy на VPS пусть выбирает, куда именно и что проксировать. Ну там запрос к example.com пустит на сервер 10.0.0.1, а к api.example.com пустит на сервер 10.0.0.2.

Конечно же не забываем про плохих людей и защищаем VPS сервер и nginx на нём от атак, ботов и прочей нечести.

А вот как в этом генераторе - мне нравится, как он раскидывает конфиги. NGINXConfig | DigitalOcean

Я просто использую systemd sandboxing - дешево, сердито и эффективно. Ну и AppArmor для надёжности.

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

Тоже надеюсь, но Apple печально известна своей историей взаимодействия с такими ребятами :( Если не ошибаюсь, не первый раз по похожему поводу поднимались волны дерьма в их сторону.

Это пока моя конфигурация для systemd sandboxing nginx (вносим через команду systemctl edit nginx):

[Service]
 ProtectHome=true
 ProtectSystem=full
 SystemCallFilter=@system-service
 LogsDirectory=nginx
 NoNewPrivileges=true
 ProtectKernelTunables=true
 ProtectKernelModules=true
 ProtectKernelLogs=true
 ProtectControlGroups=true
 RestrictSUIDSGID=true
 KeyringMode=private
 ProtectClock=true
 RestrictRealtime=true
 PrivateDevices=true
 PrivateTmp=true
 ProtectHostname=true
 RuntimeDirectory=nginx
 LogsDirectory=nginx
 LockPersonality=true
 ConditionSecurity=apparmor
 DevicePolicy=closed

А это для unbound:
unbound/unbound.service.in

Для ребят, которые хотят максимума, заходите в этот репозиторий и утаскивайте себе понравившиеся решения Whonix/security-misc: Kernel Hardening; Protect Linux User Accounts against Brute Force Attacks; Improve Entropy Collection; Strong Linux User Account Separation; Enhances Misc Security Settings

Не забывайте ещё пошаманить с apparmor:
1. apt install apparmor apparmor-profiles apparmor-profiles-extra apparmor-utils
2. Профиль для nginx apparmor-profiles/usr.bin.nginx

Раз едем, то можно заняться и безопасностью сервера:
1. Берём и запихиваем nginx в контейнер, или используем systemd sandboxing или почти готовое решение bunkerity/bunkerized-nginx: ?️ -- и подключаем modsecurity (или naxsi для желающих хардкора) и crowdsec (последний что-то типа fail2ban на стероидах, который может подрубаться и к iptables - классная вещь). Можно и вот это впихнуть mitchellkrogza/nginx-ultimate-bad-bot-blocker . Если не использовали bunkerized-nginx, то посмотрите в сторону и этого модуля kyprizel/testcookie-nginx-module .

Если используете WAF modsecurity и его собратьев, то минимизируете риск взлома сайта, но будут возможны атаки на сам сервер и его зависимости. Если хотите и этот риск минимизировать, то ставьте IPS перед сервером типа Snort, но тут нужно придумать способ, чтобы IPS смотрел незашифрованный трафик. Хз, может поставить nginx, который расшифровывает трафик пользователей и пускает незашифрованный через IPS на другой NGINX или Apache - тут у меня пока опыта мало :)

2. Генерим конфиг nginx тут NGINXConfig | DigitalOcean и сверяем с новыми рекомендациями Mozilla тут Mozilla SSL Configuration Generator - врубаем OCSP stapling тоже из-за прибавки к скорости. Если на сайте операции с кредитками не будут проводится, то врубайте 0-RTT в TLS 1.3 - ага, штука с уязвимостью, но бустит скорость, и не забываем о HTTP/2. Также компилим динамические модули brotli, pagespeed (этот по желанию), http headers и другие, и подключаем.

Обязательно запиливаем все крутые хедеры типа HSTS со всеми опциями и продолжительностью минимум в год (заносимся в список HSTS Preload List Submission), не забываем про защиту кукисов. Со CSP сложнее, но вы можете использовать Laboratory (Content Security Policy / CSP Toolkit) или CSP Wizard от report-uri.com, ну там ещё SRI запилить. (Удачи с CSP - нервовыносящая штука, но мощная).

3. Конечно же получаем сертификат Let's encrypt, но с OCSP must staple и подписью ECDSA P-256. Для OCSP must staple при генерации добавляем --must-staple, с подписью сами разберётесь. Пока что браузеры кладут на OCSP staple, а тем более на OCSP must staple, но мы верим в светлое будущее. Я настолько верю, что даже указываю в DNS HTTPS RR, ведь Firefox уже их смотрит.

4. Берём тулзу Lynis, аудируем систему и укрепляем её. Устанавливаем OSSEC HIDS и настраиваем на посылку отчётов в Slack (есть плагин), правда, у меня эта сволочь не компилится на последней стабильно Ubuntu. Тут уже заходим в /etc/sysctl.conf и начинаем укрепление - гайдов много, но будьте аккуратны особенно с kernel.modules_disabled = 0. Вместо того, чтобы его прописывать в sysctl.conf, сделайте вот такой скрипт и поставьте на автозапуск через crontab с помощью @reboot path_to_your_script. Таким образом, kernel.modules_disabled врубится после загрузки всех основных модулей в ядро, а потом запретит добавлять новые:

#!/bin/bash

sleep 300

echo 1 > /proc/sys/kernel/modules_disabled

Я уже забыл, что ещё сделал ради удовлетворения своего любопытства.


Основные принципы работы с wordpress:

1. Скачать Google Fonts и раздавать со своего сервера либо CDN - намного отзывчивость повышается. Не пытайтесь даже рассчитать SRI на Google Fonts - там таблица стилей меняется для каждого клиента, поэтому ничего у вас не выйдет.

2. Придумать способ, чтобы сжать ресурсы сайта сразу на сервере и хранить сжатыми. Таким образом, серверу не придётся каждый раз тратить ресурсы на сжатие-пережатие, а это, возможно, очень трудозатратно. Идеально - минимизировать всё (включая очистку и минификацию svg - World's Best SVG Compressor (vecta.io)), сжать и раздавать. Где-то очень давно читал про этот способ, но позабыл его.

3. Использовать Webp (уже все браузеры его поддерживают) и Mozjpeg. Для конкретных размеров png используем панду TinyPNG, а для остального Squoosh

4. Лучше самому прописать все фавиконки сайта, чем полагаться на сам Wordpress, он не учитывает некоторые разновидности. Есть подвох - если у вас будет ico указана, то все браузеры благополучно забьют на модный svg, png и будут только показывать ico.

5. Лучше ручками прописать все preload, prefetch, preconnect в head - очень классные вещи. Preload, prefetch и другие теги

6. Ну и проводим аудит безопасности Wordpress с Security Ninja. Я пока не могу понять, лучше modsecurity или Wordfence WAF, но, думаю, что лучше использовать специализированные для Wordpress для большей защищённости, тогда как modsecurity, возможно, даст большую производительность. Также не забываем защитить БД (куча гайдов), PHP (офигенная вещь - jvoisin/snuffleupagus ) и изменить способ хеширования паролей на Argon2id (например PHP Native password hash). Ну и меняем ссыль на админскую панель, вешаем на неё hCaptcha и двухфакторку.

Больше пока ночью ничего в голову не приходит :) Надеюсь, что хоть кому-то поможет этот длиннотекст.

P.S. я до сих пор не понимаю, зачем админить сервак, на котором ты единственный живой пользователь, не под root. Можно же сделать так:

1. Использовать модифицированный sshd Obfuscated OpenSSH Patches и сделать магическим словом рандомный пароль 100+ символов. Сканеры портов в душе не поймут, что тот странный порт оказывается sshd сервер с обфускацией рукопожатия.
2. Аутентифицироваться только по ключу.
3. Запилить двухфакторку на sshd - How To Set Up Multi-Factor Authentication for SSH

Ну и ставим офигенно длинный пароль на root, который хешируется sha512 с кол-во hashing rounds 100к+.

Какой тогда вектор атаки может применить хакер чтобы через все дебри запихнуться под root?


P.P.S. я просто менеджер, который увлекается ковырянием вот в этом всём - к советам подходите очень критично.

Либо можно поставить кастомную прошивку, там таких сюрпризов не видел.

Вот такая же фигня, что просто закрывают мою заявку!! WTF. Гос. услуги не переваривают мой персональный домен на почте, хотел кинуть репорт о баге, но как вы и сказали "Оператор ответит в ближайшее время..", "Слишком большое кол-во запросов, не можем вам ответить" , "Благодарю за обращение", "Обращение закрыто". Чувствую себя дерьмово после такого

Плюс в карму! Спасибо!

Раз пошла такая пьянка, то вот тоже интересное чтиво. Для окон 11 тоже актуально, проверял:
Configuration Recommendations for Hardening of Windows 10 Using Built-in Functionalities (bund.de)

Пользуюсь Windows 11 уже неделю, выкрученной на почти максимальную безопасность (Device Guard, HVCI, Credentials Guard, Bitlocker, разные твики Powershell, чтобы скрипты левые не запускались и куча всего) - работает хорошо.

Правда выбешивает одна вещь. Вот на десятке берёшь ты файл удержанием мышкой, можешь перетащить его на ярлык проги на панели задач, прога открывается и можешь закинуть файл в прогу. К примеру, файл mp3 берёшь мышкой, перетаскиваешь на ярлык Телеги на панели задач, Телега открывается и ты кидаешь файл другу. Теперь на Windows 11 такую штуку не провернуть(

Блин, жаль потерянного времени :(

Удачи вам! И надеюсь, что нам не придётся ещё раз так мучиться!

Хоть где-нибудь бы предупреждали, что если вы не измените настройки по умолчанию, то может произойти такая байда. Почти все тулзы облачных хранилищ просто создают либо виртуальный диск, либо папку, которая синхронизируется с хранилищем. И тут OneDrive, такой outlier, решает похерить мои же файлы с моими же личными и деловыми документами на моём же компе.

История-то была такая:

Установил и запустил OneDrive, в то же время начал отвечать на деловой звонок - надо было доделать презентацию, над которой я и моя команда работали несколько месяцев, подумавши, что сейчас Onedrive настроится и я кину на него свои доки. И вдруг я начал замечать, что документы и та самая презентация начали пропадать с моего рабочего стола!! Да даже индийцы в своей знаменитой книге бы не описали то, что со мной бы сделал менеджер и клиент. Потом когда в ход пошёл Task Manager, я понял, что, в приступе паники, зря закрыл процесс Onedrive.

Потом, удача была на моей стороне, восстановил всё, что мог. Однако позднее вкурил, что сохранения моих игр (в том числе Nioh 2) пропали!! Перепроходить Nioh 2, souls-like, с самого начала - ну-ну. Оказалось, что Nioh 2 сохраняет сейвы в папке Документы, которые и похерил OneDrive.

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

Да тут не только сисадмины. Я решил его включить, думая, что ну ещё один облачный диск - why not. Так это шайтан-приложение на дефолтных настройках взяло и загрузило все данные с раб. стола, папок Документы, Картинки и прочее, и к фигам на локальном компе все поудаляло с раб. стола и папок, оставив только чёртов ярлык типа "Ваши данные спёр OneDrive, теперь они все на облаке". Сказать, что у меня был сердечный приступ - ничего не сказать.

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

Кстати, в жизни не видел вариантов использования CCM шифров, хотя бы узнал о них из статьи. :)

Information

Rating
1,982-nd
Registered
Activity

Specialization

Product Manager
Senior
From 4,000 $
English
Strategic planning
Monitoring and market analysis
Agile
Development of tech specifications
Planning
Budgeting projects
Scrum
People management
Negotiation