netcore app.dll и firewall
От: okon  
Дата: 04.12.23 06:54
Оценка:
Раньше приложение поставляли в виде обычного exe файла ( была написана С++ ) и для него можно было настроить файрвол и запретить процессу исходящие запросы.
Сейчас ее переделали на нет.коре и поставляется в виде dll файла и запускается через dotnet app.dll.

1) можно ли создать exe для данной app.dll ( исходников нету ) при этом чтобы он не просто запускал еще один процесс, а в рамках него чтобы работала dll ( чтобы настройки firewall работали)
2) возможно есть способ настроить файрвол для net core dll ?

ОСь Windows
”Жить стало лучше... но противнее. Люди которые ставят точку после слова лучше становятся сторонниками Путина, наши же сторонники делают акцент на слове противнее ( ложь, воровство, лицемерие, вражда )." (с) Борис Немцов
Re: netcore app.dll и firewall
От: Разраб  
Дата: 04.12.23 06:58
Оценка:
Здравствуйте, okon, Вы писали:

O>Раньше приложение поставляли в виде обычного exe файла ( была написана С++ ) и для него можно было настроить файрвол и запретить процессу исходящие запросы.

O>Сейчас ее переделали на нет.коре и поставляется в виде dll файла и запускается через dotnet app.dll.

O>1) можно ли создать exe для данной app.dll ( исходников нету ) при этом чтобы он не просто запускал еще один процесс, а в рамках него чтобы работала dll ( чтобы настройки firewall работали)

O>2) возможно есть способ настроить файрвол для net core dll ?

O>ОСь Windows

что за специфические требования к настройке? если у вас сетевой сервис, то нужно просто открыть нужный порт на файрволе, добавлять exe в исключения не обязательно.
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[2]: netcore app.dll и firewall
От: okon  
Дата: 04.12.23 07:02
Оценка:
Здравствуйте, Разраб, Вы писали:

Р>Здравствуйте, okon, Вы писали:


O>>Раньше приложение поставляли в виде обычного exe файла ( была написана С++ ) и для него можно было настроить файрвол и запретить процессу исходящие запросы.

O>>Сейчас ее переделали на нет.коре и поставляется в виде dll файла и запускается через dotnet app.dll.

O>>1) можно ли создать exe для данной app.dll ( исходников нету ) при этом чтобы он не просто запускал еще один процесс, а в рамках него чтобы работала dll ( чтобы настройки firewall работали)

O>>2) возможно есть способ настроить файрвол для net core dll ?

O>>ОСь Windows

Р>что за специфические требования к настройке? если у вас сетевой сервис, то нужно просто открыть нужный порт на файрволе, добавлять exe в исключения не обязательно.

почему специфические, мне не нужно ограничивать исходящий траффик для всех приложений. А только для конкретного и я не знаю какой порт оно может использовать поэтому блокировать надо все.
”Жить стало лучше... но противнее. Люди которые ставят точку после слова лучше становятся сторонниками Путина, наши же сторонники делают акцент на слове противнее ( ложь, воровство, лицемерие, вражда )." (с) Борис Немцов
Re: netcore app.dll и firewall
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 04.12.23 08:21
Оценка:
Здравствуйте, okon, Вы писали:
https://stackoverflow.com/questions/59380032/how-do-i-allow-a-net-core-console-app-ftp-connection-through-windows-firewall
и солнце б утром не вставало, когда бы не было меня
Re[2]: netcore app.dll и firewall
От: okon  
Дата: 04.12.23 08:53
Оценка:
Здравствуйте, Serginio1, Вы писали:

S>Здравствуйте, okon, Вы писали:

S>https://stackoverflow.com/questions/59380032/how-do-i-allow-a-net-core-console-app-ftp-connection-through-windows-firewall


Там предлагается "provide the absolute path to dotnet.exe" и нет возможности указать конкретную app.dll.
А запрещать исходящие всем приложениям которые через dotnet.exe запускаются не нужно.
”Жить стало лучше... но противнее. Люди которые ставят точку после слова лучше становятся сторонниками Путина, наши же сторонники делают акцент на слове противнее ( ложь, воровство, лицемерие, вражда )." (с) Борис Немцов
Re[3]: netcore app.dll и firewall
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 04.12.23 09:17
Оценка: 2 (1)
Здравствуйте, okon, Вы писали:


S>>Здравствуйте, okon, Вы писали:

S>>https://stackoverflow.com/questions/59380032/how-do-i-allow-a-net-core-console-app-ftp-connection-through-windows-firewall


O>Там предлагается "provide the absolute path to dotnet.exe" и нет возможности указать конкретную app.dll.

O>А запрещать исходящие всем приложениям которые через dotnet.exe запускаются не нужно.

А --self-contained true не может помочь?
https://learn.microsoft.com/ru-ru/dotnet/core/tools/dotnet-publish
и солнце б утром не вставало, когда бы не было меня
Re: netcore app.dll и firewall
От: karbofos42 Россия  
Дата: 04.12.23 09:30
Оценка: 2 (1)
Здравствуйте, okon, Вы писали:

O>1) можно ли создать exe для данной app.dll ( исходников нету ) при этом чтобы он не просто запускал еще один процесс, а в рамках него чтобы работала dll ( чтобы настройки firewall работали)


Ну, по идее, можно создать проект, который будет собирать exe, ему в зависимости добавить reference на эту dll.
В своём стартовом методе Launcher.Program.Main дёргать App.Program.Main (можно через студию или ILSpy глянуть какие в dll пространства имён, классы, где точка входа находится).

Можно ещё попробовать прокси прописать на 127.0.0.1 или где его заведомо нет.
На предмет этого можно посмотреть какие конфиги у dll есть,
либо запускать app.dll с добавлением переменных окружения HTTP_PROXY/HTTPS_PROXY/ALL_PROXY
но не факт, что весь сетевой обмен будет учитывать прописанный прокси.
Re[3]: netcore app.dll и firewall
От: Разраб  
Дата: 04.12.23 09:31
Оценка:
Здравствуйте, okon, Вы писали:


O>>>ОСь Windows

Р>>что за специфические требования к настройке? если у вас сетевой сервис, то нужно просто открыть нужный порт на файрволе, добавлять exe в исключения не обязательно.

O>почему специфические, мне не нужно ограничивать исходящий траффик для всех приложений. А только для конкретного и я не знаю какой порт оно может использовать поэтому блокировать надо все.



Узнать порт несложно, либо у разрабов чуда, либо самостоятельно посмотрев в мониторе ресурсов
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[4]: netcore app.dll и firewall
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 04.12.23 10:06
Оценка:
Здравствуйте, Разраб, Вы писали:

Р>Узнать порт несложно, либо у разрабов чуда, либо самостоятельно посмотрев в мониторе ресурсов

Порт может назначаться динамически, если уже занят по умолчанию, ну и таких dll может быть множество каждый со своим портом
и солнце б утром не вставало, когда бы не было меня
Re[3]: netcore app.dll и firewall
От: · Великобритания  
Дата: 04.12.23 10:34
Оценка: +1
Здравствуйте, okon, Вы писали:

O>Там предлагается "provide the absolute path to dotnet.exe" и нет возможности указать конкретную app.dll.

А может быть создать копию (симлинк) "dotnet2.exe", указать путь к нему и твоё приложение запускать через него?
Поставить вторую копию фреймворка?
В докер запереть, наконец?
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[4]: netcore app.dll и firewall
От: okon  
Дата: 04.12.23 13:17
Оценка:
O>>Там предлагается "provide the absolute path to dotnet.exe" и нет возможности указать конкретную app.dll.
O>>А запрещать исходящие всем приложениям которые через dotnet.exe запускаются не нужно.

S> А --self-contained true не может помочь?

S>https://learn.microsoft.com/ru-ru/dotnet/core/tools/dotnet-publish

По идее да, но можно ли его сделать для сторонней dll или только для исходников ?
”Жить стало лучше... но противнее. Люди которые ставят точку после слова лучше становятся сторонниками Путина, наши же сторонники делают акцент на слове противнее ( ложь, воровство, лицемерие, вражда )." (с) Борис Немцов
Re[4]: netcore app.dll и firewall
От: okon  
Дата: 04.12.23 13:21
Оценка:
Здравствуйте, ·, Вы писали:

·>Здравствуйте, okon, Вы писали:


O>>Там предлагается "provide the absolute path to dotnet.exe" и нет возможности указать конкретную app.dll.

·>А может быть создать копию (симлинк) "dotnet2.exe", указать путь к нему и твоё приложение запускать через него?

Да как вариант, попробую , но может есть какой-то более кошерный способ.
”Жить стало лучше... но противнее. Люди которые ставят точку после слова лучше становятся сторонниками Путина, наши же сторонники делают акцент на слове противнее ( ложь, воровство, лицемерие, вражда )." (с) Борис Немцов
Re[5]: netcore app.dll и firewall
От: · Великобритания  
Дата: 04.12.23 13:42
Оценка: 2 (1)
Здравствуйте, okon, Вы писали:

O>>>Там предлагается "provide the absolute path to dotnet.exe" и нет возможности указать конкретную app.dll.

O>·>А может быть создать копию (симлинк) "dotnet2.exe", указать путь к нему и твоё приложение запускать через него?
O>Да как вариант, попробую , но может есть какой-то более кошерный способ.
Очень сомневаюсь... Операционка не может в общем случае смотреть внтурь exe и разбираться что же там дальше происходит, какие другие файлы откуда загружаются и на основании этого выбирать правила firewall. Т.е. проверка exe — максимум чего можно добиться.
Предсавь себе ты хочешь настроить фаерволл для определённого .py-файла. Ничего не выйдет, придётся указывать python.exe про строение которого операционка ничего знать не может. Ведь .py-файл в общем случае может запускаться через несколько слоёв. Так и .net приложение.
Тебе надо иметь отдельный .exe, возможно его можно собрать специальным образом для конкретного приложения, но, имхо, самое простое — просто копи-пастнуть уже существующий .exe. Тем более как я понял это просто какой-то временный хак ты делаешь для себя лично, а не продукт для конечных пользователей.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Отредактировано 04.12.2023 13:45 · . Предыдущая версия .
Re[5]: netcore app.dll и firewall
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 04.12.23 14:15
Оценка:
Здравствуйте, okon, Вы писали:


O>>>Там предлагается "provide the absolute path to dotnet.exe" и нет возможности указать конкретную app.dll.

O>>>А запрещать исходящие всем приложениям которые через dotnet.exe запускаются не нужно.

S>> А --self-contained true не может помочь?

S>>https://learn.microsoft.com/ru-ru/dotnet/core/tools/dotnet-publish

O>По идее да, но можно ли его сделать для сторонней dll или только для исходников ?


Ну можешь создать свое приложение использующее эту Dll ку
и солнце б утром не вставало, когда бы не было меня
Re[6]: netcore app.dll и firewall
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 04.12.23 14:22
Оценка:
Здравствуйте, ·, Вы писали:


·>Очень сомневаюсь... Операционка не может в общем случае смотреть внтурь exe и разбираться что же там дальше происходит, какие другие файлы откуда загружаются и на основании этого выбирать правила firewall. Т.е. проверка exe — максимум чего можно добиться.


https://stackoverflow.com/questions/2633628/can-i-get-command-line-arguments-of-other-processes-from-net-c
Но может обработать командную строку
и солнце б утром не вставало, когда бы не было меня
Re[7]: netcore app.dll и firewall
От: · Великобритания  
Дата: 04.12.23 15:31
Оценка: +1
Здравствуйте, Serginio1, Вы писали:

S>Но может обработать командную строку

Кто? Зачем? Ты о чём? Предлагаешь в фаерволл регекспы на командную строку ставить? Я написал почему это не будет работать.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[8]: netcore app.dll и firewall
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 04.12.23 16:37
Оценка:
Здравствуйте, ·, Вы писали:

·>Здравствуйте, Serginio1, Вы писали:


S>>Но может обработать командную строку

·>Кто? Зачем? Ты о чём? Предлагаешь в фаерволл регекспы на командную строку ставить? Я написал почему это не будет работать.
Там даже без регекспов а просто путь с командной строкой
и солнце б утром не вставало, когда бы не было меня
Re[9]: netcore app.dll и firewall
От: · Великобритания  
Дата: 04.12.23 16:40
Оценка:
Здравствуйте, Serginio1, Вы писали:

S>·>Кто? Зачем? Ты о чём? Предлагаешь в фаерволл регекспы на командную строку ставить? Я написал почему это не будет работать.

S>Там даже без регекспов а просто путь с командной строкой
Я не понял что ты предлагаешь, но это не может работать в принципе.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[10]: netcore app.dll и firewall
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 04.12.23 16:44
Оценка:
Здравствуйте, ·, Вы писали:

·>Здравствуйте, Serginio1, Вы писали:S>>·>Кто? Зачем? Ты о чём? Предлагаешь в фаерволл регекспы на командную строку ставить? Я написал почему это не будет работать.

S>>Там даже без регекспов а просто путь с командной строкой
·>Я не понял что ты предлагаешь, но это не может работать в принципе.

Сейчас ты можешь настроить только на путь. Но хотелось бы добавить путь с параметрами, что бы фильровать еще и по параметрам.
Сейчас этого нет, но возможность такая есть ибо процесс эту информацию хранит.
и солнце б утром не вставало, когда бы не было меня
Re[11]: netcore app.dll и firewall
От: · Великобритания  
Дата: 04.12.23 17:59
Оценка:
Здравствуйте, Serginio1, Вы писали:

S>·>Здравствуйте, Serginio1, Вы писали:S>>·>Кто? Зачем? Ты о чём? Предлагаешь в фаерволл регекспы на командную строку ставить? Я написал почему это не будет работать.

S>>>Там даже без регекспов а просто путь с командной строкой
S>·>Я не понял что ты предлагаешь, но это не может работать в принципе.
S>Сейчас ты можешь настроить только на путь. Но хотелось бы добавить путь с параметрами, что бы фильровать еще и по параметрам.
S> Сейчас этого нет, но возможность такая есть ибо процесс эту информацию хранит.
Т.е. Ты предлагаешь фильтровать по совпадению на строчку "dotnet.exe App.dll"?
А вот так? "dotnet.exe .\App.dll"
А вот так? "dotnet.exe App.dll app-args"
А вот так? "dotnet.exe --depsfile xyz App.dll"
А вот так? "dotnet.exe AnotherAppWhichRuns-theApp-Indirectly.dll"
А вот так? "dotnet.exe SomethingCompletelyDifferent.dll --some-args=App.dll --more"

Ещё раз повторюсь — такое в принципе работать не может.

Фаерволл вешается где-нибудь внутре CreateProcess и проверяет путь до executable. А ты ещё предлагаешь парсить аргументы, разбираться в их структуре, понимать что к чему и где там имя Dll-ки который executable может загружать (а может и не загружать!) на выполнение.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Отредактировано 04.12.2023 18:03 · . Предыдущая версия . Еще …
Отредактировано 04.12.2023 18:00 · . Предыдущая версия .
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.