Lighttpd como proxy

By | December 9, 2008

Esses dias me deparei com a seguinte situação: Precisava implementar um serviço baseado em web. Esse serviço vai acumular bastante informações sobre a infra-estrutura da empresa e por isso precisa de autenticação para garantir que apenas as pessoas corretas tenham acesso a essas informações.

Mas por motivos que nem vale a pena citar, afinal não quero uma gastrite, o bagulho não aceita autenticação.

A forma que eu arranjei para resolver isso foi simples: A porta do serviço original é bloqueada via iptables e instalei o lighttpd para servir como proxy, já me aproveitando das features de autenticação dele.

Caso precise fazer algo parecido com isso um dia, segue abaixo como fiz:

Na sessão server.modules adicione:

            "mod_proxy",

E logo depois dessa sessão adicione:

auth.backend = "htpasswd"
auth.backend.htpasswd.userfile = "/etc/lighttpd/.htpasswd"
auth.require = ( "/" =>
  (
    "method"  => "basic",
    "realm"   => "status",
    "require" => "valid-user"
  )
)

$HTTP["remoteip"] == "192.168.0.0/24" {
          proxy.server  = ( "" => (
          ( "host" => "127.0.0.1", "port" => 8080 )
           )
      )
}

Onde:

192.168.0.0/24 = Rede que poderá acessar a aplicação

“host” => “127.0.0.1”, “port” => 8080 = IP e porta originais da sua aplicação.