Otimização da prestação de serviços e minimização de indisponibilidade
através do uso de sistemas Linux customizados
Andre Luiz Ferreira Szczypior
Curso de Especialização em Redes e Segurança de Sistemas
Pontifícia Universidade Católica do Paraná
Curitiba, Dezembro de 2012
Resumo
O objetivo deste trabalho é mostrar como a substituição de equipamentos
Windows por sistemas Linux customizados reduziu os índices de incidentes e
proporcionou um serviço de maior agilidade aos usuários, graças a um conjunto de
regras de segurança. O trabalho irá apresentar resultados comparativos entre as
plataformas, bem como relatar as experiências obtidas durante o desenvolvimento e
testes da customização.
1. Introdução
A localização geográfica das unidades de saúde no município de Araucária,
conforme ilustra a figura 1, impede que várias destas estejam interconectadas com a rede
principal, gerando assim a necessidade de utilização de sinais ADSL para garantir seu
funcionamento.
Entretanto, como não existe controle sobre a utilização da ADSL nestes locais,
e os equipamentos utilizados são todos sob a plataforma Windows XP, o índice de
indisponibilidade nestes locais torna-se elevado e, devido à distância, muitas vezes o
atendimento não pode ser imediato, o que causa transtornos à população atendida nestas
unidades.
Objetivando minimizar estes índices de indisponibilidade e, consequentemente,
oferecer à população uma melhor qualidade de atendimento, resolvemos implantar os sistemas
Linux customizados em substituição aos referidos equipamentos com plataforma Windows
XP.
Uma vez que os equipamentos com Windows XP exigem suporte técnico
frequente, devido à atualizações, reconfiguração do ambiente de trabalho, remoção de vírus e
malwares, entre tantos outros motivos, verificou-se a possibilidade de substituição destes por
sistemas onde tais demandas fossem minimizadas.
Figura 1: Localização das Unidades de Saúde de Araucária
Optou-se então pela utilização de um ambiente Linux, onde sua customização
disponibilizaria ao usuário todas as ferramentas necessárias para o desenvolvimento de suas
funções, restringindo porém funções supérfluas e/ou desnecessárias. Com esta idéia em
mente, optou-se pelo desenvolvimento em cima de uma distribuição Ubuntu 10.10, pelo fato
da maior familiarização com a mesma.
Os equipamentos utilizados nas unidades de saúde continuaram os mesmos,
todos sob a plataforma Intel, com processadores Celeron 430, de 1.8 Ghz, memória RAM
padrão DDR2 de 1Gb e disco rígido de 80 Gb.
2. Projeto
2.1. Estimativa de Riscos
Inicialmente os riscos existentes nestas unidades de saúde foram levantados e
classificados.
A principal ameaça encontradas no cenário em questão foi a indisponibilidade,
que devido ao grande impacto que causaria no funcionamento das unidades de saúde e,
devido à importância do serviço em questão, foi classificada como uma ameaça alta.
Em relação às probabilidades de vulnerabilidade deste cenário, concluiu-se que
as falhas possíveis de ocorrerem podem ser classificadas da seguinte maneira:
- Falha da rede elétrica: Baixa;
- Falha do Equipamento por mau uso: Alta;
- Falha do Equipamento por defeito: Muito baixa.
O principal fator do projeto visou a proteção dos ativos das unidades de saúde.
Neste caso, foi possível dividi-los em dois grupos com valores de ativos distintos:
- Equipamentos : Baixo;
- Informação: Muito Alto.
Assim sendo, teremos para o cenário em questão:
- Risco de indisponibilidade por falha elétrica:
- Risco de indisponibilidade por mau uso:
- Risco de indisponibilidade por defeito:
MÉDIO
MUITO ALTO
MÉDIO
Com estes dados em mãos, foi possível traçar um plano estratégico de
segurança para minimizar os riscos de indisponibilidade do sistema nas unidades de saúde.
2.2. Definição de Necessidades
Foram realizadas reuniões técnicas com os coordenadores de cada unidade, e
levantou-se então quais seriam as necessidades dos usuários em relação ao sistema para que
pudessem desempenhar suas funções de forma satisfatória. Desta maneira, ficaram definidos
como essenciais para o funcionamento das unidades os seguintes aplicativos:
- Editor de Textos;
- Planilha Eletrônica;
- Navegador Web;
- Pasta de Documentos para o Usuário;
- Calculadora;
- Gerenciamento de impressão.
Como o maior problema nestas unidades sempre foi o mau uso da internet, seja
para assuntos pessoais, downloads não autorizados ou visitação de sites não condizentes com
a função da unidade de saúde, estabeleceu-se também a necessidade de um maior controle de
acesso, que foi implantado através do uso das seguintes ferramentas:
- Proxy Squid;
- Iptables.
2.3 Instalação e Configuração
Definidas as necessidades do sistema, iniciou-se o desenvolvimento através de
uma instalação padrão de um sistema Linux, utilizando-se o “livecd” do Ubuntu 10.10, onde
definiu-se o usuário “master” como administrador do sistema, ou seja, participante também
dos grupos admin e root. Após concluída a instalação e atualização do sistema, iniciou-se a
customização do sistema, através dos seguintes passos:
2.3.1 Criação do usuário padrão
Criou-se um usuário e senha padronizados, uma vez que a imagem desta
instalação seria replicada em todas as outras máquinas que utilizariam este sistema. Através da
ferramenta de configuração de usuários nativa do Ubuntu (menu Sistema → Administração →
Usuários e grupos) definiu-se as políticas para o usuário, que somente teria os privilégios de:
compartilhar arquivos através da rede, conectar em redes com fio e sem fio e configurar
impressoras.
2.3.2 Criação do ambiente de trabalho padrão
Após a criação do usuário padrão, definiu-se o ambiente de trabalho, onde
encontram-se à disposição do usuário os aplicativos de Edição de Texto, Planilha Eletrônica,
Navegador Web e Calculadora, além de uma pasta para armazenamento de arquivos do
usuário.
Através do menu Sistema → Preferências → Atalhos de Teclado , alterou-se o
atalho padrão ALT+F1, inicialmente configurado para mostrar o menu principal do painel
Gnome, para iniciar o aplicativo calculadora. Esta ação é parte da política de segurança
adotada, evitando assim que o usuário tenha acesso a aplicativos desnecessários ao
desempenho de suas funções. Ainda dentro dos Atalhos de Teclado, criou-se o atalho para
gerenciamento de impressoras, através do botão Adicionar, nome Impressoras, comando
system-config-printer, associado ao atalho CTRL+ALT+I
Removeu-se do Painel Gnome o menu principal, miniaplicativo indicador, e
sessão do miniaplicativo indicador, além do ícone do Navegador Web. Foram inseridos:
lixeira, lista de janelas, relógio, encerrar sessão e desligar. (Botão direito do mouse, Adicionar
ao Painel)
2.3.3 Configuração do ambiente de trabalho
Após criado o ambiente de trabalho do usuário, iniciou-se uma sessão modo
texto como root. Desta forma, foi possível aplicar as políticas de segurança para o ambiente
do usuário, através da aplicação dos seguintes comandos [1] :
- apt-get remove gdm-guest-session
Remove o usuário convidado do sistema;
- chmod 700 /usr/bin/gnome-appearance-properties
Bloqueia alterações de cores, fontes e papel de parede ao usuário;
- chown -R master.master /home/usuario/Área\ de\ Trabalho/
Bloqueia criação e exclusão de pastas ou ícones na área de trabalho pelo
usuário;
- chmod 750 /usr/bin/gnome-terminal
Bloqueia acesso do usuário ao terminal.
Através da ferramenta gconf-editor, bloqueou-se também a janela de execução
de aplicativos, marcando-se a chave /desktop/gnome/lockdown/disable_command_line. Feitas
estas alterações, o ambiente de trabalho do usuário está configurado.
2.3.4 Configuração do controle de acesso à web
Após a configuração do ambiente, procedeu-se ao controle de acesso à web,
necessário para que a banda disponibilizada pela operadora de telefonia seja corretamente
utilzada, isto é, fique totalmente à disponibilidade dos sistemas utilizados pelas unidades de
saúde.
Para a implantação do controle de acesso são necessárias algumas
configurações adicionais no sistema, como a instalação do proxy Squid [2] e de algumas
regras de iptables. A instalação do Squid deu-se através do comando
sudo apt-get install squid squid-common
O arquivo de configuração inical /etc/squid/squid.conf foi parcialmente
mantido, sendo que apenas as alterações a seguir foram efetuadas:
error_directory /usr/share/squid/errors/Portuguese
…
#APOS DEFINICAO PADRAO DAS acl's
#REGRAS LOCAIS - ANDRE FERREIRA – 20100520
#LIBERA DOMINIOS ESPECIFICOS
acl dominios_liberados dstdomain .gov.br .org.br .jus.br
http_access allow dominios_liberados
#LIBERA SITES ESPECIFICOS
acl urls_liberadas url_regex -i "/etc/squid/liberados'
http_access allow urls_liberadas
#FIM DAS REGRAS LOCAIS
http_access deny all
...
http_port 3128
O arquivo /etc/squid/liberados contém uma lista de sites de domínios diferentes
dos citados na regra dominios_liberados que também podem ser acessados:
www.google.com.br
maps.google.com.br
Este arquivo pode ser alterado de acordo com as necessidades específicas de cada unidade de
saúde, através de solicitação formal do seu respectivo coordenador. Após, substituiu-se o
arquivo /usr/share/squid/errors/Portuguese/ERR_ACCESS_DENIED por outro devidamente
configurado com as informações necessárias:
Figura 2: Tela de Erro de Acesso do Proxy
Deve-se também criar uma interface de rede virtual, a qual será utilizada pelo
navegador web como endereço físico do proxy da rede. Esta é criada e definida editando-se o
arquivo /etc/network/interfaces como segue:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
auto eth0:0
iface eth0:0 inet static
address 10.10.10.2
netmask 255.255.255.0
Com a interface virtual configurada, passou-se à criação de um arquivo de
regras básicas de iptables, as quais garantirão o funcionamento do controle de acesso
proposto. Este arquivo, nomeado como /etc/init.d/regras recebeu os seguintes comandos [3]:
#!/bin/bash
#Habilita redirecionamento
echo 1 > /proc/sys/net/ipv4/ip_forward
#Limpa possíveis regras pre-existentes
iptables -F
#Redireciona o fluxo web para porta do proxy 3128
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j
REDIRECT --to-port 3128
#Bloqueia tentativa de navegação sem o uso do proxy
iptables -t filter -A OUTPUT -p tcp -m multiport --dport
http,https -m owner ! --uid-owner proxy -j REJECT --rejectwith tcp-reset
O arquivo então recebeu permissão de leitura e foi adicionado à rotina de
incialização do sistema:
- sudo chmod 755 /etc/init.d/regras
- sudo update-rc.d regras defaults
Finalizando a etapa de configuração, o navegador web no perfil do usuário é
configurado para navegar com o uso do proxy 10.10.10.2 na porta 3128.
3. Testes e Avaliações
Inicialmente procurou-se estabelecer parâmetros comparativos da performance
do equipamento utilizando os dois sistemas operacionais (Windows XP e Linux customizado).
Para tanto, foram coletados alguns dados referentes aos tempos de inicialização e
desligamento e também sobre o uso de recursos, conforme ilustram a Tabela 1 e a Figura 3.
Tempo Médio, em segundos
Linux
Windows XP
Inicialização
35”07
1'17”31
Desligamento
3”11
31”23
Tabela 1: Tempos Médios de inicialização e desligamento
Os tempos aqui são resultados de uma média aritmética de 5 inicializações e
desligamentos seguidos. Na inicialização tomou-se a precaução de se evitar o tempo de
digitação de usuário e senha. Foram considerados os tempos a partir da bios screen do
equipamento até a disponibilidade total do sistema.
Figura 3: Consumo de recursos utilizando-se Linux e Windows XP
Um importante índice na avaliação foi o número de atendimento por
indisponibilidade do sistema, não considerando-se os problemas físicos, como falhas elétricas
(embora os equipamentos já contem com proteção de no-breaks), falhas nas linhas de
comunicação e falhas de hardware.
Atendimento Mensal
ANTES
(WinXP)
DEPOIS
(Linux)
Indisponibilidade do S.O.
7
1
Desconfiguração
5
0
Vírus
9
0
Tabela 2: Média mensal de chamados de atendimento
Excetuando-se alguns casos de usuários desfamiliarizados com o novo
ambiente, o índice de indisponibilidade reduziu-se consideravelmente, tendendo a zero
quando da substituição dos equipamentos. Enfatiza-se, entretanto, que as falhas físicas e
externas não foram consideradas, uma vez que são comuns a ambos os sistemas.
4. Conclusão
Após a instalação do sistema customizado nos equipamentos das unidades de
saúde, os funcionários puderam usufruir de equipamentos com respostas mais rápidas, o que
facilitou e agilizou os serviços prestados aos cidadãos que dependem destas unidades.
O projeto não se mostrou de grande dificuldade de desenvolvimento ou
implementação, porém mostrou-se de grande valia quando em execução, colaborando para um
melhor atendimento aos moradores dos entornos das unidades de saúde onde foram
implantados, reduzindo, inclusive, os índices de reclamação sobre a prestação destes serviços.
5. Referências Bibliográficas
[1]http://www.vivaolinux.com.br/topico/Suporte/Desativar-Sessao-Convidado-Ubuntu/
[2] Apostila Linux 2 – UTFPR, 2008
[3] Redes Linux – Comandos Gerais e Servidores de Redes, Jorgely Anácio Jr., 2004
Download

Andre Luiz Ferreira Szczypior _ TCC Andre Szczypior