86
Notas de Aula - 2011 FIAP - Uso Interno Prof. Alexander Luz Sperandio FIAP- Faculdade de Inform´ atica e Administrac ¸˜ ao Paulista Curso: Tecnologia em Redes de Computadores Disciplina: Sistema Operacional Linux Prof.: Alexander Luz Sperandio ([email protected]) Notas de aula Servidores Linux (Todas as Notas de Aula) Sum´ ario I Configurac ¸˜ ao de rede no linux 6 1 Rede no Linux 6 1.1 Configurac ¸˜ ao de interfaces ..................... 6 1.2 Tabela de roteamento ........................ 8 1.3 Arquivos de configurac ¸˜ ao da rede ................. 8 1.4 Configurac ¸˜ ao de DNS ........................ 9 2 Utilit´ arios 10 2.1 ping ................................. 10 2.2 traceroute .............................. 11 2.3 netstat ................................ 11 3 Exerc´ ıcios 11 II Servic ¸os: init e runleves 14 4 Inicializac ¸˜ ao do sistema 14 4.1 O processo init ........................... 14 4.2 Os scripts de inicializac ¸˜ ao ..................... 14 4.3 init do System V .......................... 15 4.4 Manipulando servic ¸os ........................ 16 4.5 Administrac ¸˜ ao de runlevels ..................... 16 III DHCP 17 5 DHCP 17 5.1 Introduc ¸˜ ao .............................. 17 5.2 Como funciona ........................... 17 1

Servi Dores Linux

Embed Size (px)

Citation preview

Page 1: Servi Dores Linux

Notas de

Aula- 20

11

FIAP - Uso

Intern

o

Prof

.Ale

xand

erL

uzSp

eran

dio

FIAP- Faculdade de Informatica e Administracao PaulistaCurso: Tecnologia em Redes de ComputadoresDisciplina: Sistema Operacional LinuxProf.: Alexander Luz Sperandio ([email protected])

Notas de aulaServidores Linux

(Todas as Notas de Aula)

Sumario

I Configuracao de rede no linux 6

1 Rede no Linux 61.1 Configuracao de interfaces . . . . . . . . . . . . . . . . . . . . . 61.2 Tabela de roteamento . . . . . . . . . . . . . . . . . . . . . . . . 81.3 Arquivos de configuracao da rede . . . . . . . . . . . . . . . . . 81.4 Configuracao de DNS . . . . . . . . . . . . . . . . . . . . . . . . 9

2 Utilitarios 102.1 ping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.2 traceroute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.3 netstat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

3 Exercıcios 11

II Servicos: init e runleves 14

4 Inicializacao do sistema 144.1 O processo init . . . . . . . . . . . . . . . . . . . . . . . . . . . 144.2 Os scripts de inicializacao . . . . . . . . . . . . . . . . . . . . . 144.3 init do System V . . . . . . . . . . . . . . . . . . . . . . . . . . 154.4 Manipulando servicos . . . . . . . . . . . . . . . . . . . . . . . . 164.5 Administracao de runlevels . . . . . . . . . . . . . . . . . . . . . 16

III DHCP 17

5 DHCP 175.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175.2 Como funciona . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

1

Page 2: Servi Dores Linux

Notas de

Aula- 20

11

FIAP - Uso

Intern

o

Prof

.Ale

xand

erL

uzSp

eran

dio

6 Laboratorio 1 - Servidor DHCP 186.1 Passo1 - Instalacao do servidor DHCP . . . . . . . . . . . . . . . 186.2 Passo2 - Configuracao do servidor DHCP . . . . . . . . . . . . . 19

6.2.1 Dados da configuracao . . . . . . . . . . . . . . . . . . . 196.2.2 Arquivo dhcpd.conf . . . . . . . . . . . . . . . . . . . . 196.2.3 Arquivo /etc/default/dhcp3-server . . . . . . . . . 20

6.3 Passo3 - Configuracao do cliente DHCP . . . . . . . . . . . . . . 206.3.1 Configuracao de rede . . . . . . . . . . . . . . . . . . . . 20

6.4 Passo4 - Verificacao do funcionamento do servidor DHCP . . . . 21

7 Laboratorio 2 - vde2, qemu e DHCP 217.1 Passo 1 - Instalacao do qemu e vde2 . . . . . . . . . . . . . . . . 217.2 Passo 2 - Criacao do switch . . . . . . . . . . . . . . . . . . . . . 217.3 Passo 3 - Maquinas qemu . . . . . . . . . . . . . . . . . . . . . . 227.4 Passo 4 - Configuracao do servidor DHCP e clientes . . . . . . . . 22

7.4.1 Verificando o servidor . . . . . . . . . . . . . . . . . . . 227.5 Passo 5 - IP fixo para um servidor da rede . . . . . . . . . . . . . 22

IV DNS 23

8 DNS - Domain Name System 238.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238.2 O espaco de nomes do DNS . . . . . . . . . . . . . . . . . . . . 24

8.2.1 TLDs - Top Level Domains . . . . . . . . . . . . . . . . 248.2.2 Registro de domınio . . . . . . . . . . . . . . . . . . . . 25

9 O software BIND 259.1 Componentes do BIND . . . . . . . . . . . . . . . . . . . . . . . 269.2 Configuracao do BIND . . . . . . . . . . . . . . . . . . . . . . . 26

9.2.1 Servidor cache . . . . . . . . . . . . . . . . . . . . . . . 269.3 Arquivos de configuracao . . . . . . . . . . . . . . . . . . . . . . 27

10 Arquivos de zona 2810.1 Registros de Recursos - RRs . . . . . . . . . . . . . . . . . . . . 28

10.1.1 Campo nome . . . . . . . . . . . . . . . . . . . . . . . . 2910.1.2 Campo ttl (time to live) . . . . . . . . . . . . . . . . . . . 2910.1.3 Campo classe . . . . . . . . . . . . . . . . . . . . . . . 2910.1.4 Campo tipo . . . . . . . . . . . . . . . . . . . . . . . . 30

10.2 Comandos em arquivos de zonas . . . . . . . . . . . . . . . . . . 31

11 Exercıcios 31

2

Page 3: Servi Dores Linux

Notas de

Aula- 20

11

FIAP - Uso

Intern

o

Prof

.Ale

xand

erL

uzSp

eran

dio

12 lab1: Resolucao de nomes DNS 3212.1 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3212.2 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3212.3 Atividade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

13 lab2: Servidor Primario e Secundario 3513.1 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3513.2 Criacao de um domınio . . . . . . . . . . . . . . . . . . . . . . . 3513.3 A zona reversa . . . . . . . . . . . . . . . . . . . . . . . . . . . 3913.4 Transferencia de zona . . . . . . . . . . . . . . . . . . . . . . . . 41

V Servidor web - apache 43

14 Apresentacao do Apache 4314.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4314.2 Instalacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4314.3 Iniciando o servidor . . . . . . . . . . . . . . . . . . . . . . . . . 44

15 Configuracao do Apache 4415.1 Arquivo de configuracao . . . . . . . . . . . . . . . . . . . . . . 44

15.1.1 Arquivos e Diretivas de configuracao . . . . . . . . . . . 4415.1.2 Blocos de secao . . . . . . . . . . . . . . . . . . . . . . . 45

15.2 Virtual Hosts . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

16 Exercıcios 48

17 lab1: apache 5017.1 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5017.2 Requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5017.3 Iniciando o servidor . . . . . . . . . . . . . . . . . . . . . . . . . 5017.4 Entendendo os modulos . . . . . . . . . . . . . . . . . . . . . . . 5017.5 Entendendo as permissoes . . . . . . . . . . . . . . . . . . . . . 51

18 lab2: apache 5118.1 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5118.2 Autorizacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5118.3 Autenticacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5218.4 Virtual Hosts . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

19 lab: DNS e apache 54

20 Referencias 55

3

Page 4: Servi Dores Linux

Notas de

Aula- 20

11

FIAP - Uso

Intern

o

Prof

.Ale

xand

erL

uzSp

eran

dio

VI firewall - iptables 55

21 O Firewall 5521.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5521.2 iptables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

22 Conceitos basicos 5722.1 regras, chains e tabelas . . . . . . . . . . . . . . . . . . . . . . . 57

22.1.1 Regras . . . . . . . . . . . . . . . . . . . . . . . . . . . 5722.1.2 Chains - listas de regras . . . . . . . . . . . . . . . . . . 5722.1.3 Tabelas . . . . . . . . . . . . . . . . . . . . . . . . . . . 5722.1.4 Tabelas contem chains . . . . . . . . . . . . . . . . . . . 58

23 lab1: iptables 5923.1 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5923.2 Atividade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6023.3 Salvando as regras da memoria . . . . . . . . . . . . . . . . . . . 61

24 Ativacao do script do firewall 6124.1 Ativacao do script - Debian . . . . . . . . . . . . . . . . . . . . . 6224.2 Ativacao do script - outras distribuicoes . . . . . . . . . . . . . . 62

VII ssh 62

25 SSH - Secure Shell 6325.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6325.2 Metodos de autenticacao . . . . . . . . . . . . . . . . . . . . . . 6325.3 Configuracao do cliente . . . . . . . . . . . . . . . . . . . . . . . 6425.4 Configuracao do servidor . . . . . . . . . . . . . . . . . . . . . . 64

26 tcp wrappers 64

VIII postfix 64

27 email 6527.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6527.2 Postfix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6527.3 Servidor POP . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6627.4 webmail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

28 lab: Servidor de email postfix 6728.1 Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6728.2 Atividade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

4

Page 5: Servi Dores Linux

Notas de

Aula- 20

11

FIAP - Uso

Intern

o

Prof

.Ale

xand

erL

uzSp

eran

dio

28.3 Configuracao do DNS . . . . . . . . . . . . . . . . . . . . . . . . 6728.4 Configuracao do sistema . . . . . . . . . . . . . . . . . . . . . . 6828.5 Configuracao do postfix . . . . . . . . . . . . . . . . . . . . . . . 68

IX squid 69

29 Conhecendo o squid 6929.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6929.2 Daemons e Utilitarios . . . . . . . . . . . . . . . . . . . . . . . . 6929.3 Arquivo de configuracao . . . . . . . . . . . . . . . . . . . . . . 69

30 ACLs - Access Control Lists 7030.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7030.2 tags de configuracao . . . . . . . . . . . . . . . . . . . . . . . . 7030.3 Autenticacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7130.4 Criacao de usuarios . . . . . . . . . . . . . . . . . . . . . . . . . 71

31 Relatorios com sarg 7131.1 Configuracao e o comando sarg . . . . . . . . . . . . . . . . . . . 71

32 lab: squid 7232.1 Limpeza do arquivo squid.conf . . . . . . . . . . . . . . . . . . . 7232.2 Clientes com acesso ao proxy . . . . . . . . . . . . . . . . . . . . 7232.3 Bloqueio de sites . . . . . . . . . . . . . . . . . . . . . . . . . . 73

X NFS 73

33 NFS - Network File System 7333.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7333.2 O servidor NFS . . . . . . . . . . . . . . . . . . . . . . . . . . . 7433.3 Montagem do sistema de arquivos via NFS . . . . . . . . . . . . 7433.4 tcp wrappers . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

XI samba 75

34 Conhecendo o Samba 7534.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7534.2 Daemons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7634.3 Programas utilitarios . . . . . . . . . . . . . . . . . . . . . . . . 76

5

Page 6: Servi Dores Linux

Notas de

Aula- 20

11

FIAP - Uso

Intern

o

Prof

.Ale

xand

erL

uzSp

eran

dio

35 Configurando o Samba 7635.1 O arquivo smb.conf . . . . . . . . . . . . . . . . . . . . . . . . . 7635.2 Configuracao de um PDC . . . . . . . . . . . . . . . . . . . . . . 77

36 Documentacao 79

37 lab: samba 7937.1 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7937.2 Utilitarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

37.2.1 smbclient . . . . . . . . . . . . . . . . . . . . . . . . . . 8037.2.2 smbmount . . . . . . . . . . . . . . . . . . . . . . . . . . 8037.2.3 nmblokup . . . . . . . . . . . . . . . . . . . . . . . . . . 81

37.3 Configuracao do arquivo smb.conf . . . . . . . . . . . . . . . . . 8137.4 Controlador de Domınio . . . . . . . . . . . . . . . . . . . . . . 82

Apendice 85

A Comandos do vim 85

B qemu e vde2 85B.1 Instalacao dos pacotes necessarios . . . . . . . . . . . . . . . . . 86B.2 Criacao do switch virtual . . . . . . . . . . . . . . . . . . . . . . 86B.3 Conexao com a internet via DHCP . . . . . . . . . . . . . . . . . 86B.4 Maquinas virtuais com o qemu . . . . . . . . . . . . . . . . . . . 86

Parte I

Configuracao de rede no linux1 Rede no Linux

1.1 Configuracao de interfaces

Interfaces de rede

• Unix: dispositivos de rede em /dev

• Linux: Dispositivos de rede sao criados dinamicamente+ Para ver quais dispositivos existem no sistema:cat /proc/net/dev 1

• Nomenclatura:1/proc possui arquivos para o ajuste de parametros do kernel. De uma olhada em

/proc/sys/net/ipv4 e em /usr/src/linux/Documentation/proc.txt.

6

Page 7: Servi Dores Linux

Notas de

Aula- 20

11

FIAP - Uso

Intern

o

Prof

.Ale

xand

erL

uzSp

eran

dio

– lo - loopback

– eth0..n - Placa de rede Ethernet e WaveLan.

– ppp0..n - Interface de rede PPP (protocolo ponto a ponto).

– fddi0..n - Interfaces de rede FDDI.

– tr0..n - Token Ring

– ...

Configurando interfacesifconfig - interface configure

ifconfig [opcoes] [interface]ifconfig interface [opcoes]

Parametro Descricao-a mostra todas as interfaces, incluindo as nao configuradas;

[−]arp Habilita ou desabilita o uso do protocolo ARP para estainterface.

[−]allmulti Habilita ou desabilita o modo promiscuous da interface.netmask addr Configura a mascara de rede IP para esta interface.

hw ether Configura o endereco de hardware para esta interface.

• levantando interfaces:2

– ifconfig lo 127.0.0.1 up

– ifconfig eth1 192.168.1.1

– ifconfig eth2 192.168.3.9 netmask 255.255.255.0

– ifconfig eth0 172.16.0.3 hw ether 00:1a:92:64:ce:02

• derrubando interfaces:ifconfig eth0 down

• man ifconfig para mais informacoes;

Interface Aliasing

• Diferentes enderecos IP para a mesma interface

– ifconfig eth0:0 192.168.4.1 netmask 255.255.255.0

– ifconfig eth0:1 192.168.5.1 netmask 255.255.255.0

2Note que up pode ser omitido. Na configuracao de exemplo de eth1 sera usada a mascara-padrao.

7

Page 8: Servi Dores Linux

Notas de

Aula- 20

11

FIAP - Uso

Intern

o

Prof

.Ale

xand

erL

uzSp

eran

dio

1.2 Tabela de roteamento

• Tabela de roteamentocat /proc/net/routenetstat -rn/sbin/route -n

K er ne l IP r o u t i n g t a b l eD e s t i n a t i o n Gateway Genmask F l a g s M e t r i c Ref Use I f a c e1 9 2 . 1 6 8 . 2 . 0 0 . 0 . 0 . 0 2 5 5 . 2 5 5 . 2 5 5 . 0 U 0 0 0 e t h 11 9 2 . 1 6 8 . 0 . 0 0 . 0 . 0 . 0 2 5 5 . 2 5 5 . 2 5 5 . 0 U 0 0 0 e t h 00 . 0 . 0 . 0 1 9 2 . 1 6 8 . 0 . 1 0 . 0 . 0 . 0 UG 0 0 0 e t h 0

• Manipulacao de rotasroute add -net 192.168.3.0 netmask 255.255.255.0route add -net 192.168.10.64 netmask 255.255.255.192 gw 10.1.7.5

– add - adiciona a rota (del - remove a rota)

– net - indica o endereco de rede

– gw - indica o endereco do gateway na mesma rede da origem.

• rotas para redes diretamente conectadas+ automaticamente adicionadas pelo ifconfig

• rota padrao (default gateway)route add default gw 192.168.3.254

• man route

1.3 Arquivos de configuracao da rede

• OpenSuSE, Fedora, ...

– diretorio: /etc/sysconfig/network/ 3

– arquivos: ifcfg-lo, ifcfg-eth0..n

– script de inicializacao:/etc/init.d/network 4

3Podem haver pequenas variacoes entre as distribuicoes baseadas em rpm. No CentOS o diretorioe o /etc/sysconfig/network-scripts.

4Aceita argumentos como start, stop, restart, ...; execute o script sem argumentos para saberquais sao aceitos.

8

Page 9: Servi Dores Linux

Notas de

Aula- 20

11

FIAP - Uso

Intern

o

Prof

.Ale

xand

erL

uzSp

eran

dio

# a r q u i v o / e t c / s y s c o n f i g / ne twork / i f c f g−e t h 0DEVICE= e t h 0# BOOTPROTO=dhcp # Pa ra u s a r DHCPBOOTPROTO= s t a t i c # Pa ra c o n f i g u r a c a o e s t a t i c aIPADDR = 1 9 2 . 1 6 8 . 3 . 9NETMASK= 2 5 5 . 2 5 5 . 2 5 5 . 0NETWORK= 1 9 2 . 1 6 8 . 3 . 0BROADCAST= 1 9 2 . 1 6 8 . 3 . 2 5 5GATEWAY= 1 9 2 . 1 6 8 . 3 . 2 5 4ONBOOT= yes

• Debian, Knoppix, Ubuntu, ...

– diretorio: /etc/network/

– arquivo: interfaces

– script de inicializacao:/etc/init.d/networking

# a r q u i v o / e t c / ne twork / i n t e r f a c e sa u t o l oi f a c e l o i n e t l o o p b a c k

a u t o e t h 0# i f a c e e t h 0 i n e t dhcp # Pa ra u s a r DHCPi f a c e e t h 0 i n e t s t a t i c # Pa ra c o n f i g u r a c a o e s t a t i c a

a d d r e s s 1 9 2 . 1 6 8 . 3 . 9netmask 2 5 5 . 2 5 5 . 2 5 5 . 0gateway 1 9 2 . 1 6 8 . 3 . 2 5 4# p a c o t e r e s o l v c o n f deve e s t a r i n s t a l a d o p a r a uso das l i n h a s a b a i x o .# dns−s e a r c h maths . wu . edu . au wu . edu . au# aba ixo , sao os DNS p u b l i c o s do OpenDNS (www. opendns . com )# dns−n a m e s e r v e r s 2 0 8 . 6 7 . 2 2 2 . 2 2 2 2 0 8 . 6 7 . 2 2 0 . 2 2 0

NOTA: Para a configuracao de cliente DHCP, e necessaria a instalacao dos pacotespump ou dhcp-client.

1.4 Configuracao de DNS

• DNS - Domain Name System+ converte os nomes de maquinas para enderecos IPs que todas as maquinasda Internet possuem

• /etc/resolv.conf

– lista domınios a serem pesquisados para resolver nomes incompletos(search)

– enderecos IP dos servidores DNS a serem contatados para pesquisas denomes (nameserver)

# a r q u i v o / e t c / r e s o l v . con fs e a r c h maths . wu . edu . au wu . edu . aun a m e s e r v e r 8 . 8 . 8 . 8 # E s s e s sao os DNS p u b l i c o s do Googlen a m e s e r v e r 8 . 8 . 4 . 4

