75
Pós-gradaduação em redes de computadores Administração de redes Unix/Linux Marcelo Barros de Almeida [email protected]

Administração de Redes Linux - II

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: Administração de Redes Linux - II

Pós­gradaduação em redes de computadores

Administração de redes Unix/Linux

Marcelo Barros de [email protected]

Page 2: Administração de Redes Linux - II

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

Page 3: Administração de Redes Linux - II

Pós­gradaduação em redes de computadores

Inicialização do sistema

Page 4: Administração de Redes Linux - II

Inicialização do sistema

Inspirada no Unix System V e adotada por várias distros Linux

Define níveis de execução (podem variar dependendo da distro):0) Halt (desligamento seguro)

1) Single user mode

2) Multi­user mode, sem NFS ou serviços avançados de rede

3) Full multi­user mode, com todos os serviços

4) Não definido

5) Como no 3 e mais o X11

6) Restart

Boot Loader

linuxrc

kernel+initrd

init

rootfs

rc

inittab

Sistema operando

rc[S0­6].d

BIOS

Page 5: Administração de Redes Linux - II

Inicialização do sistema

BIOS (Basic Input Output System)

Inicializa o hardware do sistema e carrega os primeiros 512 bytes do disco (MBR, Master Boot Record)

O boot loader é então executado (atualmente o GRUB)

O GRUB lê e executa a inicialização de partida

/boot/grub/menu.lst

Boot Loader

linuxrc

kernel+initrd

init

rootfs

rc

inittab

Sistema operando

rc[S0­6].d

BIOS

Page 6: Administração de Redes Linux - II

Inicialização do sistema

Parte do menu.lsttitle      Ubuntu 8.04, kernel 2.6.24­19­genericroot     (hd0,0)kernel /vmlinuz­2.6.24­19­generic root=UUID=<id> ro initrd   /initrd.img­2.6.24­19­generic 

O grup é informado sobre o kernel a usar, a partição principal (/) e o initrd (Initial RAM Disk)

O initrd é montado em memória e permite inicializações mais exóticas, detecção de hardware, carregamento de drivers, etc

O script /linuxrc, dentro do initrd, é quem roda neste momento

Boot Loader

linuxrc

kernel+initrd

init

rootfs

rc

inittab

Sistema operando

rc[S0­6].d

BIOS

Page 7: Administração de Redes Linux - II

Inicialização do sistema

No final do linuxrc, é executado o programa init. O init lê as instruções de partida do /etc/inittab, onde também é definido o nível de execução (runlevel, de 0­6 e S). 

Formato do inittab: id:runlevels:action:process 

Exemplos:id:2:initdefault:si::sysinit:/etc/init.d/rcSl2:2:wait:/etc/rc.d/rc 2ca::ctrlaltdel:/sbin/shutdown -r now1:2345:respawn:/sbin/getty 38400 tty1

Boot Loader

linuxrc

kernel+initrd

init

rootfs

rc

inittab

Sistema operando

rc[S0­6].d

BIOS

Page 8: Administração de Redes Linux - II

Inicialização do sistema

A linha do sysinit é executada (rcS)

Com o runlevel definido (initdefault), vários scripts são executados

Cada runlevel tem seu diretório:

/etc/rc<r>.d/       (ex: /etc/rc2.d/)

Todos os scripts ficam em init.d:

/etc/init.d/script [start|stop|restart]

Links simbólicos são criados do diretório de runlevel para o initd./etc/rc<r>.d/[S|K]<nn>script   /etc/init.d/script→

Boot Loader

linuxrc

kernel+initrd

init

rootfs

rc

inittab

Sistema operando

rc[S0­6].d

BIOS

Page 9: Administração de Redes Linux - II

Inicialização do sistema

Dentro do diretório de runlevel, é usada a seguinte notação para o arquivo:[S|K]<nn>script

S (start): executar o script neste nível K (kill): parar o script neste nível nn: número que indica a ordem deve ser 

executado o script

Ao final, o sistema estará em operação e completamente inicializado

Boot Loader

linuxrc

kernel+initrd

init

rootfs

rc

inittab

Sistema operando

rc[S0­6].d

BIOS

Page 10: Administração de Redes Linux - II

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

Page 11: Administração de Redes Linux - II

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

Page 12: Administração de Redes Linux - II

Inicialização do sistema

