O problema é que no unix não existe uma configuração de proxy global. No Windows, há uma configuração de proxy na configuração do Internet Explorer, que se destina a ser usada por todos os outros programas também, mas nada faz com que eles sejam obrigatórios também.
E o seu maior problema, que você simplesmente não pode garantir, não haverá software instalado, o que (mesmo intencionalmente) evita essa configuração de proxy.
Para tais problemas existe o chamado "proxy transparente". Isso significa que você redireciona os pacotes de protocolo a serem intermediados por proxy para o seu servidor proxy, sem o conhecimento / influência dos clientes. Os clientes não verão, você está fazendo - eles estarão apenas se conectando aos ip-s externos, e nem mesmo saberão, que eles estão conectando na verdade apenas o seu servidor proxy.
O que você precisa é de praticamente 2 etapas:
1: primeiro, com alguma regra de iptables
subordinada, você deve redirecionar o http / https de saída para o servidor proxy http / https (que está ou não está em sua máquina gateway / vpn ).
2: você configura um servidor proxy http, que é capaz de funcionar como um proxy transparente. Quando os clientes estão se comunicando com o http para um proxy, eles estão falando um protocolo um pouco diferente, portanto, o proxy transparente precisa de um suporte explícito no lado do proxy. Mas não difere muito.
O Squid tem um suporte muito bom para proxy transparente, embora todos os outros pontos de vista não sejam o melhor software que encontrei na minha vida.
O Apache não é um servidor proxy, mas um servidor da Web, embora possa ser proxy também, e pode ser transformado em proxy transparente, além de alguns pequenos truques de configuração.
Summa summarum, o google é seu amigo. Minhas palavras-chave sugeridas: transparent http proxy gateway linux