Fail2Ban запущен, jail sshd есть в списке, а попытки входа всё равно появляются в журнале. С разных адресов они могут приходить и при работающей защите, так как Fail2Ban считает ошибки для каждого адреса отдельно. Сам по себе статус службы не значит, что она блокирует подключения. Программа должна получить запись о неудачном входе, распознать её и передать адрес в сетевой экран. Проверять эту цепочку будем на VPS с Ubuntu 24.04. Установку и базовую настройку мы показывали в первой части, а здесь ищем звено, на котором защита перестала работать.
Перед проверкой оставьте открытым рабочий сеанс SSH. Если у провайдера есть консоль в панели, убедитесь, что вы можете через неё войти. Оба пути понадобятся, если правка настроек или тестовый бан закроют доступ.
Журнал SSH
Начните с самого сервера. На Ubuntu журнал службы SSH можно посмотреть так:
Ищите строки об отказах входа, например с Failed password или Invalid user, и адрес, с которого пришло подключение. Если таких строк за выбранное время нет, работу Fail2Ban по журналу пока не проверить: попыток просто не было. Можно повторить проверку после обычной неудачной попытки входа с другого устройства. Не включайте вход по паролю специально ради теста, если он уже отключён.
Запишите адрес клиента из журнала. Он понадобится позже: Fail2Ban считает ошибки и блокирует адрес, который видит SSH. Если вы подключаетесь через промежуточный сервер или общий офисный шлюз, в журнале может оказаться адрес этого узла.
Источник событий Fail2Ban
Теперь проверьте jail sshd и источник событий, который он читает:
sudo fail2ban-client status sshd
В разделе Filter ищите список файлов или Journal matches. Первый вариант означает чтение файлов журнала, второй указывает на systemd journal. Статус без ошибок ещё не подтверждает, что выбранный источник содержит нужные SSH-события.
Что делать, если jail читает не тот журнал?
Если jail читает файлы, узнайте их имена. Для чтения journal посмотрите условие отбора записей:
sudo fail2ban-client get sshd logpath
sudo fail2ban-client get sshd journalmatch
Сравните результат с тем, где вы увидели отказ входа. Если SSH пишет в journal, а jail следит за отсутствующим или неиспользуемым файлом, в уже существующей секции [sshd] файла /etc/fail2ban/jail.local можно указать:
[sshd]
backend = systemd
Строку backend добавляют в существующую секцию, вторую секцию [sshd] создавать не нужно. После правки проверьте конфигурацию и перезапустите службу:
sudo fail2ban-client -t
sudo systemctl restart fail2ban
Если служба сообщает, что не может использовать backend systemd, проверьте наличие пакета python3-systemd. Для чтения journal Fail2Ban нужна библиотека Python для systemd, и без неё одной правки конфигурации недостаточно.
Проверка фильтра
Даже при правильном источнике событий jail может не засчитывать конкретные строки журнала. Для штатного фильтра SSH проверьте совпадения:
sudo fail2ban-regex systemd-journal sshd
Команда читает записи journal и показывает, сколько строк подошло под фильтр sshd. Для сервера, где jail читает файл /var/log/auth.log, укажите вместо systemd-journal этот путь. Проверять нужно тот источник, которым пользуется работающий jail.
Почему фильтр не находит ошибки входа?
Если совпадений нет, сначала убедитесь, что в выбранном источнике есть свежие отказы SSH. Затем сравните сами строки отказов с тем, что ожидает фильтр: после обновления OpenSSH формат записей может измениться, и тогда понадобится более свежий фильтр. Повышать maxretry здесь бессмысленно. Положительное число совпадений тоже требует внимания: команда может найти старые записи. Оно подтверждает работу фильтра на прочитанном журнале, но само по себе ничего не говорит о новых попытках и блокировке подключений.
Пороги и исключения
Когда фильтр распознаёт ошибки, проверьте пороги и исключения, которые действуют сейчас
sudo fail2ban-client get sshd findtime
sudo fail2ban-client get sshd maxretry
sudo fail2ban-client get sshd ignoreip
Fail2Ban блокирует адрес, если за интервал findtime накопилось maxretry подходящих событий. Пять ошибок от пяти разных адресов не складываются в один бан. Если нужный адрес указан в ignoreip, jail его пропустит. Сверяйте исключения с адресом в журнале SSH, особенно после смены сети или провайдера.
Адрес для ignoreip смотрите в журнале SSH либо узнавайте на устройстве, с которого вы входите. Если отправить запрос к сервису определения IP с самого VPS, он покажет внешний адрес сервера. При часто меняющемся адресе постоянное исключение для администратора может оказаться бесполезным. Тогда главным запасным путём остаётся консоль провайдера.
Текущие счётчики и заблокированные адреса снова видны в статусе jail:
sudo fail2ban-client status sshd
Currently failed показывает, сколько адресов сейчас числится с неудачными попытками: они ещё не набрали порог для бана, а их ошибки не вышли за пределы findtime. Общее число учтённых ошибок видно в строке Total failed. После бана или окончания этого интервала значение может стать нулевым. Поэтому один ноль в статусе не значит, что журнал не читается. Сопоставляйте счётчик со временем ошибок и адресами в журнале
Проверка блокировки
Бан в статусе Fail2Ban показывает только решение программы заблокировать адрес. Применил ли его сетевой экран, видно по отказу нового SSH-подключения. Сначала узнайте, какое действие назначено jail:
sudo fail2ban-client get sshd actions
Действие должно соответствовать сетевому экрану, который работает на VPS. По умолчанию, как правило, указано iptables-multiport. В этом случае Fail2Ban держит свои правила в отдельной цепочке f2b-sshd:
sudo iptables -L f2b-sshd -n
Если в списке стоит действие для nftables, его правила можно посмотреть так:
sudo nft list ruleset
Для других действий проверяйте соответствующий сетевой экран. При этом правила в системе не всегда удобно оценивать на глаз, поэтому практичнее проверить новое соединение с отдельного клиента.
Как проверить бан с другого устройства?
Для контрольной проверки нужен клиент из другой сети, например с мобильным интернетом. Второй ноутбук в том же Wi-Fi обычно выходит в интернет с того же публичного адреса, что и основной. До бана убедитесь, что тестовый клиент входит по SSH, а его IP отсутствует в ignoreip.
Оставьте основной доступ к серверу и консоль провайдера. Узнайте внешний IP на тестовом устройстве, а затем на сервере временно заблокируйте именно его. Ниже указан адрес из диапазона для примеров. Перед выполнением замените его на адрес тестового клиента.
sudo fail2ban-client set sshd banip 198.51.100.25
Проверьте, что адрес появился в статусе sshd, и попробуйте открыть с тестового устройства новое SSH-соединение. Уже открытый сеанс может сохраниться. Если вы заблокировали IPv4-адрес, убедитесь, что клиент не подключается к серверу по IPv6. Сразу после этого снимите бан:
sudo fail2ban-client set sshd unbanip 198.51.100.25
Ручной бан проверяет сетевой экран и путь к SSH, но обходит журнал, фильтр и порог. Если он сработал, а автоматических банов всё ещё нет, возвращайтесь к предыдущим шагам. Если статус показывает бан, но новое соединение с того же адреса проходит, проверьте выбранное действие, адрес клиента и порт SSH. При изменённом порте действие может блокировать только стандартный порт 22.
После проверки
Исправляйте первый сбой в цепочке: сначала запись в журнале SSH, затем источник событий и фильтр, после них пороги и действие блокировки. Так легче понять, почему защиты нет, и не менять сразу несколько параметров наугад. Вход по SSH-ключу оставьте в любом случае: Fail2Ban ограничивает повторяющиеся попытки с адреса, но не спасает от слабого пароля или украденного ключа.
Pеклама. ООО «Аеза Групп», ИНН: 7813654490. erid:2RanynJ6y3y
Дисклеймер: В исследовательских отчётах термин "оператор" используется для обозначения лица или группы, контролирующей описываемую инфраструктуру и осуществляющей связанные с ней действия. Это не обязательно означает, что исследователям удалось установить личность конкретного человека или организации. В данном случае термин используется в соответствии с терминологией первоисточника.
Исследователи Hunt.io раскрыли операцию, которую назвали CameraSwarm. В период с 17 июня по 22 июля 2026 года один оператор скомпрометировал более 14 530 IP-камер Dahua.
При этом сканирование было глобальным. Оператор сначала работал с российским адресным пространством, а затем развернул сканирование на весь IPv4. Крупнейшие отдельные результаты на ранних этапах пришлись даже на сети провайдеров Мексики и Вьетнама. Однако среди подтверждённых и геолокализованных компрометаций основная масса пришлась на Украину и Россию.
Операция продолжалась 35 дней и использовала сразу несколько независимых способов получения доступа к камерам.
Самое интересное произошло 23 июля: оператор оставил открытым HTTP-каталог на собственном сервере 154.86.119.60. Hunt.io обнаружил его и скачал практически всю рабочую среду атакующего: 2616 файлов в 234 каталогах общим объёмом около 407 МБ.
Внутри оказались исходники инструментов, логи, базы результатов сканирования, данные с камер и отдельный Windows-бинарник, который исследователи классифицировали как SalatStealer.
Хронология кампании: активация VPS через открытие, 17 июня - 23 июля 2026 года.
Как работала CameraSwarm
Атака строилась сразу по нескольким направлениям.
1. Массовый брутфорс через порт 37777
Первый путь- сканирование камер через TCP-порт 37777, используемый Dahua для протокола Easy4IP.
Оператор использовал массовое сканирование и затем перебирал учётные данные. Один только brute-force-движок успел обработать 12 324 уникальных IP-адреса. Сначала сканировалось российское адресное пространство, затем весь IPv4.
У инструментария была интересная особенность: перед сканированием очередного диапазона оператор проверял местное время. Если оно не попадало в рабочее окно 09:00-16:59, диапазон пропускался.
Сам сканер также был настроен на работу с очень большим количеством параллельных соединений.
предельные значения ядра, поднятые перед сканированием.
Таким образом, речь шла не о ручном взломе отдельных камер, а о промышленно масштабированной автоматизации.
2. Старые механизмы обхода аутентификации
Вторая ветка использовала две уязвимости Dahua- CVE-2021-33044 и CVE-2021-33045.
Через них оператор мог обойти аутентификацию и затем установить на устройство постоянную учётную запись:
p2pwn / p2password
Такой аккаунт хранится отдельно от обычного пароля администратора. Поэтому простая смена пароля не удаляет бэкдор.
На большинстве затронутых прошивок он также переживает сброс камеры к заводским настройкам.
Всего Hunt.io обнаружил признаки установки такого постоянного аккаунта примерно на 1923 камерах.
Два эксплойта 2021 года: камера либо доверяет железу NetKeyboard и не проверяет пароль, либо думает, что запрос пришёл с неё самой (127.0.0.1).
Здесь важно не путать реальные методы атаки с некоторыми обозначениями в инструментарии оператора. Hunt.io отдельно установил, что два CVE, указанных в некоторых компонентах этого набора, были промаркированы неправильно. Поэтому для этой операции корректнее опираться именно на подтверждённые CVE-2021-33044 и CVE-2021-33045, а не переносить все CVE-метки из найденного кода как достоверные.
3. Облачный P2P-релей Dahua
Третий путь оказался ещё интереснее.
Dahua позволяет подключаться к камерам через облачную P2P-инфраструктуру, используя серийный номер устройства, то есть без необходимости знать его внешний IP-адрес.
Оператор смог таким способом добраться как минимум до 283 камер.
При этом его собственные логи показали крайне неприятную особенность: среди живых серийных номеров 89,4% возвращали канал, не требовавший дополнительной аутентификации.
проверка P2P-канала и перебор учётных данных. 89,4% серийников открывали канал без аутентификации.
Это не означает, что одного серийного номера всегда было достаточно для полного контроля камеры.
Серийный номер позволял получить доступ к P2P-реле и построить туннель до устройства. Для непосредственного управления камерой затем могли потребоваться валидные учётные данные или одна из уязвимостей обхода аутентификации.
Но масштаб проблемы создаёт именно то, что в большинстве проверенных случаев сам канал не требовал дополнительной аутентификации.
Recovery-коды: ещё одна проблема
Отдельно Hunt.io обнаружил генератор offline recovery-кодов.
В определённых условиях, имея серийный номер устройства, оператор мог получить код, обеспечивающий облачный административный доступ независимо от обычных учётных данных камеры.
Это особенно неприятная особенность архитектуры: удаление установленного на камере аккаунта p2pwn не решает проблему с уже существующими recovery-кодами.
По данным Hunt.io, такие коды остаются действительными до тех пор, пока Dahua не изменит серверную логику их генерации и проверки.
Именно эта особенность, по мнению исследователей, указывает на возможность передачи полученного доступа третьей стороне.
Цепочка атаки CameraSwarm: разведка, получение доступа и три направления дальнейшей эксплуатации.
Это был не полностью оригинальный набор инструментов
Исследование показало, что оператор не написал весь инструментарий с нуля.
Найденный набор представляет собой смесь собственного кода, модифицированных публичных инструментов и исследований других специалистов. Hunt.io связал компоненты как минимум с несколькими upstream-разработчиками и исследовательскими проектами.
При этом важно различать использование инструмента и его авторство.
То, что код найден в инфраструктуре оператора, доказывает его использование, но не означает, что именно этот человек написал первоначальную версию инструмента.
Иными словами, CameraSwarm была не одной цельной программой, а скорее собранным за долгое время набором различных инструментов.
Оператор хранил результаты прямо на сервере
В открытом каталоге обнаружены не только исходники и скрипты.
Там находились результаты работы сканеров, учётные данные и изображения с камер.
Для передачи информации оператор использовал Telegram. Найденные учётные данные отправлялись в Telegram-бот, а снимки с камер сохранялись в рабочем каталоге.
шаблон уведомления Telegram с закодированной ссылкой сообщества ВКонтакте.
Кроме того, результаты компрометации автоматически преобразовывались в формат, который можно импортировать в SMART PSS - штатную enterprise-платформу Dahua.
В итоге 13 229 записей были преобразованы в 52 XML-файла.
Это уже не похоже на обычный эксперимент с несколькими камерами. Полученные данные готовились в формате, удобном для дальнейшего массового использования.
На том же сервере нашли Windows-стилер
Ещё одна находка оказалась напрямую не связана с компрометацией камер.
На сервере находился UPX-упакованный Windows-бинарник, который Hunt.io классифицировал как SalatStealer.
Исследователи рассматривают его как отдельную возможность оператора, а не как часть основной цепочки CameraSwarm.
На сервере также находился PowerShell-скрипт, предназначенный для отключения Microsoft Defender несколькими способами.
В частности, использовались изменения Group Policy, способные сохраняться после перезагрузки системы.
То есть сервер оператора фактически содержал сразу две разные возможности:
инструментарий массового взлома камер Dahua;
отдельный набор средств для компрометации Windows-систем.
Что это означает для владельцев Dahua
Для владельцев камер Dahua и совместимых устройств ситуация неприятная по двум причинам.
Первая- наличие старых механизмов обхода аутентификации.
Вторая- архитектура P2P-доступа и recovery-механизмов, которые нельзя устранить простой сменой пароля камеры.
Особенно важно учитывать, что под угрозой могут находиться не только устройства с логотипом Dahua. Исследование касается экосистемы Dahua и устройств, использующих соответствующие платформы и прошивки.
Поэтому для владельцев Dahua и совместимых ребрендированных устройств например, Amcrest, Lorex, Annke, Swann и других моделей на соответствующей платформе — стоит проверить конфигурацию отдельно.
Что делать
- Проверьте, нет ли на камере неизвестной учётной записи p2pwn / p2password.
- Если P2P-функция вам не нужна , то отключите её.
- Установите актуальную прошивку, закрывающую известные уязвимости.
- Смените пароли камер и убедитесь, что старые учётные данные больше нигде не используются.
- Проверьте журналы доступа и сетевую активность камер.
- Если камера ранее была доступна из интернета напрямую, проверьте её конфигурацию особенно внимательно.
-Не считайте простую смену пароля достаточной мерой, если есть признаки использования постоянного бэкдора.
- Учитывайте проблему recovery-кодов: её устранение зависит не только от настроек конкретной камеры, но и от серверной логики Dahua.
Главное
CameraSwarm показывает неприятную закономерность: для массового захвата IoT-устройств злоумышленнику необязательно искать неизвестные zero-day.
В этой операции использовались:
- старые уязвимости;
- слабая или отсутствующая аутентификация;
- открытые P2P-механизмы;
- автоматизированное сканирование;
- готовые публичные инструменты;
- и обычная ошибка самого оператора — открытый каталог на сервере.
В результате один оператор за 35 дней получил доступ более чем к 14 530 камерам Dahua.
И самое показательное здесь даже не число камер.
Почти вся операция была автоматизирована, а значительная часть инфраструктуры уже существовала до начала кампании. Оператору оставалось объединить готовые инструменты, автоматизировать поиск устройств и собирать результаты.
Подпишись на мой ВК и Дзен и астрологи объявят неделю изобилия до конца года)
В апреле 2023 года мы запустили необычный для нас проект - ремонтный сервис нового формата. Первого клиента нашли только в начале лета, но уже с первого проекта удалось достичь запланированной прибыли. Расскажу, как мы создали современную компанию для поколения "новых денег", которые не готовы к тому, что прораб будет класть половину стоимости ремонта себе в карман, а сроки растягиваются без ограничений и почему это оказалось прибыльным бизнесом.
Как всё начиналось
Конец 2022 года. Я работал менеджером проектов в крупной IT-компании, мой друг Антон - тимлидом в другой известной технологической компании, а Дима занимал позицию backend-разработчика в третьей. У всех стабильные зарплаты, интересные проекты - жизнь шла своим чередом, пока Антон не решил купить квартиру в новостройке.
После долгих поисков он остановился на 85-метровой квартире в ЖК около метро Саларьево - современный комплекс с подземным паркингом и зелёным двором. Как типичный программист, к поиску ремонтников он подошёл педантично: изучил десятки предложений, провёл собеседования с кандидатами. В итоге выбрал бригаду с Авито с "15-летним опытом работы".
Денис (это я:) - один из создателей сервиса
За время ремонта у Антона мы с Димой часто приезжали к нему - помочь, посоветовать, и просто поржать над очередными косяками строителей. У нас обоих за плечами был серьёзный опыт управления командами, внедрения процессов, автоматизации и контроля качества. И знаете что? Нам казалось, что главное в ремонтном бизнесе - это грамотный менеджмент и организация процессов. И на самом деле, все примерно так и есть.
День когда мы решились
Если честно, мысли о собственной ремонтной компании появились у нас задолго до этого случая. В IT-тусовке часто шутят, что в России есть три верных пути: вебкам, айти и стройка. И мы, насмотревшись на хаос в ремонтной сфере, не раз обсуждали возможность открытия своей “фирмы”.
Мы выделили основные проблемы, которые должны были исправить с помощью своего сервиса
Первое - это постоянно растущие сметы и "задранная стоимость" на работы. Ну вы серьезно? Почему для меня ремонт в квартире должен чем-то отличаться от заказа носков на Вайлдберриз? Почему-то там нет такого, что цена носков может вырасти в 2 раза за время доставки. А тут начальная смета в 1 миллион превратилась почти в 1,7! И каждый раз это "ой, тут стены кривые", "ой, а тут придется докупить", "ой, а это мы не учли".
Второе - это бесконечно растущие сроки. Это еще хуже. Как люди с опытом в менеджменте, мы прекрасно знали, что растущие сроки – это всегда раздолбайство управления и ленивые рабочие. Но тут было чуть посложнее, об этом чуть позже. У Антона обещали сделать за 4 месяца, а в итоге растянули на 8.
Третье - хитрые прорабы. Это вообще отдельная история. Когда прораб говорит "давайте я сам закуплю материалы, у меня скидки", знайте - он накинет сверху процентов 30-40. А еще есть "срочные работы", которые почему-то не были учтены в смете. И конечно, вечная классика - экономия на материалах: заказываешь одно, а привозят что-то попроще, но по той же цене.
Целевая аудитория
А параллельно с этим мы определили нашу целевую аудиторию. Чтобы выделиться на конкурентном рынке, мы решили ориентироваться на молодых IT-специалистов и представителей “современных” профессий, живущих в Москве в возрасте 30-40 лет. Тех, кто покупает квартиру в новостройке и привыкших к хорошему сервису. Кто не готов, что его будут водить за нос и разводить на деньги.
Что с ценой?
При этом очень важно было держать цены НИЖЕ, чем у других компаний, иначе на рынке просто не выжить. В премиум сегмент нужен "пропуск" в виде большого количества работ для определенного типа клиентов, поэтому нам было понятно, что "брать" много - пока что, непозволительно. Но мы нашли способ: автоматизация процессов, прямые поставки материалов, четкое планирование работ и никаких скрытых накруток. Но несбыточной мечтой это покажется только обывателю: на самом деле сервис и правда должен быть таким, вообще любой.
История первого заказа летом 2023 года
А теперь самое интересное - наш первый заказ. Это была отдельная эпопея. Начало лета 2023, звонок от потенциального клиента.
Первый клиент оказался прямо "в яблочко" - тоже айтишник (пришедший из первой контекстной рекламы в яндексе запущенной на 20 тыс.), работал в крупной компании, купил двушку в панельке 80-х годов. Причем достаточно убитую - стены местами с дырками, старый паркет, трубы помнящие еще Горбачева... Но нам, если честно, даже повезло что первый объект был не новостройкой. На старом фонде учиться легче - там хотя бы есть на что посмотреть, в отличие от новостроек, где все "сюрпризы" спрятаны в голых стенах.
Дырка в стене была ДО демонтажа. Клиент купил квартиру с "убитым" ремонтом подешевле, в надежде сэкономить
Как мы мастеров искали
Начали с поиска бригады. Вот тут был первый холодный душ - оказалось, что найти классных специалистов без своей наработанной базы очень сложно. Мастера хорошего уровня либо уже при деле, либо просят космос. А те, кто сразу соглашается - ну, вы понимаете. За две недели провели больше 10 собеседований (назовем их так😊). Причем процесс собеседования мы сразу сделали "как в айти" - тестовые задания, проверка портфолио, разбор технологий работы. Бригадиры были в шоке - некоторые прямо уходили с собеседований, когда мы начинали распрашивать про технологии укладки плитки и показывали фотографии косяков с объектов с форумов.
В итоге нашли бригаду - два брата, которые до этого работали в крупной ремонтной компании, но ушли потому что устали от "серых" схем – по отношению К НИМ ЖЕ. В основном - задержки з/п и прорабы.
В том же санузле, но уже после демонтажных и некоторых черновых работ. Братья очень помогли нам с первым ремонтом, кроме этого, они дали нам контакты проверенных рабочих, которые впоследствии делали ремонт вместе с ними
Купили первый комплект инструмента - это отдельная история на 100 тысяч рублей. Ещё сразу купили свою тепловую пушку - это из необычного. Большинство компаний привлекают "потолочников" на субподряд. Мы захотели сразу начать формировать свой инструментарий для будущих сотрудников. Зато потом эта закупка очень помогла - не зависели от того, что принесет с собой бригада. Позже, когда начали расширяться купили свою штукатурную станцию. Это, на удивление, было самой выгодной покупкой.
Первые сложности
Начали ремонт. И тут поехало... Первый сюрприз - когда начали снимать старую штукатурку, оказалось что стены буквально рассыпались. Плюс под старым линолеумом в коридоре нашли деревянный пол с насыпью под ним.
Тут был первый серьезный разговор с заказчиком. Объяснили ситуацию, показали все фотки, рассказали что сколько будет стоит в соответствии с прайс-листом. Тут очень помогло то, что мы сразу взяли за правило - фотографировать вообще все. Каждый этап, каждый слой, каждую трубу.
С материалами тоже было весело. Первый месяц я лично объездил все крупные строительные магазины в радиусе 30 км. Искал поставщиков, договаривался о скидках. Помню, как чуть не купили партию плитки по "супер-выгодной" цене, а потом выяснилось что это условно "второй сорт" - брак, который продают через "серые" схемы.
Cделали систему закупок: (Первый заказ полностью сделан из материалов, купленных в Петровиче и на маркетплейсах). Бригада присылает список - мы проверяем цены у 3-4 поставщиков и заказываем где дешевле.
Мы сразу внедрили систему ежедневных фото-отчетов и еженедельных созвонов. Плюс сделали чат в телеграме, куда скидывали все чеки, все накладные, все фотки. Такая прозрачность очень помогла - клиент видел, что мы не химичим с ценами и не пытаемся на нем нажиться.
В итоге сделали.
Братья советовали нам недостающих специалистов по ходу ремонта и постепенно, укладываясь в срок мы сдавали клиенту новый и новый этап. Честно, это было не так сложно как казалось в начале, но нужно понимать, что на самом деле, проблем по ходу ремонта и мелких трудностей было ОЧЕНЬ много, просто мы как люди привыкшие, понимали что сейчас это и есть наша работа , за которую нам платит клиент - взять на себя все заботы по ремонту. Но серьезных форс-мажоров не возникало, максимум понервничали, когда внесли предоплату потолочникам, которых нашли по объявлению, после чего они явно начали задерживать сроки, но в итоге, все обошлось. Нам и до этого было ясно, что чем быстрее мы соберем свой , хотя бы, небольшой штат, тем лучше и выгоднее. Но для этого надо быть уверенным в постоянном потоке заказов, что мы на тот момент, не могли себе позволить.
Главное - мы поняли как надо и как не надо. Все закупки только через нас. Все договоренности - только в письменном виде.
По деньгам первый проект получился условно в ноль - не считая наших вложений в инструмент и рекламу. Но мы получили бесценный опыт, наработали связи с поставщиками (если это можно назвать так пафосно) и главное - поняли, что наша модель рабочая, хотя на тот момент не были в этом до конца уверены. Наши сомнения развеяло лето 2023 года.
1/5
Наша первая работа, которую нам помогли закончить "братья", советуя недостающих мастеров на каждый этап работ. Цена работ для заказчика вышла 750 000 рублей. Летом 2023 года, за аналогичный объём работ авитовские бригады просили до миллиона(!)
Сайт и маркетинг или как мы общаемся с клиентами ещё до первого звонка
Кстати, про сайт. Первую версию мы сделали за пару вечеров на Тильде - максимально простую: фотки, цены, контакты. Знаете что? Он у нас до сих пор такой – но с значительно изменённым UI/UX. Я иногда ловлю себя на мысли - вот мы же, можем сделать что-то крутое, с личным кабинетом, онлайн-сметами... Но потом смотрю вордстат, статистику и думаю - а зачем? Клиенты находят нас, звонят, все работает. Иногда лучшее решение - самое простое.
1/2
На главной странице "в лоб" о том кто мы, наши конкурентные преимущества, специализация и примеры работ
1/2
Сразу "ярко" заявляем о действующих скидках. Кроме этого, простым текстом пытаемся общаться с клиентом и убедить его в нашем сервисе, пока что, не общаясь с ним лично - конверсия в лиды увеличилась значительно, но важно, чтобы все предложения были реальны
А вот ворд стат. За последний месяц нас искали 680 раз не считая статистики переходов по прямой ссылке. Доказательство того, что дорогой сайт не нужен. Наш стоит 6 000 рублей в год, а сделан за 20 часов
Примеры лучших работ как маркетинговый инструмент
1/4
Оставляли подобные фото с примерами работ и вотермаркой в отзывах к жилым комплексам. Отличный маркетинговый инструмент - сразу определяем нужную ЦА и бесплатно заявляем о себе. Точно знаем, что минимум один клиент был из отзывов яндекс - поэтому работает
Как мы масштабировались и разбирались в проблемах ремонта
Теперь про то, как мы начали разбираться в проблемах ремонта и потихоньку расти. Знаете, за этот год мы много думали - почему вообще ремонтные компании задерживают сроки и не могут сделать работу по первоначальной цене? И нашли несколько интересных моментов.
Первое - сроки. Тут даже копать глубоко не пришлось - сам рынок сформирован так, что клиенты просто привыкли к задержкам. "А, ну это ремонт, тут всегда так" - классическая фраза. Благо тут нам помог опыт организации процессов из айти. Четкие спринты, ежедневные отчеты, календарный план. Работает как часы, если не филонить.
Второе - вечно растущая цена. Вот это было сложнее. В новостройках еще можно точно посчитать, а во вторичке... Но благодаря наработкам этот вопрос стал гораздо яснее. При правильно организации процессов, непредвиденные работы лучше оплатить из своих средств, чем терять клиента. Только так и делается сервис.
Третье - больная тема - воровство на материалах. Тут мы конкретно закрутили гайки. Завели строгий учет, до последнего мешка штукатурки. Прорабам сразу сказали - любая жалоба от клиента на нечестность - это конец сотрудничества. Знаете что самое смешное? Когда начали работать честно, оказалось что маржа все равно хорошая. Просто многие привыкли что надо обязательно накручивать еще и еще.
Неприятные особенности прозрачного сервиса
Большинство компаний, которые начинают работать честно, быстро сдуваются. Потому что сам потребитель привык к плохому сервису. Приходишь к клиенту, говоришь "мы все сделаем четко по смете и в срок", а он смотрит с недоверием - "да ладно, так не бывает". Сейчас в 2024-м ситуация получше, но рынок все еще очень консервативный.
Продвижение или как мы брали “Новую Москву”
Наш любимый Прокшино в Новой Москве - в 2024 году, это самый перспективный район в котором покупатели - наши потенциальные клиенты
Расти начали потихоньку. Сначала сделали специальные цены для новой Москвы - там как раз много новостроек, где мы хорошо научились работать. Потом пошли заказы по рекомендациям. Когда я говорю “пошли” заказы нужно понимать, что это 1-3 заказа в месяц стабильно, что на самом деле, тогда казалось не мало. С рекламой экспериментировали забавно - оставляли визитки в подъездах (да, просто старые добрые визитки!), ставили рекламные ящики у офисов продаж в дни выдачи ключей.
Был случай, когда на одном ЖК поставили такую стойку, а через неделю риелтор оттуда сам позвонил и предложил взять себе процент, если клиент пойдет к нам.
Сейчас берем 2-5 заказов в месяц, (летом было 5 в месяц, если разделить). Большинство клиентов приходят по рекомендациям. Штат за год работы постепенно собрали свой. Трудоустроено 14 сотрудников. Если их не хватало (как летом), привлекали мастеров с которым уже работали раньше, по договору ГПХ. Просили всех регистрировать самозанятость или ИП – это было тяжело, но зато честно платим налоги по Доходы – расходы.
Как устроен процесс
Знаете, что самое сложное в ремонтном бизнесе? Нет, не поиск клиентов и не работа с материалами. Самое сложное - это выстроить систему, которая будет удовлетворять запросы клиента и при этом позволит компании зарабатывать. Мы долго думали над этим и придумали несколько интересных решений.
Начнем с оплаты. Если посмотреть на московский рынок, там забавная система - вроде бы без предоплаты, но это только за первый, самый дешевый этап. А потом - бац, и клиент должен внести 50% от всей суммы. И попробуй не внеси - бригада уйдет на другой объект. Мы сделали иначе: разбили весь ремонт на этапы (их получилось 12 для капитального ремонта), и берем предоплату только за текущий этап. То есть клиент всегда понимает, за что именно платит, и может контролировать процесс.
С договорами тоже интересно получилось. Сначала делали один стандартный, а потом поняли - люди разные, запросы разные. Сейчас у нас три варианта: просто на работы (для тех, кто сам хочет закупать материалы), на работы плюс материалы (самый популярный), и полный пакет с дизайн-проектом. Кстати, про дизайн - мы не держим штатных дизайнеров, работаем с фрилансерами. Так получается и дешевле для клиента, и качество выше - каждый дизайнер специализируется на своем стиле.
Первый образец договора, который ставили на сайт
Расчёт стоимости
Расчет стоимости работ - отдельная история. Когда начинали, было очень сложно. На рынке нет четких цен - один мастер берет 3 тысячи за квадрат стяжки, другой - тысячу, третий вообще говорит "ну давайте посмотрим по факту". Сначала работали по среднему прайсу, но часто уходили в минус по отдельным этапам - то бригада дороже встанет, то материала больше уйдет. Сейчас, когда появились постоянные сотрудники, стало проще - мы точно знаем их расценки и можем давать фиксированную цену.
Материалы
Выяснилось, что в крупных магазинах часто дешевле в сравнении с рынками стройматериалов, особенно если ловить акции. Плюс появились маркетплейсы - там вообще красота по ценам. И главное - полная прозрачность, клиент сам видит все позиции. Если находим материал дешевле - возвращаем разницу. Был случай, когда на керамограните сэкономили клиенту почти 30 тысяч - просто потому что, нашли ту же плитку в другом магазине по акции.
Как работаем сейчас
Сейчас берем 2-5 заказов в месяц, зависит от сезона и сложности объектов.
Процесс обкатан до мелочей: сначала выезд на замер, потом предварительная смета. Если клиента все устраивает - детальный расчет и договор. Дальше начинается самое интересное - согласование материалов, закупки, работа.
Особенности продвижения и подводные камни
С продвижением интересно получилось. Сначала, как все, полезли на Авито. И знаете что? Не зашло. Там своя специфическая аудитория и конкретно у нас, с Авито “ не пошло”.
Свежий пример страницы с авито в категории "Ремонт квартир". Как клиенты определяются с подрядчиком среди тысяч однотипных объявлений - хороший маркетинговый вопрос, который мы решаем, после чего полноценно "зайдём" на авито
Пробовали контекстную рекламу яндекс - тоже так себе результат. Клики дорогие, конверсия низкая. Зато отлично зашла таргетированная реклама в Instagram* (*запрещен в РФ) и реклама в районных пабликах ВКонтакте. Особенно в группах новостроек в ТГ - там как раз наша целевая аудитория.
Но главный канал - сарафанное радио. Причем работает оно интересно. Всегда знаешь , от кого пришли заказчики и проще выстраивать коммуникацию. Есть клиент - он доволен, рассказал коллегам - и понеслось. За три месяца получили еще два заказа от сотрудников той же компании. Выходит такой “корпоративный ремонт”)))
Были, конечно, и провалы в продвижении. Пытались работать с риелторами - предлагали им комиссию за клиентов. Не пошло - у них свои схемы, свои бригады. Пробовали давать рекламу в лифтах, входных группах - тоже мимо, ни одного обращения, но тут скорее из-за того что эта реклама буквально на день.
ИТОГ
Сейчас мы существуем уже чуть больше года и в целом смотрим на ремонтный рынок не так, как раньше. За это время мы сделали несколько важных заметок для себя:
Оказывается, большинство проблем в ремонте - это не технические сложности, а банальная организация процессов. Когда все четко спланировано и каждый знает что делать - даже самый сложный ремонт идет как по маслу.
Мы поняли, почему многие компании "химичат" с ценами и сроками - просто потому что не умеют нормально считать и планировать. Когда все процессы выстроены правильно, можно работать честно и все равно оставаться в плюсе.
Самое сложное - это не найти клиентов или научиться делать ремонт. Самое сложное - это переломить привычку рынка работать "по-серому". И заказчики, и исполнители настолько привыкли к непрозрачным схемам, что честный подход вызывает удивление.
Мы до сих пор учимся. Каждый объект - это новый опыт и новые вызовы (особенно по части коммуникаций с клиентами). Но главное - мы видим, что наша модель работает и пока что, нам удается держать ценник немного ниже рыночного, за счёт того что до сих пор не имеем в найме маркетологов, IT, отдела продаж и менеджеров по продажам. Стараемся нанимать именно рабочих, все остальное можно отдать на аутсорс.
Уважаемые пикабушники, были рады составить для вас эту статью! С любовью, СК Комната
Настроил RDP на домашнем компьютере для доступа с работы, исключительно для рабочих целей. Компьютер всегда был включен в одну сеть с телевизором, с которого я захожу по локалке на жесткий компа и смотрю фильмы/сериалы. И в один момент доступ начал периодически теряться. Т.е. пытаюсь зайти на расшаренную на компе папку с телевизора, а телевизор просто не видит комп. Сажусь за комп, а учетка заблокирована. через минут 5 удается зайти со своим паролем, с этого момента и с телевизора становится комп доступен. а потом опять доступ пропадает, а учетка блокируется. Странно. Пошел в журнал событий, а там это:
Куча попыток подключиться к моему компу неизвестно откуда и как.
Внутри каждого события всегда разные IP, от Вьетнама до Нижнего Новгорода.
Пример одного из событий, здесь пытаются зайти под учетккой DIRECT, но чаще это Администратор, Administrator, и даже Administrador
Примерно 30.000 запросов за 12 часов. Имена учетных записей разные, от Администратора и до вымышленных имен и фамилий (Например, A.Kuznetsov, а в моих краях Кузнецовых вообще не бывает, татарская глушь). Среди попыток и имя моего юзера USER тоже проскакивало. Собственно, вот почему он и блокировался и терял доступ с телевизора.
И вот вопрос, кому мой домашний комп с сериалами и фильмами на расшаренном жестком понадобился, и как мне пользоваться RDP чтобы подобных проблем не возникало?
Отключил порт 3389 на роутере и попытки прекратились.
1. Feroxbuster - Инструмент брутфорсинга веб-директорий, написанный на Rust, который используется для фазинга и брутфорсинга веб-директорий. Он особенно полезен для оценки безопасности сайта.
2. Radamsa - Генератор искаженных данных для программного обеспечения
имеет уникальный подход к фазингу, генерируя широкий спектр искаженных данных из небольшого количества входных образцов.
3. Honggfuzz - это универсальный инструмент от Google, который может быть использован для фазинга различных типов приложений, включая веб-сервисы. Он особенно эффективен для выявления уязвимостей, связанных с безопасностью памяти.
4. Boofuzz - Наследник Sulley для сетевого фазинга и предназначен для фазинга сетевых протоколов. Этот инструмент может быть полезен для специалистов по сетевой безопасности, желающих проверить надежность сетевой инфраструктуры на устойчивость к атакам.
5. OSS-Fuzz - Инструмент представляет из себя платформу для непрерывного фазинга, которая интегрируется с проектами с открытым исходным кодом, помогая разработчикам и исследователям безопасности в автоматическом обнаружении уязвимостей.
6. ffuf - Один из самых быстрых веб-фаззеров, написанный на Go.
7. Libfuzzer - Разработан как так называемый инструмент эволюционного фаззинга. Как это работает – инструмент отправляет фаззированные входные данные в определенную точку входа или поле ввода в целевой программе. Затем он отслеживает, какие части кода задействуются, на основе реакции тестируемого приложения на запросы. Вооружившись новой информацией, Libfuzzer изменяет свои запросы, чтобы посмотреть, сможет ли он проникнуть еще глубже.
8. Sulley - Программа была создана для пользователей, которые хотят активировать механизм фаззинга, а затем перейти к работе над чем-то другим. Когда они вернутся через несколько часов или дней, у Sulley Fuzzing будет готов отчет обо всем, что он нашел.
Сетевая видимость — повод для атак. Проблемой является перебор паролей, в том числе и для SSH.
Защититься от этого можно по-разному:
1) Используя возможности настройки демона SSH
2) Пакетный фильтр
3) Специальные приложения
4) Port knocking
▪Измените 22-й порт на 2002-й, если это возможно. Вносим запись в /etc/ssh/sshd_config:
Port 2002
▪В случаях, когда невозможно изменить порт, можно ограничить доступ к SSH определенными пользователями или группами. Это можно сделать с помощью параметров AllowUsers, AllowGroups, DenyUsers и DenyGroups в файле sshd_config. Логину также можно указать IP или подсеть. Например, можно разрешить доступ пользователю admin и user, при этом последний может подключаться только с одного IP.
AllowUsers admin user@192.168.0.1
▪Еще один действенный вариант защиты от перебора – использование для аутентификации сертификатов.
Например, запретим вход по SSH по паролю для пользователя root, разрешив всем остальным:
# всем разрешаем доступ по паролю
PasswordAuthentication yes
# root будет использовать только сертификат
match user root
PasswordAuthentication no
KbdInteractiveAuthentication no
▪Используя TCP Wrapper, также можем ограничить доступ к любому сервису только с определенных IP, для этого следует лишь прописать в файл /etc/hosts.allow или /etc/hosts.deny нужное правило. Разрешим в /etc/hosts.allow доступ только с нужной подсети:
sshd : 192.168.1.0/24 : allow
Или в /etc/hosts.deny:
sshd : ALL : deny
sshd : ALL EXCEPT 192.168.1.0/24 : allow
▪Пакетный фильтр позволяет очень точно задавать параметры соединений, отбрасывая ненужные пакеты. С его помощью легко ограничить доступ к 22-му порту только определенным адресам. Пример:
▪Fail2ban и Sshguard - специальные утилиты, которые помогают защитить систему от подозрительных действий. Эти программы фильтруют пакеты по портам и IP-адресам и блокируют подозрительные IP-адреса, используя iptables или TCP Wrapper.
Fail2ban был создан для защиты SSH, но сейчас он может быть настроен для использования с различными приложениями. Принцип работы очень прост - демон периодически проверяет журналы на наличие записей о подозрительной активности и блокирует подозрительные IP-адреса.
По умолчанию Fail2ban защищает только SSH, но может быть настроен для контроля нескольких сервисов одновременно. Все события отображаются в журнале fail2ban.log и могут быть отправлены по электронной почте.
В Ubuntu и Debian устанавливается командой:
$ sudo apt-get install fail2ban
▪Все настройки производятся в нескольких файлах, размещенных в каталоге /etc/fail2ban. В fail2ban.conf хранятся параметры запуска самого демона, в jail.conf описываются контролируемые сервисы (внутри секции SSH).
[ssh]
enabled = true
port = 22
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
▪Фильтры и действия настраиваются в файлах в подкаталогах filter.d и action.d. Файлы по умолчанию имеют расширение .conf и их лучше не изменять, включая jail.conf. Лучше все изменения делать в файле с расширением .local (например, jail.local), который переопределяет настройки из первого файла и сохраняет их при обновлении. Для проверки работы фильтра можно использовать утилиту fail2ban-regex.
Другу подарили на Новый год книгу «хакинг на c++»( друг занимается программированием лет с 10 ( щас ему 17, он уже поднял много своих серверов, сайтов и проектов ) при этом он не много втягивает меня ) Так вот… Эта книга была больше похожа на анекдот… Там рассказывалось как взломать инстаграм при помощи готового скрипта из интернета для брутфорса 🤣 А так же про то, как увести телеграмм аккаунт с помощью готового скрипта из инета… Ну что это за хакинг такой, который ничему не учит, кроме того, как использовать готовые скрипты, которые работают через одно место… Так же там рассказывали про то «как отомстить недругу с помощью спс спамера», и о чудо, мы подумали что там хоть что-то интересное, но нет… Там опять же готовый спамер который нужно только установить… так он ещё и одно сообщение в 5-10 минут слал… И тут мы решили взять всё в свои руки. Провели эксперимент, при этом друг делал всё по книге, а я сам. Итог: с помощью скрипта для брута инсты друг увёл 0 аккаунтов, а я решил пойти путём фишинга и написал свой сайт, прикрутил домен и небольшую базу данных, я увёл 4 аккаунта за пару часов ( все аккаунты мы вернули, владельцы не имеют к нам притензий ) С телеграмом была аналогичная ситуация, он увёл 1 аккаунт, когда в телеграмме я увёл фишингом уже 7 аккаунтов за пару часов… Тоже мне, хакинг на с++ 🤣
Делаем выводы: к учителям которые учились по таким книгам - не приходим…