_____________________________________________________________________________ _/_/_/_/ _/ _/ _/_/_/_/ _/ _/ _/_/ _/ _/ _/ _/_/_/_/ _/ _/ _/ _/_/_/_/ _/ _/ _/ _/_/ _/ _/ _/ _/ _/ _/ N E W S G E N E R A T I O N ___________________________________________________________________________ 01 de agosto de 1997 | Volume 1, Numero 3 ___________________________________________________________________________ --------- Editorial ------------------------------ Ari Frazao Jr. editor@rnp.br Prezados Leitores E' com prazer que damos continuidade a distribuicao de mais um nu- mero do RNP News Generation. Os artigos aqui apresentados tratam de assuntos que, embora impor- tantes, sao os ditos excluidos do nosso dia a dia: seguranca e gerenciamen- to de redes. E aqui esta' uma excelente oportunidade para irmos quebrando alguma resistencia que por ventura possamos ter em relacao a estes temas. O primeiro e' uma introducao ao uso de "firewalls", que e' visto por alguns como uma verdadeira panaceia para os problemas de seguranca. Nele, nao so' sao apresentadas as principais solucoes em termos de "firewall", mas tambem e' discutido ate' que ponto sua utilizacao garante a seguranca de uma rede. O artigo introdutorio `a parte de gerenciamento de redes vem em mo- mento muito oportuno. A estruturacao do Centro de Operacoes da RNP, que es- ta' se dando nestes ultimos meses, permitira' o estabelecimento de um es- quema efetivo de gerenciamento de nosso backbone. Este certamente sera' o primeiro de uma serie sobre este tao importante assunto que muito nos au- xiliara' no provimento de servicos de maior qualidade. O ultimo artigo trata do ssh. E' feita uma apresentacao do servi- co, enfatizando a sua abrangencia e necessidade. Diferente dos dois pri- meiros, que mais introduzem conceitos da area, neste sao dadas dicas impor- tantes de sua instalacao em maquinas UNIX. Comunicamos, ainda, que estamos recebendo sugestoes de temas a se- rem tratados nos proximos numeros e, melhor que isto, elas estao vindo de pessoas dispostas a cooperar conosco, escrevendo os proprios artigos. E es- tamos nos sentindo muito gratificados por isto. Tenham uma boa leitura! --------- Firewalls ------------------------------ Raquel Lopes raquel@na-sp.rnp.br Com a crescente paranoia em relacao a seguranca dos computadores conectados `a Internet, muitos fabrican- tes passaram a projetar sistemas de seguranca para proteger cada um dos equipamentos por ele fabricado. No entanto, uma alternativa que tem se mostrado mais eficaz, embora nao completa, e' investir na protecao da rede interna como um todo atraves de equipamentos chamados de firewall. Introducao A maneira mais simples de proteger uma rede interna e' com o isola- mento fisico da mesma. Desta forma, ninguem de fora sera capaz de invadir o sistema sem antes entrar nas dependecias fisicas da organizacao. Entretan- to, com o crescimento da Internet, o isolamento fisico tornou-se quase im- possivel. Para resolver este problema muitas organizacoes tem usado firewalls. Um firewall evita que perigos vindos da Internet espalhem-se na sua rede interna. Colocado entre a rede interna e a externa, o firewall contro- la todo o trafego que passa entre elas, tendo a certeza que este trafego e' aceitavel, de acordo com a politica de seguranca do site, oferecendo uma excelente protecao contra amecas vindas da rede externa. Entretanto, ele nao e' uma completa solucao para seguranca. Certos perigos estao fora do controle de um firewall. Logicamente falando, um firewall e' um separador, um bloqueador e um analisador, enquanto a implementacao fisica varia de site para site, podendo ser, por exemplo, um roteador, um computador, ou uma combinacao de roteadores e computadores. O Que um Firewall Pode Fazer Um foco para decisoes de seguranca - Pense no firewall como um fu- nil onde todo o trafego deve passar por ele. Isto permite que sejam concen- tradas todas as medidas de seguranca neste ponto onde a rede interna conec- ta-se com a Internet. Fortalecer a politica de seguranca - Muitos servicos sao inseguros e o firewall pode filtra-los de acordo com um conjunto de regras, permitin- do que apenas servicos aprovados passem por ele. Por exemplo, servicos como NFS e NIS sao muito perigosos para serem usados fora da rede interna. O firewall mantera' servicos perigosos como estes estritamente dentro da rede interna. Implementar um sistema de log eficiente - Todo o trafego passa pelo firewall, que se apresenta como um otimo ponto para se coletar informacoes sobre o sistema e uso da rede. O Que o Firewall Nao Pode Fazer Proteger a rede de usuarios internos mal intencionados- O firewall pode evitar que certas informacoes saiam de uma companhia atraves da cone- xao de rede, mas nao pode impedir que um usuario copie os dados num disque- te e os carregue consigo. Atacantes internos requerem medidas de seguranca interna, como seguranca de host e educacao de usuarios. Proteger contra conexoes que nao passam por ele - O firewall pode apenas controlar o trafego que passa por ele. Se o seu site disponibilizar acesso discado para sistemas internos atras do firewall, nao ha nada que o firewall possa fazer para previnir que intrusos tenham acesso a sua rede por esta via. Proteger contra novas ameacas - Firewalls sao projetados para pro- teger contra ameacas conhecidas. Proteger contra virus - Embora o firewall verifique todo o trafego que entra na rede interna, esta verificacao e' feita basicamente checando os enderecos fonte e destino e os numeros de porta, nao verificando os da- dos em si. Arquitetura de Firewalls Antes de apresentar algumas arquiteturas de firewalls, e' importan- te que se esteja familiarizado com alguns termos. Estas sao algumas defini- coes basicas: - Bastion Host: um computador que deve ser altamente seguro por es- tar mais exposto `a Internet sendo, portanto, mais vulneravel a ataques. - Perimeter Network: uma rede colocada entre a rede interna (prote- gida) e a rede externa com objetivo de adicionar mais uma camada de segu- ranca. Esta rede e' tambem chamada de DZM (De-Militarized Zone). Packet Filtering E' um mecanismo de seguranca que controla o fluxo de dados que en- tra e sai da rede. Para isto, e' criado um conjunto de regras que especifi- ca quais tipos de pacotes devem ser liberados e quais devem ser bloqueados. Packet filtering e' tambem conhecido como "screening" e pode ser implemen- tado em um roteador, uma bridge ou em um host. Para entender como o packet filtering funciona, veja a diferenca entre um roteador comum e um screening router. Um roteador comum simplesmente olha o endereco destino de cada pa- cote e escolhe e melhor caminho para enviar o pacote. A decisao do que fa- zer com o pacote e' baseado apenas no endereco destino. Um screening router, por outro lado, olha para mais detalhes do pa- cote (enderecos fonte/destino e numeros de porta), para poder determinar se pode, ou nao, rotear o pacote para seu destino. Servicos Proxy Servicos proxy sao aplicacoes ou programas servidores que rodam em um bastion host que tem acesso `a Internet e `a rede interna, ou em um dual-homed host, que sera' visto mais a frente. Estes programas pegam o pe- dido do usuario para servicos Internet e encaminha-o, de acordo com a poli- tica de seguranca do site, para os verdadeiros servicos. E' um servico transparente. O usuario acha que esta lidando direta- mente com o servidor real, e este tem a ilusao que esta' lidando diretamen- te com o usuario. Um servico proxy requer dois componentes: um servidor e um cliente. O cliente proxy e' um versao especial do programa cliente real que intera- ge com o servidor proxy ao inves do servidor real. O servidor proxy avalia o pedido do cliente proxy e, caso o pedido seja aprovado, o servidor proxy entra em contato com o verdadeiro servidor na Internet em nome do cliente. Arquitetura Dual-Homed Host Esta arquitetura e' construida sob um host dual-homed. Este host poderia atuar como um roteador entre a rede externa e a interna. Entretan- to, para implementar um firewall com arquitetura host dual-homed, a funcao de roteamento e' desabilitada. Sistemas dentro do firewall podem se comuni- car com o host dual-homed assim como sistemas fora do firewall, mas estes sistemas nao podem se comunicar diretamente. Um host dual-homed pode fornecer apenas servicos atraves de servi- dores proxy, ou ainda permitir que usuarios conectem-se diretamente a si. Arquitetura Screened Host Esta arquitetura fornece servicos a partir de um bastion host que e' conectado apenas a rede interna, usando um roteador para separa-la da Internet, chamado screening router. Nesta arquitetura, a seguranca princi- pal e' feita por packet filtering. O packet filtering do screening router e' configurado de tal manei- ra que o bastion host e' a unica maqiuina da rede interna que recebe cone- xoes da Internet. Mesmo assim, apenas certas conexoes sao permitidas. O packet filtering pode ser configurado para permitir que outros hosts inter- nos abram conexoes com maquinas da Internet para determinados servicos ou nao permitir qualquer conexao de hosts internos. Devido a esta arquitetura permitir roteamento, ela pode parecer ma- is perigosa que a dual-homed host, que e' modelada para que nenhum pacote externo alcance a rede interna. Mas, na pratica, a arquitetura dual-homed host esta mais propensa a falhas. E tambem e' mais facil defender um rotea- dor, que e' um conjunto de servicos limitados, do que um host. Entretanto, comparado com outras arquiteturas, como, por exemplo, a screened subnet, ha algumas desvantagens. A principal e' que, se o atacante conseguir invadir o bastion host, nao ha mais nada no sentido de seguranca de rede entre o bastion host e o resto da rede interna. Arquitetura Screened Subnet Esta arquitetura adiciona uma camada extra de seguranca atraves da perimeter network, que isola a rede interna da Internet. Nela ha dois screening router. Um entre a rede DZM e a rede interna, e outro entre a re- de DZM e a rede externa. Para atacar a rede interna nesta arquitetura o atacante teria que passar pelos dois roteadores. E, mesmo que o atacante consiga invadir o bastion host, que fica isolado na rede DZM, ele ainda te- ra' que passar pelo roteador interno. O bastion host basicamente atua como servidor proxy para varios servicos, permitindo que clientes internos acessem servidores externos in- diretamente. Ele tambem atua como servidor de mail, ou os envia para deter- minados hosts da rede interna. O roteador interno protege a rede interna da Internet e tambem da rede DZM. Ele faz a maior parte do packet filtering do firewall, permitindo o estabelecimento de servicos a partir de clients internos para servidores da Internet. Estes sao servicos que o seu site pode seguramente fornecer usando packet filtering ao inves de proxies. O roteador externo protege a rede DZM e a rede interna da Internet. Ele permite quase tudo que venha da rede DZM passe atraves dele, e, em ge- ral, faz pouco packet filtering. As regras de packet filtering para prote- ger as maquinas internas devera ser basicamente as mesmas em ambos os rote- adores. As unicas regras de packet filtering que sao realmente especiais no roteador externo sao aquelas que protegem a rede DZM. Mas geralmente nao e' necessario tanta protecao pois o bastion host e' bem protegido com metodos de seguranca de host. Estas sao as arquiteturas de firewalls mais comuns, entretanto ha muitas outras variacoes que podem ser usadas. Algumas Referencias Building Internet Firewalls D. Brent Chapman e Elizabeth Zwicky O'Reilly & Associates Firewalls And Internet Security Bill Cheswick e Steve Bellovin Addison Wesley Publishing Company Practical UNIX Security Simson Garfinkel e Gene Spafford O'Reilly & Associate ------------------------------------------ Introducao a Gerenciamento de Redes TCP/IP ---------------------------------------------------------------- Michele Lima michele@nc-rj.rnp.br Este artigo introduz os conceitos basicos de uma das sub-areas de redes de computadores, gerencia- mento de redes, especificamente redes TCP/IP. Serao apresentados o conjunto de protocolos que compoem a familia de protocolos SNMP. Nos proximos artigos, se- rao apresentadas a nova versao do protocolo SNMP, as extensoes da MIB-II, e as novas tendencias na area de gerenciamento. Introducao A area de gerencia de redes foi inicialmente impulsionada pela necessidade de monitoracao e controle do universo de dispositivos que compoem as redes de comunicacao. Atualmente as redes de computadores e os seus recursos associados, alem das aplicacoes distribuidas, tem se tornado fundamental e de tal importancia para uma organizacao, que elas basicamente "nao podem falhar". Isto significa que o nivel de falhas e de degradacao de desempenho considerados aceitaveis esta cada vez mais diminuindo, sendo este nivel igual ate a zero, dependendo da importancia da rede para uma instituicao. Com esta crescente necessidade de gerenciamento, fez-se necessario que padroes para ferramentas fossem estabelecidos. Em resposta a esta necessidade surgiram dois padroes: - Familia de Protocolos SNMP: o protocolo SNMP (Simple Network Management Protocol) refere-se a um conjunto de padroes para gerenciamento que in- clui um protocolo, uma especificacao de estrutura de dados, e um conjunto de objetos de dados. Este protocolo hoje ja' esta' na sua segunda versao oficial, chamada de SNMPv2. E ja' existem estudos para o desenvolvimento do SNMPv3. Este e' o protocolo de gerencia adotado como padrao para redes TCP/IP, e que aqui sera' tratado. - Sistemas de gerenciamento OSI: este termo refere-se a um grande conjunto de padroes de grande complexidade, que definem aplicacoes de proposito geral para gerencia de redes, um servico de gerenciamento e protocolo, uma especificacao de estrutura de dados, e um conjunto de objetos de dados. Este conjunto de protocolos e' conhecido como CMIP [ISO 1991] [Stallings 1993]. Pela sua complexidade, e pela lentidao do processo de padronizacao, este sistema de gerenciamento nao e muito popular. Gerenciamento de Redes TCP/IP Arquitetura de Gerenciamento O modelo utilizado para gerenciamento de redes TCP/IP e' composto pelos seguintes elementos: - Estacao de Gerenciamento; - Agente de Gerenciamento; - Base de Informacoes Gerenciais (MIB); - Protocolo de Gerenciamento de Redes. A estacao de gerenciamento serve como interface para o gerente humano num sistema de gerenciamento de rede. O agente de gerenciamento responde `as solicitacoes de informacoes e de acoes da estacao de gerenciamento e deve tambem prover assincronamente informacoes importantes que nao foram solicitadas por esta estacao. Os recursos a serem gerenciados sao representados como objetos, e a colecao destes objetos e' referenciada como Base de Informacoes Gerenciais (MIB). A forma de comunicacao entre a estacao de gerenciamento e o agente e' definido pelo protocolo de gerenciamento de rede, o SNMP. Simple Network Management Protocol O conjunto de padroes SNMP [Stallings 1993] [Stevens 1994] e formado por: - Um conjunto de especificacoes de estrutura e identificacao para as infor- macoes gerenciais. Este padrao e' chamado SMI (Structure of Management Information). Estas especificacoes sao encontradas no RFC 1155 [Rose and McGloghie 1990]. - Um protocolo de comunicacao entre o gerente e o agente, chamado simples- mente de SNMP (Simple Network Management Protocol). A especificacao deste protocolo e apresentada no RFC 1157 [Case et al. 1990]. - Uma base de informacoes gerenciais que especifica quais variaveis sao mantidas pelos elementos de rede. Esta base de informacoes e' denominada MIB (Management Information Base), e a sua segunda versao, MIB-II, esta' especificada pelo RFC 1213 [McGloghie and Rose 1991]. Este conjunto de padroes pode ser utilizado para outros tipos de aplicacoes, alem daquelas convencionais de gerencia. Uma utilizacao possi- vel, e' o uso do SNMP para fazer o Balanceamento de carga em ambientes dis- tribuidos [Uchoa 1995]. O Protocolo O protocolo SNMP define mensagens, unidades de dados chamadas PDU (Protocol Data Unit), para serem trocadas durante uma comunicacao entre o gerente e o agente. Os cinco tipos de mensagens SNMP sao: - get-request-PDU: mensagem enviada pelo gerente ao agente solici- tando o valor de uma variavel; - get-next-request-PDU: mensagem utilizada pelo gerente para soli- citar o valor da proxima variavel depois de uma ou mais variaveis que foram especificadas; - set-request-PDU: mensagem enviada pelo gerente ao agente para so- licitar que seja alterado o valor de uma variavel; - get-response-PDU: mensagem enviada pelo agente ao gerente, infor- mando o valor de uma variavel que lhe foi solicitado; - trap-PDU: mensagem enviada pelo agente ao gerente, informando um evento ocorrido. Uma vez que quatro, das cinco mensagens SNMP, sao do tipo pergunta- resposta, o protocolo SNMP, usa o protocolo de transporte UDP. Alem de ter sido projetado para operar sob UDP, um protocolo nao orientado a conexao, o proprio SNMP tambem e um protocolo nao orientado a conexao, sendo cada troca de mensagens uma transacao diferente entre o agente e a estacao de gerenciamento. Cada estacao de gerenciamento, como tambem o agente, devem im- plementar os protocolos SNMP e, por consequencia, UDP e IP para poderem se comunicar. Tal imposicao exclui do processo de gerenciamento dispositivos que nao suportam parte dos protocolos TCP/IP, ou que, apesar de implementarem o TCP/IP para suportar suas aplicacoes, nao desejam adicionar mais carga ao seu sistema com o suporte ao protocolo SNMP. Para que tais dispositivos tambem possam ser gerenciados, criou-se o conceito de agente proxy. Desta forma, este agente, que sabe se comunicar usando SNMP, responderia em nome do dispositivo que ele representa, e pas- saria o resultado da comunicacao para o dispositivo de acordo com o protocolo que ele entende. Para tanto, este agente possui uma funcao de mapeamento que recebe as informacoes do dispositivo que ele representa e transforma tais informacoes em mensagens SNMP e vice-versa. Estrutura e Identificadores das Informacoes Gerenciais A estrutura da MIB e a identificacao dos objetos gerenciais sao definidos no padrao chamado SMI (Structure of Management Information), encontrados no RFC 1155 [Rose and McGloghie 1990]. As definicoes sao feitas utilizado-se um pequeno conjunto de caracteristicas e elementos ASN.1. Tipos de Dados SNMP utiliza apenas um pequeno conjunto de diferentes tipos de dados, classificados em tipos universais e tipos de aplicacao. - TIPOS UNIVERSAIS Estes sao os tipos permitidos para definirem objetos da MIB. Eles sao baseados na classe UNIVERSAL. * INTEGER (UNIVERSAL 2); * OCTET STRING (UNIVERSAL 4); * NULL (UNIVERSAL 5); * OBJECT IDENTIFIER (UNIVERSAL 6); * SEQUENCE, SEQUENCE OF (UNIVERSAL 16); - TIPOS DE APLICACAO * DisplayString: um string de 0 ou mais octetos. Cada variavel deste tipo na MIB-II, nao deve possuir mais de 255 caracteres; * IpAddress: este tipo e' um OCTET STRING de tamanho 4, um para ca- da octeto do numero IP; * PhysAdress: um OCTET STRING que especifica o endereco fisico; * Counter: um inteiro nao negativo, que so' pode ser incrementado e nao decrementado; * Gauge: um inteiro nao negativo, que pode ser tanto incrementado como decrementado; * TimeTicks: um inteiro nao negativo, que armazema o tempo em cen- tenas de segundos, a partir de alguma epoca. Identificadores de Objetos Um identificador de um objeto, e' um identificador unico, que consiste numa sequencia de inteiros conhecidos como sub-identificadores. A sequencia, lida da esquerda para a direita, define a localizacao deste objeto na estrutura de arvore da MIB. Estrutura da MIB Associado a cada um dos objetos da MIB, esta' o seu identificador, que nomeia este objeto. Esta identificacao segue uma estrutura hierarquica, cuja convencao tambem serve para identificar os tipos dos objetos. O documento SMI, define quatro nodos abaixo do nodo Internet: * directory: esta sub-arvore e' reservada para o uso futuro do X.500l; * mgmt: esta sub-arvore e' utilizada para o objetos gerenciados definidos em documentos IAB aprovados; * experimental: esta sub-arvore e' utilizada para identificadores de objetos gerenciados usados em experiencias na Internet; * private: esta sub-arvore esta' reservada para a utilizacao de identificadores de objetos gerenciados definidos unilateralmente, por exemplo, por fabricantes que desejem ter seus proprios obje- tos. Base de Informacoes Gerenciais A MIB e' uma base de dados, cuja estrutura e' especificada pelo padrao SMI, como ja descrito anteriormente. Ela pode ser caracterizada como um banco de dados ativo, o que possibilita que os valores das suas variaveis sejam, nao so' recuperados, como tambem alterados. Cada agente deve manter sua propria instancia da MIB, relacionada com os objetos que estao sendo gerenciados sob o seu dominio. O RFC 1213, define um conjunto de variaveis utilizadas para a monitoracao e o controle de redes TCP/IP. Para cada novo dispositivo a ser gerenciado, que nao tenha sido previsto o seu gerenciamento, e' necessario que seja definido um conjunto de novas variaveis, estendendo assim, a MIB-II original. Referencias Bibliograficas [Case et al. 1990] Case, J. D., Fedor, M. S., Schoffstall, M. L., and Davin, C. Simple Network Management (SNMP), RFC 1157, Maio 1990. [Case et al. 1993] Case, J. D., McCloghrie, K., Rose, M. T., and Waldbusser, S. An Introduction to Version 2 of the Internet-Standard Network Management Framework, RFC 1441, Abril de 1993. [Hunt 1992] Hunt, Craig. TCP/IP Network Administration. O'Reilly & Associates, Inc., 1992. [ISSO 1991] Information Technology Open Systems Interconection. Common Management Information Protocol Specification. Technical Report IS 9596, International Organization for Standardization, Maio 1991. [McGloghie and Rose 1991] McCloghrie, K., Rose, M. T. Management Information Base for Network Management of TCP/IP-based Internets: MIB-II, RFC 1213 Marco 1991. [Rose and McGloghie 1990] Rose, M. T., McCloghrie, K. Structure and Identification of Management Information for TCP/IP-based Internets, RFC 1155, Maio de 1990. [Stallings 1993] Stallings, William. SNMP, SNMPv2, and CMIP - The Practical Guide to Network-Management Standards. Addison Wesley, 1993 [Stevens 1994]. Stevens, W. R. TCP/IP Illustrated,Volume 1 - The Protocols. Addison Wesley. 1994. [Stevenson] Stevenson, D. W. Network Management - What it is and what it isn't. ftp://zippy.telcom.arizona.edu/pub/snm/docs/ [Uchoa 1995] Uchoa, R. C. Suporte para Monitoramento e Controle de Carga em Ambientes Distribuidos. Dissertacao de Mestrado. Departamento de Informatica PUC-RIO. Rio de Janeiro. 1995. --------------- O Que E' o ssh? ------------------------------------- Paulino Ng paulino@na-sp.rnp.br O ssh e' um pacote de programas cujo objetivo e' au- mentar a seguranca de um sistema de redes. Ele, basi- camente fornece um substituto mais seguro para os programas "remotos" - rsh, rlogin, rcp. Alem de ser uma boa alternativa para o telnet. Introducao O problema de seguranca que este pacote tenta solucionar e' o da escuta de rede para obter informacoes sigilosas. Os comandos remotos e o telnet usam transferencia direta de dados sem codificacao. Isto permite que redes abertas a "escutas" tenham informacoes criticas vazadas. Uma "escuta" e' facilmente instalada numa rede ethernet na qual nao e' possivel controlar o acesso de maquinas ou usuarios suspeitos. A situacao torna-se mais critica quando sistemas sem nenhuma segu- ranca como DOS, WIN 3.x e WIN 95 participam da rede, e o acesso a essas ma- quinas nao e' suficientemente controlado. Isto porque tais sistemas nao possuem a nocao de usuario privilegiado, nao sendo muito complicado insta- lar nos mesmos programas de escuta de rede que podem "ouvir" as transferen- cias feitas numa rede ethernet, ou qualquer rede do tipo "broadcast". O exemplo mais simples de utilizacao de uma escuta e' para pegar a senha de alguem que esteja fazendo telnet. A senha e' passada entre a maquina cliente e o servidor de telnet como texto puro. A solucao seria usar o rlogin no lugar do telnet mas os comandos remotos possuem tambem as suas falhas. O sistema de autorizacao da conexao (autenticacao) e' baseado nos arquivos hosts.equiv e .rhosts, que basicamente deveriam dizer quais maquinas podem fazer a conexao. A autenticidade da identidade destas maquinas e' garantida pelo seu endereco IP ou pelo seu nome de dominio. Existem muitos metodos de falsificacao de identidade IP e alguem capaz de instalar uma escuta na rede e' muito bem capaz de instalar um programa "travesti" de IP e simular que e' uma maquina autorizada. O ssh se propoe a solucionar o problema da escuta com uma transferencia de dados criptografada e com um protocolo de autenticacao mais seguro. Os metodos de autenticacao selecionaveis incluem .rhosts apenas (inseguro), .rhosts com validacao do host atraves de RSA ou validacao exclusiva atraves de RSA. Os protocolos do X Windows tambem apresentam diversos problemas de seguranca e o ssh procura fornecer secoes seguras para clientes X11 executados a partir dele. Instalacao do Pacote do ssh O ssh possui a home-page http://www.cs.hut.fi/ssh/. Atraves dela pode-se chegar a diversos repositorios para copiar o pacote. A versao mais atual e' a 1.2.20. Esta versao foi instalada no NA-SP em maquinas Solaris 2.4, AIX 4.1.4 e Linux-Slackware 3.2 com service pack 2 aplicado. A compilacao nao apresentou nenhum problema utilizando o gcc-2.7.2.1/2. A seguir sao dadas algumas sugestoes de configuracoes e uso do ssh. Nas estacoes AIX e Solaris e' interessante utilizar o comando: ./configure --with-rsh=/usr/bin/rsh para configurar a compilacao do pacote. Esta opcao permitira' ao ssh encontrar o rsh que sera' utilizado quando nao houver um servidor sshd funcionando no host contactado. Nesse caso, os comandos s (seguros) passam a usar os comandos r (remotamente seguros), alem de instalar no diretorio /usr/local/bin links simbolicos rsh, rlogin e rcp para ssh, slogin e scp, respectivamente. Os comandos "make" e "make install" nao apresentaram maiores difi- culdades para instalar o pacote na maquina utilizada para a compilacao. Nas outras maquinas que compartilham o codigo, nao e' necessario fazer um "make install", mas e' necessario executar o comando "make hostinstall" para cada maquina que use o codigo compartilhado. O "make hostinstall" instala os arquivos de configuracao de default no diretorio /etc (ssh_config e sshd_config) e gera o par de chaves publica/privada para a estacao. As chaves das estacoes sao geradas sem nenhuma frase-senha, observe que estas chaves sao diferentes das chaves do "root" da estacao (veja geracao de chaves pessoais com o ssh-keygen). Utilizacao dos programas do ssh O pacote do ssh consiste de varios programas, os mais interessantes sao: sshd - servidor de conexoes do protocolo SSH, deve ser executado como root e normalmente e' instalado nos arquivos de inicializacao das estacoes (rc files) mas e' possivel tambem inicia-lo via o inetd. Como o servidor precisa calcular um par chave publica/chave privada de 1024 bits a cada inicializacao, o metodo do inetd nao e' recomendado para maquinas de baixo desempenho. O servidor escuta a porta 22. ssh - substituto do rsh com algumas melhorias. Por exemplo, se nao hou- ver uma entrada nos arquivos .rhosts, ou .shosts, para a maquina clien- te, o servidor tenta autenticar pelo servidor de chaves RSA (vide a se- guir) ou pela senha. Existe uma pequena mudanca de sintaxe para coman- dos remotos trocando o nome do usuario. Exemplo: ssh fool@outra.maquina who -a Ao executar o ssh pela primeira vez, cria-se um diretorio .ssh debaixo do $HOME e um arquivo random_seed. Caso a maquina servidora nao seja "conhecida" pela maquina cliente (chave publica da maquina servidora no arquivo /etc/ssh_known_hosts), o ssh pede para validar a identidade da maquina para inclui-la entre as servidoras de ssh conhecidas do usuario no arquivo .ssh/known_hosts. Estes arquivos guardam as chaves publicas das maquinas com as quais os usuarios normalmente conectam-se, quando ocorre a mudanca de chave publica de alguma maquina, existe a possibilidade de esta' havendo uma quebra de seguranca. O usuario, nes- se caso, pode aceitar a nova chave publica ou rejeitar e consultar o responsavel daquela maquina para saber se ele trocou as chaves do ssh. slogin - semelhante ao rlogin e assim como o rsh recai no rlogin quando nenhum comando e' dado, o ssh tambem recai num shell criptogra- fado quando executado sem um comando explicito para a maquina remota. scp - semelhante ao rcp, com a vantagem de nao derrubar a conexao se a estacao remota nao possuir uma referencia `a maquina local nos seus arquivos hosts.equiv e .rhosts. Caso nao obtenha autorizacao pelo .rhosts, a transferencia pode ser autorizada por RSA pessoal ou password transmitido codificado. ssh-keygen - gerador de chaves RSA. Cada usuario pode ter as suas proprias chaves RSA, que sao geradas e colocadas no diretorio .ssh. Es- tas chaves sao utilizadas para a autenticacao das conexoes por chaves RSA. As chaves sao geradas baseadas numa frase senha, o que aumenta a sua seguranca em relacao ao sistema de senhas das estacoes que em mui- tos casos e' limitado a poucos caracteres. O arquivo de senha gerado, .ssh/identity, deve ter permissao de leitura/escritura apenas para o u- suario. ssh-agent - especie de servidor de chaves RSA para uma secao, normal- mente deve ser executado a partir do arquivo .login nas maquinas com login textual e .xsession nas maquinas com login controlado por xdm e seus equivalentes. O comando para executa-lo e': eval `ssh-agent` O eval e' necessario para inicializar as variaveis de ambiente usadas pelo ssh-agent. O comando ssh-add fornece as chaves para o servidor. Ele mantem as chaves "adicionadas" na memoria, evitando que seja necessario entrar com elas a cada comando quando nao for aceita a autenticacao por .rhosts. ssh-add - descrito acima. Configuracao do ssh O arquivo /etc/sshd_config configura o servidor sshd. Os defaults da instalacao sao normalmente suficientes. Uma opcao importante e' "StrictMode". Com esta opcao, o sshd torna-se mais rigoroso quanto ao con- trole dos direitos de acesso dos arquivos e diretorios. Se eles nao estive- rem corretamente acertados, a conexao nao e' estabelecida. Nao se recomenda habilitar a opcao RhostsAuthentication que permite a autenticacao por .rhosts sem verificacao da identidade dos hosts pelas chaves RSA. Caso nao haja interesse em permitir autenticacao por .rhosts, de modo algum, e' possivel desabilitar RhostsRSAAuthentication. Alem disso, se for desejado apenas permitir que sejam usadas frases senhas e nao as senhas de sistema, pode-se desabilitar a opcao PasswordAuthentication. O sshd nao necessita do tcp-wrapper para utilizar listas de allow e deny. Isto e' possivel atraves das clausulas AllowHosts e DenyHosts. O arquivo /etc/ssh_config permite configurar os metodos de autenticacao usados pelos clientes ssh, slogin e scp. Este arquivo pode ter as suas opcoes sobrepostas pelo arquivo $HOME/.ssh/config do usuario. Portanto, nao e' conveniente esperar que restricoes colocadas nesse arquivo sejam seguidas. O correto e' colocar as restricoes na configuracao do servidor. O arquivo de configuracao dos clientes permite que sejam aplicadas opcoes diferentes dependendo do servidor usado. Conclusao O pacote de programas ssh e' interessante quando se suspeita da existencia de "escutas" instaladas nas linhas fisicas usadas para a transferencia de dados entre as maquinas dentro de uma rede. Ele criptografa as transferencias dificultando a leitura dos dados transmitidos. Alem disso, ele utiliza metodos de autenticacao mais fortes do que os utilizados pelos comandos remotos, rsh, rlogin e rcp, reduzindo a possibilidade de conexoes travestidas (desde que, os servidores de rsh, rlogin e rcp estejam desabilidos). E' razoavelmente simples de usar sendo um substituto quase transparente para os comandos remotos. Nao foram tratados aqui usos mais avancados do ssh, como codifica- cao do canal de controle de uma transferencia ftp, codificacao de transfe- rencias PPP, uso do ssh para fazer uma Virtual Private Network, etc. Estas aplicacoes mais avancadas estao propostas nas paginas WWW sobre o ssh e na lista de discusao do ssh citadas a seguir. Mais Informacoes RFCs: - SSH Authentication Protocol, draft-ietf-secsh-userauth-00.txt, T. Ylonen. - Connect, draft-ietf-secsh-connect-00.tx, T. Ylonen. - SSH Transport Layer Protocol, draft-ietf-secsh-transport-00.txt, T. Ylonen. URLs: - Ssh (Secure Shell) Home Page: http://www.cs.hut.fi/ssh/Ssh - Getting Started with SSH: http://www.tac.nyc.ny.us/~kim/ssh/ - SSH para windows (comercial): http://www.datafellows.com/f-secure/ - Repositorio principal do SSH: ftp://ftp.cs.hut.fi/pub/ssh/ - FAQ do SSH: http://www.uni-karlsruhe.de/~ig25/ssh-faq/ Lista: majordomo@clinet.fi, corpo com "subscribe ssh"