Fórum Bloqueando Portas #262047
15/12/2004
0
Dan.sm
Curtir tópico
+ 0Posts
16/12/2004
Ipc$
Crie um TServerSocket e deixe-o ativo naquela porta.
No evento onAccept vc coloca: Socket.Close;
Gostei + 0
17/12/2004
Dan.sm
E tem como eu fazer como os firewalls, ou seja, abrir a porta só para um determinado programa utilizar?
Gostei + 0
17/12/2004
Ipc$
Bom, vc pode exigir uma determinada sequência de caracteres como primeiro envio; como uma senha por exemplo e se não bater, vc dá um Close no Socket do intruso.
Gostei + 0
17/12/2004
Nildo
Com ela você vai interceptar as chamadas para qualquer API (no caso as APIs da WinSock como ACCEPT, essas coisas). Então você tem que verificar se a porta que está tentando ser aberta é a N, você simplesmernte cancela a operação. Caso contrário você reprocessa a operação. Vide exemplos da MadCodeHook para saber como trabalhar com interncepções de APIs
Gostei + 0
17/12/2004
Ipc$
É isso mesmo, o TServerSocket é para se trabalhar no esquema servidor-clientes. Ele abre a porta e os programas-cliente se conectam a ele através dessa porta. Se um outro programa tentar reabrí-la, dará erro.
Gostei + 0
17/12/2004
Nildo
Gostei + 0
17/12/2004
Massuda
Gostei + 0
17/12/2004
Dan.sm
Gostei + 0
18/12/2004
Massuda
A princípio não é possível fazer um firewall em Delphi.
Os firewalls atuam em um nível mais baixo do que o TServerSocket/TClientSocket, Indy ou ICS funcionam. Além do que o Nildo mencionou sobre API hooking (geralmente um hook global), um bom firewall geralmente tem algum device driver que monitora os protocolos na interface de rede e um device driver não pode ser escrito em Delphi.
Por exemplo, a solução de bloqueio de porta usando o TServerSocket indicará a um possível invasor que existe um servidor ativo que está recusando conexão (em outras palavras, o invasor encontrou um IP com uma máquina ligada). Embora você não esteja permitindo a conexão, isso não impede um ataque contra sua máquina. Um invasor pode inundar sua máquina com pedidos de conexão a ponto de derrubar sua máquina (basicamente é isso que se faz em um ataque DOS/DDOS) ou, pior ainda, explorar alguma outra porta e conseguir invadir sua máquina.
Quando você tenta conectar numa porta bloqueada por um bom firewall, o que você observa é a ausência de qualquer tipo de resposta (incluindo resposta dos protocolos de baixo nível), de modo que não dá para o invasor saber se sua máquina optou por bloquear a conexão ou se ele está tentando conectar com uma máquina desligada/inexistente.
Bom... agora uma dica... se você não tem dificuldades com C/C++, vale a pena dar uma olhada em alguns artigos sobre [url=http://www.codeproject.com/internet/#Proxy+¬2F+Firewall]firewall do site The Code Project[/url].
Gostei + 0
18/12/2004
Ipc$
Bom, nesse caso minha ajuda será nula pq na parte de Firewalls entendo praticamente nada, só sei que são como um porteiro que controla tudo o que entra e sai do computador. Utilizo um chamado Sygate Personal Firewall que é gratuito e confesso que mal sei configurá-lo corretamente.
Acredito que os colegas Nildo e Massuda possam auxiliá-lo melhor nessa parte.
Gostei + 0
21/12/2004
Dan.sm
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)