terça-feira, 23 de março de 2010

Mais informações sobre comandos no Linux...

Depois de acessar o Linux por SSH ou abrir o terminal, toda a administração do sistema pode ser feita em modo texto, na linha de comando. E saber os comandos é fundamental. Para se ter uma referência sobre como funcionam os comandos e quais parâmetros podem ser utilizados, o comando man (Manual) é o mais indicado. Ao executar man nome_do_comando, por exemplo man ls, será mostrado o manual com as funcionalidades e parâmetros existentes.
Abaixo um exemplo da saída da execução do comando man ls em um sistema operacional Linux sendo acessado por SSH:
Os comandos, na verdade, são aplicações e utilitários que não possuem uma interface gráfica para funcionamento. Então, estas aplicações são executadas por um interpretador de comandos chamado de shell. Existem diversos tipos de shell, sendo o mais comum o Bash.  Cada interpretador de comandos possui as suas particularidades e a criação de scripts (shell script) poderá sofrer alterações de acordo com cada shell.
Abaixo, um exemplo de programação com shell script usando o Bash que manda e-mail para os aniversariantes do dia:
Neste script, deve ser passado o nome do arquivo contendo as informações  do grupo de pessoas as quais estão interessadas em saber os aniversários umas das outras. Um exemplo de um arquivo de texto contendo as informações, dia do aniversário, nome, e-mail e sexo, dos aniversariantes para ser usado no script:
São usados os seguintes utilitários neste script:

E as funções embutidas no Bash utilizadas foram as seguintes:
É perceptível que o shell possui recursos de uma linguagem de programação. E junto com os utilitários possibilitam a criação de scripts bastante robustos e flexíveis. Para saber as funcionalidades dos utilitários do script, rodem o comando man no terminal do Linux ou pesquisem nas listas comentadas a seguir.

Uma lista bem legal, com comandos para Linux/FreeBSD é a Unix Toolbox. Está diponível em PDF aqui, para imprimir e encadernar!
Outras listas bem interessantes de comandos para Linux são por meio de cheat sheets, ou sejam, guias rápidos com o resumo dos comandos. Um lista com diversos guias destes pode ser encontrada aqui.

Referências:
Top 10 Best Cheat Sheets and Tutorials for Linux / UNIX Commands
Bash Reference Manual
Shell Commands
Directory of Linux Commands

SSH - Secure Shell Protocol ...

O SSH é um protocolo para comunicação em rede de forma segura, projetado para ser simples e de fácil implementação. A versão inicial, SSH1, foi focada no provimento de uma forma segura de acesso remoto a hosts em substituição a protocolos não-seguros, principalmente o Telnet. Além do acesso remoto, o SSH provê o recurso de tunelamento o qual permite os uso de protocolos não-seguros por meio de uma conexão segura. A nova versão do SSH, SSH2, provê melhorias em relação a versão 1 e está em processo de padronização no IETF por meio das RFCs 4250 a 4256.
Clientes e servidores de SSH existem para a maioria dos sistemas operacionais, inclusive no Windows (SSH Windows e Moba SSH ). É o metodo mais utilizado para acesso remoto em sistemas Unix/Linux e tunelamento de servidores X (servidor gráfico de janelas no Linux/Unix).
 O SSH é organizado por meio de três protocolos rodando sobre TCP que são:
  - Protocolo da camada de transporte: provê autenticação no servidor, confidencialidade e integridade dos dados. Opcionalmente, esta camada pode prover compressão dos dados.
  - Protocolo de autenticação de usuário: autentica o usuário ao servidor.
  - Protocolo de conexão: possibilita a utilização de vários canais lógicos de comunicação sobre uma única conexão SSH.
