Cláudio Rodolfo Sousa de Oliveira PROJETO DE SUPORTE E SEGURANÇA PARA OS SISTEMAS DESENVOLVIDOS PELA ORGANIZA Vitória da Conquista
SUMÁRIO 1. INTRODUÇÃO...3 2. SUPORTE...4 2.1. Comunicação Voz sobre IP (VOIP)...4 2.2. Assistência Remota...5 2.3. Transferência de Arquivos (FTP)...6 2.4. Controle de Log...7 2.5. Comunicação Cliente/Servidor via aplicação...8 3. SEGURANÇA...10 3.1. Backup do Banco de Dados...10 3.2. Segurança do Banco de Dados Firebird...11 CONCLUSÃO...12 BIBLIOGRAFIA...13 2
1. INTRODUÇÃO O que mantém uma empresa no mercado são seus clientes, e para que eles sejam fiéis é muito importante que estejam satisfeitos com o produto ou serviço prestados. Um suporte melhor aos sistemas da Organiza, além de beneficiar a própria empresa pela monitoração eficiente dos sistemas, através de um acesso direto, rápido e barato aos sistemas, servidores dos sistemas e aos clientes, também beneficiaria os clientes que ficariam mais satisfeitos por se sentirem mais assistidos e mais próximos da Organiza. A segurança dos dados dos clientes também é muito importante, pois muitas informações valem muito mais que qualquer componente de hardware. E uma maior segurança sobre estes dados tranqüiliza a Organiza a respeito de qualquer problema que possa vir a ocorrer sobre os dados como a perca deles, evitando transtornos futuros. 3
2. SUPORTE 2.1. Comunicação Voz sobre IP (VOIP) VOIP é a tecnologia que torna possível estabelecer conversações telefônicas em uma Rede IP (incluindo a Internet), tornando a transmissão de voz mais um dos serviços suportados pela rede de dados [1]. Há no mercado vários programas que dão suporte a esta tecnologia como o Skype, VoIPDiscount, Netcall, IOL Talki,MSN Messenger, etc., cada um com suas peculiaridades. Normalmente todos os programas que operam VOIP disponibilizam a ligação gratuita de computador para computador, alguns destes programas possibilitam a comunicação entre computador e o sistema de telefonia convencional, e entre o sistema de telefonia convencional e o computador, mediante tarifas que não dependem da distancia da chamada nem do horário da ligação como acontece hoje no sistema de telefonia convencional e somente do local a ser chamado. Alguns deste programas possibilitam comunicação gratuita entre um sistema que opera em VOIP e o sistema de telefonia convencional como o VoIPDiscount, Netcall e IOL Talki. Devido ao fato de não possuirem uma politica de utilização bem definida, são considerados não confiáveis, pois a qualquer momento podem vir a cobrar pelas ligações ou retirar o sistema e serviço do ar. Para o suporte aos sistemas da Organiza, recomenda-se a utilização do Skype. Ele é um programa que consome poucos recursos do computador, é de fácil utilização, é gratuito, a empresa que ele pertence (Skype Company) é uma empresa confiável, pioneira no serviço e que está sempre preocupada em melhorá-lo e inová-lo. O Skype possibilita a comunicação Computador/Computador, Computador/Telefone e Telefone/Computador, sendo estes dois últimos mediantes tarifas, como explicado anteriormente. Através deste programa também é possível transferir arquivos entre os computadores, e trocar mensagens de texto instantâneas, muito útil caso algumas das partes não possua um microfone ou caixas de som para uma comunicação por voz. A princípio o Skype seria utilizado para o suporte aos sistemas desenvolvidos pela Organiza através da comunicação entre a empresa e seus clientes, da forma Computador/Computador por ser gratuito e oferecer vários serviços citados anteriormente que poderão ser utilizados no auxilio ao suporte, futuramente pode se pensar na substituição da telefonia convencional de toda a empresa para o uso do VOIP. 4
As tarifas do Skype (em 14/07/2006) para ligações dentro do Brasil, já inclusos os imposto, são: R$ 0,072 para ligação de qualquer lugar para São Paulo (capital) [2]. R$ 0,093 para ligação de qualquer lugar para o Rio de Janeiro (capital) [2]. R$ 0,597 para ligação de qualquer lugar para um celular [2]. R$ 0,152 para qualquer outra região [2]. Em termos comparativos as tarifas pela Embratel, maior empresa de telefonia convencional, já inclusos os imposto são: R$ 0,500 para ligação de Vitória da Conquista para São Paulo ou Rio de Janeiro ou Brejões (Bahia) de fixo para fixo [3]. R$ 0,410 para ligação de Vitória da Conquista para Mortugaba e Malhada (ambos na Bahia) de fixo para fixo [3]. R$ 1,570 para ligação de Vitória da Conquista para São Paulo ou Rio de Janeiro de fixo para celular [3]. R$ 1,370 para ligação de Vitória da Conquista para Brejões de fixo para celular [3]. A simulação de preço foi feita para o horário de 10 horas da manhã em 21/07/2006. 2.2. Assistência Remota O VNC (Virtual Network Computing) é uma ferramenta que permite acessar remotamente uma máquina rodando os sistemas operacionais Windows, Linux, MacOS ou praticamente qualquer outro sistema a partir de outro computador, ou até mesmo de um Handheld [4]. Existem vários programas que trabalham desta forma como o PC Anywhere, Carbon Copy, etc. e outros que derivam dele como TightVNC, UltraVNC, RealVNC, etc. sendo que estes últimos são compatíveis entre si, isto é, clientes e servidores distintos podem interagir harmonicamente. As vantagens de utilizar o VNC são: O VNC é gratuito. Múltiplos usuários podem se conectar ao mesmo desktop simultaneamente. Há possibilidade de a conexão ser no modo somente leitura (somente visualização do computador), ou acesso total (possibilita a interação com o computador através do mouse e teclado). 5
Se a sua conexão cair, você não perde a sessão do VNC. Basta reconectar e as aplicações remotas estarão exatamente do mesmo jeito que estavam antes da conexão cair. O visualizador do VNC é um programa de menos de 160Kb roda em Windows, OS/2, Linux, Unix, Mac e até no Palm Pilot Não há necessidade de se instalar o visualizador, que pode ser executado diretamente de um disquete. Na verdade você não necessita de visualizador nenhum: qualquer browser com suporte a Java pode ser utilizado como visualizador. O "servidor" do VNC hoje roda em Windows e em Unix (incluindo Linux) e está em desenvolvimento à versão Mac. O Windows pode controlar um desktop Linux e vice-versa. O VNC é independente de plataforma. O VNC utiliza TCP/IP, portanto você pode controlar outro computador via Internet. Dos derivados do VNC o mais completo e utilizado é o UltraVNC, ele possui algumas características peculiares como: Pode se configurá-lo para que se receba imagens de acordo com a velocidade da conexão utilizada, quanto mais rápida, melhor será a qualidade de visualização, isto é interessante pois o torna muito rápido, mesmo com conexões mais lentas. Ele possui um chat no qual é possível que os clientes e até o próprio servidor comuniquem se em tempo real. Através dele é possível transferir arquivos entre cliente e servidor e vice-versa, muito útil caso seja necessário pegar ou enviar alguma arquivo ao computador servidor. O UltraVNC é uma ferramenta que acessa computadores remotamente que pode ser utilizado pela Organiza para acessar os servidores de aplicação dos clientes, para o monitoramento dos mesmos, instalação de programas, copias e transferências de arquivos do servidor. 2.3. Transferência de Arquivos (FTP) FTP significa File Transfer Protocol (Protocolo de Transferência de Arquivos) e, como o nome diz, é o protocolo para a transferência eficiente e confiável de arquivos entre servidores distintos, possibilitando o armazenamento remoto de arquivos, bem como a recuperação de arquivos de outros servidores ou bibliotecas públicas [5]. 6
Existem hoje no mercado inúmeros programas que oferecem o serviço FTP como o WS-FTP, CuteFTP, GuildFTP. O WS-FTP é considerado o mais rápido programa de FTP na plataforma Windows, mas não é gratuito, o CuteFTP é o mais popular programa de FTP devido a sua simplicidade. O GuildFTP é rápido e possui uma excelente política de acesso ao serviço com o controle de vários usuário, com ele também é possível dar permissões (escrita, leitura) aos compartilhamentos FTP assim como observar conexões ativas e os uploads e downloads realizados pelos usuários. Para a Organiza é interessante ter um servidor de FTP em cada servidor de aplicação de cada cliente (Prefeitura) da empresa para o envio e copia de arquivos do servidor remotamente, como, por exemplo, copiar o banco de dados ou substituir um arquivo antigo por um mais recente. Um servidor FTP também possibilita disponibilizar os instaladores dos programas, para que os usuários façam o download de uma URL previamente definida, ou também, através de um controle de versão na aplicação, fazer com que a aplicação detecte que há uma nova versão do sistema e a baixe automaticamente do servidor de FTP. 2.4. Controle de Log Log são arquivos nos quais ficam registrados os eventos ocorridos em um computador, durante um período pré-determinado [6]. Esse registro pode ser utilizado para restabelecer o estado original de um sistema ou para que um administrador conheça o seu comportamento no passado. Um arquivo de log pode ser utilizado para auditoria e diagnóstico de problemas em sistemas computacionais [7]. Os eventos interessantes para serem armazenados pelo Organiza em arquivos podem ser divididos em três categorias: Log de Acessos: Este arquivo de log guardaria informações referentes aos usuários autenticados no sistema, bem como o tempo de permanência. Também é interessante registrar as tentativas mal sucedidas de acesso ao sistema, seja por falta de autorização dos usuários para autenticar no sistema (caso exista uma política de ativação e desativação de usuários) ou até por erro na autenticação (normalmente senha incorreta). Log de Erros: Este arquivo de log guardaria todos os erros capturados pela aplicação assim como as exceções geradas pelo sistema. Este log é muito importante para a manutenção corretiva dos sistemas que pode ser feita a partir do diagnóstico dos problemas com base nas informações armazenadas. Sem o controle de log, a empresa 7
só fica ciente dos problemas reportados pelos usuários, que podem ou não reportá-los, assim como podem se expressar erroneamente levando a uma inferência de um problema diferente do ocorrido. Log de Transações: Este arquivo de log guardaria informações referentes às operações dos usuários sobre o sistema de software, como inclusões, alterações e exclusões. Estas informações são úteis para saber o que cada usuário fez no sistema, respaldando os demais caso algum problema ocorra, assim com respaldando a empresa de qualquer problema com o software. Para todas as categorias de log propostas é importante armazenar também o usuário que realizou ou tentou realizar a operação, bem como o horário em que isso ocorreu. 2.5. Comunicação Cliente/Servidor via aplicação Os sockets permitem que uma aplicação se comunique com outras aplicações através da rede. O mais comum é implementar aplicações usando MIDAS e conexões de sockets. O funcionamento das aplicações é o seguinte: uma instância da classe TSocketConnection (componente responsável por estabelecer a comunicação entre cliente e servidor de aplicação) estabelece uma comunicação inicial entre o cliente e o servidor de aplicação usando TCP/IP. Um requisito aqui necessário é que o servidor esteja executando uma aplicação chamada Socket Server (ScktSrvr.exe) disponível no Delphi [8]. A comunicação entre cliente e servidor das aplicações desenvolvidas em Delphi com o uso do SocketConnection funciona sobre o protocolo de chamada de procedimento remoto (RPC) para que seja possível a comunicação entre o cliente e o servidor é necessário que exista no servidor uma instancia de uma classe que provê acesso remoto como a classe TRemoteDataModule utilizada na Organiza, nesta classe devem estar o controle de transações da aplicação. O RemoteDataModule (RDM) cria uma interface na qual pode-se definir atributos (tipo, se é atributo para leitura/escrita/leitura-escrita) e métodos (procedimentos ou funções, parâmetros de entrada e saída) [8]. O RDM permite a criação de outras interfaces, além da interface criada junto com ele, isto é interessante, pois podemos definir uma interface para o cliente, e no cliente criar uma classe que implemente esta interface e através do servidor invocar os métodos do desta classe. A comunicação cliente/servidor já é utilizada pela Organiza, e a comunicação servidor/cliente possibilitará: 8
Envio de mensagens de texto para os clientes (específico ou para todos) em tempo real. Colocar os clientes em quarentena ou derrubá-los, mediante aviso justificado, caso seja necessário fazer alguma manutenção no sistema. Verificar se as conexões dos clientes que estão no servidor estão realmente ativas e se não estiverem, finalizá-las, para a liberação dos recursos utilizados por ela. 9
3. SEGURANÇA 3.1. Backup do Banco de Dados Normalmente o backup (também conhecido como cópia de segurança ou reserva) trata-se de uma cópia da informação contida em arquivos local ou remoto, sendo, na prática, uma réplica dos dados originais atuais, guardados em um outro local seguro. As cópias de segurança são fundamentais em qualquer sistema. No caso de uma pane mais séria no sistema, esta não implicará a perda total da informação contida no sistema que, ao contrário do que acontece com o hardware, não é substituível [9]. O Sistema de gerenciamento de banco de dados (SGBD) Firebird possui rotinas internas de backup do Banco de dados. Ele guarda apenas as modificações feitas no banco de dados original, sendo assim, para um banco de dados recém criado a proporção entre o tamanho de um arquivo de banco de dados e do backup o arquivo chega a ser de 4 para 1, a medida que o banco vai crescendo com a inclusão de informações esta proporção vai diminuindo. Existem alguns softwares, gratuitos inclusive, que geram um arquivo de backup a partir de um banco de dados firebird e o restaura o banco de dados a partir do arquivo gerado, como o IBerSoft. Por ser um software simples de se construir com o Delphi o interessante é que a própria Organiza o construa, porque novas funcionalidades que não se encontram nos software já prontos poderia ser incorporadas como compactar o arquivo de backup do banco de dados e envia-lo por e-mail, periodicamente em um horário predefinido. Existem pacotes para Delphi que implementam o algoritmo de compactação dos arquivos.zip, inclusive com suporte a senha para a extração dos dados e também pode se utilizar as rotinas de compactação via linha do comando de programas de compactação já existentes como o WinZip, FilZip, WinRar, etc. Para o armazenamento das informações, pode se utilizar um ou mais provedores de email. Existem provedores que oferecem um espaço de armazenamento virtual muito grandes como o Yahoo que oferece 1 Gigabyte de espaço, e o Gmail que disponibiliza 2,5 GigaBytes de espaço, o bom de se utilizar um armazenamento virtual é que o mesmo pode ser acessado independente de localização. 10
3.2. Segurança do Banco de Dados Firebird O usuário SYSDBA, cuja senha padrão é masterkey (pode ser mudada), tem permissão total para todas as operações sobre um banco de dados Firebird, e não pode ser excluído. O Firebird até sua ultima versão estável (1.5), implementa a segurança através da autenticação em nível do SGBD, este esquema de segurança funciona muito bem desde que ninguém, sem acesso autorizado, possa copiar o arquivos do banco de dados, pois uma vez em poder do arquivo, ele pode ser aberto em qualquer computador com o usuário SYSDBA, mesmo que a senha tenha sido mudada porque as informações de senha e usuários não são gravadas do arquivo e sim no SGBD. Uma das inovações que o Firebird 2.0 (ainda em desenvolvimento) trará será esta, a autenticação do usuário passa a ser em nível de Banco de dados, isto é, as informações referentes a usuários e senha não ficará mais no SGBD e sim no arquivo. Mas enquanto o Firebird 2.0 não chega pode-se fazer algumas operações que melhoram a segurança do banco de dados Criar um usuário para que todo acesso ao banco se realize por ele. Dar controle total a este usuário a todas as tabelas do banco de dados assim como todas as tabelas de sistema (Utilizadas pelo banco de dados para controle interno). Retirar todas as permissões do usuário public (um usuário com poucas permissões, mas que pode abrir o banco de dados) das tabelas de sistema e das tabelas do banco. Criar uma role (via código, pois o sistema não aceita criar uma role pro SYSDBA), para o usuário SYSDBA, para que não seja possível abrir o banco de dados com este usuário. Depois disso não será mais possível abrir o banco de dados com o usuário SYSDBA, mas se o arquivo for copiado, será possível entrar no sistema com outra senha desde que se saiba o nome do usuário criado (deve-se manter em total sigilo) para acessar o banco no lugar do SYSDBA, como se pode ver, não é uma maneira totalmente eficiente, mas melhora a segurança do Banco de Dados. 11
CONCLUSÃO Como observa-se todas as tecnologias estão interligadas e acontece de duas ou mais oferecerem o mesmo serviço ou um serviço similar, isto é interessante para possibilitar a escolha de acorda a particularidade de cada um, como o UltraVNC e o Skype que oferecem chat ou a comunicação cliente/servidor via aplicação que possibilita o envio de mensagens para os clientes, ou também o transferência de arquivos que podem ser feitas via GuildFTP ou UltraVNC. A segurança das informações evitará acesso não autorizado ao banco de dados, e com a cópia periodicamente do banco para servidores de e-mail será possível uma restauração dos dados em tempo hábil, caso seja preciso. 12
BIBLIOGRAFIA [1] Voz sobre IP. Powered by MediaWiki, 06/07/2006. Disponível em <http://pt.wikipedia.org/wiki/voip> Acessado em: 07/07/2006. [2] Tarifas para Destino(Ordem Alfabética). Skype. Disponível em <http://www.skype.com/products/skypeout/rates/all_rates.html?currency=brl> acessado em 21/07/2006. [3] Planos de Tarifas. DDD Básico, calcule o valor de sua ligação. Embratel. Disponível em: <http://www.embratel.com.br/embratel02/cda/portal/0,2997,re_p_267,00.html> acessado em 21/07/2006. [4] MARIMOTO, Carlos. Usando o VNC. Guia do Hardware.net, 11/08/2002. Disponível em <http://www.guiadohardware.net/tutoriais/066>, acessado em 07/07/2006. [5] PEREIRA, Aisa. Transferência. Aprenda a Internet Sozinho Agora. Disponível em <http://www.aisa.com.br/transfe.html>, acessado em 10/07/2006. [6] Muitas Dicas. ABC da Informática. Disponível em <http://www.muitasdicas.hpg.ig.com.br/vocabulario.htm>, acessado em 14/07/2006 [7] Log de dados. Powered by MediaWiki, 18/06/2006. Disponível em: <http://pt.wikipedia.org/wiki/log_de_dados> acessado em 14/07/2006. [8] WILDT, Daniel de Freitas. Programação Distribuída no Ambiente Delphi 5 utilizando tecnologia MIDAS, 2000. Porto Alegre - RS. Disponível em <http://www.inf.ufrgs.br/~wildt/cmp167/t1/cmp167_t1_wildt.htm>, acessado em 17/07/2006. [9] PINHEIRO, José Maurício. Backup e Recovery. Projeto de Redes, 07/07/2004 Disponível em <http://www.projetoderedes.com.br/artigos/artigo_backup_e_recovery.php>, acessado em 10/07/2006. 13