Outro utilitário que merece destaque e com GUI, é o sysv­rc­conf (rcconf no Debian)

Page 13: Administração de Redes Linux - II

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 

Page 14: Administração de Redes Linux - II

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" instart)

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 ;;esacexit 0

Page 15: Administração de Redes Linux - II

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

Page 16: Administração de Redes Linux - II

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 Upstart, jobs ou por comandos.

Com o upstart, é possível uma análise completa do boot através do bootchart.

Page 17: Administração de Redes Linux - II

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

Page 18: Administração de Redes Linux - II

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

Page 19: Administração de Redes Linux - II

Inicialização do sistema no Ubuntu:Upstart

rcS rc­default rc2 tty1

stopped runlevel 2 stoppedstartup

control­alt­delete

control­alt­delete

logd

Emulação dos runlevels dentro do upstart

upstart

Page 20: Administração de Redes Linux - II

Inicialização do sistema no Ubuntu:Upstart

# rcS - runlevel compatibility

start on startupstop on runlevelconsole outputscript

runlevel --set S >/dev/null || true

PREVLEVEL=NRUNLEVEL=Sexport PREVLEVEL RUNLEVEL

exec /etc/init.d/rcSend script

# rc2 - runlevel 2 compatibility

start on runlevel 2stop on runlevel [!2]console outputscript

set $(runlevel --set 2 || true)if [ "$1" != "unknown" ]; then PREVLEVEL=$1 RUNLEVEL=$2 export PREVLEVEL RUNLEVELfiexec /etc/init.d/rc 2

end script

# rc - runlevel compatibility

start on stopped rcSscript

runlevel --reboot || trueif grep -q -w -- "-s\|single\|S" /proc/cmdline; then telinit Selif [ -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 fielse telinit 2fi

end script

Page 21: Administração de Redes Linux - II

Inicialização do sistema no Ubuntu:Upstart

initctl emit meuevt startinitctl emit meuevt stop

inictl start meusrvinitctl stop meusrv

start meusrvstop meusrv

initctl list

# /etc/event.d/meusrv#start on meuevt startstop on meuevt stopconsole output

scriptrm /tmp/log.txtwhile /bin/true;do

echo "Running meusrv" >> /tmp/log.txt

sleep 1done

end script

Comandos úteis: initctl: controla jobs e emite sinais start/stop: controlam jobs

Page 22: Administração de Redes Linux - II

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 startstop on meuevt stopconsole outputscript

echo "Running meusrv" > /tmp/log.txtwhile /bin/true;do

date >> /tmp/log.txtsleep 1

doneend script

Page 23: Administração de Redes Linux - II

23

Pós­gradaduação em redes de computadores

Direitos e permissões

Page 24: Administração de Redes Linux - II

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)

Page 25: Administração de Redes Linux - II

25

Direitos e permissões

$ ls -l

-rw-r--r-- 1 marcelo marcelo 0 2008-06-22 16:49 arquivodrwxr-xr-x 2 marcelo marcelo 4096 2008-06-22 16:49 diretoriolrwxrwxrwx 1 marcelo marcelo 7 2008-06-22 16:49 link -> arquivo

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)

Page 26: Administração de Redes Linux - II

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

Page 27: Administração de Redes Linux - II

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

Page 28: Administração de Redes Linux - II

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.

Page 29: Administração de Redes Linux - II

29

Mudando direitos e permissões com chmodusando 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

Page 30: Administração de Redes Linux - II

30

Mudando direitos e permissões com chmodusando 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

Page 31: Administração de Redes Linux - II

31

Mudando direitos e permissões com chmodusando 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→

4 2 1 4 2 1 4 2 1 4 2 1

u g t r w x r w x r w x

especiais dono grupo outros

Page 32: Administração de Redes Linux - II

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.

Page 33: Administração de Redes Linux - II

33

Pós­gradaduação em redes de computadores

Administrando grupos e usuários

Page 34: Administração de Redes Linux - II

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

Page 35: Administração de Redes Linux - II

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

Page 36: Administração de Redes Linux - II

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

Page 37: Administração de Redes Linux - II

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

Page 38: Administração de Redes Linux - II

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.

Page 39: Administração de Redes Linux - II

39

Pós­gradaduação em redes de computadores

Gerenciado processos

Page 40: Administração de Redes Linux - II

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