Basicamente, a autenticação se dá ou por usuário e senha, ou usuário e chave privada/pública. Com o usuário e senha, ao se tentar a conexão a um servidor deverá ser digitado o usuário e a senha.  No caso de uso com chaves, a autenticação deverá ser feita configurando o lado servidor previamente com a chave pública do cliente. Quando houver a tentativa de acesso, o servidor SSH buscará a chave pública do host do cliente em um arquivo localizado em .ssh/authorized_keys no diretório home do usuário requisitado para o login. Caso a chave estiver armazenada no arquivo, o acesso se dará sem a necessidade de digitar a senha. Este método tem duas vantagens básicas. A primeira é a segurança, porque não existirá a possibilidade de ataques de força bruta tentando adivinhar a senha do usuário. Simplesmente, não existe a senha! A outra vantagem é a possibilidade de automatizar scripts para executar comandos em servidores remotos. Desta forma, a administração de múltiplos servidores fica muito mais fácil e ágil.
Ao acessar um servidor remoto por meio de SSH, a interação do usuário será por meio de um interpretador de comandos em modo texto. Portanto, conhecer os comandos e os parâmetros  do Linux ou do Windows é extremamente útil.
 A porta padrão do serviço de SSH é a 22. Devido ao grande número de varreduras nesta porta, é interessante trocar esta porta em servidores que estejam visíveis com IP públicos. Existem formas de minimizar as tentativas de adivinhações de usuários/senhas. Um delas é o uso de chaves ao invés de senhas. A outra é usar alguma ferramenta de detecção de tentativas e bloqueio da origem. A ferramenta DenyHosts (http://denyhosts.sourceforge.net/) possibilita que a origem das tentativas de acesso mal sucedidas sejam bloqueadas por um tempo configurado.
Abaixo, um exemplo de conexão SSH usando o cliente código-fonte aberto de SSH Putty para Windows. No Linux, o nome do cliente de SSH é "ssh".



Vale a pena dar uma olhada neste tutorial sobre a configuração do SSH para funcionar com certificados.
O SSH é a ferramenta mais utilizada no gerenciamento de servidor Linux e FreeBSD. Portanto, dominá-la é muito importante para o profissional de redes!

Referências:

The Secure Shell (SSH) Protocol Architecture
Introduction to SSH Secure Shell
Criando tuneis criptografados com ssh 
Usando o SSH no Windows

quarta-feira, 10 de março de 2010

Comandos no Linux...

Para saber sobre comandos no Linux acessem o guia FOCA neste link aqui. Este guias são bastante completos e com enfoque no usuário iniciante. O link original dos guias é este http://focalinux.cipsga.org.br/, onde pode ser feito o download do texto.
 Para aprender sobre o Linux, tem que praticar!

domingo, 7 de março de 2010

Switches Ethernet...

O primeiro switch ethernet foi lançado no mercado pela empresa Kalpana (que foi adquirida pela Cisco em 1994) no ano de 1989, ao custo de U$ 10.500 com 7 portas. Desde a sua introdução, os switches ethernet revolucionaram a forma como as redes locais são utilizadas.
Os switches ethernet são comutadores que permitem o compartilhamento de sinal em uma rede padrão Ethernet (IEEE 802.3 e suas variações). Este compartilhamento se dá de forma segmentada, ou seja, cada porta do switch disponibiliza a largura de banda de forma integral não havendo disputa entre hosts. Este fato tem o nome de "domínio de colisão" que significa inexistência de colisões na porta do switch. As colisões ocorrem em um meio compartilhado usando um hub ou barramento com cabos coaxiais. Também existem colisões no compartilhamento de canais em bases de rede sem fios. Nestes casos com colisões é necessário que exista algum método de controle de acesso ao meio físico. No caso de redes padrão Ethernet, é utilizado o algoritmo CSMA/CD (Carrier Sense Multiple Access with Collision Detection).
 Portanto, a grande vantagem dos switches ethernet para os hubs ethernet é a inexistência de colisões na portas. Desta forma, o desempenho de uma rede com switches é muito maior do que usando hubs. Atualmente, é muito difícil encontrar hubs no mercado. Devido ao custo reduzido dos switches e seu melhor desempenho, as redes ethernet DEVEM usar apenas switches.
 Os switches podem ser divididos em duas categorias básicas: gerenciáveis e não-gerenciáveis. Os gerenciáveis possibilitam o gerenciamento por meio de software de forma remota e são mais caros que os não-gerenciávies.  Os não-gerenciáveis são mais baratos, mas não possibilitam o gerenciamento tornando a administração da rede bem mais complexa. Em um switch gerenciável é possível visualizar o quanto de tráfego de rede está sendo gerado em cada porta, garantir a segurança por meio de autenticação com RADIUS (Remote Authentication Dial In User Service), limitar a largura de banda em cada porta entre outras funcionalidades. O uso de switches não-gerenciáveis em redes que possuam mais de 10 computadores torna a vida do administrador bem mais difícil.
 Existem switches de vários preços e funcionalidades. Entretanto, todos tem, a mesma função básica que é permitir o compartilhamento entre os hosts em uma rede Ethernet. Então, para uma rede com 5 computadores que utilizam uma impressora compartilhada e acesso à Internet qualquer switch vai funcionar sem problemas. Já em uma rede com 400 hosts espalhados em vários prédios, a história será bem diferente. A empresa Cisco possui uma abordagem de projeto hierárquico de rede que ajuda a definir as características dos equipamentos. Na figura abaixo, o diagrama da abordagem da Cisco.


Abaixo, uma breve descrição de cada camada da hierarquia:

* Core (Núcleo) - esta camada é considerada o backbone (espinha dorsal) da rede e possui os switches de maior desempenho. Nesta camada não é feito o roteamento ou qualquer tipo de filtragem nos pacotes. A função principal é repassar os pacotes de forma confiável e o mais rapidamente possível. 

* Distribution (Distribuição) - nesta camada estão os roteadores e os switches/roteadores chamadados de switches layer 3 (camada de rede do modelo de referência OSI). Estes dispositivos devem garantir que os pacotes sejam roteados entre as subredes e as VLANs (Virtual Local Area Network) existentes na rede. Esta camada também é chamada de workgroup (grupo de trabalho).

* Access (Acesso) - nesta camada estão os hubs e switches que fornecem o acesso dos hosts dos usuários a rede. Também é chamada de camada desktop porque o objetivo é conectar os hosts dos usuários a redeT. A função deste camada é entregar os pacotes aos computadores dos usuários.

Esta diferenciação de funções em cada camada afeta diretamente a escolha do switch. Este é um dos motivos porque existem switches com o mesmo número de portas, mas um custa R$ 200,00 e outro custa R$ 20.000,00.
No diagrama abaixo, um exemplo de como a empresa Enterasys classifica os seus equipamentos de acordo com as camadas de hierarquia.

Algumas características importantes em um switch são:
  - Número de portas, normalmente 8, 16, 24 e 48 portas.
  - Largura de 19'' para colocar em rack 
  - Velocidade - os switches mais comuns funcionam em 10/100 Mbit/s. Entretanto, existem switches que funcionam em 10/100/1000 em todas as portas ou apenas em algumas portas. Por exemplo, 24 portas em 10/100 e duas em 1000. Neste caso, as portas de 1000 seriam utilizadas para cascateamento.
  - Autonegociação - detecta automaticamente a velocidade e o tipo de comunicação. Por exemplo, 10Mbit/s, Hakf-Duplex ou Full-Duplex, 100Mbit/s Half-Duplex ou Full-Duplex ou Gigabit;
  - Auto MDI/MDIX (Media Dependent Interface) detecta automaticamente se o cabo é direto ou crossover facilitando a conexão para cascateamento entre switches;
  - Gerenciável ou não gerenciável - se gerenciável, o switch permite a utilização de ferramentas de gerenciamento e configuração, tais como a utilização de VLANs, segurança nas portas, QoS, espelhametno de portas, trunking e STP (Spanning Tree Protocol). O não-gerenciável não possibilita nada de administração.
 - Empilhável (Stackable) - permite que sejam "empilhados" switches tornado a ligação transparente resultando em um desempenho melhor. Ao cascatear dois switches usando portas normais, a largura de banda na ligação entre eles será o da porta. No caso de empilhamento, a ligação se dá por um cabo especial, normalmente proprietário. Isto faz com que os switches se comportem como se fossem um único dispositivo. Desta forma, o efeito é como se conectasse o backplane dos switches diretamente. A velocidade de comutação é muitas vezes maior do que a ligação por portas normais.
- PoE (Power over Ethernet) - esta funcionalidade permite que dispositivos sejam alimentados por corrente elétrica por meio das portas dos switches e dos cabos par trançado. O objetivo é alimentar telefone IP ou base de acesso a redes sem fios que estejam em lugares de difícil acesso, tais como no alto de torres.
 - Slots GBIC (Gigabit Interface Converter) - são portas de expansão, utilizadas principalmente para a colocação de módulos para conexão de fibra ótica. Como o nome diz, são usadas conexões gigabit nestas portas.
- Capacidade de endereços MAC - define o número de dispositivos que podem ser diferenciados em um switch. Todo o quadro que chega a uma porta de um switch será confrontado com a tabela MAC. Se houver a ocorrência, o quadro é enviado a porta correspondente. Se não houver correspondência, é feita uma transmissão em broadcast. Portanto, se a tabela foi preenchida o broadcast vai rolar solto!
- QoS (Quality of Service) - os switches permitem a diferenciação de tráfego em suas portas. Isto é importante para priorizar determinado tipo de tráfego, tal como o de VoIP (Voice over IP), qie é extremamente sensível a perdas e atrasos na rede.

Alguns exemplos modelos de switches de 24 portas são mostrados a seguir.

 



 

  

Este catálogo da Cisco, mostra diversos modelos de switches da série Catalyst com diversas funcionalidades que vale a pena dar uma olhada!
Comentem a respeito de modelos e fabricantes os quais vocês possuem switches e digam quais as suas experiências com eles.


Referências:
Kalpana - http://en.wikipedia.org/wiki/Kalpana_%28company%29
The 10 Most Important Products of the Decade - Number 5: Kalpana  EtherSwitch - http://www.networkcomputing.com/1119/1119f1products_5.html
Netwok Computing: The 10 Most Important Products of the Decade - http://www.networkcomputing.com/1119/1119f1products_1.html
Extreme Networks -  http://www.extremenetworks.com/
Linksys - http://www.linksysbycisco.com/LATAM/pt/products/Switches
Netgear - http://www.netgear.com/Products/Switches.aspx
Enterasys - http://www.enterasys.com/products/index.aspx
Switches Gigabit Ethernet Dell PowerConnect série 28xx
Planet - http://www.planet.com.tw/en/product/product_category.php?mt=menu_product_1&id=1
TrendNet - http://www.trendnet.com/products/default.asp?cat=43