Re: "dbus-monitor --system" stopped monitoring method calls remotely

Oleg Kuznecov <[email protected]>
Newsgroups gmane.comp.freedesktop.dbus
Message-ID <CAP0fJ1+DkFG+bgCEuShHt_CeKZRP+OPv=JRFXk3ViZanf-p6cg@mail.gmail.com>
Thanks, this is very helpful.

2018-04-12 14:55 GMT+03:00 Simon McVittie <smcv-ZGY8ohtN/[email protected]>:

> On Wed, 11 Apr 2018 at 16:36:43 +0100, Simon McVittie wrote:
> > On Wed, 11 Apr 2018 at 17:44:58 +0300, Oleg Kuznecov wrote:
> > > I have a problem: after dbus upgrade from 1.10.6 to 1.12.6,
> dbus-monitor
> > > stopped  monitoring  method calls if try to monitor remote mashine via
> TCP/IP.
> > > Displays only signals.
> >
> > Never use D-Bus remotely via TCP. It has no network-level security,
> > making it vulnerable to eavesdropping and unauthorized access.
>
> One thing for which people sometimes (ab)use D-Bus over TCP is this
> scenario:
>
> * some service and some client run on an embedded device
> * debugging the client on the embedded device is inconvenient
> * a developer wants to run a local build of the client on their
>   workstation and connect it to the service on their embedded device
>
> Using <listen> or --listen to make the dbus-daemon listen on TCP for this
> purpose should be considered dangerous.
>
> The correct way to do this is to set up a tunnel using ssh, socat or a
> similar relaying tool, which makes it explicit that the security (or lack
> of security) of this relaying is entirely the developer's responsibility.
>
> Since version 1.5.12, dbus has supported a unixexec: transport which is
> very convenient for this:
> <https://bugs.freedesktop.org/show_bug.cgi?id=35230>. systemd provides a
> tool, systemd-stdio-bridge, designed to be used as a unixexec relay.
> For example, you can connect a client on the workstation to the dbus-daemon
> on the embedded device like this:
>
> dbus-monitor --address "unixexec:path=ssh,argv1=root%
> 40embedded-device,argv2=systemd-stdio-bridge"
>
> or by passing that address to APIs like
> g_dbus_connection_new_for_address() or dbus_connection_open_private(). You
> can also make a client process connect to the embedded device's
> system bus whenever its own system bus is requested, by setting the
> DBUS_SYSTEM_BUS_ADDRESS environment variable.
>
> When connecting like this, the client will be acting with the privileges
> of whatever user ran the systemd-stdio-bridge process, for example root
> in my dbus-monitor example above (because I used root@embedded-device
> as the argument to ssh).
>
> Note that like all D-Bus addresses, special characters
> such as @ in the parameters of unixexec: addresses
> must be escaped in the same way you would for HTTP (%xx). For example,
> unixexec:path=ssh,argv1=root%40embedded-device,argv2=systemd-stdio-bridge
> runs the equivalent of the shell command-line
> 'ssh root@embedded-device systemd-stdio-bridge'.
>
>     smcv
> _______________________________________________
> dbus mailing list
> [email protected]
> https://lists.freedesktop.org/mailman/listinfo/dbus
>

_______________________________________________
dbus mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/dbus
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.