A method for transporting data between a host device and a guest device remote from the host device through a communications tunnel, wherein the communications tunnel is through a connection facilitation server in communication with the host device and the guest device over a network, and the data transported between the host device and the guest device is through at least one port of the host device, the communications tunnel, and at least one port of the guest device, the method comprising: receiving, at the connection facilitation server, a connection request from the guest device to establish the communications tunnel with the host device; receiving, at the connection facilitation server, an identification of the host device for indicating to the connection facilitation server that the host device is available for connection to the guest device, wherein the identification of the host device uniquely identifies the host device; establishing a session and the communications tunnel between the guest device and the host device via the connection facilitation server, in response to receiving the connection request and the identification of the host device, and wherein the identification of the host device is not received in response to receiving the connection request from the guest device; receiving logon credentials from the guest device at the host device through the communications tunnel; authenticating the guest device based on the logon credentials and the identification of the host device, using a security server in communication with the host device; if the guest device is authenticated, determining a role of the guest device based on the logon credentials, using the security server, wherein the role comprises one or more allowed host ports that the guest device is authorized to access and one or more allowed host applications associated with the one or more allowed host ports, the one or more allowed host applications capable of executing on the host device, wherein the allowed host ports are randomly selected prior to establishing the session; transmitting a list of the one or more allowed host ports and the one or more allowed host applications from the security server to the host device; transmitting the list of the one or more allowed host ports and the one or more allowed host applications from the host device to the guest device through the communications tunnel; receiving a selection of one of the one or more allowed host ports and the one or more allowed host applications from the guest device at the host device through the communications tunnel; and forwarding the data from the selected allowed host application through the selected allowed host port, the communications tunnel, and a port of the guest device, while the session is active, wherein the port of the guest device is dynamically selected by the guest device. receiving, at the connection facilitation server, a connection request from the guest device to establish the communications tunnel with the host device; receiving, at the connection facilitation server, an identification of the host device for indicating to the connection facilitation server that the host device is available for connection to the guest device, wherein the identification of the host device uniquely identifies the host device; establishing a session and the communications tunnel between the guest device and the host device via the connection facilitation server, in response to receiving the connection request and the identification of the host device, and wherein the identification of the host device is not received in response to receiving the connection request from the guest device; receiving logon credentials from the guest device at the host device through the communications tunnel; authenticating the guest device based on the logon credentials and the identification of the host device, using a security server in communication with the host device; if the guest device is authenticated, determining a role of the guest device based on the logon credentials, using the security server, wherein the role comprises one or more allowed host ports that the guest device is authorized to access and one or more allowed host applications associated with the one or more allowed host ports, the one or more allowed host applications capable of executing on the host device, wherein the allowed host ports are randomly selected prior to establishing the session; transmitting a list of the one or more allowed host ports and the one or more allowed host applications from the security server to the host device; transmitting the list of the one or more allowed host ports and the one or more allowed host applications from the host device to the guest device through the communications tunnel; receiving a selection of one of the one or more allowed host ports and the one or more allowed host applications from the guest device at the host device through the communications tunnel; and forwarding the data from the selected allowed host application through the selected allowed host port, the communications tunnel, and a port of the guest device, while the session is active, wherein the port of the guest device is dynamically selected by the guest device.