Apostila
Linux Networks Administration
www.3way.com.br
Linux Administration Linguagem de Programação Java Linux Network Network Administration
Este pode Este material material não pode ser ser distribuído. distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way Networks. Somente poderá ser utilizado por alunos da 3Way3232 Networks.
[email protected] | (62) 9333 www.3way.com.br www.3way.com.br
//atribuindo valor a variável referência = new Carro(); carro1.ano = "2001"; Convenções ......................................................................................................................................... ......................................................................................................................................... 6 66 Convenções carro1.modelo= "fusca"; Legendas........................................................................................................................................... 6 66 Legendas........................................................................................................................................... carro1.cor = "prata"; Cenário 66 Cenário ............................................................................................................................................. ............................................................................................................................................. 6 1. Redes TCP/IP ................................................................................................................................. 8 8 1. Redes TCP/IP ................................................................................................................................. 8 1.1. 88 1.1. Introdução Introdução ................................................................................................................................. ................................................................................................................................. 8 1.1.1. TCP/IP ................................................................................................................................ 8 8 1.1.1. TCP/IP ................................................................................................................................ 8 1.2. 99 1.2. Conceitos Conceitos básicos básicos ...................................................................................................................... ...................................................................................................................... 9 1.3. O protocolo IP ......................................................................................................................... 11 10 1.3. O protocolo IP ......................................................................................................................... 11 1.4. 11 1.4. O O Protocolo Protocolo TCP TCP ..................................................................................................................... .....................................................................................................................11 11 1.5. 12 1.5. Protocolos Protocolos de de rede rede ................................................................................................................... ...................................................................................................................11 12 1.5.1. 13 1.5.1. O O modelo modelo OSI OSI .................................................................................................................. ..................................................................................................................13 13 1.5.2. 14 1.5.2. Modelo Modelo TCP/IP TCP/IP ................................................................................................................. .................................................................................................................15 14 1.6. O Endereço IP ......................................................................................................................... 16 Figura 2.4 – Layout Memória após inicialização 1.6. O Endereço IP .........................................................................................................................16 16 1.7. Classes IP 16 1.7.//criando Classes de de Endereçamento Endereçamento IP.................................................................................................. ..................................................................................................16 16 novo alias 1.8. Endereços de Rede e Broadcast .............................................................................................. 17 Carro carro2 = carro1; 1.8. Endereços de Rede e Broadcast ..............................................................................................17 17 1.9. 18 1.9. Máscara Máscara de de rede rede....................................................................................................................... .......................................................................................................................17 18 1.10. Sub-rede ................................................................................................................................ 18 18 1.10. Sub-rede ................................................................................................................................ 18 1.11. 21 1.11. Endereços Endereços IP IP para para redes redes privadas privadas .......................................................................................... ..........................................................................................20 21 1.12. 21 1.12. O O Número Número de de Porta Porta................................................................................................................ ................................................................................................................22 21 1.13. Roteamento ........................................................................................................................... 21 1.13. Roteamento ...........................................................................................................................22 21 1.14. 22 1.14. DNS DNS ....................................................................................................................................... .......................................................................................................................................22 22 1.15. Arquivos Gerais .................................................................................................................... 22 23 1.15. Arquivos Gerais .................................................................................................................... 22 1.16. 23 1.16. Configuração Configuração TCP/IP TCP/IP ........................................................................................................... ...........................................................................................................24 23 1.16.1. Hostname ........................................................................................................................ 23 24 1.16.1. Hostname ........................................................................................................................ 23 1.16.2. 24 1.16.2. Interface Interface de de Rede Rede ............................................................................................................ ............................................................................................................25 24 26 1.17.3. Configuração das rotas ................................................................................................... 26 1.17.3. Configuração das rotas ................................................................................................... 26 1.17.4. 28 1.17.4. Resolução Resolução de de Nomes Nomes ...................................................................................................... ......................................................................................................28 28 Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto 28 1.18. Inetd / Xinetd ......................................................................................................................... 28 1.18. Inetd / Xinetd......................................................................................................................... 28 1.19. 31 1.19. Utilitários Utilitários de de redes redes ............................................................................................................... ...............................................................................................................32 31 32 1.19.1. 1.19.1. host host ................................................................................................................................. ................................................................................................................................. 31 31 2.3 1.19.2. Membros de............................................................................................................................. Instância 32 netstat 31 1.19.2. netstat ............................................................................................................................. 31 Cada objeto criado deverá ter sua própria instância de variáveis 33 Os valores das variáveis 1.19.3. 32 1.19.3. tcpdump tcpdump .......................................................................................................................... .......................................................................................................................... 32 (atributos) definidas pela classe. Os métodos definem o comportamento de um 34 em um objeto constituem 1.19.4. traceroute ........................................................................................................................ 33 1.19.4. traceroute ........................................................................................................................ 33 objeto.1.19.5. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. 34 nmap ............................................................................................................................... 33 1.19.5. nmap ............................................................................................................................... 33 classe. Porém não devemos confundir isto com a implementação do método, que 36 Dois objetos distintos têm 1.20. Laboratório ........................................................................................................................... 35 1.20. Laboratório ........................................................................................................................... 35 é compartilhada por todas as instâncias da classe. 39 o mesmo estado se suas 1.21. Exercícios ............................................................................................................................. 37 1.21. Exercícios ............................................................................................................................. 37 41 2. SSH ................................................................................................................................ 39 variáveis membro têm 2. Servidor Servidor SSH 39os 2.3.1 Invocação de................................................................................................................................ Métodos 41 2.1. Instalação e configuração ........................................................................................................ 39 mesmos valores.39 2.1. Objetos Instalação e configuração se comunicam pela........................................................................................................ troca de mensagens, isto significa que um 42 2.2. Laboratório ............................................................................................................................. 40 2.2. Laboratório ............................................................................................................................. 40 objeto pode ter que mostrar um comportamento particular invocando uma 43 2.3. Exercícios ................................................................................................................................ 41 2.3. Exercícios 41 operação apropriada................................................................................................................................ que foi definida no objeto. Em Java, isto é feito pela 45 3. de 42 chamada de um método emDomínio um objeto.................................................................................................... usando o operador binário "." (ponto), 3. Sistema Sistema de Nomes Nomes de de Domínio .................................................................................................... 42 45 3.1. Serviços de Nomes DNS ...................................................................................................... 42 devendo especificar mensagem completa: o objeto que é o recebedor da 3.1. Serviços deaNomes - DNS ...................................................................................................... 42 46 3.2. ................................................................................................................. 43 mensagem, o métododo ser invocado e os argumentos para o método (se houver). 3.2. Instalação Instalação doa BIND BIND ................................................................................................................. 43 46 3.2.1. Instalação código fonte ..................................................................................................... 43 O método invocado no recebedor pode também enviar informações de volta ao 3.2.1. Instalação código fonte..................................................................................................... 43 47 objeto 3.2.2. chamador atravésautomatizada de um valor de retorno. O método chamado deve ser Instalação .................................................................................................... 44 3.2.2. Instalação automatizada .................................................................................................... 44 47 um que esteja definido pelo objeto. 3.3. Hierarquia DNS ....................................................................................................................... 44 3.3. Hierarquia DNS ....................................................................................................................... 44 3.3.1 45 3.3.1 Hierarquia Hierarquia de de Consultas Consultas DNS DNS ........................................................................................... ...........................................................................................48 45
Sumário Carro carro1
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja Seja um um Profissional Profissional Aprendendo Aprendendo com com Profissionais Profissionais www.3way.com.br
212 11
Linguagem de Programação Java Linux LinuxNetwork Network Administration Administration
Este Estematerial material nãopode podeser serdistribuído. distribuído. Cursonão Especialista em Redes Somente Somentepoderá poderá ser serutilizado utilizadopor poralunos alunosda 3Way 3Way Networks. Networks.
[email protected] |da(62) 3232 9333 www.3way.com.br www.3way.com.br //atribuindo valor a variável referência
CarroCache carro1 new Carro(); 3.3.2. de =consultas ...........................................................................................................5249 Sumário carro1.ano = "2001"; 3.4. O arquivo named.ca.................................................................................................................5250 Convenções ......................................................................................................................................... 6 carro1.modelo= "fusca"; 3.5. Configurando o cliente DNS ...................................................................................................5451 Legendas........................................................................................................................................... 6 carro1.cor = "prata"; 3.5.1. Definir o servidor de DNS ................................................................................................ 51 54 Cenário ............................................................................................................................................. 6 3.5.2. Definir................................................................................................................................. a ordem de consulta .............................................................................................5552 1. Redes TCP/IP 8 3.6. Zonas e Domínios ................................................................................................................... 53 55 1.1. Introdução ................................................................................................................................. 8 3.7. Servidores DNS .......................................................................................................................5654 1.1.1. TCP/IP ................................................................................................................................ 8 3.8. Servidor de cache .................................................................................................................... 56 59 1.2. Conceitos básicos ...................................................................................................................... 9 3.9.OServidor primário ....................................................................................................................61 59 1.3. protocolo IP ......................................................................................................................... 11 3.9.1 Registros de Recursos ....................................................................................................... 60 1.4. O Protocolo TCP .....................................................................................................................63 11 O arquivo de RR ................................................................................................................64 61 1.5.3.9.2 Protocolos de rede ................................................................................................................... 12 3.10. Arquivo da Zona Reversa ..................................................................................................... 64 1.5.1. O modelo OSI ..................................................................................................................66 13 3.11. Ferramentas de Teste .............................................................................................................68 66 1.5.2. Modelo TCP/IP ................................................................................................................. 14 3.11.1. nslookup ......................................................................................................................... 66 Figura 2.4 – Layout Memória após inicialização 1.6. O Endereço IP .........................................................................................................................68 16 dig 66 //criando novo alias 1.7.3.11.2. Classes de................................................................................................................................... Endereçamento IP ..................................................................................................69 16 3.12. Servidor Secundário .............................................................................................................. 67 Carro carro2 = carro1; 1.8. Endereços de Rede e Broadcast ..............................................................................................69 17 3.15. Laboratório ........................................................................................................................... 70 1.9. Máscara de rede .......................................................................................................................73 18 3.16. Exercícios ............................................................................................................................. 74 1.10. Sub-rede ................................................................................................................................77 18 4.1.11. DHCP ............................................................................................................................................ 75 Endereços IP para redes privadas ..........................................................................................78 21 4.1. Protocolo ...................................................................................................................... 75 1.12. O NúmeroDHCP de Porta ................................................................................................................78 21 4.2 Instalando o DHCP................................................................................................................... 78 1.13. Roteamento ...........................................................................................................................80 21 4.2.1. código fonte ....................................................................................................81 78 1.14. DNSInstalação ....................................................................................................................................... 22 4.2.2. Instalação automatizada .................................................................................................... 78 1.15. Arquivos Gerais ....................................................................................................................81 22 4.3. Configuração ................................................................................................81 79 1.16. Configuração servidor TCP/IP DHCP ........................................................................................................... 23 4.4 Configuração Cliente DHCP ................................................................................................... 82 1.16.1. Hostname ........................................................................................................................84 23 4.5. Gerenciando ...........................................................................................................85 83 1.16.2. InterfaceSub-redes de Rede ............................................................................................................ 24 4.5.1. Configuração Servidor dhcrelay ....................................................................................... 83 1.17.3. Configuração das rotas ...................................................................................................85 26 4.5.2. Configuração para gerenciar sub-redes ........................................................................... 84 87 1.17.4. Resolução de Figura Nomes ...................................................................................................... 28 2.5 – Layout Memória duas variáveis referência para o mesmo objeto 4.6. Integração DHCP e DNS .........................................................................................................87 85 1.18. Inetd / Xinetd ......................................................................................................................... 28 4.7. Laboratório ............................................................................................................................. 89 1.19. Utilitários de redes ...............................................................................................................92 31 4.8. Exercícios ...............................................................................................................................94 91 1.19.1. host de ................................................................................................................................. 31 2.3 Membros Instância 5. NTP ................................................................................................................................................ 92 95 1.19.2. netstat ............................................................................................................................. 31 Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis 5.1. Instalação ................................................................................................................................. 93 96 1.19.3. tcpdump 32 (atributos) definidas pela.......................................................................................................................... classe. Os métodos definem o comportamento de um em um objeto constituem 96 5.1.1. Instalação código fonte .................................................................................................... 93 traceroute ........................................................................................................................ 33 objeto.1.19.4. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. 5.1.2. Instalação automatizada....................................................................................................96 93 nmap ............................................................................................................................... 33 classe. 1.19.5. Porém não devemos confundir isto com a implementação do método, que Dois objetos distintos têm 97 5.2. Configuração ........................................................................................................................... 94 1.20. Laboratório ........................................................................................................................... 35 é compartilhada por todas as instâncias da classe. 98 o mesmo estado se suas 5.3. Ferramentas .............................................................................................................................37 95 1.21. Exercícios ............................................................................................................................. 99 5.4. Laboratório ............................................................................................................................. 97os variáveis membro têm 2. Servidor SSH 39 2.3.1 Invocação de................................................................................................................................ Métodos 100 5.5. Exercícios ............................................................................................................................... 99 mesmos valores.39 se comunicam pela........................................................................................................ troca de mensagens, isto significa que um 2.1. Objetos Instalação e configuração 102 6.2.2. Sistema de Arquivo de rede ....................................................................................................... 100 objeto pode ter que ............................................................................................................................. mostrar um comportamento particular invocando uma Laboratório 40 102 6.1. Instalação ............................................................................................................................... 100 operação apropriada................................................................................................................................ que foi definida no objeto. Em Java, isto é feito pela 2.3. Exercícios 41 102 6.1.1. Instalação código fonte ................................................................................................... 101 chamada de um método em um objeto usando o operador binário "." (ponto), 3. Sistema de Nomes de Domínio .................................................................................................... 42 103 Instalação automatizada .................................................................................................. 101 devendo especificar mensagem completa: o objeto que é o recebedor da 3.1.6.1.2. Serviços deaNomes - DNS ...................................................................................................... 42 103 6.2. Autenticação e permissões .................................................................................................... 102 mensagem, o método a ser invocado e os argumentos para o método (se houver). 3.2. Instalação do BIND ................................................................................................................. 43 104 O método invocado no recebedor pode..................................................................................................... também enviar informações de volta ao 6.3. Montando compartilhamentos NFS ...................................................................................... 102 43 3.2.1. Instalação código fonte 105 objeto chamador através de um valor de retorno. O método chamado deve ser 6.3.1 Montagem automática .................................................................................................... 103 3.2.2. Instalação automatizada.................................................................................................... 44 um que definidoNFS pelo ..................................................................................................................... objeto. 106 6.4.esteja O servidor 104 3.3. Hierarquia DNS ....................................................................................................................... 44 110 6.6. Laboratório ........................................................................................................................... 108 3.3.1 Hierarquia de Consultas Todos DNSos ........................................................................................... 45 direitos reservados a 3Way Networks Seja um Profissional Aprendendo com Profissionais
Seja Sejaum umProfissional ProfissionalAprendendo Aprendendocom comProfissionais Profissionais www.3way.com.br
312 12
Linguagem de Programação Java Linux LinuxNetwork Network Administration Administration
Este Estematerial material nãopode podeser serdistribuído. distribuído. Cursonão Especialista em Redes Somente Somentepoderá poderá ser serutilizado utilizadopor poralunos alunosda 3Way 3Way Networks. Networks.
[email protected] |da(62) 3232 9333 www.3way.com.br www.3way.com.br //atribuindo valor a variável referência
carro1 = new Carro(); 6.6.Carro Exercícios ............................................................................................................................. 110 112 Sumário carro1.ano = "2001"; 7. Samba .......................................................................................................................................... 111 113 Convenções ......................................................................................................................................... 6 carro1.modelo= "fusca"; 7.1. Visão Geral ............................................................................................................................ 111 113 Legendas........................................................................................................................................... 6 carro1.cor = "prata"; 7.2. O Protocolo SMB ................................................................................................................. 113 115 Cenário ............................................................................................................................................. 6 7.3. OTCP/IP protocolo NETBEUI.......................................................................................................... 115 114 1. Redes ................................................................................................................................. 8 7.4. Instalando o Samba .............................................................................................................. 114 116 1.1. Introdução ................................................................................................................................. 8 7.4.1.TCP/IP Instalando código fonte ................................................................................................. 116 114 1.1.1. ................................................................................................................................ 8 116 7.4.2. Instalação automatizada .................................................................................................. 115 1.2. Conceitos básicos ...................................................................................................................... 9 7.5.OConfiguração 115 1.3. protocolo IP......................................................................................................................... .........................................................................................................................117 11 118 7.5.1. Seção global .................................................................................................................. 116 1.4. O Protocolo TCP ..................................................................................................................... 11 123 Seção de homes 1.5.7.5.2. Protocolos rede................................................................................................................... ...................................................................................................................122 12 7.6. Samba como PDC ................................................................................................................. 123 1.5.1. O modelo OSI ..................................................................................................................124 13 127 7.7. Conta de usuário Samba ....................................................................................................... 124 1.5.2. Modelo TCP/IP ................................................................................................................. 14 128 7.8.OConta de máquina Samba ...................................................................................................... 126 Figura 2.4 – Layout Memória após inicialização 1.6. Endereço IP ......................................................................................................................... 16 130 7.9. Servidor samba em um domínio........................................................................................... 127 //criando novo alias 1.7. Classes de Endereçamento IP .................................................................................................. 16 131 7.10. Compartilhamentos de arquivos .......................................................................................... 128 Carro carro2 = carro1; 1.8. Endereços de Rede e Broadcast .............................................................................................. 17 131 7.11. Controle de acesso a nível de senha .................................................................................... 129 1.9. Máscara de rede....................................................................................................................... 18 132 7.12.Sub-rede Controle................................................................................................................................ de acesso a nível de usuário ................................................................................. 130 1.10. 18 134 7.14. O Utilitário testparm ........................................................................................................... 132 1.11. Endereços IP para redes privadas .......................................................................................... 21 134 7.15.OScript de logon .................................................................................................................... 1.12. Número de Porta ................................................................................................................132 21 137 7.16. Servidor Wins ...................................................................................................................... 135 1.13. Roteamento ........................................................................................................................... 21 137 7.16.1. como cliente WINS ......................................................................................... 135 1.14. DNSSamba ....................................................................................................................................... 22 137 7.16.2. Samba como.................................................................................................................... Servidor WINS ...................................................................................... 136 1.15. Arquivos Gerais 22 138 7.17. Compartilhando Impressoras............................................................................................... 136 1.16. Configuração TCP/IP ........................................................................................................... 23 140 7.18. Samba como cliente ............................................................................................................ 137 1.16.1. Hostname ........................................................................................................................ 23 141 7.19. Samba no cliente Windows ................................................................................................. 138 1.16.2. Interface de Rede ............................................................................................................ 24 142 7.20. Laboratório ......................................................................................................................... 1.17.3. Configuração das rotas ...................................................................................................140 26 144 7.21. Exercícios ........................................................................................................................... 143 1.17.4. Resolução de Figura Nomes ...................................................................................................... 28 2.5 – ..................................................................................................... Layout Memória duas variáveis referência para o mesmo objeto 145 7.1.18. FTPInetd (File /Transfer Protocol) 144 Xinetd......................................................................................................................... 28 145 7.1. Introdução ............................................................................................................................. 144 1.19. Utilitários de redes ............................................................................................................... 31 145 7.2. Protocolo FTP ....................................................................................................................... 145 1.19.1. host de ................................................................................................................................. 31 2.3 7.3. Membros Instância 146 Instalação ............................................................................................................................... 146 1.19.2. netstat ............................................................................................................................. 31 Cada Instalação objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis 147 7.3.1. código fonte ................................................................................................... 146 1.19.3. tcpdump 32 (atributos) definidas pela.......................................................................................................................... classe. Os métodos definem o comportamento de um em um objeto constituem 7.3.2. Instalação automatizada .................................................................................................. 147 147 1.19.4. traceroute ........................................................................................................................ 33 objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. 147 7.4. Usuários FTP ......................................................................................................................... 147 nmap ............................................................................................................................... 33 classe. 1.19.5. Porém não devemos confundir isto com a implementação do método, que Dois objetos distintos148 têm 7.5. Firewall e ip_conntrack ......................................................................................................... 148 1.20. Laboratório ........................................................................................................................... 35 é compartilhada por todas as instâncias da classe. o mesmo estado se suas 7.6. Arquivos log do FTP ........................................................................................................ 148 149 1.21. Exercíciosde............................................................................................................................. 37 7.7. Executando o cliente FTP ..................................................................................................... 149 variáveis membro têm 149 2. Servidor SSH 39os 2.3.1 Invocação de................................................................................................................................ Métodos 7.8. Laboratório ........................................................................................................................... 152 mesmos valores.152 se comunicam pela........................................................................................................ troca de mensagens, isto significa que um 2.1. Objetos Instalação e configuração 39 7.9. Exercícios ............................................................................................................................. 153 153 objeto ter que ............................................................................................................................. mostrar um comportamento particular invocando uma 2.2.pode Laboratório 40 8.2.3. Servidor Web................................................................................................................................ .............................................................................................................................. 154 154 operação apropriada que foi definida no objeto. Em Java, isto é feito pela Exercícios 41 8.1. World Wide Web ................................................................................................................... 155 155 chamada de um método em um objeto usando o operador binário "." (ponto), 3. Sistema de Nomes de Domínio .................................................................................................... 42 157 8.2.Serviços O Apache 156 devendo especificar aNomes mensagem completa: o objeto que é o recebedor da 3.1. de............................................................................................................................... - DNS ...................................................................................................... 42 157 8.3. Instalando o Apache .............................................................................................................. 156 mensagem, o método a ser invocado e os argumentos para o método (se houver). 3.2. Instalação do BIND ................................................................................................................. 43 157 O método invocado no recebedor pode..................................................................................................... também enviar informações de volta ao 8.3.1. Instalação códigofonte fonte ................................................................................................... 156 43 3.2.1. Instalação código 158 objeto chamador através de um valor de retorno. O método chamado deve ser 8.3.2. Instalação automatizada .................................................................................................. 157 3.2.2. Instalação automatizada.................................................................................................... 44 um que definido pelo objeto. 158 8.4.esteja Protocolo HTTP .................................................................................................................... 157 3.3. Hierarquia DNS ....................................................................................................................... 44 160 8.5. Publicação da Home-Page ..................................................................................................... 159 3.3.1 Hierarquia de Consultas Todos DNSos ........................................................................................... 45 direitos reservados a 3Way Networks Seja um Profissional Aprendendo com Profissionais
Seja Sejaum umProfissional ProfissionalAprendendo Aprendendocom comProfissionais Profissionais www.3way.com.br
412 13
Linguagem de Programação Java Linux LinuxNetwork Network Administration Administration
Este Estematerial material nãopode podeser serdistribuído. distribuído. Cursonão Especialista em Redes Somente Somentepoderá poderá ser serutilizado utilizadopor poralunos alunosda 3Way 3Way Networks. Networks.
[email protected] |da(62) 3232 9333 www.3way.com.br www.3way.com.br //atribuindo valor a variável referência
carro1 =donew Carro(); 8.6.Carro Configuração Apache ....................................................................................................... 161 160 Sumário carro1.ano = "2001"; 8.7. Laboratório ........................................................................................................................... 168 167 Convenções ......................................................................................................................................... 6 carro1.modelo= "fusca"; 8.8. Exercícios ............................................................................................................................. 169 171 Legendas........................................................................................................................................... 6 carro1.cor = "prata"; 9.Cenário Servidor de Email ....................................................................................................................... 170 172 ............................................................................................................................................. 6 9.1. Servidor Mensagens ........................................................................................................ 172 170 1. Redes TCP/IPde................................................................................................................................. 8 9.2. Agentes de mensagens ........................................................................................................... 170 172 1.1. Introdução ................................................................................................................................. 8 9.3. Instalando Servidor de Email ............................................................................................. 174 172 1.1.1. TCP/IP o................................................................................................................................ 8 9.3.1. Instalação código fonte .................................................................................................. 172 174 1.2. Conceitos básicos ...................................................................................................................... 9 Instalação automatizada ................................................................................................. 175 173 1.3.9.3.2. O protocolo IP ......................................................................................................................... 11 9.4. Configuração ......................................................................................................................... 173 175 1.4. O Protocolo TCP ..................................................................................................................... 11 9.5.Protocolos Aliases ................................................................................................................................... 176 1.5. de rede ...................................................................................................................177 12 9.6. Redirecionamento.................................................................................................................. 177 1.5.1. O modelo OSI ..................................................................................................................178 13 9.7. Laboratório ........................................................................................................................... 178 180 1.5.2. Modelo TCP/IP ................................................................................................................. 14 9.10. 180 Figura 2.4 – Layout Memória após inicialização 182 1.6. O Exercícios Endereço IP........................................................................................................................... ......................................................................................................................... 16 10. Servidor Proxy .......................................................................................................................... 181 183 //criando novo alias 1.7. Classes de Endereçamento IP .................................................................................................. 16 10.1. SQUID ................................................................................................................................. 183 Carro carro2 = carro1; 1.8. Endereços de Rede e Broadcast ..............................................................................................185 17 185 10.2. Instalação ............................................................................................................................. 183 1.9. Máscara de rede....................................................................................................................... 18 10.2.1. Instalação código fonte ................................................................................................ 185 183 1.10. Sub-rede ................................................................................................................................ 18 186 10.2.2. Instalação automatizada................................................................................................ 184 1.11. Endereços IP para redes privadas .......................................................................................... 21 10.3.OConfiguração ....................................................................................................................... 184 1.12. Número de Porta ................................................................................................................186 21 186 10.3.1. squid.conf ..................................................................................................................... 1.13. Roteamento ...........................................................................................................................184 21 187 10.3.2. Caching ......................................................................................................................... 185 1.14. DNS ....................................................................................................................................... 22 10.3.3. Restrições Acesso .................................................................................................... 191 188 1.15. Arquivos Geraisde .................................................................................................................... 22 191 10.3.4. Restrição das redes ....................................................................................................... 189 1.16. Configuração TCP/IP ........................................................................................................... 23 10.3.5.Hostname Restrição........................................................................................................................ por sites......................................................................................................... 192 190 1.16.1. 23 193 10.3.6. Restrição por termos em URLs .................................................................................... 190 1.16.2. Interface de Rede ............................................................................................................193 24 10.3.7.Configuração Autenticação das ................................................................................................................. 191 1.17.3. rotas ...................................................................................................195 26 10.4. Proxy Transparente .............................................................................................................. 193 1.17.4. Resolução de Figura Nomes ......................................................................................................196 28 2.5 – Layout Memória duas variáveis referência para o mesmo objeto 10.4.1. Masquerade .............................................................................................................. 194 1.18. InetdIP / Xinetd ......................................................................................................................... 28 197 10.4.2. Proxy Transparente com Squid ..................................................................................... 195 1.19. Utilitários de redes ...............................................................................................................201 31 10.5. SARG .................................................................................................................................. 198 1.19.1. host ................................................................................................................................. 31 2.3 10.5.1. Membros de Instância Instalação ...................................................................................................................... 201 198 1.19.2. netstat ............................................................................................................................. 31 Cada objeto criado ................................................................................................................ deverá ter sua própria instância de variáveis 201 Os valores das variáveis 10.5.2. Configuração 198 1.19.3. tcpdump 32 (atributos) definidas pela.......................................................................................................................... classe. Os métodos definem o comportamento de um 202 em um objeto constituem 10.5.3. Geração de relatórios .................................................................................................... 199 1.19.4. traceroute ........................................................................................................................ 33 objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. 203 10.6. Laboratório ......................................................................................................................... 200 nmap ............................................................................................................................... 33 classe. 1.19.5. Porém não devemos confundir isto com a implementação do método, que Dois objetos distintos205 têm 10.7.Laboratório Exercícios ........................................................................................................................... 202 1.20. ........................................................................................................................... 35 é compartilhada por todas as instâncias da classe. o mesmo estado se suas 1.21. Exercícios ............................................................................................................................. 37 variáveis membro têm 2. Servidor SSH 39os 2.3.1 Invocação de................................................................................................................................ Métodos mesmos valores.39 se comunicam pela........................................................................................................ troca de mensagens, isto significa que um 2.1. Objetos Instalação e configuração objeto ter que ............................................................................................................................. mostrar um comportamento particular invocando uma 2.2.pode Laboratório 40 operação apropriada................................................................................................................................ que foi definida no objeto. Em Java, isto é feito pela 2.3. Exercícios 41 chamada de um método em um objeto usando o operador binário "." (ponto), 3. Sistema de Nomes de Domínio .................................................................................................... 42 devendo especificar mensagem completa: o objeto que é o recebedor da 3.1. Serviços deaNomes - DNS ...................................................................................................... 42 mensagem, o método a ser invocado e os argumentos para o método (se houver). 3.2. Instalação do BIND ................................................................................................................. 43 O método invocado no recebedor pode..................................................................................................... também enviar informações de volta ao 43 3.2.1. Instalação código fonte objeto chamador através de um valor de retorno. O método chamado deve ser 3.2.2. Instalação automatizada.................................................................................................... 44 um que esteja definido pelo objeto. 3.3. Hierarquia DNS ....................................................................................................................... 44 3.3.1 Hierarquia de Consultas Todos DNSos ........................................................................................... 45 direitos reservados a 3Way Networks Seja um Profissional Aprendendo com Profissionais
Seja Sejaum umProfissional ProfissionalAprendendo Aprendendocom comProfissionais Profissionais www.3way.com.br
512 14
LinguagemAdministration de Programação Java Linux Network
Este material não pode serem distribuído. Curso Especialista Redes Somente poderá ser utilizado por alunos |da(62) 3Way Networks.
[email protected] 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
CONVENÇÕES LEGENDAS
Este documento possui algumas legendas que ajudam a ilustrar e facilitar o entendimento. Significa um comentário importante sobre determinado assunto. Acrescenta informação relevante ao tema. Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1; Acrescenta detalhes
técnicos que podem fazer diferença no momento de uma implementação ou ser relevantes em exames de certificação.
Apresenta uma linha de comando ou código referente às distribuições RHEL (RedHat Enterprise Linux) e CentOS.
Semelhante ao anterior, porém apresentando códigos ou linhas de comando para as distribuições Debian e Ubuntu.
CENÁRIO
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3 Membros de Instância O cenário do curso está baseado em quatro máquinas virtuais, sendo três Linux e uma Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis Windows. (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem duas primeiras máquinas Linux fazem parte adacada rede do laboratório 192.168.1.0/24 e objeto. Isto éAs importante, pois denota que um método pertence objeto da o seu estado. seus IPs ( 192.168.1.X e 192.168.1.Y ) serão definidos pelo instrutor no início do curso, bem classe. Porém não devemos confundir isto com a implementação do método, que Dois objetos distintos têm como se eles por serão endereços fixosdaou dinâmicos. é compartilhada todas as instâncias classe. o mesmo estado se suas As duas máquinas clientes farão parte da rede 10.0.0.0/24 e seus IPs poderão ser variáveis membro têm os 2.3.1 Invocaçãomanualmente de Métodos ou por DHCP, isso vai depender do assunto que está determinados sendo estudado. mesmos valores. Objetos se comunicam pela troca de mensagens, isto significa que um A nomenclatura das máquinas vai depender do domínio a ser adotado pelo instrutor para o objeto pode ter que mostrar um comportamento particular invocando uma curso, esse material vai adotar o domínio 3waylocal.net.br. Portanto as máquinas terão os nomes operação apropriada que foi definida no objeto. Em Java, isto é feito pela no seguinte formato: chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da maq
.3waylocal.net.br mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode tambémque enviar informações de volta ao Por exemplo para uma máquina utilize o IP 192.168.1.150 seu nome de host será objeto chamador através de um valor de retorno. O método chamado deve ser maq150.3waylocal.net.br. um que esteja definido pelo objeto.
A figura abaixo ilustra o cenário do curso.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
612
5
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
O ambiente acima será integralmente virtualizado por ferramentas como VirtualBox ou VMWare Server. A máquina maqX.3waylocal.net.br será muito utilizada no primeiro módulo (Linux Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto System Administrator), já a máquina maqY.3waylocal.net.br será utilizada nos outros dois módulos (Linux Network e Security Administrator) juntamente com as máquinas clientes Windows (10.0.0.W) e Linux (10.0.0.Z).
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
712 6
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
1. REDES TCP/IP
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Este capítulo é uma introdução aos conceitos do protocolo TCP/IP, tal como números IP, portas TCP, serviços, roteamento, ferramentas, etc.
1.1. INTRODUÇÃO 1.1.1. TCP/IP A pilha de protocolos TCP/IP foi originada nos Estados Unidos na ARPANET, uma rede militar americana, e pouco a pouco foi sendo ampliada por centenas de universidades e repartições públicas que foram sendo conectadas a ela Figura 2.5 –privadas Layout Memória variáveismeios referência de para ocomunicação. mesmo objeto através de linhas telefônicas eduas outros Mais tarde essa rede deu origem a grande rede mundial de computadores, a Internet. 2.3
O objetivo do TCP/IP era conectar várias redes locais e esse é o motivo de o Membros de Instância
objeto criado deveráinter-redes). ter sua própria Os valoresrefere-se das variáveis nome Cada ser Internet (ou seja, Na instância verdade,deo variáveis acrônimo TCP/IP a (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto constituem uma grande família de protocolos que funciona em conjunto em paraumpermitir uma objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. comunicação completa que englobam os protocolos TCP, que IP e outros como o ARP classe. Porém não devemos confundir isto com a implementação do método, Dois objetos distintos têm Resolution Protocol), ICMP (Internet Control Message Protocol), DNS é (Address compartilhada por todas as instâncias da classe.
o mesmo estado se suas variáveis membro têm os 2.3.1 Invocação de Métodos mesmos O projeto TCP/IPpela tevetroca suadeorigem por isto volta de 1969, porém, esta redevalores. tornouObjetos se comunicam mensagens, significa que um
(Domain Name Service) e outros.
objeto pode ter que somente mostrar uma comportamento particular invocando se operacional partir de 1975 quando sua uma funcionalidade já estava operação apropriada que foi definida no objeto. Em Java, isto é feito pela comprovada. Por volta de 1983, o novo modelo de referência TCP/IP estava chamada de um método em um objeto usando o operador binário "." (ponto), completamente padronizado e disponível publicamente, permitindo sua rápida devendo especificar a mensagem completa: o objeto que é o recebedor da popularização. mensagem, o método a ser invocado e os argumentos para o método (se houver). O método Atualmente invocado no recebedor pode também enviar informações de volta ao é utilizada a versão 4 do protocolo, no entanto, a versão 6 já foi objeto chamador através de um valor de retorno. O método chamado deve ser concebida para pelo suprir falhas e limitações da versão anterior. Já é possível ver um que esteja definido objeto.
endereçamentos IPv6 em pleno funcionamento e equipamentos que já trabalham com Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
812 7
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br
essa
//atribuindo valor a variável referência Carropilha carro1 new Carro(); nova de =protocolos. Esse material abordará carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
a versão 4.
1.2. CONCEITOS BÁSICOS
Todo computador em uma rede TCP/IP é denominado host e para entender melhor uma rede, é necessário classificar cada host que a compõe, cada um desenvolve tarefas específicas e variadas dentro desse contexto. Podemos classificálos como: servidor, cliente, roteador (gateway) e firewall. O que diferencia um servidor de um cliente é o fato de o primeiro sempre estar aguardando solicitações vindas do segundo ou de outro servidor (neste caso atuando como cliente). Por exemplo, um servidor Web (HTTP) retornará o conteúdo Figura 2.4 – Layout Memória após inicialização de uma página Web quando algum cliente requisitá-lo. //criando novo alias Carro carro2 = carro1;
Cliente/Servidor
Um roteador tem a função de repassar pacotes de uma rede para outra através da checagem dos endereços de destino. Dentro desta funcionalidade o roteador funciona como uma ligação entre uma rede e outra, portanto geralmente utiliza de tecnologias e protocolos diferentes. Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto 2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). Interligação duas redes por um roteador O método invocado no recebedor pode tambémdeenviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
Um firewall é um computador conectado a uma rede local e ao mesmo a Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
912 8
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência carro1 new Carro(); tempoCarro à uma rede =externa. Ele possui a função de filtrar determinados carro1.ano = "2001"; rede carro1.modelo= interna não necessita "fusca"; compartilhar externamente, ou seja, o carro1.cor = "prata"; permitir ou negar determinados serviços para uma rede externa.
serviços que a firewall pode
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1; Filtragem de uma rede interna por fillustração de um firewall filtrando uma rede interna.
A verdade é que, em uma rede TCP/IP, um hospedeiro pode ter a função de qualquer uma dos itens descritos anteriormente. Um mesmo computador pode ser um servidor para um serviço ao mesmo tempo que atua como cliente de outro e ao mesmo tempo ele pode estar realizando roteamento de pacotes de uma rede para outra.
1.3. O PROTOCOLO IP Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
O protocolo IP (Protocolo Internet) é a chave da interligação de redes que utilizam tecnologias e hardwares diferentes. Uma das características mais 2.3 Membros de Instância importantes do Protocolo IP é a divisão da informação a ser transportada de um ponto Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis ao outro em fragmentos denominados datagramas. (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem objeto. IstoTodo é importante, pois denota que um método pertence aecada objetoNo da cabeçalho datagrama é dividido em cabeçalho corpo. encontra-se o seu estado. classe. Porém não devemos confundir isto com a implementação do método, que informações como: origem do pacote, destino do pacote e informações específicas Dois objetos distintosdo têm é compartilhada por todas as instâncias da classe. protocolo; já o corpo do datagrama é utilizado para armazenar os odados, seja, mesmo ou estado se ao suas variáveis têma os mandar um email a junção do corpo de todos os datagramas formará, nomembro destino, 2.3.1 Invocação de Métodos mesmos valores. mensagem do email enviada pela origem. Objetosoriginal se comunicam pela troca de mensagens, isto significa que um objeto pode que mostrar umuma comportamento particular invocando O ter datagrama tem estrutura padronizada pelo uma protocolo IP que faz com operação apropriada que foi definida no objeto. Em Java, isto é feito pela que o endereçamento independente do hardware utilizado. chamada de um método em seja um objeto usando o operador binário "." (ponto), A principal vantagem do IP está na transformação de redeso diferentes devendo especificar a mensagem completa: objeto que ée ofisicamente recebedor daseparadas em uma rede mensagem, o método homogênea. a ser invocado e os argumentos para o método (se houver). funcionalmente O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto. Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 10 9
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor "prata"; O protocolo= TCP (Protocolo de Controle
1.4. O PROTOCOLO TCP
de Transmissão) tem como objetivo controlar os dados quando estão em tráfego de forma que todos dados enviados de uma máquina devem ser divididos em pacotes pelo emissor, podendo trafegar por caminhos distintos e finalmente serem remontados corretamente pelo receptor. O protocolo também cuida da perda de pacotes no trajeto entre um ponto ao outro, solicitando a retransmissão do pacote ao remetente. Vejamos um exemplo: duas redes compartilham um mesmo roteador, ponto de passagem entre elas. Se várias máquinas de uma rede enviarem pacotes para outra máquina na outra rede, obviamente estes pacotes passarão pelo roteador e se o tráfego 2.4 – Layout Memória inicialização gerado for intenso e acima daFigura capacidade de após repasse do roteador, este poderá ficar //criando novo alias sem espaço livre no buffer, sendo incapaz de retransmiti-los, pois o protocolo IP Carro carro2 = carro1; simplesmente descarta os pacotes excedentes. Porém, o protocolo TCP faz com que a máquina cheque a integridade dos dados e solicita a retransmissão dos faltantes em caso de erros. Assim, toda vez que um pacote é enviado na rede, o protocolo TCP cuida das confirmações de recebimento. Por essa característica é dito que o protocolo TCP é um serviço confiável sobre o protocolo IP. Outra característica importante do TCP é o controle de fluxo. Ao enviar dados na rede, a parte receptora indica à parte transmissora a quantidade de bytes que podem ser recebidos após os últimos dados recebidos, assim evita-se ultrapassar o limite da capacidade de buffer da máquina receptora.
1.5. PROTOCOLOS DE REDE Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto Para toda comunicação existe uma linguagem. Comunicação é impossível
2.3 Membros sem algum tipodedeInstância linguagem ou código preestabelecido. Em redes de computadores,
Cada objeto deverá tersão suachamados própria instância de variáveisÉ, portanto, Os valores das variáveis estes códigos de criado comunicação de protocolos. através das (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem regras estabelecidas pelos protocolos que os dados fluem de modo organizado e sem objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. perdas. classe. Porém não devemos confundir isto com a implementação do método, que Dois objetos distintos têm é compartilhada por todas as instâncias da classe.é importante e está baseada em uma série de A hierarquia de Protocolo
o mesmo estado se suas
camadas (ou níveis) que são dispostas uma a cima da outra, de forma semelhante variáveis membro têmaos 2.3.1 Invocação de Métodos uma pilha deseprotocolos. O número, o nome, isto o conteúdo e um a função de cada valores. camada mesmos Objetos comunicam pela troca de mensagens, significa que diferepode de teruma outra. Porém,particular o objetivo de uma cada camada é oferecer objeto que rede mostrarpara um comportamento invocando operação apropriada que foi para definida no objeto. superiores, Em Java, isto tornando-se é feito pela um filtro e conversor determinados serviços as camadas chamada de um método em um objeto usando o operador binário "." (ponto), de dados para a camada superior. devendo especificar a mensagem completa: o objeto que é o recebedor da âmbito dae os rede, a camada comunica com a camada n da outra mensagem,No o método a serlógico invocado argumentos para onmétodo (se houver). Omáquina. método invocado no recebedor pode também usadas enviar informações de volta ao As regras e convenções nessa comunicação são chamadas de objeto chamador através de um valor de retorno. O método chamado deve ser protocolo. Resumidamente, um protocolo é um conjunto de regras sobre o modo um que esteja definido pelo objeto. como se dará a comunicação entre as partes envolvidas. Assim, ao comunicar-se com Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 11 10
Linguagem de Programação Java
//atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 12
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); determinada máquina existem regras que devem ser respeitadas conjuntamente. carro1.ano = "2001"; isto não venha a acontecer, carro1.modelo= "fusca";a comunicação será dificultada e em alguns casos carro1.cor = "prata"; impossibilitá-la, ocorrendo o que chamamos de violação do protocolo.
Caso pode
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Comunicação através de camadas.
O conjunto de camadas de um protocolo é chamada de arquitetura de rede. Entre cada par de camadas adjacentes existe uma interface. A interface consiste nas operações e serviços que a mesma deve prover para camada superior a ela. A 2.5 – Layout Memória variáveis referência para o mesmosuficientes objeto especificação de uma Figura arquitetura deveduasconter informações para permitir que um desenvolvedor crie um programa ou construa um hardware de cada camada de modo que ela transmita-o corretamente ao protocolo adequado. 2.3 Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis 1.5.1. Odefinidas MODELO (atributos) pelaOSI classe. Os métodos definem o comportamento de um em um objeto constituem objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. classe. Porém devemos isto com a implementação do método, que O não modelo deconfundir referência OSI (Open System Interconnection) é conhecido Dois objetos distintos têm é como compartilhada por todas as instâncias da classe. o modelo de padronização de tecnologias de redes de computadores. O modelo
o mesmo estado se suas OSI teve como objetivo estabelecer uma regra e direcionamento no desenvolvimento variáveis membro têm os 2.3.1 Invocação de Métodos valores. de modelos arquiteturas redes. O modeloistoOSI define camadas.mesmos Estas camadas Objetos de se comunicam pelade troca de mensagens, significa que7um
objeto ter quedamostrar um forma: comportamento particular invocando uma estãopode dispostas seguinte operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto. Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 13 11
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1; Modelo de referência OSI
Física Esta camada tem como função adaptar o sinal de comunicação com o meio de transmissão. Esta camada possui acesso físico ao meio de transmissão e, portanto, trata de fatores como especificação elétrica, mecânica e outros fatores físicos que fazem a interface entre o equipamento e o meio de transmissão. Enlace de dados Esta camada trata a organização dos dados em pacote. Quando um pacote é enviado, esta camada é responsável pelo último empacotamento antes da transmissão. Quando um pacote é recebido, este verifica, em primeira instância, a integridade do pacote. Se o pacote apresentar erros, Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto este será descartado. Rede Responsável pela tabela de roteamento, portanto esta camada controla o envio de pacotes 2.3 Membros de Instância objeto criado sua própria instância de ao variáveis para osCada dispositivos corretosdeverá e deveter garantir que o pacote chegue dispositivoOscorreto. valores das variáveis (atributos) Transporte definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seudeficiências estado. Esta é uma camada intermediária que tem a função de corrigir as eventuais classe. Porém não devemos confundir isto com a implementação do método, que Dois objetos distintos têm é provenientes compartilhadado pornível todasrede. as instâncias da classe. o mesmo estado se suas Sessão variáveis membro têm os 2.3.1 Invocação de Métodos Esta camada fornece serviços como controle de comunicação (diálogo), gerenciamento de mesmos valores. Objetos se comunicam pela troca mensagens, isto significa que um token (sinalização) e gerenciamento de de tarefas. objeto pode ter que mostrar um comportamento particular invocando uma Apresentação operação apropriada que foi definida no objeto. Em Java, isto é feito pela Esta como objetivo manipular dados antes envio ao próximo nível, ou seja, chamada de umcamada método tem em um objeto usando o operador binário "."do (ponto), neste nível várias transformações são feitas, por exemplo: criptografia, compressão, etc. devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem,Aplicação o método a ser invocado e os argumentos para o método (se houver). O método Este invocado recebedor pode também enviar para informações depossível volta ao a comunicação através do nívelnooferece os meios de aplicação que seja objeto chamador através de um valor de retorno. O método chamado deve ser protocolo OSI. Nesta camada são definidos as funções de gerenciamento e mecanismos que tem um que esteja definido pelo objeto. como finalidade dar suporte ao desenvolvimento de aplicações em rede para o usuário. Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 14 12
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência carro1 = new Carro(); 1.5.2.Carro MODELO TCP/IP carro1.ano = "2001"; carro1.modelo= "fusca"; O protocolo= TCP/IP carro1.cor "prata";foi desenvolvido na
plataforma UNIX e, atualmente, é o protocolo mais utilizado no mundo. Ele, na verdade, é uma pilha de protocolos, não se limitando somente ao TCP e IP. A sigla TCP/IP se refere aos dois principais protocolos: o TCP (camada de transporte) e o IP (camada de rede). O protocolo IP permite a comunicação de dois pontos da rede sem a necessidade destes estarem no mesmo meio físico. Já o TCP fornece uma conexão confiável sobre o IP.
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Modelo TCP/IP
Acesso de Rede Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto Similar a camada física do protocolo OSI. Tem a função de determinar as características elétricas e mecânicas do meio de transmissão. Enfim, especificar os aspectos físicos da 2.3 Membros de Instância comunicação. Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis Rede (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem camadapois o IP é o protocolo maispertence importante, tem da a função de tornar as redes objeto. IstoNesta é importante, denota que um método a cadaele objeto o seu estado. homogêneas entre si, ou confundir seja, tem isto a função reunir redes do com arquiteturas classe. Porém não devemos com a de implementação método, que diferentes, fazendo com Dois objetos distintos têm sejam transparentes. é que compartilhada por todas as instâncias da classe. o mesmo estado se suas Transporte variáveis membro têm os 2.3.1 Invocação Métodosencontram-se os protocolos TCP e UDP. Esta Nesta decamada camadavalores. tem a mesmos Objetos se comunicam pela troca de mensagens, isto significa que um responsabilidade de transmitir e controlar o envio de dados de um nó ao outro. objeto pode ter que mostrar um comportamento particular invocando uma Aplicação que foi definida no objeto. Em Java, isto é feito pela operação apropriada Aplicação a um camada interage combinário o usuário. Ela oferece serviços como chamada de um métodoé em objetoque usando o operador "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da smtp(email), o telnet (terminal remoto), o ftp (transferência de arquivos), etc. mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto. Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 15 13
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Comparação do modelo TCP/IP com o OSI.
1.6. O ENDEREÇO IP Todo host tem um endereço exclusivo que o identifica na Internet ou mesmo na rede local. O endereço IPv4 é um número de 32 bits dividido de 4 porções de 8 bits (octetos) decimais. No IPv6, esse número de 128 bits composto por 16 octetos hexadecimais. Possui a capacidade de endereçar muito mais endereços que a versão 4. Por exemplo, uma única máquina pode ter um endereço de IP geralmente expresso de 3 formas: Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
Endereços
Descrição
149.76.12.4
Notação decimal de quatro partes, é a mais utilizada e mais legível.
2.3
Membros de Instância
Cada objeto criado deverá ter Notação sua própria instância de variáveis 0x954C0C04 hexadecimal. (atributos) definidas pela classe. Os métodos definem o comportamento de um 10010101.01001100.00001100.00000100 binária. objeto. Isto é importante, pois denota que Notação um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas 1.7. CLASSES DE ENDEREÇAMENTO IP variáveis membro têm os 2.3.1 Invocação de Métodos mesmos valores.do Objetos se comunicam pela troca dedos mensagens, isto IP significa um Ao iniciar a distribuição números paraqueempresas, os criadores
objeto podeperceberam ter que mostrar comportamento particular blocos invocando TCP/IP queumera vantajoso definir deuma endereços contíguos, no operação apropriada que foi definida no objeto. Em Java, isto é feito pela sentido de facilitar a administração. Verificaram também que as empresas tinham chamada de um método em um objeto usando o operador binário "." (ponto), portes especificar diferentes, e com istocompleta: surgiram as classes, além dedadefinir tipos de redes de devendo a mensagem o objeto que é que o recebedor tamanhos diferentes. Quando alguma para empresa necessitava mensagem, o método a ser invocado e os argumentos o método (se houver). de números IP, era Ofornecido método invocado no recebedor pode também enviar informações volta ao um bloco contíguo de endereços IP dedeuma classe adequada à sua objeto chamador através de um valor de retorno. O método chamado deve ser necessidade, baseada na quantidade de hosts a serem identificados com números IP. um que esteja definido pelo objeto.
Foram definidos 5 tipos de classes: A, B, C, D e E. Para se identificar uma Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 16 14
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); classe, procurou-se definir algo que seria melhor implementado em nível de carro1.ano = "2001"; hardware. Por isto, cada classe, foi definida baseando-se no primeiro dos quatro bytes carro1.modelo= "fusca"; carro1.cor = "prata"; do número IP, como segue:
Classe
Valor binário Faixa de valores expresso em binário Faixa de valores expresso em decimal do 1o. byte do 1o. byte do 1o. byte
A
0XXXXXXX
00000000 a 01111111
0 a 127
B
10XXXXXX
10000000 a 10111111
128 a 191
C
110XXXXX
11000000 a 11011111
192 a 223
D
1110XXXX
11100000 a 11101111
224 a 239
E
11110XXX
11110000 a 11110111
240 a 254
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 carro1; Assim, para= se identificar
se um número IP pertence a classe A basta saber o valor do bit do primeiro byte. Caso seja 0 pode-se concluir imediatamente que referese à classe A, caso contrário deve-se testar o segundo bit. Se o segundo bit for 0, conclui-se que refere-se à classe B, e assim sucessivamente até chegar a classe E. Quando este valor binário é convertido em valor decimal, podemos compreender melhor a faixa de endereços IP definidos por cada classe. Por exemplo, todo endereço IP de classe A tem o primeiro byte localizado na faixa de 0 a 127.
1.8. ENDEREÇOS DE REDE E BROADCAST Assim como foi padronizado que os endereços 127.X.X.X e 0.0.0.0 são Figura 2.5 para – Layout Memória duas variáveis para o mesmo objeto utilizados respectivamente endereços dereferência localhost (loopback) e rede padrão, também foram padronizados os seguintes endereços especiais: broadcast 2.3 Membros de Instância Cada criado utilizado deverá ter para sua própria de variáveis valores das variáveis É oobjeto endereço enviar instância mensagens para todosOsda mesma rede. (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem Assim como ocorre nos transmissores de rádio, através do processo denominado objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. radiodifusão. O endereço de broadcast é obtido atribuindo-se classe. Porém não devemos confundir isto com a implementação do método, queo valor 1 a todos os bits Dois objetos distintos têm parte de por hosttodas do asendereço IP.classe. Por exemplo, para o endereço 10.1.2.3 (classe A), o é da compartilhada instâncias da o mesmo estado se suas endereço de broadcast é 10.255.255.255. variáveis membro têm os 2.3.1 Invocação de Métodos Rede mesmos valores. Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode que mostrar um comportamento particulara invocando uma um host específico. O É ter o endereço utilizado para especificar rede e não operação apropriada que foi definida no objeto. Em Java, isto é feito pela os bits da parte de host endereço de broadcast é obtido atribuindo-se o valor 0 a todos chamada de um método em um objeto usando o operador binário "." (ponto), do endereço IP. Por exemplo, para o endereço 10.1.2.3 (classe A), o endereço de rede devendo especificar a mensagem completa: o objeto que é o recebedor da é 10.0.0.0. mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto através DE de umREDE valor de retorno. O método chamado deve ser 1.9. chamador MÁSCARA um que esteja definido pelo objeto.
Um conceito muito importante introduzido após a padronização das classes Todos os direitos reservados a 3Way Networks Seja um Profissional Aprendendo com Profissionais
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 17 15
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência carro1 = new Carro(); foi o Carro conceito de máscara de rede. A máscara de rede é utilizada para delimitar a parte carro1.ano = "2001"; referente ao endereço de rede e de host de um endereço IP. Por exemplo, para o carro1.modelo= "fusca"; carro1.cor = "prata"; endereço IP 10.1.2.3 (classe A), a máscara de rede é 255.0.0.0. Abaixo pode-se
observar alguns exemplos:
Endereço de rede
Endereço de host
Número IP
10.
1.2.3
Máscara de rede (em binário)
11111111.
00000000.00000000.00000000
Máscara de rede (em decimal)
255.
0.0.0
Máscara de rede (quantidade de 1's) 8 Figura 2.4 – Layout Memória após inicialização
A máscara um valor de 32 bits, exatamente como um endereço IP, podendo //criando novoé alias Carro carro2 = carro1; expresso também na forma decimal e na forma hexadecimal. A máscara de rede
ser por padrão define todos os bits do primeiro byte iguais a 1 (equivale ao valor 255) para o endereço de rede. Para os endereços de hosts ela deverá ter todos os bits iguais a 0 (número 0 na forma decimal). Pode-se expressar a máscara através da quantidade de bits 1, para a classe A o valor é 8 (10.1.2.3/8 ou 10.1.2.3/255.0.0.0). Classe A: 255.0.0.0 ou valor 8 Classe B: 255.255.0.0 ou valor 16 Classe C: 255.255.255.0 ou valor 24
1.10. SUB-REDE
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
Ao se utilizar o esquema de classes acima, na prática percebeu-se que a quantidade de hosts disponibilizada por uma rede de uma classe ora era muito pouca Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis ou era excessiva o Os usométodos de uma entidade. Lembre-se faixa de endereços (atributos) definidas pelapara classe. definem o comportamento de que um a em um objeto constituem classeIstoA,é importante, B e C correspondem 65 milhões, e da 255 endereços de hosts objeto. pois denota que uma método pertence a65 cadamil objeto o seu estado. classe. Porém não devemos confundir isto com a implementação do método, que respectivamente e que quando uma rede de uma destas classes era Dois fornecido umatêm objetospara distintos é entidade, compartilhadapecava-se por todas as instâncias da classe. pelo excesso, desperdiçando uma quantidade o mesmoenorme estado se de suas variáveis membro endereços IP.dePara resolver este problema, surgiu a ideia de sub-rede, lançadatêm naos 2.3.1 Invocação Métodos valores.IP RFC950, quese comunicam proporcionou um de melhor aproveitamento doum conjunto mesmos de números Objetos pela troca mensagens, isto significa que objeto pode ter que mostrar umfaixas comportamento particularIP invocando uma disponíveis, fornecendo de endereços sob medida de acordo com a operação apropriada que foi definida no objeto. Em Java, isto é feito pela necessidade de cada entidade. chamada de um método em um objeto usando o operador binário "." (ponto), O novo aesquema deslocamento dos bitsdada máscara para direita devendo especificar mensagemé baseado completa: onoobjeto que é o recebedor mensagem, método a serdo invocado e os argumentos para o método houver). ou para o esquerda esquema de máscara antigo (separa aumentar ou diminuir a Oquantidade método invocado no recebedor pode também enviar informações de volta ao de hosts/subredes. Por exemplo, para o IP 10.1.2.3 de classe A, com a objeto chamador através de um valor de retorno. O método chamado deve ser máscara alterada para 255.255.0.0, possibilita o aumento da porção de subredes e a um que esteja definido pelo objeto. diminuição do número de hosts tendo como base o padrão. 2.3
Membros de Instância
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 18 16
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; Classecarro1.modelo= Primeiro byte Segundo byte "fusca"; carro1.cor = "prata"; A Bit 0 + 7 bits de endereço de rede
B
bits 10 + 14 bits de endereço de rede
C
bits 110 + 21 bits de endereço de rede
Terceiro byte
Quarto byte
24 bits disponíveis 16 bits disponíveis 8 bits disponíveis
Note neste quadro acima, que em endereços IP classe A, B, C, temos 24, 16 e 8 bits disponíveis respectivamente para o avanço da máscara de sub-rede e endereço de host. Portanto, a máscara de sub-rede pode avançar somente até o antepenúltimo bit, pois se avançamos até o penúltimo bit, teremos disponível somente 1 bit para número de host, o que seria insuficiente para identificar hosts reais, uma vez que o bit Figura 2.4 – Layout Memória após inicialização 0 seria para identificar //criando novo alias a rede e o bit 1 para broadcast. Da mesma forma, se Carro carro2 = carro1; avançarmos até o último bit, não teríamos mais bits disponíveis para identificar hosts. Portanto, para a máscara de sub-rede, para as classes A, B e C, temos disponível para avançar 22, 14 e 6 bits respectivamente. Outro conceito importante a ser notado é o número de sub-rede. Antes da subrede, todo número IP era do tipo número da rede.número do host, com o uso de subredes, o endereço IP pode ser expresso de uma forma diferente: número da rede.número da sub-rede.número do host. Por exemplo, suponha que tenhamos um número IP 10.1.2.3, com máscara de sub-rede 255.255.0.0. Este número proporciona o valor de 10 como número de rede, 1 como número de sub-rede e 2.3 como número de host. Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
Um equívoco muito comum é determinar a classe de um endereço baseado na máscara que um endereço IP utiliza. O que define a classe em que um endereço IP pertence é o valor do seu primeiro octeto. 2.3 Membros de Instância Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem objeto. IstoAté é importante, pois denota que um método pertence a máscaras cada objeto da o momento somente foram abordadas de sub-redeo seu queestado. ocupam classe. Porém não devemos confundir isto com a implementação do método, que totalmente um octeto, porém é possível manipular outros bits dessas máscaras, portêm Dois objetos distintos é compartilhada por todas as instâncias da classe. mesmo estado se suas exemplo 255.255.255.248. Com essa máscara o esquema ficaria da oseguinte forma: variáveis membro têm os 2.3.1 Invocação de Métodos mesmos valores. Objetos se comunicam pela troca de mensagens, isto significa que um 255.
255.
255.
248
objeto pode ter que mostrar um comportamento particular invocando uma 11111111.que foi definida 11111111. 11111000 operação apropriada no objeto. Em11111111. Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da utilizada máscaras para de osub-rede mensagem,Quando o método aseseréinvocado e os argumentos método (secomo houver).esta, tem-seum cálculo complexo. tenhaenviar a rede 200.163.79.0, Omais método invocado noSupondo recebedor que podese também informações de volta se ao for utilizada a máscara objeto chamador através de um valor de retorno. O método chamado deve ser de sub-rede 255.255.255.248, a parte referente a rede será aumentada e a parte de um que esteja definido pelo objeto.
hosts será diminuída. Para esse endereço tem-se as sub-redes variando de Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 19 17
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); 00000000=0 a 11111000=248. carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
sub-rede (em binário)
sub-rede (em decimal)
00000000
0
00001000
8
00010000
16
00011000
24
...
...
11111000
248 Figura 2.4 – Layout Memória após inicialização
//criando novo alias Note que para obter Carro carro2 = carro1;
as sub-redes, simplesmente soma-se recursivamente o valor de 8 (equivalente a 1000 binário) ao valor da primeira sub-rede 00000000. Se essa regra for aplicada a esta regra, obtem-se as seguintes sub-redes: 0, 8, 16, 24, 32, 40, 48, 56, 64, 72, 80, 88, 96, 104, 112, 120, 128, 136, 144, 152, 160, 168, 176, 184, 192, 200, 208, 216, 224, 232, 240, 248, ou seja 32=25 sub-redes, ou seja 2n sub-redes, onde n é a quantidade de bits disponibilizados a mais para formação de sub-rede. Após a obtenção das sub-redes e considerando o IP 200.163.79.10, o quadro abaixo mostra o cálculo para esse endereço: Endereço IP
200.163.79.9
Endereço de rede
200.163.79
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Endereço de sub-rede
8 = 1000
Endereço de host
2 = 010
Endereço IP (em binário) Membros de Instância
11001000.10100011.01001111.00001010
Cada Máscara objeto de criado deverá ter sua própria instância de variáveis sub-rede (em binário) 11111111.11111111.11111111.11111000 Os valores das variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. classe. Porém não devemos confundir isto com a implementação do método, que Dois objetos distintos têm é 1.11. compartilhada por todas as instâncias da classe. ENDEREÇOS IP PARA REDES PRIVADAS
o mesmo estado se suas variáveis membro têm os 2.3.1 Invocação de Métodos Todo computador da Internet deve ter um endereço IP único, mesmos no entanto, em valores. Objetos se comunicam pela troca de mensagens, isto significa que um
uma pode rede ter local preciso endereços únicos, mas que objeto que émostrar umutilizar comportamento particular invocando uma não sejam válidos na Internet. Existemque blocos de endereços operação apropriada foi definida no objeto.que Em foram Java, istoreservados é feito pelapara as redes privadas. chamada de um método em um objeto usando o operador binário "." (ponto), Os endereços de rede apresentados abaixo podem ser utilizados em qualquer rede devendo especificar a mensagem completa: o objeto que é o recebedor da local: mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador atravésFaixa de um valor de retorno. O método chamado deve ser Classe um que esteja definido pelo objeto. A
de 10.0.0.0 a 10.255.255.255
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 20 18
Linguagem de Programação Java
//atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 21
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência CarroBcarro1 de= 172.16.0.0 new Carro(); a 172.31.255.255 carro1.ano = "2001"; carro1.modelo= "fusca"; C de 192.168.0.0 a 192.168.255.255 carro1.cor = "prata";
1.12. O NÚMERO DE PORTA Embora o endereço IP seja suficiente para localizar um computador, é necessário localizar também determinado aplicativo naquele computador. Por exemplo, se a mensagem que está sendo recebida for uma correspondência eletrônica, ela precisará ser enviada para o leitor de correio. Se a mensagem recebida for uma solicitação de página Web, ela precisa ser roteada para o programa que envia páginas Web. Figura 2.4 – Layout Memória após inicialização Existe um número //criando novo alias de identificação, chamado número da porta, que é enviado Carro carro2 = em cada mensagem. carro1; É necessário que o remetente também saiba o número da porta. Existem portas que são notadamente conhecidas por serem utilizadas por serviços conhecidos, essas portas são chamadas de portas baixas ou conhecidas. Por exemplo, todo navegador faz requisições na porta 80 de todo servidor Web, e a maioria dos clientes SSH fazem requisições na porta 22 do servidor SSH. Os clientes também se comunicam com os servidores através de portas, normalmente essas portas são acima de 1024 (portas não conhecidas).
1.13. ROTEAMENTO Redes de computadores roteiam os pacotes baseando-se no sistema de Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto correios, ou seja, deseja-se comunicar com um destino, então os pacotes são entregues um a um para o primeiro roteador (primeira agência dos correios) e este encarrega-se 2.3 Membrosde deentregar Instância ao roteador de destino (agência de destino). Durante esse trajetoCada os objeto pacotes podem vários outros intermediários até criado deverápassar ter suapor própria instância de roteadores variáveis Os valores das variáveis (atributos) definidas pela classe. encontrar o roteador final.Os métodos definem o comportamento de um em um objeto constituem objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. A não vantagem utilizar estruturada está no classe. Porém devemosde confundir istoesta com aforma implementação do método, que fato de não haver uma objetos distintos o pacote irá percorrer, a únicaDois preocupação estátêm é preocupação compartilhada porcom todasoascaminho instâncias daque classe. o mesmo estado se suas limitada a origem e ao destino. Toda a Internet consiste em um número de redes variáveis membro têm os 2.3.1 Invocação Métodos próprias que de são denominadas como redes autônomas. Cada rede necessita de um mesmos valores. Objetos se comunicam pela troca de mensagens, isto significa que um roteamento interno que tem a tarefa de entregar o datagrama para a rede da máquina objeto pode ter que mostrar um comportamento particular invocando uma de destino. operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da 1.14. DNS mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao Raramente os programas fazem referência a hosts, e-mail e outros recursos objeto chamador através de um valor de retorno. O método chamado deve ser utilizando seus endereços um que esteja definido pelo objeto. IP, eles utilizam com frequência os nomes (strings em
ASCII), então é necessário algum tipo de mecanismo para converter os strings ASCII Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 22 19
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br
em IP.
//atribuindo valor a variável referência Carro carro1 new Carro(); endereços IP. A= função do DNS é justamente carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
essa: converter nomes em endereço
1.15. ARQUIVOS GERAIS
Existe um grande número de arquivos de configuração e informações que se referem a rede. Estes arquivos armazenam números de portas, endereços usados nas comunicações, etc. A seguir será apresentado alguns arquivos: /etc/protocols Define os protocolos de baixo nível utilizados nas comunicações de redes 2.4 – Layout Memória após inicialização TCP/IP. Quando um pacote é Figura enviado, ele necessita ser encapsulado em um tipo de //criando novo alias protocolo, este arquivo serve como referência para saber como desempacotá-lo. Essa Carro carro2 = carro1; referência é feita através da ID (Identificação) do protocolo. Protocolo ip icmp igmp ggp ipencap st tcp egp pup udp hmp . . .
2.3
ID 0 1 2 3 4 5 6 8 12 17 20
Nome Alternativo IP ICMP IGMP GGP IP-ENCAP ST TCP EGP PUP UDP HMP
Descrição #internet protocol,pseudo protocol number # internet control message protocol # Internet Group Management # gateway-gateway protocol # IP encapsulated in IP (officially “IP”) # ST datagram mode # transmission control protocol # exterior gateway protocol # PARC universal packet protocol # user datagram protocol # host monitoring protocol
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
/etc/services Membros de Instância
Cada objetooscriado deverá sua de própria de Ter variáveis Define números deter porta cadainstância serviço. uma entrada nestedasarquivo Os valores variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um empois um objeto constituem não indica necessariamente que o programa estará sendo executado, este arquivo objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. apenas controla o número de porta que o processo/programa é executado. classe. Porém não devemos confundir isto com a implementação do método, que Dois objetos distintos têm é compartilhada por todas as instâncias da classe. Serviço Porta/Protocolo Descrição Tcpumx1 #rfc-1078 2.3.1 Invocação de Métodos 1/tcp echo 7/tcp Objetos se comunicam pela troca de mensagens, isto significa que um echo 7/udp objeto pode ter que mostrar um comportamento particular invocando uma discard 9/tcp sink null operação apropriada que foi definida no objeto. Em Java, isto discard 9/udp sink null é feito pela chamada de um método em um11/tcp objeto usando o operador systat usersbinário "." (ponto), daytime 13/tcp devendo especificar a mensagem completa: o objeto que é o recebedor da 13/udp mensagem,daytime o método a ser invocado e os argumentos para o método (se houver). netstat 15/tcp O método invocado no recebedor pode também enviar informações de volta ao
o mesmo estado se suas variáveis membro têm os mesmos valores.
...
objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
Este arquivo é baseado na lista port numbers (disponível on-line no endereço Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 23 20
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); http://www.isi.edu/in-notes/iana/assignments/port-numbers ). carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
/etc/hosts Define uma forma de resolução de nomes que relaciona nomes de máquinas com endereços IP. Endereço IP 127.0.0.1 10.1.0.101 10.1.0.102 10.1.0.103 10.1.0.2
Hostname localhost maq1.3waylocal.net.br maq2. 3waylocal.net.br maq3. 3waylocal.net.br servidor. 3waylocal.net.br
Alias
maq1 maq2 maq3 servidor
1.16. CONFIGURAÇÃO TCP/IP Figura 2.4 – Layout Memória após inicialização //criando novo alias Carro carro2 = carro1; A configuração de
informações TCP/IP constituem um dos passos mais importantes para tornar uma máquina operacional em uma rede. É preciso atentar-se para as seguintes configurações: Hostname (Nome da Máquina), Interface de Rede (Placa de Rede), Rotas e Resolução de Nomes (DNS). 1.16.1. HOSTNAME No protocolo TCP/IP existe uma padronização para nomes de hosts. Os nomes das máquinas devem seguir o padrão FQDN (Nome Totalmente Qualificado) que nada mais é que o nome da máquina com o seu respectivo domínio DNS. O nome servidor.3waylocal.net.br é um exemplo de nome totalmente qualificado, onde servidor é o nome máquina e variáveis 3waylocal.net.br Figura 2.5da – Layout Memória duas referência para o mesmo objeto é o domínio. O comando abaixo configura o nome da máquina: 2.3
hostname servidor.3waylocal.net.br
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis (atributos) Para definidas pela classe. métodos definem foi o comportamento de umêxito, verificar se Os a configuração executada com emexecute um objetosomente constituem objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. hostname para ver como ficou o nome da máquina: classe. Porém não devemos confundir isto com a implementação do método, que Dois objetos distintos têm hostname é compartilhada por todas as instâncias da classe. servidor.3waylocal.net.br
o mesmo estado se suas variáveis membro têm os mesmos valores.
2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, significa que um temporariamente, ou Entretanto, este comando configura o isto nome da máquina objeto pode ter que mostrar um comportamento particular invocando uma seja, se esta máquina for reiniciada, ela perderá a configuração. No CentOS/RHEL operação apropriada que foi definida no objeto. Em Java, isto é feito pela deve-sedeeditar a diretiva HOSTNAME do arquivo chamada um método em um objeto usando o operador binário/etc/sysconfig/network, "." (ponto), devendo especificar a mensagem objeto que /etc/hostname é o recebedor da no Debian/Ubuntu basta completa: alterar oo arquivo com o nome da mensagem, o método a ser invocado e os argumentos para o método (se houver). máquina, todos eles produzem mudanças permanentes de hostname. Abaixo está um O método invocado no recebedor pode também enviar informações de volta ao exemplo do arquivo objeto chamador através dedo umCentOS/RHEL: valor de retorno. O método chamado deve ser NETWORKING=yes um que esteja definido pelo objeto. NETWORKING_IPV6=no HOSTNAME=servidor.3waylocal.net.br Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 24 21
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; As diretivas "fusca"; NETWORKING e NETWORKING_IPV6 carro1.modelo= carro1.cor = "prata"; máquina está em uma rede IPV4 e IPV6 respectivamente. Ainda
significam que esta é possível encontrar outras diretivas além de HOSTNAME nesse arquivo, tais como GATEWAY e GATEWAYDEV que define, na mesma ordem, qual será o roteador padrão para a máquina e qual dispositivo dará acesso a esse roteador. 1.16.2. INTERFACE DE REDE Esta configuração está baseada na detecção da placa de rede, configuração do endereço IP e máscara de rede e outras diretivas. Figura 2.4 – Layout Memória após inicialização
//criando novo alias Interface Ethernet Carro carro2 = carro1;
O kernel é responsável pela interação com todo hardware, inclusive placas de rede. Para que o kernel reconheça a interface de rede, é necessário que a placa de rede seja de um tipo conhecido e que a placa possua um módulo (driver) que a faça funcionar. O Linux possui um grande número de módulos para placas de rede, porém pode ser necessário compilar algum módulo. Para carregar módulos compilados é utilizado comando modprobe. Exemplo: #modprobe rtl8139. Configuração O comando ifconfig pode ser utilizado para configurar em tempo de Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto execução as informações de rede. Para configuração permanente é preciso utilizar arquivos de configuração específicos da distribuição. Digitando ifconfig sem 2.3 Membros de Instância parâmetros, obte-se a lista das interfaces ativas na máquina.
Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem objeto. Istoifconfig é importante, pois denota que um método pertence a cada objeto da o seu estado. eth0 Link confundir encap: Ethernet Hwaddr 00:90:06:54:05:11 classe. Porém não devemos isto com a implementação do método, que Dois objetos distintos têm inet addr:192.168.1.10 Bcast:192.168.1.255 Mask:255.255.255.0 é compartilhada por todas as LOOPBACK instâncias daRUNNING classe. MTU: 1500 Metric:1 UP BROADCAST
o mesmo estado se suas
RX packets: 421 errors:0 dropped:0 overruns:0 frame:0 2.3.1 Invocação de Métodoserrors:0 dropped:0 overruns:0 carrier:0 variáveis membro têm os TX packets:75 mesmos valores. lo Link encap: Localdeloopback Objetos se comunicam pela troca mensagens, isto significa que um inet addr:127.0.0.1 Bcast:127.255.255.255 Mask:255.0.0.0 objeto pode ter que mostrar um comportamento particular invocando uma UP BROADCAST LOOPBACK 3584isto Metric:1 operação apropriada que foi definida RUNNING no objeto.MTU: Em Java, é feito pela RX packets: 460 errors:0 dropped:0 overruns:0 frame:0 chamada de um método em um objeto usando o operador binário "." (ponto), TX packets:460 errors:0 dropped:0 overruns:0 carrier:0 devendo especificar a mensagem completa: o objeto que é o recebedor da Collisions:0
mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Exemplo: um que esteja definido pelo objeto. up
ifconfig eth0 192.168.1.10 netmask 255.255.255.0 broadcast 192.168.1.255 Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 25 22
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br
de
//atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; Este comando"fusca"; atribui a interface eth0 o endereço IP 192.168.1.10, carro1.modelo= carro1.cor = "prata"; rede 255.255.255.0 e endereço de broadcast 192.168.1.255.
a máscara
ifconfig eth0 down
Desativa a interface. No CentOS/RHEL existe o diretório /etc/sysconfig/networkscripts que armazena todos os arquivos relacionados às interfaces de rede presentes na náquina (ifcfg-eth0, ifcfg-eth1, etc). Basta editá-los para criar Figura 2.4 – Layout Memória após inicialização configurações rede permanentes. //criando de novo alias Carro carro2 = carro1; Em distribuições baseadas no Debian/Ubuntu o arquivo que deverá ser editado para todas as interfaces presentes, é o /etc/network/interfaces. /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 BOOTPROTO=none IPADDR=192.168.1.x NETMASK=255.255.255.0 NETWORK=192.168.1.0 BROADCAST=192.168.1.255 GATEWAY=192.168.1.y ONBOOT=yes Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto /etc/init.d/network restart
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis /etc/network/interfaces (atributos) definidas pela classe. métodos definem o comportamento de um auto Os eth0 objeto. Isto é importante, pois denota um método pertence a cada objeto da ifaceque eth0 inet static classe. Porém não devemos confundir isto com a implementação do método, que address 192.168.1.x netmask 255.255.255.0 é compartilhada por todas as instâncias da classe. network 192.168.1.0
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
2.3.1 Invocação de Métodos broadcast 192.168.1.255 gateway 192.168.1.y Objetos se comunicam pela troca de mensagens, isto significa que um /etc/init.d/networking restart objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo a mensagem completa: 1.17.3.especificar CONFIGURAÇÃO DAS ROTAS o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao A configuração de rotas é necessária em um cenário que possui sub-redes. Ela objeto chamador através de um valor de retorno. O método chamado deve ser serve para definido fazer com que uma rede consiga acessar outras ou até mesmo a Internet. um que esteja pelo objeto.
Para configurar rotas deve-se ter consciência de alguns conceitos como rede Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 26 23
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = newOCarro(); de alcance e roteador. primeiro refere-se a rede de destino que se quer ter acesso carro1.ano = "2001"; (redecarro1.modelo= interna ou a Internet) já o segundo conceito define a máquina que dará acesso à "fusca"; carro1.cor = "prata"; rede de alcance.
O comando route é utilizado para trabalhar com rotas. Visualizando rotas
eth0
route Tabela de Roteamento IP do Kernel Destino Roteador MáscaraGen. Opções 192.168.1.0 * 255.255.255.0 U 127.0.0.0 * 255.0.0.0 U default roteador.3waylocal.net.br 0.0.0.0
Métrica Ref 0 0 0 0 UG 0
Uso Iface 0 eth0 0 lo 0 0
Figura 2.4 – Layout Memória após inicialização
Cada coluna da saída acima possui um significado. A primeira coluna //criando novo alias Carro acarro2 = carro1; representa rede de destino, a segunda é o roteador para acesso à rede de destino, a terceira é a máscara da rede de destino, a quarta informa se a rota está ativa (U), se o alvo é um host (H), um roteador (G), etc. A quinta coluna representa a métrica (metric), que é a distância até o alvo (geralmente contada em hops), a sexta é o número de referências à rota, a sétima é a contagem de procuras por essa rota e por último (oitava), qual a interface pelos quais os pacotes IP serão enviados. Existem três entradas na tabela de roteamento do kernel. Entretanto, as duas primeiras são adicionadas pelo sistema, isto é assim porque por padrão cada interface de rede exige uma rota. Para saber quais rotas foram adicionadas pelo sistema, observe quais entradas têm um * na coluna referente ao Roteador. A última entrada cuja primeira coluna está definido como default é uma Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto rota padrão que foi adicionado pelo administrador. No campo Roteador está definido a máquina roteador.3waylocal.net.br. Quando o route é executado sem 2.3 Membros de oInstância nenhuma opção mesmo tentará apresentar o nome da máquina ao invés de seu Cada IPobjeto criado não deverá ter sua apresentar própria instância de variáveis Os expirar valores das variáveis endereço e quando é possível o nome, ele tenta até o tempo (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem limite (timeout). objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as rotas instâncias da classe. Adicionando route add -net 192.168.1.0/24 gw 192.168.1.1
o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter comando que mostraradicionará um comportamento particular uma Este uma rota para invocando a rede 192.168.1.0/24 através do operação apropriada que foi definida no objeto. Em Java, isto é feito pela roteador 192.168.1.1. A opção gw é utilizada para atribuir o IP do roteador. O número chamada de um método em um objeto usando o operador binário "." (ponto), 24 de 192.168.1.0/24 especifica a máscara rede. devendo especificar a mensagem completa: o objetode que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao Removendo objeto chamador através derotas um valor de retorno. O método chamado deve ser um que esteja definido pelouma objeto. Para excluir rota, basta executar: route del -net 192.168.1.0/24
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 27 24
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; É necessário"fusca"; especificar novamente a carro1.modelo= carro1.cor = "prata"; especificar o número IP do roteador.
máscara, porém não é necessário
Rotas estáticas O comando para adicionar rota deve ser executado toda vez que for inicializada a máquina, portanto é necessário adicionar este comando nos scripts de inicialização do sistema. No CentOS/RHEL, pode ser criado o arquivo /etc/sysconfig/networkFigura 2.4 – Layout Memória inicialização uma rota estática, deve-se, utilizado para após adicionar scripts/route-eth0 que pode ser portanto, inserirnovo a seguinte linha: 192.168.1.0 via 192.168.1.1. //criando alias Carro carro2 = carro1;
Após a realização da configuração, basta reiniciar o serviço de rede: /etc/init.d/network restart
No Debian/Ubuntu é necessário editar o arquivo /etc/network/interfaces com entradas para adicionar e remover parecidas com as abaixo: Adicionar up route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1
Remover
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
down route del -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1
2.3
Membros de Instância Após a realização da configuração, basta reiniciar o serviço. Cada objeto criado deverá ter sua própria instância de variáveis
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os O servidor de DNS é definido no arquivo /etc/resolv.conf. 2.3.1 Invocação de Métodos mesmos valores. /etc/resolv.conf Objetos se comunicam pela troca de mensagens, isto significa que um
(atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos DE confundir isto com a implementação do método, que 1.17.4. RESOLUÇÃO NOMES é compartilhada por todas as instâncias da classe.
nameserver 192.168.1.1 objeto pode ter que mostrar um comportamento particular invocando uma nameserver 200.242.140.5 operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), 1.18. INETD devendo especificar a/ XINETD mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado Inetd no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser O definido serviçopelo inetd é considerado um super serviço, pois um que esteja objeto.
ele controla vários outros serviços. O inetd lê entradas em um arquivo de configuração chamado Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 28 25
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = newAtravés Carro();deste arquivo o /etc/ inetd.conf. carro1.ano = "2001"; demais serviços. carro1.modelo= "fusca"; carro1.cor = É importante"prata"; o seu uso para serviços
serviço inetd tem controle sobre
que não precisam sempre estar constantemente ouvindo requisições. Quem fará isso é o Inetd, que interceptará a requisição e chamará o serviço solicitado, poupando recursos do servidor. /etc/inetd.conf ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l -a #telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd # # Shell, login, exec, comsat and talk are BSD protocols. # #shell stream tcp nowait root /usr/sbin/tcpd in.rshd 2.4 – Layout Memória #login stream tcp Figuranowait root após inicialização /usr/sbin/tcpd in.rlogind #exec novo stream tcp nowait root /usr/sbin/tcpd in.rexecd //criando alias . carro2 = carro1; Carro . . #imap stream tcp nowait root /usr/sbin/tcpd imapd #
Para que o inetd inicie qualquer um dos serviços definidos no arquivo, a linha referente ao mesmo deve estar descomentada. Após descomentá-la, basta reiniciar o Inetd. Xinetd O Xinetd foi escrito com o objetivo de ser um substituto avançado para o Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto Inetd. Versão recentes de distribuições GNU/Linux já o utilizam por padrão no lugar do Inetd, embora algumas ainda suportem ambos.
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis principais características deste novo super servidor (atributos) As definidas pela classe. Os métodos definem o comportamento de umsão: em um objeto constituem objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. classe. Porém não devemos confundir isto com a implementação do método, que Dois objetos distintos têm nativo ao Tcp_wrappers; é compartilhada portodasSuporte as instâncias da classe.
o mesmo estado se suas Controle de acesso mais refinado; variáveis membro têm os 2.3.1 Invocação de Métodos Possui um arquivo principal de configuração que podevalores. incluir mesmos Objetos se comunicam pela troca de mensagens, isto significa que um outros; objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada foi definida no Em detalhadas; Java, isto é feito pela queInformações deobjeto. log mais chamada de um método em um objeto usando o operador binário "." (ponto), Suporte completa: a redirecionamento devendo especificar a mensagem o objeto que de é oserviços. recebedor da
mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto. Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 29 26
Linguagem de Programação Java
//atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 30
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); O arquivo /etc/xinetd.conf é responsável pela configuração geral do carro1.ano xinetd = "2001"; e no diretório /etc/xinetd.d/ estão as configurações específicas. carro1.modelo= "fusca"; carro1.cor A diferença = "prata"; entre xinetd e o inetd é que o primeiro possui um arquivo de
configuração para cada serviço.
A configuração do servidor telnet pode ser feita usando o Xinetd da seguinte maneira: /etc/xinetd.d/telnetd service telnet { disable = yes Figura 2.4 – Layout Memória após inicialização flags = REUSE socket_type = stream //criando novo alias protocol = tcp Carro carro2 = carro1; wait = no user = root server = /etc/sbin/in.telnetd log_on_failure += USERID }
Parâmetros do Xinetd disable
Indica se o serviço está desabilitado (“yes”) ou habilitado (“no”).
flags
Controla vários parâmetros. Podem estar acumulados.
socket_type
Aceita “stream”, “dgram” , “raw” e “seqpacket”. Normalmente “stream” está relacionado a tcp e “dgram” para udp.
protocol
2.3
Protocolo quevariáveis devereferência estar para presente Figura 2.5 – Layout válido Memória duas o mesmo em objeto /etc/protocols. Normalmente é tcp ou udp.
Se “yes”, indica serviços single-threaded, dispara e espera o serviço
wait de Instância terminar para lançar outras instâncias ou outros serviços. Se “no”, ele Membros
não espera outrasinstância instâncias/serviços. Cada objeto criado deverá ter para sualançar própria de variáveis Os valores das variáveis user pela classe. Determina o usuário sob o qual o serviço será de executado. (atributos) definidas Os métodos definem comportamento um em um objeto constituem objeto. Isto é group importante, pois denota que oum método pertence a cada da Especifica group pelo qual o serviço seráobjeto executado. o seu estado. classe. Porém não devemos confundir isto com a implementação do método, que Dois objetos distintos têm server Indica o programa responsável pelo serviço. é compartilhada por todas as instâncias da classe.
o mesmo estado se suas membro têm os 2.3.1 Invocação de Métodos Determina quais informações de erros vão compor o log devariáveis log_on_failure erros. mesmos valores. Objetos se comunicam pela troca de mensagens, isto significa que um Quantidade de instâncias simultâneas deste serviço são permitidas. Por server_args
Especifica os argumentos do programa citado acima.
objeto pode instances ter que mostrar um comportamento padrão não há limites. particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela o horário em que conexões a este serviço serão aceitas access_times chamada de um método em umEspecifica objeto usando o operador binário "." (ponto), (formato: hora:minuto-hora:minuto). devendo especificar a mensagem completa: o objeto que é o recebedor da Quantidades permitidaspara de conexões por(se IP. houver). mensagem, o per_source método a ser invocado e os argumentos o método O método invocado no recebedor podedetambém volta ao Forma limitar a enviar taxa deinformações conexões. Usade dois argumentos. O primeiro controla o número de conexões por segundo, e o segundo limita objeto chamador através de um valor de retorno. O método chamado deve ser cps quanto tempo o serviço permanecer desativado se o primeiro um que esteja definido pelo objeto. argumento for excedido.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 31 27
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carronice carro1 = new Valor Carro(); de nice inicial para os processos. carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
1.19. UTILITÁRIOS DE REDES 1.19.1. HOST Obtém informações de máquinas pertencentes a um domínio ou sub-domínio. Utiliza o serviço de nomes como fonte de suas consultas. Consulta Simples
Figura 2.4 – Layout Memória após inicialização
host www.linux.org //criando novo alias www.linux.org is an alias for linux.org Carro carro2 = carro1; linux.org has address 184.173.230.160 linux.org mail is handled by 0 linux.org
Transferência de Zona host -l linux.org
Consulta Detalhada
host -a www.registro.org
As opções -l e -a são respectivamente para fazer a transferência de zona de um domínio qualquer e para realizar uma consulta que contenha todas as opções Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto juntas. Para saber todas as opções deste e de todos os comandos, basta utilizar o manual (comando man).
2.3
Membros de Instância
objeto criado deverá ter sua própria instância de variáveis NETSTAT 1.19.2.Cada Os valores das variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seurede, estado. Esta ferramenta é utilizada também para obter informações de mais classe. Porém não devemos confundir isto com a implementação do método, que Dois objetos distintos têm a configuração e atividade de uma rede. é precisamente compartilhada porpara todaschecar as instâncias da classe.
o mesmo estado se suas variáveis membro têm os mesmos valores.
2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma Consulta da Tabela de Roteamento operação apropriada que foi definida no objeto. Em Java, isto é feito pela netstat -nr Tabela de Roteamento do Kernel chamada de um método em um objetoIPusando o operador binário "." (ponto), Destino Roteador MáscaraGen. MSS Janela devendo especificar a mensagem completa: o objeto queOpções é o recebedor da irtt Iface 127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 lo mensagem, o método a ser invocado e os argumentos para o método (se houver). 0 192.168.1.0 0.0.0.0 255.255.255.0 UH 0 0 0 eth0 O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
netstat (parâmetros)
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 32 28
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro -a carro1 newasCarro(); Lista=todas portas em escuta ou não. carro1.ano = "2001"; -t Lista portas tcp. carro1.modelo= "fusca"; carro1.cor = "prata"; -u Lista portas udp. -r
Opção para mostrar a tabela de roteamento.
-n
Não faz resolução de nomes, e sim, exibe os endereços IP.
-i
Mostrar todas as interfaces presentes ou alguma especificada (--interface=iface).
-m
Mostra a lista de todas as conexões mascaradas.
-s
Exibe estatísticas divididas por cada protocolo.
-c
Provoca a exibição contínua das informações (por segundo).
-p
Mostra o PID de cada processo.
-e
Exibe informações adicionais. Pode ser usada duplamente para mais informações. Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Mais opções sobre o utilitário netstat podem ser vistas no manual do comando através do comando man netstat. 1.19.3. TCPDUMP Este utilitário é um farejador de conexões TCP/IP. O monitoramento é através da especificação da interface desejada: eth0, eth1, ppp0, etc. A saída do comando é o tráfego de pacotes enviados e recebidos, endereços de origem, de destino e outras informações. Monitorando todo Figura 2.5tráfego – Layout Memória duas variáveis referência para o mesmo objeto tcpdump -i eth0
2.3 Membros de Instância O tcpdump, devido ao sua capacidade de capturar os pacotes de um meio compartilhado, Cada objetopara criado sua capturar própria senhas instância de variáveis pode ser utilizado finsdeverá ilícitos,ter como não-criptografadas que trafegam rede. Os valores dasna variáveis (atributos) definidas classe. Os para métodos definemcomo o comportamento deanálise um Mas também podepela ser utilizado fins lícitos, ferramenta de de protocolos. em um objeto constituem objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que Monitorando um host da classe. é compartilhada por todas as instâncias
o seu estado. Dois objetos distintos têm o mesmo estado se suas tcpdump -i eth0 host maq1.3waylocal.net.br variáveis membro têm os 2.3.1 Invocação Métodos apenas os pacotes enviados pelo maq1 ou Neste deexemplo, amesmos ele destinados valores. Objetos se comunicam pela troca de mensagens, isto significa que um
serão monitorados.
objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela tcpdump -i eth0 src host maq1.3waylocal.net.br chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: objeto que o recebedor Para monitorar somente oso dados queé estão sendodaenviados mensagem, o método a ser invocado e os argumentos para o método (se houver). preciso utilizar o parâmetro src. O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Para monitorar apenas os pacotes que estão sendo enviados para um que esteja definido pelo objeto. tcpdump -i eth0 dst host maq1.3waylocal.net.br
por maq1 é maq1.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 33 29
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; É possível monitorar carro1.modelo= "fusca"; pacotes que tenham carro1.cor = definindo seu nome, "prata"; como mostrado a seguir:
passado por um gateway específico,
tcpdump -i eth0 gateway [roteador]
Para monitorar tantos pacotes UDP quanto os TCP que sejam endereçados a uma porta específica, você pode especificar o número da porta, como no exemplo abaixo: tcpdump -i eth1 host maq2.3waylocal.net.br and port 80
O tcpdump possui inúmeras opções que podem ser utilizadas para o 2.4 – Layout para Memória após inicialização monitoramento das conexõesFigura TCP/IP, obter mais informações consultar o //criando novo alias manual do comando. Carro carro2 = carro1;
1.19.4. TRACEROUTE Este aplicativo indica por quais roteadores um pacote passou antes de atingir seu destino. O exemplo abaixo mostra quantos roteadores existem a partir do computador em que se executa o comando até o destino. traceroute www.linuxdoc.org
2.3
traceroute to linuxdoc.org (152.19.254.81), 30 hops max, 40 byte packets 1 roteador (10.2.0.5) 0.872 ms 0.334 ms 0.320 ms 2 10.1.0.7 (10.1.0.7) 1.049 ms 0.815 ms 0.843 ms 3 ppp254-gnace7004.telebrasilia.net.br (200.163.76.254) 16.285 ms 18.032 ms 16.100 ms 4 200.193.193.193 (200.193.193.193) 16.884 ms 18.170 ms 16.307 ms 5 200.199.245.5 (200.199.245.5) 24.378 ms 26.340 ms 24.531 ms 6 200.193.234.1 (200.193.234.1) 26.033 ms 24.762 ms Figura 2.5 – Layout Memória duas variáveis referênciams para24.778 o mesmo objeto 7 200.193.234.66 (200.193.234.66) 47.527 ms 49.635 ms 49.128 ms 8 BrT-G3-0.cta-border.telepar.net.br (200.163.207.129) 47.849 ms 50.174 ms 49.365 ms 9 brasiltelecom-A0-0-0-32-dist01.cta.embratel.net.br (200.250.208.57) 53.094 ms
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis a fonte e o destino podem existir muitos roteadores quais o pacote (atributos) Entre definidas pela classe. Os métodos definem o comportamento de um pelos em um objeto constituem atravessa antes de pois atingir não respondem a ping, objeto. Isto é importante, denotaseu que destino. um métodoMuitos pertence aroteadores cada objeto da o seu estado. classe. Porém não devemos confundir isto com a implementação do método, que técnica utilizada para testar os roteadores, então pode ocorrer de asobjetos respostas nãotêm Dois distintos é saírem compartilhada por todas as instâncias da classe. na forma de milissegundos (ms), e sim, três * (asteriscos).
o mesmo estado se suas variáveis membro têm os mesmos valores.
2.3.1 Invocação de Métodos 1.19.5.Objetos NMAPse comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que nmap foi definida objeto. de Em portas, Java, istooué seja, feito pela O comando é umnoscanner ele mostra chamada de um método em um objeto usando o operador binário "." (ponto), comunicação estão abertas. devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado eSintaxe os argumentos para o método (se houver). do comando NMAP O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser nmap [opções] um que esteja definido pelo objeto.
quais portas de
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 34 30
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável Carro carro1 = new Carro(); -sS carro1.ano = "2001"; -sP opções"fusca"; carro1.modelo= -sT carro1.cor = "prata"; -sU
endereço
referência – Scanner silencioso. – Scanner de ping. – Scanner tcp – Scanner udp
Endereço IP ou Hostname da máquina alvo.
O exemplo abaixo mostra quais são as portas (e serviços) que estão momentaneamente abertas na máquina local. nmap 127.0.0.1 #Starting nmap V. 2.54BETA21 ( www.insecure.org/nmap/ ) Interesting ports on localhost.localdomain (127.0.0.1): (The 1535 ports scanned but not shown below are in state: closed) Figura 2.4 – Layout Memória após inicialização Port State Service 80/tcp open http //criando novo alias 111/tcp sunrpc Carro carro2 =open carro1; 119/tcp open nntp 443/tcp open https 515/tcp open printer 878/tcp open unknown 6000/tcp open X11 Nmap run completed -- 1 IP address (1 host up) scanned in 1 second
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 35 31
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
1.20. LABORATÓRIO
Esse laboratório tem o intuito promover a prática sobre a configuração TCP/IP, Xinetd e utilitários de rede. A) Preparar a máquina com as configurações TCP/IP necessárias. Hostname
hostname aluno1.3waylocal.com.br vi /etc/sysconfig/network HOSTNAME=aluno1.3waylocal.com.br Figura 2.4 – Layout Memória após inicialização
up
//criando novo alias Interface de=rede Carro carro2 carro1; ifconfig eth0 192.168.1.101 netmask 255.255.255.0 broadcast 192.168.1.255
vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 ONBOOT=yes BOOTPROTO=none" IPADDR=192.168.1.101 NETMASK=255.255.255.0
Rotas Normalmente as rotas são criadas automaticamente, incluindo a padrão, mas se por acaso isso não acontecer, podemos criá-la com o comando: route add default gw 192.168.1.254
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
Resolução de nomes
2.3
echo "nameserver 192.168.1.254" > /etc/resolv.conf
Membros de Instância Cada objeto deveráa máquina ter sua já própria de variáveis valores das variáveis Desse pontocriado em diante, possuiinstância conectividade na rede, já Os é possível navegar.
(atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. B) Configurar o serviço imapisto nocom xinetd para acesso local eque da rede 192.168.1.0/24 no classe. Porém não devemos confundir a implementação do método, Dois objetos distintos têm é servidor compartilhada por todas as instâncias da específico classe. de email e usando banner para usuários bloqueados. 2.3.1 Invocação de Métodos service imap Objetos se comunicam pela troca de mensagens, isto significa que um { stream objeto pode tersocket_type que mostrar um =comportamento particular invocando uma protocol = tcp operação apropriada que foi definida no objeto. Em Java, isto é feito pela wait = no chamada de umuser método em um objeto usando o operador binário "." (ponto), = root only_from = 192.168.1.0 localhost devendo especificar a mensagem completa: o objeto que é o recebedor da banner /usr/local/etc/deny_banner mensagem, o método a ser invocado =e os argumentos para o método (se houver). server = /usr/local/sbin/imapd O método invocado no recebedor pode também enviar informações de volta ao } objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
o mesmo estado se suas variáveis membro têm os mesmos valores.
C) Testar alguns utilitários de rede para extrair mais informações da mesma. Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 36 32
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; Resolução de nomes carro1.modelo= "fusca"; host www.3way.com.br carro1.cor = "prata";
Conexões ativas netstat -ano
Forjando conexões ICMP tcpdump icmp
Traçando a rota até um ponto
traceroute www.3way.com.br
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Varredura de Portas Carro carro2 = carro1; nmap -sS 192.168.1.101 nmap -sT 192.168.1.102 nmap -sU 192.168.1.103 nmap -sP -O 192.168.1.*
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 37 33
Linguagem de Programação Java
//atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 38
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
1.21. EXERCÍCIOS 1)
Tendo como base a rede 192.168.20.0/255.255.255.0, calcular: a) Notação CIDR b) Broadcast c) Número de endereços disponíveis para dispositivos
2) Considerando a rede 192.168.10.0/255.255.255.240, calcular os mesmo itens do exercício anterior. 3) Interpretar a tabela roteamento abaixo, respondendo algumas Figura 2.4de – Layout Memória após inicialização perguntas: //criando novo alias Carro carro2 = carro1;Roteador Destino 10.1.1.23 10.0.0.0 192.168.10.140 127.0.0.1 0.0.0.0
192.168.10.253 0.0.0.0 192.168.10.254 0.0.0.0 192.168.10.1
MáscaraGen. 255.255.255.255 255.255.248.0 255.255.240.0 255.0.0.0 0.0.0.0
Opções UGH U UG U UG
Métrica 0 0 0 0 0
Ref 0 0 0 0 0
a) Se um pacote tiver o destino a 176.16.0.12 para qual roteador ele será enviado? b) E com destino 192.168.10.150? c) Destino 10.1.1.23?
4)
Uso 0 0 0 0 0
Iface eth0 eth0 eth0 lo eth0
Converter os números IP:
a) 10.20.30.40 em b) 11100111.11100111.10000001.00001010 c) 0x11C4C040 em binário e decimal
em
hexadecimal decimal
e
e
binário hexadecimal
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
5)
Por que os endereços IP foram divididos em classes? Quais são as
2.3 Membros Instância classes e comode identificamos um número IP como pertencente a uma classe?
Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem Qual é pois a quantidade de classe A objeto matematicamente possíveis? E de objeto. Isto6) é importante, denota quede umendereços método pertence a cada da o seu estado. classePorém B e C? classe. não devemos confundir isto com a implementação do método, que Dois objetos distintos têm é compartilhada por todas as instâncias da classe.
7)
Conceituar e da exemplos sobre os endereços especiais:
o mesmo estado se suas variáveis membro têm os broadcast mesmos valores. rede
2.3.1 Invocação de a) Métodos b) Objetos se comunicam pela troca de mensagens, isto significa que um c) ter que mostrar um comportamento particular invocando uma privado objeto pode d) localhost operação apropriada que foi definida no objeto. Em Java, isto é feito pela (todas redes) chamada e) derede umpadrão método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem,8) o método a seré invocado e os Qual argumentos o métodoComo (se houver). O que sub-rede? a suapara utilidade? criar uma sub-rede? O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser 9) definido O que são portas TCP? Para que servem? Citar pelo menos 5 número de um que esteja pelo objeto.
portas com seus respectivos serviços padrões.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 39 34
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; 10) O que é "fusca"; uma rota? Qual é o comando carro1.modelo= carro1.cor = "prata";
para se definir uma rota?
11) O que é um DNS? Para que serve um DNS? Qual é o endereço IP dos hosts: www.3waylocal.net.br, www.globo.com, www.uol.com.br? 12) Para que servem /etc/services, /etc/hosts?
os
arquivos:
/etc/protocols,
13) O que é FQDN? Qual a utilidade do comando hostname? 14) Para que serve o arquivo /etc/resolv.conf? Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro 15) carro2 Qual é= acarro1; utilidade
do serviço inetd/Xinetd? Quando devemos utilizá-lo?
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 40 35
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
2. SERVIDOR SSH
O OpenSSH é uma implementação do protocolo SSH (Secure SHell) para o Linux que possui o objetivo de criptografar sessões de shell para máquinas remotas, mas pode ser usado para transferência de arquivos e criar túneis para outros protocolos.
2.1. INSTALAÇÃO E CONFIGURAÇÃO A instalação do cliente e servidor OpenSSH é feita através do comando: yum install openssh openssh-server
Figura 2.4 – Layout Memória após inicialização
configuração se localizam na árvore /etc/ssh/. Os arquivos ssh_config e sshd_config configuram, respectivamente, o cliente e o servidor SSH. Algumas opções do servidor serão listadas a seguir: //criando alias de Todos osnovo arquivos Carro carro2 = carro1;
Opções sshd_config Port 22 Protocol 2 PermitRootLogin yes
Define a porta que o servidor espera conexões. O padrão é a 22. Indica qual a versão do protocolo o OpenSSH dá suporte. O padrão é o 2, devido a algumas falhas da versão 1. Habilita/Desabilita o login do usuário root. O padrão é yes, com a opção estando comentada.
SSH – Conecta remotamente a um host informado. Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto Sintaxe: ssh nome_de_usuario@ip_ou_nome_host ou ssh ip_ou_nome_host.
2.3
Membros de Instância
Cada objeto criado deverá ter sua Exemplos própria instância de variáveis Os valores das variáveis (atributos) definidas pela classe. Os métodos comportamento com de um Conecta via sshdefinem ao hosto 192.168.0.150 o usuário user1 através da em um objeto constituem objeto. Isto é importante, poisporta denota que um método pertence a cada objeto da padrão de conexão. o seu estado. classe. Porém não devemos confundir isto com a implementação do método, que ssh [email protected] Dois objetos distintos têm é compartilhada por todas as instâncias classe.do usuário user1 será solicitada para completar a Obs.: A da senha
o mesmo estado se suas conexão. variáveis membro têm os 2.3.1 Invocação de Métodos Tenta uma conexão ssh no host 192.168.0.150 com o usuário no mesmoslogado valores. ssh 192.168.0.150 Objetos se comunicam pela troca de mensagens, isto significa que um momento, caso ele não exista, exibirá mensagem de erro. objeto pode ter que mostrar um comportamento particular invocando uma ao host maq1istocom o usuário operação apropriada que foiConecta definidavia no ssh objeto. Em Java, é feito pela user2 através da porta ssh user2@maq1 de conexão. nome maq1 resolvido localmente (/etc/hosts) chamada de um método empadrão um objeto usando o O operador bináriodeve "." (ponto), ou por um DNS, caso contrário a conexão nãodaserá completada. devendo especificar a mensagem completa: o objeto que é o recebedor mensagem, o método a ser invocado e os argumentos para user2 o método Faz uma conexão ssh com no (se hosthouver). de nome maq1 através da porta ssh -p 1022 user2@maq1 O método invocado no recebedor pode também enviar informações de volta ao 1022. objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto. Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 41 36
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
2.2. LABORATÓRIO
Este laboratório tem o objetivo de mostrar e testar a configuração do servidor SSH na máquina virtual. Você usará a máquina hospedeira para se conectar à VM, configurar o servidor e testá-lo. 1) Antes de qualquer coisa, verifique a conectividade entre as duas máquinas através de um ping. (vamos supor que a máquina hospedeira tem o endereço 192.168.0.103 e a máquina virtual 192.168.0.123) 2.4 – Layout Memória após inicialização ping 192.168.0.123 Estando na hospedeira:Figura
//criando novo alias Carro carro2 carro1; ping 192.168.0.103 Estando na=VM:
2) Se houver conectividade, conecte-se à VM com o usuário root. ssh [email protected]
3) Se o logon tiver sucesso, faça a seguinte configuração no servidor: vi /etc/ssh/sshd_config Port 41001 Protocol 2 PermitRootLogin no
Essas configurações mudaram a porta de acesso ao servidor e o protocolo do SSH (protocolo 2) e removeram a permissão do usuário root de se logar Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto remotamente. 4) Reinicie o servidor para que as alterações passem a valer. 2.3
service de sshd reload Membros Instância
Cada objeto criado deverá ter sua própria instância de variáveis das variáveis 5) Naturalmente espera-se que a conexão estabelecida comOsavalores VM caia, pois (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem afinalIsto retiramos a permissão do um usuário de se conectar remotamente. Porém, as objeto. é importante, pois denota que métodoroot pertence a cada objeto da o seu estado. alterações começam a valeristosomente para as novas conexões, precisando assim classe. Porém não devemos confundir com a implementação do método, que Dois objetos distintos têm é finalizar compartilhada por todas as instâncias da classe. os processos anteriores a essa configuração que acabamos de efetuar.
o mesmo estado se suas variáveis membro têm os mesmos valores.
ps aux | grep sshd
2.3.1 Invocação de Métodos kill -9 pid_da_conexao_ssh Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocandonovamente uma 6) A conexão cairá instantaneamente, conecte-se operação apropriada que foi definida no objeto. Em Java, isto é feito pela configurações. chamada de um método em um objeto usando o operador binário "." (ponto), ssh -p 41001 [email protected] devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
já com as novas
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 42 37
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da| 3Way Networks. [email protected] (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
2.3. EXERCÍCIOS
O que é o openSSH?
Qual o comando utilizado para instalá-lo (Cliente e Servidor)?
Qual é o arquivo de configuração do servidor e do cliente openSSH? Descreva as principais diretivas.
Explique com detalhes o que faz o comando abaixo:
ssh -p 41002 [email protected]
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 43 38
Siga-nos também no Twitter! twitter.com/3waynet
LinguagemAdministration de Programação Java Linux Network
Este material não pode serem distribuído. Curso Especialista Redes Somente poderá ser utilizado por alunos |da(62) 3Way Networks. [email protected] 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
3. SISTEMA DE NOMES DE DOMÍNIO
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
O Sistema de Nomes de Domínio (DNS) trata de um dos serviços mais fundamentais para o funcionamento da Internet. Ele traduz nomes de hosts em números IP e vice-versa.
3.1. SERVIÇOS DE NOMES - DNS O DNS se enquadra nos principais serviços de redes TCP/IP. A finalidade do DNS é converter nomes como www.registro.br em endereços IP como 200.160.2.3. É importante salientar que o DNS faz também a resolução reversa, ou seja, converte Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto endereços IP para nomes. Nos sistemas Linux existem duas técnicas para fazer resoluções, a primeira forma é através de uma tabela de hosts (/etc/hosts), a outra é feita através da 2.3 Membros de Instância Cada aobjeto deverá sua própria instância de variáveis Os valores das variáveis consulta um criado servidor de ter nomes (DNS). O DNS é um banco de dados com (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objetopor constituem servidores distribuídos e organizados de forma hierárquica, espalhados toda objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. Internet; de forma todo isto servidor de nomes édotambém cliente de outro, pois caso classe. Porém não devemosque confundir com a implementação método, que Dois objetos distintos têm um não consiga umda nome é compartilhada por todasresolver as instâncias classe. (traduzir para um número IP), este consultará o mesmo estado se suas outro e assim por diante. variáveis membro têm os 2.3.1 Invocação de Métodos O servidor de nomes padrão na maioria das distribuições de Linux é o mesmos valores. Objetos se comunicam pela troca de mensagens, isto significa que um software named que está no pacote BINDinvocando (Berkeley objeto pode ter que mostrar umincluso comportamento particular umaInternet Name Domain). operação apropriada foi do definida no objeto. Java, isto é feito biblioteca pela O pacote BIND,que além servidor DNS,Emoferece também: em linguagem C chamada de um método em um objeto usando o operador binário "." (ponto), para ser utilizada em clientes DNS chamada de biblioteca resolver, o utilitário para devendo especificar a mensagem completa: o objeto que é o recebedor da administração rndc (remote name daemon control program) e os utilitários nslookup mensagem, o método a ser invocado e os argumentos para o método (se houver). e host invocado para consulta em servidores DNS. O método no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto. Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 45 39
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da| 3Way Networks. [email protected] (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
Resolução de nomes
3.2. INSTALAÇÃO DO BIND
Figura 2.4 – Layout Memória após inicialização
//criando novo aliasduas Há basicamente Carro carro2 = carro1;
sistema no Linux.
formas que podem ser utilizadas para instalar um
3.2.1. INSTALAÇÃO CÓDIGO FONTE Deve-se baixar o código fonte do programa, encontrado no site http://www.isc.org, compilar e instalar. Geralmente estes programas vem compactados e serão compilados através do comando make. Para cada programa você deve seguir as instruções dos arquivos README e INSTALL, que vem junto com código fonte. Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto Para instalar o BIND:
2.3
cp bind-9.x.x.tar.gz /usr/local/src
cd /usr/local/src Membros de Instância
tar objeto xvfz bind-9.x.x.tar.gz Cada criado deverá ter sua própria instância de variáveis cd bind-9.x.x (atributos) definidas pela classe. Os métodos definem o comportamento de um ./configure --prefix=/usr/local/bind-9.x.x objeto. Isto é importante, pois denota que um método pertence a cada objeto da make classe. Porém nãoinstall devemos confundir isto com a implementação do método, que make é compartilhada todas as instâncias da classe./usr/local/bind ln -spor /usr/local/bind-9.x.x
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os 2.3.1 Invocação de Métodos mesmos valores. O comando make o código-fonte e o que comando make install Objetos se comunicam pelacompila troca de mensagens, isto significa um
objeto ter que mostrar um comportamentonoparticular invocando uma instalapode os binários compilados diretório indicados. O ln -s operação apropriada que foi definida no objeto. Em Java, isto é feito pela /usr/local/bind-9.x.0 /usr/local/bind cria um link simbólico chamada de um método em um objeto usando o operador binário "." (ponto), chamado /usr/local/bind; este procedimento pode tornar a sua instalação mais devendo especificar a mensagem completa: o objeto que é o recebedor da versátil, pois casoa ser seja necessário atualizarpara o BIND, será necessário atualizar mensagem, o método invocado e os argumentos o métodosomente (se houver). link para a versão mais nova. Oométodo invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto. Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 46 40
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da| 3Way Networks. [email protected] (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.anoSempre = "2001"; que encontrar algum problema com a compilação e instalação, carro1.modelo= "fusca"; o arquivos README e INSTALL que acompanham o pacote. carro1.cor = "prata";
veja
3.2.2. INSTALAÇÃO AUTOMATIZADA Um pacote de instalação é um conjunto de arquivos binários provenientes do código-fonte compilado para uma plataforma específica. Portanto, deve-se utilizar o pacote específico para cada sistema operacional. Outra alternativa é usar ferramentas de gerenciamento de pacotes como o YUM (para CentOS/RedHat) e APT (para Debian/Ubuntu). Essas ferramentas gerenciam a principal desvantagem dos arquivos Figura 2.4 – Layout Memória após inicialização binários: as dependências. //criando novo alias Carro carro2 = carro1;
yum install bind
apt-get install bind9
3.3. HIERARQUIA DNS Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
O DNS se baseia em um banco de dados distribuído e hierárquico, onde as informações são distribuídas em uma topologia em árvore invertida, onde o ponto de 2.3 Membros de Instância partidaCada paraobjeto toda criado consulta de nomes é denominado domínio raiz "." (suportado por deverá ter sua própria instância de variáveis Os valores das variáveis vários servidores raízes, sãodefinem 13 atualmente). Nenhum raiz responde (atributos) definidas pela classe. ao Os todo métodos o comportamento de um servidor em um objeto constituem diretamente à solicitação de resolução de pertence um endereço. Em da vez disso, oele delega a objeto. Isto é importante, pois denota que um método a cada objeto seu estado. classe. Porém não devemos confundir isto com a implementação do método, que responsabilidade de resolver nomes para um outro servidor, delegando dotêm Dois objetosparte distintos édomínio compartilhada por todas as instâncias da classe. (um sub-domínio). o mesmo estado se suas variáveis membro têm os Abaixode do domínio raiz há diversos Domínios de Alto Nível (TLDs - Top 2.3.1 Invocação Métodos valores. se comunicam mensagens, isto o significa um com emesmos Level Objetos Domains), sendo pela os troca maisde conhecidos: org,que net, edu (origem objeto pode teralguns que mostrar um comportamento americana); domínios de fora dosparticular Estadosinvocando Unidos uma que denominam países e operação apropriada que foi definida no objeto. Em Java, isto é feito pela possuem somente duas letras: br (Brasil), ar (Argentina), de (Alemanha); entre chamada de um método em um objeto usando o operador binário "." (ponto), outros. especificar Segue abaixo um diagrama hierarquia: devendo a mensagem completa:desta o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto. Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 47 41
Linux Network Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos Networks. [email protected]| 3Way (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
Hierarquia DNS Figura 2.4 – Layout Memória após inicialização
//criando novo alias
IERARQUIA DEcarro1; CONSULTAS DNS 3.3.1 H Carro carro2 =
Vários aplicativos são clientes DNS (navegadores, clientes FTP, ping, etc). Se o endereço www.3way.com.br for solicitado pelo serviço FTP, o DNS irá consultar os servidores raízes sobre o sub-domínio br., no caso este servidor o conheça, o próximo passo é encontrar o com.br., e assim por diante até atingir o servidor que realmente tem a autoridade do sub-domínio para resolver seus endereços IP. A figura abaixo ilustra o processo de resolução de nomes para o endereço www.3way.com.br. Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 48 42
Linux Network Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way Networks. [email protected] | (62) 3232 9333 www.3way.com.br Hierarquia de consultas DNS //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; Para simular a "fusca"; consulta que o DNS local faz com o carro1.modelo= nslookup (que será=estudado detalhadamente mais adiante). carro1.cor "prata";
servidor raiz, utiliza-se o comando
1) O servidor local consulta o servidor raiz; 2) O servidor raiz fornece o(s) servidor(es) responsável(is) pelo domínio .br; Dentro do prompt do nslookup define-se o servidor a ser consultado, este será um servidor raiz. nslookup Default Server: localhost Figura 2.4 – Layout Memória após inicialização Address: 127.0.0.1 //criando novo alias > Carro carro2 = carro1;
Por padrão o nslookup utiliza como DNS configurado localmente (/etc/resolv.conf) como consulta (Default Server), neste caso específico o próprio host (localhost) é o DNS padrão. Uma vez executado o nslookup, ele fica aguardando comandos, indicado por um prompt (>). Simulando o trajeto da figura, deve-se consultar primeiramente um servidor raiz sobre o domínio br e, para isto, consulta-se o arquivo named.ca (arquivo Hints), que é instalado pelo próprio BIND e contém a lista de todos os root hints (servidores raiz). O opção server define o servidor da consulta, neste caso a.root-servers.net. Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
> server 198.41.0.4 Default Server: a.root-servers.net Address: 198.41.0.4#53 Membros de Instância > Cada objeto criado deverá ter sua própria instância de variáveis
Os valores das variáveis em um objeto constituem pesquisao seu de estado. registros Dois objetos servidor de distintos nomestêm o mesmo estado se suas autoritativo do domínio ".br". variáveis membro têm os 2.3.1 Invocação de Métodos mesmos valores. > set setype=ns Objetos comunicam pela troca de mensagens, isto significa que um
(atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. IstoAé seguir importante, pois denota que um pertence a cada objeto da define-se o tipo damétodo consulta. Neste caso uma classe. Porém não devemos confundir isto com a implementação do método, que NS (registros de servidores de nomes) para encontrar o é compartilhada por todas as instâncias da classe.
objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em ummais objeto usandodoo BIND operador binárioa"." (ponto), set q=ns ao invés de As versões antigas usavam instrução devendo especificar set a mensagem type=ns. completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Todos estes comandos devem ser executados dentro do prompt do nslookup. um que esteja definido pelo objeto.
O próximo comando pergunta pelos servidores responsáveis pelo br. Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
43 12 49
Linguagem de Programação Java Linux Network Administration
Cursonão Especialista em Redes Este material pode ser distribuído. Somente poderá ser utilizado por alunos da| 3Way Networks. [email protected] (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; > br. carro1.modelo= "fusca"; Server: a.root-servers.net carro1.cor = "prata"; Address: 198.41.0.4
Authoritative answers can be found from: br nameserver = NS.DNS.br br nameserver = NS1.DNS.br br nameserver = NS2.DNS.br br nameserver = NS3.NIC.FR br nameserver = NS-EXT.VIX.COM NS.DNS.br internet address = 143.108.23.2 NS1.DNS.br internet address = 200.255.253.234 NS2.DNS.br internet address = 200.19.119.99 NS3.NIC.FR internet address = 192.134.0.49 NS-EXT.VIX.COM internet address = 204.152.184.64 Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1; A frase “Authoritative
answers can be found from” indica que as máquinas NS.DNS.br, NS1.DNS.br, NS2.DNS.br, NS3.NIC.FR, e NS-EXT.VIX.COM são os servidores autorizados responsáveis pelo domínio br. Deve-se agora selecionar qualquer uma destas máquinas e prosseguir com a consulta do próximo passo, fornecendo o número IP de um destes servidores de nomes. > server 143.108.23.2 Default server: NS.DNS.br Address: 143.108.23.2#53
Assim como foi feito para o domínio br., faremos a consulta para o domínio com.br. Vejamos: Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto 2.3
> com.br.
Server:de Instância NS.DNS.br Membros
Address: 143.108.23.2#53 Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um com.br nameserver = NS1.DNS.br. objeto. Istocom.br é importante, pois denota que um método pertence a cada objeto da nameserver = NS2.DNS.br. classe. Porém não devemos confundir com a implementação do método, que com.br nameserver = isto NS-EXT.VIX.COM. é compartilhada por todas as instâncias da classe. com.br nameserver = NS.DNS.br.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os 2.3.1 Invocação de Métodos A própria máquina NS.DNS.br, além de responder pelo domínio br. também mesmos responde valores. Objetos se comunicam pela troca de mensagens, isto significa que um pelo domínio .com.br. Logo, podemos prosseguir a consulta usando o mesmo servidor definido objeto pode ter que mostrar um comportamento particular invocando uma anteriormente, agora para o domínio 3way.com.br.: operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), > 3way.com.br. devendo especificar a mensagem completa: o objeto que é o recebedor da NS.DNS.br mensagem,Server: o método a ser invocado e os argumentos para o método (se houver). Address: 143.108.23.2#53 O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Non-authoritative answer: um que esteja definido pelo objeto. 3way.com.br nameserver = intranet.3way.com.br. 3way.com.br
nameserver = ns.3way.com.br.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 50 44
Linguagem de Programação Java Linux Network Administration
Cursonão Especialista em Redes Este material pode ser distribuído. Somente poderá ser utilizado por alunos da 3Way Networks. [email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); Authoritative answers can be found from: carro1.ano = "2001"; intranet.3way.com.br carro1.modelo= "fusca"; internet address = 200.163.79.1 ns.3way.com.br internet address = 200.178.101.252 carro1.cor = "prata";
Descobrimos, neste caso, que o hospedeiro intranet.3way.com.br é o servidor de nomes primário (é o primeiro da lista) pelo domínio 3way.com.br e seu endereço IP é 200.163.79.1. Ainda existe outro hospedeiro responsável pelo domínio 3way.com.br, que é o hospedeiro ns.3way.com.br,também denominada como o servidor secundário do domínio 3way.com.br. Prosseguindo com o processo, o próximo servidor é o host intranet.3way.com.br que será definido como servidor de consulta: > server 200.163.79.1 Figura 2.4 – Layout Memória após inicialização Default server: 200.163.79.1 //criando novo alias Address: 200.163.79.1#53 Carro carro2 = carro1;
Agora só falta consultar o servidor responsável diretamente pelo domínio 3way.com.br sobre o nome www.3way.com.br. > www.3way.com.br Server: 200.163.79.1 Address: 200.163.79.1#53 www.3way.com.br
canonical name = intranet.3way.com.br.
O nome www.3way.com.br é apenas um apelido (alias) para o nome canônico (real) do hospedeiro intranet.3way.com.br, ou seja, ambas são a mesma máquina. Caso contrário, o Figura 2.5 –oLayout MemóriaIP duasde variáveis referência para o mesmo objeto comando retornaria simplesmente endereço www.3way.com.br.
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 51 45
Linguagem de Programação Java Linux Network Administration
Cursonão Especialista em Redes Este material pode ser distribuído. Somente poderá ser utilizado por alunos da 3Way Networks. [email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência carro1 = new Carro(); 3.3.2.Carro CACHE DE CONSULTAS carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Sistema cache de consulta.
Um conceito também importante a ser compreendido, é que o servidor de nomes armazena todas as consultas realizadas em cache de memória por um período estipulado pelo fornecedor da consulta. Este período é denominado TTL (Time-To-Live, o qual será visto mais adiante), de forma que quando este tempo expira, a informação da consulta é retirada do próprio cache. Assim, quando o cliente necessita de uma informação, se o servidor de nomes já possui a consulta em cache, este Figura 2.5 –na Layout Memória duasAssim variáveis referência o mesmo objeto não irá consultar seus superiores hierarquia. evita-separaconsultar um servidor raiz ou outro servidor acima na hierarquia em toda consulta.
2.3
Membros de Instância 3.4. O ARQUIVO NAMED.CA Cada objeto criado deverá ter sua
própria instância de variáveis Os valores das variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem arquivopois contém lista de nomes servidores em objeto. IstoEste é importante, denota uma que um método pertencede a cada objeto da raízes, espalhados o seu estado. classe. Porém não devemos confundir isto com a implementação do método, que todo o mundo e é usado pelo seu servidor DNS como ponto de partida de consulta. Dois objetos distintosÉtêm éfortemente compartilhada recomendável por todas as instâncias da classe. não editar ou modificar este arquivo, a não ser para
o mesmo estado se suas atualizar suas informações que são raramente alteradas. variáveis membro têm os 2.3.1 Invocação de Métodos mesmos valores. O local desse arquivo da distribuição o bind foi Objetos se comunicam pela trocadepende de mensagens, isto significa queou um de como
objeto pode termas que mostrar um comportamento particular invocando uma instalado, não será difícil encontrá-lo. Normalmente ele operação apropriada que foi definida no objeto. Em Java, isto é feito pela /var/named/named.ca ou caso ele estiver em uma jaula chamada de um método em um objeto usando o operador binário "." (ponto), /var/named/chroot/var/named/named.ca. devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao /var/named/chroot/var/named/named.ca objeto chamador através de um valor de retorno. O método chamado deve ser ; formerly NS.INTERNIC.NET um que esteja definido pelo objeto. ;
estará em chroot em
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 52 46
Linguagem de Programação Java Linux Network Administration
Cursonão Especialista em Redes Este material pode ser distribuído. Somente poderá ser utilizado por alunos da 3Way Networks. [email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência . A.ROOT-SERVERS.NET. Carro carro1 = new Carro(); 3600000 IN NS A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4 carro1.ano = "2001"; ; carro1.modelo= "fusca"; ; formerly =NS1.ISI.EDU carro1.cor "prata"; ; . 3600000 NS B.ROOT-SERVERS.NET. B.ROOT-SERVERS.NET. 3600000 A 128.9.0.107 ; ; formerly C.PSI.NET ; . 3600000 NS C.ROOT-SERVERS.NET. C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12 ; ; formerly TERP.UMD.EDU ; . 3600000 NS D.ROOT-SERVERS.NET. D.ROOT-SERVERS.NET. A inicialização 128.8.10.90 Figura3600000 2.4 – Layout Memória após ; //criando novo alias ; formerly NS.NASA.GOV Carro carro2 = carro1; ; . 3600000 NS E.ROOT-SERVERS.NET.
; . E.ROOT-SERVERS.NET.
3600000 3600000
NS A
E.ROOT-SERVERS.NET. 192.203.230.10
Este arquivo contém apenas registros de servidor de nome (NS) e de endereço (A). Cada um destes registros NS identifica um Servidor de Nome (Name Server) para o domínio raiz que é dominado com um (.). O registro A define o endereço IP dos Servidores de Nomes Raízes. Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 53 47
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way Networks. [email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
3.5. CONFIGURANDO O CLIENTE DNS
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Utilização da biblioteca resolver na resolução de nomes.
O pacote BIND fornece uma biblioteca chamada resolver, que é considerada o cliente DNS, pois é através dela é que vários programas fazem suas operações de resolução de nome para número IP e vice-versa. A configuração do cliente resume-se em definir o endereço do servidor DNS que fará a resolução das Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto consultas. 3.5.1. DEFINIR O SERVIDOR DE DNS
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis definir o Os servidor a ser o consultado, editar o arquivo (atributos)Para definidas pela classe. métodos definem comportamento deve-se de um em um objeto constituem /etc/resolv.conf . pois Vejamos um exemplo do arquivo : objeto. Isto é importante, denota que um método pertence/etc/resolv.conf a cada objeto da o seu estado. classe. Porém não devemos confundir isto com a implementação do método, que Dois objetos distintos têm /etc/resolv.conf é compartilhada por todas as instâncias da classe. 2.3.1
search 3waylocal.net.br nameserver 192.168.1.101 Invocação de Métodos nameserver 192.168.1.102
o mesmo estado se suas variáveis membro têm os mesmos valores.
Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma opção search é seu domínio pesquisa ouéseja, entrar com o host maq10 com operação A apropriada que foi definida no de objeto. Em padrão, Java, isto feitoaopela o telnet de (WHOQHW PDT)em será mesmausando coisa oque utilizar maq10.3waylocal.net.br . O parâmetro chamada um método uma objeto operador binário "." (ponto), devendo especificar o objeto é o que recebedor da nameserver definea omensagem endereço completa: IP do servidor de que nomes a máquina irá utilizar para fazer mensagem, consultas.o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao Caso a própria máquina for um servidor DNS e quiséssemos usá-lo para objeto chamador através de um valor de retorno. O método chamado deve ser consultas, entrar um que esteja bastaria definido pelo objeto.com o endereço IP da máquina local ou ip de loopback no
arquivo /etc/resolv.conf:
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 54 48
Linux Network Administration Linguagem de Programação Java
Cursonão Especialista em Redes Este material pode ser distribuído. Somente poderá ser utilizado por alunos da| 3Way Networks. [email protected] (62) 3232 9333 www.3way.com.br
//atribuindo valor a variável referência Carro carro1 = new Carro(); /etc/resolv.conf carro1.ano = "2001"; search 3waylocal.net.br carro1.modelo= "fusca"; nameserver 127.0.0.1 carro1.cor = "prata";
Para obter o IP do servidor de nomes de um determinado domínio, digitar: host -l dominio.com.br
Para saber mais informações sobre o utilitário host, basta consultar o manual do comando host. Ex.: man host Figura 2.4 – Layout Memória após inicialização
3.5.2.//criando DEFINIR Anovo ORDEM DE CONSULTA alias Carro carro2 = carro1;
Existem dois métodos de resoluções de nomes: o arquivo /etc/hosts e o DNS. A definição da ordem de quais serão utilizados está no arquivo /etc/nsswitch.conf e em versões mais antigas /etc/host.conf. /etc/nsswitch.conf hosts: files dns
A diretiva hosts define a ordem de consulta, que neste caso é primeiramente será feito a consulta no arquivo (/etc/hosts) para somente depois consultar o DNS (bind) no caso do arquivo não consiga resolver o nome. /etc/host.conf Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto order hosts,bind multi on
2.3
Membros de Instância No /etc/host.conf, a opção multi on permite que uma mesma máquina tenha Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis múltiplos definidas endereços IPsclasse. (o DNS padrão já suporta esta opção). de um (atributos) pela Os por métodos definem o comportamento
em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas No estudo de servidores de domínio surge o termo zona (zone) quetêmé os variáveis membro 2.3.1 Invocação de Métodos comumente o termo domínio isto (domain). mesmos valores. Objetosconfundida se comunicamcom pela troca de mensagens, significa que um
objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. não devemos confundir isto com a implementação do método, que 3.6. Porém ZONAS E DOMÍNIOS é compartilhada por todas as instâncias da classe.
objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela Domínio chamada de um método em um objeto usando o operador binário "." (ponto), Define um espaço decompleta: nomes onde encontra-se várias zonas. devendo especificar a mensagem o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao Zona objeto chamador através de um valor de retorno. O método chamado deve ser É definida uma região de um domínio, pode ser entendida como um sub-domínio. um que esteja definido como pelo objeto.
Por exemplo o domínio .br tem uma possível zona chamada com.br, enquanto esta zona pode ser Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
49 12 55
Linguagem de Programação Java Linux Network Administration
Cursonão Especialista em Redes Este material pode ser distribuído. Somente poderá ser utilizado por alunos da 3Way Networks. [email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro para carro1 = possíveis new Carro(); um domínio outras zonas como: 3way.com.br carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
ou teste.com.br.
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Entendendo Zona e Domínio
Domínio e sub-domínio (zona) faz analogia com diretório e sub-diretório quando refere-se a sistemas arquivo. Figura 2.5de – Layout Memória duas variáveis referência para o mesmo objeto
3.7. SERVIDORES DNS
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis valores das variáveis Existem basicamente três tipos de servidores DNS: o Os servidor caching (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem (caching-server), o pois servidor (master server) o servidor secundário (slave objeto. Isto é importante, denota primário que um método pertence a cadaeobjeto da o seu estado. server). classe. Porém não devemos confundir isto com a implementação do método, que Dois objetos distintos têm é compartilhada por todas as instâncias da classe.
o mesmo estado se suas variáveis membro têm os mesmos valores.
Servidor caching 2.3.1 Invocação de Métodos Objetos se comunicam pela servidor troca de mensagens, isto significa que um Definido como um que guarda em cache consultas que objeto pode ter que mostrar um comportamento particular invocando uma anteriormente solicitadas, não sendo responsável por nenhuma zona, de operação apropriada que foi definida no objeto. Em Java, isto é feito pela melhorar performance daobjeto resolução nomes.binário "." (ponto), chamada de aum método em um usandode o operador devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem,Servidor o método aPrimário ser invocado e os argumentos para o método (se houver). O método É invocado no recebedor pode também informações desobre volta ao um servidor autorizado (queenviar tem autoridade uma zona), ou objeto chamador através de um valor de retorno. O método chamado deve ser mantém a definido base de um que esteja pelodados objeto. de uma determinada zona. Este servidor além
já foram forma a
seja, que de fazer consultas a servidores raízes também é consultado por outros servidores DNS como Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 56 50
Linguagem de Programação Java Linux Network Administration
Cursonão Especialista em Redes Este material pode ser distribuído. Somente poderá ser utilizado por alunos da 3Way Networks. [email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new responsável pela zona emCarro(); que foi delegada. carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata"; Servidor Secundário
Este servidor é definido como uma cópia do servidor primário. É utilizado pelos clientes quando o servidor master, por algum motivo, parar de funcionar.
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Três tipos de servidores DNS. Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
Cinco arquivos diferentes são necessários para a configuração do named. Todas as configurações requerem estes três arquivos básicos: named.conf, named.ca, 2.3 Membros de Instância named.local e os arquivos de zona e zona reversa. Cada objeto criado deverá ter sua própria instância de variáveis
Os valores das variáveis
(atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem objeto. Istonamed.conf é importante, pois denota que um método pertence a cada objeto da o seu estado. classe. Porém devemosde confundir isto com a implementação do método, que É onãoarquivo configuração principal. Define parâmetros básicos apontatêm Dois objetosedistintos é compartilhada por todas as instâncias da classe.
para as fontes de informação do banco de dados do domínio (arquivos locaisseou o mesmo estado suas variáveis membro têm os servidores remotos). Os arquivos hints e localhost reverso (named.ca e named.local, 2.3.1 Invocação de Métodos mesmos valores. respectivamente) que vãopela sertroca citados a seguir isto sãosignifica exemplos de arquivos de banco de Objetos se comunicam de mensagens, que um objeto dados.pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), named.ca devendo especificar a mensagem completa: o objeto que é o recebedor da nomes e endereços dospara servidores mensagem,Fornece o métodoos a ser invocado e os argumentos o métodode (se nomes houver). raízes O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser named.local um que esteja definido pelo objeto.
É o arquivo localhost reverso. Por padrão o arquivo
(root servers).
/etc/hosts,
só tem uma
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 57 51
Linguagem de Programação Java Linux Network Administration
Cursonão Especialista em Redes Este material pode ser distribuído. Somente poderá ser utilizado por alunos da 3Way Networks. [email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro new oCarro(); entrada paracarro1 indicar= que nome localhost ou localhost.localdomain refere-se ao IP carro1.ano = "2001"; 127.0.0.1 . Este arquivo indicando que o IP 127.0.0.1 é refere-se ao nome localhost. carro1.modelo= "fusca"; carro1.cor = "prata";
Arquivo de zona É usado para mapear os nomes de hosts para endereços IP, para identificar servidores de mensagem e para fornecer uma variedade de outras informações de domínio. Arquivo de zona reversa Este arquivo é utilizado para mapear endereços IPs para nomes de hosts. Ele faz o serviço contrário ao arquivo zone. Figura 2.4 – Layout Memória após inicialização
3.8. SERVIDOR CACHE //criando novoDE alias Carro carro2 = carro1;
A instalação do servidor cache se dá com a instalação dos seguintes pacotes: bind-libs, bind-utils e bind.
yum install bind bind-utils bind-libs caching-nameserver
apt-get install bind9 bind9-docs dnsutils Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
Este tipo de servidor necessita de três arquivos de configuração: named.conf, named.ca e
named.local . Osdeprocedimentos para configuração estão descritos abaixo: 2.3 Membros Instância
Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis (atributos)Especificar definidas pela oclasse. Os métodos definem o comportamento de um em um objeto constituem ) na variável diretório para o ambiente chroot (/var/named/chroot objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. ROOTDIR do arquivo /etc/sysconfig/named. classe. Porém não devemos confundir isto com a implementação do método, que Dois objetos distintos têm é compartilhada por todas as instâncias da classe. /etc/sysconfig/named ROOTDIR=/var/named/chroot
o mesmo estado se suas variáveis membro têm os mesmos valores.
2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que particular invocando uma com nome Fazer umamostrar cópia um do comportamento arquivo /etc/named.caching-nameserver.conf operação apropriada que foi definida no objeto. Em Java, isto é feito pela named.conf no o diretório etc do ambiente chroot ( /var/named/chroot/var/named) e chamada de um método em um objeto usando o operador binário "." (ponto), mudar a propriedade dessecompleta: arquivo para que root.named . Agora devendo especificar a mensagem o objeto é o recebedor da é só criar um link mensagem, ser invocado e os argumentos para o método (se houver). . simbólicoo método para o a/etc O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método /var/named/chroot/etc/named.conf chamado deve ser cp /etc/named.caching-nameserver.conf um que esteja definido pelo objeto. chgrp .named /var/named/chroot/etc/named.conf ln –sf /var/named/chroot/etc/named.conf /etc/named.conf Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 59 52
Linguagem de Programação Java Linux Network Administration
Cursonão Especialista em Redes Este material pode ser distribuído. Somente poderá ser utilizado por alunos da 3Way Networks. [email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; Iniciar o serviço. carro1.modelo= "fusca"; carro1.cor = "prata"; /etc/init.d/named start
named.conf O arquivo named.conf tem uma sintaxe baseada em sentenças (statements), com opções para cada sentença em um bloco delimitado por chaves ({}). Cada opção também tem uma sintaxe específica para determinar seus argumentos. Os arquivos de configuração do BIND, suporta comentários em bloco, no estilo C++ (/* comentário */); comentários de linha, no estilo C++ (// comentário); comentários no estilo perl ou bash (# comentário); e finalmente, comentários de linha utilizando-se ponto-e-vírgula no início do comentário (; comentário). Veja como é a estrutura deste Figura 2.4 – Layout Memória após inicialização arquivo: //criando novo alias Carro carro2 = carro1; /* Este é um bloco de comentário, estilo C++ */ { // Isto também é um comentário, mas de somente uma linha. Estilo C++ ; ; };
{ ; isto também é um comentário # esta também é outra opção de comentário. Estilo bash ou perl. ; ; } Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto Abaixo temos um exemplo concreto:
/etc/named.conf options de { Instância 2.3 Membros listen-on port 53 { 127.0.0.1; IP_DA_INTERFACE; }; Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis listen-on-v6 port 53 { ::1; }; (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem directory "/var/named"; objeto. Isto é importante, pois"/var/named/data/cache_dump.db"; denota que um método pertence a cada objeto da dump-file o seu estado. classe. Porém não devemos confundir"/var/named/data/named_stats.txt"; isto com a implementação do método, que statistics-file Dois objetos distintos têm é compartilhadamemstatistics-file por todas as instâncias da"/var/named/data/named_mem_stats.txt"; classe. o mesmo estado se suas allow-query { localhost; }; allow-query-cache { localhost; }; variáveis membro têm os 2.3.1 Invocação de Métodos }; mesmos valores. Objetos se comunicam acl local_nets { pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma ENDEREÇO_DA_REDE_LOCAL; operação }; apropriada que foi definida no objeto. Em Java, isto é feito pela view { chamada de um localhost_resolver método em um objeto usando o operador binário "." (ponto), match-clients { localhost; }; que é o recebedor da devendo especificar a mensagem completa: o objeto match-destinations { localhost; mensagem, o método a ser invocado e os argumentos para }; o método (se houver). recursion yes; O método invocado no recebedor pode também enviar informações de volta ao include "/etc/named.rfc1912.zones"; objeto chamador através de um valor de retorno. O método chamado deve ser }; um que esteja pelo objeto. viewdefinido rede_local { Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 60 53
Linux Network Administration Linguagem de Programação Java
Cursonão Especialista em Redes Este material pode ser distribuído. Somente poderá ser utilizado por alunos da 3Way Networks. [email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a {variável referência match-clients localhost; local_nets; }; Carro carro1 = new Carro(); allow-query { localhost; local_nets; }; carro1.ano = "2001"; allow-query-cache { localhost; local_nets; }; carro1.modelo= "fusca"; allow-recursion { localhost; local_nets; }; carro1.cor = "prata"; include "/etc/named.rfc1912.zones"; };
As únicas mudanças na configuração do named.conf a serem feitas são na diretiva listen-on para especificar o endereço IP da interface de rede que receberá as requisições, a criação da view rede_local habilitando a rede local a fazer consultas e a acl local_nets para especificar quais serão as redes locais a serem configuradas. Após essas configurações deve-se inicializar o serviço de DNS. /etc/init.d/named start Figura 2.4 – Layout Memória após inicialização //criando novo alias Carro carro2 = O servidor já carro1; está atendendo
às solicitações dos clientes configurados. Podese definir, para efeitos de teste, o próprio servidor como cliente de si mesmo no /etc/resolv.conf. /etc/resolv.conf search 3waylocal.net.br nameserver 127.0.0.1
Para testar o servidor basta executar o comando abaixo:
2.3
nslookup Default Server: localhost Address: 127.0.0.1 > www.ufg.br Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto Server: localhost Address: 127.0.0.1
Membros dewww.ufg.br Instância Name:
Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis Address: 200.137.221.67 (atributos)definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem objeto. Isto é importante, pois denota que um método pertence a cada objeto da O servidor de cache retornou corretamente o endereço que foi solicitado oeseu issoestado. ocorrerá classe. Porém não devemos confundir isto com a implementação do método, que Dois objetos distintos têm qualquer endereço válido na Internet, épara compartilhada por todas as instâncias da classe.pois este consultará os servidores raízes, e estes, por sua
o mesmo estado se suas vez, consultarão os servidores de nível mais abaixo na hierarquia até chegar nos responsáveis por variáveis membro têm os 2.3.1 Invocaçãodomínio. de MétodosNo entanto, ele não será capaz de resolver nomes determinado da rede local. mesmos valores. Objetos se comunicam pela troca de mensagens, isto significa que um
Para resolver esse tipo de consulta, será precisará criar um servidor primárrio que
objeto pode ter que mostrar um comportamento particular invocando uma responda por essa rede. operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), 3.9. SERVIDOR PRIMÁRIO devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método A invocado no recebedordo pode também enviar informações volta em ao uma máquina configuração servidor primário será de feita objeto chamador através de um valor de retorno. O método chamado deve ser hostname será ns1.3waylocal.net.br. O arquivo /etc/named.conf um que esteja definido pelo objeto.
máquina deverá ser semelhante ao que está logo abaixo.
cujo desta
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 54 61
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; /etc/named.conf carro1.modelo= "fusca"; carro1.cor options { = "prata"; listen-on port 53 { 127.0.0.1; IP_DA_INTERFACE; }; listen-on-v6 port 53 { ::1; }; directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt"; allow-query { localhost; }; allow-query-cache { localhost; };
}; acl local_nets { ENDEREÇO_DA_REDE_LOCAL; Figura 2.4 – Layout Memória após inicialização }; view localhost_resolver { //criando novo alias match-clients { localhost; }; Carro carro2 = carro1; match-destinations { localhost; }; recursion yes; include "/etc/named.rfc1912.zones"; zone "DOMINIO_A_SER_IMPLEMENTADO" { type master; file "NOME_ARQUIVO_DE_ZONA"; allow-transfer { none; }; }; zone "ENDEREÇO_INVERSO_DE_REDE-SEM_PARTE_DE_HOST.in-addr.arpa" { type master; file "ENDEREÇO_INVERSO_DE_REDE-SEM_PARTE_DE_HOST.in-addr.arpa"; allow-transfer { none; }; }; Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto }; view rede_local { match-clients { localhost; local_nets; }; 2.3 Membros de Instância allow-query { localhost; local_nets; }; Cada allow-query-cache objeto criado deverá ter sua própria local_nets; instância de variáveis Os valores das variáveis { localhost; }; (atributos) definidas pela classe. Os métodos definemlocal_nets; o comportamento allow-recursion { localhost; }; de um em um objeto constituem objeto. Isto é importante, denota que um método pertence a cada objeto da include pois "/etc/named.rfc1912.zones"; o seu estado. zone "DOMINIO_A_SER_IMPLEMENTADO" classe. Porém não devemos confundir isto com a implementação do método, que Dois objetos distintos têm é compartilhada{por todas as instâncias da classe. o mesmo estado se suas type master; file "3waylocal.net.br.direto"; variáveis membro têm os 2.3.1 Invocação deallow-transfer Métodos { none; }; mesmos valores. Objetos };se comunicam pela troca de mensagens, isto significa que um objeto pode ter que"ENDEREÇO_INVERSO_DE_REDE-SEM_PARTE_DE_HOST.in-addr.arpa" mostrar um comportamento particular invocando uma zone { operação apropriada que foi definida no objeto. Em Java, isto é feito pela typeem master; chamada de um método um objeto usando o operador binário "." (ponto), file "ENDEREÇO_INVERSO_DE_REDE-SEM_PARTE_DE_HOST.in-addr.arpa"; devendo especificar a mensagem completa: o objeto que é o recebedor da allow-transfer { none; }; mensagem, o método a ser invocado e os argumentos para o método (se houver). }; O método}; invocado no recebedor pode também enviar informações de volta ao
objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto. Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 62 55
Linguagem de Programação Java Linux Network Administration
Cursonão Especialista em Redes Este material pode ser distribuído. Somente poderá ser utilizado por alunos da 3Way Networks. [email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1nova = new Carro(); Nesta configuração do arquivo surgem as zonas carro1.ano = "2001"; dominio_a_ser_implementado e a endereço_inverso_de_redecarro1.modelo= "fusca"; carro1.cor = "prata"; sem_parte_de_host.in-addr.arpa. Pode-se observar a ocorrência da instrução file
que define o arquivo da base de dados de domínio. Nesta base de dados encontram-se os RRs (Registros de Recursos) do DNS que definem servidores de nomes, endereço IP de hosts, etc. Esses registros são usados quando se cria os arquivos de banco de dados, tanto primário quanto secundário. 3.9.1 REGISTROS DE RECURSOS Registros de Recursos são também conhecidos e abreviados por RR. Formato: //criando novo alias Carro carro2[ttl] = carro1; [name] IN
Figura 2.4 – Layout Memória após inicialização
type
data
Onde: name Identifica o objeto de domínio afetado por este registro. Pode ser um host individual ou domínio inteiro. ttl Este campo é chamado de time-to-live, que define a duração em segundos que este registro de recurso deve ser mantido em memória (cache) por outros servidores DNS externos que fizerem consultas no servidor. Um valor TTL baixo é adequado para RRs com maior freqüência de mudança. TTL muito baixo gera um aumento de tráfego para o servidor. Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
Alguns servidores definem alguns valores TTL como zero, para que servidores externos não armazenem em cache. Um valor de 43200 (12 2.3 Membros de Instância horas) mantém a consulta realizada em cache por 43200 segundos até a sua Cada objetoexpiração. criado deverá ter sua própria instância de variáveis Os valores das variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. class classe. Porém não devemos confundir isto com a implementação do método, que Dois objetos distintos têm é compartilhada portrês todas as instâncias da classe. Existem valores possíveis para este campo: IN, HS, CH. Atualmente é utilizado apenas o mesmo estado se suas o IN que é característico de redes TCP/IP e servidores Internet. Os outros dois possíveis são padrões variáveis membro têm os 2.3.1 antigosInvocação de redes.de Métodos mesmos valores. Objetos se comunicam pela troca de mensagens, isto significa que um type objeto pode ter que mostrar um comportamento particular invocando uma campoque define tipo do no registro fonte. mais comuns. operação Este apropriada foi odefinida objeto. Em Veja Java, abaixo isto é os feito pela um método em um objeto usando o operador binário "." (ponto), chamada de devendo da Nome doespecificar Registro a mensagem completa: Tipo o objeto que é o recebedor Descrição mensagem, o método a ser invocado e os argumentos para o método (se houver). Início de Autoridade SOA Marca o começo dos dados de zona e define parâmetros globais O método invocado no recebedor pode também enviar informações de volta ao [Start Of Authority] objeto chamador através de um valor de retorno. O método chamado deve ser Servidor de Nomes e Domínio NS Identifica um servidor de nomes autorizado. um que esteja definido pelo objeto. [Name Server]
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 63 56
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Curso não Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] da | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); Nome do Registro Tipo Descrição carro1.ano = "2001"; Endereço [Address] A Converte nome de hospedeiro - host - para endereço IP carro1.modelo= "fusca"; carro1.cor = "prata"; Ponteiro [Pointer] PTR Converte endereço IP para um nome de hospedeiro-host.
Mail Exchanger [Repassador de email]
MX
Identifica o servidor de email para este domínio
data Este último campo no registro de recurso é o campo de dados, o mesmo comporta os dados que são específicos para cada tipo de registro de recurso, ou seja, cada formato e dado deste campo é diferente para cada tipo de registro, exemplo: em um tipo de registro A o campo data deve conter o endereço IP.
3.9.2 O ARQUIVO DE RR
Figura 2.4 – Layout Memória após inicialização
//criando novo alias O RR (Registro de Recurso) Carro carro2 = carro1;
é o identificador de cada registro. Dentre outras coisas, sua principal finalidade é converter nomes de hosts em endereços IP. Dando continuidade ao exemplo, na máquina maq1, que será o servidor basta executar os passos abaixo. Crie o arquivo com nome referente a instrução file que está na zona 3waylocal.net.br. Logo o arquivo deve ser criado no diretório /var/named/ (ou a esse diretório relativo à jaula) e deve conter o nome 3waylocal.net.br.direto. $TTL 43200 @ IN SOA
3waylocal.net.br. Figura 2.5 – Layout Memória duasroot.3waylocal.net.br. variáveis referência para o mesmo objeto 2012011702 ; serial 3600 ; refresh 900 ; retry 2.3 Membros de Instância 1209600 ; expire default_ttl Cada objeto criado deverá ter 43200 sua própria ; instância de variáveis ) (atributos) definidas pela classe. Os métodos definem o comportamento de um IN MX método 10 maq1.3waylocal.net.br. objeto. Isto@ é importante, pois denota que um pertence a cada objeto da @ IN NS maq1.3waylocal.net.br. classe. Porém não devemos confundir isto com a implementação do método, que @ IN NS maq2.3waylocal.net.br. é compartilhada da classe. maq1 por todas as instâncias IN A 192.168.1.101 maq2 IN A 192.168.1.102 maq3 de Métodos IN A 192.168.1.103 2.3.1 Invocação maq4 IN A 192.168.1.104 Objetos se comunicam pela troca de mensagens, isto significa que um maq5 IN A objeto pode ter que mostrar um comportamento 192.168.1.105 particular invocando uma maq6 IN A 192.168.1.106 operação apropriada que foi definida no objeto. Em Java, isto é feito pela maq7 IN A 192.168.1.107 chamada de um método em umINobjeto usando www CNAMEo operador maq1 binário "." (ponto), devendo especificar a mensagem o objeto ns1 IN completa: CNAME ns1que é o recebedor da
(
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao Nas versões recentes do BIND, foichamado acrescentado objeto chamador através demais um valor de retorno. O método deve ser a possibilidade de se declarar diretivas. As objeto. diretivas são de sintaxe $DIRETIVA e são declaradas um que esteja definido pelo
na primeira linha do arquivo de zona. Na primeira linha temos como primeiro caso o Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 64 57
Linux Network Administration Linguagem de Programação Java
Cursonão Especialista em Redes Este material pode ser distribuído. Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência
parâmetro Esta entrada define o tempo de vida padrão para os registro Carro $TTL carro143200. = new Carro(); carro1.ano = "2001"; de recursos que vierem definidos no arquivo. Em seguida teremos os registro de carro1.modelo= "fusca"; recursos, na sintaxe= definida carro1.cor "prata";anteriormente. Registro SOA
Esse registro define informações sobre a autoridade. O parâmetro @ faz referência ao domínio da zona definido no arquivo /etc/named.conf, ou seja, ele se refere ao domínio 3waylocal.net.br. Outro parâmetro desta linha define o inicio de autoridade - SOA -, o nome de máquina maq1.3waylocal.net.br define o servidor que tem “Autoridade sobre a zona”. Já root.3waylocal.net.br define o endereço de email da pessoa responsável por este domínio, neste arquivo o @ do email é substituído um (.), pois como visto, tem outra finalidade. Figura 2.4o– @ Layout Memória após inicialização //criando novo alias Carro carro2 = carro1;
Em seguida tem-se:
2012011702 Este é o número serial que diz ao servidor secundário (slave) se este arquivo de registro de recurso foi atualizado. Toda vez que o DNS for atualizado, deve-se alterar este número para um número maior para que seja detectada pelo secundário que houve alteração, então a atualização ocorrerá dinamicamente. Não existe uma regra para edição desse número, na verdade existem algumas práticas mais difundidas. O exemplo acima representa 2012 (ano), 01 (Janeiro), 17 (dia) e 02 (segunda edição do dia). Porém é possível também iniciar com o número 1 e simplesmente incrementá-lo em uma unidade toda vez que for feita uma alteração. 3600 Este é o período em segundos que o secundário verifica o serial e consequentemente faz a Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto atualização. 900 2.3 Membros Instância Este é o de ciclo de tentativas. O ciclo de tentativas determina o tempo que o servidor slave Cada objeto criado deverá ter quando sua própria instância de variáveis Os valores dasregistro variáveis deve esperar por uma nova solicitação o servidor primário falhar na resposta de um (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem SOA. objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que 1209600 é compartilhada por todas as instâncias da classe.
o seu estado. Dois objetos distintos têm o mesmo estado se suas Este é o tempo limite, o período em segundos que o servidor secundário deve continuar respondendo mesmo que não consiga atualizar o arquivo zone, ou seja, mesmo quemembro o servidor variáveis têm os 2.3.1 Invocação de Métodos mestre não esteja respondendo. mesmos valores. Objetos se comunicam pela troca de mensagens, isto significa que um
objeto pode ter que mostrar um comportamento particular invocando uma operação 43200 apropriada que foi definida no objeto. Em Java, isto é feito pela Define o tempo em segundos outro servidor de nomes irá chamada de um método em de um vida objeto(time-to-live) usando o operador binário "."que (ponto), armazenar em cache a informação de uma consulta de domínio não (no such domain – devendo especificar a mensagem completa: o objeto que é o recebedor existente da NXDOMAIN). mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através um valorservidores de retorno.de O método Registro NS -de definindo nome chamado deve ser um que esteja definido objeto.os servidores de nome oficiais para o domínio. Neste exemplo O RR NSpelo define
encontramos dois servidores de nome. O primeiro nome, maq1 é o servidor de nomes primário e Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 58 65
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Curso não Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência
maq2.3waylocal.net.br é o secundário. Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; Registro MX - definindo carro1.cor = "prata";
Servidores de Mensagens O RR MX define os servidores de mensagens para este domínio. Neste caso a máquina maq1 também é o servidor de mensagens. Os registros MX redirecionam mensagens endereçadas para o domínio 3waylocal.net.br. A título de ilustração, todo e-mail enviado para [email protected] será recebido pela máquina maq1 e pode ser repassado de acordo com a configuração do servidor de mensagens para outros hosts. O número existente após MX define a prioridade do servidor de email. Quanto menor for o número, maior será a prioridade do servidor. Registro A - Definindo os hosts e seus IPs Acima de todas as funções o objetivo final deste arquivo é mapear nomes para endereços IP. Tem-se um exemplo das próximasFigura linhas do arquivo: 2.4 – Layout Memória após inicialização //criando novo alias maq1carro2 IN = Acarro1;192.168.1.101 Carro
Podemos traduzir esta linha para: Máquina maq1 em rede TCP/IP possui endereço IP 192.168.1.101. Registro CNAME Este registro é utilizado para atribuir apelidos (aliases) para um host. CNAME indica qual é o nome canônico para um alias. Nome canônico é o nome real da máquina. Deve-se notar que um nome canônico sempre tem um registro A associado para definir o seu endereço IP, portanto um registro CNAME sempre é acompanhado de um host que teve seu número IP referenciado por um registro A, nunca outro alias.
3.10. ARQUIVO DAFigura ZONA REVERSA 2.5 – Layout Memória duas variáveis referência para o mesmo objeto Assim como o DNS é capaz de converter nomes para endereço IP, o DNS também é capaz converter números IP para nomes. Alguns serviços, como por 2.3 Membros de de Instância Cadao ftp, objetoutilizada criado deverá ter sua reversa própria instância de variáveis exemplo a resolução para registrar o nome do host cliente ftp Os valores das variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem em vez de seu número ip em seu histórico (log) . objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. Para o DNS forneça estea implementação serviço precisamos criar classe. Porém nãoque devemos confundir isto com do método, que o arquivo da base de Dois objetos distintos têm da zona reversa. Antesdadisto, édados compartilhada por todas as instâncias classe. devemos criar uma zona reversa no arquivo o mesmo estado se suas /etc/named.conf e posteriormente criar o arquivo de banco de dados. variáveis membro têm os 2.3.1 Invocação de Métodos mesmos valores. Objetos se comunicam pela troca de mensagens, isto significa que um A zona reversa já foi criada com nome de 1.168.192.in-addr.arpa . Esse objeto pode ter que mostrar um comportamento particular invocando uma operação apropriadatambém que foié definida nodaobjeto. Emdados Java, definido isto é feito o arquivo base de parapela esta zona, seu o nome é chamada de um método em um objeto usando o operador ,binário "." possa (ponto), 1.168.192.in-addr.arpa.reverso embora ser utilizado qualquer devendo especificar outro a mensagem nome. completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método Através invocado no também enviar informações volta ao no exemplo, deve-se dorecebedor arquivopode named.conf e da zonadedefinida objeto chamador através de um valor de retorno. O método chamado deve ser criar dentro um que este esteja arquivo definido pelo objeto.do diretório /var/named, o arquivo deverá ter o nome
0.168.192.in-addr.arpa.reverso. Segue abaixo a configuração deste Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 66 59
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); arquivo: carro1.ano = "2001"; carro1.modelo= "fusca"; $TTL 43200 = "prata"; carro1.cor @ IN SOA 3waylocal.net.br. root.3waylocal.net.br. ( 2012011702 ; serial 3600 ; refresh 900 ; retry 1209600 ; expire 43200 ; default_ttl ) @ IN NS maq1.3waylocal.net.br. 101 IN PTR maq1.3waylocal.net.br. 102 IN PTR maq2.3waylocal.net.br. 103 IN PTR maq3.3waylocal.net.br. 104 IN PTR maq4.3waylocal.net.br. 105 IN PTR Figura 2.4 – Layout maq5.3waylocal.net.br. Memória após inicialização 106 IN PTR maq6.3waylocal.net.br. //criando novo alias 107 IN PTR maq7.3waylocal.net.br. Carro carro2 = carro1;
O arquivo da base de dados da zona reversa também possui um registro SOA e um NS, geralmente os mesmos parâmetros utilizados no arquivo de banco de dados de zona. A finalidade da resolução reversa é se obter o nome canônico de um host, baseado em IP. Para isto utiliza-se o registro de recurso PTR, que associa um endereço IP a um nome de host. O endereçamento reverso utiliza um domínio fictício convencionado como in-addr.arpa e um número IP na forma reversa. Depois de feito todo esse procedimento, basta reiniciar o serviço. Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
/etc/init.d/named restart
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da /etc/init.d/bind9 restart classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um Durante e até depois inicializar o named, é interessante verificar possíveis objeto pode ter que mostrar um comportamento particular invocando uma erros. Isso pode ser feito verificando o arquivo de logs principal. operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), tail -n20 /var/log/messages devendo especificar a mensagem o objeto é o"3waylocal.net.br" recebedor da Jan 17 16:02:10 maq1 completa: named[848]: masterque zone (IN) loaded mensagem, o método a ser invocado e os argumentos para o método (se houver). (serial 2012011702) 17 16:02:10 maq1 pode named[848]: Zone informações "0.168.192.in-addr.arpa" (file O método Jan invocado no recebedor também enviar de volta ao 0.168.192.in-addr.arpa.reverso): default TTL setchamado using SOA instead objeto chamador através de um valor deNoretorno. O método deveminimum ser Jan 17 16:02:10 maq1 named[848]: master zone "0.168.192.in-addr.arpa" (IN) loaded um que esteja definido pelo objeto. (serial 2012011702) Jan 17 16:02:10 maq1 named[848]: listening on [127.0.0.1].53 (lo) Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 67 60
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Jan 17 16:02:10 maq1 named[848]: listening on [192.168.1.101].53 (eth0) Carro carro1 = new Carro(); Jan 17 16:02:10 maq1 carro1.ano = "2001";named[848]: Forwarding source address is [0.0.0.0].1024 Jan 17 16:02:10 maq1 named[849]: group = named carro1.modelo= "fusca"; Jan 17 16:02:10 maq1 named[849]: user = named carro1.cor = "prata"; Jan 17 16:02:10 maq1 named[849]: Ready to answer queries. Jan 17 16:02:10 maq1 named: named startup succeeded
correta.
Caso a saída do comando não registre nenhum erro a configuração está
O arquivo configuração:
/etc/resolv.conf
do servidor deve ficar com a seguinte
/etc/resolv.conf Figura 2.4 – Layout Memória após inicialização search 3waylocal.net.br nameserver //criando novo127.0.0.1 alias Carro carro2 = carro1;
search 3waylocal.net.br Este parâmetro é utilizado quando se digitar apenas o nome da máquina, o domínio 3waylocal.net.br será automaticamente acrescentado. nameserver 127.0.0.1 Indica a utilização do endereço 127.0.0.1 para que o servidor utilize seu próprio endereço. Nas máquinas clientes devem ser colocados o endereço IP do servidor.
3.11. FERRAMENTAS DE TESTE 3.11.1. NSLOOKUP
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
Para verificar o funcionamento do servidor DNS é interessante usar o utilitário nslookup, que faz pesquisas interativas e não-interativas em servidores Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis DNS. definidas pela classe. Os métodos definem o comportamento de um (atributos) 2.3
Membros de Instância
em um objeto constituem
objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. classe. Porém não devemos confundir isto com a implementação do método, que Sintaxe: Dois objetos distintos têm é compartilhada por todas as instâncias nslookup [-opções ... da ] classe. [host_a_ser_encontrado | -[servidor ] ] 2.3.1 Invocação de Métodos Exemplo: Objetos se comunicam pela troca de mensagens, isto significa que um nslookup objeto pode ter queServer: mostrar um comportamento particular invocando uma Default localhost 127.0.0.1 operação Address: apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), > maq1.3waylocal.net.br devendo especificar a mensagem completa: o objeto que é o recebedor da Server: localhost mensagem, o método a ser invocado e os argumentos para o método (se houver). Address: 127.0.0.1 O método invocado no recebedor pode também enviar informações de volta ao objeto chamador de um valor de retorno. O método chamado deve ser Name: através maq1.3waylocal.net.br um que esteja definido pelo objeto. Address: 192.168.1.101
o mesmo estado se suas variáveis membro têm os mesmos valores.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 68 61
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro Carro(); Para carro1 conhecer= asnew opções do comando é interessante carro1.ano = "2001"; man nslookup "fusca"; carro1.modelo= carro1.cor = "prata";
ler o manual do comando:
3.11.2. DIG
O DIG é um utilitário para consultas a DNS. Ele é utilizado para identificar problemas de DNS, pois é de fácil utilização e o retorno das pesquisas é bem compreensível. Sintaxe: dig @servidor dominio_a_ser_consultado tipo_consulta
Exemplo:
Figura 2.4 – Layout Memória após inicialização
dig @192.168.1.101 www.ufg.br A //criando novo alias Vale carro2 a pena consultar no manual do comando a procura de mais tipos de consultas, pois Carro = carro1;
eles é que vão dar a qualidade nas respostas. man dig
3.12. SERVIDOR SECUNDÁRIO Este tipo de servidor é considerado também um servidor autoritativo, pois tem um completo banco de dados de domínio que ele transfere do servidor primário. O servidor primário extrai seus dados diretamente de seus arquivos de registro de banco de dados (arquivos locais), enquanto o servidor secundário carrega os dados Figura 2.5 – Layoutatravés Memória duas variáveis para o mesmo objeto de transferência de por meio de outro servidor DNS, de um referência processo chamado zona. 2.3
Membros de Instância
Cada objeto criado deverá de ter utilizar sua própria instância de variáveis é a A grande vantagem o servidor secundário do Os manutenção valores das variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem servidor. Com o servidor secundário você precisa manter a informação atualizada objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. apenas no servidor primário, pois o servidor secundário faz uma transferência de zona classe. Porém não devemos confundir isto com a implementação do método, que Dois objetos distintos têm servidor por primário. Alterando o servidor primário esta configuração será refletida édo compartilhada todas as instâncias da classe.
o mesmo estado se suas consequentemente no servidor secundário, assim a manutenção é totalmente variáveis membro têm os 2.3.1 Invocação de Métodos centralizada no servidor primário. mesmos valores. Objetos se comunicam pela troca de mensagens, isto significa que um
objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto. Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 69 62
Linguagem de Programação Java Linux Network Administration
Curso não Especialista Redes Este material pode ser em distribuído. Somente poderá ser utilizado por alunos da 3Way Networks. [email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1; Servidor secundário interagindo com o primário
Para configurar o named.conf do servidor escravo, você pode partir do servidor de cache e adicionar mais duas zonas. Partindo-se do servidor de cache todas as alterações estão em negrito, ou seja, as que devem ser alteradas ou adicionadas.
2.3
/etc/named.conf options { listen-on port 53 { 127.0.0.1; IP_DA_INTERFACE; }; listen-on-v6 port 53 { ::1; }; Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt"; Membros de Instância { localhost; }; allow-query Cada objeto criado deverá ter sua própria }; instância de variáveis Os valores das variáveis allow-query-cache { localhost;
(atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto};é importante, pois denota que um método pertence a cada objeto da aclnão local_nets classe. Porém devemos confundir isto com a implementação do método, que { é compartilhada por todas as instâncias da classe.
em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
ENDEREÇO_DA_REDE_LOCAL; }; 2.3.1 Invocação de Métodos view localhost_resolver { Objetosmatch-clients se comunicam pela troca de mensagens, isto significa que um { localhost; }; objeto pode termatch-destinations que mostrar um comportamento particular { localhost; }; invocando uma recursion operação apropriada que foiyes; definida no objeto. Em Java, isto é feito pela "/etc/named.rfc1912.zones"; chamada de uminclude método em um objeto usando o operador binário "." (ponto), zone a"DOMINIO_A_SER_IMPLEMENTADO" devendo especificar mensagem completa: o objeto que é o recebedor da { mensagem, o método a ser invocado e os argumentos para o método (se houver). type slave; O método invocado no recebedor pode também enviar informações de volta ao file "slaves/NOME_ARQUIVO_DE_ZONA"; objeto chamador através de um valor de retorno. O método chamado deve ser masters { ENDEREÇO_DO_PRIMARIO; }; um que esteja definido pelo objeto. }; zone "ENDEREÇO_INVERSO_DE_REDE-SEM_PARTE_DE_HOST.arpa" Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 70 63
Linguagem de Programação Java Linux Network Administration
Cursonão Especialista em Redes Este material pode ser distribuído. Somente poderá ser utilizado por alunos da 3Way Networks. [email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência { Carro carro1 = new Carro(); slave; carro1.ano type = "2001"; file "fusca"; "slaves/ENDEREÇO_INVERSO_DE_REDE-SEM_PARTE_DE_HOST.incarro1.modelo= addr.arpa"; carro1.cor = "prata"; masters { ENDEREÇO_DO_PRIMARIO; }; }; }; view interna { match-clients { localhost; local_nets; }; allow-query { localhost; local_nets; }; allow-query-cache { localhost; local_nets; }; allow-recursion { localhost; local_nets; }; include "/etc/named.rfc1912.zones"; zone "DOMINIO_A_SER_IMPLEMENTADO" { type slave; Figura 2.4 – Layout Memória após inicialização file "slaves/NOME_ARQUIVO_DE_ZONA"; //criando novo alias masters { ENDEREÇO_DO_PRIMARIO; }; Carro carro2 = carro1; }; zone "ENDEREÇO_INVERSO_DE_REDE-SEM_PARTE_DE_HOST-addr.arpa" { type slave; file "slaves/ENDEREÇO_INVERSO_DE_REDE-SEM_PARTE_DE_HOST.inaddr.arpa"; masters { ENDEREÇO_DO_PRIMARIO; }; }; };
É importante ressaltar que o servidor primário também deve sofrer alterações que permitam que os secundários realizem transferências de zona. Isso é feito inserindo-se os endereços IP dos servidores secundários na diretiva allowFigura 2.5 – Layout duas variáveis para o mesmo objeto transfer do primário. Agora é Memória só reiniciar o referência servidor. 2.3
HWFLQLWGQDPHGUHVWDUW Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis (atributos)Édefinidas pela classe. Os métodos definem o comportamento de um em umaobjeto constituem importante verificar os logs, como foi dito anteriormente, procura da objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. causaPorém de eventuais erros. Na maioria dos casos é possível identificá-los. classe. não devemos confundir isto com aabsoluta implementação do método, que Dois objetos distintos têm é compartilhada por todas as instâncias da classe.
2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
o mesmo estado se suas variáveis membro têm os mesmos valores.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 71 64
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
3.15. LABORATÓRIO
Essa prática tem como objetivo implementar uma estrutura de servidores DNS (primário e secundário) para o domínio 3wayteste.net. Siga os passos a seguir pra concluir essa atividade. Antes de iniciar será preciso mudar o hostname na sessão atual (com o comando hostname), em /etc/sysconfig/network e /etc/hosts, para finalizar editar o resolver para o próprio servidor no /etc/resolv.conf. hostname maq1.3wayteste.net
/etc/sysconfig/network HOSTNAME=maq1.3wayteste.net
Figura 2.4 – Layout Memória após inicialização /etc/hosts 127.0.0.1novo maq13wayteste.net maq1 localhost.localdomain localhost //criando alias Carro carro2 = carro1; /etc/resolv.conf search 3wayteste.net nameserver 127.0.0.1
/etc/nsswitch.conf hosts: dns files
A) Instalação dos pacotes necessários à implementação (servidor primário e secundário). yum install bind bind-libs bind-utils caching-nameserver
B) Configurar o dns incluindo uma view interna para que as máquinas da rede local possam utilizar o servidor DNS. /etc/named.conf options { Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto listen-on port 53 { 127.0.0.1; IP_DA_INTERFACE; }; listen-on-v6 port 53 { ::1; }; directory "/var/named"; 2.3 Membros de Instância dump-file "/var/named/data/cache_dump.db"; Cada statistics-file objeto criado deverá ter sua própria instância de variáveis "/var/named/data/named_stats.txt"; Os valores das variáveis memstatistics-file "/var/named/data/named_mem_stats.txt"; (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem allow-query { que localhost; objeto. Isto é importante, pois denota um método}; pertence a cada objeto da o seu estado. allow-query-cache { localhost; };
classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. }; acl local_nets
2.3.1 Invocação de Métodos { 192.168.1.0/24; Objetos se comunicam pela troca de mensagens, isto significa que um }; ter que mostrar um comportamento particular invocando uma objeto pode localhost_resolver { objeto. Em Java, isto é feito pela operação view apropriada que foi definida no match-clients { localhost; }; chamada de um método em um objeto usando o operador binário "." (ponto), match-destinations { localhost; }; devendo especificar a mensagem recursion yes; completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). include "/etc/named.rfc1912.zones"; O método invocado recebedor pode também enviar informações de volta ao zone no "3waynet.net" { através de um valor de retorno. O método chamado deve ser objeto chamador type um que esteja definido pelomaster; objeto.
Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
file "3waynet.net.direto";
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 73 65
Linguagem de Programação Java Linux Network Administration
Este material pode ser em distribuído. Curso não Especialista Redes Somente poderá ser utilizado por alunos da 3Way Networks. [email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro }; carro1 = new Carro(); zone "ENDEREÇO_INVERSO_DE_REDE-SEM_PARTE_DE_HOST-addr.arpa" carro1.ano = "2001"; { carro1.modelo= "fusca"; carro1.cortype = master; "prata"; file "1.168.192.in-addr.arpa"; }; }; view interna { match-clients { localhost; local_nets; }; allow-query { localhost; local_nets; }; allow-query-cache { localhost; local_nets; }; allow-recursion { localhost; local_nets; }; include "/etc/named.rfc1912.zones"; zone "3waynet.net" { type master; Figura 2.4 – Layout Memória após inicialização file "3waynet.net.direto"; //criando novo alias }; Carro carro2 = carro1; zone "ENDEREÇO_INVERSO_DE_REDE-SEM_PARTE_DE_HOST-addr.arpa" { type master; file "1.168.192.in-addr.arpa"; }; };
C) Inicie o servidor caching. /etc/init.d/named start
D) Partindo-se da configuração da configuração de caching podemos iniciar a configuração do servidor primário. Mas para isso, adapte o named.conf como o exposto abaixo. /etc/named.conf ... Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto view localhost_resolver { match-clients { localhost; }; match-destinations { localhost; }; recursion yes; 2.3 Membros de Instância include "/etc/named.rfc1912.zones"; Cada objeto criado deverá ter sua própria instância de variáveis zone "3wayteste.net" Os valores das variáveis { (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem typepois master; objeto. Isto é importante, denota que um método pertence a cada objeto da o seu estado. file "3wayteste.net.direto"; classe. Porém não};devemos confundir isto com a implementação do método, que Dois objetos distintos têm "1.168.192.in-addr.arpa" é compartilhadazone por todas as instâncias da classe. o mesmo estado se suas { type master; variáveis membro têm os 2.3.1 Invocação defile Métodos "1.168.192.in-addr.arpa"; mesmos valores. Objetos }; se comunicam pela troca de mensagens, isto significa que um }; objeto pode ter que mostrar um comportamento particular invocando uma view interna operação {apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de ummatch-clients método em um objeto usando o operador binário}; "." (ponto), { localhost; local_nets; allow-query { localhost; local_nets; }; devendo especificar a mensagem completa: o objeto que é o recebedor da allow-query-cache { argumentos localhost; }; mensagem, o método a ser invocado e os paralocal_nets; o método (se houver). allow-recursion { localhost; local_nets; }; O método invocado no recebedor pode também enviar informações de volta ao include "/etc/named.rfc1912.zones"; zone "3wayteste.net" objeto chamador através de um valor de retorno. O método chamado deve ser { um que esteja definido pelo objeto. type master; file "3wayteste.net.direto"; Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 74 66
Linguagem de Programação Java Linux Network Administration
Curso não Especialista em Redes Este material pode ser distribuído. Somente poderá ser utilizado por alunos da 3Way Networks. [email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência }; Carro carro1 = new Carro(); zone "1.168.192.in-addr.arpa" carro1.ano = "2001"; { carro1.modelo= "fusca"; type master; carro1.cor file = "prata"; "1.168.192.in-addr.arpa"; }; };
E) Em seguida crie os arquivos de zona do servidor primário. /var/named/3wayteste.net.direto $TTL 43200 @ IN SOA 3wayteste.net. webmaster.3wayteste.net. ( 2012012201 ; serial 3600 ; refresh 900 ; retry 1209600 ; expire 43200 ; default_ttl Figura ) 2.4 – Layout Memória após inicialização @ IN MX 5 maq1.3wayteste.net. //criando novo alias @ IN NS maq1.3wayteste.net. Carro carro2 = carro1; @ IN NS maq2.3wayteste.net. maq1 IN A 192.168.1.101 maq2 IN A 192.168.1.102 maq3 IN A 192.168.1.103 maq4 IN A 192.168.1.104 www IN CNAME maq1 ns1 IN CNAME maq1 mail IN CNAME maq1 ns2 IN CNAME maq2 /var/named/1.168.192.in-addr.arpa $TTL 43200 @ IN SOA 3wayteste.net. webmaster.3wayteste.net. ( 2012012201 ; serial 3600 ; refresh 900 ; retry ; expire Figura 2.5 – Layout1209600 Memória duas variáveis referência para o mesmo objeto 43200 ; default_ttl ) @ IN NS maq1.3wayteste.net. 101 IN PTR maq1.3wayteste.net. 2.3 Membros de Instância 102 IN PTR maq2.3wayteste.net. Cada ter PTR sua própria instância de variáveis Os valores das variáveis 103 objeto criado deverá IN maq3.3wayteste.net. (atributos) 104 definidas pela classe.IN Os métodos o comportamento de um PTRdefinemmaq4.3wayteste.net. em um objeto constituem
objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. F) AtéPorém este ponto já podemos reiniciar o servidor de nomes do para verificar classe. não devemos confundir isto com a implementação método, queo funcionamento. Dois objetos distintos têm /etc/init.d/named restart é compartilhada por todas as instâncias da classe.
o mesmo estado se suas variáveis membroou têma os G) Caso não ocorra nenhum erro de implementação, os testes podem ser feitos localmente 2.3.1 Invocação de Métodos mesmos valores. partir de outrasse máquinas. Objetos comunicam pela troca de mensagens, isto significa que um
objeto pode ter que mostrar um comportamento particular invocando uma Local operação apropriada que foi definida no objeto. Em Java, isto é feito pela Tendo como certa as configurações item anterior. Teste a conectividade chamada de um método em um objetodo usando o operador binário "." (ponto), com quaisquer máquinas configuradas nos arquivos de zona. devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). ping aluno1 O método invocado no recebedor pode também enviar informações de volta ao ping chamador aluno4 através de um valor de retorno. O método chamado deve ser objeto um que esteja definido pelo objeto.
Remotos
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 75 67
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência
Carro carro1 = new (que Carro(); A partir de outra máquina não seja o servidor DNS), configure o resolver para resolver carro1.ano = "2001"; consultas através do seu servidor DNS e execute os mesmos testes. carro1.modelo= "fusca"; /etc/resolv.conf carro1.cor = "prata"; search 3wayteste.net nameserver 192.168.1.101
ping aluno3
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 76 68
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da| 3Way Networks. [email protected] (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
3.16. EXERCÍCIOS
1) Qual é a definição de DNS? Qual é sua principal finalidade? Quais os tipos de servidores de DNS existem e quais suas principais características? 2)
Qual a diferença entre zona e domínio?
3)
Defina Servidor Autorizado.
4) Qual a diferença entre um servidor de nomes: caching, primário [master] e secundário [slave]? Figura 2.4 – Layout Memória após inicialização //criando novo alias Carro carro2 carro1; Suponha que= necessitamos
5) de configurar um domínio chamado teste.com.br, para um servidor de nomes primário de nome ns.teste.com.br e endereço IP 200.1.2.3. O endereço IP deste servidor é 200.1.2.3 e o IP do servidor web deste domínio é o mesmo do servidor secundário de nome ns2.teste.com.br, com número IP 200.1.2.4. E o servidor SMTP (mail) é o mesmo do DNS primário. Apresente a configuração para esta situação, indicando quais são e um possível conteúdo destes arquivos. 6) O que são RR - Registros de Recursos? Qual é a sintaxe? Para que servem? Cite e explique alguns tipos de RRs. 2.5 – servidores Layout Memória duas referência para o mesmo objeto 7) Qual é a funçãoFigura dos devariáveis nome raízes [root-servers]? Por que eu preciso de manter um arquivo dos endereços IP's dos servidores de nome raízes? Como eu posso atualizar este arquivo?
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis 8) Qual é a função daOsdiretiva é a vantagem (atributos) definidas pela classe. métodos$TTL? definem Qual o comportamento de ume ter umIstovalor de TTLpois - Time Toque Live - alto ou baixo? objeto. é importante, denota um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
Os valores das variáveis a desvantagem de se
em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 77 69
Linguagem Administration de Programação Java Linux Network
Este material pode ser distribuído. Curso não Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
4. DHCP
Este capítulo trata o protocolo DHCP (servidor Figura 2.4 – Layout Memória após inicialização e cliente) que permitem que configurações de rede TCP/IP sejam atribuídas dinamicamente para estações de //criando novo alias Carro carro2 = carro1; trabalho de uma rede.
4.1. PROTOCOLO DHCP
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Processo de requisição de configurações TCP/IP
Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis DHCPpela é classe. um acrônimo para Protocolo de de Configuração Dinâmica de (atributos) definidas Os métodos definem o comportamento um em um objeto constituem Computador (Dinamic Hostque Configuration Protocol). um da protocolo cliente/servidor, objeto. Isto é importante, pois denota um método pertence a cada É objeto o seu estado. classe. Porém não devemos confundir isto com a implementação do método, que que possibilita computadores clientes recebam configurações TCP/IP Dois objetos distintos têm é compartilhada por todas as instâncias da classe. dinamicamente. Esta funcionalidade tem muita importância em grandes redes, pois o
o mesmo estado se suas controle dasde configurações TCP/IP são feitas de forma centralizada, estaos variáveistornando membro têm 2.3.1 Invocação Métodos mesmos valores. configuração para isto o administrador. Objetos se praticamente comunicam pela transparente troca de mensagens, significa que um
objeto podeOtercliente que mostrar um iniciado, comportamento particular invocando quando envia um pedido de uma configuração (request) em operação apropriada que foi definida no objeto. Em Java, isto é feito pela broadcast e espera a resposta de um servidor. O pedido de configuração deve chamada de um método em um objeto usando o operador binário "." (ponto), obrigatoriamente conter completa: solicitação de um IP dae máscara de sub-rede, devendo especificar a mensagem o objeto que éendereço o recebedor podendo também padrão, domínio de pesquisa, servidor mensagem, o método a ser solicitar invocado e roteador os argumentos para o nome método de (se houver). O método invocado no recebedor pode também enviar informações de volta ao DNS, etc. E a resposta do servidor são as informações específicas propriamente ditas. objeto chamador através de um valor de retorno. O método chamado deve ser O servidor escuta a porta 67 e transmite na porta 68. um que esteja definido pelo objeto.
Uma vez que o cliente, antes da inicialização, não possui endereço IP, como Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 78
70
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Curso não Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = com new Carro(); ele pode comunicar o servidor? Na verdade, toda comunicação inicial entre o carro1.ano = "2001"; clientecarro1.modelo= e o servidor independe "fusca"; do protocolo IP, utilizando protocolo a nível de enlace carro1.cor = (camada 2) para que "prata"; um cliente e o servidor negocie os parâmetros de configuração
necessários. Esta negociação é realizada por mensagens transmitidas por difusão (broadcast) na sub-rede, sendo limitada a estações fisicamente conectadas na mesma rede. Uma vez estabelecido esta negociação inicial, a comunicação pode ser baseada no protocolo IP. O DHCP é baseado no protocolo BOOTP (camada 2). Esse protocolo permite que estações sem disco rígido inicializem-se através da rede. O protocolo DHCP é considerado como uma extensão do BOOTP, por ser apenas um sub-conjunto do complexo protocolo BOOTP. Figura 2.4 – Layout Memória após inicialização //criando novo alias Carro carro2 = carro1;
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 79 71
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Arquitetura Cliente/Servidor do DHCP
O DHCP também é um protocolo essencial para provedores Internet, uma vez que permite que clientes obtenham dinamicamente seus parâmetros quando se conectam no provedor,Figura via discada, porreferência exemplo. Assim, toda vez que um 2.5 –linha Layout Memória duas variáveis para o mesmo objeto cliente estabelece uma conexão com o servidor, geralmente um novo endereço IP é obtido. Se o DHCP não for utilizado, todo cliente seria configurado estaticamente, 2.3 cada Membros um com de umInstância número IP exclusivo, o que na prática seria inviável. Para um Cada objeto criado deverá ter sua própria instância de variáveis Os 1000 valoresendereços das variáveis provedor com 1000 clientes, por exemplo, deveria se ter disponível (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem IP's, oIsto que seria impraticável levando-se contaa acada escassez IP. Além objeto. é importante, pois denota que um métodoem pertence objeto dados endereços o seu estado. classe. Porém não devemos confundir isto com a implementação do método, que disto, seria totalmente inviável a administração destes IPs, com a Dois entrada e saída detêm objetos distintos énovos compartilhada por todas as instâncias da classe. clientes. o mesmo estado se suas membro Não existem muitas implementações de DHCP para Linuxvariáveis licenciados sobtêma os 2.3.1 Invocação de Métodos mesmos GPL, talvez seja devido pela ao grande emvalores. quase Objetos se comunicam troca de sucesso mensagens,do istoDHCP significado queISC, um disponível objeto ter que mostrarLinux. um comportamento invocando umaser considerado muito todas pode as distribuições Além desteparticular software além de operação apropriada que foi definida no objeto. Em Java, isto é feito pela bom, é totalmente disponibilizado sob a GPL. chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da 4.2 INSTALANDO O DHCP mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O métodoformatos: chamado deve ser O DHCP está disponível em diversos código um que esteja definido pelo objeto.
fonte do programa, arquivos pré-compilados (binários) RPM / DEB e ferramentas avançadas como Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 80 72
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência YUMCarro / APT.carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
4.2.1. INSTALAÇÃO CÓDIGO FONTE O código-fonte está disponível no endereço www.isc.org. Esta implementação engloba o servidor dhcpd, assim como o cliente dhclient. cp dhcp-versao.tar.gz /usr/local/src cd /usr/local/src tar xvfz dhcp-versao.tar.gz cd dhcp-versao ./configure make make install
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Este comando instala Carro carro2 = carro1; /usr/sbin/dhclient, o arquivo de
o daemon em /usr/sbin/dhcpd, o cliente em configuração em /etc/dhcpd.conf, etc.
4.2.2. INSTALAÇÃO AUTOMATIZADA Os pacotes RPMs são disponibilizados por várias distribuições, tais como, CentOS/RHEL, SUSE, etc, e podem ser instalados através do comando abaixo: yum install dhcp
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
apt-get install dhcp3-server
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis pacotepela do classe. ISC DHCP fornece o software dhclient que (atributos)O definidas Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da configurações de rede para clientes DHCP. classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe.
Os valores das variáveis
fazemasumrequisições de objeto constituem
o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
2.3.1 Invocação de Métodos 4.3. CONFIGURAÇÃO SERVIDOR DHCP Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento invocando uma O arquivo de configuração padrãoparticular do DHCP é o dhcpd.conf e se localiza no operação apropriada que foi definida no objeto. Em Java, isto é feito pela diretório /etc. Este arquivo pode ser criado inicialmente vazio e editado com chamada de um método em um objeto usando o operador binário "." (ponto), qualquer editor ademensagem texto, mas existe um arquivo de configuração de exemplo no devendo especificar completa: o objeto que é o recebedor da mensagem, método a ser invocado (e/usr/share/doc/dhcp-versao/dhcpd.conf-sample os argumentos para o método (se houver). ). diretórioso de documentação O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Arquivo /etc/dhcpd.conf um que esteja definido pelo objeto.
Este é o arquivo de configuração do daemon dhcpd, quando inicializamos o Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 81 73
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); serviço dhcpd, o mesmo lê este arquivo e estabelece as carro1.ano = "2001"; arquivo que se segue"fusca"; nos mostra a configuração de como carro1.modelo= carro1.cor = "prata"; endereços IP para o cliente DHCP em uma sub-rede.
devidas configurações. O transmitir dinamicamente
#Define valores globais para todo o sistema ddns-update-style ad-hoc; max-lease-time 604800; default-lease-time 86400; option domain-name "3waylocal.net.br";
#Define faixa de endereços dinâmicos para a sub-rede subnet 10.0.0.0 netmask 255.255.255.0 { option routers 10.0.0.254; option domain-name-servers 10.0.0.240, 10.0.0.241; option broadcast-address 10.0.0.255; Figura 2.4 – Layout Memória após inicialização range 10.0.0.100 10.0.0.150; //criando novo alias default-lease-time 21600; Carro carro2 = carro1; 43200; max-lease-time # Define os hosts que devem obter endereços IPS estáticos # host maq10 { # hardware ethernet 00:80:c7:aa:a8:04; # fixed-address 192.168.1.10; #} #host maq11 { # hardware ethernet 00:00:c0:a1:5e:10; # fixed-address 192.168.1.11; #} }
No Debian/Ubuntu o nome do arquivo de configuração do DHCP é diferente (/etc/default/dhcp3-server), portanto tenha cuidado para não confundir. Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros Instância Se maisdede uma interface de rede está conectada no sistema e se quer
2.3.1
/etc/sysconfig/dhcpd DHCPDARGS=eth1 Invocação de Métodos
Cada objeto criado deverá ter sua própria instância de variáveis Os valores variáveis especificar qual interface irá prover o serviço, basta especificá-la na das diretiva (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem DHCPDARGS arquivopois /etc/sysconfig/dhcpd . objeto. Isto é do importante, denota que um método pertence a cada objeto da o seu estado. classe. Porém não devemos confundir isto com a implementação do método, que Dois objetos distintos têm é compartilhada por todas as instâncias da classe.
o mesmo estado se suas variáveis membro têm os mesmos valores.
Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação Isso apropriada definida no objeto. Em Java, é feito pela é útilque emfoi uma máquina Firewall com isto duas insterfaces de rede. Uma pode chamada de um método em um objeto usando o operador binário "." (ponto), estar configurada com IP público e a outra para prover endereçamento IP para a rede devendo especificar a mensagem completa: o objeto que é o recebedor da local atrás do Firewall. Essa configuração protegeria a rede interna, uma vez que não mensagem, o método a ser invocado e os argumentos para o método (se houver). clientes Internet. Oatenderia método invocado no provenientes recebedor pode da também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto. Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 82 74
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 opções = new Carro(); Principais carro1.ano = "2001"; carro1.modelo= "fusca"; max-lease-time carro1.cor = "prata";
Determina qual é o tempo máximo que um certo endereço pode ser alugado (lease) por um cliente, em segundos. Neste exemplo, o parâmetro é uma semana. default-lease-time Define o tempo que um certo endereço IP será alugado caso o cliente não envie o tempo de aluguel desejado. No exemplo acima, o default é estabelecido para um dia (86400 segundos). No cliente pode-se especificar qual o tempo de aluguel requerido em sua configuração. Se for especificado o servidor utilizará até max-lease-time, se não o servidor utilizará o tempo de default-lease-time. Figura 2.4 – Layout Memória após inicialização
option subnet-mask //criando novo alias Define a máscara da sub-rede, neste caso a máscara é 255.255.255.0 Carro carro2 = carro1; option domain-name Determina o domínio padrão, no nosso exemplo o domínio é 3waylocal.net.br. O domínio padrão é acrescentado ao nome quando não se especifica um domínio para um host. Por exemplo, caso você executasse o comando ping www, seria equivalente a executar ping www.3waylocal.net.br, apesar de não ter sido especificado um domínio. option domain-name-servers Define os servidores DNS - Domain Name Service. option routers Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto Estabelece os roteadores padrões.
2.3
subnet edenetmask Membros Instância Determina a sub-rede e a sua de sub-rede respectivamente. Cada objeto criado deverá termáscara sua própria instância de variáveis
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas range membro 2.3.1 Invocação Métodos Define adefaixa de IP que podem serem atribuídas dinamicamente para variáveis os hosts desta sub-têm os mesmos valores. rede. Objetos se comunicam pela troca de mensagens, isto significa que um
(atributos) definidas pela classe. Os métodos definem o comportamento de um option broadcast-address objeto. Isto é importante, pois denota que um método pertence a cada objeto da Define endereço de broadcast. classe. Porém não odevemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe.
objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela hardware chamada de um método em um objeto usando o operador binário "." (ponto), Neste parâmetro você deve especificar o endereço MAC. Estadaopção suporta ethernet e devendo especificar a mensagem completa: o objeto que é o recebedor token-ring.o método É através deste endereço que opara serviço localizará a máquina na rede. mensagem, a ser invocado e os MAC argumentos o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser fixed-address um que esteja definido pelo objeto.
É usado para atribuir o endereço IP estático para host.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 83 75
Linux Network Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); use-host-decl-name carro1.ano = "2001"; Este parâmetro "fusca"; faz com que o cliente receba o carro1.modelo= carro1.cor = "prata"; diretiva host. Valores: true ou false;
nome de host como indicado logo após a
host maq101 { hardware ethernet 00:80.c7:aa:a8:04; ... }
Neste caso o host cujo endereço MAC for 00:80.c7:aa:a8:04 receberá o nome maq101. host
As definições host, group e subnet podem conter todas as outras opções e as Figura 2.4 – por Layout Memória opções que não estiver delimitadas estas após sãoinicialização chamadas de opções globais. O //criando novo alias servidor trabalha do específico para o geral, ou seja, quando vai configurar os Carro carro2 = carro1; clientes, o servidor procura por opções dentro de um agrupamento host, depois em group, em subnet e finalmente nas opções globais. Prevalecendo do host para as globais. Depois de feita a configuração deste arquivo o próximo passo é inicializar o daemon dhcpd. Veja o comando abaixo: service dhcpd start
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
/etc/init.d/dhcp3-server start
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. O DHCP também usa o arquivo /var/lib/dhcpd/dhcpd.leases para classe. Porém não devemos confundir isto com a implementação do método, que armazenar o banco de dados dos empréstimos de clientes. Dois objetos distintos têm é compartilhada por todas as instâncias da classe.
o mesmo estado se suas variáveis membro têm os mesmos valores.
2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma 4.4 CONFIGURAÇÃO CLIENTE operação apropriada que foi definida no objeto. DHCP Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: objeto que é o recebedor da Por padrão o cliente obtémo as configurações provenientes do arquivo de mensagem, o método a ser invocado e os argumentos para o método (se houver). configuração do servidor, mas quando o cliente dhclient é inicializado, ele lê, se O método invocado no recebedor pode também enviar informações de volta ao existir, o arquivo /etc/dhclient.conf tornando o processo objeto chamador através de um valor de retorno. O método chamado deve ser mais flexível. um que esteja definido pelo objeto.
Para configurar o linux para receber endereço IP dinamicamente, basta Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 76 84
Linguagem de Programação Java Linux Network Administration
Curso não Especialista em Redes Este material pode ser distribuído. Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência
lembrar docarro1 arquivo de Carro(); configuração da interface ethernet a qual irá receber Carro = new carro1.ano = "2001"; configurações IP dinamicamente. Este arquivo é o /etc/sysconfig/networkcarro1.modelo= "fusca"; ou /etc/network/interfaces (Debian/Ubuntu). scripts/ifcfg-ethX carro1.cor = (CentOS/RHEL) "prata"; /etc/sysconfig/network-scripts/ifcfg-eth0 ONBOOT="yes" BOOTPROTO="dhcp"
/etc/network/interfaces auto eth0 iface eth0 inet dhcpMemória após inicialização Figura 2.4 – Layout //criando novo alias Carro carro2 = carro1;
Para configurar uma estação Windows para receber suas configurações TCP/IP de um servidor DHCP é preciso marcar Obter um endereço IP automaticamente nas configurações da interface de rede. As informações sobre leasing (locação) de IPs são armazenadas nos arquivos dhclient.leases e dhcpcd.leases. Este último somente quando houver o daemon servidor. No CentOS/RHEL o caminho para esses arquivos são /var/lib/dhclient/ e /var/lib/dhcpd/ respectivamente. No Debian/Ubuntu o caminho é /var/lib/dhcp3/ para ambos os arquivos. Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
4.5. GERENCIANDO SUB-REDES 2.3
Em uma com muitas sub-redes há um maior trabalho a ser feito em Membros de rede Instância
objeto criado do deverá ter sua própria instância de variáveis relaçãoCada a configuração DHCP. O ideal é ter um servidor central Os navalores rede principal, das variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um emmensagens um objeto constituem pois quando os clientes são inicializados, eles enviam por difusão com objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. solicitações de configurações DHCP. Como este servidor não pertence a esta sub-rede classe. Porém não devemos confundir isto com a implementação do método, que Dois objetos distintos têm obviamente no mesmo éecompartilhada por não todas está as instâncias da classe.barramento, é necessário a implementação de
agentes retransmissores, os chamados servidores dhcrelay.
o mesmo estado se suas variáveis membro têm os mesmos valores.
2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um 4.5.1. C ONFIGURAÇÃO SERVIDOR DHCRELAY objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela O um servidor também de agente retransmissor DHCP, faz chamada de método dhcrelay, em um objeto usando ochamado operador binário "." (ponto), parte doespecificar pacote dhcpd. O agente retransmissor solicitações DHCP em uma devendo a mensagem completa: o objeto que identifica é o recebedor da mensagem, a ser invocado e os para o método (se houver). sub-rede oemétodo as retransmite para o argumentos servidor DHCP em uma outra sub-rede. O método invocado no recebedor pode também enviar informações de volta ao Para que o servidor DHCP forneça o serviço para toda a rede (incluindo as objeto chamador através de um valor de retorno. O método chamado deve ser sub-redes), é preciso utilizar os agentes retransmissores: DHCP Relay. O servidor um que esteja definido pelo objeto.
dhcrelay deve ser ligado na mesma sub-rede do cliente para que ele consiga escutar Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 85 77
Linux Network Administration Linguagem de Programação Java
Este material pode ser distribuído. Curso não Especialista em Redes Somente poderá ser utilizado por alunos da 3Way Networks. [email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência
as requisições que=vem por broadcast e encaminhá-las para o servidor. Quando o Carro carro1 new Carro(); carro1.ano = "2001"; servidor receber a requisição, o mesmo a processará e, intermediado pelo DHCP carro1.modelo= "fusca"; Relay,carro1.cor começará o processo de empréstimo da configuração TCP/IP. = "prata"; Para configurar o serviço dhcrelay o comando dhcrelay deverá ser utilizado. Abaixo está a sintaxe do comando: dhcrelay
Veja este exemplo de comando: dhcrelay
192.168.1.101
Figura 2.4seria – Layouto Memória após inicialização Este comando sem opções bastante. Em um servidor dhcrelay este //criando novo alias comando deve ser executado quando a máquina é inicializada, para que isto aconteça, Carro carro2 = carro1; no caso do CentOS/RHEL, é necessário configurar as interfaces de escuta na diretiva INTERFACES do arquivo /etc/sysconfig/dhcprelay.
/etc/sysconfig/dhcprelay INTERFACES=”eth0” DHCPSERVER=””
Para iniciar o agente DHCP Relay basta executar o comando abaixo:
/etc/init.d/dhcprelay start Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
/etc/init.d/networking start
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada todas as instâncias da classe. usar roteadores para No por exemplo é interessante
retransmissores DHCP,
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm serem os agentes o mesmo estado se suas apesar de não ser obrigatoriamente necessário. Logo,têm o os variáveis membro mais de uma interface e ser configurado para fornecer mesmos valores.o pela troca de mensagens, isto significa que um
2.3.1 Invocação de Métodos roteador deverá possuir Objetos se comunicam serviço DHCP para a interface correta. A interface eth1 do roteador objeto pode ter queretransmissor mostrar um comportamento particular invocando uma está conectada àsque sub-redes queno possuem os clientes que precisam do serviço operação apropriada foi definida objeto. Em Java, isto DHCP é feito e pela chamada de um método em um objeto usando o operador binário "." (ponto), DHCP retransmissor, o comando dhcrelay para este caso seria: devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem,dhcrelay o método a-i sereth1 invocado e os argumentos para o método (se houver). 10.0.0.254 O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Ambos roteadores desta rede terão a mesma configuração e, um que esteja definidoos pelo objeto.
consequentemente, usarão o comando apresentado acima. Este comando pede ao Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 78 86
Linguagem de Programação Java Linux Network Administration
Cursonão Especialista em Redes Este material pode ser distribuído. Somente poderá ser utilizado por alunos da 3Way Networks. [email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 listar = newasCarro(); dhcrelay somente requisições DHCP na interface carro1.ano = "2001"; as requisições, ele os "fusca"; transmitirá para 10.0.0.254. carro1.modelo= carro1.cor = "prata";
eth1. Então quando receber
4.5.2. CONFIGURAÇÃO PARA GERENCIAR SUB-REDES
Esta é uma extensão da configuração apresentada no item Configuração Servidor DHCP. #Define valores globais para todo o sistema ddns-update-style ad-hoc; max-lease-time 604800; default-lease-time 86400; #Define faixa de endereços a sub-rede Figura 2.4dinâmicos – Layout Memóriapara após inicialização subnet 10.0.0.0 netmask 255.255.255.0 { //criando novo alias option domain-name "3waylocal-0.net.br"; Carro carro2 = carro1; option routers 10.0.0.254; option domain-name-servers 10.0.0.240, 10.0.0.241; option broadcast-address 10.0.0.255; range 10.0.0.100 10.0.0.150; host maq1 { hardware ethernet 00:80:c7:aa:a8:04; fixed-address 10.0.0.1; } } subnet 10.0.1.0 netmask 255.255.255.0 { option domain-name "3waylocal-1.net.br"; option routers 10.0.1.254; option domain-name-servers 10.0.1.240, 10.0.1.241; option broadcast-address 10.0.1.255; range 10.0.1.150 10.0.1.200; host maq10Figura { 2.5 – Layout Memória duas variáveis referência para o mesmo objeto hardware ethernet 00:80:c7:ff:aa:51; fixed-address 10.0.0.10; } 2.3 Membros de Instância } Cada objeto criado deverá ter 255.255.255.0 sua própria instância de variáveis subnet 10.0.2.0 netmask { (atributos) definidas pela classe. Os métodos definem o comportamento de um option domain-name "3waylocal-2.net.br"; option pois routers objeto. Isto é importante, denota10.0.2.254; que um método pertence a cada objeto da 10.0.2.240, 10.0.2.241; classe. Porém nãooption devemosdomain-name-servers confundir isto com a implementação do método, que option broadcast-address 10.0.2.255; é compartilhada por todas as instâncias da classe. range 10.0.2.200 10.0.2.230; host maq20 { 2.3.1 Invocação de Métodos hardware ethernet 00:80:c7:ef:1b:c2; Objetos se comunicam pela troca 10.0.0.20; de mensagens, isto significa que um fixed-address objeto pode ter} que mostrar um comportamento particular invocando uma operação } apropriada que foi definida no objeto. Em Java, isto é feito pela um método em um objeto usando o operador binário "." (ponto), chamada de
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
devendo especificar mensagem completa: o objeto recebedor da Depois dea configurado o servidor DHCPque e osé oagentes retransmissores (dhcrelay) falta mensagem, o método a ser invocado argumentos para o método (se houver). apenas a configuração dos clientese os DHCP. O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser 4.6.definido INTEGRAÇÃO DHCP E DNS um que esteja pelo objeto. Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 87 79
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência A integração serviço de DHCP com o DNS é importante, pois permite que o DHCP faça Carro carro1 do = new Carro(); carro1.ano "2001"; atualizações dinâmicas= no DNS em nome dos seus clientes. Quando o cliente obtém um endereço carro1.modelo= "fusca"; IP, o servidor registra o nome e o endereço IP do cliente no servidor DNS. carro1.cor = "prata";
Normalmente os clientes Windows (2000, XP, 2003 e 2008) atualizam automaticamente seus registros A no servidor DNS. Porém, esses clientes não conseguem atualizar os registros PTR. Por esse motivo que a integração entre esses dois serviços é necessária. Para que essa integração seja feita é necessária a criação de uma chave de segurança comum aos dois serviços para que eles possam se comunicar e trocar informações. Para a geração da chave basta utilizar o utilitário dnssec-keygen, como mostrado abaixo: dnssec-keygen -a HMAC-MD5 -b 128 -n USER chave
Onde: -b 128 refere-se ao tamanho da chave em bits.
Figura 2.4 – Layout Memória após inicialização
//criando novo alias O comando produzirá no diretório atual Carro carro2 acima = carro1; Kchave.+157+53416.private. O primeiro arquivo é de
os arquivos Kchave.+157+53416.key e onde será extraída a chave. O comando abaixo simulará essa extração, a chave é a parte da saída que está em negrito-itálico. cat Kchave.+157+53416.key chave. IN KEY 0 2 157 mYWhWjs2haILAfiRq/ciyA==
Neste caso a chave é a sequência mYWhWjs2haILAfiRq/ciyA== De posse da chave é o momento de configurar o servidor DHCP. Para isso é preciso editar o arquivo /etc/dhcpd.conf como mostrado a seguir: /etc/dhcpd.conf option domain-name-servers 10.0.0.240, 10.0.0.241; Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto default-lease-time 432000; max-lease-time 864000; log-facility local7; #parametros de atualização 2.3 Membros de Instância ddns-updates true; Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis ddns-update-style interim; (atributos)ddns-ttl definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem 86400; objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. #chave de atualização dinâmica classe. Porém devemos confundir isto com a implementação do método, que key não nomedachave { Dois objetos distintos têm é compartilhada por todas as instâncias da classe. algorithm HMAC-MD5; o mesmo estado se suas secret "mYWhWjs2haILAfiRq/ciyA=="; variáveis membro têm os }; 2.3.1 Invocação de Métodos mesmos valores. zone 3waylocal.net.br. { de mensagens, isto significa que um Objetos se comunicam pela troca primary 10.0.0.254; objeto pode ter que mostrar um comportamento particular invocando uma key nome_da_chave; operação apropriada que foi definida no objeto. Em Java, isto é feito pela } chamada de um método em um objeto usando o operador binário "." (ponto), zone 1.168.192.in-addr.arpa. devendo especificar a mensagem completa: o {objeto que é o recebedor da primary 192.168.1.1; mensagem, o método a ser invocado e os argumentos para o método (se houver). key nome_da_chave; O método}invocado no recebedor pode também enviar informações de volta ao objeto chamador de umnetmask valor de 255.255.255.0 retorno. O método{chamado deve ser subnetatravés 10.0.0.0 um que esteja definido objeto. rangepelo 10.0.0.100 10.0.0.150; default-lease-time 256000; Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 89 80
Linguagem de Programação Java Linux Network Administration
Cursonão Especialista em Redes Este material pode ser distribuído. Somente poderá ser utilizado por alunos da 3Way Networks. [email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência max-lease-time 256000; Carro carro1 = new Carro(); option broadcast-address 10.0.0.255; carro1.ano = "2001"; one-lease-per-client carro1.modelo= "fusca"; on; option domain-name "3waylocal.net.br"; carro1.cor = "prata"; option routers 10.0.0.254; option subnet-mask 255.255.255.0; }
Além do DHCP, é necessária a configuração do servidor DNS: /etc/named.conf options { listen-on port 53 { 127.0.0.1; 10.0.0.254; }; listen-on-v6 port 53 { ::1; }; directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; 2.4 – Layout Memória após inicialização memstatistics-file Figura "/var/named/data/named_mem_stats.txt"; allow-query { localhost; }; //criando novo alias allow-query-cache { localhost; }; Carro carro2 = carro1; }; acl local_nets { 10.0.0.0/24; }; controls { inet 127.0.0.1 port 953 allow { 127.0.0.1; } keys { nome_da_chave; }; }; key nome_da_chave { algorithm hmac-md5; secret "mYWhWjs2haILAfiRq/ciyA=="; }; view localhost_resolver { match-clients { localhost; }; match-destinations { localhost; }; Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto recursion yes; include "/etc/named.rfc1912.zones"; }; view rede_local 2.3 Membros de Instância { Cada objeto criado deverá ter sua própria instância de Os valores das variáveis match-clients { localhost; local_nets; }; variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um allow-query { localhost; local_nets; }; em um objeto constituem objeto. Isto é importante, pois denota que método pertence a cada objeto allow-query-cache { um localhost; local_nets; }; da o seu estado. allow-recursion local_nets; }; que classe. Porém não devemos confundir {istolocalhost; com a implementação do método, Dois objetos distintos têm "/etc/named.rfc1912.zones"; é compartilhada include por todas as instâncias da classe. o mesmo estado se suas zone "3waylocal.net.br" IN { type master; variáveis membro têm os 2.3.1 Invocação de Métodos notify no; mesmos valores. Objetos se comunicam pela troca de mensagens, isto significa que um check-names ignore; objeto pode ter que mostrar um comportamento particular invocando uma file "3waylocal.net.br.direto"; operação apropriada que foi definida no objeto. Em Java, isto é }; feito pela allow-update { key nome_da_chave; chamada de um}; método em um objeto usando o operador binário "." (ponto), zonea "1.168.192.in-addr.arpa" devendo especificar mensagem completa: o objeto IN que{é o recebedor da type master; mensagem, o método a ser invocado e os argumentos para o método (se houver). notify no; O método invocado no recebedor pode ignore; também enviar informações de volta ao check-names objeto chamador atravésfile de um valor de retorno. O método chamado deve ser "1.168.192.in-addr.arpa.reverso"; um que esteja definido pelo objeto. allow-update { key nome_da_chave; }; }; Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 90 81
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Curso não Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência }; carro1 = new Carro(); Carro carro1.ano = "2001"; carro1.modelo= "fusca"; Faltam ainda =a "prata"; configuração dos arquivos de carro1.cor addr.arpa.reverso para finalizar a integração.
zona 3waylocal.direto e 1.168.192.in-
/var/named/3waylocal.net.br.direto $ORIGIN . $TTL 43200 @ IN SOA 3waylocal.net.br. root.3waylocal.net.br. ( 2012011703 ; serial 3600 ; refresh 900 ; retry 1209600 ; expire 43200 ; default_ttl ) @ IN NS maq1.3waylocal.net.br. Figura 2.4 – Layout Memória após inicialização @ IN NS maq2.3waylocal.net.br. $ORIGIN novo 3waylocal.net.br. //criando alias Carro carro2 = carro1; /var/named/chroot/var/named/1.168.192.in-addr.arpa.reverso $ORIGIN . $TTL 43200 @ IN SOA 3waylocal.net.br. root.3waylocal.net.br. ( 20010328003 ; serial 3600 ; refresh 900 ; retry 1209600 ; expire 43200 ; default_ttl ) @ IN NS maq1.3waylocal.net.br. $ORIGIN 1.168.192.in-addr.arpa. 1 IN PTR maq1.3waylocal.net.br.
2.5 – Layout Memória variáveis referência o mesmo objeto Depois de feitas asFigura configurações do duas DHCP e do DNS,parabasta reinicializar os serviços e monitorar o funcionamento ou algum erro de configuração através do /var/log/messages.
2.3
Membros de Instância restart /etc/init.d/dhcpd
/etc/init.d/named restart Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um -f /var/log/messages objeto. Istotail é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias É comum ocorrerem erros da declasse. permissão na atualização dos arquivos
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm de zona. Para quese isso o mesmo estado suas não ocorra é necessário que o diretório /var/named (da jaula) tenha permissão de escrita para o os variáveis membro têm 2.3.1 Invocação de Métodos usuárioObjetos named. mesmos valores. se comunicam pela troca de mensagens, isto significa que um
objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto. Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 91 82
Linux Network Administration Linguagem de Programação Java
Este material pode ser distribuído. Curso não Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata"; laboratório irá configurar um servidor DHCP dedicado
4.7. LABORATÓRIO
Este DHCP dinâmico e outro estático.
com dois cenários simples: um com
Detalhes das máquinas virtuais - Tanto a máquina Linux (Servidor) quanto o cliente Windows (cliente) terão suas interfaces configuradas no modo Rede Interna para não haver problemas na rede do laboratório. Informações da implementação do Servidor Endereço IP do Servidor: 192.168.3.1 Sub-rede e sub-máscara: 192.168.3.0 e 255.255.255.0 Figura 2.4 – Layout Memória após inicialização Gateway: 192.168.3.254 //criando novo alias Servidores DNS: 192.168.3.253, 192.168.3.252 e 8.8.8.8 Carro carro2 = carro1; Nome do Domínio: 3waylocal.net.br Faixa: 192.168.1.10 - 50 A. Configuração de DHCP Dinâmico - Edição do /etc/dhcpd.conf
2.3
ddns-update-style ad-hoc; ignore client-updates; subnet 192.168.3.0 netmask 255.255.255.0 { # --- Gateway padrão --option routers 192.168.3.254; option subnet-mask 255.255.255.0; option domain-name "3waylocal.net.br"; option domain-name-servers 192.168.3.242 , 192.168.3.253 , 8.8.8.8 # --- Faixa deFigura IPs 192.168.3.50 2.5 –192.168.3.10 Layout Memória duas variáveis referência para o--mesmo objeto range 192.168.3.10 192.168.3.50; default-lease-time 21600; max-lease-time 43200; Membros de Instância }
Cada objeto criado deverá ter sua própria instância de variáveis - Reinicialização do serviço (atributos) definidas pela classe. Os métodos definem o comportamento de um /etc/init.d/dhcpd restart objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que - Configure a estação cliente para receber endereços dinamicamente é compartilhada por todas as instâncias da classe.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
2.3.1 Invocação dede Métodos B. Configuração DHCP Estático se comunicam pela troca de mensagens, isto significa que um - EdiçãoObjetos do /etc/dhcpd.conf objeto ddns-update-style pode ter que mostrar ad-hoc; um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela ignore client-updates; subnet 255.255.255.0 { chamada de um 192.168.3.0 método em um netmask objeto usando o operador binário "." (ponto), # --Gateway padrão --devendo especificar a mensagem completa:192.168.3.254; o objeto que é o recebedor da option routers mensagem, option o métodosubnet-mask a ser invocado e os argumentos255.255.255.0; para o método (se houver). option no domain-name "3waylocal.net.br"; O método invocado recebedor pode também enviar informações de volta ao option domain-name-servers , 192.168.3.253 , 8.8.8.8 objeto chamador através de um valor de retorno.192.168.3.242 O método chamado deve ser # --- Faixa de IPs 192.168.3.10 192.168.3.50 --um que esteja definido pelo objeto. range 192.168.3.10 192.168.3.50; default-lease-time 21600;
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 83 92
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência max-lease-time Carro carro1 = new43200; Carro(); # --- Seção Estático --carro1.ano = DHCP "2001"; # – Estação do Gerente carro1.modelo= "fusca"; host gerente { carro1.cor = "prata"; hardware ethernet 00:14:0B:41:9b:81; fixed-address 192.168.3.41; } # - Estação do Sysadmin host sysadmin { hardware ethernet 00:24:81:B2:53:F1; fixed-address 192.168.3.42; } # - Estação do Contador host contador { hardware ethernet 00:22:5f:23:61:12; fixed-address 192.168.3.43; } }
- Reinicialização serviço //criando do novo alias
Figura 2.4 – Layout Memória após inicialização
/etc/init.d/dhcpd restart Carro carro2 = carro1;
- Configure as estações clientes para buscar endereçamento IP pela rede. Use na sequência as opções release e renew do comando ipconfig para testar a renovação dos endereços.
No DHCP estático é imprescindível que os endereços físicos (MAC) das máquinas clientes correspondam aos que estão no arquivo de configuração. Caso o endereço físico não bater, a estação obterá endereços dinâmicos.
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 93 84
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
4.8. EXERCÍCIOS
1. Se inicialmente o cliente não tem número IP, como é feita a comunicação de solicitaçãoresposta DHCP? 2.
Quais são os valores padrões das diretivas unkown-clients, bootp e booting?
3. Queremos configurar a interface ethernet de um host em nossa rede para que sempre possua o IP 192.168.1.2. Seu endereço MAC é ee:f4:e2:aa:c9:00. Como poderíamos fazer isto no arquivo /etc/dhcpd.conf? 4.
O que são opções globais? Quando se tem opções globais e opções especificas, subnet,
Figura 2.4 – Layout Memória após inicialização group ou host, para um host, qual a ordem de precedência das opções? //criando novo alias Carro carro2 = carro1; 5. O que é retransmissão DHCP? Por que é utilizada?
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 94 85
LinguagemAdministration de Programação Java Linux Network
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way Networks. [email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
5. NTP
Figura 2.4 – Layout Memória após inicialização
//criando novo alias O NTP (Protocolo Carro carro2 = carro1;de
Tempo de Rede) é responsável por manter um sistema de tempo (horário), o que é muito importante em muitos ambientes porque muitos serviços dependem do tempo para funcionar corretamente, como por exemplo, logs, mensagens de erro, aplicações, etc. Existem alguns papéis que o sistema de tempo pode desempenhar ao usar NTP. São eles: Servidor NTP Primário Esse tipo de servidor provê horário para os secundários ou outros clientes. Servidor NTP Secundário Provê horário para clientes ajudando a balancear a carga dos primários. Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Par NTP Tanto de provê quanto recebe horário de algum servidor. Membros Instância
Cada objeto criado deverá ter sua própria instância de variáveis Clientepela NTP (atributos) definidas classe. Os métodos definem o comportamento de um horário de servidores primários oua cada secundários. objeto. Isto éRecebe importante, pois denota que um método pertence objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas Os servidores primários e secundários sincronizam seus relógios de servidores variáveis membro têm os 2.3.1 Invocação de Métodos hierarquicamente superiores chamados Stratum. Eles estão organizados vários mesmosem valores. Objetos se comunicam pela troca de mensagens, isto significa que um
níveis, 1 aque 15,mostrar sendroum quecomportamento os stratum 1particular são os mais precisos objeto podedeter invocando uma da hierarquia. operação apropriada que foi definida no objeto.primários Em Java, isto é feito pela servem para ajudar no A configuração de servidores e secundários chamada de um método em um objeto usando o operador binário "." (ponto), balanceamento e redundância dos strutum 1 ou 2 e ainda pode ser muito útil na rede devendo especificar a mensagem completa: o objeto que é o recebedor da local, uma vez que servidores podem sincronizar localmente. mensagem, o método a seros invocado e os argumentos para o métodotempo (se houver). O método invocado no recebedor pode também enviar informações de volta ao O NTP.br através de seus servidores públicos ajuda a manter computadores objeto chamador através de um valor de retorno. O método chamado deve ser com Hora Legal Brasileira e com o Tempo Universal Coordenado umsincronizados que esteja definido pelo a objeto. (UTC). Os servidores do NTP.br são os seguintes:
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 95 86
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; Nome carro1.modelo= "fusca"; Endereço carro1.cor = "prata"; a.st1.ntp.br 200.160.7.186 e 2001:12ff:0:7::186
b.st1.ntp.br
201.49.148.135
d.st1.ntp.br
200.192.232.8
c.st1.ntp.br a.ntp.br b.ntp.br c.ntp.br
gps.ntp.br
200.186.125.195 200.160.0.8 e 2001:12ff::8 200.189.40.8
200.192.232.8
200.160.7.193 e 2001:12ff:0:7::193 Figura 2.4 – Layout Memória após inicialização
O serviço NTP utiliza as portas UDP/TCP 123, portanto elas necessitam estar //criando novo alias liberadas no firewall. Carroem carro2 = carro1;
5.1. INSTALAÇÃO 5.1.1. INSTALAÇÃO CÓDIGO FONTE As principais vantagens da instalação dos fontes é ter a versão mais atual do software e sem modificações de terceiros. A versão mais atual está disponível em www.ntp.org/downloads.html.
2.3
wget www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-versao/ntp-versao.tar.gz tar zxvf ntp-versao.tar.gz Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto cd ntp-versao ./configure make Membros de Instância make install
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela AUTOMATIZADA classe. Os métodos definem o comportamento de um 5.1.2. INSTALAÇÃO objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe.
yum install ntp 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), apt-get install ntp que é o recebedor da devendo especificar a mensagem completa: o objeto mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 96 87
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; Do arquivo=de"prata"; configuração principal, destacam-se carro1.cor
5.2. CONFIGURAÇÃO
as seguintes opções:
/etc/ntp.conf … server 0.centos.pool.ntp.org prefer server 1.centos.pool.ntp.org server 2.centos.pool.ntp.org … server 127.127.1.0 # local clock fudge 127.127.1.0 stratum 10 Figura 2.4 – Layout Memória após inicialização
As três primeiras linhas são NTP públicos da Internet que se pode sincronizar //criando novo alias o tempo. quarta opção server é utilizada para sincronizar o relógio local Carro A carro2 = carro1; (normalmente baseado no BIOS). A última opção fudge é para definir o nível hierarquico do servidor (no caso stratum 10). Essa configuração sincroniza com os servidores de tempo da Internet. Da forma com está, essa configuração sincroniza o tempo com os servidores da Internet. Por enquanto será iniciado o serviço com essa configuração. /etc/init.d/ntp start Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
/etc/init.d/ntp start
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado seésuas A configuração para sincronizar com algum servidor de tempo do NTP.br a variáveis membro têm os 2.3.1 Invocação de Métodos que está logo abaixo. mesmos valores. Objetos se comunicam pela troca de mensagens, isto significa que um
objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela /etc/ntp.conf … um método em um objeto usando o operador binário "." (ponto), chamada de #server a0.centos.pool.ntp.org devendo especificar mensagem completa: o objeto que é o recebedor da mensagem,#server o método1.centos.pool.ntp.org a ser invocado e os argumentos para o método (se houver). #server 2.centos.pool.ntp.org O método invocado no recebedor pode também enviar informações de volta ao restrict 10.0.0.0 mask 255.255.255.0 nomodify notrap objeto chamador de um valor de retorno. O método chamado deve ser serveratravés a.st1.ntp.br um que esteja … definido pelo objeto. server 127.127.1.0
# local clock
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
Seja um Profissional Aprendendo com Profissionais
12 97 88
Linguagem de Programação Java Linux Network Administration
Este material pode ser em distribuído. Curso não Especialista Redes Somente poderá ser utilizado por alunos da 3Way Networks. [email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); fudge 127.127.1.0 stratum 10 carro1.ano = "2001"; driftfile /var/lib/ntp/drift carro1.modelo= "fusca"; carro1.cor = "prata";
A nova diretiva adicionada driftfile é utilizada como parâmetro para checagem de erros e precisão de relógio. É recomendada para resultados melhores, mas não obrigatório. Para que a nova configuração funcione, basta reiniciar o serviço: /etc/init.d/ntp restart
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
/etc/init.d/ntp restart
5.3. FERRAMENTAS Para testar o servidor NTP ou mesmo solucionar problemas pode-se utilizar alguns comandos. ntpdate [opcoes]
Sincroniza em tempo de execução algum servidor NTP. Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto Ex.: ntpdate a.st1.ntp.br
2.3
ntpq [opcoes]
Membros de Instância É o programa padrão para realização de consultas NTP.
Cada objeto criado deverá ter sua própria instância de variáveis Ex.: ntpq -p (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Istontptrace é importante, pois denota que um método pertence a cada objeto da [opcoes] classe. Porém não devemos confundir isto com a implementação do método, que Verifica o caminho para a obtenção do relógio NTP. é compartilhada por todas as instâncias da classe.
Ex.: ntptrace
a.st1.ntp.br
2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 98 89
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
5.4. LABORATÓRIO
Este laboratório irá configurar um servidor NTP, cujo IP será 10.0.0.254, usando os servidores a.st1.ntp.br (preferido), b.st1.ntp.br, c.st1.ntp.br e d.st1.ntp.br como seus servidores de sincronização externa para a rede interna 10.0.0.0/24. SERVIDOR /etc/ntp.conf … restrict 10.0.0.0 mask 255.255.255.0 nomodify notrap server a.st1.ntp.br prefer server b.st1.ntp.br server c.st1.ntp.br Figura 2.4 – Layout Memória após inicialização server d.st1.ntp.br … //criando novo alias server 127.127.1.0 # local clock Carro carro2 = carro1;
fudge 127.127.1.0 stratum 10 driftfile /var/lib/ntp/drift CLIENTES Linux /etc/ntp.conf … server 10.0.0.254 … server 127.127.1.0
# local clock
# fudge 127.127.1.0 stratum 10 driftfile /var/lib/ntp/drift Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto /etc/init.d/ntdp start 2.3 Membros de Instância Windows Cada objeto criado deverá ter sua própria instância de variáveis
Os valores das variáveis
(atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem Esse passos abaixo são pois válidos paraque servidores Windows. objeto. Isto é importante, denota um método pertence a cada objeto da o seu estado. classe. Porém não devemos confundir isto com a implementação do método, que Dois objetos distintos têm o Promptpor detodas comandos em Iniciar / Todos os Programas / Acessórios. éAbrir compartilhada as instâncias da classe.
o mesmo estado se suas variáveis membro têm os mesmos valores.
2.3.1 Invocação de Métodos Executar os seguintes comandos: Objetos se comunicam pela troca de mensagens, isto significa que um C:\> net /setsntp:”10.0.0.254” objeto pode time ter que mostrar um comportamento particular invocando uma C:\> net stop w32time operação apropriada que foi definida no objeto. Em Java, isto é feito pela C:\> net w32time chamada de start um método em um objeto usando o operador binário "." (ponto), C:\> net time /querysntp devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). comandos acima servidor 10.0.0.254 servidor NTP, ao reinicia o serviço de horário OOs método invocado no definem recebedoro pode também enviar como informações de volta do Windows (Windows Time por último verifica se o Windows objeto chamador através de um Service), valor de retorno. O método chamado deve serestá sincronizando com o servidor NTP. um que esteja definido pelo objeto. Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 99 90
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
5.5. EXERCÍCIOS
1. Como se organizam os servidores NTP? Como eles são categorizados?
2. Enumere as vantagens de se ter um servidor NTP em uma rede interna.
– Layout Memória após inicialização 3. Caso o servidor esteja protegidoFigura por2.4 um firewall, quais são as providências que devem ser //criando novo alias tomadas para que os clientes façam uso das funcionalidades desse servidor?
Carro carro2 = carro1;
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 100 91
LinguagemAdministration de Programação Java Linux Network
Este material pode ser em distribuído. Curso não Especialista Redes Somente poderá ser utilizado por alunos da 3Way Networks. [email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
6. SISTEMA DE ARQUIVO DE REDE
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
O NFS é um sistema de arquivos que permite o compartilhamento de dados em uma rede, de forma que os clientes possam acessar árvores de diretórios em servidores como se estivessem acessando localmente. Esse protocolo foi projetado para ser independente de qualquer hardware, sistema operacional ou sistema de arquivos. Para tornar o NFS independente de sistemas, ele usa a RPC (Chamada de Procedimento Remoto) em conjunto com uma representação de dados chamada eXternal Data Representation (XDR). Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
Funcionamento do servidor NFS 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma 6.1. INSTALAÇÃO operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), Basicamente os pacotes necessários para instalação do NFS são o portmap, nfs-utils e nfsdevendo especificar a mensagem completa: o objeto que é o recebedor da server, sendo o primeiro deles um dos requisitos mais importantes para a instalação. mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao 6.1.1. INSTALAÇÃO objeto chamador através deCÓDIGO um valor FONTE de retorno. O método chamado deve ser um que esteja definido pelo objeto. A instalação via código fonte não difere muito das outras instalação feitas anteriormente. Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 102 92
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da| 3Way Networks. [email protected] (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência
Carro carro1 com = new Carro(); dos pré-requisitos (que podem ser vistos nos arquivos Deve-se preocupar a instalação carro1.ano = "2001"; README ou INSTALL) e, salvo raríssimas excessões, executar os comandos configure, make e carro1.modelo= "fusca"; make install dentro da =raiz do diretório descompactado do NFS. carro1.cor "prata";
6.1.2. INSTALAÇÃO AUTOMATIZADA Os pacotes do NFS provavelmente estão disponíveis na mídia de instalação e repositórios das distribuições Linux mais conhecidas. Basicamente os pacotes necessários para instalação do NFS são o portmap, nfs-utils e nfs-server. yum install nfs-utils nfs-utils-lib Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1; apt-get install portmap nfs-kernel-server nfs-common
O portmap é o serviço que geralmente escuta a porta 111, recebe um número identificador do rpc e retorna um número de porta com a qual o cliente se conecta para a partir de então, se comunicar através de chamadas de procedimentos remotos RPC.
6.2. AUTENTICAÇÃO E PERMISSÕES
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). Sistema de também autenticação e permisões de arquivo NFSao O método invocado no recebedor pode enviar informações deem volta objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
O NFS é baseado em chamadas RPC e para todo procedimento RPC é Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 103 93
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); passado como parâmetro o uid e gid (identificação de usuário Unix) do usuário que carro1.ano = "2001"; realizou a operação "fusca"; de I/O no diretório montado via NFS, e que é utilizada na carro1.modelo= carro1.cor = "prata"; avaliação de permissão no servidor, de acordo com as permissões locais do servidor.
Em todo o esquema de chamada RPC da figura acima e de avaliação da permissão de acesso, os números de ID de usuário e de grupo é que são realmente utilizados. Portanto, os nomes não garantem a autenticação dos usuários. Desta forma, é conveniente fazer com que os usuários do cliente NFS tenham os mesmos uid's e gid's equivalentes no servidor NFS (de forma que no nosso diagrama, o o uidn e gidn seriam iguais ao gidk e gidk, respectivamente). Isto geralmente é realizado mais facilmente com um servidor NIS, ou manualmente simplesmente mantendo os dois arquivos /etc/passwd iguais.
6.3. MONTANDO COMPARTILHAMENTOS NFS Figura 2.4 – Layout Memória após inicialização
montar um volume NFS o serviço portmap deve estar ativo, pois é este serviço que mapea os números de programa RPC em portas TCP. O comando para montar um compartilhamento remoto segue abaixo: //criando novo alias cliente Para uma máquina Carro carro2 = carro1;
mount -t nfs servidor:/compartilhamento /ponto_de_montagem
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor deMontando retorno.compartilhamento O método chamado deve ser NFS um que esteja definido pelo objeto.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 104 94
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro = new Carro(); Estecarro1 comando monta o diretório /compartilhamento da máquina servidora no carro1.ano = "2001"; pontocarro1.modelo= de montagem"fusca"; local /ponto_de_montagem na máquina cliente. A opção -t carro1.cor = "prata"; especifica o sistema de arquivos a ser utilizado. A montagem é semelhante à
montagem de dispositivos locais. Para desmontar um volume NFS, basta utilizar: umount
/ponto_de_montagem
6.3.1 MONTAGEM AUTOMÁTICA É interessante em uma rede fazer a montagem NFS automaticamente durante a inicialização. Isso é necessário em uma rede onde os usuários devam compartilhar mesmos arquivos e diretórios. Para isso utiliza-se o arquivo /etc/fstab. Figura 2.4 – Layout Memória após inicialização /etc/fstab //criando novo alias /dev/hda7 / Carro carro2 = carro1; /dev/hda2 /boot /dev/hda5 swap /dev/fd0 /mnt/floppy /dev/cdrom /mnt/cdrom none /proc none /dev/pts 192.168.1.15:/compartilhado /mnt
ext2 ext2 swap ext2 iso9660 proc devpts nfs
defaults defaults defaults noauto noauto,ro defaults mode=0622 auto
1 1 0 0 0 0 0 0
1 2 0 0 0 0 0 0
A primeira coluna se refere ao dispositivo de montagem, a segunda ao ponto de montagem, a terceira ao sistema de arquivo do dispositivo, a quarta coluna define os parâmetros de montagem. Este arquivo é usado para configurar o lado do cliente, ou seja, estamos considerando que o servidor está configurado para ser requisitado. Com essa configuração, o cliente montará o odiretório Figura 2.5 – Layout Memória duas variáveis referência para mesmo objeto /compartilhado do servidor de IP 192.168.1.15 no seu diretório /mnt usando o sistema de arquivo de rede NFS. O parâmetro auto é para que este sistema de arquivo seja montado 2.3 Membros de Instância automaticamente. Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis serviço portmap estar rodando na máquinadecliente eemasumconfigurações (atributos)O definidas pela classe. Osdeve métodos definem o comportamento um objeto constituem objeto. Isto estarem é importante, pois denota umamétodo pertence a cada objeto da de rede corretas paraque que montagem funcione. É altamente recomendável o seu estado. classe. Porém não para devemos isto com a implementação configurá-los queconfundir sejam inicializados no boot.do método, que Dois objetos distintos têm é compartilhada por todas as instâncias da classe.
2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento uma chkconfig --level 35particular portmapinvocando on operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao update-rc.d rpc defaults objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
o mesmo estado se suas variáveis membro têm os mesmos valores.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 105 95
Linux Network Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way Networks. [email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência
6.4. O SERVIDOR NFS Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
O arquivo /etc/exports O arquivo /etc/exports é usado pelo servidor NFS para especificar quais diretórios devem ficar disponíveis publicamente e quais restrições devem ser aplicadas. O formato do arquivo permite que qualquer diretório seja exportado para um ou mais hospedeiros e permite que as permissões de acesso sejam configuradas especificadamente para cada hospedeiro. recurso_local host1(permissoes1) host2(permissoes2) ...
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Neste exemplo, recurso_local Carro carro2 = carro1;
é o que vai ser compartilhado com os hosts 1 e 2 com suas respectivas permissões de acesso. /home/ftp/pub
maq1(rw,all_squash) maq2(ro)
O diretório /home/ftp/pub está disponível para o host maq1 com acesso tanto para leitura como para gravação e os números de ID de usuário e de grupo são mapeados automaticamente para o usuário anônimo (opção all_squash). O mesmo diretório também está disponível para o host maq2, mas com acesso somente de leitura (opção ro). Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
É preciso ter cuidado para não deixar espaços na definição das máquinas e suas opções de compartilhamento. Caso isso seja feito será dado acesso total a esta máquina. Este é um erro comum. Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem É possível utilizar os símboles * e ? para aumentar as combinações possíveis, objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. ou seja, funcionar como curinga. classe. Porém não devemos confundir isto com a implementação do método, que Dois objetos distintos têm é compartilhada por todas as instâncias da classe. /inst/instrutor
*3waylocal.net.br(rw)
o mesmo estado se suas variáveis membro têm os mesmos valores.
2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um Neste exemplo do arquivo /etc/exports, o diretório /inst/instrutor objeto pode ter que mostrar um comportamento particular invocando uma exportado para todas as máquinas domínio 3waylocal.net.br. operação apropriada que foi definida no do objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da nome a da máquina ser para seguido por(se uma mensagem,Oo método ser invocado e os pode argumentos o método houver).lista de opções, e separadas por vírgulas (nunca Oparêntesis método invocado no recebedor pode também enviarespaços). informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
estará
entre
Estas opções têm os seguintes valores:
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 96 106
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; insecure carro1.modelo= "fusca"; carro1.cor = "prata"; Permite o acesso não autenticado a partir desta
máquina.
root_squash Esta é uma característica de segurança que proíbe o super-usuário dos clientes de ter qualquer direito de acesso especial no servidor. Caso o cliente acesse o diretório compartilhado através do usuário root, o servidor irá mapear o ID 0 (de root) para 65534 (-2), que representa o usuário nobody. no_root_squash 2.4 – Layout após inicialização Não mapeia requisições do Figura usuário com Memória identificação 0, ou seja, o usuário root dos clientes acessam diretório exportado do servidor como usuário root e terão todos os privilégios de //criando novo alias Carro carro2 = carro1; root neste diretório do servidor. Este tipo de opção jamais é aconselhável por motivos de segurança. ro Monta hierarquicamente os arquivos somente para leitura. É o padrão. rw Monta hierarquicamente os arquivos, com autorizações para leitura e gravação.
É possível especificar ainda uma rede específica através da seguinte entrada. /home/ftp/pub
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
192.168.1.0/255.255.255.0(rw)
2.3
Membros de Instância Este comando exportará o diretório para todos hosts pertencentes a rede
Cada objetoOcriado deverá ter ésua própria instância de nfs. variáveis 192.168.1.0/24. próximo passo inicializar o serviço (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que /etc/init.d/nfsd start é compartilhada por todas as instâncias da classe.
2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma /etc/init.d/portmap start /etc/init.d/nfs-kernel-server operação apropriada que foi definida no objeto. Em Java, isto éstart feito pela /etc/init.d/nfs-common start chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem,Depois o métodode a seriniciado invocado eoos serviço argumentos para éo método (se houver). nfs, preciso exportar O método invocado no recebedor pode também enviar informações de volta ao /etc/exportfs para a rede. objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
a configuração do
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 107 97
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da| 3Way Networks. [email protected] (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); exportfs -v carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
Outro aplicativo muito utilizado para monitoração do serviço NFS é o showmount. Vejamos alguns exemplos de sua aplicação: showmount --export 192.168.1.2 Export list for 192.168.1.2 /usr/local/apache/htdocs /usr/local/apache/htdocs_s/intranet /home /dc
192.168.1.2/255.255.255.0 192.168.1.2/255.255.255.0 192.168.1.0/255.255.255.0 192.168.1.0/255.255.255.0
Figura 2.4 – Layout Memória após inicialização
A saída deste //criando novocomando alias fornece quais clientes NFS estão utilizando os diretórios que estão Carro carro2 = carro1; compartilhados no servidor 192.168.1.2.
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 108 98
Siga-nos também no Twitter! twitter.com/3waynet
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br
6.6.
//atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; LABORATÓRIO carro1.modelo= "fusca"; carro1.cor = "prata";
Neste laboratório vamos exportar três diretórios em forma de compartilhamento. O primeiro será de leitura para duas estações específicas com mapeamento de usuário. O segundo será de escrita para toda a rede, porém mapeando os usuários e os grupos das estações clientes para acessos não privilegiados no servidor. E o terceiro terá permissão de escrita para toda a rede 192.168.3.0/24, sem restrição de mapeamento de usuários e grupos. O IP do servidor será 192.168.1.10. A. No servidor, editar o arquivo /etc/exports da seguinte maneira: Figura 2.4 – Layout Memória após inicialização
/etc/exports //criando novo alias /departamento estacao1(ro) estacao2(ro,root_squash) Carro carro2 = carro1; /comercial 192.168.1.0/255.255.255.0(rw,all_squash) /publico 192.168.3.0/255.255.255.0(rw,no_root_squash)
B. Reiniciar o serviço NFS no servidor. /etc/init.d/nfsd start
C. Exportar os diretórios para os hosts de destino. exportfs -v
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
D. Agora serão feitos os testes nos clientes. Antes disso tenha certeza que o serviço portmap esteja ativo na máquina cliente e monte o compartilhamento 2.3 Membros de Instância desejado. Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis
(atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto/etc/init.d/portmap é importante, pois denotastatus que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que /etc/init.d/portmap start é compartilhada por todas as instâncias da classe.
em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os Estação de 1 e Métodos 2 2.3.1 Invocação mount -t nfs 192.168.1.10:/departamento /mnt/departamento mesmos valores. Objetos se comunicam pela troca de mensagens, isto significa que um
objeto pode ter que mostrar um comportamento particular invocando uma operação Estação apropriada que192.168.1.0/24 foi definida no objeto. Em Java, isto é feito pela da rede mount -t nfsem 192.168.1.10:/comercial chamada de um método um objeto usando o operador/mnt/comercial binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da da rede mensagem,Estação o método a ser192.168.3.0/24 invocado e os argumentos para o método (se houver). mount -t 192.168.1.10:/publico /mnt/publico O método invocado nonfs recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto. Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 110 99
Linguagem de Programação Java Linux Network Administration
Cursonão Especialista em Redes Este material pode ser distribuído. Somente poderá ser utilizado por alunos da 3Way Networks. [email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); Seria recomendável em cada cliente que o mesmo montasse durante o boot carro1.ano = "2001"; os seus"fusca"; compartilhamentos. Caso esse seja o desejo, fazer a configuração no carro1.modelo= . carro1.cor/etc/fstab = "prata";
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 111 100
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata"; 1. Dê a configuração correta do /etc/exports para exportar um diretório modo somente leitura para as máquinas da rede 192.168.20.0/16.
6.6. EXERCÍCIOS
chamado /cartorio em
2. Qual seria a configuração para exportar o diretório /dados/exportacoes no modo leitura e escrita para as máquinas do domínio 3wayteste.net.br e modo leitura para qualquer máquina? 3. Faça a configuração para exportar o diretório /dados/importacoes para a rede 10.1.1.0/24 em modo escrita e leitura e sem mapeamento de root para usuário não privilegiado (nobody). 4. Faça configuração para inicialização automática no /etc/fstab dos três primeiros exercícios. Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 112 101
Linguagem Administration de Programação Java Linux Network
Este material pode ser distribuído. Curso não Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
7. SAMBA
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
7.1. VISÃO GERAL A finalidade do serviço Samba é permitir que estações Linux e Windows compartilhem recursos entre si em uma rede. Através do Samba, o Linux pode servir clientes Windows, tornando-se:
2.3
Servidor de arquivo ServidorFigura de impressão 2.5 – Layout Memória duas variáveis referência para o mesmo objeto Servidor de autenticação ou autorização Servidor de nomes Windows
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis (atributos) definidas pela permite classe. Os métodos definem o comportamento um se O Samba que uma estação de trabalhodeLinux um constituem membro emtorne um objeto objeto. Isto é importante, pois denota que um método pertence a cada objeto da totalmente funcional de uma rede Microsoft para incluir compartilhamento o seu estado. de classe. Porém não devemos confundir isto com a implementação do método, que Dois objetos distintos têm unidades de disco e impressoras, integração com grupos de trabalho e participação é compartilhada por todas as instâncias da classe.
como cliente ou servidor em domínios Windows.
2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
o mesmo estado se suas variáveis membro têm os mesmos valores.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 113 102
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Curso não Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Estrutura de uma rede com samba
O Samba utiliza-se basicamente dois daemons: smbd e nmbd. smbd Este é o daemon que fornece serviços como compartilhamento de arquivos e impressão, além da autenticação e autorização. nmbd Este é o daemon de Serviço de Nome NetBIOS. O mesmo pode ser utilizado para responder solicitações NetBIOS sobre resolução de nomes Windows em números IP. Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
Estes serviços trabalham sob o protocolo SMB (Server Message Block), atualmente CIFS (Common Internet File System). Este é o protocolo utilizado pelo 2.3 Membros de Instância Windows compartilhar umainstância rede. de variáveis Cadapara objeto criado deverárecursos ter sua em própria Os valores das variáveis (atributos)Antes definidas classe.o Os métodos o comportamento de um depela existir Samba, o definem compartilhamento de recursos em uma redeconstituem Unix em um objeto objeto. Isto é importante, pois denota que um método pertence a cada objeto da e Windows era problemático pelo fato de ter que instalar nos clientes o seuWindows estado. classe. Porém não devemos confundir isto com a implementação do método, que Dois objetos distintosétêm protocolos tradicionalmente de Unix como NFS e LDAP. Toda esta necessidade é compartilhada por todas as instâncias da classe. o mesmo estado se suas fruto do Windows utilizar o conjunto de protocolos atualmente conhecido por CIFS variáveis membro têm que éInvocação o protocolo utilizado para compartilhar serviços de arquivos e impressão. O os 2.3.1 de Métodos mesmos valores. comunicam troca de mensagens, isto significa SambaObjetos surgiuse para suprirpela a necessidade de uma soluçãoque deum integração de Linux na objeto pode ter que mostrar um comportamento particular invocando uma rede Windows. operação apropriada que foi definida no objeto. Em Java, isto é feito pela A um maior parte dasobjeto funcionalidades dosbinário servidores Windows são oferecidas chamada de método em um usando o operador "." (ponto), devendo especificar a mensagem completa: imprimir o objeto que o recebedor da Linux, mapear drives pelo Samba. Com ele é possível emé impressoras mensagem, o método a ser invocado e os argumentos para o método (se houver). remotos de compartilhamentos que estão no Linux, bem como atuar como O método invocado no recebedor pode também enviar informações de volta ao controlador de domínios (PDC ou BDC). objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 114 103
Linguagem de Programação Java Linux Network Administration
Este material pode ser em distribuído. Curso não Especialista Redes Somente poderá ser utilizado por alunos da 3Way Networks. [email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); O PDC pode estar acompanhado de um BDC de forma que caso carro1.ano = "2001"; tenha algum problema e não possa responder alguma solicitação de carro1.modelo= "fusca"; é então repassada para ele. carro1.cortarefa = "prata";
o PDC login, a
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Interação Linux/Windows Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto 7.2. O PROTOCOLO SMB
2.3
O SMBde éInstância o protocolo cliente/servidor da camada de aplicação que é Membros
responsável pelo criado compartilhamento arquivos, É Cada objeto deverá ter sua de própria instânciaimpressoras, de variáveis autenticação, Os valores dasetc. variáveis (atributos) definidas pela classe. métodos definemse o comportamento um através do protocolo dele Os que os clientes conectam ao de servidor para e escrever em umler objeto constituem objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seuque estado. arquivos no servidor. O acrônimo CIFS é a especificação pública do SMB tem o classe. Porém não devemos confundir isto com a implementação do método, que Dois objetos distintos têm de torná-lo um protocolo de acesso a arquivos para ser utilizado na Internet. éobjetivo compartilhada por todas as instâncias da classe. o mesmo estado se suas Na verdade, o ele é a evolução do SMB. variáveis membro têm os 2.3.1 Invocação de Métodos mesmos valores. se comunicam pela troca de mensagens, isto significa que um 7.3. OObjetos PROTOCOLO NETBEUI objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela Inicialmente osumsistemas operacionais da Microsoft chamada de um método em objeto usando o operador binário "." (ponto),ofereciam o NetBEUI (NetBIOS Enhanced User completa: Interface)o objeto como que protocolo padrão. devendo especificar a mensagem é o recebedor da Ele foi desenvolvido mensagem, o método ser invocado e os argumentos para opela método (se houver).É também considerado inicialmente pelaa IBM e depois aperfeiçoado Microsoft. Ouma método invocado no recebedor pode também enviar informações de volta ao versão melhorada do NetBIOS. objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto. Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 115 104
Linux Network Administration Linguagem de Programação Java
Este material pode ser distribuído. Curso não Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência
7.4. INSTALANDO SAMBA Carro carro1 = newOCarro(); carro1.ano = "2001"; carro1.modelo= "fusca"; 7.4.1.carro1.cor INSTALANDO=CÓDIGO FONTE "prata";
Inicialmente é necessário instalar todos os requisitos para a compilação do samba. Essa informações estão presentes nos arquivos README e INSTALL do código fonte. Depois disso, basta obter o código fonte no site do produto e realizar a instalação propriamente dita. Neste material a versão utilizada foi a 3.0.20. tar zxvf samba-versao.tar.gz -C /usr/local/src cd /usr/local/src/samba-versao/source ./configure make make install
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1; Os principais programas
Programa s
que acompanham o pacote do Samba são: Descrição
nmbd
Daemon que permite a tradução de nomes Windows em seus endereços IP.
nmblookup
Aplicativo cliente para consultas à servidores WINS, CIFS em IP.
smbclient
Programa semelhante ao cliente FTP que utilizado para acessar compartilhamentos CIFS remotos.
traduz nomes
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria variáveis Os valores das variáveis Daemon principal do Samba queinstância permitedecompartilhamento de arquivos, smbd (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem impressão e autenticação. objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. classe. Porém não devemos confundir isto com a implementação do método, que Dois objetos distintos têm é smbstatus compartilhada Mostra por todasoasstatus instâncias da classe. atual das conexões no servidor Samba.
o mesmo estado se suas variáveis membro têm os 2.3.1 Invocação de Métodos testparm Verifica o arquivo de configuração do Samba por sintaxe errada. mesmos valores. Objetos se comunicam pela troca de mensagens, isto significa que um
objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), 7.4.2. INSTALAÇÃO AUTOMATIZADA devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser yum install samba samba-client samba-doc um que esteja definido pelo objeto. Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 105 116
Linguagem de Programação Java Linux Network Administration
Cursonão Especialista em Redes Este material pode ser distribuído. Somente poderá ser utilizado por alunos da 3Way Networks. [email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; apt-get install samba smbclient samba-doc carro1.cor = "prata";
7.5. CONFIGURAÇÃO O arquivo de configuração do Samba é o smb.conf. Por padrão, este arquivo se encontra no diretório /etc/samba/ e pode ser editado diretamente usando o editor de texto puro de sua preferência. Ainda é possível utilizar alguns utilitários visuais como o SWAT, que é uma ferramenta de administração do samba através de interface Web. Figura 2.4 – Layout após inicialização emMemória seções, onde cada seção é identificada por O arquivo smb.conf é dividido //criando novo aliascercado por colchetes [ um identificador único ], onde cada seção define as Carro carro2 = carro1; características individuais de cada diretório ou de impressoras compartilhadas. Entre cada seção e outra, existem diretivas definidas por palavras-chaves seguidos do sinal de igual = e o seu valor em seguida. Para se desabilitar uma diretiva ou criar um comentário, simplesmente insira um ponto-e-vírgula ; ou uma cerquilha # no início de cada linha. Veja a seguir, as três seções especiais que por padrão já vem configuradas: Seção Global Define os parâmetros de configuração gerais padrões para o servidor como um todo. Qualquer opção configurada nesta seção será aplicada a todo compartilhamento. Entretanto, se houver no compartilhamento um tipo de definição que já exista na seção global, esta não será Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto sobreposta pelos parâmetros globais. Seção homes Membros de Instância Cada objeto criado deveráosterparâmetros sua própria de variáveis Os valores das variáveis Define individualmente parainstância os diretórios pessoais (/home/usuario ) dos (atributos) definidas pela classe. Os métodos definem o comportamento de um usuários. Na verdade, esta seção permite que os usuários acessem seus diretórios home no servidor em um objeto constituem objeto. é importante, denota que um método pertence cada objeto Samba.Isto Por padrão, estapois seção já vem pré-configurada de aforma que osdausuários dooSamba tenham seu estado. classe. Porém não devemos confundir isto com a implementação do método, que acessos ao seus diretórios pessoais. Dois objetos distintos têm
2.3
é compartilhada por todas as instâncias da classe.
o mesmo estado se suas variáveis membro têm os Seção Printers 2.3.1 Invocação de Métodos mesmos valores. Objetos pela troca de mensagens, isto significa que um pelo servidor. Defineseoscomunicam parâmetros para todas as impressoras compartilhadas É a partir objeto pode ter que mostrar um comportamento particular invocando uma destas definições que se compartilha impressoras na rede. Além destas seções padrão, podem existir operação apropriada que foipelo definida no objeto. Em Java, isto é feito pela também as seções criadas administrador. chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da Profile mensagem,Seção o método a ser invocado e os argumentos para o método (se houver). O método Define invocado noperfil recebedor pode também samba enviar informações de PDC volta de ao domínio. um quando o servidor é usado como objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto. Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 117 106
Linux Network Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way Networks. [email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; É iniciada =com [global] e logo abaixo carro1.cor "prata";
7.5.1.Carro SEÇÃO GLOBAL carro1 = new
estão as suas opções. Abaixo são apresentadas as entradas mais básicas desta seção: [global] workgroup = SAMBA server string = Samba Server
Na verdade, existem mais opções que são apresentadas neste momento por questões didáticas. O manual de configuração do comando (man smb.conf) mostra com detalhes as diretivas que podem ser usadas na confecção desse arquivo. Figura 2.4 – Layout Memória após inicialização
//criando novo alias Nesta primeira parte Carro carro2 = carro1;
note as três primeiras diretivas:
workgroup Determina o grupo de trabalho ou o domínio que esse servidor representa ou é membro. Neste caso, o valor para essa diretiva é SAMBA. Grupo de trabalho é um grupo de computadores que compartilham recursos entre si e são listados de forma agrupada, quando é solicitado a lista de computadores do grupo de trabalho. Domínio é um grupo de trabalho que possui um servidor PDC que mantém a lista de usuários e senhas, de forma que os recursos compartilhados baseiam suas Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto permissões de acesso, na identificação dos usuários do domínio, etc. server string Membros de Instância Configura descrição Por exemplo, de um servidor de impressão, Cada objeto uma criado deverá do terservidor. sua própria instância no de caso variáveis Os valores das variáveis ” por “Servidor de impressão ”, isso padrão definem “Samba o Server (atributos)poderíamos definidas pelasubstituir classe. Oso métodos comportamento de um em um objeto constituem a identificação da função um computador em objeto uma rede, esse nome objeto. Istoajuda é importante, pois denota que um de método pertence a cada da uma vezoque seu estado. classe. Porém não devemos confundir isto com a implementação do método, que irá aparecer quando se passar o mouse sobre o ícone que representa o Dois servidor. objetos distintos têm
2.3
é compartilhada por todas as instâncias da classe.
o mesmo estado se suas variáveis membro têm os As próximas linhas são parâmetros globais relacionados à impressora. 2.3.1 Invocação de Métodos mesmos valores. Objetos se comunicam pela troca de mensagens, isto significa que um
objeto pode ter que name mostrar um comportamento particular invocando uma printcap = /etc/printcap operação load apropriada que foi definida no objeto. Em Java, isto é feito pela printers = yes chamada de um método em um objeto usando o operador binário "." (ponto), printing = bsd devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). printcap name O método invocado no recebedor pode também enviar informações de volta ao Define através o arquivo devalor configuração ou seja, objeto chamador de um de retorno.daO impressora, método chamado deveonde ser elas estão definidas no /etc/printcap . O arquivo printcap é o arquivo Linux, sendo por padrão o arquivo um que esteja definido pelo objeto.
principal do Linux para configuração de impressoras, definindo os nomes, drivers (filtros), Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 107 118
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro = new Carro(); dentrecarro1 outros parâmetros para as impressoras. carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor load printers= "prata";
Faz com que o samba leia automaticamente o arquivo padrão /etc/printcap e forneça a lista das impressoras baseadas neste arquivo, para os clientes que procurem na rede as impressoras disponíveis no servidor samba. printing Configura valores padrões para todas as opções de comunicação sistemas UNIX em que o Samba pode ser instalado. É um modo de compatibilidade entre eles. Figura 2.4 – Layout Memória após inicialização
instalação seja no Linux, deverá ser usado o valor printing=BSD, o //criando Caso novo aalias valor= printing=LPRNG é para a impressão baseada em LPRng, ou a opção Carro carro2 carro1; printing=CUPS para a impressão baseada no CUPS (opção mais utilizada atualmente).
Em seguida tem-se mais opções:
log file = /var/log/samba/log.%m max log size = 50
log file Define o arquivo de registro de log no samba. A variável %m pode ser utilizada para arquivos de log separados por máquina, ou seja, como esta opção temos logs no formato /var/log/samba/log.nome-da-maquina . Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto max log size Membros Instância Define ode tamanho máximo do arquivo de log. No exemplo acima o tamanho máximo Cada objetoé 50KB. criado Se deverá ter sua própriaexceder, instânciao smbd de variáveis das variáveis atribuído o tamanho máximo fecha o logOs e ovalores renomeia com a (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem extensão .old.
2.3
objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. security
o seu estado. Dois objetos distintos têm o mesmo estado se suas O parâmetro security merece atenção especial, pelo fato de variáveis definir emembro controlar têm os 2.3.1 Invocação de Métodos o nível de segurança e senhas do Samba. Esta entrada define como o usuário mesmos valores. Objetos se comunicam pela troca de mensagens, isto significa que um
pode servidor e consequentemente aos compartilhamentos. objeto pode terter queacesso mostraraoum comportamento particular invocando uma operação Há apropriada que foi definida no objeto. Em Java, isto é feito pela . quatro tipos de opções: share, user, server e domain chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da security = share mensagem, o método a ser invocado e os argumentos para o método (se houver). O métodoA invocado no recebedor pode também informações de é volta ao uma senha que será característica principal deste enviar tipo de segurança definir objeto chamador através de um valor de retorno. O método chamado deve ser utilizada para autenticar quem deseja acessar o recurso, independente do um que esteja definido pelo objeto. usuário.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 119 108
Linux Network Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência É semelhante ao compartilhamento em nível de senha do Windows, com dois Carro carro1 = new Carro(); níveis de acesso diferentes: somente leitura, ou completo (leitura e escrita). carro1.ano = "2001"; carro1.modelo= "fusca"; Em sistemas= Unix, isto acontece de forma diferente, pois internamente todos carro1.cor "prata";
recursos são acessados por um processo tendo um usuário identificado como dono. security = user
Define a segurança a nível de usuário, onde o Samba tentará validar o usuário solicitante por meio de um ID de usuário existente no Linux e sua senha. security = server
Define que um servidor irá fazer a autenticação da senha. Este Figuraexterno 2.4 – Layout Memória após inicialização servidor novo é definido //criando alias pela opção password server. Quando um cliente faz uma Carro carro2 para = carro1; requisição acessar um recurso do servidor, a autenticação de usuários é repassada para o servidor definido pela entrada password server, podendo ser tanto um PDC ou BDC. security = domain
É semelhante à opção anterior (security = server), porém existem algumas vantagens e é necessário registrar o servidor samba no domínio do Windows. Neste esquema, o servidor Linux é cadastrado no domínio do Windows e utiliza o PDC Windows como o servidor que aprova nomes de usuário e senhas. Neste caso também é necessário utilizar a opção password server para definir Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto o PDC Windows. 2.3
Membros Instância A seguirde mais opções para a seção global:
Cada objeto criado deverá ter sua própria instância de variáveis (atributos); definidas pelaserver classe. Os definem o comportamento de um password = métodos NomeServidorWindows objeto. Isto é importante, pois denota que um método pertence a cada objeto da encrypt passwords = yes classe. Porém não devemos confundir isto com a implementação do método, que smb passwd file = /etc/smbpasswd é compartilhada por todas as instâncias da classe.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas password server variáveis membro têm os 2.3.1 Invocação de Métodos mesmos valores. , Usado se somente em pela conjunto com as opções domain security Objetos comunicam troca de mensagens, istoserver significaeque um da entrada especifica o servidor de autenticação. objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada encrypt de um método em um objeto usando o operador binário "." (ponto), passwords devendo especificar a mensagem completa: o objeto que é o recebedor da É usado para que o Samba possa autenticar uma senha criptografada. Para isso ele precisa mensagem, o método a ser invocado e os argumentos para o método (se houver). ter acesso a versão criptografada da senha. Há duas maneiras de conseguir isso: O método invocado no recebedor pode também enviar informações de volta ao security para A primeira é conseguir configurar oO parâmetro objeto chamador através de um valor de retorno. método chamado deve ser server e deixar que um outro servidor valide a senha, para que isso funcione, você precisa configurar também o um que esteja definido pelo objeto.
parâmetro encrypt passwords como yes e garantir que o parâmetro password server Todos os direitos reservados a 3Way Networks
SejaProfissionais um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com www.3way.com.br
12 109 120
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro = newcom Carro(); estejacarro1 configurado o nome de um servidor Windows que possa validar as senhas dos carro1.ano = "2001"; usuários. carro1.modelo= "fusca"; No segundo caso você deve-se fazer com que o Samba mantenha o próprio arquivo de carro1.cor = "prata"; senhas criptografadas. No arquivo smb.conf o parâmetro security deve ser configurado com a opção user e o parâmetro encrypt passwords como yes.
O arquivo de senha do samba é definido pelo parâmetro smb passwd file. smb passwd file Define o arquivo de senha do samba. Este arquivo é análogo ao /etc/passwd, tendo a mesma função, porém é utilizado somente pelo samba. ; include = /etc/smb.conf.%m Figura 2.4 – Layout Memória após inicialização socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 //criando novo = alias ; interfaces 192.168.1.2/24 192.168.1.2/24 Carro carro2 = carro1;
include Permite que parâmetros adicionais de configuração sejam especificados em outros arquivos específicos. Por exemplo, se essa opção for configurada como no exemplo acima, o samba poderá processar arquivos particulares por máquina. Por exemplo, caso exista o arquivo /etc/smb.conf.comercial, significa que este arquivo será incluído à configuração do samba e possuirá diretivas válidas somente para o cliente comercial. local master = no ; os level = 33 ; domain master = yes ; preferred master = yes Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
local master Quando se quer que o servidor Samba seja candidato à eleição de Local Master (Localizador Mestre Local) pelos computadores da sub-rede, atribuir o valor yes. 2.3 Membros de Instância Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem os level objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. Serve diminuir ou aumentar chances do do Servidor classe. Porém nãopara devemos confundir isto com aas implementação método,Samba que ser eleito. O valor 32 Dois objetos distintos têm corresponde ao as Widows Server. é compartilhada por todas instâncias da classe. o mesmo estado se suas variáveis membro têm os 2.3.1 Invocação de Métodos preferred master mesmos valores. Objetos se comunicam pela troca de mensagens, isto significa que um Caso se queira que o servidor Samba sempre seja eleito, atribua valor yes para este objeto pode ter que mostrar um comportamento particular invocando uma parâmetro. Esta opção deverá ser acompanhada com a opção domain master. operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo domain especificarmaster a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). Permite que o Samba atue como localizador Master Domain para o domínio. Ele irá, então, O método invocado no recebedor pode também enviar informações de volta ao coletar e manter listas de computadores fornecidas pelos Local Masters da rede local. objeto chamador através de um valor de retorno. O método chamado deve ser Casodefinido já exista um PDC na rede em que se estiver trabalhando, desative essa opção, pois o um que esteja pelo objeto.
Linux pode entrar em conflito com o PDC, sempre forçando uma reeleição, gerando Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 121 110
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = enew Carro(); tráfego intenso prováveis conflitos e problemas na listagem de computadores da rede. carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = parâmetros "prata"; Os próximos permitem que o Linux de suporte a scripts de logon
perfis de usuários. ; ; ; ;
e
domain logons = yes logon script = %m.bat logon script = %U.bat logon path = \\%L\Profiles\%U
domain logons Permite que o Samba autentique os clientes Windows que seja pertencentes a esse domínio. Portanto, esta opção é essencial para quando o Linux estiver atuando como um Figura 2.4 – Layout Memória após inicialização PDC.
//criando novo alias Carro carro2 carro1; Além= da opção
domains logon, a seção [netlogon] também deverá estar habilitada quando o Linux estiver atuando como PDC, pois os clientes acessam este compartilhamento no servidor quando efetuam o logon.
logon script Permite que os clientes executem o script de logon especificado, logo depois que o logon é efetuado. logon path Usado para configurar o diretório onde os perfis ambulantes para os clientes Windows 95 e 98 são armazenados. Cada perfil, armazena as informações pessoais de cada usuário. A vantagem da primeiro é menos tráfego napara rede e logon Figura 2.5 – método Layout Memória duas variáveis referência o mesmo objeto na rede mais rápido; a vantagem do segundo método é que todas as alterações realizadas em uma máquina estarão disponíveis quando se efetuar logon em outra máquina, levando consigo o seu perfil, daí a denominação “perfil ambulante” ou “móvel”. 2.3 Membros de Instância Cada criado deverá ter sua própria instância de variáveis citadas Para objeto se configurar esta opção, podem ser utilizadas as variáveis anteriormente. A Os valores das variáveis (atributos)variável definidas%L pela classe. Os métodos definem o comportamento de um é substituída pelo nome do próprio servidor samba atuando PDC. Por em umcomo objeto constituem objeto. Istoexemplo, é importante, pois denota método pertence objeto da como PDC suponha que o que seu um servidor samba quea cada esteja atuando nome o seutenha estado. classe. Porém não devemos confundir a implementação do método, que comercial e esta opção isto sejacom especificada como logon path=\\%L\perfis\%U então, otêm Dois objetos ,distintos é compartilhada por todas as instâncias da classe. servidor comercial será utilizado para armazenar os perfis o mesmo dos usuários estado seno suas compartilhamento perfis, em diretórios específicos por usuário, por exemplo, variáveis membro têm os 2.3.1 Invocação de Métodos \\comercial\perfis\fulano. mesmos valores. Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação Os apropriada que foi definida no controlam objeto. Em Java, isto é feito do pela Samba para trabalhar próximos parâmetros a capacidade chamada de um método em um objeto usando o operador binário "." (ponto), com o WINS (Windows Internet Naming Service). Pois o Samba pode atuar como devendo especificar a mensagem completa: o objeto que é o recebedor da servidor oWINS uma sub-rede. Para para issoo um servidor de WINS irá manter uma mensagem, métodopara a ser invocado e os argumentos método (se houver). Orelação método invocado no recebedor de volta aoe endereços IPs para das máquinas de pode sua também rede, enviar seus informações nomes NetBIOS objeto chamador através de um valor de retorno. O método chamado deve ser responder às consultas. um que esteja definido pelo objeto. ; wins support = yes
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 122 111
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência ; wins server = w.x.y.z Carro carro1 = new Carro(); ; wins proxy = yes carro1.ano = "2001"; dns proxy = no carro1.modelo= "fusca"; carro1.cor = "prata";
wins support Este parâmetro determina que o samba deve atuar como um servidor WINS da sub-rede. wins server Este parâmetro é utilizado caso já se tenha um servidor WINS na sua sub-rede. O Servidor WINS informa ao samba quem ele é, e permite que o samba comunique-se com ele. Na verdade, este parâmetro permite que o Linux seja um cliente WINS. wins proxy Figura 2.4 – Layout Memória após inicialização Esta opção é utilizada para que o samba atue como um procurador (proxy), repassando as //criando novo alias resoluções de nome da sub-rede, para outro servidor WINS. O “verdadeiro” servidor Carro carro2 = carro1; WINS deverá estar devidamente preparado para receber as informações de resolução de nomes, e geralmente fica localizado em outra sub-rede, sendo indicado pela opção wins server. dns proxy Permite que o Samba use consultas DNS para verificar nomes CIFS (SMB) enquanto atua com um servidor WINS. Ou seja, caso o nome de um host não seja encontrado via WINS, o nmbd utilizará consultas DNS para resolver os nomes. Caso não se tenha um servidor DNS na rede, é melhor certificar-se que esse parâmetro seja configurado como no.
7.5.2. SEÇÃO HOMES
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
Esta seção permite que os usuários tenham acesso aos seus diretórios base.
2.3 Membros Instância Através desta de entrada todos usuários do samba terão acesso a sua pasta que está
objeto criado deverá ter sua própria instância de variáveis dentroCada do diretório /home. (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe.
2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 123 112
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Compartilhamento do diretório /home para estação de trabalho Windows.
Ao usuário efetuar logon, o samba mapeará o arquivo passwd, e descobrirá através de seu UID o seu diretório base. Este acesso é feito através do smbd. [homes] comment = Diretorios Pessoais browseable = no writable = yes Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância comment Cada objeto criado deverá ter sua própria instância de variáveis umaOs descrição este compartilhamento. (atributos)Permite definidasfornecer pela classe. métodosadefinem o comportamento de um
Os valores das variáveis em um objeto constituem objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. classe. Porém não devemos confundir isto com a implementação do método, que browseable Dois objetos distintos têm é compartilhada por todas as instâncias da classe. o mesmo estado se suas Quando assinalado com a opção yes permite que os usuários visualizem o diretórios base membro de todos os usuários. Quando assinalado com a opção no, não será possívelvariáveis visualizá-la, esta têm é a os 2.3.1 Invocação de Métodos opção mais segura, pois não há necessidade de que os usuários vejam os diretórios de seus colegas. mesmos valores. Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação writable apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), Quando assinalado com a opção yes, o compartilhamento pode ser escrito. Com a opção devendo especificar a mensagem completa: o objeto que é o recebedor da no, o compartilhamento apenas pode ser lido. mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao 7.6. SAMBA COMO objeto chamador através de umPDC valor de retorno. O método chamado deve ser um que esteja definido pelo objeto. Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 124 113
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Linux como controlador de domínio primário.
Neste tópico apresentaremos uma configuração básica do arquivo smb.conf, ou seja, um resumo de quais opções devem ser alteradas para que o Linux se torne o PDC da rede. Nessa configuração todos os usuários deverão ser autenticados para terem acesso aos compartilhamentos no Samba. Será necessário efetuar o cadastramento dos usuários na base Samba, pois o algoritmo utilizado no SMB não é o mesmo que do Linux. Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto workgroup = 3waynet server string = PDC do domínio "3waynet" security user 2.3 Membros de=Instância encrypt passwords = yes Cada ter sua própria instância de variáveis Os valores das variáveis smb objeto passwdcriado file deverá = /etc/smbpasswd (atributos)local definidas pela classe. Os métodos definem o comportamento de um master = yes em um objeto constituem objeto. Istodomain é importante, pois=denota master yes que um método pertence a cada objeto da o seu estado. preferred master = yes classe. Porém não devemos confundir isto com a implementação do método, que Dois objetos distintos têm domain = yes da classe. é compartilhada porlogons todas as instâncias
o mesmo estado se suas variáveis membro têm os mesmos valores.
[homes]
2.3.1 Invocação de Métodos comment = Diretorios Pessoais Objetos se comunicam pela troca de mensagens, isto significa que um browseable = no objeto pode ter que mostrar writable = yesum comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), Sempre que for alterado o arquivo configuração devendo especificar a mensagem completa: o objetode que é o recebedordo da samba mensagem, o método a ser invocado e os argumentos para o método (se houver). reiniciar o serviço samba. O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
será necessário
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 125 114
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); /etc/init.d/smb restart carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
/etc/init.d/samba restart
7.7. CONTA DE USUÁRIO SAMBA Figura 2.4 – Layout Memória após inicialização
//criando novo alias Após configurar os compartilhamentos, Carro carro2 = carro1;
é necessário criar contas de usuários para o samba. Estas contas são definidas em arquivo diferente do passwd do Linux. Estes usuários são cadastrados no arquivo /etc/smbpasswd, através da sequência de comandos abaixo: adduser fulano smbpasswd -a fulano
O segundo comando cria um novo usuário samba através da opção -a. Para adicionar Figura as máquinas noduasdomínio seráparanecessário 2.5 – Layout Memória variáveis referência o mesmo objeto habilitar o usuário administrativo do servidor samba. Esse usuário é o root, no entanto, não é o mesmo do sistema, inclusive as senhas deverão ser diferentes.
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis smbpasswd root (atributos) definidas pela-a classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 127 115
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Curso não Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Administração de usuários do Samba.
Este usuário também deve estar criado anteriormente na base Linux. Tanto no passwd quanto no smbpasswd os UIDs do usuário devem ser os mesmos. Esse costuma ser um problema muito comum em servidores Samba. Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância O comando smbpasswd também permite outras opções de manutenção de
contas,Cada tais objeto como:criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um usuario de pois senha de um usuário: objeto. Istoalteração é importante, denota que um métodosmbpasswd pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias remoção de uma conta da declasse. usuário: smbpasswd -x usuario 2.3.1 Invocação de Métodos desabilitar uma conta de usuário: smbpasswd -d usuario Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), 7.8. CONTA MÁQUINA SAMBA devendo especificarDE a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 128 116
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Curso não Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Administração de contas de máquinas
Para clientes Windows poderem participar de um domínio controlado por um servidor samba, deve-se criar contas de máquinas para estas estações. Segue um exemplo: Figura 2.5 Memória variáveis referência para o -s mesmo objeto useradd -g nobody -c– Layout "Conta deduasmaquina samba" /bin/false maq$ smbpasswd -a -m maq$
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis primeiro comando cria definem a contao comportamento para máquina maq. O sinal $ deve ser (atributos) O definidas pela classe. Os métodos de um em um objeto constituem objeto. Isto é importante, denotade queuma um método a cada objeto da acrescentado, pois pois se trata conta pertence de máquina. As outras opções, o seuadicionam estado. classe. Porém não devemos confundir isto com a implementação do método, que esta conta no grupo nobody através da opção -g, a opção -c insereDois umobjetos comentário, distintos a têm é compartilhada por todas as instâncias da classe.
o mesmo estado seele suas de máquina, opção -s define o shell para este usuário, como o mesmo é uma conta membro têm os não necessita deMétodos um shell válido. O segundo comando adiciona avariáveis conta de máquina 2.3.1 Invocação de mesmos valores. no samba, a opção -m é utilizada atribuir aisto conta de máquina. Objetos se comunicam pela trocapara de mensagens, significa que um
objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar Um a mensagem o objeto que é o servidor recebedorautônomo da Windowscompleta: Server configurado como (sem controlar mensagem, o métodonenhum a ser invocado e os argumentos para o método (se houver). domínio) também pode participar de um domínio controlado por um O método invocado no recebedor podesendo também enviar necessário informações criar de volta aoconta de máquina, de servidor samba, também uma objeto chamador através de um valor de retorno. O método chamado deve ser forma idêntica a criação de contas de máquina para estações. um que esteja definido pelo objeto. Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 129 117
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
7.9. SERVIDOR SAMBA EM UM DOMÍNIO
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Servidor Samba como parte de um domínio.
Como foi dito anteriormente, quando especificamos no arquivo smb.conf a opção security=domainFigura , significa que o servidor samba irá fazer parte do domínio, 2.5 – Layout Memória duas variáveis referência para o mesmo objeto repassando todos os pedidos de permissão de acesso ao PDC (podendo ser Linux ou Windows). Para que o servidor samba possa fazer parte do domínio é preciso 2.3 Membros de Instância configurar o servidor samba adequadamente, configurando as opções do arquivo Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis smb.conf, com as seguintes configurações:
(atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da [global] classe. Porém nãosecurity devemos confundir isto com a implementação do método, que = domain é compartilhada por todas as instâncias da classe. workgroup = dominioteste password server = pdcteste
em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um Será necessário criar uma conta de máquina no servidor o Samba como objeto pode ter que mostrar um comportamento particular invocando uma descritoapropriada anteriormente. Também preciso executar o comando smbpasswd para operação que foi definida no será objeto. Em Java, isto é feito pela adicionar o servidor samba ao domínio chamada de um método em um objeto usando oespecificado. operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem,smbpasswd o método a ser e os argumentos para o método (se houver). -j invocado dominioteste -r pdcteste O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto. Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 130 118
Linguagem de Programação Java Linux Network Administration
Este material pode ser em distribuído. Curso não Especialista Redes Somente poderá ser utilizado por alunos da 3Way Networks. [email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor Para definir= "prata"; os compartilhamentos de
7.10. COMPARTILHAMENTOS DE ARQUIVOS arquivos no Samba é preciso criar seções personalizadas. Todos os compartilhamentos são definidos através de diretórios que estão na árvore de diretórios do Linux. Pode-se ter compartilhamentos sob vários níveis de segurança: share, user, server e domain. O primeiro tipo é classificado como compartilhamento com controle de acesso a nível de senha, pois somente se é exigido uma senha para ser acessada, enquanto que as opções restantes são considerados compartilhamentos com controle de acesso a nível de usuário, pois exige-se que os usuários sejam autenticados. Figura 2.4 – Layout Memória após inicialização
novo alias 7.11.//criando CONTROLE DE ACESSO A NÍVEL DE SENHA Carro carro2 = carro1;
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua deprópria instância de variáveis Controle acesso à nível de senha. (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da Abaixo seguem as alterações se deve fazer paraque ter classe. Porém não devemos confundir isto com a que implementação do método, écontrole compartilhada por todasem as instâncias classe. de acesso nível dedasenha.
Os valores das variáveis em um objeto constituem o seu estado. uma configuração de Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os [global] 2.3.1 Invocação de Métodos security = share mesmos valores. Objetos se comunicam pela troca de mensagens, isto significa que um
objeto pode ter que mostrar um comportamento particular invocando uma [docs] operação apropriada que foi definida no objeto. Em Java, isto é feito pela path=/documentos chamada de um username método em um= objeto usando o operador binário "." (ponto), usuario force user = usuario devendo especificar a mensagem completa: o objeto que é o recebedor da write list = usuario mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador atravésusuario de um valor de usuário retorno. OUnix método chamado devesenha ser O usuário é um válido, com um que esteja definido pelo objeto.
definida no arquivo de senhas do samba e que é utilizada para validar o acesso ao compartilhamento docs. Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 131 119
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro path carro1 = new qual Carro(); A diretiva informa diretório está sendo compartilhado, o qual deverá ter as carro1.ano = "2001"; devidas permissões de escrita para o usuário usuario. A diretiva username é utilizada carro1.modelo= "fusca"; carro1.cor = "prata"; quando o cliente não fornecer o usuário, mas também não restringe quando algum
outro for fornecido. A diretiva force user tem a função de informar qual usuário será utilizado como dono do processo que acessa o sistema de arquivos, ou seja, todas as permissões do diretório compartilhado deverão estar de acordo com este usuário. A diretiva write list informa quais são os usuários com permissão de escrita neste compartilhamento; esta opção não sobrepõe as permissões do sistema de arquivo, portanto o sistema de arquivo também tem que permitir permissão de escrita para esta lista de usuários.
7.12. CONTROLE DE ACESSO A NÍVEL USUÁRIO Figura 2.4 – Layout Memória após DE inicialização //criando novo alias Carro = carro1; No carro2 compartilhamento
a nível de usuário, ou seja, com a opção security=user, os usuários são identificados, geralmente efetuando logon no servidor Samba que atua como PDC, e portanto, os processos que acessam o sistema de arquivos rodam também com o usuário identificado como dono, desta maneira, além de inicialmente serem verificadas as permissões de cada compartilhamento, as permissões do sistema de arquivo serão também aplicáveis ao usuário identificado na autenticação. Por exemplo, caso um usuário em um cliente Windows efetue logon em um servidor como usuário usuario e senha abc123, o servidor PDC (Samba) irá criar um processo smbd para atender este usuário, com o usuario como dono; desta forma todas permissões do sistema de arquivos, onde as informações de compartilhamentos se encontram, devem ter as permissões devidamente configuradas para o usuário Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto usuario. 2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de deacesso retorno. O método ser Controle ao servidor atravéschamado de usuáriodeve e senha um que esteja definido pelo objeto.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 132 120
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Segue as = opções que deverão ser Carro carro1 new Carro(); carro1.ano = "2001"; compartilhamento com controle de acesso a nível carro1.modelo= "fusca"; carro1.cor = "prata";
alteradas para ser criado um de usuário.
[global] ... security = user domain logons = yes ... [tmp] comment = Diretório temporario path = /tmp writable = no browseable = yes public = yes Figura 2.4 – Layout Memória após inicialização [docs] comment = Documentos //criando novo alias path = /dados/documentos Carro carro2 = carro1; public = no writable = yes create mode = 0750 directory mode = 0744 valid users = usuario @diretoria @coordenacao hosts allow = maq1
Estas seções definem compartilhamentos. O primeiro define um compartilhamento de um diretório temporário e o segundo um diretório de documentações. Abaixo estão denominados os parâmetros que ainda não foram apresentados: Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
path Define o caminho do compartilhamento no Servidor Samba.
2.3
Membros de Instância Cada objeto criado deverá ter sua própria instância de variáveis public (atributos) definidas pela classe. Os métodos definem o comportamento de um Permite qualquer um acessar este compartilhamento objeto. Isto é importante, pois denota que um método pertence a cada objeto da
Os valores das variáveis em um objeto constituem o seu estado. classe. Porém não devemos confundir isto com a implementação do método, que Dois objetos distintos têm é compartilhada todas as instâncias da classe. createpor mode o mesmo estado se suas Todo arquivo criado neste compartilhamento terá as permissões definidas variáveisatravés membrodeste têm os 2.3.1 Invocação de Métodos parâmetro. Neste exemplo temos os parâmetros octais igual a 0750. Onde o primeiro mesmos valores. Objetos se comunicam pela troca de mensagens, isto significa que um número indica os atributos de SUID, SGID ou stick bit. objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), directory mode devendo especificar o objeto que diferença é o recebedor É análogoaaomensagem parâmetrocompleta: create mode, a única é que da as permissões definidas por mensagem,este o método a ser invocado e os argumentos para o método (se houver). criados a partir deste parâmetro serão aplicadas a todos os diretórios O método invocado no recebedor pode também enviar informações de volta ao compartilhamento. objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
hosts allow
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 133 121
Linux Network Administration Linguagem de Programação Java
Este material pode ser distribuído. Curso não Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Estabelece políticas de acesso baseado em endereços IP ou através de nomes de máquinas Carro carro1 = new Carro(); Windows. Coloque apenas o primeiro nome não utilize o nome + domínio. Todos acessos carro1.ano = "2001"; ao servidor são "fusca"; estabelecidos através de usuário e senha, com este parâmetro é permitido carro1.modelo= carro1.cor = "prata"; estabelecer também quais máquinas podem acessar este compartilhamento.
valid users Restringe o acesso a determinados usuários, mas ainda pode-se especificar um grupo. Para isto, coloque o caractere @ no início do nome do grupo, por exemplo valid users = @treina. Isto fará que apenas usuários do grupo treina tenham acesso ao compartilhamento.
7.14. O UTILITÁRIO TESTPARM Figura 2.4 – Layout Memória após inicialização
Este utilitário é utilizado para detecção de erros no arquivo de configuração //criando novo alias smb.conf . O carro2 formato= do testparm segue o exemplo abaixo: Carro carro1; testparm Load smb config files from /etc/smb.conf Processing section "[homes]" Processing section "[tmp]" Processing section "[docs]" Loaded services file OK. Press enter to see a dump of your service definitions
Se a sintaxe deste arquivo estiver correta, a execução deste programa mostra inicialmente a listagem das seções. Se for pressionado , uma longa lista das diretivas associadas à cada seção é apresentada, inclusive com opções padrões da Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto seção [global]. 2.3
Membros de Instância utilitário testparm nãoprópria é muitoinstância rigorosodenavariáveis verificação da sintaxe, pois Cada objetoO criado deverá ter sua Os valores das variáveis ele verifica apenas os erros mais evidentes. (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe.
7.15. SCRIPT DE LOGON
em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um A opção logon script indica o script que é executado no cliente logo depois objeto pode ter que mostrar um comportamento particular invocando uma que esteapropriada efetua logon. elaobjeto. só é válida quando o samba operação que foiPortanto, definida no Em Java, isto é feito pela estiver atuando como PDC. Para criar um script deusando logon,o operador deve-sebinário primeiro na seção global do arquivo chamada de umsemétodo em um objeto "." (ponto), devendo especificar adomensagem completa: as o objeto é o recebedor da de configuração samba, habilitar linhasque referentes ao scripts de logon: mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao # logon script = %m.bat objeto chamador de um valor retorno.file O método chamado deve ser # run através a specific logondebatch per username um que esteja definido pelo objeto. # logon script = %U.bat logon script = teste.bat
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 122 134
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; Neste exemplo, deve-se criar um simples carro1.modelo= "fusca"; carro1.cor = "prata";
executável denominado teste.bat.
A seção [netlogon] também deverá ser habilitada, uma vez que todo cliente que efetua logon no domínio, por padrão acessa o compartilhamento netlogon, conforme é visto a seguir. [netlogon] comment = Network Logon Service path = /usr/local/samba/lib/netlogon guest ok = yes writable = no share modes = no
Figura 2.4 – Layout Memória após inicialização
//criando novo alias É preciso o compartilhamento [netlogon] e criar o diretório netlogon Carro carro2habilitar = carro1; (path=/usr/local/samba/lib/netlogon). Dentro do compartilhamento netlogon deve existir o arquivo "teste.bat" (nome aleatório, mas deve ser o indicado na configuração). Também é preciso
observar as permissões deste compartilhamento, pois elas devem estar disponíveis para todos, inclusive convidados (guest=ok), mas não deve ser gravável (writable=no) para ninguém. A última opção especificada neste arquivo (share modes=no) desabilita qualquer tentativa de clientes obterem leitura ou escrita exclusiva em algum dos arquivos disponíveis neste compartilhamento. mkdir -p /usr/local/samba/lib/netlogon
O Samba possui duas opções não muito utilizadas para definir scripts, são as opções logon script=%m.bat e logon script=%u.bat, sendo que respectivamente, Figura máquinas. 2.5 – Layout Memória variáveis referência para o mesmo objeto scripts por usuários e por É duas recomendável habilitar apenas uma delas por vez, retirando o sinal de comentário ; que a precede. Se for habilitada a opção por máquina, termos então: %m.bat, onde o %m é uma 2.3 Membros de Instância variável queobjeto será substituída pelo Samba quando um usuário Cada criado deveráautomaticamente ter sua própria instância de variáveis Os valores dasefetuar variáveis logon via Samba. DesteOsmodo, manter para cada (atributos) definidas pela classe. métodostorna-se definem o necessário comportamento de um umemscript um objeto constituem objeto. Isto é importante, pois denota que um método pertence a cada objeto da e maq02, máquina. Por exemplo, se existirem duas máquinas com os nomes maq01 o seu estado. classe. Porém não devemos confundir isto com a implementação do método, que Dois objetos distintos têm então deverá construir dois scripts com os nomes maq01.bat e maq02.bat . é compartilhada por todas as instâncias da classe. o mesmo estado se suas Caso seja habilitada a opção %u.bat, torna-se necessário manter um script para variáveis membro têm os 2.3.1 Invocação de Por exemplo, se cada usuário, e aMétodos variável %u será substituída pelo nome do usuário. mesmos valores. Objetos se comunicam pela troca de mensagens, isto significa que um tivermos dois usuários, jose e maria, teria-se então que construir um script para cada, objeto pode ter que mostrar um comportamento particular invocando uma maria.bat. com os apropriada nomes jose.bat operação que foi edefinida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto. Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 135 123
Linguagem de Programação Java Linux Network Administration
Curso não Especialista em Redes Este material pode ser distribuído. Somente poderá ser utilizado por alunos da 3Way Networks. [email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1; Esquema de execução do script de logon
Para criar o script de logon será utilizado um editor de textos puro, o vi, por exemplo. No entanto é preciso lembrar que o Unix possui um formato de texto-puro diferente do Windows. O Unix demarca cada final de linha com o caractere especial denominado retorno de carro, representado pelo caractere de escape \r, enquanto que o Windows utiliza o retorno de carro em conjunto com o nova linha (este representado representado pelo \n). Para solucionar esse problema basta converter o arquivo criado no Linux para um formato legível no Windows com a ferramenta unix2dos ou criar esse arquivo no Windows com o notepad ou outra editor de texto Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto puro. Uma tarefa muito realizada por scripts de logon é mapear uma unidade de rede em máquinas Windows. Mapear uma unidade de rede é criar um atalho no 2.3 Membros de Instância Cada que objeto criadopara deverá sua própria de alguma variáveis máquina Windows aponte umter diretório que instância esteja em da rede. Por Os valores das variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um um objeto constituem exemplo, é possível criar um atalho no Windows chamado H: queemleve diretamente objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. para o diretório do usuário no servidor Samba, deste modo, quando o usuário estiver classe. Porém não devemos confundir isto com a implementação do método, que Dois objetos distintos têm emtodas suaasestação étrabalhando compartilhada por instânciasWindows da classe. ele poderá acessar seu diretório no servidor o mesmo estado se suas apenas clicando em H: no Windows Explorer. variáveis membro têm os 2.3.1 Invocação de Métodos A linha de comando abaixo deve ser inserida no logon script para realizar mesmos valores.o Objetos se comunicam pela troca de mensagens, isto significa que um mapeamento compartilhamento: objeto pode ter de queum mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de umuse método em um objeto usando o operador binário "." (ponto), net H: \\servidor\usuario devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método Deste invocadomodo, no recebedor pode também enviar informações de volta ao ser executado, esse script iria criarao uma unidade de rede objeto chamador através de um valor de retorno. O método chamado deve ser usuario no servidor e chamada H: que levaria diretamente para o diretório do usuário um que esteja definido pelo objeto.
a sincronização do relógio do cliente com o servidor seria realizada. Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 136 124
Linguagem de Programação Java Linux Network Administration
Cursonão Especialista em Redes Este material pode ser distribuído. Somente poderá ser utilizado por alunos da 3Way Networks. [email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
7.16. SERVIDOR WINS
O servidor WINS surgiu da necessidade de resolução de nomes no protocolo NetBIOS (SMB) para endereços IP. Neste protocolo a resolução de nomes é feito através de broadcast. No WINS todas as máquinas registram seu endereço IP, o seu nome e a função no servidor WINS. Assim, o servidor WINS mantém uma relação de nomes e endereços IPs de todas as máquinas da rede.
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
Funcionamento do Servidor Wins
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis AMBA COMO CLIENTE WINS 7.16.1. Sdefinidas (atributos) pela classe. Os métodos definem o comportamento de um em um objeto constituem objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. Esta é baseada alteração de duas instruções na seção global classe. Porém nãoconfiguração devemos confundir isto com ana implementação do método, que Dois objetos distintos têm édo compartilhada porconfiguração. todas as instâncias da classe. arquivo de 2.3.1 Invocação de Métodos wins server = 192.168.1.10 Objetos se comunicam pela= troca mensagens, isto significa que um name resolve order winsdelmhosts bcast objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de método linha em uméobjeto usandopara o operador "." (ponto), A um primeira utilizada definirbinário o endereço IP do devendo especificar a mensagem completa: o objeto que é o recebedor da segunda linha define a ordem de consulta para resolução de nomes. mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao SAMBAatravés COMO ERVIDOR WINS O método chamado deve ser 7.16.2. objeto chamador de Sum valor de retorno. um que esteja definido pelo objeto.
o mesmo estado se suas variáveis membro têm os mesmos valores.
servidor WINS. A
Configure as seguintes entradas que estão na seção global do arquivo de Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 137 125
Linguagem de Programação Java Linux Network Administration
Curso não Especialista Redes Este material pode ser em distribuído. Somente poderá ser utilizado por alunos da 3Way Networks. [email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); configuração do samba: carro1.ano = "2001"; wins support = yes carro1.modelo= "fusca"; name resolve order = wins lmhosts bcast carro1.cor = "prata";
A primeira entrada configura o samba para funcionar como Servidor WINS. Por questões óbvias as opções wins server e wins support não podem ser utilizadas simultaneamente. O parâmetro name resolve order define a ordem de resolução de nomes Windows.
7.17. COMPARTILHANDO IMPRESSORAS Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Servidor Samba compartilhando impressora
Da mesma forma que o Samba compartilha diretórios, o Samba permite Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto compartilhar Impressoras. Por padrão o smb.conf já vem com a seção [printers], esta seção é utilizada para definir compartilhamentos de impressora. O único esforço, caso não queira atribuir políticas de segurança, seria descomentar os parâmetros e deixar 2.3 Membros de Instância criado deverá ter sua própria instância de variáveis assim Cada comoobjeto apresentado: Os valores das variáveis
(atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da [printers] classe. Porém não devemos confundir isto com a implementação do método, que comment = All Printers é compartilhada todas as instâncias da classe. path por = /usr/spool/samba browseable = no
em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
2.3.1 Invocação guest de ok Métodos = no writable = no Objetos se comunicam pela troca de mensagens, isto significa que um printable = yes um comportamento particular invocando uma objeto pode ter que mostrar operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), printable devendo especificar a mensagem completa: o objeto que é o recebedor da com que o Samba compartilhamento como uma impressora, esta opção deve mensagem,Faz o método a ser invocadotrate e os este argumentos para o método (se houver). assinalada com yes. O método estar invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
guest ok
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 138 126
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new guest Carro(); Define se as contas tem permissão ou não carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
de acessar o recurso.
7.18. SAMBA COMO CLIENTE
Os comandos abaixos são muitos utilizados para manutenção, teste, verificação, etc. Segue abaixo alguns do principais utilitários do Samba: smbclient Este utilitário é utilizado para transferir e receber arquivos, de forma semelhante a um cliente FTP. Veja um exemplo: smbclient //maq3/c -U usuario -I 192.168.1.2
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Este carro2 comando= solicita acesso no compartilhamento c da máquina maq3. A opção -U indica Carro carro1;
o usuário que fará a autenticação. Quando o compartilhamento permite acesso de usuário convidado essa opção não será necessária. A opção -I indica o número IP da máquina maq3. Quando o WINS está corretamente configurado, isto também não é necessário. Outra opção também útil é a opção L, que lista os compartilhamentos do servidor, por exemplo, smbclient -L //maq3 -I 192.168.1.2. Uma vez conectado em um compartilhamento, os comandos são semelhantes aos de um cliente FTP, por exemplo, os comandos: help, ls, get, mget, put, mput, cd, rm, mkdir, pwd são válidos. smbmount Este comando permite montar compartilhamentos SMB, de forma compartilhamentos montados como sistemas arquivo Figurasão 2.5 –tratados Layout Memória duasparte variáveisdo referência para ode mesmo objeto Linux.
2.3
que
os
smbmount //maq4/d /mnt/comp -o username=usuario ip=192.168.1.102 mount -t smbfs -o username=jonas //maq105/C /mnt/samba
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis (atributos)Odefinidas pelaparâmetro classe. Os métodos definem o comportamento umcompartilhamento d, esta primeiro é a máquina remota seguido dedeseu em um objeto constituem objeto. Isto é importante, pois denota que um método pertence a cada objeto da máquina remota pode ser uma estação Windows que está com o drive d compartilhado. O outro o seu estado. classe. Porém/mnt/comp não devemosdefine confundir isto com implementação do método, parâmetro o ponto deamontagem. A opção -o éque para utilizar os parâmetros Dois objetos distintos têm éusername compartilhada as instâncias da classe. e ippor . Otodas parâmetro username é utilizado quando o compartilhamento exige um usuário e
o mesmo estado se suas . senha, o parâmetro ip é utilizado para especificar o endereço IP da máquina maq4 variáveis membro têm os 2.3.1 Invocação de Métodos As permissões deste diretório montado serão de acordo com o usuário que foi mesmosfornecido. valores. Objetos se comunicam pela troca de mensagens, isto significa que um Para desmontar o diretório montado, você pode utilizar o comando smbumount ou o próprio objeto pode ter que mostrar um comportamento particular invocando uma comando umount . operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar smbumounta mensagem /mnt/compcompleta: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao ou objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto. umount /mnt/comp
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 140 127
Linguagem de Programação Java Linux Network Administration
Cursonão Especialista em Redes Este material pode ser distribuído. Somente poderá ser utilizado por alunos da 3Way Networks. [email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
7.19. SAMBA NO CLIENTE WINDOWS Depois de ter configurado o servidor Samba corretamente, basta ingressar normalmente as máquinas Windows no domínio, como se o Samba fosse um controlador de domínio nativo. A única restrição acontece em máquinas Windows 7. As versões do Samba que já possuem suporte são:
Samba 3.4 ou superior
Samba 3.3.5 ou superior
Samba 3.3.2, 3.3.3 e 3.3.4
Figura 2.4 – Layout Memória após inicialização
//criando novo alias carro2 carro1; Carro Samba 3.2.12= ou superior
Se a versão utilizada é mais antiga que as descritas acima, provavelmente será o Windows retornará mensagens de erro tais como “A relação de confiança entre a estação e o controlador de domínio falhou”, porém esse inconveniente é contornável ao se fazer as alterações abaixo na Registry do cliente: HKLM\System\CCS\Services\LanmanWorkstation\Parameters DWORD DomainCompatibilityMode = 1 DWORD DNSNameResolutionRequired = 0
O Samba também traz no seu código fonte um arquivo de correção, o 2.5 – Layout Memória duas variáveis referência para o mesmo objeto ou endereço desse arquivoFigura é $SOURCE/docs-xml/registry/Win7_Samba3DomainMember.reg no Samba Bugzilla (https://bugzilla.samba.org/attachment.cgi?id=4988&action=view). Após a aplicação 2.3 Membros de Instância LanmanWorkstation. da correção é necessário reiniciar máquina o serviço Cada objeto criado deverá ter asua própria ou instância de variáveis Os valores das variáveis
(atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe.
2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 141 128
Linguagem de Programação Java Linux Network Administration
Cursonão Especialista em Redes Este material pode ser distribuído. Somente poderá ser utilizado por alunos da 3Way Networks. [email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
7.20. LABORATÓRIO
Este laboratório implementa o Samba como PDC para compartilhamento de pastas e autenticação de usuários. As máquinas virtuais deverão ser usadas para a implementação. O Linux será o servidor e o Windows será o cliente. Descrição do Ambiente Figura 2.4 – Layout Memóriaoapós inicialização - Tanto a máquina Linux (Servidor PDC) quanto cliente Windows XP (Cliente) terão suas interfaces configuradas modo Rede Interna para não haver problemas na rede do laboratório. //criando novo no alias
Carro carro2 = carro1;
- Servidor Endereço IP: 192.168.3.1 Sub-rede e sub-máscara: 192.168.3.0 e 255.255.255.0 Gateway: 192.168.3.254 Servidores DNS: 192.168.3.253, 192.168.3.252 Domínio Samba: 3WAYLOCAL Compartilhamentos: /dados/planilhas e /opt/softwares
A. No servidor abrir o arquivo /etc/samba/smb.conf e faça a seguinte configuração: Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto /etc/samba/smb.conf [global] 2.3 Membros de Instância # --- Nome do seu Servidor --Cada objeto= criado deverá ter sua comment Servidor SAMBA PDC própria instância de variáveis (atributos) #definidas pela classe. métodos PDC definem --- Domínio do Os servidor ---o comportamento de um 3WAYLOCAL objeto. Istoworkgroup é importante,= pois denota que um método pertence a cada objeto da # --Configuracao usoa de usuário edo senha --classe. Porém não devemos confundirpara isto com implementação método, que security = user é compartilhada por todas as instâncias da classe. os level = 100 domain logons = yes 2.3.1 Invocação Métodos o script logon --# --- de Determina Objetos comunicam pela troca de mensagens, isto significa que um logonsescript = %U.bat objeto pode ter que mostrar particular invocando uma # --Opções de um PDC comportamento --domain master yes operação apropriada que foi= definida no objeto. Em Java, isto é feito pela local masterem= um yesobjeto usando o operador binário "." (ponto), chamada de um método preferred master yes devendo especificar a mensagem= completa: o objeto que é o recebedor da encrypt passwords = yes mensagem,debug o método a ser invocado e os argumentos para o método (se houver). level = 3 O método log invocado no recebedor pode também enviar file = /var/log/samba_log.%u informações de volta ao objeto chamador através de um valor unix password sync = de yesretorno. O método chamado deve ser # --Secao Compartilhamentos --um que esteja definido pelode objeto. [netlogon]
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 142 129
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Curso não Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência comment = Scripts Carro carro1 = new Carro(); # --- Caminho para os scripts --carro1.ano = "2001"; path = /etc/samba/scripts/ carro1.modelo= "fusca"; public = no= "prata"; carro1.cor browseable = no writeable = no [planilhas] comment = Planilhas path = /dados/planilhas browseable = yes writeable = yes force create mode = 0770 force directory mode = 0770 [softwares] comment = Softwares path = /dados/softwares browseable = yes Figura 2.4 – Layout Memória após inicialização writeable = no //criando novo alias force create mode = 0700 Carro carro2 = carro1; force directory mode = 0700
B. Reiniciar o servidor para efetivar as configurações. chkconfig smb on /etc/init.d/smb start
C. Criar uma conta de usuário e de máquina. addgroup maquinas useradd -d /dev/null -g maquinas -s /bin/false maquina$ smbpasswd -a -m maquina Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
D. Criar senha administrativa do Samba. Essa senha deverá ser diferente do Membros de Instância superusuário. Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis
2.3
(atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da smbpasswd -a root classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe.
em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas E. Agora é adicionar o Windows XP ao domínio 3WAYLOCAL. Usar a senha variáveis membro têm os 2.3.1 Invocação de Métodos administrativa do Samba para ingressar a máquina no domínio. mesmos valores. Objetos se comunicam pela troca de mensagens, isto significa que um
objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto. Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 143 130
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Curso não Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
7.21. EXERCÍCIOS
1. Escreva o comando para montar em um cliente Linux, um compartilhamento chamado docs de um computador de nome serv1 para o ponto de montagem /var/documentos. O número IP do servidor é 10.1.0.2 e o usuário é fulano. 2. Como faço para: a) visualizar quais são os compartilhamentos de um servidor de arquivos Windows através do Linux? b) Visualizar um conteúdo de um compartilhamento CIFS pelo Linux, sem montar o diretório no Linux? 3.
e quais as diferenças entre elas? Quais são as opções paraFigura a diretiva 2.4 – Layout security Memória após inicialização
4. //criando Qual sãonovo os alias passos necessários para se fazer um servidor Samba atuar Carro carro2 = carro1; simplesmente como um servidor de arquivos, sem identificar os usuários, porém com autenticação por senha? E para um PDC, com autenticação de senhas? 5.
Preciso fazer com que todos arquivos e diretórios criados no compartilhamento vendas sejam criados como pertencentes ao grupo vendas, e também que todos os arquivos tenham permissão de escrita e leitura para o grupo e os diretórios tenham permissões de leitura, acesso e escrita. Como isto poderia ser feito? 6. Qual as semelhanças e diferenças do WINS e do DNS? Como se configura um servidor WINS no samba? 7. Quais são os passos necessários para se compartilhar uma impressora no Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto Linux? 8.
Descreva as características dos protocolos: SMB, NetBEUI, NetBIOS. O que é
2.3 Instância CIFS?Membros E o que de é NetBT?
Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um 9. Quais seriam os passos para se incluir uma estação Windows Workstation emNT um objeto constituem objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. em um domínio controlado pelo Samba? Quais seriam os passos para se incluir um classe. Porém não devemos confundir isto com a implementação do método, que Dois E objetos distintos samba em um domínio tendo um PDC Samba? se o PDC fortêm éservidor compartilhada por todas as instâncias da pré-existente, classe.
o mesmo estado se suas variáveis membro têm os 2.3.1 Invocação de Métodos mesmos valores. 10. Objetos O que se é ocomunicam serviço localizador e qual é aque suaumfunção em um grupo de pela troca de [browsing] mensagens, isto significa
Windows NT?
objeto pode Quais ter que são mostrar comportamento particularem invocando uma trabalho? os um tipos de localizadores um domínio? Como você pode operação apropriada que foi definida no objeto. Em Java, isto é feito pela influenciar uma votação de um localizador através da configuração de um servidor chamada de um método em um objeto usando o operador binário "." (ponto), samba? Se já existir um PDC na rede, é conveniente configurar o samba como devendo especificar a mensagem completa: o objeto que é o recebedor da localizador mestre doinvocado domínio? mensagem, o método a ser e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto. Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 144 131
Linguagem Administration de Programação Java Linux Network
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way Networks. [email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
7. FTP (FILE TRANSFER PROTOCOL)
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
7.1. INTRODUÇÃO O FTP é acrônimo de File Transfer Protocol (Protocolo de Transferência de Arquivos) e está entre os mais antigos serviços do UNIX, sendo até hoje um dos protocolos de maior utilização na Internet. Sua principal finalidade é transferir arquivos entre estações, tanto enviando quanto recebendo arquivos.
7.2. PROTOCOLO FTP Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da Servidor mensagem, o método a ser invocado e os argumentos para oFTP método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser protocolo FTP é definido por várias RFCs, mas a principal um que estejaOdefinido pelo objeto.
e mais atual é a RFC 959, e se caracteriza-se por utilizar duas portas para conexão, uma porta é Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 145 132
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); utilizada para autenticação do cliente e a outra é utilizada para transferência de dados, carro1.ano = "2001"; ou seja, ao cliente solicitar carro1.modelo= "fusca";uma conexão a um servidor de ftp, primeiramente ele carro1.cor = "prata"; utilizará a porta de autenticação do cliente, somente depois da autenticação o cliente
passará a utilizar a porta de transferência de dados e então poderá enviar e receber arquivos. A porta de autenticação do cliente é uma porta para controle, nesta porta é possível enviar comandos e receber os resultados dos comandos. Existem dois canais distintos de comunicação para proporcionar um melhor controle. Por exemplo, se no canal de dados estiver baixando um arquivo, sem nenhuma interferência é possível cancelar esta operação de download, através do canal de controle.
O arquivo /etc/services define no sistema as portas que serviço ftp utiliza. Figura 2.4 – Layout Memória após inicialização
cat /etc/services //criando novo alias | grep ftp ftp-data 20/tcp Carro carro2 = carro1; ftp 21/tcp
A primeira entrada é a porta ftp-data responsável pela transferência de dados. A segunda é a porta de autenticação de usuários. Os números das portas são 20 e 21 respectivamente.
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que Processo de comunicação Cliente/Servidor FTP é compartilhada por todas as instâncias da classe.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os 2.3.1 Invocação de Métodos O serviço FTP é geralmente controlado pelo super-daemon xinetd/inetd. Ou mesmos valores. Objetos se comunicam pela troca de mensagens, isto significa que um seja, eles podem controlar o serviço, de forma que quando um cliente solicita uma
objeto pode ter que mostrar um comportamento particular invocando uma conexãoapropriada com a porta o super-daemon cria uma nova operação que foi21, definida no objeto. Emautomaticamente Java, isto é feito pela do daemon para em atender a solicitação do cliente. chamada de umftp método um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). 7.3. INSTALAÇÃO O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Os definido principais servidores FTP disponíveis para o Linux são: vsftpd, um que esteja pelo objeto.
wu-ftpd e o pure-ftp.
instância
proftpd,
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 146 133
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Curso não Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 é= um new dos Carro(); O vsftpd mais seguros servidores carro1.ano = "2001"; UNIXcarro1.modelo= e será o utilizado para demonstração. "fusca"; carro1.cor = "prata";
de FTP utilizados em sistemas
Padrões Vsftpd Portas padrão: TCP/UDP – 21 e 20 O principal arquivo de configuração: /etc/vsftpd/vsftpd.conf Os usuários que não têm permissão para logar via ftp: /etc/vsftpd/ftpusers 7.3.1. INSTALAÇÃO CÓDIGO FONTE Uma vez obtido o código fonte (vsftpd.beasts.org), mova o código fonte para um diretório Figura 2.4 – Layout Memória após inicialização conveniente. Verificar os pré-requisitos do software nos arquivos README ou INSTALL antes de //criando novo alias iniciarCarro a compilação, normalmente são o gcc, make e bibliotecas padrão do C. carro2 = carro1; tar zxf vsftpd-versao.tar.gz -C /usr/local/src cd /usr/local/src/vsftpd-versao make make install
7.3.2. INSTALAÇÃO AUTOMATIZADA
yum install vsftpd Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
apt-get install vsftpd
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem 7.4. USUÁRIOS FTP objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. classe. Porém não devemos confundir isto com a implementação do método, que Dois objetos distintos têm é compartilhada portrabalha todas as instâncias da classe.com 2 tipos de usuários: anonymous (Anônimo) O FTP praticamente
e real (Real). A diferença entre eles será descrita adiante.
o mesmo estado se suas variáveis membro têm os mesmos valores.
2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação Usuário apropriada Anônimo que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), Não se precisa de senha com esse tipo de usuário. Essa implementação devendo especificar a mensagem completa: o objeto que é o recebedor da /etc/vsftpd/vsftpd.conf da seguinte com a edição do aarquivo mensagem, o método ser invocado e os argumentos para o método (se houver).maneira: O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser /etc/vsftpd/vsftpd.conf um que esteja definido pelo objeto. listen=YES
se dá
#listen_address=IP_da_interface_de_escuta
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 147 134
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da| 3Way Networks. [email protected] (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência local_enable=NO Carro carro1 = new Carro(); anonymous_enable=YES carro1.ano = "2001"; write_enable=NO carro1.modelo= "fusca"; anon_root=/var/ftp/pub carro1.cor = "prata"; xferlog_enable=YES xferlog_file=/var/log/xferlog
/etc/init.d/vsftpd start
Usuário Real Este usuário é caracterizado por ter uma conta normal no sistema Linux, ou seja, possui um login e uma senha para acessar o sistema. Este usuário pode navegar por toda a árvore de diretório do Linux desde que tenha as devidas permissões. Por após padrão, quando o usuário é criado no Figura 2.4 – Layout Memória inicialização
sistema ele terá novo imediatamente acesso ao servidor FTP. //criando alias Carro carro2 = carro1; O serviço FTP não criptografa as senhas que trafegam pela rede, portanto, é recomendável que o super-usuário não possa acessar o serviço como cliente. Em alguns casos, é necessário até desabilitar os usuários reais para não correr riscos. O arquivo que faz essas restrições é /etc/ftphosts. Uma implementação básica desse tipo de usuário será apresentada abaixo:
2.3
/etc/vsftpd/vsftpd.conf listen=YES #listen_address=IP_da_interface_de_escuta local_enable=YES anonymous_enable=NO connect_from_port_20=YES write_enable=YES Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto xferlog_enable=YES xferlog_file=/var/log/xferlog ftpd_banner=Servidor FTP 3WayLocal userlist_enable=YES Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos)/etc/init.d/vsftpd definidas pela classe. Os restart métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. não devemosEconfundir isto com a implementação do método, que 7.5. Porém FIREWALL IP_CONNTRACK é compartilhada por todas as instâncias da classe.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas Para o perfeito funcionamento do FTP é importante configurar o módulo ip_conntrack_ftp variáveis membro têm os 2.3.1 de Métodos e criar Invocação algumas regras de firewall como se segue: mesmos valores. Objetos se comunicam pela troca de mensagens, isto significa que um
objeto pode ter que mostrar um comportamento particular invocando uma operação /etc/sysconfig/iptables-config apropriada que foi definida no objeto. Em Java, isto é feito pela IPTABLES_MODULES="ip_conntrack_ftp" chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem,/etc/sysconfig/iptables o método a ser invocado e os argumentos para o método (se houver). -A RH-Firewall-1-INPUT -m state --state NEW -p tcp --dport 21 -j ACCEPT O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor restart de retorno. O método chamado deve ser /etc/init.d/iptables um que esteja definido pelo objeto. Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 148 135
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way Networks. [email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; O Principal= arquivo carro1.cor "prata";de log é o /var/log/xferlog.
7.6. ARQUIVOS DE LOG DO FTP
apresenta algo semelhante ao trecho abaixo:
O conteúdo desse arquivo
/var/log/xferlog Thu Mar 28 00:32:11 2012 1 192.168.1.118 79 /documento.doc b _ o a [none_given] ftp 0 * c Thu Apr 11 01:00:16 2012 1 192.168.1.110 15 /texto.txt b _ o r antonio ftp 0 * c
Neste arquivo é possível notar informações como o usuário que acessou o servidor, data e hora de acesso, arquivo que este enviou obteve. Figura 2.4 –ou Layout Memória A apósprimeira inicialização linha desta saída é referente ao usuário//criando anonymous. A segunda linha é referente ao usuário antonio. novo alias Carro carro2 = carro1; Os logs do FTP também são observados no arquivo /var/log/messages que é utilizado pelo syslogd. tail -n6 /var/log/messages Apr 11 00:34:18 maq19 ftpd[1511]: FTP [192.168.1.110], main Apr 11 00:37:28 maq19 ftpd[1511]: FTP Apr 11 00:53:35 maq19 ftpd[1567]: FTP [192.168.1.113], antonio Apr 11 00:59:52 maq19 ftpd[1575]: FTP maq10.3waylocal.net.br[192.168.1.110], maria Apr 11 01:00:19 maq19 ftpd[1575]: FTP Apr 11 01:07:15 maq19 ftpd[1567]: FTP
LOGIN FROM maq10.3waylocal.net.br session closed LOGIN FROM maq13.3waylocal.net.br LOGIN FROM session closed session closed
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
7.7. EXECUTANDO O CLIENTE FTP 2.3
Membros de Instância
A conexão em um servidor FTP via linha de comando Cada objeto criado deverá ter sua própria instância de variáveisé sintaxe abaixo: (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que ftp hostname_ou_IP_servidor é compartilhada por todas as instâncias da classe.
feita de acordo com a
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
2.3.1 Invocação de Métodos Exemplo: ftp maq1.3waylocal.net.br Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação A apropriada quedeste foi definida no objeto. Em Java, istointerface é feito pela execução comando apresentará uma que pedirá autenticação. chamada de um método em um objeto usando o operador binário "." (ponto), O usuário para a conexão como anônimo é anonymous e sua senha é nula. Já os devendo especificar a mensagem completa: o objeto que é o recebedor da outros usuários suas senhas de sistema. mensagem, o métodoutilizarão a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Os comandos disponíveis para o cliente podem ser visualizados através da um que esteja definido pelo objeto.
ajuda (help) do ftp no seu próprio prompt.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 149 136
Linux Network Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Processo de transferência de arquivo entre Cliente/Servidor FTP
ftp.
Abaixo estão os principais comandos que podem ser utilizados em uma sessão CD Muda o diretório de trabalho na máquina remota para diretório-remoto. Exemplo: cd diretorio CHMOD Muda as permissões do arquivo nome_do_arquivo no sistema remoto para permissoes. Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto Exemplo: chmod 640 documento.odt
CLOSE Membros Instância Termina de a sessão FTP com o servidor remoto e retorna ao interpretador de comandos local. Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis Pode também ser utilizado quit. (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem Exemplo: close objeto. Isto é importante, pois denota que um método pertence a cada objeto da
2.3
classe. Porém não devemos confundir isto com a implementação do método, que DELETE é compartilhada por todas as instâncias da classe.
Apaga o arquivo arquivo-remoto na máquina remota.
o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
delete documento.odt Exemplo: 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma MGET operação Permite apropriada que foi definidadanomáquina objeto. remota. Em Java,Oisto é feito receber arquivos arquivo serápela copiado para máquina local chamada de um método em um objeto usando o operador binário "." (ponto), no diretório onde o usuário estava ao executar o ftp. Isto pode ser mudado através do devendo especificar a mensagem completa: o objeto que é o recebedor da comando lcd. mensagem, o método a ser invocado e os argumentos para o método (se houver). Exemplo: mget documento.odt O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser MPUT um que esteja definido pelo objeto.
Permite enviar arquivos da máquina local para a máquina remota. Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 150 137
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); Exemplo: mput /opt/arquivos/relatorios.pdf carro1.ano = "2001"; carro1.modelo= "fusca"; SIZE carro1.cor = "prata";
Retorna o tamanho do nome_do_arquivo na máquina remota. Exemplo: size relatorios.pdf
SIZE Retorna o tamanho do nome_do_arquivo na máquina remota. Exemplo: size relatorios.pdf SYSTEM Mostra o tipo do sistema operacional utilizado na máquina remota. Figura 2.4 – Layout Memória após inicialização Exemplo: system
//criando novo alias Carro carro2 = carro1;
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 151 138
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br
7.8.
//atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; LABORATÓRIO carro1.modelo= "fusca"; carro1.cor = "prata";
Essa implementação não será mais difícil da que já foi vista, pois aqui terá maior enfoque nos testes do servidor. Configuração /etc/vsftpd/vsftpd.conf listen=YES #listen_address=IP_da_interface_de_escuta local_enable=YES anonymous_enable=NO connect_from_port_20=YES Figura 2.4 – Layout Memória após inicialização write_enable=YES //criando novo alias xferlog_enable=YES Carro carro2 = carro1; xferlog_file=/var/log/xferlog banner_file=/etc/vsftpd/issue userlist_enable=YES /etc/init.d/vsftpd restart
Criação do banner /etc/vsftpd/issue NOTA PARA USUARIOS O uso desse serviço implica no consentimento de monitoramentos e testes. Todas as atividades serão gravadas com o seu endereço IP e nome de host.
Inicialização automática no boot
2.3
Figuraon 2.5 – Layout Memória duas variáveis referência para o mesmo objeto chkconfig vsftpd /etc/init.d/vsftpd start netstat -tulpn | grep :21
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis Executando os pela testes a partir dos clientes (atributos) definidas classe. Os métodos definem o comportamento de um objeto. Isto$ftp é importante, pois denota que um método pertence a cada objeto da ip_servidor system classe. Porém não devemos confundir isto com a implementação do método, que ls é compartilhada por todas as instâncias da classe. mput /etc/printcap size printcap
2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 152 139
Linguagem de Programação Java Linux Network Administration
Cursonão Especialista em Redes Este material pode ser distribuído. Somente poderá ser utilizado por alunos da 3Way Networks. [email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
7.9. EXERCÍCIOS 1.
Qual é a diferença entre os usuários real, convidado e anônimo?
2.
Quais são as portas que um servidor FTP utiliza e qual a função delas?
3. Quais seriam os passos necessários para se habilitar o acesso anônimo ao servidor FTP? Qual seria o(s) possível(is) procedimento(s) para desabilitar ftp anônimo? 4. Como eu poderia impedir que determinados usuários pudessem efetuar logon Figura 2.4 – Layout Memória após inicialização no servidor ftp? Qual seria um possível motivo para impedir algum usuário de efetuar //criando novo alias logonCarro no servidor carro2 ftp? = carro1; 5. Suponha que você deseje que todos usuários reais tenham acesso negado, mas liberando somente usuários anônimos. Mostre pelo menos duas formas de implementar esta opção. Qual seria a forma mais simples? Cite uma situação onde este tipo de configuração seria conveniente. 6. Como eu habilitaria que um usuário anônimo pudesse fazer envio de arquivos (upload) em um diretório específico? Quais riscos de segurança poderia ter esta permissão e o quais medidas de segurança poderiam ser feitas tornar essa permissão mais segura? Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 153 140
LinguagemAdministration de Programação Java Linux Network
Este material pode ser distribuído. Curso não Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
8. SERVIDOR WEB
A principal função //criando novo alias Carro carro2 = carro1;
Figura 2.4 – Layout Memória após inicialização
de um servidor web é disponibilizar dados, podendo ser imagens, vídeos, áudio, ou arquivos em geral. Estes dados são passados para os clientes de forma que estes possam exibir as informações. O cliente de um Servidor Web é o browser ou navegador (por exemplo, Internet Explorer, Mozilla Firefox, Google Chrome, Opera, Lynx, eLinks, etc) e o formato entendido por eles é o HTML (HyperText Markup Language) que é a linguagem utilizada para formatar e definir páginas da Internet.
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
2.3.1 Invocação de Métodos Processo de requisição de uma página web na Internet Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada queweb foi definida no objeto. Em Java,HTTP isto é (HyperText feito pela O servidor utiliza-se do protocolo Transport Protocol), chamada de um método em um objeto usando o operador binário "." (ponto), o protocolo mais conhecido da Internet, que utiliza-se de hiper-textos, que são textos devendo especificar a mensagem completa: o objeto que é o recebedor da com referências (links) que a outros textos,(seformando mensagem, o método a ser invocado e oslevam argumentos para o método houver). uma teia de páginas interligadas, vem o pode nome WWW queinformações significadeWorld O método invocado daí no recebedor também enviar volta aoWide Web (Grande Teia objeto chamador através de um valor de retorno. O método chamado deve ser Mundial). um que esteja definido pelo objeto. Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 154 141
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
8.1. WORLD WIDE WEB
A World Wide Web (WWW) é a estrutura pela qual documentos espalhados por todo mundo são acessados na Internet. Em seus primórdios, os documentos eram formados somente de texto, mas com o tempo foi-se agregando figuras (jpeg, gif, etc), animações gráficas (Flash, gifs animados, etc), áudio (.au, .wav, .MP3, etc), vídeo (MPEG, divx, etc), desta maneira, os documentos tornaram-se mais poderosos e de interface mais amigável, repercutindo em sua enorme popularidade atual. Dentro da vertente cliente/servidor, tem-se como cliente, o navegador, no lado servidor tem-se os processos servidores que escutam a porta 80 do protocolo TCP, aguardando por solicitações Figura de 2.4 clientes. Devido à principal funcionalidade do – Layout Memória após inicialização protocolo, a de novo serviralias conteúdo aos clientes, este se baseia em solicitação e resposta //criando Carro carro2 = carro1; através de conexões temporárias com duração suficiente para solicitar o conteúdo e baixar o conteúdo solicitado. Este protocolo baseado em solicitação e resposta é o HTTP.
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir Procedimento isto com a implementação do método, que de acesso ao Servidor Web. é compartilhada por todas as instâncias da classe.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os 2.3.1 Invocação de Métodos 1. O navegador pergunta ao DNS: Qual é o endereço IP de mesmos valores. Objetos se comunicam pela troca de mensagens, isto significa que um
www.3way.com.br objeto pode ter que? mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela 2. um O DNSem responde: endereço IP é 67.20.58.196 . chamada de método um objetoousando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da O navegador estabelece umapara conexão a máquina 67.20.58.196 mensagem,3.o método a ser invocado e os argumentos o métodocom (se houver). Oporta método invocado no recebedor pode também enviar informações de volta ao 80 através do protocolo HTTP. objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja pelo objeto. 4. definido Em seguida, o navegador envia um comando HTTP:
na
GET /jpaulo/apostilarede.html
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 155 142
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro = new www.3way.com.br Carro(); 5. carro1 O servidor envia carro1.ano = "2001"; cliente. carro1.modelo= "fusca"; carro1.cor = "prata";
o arquivo
apostilarede.html
para o
6. O navegador, depois de baixar o arquivo solicitado, faz a formatação apresentação do mesmo em HTML (apostilarede.html)
8.2. O APACHE O servidor apache é o servidor Web mais popular no mundo devido ao seu desempenho, portabilidade, flexibilidade e baixo custo. Ele foi desenvolvido a partir do servidor Web mais popular antigamente, chamado o daemon httpd, de domínio público e desenvolvido por Rob McCool no NCSA - Nacional Centre for Figura 2.4 – Layout Memória após inicialização Supercomputing Aplications. O desenvolvimento deste servidor Web estagnou-se //criando novo alias quando seucarro2 autor =deixou Carro carro1;a NCSA. A partir deste momento, vários voluntários (webmasters) que conheciam o daemon httpd se interessaram em dar seguimento ao projeto. Estes colaboradores formaram o que é chamado de Projeto Apache. Em menos de um ano de trabalho, o servidor Apache, em sua versão 1.0 lançada em abril de 1995, superou o servidor httpd da NCSA, tornando o Servidor Web mais utilizado na Internet. Para maiores detalhes ler sobre o projeto em http://www.apache.org.
8.3. INSTALANDO O APACHE Há basicamente duas formas gerais que podem ser utilizadas para instalar o Figura 2.5ou – Layout Memória duas variáveisoreferência parafonte. o mesmo objeto Apache. Através de pacotes compilando-se código 8.3.1. INSTALAÇÃO CÓDIGO FONTE
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis O código fonte do apache pode ser encontrado no endereço Os valores das variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem httpd.apache.org/download.cgi. vez obtivo o acódigo fonte, os objeto. Isto é importante, pois denota queUma um método pertence cada objeto da basta satisfazer o seu estado. requisitos instalação e executar comandos abaixo. classe. Porém para não devemos confundir isto com os a implementação do método, que Dois objetos distintos têm é compartilhada por todas as instâncias da classe. tar zxf httpd-versao-tar.gz -C /usr/local/src
o mesmo estado se suas variáveis membro têm os mesmos valores.
2.3.1 Invocação de Métodos cd /usr/local/src/httpd-versao Objetos se comunicam pela troca de mensagens, isto significa que um ./configure --prefix=/usr/local/httpd-versao objeto pode ter que mostrar um comportamento particular invocando uma make install operação make apropriada que foi definida no objeto. Em Java, isto é feito pela um método em um objeto usando o operador binário "." (ponto), chamada de devendo especificar a mensagem completa: o objeto quedeé ambiente o recebedor da A opção --prefix do script de configuração (./configure ), indica qual é o mensagem, o método a ser invocado e os argumentos para o método (se houver). diretório sob o qual será criada toda árvore de diretórios, inclusive com todos os arquivos de O método invocado no recebedor pode também enviar informações de volta ao configuração, binários, etc. Neste caso o diretório escolhido foi /usr/local/httpd-versao, onde objeto chamador através de um valor de retorno. O método chamado deve ser versao representa a versão do apache desejada. O comando make compila o código fonte do apache um que esteja definido pelo objeto.
e o comando make install copia os arquivos gerados para a árvore de diretórios criados em Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 157 143
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new . Carro(); /usr/local/httpd-versao carro1.ano = "2001"; Para informações mais detalhadas sobre o procedimento de instalação podem ser vistas nos carro1.modelo= "fusca"; README ou INSTALL que se encontram na raiz do diretório extraído. arquivos carro1.cor = "prata";
8.3.2. INSTALAÇÃO AUTOMATIZADA
yum install httpd
Figura 2.4 – Layout Memória após inicialização
//criando novo alias apt-get install apache2 apache2-utils Carro carro2 = carro1;
8.4. PROTOCOLO HTTP Este é o protocolo padrão de transferência de conteúdo nos Servidores Web. Para
conhecer mais a fundo a sintaxe deste protocolo, será utilizado o utilitário telnet, pois através dele pode-se realizar uma comunicação a nível de protocolo HTTP com o servidor web. telnet localhost 80 2.5 – Layout Memória duas variáveis referência para o mesmo objeto GET /index.htmlFigura HTTP/1.0
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 158 144
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Procedimento de acesso ao Servidor Web através HTTP
Através desta experiência, podemos notar que: O HTTP é baseado em solicitações: note o comando (conteúdo do arquivo /index.html);
2.3
GET
e a resposta
Conexões HTTP são temporárias: uma vez fornecido o conteúdo solicitado – Layout Memória duas variáveis referência para o mesmo objeto no 2.5argumento do GET o arquivo /index.html) o servidor pelo GET (note Figura desconecta automaticamente o cliente. Note no final da transferência do arquivo,de a mensagem Membros Instância do telnet “Connection closed by foreign host” no final da resposta do servidor; Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis
(atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da Existem diferentes do HTTP: donote quequeo classe. Porém não devemos confundir versões isto com a implementação método, é compartilhada por todas instâncias daestá classe. significa qualasprotocolo sendo utilizado pelo cliente
em um objeto constituem o seu estado. HTTP/1.0 parâmetro Dois objetos distintos têm e qual é a versão de o mesmo estado se suas HTTP que está sendo utilizada pelo cliente; variáveis membro têm os 2.3.1 Invocação de Métodos mesmos valores. Objetos se comunicam pela troca de mensagens, isto significa que um
objeto pode ter linha que mostrar comportamento particular invocando apesar uma Uma vaziaummarca o final da solicitação: de termos enviado operação inicialmente apropriada que para foi definida no objeto. Em Java, isto é feito pela o servidor o comando “GET /index.html HTTP/1.0”, o chamada de um método em um objeto usando o operador binário "." (ponto), entende que terminou a solicitação quandodafor enviado uma linha devendo servidor especificar só a mensagem completa: o objeto que é o recebedor vazia, verifique que oeservidor só respondeu quando foi teclado ; mensagem, o método a ser invocado os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser A resposta HTTP um que esteja definido pelo objeto. é formada de cabeçalho e conteúdo: note também o
formato da resposta do servidor web, formada de cabeçalho e conteúdo. O Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 159 145
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Curso não Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 é= formado new Carro(); cabeçalho de informações de controle, necessárias carro1.ano = "2001"; interpretação "fusca"; do conteúdo. Veja o formato do cabeçalho: carro1.modelo= carro1.cor = "prata";
para a correta
HTTP/1.1 200 OK
Informação que a solicitação resultou com código de sucesso 200, que significa OK e a versão do protocolo HTTP do servidor (versão 1.1)
Date: Sun, 07 Apr 2002 16:29:51 GMT
A data do servidor
Server: Apache/1.3.14 (Unix) (CentOS/Linux) PHP/4.0.3pl1 mod_ssl/2.7.1 OpenSSL/0.9.6
Informações detalhadas do servidor, além das funcionalidades implementadas no servidor (PHP e SSL).
Last-Modified: Thu, 02 Nov 2000 22:00:35 GMT Content-Length: 2908
Última modificação do conteúdo solicitado tamanho do conteúdo em bytes
Figura 2.4 – Layout Memória após inicialização
Content-Type: text/html; charset=iso//criando novo alias 8859-1 Carro carro2 = carro1;
Tipo do conteúdo da resposta, juntamente com o tipos de caracteres utilizados Serve para separar o cabeçalho do conteúdo. Serve para separar o cabeçalho do conteúdo.
O próprio arquivo solicitado
Este cabeçalho fornecido pelo servidor também é utilizado pelo navegador (cliente) em uma conexão HTTP, porém não é apresentado para o usuário. O cabeçalho tem bastante utilidade para o cliente, pois permite que tenha uma noção melhor do conteúdo fornecido.
8.5. PUBLICAÇÃO DA HOME-PAGE
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
O objetivo será publicar o exemplo de página HTML simples, sem a sofisticação das páginas vistas nos mais famosos portais. Para isso deverá ser feito o seguinte:
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis (atributos)Criação definidasdepela Oscom métodos definem de um umclasse. arquivo extensão htmlo, comportamento pode ser teste.html em um objeto constituem objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. classe. Porém não devemos confundir isto com a implementação do método, que Dois objetos distintos têm Em seguida, mover estedaarquivo é compartilhada por todas as instâncias classe. para o diretório /var/www/html
o mesmo estado se suas variáveis membro têm os 2.3.1 Invocação de Métodos mesmos valores. Objetos se comunicam pela troca de mensagens, significa que um das páginas No Debian/Ubuntu o diretórioistopara hospedagem web é objeto pode ter que mostrar um /var/www comportamento particular invocando uma somente e o daemon operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), Depois, inicializar serviço do Apache, é httpd devendo especificar a mensagemocompleta: o objeto que seu é o nome recebedor da . mensagem, o método a ser invocado e os argumentos para o método (se houver). O método service invocado no recebedor pode também enviar informações de volta ao httpd start objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto. Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 160 146
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Curso não Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); Na instalação compilada do Apache não é fornecido script de inicialização carro1.ano = "2001"; do serviço, é preciso utilizar os comandos apachectl start e apachectl stop carro1.modelo= "fusca"; carro1.corpara= inicializá-lo "prata"; ou pará-lo respectivamente.
Agora
é
só
abrir
um navegador, e digitar http://localhost/teste.html e a página será exibida.
como
URL
8.6. CONFIGURAÇÃO DO APACHE O arquivo de configuração do Apache fica dentro do diretório /etc/httpd/conf (no CentOS/RHEL) e seu nome é httpd.conf, já no Debian/Ubuntu ele fica em /etc/apache2/ com o nome de apache2.conf . A árvore do diretório de configuração do Figura 2.4 – Layout Memória após inicialização Debian/Ubuntu é bemalias diferente do CentOS, pois ao invés de dispor toda configuração //criando novo Carroum carro2 = carro1; em quase arquivo apenas, a mesma encontra-se em vários sub-diretórios. Em outra distribuição, basta localizar (comandos find ou locate) por algum desses nomes que se terá uma noção exata do caminho específico. As diretivas de configuração mais comuns do Apache serão comentadas a seguir: ServerAdmin Define o endereço de e-mail do administrador do servidor WEB. ServerAdmin [email protected]
2.3
ServerName Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto Define o hostname completo do servidor e a porta em que ele está atendendo solicitações. Membros de Instância
ServerName www.3waylocal.net.br:80 Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. DocumentRoot classe. Porém não devemos confundir isto com a implementação do método, que Dois objetos distintos têm é compartilhada por todaso as instâncias classe. Estabelece local ondedaos documentos Web serão armazenados para exibição
o mesmo estado se suas variáveis membro têm os mesmos valores.
nos clientes.
2.3.1 Invocação de Métodos DocumentRoot /var/www/html Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela DirectoryIndex chamada de um método em um objeto usando o operador binário "." (ponto), Indica quais serão os arquivos de índice serão dafornecidos aos clientes devendo especificar a mensagem completa: o objeto que é oque recebedor mensagem,quando o métododo a seracesso invocadoao e osservidor argumentos para browser). o método (sePodem houver). ser colocados vários (via O método arquivos, invocado nomas recebedor pode também enviar informações de volta oaoservidor retornará erro se algum desses arquivos não existir, objeto chamador através de um valor de retorno. O método chamado deve ser ou algum um que esteja definido conteúdo pelo objeto. não desejado. DirectoryIndex index.htm index.html index.php default.pl Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 161 147
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; Listen carro1.modelo= "fusca"; carro1.cor = "prata";
Esta diretiva especifica quais interfaces e portas o servidor vai escutar. Abaixo temos dois exemplos, o primeiro especifica a interface e a porta, já o segundo somente a porta. Listen 192.168.1.101:80 Listen 7007
UseCanonicalName Força o uso de nomes canônicos ao invés de endereços IPs. Exemplo: supondo que oFigura cliente use o endereço IP 67.20.58.196, se o servidor 2.4 – Layout Memória após inicialização web estiver configurado para usar nomes canônicos, imediatamente o //criando novo alias endereço www.3way.com.br irá substituir esse IP. Carro carro2 = carro1; UseCanonicalName on
ServerRoot Esta diretiva define o diretório onde deverão ser armazenados os arquivos de configuração, erros e logs de acessos do servidor Web. ServerRoot /etc/httpd
CustomLog Define qual é o arquivo de logs de acesso e qual é o formato dos logs que este arquivo seguirá. Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto CustomLog /var/log/httpd/access_log common
EsteInstância arquivo é utilizado por analisadores de log como o webalizer para se Membros de obter estatísticas servidor. Os analizadores de das logsvariáveis Cada objeto criado deverá terdesuaacesso própria do instância de variáveis Os valores normalmente produzem relatórios HTML muito úteis para a administrar o (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem servidor. objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado.
2.3
classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. LogFormat
Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os Define odeformato de log. Para isso 2.3.1 Invocação Métodosdos logs, ou seja, o que vai ser registrado nos arquivos mesmos valores. existe uma série de variáveis podem seristo utilizadas facilitar a construção desses Objetos se comunicam pela troca que de mensagens, significa para que um formatos. A baixo tem-se uma tabela de variáveis mais úteis. objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), Variável Descrição devendo especificar a mensagem completa: o objeto que é o recebedor da %A IP local. mensagem, o método aEndereço ser invocado e os argumentos para o método (se houver). %a O método invocado noEndereço recebedor pode também enviar informações de volta ao IP remoto. objeto chamador detransmitidos. um valor de retorno. O método chamado deve ser %b através Bytes um que esteja definido pelo objeto. %f
Nome do Arquivo.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 162 148
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Curso não Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); Variável Descrição carro1.ano = "2001"; %h Host remoto. carro1.modelo= "fusca"; %H carro1.cor = "prata"; Protocolo Requisitado.
%l
Nome de usuário remoto, se foi fornecido.
%r
Primeira linha da solicitação.
%s
Status do retorno.
%t
Data e Hora.
%T
Tempo gasto no atendimento da requisição.
%u
Nome de usuário, obtido de uma autenticação.
Exemplos:
Figura 2.4 – Layout Memória após inicialização
LogFormat "%h %l %u %t \"%r\" %>s %b" common //criando LogFormatnovo "%h alias %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" Carro carro2 = carro1; combined LogFormat "%{Referer}i -> %U" referer LogFormat "%{User-agent}i" agent
ErrorLog Define o arquivo de log de erros. O diretório fornecido como argumento desta diretiva (httpd/error_log) é um caminho relativo ao da diretiva ServerRoot. Ou seja, a localização absoluta padrão deste arquivo seria /var/log/httpd/error_log. ErrorLog /var/log/httpd/error_log
User / Group 2.3
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
Define respectivamente o usuário dono e grupo dos processos filhos do servidor Web. O dono do processo pai sempre é o super-usuário (root).
Membros de Instância User apache
Cada objeto criado deverá ter sua própria instância de variáveis Group apache (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que Userdir é compartilhada por todas as instâncias da classe.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm mesmocada estado se suas Permite que cada usuário do servidor tenha sua própria página Web. oAssim, usuário variáveis têm os poderá publicar seus trabalhos, curriculum, documentários, etc. A diretiva que membro implementa 2.3.1 Invocação de Métodos mesmos valores. Objetos se comunicamépela troca de esta funcionalidade a UserDir . mensagens, isto significa que um
objeto pode ter que mostrar um comportamento particular invocando uma UserDir public_html operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar1.a Criar mensagem completa: onaobjeto quediretório é o recebedor da o sub-diretório raiz do home chamado public_html mensagem, o método a ser e os755 argumentos para o método (se houver). com asinvocado permissões ; O método invocado no recebedor pode também enviar informações de volta ao 2. Modificar as permissões do home do usuário para 711, para que o objeto chamador através de um valor de retorno. O método chamado deve ser processo httpd tenha acesso de leitura no diretório para o usuário apache. um que esteja definido pelo objeto.
3. Postar os documentos html que se deseja dentro de public_html. Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 163 149
Linguagem de Programação Java Linux Network Administration
Curso não Especialista em Redes Este material pode ser distribuído. Somente poderá ser utilizado por alunos da 3Way Networks. [email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; Alias carro1.modelo= "fusca"; carro1.cor = "prata";
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 164 150
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Curso não Especialista em Redes Somente poderá ser utilizado por alunos da 3Way Networks. [email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new apelidos Carro(); para diretórios não usuais. Esses apelidos são Permite definir carro1.ano = "2001"; digitados após a própria URL do site e levam a qualquer diretório do filesystem carro1.modelo= "fusca"; carro1.cor = "prata"; definido na configuração. Normalmente vem antes de uma diretiva Directory (que
determina a configuração dos diretórios).
$OLDVHDGGDGRVZD\HQVLQRBDBGLVWDQFLD
Directory A diretiva Directory serve para agrupar um conjunto diretivas associadas a um diretório especificado. Ela possui um um formato diferente das demais. Options Indexes FollowSymLinks Includes Figura 2.4 – Layout Memória após inicialização AllowOverride None //criando novo alias Order allow,deny Carro carro2 = carro1; Allow from all Options Indexes FollowSymLinks Includes AllowOverride All Order allow,deny Allow from all Options -FollowSymLinks Includes AllowOverride None Order deny,allow Deny from all Allow from Figura 2.5192.168.1.110 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância Basicamente as diretivas associadas ao diretório são relativas à segurança:
Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem objeto. IstoOptions é importante, denota que umopções método pertence a cadaà objeto da - pois define várias relativas permissão: listar o seudiretórios estado. classe. Porém não devemos confundir isto com a implementação do método, que executar tagstêm (Indexes), acessar links simbólicos (FollowSymLinks) e permitir Dois objetos distintos é compartilhada por todas as instâncias da classe.
padrões do servidor (Includes).
o mesmo estado se suas variáveis membro têm os mesmos valores.
2.3.1 Invocação de Métodos Objetos se comunicam pela troca ou de mensagens, significa(por que um AllowOverride - permite impede asisto opções padrão, nenhuma opção, objeto pode ter que mostrar um comportamento particular invocando uma veja opção None) do arquivo de configuração de acesso à diretórios operação apropriada que foi definida no objeto. Em Java, isto é feito pela .htaccess . Geralmente .htaccess é utilizado para definir senhas de acesso à chamada de um método em um objeto ousando o operador binário "." (ponto), diretórios. devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao Order - Define a ordem em que serão avaliadas as permissões de acesso a objeto chamador através de um valor de retorno. O método chamado deve ser estedefinido servidor por redes ou hosts específicos. No nosso caso, será permitir um que esteja pelo objeto.
acesso (por padrão allow) para depois proibir (por padrão deny). Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 165 151
Linguagem de Programação Java Linux Network Administration
Cursonão Especialista em Redes Este material pode ser distribuído. Somente poderá ser utilizado por alunos da 3Way Networks. [email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; Allow - Define quais servidores (por carro1.modelo= "fusca"; carro1.cor = "prata"; acesso permitido
padrão todos, veja opção a este
all)
terão servidor.
ScriptAlias Definir diretórios dedicados para se executar aplicativos CGI. Para que esta diretiva funcione é necessário habilitar a execução de aplicativos CGI neste diretório, através da diretiva Directory. ScriptAlias /cgi-bin/ "/dados/3way/ensino_a_distancia/cgi-bin/" AllowOverride NoneFigura 2.4 – Layout Memória após inicialização Options ExecCGI //criando novo alias Order allow,deny Carro carro2 = carro1; Allow from all
Basta agora criar um script cgi no diretório específico para isso e depois executá-lo através de uma URL semelhante a esta http://localhost/cgibin/script.sh. VirtualHost Faz com que um mesmo servidor Web responda por mais de um domínio, não precisando de uma máquina para cada um. Este é o recurso utilizado pelos provedores de armazenamento de páginas. Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
ServerAdmin 2.3 Membros de Instância [email protected] DocumentRoot /var/www/html Cada objeto# criado deverá www.3waylocal.net.br ter sua própria instância de variáveis ServerName (atributos) definidas pela classe. Os métodos definem o comportamento de um ErrorLog /var/log/httpd/error_log objeto. Isto é importante, pois denota que um método pertence a cada objeto da TransferLog /var/log/httpd/access_log classe. Porém não devemos confundir isto com a implementação do método, que
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm é compartilhada por todas as instâncias da classe. o mesmo estado se suas variáveis membroque têm os Esta definições primário 2.3.1 Invocação de Métodos são necessárias para o próprio servidor Web mesmos valores. Objetos comunicam pela troca de. mensagens, isto significa quedefinirão um As próximas entradas novos domínios responde porsewww.3waylocal.net.br objeto pode ter que mostrar um comportamento particular invocando uma virtuais. operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar ServerAdmin a mensagem completa: o objeto que é o recebedor da [email protected] mensagem, o métodoDocumentRoot a ser invocado e os argumentos para o método (se houver). /var/www/html/info O método invocado no recebedor pode também enviar informações de volta ao ServerName www.info.3waylocal.net.br ErrorLog /var/log/httpd/info_error_log objeto chamador através de um valor de retorno. O método chamado deve ser TransferLog um que esteja definido pelo objeto. /var/log/httpd/info_access_log
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 166 152
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Curso não Especialista em Redes Somente poderá ser utilizado por alunos da 3Way Networks. [email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; Foi criado no"fusca"; exemplo acima o sub-domínio info.3waylocal.net.br, carro1.modelo= carro1.cor = "prata"; opção ServerName ilustra. Como a máquina www.info.3waylocal.net.br
cuja não existe, será preciso criar uma entrada CNAME no DNS. Caso o DNS seja o BIND, a entrada será semelhante a que está abaixo. @
IN
SOA maq1.3waylocal.net.br. root.maq1.3waylocal.net.br. ( 2012021201; serial 3600 ; refresh 900 ; retry 1209600 ; expire 43200 ; default_ttl ) @ IN MX 5 maq1.3waylocal.net.br. Figura 2.4 – Layout Memória após inicialização @ IN NS maq1.3waylocal.net.br. maq1 IN alias A 192.168.1.101 //criando novo ... carro2 = carro1; Carro www IN CNAME maq1 www.info IN CNAME maq1
A nova linha adicionada está em negrito. Assim a máquina maq1 responderá por www.3waylocal.net.br e www.info.3waylocal.net.br, o trabalho de carregar o cliente para página (diretório) correspondente será do Servidor Web.
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 167 153
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Curso não Especialista em Redes Somente poderá ser utilizado por alunos da 3Way Networks. [email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
8.7. LABORATÓRIO
Este laboratório será destinado a criação de dois domínios: 3wayteste.com e 3waylocal.com. Vamos supor nesse laboratório que o IP do servidor é 192.168.1.101. Domínio 3wayteste.com /etc/httpd/conf/httpd.conf
...
ServerAdmin [email protected] ServerName www.3wayteste.net Figura 2.4 – Layout Memória após inicialização DocumentRoot /var/www/html/3wayteste_com DirectoryIndex index.htm //criando novo alias CustomLog /var/www/html/3wayteste_com/access_log common Carro carro2 = carro1; ErrorLog /var/www/html/3wayteste_com/error_log
Domínio 3waylocal.com ...
ServerAdmin [email protected] ServerName www.3waylocal.com DocumentRoot /var/www/html/3waylocal_com DirectoryIndex index.html CustomLog /var/www/html/3waylocal_com/access_log common ErrorLog /var/www/html/3waylocal_com/error_log Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
O DNS também deverá ser feita para que ambos os donínios apontem para a mesma máquina.
2.3
Membros de Instância /etc/named.conf
Cada ... objeto criado deverá ter sua própria instância de variáveis (atributos) zone definidas pela classe. Os métodos definem o comportamento de um “3wayteste.com” { type master; objeto. Isto é importante, pois denota que um método pertence a cada objeto da “3wayteste.com.direto”; classe. Porém nãofile devemos confundir isto com a implementação do método, que } é compartilhada por todas as instâncias da classe. ...
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
2.3.1 Invocação de Métodos /var/named/chroot/var/named/3wayteste.com.direto Objetos se comunicam pela troca de mensagens, isto significa que um @ IN SOA 3wayteste.com. webmaster.maq1.3wayteste.com. ( objeto pode ter que mostrar um comportamento 2012021202; serial particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela 3600 ; refresh chamada de um método em900 um ;objeto usando o operador binário "." (ponto), retry 1209600 ; expire devendo especificar a mensagem completa: o objeto que é o recebedor da 43200 ; default_ttl mensagem, o método a ser invocado e os argumentos para o método (se houver). ) O método invocado no recebedor pode também enviar informações de volta ao @ IN MX 5 maq1.3wayteste.com. objeto chamador através de um valor demaq1.3wayteste.com. retorno. O método chamado deve ser @ IN NS um que esteja definido IN pelo objeto. maq1 A 192.168.1.101 www
IN
CNAME
maq1
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 168 154
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; /var/named/chroot/var/named/3waylocal.com.direto carro1.cor = "prata"; @ IN SOA 3waylocal.com. admin.maq1.3waylocal.com. ( 2012021202; serial 3600 ; refresh 900 ; retry 1209600 ; expire 43200 ; default_ttl ) @ IN MX 5 maq1.3waylocal.com. @ IN NS maq1.3waylocal.com. maq1 IN A 192.168.1.101 www IN CNAME maq1 Figura 2.4 – Layout Memória após inicialização
/etc/init.d/named //criando novo aliasrestart Carro carro2 = carro1; /etc/init.d/httpd restart
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 169 155
Linguagem de Programação Java Linux Network Administration
Cursonão Especialista em Redes Este material pode ser distribuído. Somente poderá ser utilizado por alunos da 3Way Networks. [email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
8.8. EXERCÍCIOS
1. Existe diferença entre DocumentRoot e ServerRoot? Explique. 2. Suponha o seguinte caso: DocumentRoot /usr/local/apache/htdocs ServerName www.exercicio3.com.br
O que devo fazer para acessar documentos que estão em /docs quando digitar a URL: Figura 2.4 – Layout Memória após inicialização
3.
www.exercicio3.com.br/docs //criando novo alias Carro carro2 = carro1;
Considere
as
opções acima e certifique-se de que o diretório /usr/local/apache/htdocs esteja com opção de indexação (Option Indexes). Remova os arquivos de exibição automática (index.html). Observe a ultima linha (identificação do servidor) com a opção UseCanonicalName On e UseCanonicalName Off quando digitado a URL localhost e 127.0.0.1. 4. O que são Domínios Virtuais? 5. Crie um diretório /sa/atendimento/cgi-bin e execute um script cgi de script-teste, através do endereço http://localhost/atendimento/cgi-bin/script-teste.sh. Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 171 156
LinguagemAdministration de Programação Java Linux Network
Cursonão Especialista em Redes Este material pode ser distribuído. Somente poderá ser utilizado por alunos da 3Way Networks. [email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
9. SERVIDOR DE EMAIL 9.1. SERVIDOR DE MENSAGENS Um servidor de mensagens eletrônicas é responsável pela recepção e envio de mensagens. Dentro deste processo há vários mecanismos utilizados pelo servidor antes da mensagem chegar até o remetente. Atualmente o maior responsável pelo tráfego na Internet é, sem dúvida, o e-mail. O SMTP (Simple Mail Transport Protocol) é o protocolo de transporte de Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto mensagens utilizado em redes TCP/IP. Um servidor de mensagens oferece outros serviços além de transporte, este deve prover serviços como fornecer apelidos para 2.3 Membros de roteamento Instância de mensagens. usuários e fazer Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis Como principais Servidores de Mensagens paradeLinux o Sendmail, o (atributos) definidas pela classe. Os métodos definem o comportamento um temos em um objeto constituem Qmail o Postfix. dois servidores SMTP que surgiram como objeto. Isto ée importante, pois Os denota que últimos um métodosão pertence a cada objeto da o seu estado. classe. Porém não devemos confundir isto com a implementação do método, que possíveis substitutos ao Sendmail, pelo fato do sendmail apresentar algumas Dois objetos distintos têm é compartilhada por todas as instâncias da classe. deficiências: dificuldade de administrar e maior risco de segurança, pois seseus o mesmo estado suas processos utilizam o super-usuário como dono. variáveis membro têm os 2.3.1 Invocação de Métodos mesmos valores. Objetos se comunicam pela troca de mensagens, isto significa que um objeto ter que mostrar um comportamento particular invocando uma 9.2.pode AGENTES DE MENSAGENS operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada deNo um método em um o operador binário "." (ponto), processo de objeto troca usando de mensagens existem basicamente três agentes de devendo especificar a mensagem completa: o objeto que é o recebedor da mensagens: MTA (Mail Transport Agent), MUA (Mail User Agent) e MDA (Mail mensagem, o método a ser invocado e os argumentos para o método (se houver). Delivery Agent). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
MTA
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 172 157
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = énew Carro();um e-mail de um MTA até outro MTA. Como Sua finalidade transportar carro1.ano = "2001"; MTA temos: sendmail, postfix, qmail, Lotus Notes, MS Exchange Server, etc. carro1.modelo= "fusca"; carro1.cor = "prata";
exemplo de
MUA O Agente de e-mail do usuário é um programa utilizado pelo usuário e tem as finalidades básicas de compor, ler e enviar e-mail. Exemplo de MUA: MS Outlook, Lotus Notes Messenger, Netscape Messenger, elm, mailx (ou mail), mutt, pine, Eudora, Pegasus, etc.
MDA Este agente tem como finalidade entregar localmente no servidor a mensagem para seu dono, ou seja, quando o e-mail chega no MTA(Servidor Figurairá 2.4 – Layout Memória após inicialização de e-mail), este agente armazenar o e-mail na caixa postal do //criando novo alias destinatário. O MDA ainda pode fazer mais: filtrar e-mails indesejáveis, responder eCarro carro2 = carro1;
mails automaticamente (por exemplo, estou de férias...), encaminhar um e-mail automaticamente para outro, etc. Como exemplos de MDA, temos: procmail, maildrop, mailagent e sensible-mda.
Alguns servidores de e-mail, tal como o Lotus Notes e MS Exchange Server, desconsideram a separação de MTA e MDA. Estes servidores trabalham como um todo, não separando a funcionalidade de MTA e MDA.
Um maneira: 2.3
processo Figura típico de Memória envioduasde e-mail serobjeto resumido da seguinte 2.5 – Layout variáveis referênciapode para o mesmo
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 173 158
Linux Network Administration Linguagem de Programação Java
Cursonão Especialista em Redes Este material pode ser distribuído. Somente poderá ser utilizado por alunos da 3Way Networks. [email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1; Exemplo de comunicação
9.3. INSTALANDO O SERVIDOR DE EMAIL 9.3.1. INSTALAÇÃO CÓDIGO FONTE Postfix O código fonte do postfix pode ser encontrado em www.postfix.org. Para compilá-lo, basta seguir os passos abaixo: Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
Criação de grupos e usuários 2.3
groupadd Membros depostdrop Instância
adduser /bin/false postfix Cada objeto-scriado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. IstoPrepação é importante, denota que um método pertence a cada objeto da dapois compatibilidade classe. Porém não devemos confundir isto com a implementação do método, que mv /usr/sbin/sendmail /usr/sbin/sendmail.old é compartilhada por todas as instâncias da classe. mv /usr/sbin/newaliases /usr/sbin/newaliases.old mv /usr/sbin/mailq /usr/sbin/mailq.old
chmod de 755 /usr/sbin/sendmail.old 2.3.1 Invocação Métodos chmod 755 /usr/sbin/newaliases.old Objetos se comunicam pela troca de mensagens, isto significa que um chmod 755 /usr/sbin/mailq.old objeto pode ter que mostrar um comportamento particular invocando uma xzpvf postfix-versao.tar.gz operação tar apropriada que foi definida no objeto. Em Java, isto é feito pela cd postfix-versao chamada de um método em um objeto usando o operador binário "." (ponto), make devendo especificar a mensagem completa: o objeto que é o recebedor da make install mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao Seguiratravés as opções instalação. objeto chamador de umpadrão valor de da retorno. O método chamado deve ser um que esteja definido pelo objeto.
Dovecot
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 174 159
Linguagem de Programação Java Linux Network Administration
Cursonão Especialista em Redes Este material pode ser distribuído. Somente poderá ser utilizado por alunos da 3Way Networks. [email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1fonte = newdo Carro(); O código Dovecot pode ser encontrado em carro1.ano = "2001"; compilá-lo, basta seguir os passos abaixo: carro1.modelo= "fusca"; carro1.cor = "prata"; tar zxvf dovecot-versao.tar.gz -C /usr/local/src/ cd /usr/local/src/dovecot-versao ./configure make make install
www.dovecot.org. Para
CPPFLAGS="-I/opt/openssl/include" LDFLAGS="-L/opt/openssl/lib -ldl" ./configure
useradd -s /sbin/nologin dovenull useradd -s /sbin/nologin pop3-login useradd -s /sbin/nologin dovecot Figura 2.4 – Layout Memória após inicialização
9.3.2.//criando INSTALAÇÃO novoAUTOMATIZADA alias Carro carro2 = carro1;
É preciso desabilitar o sendmail antes de efeturar a instalação Postfix.
yum install postfix dovecot
apt-get install postfix dovecot-imap Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
9.4. CONFIGURAÇÃO 2.3
Membros de Instância
Postfix Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis (atributos)O definidas peladeclasse. Os métodosdo definem o comportamento de um . Ele vem com arquivo configuração Postfix é o /etc/postfix/main.cf em um objeto constituem objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu presentes estado. suas configurações padrão. Abaixo está um exemplo das principais diretivas classe. Porém não devemos confundir isto com a implementação do método, que Dois objetos distintos têm neste arquivo. é compartilhada por todas as instâncias da classe. o mesmo estado se suas variáveis membro têm os mesmos valores.
2.3.1 Invocação de Métodos /etc/postfix/main.cf Objetos se comunicam pela troca de mensagens, isto significa que um queue_directory = /var/spool/postfix objeto pode ter que mostrar um= comportamento particular invocando uma command_directory /usr/sbin operação daemon_directory apropriada que foi definida no objeto. Em Java, isto é feito pela = /usr/libexec/postfix chamada de um método em um objeto usando o operador binário "." (ponto), mail_owner = postfix myhostname = servidor.3waylocal.net.br devendo especificar a mensagem completa: o objeto que é o recebedor da 3waylocal.net.br mensagem,mydomain o método a=ser invocado e os argumentos para o método (se houver). myorigin = $mydomain O método invocado no recebedor pode também enviar informações de volta ao inet_interfaces = all objeto chamador através de um valor de retorno. O método chamado deve ser mydestination = $myhostname, localhost.$mydomain, $mydomain um que esteja definido pelo objeto. unknown_local_recipient_reject_code = 500 mynetworks_style = host
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 175 160
Linguagem de Programação Java Linux Network Administration
Cursonão Especialista em Redes Este material pode ser distribuído. Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência mynetworks = 127.0.0.0/8, 10.0.0.0/24 Carro carro1 = new Carro(); #mynetworks = $config_directory/mynetworks carro1.ano = "2001"; alias_maps = hash:/etc/aliases carro1.modelo= "fusca"; home_mailbox = Mailbox carro1.cor = "prata"; mail_spool_directory = /var/spool/mail smtpd_banner = $myhostname $mail_name ($mail_version) sendmail_path = /usr/sbin/sendmail.postfix newaliases_path = /usr/bin/newaliases.postfix mailq_path = /usr/bin/mailq.postfix setgid_group = postdrop manpage_directory = /usr/share/man sample_directory = /usr/share/doc/postfix-versao/samples
Dovecot Dovecot é um servidor POP3 e IMAP de código livre para sistemas Figura 2.4 – Layout Memória após inicialização Linux/Unix, criado sob a premissa da segurança. O arquivo de configuração do //criando novo alias Dovecot é o /etc/dovecot.conf no CentOS/RHEL e o /etc/dovecot/dovecot.conf no Carro carro2 = carro1; Debian/Ubuntu. /etc/dovecot.conf
protocols = imap imaps pop3 pop3s mail_location = maildir:~/Maildir pop3_uidl_format = %08Xu%08Xv # Opcional para kernels 32bit, obrigatória para 64 bits login_process_size = 64
Inicialização dos Serviços /etc/init.d/postfix start
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
/etc/init.d/dovecot start
2.3
Membros de Instância /etc/init.d/postfix
start
Cada objeto criado deverá ter sua própria instância de variáveis /etc/init.d/dovecot-imap start (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas Testes SMTP e POP3 variáveis membro têm os 2.3.1 Invocação de Métodos Para testar a configuração do SMTP e do POP3 será preciso realizar um telnet mesmos valores. Objetos se comunicam pela troca de mensagens, isto significa que um
nas portas 25 e 110 respectivamente, seguido dos comandos de conversação dos
objeto pode ter que mostrar um comportamento particular invocando uma protocolos em questão. os Em testes operação apropriada que foi Abaixo definida tem-se no objeto. Java,para isto ambos é feito os pelaprotocolos. chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar mensagem completa: o objeto que é o recebedor da Teste de aEnvio mensagem, o método a ser invocado e os argumentos para o método (se houver). O método $invocado recebedor pode telnetnolocalhost 25 também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser 220 localhost ESMTP Postfix (versao) um que esteja definido pelo objeto. ehlo localhost 250-localhost
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 176 161
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Curso não Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência 250-PIPELINING Carro carro1 = new Carro(); 250-SIZE 10240000 carro1.ano = "2001"; 250-VRFY carro1.modelo= "fusca"; 250-ETRN carro1.cor = "prata"; 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN mail from: usuario1_do_servidor 250 2.1.0 Ok rcpt to: usuario2_do_servidor 250 2.1.5 Ok data 354 End data with . Subject: Assunto de Email Corpo do Email . 250 2.0.0 Ok: queued as D6D306CA52 Figura 2.4 – Layout Memória após inicialização quit //criando novo alias 221 2.0.0 Bye Carro carro2 = carro1;
Teste de Recebimento
2.3
$ telnet localhost 110 +OK Dovecot Ready USER beltrano +OK PASS senhabeltrano123 +OK Logged in. LIST +OK 2 messages: 1 466 2 578 . Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto RETR 1 ... Corpo da mensagem … QUIT +OK Logging out. Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis (atributos)Para definidas pela classe. Os métodos o comportamento de umde E-mail realizar o teste podemdefinem ser utilizados Agentes de Usuário em um objeto constituem objeto. Isto é importante, pois denota que um método pertence a cada objeto da (MUA), que são bem mais amigáveis. São exemplos de MUA: Mozilla oThunderbird, seu estado. classe. Porém não devemos confundir isto com a implementação do método, que Dois objetos distintos têm Outlook, Zimbra Collaboration (OSE), Evolution, Kmail, etc. é compartilhada por todas as instâncias da classe.
o mesmo estado se suas variáveis membro têm os mesmos valores.
2.3.1 Invocação de Métodos 9.5. ALIASES Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter definir que mostrar um comportamento particular invocando podemos uma Para aliases (apelidos) para mensagens usar operação apropriada que foi definida no objeto. Em Java, isto é feito pela aliases. No Linux, normalmente esse arquivo é /etc/aliases. chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem Alguns exemplos decompleta: alias: o objeto que é o recebedor da mensagem,/etc/aliases o método a ser invocado e os argumentos para o método (se houver). O método #invocado no recebedor pode também enviar informações de voltapresentes. ao Aliases de systemas padrão, estes DEVEM estar objeto chamador através de um valor de retorno. O método chamado deve ser MAILER-DAEMON: postmaster postmaster: root um que esteja definido pelo objeto.
o arquivo
# Redirecionamentos gerais para contas falsas
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 177 162
Linguagem de Programação Java Linux Network Administration
Cursonão Especialista em Redes Este material pode ser distribuído. Somente poderá ser utilizado por alunos da 3Way Networks. [email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência bin:carro1 = new root Carro Carro(); daemon: root carro1.ano = "2001"; nobody: root carro1.modelo= "fusca"; # Apelidos =bem conhecidos: carro1.cor "prata"; manager: root dumper: root operator: root # Pessoas quem devem ler os e-mails do root root: usuario #System admisnistrator mailing list treinamento: usuario,virgilio,guilherme,fulano,ciclano coordenacao: usuario,gomes
É importante ressaltar que o postfix não lê diretamente este arquivo, ele faz a leitura de um banco de dados gerado através do comando newaliases, então toda vez – Layout Memória após inicialização que for feita alguma alteração Figura em 2.4 /etc/aliases, será necessário executar o comando //criando novo alias newaliases para que as alterações sejam efetuadas. Carro carro2 = carro1; newaliases
É preciso reinicializar o postfix após a alteração. /etc/init.d/postfix restart
9.6. REDIRECIONAMENTO
O redirecionamento de mensagens é muito útil no caso de se ter várias contas Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto de e-mail e querer ler e-mails somente em uma delas. Para redirecionar um e-mail basta criar um arquivo .forward dentro do diretório home de cada usuário e adicionar 2.3 Membros Instância o e-mail (ou osde emails) de destino das mensagens.
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um cd /home/usuario objeto. Istoecho é importante, pois denota que um método pertence a cada objeto da "[email protected]" > .forward classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe.
O arquivo deverá ficar semelhante ao abaixo: 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação ~/.forward apropriada que foi definida no objeto. Em Java, isto é feito pela [email protected] chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 178 163
Siga-nos também no Twitter! twitter.com/3waynet
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
9.7. LABORATÓRIO
Este laboratório implementará de maneira simples servidor de E-mail (postfix), servidor POP (dovecot), criação de mail boxes e aliases. Configuração do Servidor de E-mails /etc/postfix/main.cf myhostname = maq1.3waylocal.com mydomain = 3waylocal.com myorigin = $mydomain inet_interfaces = all Figura 2.4 – Layout Memória após inicialização mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain mynetworks 192.168.1.0/24, 127.0.0.0/8 //criando novo= alias relay_domains = Carro carro2 = carro1; home_mailbox = Maildir/
Configuração do Servidor POP /etc/dovecot.conf protocols = imap imaps pop3 pop3s mail_location = maildir:~/Maildir pop3_uidl_format = %08Xu%08Xv #login_process_size = 64
Criação de Usuários Mailbox - Deverá ser criada no diretório home de cada usuário. Aqui criaremos para o usuário Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto usuario. 2.3
mkdir /home/usuario/Maildir chown john:john /home/usuario/Maildir Cada objeto criado deverá ter sua própria instância de variáveis chmod -R 700 /home/usuario/Maildir
Membros de Instância
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas - O usuário usuario possui seu endereço de e-mail no formato [email protected] , variáveis membro têm os 2.3.1 Invocação de Métodos porém ele deseja receber e-mails com os endereços alternativos mesmos valores. Objetos se comunicam pela troca de mensagens, isto significa que um
(atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porémde não devemos confundir isto com a implementação do método, que Criação Alias é compartilhada por todas as instâncias da classe.
[email protected]
e
[email protected].
Então serão criados os seguintes
objeto pode ter que mostrar um comportamento particular invocando uma aliases para ele: operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), /etc/aliases devendo especificar a mensagem completa: o objeto que é o recebedor da should eget root's mail mensagem,#o Person método awho ser invocado os argumentos para o método (se houver). root: usuario O método invocado no recebedor pode também enviar informações de volta ao # User aliases objeto chamador através de umusuario valor de retorno. O método chamado deve ser j.souza: um que esteja definido pelo objeto. jef.sou: usuario Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 180 164
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência newaliases Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; Reinicialização carro1.cor do=Servidor "prata"; /etc/init.d/postfix restart; /etc/init.d/dovecot restart
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 181 165
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
9.10. EXERCÍCIOS
1. Mostre o passo-a-passo para enviar através do comando telnet um email via protocolo SMTP para um usuário de sua máquina local chamado “fulano”. Também com o comando telnet, verifique o conteúdo da caixa postal de “fulano”. 2. Como eu poderia configurar o sendmail para que todo email por ele enviado para o usuário root, além de ser armazenado na caixa postal local do root, seja também enviado para o usuário local fulano e para o beltrano, de email [email protected]? 2.4 – Layout Memória após inicialização 3. Suponha que o seu servidorFigura esteja atualmente enviando e-mail com identificação //criando novo alias de remetentes do tipo [email protected], o que deveria ser feito Carro carro2 = carro1; para que isto fosse trocado por simplesmente [email protected]?
4. Defina com suas próprias palavras, os termos MUA, MDA e MTA? O MDA é sempre encontrado nos servidores de email (cite exemplos)? Qual é a diretiva do sendmail que define qual MDA é utilizado? 5. Como eu poderia liberar uma rede de computadores para fazer redirecionamento pelo meu servidor SMTP? Que incoveniência teria em liberar todas redes (sem restrição de relay)? 6. Qual é a funcionalidade e diferenças entre os protocolos SMTP, POP e IMAP? Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto Mostre brevemente como seria a instalação de cada um destes protocolos. 7. O Membros que é o comando mail? Para que serve? Como posso utilizá-lo para enviar , 2.3 de Instância
receberCada e-mail? para testar maisdedetalhadamente o envio um objetoComo criado seria deveráutilizado ter sua própria instância variáveis Os valores dasde variáveis (atributos) e-mail? definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe.
2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 182 166
LinguagemAdministration de Programação Java Linux Network
Este material pode ser em distribuído. Curso não Especialista Redes Somente poderá ser utilizado por alunos da 3Way Networks. [email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
10. SERVIDOR PROXY
Figura 2.4 – Layout Memória após inicialização
//criando alias O proxynovo surgiu da necessidade Carro carro2 = carro1;
de conectar uma rede local à Internet através de um computador da rede que compartilha sua conexão com as demais máquinas da rede. Em outras palavras, ao considerar que a rede local é uma rede interna e a Internet é uma rede externa, podemos dizer que o proxy é que permite outras máquinas terem acesso externo. Geralmente, máquinas da rede interna não possuem endereços válidos na Internet e, portanto, não tem uma conexão direta com ela. Assim, toda solicitação de conexão de uma máquina da rede local para um host externo é direcionada ao proxy, este, por sua vez, realiza o contato com o host desejado, repassando a resposta à solicitação para a máquina da rede local. Por este motivo, é que é utilizado o termo proxy (intermediário) para este tipo de serviço. Um exemplo Figura muito comum deduascompartilhamento deobjeto Internet é baseado em: 2.5 – Layout Memória variáveis referência para o mesmo um servidor proxy com duas interface de rede, geralmente um modem e uma interface Ethernet, sendo que a interface do modem é a interface de saída para 2.3 Membros de Instância Internet, enquanto a interface de rede é a interface de acesso às máquinas da rede Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis local. definidas pela classe. Os métodos definem o comportamento de um (atributos) em um objeto constituem objeto. Isto éOimportante, pois denota que um métodoapresentado pertence a cada compartilhamento de Internet seobjeto referedaao serviçoo seu básico de um estado. classe. Porém não devemos confundir isto com a implementação do método, que proxy. Mas um bom proxy deve ainda prover várias outras funcionalidades Dois objetos distintos têm é compartilhada por todas as instâncias da classe. complementares tais como: o mesmo estado se suas variáveis membro têm os 2.3.1 Invocação de Métodos mesmos valores. Cache Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma Permite armazenar no próprio proxy as páginas visitadas com mais operação apropriada que foi definida no objeto. Em Java, isto é feito pela frequência, ou seja,emquando umusando usuário solicitabinário um site na Internet, o proxy armazena chamada de um método um objeto o operador "." (ponto), o seu especificar conteúdoa em cache, completa: juntamente comque a sua Casodao usuário, depois de um devendo mensagem o objeto é odata. recebedor mensagem, o método a ser invocado e os argumentos paraobtém o método (se houver). certo tempo, solicite-a novamente, o proxy a data da página remota e caso não O método invocado no recebedor pode também enviar informações de volta ao para o cliente a página seja mais atual que a página que está em cache, este fornece objeto chamador através de um valor de retorno. O método chamado deve ser cache, sempelo a objeto. necessidade de baixar novamente a página solicitada. Esta umem que esteja definido
funcionalidade aumenta bastante o desempenho do acesso à páginas, uma vez que o Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 183 167
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência carro1 em = new Carro(); acessoCarro às páginas cache são muito mais rápidas carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor Autenticação= "prata";
que as páginas remotas.
Permite autenticar clientes através de login, baseados em usuário e senha. Listas de controles de acesso
Também conhecidas como acls, permite que administrador restrinja o acesso a determinados sites baseados em critérios estipulados em listas de controles. Os critérios podem ser expressos em regras baseadas no login, palavras-chave na URL, palavras-chave no conteúdo do site, horário de acesso, etc. Proxy transparente //criando novo alias Carro carro2 = carro1;
Figura 2.4 – Layout Memória após inicialização
Com o proxy transparente não é preciso configurar o navegador, facilitando a administração da rede. Isto é realizado através de configurações no roteador padrão da rede local, de forma que toda solicitação de tráfego externo é direcionada para o proxy. Assim, o proxy funciona de forma transparente para o usuário, sem necessitar configurar explicitamente o seu uso. Proxy para SSL
SSL é acrônimo de Secure Socket Layer que que permite que um navegador e o servidor Web estabeleçam uma comunicação segura para realizar transações. O SSL é um camada que criptografa o protocolo HTTP, por isso quando utilizados em 2.5 – Layout Memória duas variáveis(HTTP referência paraSeguro). o mesmo objeto O proxy, além de conjunto, é chamado Figura também de HTTPS comunicar através de protocolo HTTP, também deve permitir comunicação segura de HTTP sobre SSL (HTTPS). 2.3 Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe.
2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 184 168
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Arquitetura com proxy
10.1. SQUID Existem vários softwares proxy de características diferentes, cada um mais Figura 2.5Dentre – Layout Memória duas variáveis referência para o mesmo objetopara Linux pode ser especializado que o outro. os vários proxies existentes citado o Squid. Por ser o mais popular, ele será o software abordado nesta sessão. 2.3
Membros de Instância Cada objetoSquid criado deverá ter cefalópode sua própria(como instância variáveis é um animal umade lula, polvo, etc)Os devalores dez braços, das variáveis (atributos) definidas encontrado pela classe. Os métodos definem o comportamento de um nas costas marítimas americanas. Ele é o símbolo doobjeto software em um constituem objeto. Isto é importante, denota pertence a cada objeto da proxypois Squid, cujoque siteumé ométodo www.squid.org. o seu estado. classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe.
10.2. INSTALAÇÃO
2.3.1 Invocação de Métodos se comunicam pela troca de mensagens, isto significa que um 10.2.1.Objetos INSTALAÇÃO CÓDIGO FONTE objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela Primeiramente obter o código fonte do Squid chamada de um método em é umnecessário objeto usando o operador binário "." (ponto), no endereço www.squid-cache.org. devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). zxf no squid-versao.tar.gz O método tar invocado recebedor pode também/usr/local/src enviar informações de volta ao cd /usr/local/src objeto chamador através de um valor de retorno. O método chamado deve ser cd squid-versao um que esteja definido pelo--prefix=/usr/local/squid-versao objeto. ./configure make all
Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
que está disponível
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 185 169
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Curso não Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência makecarro1 install Carro = new Carro(); ln -s /usr/local/squid-versao /usr/local/squid carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata"; 10.2.2. INSTALAÇÃO AUTOMATIZADA
yum install squid
apt-get install squid
10.3. CONFIGURAÇÃO
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
O servidor Squid fornece serviço proxy para os principais protocolos utilizados por navegadores, como: FTP, HTTP e HTTPS. Portanto nossas configurações estarão relacionadas a estes dois protocolos. Depois de instalado, o squid cria o diretório /etc/squid onde armazena seus arquivos, dentre eles encontramos seu principal arquivo de configuração: squid.conf. 10.3.1. SQUID.CONF Este arquivo é bastante auto-explicativo, contando com muitos comentários sobre as diretivas nele presentes, por esse motivo serão tratadas somente as opções mais importantes. Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
http_port 3128
2.3
Esta parâmetro define a porta que o serviço squid usará. Por padrão, esta opção estará Membros de Instância comentada, não é preciso descomentá-la, caso a intenção seja manter a porta padrão.
Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis (atributos) cache_mem definidas pela32M classe. Os métodos definem o comportamento de um em um objeto constituem objeto. IstoEste é importante, pois denota que um método pertence objetousará. da parâmetro define a quantidade de cache quea ocada servidor É recomendável deixar o seu estado. classe. Porém não devemos confundir isto com a implementação método, que da metade. A performance uma quantidade considerável da memória física, do algo em torno Dois objetos distintos têm é compartilhada por todas as instâncias da classe. do servidor proxy é proporcional a quantidade de memória física destinada a ele.
o mesmo estado se suas variáveis membro têm os 2.3.1 Invocação de Métodos cache_dir ufs /var/spool/squid 100 16 256 mesmos valores. Objetos se comunicam pela troca de mensagens, isto significa que um Este parâmetro define o diretório onde o squid alocará os arquivos para cache, neste caso objeto pode ter que mostrar um comportamento particular invocando uma /var/spool/squid . AEm opção uma forma de armazenamento do será o diretório operação apropriada que foi definida no objeto. Java,ufs istodefine é feito pela chamada de um método em um usando o operador binário "." (ponto), cache, podendo ser objeto utilizados outros formatos, somente por questões de otimização. devendo especificar a mensagem o objeto(consultar que é o o recebedor Existem outras opçõescompleta: de otimização arquivo da de configuração para saber mensagem,mais). o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar volta ao pode ter. O valor 16 define O valor 100 define o tamanho máximo (eminformações MB) que odediretório objeto chamador através de um valor de retorno. O método chamado deve ser e, por último, o valor 256 a quantidade de sub-diretórios do diretório /var/spool/squid um que esteja definido pelo objeto. define a quantidade de sub-diretórios dos 16 diretórios já mencionados. Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 186 170
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way Networks. [email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência cache_access_log /var/log/squid/access.log Carro carro1 = new Carro(); Define o arquivo de log carro1.ano = "2001"; de acessos ao servidor proxy. carro1.modelo= usuários (ou IPs)"fusca"; acessaram conteúdo no servidor. carro1.cor = "prata"; cache_mgr endereco_de_email
Através dele é possível saber quais
Tem a finalidade de especificar o email do administrador do Proxy. Caso o serviço squid venha a ser terminado de forma anormal, o usuário terá como entrar em contato e informar sua experiência mal-sucedida com o proxy. cache_effective_user usuario
Determina qual o usuário pelo qual o proxy executará as solicitações feitas a ele. Por motivos de segurança, não é recomendável utilizar o UID de root (0). Normalmente o usuário utilizado tem o nome squid. cache_effective_group Figura grupo 2.4 – Layout Memória após inicialização
Semelhante a diretiva //criando novo alias anterior, solicitações Carro carro2 do = proxy. carro1;
porém referente ao GID do grupo que executará as
visible_hostname hostname
Determina o hostname quer ficará visível. Se ao iniciar o squid a mensagem “FATAL: Could not determine fully qualified hostname. Please set 'visible_hostname”
aparecer. O daemon do squid não inicializará, para resolver esse problema, basta adicionar o hostname na diretiva visible_hostname. Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
10.3.2. CACHING 2.3
Membros de Instância
Essa modalidade de proxy apenas provê o caching de páginas, não
Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis oferencendo recursos como autenticação, limitação etc. Para (atributos) definidas pela classe. Os métodos definem orestrições, comportamento de um deembanda, um objeto constituem queestado. já está essa Isto implementação basta a linha objeto. é importante, pois denotaconfigurar que um método pertencehttp_access a cada objeto dadeny all,o seu classe. Porém não devemos confundir isto com a implementação do método, que presente no arquivo de configuração, como o valor allow. Dois objetos distintos têm é compartilhada por todas as instâncias da classe.
o mesmoproxy estado para se suas O arquivo abaixo apresenta uma configuração básica do servidor variáveis membro têm os 2.3.1 de Métodos cacheInvocação de páginas web, cuja principal vantagem é o aumento da velocidade de acesso.
Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação /etc/squid/squid.conf apropriada que foi definida no objeto. Em Java, isto é feito pela http_port 3128 chamada de um método em um objeto usando o operador binário "." (ponto), cache_mem 32M devendo especificar a mensagem completa: o objeto que é o recebedor da ufsinvocado /var/spool/squid 256 (se houver). mensagem,cache_dir o método a ser e os argumentos100 para16 o método cache_access_log /var/log/squid/access.log O método invocado no recebedor pode também enviar informações de volta ao cache_mgr endereco_de_email objeto chamador através de um valor usuario de retorno. O método chamado deve ser cache_effective_user um que esteja definido pelo objeto. cache_effective_group grupo
mesmos valores.
visible_hostname saida_comando_hostname
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 187 171
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência #http_access denyCarro(); all Carro carro1 = new http_access= allow all carro1.ano "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
Após essa configuração, basta reiniciar o serviço: /etc/init.d/squid restart
Deste momento em diante o cliente proxy, normalmente um navegador (browser) na máquina cliente, já pode ser configurado para utilizar o servidor proxy. Configuração do Cliente A configuração do cliente é muito simples, varia de acordo com o navegador Figura 2.4 – Layout Memória após inicialização escolhido. Neste caso será utilizado o navegador Mozilla Firefox (versão 10.0.1). //criando novo alias Carro carro2 = carro1;
1. Botão Firefox (canto superior esquerdo) – Opções (Options) – Opções (Options). Será aberta a janela Opções. 2. Aba Avançado (Advanced) – Rede (Network) – Configurações (Settings)
aberta. 2.3
Outra janela entitulada Propriedades da Conexão (Connection Settings) será Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
3. Na opção Configuração manual de proxy (Manual proxy configuration),
Membros colocar de o Instância endereço IP (ou hostname) do proxy e a porta que atende às
Cada objeto criado deverá ter sua própria instância de variáveis solicitações. (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os 2.3.1 Invocação dePara Métodos que todas os outros protocolos sejam tratados pelo servidor proxy, é mesmos valores. Objetos se comunicam pela troca de mensagens, isto significa que um recomendável marcar a opção Usar este servidor proxy para todos os objeto pode ter que mostrar um comportamento particular invocando uma protocolos. operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto. Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 188 172
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1; Configuração do cliente proxy no Firefox (parte 1)
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedorConfiguração pode também enviar informações de volta do cliente proxy no Firefox (parte 2) ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 189 173
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = DE newACarro(); 10.3.3. RESTRIÇÕES CESSO carro1.ano = "2001"; carro1.modelo= "fusca"; O Squid permite uma grande flexibilidade carro1.cor = "prata";
em sua configuração de acesso. Essa flexibilidade é dada através das acl (Lista de Controle de Acesso). Com as acl é possível restringir o uso de determinados recursos, como web sites, as máquinas que podem acessar conteúdo externo, horários de acesso, usuários autorizados (ou negados), etc. Abaixo segue alguns tipos de ACL que podem ser utilizados: src Endereço IP de origem. Utilizado para restringir quais clientes podem fazer uso do proxy. Figura 2.4 – Layout Memória após inicialização
dst //criando novo alias Carro carro2 carro1; Endereço IP= de destino.
acessados.
Utilizado para restringir os servidores que podem ser
dstdomain Domínio de destino. Utilizado para restringir o acesso a um determinados domínios. time Restinge por Hora do dia e Dia da semana. port Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto Número da porta de destino. Usado para restringir a porta de acesso do servidor. 2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis url_regex (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem para restringir A comparação de estado. URL é objeto. IstoUtilizado é importante, pois denota que umdeterminadas método pertenceURLs. a cada objeto da o seu classe. Porém não devemos confundir isto com a implementação do método, que baseada em expressão regular (regex). Dois objetos distintos têm é compartilhada por todas as instâncias da classe.
proto de Métodos 2.3.1 Invocação Objetos se comunicam pela troca mensagens, isto significa que um Restrição por protocolo dedetransferência. objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela proxy_auth chamada de um método em um objeto usando o operador binário "." (ponto), Usado requerercompleta: autenticação de usuário. devendo especificarpara a mensagem o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O10.3.4. métodoR invocado no recebedor pode também enviar informações de volta ao ESTRIÇÃO DAS REDES objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
o mesmo estado se suas variáveis membro têm os mesmos valores.
Na configuração de caching ficou faltando especificar quais são as redes Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 191 174
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro();proxy. Da forma como ficou configurada, qualquer autorizadas a utilizar o servidor carro1.ano = "2001"; rede pode acessá-lo, para que restringir o proxy a somente a rede local, basta efeturar carro1.modelo= "fusca"; carro1.cor = "prata"; as configurações listadas a seguir.
Substituir a linha:
http_access allow all
Por:
acl all src 10.0.0.0/255.255.255.0 http_access allow all
Pelo trecho que foi acrescentado/modificado, all é o nome da acl que com a opção src define a rede 10.0.0.0/255.255.255.0 A diretiva http_access allow all Figura 2.4 – Layout Memória após. inicialização permite o uso donovo proxy pela rede definida na acl all. //criando alias Carro carro2 = carro1; Resumindo, toda solicitação que for originada na rede 10.0.0.0/255.255.255.0 será autorizada, enquanto que as solicitações originadas por outras redes serão automaticamente negadas. 10.3.5. RESTRIÇÃO POR SITES Esta funcionalidade tem como objetivo evitar que os usuários acessem determinados URLs que ferem a política de segurança da empresa. Essas alterações também são baseadas na configuração anterior. A parte em negrito será acrescentada no arquivo de configuração. Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto /etc/squid/squid.conf
... acl listanegra url_regex "/etc/squid/listanegra.txt" 2.3 Membros de Instância http_access deny listanegra Cada objeto criado deverá ter sua própria instância de variáveis acl all src 10.0.0.0/255.255.255.0 (atributos) definidas pela classe. Os métodos definem o comportamento de um http_access allow all objeto. Isto é importante, pois denota que um método pertence a cada objeto da ...não devemos confundir isto com a implementação do método, que classe. Porém
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm écompartilhada por todas as instâncias da classe. o mesmo estado se suas A ordem das ACL de configuração são avaliadas de cima para baixo, variáveis membro têm os 2.3.1 Invocação deportanto Métodos deve-se atentar pela ordem em que elas são escritas. mesmos valores. Objetos se comunicam pela troca denegar mensagens, istoasignifica que um para depois É sempre interessante o acesso certos recursos liberar objeto pode ter que mostrar um comportamento particular invocando uma os que necessitam de liberação. operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), Neste caso a acl url_regex arquivo /etc/squid/listanegra.txt , que devendo especificar a mensagem completa: define o objetoo que é o recebedor da mensagem, o método invocado e os argumentos para o método (se houver).A linha seguinte define possui uma lista adeserURLs baseadas em expressões regulares. Oque método invocado no recebedor pode também enviar informações volta ao as URLs ou palavras chave desse arquivo que deforem encontrados nas URLs objeto chamador através de um valor de retorno. O método chamado deve ser digitadas nos navegadores clientes serão negadas. um que esteja definido pelo objeto. Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 192 175
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 =POR new TERMOS Carro();EM URLS 10.3.6. RESTRIÇÃO carro1.ano = "2001"; carro1.modelo= "fusca"; Esta configuração permite negar todos carro1.cor = "prata";
os sites que tenham na URL uma palavra que case com a palavra definida por uma acl. Novamente, as linhas em negrito devem ser acrescentadas ao arquivo de configuração. /etc/squid/squid.conf ... acl palavra url_regex -i sex http_access deny palavra acl listanegra url_regex "/etc/squid/listanegra.txt" Figura 2.4 – Layout Memória após inicialização http_access deny listanegra //criando novo alias acl all src 10.0.0.0/255.255.255.0 Carro carro2 = carro1; http_access allow all ...
Neste exemplo encontramos a opção -i para o tipo url_regex, esta opção não faz a diferenciação de maiúscula e minúscula verificando a ocorrência de uma palavra similar a sex na URL. Assim, qualquer site que em sua URL contenha a palavra sex será negado. São exemplos de URLs que serão negados: www.sexteste.com.br, www.sexm.com.br, www.sexoesaude.com.br, etc. 10.3.7. AUTENTICAÇÃO Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto Esta funcionalidade permite que se crie contas de usuários para acesso a Internet. Assim cada usuário além de ter uma conta de acesso à Internet. A solicitação de usuário e senha será feito quando o usuário abrir o navegador e digitar o endereço 2.3 Membros de Instância Cadaseobjeto criado deverá ter suao própria instância de autenticação. variáveis desejado, esta página for externa, proxy requisitará Os valores das variáveis
(atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe.
2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 193 176
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way Networks. [email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Processo de autenticação do Proxy Squid Carro carro2 = carro1;
Ao instalar o Squid, o mesmo já traz um programa autenticador, este programa tem a função de autenticar o usuários de acesso a Internet através do Squid. O próximo passo será adicionar uma linha no arquivo de configuração do proxy que habilite o uso desse programa autenticador. Para isso deve-se procurar por alguma entrada auth_param como a que se segue: /etc/squid/squid.conf ...
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/credenciais ...
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
A configuração Membros de Instância acima é encontrada a partir da versão 2.6 do squid. Versões usam authenticate_program /usr/bin/ncsa_auth /etc/squid/credenciais . variáveis Cada objetoinferiores criado deverá ter sua própria instância de variáveis Os valores das Plataformas x86_64 usam auth_param basic program /usr/lib64/squid/ncsa_auth (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem /etc/squid/credenciais . um método pertence a cada objeto da objeto. Isto é importante, pois denota que o seu estado.
2.3
classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe.
Dois objetos distintos têm o mesmo estado se suas O programa utilizado nos exemplos acima é o NCSA e o arquivo variáveiscredenciais membro têm os 2.3.1 Invocação de Métodos conterão os nomes de usuário (e suas senhas) dos usuários habilitadosmesmos a acessarem valores.o Objetos se comunicam pela troca de mensagens, isto significa que um
proxy.pode Esseterarquivo bemum como as credenciais dosinvocando usuáriosuma deverão ser criadas pelo objeto que mostrar comportamento particular aplicativo htpasswd no exemplo operação apropriada que como foi definida no objeto.abaixo. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar completa: o objeto que é o recebedor da htpasswda mensagem -c /etc/squid/credenciais aluno mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao A opção -c é usada para criar o arquivo de autenticação, caso ele não exista. objeto chamador através de um valor de retorno. O método chamado deve ser Seque eleesteja já existir a intenção seja mudar a senha de algum usuário ou mesmo criar um definidoepelo objeto. outro, a opção -c não deverá ser informada. Então a mudança de senha de algum Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 194 177
Linux Network Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da| 3Way Networks. [email protected] (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência usuário seriacarro1 feita da seguinte forma: Carro = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; htpasswd /etc/squid/credenciais aluno carro1.cor = "prata";
Depois de feito isto, o próximo passo é adicionar uma acl para esta nova funcionalidade. Logo, na seção acl do arquivo squid.conf deve-se adicionar a seguinte linha: /etc/squid/squid.conf
... acl password proxy_auth REQUIRED http_access allow password ... Figura 2.4 – Layout Memória após inicialização //criando novo alias Carro carro2 = carro1;
Esta lista de acesso tem a função de liberar o acesso ao proxy somente através da autenticação do usuário. É importante frisar que esta regra pode ser usada juntamente com as outras sem nenhum prejuízo para o funcionamento do proxy, pois o efeito até então é cumulativo, ou seja, as regras vão se complementado. Para que estas regras tenham efeito, deve-se reinicializar o serviço proxy (squid): /etc/init.d/squid restart Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
/etc/init.d/squid restart Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é10.4. compartilhada por todas as instâncias da classe. PROXY TRANSPARENTE
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os 2.3.1 Invocação de Métodos O proxy transparente é aquele proxy que dispensa a configuração do mesmos valores. Objetos se comunicam pela troca de mensagens, isto significa que um
navegador para seja, por não haverinvocando configuração no cliente ele dá a objeto pode ter quefuncionar, mostrar um ou comportamento particular uma impressão que não Entreno outras vantagens do uso desse operação apropriada queexiste. foi definida objeto. Em Java, isto é feito pelatipo proxy tem-se: chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da Não é anecessário do onavegador cliente, o que é muito bem mensagem,1.o método ser invocado econfiguração os argumentos para método (se houver). O método vindo invocado nouma recebedor informações de volta ao em rede pode comtambém muitosenviar clientes; objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
2. O uso do proxy transparente força o cliente usar o proxy sem que ele ao Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 178 195
Linguagem de Programação Java Linux Network Administration
Cursonão Especialista em Redes Este material pode ser distribuído. Somente poderá ser utilizado por alunos da 3Way Networks. [email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 new Carro(); menos saiba= disso; carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
3. Com a configuração do proxy transparente, todos os serviços ficam disponíveis aos seus clientes.
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Representação do Proxy Transparente Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
10.4.1. IP MASQUERADE
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância variáveis Address Os valores das variáveis O IP Masquerade é conhecido como NAT de(Network Translator), (atributos) definidas pela classe. Os métodos definem o comportamento de um em umInternet. objeto constituem assimIsto como o proxy,pois o IP masquerade tem pertence a finalidade compartilhar O IP objeto. é importante, denota que um método a cada de objeto da o seu estado. masquerade é umconfundir proxy, isto poiscom trabalha a nível do demétodo, pacotes classe. Porém nãonão devemos a implementação queTCP, enquanto o proxy Dois objetos distintos têm étrabalha compartilhada por todas instânciasTCP da classe. a nível de as conexão na camada de aplicação. Entretanto ambos tem a
o mesmo estado se suas
finalidade de compartilhar um conexão com a Internet. variáveis membro têm os 2.3.1 Invocação de Métodos mesmos valores.e Sabe-se que em uma local os endereços IP não na Internet, Objetos se comunicam pela rede troca de mensagens, isto significa que são um válidos objeto que pacote mostrar no um comportamento particular invocando umaser é retornado até o ainda pode que ter todo protocolo TCP/IP enviado deve operação apropriada que foi definida no objeto. Em Java, isto é feito pela hospedeiro de origem, no sentido de estabelecer uma comunicação. Quando o pacote chamada de um método em um objeto usando o operador binário "." (ponto), é direcionado à Internet o mesmo passará pelo o gateway que estará provendo o NAT, devendo especificar a mensagem completa: o objeto que é o recebedor da então o pacote, o hostpara deodestino com o número IP do gateway mensagem, o método na a serverdade, invocado eatinge os argumentos método (se houver). porinvocado sua vez, válido nainformações Internet. de Logo Oque, método no possui recebedorendereço pode também enviar voltaesta ao máquina retornará o objeto chamador através de um valor de retorno. O método chamado deve ser pacote para o gateway da rede local que, por sua vez, encaminha-o para a devida um que esteja definido objeto. máquina que está pelo na rede local. Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 196 179
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro = new Carro(); O IPcarro1 masquerade suporta perfeitamente serviços como WWW e E-mail, o que carro1.ano = "2001"; explica o seu grande "fusca"; uso, pois estes serviços são os mais utilizados. Entretanto, o IP carro1.modelo= carro1.cor = "prata"; masquerade não tem nenhuma funcionalidade de auditoria, autenticação e segurança
de acesso, o NAT pode ser utilizado sem o proxy, simplesmente permitindo acesso total à Internet. O IP masquerade tem uma desvantagem quando usado para prover NAT para o serviço WEB, pois o mesmo não conta com o serviço de cache para WWW, o IP masquerade também não conta com a funcionalidade de listas de controles de acesso que o squid fornece. A ideia aqui é fazer com que o proxy e o IP masquerade trabalhem juntos para prover uma solução viável para o uso em uma rede local, seja qual for a sua dimensão. Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
Compartilhamento de Internet usando o NAT 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela PROXY TRANSPARENTE 10.4.2. de chamada um método em um objeto COM usandoSQUID o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da IP masquerade que para os oserviços pelo Linux mensagem,Oo método a ser invocadofaz e os com argumentos método (seoferecidos houver). Otransparente método invocado no recebedor pode também enviar informações de volta ao aos seus clientes quando os mesmos estão em uma rede local, pois objeto chamador através de oum valor de retorno. O método chamado deve ser necessário configurar navegador do cliente. um que esteja definido pelo objeto.
fique não é
Agora observe sobre os seguintes questionamentos: Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 197 180
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; Como utilizar"fusca"; o Squid e não precisar configurar carro1.modelo= carro1.cor = "prata";
o browser do cliente?
Como utilizar o Squid e não ficar restrito aos protocolos HTTPS, HTTP, FTP e gopher? A resposta para primeira pergunta é redirecionar a porta 80 para a porta 3128, porta onde tradicionalmente o squid trabalha. A resposta da última reside em utilizar o squid e o IP masquerade conjuntamente. Figura 2.4 – Layout Memória após inicialização Logo, surge uma nova pergunta:
//criando novo alias Carro carro2 = carro1;
Como utilizar do IP Masquerade e ao mesmo tempo utilizar o Squid para o acesso a WEB?
Se o IP Masquerade estiver rodando e o squid também, o cliente ao solicitar uma página WEB, o fará através de uma requisição na porta 80 do gateway onde está o IP masquerade, para isto o cliente deve estar com uma rota padrão definida cujo o gateway será o proxy, o gateway buscará a página na Internet e entregará para o cliente utilizando o IP masquerade, logo este cliente não utilizará o Squid, pois o Squid utiliza a porta 3128. A solução é redirecionar a porta 80 para a porta 3128. Pois assim, toda Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto requisição feita na porta 80 do servidor será direcionada para a porta 3128. Então, não será mais necessário configurar o navegador do cliente. 2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 199 181
Linguagem de Programação Java Linux Network Administration
Cursonão Especialista em Redes Este material pode ser distribuído. Somente poderá ser utilizado por alunos da 3Way Networks. [email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Processo de redirecionamento de porta
O proxy transparente não funciona em conjunto com o sistema de autenticação. Caso seja a intenção não será possível implementá-los em conjunto. Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
A configuração para implementar do proxy transparente nesse novo cenário
2.3 Membros de Instância que usa o iptables está descrita em detalhes logo abaixo.
Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port objeto. 3128 Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. classe. Porém não devemos confundir isto com a implementação do método, que Dois objetos distintos têm iptables -t nat -A PREROUTING -i eth1 -p udp --dport 80 -j REDIRECT --to-port é 3128 compartilhada por todas as instâncias da classe.
o mesmo estado se suas variáveis membro têm os mesmos valores.
2.3.1 Invocação de Métodos Objetos comunicam há peladuas troca considerações: de mensagens, isto asignifica que um Nestesecomando interface que está sendo utilizada objeto pode ter que mostrar um comportamento particular invocando uma para fazer o serviço de proxy é a eth0, ou seja, esta interface é a interface de entrada, operação apropriada que foi definida no objeto. Em Java, isto é feito pela ou seja,de que dá acesso à objeto outra usando rede; oa operador outra consideração é relativa a porta onde o chamada um método em um binário "." (ponto), squid especificar está escutando, exemplo utilizando devendo a mensagemneste completa: o objetoestamos que é o recebedor da a porta padrão de mensagem, o método ser invocado argumentos para o método (se houver). comunicação do asquid (portae os 3128). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto. Agora devemos fazer o IP masquerade através do iptables. Os comandos
serão:
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 200 182
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; iptables -t nat -A POSTROUTING -o eth0 -s 10.0.0.0/24 -d 0.0.0.0/0 -j MASQUERADE carro1.modelo= "fusca"; echo 1 > /proc/sys/net/ipv4/ip_forward carro1.cor = "prata";
Após essa configuração, basta alterar o arquivo a diretiva http_port como está abaixo:
squid.conf
somente alterando
/etc/squid/squid.conf ... http_port 3128 transparent ...
10.5. SARG
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
O SARG é um gerador de relatórios do squid que serve para facilitar a manutenção do serviço. Ele apresenta relatórios HTML dos acessos à internet, bem como tempo de acesso, e outros parâmetros administrativos. A instalação e configuração do SARG será vista abaixo para a distribuição oficial do curso. 10.5.1. INSTALAÇÃO O download do código-fonte deverá ser feito do sarg.sourceforge.net.
2.3
tar -zxf sarg-versao.tar.gz cd sarg-versao/ Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto ./configure make make install
Membros de Instância
objeto criado deverá ter sua própria instância de variáveis 10.5.2.Cada CONFIGURAÇÃO (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da sarg.conf A configuração é feitaisto editando-se o arquvios classe. Porém não devemos confundir com a implementação do método, que . /etc/httpd/conf/ é compartilhada por todas as instâncias da classe.
Os valores das variáveis em um objeto constituem o seu estado. e de /usr/local/etc/ Dois objetos distintos têm o mesmo estado se suas /usr/local/etc/sarg.conf variáveis membro têm os 2.3.1 Invocação de Métodos access_log /var/log/squid/access.log mesmos valores. graphs Objetos se yes comunicam pela troca de mensagens, isto significa que um
graph_days_bytes_bar_color orangeparticular invocando uma objeto pode ter que mostrar um comportamento title “Relatório de Acessos do Squid” operação apropriada que foi definida no objeto. Em Java, isto é feito pela temporary_dir /tmp chamada de um método em um objeto usando o operador binário "." (ponto), output_dir /var/www/html/reports/ devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem,/etc/httpd/conf.d/sarg.conf o método a ser invocado e os argumentos para o método (se houver). O método Alias invocado/sarg no recebedor pode também enviar informações de volta ao /var/www/html/reports/daily de um valor de retorno. O método chamado deve ser DirectoryIndex index.html um que esteja definido pelo objeto. Order deny,allow Deny from all Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 201 183
Linguagem de Programação Java Linux Network Administration
Cursonão Especialista em Redes Este material pode ser distribuído. Somente poderá ser utilizado por alunos da 3Way Networks. [email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Allow =from Carro carro1 new 10.0.0.X Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
10.5.3. GERAÇÃO DE RELATÓRIOS
A criação do script de geração diária de estatísticas é feita para automatizar o processo de geração de relatórios. /etc/cron.daily/sarglog.sh #!/bin/bash #Pega a data atual HOJE=$(date +%d/%m/%Y) #Pega um dia antes de hoje ONTEM=$(date –date “1 Figura day 2.4 ago” +%d/%m/%Y) – Layout Memória após inicialização /usr/local/bin/sarg -l /var/log/squid/access.log -o //criando novo alias /var/www/html/reports/daily -z -d $ONTEM-$HOJE Carro = carro1; exitcarro2 0 chmod 770 /etc/cron.daily/sarglog.sh
Agora é só acessar o relatório de acessos pelo url http://10.0.0.1/sarg
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 202 184
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
10.6. LABORATÓRIO
Este laboratório irá implementar um servidor proxy com as opções de caching e autenticação de usuários. Três usuários específicos: João, Maria e Pedro. A lista de sites negados irá conter: www.uol.com.br, www.globo.com e www.terra.com.br. A lista de palavras não permitidas em URLs será: sex, sau e bri. Figura 2.4 – Layout Memória após inicialização O servidor deverá ter duas interfaces de rede: uma configurada como Bridge (IPs da //criando novo alias rede Carro local do laboratório) e a outra como Rede Interna configurada para a rede carro2 = carro1; 10.0.0.0/24.
A) Arquivo de configuração /etc/squid/squid.conf http_port 3128 cache_mem 128M cache_dir ufs /var/spool/squid 100 16 256 cache_access_log /var/log/squid/access.log cache_mgr [email protected] cache_effective_user squid cache_effective_group squid auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/senhas acl password proxy_auth REQUIRED Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto http_access allow password acl palavra url_regex -i sex sau bri http_access deny palavra acl listanegada url_regex "/etc/squid/listanegada.txt" 2.3 Membros de Instância http_access deny listanegada Cada criado src deverá ter sua própria instância de variáveis Os valores das variáveis acl objeto redelocal 10.0.0.0/255.255.255.0 (atributos) http_access definidas pela classe. métodos definem o comportamento de um allowOsredelocal em um objeto constituem
objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que B) Criação Arquivos é compartilhada por todas as instâncias da classe.
- Autenticação
2.3.1 Invocação de Métodos htpasswd -c /etc/squid/senhas joao Objetos se comunicam pela troca de mensagens, isto significa que um htpasswd /etc/squid/senhas maria objeto podehtpasswd ter que mostrar um comportamento particular invocando uma /etc/squid/senhas pedro operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), - Listaespecificar Negada a mensagem completa: o objeto que é o recebedor da devendo mensagem,/etc/squid/listanegada.txt o método a ser invocado e os argumentos para o método (se houver). O método www.uol.com.br invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser www.globo.com www.terra.com.br um que esteja definido pelo objeto.
o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 203 185
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carroo carro1 Reiniciar serviço= new Carro(); carro1.ano = "2001"; /etc/init.d/squid restart carro1.modelo= "fusca"; carro1.cor = "prata";
C) Configuração dos clientes
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 204 186
Linguagem de Programação Java Linux Network Administration
Cursonão Especialista em Redes Este material pode ser distribuído. Somente poderá ser utilizado por alunos da 3Way Networks. [email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
10.7. EXERCÍCIOS
1. Qual a finalidade do Proxy? O Proxy Squid trabalha com quais protocolos? Explique a função de cada um destes protocolos. 2. Explique o funcionamento do proxy, relatando como o proxy é capaz de compartilhar seu acesso a Internet com máquinas que não possuem endereço válido na Internet. 3. Como implementar restrições ao meu servidor Proxy? Como eu poderia restringir Figura 2.4 – Layout Memória após inicialização acesso//criando ao meu servidor proxy através de autenticação de usuários? novo alias Carro carro2 = carro1;
4. Qual é o arquivo de Log do Proxy onde posso obter informações sobre sites acessados e negados? 5. O que é proxy transparente? Como criar um proxy transparente? Qual a sua vantagem? 6. O que é NAT? Qual ferramenta pode ser utilizada para implementar o NAT? Explique a vantagem do NAT em relação ao proxy. 7. Como funciona o NAT (IP Masquerade)? Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
8. Como utilizar o Proxy e o IP Masquerade conjuntamente, sendo que o proxy será utilizado apenas para trabalhar com o protocolo HTTP e o IP Masquerade para trabalhar com os protocolos? 2.3 Membros dedemais Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. métodos definem comportamento de um 9. Qual as vantagens e asOs desvantagens do oproxy em relação ao objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe.
Os valores das variáveis um objeto constituem IP em Masquerade? o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os 2.3.1 Invocação de Métodos mesmos valores. Objetos se comunicam pela troca de mensagens, isto significa que um
objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto. Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 205 187
Siga-nos também no Twitter! twitter.com/3waynet