Você pode usar um servidor proxy SOCKS ou iptables e NAT para isso.
Suponho que o host do seu cliente esteja em uma rede local e use endereços IP privados, como 10.0.0.0/8, 172.28.0.0/12 ou 192.168.0.0/16.
Pré condições:
- você pode alcançar seu host do cliente a partir de sua caixa do Linux
- você pode acessar a Internet a partir da sua caixa do Linux
O primeiro passo é ativar o encaminhamento de IP:
# set kernel flag to allow IP forwarding from one to another network device
echo 1 > /proc/sys/net/ipv4/ip_forward
O próximo passo é usar o iptables para ativar o NAT:
# enable NAT for Internet device (here eth0)
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# accept incoming Internet traffic, which is related to established outgoing connection
iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
# enable forwarding from internal device eth1 to external device eth0
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
Essa é uma configuração muito simples e eu recomendo dar uma olhada no iptables para fornecer segurança à sua rede local, bem como acesso à sua rede local na Internet.
Para limitar o acesso apenas a determinados protocolos (aqui SMTP, POP3, IMAP), você pode usar a seguinte configuração:
# enable NAT for Internet device (here eth0)
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# accept incoming Internet traffic, which is related to established outgoing connection
iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
# enable forwarding from internal device eth1 to external device eth0
iptables -A FORWARD -i eth1 --dport 25 -o eth0 -j ACCEPT
iptables -A FORWARD -i eth1 --dport 110 -o eth0 -j ACCEPT
iptables -A FORWARD -i eth1 --dport 143 -o eth0 -j ACCEPT