9

Page 10: Servi Dores Linux

Notas de

Aula- 20

11

FIAP - Uso

Intern

o

Prof

.Ale

xand

erL

uzSp

eran

dio

Outros arquivos

• /etc/hosts+ faz a associacao entre nomes e enderecos IP

# a r q u i v o / e t c / h o s t s1 2 7 . 0 . 0 . 1 l o c a l h o s t1 9 2 . 1 6 8 . 1 . 1 0 foo . mydomain . o rg foo

• /etc/host.conf+ configuracoes para a biblioteca resolverDefine aonde a biblioteca de resolucao de nomes deve procurar primeiro aoresolver um nome. O default e procurar primeiro no arquivo /etc/hosts edepois no DNS (bind).

# a r q u i v o / e t c / h o s t . con fo r d e r h o s t s , b indm u l t i on

– order hosts,bind+ checar o arquivo /etc/hosts (parametro hosts) antes de tentar verificarum servidor de nomes (parametro bind) e retornar um IP valido

– multi on+ retorna todos os enderecos validos para um host no arquivo /etc/hosts;se off retorna apenas o primeiro

2 Utilitarios

2.1 ping

• teste para verificar a configuracao de rede

• envia pacotes “ICMP ECHO REQUEST” para hosts na rede5

$ p ing u o l . com . b rPING u o l . com . b r ( 2 0 0 . 2 2 1 . 2 . 4 5 ) 5 6 ( 8 4 ) b y t e s o f d a t a .64 b y t e s from home . u o l . com . b r ( 2 0 0 . 2 2 1 . 2 . 4 5 ) : i cmp seq =1 t t l =59 t ime =27 .9 ms64 b y t e s from home . u o l . com . b r ( 2 0 0 . 2 2 1 . 2 . 4 5 ) : i cmp seq =2 t t l =59 t ime =20 .5 ms. . .

<C t r l><C>−−− u o l . com . b r p ing s t a t i s t i c s −−−3 p a c k e t s t r a n s m i t t e d , 3 r e c e i v e d , 0% p a c k e t l o s s , t ime 2009msr t t min / avg / max / mdev = 1 5 . 3 0 9 / 7 8 . 6 6 2 / 1 9 7 . 0 5 7 / 8 3 . 7 8 6 ms$

5http://www.sounerd.com.br/index.php?option=com_content&task=view&id=40&Itemid=43

10

Page 11: Servi Dores Linux

Notasde

Aula

-2011

FIAP

-UsoInterno

Prof

.Al

exan

der

Luz

Sper

andi

o

2.2 traceroute

- mostra a rota que os pacotes tomam para chegar a um host- usa pacotes UDP ou ICMPt r a c e r o u t e t o www. goo g l e . com ( 2 0 9 . 8 5 . 1 9 3 . 1 4 7 ) , 30 hops max , 40 b y t e p a c k e t s1 1 0 . 1 1 . 0 . 1 ( 1 0 . 1 1 . 0 . 1 ) 29 .304 ms 29 .412 ms 29 .502 ms2 ∗ ∗ ∗3 c9060003 . v i r t u a . com . b r ( 2 0 1 . 6 . 0 . 3 ) 40 .563 ms 40 .733 ms 40 .886 ms4 2 9 . p t t . ansp . b r ( 2 0 0 . 1 3 6 . 3 4 . 2 9 ) 45 .059 ms 47 .062 ms 47 .150 ms5 2 0 9 . 8 5 . 2 5 0 . 2 4 2 ( 2 0 9 . 8 5 . 2 5 0 . 2 4 2 ) 47 .241 ms 47 .422 ms 49 .367 ms6 2 0 9 . 8 5 . 2 5 1 . 2 1 4 ( 2 0 9 . 8 5 . 2 5 1 . 2 1 4 ) 58 .480 ms 29 .201 ms 29 .171 ms7 br−in−f147 . go og l e . com ( 2 0 9 . 8 5 . 1 9 3 . 1 4 7 ) 20 .029 ms 19 .564 ms 19 .502 ms

2.3 netstat

- mostra conexoes de rede, tabelas de roteamento, estatısticas de interfaces, ...

netstat [opcoes]

Parametro Descricao-n Mostra enderecos numericos, sem tentar resolver os

nomes da maquina, porta ou usuario;-a mostra os servicos em listening (estado ouca);-c mostra a tabela selecionada a cada segundo, continua-

mente na tela ate que voce o interrompa;-t somente servicos tcp;-u somente servicos udp;-p mostra o PID dos processos por tras dos servicos.

Exemplo:

$ n e t s t a t −napConexoes I n t e r n e t A t i v a s ( s e r v i d o r e s e e s t a b e l e c i d a s )P r o t o Recv−Q Send−Q Endereco Loca l Endereco Remoto Es t ad ot c p 0 0 0 . 0 . 0 . 0 : 8 0 0 . 0 . 0 . 0 : ∗ OUCAt c p 0 0 0 . 0 . 0 . 0 : 2 2 0 . 0 . 0 . 0 : ∗ OUCAt c p 0 0 0 . 0 . 0 . 0 : 6 3 1 0 . 0 . 0 . 0 : ∗ OUCAt c p 0 0 1 2 7 . 0 . 0 . 1 : 2 5 0 . 0 . 0 . 0 : ∗ OUCAt c p 0 0 1 9 2 . 1 6 8 . 0 . 2 : 3 2 8 3 5 6 6 . 2 4 9 . 8 3 . 1 0 9 : 4 6 5 ESTABELECIDAt c p 0 0 1 9 2 . 1 6 8 . 0 . 2 : 3 2 8 0 4 6 6 . 2 4 9 . 8 3 . 1 0 9 : 9 9 5 ESTABELECIDAt c p 0 0 1 2 7 . 0 . 0 . 1 : 8 0 1 2 7 . 0 . 0 . 1 : 3 3 1 3 6 ESTABELECIDAt c p 0 0 1 2 7 . 0 . 0 . 1 : 8 0 1 2 7 . 0 . 0 . 1 : 3 3 1 3 8 TIME WAITudp 0 0 0 . 0 . 0 . 0 : 6 8 0 . 0 . 0 . 0 : ∗udp 0 0 0 . 0 . 0 . 0 : 6 3 1 0 . 0 . 0 . 0 : ∗Domain s o c k e t s UNIX a t i v o s ( s e r v i d o r e s e e s t a b e l e c i d a s ). . .

3 ExercıciosConexoes Internet Ativas (servidores e estabelecidas)Proto Recv-Q Send-Q Endereco Local Endereco Remoto Estadotcp 0 0 0.0.0.0:80 0.0.0.0:* OUCAtcp 0 0 0.0.0.0:22 0.0.0.0:* OUCAtcp 0 0 0.0.0.0:631 0.0.0.0:* OUCAtcp 0 0 127.0.0.1:25 0.0.0.0:* OUCAtcp 0 0 192.168.0.2:32835 66.249.83.109:465 ESTABELECIDAtcp 0 0 192.168.0.2:32804 66.249.83.109:995 ESTABELECIDA

11

Page 12: Servi Dores Linux

Notas de Aula

- 2011

FIAP - Uso

Inter

no

Prof

.Ale

xand

erL

uzSp

eran

dio

tcp 0 0 192.168.0.2:49194 204.152.191.37:21 ESTABELECIDAtcp 0 0 127.0.0.1:80 127.0.0.1:33136 ESTABELECIDAtcp 0 0 127.0.0.1:80 127.0.0.1:33138 TIME_WAITudp 0 0 0.0.0.0:68 0.0.0.0:*udp 0 0 0.0.0.0:631 0.0.0.0:*Domain sockets UNIX ativos (servidores e estabelecidas)...

1. Considerando o texto acima responda:

(a) Identifique o comando que gerou esse texto.

(b) Identifique o servico para cada porta no estado OUCA (sugestao: pro-cure em /etc/services).

(c) Identifique as conexoes estabelecidas.

(d) Explique o estado TIME WAIT.

(e) Utilize o comando host para identificar o FQDN (Fully Qualified Do-main Name) de cada endereco remoto mostrado no texto.

2. Considere duas LANs distantes que precisam se comunicar. Use os coman-dos ifconfig e route para configurar a rede indicada na figura 16.

(a) Configure o IP das maquinas X, A, B, C e D usando o ifconfig

(b) Escreva o arquivo de configuracao para a maquina A (SuSE Linux)

(c) Escreva o(s) arquivo(s) de configuracao para a maquina X (a interfacecom a internet usa DHCP)

• Escreva os arquivos para o SuSE Linux• Escreva o arquivo para Debian

(d) Crie as tabelas de rotas para as maquinas A e B;

(e) Crie as tabelas de rotas para as maquinas C e D.

Referencias

[1] Nemeth, E, Snyder, G, Hein, T.R., Manual Completo do Linux - Guia doAdministrador. 2a. edicao. Pearson. Sao Paulo. 2007. cap. 12-14, p.191-259;

[2] Nemeth, E, Snyder, G, Seebass, S, Hein, T.R., Manual de Administracaodo Sistema UNIX. 3a. edicao. Bookman, 2002. cap.2, p.54-78.

[3] Sheer, P. LINUX: Rute User’s Tutorial and Exposition (Version 1.0.0).Disponıvel em: http://packages.debian.org/stable/doc/rutebook.Acesso em: 21 jul. 2006.cap.25.

6Sheer, P. LINUX: Rute User’s Tutorial and Exposition (Version 1.0.0). Disponıvel em: http://packages.debian.org/stable/doc/rutebook. Acesso em: 21 jul. 2006.cap.25.

12

Page 13: Servi Dores Linux

Notas de Aula

- 2011

FIAP - Uso

Inter

no

Prof

.Ale

xand

erL

uzSp

eran

dio

Figura 1: Duas redes remotamente conectadas.

13

Page 14: Servi Dores Linux

Notas de

Aula- 20

11

FIAP - Uso

Intern

o

Prof

.Ale

xand

erL

uzSp

eran

dio

[4] Silva, G.M. Guia Foca GNU/Linux. Disponıvel em: http://focalinux.cipsga.org.br/guia/avancado/ch-cfgrede.htm. Acesso em: 05 ago.2006.

Parte II

Servicos: init e runleves4 Inicializacao do sistema

4.1 O processo init

• Processo numero 1 do sistema

$ ps aux | g rep −B1 i n i tUSER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMANDr o o t 1 0 . 0 0 . 0 1508 520 ? S 09 :21 0 :00 i n i t [ 2 ]$

+ executa os scripts de inicializacao do sistema

• Sistemas BSD (Berkeley Software Distribution)+ init tem somente dois estados:

– monousuario

– multiusuario

• Outros sistemas como o SysV (System V)+ init tem:

– um “nıvel de execucao” de monousuario

– varios nıveis de execucao de multiusuario+ determinam quais dos recursos do sistema estao habilitados

4.2 Os scripts de inicializacao

• scripts shell interpretados por sh

• Sistemas BSD

– scripts ficam em /etc/

– nomes comecam com rc (run command)

• Sistemas System V

– scripts ficam em /etc/init.d/

14

Page 15: Servi Dores Linux

Notas de

Aula- 20

11

FIAP - Uso

Intern

o

Prof

.Ale

xand

erL

uzSp

eran

dio

– ha links simbolicos para eles em /etc/rc0.d/, /etc/rc1.d/ e assimpor diante

Tarefas dos scripts

• configurar o nome do computador

• configurar o fuso horario

• verificar os discos com fsck

• montar os discos do sistema

• remover arquivos de /tmp/

• configurar interfaces de rede

• iniciar daemons e servicos de rede

Esses scripts nao devem ser alterados. Para isso as configuracoes dos servicosficam em arquivos de configuracao que os scripts consultam.

Exemplo:# ! / b i n / sh# s c r i p t p a r a i n i c i a r o c l i e n t e de s e r v i c o de DNS# dinamico p a r a no−i p . com#c a s e ” $1 ” i n

s t a r t )echo ” S t a r t i n g no ip . ”/ u s r / l o c a l / b i n / no ip

; ;s t o p )

echo −n ” S h u t t i n g down no ip . ”k i l l p r o c −TERM / u s r / l o c a l / b i n / no ip

; ;∗ )

echo ” Usage : $0 { s t a r t | s t o p }”e x i t 1

e s a ce x i t 0

4.3 init do System V

• sete nıveis de execucao (runlevels);+ cada um corresponde a um diretorio /etc/rc?.d/ com um conjunto par-ticular de servicos;

– Nıvel 0 - desliga o sistema;

– Nıvel 1 - modo monousuario;

15

Page 16: Servi Dores Linux

Notas de

Aula- 20

11

FIAP - Uso

Intern

o

Prof

.Ale

xand

erL

uzSp

eran

dio

– Nıveis 2 a 5 - nıveis multiusuario;

– Nıvel 6 - reinicializa o sistema.

• O runlevel padrao e definido em /etc/inittab7;$ grep ˆ i d / e t c / i n i t t a bi d : 2 : i n i t d e f a u l t :$

• runlevel - mostra o runlevel anterior e o atual;

• telinit N - troca para runlevel N.

4.4 Manipulando servicos

• scripts aceitam argumentos como:

– start - inicializa servico

– stop - derruba servico

– restart - mesmo que stop/start; reinicia servico

– reload - recarrega arquivo de configuracao

– ...

• Exemplos de comandos:/etc/init.d/script - mostra os argumentos possıveis;/etc/init.d/script start - inicia o servico;/etc/init.d/script stop - derruba o servico.

4.5 Administracao de runlevels

• links simbolicos (criados com ln -s)

• links iniciam com S ou K seguido de numero e nome do servico+ ex.: S91apache, K08vmware

– scripts sao executados em ordem numerica

– os que iniciam com S recebem o argumento start

– os que iniciam com K recebem o argumento stop

• ferramentas de adminstracao criam os links para iniciar ou derrubar os servicosem cada runlevel.

7O ubuntu utiliza o upstart[?] ao inves do arquivo /etc/inittab.

16

Page 17: Servi Dores Linux

Notas de

Aula- 20

11

FIAP - Uso

Intern

o

Prof

.Ale

xand

erL

uzSp

eran

dio

NOTA: para que um servico nao seja iniciado em determinado runlevel basta re-mover o link ou apenas renomea-lo usando a letra inicial minuscula.

Parte III

DHCP5 DHCP

5.1 Introducao

• Dynamic Host Configuration Protocol.

• permite que um host “alugue” parametros de rede e administrativos de umservidor;

• perıodo de locacao+ clientes devem renovar sua locacao periodicamente;

IntroducaoAlguns parametros de locacao:

• enderecos IP e mascaras de rede;

• gateways (rotas-padrao);

• servidores de nomes (DNS);

• hosts syslog;

• servidores WINS, servidores de fontes X, servidores proxy, servidores NTP;

• servidores TFTP (para carregar uma imagem de inicializacao;)

• ... (veja RFC 2132)8

5.2 Como funciona

Como funciona o DHCP

• BOOTP

– endereco IP, mascara, gateway

– informacoes de inicializacao do TFTP+ criado originalmente para permitir que estacoes de trabalho UNIXsem disco inicializassem.

8http://www.faqs.org/rfcs/

17

Page 18: Servi Dores Linux

Notas de

Aula- 20

11

FIAP - Uso

Intern

o

Prof

.Ale

xand

erL

uzSp

eran

dio

• DHCP

– generaliza os parametros que podem ser fornecidos– adiciona o conceito de “locacao” (lease)

Como funciona o DHCP

• cliente envia a mensagem DHCPDISCOVERIP destino 255.255.255.255, IP origem 0.0.0.0

• servidores respondem com mensagem DHCPOFFER+ com sugestao de endereco e outros parametros 9

• cliente recebe DHCPOFFER e aceita enviando mensagem DHCPREQUEST

• servidor responde com ACK e aloca endereco+ ou responde com NACK (negative acknowledgment) e o cliente devereiniciar o processo de descobrimento

• antes de usar endereco, cliente verifica sua utilizacao com ARP. Se o enderecoja esta em uso, cliente envia DHCPDECLINE e reinicia negociacoes

• cliente envia DHCPREQUEST para renovar a locacao e DHCPRELEASEpara desistir da locacao

DHCP logs# c l i e n td h c l i e n t : I n t e r n e t S o f t w a r e Consor t ium DHCP C l i e n t 2 . 0 p l 5d h c l i e n t : L i s t e n i n g on LPF / e t h 0 / 0 0 : e0 : 7 d : a2 : c4 : 3 3d h c l i e n t : Send ing on LPF / e t h 0 / 0 0 : e0 : 7 d : a2 : c4 : 3 3d h c l i e n t : DHCPREQUEST on e t h 0 t o 2 5 5 . 2 5 5 . 2 5 5 . 2 5 5 p o r td h c l i e n t : DHCPACK from 1 9 2 . 1 6 8 . 0 . 1

# s e r v e rdhcpd : DHCPDISCOVER from 0 0 : 0 6 : 1 b : dc : 9 a : 0 9 v i a e t h 1dhcpd : DHCPOFFER on 1 9 2 . 1 6 8 . 2 . 1 t o 0 0 : 0 6 : 1 b : dc : 9 a : 0 9 v i a e t h 1dhcpd : DHCPREQUEST f o r 1 9 2 . 1 6 8 . 2 . 1 from 0 0 : 0 6 : 1 b : dc : 9 a : 0 9 v i a e t h 1dhcpd : DHCPACK on 1 9 2 . 1 6 8 . 2 . 1 t o 0 0 : 0 6 : 1 b : dc : 9 a : 0 9 v i a e t h 1

6 Laboratorio 1 - Servidor DHCP

6.1 Passo1 - Instalacao do servidor DHCP

Utilize as ferramentas da distribuicao em uso para instalar o servidor DHCP doISC - pacote dhcp3-server.

aptitude updateaptitude install dhcp3-server

9servidores em uma subrede diferente recebem por meio de um relayagent (agente de retrans-missao)

18

Page 19: Servi Dores Linux

Notas de

Aula- 20

11

FIAP - Uso

Intern

o

Prof

.Ale

xand

erL

uzSp

eran

dio

6.2 Passo2 - Configuracao do servidor DHCP

6.2.1 Dados da configuracao

1. Qual a rede a ser configurada (subnet)?

2. Qual a interface nessa rede?

3. Qual o intervalo de IPs a ser distribuıdo (range)?

4. Qual o gateway a ser distribuıdo (Option routers)?

5. Quais os IPs dos servidores DNS ((Option domain-name-servers))?

6.2.2 Arquivo dhcpd.conf

Para configurar o servidor DHCP e conveniente comecarmos em um arquivovazio:

cp /etc/dhcp3/dhcpd.conf /etc/dhcp3/dhcpd.conf.origcat /dev/null > /etc/dhcp3/dhcpd.conf

Utilize seu editor preferido e inicie a configuracao do servidor DHCP. Um re-sumo dos comandos do vi (pacote vim) e fornecido ao final do roteiro.

ddns-update-style none;

option domain-name-servers 145.253.2.75, 193.174.32.18;

default-lease-time 86400;max-lease-time 604800;

authoritative;

subnet 192.168.0.0 netmask 255.255.255.0 {range 192.168.0.200 192.168.0.229;option subnet-mask 255.255.255.0;option routers 192.168.0.1;

}

• ddns-update-style none; - o sevidor DHCP pode atualizar o servidorDNS se o endereco IP de um servidor na LAN foi mudado.

No entanto, por nao ser recomendada a utilizacao de servidores com IPdinamico, esse parametro deve ser none;

• option domain-name-servers - diz ao servidor DHCP quais servidoresDNS atribuir aos clientes. Mais de um servidor DNS pode ser indicado,separados por vırgulas.

19

Page 20: Servi Dores Linux

Notasde

Aula

-2011

FIAP

-UsoInterno

Prof

.Al

exan

der

Luz

Sper

andi

o

• default-lease-time, max-lease-time - o cliente DHCP pode requisi-tar a configuracao por um tempo determinado. Se nao fizer isso, o servi-dor atribui a configuracao de rede por default-lease-time segundos, se ofizer, recebera a configuracao por no maximo max-lease-time segundos;

• authoritative - A versao 3 do servidor DHCP e nao-autoritaria por padrao.

Isso significa que se um cliente requisita um endereco que o servidor naosabe nada a respeito e o endereco esta incorreto para aquele segmento derede, o servidor NAO enviara um DHCPNAK (que diz ao cliente que omesmo deveria parar de usar o endereco).

Para mudar esse comportamento deve-se indicar no arquivo dhcpd.conf emquais segmentos de rede o servidor DHCP sera autoritario, usando a diretivaauthoritative;

• subnet - a subrede a ser utilizada;

• range - intervalo de enderecos IP que serao atribuıdos aos clientes;

• option subnet-mask - a mascara de rede a ser utilizada;

• option routers - endereco do gateway que sera atribuıdo aos clientes.

6.2.3 Arquivo /etc/default/dhcp3-server

E preciso atribuir uma interface ao servidor DHCP para ter o servico funcio-nando. A interface e atribuıda no arquivo /etc/default/dhcp3-server.

INTERFACES="eth0 eth1"

6.3 Passo3 - Configuracao do cliente DHCP

Ha tres diferentes clientes DHCP disponıveis nas distribuicoes GNU/Linux:dhcpcd, pump e dhclient (pacote dhcp3-client - ISC, no Debian).

Instale o pacote dhcp3-client. O arquivo de configuracao do cliente DHCPdo ISC fica em /etc/dhcp3/dhclient.conf.

Usualmente, a configuracao padrao do cliente DHCP e suficiente para seu fun-cionamento. Nao modificaremos esse arquivo.

6.3.1 Configuracao de rede

O arquivo de configuracao de rede do Debian e o /etc/network/interfaces.Faca a configuracao para a utilizacao de configuracao dinamica na interface com oservidor DHCP.

20

Page 21: Servi Dores Linux

Notas de

Aula- 20

11

FIAP - Uso

Intern

o

Prof

.Ale

xand

erL

uzSp

eran

dio

# The loopback network interfaceauto loiface lo inet loopback

# The primary network interfaceauto eth0iface eth0 inet dhcp

6.4 Passo4 - Verificacao do funcionamento do servidor DHCP

Os arquivos /var/log/syslog e /var/lib/dhcp3/dhcpd.leases podem serverificados no servidor.

tail -f /var/log/syslogcat /var/lib/dhcp3/dhcpd.leases

No lado do cliente, verifique o mesmo arquivo de log e o arquivo /var/lib/dhcp3/dhclient.leasese /var/lib/dhcp3/dhclient.eth0.leases.

7 Laboratorio 2 - vde2, qemu e DHCP

O pacote vde2 permite a criacao de um switch virtual para a conexao de variasmaquinas qemu.

Neste laboratorio, vamos instalar o pacote vde2 e testar a configuracao denosso servidor DHCP com varias maquinas conectadas em nosso switch virtual.

7.1 Passo 1 - Instalacao do qemu e vde2

Note o sımbolo # antes dos comandos. Significa que o comando deve ser ex-ecutado como root. Quando utilizado o sımbolo $, o comando deve ser executadopelo usuario.

# aptitude install kqemu-common kqemu-source module-assistant# aptitude install qemu vde2

7.2 Passo 2 - Criacao do switch

O comando abaixo deve ser executado pelo root. Criara um switch virtual em/tmp/vde1 com uma interface tap0 para conexao com o host.

# vde_switch -d -s /tmp/vde1 -tap tap0 -m 666 -daemon

21

Page 22: Servi Dores Linux

Notas de

Aula- 20

11

FIAP - Uso

Intern

o

Prof

.Ale

xand

erL

uzSp

eran

dio

7.3 Passo 3 - Maquinas qemu

Os scripts serverA.sh e serverX.sh utilizam o comando abaixo para levantarduas maquinas virtuais a partir da imagens indicadas nos scripts (uma maquinaDebian, versao 5 e uma CentOS, versao 5.5).

Cada uma com um endereco MAC diferente, para que se comuniquem atravesdo switch virtual. Execute os scripts acima para obter as maquinas rodando.

$ vdeqemu -m 128 -hda debian5.img -boot c -net nic,macaddr=00:11:22:33:44:50-net vde,sock=/tmp/vde1 -snapshot

Se necessario, faca a configuracao manual do IP das maquinas virtuais que foramlevantadas e veja que elas conseguem se comunicar entre si (teste com ping).

7.4 Passo 4 - Configuracao do servidor DHCP e clientes

Faca a configuracao do servidor DHCP com visto no lab1-DHCP.Desta vez a interface tap0 e livre e deve ser configurada manualmente por voce

com a rede que voce escolher. Responda as perguntas do lab1-DHCP de acordocom suas escolhas para a interface tap0.

7.4.1 Verificando o servidor

• o comando netstat -na mostrara a porta udp 67 do servidor DHCP;

• o comando dhclient pode ser usado, como root, no cliente, para a obtencaoda configuracao via DHCP;

• no servidor, o arquivo de leases pode ser visto em /var/lib/dhcpd/dhcpd.leases;

• no cliente, o arquivo de leases se encontra em /var/lib/dhcp3/dhclient.leases.

7.5 Passo 5 - IP fixo para um servidor da rede

Faca a configuracao de IP fixo como demonstrado no exemplo abaixo, para umdos clientes das maquinas virtuais.

O endereco IP deve estar fora do intervalo distribuıdo anteriormente.

host fantasia {hardware ethernet 08:00:07:26:c0:a5;fixed-address 192.268.10.11;

}

Nesse cliente, renove o IP e confira o resultado.

22

Page 23: Servi Dores Linux

Notas de

Aula- 20

11

FIAP - Uso

Intern

o

Prof

.Ale

xand

erL

uzSp

eran

dio

Referencias

[1] Nemeth, E, Snyder, G, Hein, T.R., Manual Completo do Linux - Guia doAdministrador. 2a. edicao. Pearson. Sao Paulo. 2007. cap. 12, p.217-219;

[2] Timme, Falko. How To Set Up A DHCP Server For Your LAN. Disponıvelem: http://www.howtoforge.com/dhcp_server_linux_debian_sarge.Acesso em: 26 ago. 2009.

[3] Vuksan, Vladimir. DHCP mini-HOWTO. Disponıvel em: http://www.tldp.org/HOWTO/DHCP/index.html. Acesso em: 05 jan. 2004.

[4] Lemon, Ted. dhcpd.conf.5 - pagina de manual. Disponıvel em: http://www.bind9.net/dhcpd.conf.5. Acesso em: 28 ago. 2009.

Parte IV

DNS8 DNS - Domain Name System

8.1 Introducao

Historico

• inıcio da internet: ARPANET+ do U.S. Department of Defense

• usavam mapeamento entre nomes e enderecos em um arquivo texto+ HOSTS.TXT ê /etc/hosts+ serve para uma rede pequena, mas nao para uma crescente ARPANET

• DNS - Domain Name System

– RFCs 1034, 1035 (1987)+ especificacao basica do DNS(modificada depois por varias outras RFCs)

O DNS define:

• um espaco de nomes hierarquico para hosts e enderecos IP;

• uma tabela de hosts implementada como uma base de dados distribuıda;

• um resolvedor (“resolver”) - rotinas de biblioteca que consultam essa basede dados;

23

Page 24: Servi Dores Linux

Notas de

Aula- 20

11

FIAP - Uso

Intern

o

Prof

.Ale

xand

erL

uzSp

eran

dio

8.2 O espaco de nomes do DNS

• o espaco de nomes e uma arvore de “domınios”

• “ ” (null) e a raiz da arvore+ em texto, representado por “.” (ponto)+ abaixo dela estao os domınios de primeiro nıvel(ou “nıvel raiz”)

• Ha uma similaridade com o sistema de arquivos UNIX

– www.empresa.com.br + br ê com ê empresa ê www

– /usr/local/bin + /usr/ ê local/ ê bin/

• UNIX: diretorios ê subdiretorios e arquivos

• DNS: domınios ê subdomınios e hosts

8.2.1 TLDs - Top Level Domains

• Duas classificacoes de nomes de domınio, de primeiro nıvel, sao usadas10:

• gTLDs - Generic Top Level Domains11

– originalmente descreviam estrutura polıtica e organizacional nos EUA

– .com, .edu, .net, .gov, .mil,.., .arpa

• ccTLDs - Country Code Top Level Domains12

– codigo de duas letras ISO para o paıs

10http://www.fapesp.org/oque_e.htm11http://en.wikipedia.org/wiki/Generic_top-level_domain12http://en.wikipedia.org/wiki/Country_code_top-level_domain

24

Page 25: Servi Dores Linux

Notas de

Aula- 20

11

FIAP - Uso

Intern

o

Prof

.Ale

xand

erL

uzSp

eran

dio

– paıses criam uma arquitetura organizacional com domınios de segundonıvel

– ex.: .br, .fr, .com.br, .co.uk, ...

8.2.2 Registro de domınio

• Autoridades de domınio de primeiro nıvel

• registrar um nome de segundo nıvel de domınio

– Brasil: http://registro.br/+ Comite Gestor da Internet no Brasil - http://www.cgi.br/

– EUA: http://www.icann.org/

– Europa: https://www.centr.org/

– ASIA/Pacıfico: http://www.apnic.net/

• Domınios de DNS “devem” (RFC 1219) ser servidos por pelo menos doisservidores

• Nomes de domınio- DNS permite 63 caracteres em cada componente- 255 caracteres em um nome completo

9 O software BIND

• versoes: BIND 4, BIND 8 e BIND 9+ BIND - Berkeley Internet Name Domain

• Desenvolvido pelo ISC - http://www.isc.org/software/bind+ Unix, Linux, Windows (NT4, 2000)+ pacote bind nas distribuicoes do Linux

• Para descobir a sua versao

> d i g @ l o c a l h o s t v e r s i o n . b ind t x t chaosv e r s i o n . b ind . 0 CH TXT ” 9 . 2 . 4 ”

> g rep named / v a r / l o g / s y s l o gAug 24 1 5 : 1 8 : 5 6 l o c a l h o s t named [ 4 6 5 8 ] : s t a r t i n g BIND 9 . 2 . 4 −u b indAug 24 1 5 : 1 8 : 5 6 l o c a l h o s t named [ 4 6 5 8 ] : u s i n g 1 CPU

25

Page 26: Servi Dores Linux

Notas de

Aula- 20

11

FIAP - Uso

Intern

o

Prof

.Ale

xand

erL

uzSp

eran

dio

9.1 Componentes do BIND

• o daemon named que responde a consultas;+ o “servidor de nomes”

• rotinas de biblioteca que resolvem consultas de host entrando em contatocom servidores DNS;+ o “resolvedor (resolver)”

• interfaces de linha de comando para DNS:+ nslookup, dig e host.

9.2 Configuracao do BIND

9.2.1 Servidor cache

• armazena em cache os dados de consultas previas+ normalmente nao tem zonas locais

• reduz significativamente o tempo de espera+ especialmente em conexoes lentas

• normalmente, basta iniciar o servidor named

– /etc/init.d/bind9 start

– tail /var/log/messages+ para detectar erros de configuracao

– incluir a linha abaixo em /etc/resolv.conf

# / e t c / r e s o l v . con fn a m e s e r v e r 1 2 7 . 0 . 0 . 1

Forwarding

• configuracao de uma “forwarder hierarchy”

• o servidor de nomes repassa os pedidos para outro servidor+ ex.: o servidor DNS do seu provedor (ISP)

• inclua na secao “options” do arquivo /etc/named.conf

f o r w a r d e r s {1 0 . 0 . 0 . 1 ;1 0 . 0 . 0 . 2 ;

} ;

26

Page 27: Servi Dores Linux

Notas de

Aula- 20

11

FIAP - Uso

Intern

o

Prof

.Ale

xand

erL

uzSp

eran

dio

9.3 Arquivos de configuracao

• /etc/bind/named.conf+ arquivo de configuracao

• db.root ou root.hints, ...+ arquivo de dicas, contem os servidores raiz

• para servidores mestre: arquivos de dados de zona+ contem os mapeamentos de enderecos de cada host

• named.conf tem formato proprio; todos os outros tem formatos de acordocom a especificacao do DNS.

Configuracao de um servidor cache/ / Conf ig f i l e f o r c a c h i n g on ly name s e r v e r/ // / O p t i o n s e s p e c i f i c a as opcoes g l o b a i s . Ha mais de 50 no b ind 9 ./ / man named . con f p a r a mais i n f o r m a c o e s

o p t i o n s {

/ / Nomes de caminhos r e l a t i v o s nos a r q u i v o s de c o n f i g u r a c a o , sao/ / i n t e r p r e t a d o s em r e l a c a o a e s s e d i r e t o r i o .

d i r e c t o r y ” / v a r / named ” ;v e r s i o n ” ” ;

} ;

/ / f o r n e c e ao s e r v i d o r o conhec imen to dos s e r v i d o r e s r a i zzone ” . ” {

t y p e h i n t ;f i l e ” r o o t . h i n t s ” ;

} ;

/ / Fo rnece mapeamento r e v e r s o p a r a o e n d e r e c o de l o o p b a c kzone ” 0 . 0 . 1 2 7 . in−add r . a r p a ” {

t y p e m a s t e r ;f i l e ” pz / l o c a l h o s t . r e v ” ;

} ;

DNS primario e secundario

• DNS primario (Primary Master)

– servidor com autoridade aonde os dados de zona sao mantidos

– carrega a zona de um arquivo local

• DNS secundario (escravo - Slave Servers)

– servidor com autoridade que carrega a zona de outro servidor

– processo conhecido como “zone transfer”

• Exemplo de configuracao para um authoritative-only server+ master server para ”example.com”+ slave (escravo) para o subdominio ”eng.example.com”.

27

Page 28: Servi Dores Linux

Notas de

Aula- 20

11

FIAP - Uso

Intern

o

Prof

.Ale

xand

erL

uzSp

eran

dio

Servidor com autoridade/ / Duas r e d e s de onde q u e r i e s sao p e r m i t i d o sa c l ” l a b s ” { 1 0 . 1 . 1 . 0 / 2 6 ; 1 0 . 1 . 2 . 0 / 2 6 ; } ;o p t i o n s {

d i r e c t o r y ” / e t c / namedb ” ; / / D i r e t o r i o de t r a b a l h oa l low−query { l a b s ; } ;

} ;/ / Root s e r v e r h i n t szone ” . ” { t y p e h i n t ; f i l e ” r o o t . h i n t ” ; } ;/ / P r o v i d e a r e v e r s e mapping f o r t h e l o o p b a c k a d d r e s s 1 2 7 . 0 . 0 . 1zone ” 0 . 0 . 1 2 7 . in−add r . a r p a ” {

t y p e m a s t e r ;f i l e ” l o c a l h o s t . r e v ” ;

} ;/ / We a r e t h e m a s t e r s e r v e r f o r example . comzone ” example . com” {

t y p e m a s t e r ;f i l e ” example . com . db ” ;/ / I P s de s e r v i d o r e s e s c r a v o s p e r m i t i d o s a t r a n s f e r i r example . comal low− t r a n s f e r {

1 9 2 . 1 6 8 . 4 . 1 4 ; 1 9 2 . 1 6 8 . 5 . 5 3 ; } ;} ;/ / Somos um s e r v i d o r e s c r a v o ( s e c u n d a r i o ) p a r a eng . example . comzone ” eng . example . com” {

t y p e s l a v e ;f i l e ” eng . example . com . bk ” ;/ / IP a d d r e s s o f eng . example . com m a s t e r s e r v e rm a s t e r s { 1 9 2 . 1 6 8 . 4 . 1 2 ; } ;

} ;

10 Arquivos de zona

• banco de dados distribuıdo do DNS

• Mantido pelo administrador de sistemas+ servidor de nomes mestre do domınio.

• Contem dois tipos de entrada

– registros de recursos

– comandos

10.1 Registros de Recursos - RRs

• Formato basico:+ [nome] [ttl] [classe] tipo dados

• Campos separados por espacos ou TABs e podem conter:

– ; - introduz um comentario;

– Caractere arroba - nome da zona atual;

– ( ) - permite que os dados se estendam sobre linhas;

– * - caractere coringa (somente para o campo nome).

28

Page 29: Servi Dores Linux

Notas de

Aula- 20

11

FIAP - Uso

Intern

o

Prof

.Ale

xand

erL

uzSp

eran

dio

10.1.1 Campo nome

• host ou domınio descrito pelo registro;+ primeira coluna+ apos o primeiro, pode ser omitido => iniciar com espaco

• pode ser relativo ou absoluto+ absolutos terminam com ponto, sao completos+ relativos sao adicionados ao domınio

• Cuidado:

– domınio: empresa.com. nome: www => www.empresa.com.

– nome: www.empresa.com => www.empresa.com.empresa.com.

10.1.2 Campo ttl (time to live)

• tempo que o item de dados pode ficar armazenado em cache (s)

• normalmente, omitido+ exceto no arquivo hints (arquivo de dicas)

• diretiva $TTL no inıcio do arquivo de zona+ obrigatoria no BIND9

– valores altos economizam banda e a carga no DNS

– valores baixos permitem mudanca rapida

10.1.3 Campo classe

• 3 valores:

– IN de Internet (padrao)

– HS de Hesiod (MIT)

– CH de ChaosNet (obsoleto)

• 2 informacoes sao guardadas na rede ChaosNet:

– versao do software do servidor DNS

– nome do host onde esta executando

29

Page 30: Servi Dores Linux

Notas de

Aula- 20

11

FIAP - Uso

Intern

o

Prof

.Ale

xand

erL

uzSp

eran

dio

10.1.4 Campo tipo

• Muitos tipos de registros DNS

• 4 grupos:

– Registros de zona - identificam domınios e seus servidores de nomes;

– Registros basicos - associam nomes a enderecos e encaminham email;

– Registros de seguranca - autenticacao e assinaturas nos arquivos dezonas;

– Registros opcionais - informacoes adicionais sobre hosts ou domınios.

tipos de registros comuns:Registros de zona

• SOA - Start Of Authority - Define uma zona DNS

• NS - Name Server - Identifica servidores de zonas, delega subdomıniosRegistros basicos

• A - IPV4 address - Conversao de nome para endereco

• AAAA - IPV6 address - Conversao de nome para endereco

• PTR - Pointer - Conversao de endereco para nome

• MX - Mail Exchanger - Controla o roteamento de email

Registros de seguranca:

• DS - Delegation Signer - Hash da chave de assinatura de chave da zonafilha assinada

• DNSKEY - Public Key - Chave publica para um nome DNS

• NSEC - Next Secure - Usado com DNSSEC para respostas negativas

• RRSIG - Signature - Conjunto de registros de recursos assinados e auten-ticados

Registros opcionais:

• CNAME - Canonical Name - Apelido ou aliases para um host

• LOC - Location - Localizacao e extensao geografica

• SRV - Services - Fornece as localizacoes de servicos bem conhecidos

• TXT - Text - Comentarios ou informacoes nao transcritas

30

Page 31: Servi Dores Linux

Notas de

Aula- 20

11

FIAP - Uso

Intern

o

Prof

.Ale

xand

erL

uzSp

eran

dio

10.2 Comandos em arquivos de zonas

• Devem comecar na primeira coluna e ocupar linha exclusiva

• Ha quatro comandos:

– $ORIGIN nomeDeDomınio

– $INCLUDE nomeDeArquivo

– $TTL padraottl

– $GENERATE inıcio-fim/[passo] lhs tipo rhs [comentario]

• $ORIGIN e $TTL sao especificados nas RFCs

• $INCLUDE e $GENERATE tem origem no BIND

11 Exercıcios

1. Para que serve o BIND?

2. De o caminho e o nome do arquivo de configuracao do servidor de nomes doBIND9.

3. Descreva o que fazem as linhas abaixo, na secao options do arquivo deconfiguracao do BIND:

(a) directory "/var/cache/bind";

(b) forwarders {201.6.0.100; 201.6.0.35; };

(c) listen-on { 127.0.0.1; 172.20.0.1; };

4. Para cada trecho de configuracao abaixo, descreva para que serve e em qualarquivo ou diretorio ele pode ser encontrado.

(a) zone "." {type hint;file "/etc/bind/db.root";};

(b) zone "linux.bogus" {type master;notify no;file "/etc/bind/linux.bogus";};

5. Sobre o arquivo de configuracao de zona mostrado abaixo, responda o que epedido:

$TTL 1W@ IN SOA @ root (

42 ; serial (d. adams)2D ; refresh4H ; retry6W ; expiry1W ) ; minimum

IN NS @IN A 127.0.0.1

31

Page 32: Servi Dores Linux

Notas de

Aula- 20

11

FIAP - Uso

Intern

o

Prof

.Ale

xand

erL

uzSp

eran

dio

(a) Indique a zona para a qual esse arquivo foi definido.

(b) Escreva o significado do arroba, utilizado em varios pontos do arquivo.

(c) Escreva as linhas do arquivo /etc/named.conf que definem a zonapara esse arquivo.

(d) Escreva as linhas do arquivo /etc/named.conf que definem a zonareversa.

(e) Escreva o arquivo de zona, referente a zona reversa escrita no itemanterior.

(f) Escreva o significado da linha: $TTL 1W

(g) Para que serve e qual o significado de cada um dos valores informadosentre parenteses, no registro SOA?

6. Escreva o arquivo de zona para a zona “exercicio.com”, definida na configuracaodo servidor bind9. Defina as maquinas:

• pintado (servidor de nomes) com IP 200.146.79.162;

• pescada (servidor de email) com IP 200.146.79.163;

• tainha (servidor web) com IP 200.146.79.164;

• www como CNAME do host tainha.

Continue a partir das linhas abaixo:

$TTL 4D@ IN SOA pintado.exercicio.com. hostmaster.exercicio.com. (2006091801 3H 15M 1W 1D ; H - Hora, M - Minuto, W - Week, D - Dia)

12 lab1: Resolucao de nomes DNS

12.1 Objetivos

- Entender como o DNS funciona - Aprender sobre o utilitario dig

12.2 Introducao

Na busca por uma maquina, a requisicao seque recursivamente dentro da hier-arquia do DNS, comecando pela raiz (.).

Para encontrar o endereco da maquina prep.ai.mit.edu, o servidor de nomestem que comecar em algum lugar.

Seu servidor nao conhece nada sobre ai.mit.edu., mit.edu. ou edu.. Se oendereco nao existe no cache, a busca deve comecar pela raiz.

Os servidores raiz nao respondem diretamente a consulta, ao inves disso, fornecemuma referencia de onde a resposta pode ser encontrada. Essa referencia (referral)deve levar o seu servidor a um servidor que sabe a resposta.

32

Page 33: Servi Dores Linux

Notas de

Aula- 20

11

FIAP - Uso

Intern

o

Prof

.Ale

xand

erL

uzSp

eran

dio

Vamos usar o comando dig para fazer a busca, usando a opcao +norec - semrecursividade - assim, nos fazemos esse trabalho. As outras opcoes sao para reduzira quantidade de informacoes na saıda de dig.

12.3 Atividade

1 - use o comando dig . ns para procurar pelos root servers;E possıvel perguntar diretamente a um dos servidores raiz: dig @f.root-servers.net. ns

Os root servers sao carregados no cache do seu servidor DNS atraves de umarquivo. De uma olhada no arquivo named.conf.> d i g . ns

; <<>> DiG 9 . 2 . 4 <<>> . ns; ; g l o b a l o p t i o n s : p r i n t c m d; ; Got answer :; ; −>>HEADER<<− opcode : QUERY, s t a t u s : NOERROR, i d : 32294; ; f l a g s : q r rd r a ; QUERY: 1 , ANSWER: 13 , AUTHORITY: 0 , ADDITIONAL : 10

; ; QUESTION SECTION :; . IN NS

; ; ANSWER SECTION :. 517302 IN NS M.ROOT−SERVERS . NET .. 517302 IN NS A.ROOT−SERVERS . NET .. 517302 IN NS B .ROOT−SERVERS . NET .. 517302 IN NS C .ROOT−SERVERS . NET .. 517302 IN NS D.ROOT−SERVERS . NET .. 517302 IN NS E .ROOT−SERVERS . NET .. 517302 IN NS F .ROOT−SERVERS . NET .. 517302 IN NS G.ROOT−SERVERS . NET .. 517302 IN NS H.ROOT−SERVERS . NET .. 517302 IN NS I .ROOT−SERVERS . NET .. 517302 IN NS J .ROOT−SERVERS . NET .. 517302 IN NS K.ROOT−SERVERS . NET .. 517302 IN NS L .ROOT−SERVERS . NET .

; ; ADDITIONAL SECTION :B .ROOT−SERVERS . NET . 603702 IN A 1 9 2 . 2 2 8 . 7 9 . 2 0 1C .ROOT−SERVERS . NET . 603702 IN A 1 9 2 . 3 3 . 4 . 1 2D.ROOT−SERVERS . NET . 603702 IN A 1 2 8 . 8 . 1 0 . 9 0E .ROOT−SERVERS . NET . 603702 IN A 1 9 2 . 2 0 3 . 2 3 0 . 1 0F .ROOT−SERVERS . NET . 604539 IN A 1 9 2 . 5 . 5 . 2 4 1G.ROOT−SERVERS . NET . 603702 IN A 1 9 2 . 1 1 2 . 3 6 . 4H.ROOT−SERVERS . NET . 603702 IN A 1 2 8 . 6 3 . 2 . 5 3I .ROOT−SERVERS . NET . 603702 IN A 1 9 2 . 3 6 . 1 4 8 . 1 7L .ROOT−SERVERS . NET . 603702 IN A 1 9 8 . 3 2 . 6 4 . 1 2M.ROOT−SERVERS . NET . 603702 IN A 2 0 2 . 1 2 . 2 7 . 3 3

; ; Query t ime : 0 msec; ; SERVER : 1 2 7 . 0 . 0 . 1 # 5 3 ( 1 2 7 . 0 . 0 . 1 ); ; WHEN: Mon Sep 11 1 4 : 2 3 : 3 0 2006; ; MSG SIZE rcvd : 388

2 - Escolha um dos root servers e comecamos a busca.> d i g + n o r e c + noques + n o s t a t s +nocmd prep . a i . mi t . edu . @d. r o o t−s e r v e r s . n e t .

33

Page 34: Servi Dores Linux

Notas de

Aula- 20

11

FIAP - Uso

Intern

o

Prof

.Ale

xand

erL

uzSp

eran

dio

; ; Got answer :; ; −>>HEADER<<− opcode : QUERY, s t a t u s : NOERROR, i d : 50054; ; f l a g s : q r ; QUERY: 1 , ANSWER: 0 , AUTHORITY: 8 , ADDITIONAL : 8

; ; AUTHORITY SECTION :edu . 172800 IN NS L3 . NSTLD .COM.edu . 172800 IN NS D3 . NSTLD .COM.edu . 172800 IN NS A3 . NSTLD .COM.edu . 172800 IN NS E3 . NSTLD .COM.edu . 172800 IN NS C3 . NSTLD .COM.edu . 172800 IN NS G3 . NSTLD .COM.edu . 172800 IN NS M3. NSTLD .COM.edu . 172800 IN NS H3 . NSTLD .COM.

; ; ADDITIONAL SECTION :L3 . NSTLD .COM. 172800 IN A 1 9 2 . 4 1 . 1 6 2 . 3 2D3 . NSTLD .COM. 172800 IN A 1 9 2 . 3 1 . 8 0 . 3 2A3 . NSTLD .COM. 172800 IN A 1 9 2 . 5 . 6 . 3 2E3 . NSTLD .COM. 172800 IN A 1 9 2 . 1 2 . 9 4 . 3 2C3 . NSTLD .COM. 172800 IN A 1 9 2 . 2 6 . 9 2 . 3 2G3 . NSTLD .COM. 172800 IN A 1 9 2 . 4 2 . 9 3 . 3 2M3. NSTLD .COM. 172800 IN A 1 9 2 . 5 5 . 8 3 . 3 2H3 . NSTLD .COM. 172800 IN A 1 9 2 . 5 4 . 1 1 2 . 3 2

Isso e uma referencia. Obtivemos uma “Authority Section” e nenhuma “An-swer Section”. Obtivemos as autoridades do domınio edu.

3 - Escolha um outra vez.> d i g + n o r e c + noques + n o s t a t s +nocmd prep . a i . mi t . edu . @e3 . n s t l d . com .

; ; Got answer :; ; −>>HEADER<<− opcode : QUERY, s t a t u s : NOERROR, i d : 27952; ; f l a g s : q r ; QUERY: 1 , ANSWER: 0 , AUTHORITY: 3 , ADDITIONAL : 3

; ; AUTHORITY SECTION :mi t . edu . 172800 IN NS W20NS . mi t . edu .mi t . edu . 172800 IN NS STRAWB. mi t . edu .mi t . edu . 172800 IN NS BITSY . mi t . edu .

; ; ADDITIONAL SECTION :BITSY . mi t . edu . 172800 IN A 1 8 . 7 2 . 0 . 3W20NS . mi t . edu . 172800 IN A 1 8 . 7 0 . 0 . 1 6 0STRAWB. mi t . edu . 172800 IN A 1 8 . 7 1 . 0 . 1 5 1

Agora ele nos refere aos servidores no domınio mit.edu. Escolha um.> d i g + n o r e c + noques + n o s t a t s +nocmd prep . a i . mi t . edu . @bitsy . mi t . edu .

; ; Got answer :; ; −>>HEADER<<− opcode : QUERY, s t a t u s : NOERROR, i d : 5949; ; f l a g s : q r r a ; QUERY: 1 , ANSWER: 0 , AUTHORITY: 4 , ADDITIONAL : 4

; ; AUTHORITY SECTION :a i . mi t . edu . 21600 IN NS FEDEX . a i . mi t . edu .a i . mi t . edu . 21600 IN NS LIFE . a i . mi t . edu .a i . mi t . edu . 21600 IN NS MINTAKA. LCS . mi t . edu .a i . mi t . edu . 21600 IN NS OSSIPEE . LCS . mi t . edu .

; ; ADDITIONAL SECTION :FEDEX . a i . mi t . edu . 21600 IN A 1 9 2 . 1 4 8 . 2 5 2 . 2 8LIFE . a i . mi t . edu . 21600 IN A 1 2 8 . 5 2 . 3 2 . 8 0

34

Page 35: Servi Dores Linux

Notas de

Aula- 20

11

FIAP - Uso

Intern

o

Prof

.Ale

xand

erL

uzSp

eran

dio

MINTAKA. LCS . mi t . edu . 21600 IN A 1 8 . 2 6 . 0 . 3 6OSSIPEE . LCS . mi t . edu . 21600 IN A 1 8 . 2 6 . 0 . 1 8

Agora devemos obter uma resposta (Answer Section).4 - Escolha um dos servidores que tem autoridade sobre o domınio ai.mit.edu

> d i g + n o r e c + noques + n o s t a t s +nocmd prep . a i . mi t . edu . @l i f e . a i . mi t . edu .

; ; Got answer :; ; −>>HEADER<<− opcode : QUERY, s t a t u s : NOERROR, i d : 17192; ; f l a g s : q r aa ; QUERY: 1 , ANSWER: 1 , AUTHORITY: 0 , ADDITIONAL : 0

; ; ANSWER SECTION :p rep . a i . mi t . edu . 1800 IN CNAME f t p . gnu . o rg .

5 - Experimente o comando dig +trace prep.ai.mit.edu

13 lab2: Servidor Primario e Secundario

13.1 Objetivos

- Definir nosso proprio domınio usando named

13.2 Criacao de um domınio

Vamos definir o domınio linux.bogus.

1 - Ja existe algo parecido com o texto abaixo em named.conf

zone "127.in-addr.arpa" {type master;file "/etc/bind/db.127";

};

O que significa:

• - Definiremos a zona 127.in-addr.arpa;

• - Somos o servidor master para ela;

• - A zona esta armazenada em /etc/bind/db.127.

2 - Vamos editar o arquivo /etc/bind/db.127

;; BIND reverse data file for local loopback interface;$TTL 3D@ IN SOA ns.linux.bogus. root.linux.bogus. (

1 ; Serial8h ; Refresh2H ; Retry4D ; Expire1D ) ; Minimum TTL

;NS ns.linux.bogus.

1.0.0 PTR localhost.

35

Page 36: Servi Dores Linux

Notas de

Aula- 20

11

FIAP - Uso

Intern

o

Prof

.Ale

xand

erL

uzSp

eran

dio

• Note o ’.’ ao final de todos os domınios completos e a sua inexistencia emnamed.conf

• Ha 3 registros de recursos (RRs - Resource Records): SOA, NS e PTR

– SOA - Start of Authority

– NS - Name Server

– PTR - Domain Name Pointer - diz que o host 127.0.0.1 tem nome lo-calhost

• $TTL 3DO servidor fornece essa TTL (Time To Live) em respostas a queries, per-mitindo a outros servidores manter os dados em cache por esse intervalo;

• @ IN SOA ns.linux.bogus. root.linux.bogus.- ’@’ e uma notacao especial, significando origem; se refere a 127.in-addr.arpa.- o domınio definido em named.conf, no item zoneDiz ao DNS que maquina e o servidor de nomes do domınio 127.in-addr.arpa,e ns.linux.bogus;- root.linux.bogus significa [email protected] - o email do administrador;

3 - Agora reinicie named (rndc reload deve resolver) e vamos usar o comandodig, para examinar nosso trabalho. A opcao -x, no comanodo dig faz uma consultaa zona reversa.

> dig -x 127.0.0.1

;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12545;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:;1.0.0.127.in-addr.arpa. IN PTR

;; ANSWER SECTION:1.0.0.127.in-addr.arpa. 259200 IN PTR localhost.

;; AUTHORITY SECTION:127.in-addr.arpa. 259200 IN NS ns.linux.bogus.

;; Query time: 2 msec;; SERVER: 127.0.0.1#53(127.0.0.1);; WHEN: Wed Sep 13 03:02:39 2006;; MSG SIZE rcvd: 91

4 - Agora vamos a nossa tarefa principal, o domınio linux.bogus. Vamosinserir uma nova secao “zone” em named.conf.

zone "linux.bogus" {type master;notify no;file "/etc/bind/linux.bogus";

};

36

Page 37: Servi Dores Linux

Notas de

Aula- 20

11

FIAP - Uso

Intern

o

Prof

.Ale

xand

erL

uzSp

eran

dio

- notify - permite aos servidores mestre (primario) notificar seus escravos (se-cundario) de mudancas em dados de zona. Por padrao yes.

5 - Agora o arquivo de zona:

; Zone file for linux.bogus;; The full zone file;$TTL 3D@ IN SOA ns.linux.bogus. hostmaster.linux.bogus. (

199802151 ; serial, todays date +; todays serial #

8H ; refresh, seconds2H ; retry, seconds4W ; expire, seconds1D ) ; minimum, seconds

;NS ns ; Inet Address of name serverMX 10 mail.linux.bogus. ; Primary Mail ExchangerMX 20 mail.friend.bogus. ; Secondary Mail Exchanger

;ns A 192.168.196.2mail A 192.168.196.4

• no registo SOA, ns.linux.bogus deve ser uma maquina com um registroA. Seu nome nao precisa ser ns, poderia ser qualquer outro hostname;

• Ha um novo RR nesse arquivo: MX (Mail Exchanger - indica um hostnameque ira agir como servidor de email para o domınio. O numero antes donome e a prioridade, menor e mais prioritario.)

5 - reload named e examine os resultados com dig:

> dig any linux.bogus.

; <<>> DiG 9.2.4 <<>> any linux.bogus;; global options: printcmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 803;; flags: qr aa rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 2

;; QUESTION SECTION:;linux.bogus. IN ANY

;; ANSWER SECTION:linux.bogus. 259200 IN SOA ns.linux.bogus. hostmaster.linux.bogus. 199802151 28800 7200 2419200 86400linux.bogus. 259200 IN NS ns.linux.bogus.linux.bogus. 259200 IN MX 10 mail.linux.bogus.linux.bogus. 259200 IN MX 20 mail.friend.bogus.

;; ADDITIONAL SECTION:ns.linux.bogus. 259200 IN A 192.168.196.2mail.linux.bogus. 259200 IN A 192.168.196.4

;; Query time: 0 msec;; SERVER: 127.0.0.1#53(127.0.0.1);; WHEN: Wed Sep 13 05:17:46 2006;; MSG SIZE rcvd: 174

37

Page 38: Servi Dores Linux

Notasde

Aula

-2011

FIAP

-UsoInterno

Prof

.Al

exan

der

Luz

Sper

andi

o

6 - Vamos adicionar alguma informacao extra no arquivo de zona.

; Zone file for linux.bogus; The full zone file;$TTL 3D@ IN SOA ns.linux.bogus. hostmaster.linux.bogus. (

199802151 ; serial, todays date + todays serial #8H ; refresh, seconds2H ; retry, seconds4W ; expire, seconds1D ) ; minimum, seconds

;TXT "Linux.Bogus, your DNS consultants"NS ns ; Inet Address of name serverNS ns.friend.bogus.MX 10 mail ; Primary Mail ExchangerMX 20 mail.friend.bogus. ; Secondary Mail Exchanger

gw A 192.168.196.1TXT "The router"

ns A 192.168.196.2www CNAME nsdonald A 192.168.196.3

TXT "DEK"mail A 192.168.196.4ftp A 192.168.196.5

• CNAME (Canonical Name) - um modo de dar varios nomes a uma maquina;www e um alias para ns;- registros MX, CNAME ou SOA nao devem se referir a registros CNAME,mas somente a registros A;

7 - Carregue a nova base de dados com rndc reload e vamos ao dig. Com otipo axfr dig pede por uma transferencia de zona (zone transfer);

> dig linux.bogus. axfr

; <<>> DiG 9.2.4 <<>> linux.bogus axfr;; global options: printcmdlinux.bogus. 259200 IN SOA ns.linux.bogus. hostmaster.linux.bogus. 199802151 28800 7200 2419200 86400linux.bogus. 259200 IN TXT "Linux.Bogus, your DNS consultants"linux.bogus. 259200 IN NS ns.linux.bogus.linux.bogus. 259200 IN NS ns.friend.bogus.linux.bogus. 259200 IN MX 10 mail.linux.bogus.linux.bogus. 259200 IN MX 20 mail.friend.bogus.donald.linux.bogus. 259200 IN A 192.168.196.3donald.linux.bogus. 259200 IN MX 10 mail.linux.bogus.donald.linux.bogus. 259200 IN MX 20 mail.friend.bogus.donald.linux.bogus. 259200 IN TXT "DEK"ftp.linux.bogus. 259200 IN A 192.168.196.5ftp.linux.bogus. 259200 IN MX 10 mail.linux.bogus.ftp.linux.bogus. 259200 IN MX 20 mail.friend.bogus.gw.linux.bogus. 259200 IN A 192.168.196.1gw.linux.bogus. 259200 IN TXT "The router"localhost.linux.bogus. 259200 IN A 127.0.0.1mail.linux.bogus. 259200 IN A 192.168.196.4mail.linux.bogus. 259200 IN MX 10 mail.linux.bogus.mail.linux.bogus. 259200 IN MX 20 mail.friend.bogus.ns.linux.bogus. 259200 IN A 192.168.196.2

38

Page 39: Servi Dores Linux

Notasde

Aula

-2011

FIAP

-UsoInterno

Prof

.Al

exan

der

Luz

Sper

andi

o

ns.linux.bogus. 259200 IN MX 10 mail.linux.bogus.ns.linux.bogus. 259200 IN MX 20 mail.friend.bogus.www.linux.bogus. 259200 IN CNAME ns.linux.bogus.linux.bogus. 259200 IN SOA ns.linux.bogus. hostmaster.linux.bogus. 199802151 28800 7200 2419200 86400;; Query time: 1 msec;; SERVER: 127.0.0.1#53(127.0.0.1);; WHEN: Wed Sep 13 09:29:13 2006;; XFR size: 24 records

8 - Vamos ver o que dig retorna para www.

> dig www.linux.bogus.

; <<>> DiG 9.2.4 <<>> www.linux.bogus;; global options: printcmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 34944;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 0

;; QUESTION SECTION:;www.linux.bogus. IN A

;; ANSWER SECTION:www.linux.bogus. 259200 IN CNAME ns.linux.bogus.ns.linux.bogus. 259200 IN A 192.168.196.2

;; AUTHORITY SECTION:linux.bogus. 259200 IN NS ns.linux.bogus.linux.bogus. 259200 IN NS ns.friend.bogus.

;; Query time: 0 msec;; SERVER: 127.0.0.1#53(127.0.0.1);; WHEN: Wed Sep 13 09:30:37 2006;; MSG SIZE rcvd: 104

13.3 A zona reversa

Agora os programas podem converter os nomes em linux.bogus para enderecosaonde eles podem conectar. Tambem e necessario criar uma zona reversa, quetorna o DNS capaz de converter enderecos em nomes.

9 - Ponha o texto abaixo em named.conf

zone "196.168.192.in-addr.arpa" {type master;notify no;file "pz/192.168.196";

};

Esse conteudo e similar ao da zona 127.in-addr.arpa, que incluımos antesno arquivo named.conf.

Note que os numeros 1, 2, 3, 4 e 5 sao completados com a zona reversa196.168.192.in-addr.arpa, definida no arquivo named.conf.

$TTL 3D@ IN SOA ns.linux.bogus. hostmaster.linux.bogus. (

199802151 ; Serial, todays date + todays serial

39

Page 40: Servi Dores Linux

Notas de

Aula- 20

11

FIAP - Uso

Intern

o

Prof

.Ale

xand

erL

uzSp

eran

dio

8H ; Refresh2H ; Retry4W ; Expire1D) ; Minimum TTL

NS ns.linux.bogus.

1 PTR gw.linux.bogus.2 PTR ns.linux.bogus.3 PTR donald.linux.bogus.4 PTR mail.linux.bogus.5 PTR ftp.linux.bogus.

10 - Agora podemos dizer a named para recarregar a configuracao (rndcreload) e examinar a saıda de dig.

> dig -x 192.168.196.4

;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 58451;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

;; QUESTION SECTION:;4.196.168.192.in-addr.arpa. IN PTR

;; ANSWER SECTION:4.196.168.192.in-addr.arpa. 259200 IN PTR mail.linux.bogus.

;; AUTHORITY SECTION:196.168.192.in-addr.arpa. 259200 IN NS ns.linux.bogus.

;; ADDITIONAL SECTION:ns.linux.bogus. 259200 IN A 192.168.196.2

;; Query time: 4 msec;; SERVER: 127.0.0.1#53(127.0.0.1);; WHEN: Sun Dec 23 03:16:05 2001;; MSG SIZE rcvd: 107

11 - Agora, vamos fazer a transferencia de zona outra vez

> dig 196.168.192.in-addr.arpa. AXFR

; <<>> DiG 9.1.3 <<>> 196.168.192.in-addr.arpa. AXFR;; global options: printcmd196.168.192.in-addr.arpa. 259200 IN SOA ns.linux.bogus. \

hostmaster.linux.bogus. 199802151 28800 7200 2419200 86400196.168.192.in-addr.arpa. 259200 IN NS ns.linux.bogus.1.196.168.192.in-addr.arpa. 259200 IN PTR gw.linux.bogus.2.196.168.192.in-addr.arpa. 259200 IN PTR ns.linux.bogus.3.196.168.192.in-addr.arpa. 259200 IN PTR donald.linux.bogus.4.196.168.192.in-addr.arpa. 259200 IN PTR mail.linux.bogus.5.196.168.192.in-addr.arpa. 259200 IN PTR ftp.linux.bogus.196.168.192.in-addr.arpa. 259200 IN SOA ns.linux.bogus. \

hostmaster.linux.bogus. 199802151 28800 7200 2419200 86400;; Query time: 6 msec;; SERVER: 127.0.0.1#53(127.0.0.1);; WHEN: Sun Dec 23 03:16:58 2001;; XFR size: 9 records

40

Page 41: Servi Dores Linux

Notasde

Aula

-2011

FIAP

-UsoInterno

Prof

.Al

exan

der

Luz

Sper

andi

o

Se a sua saıda nao se parece com essa, procure pelas mensagens de erro emseu syslog (arquivos: /var/log/syslog ou /var/log/messages, dependendoda configuracao de sua distribuicao).

13.4 Transferencia de zona

Arquivo de configuracao do servidor dns /etc/bind/named.conf

zone "tralala.fiap" {type master;file "/etc/bind/db.tralala";allow-transfer { 192.168.6.102; };

};

zone "6.168.192.in-addr.arpa" {type master;file "/etc/bind/rev.tralala";allow-transfer { 192.168.6.102; };

};

Arquivo master da zona ”tralala.fiap”

$TTL 60@ IN SOA ello.tralala.fiap. root.tralala.fiap. (

7 ; Serial604800 ; Refresh86400 ; Retry

2419200 ; Expire604800 ) ; Negative Cache TTL

;@ IN NS ello.tralala.fiap.

IN NS rede6b.tralala.fiap.IN MX 10 mail.tralala.fiap.

ello IN A 192.168.6.122rede6b IN A 192.168.6.102mail IN A 192.168.6.122

; Apelidos

www IN CNAME elloftp IN CNAME ello

Arquivo reverso da zona ”tralala.fiap”

41

Page 42: Servi Dores Linux

Notas de

Aula- 20

11

FIAP - Uso

Intern

o

Prof

.Ale

xand

erL

uzSp

eran

dio

$TTL 60@ IN SOA ello.tralala.fiap. root.tralala.fiap. (

7 ; Serial604800 ; Refresh86400 ; Retry

2419200 ; Expire604800 ) ; Negative Cache TTL

;@ IN NS ello.tralala.fiap.122 IN PTR ello.tralala.fiap.102 IN PTR rede6b.tralala.fiap.

O servidor DNS secundario tem o arquivo de configuracao:

zone "tralala.fiap" {type slave;file "db.tralala.bk";masters { 192.168.6.122; };

};

zone "6.168.192.in-addr.arpa" {type slave;file "rev.tralala.bk";masters { 192.168.6.122; };

};

Referencias

[1] Nemeth, E, Snyder, G, Hein, T.R., Manual Completo do Linux - Guia doAdministrador. 2a. edicao. Pearson. Sao Paulo. 2007. cap. 15, p.260-336;

[2] Nemeth, E, Snyder, G, Seebass, S, Hein, T.R., Manual de Administracaodo Sistema UNIX. 3a. edicao. Bookman, 2002. cap.16, p.434-529.

[3] Sheer, P. LINUX: Rute User’s Tutorial and Exposition (Version 1.0.0).Disponıvel em: http://packages.debian.org/stable/doc/rutebook.Acesso em: 21 jul. 2006.cap.27.

[4] ISC, Inc. BIND 9 Administrator Reference Manual. Disponıvel em: ftp.isc.org/isc/bind9/cur/9.8/doc/arm/Bv9ARM.pdf. Acesso em: 14 ago.2011.

[5] Albitz, P, Liu, C. DNS and BIND. 4th edition. O’Reilly, 2001. 622p.

42

Page 43: Servi Dores Linux

Notas de

Aula- 20

11

FIAP - Uso

Intern

o

Prof

.Ale

xand

erL

uzSp

eran

dio

Parte V

Servidor web - apache14 Apresentacao do Apache

14.1 Introducao

IntroducaoUm servidor web e simplesmente um programa que le um arquivo do disco

rıgido quando chega na porta 80, a requisicao:

GET /arquivo.html HTTP/1.0

O Apache e um servidor web:

• serve conteudo pela internet atraves do protocolo http

• desenvolvido pelo Apache Group - http://www.apache.org/projeto servidor http: http://httpd.apache.org/

• Segundo a Netcraft http://news.netcraft.com/archives/web_server_survey.html, o Apache e o servidor web mais usado do mundo.

• Versao 2.2.21 anunciada em http://httpd.apache.org/

• Versao 2.0.64 - release da versao 2.0

• Versao 2.3.14-beta

14.2 Instalacao

InstalacaoHa binarios disponıveis para varios sistemas operacionais (http://mirror.

pop-sc.rnp.br/apache/httpd/binaries/) inclusive Windows.

• .tar.gz ou .tar.bz2 - fontes para Unix

• .zip - fontes para Win32

• .msi - binario para Win32

• .rpm - binarios para RedHat, Fedora, OpenSuSE, Mandriva, TurboLinux,..

• .deb - binarios para Debian, Kurumin, ..

43

Page 44: Servi Dores Linux

Notas de

Aula- 20

11

FIAP - Uso

Intern

o

Prof

.Ale

xand

erL

uzSp

eran

dio

14.3 Iniciando o servidor

Iniciando o servidor

• /etc/init.d/apache2 start ou stop ou restart ou reload

• O comando netstat -natcp 0 0 0.0.0.0:80 0.0.0.0:* OUCA

• Teste com telnet localhost 80

• Teste com o navegador http://localhost/

• Arquivos de log em: /var/log/apache2/

15 Configuracao do Apache

15.1 Arquivo de configuracao• Arquivo principal de configuracao:

+ /etc/apache2/apache2.conf

• uma diretiva por linha;+ Ex.: include - inclui outros arquivos de configuracao

• linhas iniciadas com # (hash) sao comentarios

• apache2ctl -t testa a sintaxe

• apache2ctl -S testa as configuracoes de Virtual Hosts

15.1.1 Arquivos e Diretivas de configuracao

Arquivos incluıdos do Apache2

• /etc/apache2/ports.conf+ Enderecos e portas para o servidor;Ex.: Listen 80

• /etc/apache2/envvars+ Definicao de variaveis de ambiente para o apache;Ex.: usuario e grupo que rodam o apache: www-data (Debian)

• /etc/apache2/httpd.conf+ Configuracoes adicionais do usuario; vazio.

• /etc/sites-available/default+ Configuracao inicial de VirtualHost para o apache; ativado pelo link simbolico/etc/apache2/sites-enabled/000-default;

44

Page 45: Servi Dores Linux

Notas de

Aula- 20

11

FIAP - Uso

Intern

o

Prof

.Ale

xand

erL

uzSp

eran

dio

Diretorios do Apache2

• /etc/apache2/conf.d/+ Arquivos incluıdos como configuracao adicional;Ex.: conf.d/docs compartilha /usr/share/doc/ via web.

• /etc/apache2/mods-availabe/+ Disponibiliza modulos do apache que podem ser ativados;

– sao ativados atraves da criacao de links simbolicos no diretorio /etc/apache2/mods-enabled/

– a2enmod e a2dismod sao scripts para ativar e desativar um modulo, respec-tivamente.

• /etc/apache2/sites-available/+ Virtual Hosts disponıveis;

– sao ativados atraves da criacao de links simbolicos no diretorio /etc/apache2/sites-enabled/

– a2ensite e a2dissite sao scripts para ativar e desativar um Virtual Host, re-spectivamente.

Diretivas de configuracao

• User e Group - usuario e grupo que executa o apache;- atribuıdos em apache2.conf a partir das variaveis de ambiente do apache criadasno arquivo envvars;

• DirectoryIndex - arquivos-padrao a serem abertos pelo apache;- arquivo: mods-available/dir.conf, ativado por padrao em mods-enabled/dir.conf13;

• DocumentRoot - diretorio raiz dos arquivos fornecidos pelo apache (Ex.: arquivos.html);- arquivo: sites-available/default;

• ServerAdmin - define o endereco de e-mail do administrador do servidor Apache;- arquivo: sites-available/default;

• ServerName - define o hostname do servidor;

15.1.2 Blocos de secao

Configuracao de blocos de secao14

E possıvel a definicao de blocos para a inclusao de diretivas aplicaveisapenas ao bloco.Exemplo: compartilhamento de um diretorio acessıvel por:

13 Ha tambem arquivos .load em mods-available/. Esses arquivos tambem devem ter seuslinks simbolicos em mods-enabled/ pois fazem o apache carregar os modulos necessarios para asconfiguracoes. Ex.: mods-available/dir.load .

14http://httpd.apache.org/docs/2.0/sections.html

45

Page 46: Servi Dores Linux

Notas de

Aula- 20

11

FIAP - Uso

Intern

o

Prof

.Ale

xand

erL

uzSp

eran

dio

http://localhost/doc

Alias /doc "/usr/share/doc/"<Directory /usr/share/doc>Options Indexes FollowSymLinksOrder deny,allowdeny from allallow from localhost</Directory>

• Directory - restricoes a um diretorio do sistema de arquivos+ < Directorydirectory− path > ... < /Directory >

• DirectoryMatch - mesmo, mas aceita expressoes regulares+ < DirectoryMatchregex > ... < /DirectoryMatch >usados em: ê server config, virtual host 15

• Files - restricoes a arquivos do disco+ < Files f ilename > ... < /Files >

• FilesMatch - aceita expressoes regulares+ < FilesMatchregex > ... < /FilesMatch >ê server config, virtual host, directory, .htaccess

• Location - restricoes ao diretorio especificado na URL+ < LocationURL− path|URL > ... < /Location >

• LocationMatch - o mesmo, mas aceita expressoes regulares+ < LocationMatchregex > ... < /LocationMatch >ê server config, virtual host

• ifDefine - diretivas serao processadas se o teste for verdadeiro+ < I f De f ine [!]parameter−name > ... < /I f De f ine >ê server config, virtual host, directory, .htaccess

• ifModule - diretivas serao processadas na ausencia ou presenca de um modulo es-pecıfico+ < I f Module [!]module−name > ... < /I f Module >ê server config, virtual host, directory, .htaccess

• VirtualHost - diretivas se aplicam a um hostname ou IP especıfico+ <VirtualHost addr[: port] [addr[: port]] ... > ... < /VirtualHost >ê server config

15httpd.apache.org/docs/2.2/mod/directive-dict.html#Context

46

Page 47: Servi Dores Linux

Notas de

Aula- 20

11

FIAP - Uso

Intern

o

Prof

.Ale

xand

erL

uzSp

eran

dio

Diretiva Options16

Configura que caracterısticas sao disponıveis em um diretorio particular.+ Options[+|−]option[[+|−]option]...ê server config, virtual host, directory (exceto Files), .htaccess- Pode ser configurada para None ou uma ou mais de:

• All - Tudo exceto MultiViews (default)

• ExecCGI - Permite a execucao de scripts CGI (mod cgi)

• FollowSymLinks - O servidor seguira links simbolicos

• Indexes - Permite a listagem do diretorio se nao ha um arquivo especificado peladiretiva DirectoryIndex

• Multiviews - Negociacao de conteudo17: permite o envio de paginas no idiomarequisitado pelo navegador do cliente

• Includes - Permite includes por mod include18

• IncludesNOEXEC - Permite includes, mas os comandos #exec e #include de umscript CGI sao desativados

• SymLinksIfOwnerMatch - link simbolico e seguido apenas se o arquivo alvo tivero mesmo dono do link

Outras diretivas

• Alias - Mapeia URLs para locais no sitema de arquivos+ AliasURL− path f ile− path|directory− pathê server config, virtual host

• Order - Controla o estado de acesso default e a ordem na qual Allow e Deny saoavaliadas+ Order Deny,Allow (default) - avalia o deny antes e entao garante as excecoesbaseadas na diretiva allowOrder Allow,Deny - avalia o allow antes e entao garante as excecoes baseadas nadiretiva denyMutual Failure - indica que somente os hosts que aparecem na lista allow e naoaparecem na lista deny possuirao acesso

Allow/Deny

• Allow - lista os hosts que possuem permissao para acessar o diretorio

• Deny - lista os hosts que nao possuem permissao

16http://httpd.apache.org/docs/2.0/mod/core.html#options17http://httpd.apache.org/docs/2.0/content-negotiation.html18http://httpd.apache.org/docs/2.0/mod/mod_include.html

47

Page 48: Servi Dores Linux

Notas de

Aula- 20

11

FIAP - Uso

Intern

o

Prof

.Ale

xand

erL

uzSp

eran

dio

• Exemplos:Allow from localhost 192.168.0.1Deny from allAllow from .net example.eduAllow from 10 172.20 192.168.2Allow from 10.1.0.0/16Allow from 10.1.0.0/255.255.0.0

15.2 Virtual Hosts

Virtual HostsPratica de rodar mais de um web site (www.empresa1.com e www.empresa2.com)

em uma unica maquina.

• Virtual hosts baseados em nome: mais de um web site por IP

• Virtual hosts baseados em IP: um endereco IP pra cada web site

- 196.123.45.1 serve domain1 e domain2 (Name virtual hosting)- 196.123.45.2 serve domain3 na mesma maquina (IP virtual hosting)

NameVir tua lHos t 1 9 6 . 1 2 3 . 4 5 . 1

<V i r t u a l H o s t 196 .123 .45 .1 >ServerName www. domain1 . comDocumentRoot / o p t / apache / h t d o c s /www. domain1 . com /

</ V i r t u a l H o s t>

<V i r t u a l H o s t 196 .123 .45 .1 >ServerName www. domain2 . comDocumentRoot / o p t / apache / h t d o c s /www. domain2 . com /

</ V i r t u a l H o s t>

<V i r t u a l H o s t 196 .123 .45 .2 >ServerName www. domain3 . comDocumentRoot / o p t / apache / h t d o c s /www. domain3 . com /

</ V i r t u a l H o s t>

16 Exercıcios

1. Que requisicao deve ser atendida por um servidor web?

2. Forneca o caminho e nome do arquivo principal de configuracao do apache.

3. Descreva o significado da linha abaixo e onde ela se encontra.

127.0.0.1 - - [12/Sep/2007:18:22:02 -0300] "GET / HTTP/1.1" 200 44 "-""Mozilla/5.0 (compatible; Konqueror/3.5; Linux) KHTML/3.5.1 (like Gecko)"

4. Sobre os arquivos de configuracao do apache, descreva:

48

Page 49: Servi Dores Linux

Notas de

Aula- 20

11

FIAP - Uso

Intern

o

Prof

.Ale

xand

erL

uzSp

eran

dio

(a) listen.conf

(b) uid.conf

(c) conf.d

(d) default-server.conf

(e) vhosts.d

5. Como identificar na saıda do comando netstat, uma linha que confirme aexecucao de um servidor web?

6. Como testar o funcionamento de um servidor web usando um browser?

7. Responda sobre as diretivas de configuracao do servidor apache, listadasabaixo:

(a) DirectoryIndex

(b) DocumentRoot

(c) ServerName

(d) ServerAdmin

(e) Listen 192.168.0.10:80

(f) User

(g) Group

8. Explique o que puder sobre os exemplos de blocos de secao, na configuracaodo apache, abaixo:

(a) Alias /doc "/usr/share/doc/"<Directory /usr/share/doc>Options Indexes FollowSymLinksOrder deny,allowdeny from allallow from localhost

</Directory>

(b) <Files ˜ "ˆ\.ht">Order allow,denyDeny from all

</Files>

(c) <VirtualHost *:80>ServerAdmin [email protected] dummy-host.example.comDocumentRoot /srv/www/vhosts/dummy-host.example.comErrorLog /var/log/apache2/dummy-host.example.com-error_logCustomLog /var/log/apache2/dummy-host.example.com-access_log combined<Directory "/srv/www/vhosts/dummy-host.example.com">

Options Indexes FollowSymLinksAllowOverride NoneOrder allow,denyAllow from all

</Directory></VirtualHost>

49

Page 50: Servi Dores Linux

Notas de

Aula- 20

11

FIAP - Uso

Intern

o

Prof

.Ale

xand

erL

uzSp

eran

dio

17 lab1: apache

17.1 Objetivos

Conhecer o servidor web apache

• Entender o funcionamento do servidor web

• Iniciar/parar o servidor

• Entender as permissoes de arquivos para a exibicao de paginas

17.2 Requisitos

• Conhecimentos basicos de Linux

• Distribuicao Linux instalada

• Servidor Web Apache2 instalado

17.3 Iniciando o servidor

1. Ha um servidor apache instalado no sistema? Escreva como verificar.

2. Anote a versao:

3. Inicialize o servidor. Anote como:

4. Use o comando netstat -na e verifique se o servidor web esta funcio-nando. Anote a linha que confirma isso.

5. Use o comando telnet para testar o servico. Anote o que deve ser feito.

6. Use um navegador para testar o servico. Anote o endereco a ser acessado.Justifique o uso desse endereco.

7. Abra um terminal e use o comando tail -f para visualizar o arquivo delog do apache. Copie aqui o comando que o servidor recebe do navegadorquando a pagina inicial e acessada.

8. Como sair do comando tail -f usado anteriormente?

17.4 Entendendo os modulos

Para o proximo passo e necessario o modulo userdir. Esse modulo permiteque um usuario publique paginas na web a partir de um diretorio public html emseu diretorio de usuario.

Para habilitar um modulo no apache, basta a criacao de links simbolicos no di-retorio mods-enabled apontando para os modulos existentes no diretorio mods-available.

50

Page 51: Servi Dores Linux

Notas de

Aula- 20

11

FIAP - Uso

Intern

o

Prof

.Ale

xand

erL

uzSp

eran

dio

O script a2enmod pode ser utilizado para habilitar um modulo no apache,como mostrado abaixo, executado pelo usuario root. A funcao desse script e criaros links simbolicos necessarios no diretorio mods-enabled.

# a2enmod userdir

17.5 Entendendo as permissoes

Usaremos o diretorio ˜/public html, para essa parte do roteiro.

1. Verifique as permissoes desse diretorio com ls -ld ˜/public html/

2. Quais permissoes sao necessarias para a exibicao na web, de um arquivodeste diretorio? Explique.

3. Crie um arquivo index.html nesse diretorio, com o conteudo abaixo e useo endereco http://localhost/˜usuario para acessa-lo.

<HTML><H1> Oi, sou uma pagina html!!</H1></HTML>

4. Anote as permissoes do arquivo index.html.

5. Quais permissoes sao necessarias para a exibicao desse arquivo na web?Explique.

18 lab2: apache

18.1 Objetivos

• Conhecer algumas configuracoes do servidor Apache

• Configurar autorizacao e autenticacao

• Configurar virtual hosts

18.2 Autorizacao

1. Vamos especificar o acesso ao diretorio /usr/share/doc para localhost e proibirpara outros:

Alias /doc "/usr/share/doc/"<Directory /usr/share/doc>Options Indexes FollowSymLinksOrder deny,allow

51

Page 52: Servi Dores Linux

Notasde

Aula

-2011

FIAP

-UsoInterno

Prof

.Al

exan

der

Luz

Sper

andi

o

deny from allallow from localhost

</Directory>

O item Alias define um nome, atraves do qual sera acessada a pagina nodiretorio na sequencia (entre aspas). Dessa forma pode-se usar o enderecohttp://localhost/doc/ para acessar o diretorio /usr/share/doc.

As opcoes disponıveis no item Options e o item Order estao no item 12.6do focalinux avancado.

Directory A restricao afetara o diretorio no disco especificado, consequente-mente a pagina armazenada nele. Por exemplo:

<Directory /var/www>Order deny,allowdeny from allallow from 10.1.0.1

<Directory>

O acesso ao diretorio /var/www sera permitido somente ao computador como endereco IP 10.1.0.1.

2. Para permitir o acesso a outros pode-se inserir enderecos no item allow

allow from localhost 10.1.1.8 # permite acesso ao localhost e amaquina com esse IP

allow from localhost 10.1.1. # permite acesso a localhost e atodas as maquinas com IP 10.1.1.*

3. Faca um teste com o IP do seu vizinho e veja se ele consegue acessar aspaginas de documentacao na sua maquina

18.3 Autenticacao

1. Na autenticacao e preciso criar um arquivo de senhas. O comando htpasswde usado para isso.

2. Para criar um arquivo com o nome ”senhas”para o usuario ”aluno”, e usadaa sintaxe:

htpasswd -c -m senhas aluno

note que o arquivo senhas precisa ter permissao de leitura para o usuario queroda o apache;

52

Page 53: Servi Dores Linux

Notasde

Aula

-2011

FIAP

-UsoInterno

Prof

.Al

exan

der

Luz

Sper

andi

o

3. Modifique o acesso ao diretorio /doc para o exemplo abaixo:

Alias /doc "/usr/share/doc/"<Directory /usr/share/doc>Options Indexes FollowSymLinksAuthName "Acesso a documentacao"AuthType basicAuthUserFile /etc/httpd/senhasRequire valid-user

</Directory>

4. Crie o arquivo senhas no diretorio /var/www e de permissao para todos lerem(ao inves disso pode-se mudar o dono e grupo do arquivo para o usuario egrupo que rodam o apache e dar permissao de leitura somente a esses)

5. Teste agora o acesso a pagina

6. E possıvel usar a autorizacao e autenticacao juntas,

Alias /doc "/usr/share/doc/"

<Directory /usr/share/doc>Options Indexes MultiViewsOrder deny,allowdeny from allallow from localhostAuthName "Acesso aos docs"AuthType basicAuthUserFile /etc/httpd/senhasrequire valid-userrequire user alunosatisfy any

</Directory>

A configuracao acima permite o acesso sem senha para localhost e comsenha para outros IPs. Teste com o seu vizinho.

Essa configuracao pode ser usada para a criacao de intranets, permitindo oacesso de fora para certos usuarios.

18.4 Virtual Hosts

1. Configuracao de hosts virtuais:

Virtual Hosts (sites virtuais) e um recurso que permite servir mais de umsite no mesmo servidor. Vamos testar o metodo baseado em nome com umexemplo de um dominio para a nossa documentacao:

53

Page 54: Servi Dores Linux

Notas de

Aula- 20

11

FIAP - Uso

Intern

o

Prof

.Ale

xand

erL

uzSp

eran

dio

NameVirtualHost *<VirtualHost *>ServerName empresa.meudominio.orgDocumentRoot /usr/share/docTransferLog /var/log/apache/empresa/access.logErrorLog /var/log/apache/empresa/error.log

</VirtualHost>

2. Adicione o nome “empresa” ao arquivo /etc/hosts para a resolucao de nomes.

3. Crie o diretorio “empresa” no diretorio /var/log/apache - ou no diretoriode log usado na sua distribucao - e crie os arquivos access.log e error.lognesse diretorio - use o comando touch;

4. Monitore o arquivo de log - use o comando tail -f arquivo - e acesse a paginaa partir do seu micro.

5. Peca ao vizinho para acessar sua pagina e observe o arquivo de log.

19 lab: DNS e apache

1. Vamos criar o domınio seunome.sobrenome. Anote o domınio criado:

2. Comece adicionando sua zona ao final do arquivo named.conf

zone "seunome.seusobrenome" {type master;file "db.seunome";

};

3. Adicione tambem a zona reversa

zone "1.1.10.in-addr.arpa" {type master;file "db.seunome.rev";

};

4. Agora edite o arquivo db.seunome, para as configuracoes da zona

$TTL 3D@ IN SOA ns.seunome.sobrenome. root.seunome.sobrenome. (200609181 3H 15M 1W 1D )

NS ns.seunome.sobrenome.localhost A 127.0.0.1ns A 10.1.1.7www CNAME nswww2 A 10.1.1.7

5. Edite tambem o arquivo db.seunome.rev, para as configuracoes da zonareversa

54

Page 55: Servi Dores Linux

Notas de

Aula- 20

11

FIAP - Uso

Intern

o

Prof

.Ale

xand

erL

uzSp

eran

dio

$TTL 3D@ IN SOA ns.seunome.sobrenome. root.seunome.sobrenome. (200609181 3H 15M 1W 1D )

NS ns.seunome.sobrenome.7 PTR ns.seunome.sobrenome.

6. Reinicie named e de uma olhada nos logs

7. Use o dig para testar suas configuracoes. Escreva como ele seria utilizado.

8. Crie dois Virtual Hosts baseados em nome (Name Virtual Hosts) em seuservidor Apache usando sua configuracao de named e responda as questoesabaixo:

(a) Escreva o conteudo de um dos arquivos.

(b) Em que diretorio os arquivos devem ser colocados?

(c) Vc consegue encontrar os sites usando o navegador? Se sim, qualconfiguracao foi necessaria, alem do servidor named?

20 Referencias

Referencias

[1] Sheer, P. LINUX: Rute User’s Tutorial and Exposition (Version 1.0.0).Disponıvel em: http://packages.debian.org/stable/doc/rutebook.Acesso em: 21 jul. 2006.cap.36.

[2] The Apache Software Foundation. Apache HTTP Server Version 2.0Documentation. Disponıvel em: http://httpd.apache.org/docs/2.0/.Acesso em: 21 jul. 2006.

[3] Silva, G.M. Guia Foca GNU/Linux. Disponıvel em: http://focalinux.cipsga.org.br/guia/avancado/ch-s-apache.htm. Acesso em: 21 jul.2006.

Parte VI

firewall - iptables21 O Firewall

21.1 Introducao

O que e um firewall?

• Objetivo e proteger a maquina contra acessos indesejados

55

Page 56: Servi Dores Linux

Notas de

Aula- 20

11

FIAP - Uso

Intern

o

Prof

.Ale

xand

erL

uzSp

eran

dio

• Impedir conexoes vindas da Internet para sua rede local

• NAT

• Proteger servicos que estejam rodando na maquina

21.2 iptables

iptables e uma estrutura de tabelas para o estabelecimento de regras.Cada regra em uma tabela consiste de um numero de comparacoes (iptablesmatches) e uma acao relativa as comparacoes (iptables target)[?].

• 2010-Ago-06: iptables-1.4.9.1

• .rpm, .deb, .tgz, .tar.gz

• Linux 2.4.x and 2.6.x kernel em diante

• Dividido em duas partes:

– Ferramentas em espaco de usuario (iptables)

– Modulos do kernel (netfilter)+ para a compilacao dos modulos:

Networking support -> Netorking options -> Network packet filtering framework

56

Page 57: Servi Dores Linux

Notas de

Aula- 20

11

FIAP - Uso

Intern

o

Prof

.Ale

xand

erL

uzSp

eran

dio

22 Conceitos basicos

22.1 regras, chains e tabelas

22.1.1 Regras

• sao comandos passados ao iptables para que ele realize uma determinadaacao

– bloquear (DROP)

– rejeitar (REJECT)

– aceitar (ACCEPT)

– registrar (LOG)

– ...

• regras sao armazenadas no kernel, isto e, em memoria

• iptables -A INPUT -s 123.123.123.1 -j DROP

22.1.2 Chains - listas de regras

• locais onde as regras do firewall definidas pelo usuario sao armazenadas paraoperacao do firewall

• Existem dois tipos de chains:

– embutidos, ex.: INPUT, OUTPUT e FORWARD

– criados pelo usuario

• os nomes dos chains sao case-sensitive

22.1.3 Tabelas

• sao locais usados para armazenar as chains e conjunto de regras com umadeterminada caracterıstica em comum

• existem 3 tabelas disponıveis no iptables:

– filter - Esta e a tabela padrao

– nat - Usada para dados que geram outra conexao (masquerading, sourcenat, destination nat, port forwarding, proxy transparente sao alguns ex-emplos)

– mangle - Utilizada para alteracoes especiais de pacotes (como modi-ficar o tipo de servico (TOS), TTL ou MARK)

57

Page 58: Servi Dores Linux

Notas de

Aula- 20

11

FIAP - Uso

Intern

o

Prof

.Ale

xand

erL

uzSp

eran

dio

22.1.4 Tabelas contem chains

Tabela filter- Contem 3 chains:

• INPUT - Consultado para dados que chegam a maquina

• OUTPUT - Consultado para dados que saem da maquina

• FORWARD - Consultado para dados que sao redirecionados para outra interfacede rede ou outra maquina

Tabela natNetwork Address Translation

- Contem 3 chains:

• PREROUTING - Consultado quando os pacotes precisam ser modificados logoque chegam. E o chain ideal para realizacao de DNAT e redirecionamentode portas

• OUTPUT - Consultado quando os pacotes gerados localmente precisam sermodificados antes de serem roteados. Este chain somente e consultado paraconexoes que se originam de IPs de interfaces locais.

• POSTROUTING - Consultado quando os pacotes precisam ser modificadosapos o tratamento de roteamento. E o chain ideal para realizacao de SNAT eIP Masquerading

Tabela mangle- Contem 5 chains, consultadas quando:

• INPUT - os pacotes precisam ser modificados antes de serem enviados para ochain INPUT da tabela filter

• FORWARD - os pacotes precisam ser modificados antes de serem enviados parao chain FORWARD da tabela filter

• PREROUTING - os pacotes precisam ser modificados antes de ser enviadospara o chain PREROUTING da tabela nat

• POSTROUTING - os pacotes precisam ser modificados antes de serem enviadospara o chain POSTROUTING da tabela nat

• OUTPUT - os pacotes precisam ser modificados antes de serem enviados parao chain OUTPUT da tabela nat

58

Page 59: Servi Dores Linux

Notas de

Aula- 20

11

FIAP - Uso

Intern

o

Prof

.Ale

xand

erL

uzSp

eran

dio

Atravessando as tabelas

• Um pacote chega da rede para a primeira decisao de roteamento:

– antes da decisao de roteamento:+ pode ter endereco de destino mudado na chain PREROUTING (DNAT);ê depois segue para a decisao de roteamento;

– se nao e destinado para a maquina local ê FORWARD (filter)

– se e destinada para a maquina local ê INPUT (filter)

• DNAT (Destination NAT) - utilizado para mudar IP de destino e/ou porta,para direcionar o pacote para um servidor interno;

• Um pacote tem origem na maquina local:+ a partir de um processo local;

– passa pela tabela filter OUTPUT;– depois da decisao de roteamento, se o pacote e roteado para a Internet:

+ tem o endereco de origem mudado na chain POSTROUTING (SNAT OUMASQUERADE)

• SNAT (Source NAT) - utilizado quando o IP da interface de saıda e fixo;

• MASQUERADE - utilizado quando o IP da interface de saıda e dinamico;

23 lab1: iptables

23.1 Objetivos

• Aprender a utilizar o comando iptables

59

Page 60: Servi Dores Linux

Notasde

Aula

-2011

FIAP

-UsoInterno

Prof

.Al

exan

der

Luz

Sper

andi

o

• Construir um firewall utilizando o comando iptables

23.2 Atividade1. O script abaixo limpa todas as regras na memoria1 # ! / b i n / sh2 # i p t a b l e s − f l u s h . sh3 # h t t p : / / i p t a b l e s − t u t o r i a l . f r o z e n t u x . n e t / s c r i p t s / r c . f l u s h− i p t a b l e s . t x t45 IPTABLES=” / s b i n / i p t a b l e s ”67 # c o n f i g u r a as p o l i t i c a s padrao para ACCEPT8 $IPTABLES −P INPUT ACCEPT9 $IPTABLES −P OUTPUT ACCEPT

10 $IPTABLES −P FORWARD ACCEPT1112 $IPTABLES − t n a t −P PREROUTING ACCEPT13 $IPTABLES − t n a t −P POSTROUTING ACCEPT14 $IPTABLES − t n a t −P OUTPUT ACCEPT1516 $IPTABLES − t mangle −P PREROUTING ACCEPT17 $IPTABLES − t mangle −P POSTROUTING ACCEPT18 $IPTABLES − t mangle −P INPUT ACCEPT19 $IPTABLES − t mangle −P OUTPUT ACCEPT20 $IPTABLES − t mangle −P FORWARD ACCEPT2122 # l impa as r e g r a s e t o d a s as t a b e l a s23 $IPTABLES −F24 $IPTABLES − t n a t −F25 $IPTABLES − t mangle −F2627 # apaga as c h a i n s nao−padrao28 $IPTABLES −X29 $IPTABLES − t n a t −X30 $IPTABLES − t mangle −X

2. Definindo as polıticas:

iptables [-t tabela] [-P chain] [ACCEPT/DROP]- A polıtica padrao determina o que acontecera com um pacote quando elechegar ao final das regras contidas em um chain

iptables -P INPUT DROPiptables -P OUTPUT DROPiptables -P FORWARD DROP

3. Tente um ping em localhost

4. Liberando o loopback- Varios programas precisam do acesso a interface lo - loopback

60

Page 61: Servi Dores Linux

Notas de

Aula- 20

11

FIAP - Uso

Intern

o

Prof

.Ale

xand

erL

uzSp

eran

dio

iptables -A INPUT -i lo -j ACCEPTiptables -A OUTPUT -o lo -j ACCEPT

5. Estados dos pacotes (modulo ip conntrack) - Nessas regras sao permitidosos pacotes estabelecidos e relacionados a conexoes geradas de nossa propriamaquina.

• NEW - Confere com pacotes que criam novas conexoes

• ESTABLISHED - Confere com conexoes ja estabelecidas

• RELATED - Confere com pacotes relacionados indiretamente a uma conexao,como mensagens de erro icmp, etc.

• INVALID - Confere com pacotes que nao puderam ser identificados poralgum motivo. Como respostas de conexoes desconhecidas.

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPTiptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPTiptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

6. Navegar:

iptables -A OUTPUT -p tcp --dport 80 -j ACCEPTiptables -A OUTPUT -p udp --dport 53 -j ACCEPT

23.3 Salvando as regras da memoria

O comando iptables-save e utilizado para copiar as regras da memoria paraa saıda padrao (tela). Essa saıda pode ser redirecionada para um arquivo, comomostrado abaixo:

# iptables-save > meufirewall.txt

O comando iptables-restore recebe como entrada um arquivo com as regrassalvas pelo comando iptables-save e restaura essas regras na memoria. Usamos oredirecionamento para entrada, nesse caso:

# iptables-restore < meufirewall.txt

24 Ativacao do script do firewall

O script do firewall deve se executado automaticamente sempre que o sistema einiciado, assim as regras do firewall sao carregadas na memoria e passam a protegera maquina e a rede por tras dela.

61

Page 62: Servi Dores Linux

Notas de

Aula- 20

11

FIAP - Uso

Intern

o

Prof

.Ale

xand

erL

uzSp

eran

dio

24.1 Ativacao do script - Debian

A distribuicao Debian e suas derivadas tem uma facilidade para rodar o scriptdo firewall de dentro do arquivo de configuracao de rede.

A opcao pre-up e capaz de rodar o script do firewall a partir do arquivo/etc/network/interfaces.

Essa opcao roda o comando informado logo que a interface de rede e ativada.Se o comando falha a interface permanece desativada. Dessa forma, a interface naoe ativada sem um firewall.

# arquivo /etc/network/interfacesauto loiface lo inet loopbackauto eth0iface eth0 inet dhcppre-up /etc/fwbuilder/firewall.fw $IFACE $IF_ADDRESS

24.2 Ativacao do script - outras distribuicoes

O arquivo /etc/rc.local pode ser utilizado para a execucao do script dofirewall. Esse arquivo e usado para executar os ultimos comandos, definidos peloadministrador, apos a inicializacao de todos os servicos do runlevel em utilizacao.

Todas as distribuicoes do GNU/Linux possuem esse arquivo, inclusive a distribuiacaoDebian;

Referencias

[1] Andreasson, O. Iptables Tutorial 1.2.1. Disponıvel em: http://iptables-tutorial.frozentux.net/iptables-tutorial.html.Acesso em: 22 out. 2006.

[2] Silva, G.M. Guia Foca GNU/Linux. Disponıvel em: http://focalinux.cipsga.org.br/guia/avancado/ch-fw-iptables.html. Acesso em: 21out. 2006.

[3] Russell, R. Linux 2.4 Packet Filtering HOWTO. Disponıvelem: http://www.netfilter.org/documentation/HOWTO/pt/packet-filtering-HOWTO.html. Acesso em: 22 out. 2006.

62

Page 63: Servi Dores Linux

Notas de

Aula- 20

11

FIAP - Uso

Intern

o

Prof

.Ale

xand

erL

uzSp

eran

dio

Parte VII

ssh25 SSH - Secure Shell

25.1 Introducao

• ssh (SSH client) e um programa para a conexao em maquinas remotas

• Fornece conexao segura (encriptada) entre dois hosts em uma rede insegura

• Conexoes X11 podem ser utilizadas no canal seguroExemplos:

– ssh user@hostname

– scp user@hostname:arquivo .

– scp arquivo user@hostname:.

25.2 Metodos de autenticacao

• Interacao do teclado+ A senha e pedida pelo teclado

• Autenticacao por chave publica

– Cliente usa sua chave privada (algoritmo RSA ou DSA)+ $HOME/.ssh/id dsa ou $HOME/.ssh/id rsa

– Servidor verifica se a chave privada fornecida bate com a chave publicaem:+ $HOME/.ssh/authorized keys

Geracao das chaves

• O comando abaixo gera as duas chaves:

– ssh-keygen -t rsa (para o algoritmo RSA)

– ssh-keygen -t dsa (para o algoritmo DSA)

• Sao gerados os arquivos

– id rsa

– id rsa.pub

• Adicionar a chave publica (arquivo .pub) no arquivo: $HOME/.ssh/authorized keysdo servidor

63

Page 64: Servi Dores Linux

Notas de

Aula- 20

11

FIAP - Uso

Intern

o

Prof

.Ale

xand

erL

uzSp

eran

dio

25.3 Configuracao do cliente

• Opcoes de linha de comando (man ssh)

– -X habilita X11Forward

– -p porta do servidor ssh

• Arquivo de configuracao por host (man ssh config)

– /etc/ssh/ssh config (global)

– $HOME/.ssh/config (por usuario)

$ c a t ˜ / . s s h / c o n f i gHost c l i e n t e 1

HostName s i t e f a m o s o . com . b rP o r t 9022User sadmI d e n t i t y F i l e ˜ / . s s h / idsadm

$ s s h c l i e n t e 1

25.4 Configuracao do servidor

• Arquivo /etc/ssh/sshd config (man sshd config)Port 22ListenAddress 0.0.0.0PermitRootLogin noX11Forwarding yesAllowUsers aluno user@host

• /etc/init.d/ssh start (daemon)

26 tcp wrappers

• O daemon sshd e compilado com suporte a tcp wrappers

• A seguranca pode ser feita pelos arquivos:

– /etc/hosts.allow

– /etc/hosts.deny

• man hosts access, para mais informacoes

64

Page 65: Servi Dores Linux

Notas de

Aula- 20

11

FIAP - Uso

Intern

o

Prof

.Ale

xand

erL

uzSp

eran

dio

Parte VIII

postfix27 email

27.1 Introducao

Sistemas de correio

• MUA - Mail User Agent: permite ao usuario ler e compor mensagens+ ex.: evolution, Thunderbird, pine, mutt, ...

• MTA - Mail Transport Agent: envia e recebe emails via SMTP (o servidorde emails)+ ex.: sendmail, exim, qmail, postfix, ...

• MDA - Mail Delivery Agent: deixa as mensagens recebidas em armazena-mento local + ex.: fetchmail, procmail, ...

• ”agente de acesso”: conecta o MUA ao local de armazenamento de men-sagens+ servidores IMAP ou POP (ipopd): courier, cyrus

27.2 Postfix

Postfix

• http://www.postfix.org/

• Encontrado nas distribuicoes (.rpm, .deb, .tgz)

• Composto de varios pequenos processos cooperativos+ diferente da arquitetura do sendmail onde um unico processo e responsavel portudo

• Arquivos de configuracao:

– /etc/postfix/main.cf - configuracoes do servidor+ man 5 postconf mostra os parametros e suas configuracoes padrao

– /etc/postfix/master.cf - descreve como um daemon do postfix deve ro-dar

Parametros de main.cf

• myhostname = foo.dominio.com.br+ FQDN19 do host

19Fully Qualified Domain Name - Nome de Domınio Completamente Qualificado

65

Page 66: Servi Dores Linux

Notas de

Aula- 20

11

FIAP - Uso

Intern

o

Prof

.Ale

xand

erL

uzSp

eran

dio

• mydomain = dominio.com.br

• mydestination = $myhostname, localhost+ nomes de domınios que devem ser tratados como local, isto e, destino final dasmensagens

• mynetworks = 127.0.0.1/8 192.168.0.0/24+ redes ou IPs em que o postfix ira aceitar relay

• inet interfaces = all+ seleciona as interfaces onde o postfix ira esperar por conexoes

Quando um parametro e repetido mais de uma vez no arquivo, somente a ultimavez e valida. A ordem dos parametros no arquivo main.cf nao importa.

Utilitarios

• postfix - inicia e para o sistema de correio

• postconf - exibe ou altera o valor de parametros de main.cf

• postqueue - controle das filas

• postsuper - gerencia as filas

• postcat - lista o conteudo de arquivos na fila

• postdrop, postmap, postalias,

• postkick, postlock e postlog

27.3 Servidor POP

Servidor POP

• O pacote imap fornece os servicos POP e IMAP

• Iniciado via o daemon xinetd+ edite /etc/xinetd.d/imap e reinicie xinetd para iniciar o servico

# a r q u i v o / e t c / x i n e t d . d / imap. . .s e r v i c e pop3{

d i s a b l e = no. . .s e r v e r = / u s r / s b i n / ipop3d

}

66

Page 67: Servi Dores Linux

Notasde

Aula

-2011

FIAP

-UsoInterno

Prof

.Al

exan

der

Luz

Sper

andi

o

27.4 webmail

Squirrelmail

• http://www.squirrelmail.org/

• iniciar imap server via xinetd+ criar arquivo /etc/cram-md5.pwd

• configurar squirrelmail# cd / s r v /www/ h t d o c s / s q u i r r e l m a i l# . / c o n f i g u r e

• http://localhost/squirrelmail

28 lab: Servidor de email postfix

28.1 Objetivo

- Configurar o Postfix - servidor de email

28.2 Atividade

Nessa atividade vamos configurar o registro MX de um domınio, procuradopelos servidores de email para o envio de mensagens, e configurar o servidor deemail postfix.

28.3 Configuracao do DNS

1 - Devemos incluir nosso servidor de email no arquivo de configuracao dazona seunome.sobrenome.:

$TTL 3D@ IN SOA ns.seunome.sobrenome. root.seunome.sobrenome. (200609181 3H 15M 1W 1D )

NS ns.seunome.sobrenome.MX 5 mail.seunome.sobrenome.

ns A 10.1.1.7mail A 10.1.1.7

2 - reinicie named e teste se o DNS responde corretamente:dig mx seunome.sobrenome.

