Acesso as Informações do Sistema Elétrico do Estado do Pará

Transcrição

Acesso as Informações do Sistema Elétrico do Estado do Pará
Centrais Elétricas do Norte do Brasil SA
Acesso as Informações do Sistema Elétrico
do Estado do Pará Utilizando a Rede
Corporativa da Eletronorte ou a Intranet
Daniel Augusto Martins / Victor Simões Martins
Departamento Regional de Produção e Comercialização do Pará
Divisão de Operação do Sistema
Departamento de Comercialização e Produção do Pará – CPA
Divisão de Operação do Sistema - CPAO
03/10/05
Manual
sugestões: [email protected]
1
Centrais Elétricas do Norte do Brasil SA
1. OBJETIVO
O objetivo deste documento é descrever os procedimentos de software adotados e os programas
desenvolvidos no servidor SAGE abil, servidor integrante da rede SAGE do Centro de Operação Regional
de Belém – COR-B de forma a torná-lo um provedor de acesso às informações do Sistema Elétrico de
Transmissão do Estado do Pará.
A visualização dos diagramas unifilares on-line e em tempo real, o acesso às listas de alarmes e eventos
produzidos pelo SAGE, gráficos lineares do comportamento das variáveis analógicas do sistema são os
serviços ora oferecidos por aquele servidor através da rede corporativa da Eletronorte. Estes serviços se
destinam aos especialistas em operação, proteção, controle e supervisão do sistema elétrico, gerentes,
superintendentes e empregados da Eletronorte em geral com interesse no comportamento do sistema.
Ficaremos muito agradecidos se recebermos indicações de erro, críticas e sugestões sobre este documento
e os serviços que ele descreve. Favor enviar correspondência para Daniel Martins em [email protected]
ou através dos telefones 91-32108246 ou 91-32108348.
2. BASES DE CONCEPÇÃO
As ferramentas utilizadas para o desenvolvimento deste produto foram: linguagem ANSI C, linguagem
Java, na forma de “applets”, servlets, o próprio equipamento informático que compõe o sistema de
supervisão e controle do Centro de Operação Local de Belém e a tecnologia WEB presente na rede
corporativa da Eletronorte.
3. HISTÓRICO
Já há algum tempo percebemos a necessidade de oferecer as informações sobre a rede de transmissão do
Sistema Elétrico do Pará a outros usuários além dos operadores do sistema elétrico e das pessoas que
trabalham nas proximidades do Centro de Operação COR-BE. Os especialistas em operação, proteção e
planejamento do sistema elétrico podem estar interessados em ter o acesso eventual as informações do
sistema elétrico tais como listas de eventos e alarmes produzidos pelo sistema de supervisão e até a
visualização do comportamento do sistema elétrico em tempo real para acompanhamento de manobras ou
consulta a valores atualizados das grandezas elétricas do sistema de transmissão. A quebra deste
paradigma vem sendo perseguida já a alguns anos nesta Divisão.
4. IMPLANTAÇÃO
A solução para este problema está sendo então conseguida através da utilização da tecnologia WEB,
principalmente no “ambiente” Eletronorte que dispõe de uma rede corporativa que abrange toda a sua área
de atuação.
A figura 1 abaixo esquematiza a arquitetura de hardware e software utilizada para o desenvolvimento deste
produto.
03/10/05
Manual
sugestões: [email protected]
2
Centrais Elétricas do Norte do Brasil SA
Qualquer cliente, localizado em qualquer ponto da Eletronorte que tenha acesso à rede corporativa,
pode obter as informações on-line do sistema elétrico em questão. Para isto, a única ferramenta que ele
deve dispor é um navegador (browser) da Internet, ferramenta que todo micro-computador atual já carrega
a bordo. O mais comum deles é o Internet Explorer. Outros navegadores, tais como Netscape ou Mozilla,
também podem ser utilizados, porém pequenas diferenças de cores ou formatos nas telas poderão ser
notadas, mas nada que interfira na qualidade do resultado final, ou na compreensão das telas por parte dos
usuários.
Figura 1
Para se atingir o objetivo instalou-se uma placa de rede adicional no servidor “abil” da rede SAGE do
COL-BE, transformando-o. Assim, num gateway entre a rede corporativa (INTRANET) e a rede de
difusão do SAGE. Neste computador foi instalado o servidor Apache (http://www.apache.org), que é um
servidor de páginas WEB (servidor http), que fica responsável por disponibilizar o produto deste trabalho
na INTRANET. Ainda neste servidor, foi incluído um serviço adicional a xinetd, também conhecido como
“o socket dos sockets” ou “porta de entrada de serviços TCP”, na forma de um programa desenvolvido em
linguagem ANSI C, denominado “Lebd”, que atende a solicitações “socket” de número 4444 (número por
nós arbitrado) e que responde a solicitações dos valores das variáveis do banco de dados do SAGE
requisitadas por um applet embutido em uma página HTML ou qualquer outra implementação que se
comunique via socket.
O que se deve fazer para conseguir acesso as informações do sistema elétrico, estando em qualquer
computador com um acesso a rede corporativa (INTRANET) é apontar seu navegador preferido para o
gateway SAGE abil, por exemplo, preenchendo no campo “endereço: ” do seu navegador o seguinte texto:
03/10/05
Manual
sugestões: [email protected]
3
Centrais Elétricas do Norte do Brasil SA
http://abil. Ele será levado para a página mostrada na figura 2 abaixo. É possível também acessar o
servidor abil através da INTERNET. Em qualquer lugar do mundo, em ponto de acesso a INTERNET,
preferencialmente sob um serviço tipo “banda larga” (ADSL) é também possível acessar ao servidor abil
apontando para o endereço http://189.77.118.65. Não tente usar este último endereço através da
INTRANET. O acesso será negado. O desempenho do serviço, isto é, a velocidade de acesso não será
confortável para acessos discados.
Figura 2
Nesta página de entrada, http://abil ou http://189.77.118.65 já é oferecido um aperitivo do que vai estar por
vir. Na parte inferior da página se pode observar um diagrama simplificado do sistema de transmissão de
500 KV da Eletronorte onde são apresentados em tempo real os principais valores de fluxo de potência
ativa e tensões de barra das diversas subestações e usinas. É importante enfatizar que os valores
apresentados são valores verdadeiros, em tempo real, atualizados automaticamente a cada 5 segundos
aproximadamente. São oferecidos também links de acesso para diferentes serviços segundo a localização
do cliente seja na rede corporativa ou na INTRANET. Os serviços ora oferecidos são “Acesso aos
Diagramas Unifilares”, qualquer que seja a localização do cliente, a consulta aos arquivos de alarmes e
eventos (SOE – sequence of events), os relatórios horários e diários de valores máximos e mínimos por
03/10/05
Manual
sugestões: [email protected]
4
Centrais Elétricas do Norte do Brasil SA
subestação e a visualização das curvas de perfil diário de qualquer variável supervisionada. Estes três
últimos serviços são oferecidos apenas para acesso a partir da INTRANET.
Como algumas informações oferecidas por estes serviços podem ter caráter confidencial, o acesso a eles
depende de prévia autorização da Divisão de Operação. A senha de acesso, individual, pode ser conseguida
enviando e-mail à gerência da CPAO utilizando, por exemplo, link oferecido na própria página. A
utilização destes serviços é descrita em detalhe mais abaixo.
Se esta página não aparecer da maneira mostrada na figura 2, poderá ser necessário configurar o navegador
a habilitar a visualização de applets e/ou não permitir que o servidor Proxy de Brasília tente traduzir nomes
simbólicos da rede local. Se o navegador do usuário já acessa páginas que utilizam a mesma tecnologia
deste produto (Applets JAVA), como o site do Banco do Brasil e se seu navegador estiver com a caixa
“Não usar Proxy para endereços locais” marcada no caminho: Ferramentas / Opções da Internet /
Conexões / Configurações da LAN, então provavelmente esta página será visualizada numa forma
semelhante àquela mostrada acima.
5. Acesso ao Sistema de Supervisão
Para acessar as informações em tempo real do sistema elétrico usa-se o link “Visualização dos
Diagramas Unifilares”. Após fornecer nome e senha de acesso a página mostrada na figura 3 é
apresentada. A partir daí se pode selecionar a instalação que se quer visualizar clicando no botão
correspondente. Os botões no final da página oferecem a possibilidade de atalhos diretos para as principais
instalações.
03/10/05
Manual
sugestões: [email protected]
5
Centrais Elétricas do Norte do Brasil SA
Figura 3
Esta é a página inicial do serviço. Cada botão dá acesso, através do click do mouse a um diagrama
unificar correspondente ao pátio selecionado. Alguns botões como, por exemplo, os botões de acesso aos
Tabulares ainda não estão implantados. Na parte superior da tela está disponível um acesso rápido para
qualquer tela do sistema interligado e isolado da Eletronorte. Seleciona-se o Departamento Regional, em
seguida seleciona-se a Instalação e, finalmente, o pátio ou tabular desejado. A seguir segue uma descrição
um pouco mais detalhada do uso do serviço.
5.1. Diagramas Unifilares
Cada botão desta página, por sua vez, conduz a diagramas unifilares específicos de cada instalação.
Assim, por exemplo, a figura 4, abaixo, mostra o diagrama unifilar da Subestação de Utinga com valores e
estados dos equipamentos em tempo real. Estas telas são praticamente iguais às telas que os operadores do
sistema utilizam nas suas tarefas diárias. No exemplo da figura 4, a tela representa o comportamento no
instante da visualização das variáveis medidas na subestação de Utinga, além da configuração topológica
do arranjo dos disjuntores e chaves daquela subestação.
03/10/05
Manual
sugestões: [email protected]
6
Centrais Elétricas do Norte do Brasil SA
Figura 4
A nomenclatura utilizada nos diagramas unifilares é exatamente aquela descrita no manual do usuário do
SAGE. Por exemplo, um disjuntor fechado é representado por um pequeno quadrado, no caso do diagrama
da figura 3, na cor vermelha, totalmente preenchida da mesma cor
. Um disjuntor aberto é representado
vazado
. Um disjuntor, chave ou outro equipamento qualquer que represente uma conexão aparece na
cor roxa no caso do seu valor estar inválido no campo.
Os valores analógicos são representados dinamicamente por números positivos ou negativos. Valores
inválidos no campo são representados na cor amarela, indicando grandezas com defeito no captor ou
variáveis de uma instalação sem comunicação com o centro de operação.
Outras telas podem ser visualizadas utilizando a seleção na parte superior da tela, em alguns casos,
em áreas sensíveis da própria tela. Assim, por exemplo, algumas áreas dos diagramas unifilares são
sensíveis ao click do mouse.
03/10/05
Manual
sugestões: [email protected]
7
Centrais Elétricas do Norte do Brasil SA
Outras áreas, em geral sombreadas, também podem, eventualmente, ser utilizadas para navegação
para outras telas.
É possível observar os valores estimados pelo estimador de estados, caso este esteja em
funcionamento, sempre que se estiver observando um diagrama unifilar como o mostrado acima. Para
tanto é necessário que o Applet esteja sob o foco do seu mouse. Isto pode ser conseguindo simplesmente
com um único click sobre qualquer lugar da área ocupada pelo Applet. Esta ação só precisa ser realizada
apenas uma única vez para cada tela. Após isto, pressionando as teclas “Ctrl/V” simultaneamente,
exatamente como se faz na interface gráfica “Visor de Telas” do SAGE, a cor de fundo da tela muda para
um tom mais escuro, as variáveis analógicas mudam para a cor azul claro (ou ciano) e o texto que fica
normalmente piscando como “VALORES MEDIDOS” no canto inferior da tela muda para “VALORES
ESTIMADOS”. O modo de visualização medido / estimado é alternado a cada ação “Ctrl/V”.
5.2 Consultas a lista de Alarmes e Eventos do Sistema
Este serviço é lançado selecionando “Alarmes e Eventos do Sistema Pará” na caixa de seleção da
página de entrada. É importante observar que estão disponíveis apenas os alarmes, eventos e logs de
auditagem do SAGE relativos ao Sistema Elétrico do Pará.
Este serviço foi desenvolvido com a mesma tecnologia do interpretador de telas do SAGE, portanto
o computador cliente depende das configurações já citadas anteriormente para este interpretador. A figura
5 abaixo mostra um exemplo de visualização de arquivo de eventos do dia 03 de fevereiro de 2006.
03/10/05
Manual
sugestões: [email protected]
8
Centrais Elétricas do Norte do Brasil SA
Figura 5
Os botões Alarmes, Eventos e Auditagem permitem a visualização da lista de Alarmes, de Eventos
ou Auditagem, respectivamente, do dia em curso. O Botão Monitorar permite o acompanhamento
dinâmico dos eventos em tempo real. Esta função pode ser muito útil para acompanhamento de manobras
programadas. Uma parte do arquivo mostrado pode ser selecionada, compactada (através do botão
“Compactar”), copiada, colada em outro aplicativo qualquer ou mesmo impressa. A barra de rolagem
oferece a possibilidade de busca por intervalo horário no dia em visualização. O botão “Recarregar”
permite que o arquivo atual seja recarregado, por exemplo, após uma compactação, apresentando-o de
forma estática, ou seja, com as informações do momento em que foi a ação foi requisitada. Arquivos de
dias anteriores que estejam disponíveis podem ser lidos utilizando a entrada “Arquivo” na parte superior
esquerda do serviço.
6. VANTAGENS DO PRODUTO
Até onde se tem notícia, esta é primeira implantação, em todo o Setor Elétrico Brasileiro, de acesso on-line
e em tempo real a informações da rede elétrica através da rede corporativa, utilizando o sistema SAGE
como interface a base de dados. Esta característica confere a este produto a função de pioneirismo e
03/10/05
Manual
sugestões: [email protected]
9
Centrais Elétricas do Norte do Brasil SA
“bench-mark”, já que não temos como comparar seu desempenho, simplicidade de implantação, segurança
dos dados e etc com outros eventuais sistemas.
A metodologia adotada evita que seja necessária a instalação de qualquer aplicativo adicional nos
computadores dos clientes. Este fato trás consigo uma conseqüência: as atualizações, ampliações ou
correções no sistema são levadas automaticamente para todos os clientes sem a necessidade de substituição
de software no computador do cliente. Alguns clientes talvez nem percebam imediatamente qualquer
alteração.
7. DISSEMINAÇÃO E CONTINUIDADE
O uso industrial deste produto exige que o acesso seja feito através de autorização prévia. Outro aspecto
nos preocupa é o problema da segurança. O gateway SAGE mostrado na figura 1 é uma porta de entrada à
rede de operação e, portanto, precisa sofrer um tratamento de segurança. Este computador foi protegido
contra invasão seguindo as recomendações da RedHat, fabricante do sistema operacional utilizado, no seu
documento “Security Issues”.
03/10/05
Manual
sugestões: [email protected]
10
Centrais Elétricas do Norte do Brasil SA
8. DESCRIÇÃO TÉCNICA DOS PROGRAMAS E CONFIGURAÇÕES
A partir deste parágrafo será descrito, de forma detalhada, todos os procedimentos e programas
desenvolvidos no gateway SAGE para colocação em funcionamento dos serviços descritos acima. O
público alvo para este segmento final do relatório é o pessoal especialista em programação de
computadores e mantenedores do SAGE COR-B. O cliente dos serviços oferecidos pode parar sua leitura
por aqui.
9. METODOLOGIA ADOTADA PARA A GESTÃO DO PRODUTO
O sistema elétrico sofre evolução constante. O Estado do Pará, em particular, está em plena fase de
implantação do “RETROFIT”, o que resultará na modernização de todo o seu parque de proteção e
controle. Este esforço ainda vai durar alguns anos. A entrada de novas linhas e equipamentos que implicam
num grande esforço de manutenção da base de dados e telas do SAGE é uma constante no nosso trabalho.
Assim sendo, o desenvolvimento deste produto teve a preocupação de exigir o menor esforço
possível de manutenção. O reduzido quadro de pessoal de que dispomos não nos permite a utilização
exclusiva de um “web designer” e mantenedor dos serviços oferecidos por este produto. Desta forma a
metodologia adotada no seu desenvolvimento foi uma metodologia que permitisse que a manutenção das
telas oferecidas com as informações fosse bastante simplificada.
Sempre que uma tela SAGE é alterada para refletir uma nova configuração do sistema elétrico, tudo que
precisamos fazer é executar uma linha de comando no gateway abil SAGE para atualizar a tela
correspondente oferecida por este produto.
O processador “GeraHtml” desenvolvido para este fim, em script linux-shell, utiliza um processador em
linguagem C (ParseSage.c) para realizar este trabalho. O processador GeraHtml aceita como parâmetro o
nome da tela SAGE que queremos incluir ou modificar no serviço, e então produz ou refaz os arquivos
utilizados pelo serviço. O nome da tela informada como parâmetro de GeraHtml deve ser necessariamente
o de uma tela armazenada no diretório $TELAS.
Para a confecção do produto foram produzidas mais de 2.000 linhas de código Java e aproximadamente
400 linhas de código em ANSI C. O tempo gasto por duas pessoas para o desenvolvimento do produto não
ultrapassou 4 meses.
O produto será descrito em duas fases. Em um primeiro ambiente, que vamos denominar de “ambiente offline” serão descritos os procedimentos utilizados para a preparação dos arquivos de dados e páginas
HTML que serão utilizadas dinamicamente pelo produto. Um segundo ambiente, que vamos denominar de
“ambiente on-line”, serão descritos os programas executados dinamicamente e suas interações entre si e
com o usuário.
A figura 9 abaixo ilustra, em um diagrama de fluxo de dados, os processos necessários para a implantação
do serviço, objeto deste relatório. O processamento é dividido em duas fases. Uma primeira, fase off-line,
faz a preparação de páginas HTML e arquivos de dados gerados para serem utilizados na segunda fase. Na
03/10/05
Manual
sugestões: [email protected]
11
Centrais Elétricas do Norte do Brasil SA
fase on-line, estes arquivos são utilizados, as páginas para navegação do usuário e os arquivos de dados
para serem lidos pelo applet embutido nas páginas. Cada etapa dos procedimentos será descrita a seguir.
Figura 9
No ambiente off-line o script GeraHtml lê um arquivo “tela” SAGE cujo nome do arquivo é fornecido
como parâmetro e produz dois arquivos: um arquivo “tela.html”, que é um arquivo HTML normal, e um
arquivo “tela.dat” que irá fornecer as informações ao applet Java para o desenho e a animação da tela
SAGE no computador do cliente.
No ambiente on-line o cliente aponta seu navegador para, por exemplo: https://abil/tela.html, ou
https://abil.eln.gov.br/tela.html se o acesso for feito via INTERNET. A página é carregada trazendo
consigo o applet Java VisorSage.class que, por sua vez, vai ler o arquivo tela.dat em abil e com ela animar
a imagem SAGE.
03/10/05
Manual
sugestões: [email protected]
12
Centrais Elétricas do Norte do Brasil SA
10. Preparação dos arquivos de dados
Dois diretórios são importantes para o entendimento dos mecanismos de utilização dos procedimentos. O
diretório /var/www/html2 é o diretório raiz informado ao Apache no seu arquivo de configuração. Assim,
quando o navegador do cliente aponta para o site http://abil (ou http://abil.eln.gov.br) o arquivo exibido
pelo navegador é o arquivo default “index.html” localizado naquele diretório raiz. O diretório
/var/www/html/sage e todos os subdiretórios deste diretório são os diretórios protegidos pelo Apache
contra acesso não autorizados. Eles são acessados quando se utiliza o texto https no lugar de http ao
apontar para o servidor abil.
As ações descritas a seguir se passam no diretório /var/www/html do servidor Apache.
sage@abil:~/sage > ls -l /var/www/
total 36
drwxr-xr-x 2 sage users
4096 Set 25 2003 cgi-bin/
drwxr-xr-x 3 sage users
4096 Mai 2 13:36 error/
drwxr-xr-x 3 sage users
24576 Set 15 14:30 html/
drwxr-xr-x 3 sage users
4096 Mai 2 13:36 icons/
sage@abil:~/sage >
Todas as ações realizadas e descritas a seguir deverão ser efetuadas pelo usuário sage e este deve estar
localizado no diretório /var/www/html.
No diretório /var/www/html está localizado o procedimento para a criação dos arquivos HTML e os
arquivos de dados utilizados pelos aplicativos dinâmicos desta função. Os programas desenvolvidos para
este fim são GeraHtml e ParseSage.
GeraHtml é um script, mostrado abaixo, que aceita como argumento o nome de uma tela SAGE
que ele assume estar localizada no diretório $TELAS e, a partir desta tela, com o auxilio de ParseSage,
produz dois arquivos resultantes. Por exemplo, executando o programa como:
/var/www/html/GeraHtml Uni_Guama230
O procedimento cria ou reescreve os arquivos Uni_Guama.html e Uni_Guama.dat. O primeiro é o
arquivo HTML que executará o Applet Java quando apontado por um navegador. O segundo é o arquivo
que contem a descrição da tela SAGE interpretado pelo Applet Java e utilizado por este para desenhar e
animar a tela SAGE no computador do cliente.
O
script GeraHtml
01 rm -f $1.dat
02 ./ParseSage $1 > $1.dat
03 echo Gerando $1.dat e $1.html
04 rm -f $1.html
03/10/05
Manual
sugestões: [email protected]
13
Centrais Elétricas do Norte do Brasil SA
05 cat head.html > $1.html
06 echo " <p align=\"center\">" >> $1.html
07 echo "
<APPLET CODE='VisorSage.class' WIDTH=980 HEIGHT=580 HSPACE=0>" >> $1.html
08 echo "
<param name=nomeUrl value=\"http://abil/\">" >> $1.html
09 echo "
<param name=nomeServ value=\"abil\">" >> $1.html
10 echo "
<param name=nomeArq value=\"$1.dat\">" >> $1.html
11 echo "
</APPLET>" >> $1.html
12 echo " </p>" >> $1.html
13 cat botoes.html >> $1.html
O arquivo é mostrado com numeração nas linhas apenas para facilitar a explicação a seguir.
Na linha 01 o arquivo passado como parâmetro, acrescido de .dat, é removido do diretório.
Na linha 02 ParseSage gera o arquivo de dados a ser utilizado pelo Applet.
Na linha 04 o arquivo passado como parâmetro e acrescido de .html também é removido.
Na linha 05 o arquivo head.html é copiado para o arquivo HTML resultante.
Na linha 06 a 12 são inseridos os códigos com a chamada do appet VisorSage.class.
Na linha 13 o arquivo botoes.html é inserido complementando assim o arquivo HTML resultante.
Todos os arquivos descritos neste documento são mostrados no Anexo, salvo aqueles muito grandes como,
por exemplo, os códigos dos dois applets desenvolvidos, VisorSage.java e VisorAlarmes.java além do código
de ParseSage.c.
Sempre que uma tela SAGE for modificada no diretório $TELAS, a execução deste utilitário irá corrigir
automaticamente a visualização da tela correspondente por todos os clientes deste serviço.
Quando não se tiver certeza que telas que sofreram modificações é possível executar o script GeraTudo.
GeraTudo chama GeraHtml para todas as telas contidas em $TELAS. Assim, podemos, através de um
simples comando atualizar ou criar pela primeira vez todos os arquivos HTML e arquivos de dados
necessários ao serviço. O script GeraTudo, por sua vez, pode ser gerado pela linha de comando mostrada
abaixo que usa o processador de textos awk, sempre presente nos ambientes linuxes:
ls $TELAS | awk '{print "GeraHtml " $1}' > GeraTudo
Este comando já foi embutido no arquivo GeraGeraTudo que é mais fácil de lembrar. Naturalmente será
necessário editar o arquivo GeraTudo, antes de executá-lo, para apagar as linhas que contenham
subdiretórios ou arquivos antigos já sem interesse ou outros arquivos que não telas SAGE eventualmente
presentes naquele diretório.
O programa ParseSage (ParseSage.c), chamado pelo script GeraHtml é o responsável pela geração do
arquivo de telas “.dat” contendo todas as informações gráficas e das variáveis da base de dados SAGE para
cada tela SAGE gerada. Ele constrói uma estrutura de dados em formato texto ASCII que vai ser lida pelo
Applet VisorSage.class descrito mais adiante.
03/10/05
Manual
sugestões: [email protected]
14
Centrais Elétricas do Norte do Brasil SA
11. Apresentação de Novos Usuários
Por motivos de segurança, apenas os usuários autorizados podem acessar as telas e relatórios. Assim, foi
desenvolvido também um procedimento para bloqueio de acesso utilizando mecanismos já previstos no
servidor Apache para proteção de diretórios. Para permitir o bloqueio as seguintes ações foram tomadas:
1. Foram incluídas as seguintes linhas no arquivo de configuração do Apache, localizado em
/etc/httpd/conf/httpd.conf:
# INSERE PROTEÇÃO PARA O DIRETÓRIO sage
<Directory /var/www/html/sage>
AllowOverride AuthConfig
</Directory>
2. Além disso, criamos o arquivo /var/www/html/sage/.htaccess com o seguinte conteúdo:
AuthName "Acesso ao SSC do COL-BE"
AuthType Basic
AuthUserFile /var/www/html/sage/.htpasswd
AuthGroupFile /var/www/html/sage/.htgroup
require group SAGE
Com isto o diretório /var/www/html/sage e todos os outros diretórios abaixo dele ficam protegidos
por senha. Lembramos que este método de proteção de acesso não utiliza SSL. A instalação do SSL
é descrita mais abaixo, junto com a instalação do servidor apache.
3. Criamos o arquivo /var/www/html/sage/.htpasswd executando o utilitário, htpaswd que vem incluído
na suíte Apache, para apresentação do primeiro usuário:
htpasswd -c /var/www/html/sage/.htpasswd daniel
4. Foi criado também, com a ajuda de vi, o arquivo /var/www/html/sage/.htgroup para informar ao
Apache o grupo SAGE a que pertencem os usuários.
5. Foi desenvolvido o programa Usuario (/var/www/html/sage/Usuario.c) que deve ser usado para
apresentação de novos usuários. Sua forma de chamada é simplesmente “Usuario” com o primeiro
u em letra maiúscula. Não se deve esquecer de se localizar previamente no diretório
/var/www/html/sage antes de executar este programa. “Usuário” atualiza de uma só vez tanto o
arquivo .htpasswd quanto o arquivo .htgroup. Além disso o programa mantem, automaticamente,
uma base de dados no arquivo /var/www/html/sage/.usuarios. Este arquivo contem, em cada linha, o
nome de acesso (login) e o nome completo dos usuários autorizados a acessar o serviço. O
programa “Usuario” não faz a retirada de um usuário dos arquivos citados. A retirada de um
usuário deve ser feita apagando as linhas correspondentes nos arquivos .htpasswd, .htgroup e
.usuarios.
03/10/05
Manual
sugestões: [email protected]
15
Centrais Elétricas do Norte do Brasil SA
Assim, para apresentar um novo usuário é necessário solicitar uma senha para a Gerencia da Divisão de
Operação, conforme está sugerido na página de entrada do site http://abil. Uma vez aprovada a solicitação,
tudo que temos que fazer é nos localizar no diretório /var/www/html/sage como usuário sage, executar o
comando:
“Usuario”
O programa “Usuario” pode também ser usado para alterar a senha de um usuário já catalogado
previamente.
12. Implantação do Acesso à Base de Dados SAGE
O applet VisorSage.class embutido nas páginas geradas por GeraHtml se comunica através do socket TCP de
número 4444 com o programa Lebd (Lebd.c). De forma a poder simplificar a confecção deste último,
considerando principalmente que este serviço deve ser capaz de atender solicitações simultâneas de
múltiplos clientes, o que obrigaria Lebd ser reentrante (função C fork()), incluímos Lebd como mais um
serviço ao servidor genérico de sockets oferecido pelo daemond xinetd, já presente em ambiente linux. É
através deste serviço, que conexões múltiplas do tipo telnet, ftp e etc são atendidas.
Para implantar Lebd como mais um serviço de xinetd tomamos duas providências. A primeira consistiu em
incluir o programa LanLebd (LanLebd.c) no diretório /etc/xinetd.d. O conteúdo deste arquivo é mostrado a
seguir:
# default: on
# description: The telnet server serves telnet sessions; it uses \
#
unencrypted username/password pairs for authentication.
service LanLebd
{
flags
= REUSE
socket_type = stream
wait
= no
user
= root
server
= /export/home/sage/sage/src/LEBD/LanLebd
log_on_failure += USERID
disable
= no
}
Este arquivo foi obtido pela cópia do arquivo telnet, já existente naquele diretório e a única alteração feita
nele foi a troca da linha “Server = .....” pela linha mostrada acima que informa a xinetd onde se encontra o
arquivo executável do serviço.
O programa LanLebd é um pequeno executável que fomos obrigados a utilizar porque Lebd (Lebd.c) não
pode ser executado sob o usuário root, que é o usuário sob o qual se executa xinetd no boot do computador
já que Lebd necessita das bibliotecas SAGE (shared libraries) e de algumas variáveis de ambiente,
convenientemente estabelecidas, para o acesso à base de dados. Portanto Lebd deve ser executado sob o
usuário sage. Assim é que LanLebd apenas executa um comando para lançamento de Lebd sob o usuário
sage, obrigando ao sistema operacional se comportar como se este usuário estivesse realmente logado no
03/10/05
Manual
sugestões: [email protected]
16
Centrais Elétricas do Norte do Brasil SA
sistema, executando assim o arquivo .cshrc de forma a que todas as variáveis de ambiente do usuário sage
esteja estabelecidas quando da execução de Lebd. O conteúdo de LanLebd.c, por ser muito pequeno, é
apresentado abaixo. O conteúdo de Lebd.c, entretanto, por ser muito grande (cerca de 400 linhas) não está
contido neste relatório mas se encontra no diretório $SAGE/src/LEBD do servidor abil.
#include <stdlib.h>
int main(int argc, char *argv[]) {
system("su - sage -c /export/home/sage/sage/src/LEBD/Lebd");
return 0;
}
A segunda providência é informar a xinetd o nome do programa que irá atender às solicitações de acesso
através da porta socket 4444. Para isto incluiu-se a linha, mostrada abaixo, no arquivo /etc/services:
LanLebd
4444/tcp
# Daniel - Acesso a base de dados SAGE
É necessário relançar o daemon xinetd para que as modificações descritas acima sejam levadas em conta
pelo serviço.
13. Configuração do SAMBA
Para que o servidor abil, sob linux, pudesse ser conhecido na rede corporativa da Eletronorte, que é uma
rede Microsoft Windows, foi necessário instalar a suíte SAMBA. As seguintes linhas foram inseridas no
seu arquivo de configuração, /etc/samba/smb.conf:
#=================== Global Settings =====================================
[global]
# workgroup = NT-Domain-Name or Workgroup-Name
workgroup = eln
# server string is the equivalent of the NT Description field
server string = abil Samba Server
etc . . .
# WINS Server - Tells the NMBD components of Samba to be a WINS Client
#
Note: Samba can be either a WINS Server, or a WINS Client, but NOT both
wins server = 10.5.0.3
wins server = 10.0.0.34
etc ....
O arquivo de lançamento do SAMBA está em /etc/rc5.d/S98samba, suas propriedades e seu conteúdo são
mostrados abaixo.
Propriedades:
03/10/05
Manual
sugestões: [email protected]
17
Centrais Elétricas do Norte do Brasil SA
-rwxr-xr-x 1 root
root
158 Ago 10 08:22 /etc/rc5.d/S98samba
Seu conteúdo é o seguinte:
case "$1" in
'start')
/usr/local/samba/sbin/smbd -s /etc/samba/smb.conf
/usr/local/samba/sbin/nmbd -s /etc/samba/smb.conf
;;
'stop')
;;
esac
14. Configuração do Servidor Apache
Para que os navegadores dos computadores clientes possam acessar o servidor abil é necessário que este
disponha de um servidor de HTTP. Foi instalado o Apache mais recente (versão 2.0.55) e o módulo SSL
mais recente (versão 0.9.8a).
Os
arquivos
originais
foram
colocados
no
diretório
/export/home/sage/httpd-2.0.55.tar
e
export/home/sage/openssl-0.9.8a.tar.
Para descompactá-los nos colocamos (como root) em /tmp e executamos:
tar –xvf
tar -xvf
/export/home/sage/httpd-2.0.55.tar
/export/home/sage/openssl-0.9.8a.tar
Foram criados assim o conjunto de subdiretórios /tmp/httpd-2.0.55 e /tmp/openssl-0.9.8a
14.1 Instalação do openssl
No diretório /tmp/openssl-0.9.8a executamos simplesmente os comandos padronizados de compilação e
instalação do openssl:
./config
./make
./make test
./make install
Estes comandos colocaram o openssl no diretório padrão /usr/local/ssl. Ver o arquivo INSTALL em /tmp/
openssl-0.9.8a.
03/10/05
Manual
sugestões: [email protected]
18
Centrais Elétricas do Norte do Brasil SA
14.2. Instalação do Apache
Agora, no diretório /tmp/httpd-2.0.5/ executamos os comandos:
./configure --prefix=/usr/local/apache2 --with-ssl=/usr/local/ssl/include --enable-ssl --enable-proxy
O significado de cada parâmetro é explicado abaixo.
=> indica o diretório onde vai residir o novo Apache. Com isto evitamos
conflitos com o Apache já existente na máquina e assim poderíamos voltar a executar o antigo Apache
caso este instalação não desse certo.
--prefix=/usr/local/apache2
--withssl=/usr/local/ssl/include => indica o diretório onde vão estar os arquivos “include” para fazer a
compilação do Apache com o módulo SSL.
--enable-ssl
=> indica que a compilação deve incluir o módulo SSL no Apache. Com isto teremos
disponível a utilização do modo seguro (https) com o Apache.
=> indica que o Apache poderá vir a ser usado como servidor proxy e assim redirecionar
subdiretórios do seu diretório raiz (no nosso caso /var/www/html2) para serem atendidos por outros
computadores. Ver arquivo de configuração do Apache abaixo.
--enable-proxy
Os próximos passos a executar são a compilação e instalação do novo Apache:
make
make test
make install
Para conseguir o lançamento automático do serviço http oferecido pelo Apache é necessário apenas
executar, como root, o seguinte comando:
chkconfig --level 5
httpd on
O lançamento do Apache se dá então pelo comando:
/usr/local/apache2/bin/apachectl startssl
O arquivo de Configuração do Apache passou a incluir as seguintes características:
#ServerName www.example.com:80
ServerName abil
ProxyPass /sgestor/ http://10.5.2.199/
ProxyPassReverse /sgestor/ http://10.5.2.199/
Esta configuração permite o redirecionamento para o servidor dcsrv (cujo ip é 10.5.2.199).
03/10/05
Manual
sugestões: [email protected]
19
Centrais Elétricas do Norte do Brasil SA
#
# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
DocumentRoot "/var/www/html2"
Aqui indicamos onde vai estar o diretório raiz do Apache.
# INSERE PROTEÃO PARA O DIRETÃIO SAGE
<Directory /var/www/html/sage>
AllowOverride AuthConfig
</Directory>
Aqui indicamos onde começam os diretórios protegidos por senha (https). O conteúdo completo do
arquivo de configuração do Apache se encontra em /usr/local/apache2/conf/httpd.conf.
14.3. Geração do certificado SSL
De modo a permitir que o Apache utilize o SSL para apresentar as páginas seguras por criptografia é
necessário a geração de um certificado de autenticação. É necessário ainda compilar o Apache utilizando a
chave SSL. Este assunto será descrito no próximo item. Os passos executados para a geração de
certificado, descritos abaixo, foram inspirados no documento:
http://www.engenio.com/tas_download/htdocs/docs/relnotes/aix/aixsslcert.html.
14.3.1 Criando a Chave Privada.
No diretório /usr/local/apache2/conf/ssl.key/ executamos o seguinte comando (como root):
openssl genrsa
–out server.key
–rand /var/log/messages 1024
Surge então o arquivo server.key que contém a chave de certificação. É possível criptografar esta chave mas
optamos por não utilizar este aspecto pois nos obrigaria a ter que fornecer uma senha cada vez que o
apache fosse lançado o que impediria que ele fosse lançado automaticamente durante o boot da máquina.
14.3.2. Gerando um Certificado Auto-Assinado.
Agora, no diretório /usr/local/apache2/conf/ssl.crt executamos o seguinte comando para a geração do
certificado auto-assinado:
openssl req -x509 -new -key ../ssl.key/server.key -out server.crt
Isto gerou o arquivo de auto certificação server.crt.
03/10/05
Manual
sugestões: [email protected]
20
Centrais Elétricas do Norte do Brasil SA
Para que estes dois arquivos gerados sejam levados em conta pelo Apache mudamos suas propriedades
para:
chmod 400 /usr/local/apache2/conf/ssl.key/server.key
e
chmod 444 /usr/local/apache2/conf/ssl.crt/ssl.crt/server.crt
14.4. Lançamento do Servidor Apache em Modo Seguro
É muito importante observar que o lançamento do servidor apache passa a ser através do comando:
/usr/local/apache2/bin/apachectl startssl
15. Configuração de rede
A tabela de roteamento do servidor abil é mostrada abaixo.
sage@abil:~/sage > route
Tabela de Roteamento IP do Kernel
Destino
Roteador
MáscaraGen. Opções Métrica Ref Uso Iface
192.167.93.0 *
255.255.255.0 U 0 0
0 eth0
10.0.0.0
10.5.0.1
255.255.252.0 UG 0 0
0 eth1
10.5.0.0
*
255.255.252.0 U 0 0
0 eth1
169.254.0.0 *
255.255.0.0 U 0 0
0 eth1
127.0.0.0
*
255.0.0.0
U 0
0
0 lo
default
10.5.0.1
0.0.0.0
UG 0 0
0 eth1
sage@abil:~/sage >
A configuração (ifconfig) deste servidor é mostrada abaixo:
# ifconfig
eth0
Encapsulamento do Link: Ethernet Endereço de HW 00:07:95:E6:24:C8
inet end.: 192.167.93.203 Bcast:192.167.93.255 Masc:255.255.255.0
UP BROADCASTRUNNING MULTICAST MTU:1500 Métrica:1
RX packets:197081985 errors:0 dropped:0 overruns:0 frame:0
TX packets:32002265 errors:4 dropped:0 overruns:0 carrier:4
colisões:417261 txqueuelen:1000
RX bytes:4211073734 (4015.9 Mb) TX bytes:3801397296 (3625.2 Mb)
IRQ:5 Endereço de E/S:0xd400
eth1
Encapsulamento do Link: Ethernet Endereço de HW 00:0A:01:D4:CE:5B
inet end.: 10.5.1.242 Bcast:10.5.3.255 Masc:255.255.252.0
UP BROADCASTRUNNING MULTICAST MTU:1500 Métrica:1
RX packets:14020426 errors:0 dropped:0 overruns:298 frame:0
TX packets:4364714 errors:0 dropped:0 overruns:0 carrier:0
colisões:0 txqueuelen:1000
RX bytes:1512001220 (1441.9 Mb) TX bytes:3998361806 (3813.1 Mb)
03/10/05
Manual
sugestões: [email protected]
21
Centrais Elétricas do Norte do Brasil SA
IRQ:5 Endereço de E/S:0xd000
lo
Encapsulamento do Link: Loopback Local
inet end.: 127.0.0.1 Masc:255.0.0.0
UP LOOPBACKRUNNING MTU:16436 Métrica:1
RX packets:1562066 errors:0 dropped:0 overruns:0 frame:0
TX packets:1562066 errors:0 dropped:0 overruns:0 carrier:0
colisões:0 txqueuelen:0
RX bytes:199733345 (190.4 Mb) TX bytes:199733345 (190.4 Mb)
A placa de rede eth0 é conectada na rede de difusão do SAGE e tem o IP fixo = 192.167.93.203 e a
placa de rede eth1 é conectada na rede corporativa e tem seu IP obtido via DHCP.
Através do utilitário neat foram informados os seguintes dados de configuração da rede:
eth0:
eth1:
IP: 192.167.93.203
netmask: 255.255.255.0
Nome: abil
DNS primário: 10.0.0.37
DNS secundário: 10.0.0.33
DNS terciário: 10.0.0.98
IP: obtido via DHCP
Nome: abil
DNS primário: 10.0.0.37
DNS secundário: 10.0.0.33
DNS terciário: 10.0.0.98
16. Localização dos Arquivos
Os programas Lebd.c, e LanLebd.c se encontram em $SAGE/src/LEBD.Os programas e scripts
VisorSage.java, VisorAlarme.java, GeraHtml e GeraTudo e GeraGeraTudo se encontram em /var/www/html.
Os arquivos *.dat e *.html também se encontram no diretório /var/www/html.
Como a maioria dos navegadores em uso nesta data ainda utiliza versões antigas da máquina Java é
necessário compilar tanto VisorSage.java quanto VisorAlarme.java utilizando a chave de compilação que
produz o código da versão Java 1.1. Assim, a compilação dos applets desenvolvidos deve utilizar os
seguintes comandos:
Em /var/www/html/sage:
Em /var/www/html/sage:
Em /var/www/html/sage/prot:
javac -target 1.1 VisorSage.java
javac -target 1.1 VisorAlarmes.java
javac -target 1.1 VisorProt.java
e
Estes arquivos também têm uma cópia de segurança no laptop do Daniel e no servidor colbeora1 que
contem o banco de dados ORACLE.
03/10/05
Manual
sugestões: [email protected]
22
Centrais Elétricas do Norte do Brasil SA
Bibliografia
•
•
•
•
•
•
•
03/10/05
http://java.sun.com/reference/docs/index.html
Java Como Programar – H. M. Deitel & P. J. Deitel – Bookman 2004 4ª Edição.
Teach Yourself Visual J++ in 21 days – Patrick Winters et al – Sams net – 1996.
http://java.sun.com/j2se/1.3/docs/api/overview-summary.html
http://www.apache.org/
Java 2 Certification Study Guide. Simon Roberts, Philip Heller, Michael Ernest – SIBEX, 1999
http://www.redhat.com/docs/manuals/linux/RHL-9-Manual/ref-guide/s1-tcpwrappers. . . .
Manual
sugestões: [email protected]
23
Centrais Elétricas do Norte do Brasil SA
Anexos
Head.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>ACESSO AO SISTEMA DE SUPERVISAO DO COL-BE</title>
<meta http-equiv="Content-Type" content="text/html">
<meta content="MSHTML 6.00.2900.2180" name="GENERATOR">
<meta content="FrontPage.Editor.Document" name="ProgId">
<style type="text/css">.botao {
PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP:
0px
}
.botao A {
PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; BACKGROUND: url(botao_4a.gif)
#fff no-repeat
center center; PADDING-BOTTOM: 0px; FONT: bold 12px/24px arial, helvetica, sans-serif; WIDTH:
95px; COLOR:
#fff; PADDING-TOP: 0px; HEIGHT: 24px; TEXT-ALIGN: center; TEXT-DECORATION: none
}
.botao A:visited {
PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; BACKGROUND: url(botao_4a.gif)
#fff no-repeat
center center; PADDING-BOTTOM: 0px; FONT: bold 12px/24px arial, helvetica, sans-serif; WIDTH:
95px; COLOR:
#fff; PADDING-TOP: 0px; HEIGHT: 24px; TEXT-ALIGN: center; TEXT-DECORATION: none
}
.botao A:hover {
BACKGROUND: url(botao_4b.gif) #fff no-repeat center center; COLOR: #ddd
}
</style>
</head>
<body topmargin="0" leftmargin="0">
Botoes.html
<div align="center">
<center>
<table cellspacing="0" cellpadding="0" border="0">
<tbody>
<tr>
<td>
<p class="botao"><a title="&Iacute;ndice Geral das Telas"
href="Indice_Ger.html">Indice</a></p>
</td>
<td>
<p class="botao"><a title="SE Marab&aacute; 500 KV"
href="Uni_SMaria230.html">S. Maria</a></p>
</td>
<td>
<p class="botao"><a title="SE Utinga 230 KV"
href="Uni_Utinga230.html">Utinga</a></p>
</td>
<td>
<p class="botao"><a title="SE Guama 230 KV"
03/10/05
Manual
sugestões: [email protected]
24
Centrais Elétricas do Norte do Brasil SA
href="Uni_Guama230.html">Guama</a></p>
</td>
<td>
<p class="botao"><a title="SE Vila do Conde 500 KV"
href="Uni_VConde500.html">V. do Conde</a></p>
</td>
<td>
<p class="botao"><a title="SE Tucuru&iacute; 500 KV"
href="Uni_Tucurui500.html">Tucurui</a></p>
</td>
<td>
<p class="botao"><a title="Tramo Oeste do Para"
href="Sistema_Tuc.html">Tramo Oeste</a></p>
</td>
<td>
<p class="botao"><a title="SE Marab&aacute; 500 KV"
href="Uni_Maraba500.html">Maraba</a></p>
</td>
<td>
<p class="botao"><a title="Recomposi&ccedil;&atilde;o do Sistema"
href="Uni_Recomposicao.html">Recomposicao</a></p>
</td>
<td>
<p class="botao"><a title="Alarmes e Eventos do S. El&eacute;trico"
href="alarmes.html">Alarmes</a></p>
</td>
</tr>
</tbody>
</table>
</center>
</div>
</body>
</html>
GeraTudo
Aqui é mostrado apenas uma parte do arquivo.
./GeraHtml Carajas_13
./GeraHtml Carajas_230
./GeraHtml Carajas_Aux_VCA
./GeraHtml Carajas_Aux_VCC
./GeraHtml Carajas_Interlig
./GeraHtml Carajas_Tab_Ana
./GeraHtml Carajas_Tab_Dig
./GeraHtml CatCgu
./GeraHtml CatCgu_SVG
./GeraHtml CatCSvc
./GeraHtml CatCut
./GeraHtml CatIsr138
./GeraHtml CatIsr69
./GeraHtml CJ_13
./GeraHtml CJ_230
./GeraHtml CJ_230_ALL
./GeraHtml CJ_230_Interlig
./GeraHtml CJ_Aux_VCA
./GeraHtml CJ_Aux_VCC
./GeraHtml CJ_Aux_VCC_old
./GeraHtml CJ_Indice
./GeraHtml CJ_Medicao
./GeraHtml CJ_Rede_Sage
. . . . . etc . . . . .
03/10/05
Manual
sugestões: [email protected]
25

Documentos relacionados