Задать вопрос
  • Как направить траффик разных приложений по разным шлюзам?

    @Belkogoth
    Есть еще способ через QoS, но чутка костыльный.
    Предисловие: у меня дома и на работе стоят микротики. Для доступа на забугорные закрытые сайты у меня поднят Mikrotik CHR на виртуальном сервере (VPS) в другой стране, а микроты дома и на работе подключены к нему по SSTP и гоняют туда траффик на списки адресов, указываемые вручную, я это сделал чтобы не ковыряться с VPN на каждом личном устройстве, то есть подключаюсь дома\на работе по вайфаю\проводу к роутеру, а если я вне дома - по мобильному интернету, к примеру, по Wireguard до самого VPN, и все нужные сайты прозрачно работают.
    Потребовалось гонять весь траффик через VPN для отдельного приложения. На андроиде это делается просто, Wireguard, да и многие другие VPN-программы позволяют заворачивать траффик отдельных программ, но не в винде, там такого попросту нету (хотя может и есть, но скрыто или через цепочку приемов, я не разбирался еще).
    И вот для этого можно использовать костыль - маркировать DSCP метками пакеты, которые отправляет приложение, это позволяет делать групповая политика QoS. Причем как отдельное приложение по указанному пути, так и любое с указанным именем. Но для реализации, сразу отмечу, снаружи должен быть роутер, который позволяет настраивать правила обработки таких пакетов, к примеру, Mikrotik, Openwrt-роутер, Zyxel, они тоже умеют. и т.п.
    1. Включаем всю эту бадягу в реестре:<br />
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters, меняем (если нет - создаем) параметр DWORD с именем DisableUserTOSSetting и значением 0.
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Qos. Если нет раздела QoS - создаем его,
    внутри создаем строковый параметр с именем Do not use NLA и значением 1. перезагружаемся. Разумеется, должны быть включены в свойствах сетевого адаптера службы типа QoS и т.п., на современных машинах и на современной винде обычно там все стоит по умолчанию.

    2. Создаем групповую политику на основе QoS
    Открываем gpedit.msc (или ищем в пуске изменение групповой политики), там открываем Политика "Локальный компьютер"---Конфигурация компьютера---Конфигурация Windows, нажимаем правой кнопкой на пункт "QoS на основе политики.", выбираем создание новой политики. В окне заполняем поле "Имя политики" (как удобно, например, по имени программы и задаваемому DSCР), указываем значение DSCP. Лучше начинать "с конца" - 63.
    Жмем "Далее", в след окне выбираем "только приложениям с именем исполняемого файла". Можно указать конкретный путь к программе, можно просто указать имя приложения, например, opera.exe. В случае имени винда будет назначать DSCP метку всем процессам с этим именем, то есть обновления программы не повлияют.
    В следующих окнах можно оставлять как есть, но в последнем окне в пункте "Выберите протокол, в которм применяется политика QoS" выбираем TCP и UDP. Все, жмем "готово".

    Теперь самая соль. В десятке и 11-й (как в других хз) это правило обычно не работает (проверено Wireshark и Torch на микротике), потому что система по какой-то балде решает по умолчанию применять правило к доменному сетевому профилю. Ща исправим.
    Правим политику через Powershell
    Открываем Powershell от имени администратора, набираем
    NetQosPolicy.
    Должно выдать наше правило с его именем и параметрами, что-то вроде такого:
    Name : Opera DSCP
    Owner : Group Policy (Machine)
    NetworkProfile : domain
    Precedence : 127
    AppPathName : opera.exe
    JobObject :
    IPProtocol : Both
    DSCPValue : 63
    Запоминаем имя в строке "Name"Теперь вводим:
    set-NetQosPolicy "Opera DSCP" -NetworkProfile "All". Если не выдал ничего красным, а просто молча проглотил команду - все хорошо, теперь IP-пакеты приложения будут отправляться в маршрут по умолчанию на роутер с DSCP-меткой.

    Собсно, всё, теперь траффик приложения будет метиться DSCP-меткой, можно создать несколько правил, которые будут разные приложения метить одной, либо разными метками. На роутере, или через что там ПК выходит в интернет, можно создать правило, отправляющее все пакеты с этими метками по нужному маршруту. Лично у меня на микротике просто в Mangle создано правило:
    /ip/firewall/mangle/ add chain=prerouting in-interface=(порт, куда воткнут ПК, либо вместо этого src-address=адрес пк\ноутбука с Windows в сети) dscp=63 action=route dst-address=(внутренний адрес VPN сервера в той подсети, которую сервер выдал роутеру) comment="комментарий"

    Я вот хз, может в самом Windows через политики как-то можно этот траффик отправлять по какому-либо маршруту так же?*) Если знает кто - поделитесь.
    Ответ написан
    Комментировать
  • Почему в RouterOS после обновления под admin'ом не могу открыть terminal?

    @YunSergey
    Здравствуйте.
    1. Нельзя;
    2.Нельзя.
    В микротике нет встроенной группы admin, группу admin создал пользователь system, который вас туда же и поместил.
    Кстати этот пользователь заходил на микротик за 5 часов до вас.
    В вашем случае возможно хорошим вариантом будет сделать экспорт конфигурации и бекап. Выполнить сброс устройства, загрузить экспорт (внимание, при экспорте не сохраняются сертификаты и некоторые пароли). Если вдруг не смогли корректно восстановиться из экспорта конфигурации, восстановитесь с сделанного бэкапа (он восстановит настройки полностью, в том числе с записью system).
    А вообще точно подумайте, что это за пользователь system, случайно не какой-то старший администратор вашей компании?
    P.S. Почитайте про бекапы и экспорты/импорты конфигурации на микротик, все в один пост не вместить.
    Ответ написан
    Комментировать
  • Как запретить устройству обьявлять себя шлюзом?

    martin74ua
    @martin74ua Куратор тега Linux
    Linux administrator
    Выключите dhcp сервер на точке.
    Ответ написан
    1 комментарий
  • Как запретить устройству обьявлять себя шлюзом?

    ValdikSS
    @ValdikSS
    Настройте DHCP-сервер (в OpenWrt это dnsmasq по умолчанию), чтобы он не отдавал опцию 3 (Router).
    Ответ написан
    1 комментарий
  • Как запретить устройству обьявлять себя шлюзом?

    @va_k
    DHCP сервер вместе с адресом сообщает и адрес роутера.
    Ответ написан
    Комментировать
  • Как сохранить обьект в файл?

    @MaxKozlov Куратор тега PowerShell
    Export-Clixml / Import-Clixml
    "Живой" объект не воссоздаст, но все свойства будут доступны

    под "живым" я подразумеваю штуки типа WMI
    Ответ написан
    2 комментария
  • Какую версию assembler учить (MASM или FASM)?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Assembler
    Седой и строгий
    MASM и FASM - это компиляторы, а не языки. Различия в коде для MASM и FASM только на уровне директив и макросов. У языка Ассемблера есть два основных диалекта - синтаксис Intel и синтаксис AT&T, а также различный набор инструкций для различных архитектур процессоров. Я рекомендую начать с эмулятора 8086 в реальном режиме и только освоив в должной мере основы, выбирать компилятор.
    Ответ написан
    Комментировать
  • Почему содержимое пакетов в Wireshark не совпадает с описываемым в спецификации протокола IP?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Вы смотрите заголовок Ethernet-кадра, который передаётся в пределах локальной сети. Заголовок IPV4 начинается дальше с октета 0xE.
    Ответ написан
    Комментировать
  • Какой тип ФС и тип разметки лучше для сервера на линуксе?

    CityCat4
    @CityCat4
    Жил да был черный кот за углом...
    ext4
    lvm

    Отсутствие lvm при необходимости расширения ФС приведет к старинному решению - монтирование разделов в точки монтирования (ну то есть в /usr монтируем /dev/sdb1, в /var - /dev/sdb2 etc). Это вполне себе решение обкатанное тысячами инсталляций, но у него есть существенный недостаток - для его реализации нужно останавливать сервер на все время копирования /usr, /var etc на новые расположения.
    Если останов сервера некритичен - можно lvm не использовать. Я в свое время дико натрахался с этим расширением ФС на FreeBSD (где lvm нет - ну по крайней мере в 9.1-RELEASE не было) поэтому на линухе lvm - это просто что-то с чем-то.
    Ответ написан
  • Какой тип ФС и тип разметки лучше для сервера на линуксе?

    @Drno
    ext4 ставь голый, не ошибешься. один момент - если рейд, то сложно расширить потом
    Ответ написан
    1 комментарий
  • Какой тип ФС и тип разметки лучше для сервера на линуксе?

    martin74ua
    @martin74ua Куратор тега Linux
    Linux administrator
    Судя по вопросу - отдайтесь на мнение инсталлятора. Вот что он вам поставит - то и оставьте...
    Ответ написан
    4 комментария
  • Какой тип ФС и тип разметки лучше для сервера на линуксе?

    shambler81
    @shambler81 Куратор тега Linux
    btrfs - она конечно не так хорошо отлажена как ext4 но у нее есть отличный плюс перекрывающий минусы а именно
    btrfs snapshot - в случае аварии при обновление и тд и тп ты просто загружаешься, и при старте системы выбираешь снепшот для отката состояния.
    И если на ВПС то это нафиг не нужно, то на дидикейт это просто сказка-какая-то.
    https://losst.ru/obzor-ext4-vs-btrfs-vs-xfs
    Ответ написан
  • OpenSSH в Windows 10. По какой причине доступ запрещен?

    @MaxKozlov
    Добрался до компа, напишу уж тут :)
    В логах сервера видно что за проблема - не те права у того самого файлика, что я упоминал в комментарии
    debug3: Bad permissions. Try removing permissions for user: S-1-5-11 on file C:/ProgramData/ssh/administrators_authorized_keys.
    Authentication refused.

    При подключении к OpenSSH-серверу, установленному, на win и использовании аутентификации по ключу, необходимо обращать внимание на два момента:
    1. Если пользователь админ - его публичный ключ должен быть указан в C:\ProgramData\ssh\administrators_authorized_keys
    2. Убедиться что владелец файлов *authorized_keys правильный: системных - система, юзерских - юзер, и без лишних доступов.
    Например, установить права для системного можно скопировав их с другого файла:
    $acl = Get-Acl C:\ProgramData\ssh\ssh_host_dsa_key.pub
    Set-Acl -Path C:\ProgramData\ssh\administrators_authorized_keys -Acl $acl

    Ещё в комплекте c GitHub идут специальные скрипты для тех же целей:
    FixHostFilePermissions.ps1
    FixUserFilePermissions.ps1

    Они что-то ещё в реестре вроде бы правят

    Вариант обхода настроек для этого файла -закомментировать в конфигах его упоминание:
    Match Group administrators
           AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
    Но это не рекомендуется

    Ну, и, как замечено в комментариях, необходимо убедиться в правильной кодировке файла
    https://github.com/PowerShell/Win32-OpenSSH/issues...
    Если коротко, то оказалось что кодировкой *authorized_keys по дефолту является UCS-2 LE BOM, вместо ожидаемого UTF-8. После смены кодировки все заработало так как надо.

    Мои лично файлы все в ASCII
    Ответ написан
    4 комментария
  • Аналоги RDP в винде?

    @Drno
    VNC, ибо наилучший вариант. И такие вещи все равно обычно размещаются в локалке или через VPN
    Ответ написан
    Комментировать
  • Пишу первый проект Hello World и сразу фейл, в чем ошибка?

    Раз вы пишите на Java, то сразу советую использовать SceneBuilder для создания GUI.
    Описание события onButtonClickEvent так же советую писать в отдельном контроллере.
    Ошибки возникают из-за несуществующего startButton.
    Ответ написан
    4 комментария
  • Пишу первый проект Hello World и сразу фейл, в чем ошибка?

    alexgp13
    @alexgp13
    Руководитель ИТ-проектов
    Activity и интерфейс существуют в Андроиде независимо друг от друга, перед кодом с ошибкой (перед 20 строкой) добавьте строку
    ImageButton startButton = findViewById(R.id.startButton);


    То есть Вам надо объявить эту самую переменную startButton и связать ее с элементом интерфейса.
    Ответ написан
    3 комментария
  • Как в Eclipse IDE скомпилировать в Debug с созданием отладочных символов?

    YuriyVorobyov1333
    @YuriyVorobyov1333
    Software Developer
    ПКМ на проект -> Properties -> C/C++ Build -> Settings -> Tool Settings -> GCC C++ Compiler -> Miscellaneous. Там будет Other flags, туда все и вводим. Также можете посмотреть здесь, здесь, здесь и здесь
    Ответ написан
    1 комментарий
  • Что не так в Eclipse IDE?

    Первый аргумент функции printf() char * а не char. Кроме того, первый аргумент это форматный спецификатор. Т.е. правильное использование printf("%c", x).
    Ответ написан
    1 комментарий
  • Что не так в Eclipse IDE?

    @Mercury13
    Программист на «си с крестами» и не только
    printf("%c", x);
    Форматную строку упустил.
    Ответ написан
    1 комментарий