-
-
Notifications
You must be signed in to change notification settings - Fork 15
Add Windows qvm-connect-tcp support. #9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
|
Thanks for the PR! Would you mind opening an issue and linking the PR to it, for better visibility? @jevank do you have any thoughts on this? |
|
PipelineRefresh |
Thank you for your quick response, I have opened an issue on the issue tracker, and when there is anything is else I can do, I'd be happy to. |
|
Thanks for the PR @ernst-qos! |
|
I think it would be great to be able to connect tcp directly via qrexec-client-vm! It would also be great to do stdio queries without external applications similar to linux. Thanks @ernst-qos ! But I don't know if it would be safer to use a ported netcat than the built-in one. I will try to test all of it. |
|
@jevank a ported netcat (without |
|
I think implementing this in qrexec itself is a better approach than relying on an external netcat command. Process creation on Windows is slow, for one. |
|
Sorry for the long delay. I've tried build from CI, changes don't break it, but can't be fully tested because of excluded stdio forward utility. Hope to make complete tests soon.
Right. On second thought, I agree that qrexec-client-vm, run by a user with his privileges, looks fine with network activity. |
Allows other qubes to connect tcp ports in the Windows qube.
|
I also added a service for incoming qubes.ConnectTCP. Both incoming and outgoing connections have been tested.
@jevank I am compiling it as part of https://github.com/QubesOS/qubes-windows-tools-cross and for now I am just copying over the binaries. |
Summary:
TCP/Socat/Ncat:
On Linux socat is used for TCP <-> STDIO conversion, running socat on Windows requires a POSIX like environment, e.g., Cygwin.
To avoid the need for such an environment a tool native to Windows that could replace socat could be used. The only reasonable option for such a tool would be ncat. However, the ncat option has the following problems:
Instead of these options, I added about 200 lines of code to
qrexec-client-vmto directly support tcp listening.Open Questions:
Qubes Toolsthat can be added to the PATH).qrexec-services? Or do we prefer to use ncat (or a similar program) for that?ToDo: