Programando sockets em python

Slides:



Advertisements
Apresentações semelhantes
Interações cliente/servidor usando o UDP
Advertisements

Comunicação entre processos distribuídos
Bruno Rafael de Oliveira Rodrigues
Ir p/ primeira página Cliente/Servidor Modelo usado para construir aplicações Servidor em número de porta conhecido – Aceita requisições e executa serviços.
Configuração de um servidor FTP
Conceitos Relacionados a Internet
Redes de Computadores Aula Prática 4
Comunicação Distribuída
Interação Cliente Servidor
Redes de Computadores 2 - Camada de Aplicação (HTTP) –
Conceitos de Sockets Universidade Federal do Rio Grande do Sul (UFRGS)
Comunicação Inter-Processos
Auditoria de Segurança da Informação
GERENCIAMENTO DE REDES
Apresentação para EAD usando modelo instrucional
FEUPDEECRedes de Computadores, 4º Ano de EEC, ramo de ACI Sockets Abril, 98Isidro Vila Verde 1 Formato das estruturas de dados Estrutura.
1 Felipe L. SeverinoPOD XtremWeb Felipe L. Severino Programação com Objetos Distribuídos paralela e.
TCP/IP CAMADA DE APLICAÇÃO SERVIÇOS
Profº Charles de Sá Graduado em Computação Profº Charles de Sá Graduado em Computação.
Instalação e Configuração
Camada de Transporte: Portas, Sockets, Aplicações em Rede
PROTOCOLOS DE COMUNICAÇÃO
Introdução à Programação Distribuída em Java
Curso EFA Tecnológico - Técnico de Informática e Sistemas -
Desenvolvimento de Projetos e Aplicações Web
Utilitários de Redes Prof. Andréa Chicri Torga Adaptações
Funcionalidades e Protocolos da Camada de Aplicação
Universidade do Vale do Rio dos Sinos - São Leopoldo -
Tecnólogo em Analise e Desenvolvimento de Sistemas - Faculdade de Tecnologia SENAC De Roger Ferreira Memórias e suas características,
Modelo de referência OSI
Aula 9 - Camada de aplicação
Introdução ao Desenvolvimento Web
Sistemas Operacionais
Funcionalidade e Protocolos da Camada de Aplicação
FTP (File Transfer Protocol) Protocolo de Transferencia de Arquivos
Programação de Sistemas de Comunicação
Módulo: Gerenciamento de Incidentes e
CCNA 1 – Modelos OSI e TCP/IP
GERENCIAMENTO DE REDES UTILIZANDO O PROTOCOLO SNMP
Endereçamento IP.
Redes de Comunicação – Módulo 3
Camada de Transporte prof. Eduardo.
Comunicação entre Processos - Sockets. Conceitos Básicos Sockets são uma forma de IPC ( InterProcess Communication ) fornecida pela 4.3 BSD que fornecem.
Trabalho realizado por: Leandro, Ruslana e Nataliya.
AULA 3 – ELEMENTOS DE INTERCONEXÃO DE REDES
Segurança e Auditoria de Sistemas
FTIN Formação Técnica em Informática Módulo Sistema Proprietário Windows AULA 04 Prof. André Lucio.
1 Comunicação Inter-Processos -> RMI -> RPC -> TCP -> UDP (Abstração de passagem de mensagem)
IIS Web Server.
Índice Arquitetura TCP/IP Quatro camadas do TCP/IP DHCP
REDES DE COMPUTADORES CONCEITOS E TÓPICOS RELACIONADOS A REDES DE COMPUTADORES ________________________________________________ Redes – Prof. Roni Márcio.
MODELO DE REFERÊNCIA TCP/IP
Desenvolvimento de Aplicações TCP/IP com Sockets Márcio de Sousa Dias
Arquitectura tcp. Camada tcp Ao contrário do protocolo UDP, o TCP representa um grande incremento de qualidade relativamente ao protocolo IP que lhe serve.
Arquitetura de Redes de Computadores – Luiz Paulo Maia Camada de Transporte1 Arquitetura de Redes de Computadores Luiz Paulo Maia Camada de Transporte.
Camada de Transporte: protocolo UDP
Comunicação Cliente-Servidor Linguagem para Internet II Prof. Marcelo da Silveira Siedler SERVIÇO NACIONAL DE APRENDIZAGEM COMERCIAL.
Redes de computadores: Aplicações Prof. Dr. Amine BERQIA
Escola Secundaria Sebastião da gama Comunicação de dados Prof: Carlos Pereira Nome :André Santos Ano/Turma:12ºL Nº:2 IP Dinâmico, IP Fixo e DNS.
Camada de Aplicação Prof. Horácio. Objetivo Apresentar os detalhes específicos dos tipos de aplicação; Apresentar o modelo cliente-servidor; Apresentar.
Passagens de Mensagens Prof. Dr. Norian Marranghello
UCSal – Tecnologia em Análise e Desenvolvimento de Sistemas Programação para Aplicações WEB Profa. Semíramis Assis
Protocolos de Comunicação e Passagem de Mensagens
Sockets Redes de Comunicação de Dados Prof. Esp. Cristiano José Cecanho.
Arquitetura em Camadas
Alessandro D. R. Fazenda
Redes de Computadores e Aplicações – Camada de aplicação IGOR ALVES.
Compartilhamento nas nuvens para redes locais baseado em P2P Jerônimo Feijó Noble da Rosa Faculdade de Tecnologia SENAC Pelotas/RS Curso Superior de Tecnologia.
Compartilhamento nas nuvens para redes locais baseado em P2P Jerônimo Feijó Noble da Rosa Faculdade de Tecnologia SENAC Pelotas/RS Curso Superior de Tecnologia.
Curso Superior em Redes de Computadores Camada de Aplicação Prof. Sales Filho.
Transcrição da apresentação:

Programando sockets em python Jerônimo Feijó Noble da Rosa kastanho@gmail.com

Sumário Apresentação Programação de sockets em “baixo nível”; Programação de sockets em alto nível; Referências.

Apresentação Graduado em Tecnologia em Redes de computadores pelo Senac Pelotas; Graduado em Tecnologia em análise e desenvolvimento de sistemas pela UCPEL; Trabalho no departamento de redes de computadores na UFPEL.

Vantagens da linguagem Multiplataforma; Extremamente fácil de utilizar; Grande quantidade de bibliotecas prontas; A linguagem está sempre sendo atualizada.

Programação em baixo nível Fornece suporte para desenvolvimento de aplicações em rede; Meio de campo entre camada de aplicação e camada de transporte; Liberdade para o desenvolvedor criar uma aplicação do zero.

Criando Socket TCP - Cliente Protocolo SOCK_STREAM SOCK_DGRAM SOCK_RAW Família AF_INET AF_INET6 Exemplo de socket: sockobj=socket(AF_INET,SOCK_STREAM) sockobj.connect((‘127.0.0.1’,5000)) sockobj.send(‘senac 2012’) sockobj.shutdown(2) Endereço Porta Mensagem a ser enviada 1 - fecha o canal de transmissão 2 - fecha a conexão

Criando Socket TCP - servidor Exemplo de Socket: sockobj=socket(AF_INET,SOCK_STREAM) sockobj.bind((‘’, 5000)) sockobj.listen(5) connection, address=sockobj.accept() data=connection.recv(4096) connection.close() Porta a ser escutada interface Quantidade de conexões na fila Conexão Endereço do cliente Aceita conexão

Exemplo de código Envio de arquivos – Transmissão utilizando TCP DHCP – Identificando servidores DHCP piratas(broadcast) Chat Multicast – Aplicativos simples de chat que envia mensagem sem necessidade de um servidor.

Envio de arquivos Aplicativo que solicita um nome de arquivo baixa este do servidor remoto; Utiliza um socket TCP para comunicação dos dados; Mais garantias de entrega que uma aplicação UDP.

Envio de arquivos(exemplo) Onde encontrar: http://192.168.200.3/Semana_academica_Sockets/LLS Tarefas: Solicitar que o colega ao lado disponibilize um arquivo Utilizar o wireshark para acompanhar a transferência Verificar integridade de dados

Criando Socket UDP - Cliente Exemplo de socket: udpsock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) udpsock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST,1) udpsock.sendto(msg,('255.255.255.255',67)) Comunicação UDP Definindo comunicação broadcast Envia para destino específico IP Remoto Porta remota mensagem

Criando Socket UDP - Servidor Exemplo de socket: udpsock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) udpsock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR,1) Dados,endereco = udpsock.recvfrom(1024) Reutilização do socket Dados Origem Retorna IP da origem

Dynamic Host Configuration Protocol (DHCP) Definido na RFC 2131; Utiliza endereço de BROADCAST 255.255.255.255 no lado cliente; Pode ocasionar diversos problemas, no caso do uso ilegítimo.

DHCP Monitor Ferramenta em Python que permite monitorar servidores DHCP; Processa mensagens com destino a porta 68 UDP; Informa na tela e em log, caso seja detectado um servidor não cadastrado.

DHCP Monitor(exemplo) Onde encontrar: Desktop/LLS/DHCP/ Tarefas: Verificar funcionamento da aplicação Verificar arquivo arquivo de log dhcpm.log

Multicast Muito utilizado quando, é necessário que diversos computadores recebem um determinado conteúdo; Mais eficiente que o Broadcast; Fornece grande número de endereços. A faixa vai de 224.0.0.0 até 239.255.255.255 (RFC3171).

Chat Multicast Ferramenta simples que permite várias pessoas se comuniquem através de um mesmo endereço multicast; Não necessita de utilizar um servidor para gerenciar a comunicação; Grande quantidade de ‘canais’ disponíveis.

Chat Multicast(exemplo) Onde encontrar: Desktop/LLS/chat/ Tarefas: Executar o Sender.py e o Receiver.py Utilizar o Wirshark para analisar a comunicação Alterar o endereço multicast dentro da faixa de 224.0.0.0 até 239.255.255.255.

Programação de alto nível Facilidade na implementação; Fornece agilidade no desenvolvimento; Fornece os principais protocolos utilizados, como HTTP, FTP, SMTP, entre outros.

Exemplo de código Servidor HTTP Ataque de dicionário utilizando Telnet HTTP estático HTTP dinâmico Ataque de dicionário utilizando Telnet

HTTP Permite a disponibilização facilmente de conteúdo via web através do SimpleHTTPServer; Pode ser iniciado através de uma única linha python -m SimpleHTTPServer 8000; Fornece páginas web ou navegação no diretório raiz do servidor.

HTTP(Exemplo) Onde encontrar: Desktop/HLS/HTTP/HTTP1 Tarefas: Executar o serverHTTP.py e acessar: http://127.0.0.1:8000/ Alterar a página e verificar resultado; Remover a página e verificar o resultado;

HTTP - dinâmico O SimpleHTTPServer permite a criação de páginas dinâmicas; Utilização dos métodos POST ou GET; Utilização da saída de scripts em python.

HTTP - Dinâmico(Exemplo) Onde encontrar: Desktop/HLS/HTTP/HTTP2/ Tarefas: Executar o exemplo server.py e acessar: http://127.0.0.1:8001/ Alterar o arquivo pages.py e verificar o resultado

Telnet Serviço muito utilizado por dispositivos como roteadores e switchs; No python utiliza a biblioteca telnetlib para se conectar a um servidor telnet; O arquivo pass.txt serve como dicionário de senhas para tentar quebrar a senha do servidor;

Telnet(exemplo) Onde encontrar: Desktop/HLS/TELNET/ Alterar o arquivo passbreaker.py para o endereço correto do servidor Telnet; Executar o programa e tentar quebrar a senha do dispositivo no endereço 192.168.201.157;

Referências Foundation, P. S. (2011). Python documentation. http://www.python.org/doc/. último acesso em 01 outubro de 2012. Goerzen, J. (2004). Foundations of Python Network programming. Apress, 1th edition. Rhodes, B. and Goerzen, J. (2010). Foundations of Python Network programming. Apress, 2th edition.