Задать вопрос
  • Что делать если домен не отображает все DNS записи?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    Вообще, dig считает что NS для citadel.crimea.ru -
    ns1.ht-systems.ru.
    ns2.ht-systems.ru.

    а не рег.ру
    Выглядит как недоперенесенный домен, отсюда и проблемы с записями
    Ответ написан
    Комментировать
  • Как добавить в админку динамически созданные таблицы?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Django
    Седой и строгий
    Остановился на том, чтобы каждому демо-пользователю присваивать уникальный ID и динамически создавать модели и таблицы персональные под аккаунт.

    Зачем такие сложности? Достаточно добавить в каждую модель поле tenant и при выборке записей фильтровать по значению этого поля.
    Ответ написан
    1 комментарий
  • Как заставить VPN работать на macOS и iOS?

    @Nikita1244
    Anonymous
    На скрине у вас Wireguard. РКН уже отлично блокирует его, как и OpenVPN по UDP. Попробуйте поменять протокол в своем "VPN". Если такой возможности нет - забудьте об этом VPN.

    ну если 100$ это бесплатно, то я право не знаю...

    Выкинутые деньги на помойку это. Вы могли арендовать сервер самостоятельно и захостить туда тот же самый Marzban, который устанавливается одной командой и потом уже настраиваете на простой web-панели. И использовать эффективные протоколы - VMess или Vless. Причем серверы стоят недорого - порядка 3-5$ в месяц.
    Ответ написан
    3 комментария
  • Как контролировать комплектацию рабочего места?

    anthtml
    @anthtml
    Системный администратор программист радиолюбитель
    Классическое GLPI + FusionInverter или что-то подобное
    Но задача больше административная - пломбировка системников, написание политик, инструкций и роспись сотрудников в карточках оборудования - это если уж совсем заморачиваться.
    Хотя в большинстве случаев достаточно чтобы бухи назначили МОЛ началька отдела (кабинета) и закрепили все имущество за ним, а не так что все компы в организации числятся за сисадмином
    Ответ написан
    Комментировать
  • Избавиться от дублей или проверить наличие таблицы в базе?

    @pro100Code
    TechnoCraft Designer Developer
    Добрый день! Проблема с миграциями и запросами действительно может возникнуть, если таблицы ещё не существуют, а запросы к ним уже происходят.
    Прямую проверку существования таблицы можно выполнить через метод django.db.connection.introspection.table_names(), который возвращает список всех таблиц базы данных. Это позволит вам избежать излишней ручной работы с соединениями и подключениями.
    from django.db import connection
    
    def options_general_exists():
        tables = connection.introspection.table_names()
        if 'yourapp_general' in tables:
            return General.objects.filter(id='-1').first()
        return None
    
    data = {
        'menu': Menu,
        'options_general': options_general_exists(),
    }


    Лучший вариант — использовать introspection API от Django для проверки существования таблиц, так как это встроенный и безопасный способ для работы с базой данных без необходимости явно подключаться к ней через Python.
    Ответ написан
    1 комментарий
  • Резко снизилась скорость сети через VPS, что может быть?

    @ElxkoT
    Для проверки ограничений протокола можно попробовать сделать тест через iperf по прямым адресам и через тоннель, сравнить результаты.
    В случае проблем с подключением до сервера без тоннеля, замерить потери до него через утилиты вроде WinMTR и в зависимости от того, на каком узле происходят потери, с результатами обращаться в техподдержку провайдера или хостера.
    В случае проблем с подключением только при использовании VPN, попробовать настроить VPN другого типа
    Ответ написан
    Комментировать
  • Как установить нужную версии aiogram PyCharm?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    $ cd /d project
    $ python -m venv venv
    $ venv\Scripts\activate
    $ pip install aiogram==2.25.2
    $ pip install aiohttp==3.8.1

    Либо, попробуйте более старую версию aiohttp:
    $ pip install aiogram==2.25.2
    $ pip install aiohttp==3.7.4

    Затем, под виртуальным окружением (как под грибами), запускаем скрипт, визуально, это будет выглядеть примерно так:
    user@PC C:\project
    $ venv\Scripts\activate
    (venv) user@PC C:\project
    $ python main.py

    P.S. команды под Windows, для Linux некоторые из них будут слегка отличаться.
    Ответ написан
    3 комментария
  • Gateway fallback, или как сделать VRRP на коленке?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Берёте keepalived и натягиваете на него нужные скрипты с модификацией маршрутов.
    Ответ написан
    2 комментария
  • Как взламывают БД (MongoDB)?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Не факт, что взламывают именно базу напрямую. Возможно скомпроментирован сервер, и в нем уже висит какой-то бекдор, через который ходят и вашу базу от имени локального mongo юзера коцают.
    Ответ написан
    Комментировать
  • Как взламывают БД (MongoDB)?

    mikes
    @mikes
    нарисуйте схему взаимодействия компонентов приложения и что именно торчит от него в публичной части. будут понятны векторы атак.

    вангую что ломают вас не через субд как таковую (хотя держать ее с доступом извне странно) а через приложение. где то там есть возможность проводить инъекции и тд
    Ответ написан
    Комментировать
  • Windows 2019 terminal server два вопроса по AppLocker, и по смене пароля ползователя?

    pindschik
    @pindschik
    ФЫВА ОЛДЖ
    Яндекс-браузер - так и ставится в профиль пользователя. А поставить его крайне настойчиво предлагает сам Яндекс при посещени поисковика...

    С AppLocker есть проблема легкого обхода, тут даже на хабре были статьи. Плюс там надо делать хэш, а это значит что даже Хром и Edge при каждом обновлении будет выпадать из белого списка...
    Тем не менее - этот вопрос решается и решение не техническое, а организационное. Запрещаете приказом, знакомите с приказом, включаете при необходимости в положение о премировании, должностную инструкцию, трудовой договор.
    Потом делаете аудит и снижаете премию пойманным, с публикацией приказа внутри организации, чтоб остальным было неповадно. Рецидивистам делаете дисциплинарные взыскания и увольнения. И проблема решается - пусть и не техническими методами. В том числе с кадрами типа "ой, а оно само, я ничего не делалала, я в этом ничего не понимаю".

    Не очень хорошо, но можно сделать скрипт, пробегающий профили и всем исполяемым файлам (.exe, .com, .msi, .msp, .bat, .scr, .js, .dll), навешивает аттрибут запрет исполнения. При этом отбираете у профиля пользователя полные права на файлы профиля (только в разрезе смены прав и выполнения), и удаляете права для создателя файла. Потребуется немного в политиках объяснить системе, что без полных прав тоже приемлемо. Тогда скачать они смогут, запустить нет. При этом нужно запрещать создание папок на диске С и запрещать исполнение файлов на других сетевых ресурсах.
    Можно поиметь проблем с совместимостью с ПО, надо тщательно тестировать.

    Отключать проверку пароля на уровне сети - крайне опасная затея. Т.к. терминальная сессия становиться доступна без пароля и соответственно все уязвимости доступны злоумышленникам в полной мере. Особенно если она "светит" наружу.

    Система напоминает о скорой замене, по умолчанию за две недели, но многие пользователи обладают выборочной слепотой и не видят уведомление. Попробуйте настроить скрипт рассылки ИМ писем, когда пароль заканчивается и что его пора сменить. А для особо запущенных случаев, если не хотите, чтоб каждое утро у вас начиналось со смены паролей - есть жестокий способ - при обращении пользователя меняйте ему пароль, но на серийники от Windows XP или что-то подобное. После пары вводов такого пароля - они сразу и резко научаются их менять и перестают забывать (кроме отпусков).

    Еще не забывайте про утекшие пароли, через которые вам однажды занесут шифровальщика. Раньше такой проблемы не было, сейчас она очень острая. При чем атаковать вас будет не вирус, а человек оборудованный головным мозгом. Поэтому на внешних терминалах обязательно прикручивайте двухфакторку. Тот же MultiOTP бесплатен, и умеет дружить с Active Directory. А на смартфоне он совместим с кучей программ, вплоть до Google Authenticator.
    Уж если вам так хочется решить проблему паролей - сделайте их бессрочными, разрешите сохранять на клиентских устройствах, но оставьте проверку одноразового ПИН-кода из аутентикатора.
    Тогда пользователь при подключении введет пароль, поставит галку "сохранить", а дальше будет заходить фактически только по ПИНу, украсть который нереально (ну пока что).

    З.Ы.
    По возможности завязывайте с серверами 2019, 2016, 2012 и т.д. Сейчас актуален 2022. На 2019 уже начинается "проблема Windows XP".
    Ответ написан
    1 комментарий
  • Насколько реализуемо сделать бота анонимайзер?

    Wispik
    @Wispik
    А какие способы и направления нужны, если все в вопросе расписано?
    Получаешь ботом сообщение в одном чате -> отправляешь его в другой чат. Всё!
    Ответ написан
    1 комментарий
  • Какие можно посмотреть курсы/уроки по практике на rust?

    vabka
    @vabka Куратор тега Rust
    Оставлю шутки, про "выучил раст" в стороне и пойду по порядку, тем более что судя по недавним вопросам - заявление крайне смелое.

    0. По хорошему стоит подтянуть математику, тк она помогает абстрактно мыслить, а без этого в разработке будет крайне тяжело. (Опять же по соседним вопросам - математика не дотягивает даже до 9 класса мбоу сош).
    В принципе на этом моменте тебе больше не нужно будет задавать подобные вопросы.

    1. Проверь, что ты действительно прочитал хотябы растбук и понял его.

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

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

    4. На этом шаге можно уже смело пытаться заработать в п2

    Всё очень абстрактно, тк сильно зависит от того, что ты сам хочешь.
    В принципе за пару лет вполне реально управиться.

    PS: в последнее время мне нравятся видосы decrusting ... от чела https://youtube.com/@jonhoo?si=9VbtXlH4dgdCrwQ-
    Три часа непрерывного разбора всех абстракций какой-то библиотеки
    Ответ написан
    Комментировать
  • Как сделать делать демо доступ к сайту на Django без абуза со стороны юзера?

    @iljaGolubev
    3. Отдельные сервера для демо. Без "регистрации и смс" валидации почты, телефона и чего там ещё на основном. Хард-ресет демо окружения каждые X минут (удаление сессий, очистка баз).
    И пусть себе играются пока могут.

    4. Общий юзер для всех demo / demo@mail
    Ответ написан
    Комментировать
  • Как сделать делать демо доступ к сайту на Django без абуза со стороны юзера?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    логин demo(demo@site.ru) пароль qwerty или demo
    Внутри сам решишь чего этой учетке можно.

    Все остальное раздражает. Хочу за 15 секунд попасть во внутрь, а не делать какие-то действия связанные с персональными данными

    Можешь у своих пользователей сделать состояние (подписка истекла), только реальный ее может продлить, а демке это запрещено
    Ответ написан
    Комментировать
  • Сложная маршрутизация на linux роутере. Как правильно готовить policy based routing?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    По поводу этого лучше всего начать с LARTC HOWTO.

    Если кратко, маршрутищация в iproute2 устроена так. Есть несколько таблиц маршрутизации, из которых 3 есть всегда (local, main, default), но можно создать ещё. По правилам (команда ip rule) перебираются таблицы, подходящие под условия, в соответствии с приоритетами (preference, первое число в выводе команды). И в каждой таблице есть свои маршруты. Таблицу local изменять нельзя и перед ней ничего маршрутизировать нельзя (это можно обойти через nat в PREROUTING, но это уже другой вопрос).

    Самый простой вариант - это source routing. Впервые мне это понадобилось, когда я подключил дома второго провайдера с внешним IP, и мне потребовалось отвечать с обоих внешних адресов со всего интернета. Делается так:

    1. В /etc/iproute/rt_tables описываем псевдонимы для новых таблиц (необязательно - можно использовать числовые идентификаторы - но так удобнее). Например, 10 - isp1, 20 - isp2.

    2. Задаём правила, которые приведут к выбору таблицы в зависимости от source address:

    ip rule add pref 10 from IP1 lookup isp1
    ip rule add pref 20 from IP2 lookup isp2

    3. В каждую таблицу добавим маршрут default через нужного оператора:

    ip route add default via GATEWAY1 table isp1
    ip route add default via GATEWAY2 table isp2

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

    ip route add default via GATEWAY1

    Всё это иногда можно в той или иной степени засунуть в конфиги сети (зависит от дистрибутива Linux весьма существенно), а иногда приходится делать скриптами, в том числе, возможно, вызываемыми через hook системы инициализации сети (я, например, обновлял маршрутизацию через postup-хук dhcp-клиента и из скрипта, который поднимал pptp-vpn).

    В дальнейшем всё это обросло кучей других особенностей, например, ip rule fwmark по меткам, которые ставилилсиь в iptables по connmark и иногда другим условиям, но это уже следующий уровень сложности и более специфичне задачи. И LARTC HOWTO почитать всё равно рекомендую, ибо там основа основ и все гуру по нему учились.
    Ответ написан
    3 комментария
  • Почему Python не видит библиотеку?

    @Everything_is_bad
    import SpeechRecognition
    вот откуда ты взял этот код? Сам придумал? Открой доки SpeechRecognition и почитай как его использовать. И это надо делать сразу, перед тем как бежать сюда
    Ответ написан
    Комментировать
  • Как правильно разбить csv файл?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Прочитать файл построчно, разбить каждую строку по разделителю, условным оператором проверить, что первый элемент начинается с "example", в истинном блоке записать строку в один файл, в ложном в другой. Либо примерно то же, но с помощью спискового включения с группировкой.
    Ответ написан
    Комментировать
  • Как найти проблему в локальной сети?

    @Gansterito
    Нужно начать со структурирования сети:
    1) Убрать гирлянды, каждый коммутатор должен быть включен в один центральный "агрегатор", лучше L3.
    2) Сегментировать L2 домены с помощью VLAN.
    3) Настроить механизмы Loopback detection/Storm control и пр.
    4) Настроить DHCP Snooping/IP Source Guard и пр. для ограничения статических IP.
    5) Мониторинг: опрос всех устройств по SNMP, сбор логов по SYSLOG.
    Ответ написан
    Комментировать
  • Почему VS Code не распознает, что функция вернет tuple?

    Vindicar
    @Vindicar
    RTFM!
    Потому что оба оверлоада неразличимы - они ОБА показывают один аргумент типа bool.
    И да, а если аргумент не указан, что вернёт функция? Из твоего кода это неясно вообще, так как у тебя два противоречащих варианта.
    Тебе надо что-то типа...
    @overload
    @classmethod
    def get_mac_address(cls, with_gateway: typing.Literal[False] = False) -> str:
        ...
    @overload
    @classmethod
    def get_mac_address(cls, with_gateway: typing.Literal[True]) -> tuple[str, str]:
        ...
    @classmethod
    def get_mac_address(cls, with_gateway: bool = False) -> typing.Union[str, tuple[str, str]]:
        ...
    Ответ написан
    3 комментария