67

Page 68: Servi Dores Linux

Notas de

Aula- 20

11

FIAP - Uso

Intern

o

Prof

.Ale

xand

erL

uzSp

eran

dio

28.4 Configuracao do sistema

1 - Edite o arquivo /etc/mailname e substitua seu conteudo com o nome doseu domınio. Esse sera a origem dos emails enviados por essa maquina.

seunome.sobrenome

2 - Agora utilize o comando hostname para mudar o nome do host:

# hostname mail

28.5 Configuracao do postfix

1 - Edite o arquivo /etc/postfix/main.cf e altere as configuracoes abaixo:

• myhostname = mail.seunome.sobrenome

• mydomain = seunome.sobrenome

• mydestination = $myhostname, $mydomain, localhost, localhot.$mydomain

• inet interfaces = 127.0.0.1, 10.1.1.7

• default transport = smtp

• relay transport = smtp

2 - Reinicie o postfix

# /etc/init.d/postfix restart

3 - Use o comando mail para testar o postfix 20

> ls / | mail -s "Teste do postfix" [email protected]

Digite mail para ver o email recebido. Alguns dos comandos aceitos sao:

• n - mostra email com numero n

• q - sair

• h - listar os emails

• r - replay (utilize Ctrl+D para finalizar)

• d 1 3 - deleta os emails 1 e 320O pacote mailx deve estar instalado.

68

Page 69: Servi Dores Linux

Notas de

Aula- 20

11

FIAP - Uso

Intern

o

Prof

.Ale

xand

erL

uzSp

eran

dio

Parte IX

squid29 Conhecendo o squid

29.1 Introducao

O que e o Squid?

• Servidor web proxy cache.

• Analise de trafego de acesso a internet.

• Restricao de acesso por ACLs (Access Control List).

• Desempenho e Estabilidade.

• Economia de Banda.

O que e proxy?

• Prove um intercambio entre os computadores da rede interna e a internet.

• Isolamento de Redes.

• Controle de Servico.

O que e cache?

• Armazenamento momentaneo de conteudo.

• Dispositivo de acesso rapido.

29.2 Daemons e Utilitarios

• squid responsavel pela execucao e gerenciamento do proxy e cache.

• sarg gera relatorios baseados nos logs de acesso do squid. (access.log).

29.3 Arquivo de configuracao

/etc/squid/squid.conf

• visible hostname MAQXX

• http port 3128

69

Page 70: Servi Dores Linux

Notas de

Aula- 20

11

FIAP - Uso

Intern

o

Prof

.Ale

xand

erL

uzSp

eran

dio

• icp port 3130

• cache mem 8 MB # default

• cache dir aufs /var/spool/squid 100 16 256

• cache peer ip servidor parent 3128 3130 no-digest no-netdb-exchange

30 ACLs - Access Control Lists

30.1 Introducao

• Para que serve?

• Onde eu uso isso?

• Como funciona?

30.2 tags de configuracao

tag “acl”

• ACL por IP (src)

• ACL por Autenticacao (proxy auth)

• ACL de bloqueio de url (dstdomain)

• ACL de bloqueio por palavra-chave (url regex -i)

tag “http access”Metodo de bloqueio seletivo

• http access deny sites proibidos

• http access deny sites porno !nao porno

• http access allow all

tag “http access”Metodo de liberacao seletiva

• http access deny all

• http access allow ips livres

• http access allow user auth

70

Page 71: Servi Dores Linux

Notas de

Aula- 20

11

FIAP - Uso

Intern

o

Prof

.Ale

xand

erL

uzSp

eran

dio

30.3 Autenticacao

# A u t e n t i c a c a o dos U s u a r i o s ( Squid )# usando n c s a a u t h# Le ia documentacao em / u s r / s h a r e / doc / s q u i da u t h p a r a m b a s i c rea lm Squida u t h p a r a m b a s i c program / u s r / l i b / s q u i d / n c s a a u t h / e t c / s q u i d / passwda u t h p a r a m b a s i c c h i l d r e n 5a u t h p a r a m b a s i c rea lm D i g i t e sua senhaa u t h p a r a m b a s i c c r e d e n t i a l s t t l 2 h o u r sa u t h p a r a m b a s i c c a s e s e n s i t i v e o f fa c l a u t e n t i c a d o s p r o x y a u t h REQUIREDh t t p a c c e s s a l l o w a u t e n t i c a d o s

30.4 Criacao de usuarios

• htpasswd -c /etc/squid/passwd primeiro usuario Cria o arquivo desenhas do squid.

• htpasswd /etc/squid/passwd outro userAdiciona outro usuario a listade senhas do squid.

31 Relatorios com sarg

31.1 Configuracao e o comando sarg

/etc/squid/sarg.conf

• output dir /www/docs/relatorios/

• access log /var/log/squid/access.log

• language Portuguese

• resolve ip yes

• report type topsites users sites sites users date time deniedauth failures site user time date

Utilizacao do sargO comando crontab pode ser usado para rodar o comando sarg diariamente:

# minuto ho ra d i a mes d i a d a s e m a n a comando0 12 ∗ ∗ 1−5 / u s r / b i n / s a r g && echo ”” > / v a r / l o g / s q u i d / a c c e s s . l o g

O comando indicado sera executado as 12:00, qualquer dia de qualquer mes,de segunda (1) a sexta (5)

71

Page 72: Servi Dores Linux

Notas de

Aula- 20

11

FIAP - Uso

Intern

o

Prof

.Ale

xand

erL

uzSp

eran

dio

32 lab: squid

32.1 Limpeza do arquivo squid.conf

• renomeie o arquivo squid.conf para squid.conf.orig e utilize o co-mando abaixo:

$ grep −v ˆ# s q u i d . con f . o r i g | g rep −v ˆ $ > s q u i d . con f

• Obtemos o arquivo sem comentarios e espacos em branco, como o exemploabaixo:

h i e r a r c h y s t o p l i s t cg i−b i n ?a c l QUERY u r l p a t h r e g e x cg i−b i n \?n o c a c h e deny QUERYh o s t s f i l e / e t c / h o s t sr e f r e s h p a t t e r n ˆ f t p : 1440 20% 10080r e f r e s h p a t t e r n ˆ gopher : 1440 0% 1440r e f r e s h p a t t e r n . 0 20% 4320a c l a l l s r c 0 . 0 . 0 . 0 / 0 . 0 . 0 . 0a c l manager p r o t o c a c h e o b j e c ta c l l o c a l h o s t s r c 1 2 7 . 0 . 0 . 1 / 2 5 5 . 2 5 5 . 2 5 5 . 2 5 5a c l t o l o c a l h o s t d s t 1 2 7 . 0 . 0 . 0 / 8a c l S S L p o r t s p o r t 443 563 # h t t p s , snewsa c l S S L p o r t s p o r t 873 # r s y n ca c l S a f e p o r t s p o r t 80 # h t t pa c l S a f e p o r t s p o r t 21 # f t pa c l S a f e p o r t s p o r t 443 563 # h t t p s , snewsa c l S a f e p o r t s p o r t 70 # gophera c l S a f e p o r t s p o r t 210 # waisa c l S a f e p o r t s p o r t 1025−65535 # u n r e g i s t e r e d p o r t sa c l S a f e p o r t s p o r t 280 # h t t p−mgmta c l S a f e p o r t s p o r t 488 # gss−h t t pa c l S a f e p o r t s p o r t 591 # f i l e m a k e ra c l S a f e p o r t s p o r t 777 # m u l t i l i n g h t t pa c l S a f e p o r t s p o r t 631 # cupsa c l S a f e p o r t s p o r t 873 # r s y n ca c l S a f e p o r t s p o r t 901 # SWATa c l purge method PURGEa c l CONNECT method CONNECTh t t p a c c e s s a l l o w manager l o c a l h o s th t t p a c c e s s deny managerh t t p a c c e s s a l l o w purge l o c a l h o s th t t p a c c e s s deny purgeh t t p a c c e s s deny ! S a f e p o r t sh t t p a c c e s s deny CONNECT ! S S L p o r t sa c l o u r n e t w o r k s s r c 1 7 2 . 2 0 . 0 . 0 / 2 4 1 9 2 . 1 6 8 . 2 . 0 / 2 4 1 2 7 . 0 . 0 . 1h t t p a c c e s s a l l o w o u r n e t w o r k sh t t p a c c e s s deny a l lh t t p r e p l y a c c e s s a l l o w a l li c p a c c e s s a l l o w a l lc o r e d u m p d i r / v a r / s p o o l / s q u i d# Pa ra o uso do proxyc a c h e p e e r 1 9 2 . 1 6 8 . 6 0 . 8 p a r e n t 3128 3130 no−query

32.2 Clientes com acesso ao proxy

72

Page 73: Servi Dores Linux

Notas de

Aula- 20

11

FIAP - Uso

Intern

o

Prof

.Ale

xand

erL

uzSp

eran

dio

• Defina as redes que podem acessar o servidor proxy e negue o acesso a todasas outras

a c l o u r n e t w o r k s s r c 1 7 2 . 2 0 . 0 . 0 / 2 4 1 9 2 . 1 6 8 . 2 . 0 / 2 4 1 2 7 . 0 . 0 . 1h t t p a c c e s s a l l o w o u r n e t w o r k sh t t p a c c e s s deny a l l

32.3 Bloqueio de sites

1. Vamos inserir duas novas ACLs (Access Control Lists)a c l b l o q u e a d o s u r l r e g e x − i ” / e t c / s q u i d / b l o c k . t x t ”a c l n a o b l o q u e a d o s u r l r e g e x − i ” / e t c / s q u i d / unb lock . t x t ”

