• No results found

Ombudsmannens arbeid med menneskerettigheter

In document Melding for året 2013 (sider 26-29)

III. Enkelte temaer fra kontrollen med forvaltningen

5. Ombudsmannens arbeid med menneskerettigheter

Como já foi referido no Capítulo 3, para o alojamento do SW REST foi selecionado o servidor HTTP Apache. A versão utilizada no âmbito deste trabalho foi a versão 2.2.22 (Ubuntu) instalada no sistema operativo do XUbuntu. A instalação do servidor web Apache, no referido sistema operativo pode, ser efetuada executando o seguinte comando:

Para instalar o módulo (Secure Sockets Layer) SSL do apache2 foi executado o seguinte comando [34]:

Para efeitos de demonstração foi gerado e instalado um self-signed certificate (ou seja, um certificado assinado pelo próprio servidor, em vez de uma certificate authorty) da seguinte forma:

usr: [login de acesso à câmara]

pwd: [password do utilizador para acesso à câmara]

sudo apt-get install apache2

35

De seguida é necessário criar e configurar o sítio web que irá alojar o SW REST instalando o certificado SSL anteriormente criado. Para tal foram realizados os seguintes passos:

copiar o ficheiro de configuração do sítio web default (pasta sites-available), que é instalado por defeito com o apache2;

renomear o ficheiro para o nome pretendido do novo sítio web - “ssl-restonvif.pt”;

 ativar o site executando o comando: sudo a2ensite ssl-restonvif.pt

 por último, reiniciar o apache2 de modo a serem lidas as últimas configurações. No ficheiro de configuração do sítio web criado (localizado em /etc/apache2/sites-available) existem algumas linhas que merecem uma maior atenção [34]:

ServerName contém o nome/endereço para o sítio web;

 SSLEngine e SSLCertificateFile permitem respetivamente ativar e indicar o ficheiro com o certificado SSL gerado;

 ServerEncodedSlashes permite ativar a aceitação por parte do servidor apache da existência do caracter “/” codificado nos pedidos realizados ao sítio web.

Este último parâmetro de configuração é importante uma vez que o endereço do serviço da câmara contém “/” e é codificado nas chamadas ao SW REST.

O Apache HTTP Server v2.2 disponibiliza dois módulos FastCGI (mod_fcgid [35] e mod_fastcgi [36]). Optou-se pela utilização do módulo mod_fastcgi porque, para além de ter sido a primeira implementação de FastCGI sobre apache, está mais bem documentada [36], permitindo desta forma uma mais rápida aprendizagem e desenvolvimento. As versões do servidor Apache superiores à utilizada neste desenvolvimento disponibilizam versões mais recentes do módulo mod_fcgid e aconselham a sua utilização em detrimento do módulo

sudo make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/ssl/private/restonvif.crt

<VirtualHost *:443> ServerName restonvif.pt AllowEncodedSlashes On SSLEngine on SSLCertificateFile /etc/ssl/private/restonvif.crt DocumentRoot /home/joana/public_html/ <Directory /> … …

36

mod_fastcgi. A transição para o novo módulo mod_fcgid consiste apenas em alterações ao nível da instalação e configuração do módulo Apache, não afetando o código desenvolvido. A instalação do módulo mod_fastcgi pode ser realizada recorrendo ao Software Manager do Ubuntu (para além da possibilidade de o realizar por linha de comando). Após a sua instalação, este fica disponível na lista de módulos ativos, se assim não acontecer deverá ser executado o seguinte comando:

Ficando disponível o seu ficheiro de configuração (localizado em /etc/apache2/mods- available) para alteração:

A diretiva AddHandler, assim como está definida, indica que qualquer ficheiro com a extensão .fcgi será tratado como sendo um FastCGI. Esta é a extensão da aplicação FastCGI desenvolvida. Foi alterada a linha de configuração para as “Dynamic FastCGI applications” [36] como é o caso do serviço REST implementado:

FastCgiConfig -maxProcesses 50 -maxClassProcesses 20 -startDelay 1 -killInterval 30 -idle- timeout 90

A diretiva FastCgiConfig [36], assim como está definida, assegura que caso seja efetuado um pedido que não consiga ser respondido com o delay de 1 segundo (startDelay), o gestor de processos do Apache irá criar um novo processo, até aos limites de 20 processos por cada aplicação (maxClassProcesses) FastCGI e 50 processos (maxProcesses) para todas as aplicações FastCGI a executar no servidor no momento. O parâmetro killInterval determina o número de segundos que um dado processo pode ficar no estado idle até ser terminado pelo gestor de processos do apache. O singleThreshold permite definir quando é que a última instância de uma aplicação deve ser terminada pelo gestor de processos. O seu valor por defeito é “0”, o que evita que a última instância de uma dada aplicação seja terminada, garantindo desta forma que existe pelo menos um processo.

Os parâmetros aqui referidos são importantes para a melhoria de desempenho da aplicação FastCGI. Os valores escolhidos servem apenas como exemplo em ambiente de

sudo a2enmod fastcgi

<IfModule mod_fastcgi.c>

AddHandler fastcgi-script .fcgi

# Config used for dynamic applications

FastCgiConfig -maxProcesses 50 -maxClassProcesses 4 -startDelay 1 -killInterval 30 -idle- timeout 90

37

desenvolvimento, devendo num ambiente produtivo ser ajustados à medida da qualidade pretendida para os serviços disponibilizados e recursos do servidor.

Por fim, é necessário configurar o mapeamento da diretoria onde será colocado o FastCGI desenvolvido (no ficheiro de configuração do sítio web).

Ou seja, todos os pedido efetuados a https://restonvif.pt/testfcgi/rest_umoc_ll.fcgi deverão executar o FastCGI “rest_umoc_ll.fcgi” existente na pasta “/home/joana/testfcgi”

Para que o servidor Apache redirecione todos os pedidos suportados pelo SW REST para a aplicação FastCGI (rest_umoc_ll.fcgi), é necessário ativar e configurar dois módulos no ficheiro de configuração do sítio web: o “mod_rewrite” e o “mod_actions”.

O mod_rewrite configura o redirecionamento propriamente dito:

Qualquer pedido GET, POST, PUT e DELETE com o endereço iniciado por https://[nome_do_sítio]/onvif é redirecionado, juntamente com a sua querystring, para o FastCGI (rest_umoc_ll.fcgi).

O mod_actions permite ativar a execução de scripts para os métodos HTTP DELETE e PUT, uma vez que por defeito não estão ativas no servidor Apache, colocando as seguintes linhas:

A diretiva “Script” ativa a execução da aplicação FastCGI para os métodos PUT e DELETE.

ScriptAlias /testfcgi /home/joana/testfcgi/ <Directory "/home/joana/testfcgi">

AllowOverride None

Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny

Allow from all </Directory>

RewriteEngine On

RewriteCond %{REQUEST_METHOD} (GET|POST|PUT|DELETE)

RewriteRule ^/onvif.*$ /testfcgi/rest_umoc_ll.fcgi?%{QUERY_STRING} [L]

<Limit GET POST PUT DELETE > Order allow,deny Allow from all </Limit>

<LimitExcept GET POST PUT DELETE > Order deny,allow

Deny from all </LimitExcept>

Script PUT /testfcgi/rest_umoc_ll.fcgi Script DELETE /testfcgi/rest_umoc_ll.fcgi

38

As configurações do servidor Apache abordadas são todas as que controlam o alojamento do serviço web REST implementado em FastCGI utilizando HTTPS.

In document Melding for året 2013 (sider 26-29)