A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Programando sockets em python

Apresentações semelhantes


Apresentação em tema: "Programando sockets em python"— Transcrição da apresentação:

1 Programando sockets em python
Jerônimo Feijó Noble da Rosa

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

3 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.

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

5 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.

6 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((‘ ’,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

7 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

8 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.

9 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.

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

11 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,(' ',67)) Comunicação UDP Definindo comunicação broadcast Envia para destino específico IP Remoto Porta remota mensagem

12 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

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

14 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.

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

16 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 até (RFC3171).

17 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.

18 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 até

19 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.

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

21 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.

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

23 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.

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

25 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;

26 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 ;

27 Referências Foundation, P. S. (2011). Python documentation. ú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.


Carregar ppt "Programando sockets em python"

Apresentações semelhantes


Anúncios Google