Whitelisting ------------ *Available since version 3.9.0* Vantage6 algorithms are normally disconnected from the internet, and are therefore unable to connect to access data that is not connected to the node on node startup. Via this feature it is possible to whitelist certain domains, ips and ports to allow the algorithm to connect to these resources. It is important to note that only the http protocol is supported. If you require a different protocol, please look at `SSH Tunnel`. .. warning:: As a node owner you are responsible for the security of your node. Make sure you understand the implications of whitelisting before enabling this feature. Be aware that when a port is whitelisted it is whitelisted for all domains and ips. Setting up whitelisting +++++++++++++++++++++++ Add block ``whitelist`` to the node configuration file: .. code:: yaml whitelist: domains: - .google.com - github.com - host.docker.internal # docker host ip (windows/mac) ips: - 172.17.0.1 # docker bridge ip (linux) - 8.8.8.8 ports: - 443 .. note:: This feature makes use of Squid, which is a proxy server. For every domain, ip and port a `acl` directive is created. See `their `_ documentation for more details on what valid values are. Implementation details / Notes ++++++++++++++++++++++++++++++ The algorithm container is provided with the environment variables ``http_proxy``, ``HTTP_PROXY``, ``https_proxy``, ``HTTPS_PROXY``, ``no_proxy`` and ``NO_PROXY``. Unfortunately, there is no standard for handling these variables. Therefore, whether this works will depend on the application you are using. See `this `_ post for more details. In case the algorithm tries to connect to a domain that is not whitelisted, a http 403 error will be returned by the squid instance. .. warning:: Make sure the requests from the algorithm are using the environment variables. Some libraries will ignore these variables and use their own configuration. - The ``requests`` library will work for all cases. - The ``curl`` command will not work for vantage6 VPN addresses as the format of ``no_proxy`` variable is not supported. You can fix this by using the ``--noproxy`` option when requesting a VPN address. .. note:: VPN addresses in ``no_proxy`` have the same format as in the node configuration file, by default ``10.76.0.0/16``. Make sure the request library understands this format when connecting to a VPN address.