Skip to main content

    SOCKS proxy design

    Some utilities, such as metrics dashboards, error reporting, and deployment tools should not be made available to the public. While such a utility may lock functionality behind a user login system, these vary among implementations and may be vulnerable to exploits. Additionally, due to the difficulty of creating subdomains for vets.gov, it may be problematic to host some of these utilities when they do not support relative path installations.

    The preferred solution is to host these systems on an internal network that prevents public access. While the VA maintains an internal network, the vets.gov team operates within the AWS environment. Installation of a utility like this on the VA network would require additional authority to operate extensions, a server within the VA, and mapping new connections from AWS to the VA. Since these tools are for use exclusively by the vets.gov services installed within AWS, utilizing the VA's internal network is both unnecessary, more complex, time intensive, and would likely impact performance of the utility and application requiring it.

    To address this issue we've configured an internal DNS server which can be accessed via a SOCKS proxy. The SOCKS proxy is a server on your local system which tunnels HTTP and DNS traffic to a jumpbox on the vets.gov AWS network. Once connected, a developer will have access to the *.vetsgov-internal TLD, and can use their browser to connect to tools such as Sentry.

    Internal systems will not require any modification to connectivity, and should communicate with the utilities directly. They may use a /etc/hosts entry for the corresponding *.vetsgov-internal address when necessary.