Caso você ainda não esteja usando o Apache em sua máquina Linux, eu não recomendo que você o use apenas para fazer isso, é um exagero e muito mais pesado com os recursos da máquina.
Eu recomendo que você use nginx : é leve, estável e usado por grandes sites como wordpress.com (veja aqui ). Da página sobre da nginx:
nginx [engine x] is a HTTP and reverse proxy server
Você vai querer usar o nginx como um proxy reverso - aqui está como fazer isso no Ubuntu .
Eu também recomendo que você veja os exemplos oficiais de proxy wiki do nginx .
Edite de acordo com seus comentários:
Para que o IP real seja encaminhado para o host do Windows, defina este cabeçalho:
proxy_set_header X-Real-IP $remote_addr;
Espero que ajude.