Page 41: Administração de Redes Linux - II

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

Page 42: Administração de Redes Linux - II

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

Page 43: Administração de Redes Linux - II

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

Page 44: Administração de Redes Linux - II

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

Page 45: Administração de Redes Linux - II

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

Page 46: Administração de Redes Linux - II

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

Page 47: Administração de Redes Linux - II

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

Page 48: Administração de Redes Linux - II

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

Page 49: Administração de Redes Linux - II

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

Page 50: Administração de Redes Linux - II

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 Digite os comandos, um por linha 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

$ at 22:30at> echo "done" at> Ctrl-djob 3 at Fri Jun 27 22:30:00 2008

Page 51: Administração de Redes Linux - II

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 processo para background (&). Depois, remova os processos com kill e killall.

Usando o cront para agendar execuções periódicas do script 2.

#!/bin/bash# script 1while /bin/true;do

date >> /tmp/log.txtsleep 1

done

#!/bin/bash# script 2date >> /tmp/log2.txt

Page 52: Administração de Redes Linux - II

52

Pós­gradaduação em redes de computadores

Configuração de rede

Page 53: Administração de Redes Linux - II

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 

Page 54: Administração de Redes Linux - II

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

Page 55: Administração de Redes Linux - II

55

Configuração básica de rede:ifconfig

Alguns detalhes da saída do ifconfig:

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-fcffefff

MACIP, broadcast e máscara

Estatísticas de rede

Endereço IPv6

Interface

Page 56: Administração de Redes Linux - II

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.

Page 57: Administração de Redes Linux - II

57

Configuração básica de rede:DHCP

O DHCP pode ser configurado como cliente através do utilitário dhclient:

dhclient <interface>

Page 58: Administração de Redes Linux - II

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

Page 59: Administração de Redes Linux - II

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

Page 60: Administração de Redes Linux - II

60

Pausa para o exercício

Crie o roteamento e a configuração de rede para que a topologia abaixo funcione adequadamente.

Page 61: Administração de Redes Linux - II

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.1nameserver 10.0.1.2domain baraodemaua.br

Page 62: Administração de Redes Linux - II

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.

Além, disso, altere a ordem de busca no /etc/nsswitch.conf:

# parte do conteúdo do /etc/nsswitch.conf

hosts: files dnsnetworks: files

Primeiro procure resolver usando o  

arquivo hosts, depois tente o DNS

Page 63: Administração de Redes Linux - II

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

Page 64: Administração de Redes Linux - II

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

Page 65: Administração de Redes Linux - II

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 interfaceauto loiface lo inet loopback

# The primary network interfaceauto eth0iface 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

Page 66: Administração de Redes Linux - II

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 interfaceauto loiface lo inet loopback

# The primary network interfaceauto eth0iface eth0 inet dhcp

# The secondary network interfaceauto eth1iface eth1 inet static

address 10.0.1.1netmask 255.255.255.0

Page 67: Administração de Redes Linux - II

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 interfaceauto loiface lo inet loopback

# The primary network interfaceauto eth0iface eth0 inet static

address 10.0.0.1netmask 255.255.255.0post-up /etc/init.d/vlan startpre-down /etc/init.d/vlan stop

Execute após subir a interface

Execute antes de desligar interface

Page 68: Administração de Redes Linux - II

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

Page 69: Administração de Redes Linux - II

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

Page 70: Administração de Redes Linux - II

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.

Page 71: Administração de Redes Linux - II

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 

Page 72: Administração de Redes Linux - II

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.

Page 73: Administração de Redes Linux - II

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

Page 74: Administração de Redes Linux - II

74

Dúvidas, comentários, sugestões ?

Imagem: cena do filme Madagascar, da DreamWorks

Page 75: Administração de Redes Linux - II

75

Direitos de cópia

Créditos ­ ShareAlike 2.0Você é livre para

copiar, distribuir, apresentar e executar trabalhosfazer trabalhos derivadosfazer uso comercial deste trabalho

Sob as seguintes condiçõesCréditos. Você deve dar crédito ao autor original.Compartilhe do mesmo modo. Se você alterar, mudar, ou realizar trabalhos usando este como base,você deve redistribuir o trabalhos resultante sob uma licença idêntica a esta.

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

© Copyright 2008Marcelo Barros

[email protected]ções, sugestões e 

traduções são bem vindas!