14.2. Distributed Component Object Model (DCOM)
DCOM is a Microsoft protocol for
distributed computing which is based on RPC. DCOM is the mechanism
icrosoft suggests that developers use for all client-server
computing on Microsoft platforms, and most applications that are
listed as using Microsoft RPC are actually using DCOM. DCOM can use
either TCP or UDP; under Windows NT 4, it defaults to using UDP,
while most other DCOM implementations default to using TCP. If the
default version of RPC does not work, servers will use the other.
Although DCOM is based on RPC, it adds a number of features with
important implications for firewalls. On the positive side, DCOM adds
a security layer to RPC; applications can choose to have integrity
protection, confidentiality protection, or both.
On the negative side, DCOM transactions are more complicated to
support through firewalls than straightforward RPC transactions. DCOM
transactions include IP addresses, so DCOM cannot be
straightforwardly used with firewall mechanisms that obscure the IP
address of the protected machines (for instance, proxying or network
address translation). DCOM servers also may use callbacks, where the
server initiates connections to clients, so for some services, it may
be insufficient to allow only client-to-server connections.
icrosoft has produced various ways to run DCOM over HTTP. These
methods allow you to pass DCOM through a firewall without the
problems associated with opening all the ports used by Microsoft RPC.
On the other hand, if you use these methods to provide for incoming
DCOM access, you are making all your DCOM servers available to the
Internet. DCOM services are not written to be Internet accessible and
should not be opened this way.
You can
control DCOM security configuration and the ports used by DCOM with
the dcomcnfg application. The Endpoints tab in
dcomcnfg will let you set the port range used
for dynamically assigned ports, and if you edit the configuration for
a particular DCOM service, the Endpoints tab will allow you to choose
a static port for it. This is safer than editing the registry
directly, but you should still be careful about the port number you
choose; if port numbers conflict, services will not work correctly.
Do not statically assign services to port numbers that are low in the
port range (these will frequently be dynamically assigned) or to port
numbers that are statically assigned to other services.
| | |
14. Intermediary Protocols | | 14.3. NetBIOS over TCP/IP |