.. _webproxy: ######## Webproxy ######## The proxy service in VyOS is based on Squid_ and some related modules. Squid_ is a caching and forwarding HTTP web proxy. It has a wide variety of uses, including speeding up a web server by caching repeated requests, caching web, DNS and other computer network lookups for a group of people sharing network resources, and aiding security by filtering traffic. Although primarily used for HTTP and FTP, Squid includes limited support for several other protocols including Internet Gopher, SSL,[6] TLS and HTTPS. Squid does not support the SOCKS protocol. URL Filtering is provided by SquidGuard_. ************* Configuration ************* .. cfgcmd:: set service webproxy append-domain Use this command to specify a domain name to be appended to domain-names within URLs that do not include a dot ``.`` the domain is appended. Example: to be appended is set to ``vyos.net`` and the URL received is ``www/foo.html``, the system will use the generated, final URL of ``www.vyos.net/foo.html``. .. code-block:: none set service webproxy append-domain vyos.net .. cfgcmd:: set service webproxy cache-size The size of the on-disk Proxy cache is user configurable. The Proxies default cache-size is configured to 100 MB. Unit of this command is MB. .. code-block:: none set service webproxy cache-size 1024 .. cfgcmd:: set service webproxy default-port Specify the port used on which the proxy service is listening for requests. This port is the default port used for the specified listen-address. Default port is 3128. .. code-block:: none set service webproxy default-port 8080 .. cfgcmd:: set service webproxy domain-block Used to block specific domains by the Proxy. Specifying "vyos.net" will block all access to vyos.net, and specifying ".xxx" will block all access to URLs having an URL ending on .xxx. .. code-block:: none set service webproxy domain-block vyos.net .. cfgcmd:: set service webproxy domain-noncache Allow access to sites in a domain without retrieving them from the Proxy cache. Specifying "vyos.net" will allow access to vyos.net but the pages accessed will not be cached. It useful for working around problems with "If-Modified-Since" checking at certain sites. .. code-block:: none set service webproxy domain-noncache vyos.net .. cfgcmd:: set service webproxy listen-address
Specifies proxy service listening address. The listen address is the IP address on which the web proxy service listens for client requests. For security, the listen address should only be used on internal/trusted networks! .. code-block:: none set service webproxy listen-address 192.0.2.1 .. cfgcmd:: set service webproxy listen-address
disable-transparent Disables web proxy transparent mode at a listening address. In transparent proxy mode, all traffic arriving on port 80 and destined for the Internet is automatically forwarded through the proxy. This allows immediate proxy forwarding without configuring client browsers. Non-transparent proxying requires that the client browsers be configured with the proxy settings before requests are redirected. The advantage of this is that the client web browser can detect that a proxy is in use and can behave accordingly. In addition, web-transmitted malware can sometimes be blocked by a non-transparent web proxy, since they are not aware of the proxy settings. .. code-block:: none set service webproxy listen-address 192.0.2.1 disable-transparent .. cfgcmd:: set service webproxy listen-address
port Sets the listening port for a listening address. This overrides the default port of 3128 on the specific listen address. .. code-block:: none set service webproxy listen-address 192.0.2.1 port 8080 .. cfgcmd:: set service webproxy reply-block-mime Used to block a specific mime-type. .. code-block:: none # block all PDFs set service webproxy reply-block-mime application/pdf .. cfgcmd:: set service webproxy reply-body-max-size Specifies the maximum size of a reply body in KB, used to limit the reply size. All reply sizes are accepted by default. .. code-block:: none set service webproxy reply-body-max-size 2048 Authentication ============== The embedded Squid proxy can use LDAP to authenticate users against a company wide directory. The following configuration is an example of how to use Active Directory as authentication backend. Queries are done via LDAP. .. cfgcmd:: set service webproxy authentication children Maximum number of authenticator processes to spawn. If you start too few Squid will have to wait for them to process a backlog of credential verifications, slowing it down. When password verifications are done via a (slow) network you are likely to need lots of authenticator processes. This defaults to 5. .. code-block:: none set service webproxy authentication children 10 .. cfgcmd:: set service webproxy authentication credentials-ttl