Capítulo 9 - Soluções Diversas FlagShip – O Clipper do Linux FlagShip é uma linguagem de quarta geração que traduz o código das linguagens xBase em linguagem C para diversos ambientes Unix e Linux. Este software foi desenvolvido pela empresa Multisoft sediada em Munique (Alemanha). Por rodar em ambiente Unix este software tira proveitos das características dos ambiente o qual esta trabalhando, tais como : -
multi-tarefas;
-
maior segurança;
-
multi-usuários
-
não há limitação da RAM utilizada.
Mas estas vantagens acima estão diretamente ligadas ao ambiente operacional, mas as vantagens não param, pois a Multisoft criou uma grande compatibilidade com o Clipper Summer 87 e 5.x (ambos softwares da Computers Associates). Destaco as principais características : -
compatibilidade com a linguagem CA-CLIPPER;
-
as bases de dados DBF/DBT poderão ser usadas;
-
capacidade de gerenciamento de até 4Gb em arquivos DBF;
-
processamento servidor não necessitando ter estações poderosas;
-
diminuição da corrupção na base de dados ou índices;
-
foram criada 160 novas funções/comandos;
-
menor tráfego na rede;
-
criação de aplicativos CGI/WEB
Mas o FlagShip tem suas limitações principalmente na área de vídeo, pois não tem ambiente gráfico e o tempo de resposta do vídeo em modo texto é menor que no Clipper (no ambiente DOS o Clipper escrevia a informação diretamente na memória de vídeo, o que não é mais possível devido às características do ambiente LINUX/UNIX).
Instalação Para a instalação é necessária uma área de 25Mb de espaço em disco. O FlagShip poderá ser encontrado no CD do Conectiva Linux desde a versão Guarani ou então no endereço eletrônico abaixo: http://www.fship.com
Aplicações Avançadas em Linux Para esta instalação existe a necessidade de se instalar os seguintes pacotes,caso não tenham sidos instalados : - gcc-2*rpm - libc-*rpm, - libc-include*rpm, - libc-static-*rpm, - libc-devel-*rpm, - binutils-*rpm, - *kernel-source-*rpm
Para verificar se o pacote já está instalado utilize o comando rpm –qa nomedopacote
Logue como root e monte o cd que contenha o FlagShip (no Conectiva Linux 5.1 ou 6.0 utilize o CD 5 – Aplicativos Comerciais). mount /mnt/cdrom Vá até o diretório onde está o RPM do software cd /mnt/cdrom/FlagShip e instale através do seguinte comando (dependendo da versão do FlagShip poderá haver mudanças na numeração do arquivo). rpm –ivh FlagShip-eval-4.48-7452.i386.rpm Após a instalação o software criará a seguinte estrutura de diretórios:
Bibliotecas
:/usr/lib
Arquivos header
:/usr/include
Arquivos de fontes e documentação
:/usr/FSsrc
Manual
:/usr/FSsrc/manual
Executáveis e scripts
:/usr/bin
Parâmetros do compilador
:/etc/FSconfig
A documentação o software é bem completa (mais de 1500 páginas) e poderá ser acessada pelo comando abaixo: fsman
Página 2
Aplicações Avançadas em Linux Para se compilar um programa, é necessário apenas seguir a sintaxe do comando abaixo no diretório onde se encontra as fontes do seu programa: FlagShip programa.prg –o nomedoprogramaexecutável Na compilação são reportadas as seguintes fases de verificação de sintaxe e diretivas: -
Precompilação;
-
converção dos arquivos PRG para a linguagem C;
-
compilação (utilizando o compilador C do sistema operacional);
-
link edição.
Caso haja necessidade de criação de banco de dados ou alteração de estrutura, poderá ser usado o programa dbu, este programa tem as mesmas funcionalidades do dbu para Clipper, para utilizá-lo tecle dbu na linha de comando. dbu
Migrando Clipper para FlagShip Na migração dos programas desenvolvidos em Clipper para a FlagShip alguns cuidados e procedimentos deverão ser realizados, tais como : Migração dos arquivos Através do ftp transfira os arquivos nos seguintes modos: Modo Binary para arquivos tipo dbf,dbt e frm. Modo ASCII para arquivos prg e txt. Compatibilidade. De forma a garantir a máxima compatibilidade, inclua na primeira linha do programa principal o comando: #include "fspreset.fh" Com isso não necessitará trocar os nome de arquivos e diretórios de maiúsculo para minúsculo ou trocar as barras invertidas utilizadas em sistemas DOS para barras normais no sistema Linux. Para a edição dos arquivos fontes poderá ser utilizado qualquer editor texto (vi, mcedit, joe,..). Impressão. No sistema DOS o Clipper envia a impressão diretamente à porta da impressora (exemplo lpt1), mas em sistemas Linux a impressão deverá ir para área de spool e depois o sistema operacional se encarregará de enviar o arquivo até a impressora. Devido a esta característica do S.O. algumas alterações no programa fonte são necessárias. Exemplo: Para a impressão de um arquivo textes.txt, deve se utilizar um dos comandos abaixo: cp teste.txt /dev/lp1
(copia diretamente o arquivo para a porta de impressão lp1)
Página 3
Aplicações Avançadas em Linux cat teste.txt > /dev/lp1
(copia diretamente arquivo para a porta de impressão lp1)
lpr teste.txt
(imprime através de SPOOL, este comando é o mais adequado)
1) Para imprimir diretamente na porta de impressão Inclua o comando seguinte para imprimir diretamente na porta lp1: SET PRINTER TO /dev/lp1 2) Para imprimir utilizando SPOOL. SET PRINTER TO rel.prn .... comandos... run lpr rel.prn Todos os demais comandos de impressão podem continuar como no Clipper. Exemplo: report form teste to print set device to print set print on Lembre-se que o Linux gerencia a impressão independente de estar local ou remota.
Segurança Segurança é o principal ponto a ser verificado após a instalação e configuração de um servidor. Nos capítulos deste livro foram abordados muitos procedimentos de segurança com que o administrados deverá se preocupar. Iremos agora abordar alguns itens genéricos sobre a segurança em um servidor, dos quais destaco os pontos abaixo: Serviços TCP Port Alguns serviços do TCP Port poderão ser usados para entrar em seu sistema, são eles: Netstat (tcp/15) Mostra todas as informações sobre sua conexão atual (enderecos, dns, portas, etc) Systat (tcp/11) Mostra qualquer/todos os processos que estão sendo rodados no servidor, quando acessado via telnet através da porta 11, qualquer pessoa pode ver os processos dentro do servidor. Finger (tcp/79) Apresenta informações completas de usuários logados/não-logados em seu sistema (shells, diretórios, logins, etc). Existe alguns Bugs (falhas na segurança) que podem ser usados remotamente. Para deixar sua instalação mais segura, edite o arquivo /etc/inetd.conf e comente (#) as seguintes linhas:
Página 4
Aplicações Avançadas em Linux #finger stream tcp nowait nobody /usr/sbin/tcpd in.fingerd -w #systat stream tcp nowait nobody /usr/sbin/tcpd /bin/ps -auwwx #netstat stream tcp nowait root /usr/sbin/tcpd /bin/netstat –a Desta forma somente o root poderá utilizar estes comandos.
Na distribuição do Conectiva Linux estas portas estão fechadas por default (padrão).
Telnet Server É um serviço que habilita um usuário a acessar um terminal remotamente. O uso deste serviço, deixa o sistema muito vulnerável. Existe uma ferramenta útil para que possamos habilitar o telnet server e ao mesmo tempo se precaver, esta ferramenta se chama ttysnoop. Esse daemon faz com que se possa ver tudo o que está acontecendo nos terminais, caso o administrador verifique algum problema ou mau uso este poderá matar os processos destes terminais. Configurando o ttysnoop Edite o arquivo /etc/inetd.conf para que possamos desabilitar o in.telnetd. Comente a linha: #telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd No mesmo arquivo habilite o serviço in.telnetsnoopd, descomentando a seguinte linha: telnet stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.telnetsnoopd Iremos definir em quais os terminais o acesso vai ser monitorado. Para isso, edite o arquivo /etc/snooptab e inclua as seguintes linhas: # tty snoopdev type execpgm ttyp0 /dev/tty6 login /bin/login ttyp2 /dev/tty5 login /bin/login Neste exemplo acima, foram definidos dois terminais para o monitoramento. Quando alguém acessar telnet de sua máquina, simplesmente o snoopdev será direcionado para os consoles /dev/tty6 (ALT+F6) e /dev/tty5 (ALT+F5). Desta forma o administrador poderá verificar tudo o que esta ocorrendo. Após configurado reinicie o servidor. Monitoramento de arquivos O monitoramento de permissão de arquivos é fundamental para manter a integridade do servidor. Auditar regularmente o seu sistema a procura de arquivos sem autorização e não necessitando o uso de permissão de setudi ou setgid. Os programas “Set-user-ID-root” rodam como root indiferente de quem está rodando-os, são com freqüência uma causa de Buffer Overflows. Afim de evitar este tipo de ocorrência, iremos rodar o comando abaixo com a finalidade de avaliar quais são os arquivos com esta permissão: root# find / -type f -perm +6000 -ls 59520 30 -rwsr-xr-x 1 root root 30560 Apr 15 1999 /usr/bin/chage 59560 16 -r-sr-sr-x 1 root lp 15816 Jan 6 2000 /usr/bin/lpq
Página 5
Aplicações Avançadas em Linux
root# chmod -s /usr/bin/chage /usr/bin/lpq root# ls -l /usr/bin/lpq /usr/bin/chage -rwxr-xr-x 1 root root 30560 Apr 15 1999 /usr/bin/chage -r-xr-xr-x 1 root lp 15816 Jan 6 2000 /usr/bin/lpq
Verifique todos os arquivos com permissão de escrita por todos e caso sejam encontrados arquivos estranhos altere a sua permissão para somente leitura (read). Utilize o seguinte comando para de verificar este problema: root# find / -perm -2 ! -type l –ls Em operações normais os arquivos localizados no diretório /dev e /tmp são comuns de terem este tipo de direitos.
Localize todos os arquivos que não tenham nenhum dono (owner) ou que não pertençam a nenhum grupo, pois provavelmente podem ser indicação de tentativa de intrusão. Localize os arquivos através do comando abaixo e apague os arquivos estranhos. # find / -nouser -o -nogroup Proteja o LILO com senha, desta forma quando forem passados parâmetros para o Kernel este solicitará a senha de acesso previamente armazenada no lilo.conf . Para cadastrar uma senha, edite o arquivo /etc/lilo.conf e insira as linhas restricted e password e reinicialize o servidor. Veja exemplo abaixo: # arquivos /etc/lilo.conf image = /boot/vmlinuz-2.2.17 label = Linux read-only restricted password = coloque_a_senha_aqui Os sites abaixo deverão ser consultados com freqüência, pois trazem dicas, soluções sobre implementação de segurança. http://www.linuxsecurity.com/ http://www.linuxsecurity.com.br/ http://www.net-security.org/ http://www.unsecurity.com.br/
Página 6
Aplicações Avançadas em Linux
Monitoramento FTP (WU-FTPD) Um dos usos mais comuns em servidores Linux é a utilização como servidor FTP. Este serviço geralmente é disparado pelo inetd na maioria das versões do Linux. Uma forma de podermos ter um log dos acessos e transferências através do FTP é de colocar junto a inicialização do serviço FTP, o qual gravará no arquivo /var/log/messages todos os comandos utilizados em cada sessão do FTP. Para isso altere a linha spserviço FTP no arquivo /etc/inet.conf para: ftp stream tcp nowait root /usr/sbin/tcpd wu.ftpd –l –L –i –o Desta forma com as seguintes opções: –l
cada sessão do FTP é gravada no syslog;
-L
todos os comando enviados ao servidor FTP são gravados no syslog;
-i
todos os arquivos recebidos pelo servidor serão gravados no /usr/adm/xferlog e
–o
todos os arquivos enviados pelo servidor Linux serão gravados no /usr/adm/xferlog.
No-Break As quedas de energia causam grandes problemas a servidores , pois podem causar queima de componentes internos do sistema, aumentando o tempo de indisponibilidade do mesmo. Apesar de hoje a disponibilidade do fornecimento de energia elétrica está em torno de 99,9%. Vários destes distúrbios são muito rápidos e imperceptíveis para que os usuários e administradores notem, mas podem travar um roteador ou reiniciar um switch. Estes problemas são muito comuns. Mostraremos algumas estatísticas abaixo: -
34% das quedas da rede são por alimentação ruim (Estudo da IBM).
-
99% dos problemas de alimentação são energia fraca ou repentinas quedas de energia. Somente os nobreaks podem proteger contra isso.
-
45% das perdas de dados são causadas por problemas de alimentação.
Ao pesquisar no-breaks, leve em consideração o seguinte: -
Liste todos os equipamentos que você tem e que necessitam de proteção. Lembre-se de incluir monitores, terminais, discos rígidos, modems externos e quaisquer outros equipamentos no caminho crítico dos problemas potenciais de energia.
-
Calcule o consumo total de corrente de seus equipamentos. Esta informação vem impressa provavelmente atrás de cada equipamento.
-
Multiplique o consumo de corrente total pela tensão de operação (110 ou 220 V), dependendo da região e obtenha a especificação de Volt-Ampère (VA) total.
Página 7
Aplicações Avançadas em Linux -
Multiplique o valor total em VA por 0,75.
-
Selecione um no-break com capacidade em VA maior ou igual à capacidade obtida pelo cálculo do passo anterior.
-
Para acomodar expansões futuras, é recomendável adquirir um no-break com valor em VA maior.
Um dos no-breaks mais conceituados no mercado são os da marca APC, mais qualquer outro poderá ser utilizado para esta finalidade. Abaixo descrevo o procedimento de instalação do no-break APC. Instalação – SMART-APC Instale smupsd, com o arquivo rpm que reflita este pacote. NOTA: Se há uma versão smupsd mais antiga, você deverá finalizar antes de instalar a mais nova. Conecte seu SMART-UPS para seu sistema com o APC Cabo Sinalizando Inteligente incluiu com o APC produto da PowerChute. Crie um vínculo simbólico do dispositivo consecutivo (para qual o Smart-UPS é fixo) para /dev/ups, por exemplo. ln -s /dev/cua0 /dev/ups Alternadamente, edite /etc/rc.d/init.d/smupsd.init e mude o nome de dispositivo passado em linha de comando. Ou inicie o daemon como root através de um reboot ou manualmente: /etc/rc.d/init.d/smupsd.init start Veja os log de mensagens em /var/log/messages. Quando o daemon iniciar, você deverá ver algo como o seguinte: Nov Nov Nov Nov
14 14 14 14
10:27:09 10:27:09 10:27:09 10:27:09
devil devil devil devil
smupsd: smupsd: smupsd: smupsd:
Monitoring UPS on /dev/ups Listening for messages on port 4321 Logging to file /var/log/smupsd UPS battery charge level is 100%
Se você não confiar neste daemon, poderá excutar em modo debug passando a opção –d na linha de comando. Em modo debug, smupsd monitorará o Smart-UPS, mas na verdade não fechará seu sistema ou dará poder de shutdown ao Smart-UPS. Alternadamente, você poderá inicar o smupsd com a opção –p, esta opção inibe smupsd de comandar o SmartUPS dar poder de shutdown no sistema Linux. Note isso com versões atuais de núcleo 2.0.X e LinuxThreads, o processo de daemon aparecerá multiplios processos na console, porque o kernel nomeia atualmente para processo diferente IDs para cada linha. Se você tem outros servidores Linux, pode-se usar smupsd para fecha-los em cascata. Você deve passar o nome da máquina master (principal) o qual está conectado fisicamente o Smart-UPS, para o progrma smupsd que roda na máquina slave (escravo) com o flag -h. O programa gráfico upsmon monitorará parâmetros de UPS selecionados de qualquer hosts, começando com o nome do host para qual o Smart-UPS está conectado como o único argumento de linha de comando. Se nenhum argumento é especificado, o programa upsmon monitora localhost.
Página 8
Aplicações Avançadas em Linux Por default (padrão), smupsd aceitarão pedidos de qualquer upsmon ou outro smupsd que originam de qualquer host. Dependendo de sua configuração de rede, isto poderia apresentar um problema de segurança. Quando smupsd é começado com a opção de -s, obedece os parâmetros na cadeia tenha acesso configuração do arquivo /etc/hosts.allow e /etc/hosts.deny, como descreve nas man pages no item hosts_access. Note isso o host só poderá ser designado valores numérico atualmente (IP). Por exemplo, restringir o uso do programa de upsmon de qualquer host, mas o qual smupsd está rodando (i.e., localhost), passe o parâmetro -s fazem sinal a smupsd no smupd.init, grave e somente o seguinte para /etc/hosts.allow: smupsd: 127.0.0.1 Quando gravando num arquivo de log, o programa smupsd só grava informações numéricas separadas por espaço branco, desta forma fica mais fácil de criar relatórios de logs. Por exemplo, a pessoa poderia importar um arquivo de log diretamente em um programa de planilha eletrônica e poderá criar um gráfico da UPS com a temperatura da bateria no curso de uma semana. O dados escrito ao arquivo estão na seguinte ordem: -
Data de último UPS prova;
-
Tempo de último UPS;
-
Carga da bateria (por cento);
-
Carga de produção (por cento);
-
Voltagem de linha (entrada);
-
Mínima voltagem de linha;
-
Máxima voltagem de linha;
-
Voltagem de saída;
-
Freqüência da linha (Hz);
-
Voltagem da bateria;
-
Temperatura de bateria (graus Celsus).
O arquivo de log se parecerá algo como: 08/18/97 08/18/97 08/18/97 08/18/97
14:55:00 15:05:10 15:15:09 15:25:11
100 100 100 100
29 29 29 29
122.2 122.8 120.9 121.5
118.9 118.3 119.6 120.2
122.8 122.8 122.8 123.5
122.2 122.8 122.8 121.5
60.00 60.00 60.00 60.00
27.6 27.6 27.6 27.6
31.9 31.9 31.9 31.9
Operação smupsd trabalha como segue: O Smart-UPS é lido a cada 10 segundos. O nível de carga da bateria é gravado -
no startup (inicio do processo);
-
sempre que alcança 100%;
-
sempre que alterar por 10% ou o último valor lido.
Página 9
Aplicações Avançadas em Linux
Quando o Smart-UPS chaveia para uso em bateria, este permanece no modo de bateria durante 30 segundos, para que o smupsd possa avisar sobre power failed (falha de energia elética), transientes (como surtos e selftest) são ignorados. Quando smupsd determina a falta de energia elétrica, grava no log e continua monitorando o nível de tesnão da bateria a cada 10 segundos. Se a qualquer hora durante a falha de energia esta for reestabelecida, smupds esperarão novamente por 30 segundos para indicar que a energia foi re-estabelecida e gravar esta ocorrencia no log. Enquanto o UPS está em bateria, se a tensão da bateria ficar abaixo de um valor pré-estabelecido (falta: 40%) ou o número de minutos especificou no flag -m decorreu (falta: no limit), smupsd notifica o init e inicia o processam de shutdown do sistema. Com a falta /etc/inittab prove com o Conectiva e RedHat uma paralisação do sistema a ser programado agora durante 2 minutos. Serão notificados todos os usuários no sistema sobre esta paralisação iminente. Se a tensão retorna, smupsd notificará init que cancelará a paralisação, se já não começou. Depois de 2 minutos, o sistema começará a paralisação do sistema. Um dos últimos processos a finalizar será smupsd. Quando smupsd recebe um SIGTERM depois de pedir uma paralisação do sistema, instruirá o SmartUPS para dar shutdown, após um período pré-definido (o tempo padrão é 20 segundos) (a menos que smupsd fosse inicializado com o flag -p). Então, logo após a paralisação do sistema estar completa, o Smart-UPS desligará. Quando a energia reestabelecer, a UPS se re-iniciará novamente.
Monitoramento de Disco Rígido (Winchester / Hard disk) Os discos rígidos dos principais fabricantes deste tipo de dispositivo já implementaram a tecnologia S.M.A.R.T. (Self-Monitoring, Analysis and Reporting Technology). Usando a tecnologia S.M.A.R.T. , virtualmente qualquer componente inteligente ou dispositivo dentro de um computador pode comunicar seu estado de confiança ao seu usuário e administrador de sistema, prover proteção que pode prevenir tempo de manutenção de sistema, diminuição de produtividade, e até mesmo a perda de valiosos dados. Pelo S.M.A.R.T. poderá fazer diagnósticos avançados, que monitoram as operações internas de um disco rígido e fornecem advertência para muitos tipos de problemas potenciais. Se descobrir, o disco rígido poderá ser programado para substituição antes que a perda de dados ocorra. Tendo como resultado: produtividade mais alta e aumento na segurança dos dados. Nos últimos anos, unidades de disco passaram de seguro para extremamente seguro. E, com levels2 de qualidade de produto que alcança 99,96 % e problemas de campo a nível tão baixo quanto 0,27 %. Deve verificar se o disco rígido à ser utilizado em servidores tem a tecnologia S.M.A.R.T. para maior segurança e confiabilidade do servidor. É disponível em Linux algum software que fornecem ao administrador ou usuários do sistema informações sobre as condições do disco rígido. O software UCSC SMART SUITE é um dos mais utilizados, devido as informações geradas serem bem completas e detalhadas, este software poderá ser encontrado no site: http://freshmeat.net
Página 10
Aplicações Avançadas em Linux O arquivo ucsc-smartsuite-2.0Beta2.tar dispõe do arquivo binário compilado para Kernel 2.2.14 (foi testado com Kernel 2.2.17 e funcionou sem problemas) e também os arquivos fontes caso necessite recompilar para a sua versão de Kernel. Após o arquivo estar no servidor, copie para o diretório /opt/appl, após a cópia use o comando abaixo e será criando um diretório como o nome do arquivo sem a extensão .tar. tar – xvf ucsc-smartsuite-2.0Beta2.tar Entre no diretório ucsc-smartsuite-2.0Beta2 e lá será encontrado 02 (dois) arquivos executáveis que serão utilizados no monitoramento. smartd – responsável pela daemon de monitoração smartcl – utilitário de controle e informação. Primeiramente inicie o programa smartd. ./smartd Este arquivo deverá ser incluído no /etc/rc.d/rc.local (caso utilize as distribuições RedHat , Conectiva ...) para que toda vez que o servidor for iniciado este seja carregado automaticamente ou no arquivo de inicialização da distribuição Linux utilizada. SMARTCTL Sintaxe do comando: smartctl [opção] [device] Onde: Opção -a mostra todas as informações -i verifica se o dispositivo suporta a tecnologia S.M.A.R.T. -c verifica se o dispositivo tem algum aviso de falha Device Disco rígido a ser monitorado (IDE e/ou SCSI).
Exemplo:
Página 11
Aplicações Avançadas em Linux
./smartcl –a /dev/hda Resultado do comando acima. Device: ST310212A Supports ATA Version 5 Drive supports S.M.A.R.T. and is enabled Check S.M.A.R.T. Passed General Smart Values: Off-line data collection status: (0x82)
Offline data collection activity completed without error
Self-test execution status:
( 0) The previous self-test routine completed without error or no self-test has ever been run
Total time to complete off-line data collection:
(2400) Seconds
Offline data collection Capabilities:
(0x1d) SMART EXECUTE OFF-LINE IMMEDIATE NO Automatic timer ON/OFF support Abort Offline Collection upon new command Offline surface scan supported Self-test supported
Smart Capablilities:
(0x0003)
Saves SMART data before entering power-saving mode Supports SMART auto save timer
Error logging capability:
(0x01)
Error logging supported
Short self-test routine recommended polling time:
( 2) Minutes
Extended self-test routine recommended polling time:
( 14) Minutes
Vendor Specific SMART Attributes with Thresholds: Revision Number: 16 Attribute
Flag
Value Worst Threshold Raw Value
Página 12
Aplicações Avançadas em Linux ( 1)Raw Read Error Rate
0x0008 081 078 000
000001f4c215
( 3)Spin Up Time
0x0006 098 098 000
000000000000
( 4)Start Stop Count
0x0013 100 100 020
000000000002
( 5)Reallocated Sector Ct 0x0013 100 100 036 ( 7)Seek Error Rate
0x0009 054 053 030
000000000016 00050017bf8d
( 9)Power On Hours
0x0012 100 100 000
000000000047
( 10)Spin Retry Count
0x0013 100 100 090
000000000000
( 12)Power Cycle Count
0x0013 100 100 000
000000000070
(197)Current Pending Sector 0x0030 100 100 000 (198)Offline Uncorrectable 0x0030 100 100 000 (199)UDMA CRC Error Count
000000000000 000000000000
0x000a 200 200 000
000000000000
SMART Error Log: SMART Error Logging Version: 0 No Errors Logged
O administrador poderá utilizar a função cron para executar o programa uma vez por dia. Desta forma poderão ser verificados problemas e ser feita a programação de parada do servidor, antes que qualquer problema mais grave danifique irremediavelmente o disco rígido.
Monitoramento Placa-Mãe (Motherboard) Com a expansão da tecnologia e o barateamento dos componentes eletrônicos, hoje há um grande número de placas-mãe com monitoramento de velocidade das ventoinhas, temperatura da CPU e tensões da fonte(+5V,5V,+12V,-12V). Desta forma o administrador poderá ser avisado de qualquer anomalia em componentes vitais da placa-mãe, evitando um colapso parcial ou total do servidor. Na Internet há inúmeros softwares de monitoramento um dos mais destacados é KhealthCare e poderá ser encontrado no site: http://homepages.fh-giessen.de/~hg7229/khealthcare/ Este software tem uma interface gráfica para verificar e configurar os parâmetros que deverão ser monitorados. Para que este software reconheça qual o sistema de monitoramento de sua placa mãe, é necessário primeiramente instalar um software chamado lm_sensor-xxxx.rpm. Este software também poderá ser encontrado no site abaixo mencionado. http://www.netroedge.com/~lm78/
Página 13
Aplicações Avançadas em Linux
Caso o usuário utilize o Conectiva Linux 6.0, este pacote se encontra no CD de instalação.
Para a instalação do lm_sensor-xxxx.rpm, utilize o seguinte comando. rpm –ivh lm_sernsor-xxxxx.rpm Após ter feito isso rode o programa abaixo para a configuração. Este software reconhece vários tipos de circuitos integrados responsáveis pelo monitoramento da placa-mãe.
sensors-detect
Página 14
Aplicações Avançadas em Linux
Será aberto um menu conforme abaixo, com várias perguntas, tecle simplesmente [ENTER], pois desta forma irá instalar uma configuração padrão.
Após a instalação é avisado ao administrador para incluir os módulos do software na inicialização do sistema, nos servidores baseados em RedHat e Conectiva, deverão ser incluídas as linhas no arquivo /etc/rd.d/rc.local.
Poderão ser iniciados os módulos manualmente, desta vez deverá ser colocado o comando modprobe XXXXXX na linha de comando. Após ter iniciado manualmente os módulos, rode o programa khealthcare e uma tela mostrará qual o circuito integrado de monitoramento que está sendo usado, clique OK para abertura da tela principal. Para iniciar o KhealthCare /usr/bin/khealthcare Tela Inicial.
Página 15
Aplicações Avançadas em Linux
Na tela principal, poderão ser visualizadas as informações de monitoramento da placa-mãe e poderão ser configurados os limites máximos e mínimos.
Valores atuais
Limites máximos e mínimos configurados. No menu principal selecione o item Options. Na aba General poderá ser selecionado:
Página 16
Aplicações Avançadas em Linux
Notification Interval Intervalo de Notificação em segundo Docking Neste item poderão ser selecionadas quais as características à serem monitoradas. Automatic Shutdown Poderá ser realizado a shutdown do servidor Linux caso algum limite monitorado seja ultrapassado.
Aba Monitoring Poderão ser habilitados os itens a serem monitorados, a severidade da falha (1 ou 3) e habilitar o beep (no alto-falante) de forma a avisar através de um sinal sonoro que algum item monitorado ultrapassou o limite.
Página 17
Aplicações Avançadas em Linux
Aba Temp Sensors Deverá ser configurado qual tipo de elemento sensor usado no monitoramento da temperatura.
Página 18
Aplicações Avançadas em Linux
Após a configuração selecione o botão OK, desta forma as configurações serão salvas. Para finalizar este aplicativo selecione no menu principal o item File e depois Exit.
Acesso Remoto (VNC) VNC (Virtual Network Computing) é um programa de acesso remoto a computadores através de interfaces gráficas ou browser. O VNC surgiu como um projeto de pesquisa da Olivetti Research Laboratories, e posteriormente comprada pela AT&T, cujo objetivo era de criar um "terminal gráfico" de rede extremamente leve. Abaixo segue algumas vantagens : -
VNC é gratuito;
-
O visualizador do VNC utiliza somente 160Kbytes;
-
Utiliza conexão TCPIP para a comunicação;
-
Muito bom para ser usado em treinamento, pois pode-se acessar múltiplos computadores;
Página 19
Aplicações Avançadas em Linux -
VNC trabalha com uma infinidade de plataformas (SOLARIS, AIX, HP-UX, LINUX, Windows NT, Windows 9x, MAC e PalmPilot entre outras)
No endereço abaixo, poderão ser encontradas mais informações sobre este software. http://www.uk.research.att.com/vnc/
Como funciona o VNC O VNC utiliza dois componentes independentes, o programa servidor e o programa visualizador (instalado no cliente). O programa servidor fornece o ambiente ao qual os clientes podem se conectar. Desta forma a máquina a qual deseja que os usuários acessem, deve estar com o programa servidor rodando e a máquina cliente deve estar rodando o VNC Viewer ou com browser suportando JAVA (Netscape 3.0 ou superior, Internet Explorer 3.0 ou posterior, ou qualquer outro browser com Java).
Instalando o VNC no Windows A instalação do VNC versão Windows é muito simples. O arquivo comprimido poderá sem encontrado no endereço abaixo. http://www.uk.research.att.com/vnc/download.html
Após descompactá-lo em um diretório temporário, rode o programa setup.exe, para a instalação é apenas responder com ENTER as perguntas do instalador.
Ao se iniciar o programa WinVNC será mostrada uma tela conforme a figura abaixo.
Página 20
Aplicações Avançadas em Linux
Esta janela de configuração irá ser apresenta na primeira vez que executar o programa. Caso haja necessidade de fazer outras configurações, o usuário deverá clicar com o botão direito no mouse no System Tray do Windows (conforme mostrado abaixo) e deverá selecionar o item Properties para alterar a configuração.
Deverá ser cadastrada uma senha, que será solicitado a todo usuário externo que acesse o seu computador através do programa vncviwer. No item Display Number por default (padrão) o valor é 0 (zero), podendo ser alterado para outros valores, o número selecionado neste item será utilizado para acesso a tela neste computador. Depois de configurado o VNC, poderá ser utilizado a qualquer momento através do programa WinVNC.exe. Caso necessite de mais informações acesse o endereço eletrônico abaixo. http://www.uk.research.att.com/vnc/
Instalando o VNC no Linux No Conectiva Linux o VNC poderá ser encontrado no CD1 e está no formato RPM. Para instalação, tenha privilégios de root e siga os seguintes passos: No prompt monte o cd-rom.
Página 21
Aplicações Avançadas em Linux mount /dev/cdrom Vá até o diretório onde estão localizados os RPM da Conectiva. cd /mnt/cdrom/conectiva/RPMs Instale o pacote RPM do VNC (o pacote RPM contendo o VNC poderá ter os números intermediários diferentes dependendo da versão instalada ou da distribuição Linux utilizada). rpm –ivh vnc-3.3.3-4cl.i386.rpm
Para verificar se o pacote VNC está instalado utilize o comando rpm –qa|grep vnc .
O pacote VNC é composte de 3 programas básicos. vcpasswd – onde será cadastrado a senha de acesso do VNC vncviewer – visualizada o a tela do computador remoto vncserver – exporta a tela para um computador remoto Para executá-los é necessário somente rodá-lo no prompt da distribuição Linux. O programa vncviewer deverá ser executado dentro do modo gráfico do Linux. Para exportar a tela no Linux, basta apenas executar o programa vncserver no prompt do terminal texto ou gráfico.
Conectando a um desktop remoto Viewer via Windows Estando o VNC servidor iniciado um computador de um usuário ou num servidor através de uma rede TCPIP. Necessita agora rodar o arquivo VNCVIEWER.EXE na máquina cliente que utilize o windows (que também poderá ser um ou executar o atalho correspondente no menu do VNC, se você também tem o servidor instalado na máquina cliente). O cliente do VNC irá iniciar mostrar a seguinte janela.
Página 22
Aplicações Avançadas em Linux
Você deverá fornecer inserir o nome (para isso o arquivo c:/windows/hosts deverá estar configurado corretamente) ou o endereço IP do computador a ser controlado, seguindo por um sinal de dois pontos e pelo número zero. Depois de feito isso clique no botão OK. VNC Authentication irá requisitar a senha para acessado (conforme figura abaixo) e clique em OK.
Agora abrirá uma janela como a imagem do computador acessado. Poder ser utilizado o teclado e o mouse livremente. Conforme mostrado na figura.
Página 23
Aplicações Avançadas em Linux Caso o desktop remoto tenha resolução maior do que o computador local (o qual roda o visualizador) aparecerá barras de rolagem na janela do VNC. Também é possível colocar o visualizador em modo tela cheia através da janela de opções do cliente, para permitir uma melhor visualização do desktop remoto.
A janela de opções do cliente pode ser acessada pelo botão Options... na janela de conexão ou pelo menu de sistema no canto superior esquerdo da janela do visualizador. O menu de sistema também pode ser acessado pela barra de tarefas do Windows. Se o visualizador estiver em modo tela cheia, deverá teclar [Ctrl] + [Esc] para exibir a barra de tarefas, e com a barra de tarefas visível você deve clicar em um espaço vazio da barra de tarefas para que ela receba o foco, caso contrário o VNC Viewer em tela cheia não permitirá que a barra de tarefas receba o clique do botão direito do mouse e você não poderá acessar o menu de sistema das janelas. A figura seguinte mostra o menu de sistema do visualizador do VNC, com a opção full screen (tela cheia) selecionada.
Página 24
Aplicações Avançadas em Linux
Viewer via Linux Para utilizar o VNC a fim de visualizar a tela de um computador remoto no Linux, basta rodar o programa vncviewer no ambiente gráfico do Linux. Abra um terminal gráfico em qualquer ambiente gráfico e no prompt digite vncviewer, como mostrado na figura abaixo.
Na execução deste comando, uma janela abrirá solicitando o número IP do computador remoto e o número do display, estas informações deverão estar separadas por dois pontos (ex. 192.168.1.2:0), como mostrado no exemplo abaixo.
Página 25
Aplicações Avançadas em Linux
Após a inclusão da informação solicitada, será pedido uma senha de acesso. Esta senha é a senha cadastrada no VNC servidor da estação que deseja acessar.
Após ser inserido a senha e teclado ENTER, uma janela iniciará com a tela do computador remoto, como mostrado abaixo. Na área superior da janela, será mostrado o número do IP do computador acessado ou apelido. Para aparecerá o nome (apelido) do computador, este deverá estar relacionado no arquivo /etc/hosts do servidor Linux.
Página 26
Aplicações Avançadas em Linux Para fechar o aplicativo, deve clicar com o botão direito do mouse na área superior da janela e selecione o item Fechar .
Viewer via browser Podemos acessar o computador remoto através de um browser. Para isso necessitamos informar ao browser a URL contendo o nome ou o endereço IP do computador a ser controlado e indicar como número de porta o número 5800 + o número do desktop a ser conectado. Por exemplo, para se conectar o primeiro e único desktop do PC cujo nome é advlinux a URL seria: http:advlinux:5802, ou para se conectar ao segundo desktop do servidor Linux cujo endereço IP é 192.168.1.100 a URL seria: http:192.168.1.100:5802. O resultado é uma página HTML contendo somente um Applet Java, como mostra a figura a seguir.
Poderá então digitar a senha do desktop remoto, ou clicar no botão Options para ver a janela de opções do applet .
Página 27
Aplicações Avançadas em Linux
Janela de opções do visualizador do VNC dentro do browser Netscape Communicator. O desktop remoto aparece dentro do applet, como mostra a figura abaixo.
Desktop remoto via Netscape Communicator. Na figura acima esta sendo mostrada uma tela do servidor Linux com resolução maior do que a do computador rodando Windows com o VNC Viewer, para demonstrar que diferentes resoluções de tela não é problema para o VNC.
Página 28
Aplicações Avançadas em Linux
Este software mostra claramente a sua versatilidade nos diversos tipos de ambientes operacionais, podendo ser muito útil na realização de suporte em ambientes coorporativos.
GKrellM (Monitoração do Servidor) O software GKrellM desenvolvido por Bill Wilson realiza o monitoramento das principais atividades do servidor, através de uma interface gráfica o administrador poderá acompanhar processos, nível de utilização de recursos entre outras informações. As principais informações monitoradas estão relacionadas abaixo: -
nome do servidor;
-
data e hora do sistema;
-
monitoramento de temperatura e tensão (voltagem);
-
monitoramento de processos através de histogramas;
-
monitoração dos discos rígidos;
-
informação sobre a área de swap;
-
monitoração de caixa postal (e-mail);
-
monitoramento do nível de atividades da rede;
-
monitoramento de conexões ppp;
Este software poderá ser instalado nas mais diversas distribuições Linux (RedHat 6.x/7.x, Conectiva Linux, SuSE entre outros). No site abaixo , poderão ser obtidas mais informações sobre o software e download do executável.
http://web.wt.net/~billw/gkrellm/gkrellm.html
Para o Conectiva Linux, utilize o pacote RPM para RedHat versão 6.
Para o funcionamento deste software são necessários os pacotes gtk 1.2, gdk 1.2, glib 1.2 e imlib1 instalados. Para verificar se estes pacotes estão instalados e suas versões estão corretas, execute com root os comandos: rpm –qa|grep gtk rpm –qa|grep gdk rpm –qa|grep glib rpm –qa|grep imlib1
Página 29
Aplicações Avançadas em Linux
Caso não estejam instalados ou versões antigas, estes arquivos poderão ser encontrados no CD ou site da sua distribuição Linux. Após ter baixado o pacote RPM (gkrellm-x.x.x-x.i386.rpm), instale através do seguinte comando (x.x.x-x representa a versão do software). rpm –ivh gkrellm-x.x.x-x.i386.rpm
Através do ambiente gráfico de sua preferência execute o comando: /usr/X11R6/bin/gkrellm Automaticamente o GkrellM mostrará uma tela com informações semelhantes à mostrada abaixo:
Página 30
Aplicações Avançadas em Linux Nome do Servidor. Data e hora do sistema. Porcentagem da utilização da CPU.
Quantidade de usuários e processos simultâneos
Informações da Placa-mãe.
Taxa de transferência de Leitura e gravaçãodo disco rígido.
Taxa de I/O das placas de rede do servidor.
Quantidade de memória RAM e SWAP disponível e disponível
Para configurar ou fechar o programa, clique com o botão do lado direito do mouse sobre o nome do servidor (top da tela).
Página 31
Aplicações Avançadas em Linux Com as informações mostradas o administrador poderá acompanhar a utilização do servidor e utilizar estas informações para justificar implementações na rede ou no servidor.
Página 32
Aplicações Avançadas em Linux Conexão Telnet (Emulação de Terminal) TELNET (Protocolo de Terminal Virtual) é o protocolo de comunicação que estabelece a conexão entre computadores. Através dessa conexão remota, pode-se executar programas e comandos em outra máquina, como se estive na frente do terminal remoto. Muitas vezes estamos longe da console Linux, mas necessitamos entrar no sistema como um terminal a fim de alterarmos ou iniciarmos algum procedimento. De forma a resolver estes problemas, utiliza-se o método de acesso remoto, este acesso utilizará um software de emulação de terminal texto através da rede, que possibilitará o acesso ao ambiente Shell (C-shell, K-shell) ou SSH (Security Shell) do servidor Linux no ambiente Windows 9x/2000. Na console do servidor Linux, logue como root (superusuário) e siga o seguinte procedimento: Edit o arquivo /etc/inetd.conf e retire o comentário das seguintes linhas # antes da mudança #telnet stream tcp
nowait root
/usr/sbin/tcpd
in.telnetd
#login stream tcp
nowait root
/usr/sbin/tcpd
in.rlogind
#auth
nowait nobody /usr/sbin/in.identd
stream tcp
in.identd –l –e –o
# fim Após ter editado as linhas, estarão da seguinte forma. telnet
stream tcp
nowait root
/usr/sbin/tcpd
in.telnetd
login
stream tcp
nowait root
/usr/sbin/tcpd
in.rlogind
auth
stream tcp
nowait nobody /usr/sbin/in.identd
in.identd –l –e –o
Agora reinicialize o inetd com o seguinte comando. killall –HUP inetd
Verifique no arquivo /etc/services se existe a linha abaixo, caso contrário inclua. #inicio da modificação telnet
23/tcp
#fim
Os espaços acima são TAB.
Desta forma as modificações realizadas, estarão ativas.
Página 33
Aplicações Avançadas em Linux
Devemos configurar a estações de trabalho, para isso será utilizado o software PuTTY, desenvolvido por Simon Tatham, este software é freeware e poderá ser livremente distribuído. O software PuTTY será encontrado no endereço : http://www.chiark.greenend.org.uk/~sgtatham/putty/
A solução adotada é de fácil utilização, não necessitando de grandes conhecimentos para configurá-lo. Após ter baixado o arquivo, simplesmente execute-o num ambiente Windows 9x/2000 e uma janela será aberta com esta.
Esta é a tela inicial e de configuração, para uma correta emulação no ambiente Linux, nas figuras abaixo somente são mostradas os menus que necessitam de alteração em relação à configuração padrão do software. Para realizar a configuração, selecione os itens mostrados na janela do lado esquerdo. Para iniciar a emulação complete o campo Host Name (com o número IP do servidor ou nome do servidor) e selecione o botão Open.
Página 34
Aplicações Avançadas em Linux
Configuração Os itens mostrados na configuração, dispensa a necessidade de maiores explicações, pois são bem simples e de fácil compreensão. No item Terminal
Configure conforme mostrado.
Página 35
Aplicações Avançadas em Linux
Item Keyboard.
Item Windows.
Página 36
Aplicações Avançadas em Linux
Item Appearance.
Outras configurações poderão ser adotadas dependendo da sua configuração ou distribuição Linux Tela de emulação Exemplo do PuTTY acessado o software mc no servidor Linux.
Página 37
Aplicações Avançadas em Linux
Este é um software que todo o administrador Linux usará diariamente, devido a sua versatilidade e não necessidade de um procedimento de instalação, podendo o executável poderá estar num diretório que o administrador acessará através do ambiente windows.
Página 38
Aplicações Avançadas em Linux FTP (Transferência de arquivos) O protocolo FTP (File Transfer Protocol) é muito utilizado para transferência de arquivos de diferentes ambiente e sistemas operacionais, esta troca ocorre de maneira confiável e eficiente. Desta maneira, quando o usuário na máquina cliente invoca uma conexão FTP com um servidor remoto, inicia um processo de negociação para o estabelecimento da conexão TCP. Após esta ser realizada com sucesso, é estabelecida uma Conexão de Controle entre cliente e servidor, através da qual são transmitidos os comandos enviados pelo cliente ao servidor e as respostas a esses comandos no sentido contrário (servidor ao cliente). Quando o usuário solicita uma transferência de dados, é estabelecida uma Conexão de Dados. Mostraremos uma solução prática para transferência de arquivos entre o ambientes Windows9x e o servidor Linux. Para esta solução utilizaremos o software i.Ftp desenvolvido por Matthew Allen e poderá ser encontrado no site: http://www.ozemail.com.au/~fret/iftp.html Após ter baixado o arquivo , descompacte num diretório (por exemplo c:\ftp), neste diretório serão colocados todos os arquivos para a execução do programa, agora execute o arquivo ftp.exe. Será apresentada uma tela semelhante abaixo.
Connect
Cliente
Manipulação de arquivos
Servidor Página 39
Aplicações Avançadas em Linux
Para conectar com o servidor Linux, clique sobre o Ícone Connect e preencha os campos Host Address, User ID e Password.
Após o correto preenchimento, clique sobre o botão Connect e automaticamente a conexão será realizada (a figura anterior mostra a tela já com a conexão realizada). Pronto, agora é só navegar entre os diretórios para enviar ou receber arquivos.
Página 40