2. Adicionar uma linha http access para negar o acesso a primeira acl e permitiro acesso a segunda (usando ! para negacao)

h t t p a c c e s s deny b l o q u e a d o s ! n a o b l o q u e a d o s

3. Criar os arquivos block.txt e unblock.txt com palavras que serao proibidase excecoes, respectivamente, uma por linha.Ex.: proibir a palavra “yahoo” em block.txt e permitir “yahoogroups” emunblock.txt.

Parte X

NFS33 NFS - Network File System

33.1 Introducao

• permite o compartilhamento de sistemas de arquivos

• Servicos, arquivos e comandos relacionados:

– servicos: portmap e nfs

– comandos: mount, umount– arquivos: /etc/exports, /etc/fstab

73

Page 74: Servi Dores Linux

Notas de

Aula- 20

11

FIAP - Uso

Intern

o

Prof

.Ale

xand

erL

uzSp

eran

dio

33.2 O servidor NFS

Configuracao do servidor

• /etc/exports

# / e t c / e x p o r t s#/ pub 1 0 . 1 . 1 . 0 / 2 4 ( ro , a sync ) L01Micro07 ( rw , sync )

– ro - read only

– async - processa solicitacoes de gravacao de maneira assincrona. Mel-hora o desempenho na gravacao, mas possibilita a perda de dados nocaso de queda.

• /etc/init.d/portmap start

• /etc/init.d/nfsserver start

33.3 Montagem do sistema de arquivos via NFS

Configuracao do cliente

• mount servidor:/diretorio /mnt (root)

• /etc/fstab# / e t c / f s t a bs e r v e r : / pub / mnt n f s r s i z e =8192 , ws ize =8192 , t imeo =14 , i n t r

– rsize - numero de bytes usados na leitura de arquivos

– wsize - numero de bytes usados na escrita de arquivos

– timeo - tempo limite para requisicoes em decimos de segundo

– intr - permite aos usuarios interromperem as operacoes bloqueadas(fazendo com que retorne um erro)

• man nfs para mais informacoes

74

Page 75: Servi Dores Linux

Notas de

Aula- 20

11

FIAP - Uso

Intern

o

Prof

.Ale

xand

erL

uzSp

eran

dio

33.4 tcp wrappers

• /etc/hosts.deny nega o acesso a servicos

# / e t c / h o s t s . denyALL: ALL

• /etc/hosts.allow permite o acesso a servicos

# / e t c / h o s t s . a c c e s spor tmap : 1 0 . 1 . 1 . 0 / 2 4

• man hosts access para mais informacoes

Parte XI

samba34 Conhecendo o Samba

34.1 Introducao

O que e o Samba?

• Servidor e conjunto de ferramentas para Unix para conversar com redes Win-dows

• Protocolo SMB (Server Message Block) ou CIFS (Common Internet FileSystem)

• UNIX, Linux, IBM System 390, OpenVMS e outros sistemas operacionais

Como posso usar o Samba?

• Cliente de uma rede Windows

• Servidor de domınio para clientes Windows

• Controle de acesso em nıvel de usuario

• Servidor de impressao para redes Windows

• Servidor WINS

• etc.

75

Page 76: Servi Dores Linux

Notas de

Aula- 20

11

FIAP - Uso

Intern

o

Prof

.Ale

xand

erL

uzSp

eran

dio

34.2 Daemons

O servidor Samba consiste essencialmente em dois ou tres daemons:

• nmbd - suporta o servico de nomes NetBIOS e WINS. Participa no mecan-ismo de navegacao de rede;

• smbd - responsavel pelo compartilhamento de arquivos e impressoras, autenticacaoe autorizacao para clientes SMB;

• winbindd - utilizado quando Samba e membro de um domınio Windows.

34.3 Programas utilitarios

• smbclient - ferramenta de navegacao para acesso a recursos de uma maquinaSMB remota; possui interface similar a de um cliente FTP;

• smbmount, smbumount - monta/desmonta um compartilhamento de umamaquina SMB remota;

• testparm - faz a checagem do arquivo smb.conf;

• smbpasswd - cria os usuarios samba na maquina Linux;

• smbtree - similar ao ambiente de rede do windows, em modo texto;

• swat

SWAT

• Interface WEB para facilitar a configuracao do Samba

• Necessita do servidor WEB

• Acessıvel em: http://localhost:901/

35 Configurando o Samba

35.1 O arquivo smb.conf

• /etc/samba/smb.conf 21

> /usr/sbin/smbd -b | grep smb.confCONFIGFILE: /etc/samba/smb.conf

• Sintaxe e a mesma dos arquivos .ini desde Windows3.1

21smbd -b mostra os parametros com os quais o samba foi compilado (ver man smbd)

76

Page 77: Servi Dores Linux

Notas de

Aula- 20

11

FIAP - Uso

Intern

o

Prof

.Ale

xand

erL

uzSp

eran

dio

– nomes de secoes sao colocados entre colchetes ( [ ] )Ex.: [global] e a secao principal de configuracao

– cada secao contem configuracoes na forma: chave = valorEx.: workgroup = meugrupo define o grupo de trabalho onde o servi-dor samba estara inserido.

smb.conf

[global]workgroup = homenetbios name = linux[share]path = /tmpcomment = Arquivos[homes]guest ok = noread only = no

Palavras-chave

Secao global

• workgroup - O grupo de trabalho ao qual pertence essa maquina

• netbios name - Nome da maquina na rede SMB

Secao de compartilhamento share

• path - Diretorio do Unix a ser compartilhado

• comment - Comentario sobre o compartilhamento

Secao de compartilhamento homes

• guest ok - usuario guest conecta sem senha.

• read only - se somente para leitura.

35.2 Configuracao de um PDC

PDC

Modificacoes para um PDCVamos modificar o ultimo arquivo de configuracao para obtermos um PDC. Umamaquina Windows NT Server.

77

Page 78: Servi Dores Linux

Notas de

Aula- 20

11

FIAP - Uso

Intern

o

Prof

.Ale

xand

erL

uzSp

eran

dio

Secao globalannounce as = NT Serversecurity = userdomain master = yesprefered master = yes

Palavras-chave

• prefered master - Forca uma eleicao com algumas vantagens para sereleito sempre como o controlador de domınio

• announce as - Seleciona o nome com o qual o samba (nmbd) se anunciarana lista de pesquisa de rede

Contas de maquinas de domınioUma conta de maquina de domınio garante que nenhum outro computador

possa utilizar o mesmo nome de uma maquina confiavel e assim utilizar os com-partilhamentos que ela tem permissao.

Criacao de contas de maquinas

• arquivo /etc/passwd

useradd -g domainmac -c “Maquina de Dominio” -s /bin/false -d /dev/nullmaster$

• arquivo /etc/samba/smbpasswd

smbpasswd -m -a master

Criacao das contas de maquina automaticamente

Por, na secao global do arquivo smb.conf:

add machine script = useradd -g domainmac -c “Maquina de Dominio” -s/bin/false -d /dev/null %u

Criacao de scripts de logon[global]domain logons = yeslogon script = logon.cmdlogon drive = H:

Palavras-chave

• domain logons - ativa o recurso de logon scripts do samba

78

Page 79: Servi Dores Linux

Notas de

Aula- 20

11

FIAP - Uso

Intern

o

Prof

.Ale

xand

erL

uzSp

eran

dio

• logon script - e o script que sera executado na maquina cliente quandofizer o logon

• logon drive - unidade de disco que tera o homedir do usuario mapeado.Maquinas NT/2000/XP

Criacao de scripts de logon

[netlogon]path = /pub/samba/netlogonread only = yeswrite list = ntadmin

Palavras-chave

• write list - Lista de usuarios separados por espaco ou vırgula que poderaoler e gravar no compartilhamento. Caso o nome for iniciado por ”@”, onome especificado sera tratado como um grupo UNIX (/etc/group) e todosos usuarios daquele grupo terao acesso de gravacao

36 Documentacao

• http://focalinux.cipsga.org.br/ avancado - cap. 18

• http://www.samba.org/ documentacao, versao (3.0), fontes, binarios, GUIs,informacoes ao desenvolvedor,..

• pacote samba-doc SAMBA Developers Guide Samba-3 by Example HOWTOand Reference Guide Using Samba, 2nd Edition

• man pages

37 lab: samba

37.1 Objetivos

• Utilizar as ferramentas do pacote samba

• Utilizar uma configuracao basica do arquivo smb.conf

• Configurar um controlador de domınio

79

Page 80: Servi Dores Linux

Notas de

Aula- 20

11

FIAP - Uso

Intern

o

Prof

.Ale

xand

erL

uzSp

eran

dio

37.2 Utilitarios

37.2.1 smbclient

Para a listagem dos compartilhamentos existentes em um servidor:

• smbclient -L servidor+ Lista os compartilhamentos de servidor;

• smbclient //servidor/pasta -U aluno -W grupo+ Acessa o compartilhamento como usuario aluno e grupo de trabalho grupo.Comandos como ls, put e get sao aceitos para transferencia de arquivos.

> smbclient -L w2k -U aluno -W homePassword:Domain=[W2K] OS=[Windows 5.0] Server=[Windows 2000 LAN Manager]

Sharename Type Comment--------- ---- -------IPC$ IPC IPC remototemp Disk arquivos temporariosADMIN$ Disk Administracao remotaC$ Disk Recurso compartilhado padraoDomain=[W2K] OS=[Windows 5.0] Server=[Windows 2000 LAN Manager]

Server Comment--------- -------

Workgroup Master--------- -------

> smbumount mnt/

37.2.2 smbmount

Permite a montagem de um disco compartilhado por uma maquina SMB re-mota como uma particao.

• smbmount //sarge/aluno mnt/ -o username=aluno,workgroup=home

• smbumount mnt/

> smbmount //w2k/C$ mnt/ -o username=administradorPassword:> ls mnt/arcldr.exe Documents and Settings PDFsarcsetup.exe IO.SYS RECYCLERArquivos de programas MSDOS.SYS System Volume InformationAUTOEXEC.BAT NTDETECT.COM tempBootfont.bin ntldr WINNTboot.ini pagefile.sysCONFIG.SYS PDF LIVRE

80

Page 81: Servi Dores Linux

Notas de

Aula- 20

11

FIAP - Uso

Intern

o

Prof

.Ale

xand

erL

uzSp

eran

dio

37.2.3 nmblokup

Resolve nome ou IP de um cliente e lista suas caracterısticas.> nmblookup sargequerying sarge on 192.168.2.255192.168.2.5 sarge<00>> nmblookup w2kquerying w2k on 192.168.2.255querying w2k on 192.168.0.255querying w2k on 172.20.255.255172.20.0.2 w2k<00>

Quanto ao codigo em hexadecimal:

• 00 = O servico NetBEUI esta sendo executado na maquina.

• 03 = Nome generico da maquina (nome NetBIOS).

• 1d - GRUPO = Navegador Local de Domınio/Grupo.

• 1b = Navegador Principal de Domınio.

• 03 - GRUPO = Nome Generico registrado por todos os membros do grupode trabalho.

• 1c - GRUPO = Controladores de Domınio / Servidores de logon na rede.

• 1e - GRUPO = Resolvedores de Nomes Internet (WINS).

37.3 Configuracao do arquivo smb.conf

[global] # secao globalworkgroup = HOME # grupo de trabalho da maquinanetbios name = linux # Nome da maquina na rede SMB# share1 e share2 sao secoes de compartilhamento[share1]path = /tmp # Diretorio do Unix a ser compartilhadocomment = Diretorio temporario do sistemaread only = novalid users = aluno[share2]path = /pubcomment = Arquivos # Comentario sobre o compartilhamento[homes] # Compartilhamento dos diretorios de usuarios do Unixcomment = Home oirectoriesbrowseable = nowritable = yescreate mask = 0700directory mask = 0700

1. Editar o arquivo /etc/samba/smb.confFaremos modificacoes para o Linux aparecer no ambiente de rede do Win-dows;

81

Page 82: Servi Dores Linux

Notas de

Aula- 20

11

FIAP - Uso

Intern

o

Prof

.Ale

xand

erL

uzSp

eran

dio

2. testparmPara testar o novo arquivo smb.conf

3. Editar arquivo /etc/hosts.allowSamba vem com tcpwrappers: arquivos hosts.allow e hosts.deny controlamacesso pela rede;

4. Reiniciar servidor samba para que as novas configuracoes sejam lidasOs scripts que iniciam os servicos ficam em /etc/init.d

37.4 Controlador de Domınio

A configuracao abaixo, faz com que o samba trabalhe como um PDC - PrimaryDomain Controller.# Global parameters[global]workgroup = HOMEnetbios name = LINUXserver string = Linux Serverpassdb backend = tdbsamsecurity = user

log file = /var/log/samba/%m.log #log por maquinamax log size = 500

# add user script = /usr/sbin/useradd -m %u# delete user script = /usr/sbin/userdel -r %u# add group script = /usr/sbin/groupadd %g# delete group script = /usr/sbin/groupdel %g# add user to group script = /usr/sbin/groupmod -A %u %g# delete user from group script = /usr/sbin/groupmod -R %u %g# add machine script = /usr/sbin/useradd -s /bin/false -d /var/lib/nobody %u

# script de login para ser executado no windowslogon script = logon.cmdlogon path = \\%N\%U\profile #profiles no diretorio do usuariologon drive = X:logon home = "\\%N\%U"

# configuracao de domıniodomain logons = Yesos level = 100preferred master = Yesdomain master = Yeswins support = Yestime server = Yes

# impressoraprintcap name = cupsprinting = cups

[homes]comment = Home Directorieswritable = Yesbrowseable = Nocreate mask = 0600directory mask = 0700

82

Page 83: Servi Dores Linux

Notas de

Aula- 20

11

FIAP - Uso

Intern

o

Prof

.Ale

xand

erL

uzSp

eran

dio

valid users = %S #apenas para usuarios autenticados

[netlogon]comment = Network Logon Servicepath = /var/lib/samba/netlogonadmin users = aluno, @adminguest ok = Yesbrowseable = No

[printers]comment = All Printerspath = /var/spool/sambaprinter admin = aluno, @admincreate mask = 0600printable = Yesbrowseable = No

[print$]comment = Printer Drivers Sharepath = /var/lib/samba/driverswrite list = aluno, @adminprinter admin = aluno, @admin

[tmp]comment = Temporary file spacepath = /tmpread only = Noguest ok = Yes

1. Crie uma conta de maquina no servidor Linux

useradd -g maquina -c "maquina de dominio" -s /bin/false \-d /dev/null w2000$smbpasswd -m -a w2000

2. Crie uma conta para o root no samba

smbpasswd -a root

3. Crie o diretorio netlogon/scripts utilizado para a manutencao dos scripts delogon

mkdir -p /var/lib/samba/netlogon/scripts

4. Crie o script logon.cmd no diretorio criado

net use X: /HOMEnet time \\LINUX /set /yes

5. Crie usuarios do sistema Linux que podem logar a partir do windows

83

Page 84: Servi Dores Linux

Notas de

Aula- 20

11

FIAP - Uso

Intern

o

Prof

.Ale

xand

erL

uzSp

eran

dio

useradd -s /bin/false userpasswd usersmbpasswd -a user

6. Configure o Windows para logar no domınio

Se o script logon.cmd for criado no sistema Linux, estara no formato Unix;nesse caso, use o utilitario unix2dos para converte-lo para o formato DOS.

No exemplo abaixo, # e o prompt de comando.

# unix2dos logon.cmd# lslogon.cmd# file logon.cmdlogon.cmd: ASCII text, with CRLF line terminators# dos2unix logon.cmd# file logon.cmdlogon.cmd: ASCII text

84

Page 85: Servi Dores Linux

Notasde

Aula

-2011

FIAP

-UsoInterno

Prof

.Al

exan

der

Luz

Sper

andi

o

A Comandos do vim

Comandos basicos

• i - entra em edicao na posicao do cursor

• < ESC > - volta para o modo de comandos

• :wq - salva (w) e sai (q)

• q! - sai sem salvar (! forca)

Outros comandos

• :r arquivo - adiciona arquivo na linha abaixo do cursor

• :w nome - salva arquivo com o nome fornecido

• o - entra em edicao abrindo uma linha abaixo do cursor

• O - entra em edicao abrindo uma linha acima do cursor

• :syntax on - liga as cores para sintaxe em linguagens de programcao

• :set nu - enumera as linhas

• :set nonu - retira a numeracao de linhas

• :10,20 w arquivo - salva o intervalo da linha 10 a linha 20 em arquivo

B qemu e vde2

qemu e um virtualizador e emulador de maquinas[?].Usado como emulador, ele pode rodar sistemas e programas de uma maquina/arquitetura

(ex.: ARM) em uma maquina diferente (ex.: PC);Quando usado como virtualizador, o qemu atinge performances proximas da

nativa quando utilizado junto com o modulo kqemu. Para o aproveitamento davirtualizacao por hardware contida nos processadores atuais, deve-se utilizar okvm.

vde e um software do projeto Virtual Square[?]. Esse projeto inclui variossoftwares e bibliotecas. O principal objetivo e criar um ambiente unificado quepermita a maquinas virtuais, sistemas e redes se comunicarem e iteragirem entresi.

85

Page 86: Servi Dores Linux

Notas de

Aula- 20

11

FIAP - Uso

Intern

o

Prof

.Ale

xand

erL

uzSp

eran

dio

B.1 Instalacao dos pacotes necessarios

Note o sımbolo # antes dos comandos. Significa que o comando deve ser ex-ecutado como root. Quando utilizado o sımbolo $, o comando deve ser executadopelo usuario.

# aptitude install kqemu-common kqemu-source module-assistant# aptitude install qemu vde2

B.2 Criacao do switch virtual

O comando abaixo deve ser executado pelo root. Criara um switch virtual em/tmp/vde1 com uma interface tap0 para conexao com o host.

A interface tap0 deve ser configurada para o acesso a maquina virtual a partirdo host. O comando ifconfig -a mostra todas as interfaces.

# vde_switch -d -s /tmp/vde1 -tap tap0 -m 666 -daemon

B.3 Conexao com a internet via DHCP

O comando slirpvde pode ser executado pelo usuario comum e permite aconexao do switch virtual a internet, fornecendo a configuracao de rede atravesdo protocolo DHCP, para as maquinas no switch.

$ slirpvde -s /tmp/vde1 --dhcp --network 172.20.0.0 --daemon

A opcao --network permite a especificacao da rede que sera distribuıda via dhcp.

B.4 Maquinas virtuais com o qemu

ATENCAO: Os scripts debian vma.sh e debian vmb.sh utilizam o comandovdeqemu para levantar duas maquinas virtuais a partir da imagem do arquivodebian vm.img.

Cada script levanta uma maquina com um endereco MAC diferente, para quese comuniquem atraves do switch virtual. Execute esses scripts para obter asmaquinas rodando.

# Exemplo de um dos scripts debian_vma.sh#$ vdeqemu -m 128 -hda debian5.img -boot c -net nic,macaddr=00:11:22:33:44:50-net vde,sock=/tmp/vde1 -snapshot

O comando dhclient pode ser utilizado nas maquinas virtuais para a configuracaovia DHCP se essa ja nao for a configuracao padrao na maquina virtual. Pode serutilizado, tambem na maquina host, para configurar a interface tap0 via DHCP.

# dhclient tap0

86