Your SlideShare is downloading. ×
Administração de Redes Linux - II
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Administração de Redes Linux - II

3,498
views

Published on

Curso sobre administração de redes usando Linux - Parte I

Curso sobre administração de redes usando Linux - Parte I

Published in: Technology

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,498
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
147
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Pós­gradaduação em redes de computadoresAdministração de redes  Unix/Linux Marcelo Barros de Almeida marcelobarrosalmeida@gmail.com
  • 2. Aula 02: Sumário Inicialização do sistema Direitos e permissões Administrando grupos e usuários Gerenciado processos Configuração de rede  Básica  Avançada
  • 3. Pós­gradaduação em redes de computadores Inicialização do sistema
  • 4. Inicialização do sistema Inspirada no Unix System V e  BIOS adotada por várias distros Linux Boot Loader Define níveis de execução (podem  kernel+initrd variar dependendo da distro): linuxrc 0) Halt (desligamento seguro) 1) Single user mode rootfs 2) Multi­user mode, sem NFS ou serviços  init avançados de rede inittab 3) Full multi­user mode, com todos os serviços rc 4) Não definido 5) Como no 3 e mais o X11 rc[S0­6].d 6) Restart Sistema operando
  • 5. Inicialização do sistema BIOS (Basic Input Output System) BIOS Inicializa o hardware do sistema e  Boot Loader carrega os primeiros 512 bytes do  kernel+initrd disco (MBR, Master Boot Record) linuxrc O boot loader é então executado  rootfs (atualmente o GRUB) init O GRUB lê e executa a inicialização  de partida inittab  /boot/grub/menu.lst rc rc[S0­6].d Sistema operando
  • 6. Inicialização do sistema Parte do menu.lst BIOStitle      Ubuntu 8.04, kernel 2.6.24­19­genericroot     (hd0,0) Boot Loaderkernel /vmlinuz­2.6.24­19­generic root=UUID=<id> ro  kernel+initrdinitrd   /initrd.img­2.6.24­19­generic  O grup é informado sobre o kernel a  linuxrc usar, a partição principal (/) e o initrd  rootfs (Initial RAM Disk) init  O initrd é montado em memória e  inittab permite inicializações mais exóticas,  detecção de hardware, carregamento de  rc drivers, etc rc[S0­6].d O script /linuxrc, dentro do initrd, é  quem roda neste momento Sistema operando
  • 7. Inicialização do sistema No final do linuxrc, é executado o  BIOS programa init. O init lê as instruções  de partida do /etc/inittab, onde  Boot Loader também é definido o nível de  kernel+initrd execução (runlevel, de 0­6 e S).  linuxrc Formato do inittab: rootfs  id:runlevels:action:process  init Exemplos: inittab id:2:initdefault: si::sysinit:/etc/init.d/rcS rc l2:2:wait:/etc/rc.d/rc 2 ca::ctrlaltdel:/sbin/shutdown -r now rc[S0­6].d 1:2345:respawn:/sbin/getty 38400 tty1 Sistema operando
  • 8. Inicialização do sistema A linha do sysinit é executada (rcS) BIOS Com o runlevel definido (initdefault),  Boot Loader vários scripts são executados kernel+initrd Cada runlevel tem seu diretório: linuxrc /etc/rc<r>.d/       (ex: /etc/rc2.d/) rootfs Todos os scripts ficam em init.d: init /etc/init.d/script [start|stop|restart] inittab Links simbólicos são criados do  rc diretório de runlevel para o initd. rc[S0­6].d /etc/rc<r>.d/[S|K]<nn>script → /etc/init.d/script Sistema operando
  • 9. Inicialização do sistema Dentro do diretório de runlevel, é  BIOS usada a seguinte notação para o  arquivo: Boot Loader [S|K]<nn>script kernel+initrd  S (start): executar o script neste nível linuxrc  K (kill): parar o script neste nível rootfs  nn: número que indica a ordem deve ser  init executado o script inittab Ao final, o sistema estará em  rc operação e completamente  inicializado rc[S0­6].d Sistema operando
  • 10. Inicialização do sistema Obviamente, é chato colocar serviços para rodar em um  runlevel manualmente, apesar de possível O comando update­rc.d ajuda muito neste processo.  Basta criar o script no init.d e acertar o runlevel: touch /etc/init.d/meusrv update­rc.d meusrv start 40 1 2 3 4 5 6 . stop 50 0 6 . $ sudo touch /etc/init.d/meusrv $ sudo update-rc.d meusrv start 40 1 2 3 4 5 6 . stop 50 0 6 . Adding system startup for /etc/init.d/meusrv ... /etc/rc0.d/K50meusrv -> ../init.d/meusrv /etc/rc6.d/K50meusrv -> ../init.d/meusrv /etc/rc1.d/S40meusrv -> ../init.d/meusrv /etc/rc2.d/S40meusrv -> ../init.d/meusrv /etc/rc3.d/S40meusrv -> ../init.d/meusrv /etc/rc4.d/S40meusrv -> ../init.d/meusrv /etc/rc5.d/S40meusrv -> ../init.d/meusrv /etc/rc6.d/S40meusrv -> ../init.d/meusrv
  • 11. Inicialização do sistema Também é simples remover serviços: update­rc.d ­f meusrv remove rm /etc/init.d/meusrv $ sudo update-rc.d -f meusrv remove Removing any system startup links for /etc/init.d/meusrv ... /etc/rc0.d/K50meusrv /etc/rc1.d/S40meusrv /etc/rc2.d/S40meusrv /etc/rc3.d/S40meusrv /etc/rc4.d/S40meusrv /etc/rc5.d/S40meusrv /etc/rc6.d/K50meusrv /etc/rc6.d/S40meusrv $ sudo rm /etc/init.d/meusrv
  • 12. Inicialização do sistema Outro utilitário que merece destaque e com GUI, é o sysv­ rc­conf (rcconf no Debian)
  • 13. Inicialização do sistema Alguns comandos úteis:  runlevel: mostra o nível de execução anterior e atual  telinit: muda o nível de execução do sistema  telinit 6  → restart o sistema  init: também permite mudar o nível de execução atual 
  • 14. Pausa para o exercício Usando o script a seguir, determine que  ele seja executado nos runlevels 2 e 3  somente, de forma automática. #!/bin/sh # Servico de teste case "$1" in start) echo "Iniciando o servico meusrv ..." ;; stop) echo "Parando o servico meusrv ..." ;; restart) echo "Re-iniciando o servico meusrv ..." ;; *) echo "Sintaxe: $0 {start|stop|restart}" exit 1 ;; esac exit 0 14
  • 15. Inicialização do sistema no Ubuntu: Upstart O init é antigo e existem projetos mais recentes:  Initng: Debian/Ubuntu  SMF (Service Management Facility): Solaris  Launchd: Mac OS  BootScripts: GoboLinux  Upstart: Ubuntu/Fedora/Suse
  • 16. Inicialização do sistema no Ubuntu: Upstart Mais flexível e baseado em eventos.  Permite um melhor tratamento de  mudanças (hardware, sistemas de  arquivo, etc) e possibilita inicialização  concorrente. Não existem mais runlevels, eles são  emulados na lógica do upstart por  motivos de compatibilidade. No fundo, o upstart é uma máquina de  estados, onde os estados executam  tarefas/serviços (jobs) e as transições  são feitas por eventos (events). Os  eventos podem ser gerados pelo  Com o upstart, é possível uma análise  Upstart, jobs ou por comandos. completa do boot através do bootchart.
  • 17. Inicialização do sistema no Ubuntu: Upstart Jobs:  Ficam em /etc/event.d/, sendo arquivos texto com uma  sequência de instâncias (stanzas).  Podem ser do tipo tarefa ou serviço:  Tarefa: executa alguma coisa e fica em estado de espera ao  terminar  Serviço: ficam sempre em execução a menos que terminados  manualmente  O Job deve conter uma instância exec ou script, dizendo o que  será feito no job
  • 18. Inicialização do sistema no Ubuntu: Upstart Eventos:  Podem ser gerados pelos jobs, pelo upstart ou mesmo  manualmente.   Alguns eventos do Upstart:  startup  shutdown  stalled (quando não existem mais processos rodando)  control­alt­delete  power­status­change  starting, started  stopping, stopped
  • 19. Inicialização do sistema no Ubuntu: Upstart Emulação dos runlevels dentro do upstart logd upstart stopped runlevel 2 stopped startup rcS rc­default rc2 tty1 control­alt­delete control­alt­delete
  • 20. Inicialização do sistema no Ubuntu: Upstart# rcS - runlevel compatibility # rc2 - runlevel 2 compatibilitystart on startup start on runlevel 2stop on runlevel stop on runlevel [!2]console output console outputscript script runlevel --set S >/dev/null || true set $(runlevel --set 2 || true) if [ "$1" != "unknown" ]; then PREVLEVEL=N PREVLEVEL=$1 RUNLEVEL=S RUNLEVEL=$2 export PREVLEVEL RUNLEVEL export PREVLEVEL RUNLEVEL fi exec /etc/init.d/rcS exec /etc/init.d/rc 2end script end script# rc - runlevel compatibilitystart on stopped rcSscript runlevel --reboot || true if grep -q -w -- "-s|single|S" /proc/cmdline; then telinit S elif [ -r /etc/inittab ]; then RL="$(sed -n -e "/^id:[0-9]*:initdefault:/{s/^id://;s/:.*//;p}" /etc/inittab || true)" if [ -n "$RL" ]; then telinit $RL else telinit 2 fi else telinit 2 fiend script
  • 21. Inicialização do sistema no Ubuntu: Upstart Comandos úteis:  initctl: controla jobs e emite sinais  start/stop: controlam jobs initctl emit meuevt start # /etc/event.d/meusrv initctl emit meuevt stop # start on meuevt start inictl start meusrv stop on meuevt stop initctl stop meusrv console output start meusrv script stop meusrv rm /tmp/log.txt while /bin/true; initctl list do echo "Running meusrv" >> /tmp/log.txt sleep 1 done end script
  • 22. Pausa para o exercício Coloque o script abaixo dentro da  estrutura do upstart. Tente alterá­lo para  que seja inicializado somente dentro do  runlevel 2. Tente instalar o bootchart e analise sua  inicialização. # /etc/event.d/meusrv # start on meuevt start stop on meuevt stop console output script echo "Running meusrv" > /tmp/log.txt while /bin/true; do date >> /tmp/log.txt sleep 1 done end script 22
  • 23. Pós­gradaduação em redes de computadores Direitos e permissões 23
  • 24. Direitos e permissões O acesso a arquivos/diretórios é dividido em 3 conjuntos  de direitos:  Dono: direitos relacionados a quem criou o arquivo.  Grupo: direitos relacionados a um grupo de usuários que pode  ter acesso ao arquivo.  Outros: direitos relacionados aos usuários que não são donos ou  não estão em grupos relacionados ao arquivo. Cada conjunto de direitos possui 3 atributos:  r (read): direitos de ler (se for arquivo) ou listar conteúdo (se  diretório)  w (write): direitos de modificar/apagar  x (execution): direitos de executar (se for arquivo) ou de acessar  (se for diretório) 24
  • 25. Direitos e permissões Arquivos (­), diretórios (d) ou links (l) rw­: direitos do dono  (leitura,modificação, mas não é executável) r­­: direitos do grupo  (leitura somente, não é executável) r­­: direitos dos outros  (leitura somente, não é executável) dono (UID: user ID) grupo (GID: group ID) $ ls -l -rw-r--r-- 1 marcelo marcelo 0 2008-06-22 16:49 arquivo drwxr-xr-x 2 marcelo marcelo 4096 2008-06-22 16:49 diretorio lrwxrwxrwx 1 marcelo marcelo 7 2008-06-22 16:49 link -> arquivo 25
  • 26. Direitos e permissões Exemplos de direitos de acesso para um arquivo:  ­rw­­­­­­­: Arquivo com direitos de acesso exclusivos para o dono  ­rw­r­­­­­: Um determinado grupo pode ler o arquivo, mas só o  dono modifica  ­rw­r­­r­­: Qualquer um pode ler o arquivo, mas só o dono  modifica  ­rw­rw­r­­: Qualquer um pode ler o arquivo, mas só o dono ou  alguém do grupo pode modificar  ­rwxrwxr­x: Qualquer um pode ler e executar o arquivo, mas só o  dono ou alguém do grupo pode modificar  ­rwxr­xr­­: O grupo pode ler e executar, o dono pode,  adicionalmente, modificar. O resto apenas pode ver o conteúdo 26
  • 27. Direitos e permissões Exemplos de direitos de acesso para um diretório:  drwx­­­­­­: Somente o dono pode modificar e entrar no diretório  drwxr­xr­x: O dono tem amplos poderes sobre o diretório,  enquanto o grupo e o resto apenas podem entrar no diretório e  listar o seu conteúdo  drwx­­x­­x: O dono tem amplos poderes sobre o diretório,  enquanto o grupo e o resto apenas podem entrar no diretório  drwxrwx­­­: Grupo e dono com amplos direitos no diretórios O root tem amplos poderes de acesso, independente dos  direitos configurados 27
  • 28. Direitos e permissões especiais Além das permissões já vistas existem ainda um conjunto  avançado de permissões especiais. Elas devem ser  usadas com cuidado para não gerar falhas de segurança.  SUID bit (s): Permite que quem executa o arquivo tenha direitos  iguais ao dono do arquivo, durante a execução. Útil para  programas como passwd.  SGID bit (s): Permite que quem executa o arquivo tenha direitos  iguais ao groupo do arquivo, durante a execução. Se diretório,  força que arquivos criados dentro desse diretório tenham o  mesmo grupo do diretório pai. Útil em diretórios compartilhados  por um grupo.  Stick bit (t): Garante que só quem criou o arquivo possa removê­ lo. Importante para diretórios compartilhados como /tmp. 28
  • 29. Mudando direitos e permissões com chmod usando a forma relativa chmod [a|u|g|o][+|­|=][r|w|x|s|t] arquivo/diretório chmod [alvo][operação][direitos] arquivo/diretório  Alvos:  u: user, g: group, o: others, a: all  Operações:  +: adiciona direitos, ­: remove direitos, =: adiciona direitos,  sem mesclar com os direitos já existente para o alvo  Direitos:  r: read, w: write, x:execution, s: set user/group ID, t: stick 29
  • 30. Mudando direitos e permissões com chmod usando a forma relativa Exemplos  chmod g+r <arq>: adiciona direitos de leitura a todos do grupo  chmod ug+x <dir>: adiciona direitos de acesso ao dono e grupo  chmod a­x <arq>: retira todos os direitos de execução  chmod ug=rw <arq>: configura dono e grupo para somente ler e  modificar. Não toca nos direitos dos outros  chmod +t <dir>: liga o stick bit  chmod u+s: liga o bit de SUID  chmod g­s: desliga o bit de SGID 30
  • 31. Mudando direitos e permissões com chmod usando a forma absoluta Outra forma de usar o chmod é com da notação octal,  especificando diretamente os direitos através de 4  números octais relacionados aos quatro conjuntos:  chmod 1755 <dir>:  1 →  0+0+1, somente stick bit no grupo especial  7 → 4+2+1, read, write e execution para dono  5 → 4+0+1, read e execution para grupo  5 → 4+0+1, read e execution para outros especiais dono grupo outros u g t r w x r w x r w x 4 2 1 4 2 1 4 2 1 4 2 1 31
  • 32. Pausa para o exercício Experimente o chmod em suas formas  absolutas e relativas. Use o ls ­la para  que todos os arquivos sejam mostrados  e a listagem fique completa. 32
  • 33. Pós­gradaduação em redes de computadores Administrando grupos e usuários 33
  • 34. Grupos e usuários: Arquivos e diretórios relevantes /etc/passwd: armazena informações sobre os usuários, como shell  usado, local da conta, etc. /etc/group: lista grupos existentes e que usuários fazem parte dele. /etc/shadow: armazena as senhas dos usuários, encriptada /etc/skel: esqueleto para contas de usuários /etc/issue: mensagem exibida na tela de login no terminal (issue.net  para logins remotos) /etc/motd: mensagem exibida após o login /etc/profile: definições de ambiente para todos os usuários /etc/default/useradd: definições padrões para criação de usuários  (se usado o useradd) /etc/adduser.conf: definições padrões para o adduser 34
  • 35. Grupos e usuários: Principais comandos useradd: adiciona contas de usuário usermod: modifica parâmetros da conta do usuário userdel: remove a conta do usuário passwd: ajusta o password para um usuário chown: troca o dono de um arquivo/diretório Para interação no terminal, use os comandos  <operação>user:  adduser  deluser 35
  • 36. Grupos e usuários: Principais comandos groupadd: cria um novo grupo groupdel: apaga um group groupmod: modifica um group groups: imprime em quais grupos um usuário está chgrp: troca o grupo de um arquivo/diretório Também existem os equivalentes interativos:  addgroup  delgroup 36
  • 37. Grupos e usuários: Exemplos de utilização Cria o usuário mateus, gerando a sua conta em  /home/mateus:  sudo useradd ­m mateus Cria um grupo kid e modifica o usuário mateus para que  ele faça parte do grupo:  sudo groupadd kid  sudo usermod ­G kid mateus Remove o usuário mateus, inclusive apagando toda a sua  conta:  sudo userdel ­r mateus 37
  • 38. Pausa para o exercício Experimente os comandos relacionados  a usuários e grupos, criando, apagando e  modificando contas. Verifique como as  contas são criadas no /home e tembém  experimente alterar os padrões de  criação de contas. Altere também donos  e grupos com chown e chgrp. 38
  • 39. Pós­gradaduação em redes de computadores Gerenciado processos 39
  • 40. Gerenciando processos Em sistemas Linux, todas as atividades são executadas  por processos Cada processo possui características como prioridade,  status, dono, PID (Process ID), tempo de execução,  percentagem de uso de CPU, memória alocada, etc:  Prioridades: de ­20 (menor) a 19 (maior)  Running, sleeping, stopped, zombie  PID: número único que identifica o processo O kernel tenta fazer um escalonamento justo dos  processos, geralmente dividindo o tempo da CPU entre os  vários processos de mesma prioridade de forma igual 40
  • 41. Gerenciando processos Um processo pode ser executado de fundo (background)  ou não (foreground):  Adicionar ”&” na linha de comando manda o processo para  background  Comandos do bash como bg, fg e jobs lidam com isso  diretamente  Ctrl+Z permite enviar um processo para backgound Todo processo tem uma entrada padrão, uma saída  padrão e uma saída de erro. Em geral:  STDIN: entrada padrão  STDOUT: saída padrão  STDERR: saída de erro 41
  • 42. Gerenciando processos Um processo pode receber uma espécie interrupção de  software conhecida como ”sinal” em Unix.  Cada sinal tem um número que o identifica e isto pode  variar de Unix para Unix. Alguns sinais (número entre parênteses):  SIGTERM (15): sinaliza a terminação do processo  KILL (9): força a terminação do processo  HUP (1): Hang up, geralmente usado para reiniciar um processo 42
  • 43. Gerenciando processos: Comandos importantes ps: permite listar os processos da máquina (ps aux) top: permite um acompanhamento dinâmico dos processos (pressione h  para detalhes de uso) pstree: mostra a árvore de processos kill: permite enviar sinais para um processo usando o seu PID killall: envia sinais para um processo usando o seu nome pkill envia sinais usando características diversas do processo nice e renice: permite trocar a prioridade do processo pgrep: permite pesquisar na lista de processos por características diversas nohup: inicia um processo que não irá terminar ao ser feito o logout no  terminal 43
  • 44. Gerenciando processos: Exemplos Lista todos os processos em execução:  ps aux Envia o sinal de termino forçado para todos os processos  chamado make:  killall ­s 9 make Pede ao smb para reler o seu arquivo de configuração:  kill ­HUP smb Executa um comando com nohup, permitindo o logout:  nohup <meu_script> & Mostra os processos do usuário mateus:  ps ­u mateus 44
  • 45. Agendamento de processos com cron Tarefas podem ser agendadas e executadas  periodicamente pelo processo ”cron” Formas de agendamento:  Definir um ação e o momento da sua execução, seguindo as  regras do cron, no arquivo /etc/crontab  Definir o seu próprio arquivo cron dentro de /etc/cron.d/  Colocar um script dentro dos diretórios com escalonamento pré­ definidos (não precisa seguir a notação do cron):  /etc/cron.hourly  /etc/cron.daily  /etc/cron.weekly  /etc/cron.monthly 45
  • 46. Agendamento de processos com cron: Formato do arquivo crontab Cada linha é um registro composto de sete campos que  especificam quando um evento deve ocorrer:  Minutos: de 0 a 59, onde * significa todos minutos e */10  significa a cada 10 minutos  Horas: de 0 a 23, onde 3­8 significa que deve acontecer o evento  toda hora entre 3 a 8 horas  Dia do mês: de 1 a 31, onde 3,4 significa apenas os meses  março e abril  Mês: de 1 a 12  Dia da semana: de 0 a 7, começando e terminando no domingo  Usuário  Comando a ser executado 46
  • 47. Agendamento de processos com cron: Formato do arquivo crontab Exemplos:  Todo dia as 07:30:  30  7  *  *  *  root  ps aux >> /var/log/ps.txt  Dia sim, dia não, as 10:15  15  10  */2  *  *  root  ps aux >> /var/log/ps.txt   De segunda à sexta, de duas em duas horas:  0  */2  *  *  1­5  root  ps aux >> /var/log/ps.txt 47
  • 48. Agendamento de processos com cron: Dicas finais Use ”crontab ­e” para adicionar eventos No /etc/profile, configure o editor padrão:  export VISUAL=vim Se não quiser usar a notação do crontab, basta criar um  script dentro dos diretórios com escalonamento pré­ definidos:  /etc/cron.hourly  /etc/cron.daily  /etc/cron.weekly  /etc/cron.monthly 48
  • 49. Agendamento de processos com cron: Dicas finais Usuários comuns também podem usar o cron. Para isso,  alguns arquivos devem ser definidos:  /etc/cron.allow: crie este arquivo e liste os usuários que podem  usar o cron, ou ...  /etc/cron.deny: crie este arquivo e liste os usuários que não  podem usar o cron  /var/spool/crontab será o local onde as entradas dos usuários  serão criadas 49
  • 50. Agendamento de processos de única vez Para eventos não regulares, o escalonamento pode ser  feito com o comando ”at” e do processo atd:  Define o momento com at $ at 22:30 at> echo "done"  Digite os comandos, um por linha at> Ctrl-d job 3 at Fri Jun 27 22:30:00 2008  Finalize com Ctrl+D atrm pode remover um comando da fila atq mostra a fila de comandos escalonados /etc/at.allow e /etc/at.deny dever ser configurados para  que usuários comuns possam usar o at 50
  • 51. Pausa para o exercício Liste os processos no servidos com ps  e também com top. Explore o help do  top (pressione ”h”). Crie um arquivo com com o script 1.  Execute­o algumas vezes, jogando o  #!/bin/bash # script 1 processo para background (&). Depois,  while /bin/true; do remova os processos com kill e killall. date >> /tmp/log.txt sleep 1 done Usando o cront para agendar  execuções periódicas do script 2. #!/bin/bash # script 2 date >> /tmp/log2.txt 51
  • 52. Pós­gradaduação em redes de computadores Configuração de rede 52
  • 53. Configuração básica de rede Interfaces de rede geralmente começam com eth<n>, n  sempre começando com zero Alias (apelidos), permitem que vários IPs sejam  associados a uma mesma interface física (endereços  virtuais). Eles são da forma eth<n>:<m>, ambos  começando com zero Bridges geralmente são br<n> Exemplos: eth0, eth1, eth1:0, eth1:1, br2, br0  53
  • 54. Configuração básica de rede: ifconfig A configuração manual pode ser feita com ifconfig,  presente em várias distribuições Linux:  ifconfig eth0 10.0.0.10 netmask 255.255.255.0 up  ifconfig eth0 down  ifconfig eth0 up  ifconfig (sem parâmetros, mostra a configuração atual) A criação de alias também é simples, bastando definir  novos indexes ao final (a interface eth0 já deve estar  configurada):  ifconfig eth0 172.16.0.1 netmask 255.255.255.0 up  ifconfig eth0:0 172.17.0.1 netmask 255.255.255.0 up  ifconfig eth0:1 172.18.0.1 netmask 255.255.255.0 up 54
  • 55. Configuração básica de rede: ifconfig Alguns detalhes da saída do ifconfig: Endereço IPv6 Estatísticas  de rede IP, broadcast e máscara MAC eth0 Link encap:Ethernet Endereço de HW 00:0e:35:ba:d0:0f inet end.: 10.0.0.100 Bcast:10.0.0.255 Masc:255.255.255.0 endereço inet6: fe80::20e:35ff:feba:d00f/64 Escopo:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Métrica:1 pacotes RX:15825 erros:0 descartados:0 excesso:0 quadro:0 Pacotes TX:10577 erros:0 descartados:0 excesso:0 portadora:0 colisões:0 txqueuelen:1000 RX bytes:11462155 (10.9 MB) TX bytes:1052682 (1.0 MB) IRQ:5 Endereço de E/S:0xa000 Memória:fcffe000-fcffefffInterface 55
  • 56. Pausa para o exercício Experimente mudar a sua configuração  de rede através do ifconfig. Depois tente  obter a configuração de rede de um  servidor DHCP. 56
  • 57. Configuração básica de rede: DHCP O DHCP pode ser configurado como cliente através do  utilitário dhclient:  dhclient <interface> 57
  • 58. Configuração básica de rede: Roteamento estático Para funcionamento completo, algumas rotas são  necessárias. O comando route permite adicionar rotas  estáticas, configurar o default gateway, etc. Exemplos:  Definindo o gateway default via interface eth0:  route add default gw 10.0.0.1 dev eth0  Criando uma rota para uma rede através de um gateway:  route add ­net 10.1.1.0 netmask 255.255.255.0 gw  192.168.1.254 dev eth0    Adicionando uma rota direta para um host pela interface eth0:  route add ­host 172.16.0.2 dev eth0  A opção del é similar mas permite remoter rotas 58
  • 59. Configuração básica de rede: Roteamento estático Para a figura abaixo, as rotas seriam: route add ­net 127.0.0.0 netmask 255.0.0.0 dev lo route add ­net 192.168.10.0 netmask 255.255.255.0 dev eth0 route add ­net 200.210.50.128 netmask 255.255.255.192 dev eth1 route add default gw 200.210.50.129 dev eth0 eth0 eth1 59
  • 60. Pausa para o exercício Crie o roteamento e a configuração de rede para  que a topologia abaixo funcione adequadamente. 60
  • 61. Configuração básica de rede: DNS O DNS é configurado dentro do arquivo /etc/resolv.conf,  onde os servidores de DNS podem ser listados e o nome  do domínio padrão.  Use nameserver para listar um DNS   Use domain para especificar o nome padrão do domínio # conteúdo do /etc/resolv.conf nameserver 10.0.1.1 nameserver 10.0.1.2 domain baraodemaua.br 61
  • 62. Configuração básica de rede: DNS Hosts e redes podem ser listados manualmente, através  dos seguintes arquivos:  /etc/hosts  /etc/networks O uso é desencorajado, no entanto. Primeiro procure  Além, disso, altere a ordem de busca no  resolver usando o   /etc/nsswitch.conf: arquivo hosts,  depois tente o DNS # parte do conteúdo do /etc/nsswitch.conf hosts: files dns networks: files 62
  • 63. Configuração básica de rede: Placa de rede O programa ethtool é usada para configurar parâmetros  da placa de rede. Isto pode ser interessante caso a auto­ negociação esteja falhando:  ethtool ­s eth0 speed 10 duplex half  ethtool ­s eth0 autoneg off  ethtool ­s eth0 speed 100 duplex full Detalhes do driver podem ser obtidos com a opção ”­i”:  ethtool ­i eth0 63
  • 64. Configuração básica de rede: Ferramentas auxiliares ping: testa a conexão traceroute, tracepath: mostra a rota do pacote O nestat permite avaliar os serviços de rede em execução:  netstat ­ltn: portas TCP (­t) em estado de espera de conexão (­l),  sem esperar resolução de nome (­n)  netstat ­lun: idem, mas para UDP (­u)  netstat ­platune: um bom conjunto de informações, mostrando  portas em espera, conexões abertas, etc  netstat ­i: informações sobre as interfaces de rede  netstat ­s: estatísticas de rede por protocolo ifdown e ifup: permitem ligar/desligar uma interface 64
  • 65. Configuração básica de rede: Persistindo a configuração A configuração de rede pode ser toda feita dentro do  arquivo /etc/network/interfaces, que é lida e executada na  partida pelo script /etc/init.d/networking Exemplo: # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet static address 192.168.1.33 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 gateway 192.168.1.254 # dns-* options are implemented resolvconf, if installed dns-nameservers 193.79.237.39 65
  • 66. Configuração básica de rede: Persistindo a configuração Outro exemplo, agora com DHCP e IP fixo. Note que:  auto: lista interfaces que sobem automaticamente na partida  iface: descreve a interface (eth0, eth1), falando que será usado  IPv4 (inet, para IPv6 use inet6) com DHCP para eth0 e IP fixo  (static) para eth1 # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet dhcp # The secondary network interface auto eth1 iface eth1 inet static address 10.0.1.1 netmask 255.255.255.0 66
  • 67. Configuração básica de rede: Persistindo a configuração Existem várias opções interessantes na configuração,  como pre­up, pos­up, pre­down e pos­down. Consulte o ”man interfaces” para maiores detalhes # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet static Execute após subir  address 10.0.0.1 a interface netmask 255.255.255.0 Execute antes de  post-up /etc/init.d/vlan start pre-down /etc/init.d/vlan stop desligar interface 67
  • 68. Configuração avançada de rede: Bridges Bridges são equipamentos de camada 2 (enlace) que  permitem a interligação de segmentos de uma mesma  rede. A bridge pode evitar tráfegos desnecessários uma  vez que opera na camada de enlace e também pode ser  interessante para gerar configurações adicionais de  segurança sem que outra subrede tenha que ser criada. Para o sistema, as várias placas da bridge podem ser  encaradas como apenas uma, representando a união de  todas as outras. LAN A LAN A Bridge 68
  • 69. Configuração avançada de rede: Bridges Instalar o pacote bridge­utils e criar a bridge:  brctl addbr br0 Adicionar interfaces para a bridge:  brctl addif br0 eth0;  brctl addif br0 eth1 ; ... Sendo necessário, configure um IP para a bridge:  ifconfig br0 10.1.2.3 netmask 255.255.255.0 A bridge pode ser desfeita removendo­se as intrefaces  (delif) e depois removendo­se a própria bridge (delbr)  brctl delif br0 eth0 ; brctl delif br0 eth1 ; ...  brctl delbr br0 69
  • 70. Configuração avançada de rede: VLAN As VLANs ou, LANs virtuais, através de uma modificação  no quadro ethernet e de dispositivos de camada de enlace  especiais (switches com VLAN), permitem um melhor  gerenciamento do domínio de colisão/broadcast e também  maior segurança. 70
  • 71. Configuração avançada de rede: VLAN As VLANs são criadas como interfaces virtuais  eth<n>:<m> onde <m> é o número do ID da VLAN:  vconfig eth0 10 (criar a interface virtual eth0:10)  vconfig eth0 20 (criar a interface virtual eth0:20) Configure IPs para cada interface criada  ifconfig eth0:10 10.10.0.1 netmask 255.255.255.0  ifconfig eth0:20 10.20.0.1 netmask 255.255.255.0 A VLAN pode ser desfeita através do comando rem:  vconfig rem eth0:10   vconfig rem eth0:20  71
  • 72. Configuração de rede: Outros arquivos relacionados /etc/services: lista de portas conhecidas /proc/sys/net/ipv4/ip_forward: coloque ”1” dentro deste  arquivo para permitir o roteamento entre placas. O arquivo  /etc/sysctrl.conf permite automatizar isso. 72
  • 73. Links úteis http://www.freesoftwaremagazine.com/articles/installation_seq_linux http://www.comptechdoc.org/os/linux/startupman/linux_suinit.html http://upstart.ubuntu.com/getting­started.html http://en.wikipedia.org/wiki/Upstart http://www.bootchart.org/ http://www.linux.com/feature/125977 http://upstart.ubuntu.com/wiki/Stanzas http://www.linuxabordo.com.br/wiki/index.php?title=VLAN 73
  • 74. Dúvidas, comentários, sugestões ? 74 Imagem: cena do filme Madagascar, da DreamWorks
  • 75. Direitos de cópiaCréditos ­ ShareAlike 2.0Você é livre para copiar, distribuir, apresentar e executar trabalhos fazer trabalhos derivados fazer uso comercial deste trabalhoSob as seguintes condições © Copyright 2008 Créditos. Você deve dar crédito ao autor original. Marcelo Barros Compartilhe do mesmo modo. Se você alterar, mudar,  ou realizar trabalhos usando este como base,você deve  marcelobarrosalmeida@gmail.com redistribuir o trabalhos resultante sob uma licença  Correções, sugestões e  idêntica a esta. traduções são bem vindas! Para qualquer reuso ou distribuição você deve deixar claro  os termos de licença deste trabalho. Qualquer  uma destas condições podem ser abandonadas  se você obtiver uma permissão do detentor dos direitos  autorais.Faça uso justo e o direitos dos outros não serão afetados de  forma alguma pelas restrições acima.Texto da licença:  http://creativecommons.org/licenses/by­sa/2.0/legalcode 75