Curso de Administração de Redes com GNU/Linux
Descrição do Curso
Os requisitos de segurança, estabilidade e disponibilidade necessários para a prestação de serviços de rede (web, email, arquivos, etc.) exigem a utilização de sistemas que possam assegurar essas características em situações críticas. O GNU/Linux é capaz de prover esses requisitos, sendo o sistema operacional mais utilizado em servidores.
Assim, este curso habilita o usuário à conhecer e compreender aspectos avançados do sistema operacional GNU/Linux e de redes de computadores, com o objetivo de ser capaz de implantar e administrar uma rede de computadores com GNU/Linux, instalar, confirurar e manter serviços, enfatizando questões de segurança e desempenho.
Sumário
1. Carga Horária
2. Mapa Conceitual
 |
|
|
|
| Mapa Conceitual do Curso de Redes com GNU/Linux . |
| | |
3. Público Alvo
Administradores de sistemas, técnicos em informática, consultores e profissionais envolvidos em projetos de migração, implantação e gestão de sistemas e serviços utilizando Unix ou GNU/Linux.
4. Plano de Ensino
| Objetivo Geral : Conhecer e compreender aspectos avançados do sistema operacional GNU/Linux e de redes de computadores, com o objetivo de ser capaz de implantar e administrar uma rede de computadores com GNU/Linux, instalar, confirurar e manter serviços, enfatizando questões de segurança e desempenho. |
| Objetivo específico |
Conteúdo |
Recursos pedagógicos |
Carga Horária |
| Conhecer aspectos avançados do GNU/Linux, relembrando a evolução dos sistemas Unix, nascimento do GNU/Linux, arquitetura e padrões do sistema operacional. |
Breve histórico; camadas do sistema; sistema de arquivos |
Aula expositiva com auxílio de de recursos áudio-visuais (apresentação de slides) e exemplos utilizando ambiente real |
1h |
| Entender como funciona a inicialização do sistema, compreendendo desde o carregador de boot até os primeiros processos invocados no GNU/Linux, abordando opções avançadas de configuração do LILO e GRUB, passagem de parâmetros para o kernel, boot em modo monousuário, etc., e aprender a configurar a inicialização de serviços. |
Boot loaders (LILO, GRUB); inicialização do sistema; níveis de execução; o processo init; scritpts de inicialização de serviços |
Aula expositiva com auxílio de de recursos áudio-visual (apresentação de slides); exemplos utilizando ambiente real; exemplos de configuração de serviços e dos gerenciadores de boot utilizando os arquivos reais do sistema |
4h |
| Compreender o funcionamento do shell, aprendendo operações mais comuns, construção de scripts para automatização de tarefas e programas mais utilizados para filtragem de logs, parsing genéricos, expressões regulares e como obter ajuda sobre parâmetros e ferramentas. |
Bash; caracteres curinga; variáveis de ambiente; laços de execução de comandos; expressões regulares e ferramentas para edição de texto (cat, sed, awk, cut, grep, etc.) e comandos muito usados (head, tail, who, etc.) |
Aula expositiva com auxílio de de recursos áudio-visuais (apresentação de slides) e propostas de exercícios e problemas simulando situações reais, utilizando terminais, dentro do ambiente real. |
6h |
| Entender o funcionamento e a configuração do sistema de logs, manipuação de usuários e grupos, permissões especiais, backups rápidos, gerência de arquivos encriptados com chave pública e conhecer as tarefas básicas do dia-a-dia de um administrador de sistemas, como instalar e remover programas e usar o SSH. |
Instalação e remoção de programas através do sistema de pacotes ou compilação; verificação e configuração do sistema de registro de logs; manipulação de contas de usuários e permissões; configuração e uso de serviço Secure Shell; compactação e agrupamento de arquivos e sincronização remota com rsync; criptografia de dados com o Gnupg |
Aula expositiva com auxílio de de recursos áudio-visuais (apresentação de slides), demonstrações e exercícios de configurações utilizando os arquivos de configuração reais; demonstração e exercícios de instalação e remoção de programas utilizando diversas interfaces para o gerenciador de pacotes da distribuição, e compilação de pacotes a partir dos fontes; exercícios do uso do Secure Shell para login e transferência de arquivos remotos. |
6h |
| Compreender como se comporta uma rede em sistemas GNU/Linux, desde o tratamento das suas interfaces físicas até a execução de serviços, resolução de nomes, roteamento, controle de banda, ferramentas para depuração de tráfego e comandos diversos para auxílio na detecção de problemas. |
Interfaces de rede; comandos para manipulação de rede; roteamento, resolução de nomes; daemons; controle de banda; ferramentas de sniffing; dicas para solução de problemas. |
Aula expositiva com auxílio de de recursos áudio-visuais (apresentação de slides); demonstração e exercícios de configurações de rede utilizando os arquivos de configuração reais, para situações reais e simuladas; |
4h |
| Aprender a projetar e implantar sistemas de proxies, NAT e filtragem de pacotes, que caracterizam um firewall completo numa rede GNU/Linux. |
Filtragem de pacotes e tradução de endereços (NAT); políticas de firewall; proxy com squid; interfaces gráficas de configuração. |
Aula expositiva com auxílio de de recursos áudio-visuais (apresentação de slides) e exercícios utilizando ferramentas reais para configuração e gerência de proxies e firewall em um ambiente simulado. |
6h |
| Compreender a arquitetura do Kernel Linux e seus componentes, métodos de compilação, aplicação de patches, manipulação de módulos. |
O processo de compilação e ferramentas para compilação em distribuições; personalização do kernel; instalação e remoção de módulos, e compilação e manipulação com o modules-assistant; aplicação de patches. |
Projeto de compilação de um kernel utilizando os fontes reais do Linux e as ferramentas oferecidas pela distribuição utilizada, e de compilação de um módulo externo ao kernel a partir dos fontes utilizando o m-a; demonstração e exercícios de configuração de módulos a serem instalados ou banidos durante o boot utilizando os arquivos do ambiente real. |
6h |
| Entender os conceitos para alta disponibilidade versus. alta performance em serviços críticos, lidando com RAID, LVM e ferramentas para clustering no GNU/Linux. |
Conceitos de alta disponibilidade, alta performance, clusters; RAID - Redundant Array of Independent (ou Inexpensive) Disks; LVM - Logical Volume Manager; Virtualização no GNU/Linux com XEN; Cluster de alta disponibilidade com LVS (Linux Virtual Server), keepalive e VRRP (Virtual Router Redundance Protocol). |
Aula expositiva com auxílio de de recursos áudio-visuais (apresentação de slides) e demonstrações utilizando ambientes simulados. |
6h |
| Conhecer os princípios básicos para gerência e monitoramento de redes heterogêneas a partir do GNU/Linux, bem como ferramentas como Nagios, Cacti e MRTG. |
Conceitos básicos para gerência de redes e gerência de falhas; instalando e configurando o Nagios; monitoramento remoto de recursos. |
Aula expositiva com auxílio de de recursos áudio-visuais (apresentação de slides) e demonstrações e exercícios de instalação e configurações utilizando o ambiente real. |
6h |
5. Ementa
1) Arquitetura GNU/Linux
Relembrando a evolução dos sistemas Unix, nascimento do GNU/Linux, arquitetura e padrões
do sistema operacional.
- Breve histórico
- Camadas do sistema (kernel, bibliotecas básicas, aplicações/shell)
- Sistema de arquivos (Filesystem Hierarchy Standard)
2) Processo de inicialização do sistema
Entendendo como funciona a inicialização do sistema, compreendendo desde o carregador de
boot até os primeiros processos invocados no Linux. Estaremos abordando o LILO e o GRUB,
com opções avançadas, passagem de parâmetros para o kernel, rescue, etc.
- Boot loaders (LILO, GRUB)
- Inicialização do kernel
- O processo Init
- Scripts de inicialização (init.d)
3) O Shell
Compreender o funcionamento do shell, a mais importante ferramenta para o administrador de
sistemas GNU/Linux. São abordadas questões conceituais, operações mais comuns, construção
de scripts para automatização de tarefas e programas mais utilizados para filtragem de logs,
parsing genéricos, expressões regulares e como obter ajuda sobre seus parâmetros.
- BASH - GNU Bourne Again Shell
- Wildcards (caracteres curingas)
- Variáveis de ambiente, variáveis locais
- Laços/Loops
- Expressões regulares e comandos mais populares para administração do sistema: sed, awk, cat, grep, head, tail, who, etc
- Construção de scripts em bash
4) Tarefas básicas de um administrador:
Dia a dia de um administrador GNU/Linux. Entendimento do sistema de logs, manipuação de
usuários, grupos, permissões especiais, backups rápidos, gerência de arquivos encriptados com
chave pública.
- Instalação de programas, utilizando compilação e sistema de empacotamento
- Verificação e configuração do sistema de logs (syslogd)
- Manipulação de contas de usuários unix
- Utilizando, provendo e entendendo o Secure Shell (SSH)
- Técnicas básicas para backup (compactação e agrupamento, sincronização com rsync)
- Utilização do GnuPG? para encriptação
5) Rede no GNU/Linux
Compreender como se comporta uma rede em sistemas GNU/Linux. Desde o tratamento das
suas interfaces físicas até a execução de serviços, resolução de nomes, roteamento, controle
de banda, ferramentas para depuração de tráfego e comandos diversos para auxílio na
detecção de problemas.
- Interfaces de rede (ethernet, wireless, serial, brigdes)
- Comandos para manipulação de rede
- Roteamento
- Resolução de nomes
- Daemons, inetd/xinetd
- Controle de banda com CBQ/Shaper
- Ferramentas baseadas na libpcap (tcpdump, ethereal, ntop)
- Passo a passo para resolução de problemas
6) Netfilter/IPtables
Projeto e implantação de sistemas de proxies, NAT e filtragem de pacotes, que caracterizam
um firewall completo numa rede GNU/Linux. São utilizados os comandos baixo nível para
manipulação do
NetFilter? e demonstradas algumas ferramentas para auxílio e produtividade.
- Conceitos: filtragem de pacotes e tradução de endereços (NAT)
- Políticas de firewalling
- Implementando regras de filtragem e NAT no iptables
- Proxy com Squid
- Ferramentas de auxílio via WEB e GUI
7) O Kernel
Aqui entende-se o Linux propriamente dito, seus componentes, métodos de compilação, aplicação
de patches, manipulação de módulos.
- Entendendo na prática o processo de compilação
- Adequando seu kernel:
- Suporte a sistemas de arquivos, processadores e dispositivos
- Habilitando corretamente drivers de vídeo, rede, som para seu hardware:
- Manipulando módulos do kernel
- Aplicando patches para performance em servidores (diff, patch)
8) Disponibilidade e clustering
Entendendo conceitos para alta disponibilidade vs. alta performance em serviços críticos, lidando com RAID, LVM, ferramentas para clustering e ferramentas para virtualização no GNU/Linux.
- Conceitos: alta disponibilidade, alta performance, clusters
- RAID - Redundant Array of Independent (ou Inexpensive) Disks
- LVM - Logical Volume Manager
- XEN - Virtualização
- Cluster de alta disponibilidade com LVS (Linux Virtual Server), keepalive e VRRP (Virtual Router Redundance Protocol)
9) Gerência de redes/sistemas básica
Serão abordados princípios básicos para gerência e monitoramento de redes heterogêneas a
partir do GNU/Linux. O Nagios será colocado em prática nas suas funções básicas, contudo, de
grande importância para o isolamento e resolução rápida de falhas na rede.
- Conceitos básicos para gerência de redes
- Gerência de falhas: Nagios
- Instalando e configurando o Nagios
- Monitoramento remoto do uso de processamento, memória, usuários, processos, (...) em sistemas GNU/Linux e proprietários.