Avatar billede ctnn Nybegynder
18. oktober 2008 - 23:04 Der er 9 kommentarer

spærre for tcp/ip port 1863 and 443

Hej Allesammen.

Jeg har fået at vide at jeg skal forsøge mig her.

Jeg skal ha lavet en service, som ligger og spærrer for alt Messenger trafik, nemlig de 2 ovennævnte porte på tcp/ip.

Nogle der kan give mig nogle hints til hvordan man kan lave den slags?

Tutorials, noget som helst?
Avatar billede rasmuzzen Nybegynder
18. oktober 2008 - 23:14 #1
Hvad med at lavet et lille baggrundsprogram der tjækker process listen, og hvis denne messenger.exe kører så sender du en kill til den process.

MVH
Avatar billede driis Nybegynder
19. oktober 2008 - 01:45 #2
Er det ikke en mulighed at blokere i firewall'en ?
(Det lyder lidt som et virksomheds-scenarie, at blokere Messenger - og der er jo sikkert en firewall i forvejen).

Pas i øvrigt på med at blokere port 443 helt, den bruges jo også til HTTP SSL.
Avatar billede palle_pirat Nybegynder
19. oktober 2008 - 02:30 #3
Nu skriver du at du vil ha' lavet en service ("tjeneste") som spærrer for de 2 porte, men ville det ikke være nemmere og blokere dem i firewall'en? Enten i windows eller i routeren (Hvis en sådan findes)?
Avatar billede ctnn Nybegynder
19. oktober 2008 - 12:55 #4
Det er nemlig rigtigt, jeg vil gerne ha lavet et lille baggrundsprogram som spærrer for den netværkstrafik, som der kommer på de 2 porte.

Vi er en mindre afdeling i en større virksomhed, hvor at dette skal laves, og jeg kan ikke få lov til at ændre det i firewallen.
Avatar billede martinbk Nybegynder
19. oktober 2008 - 14:09 #5
jeg er ikke helt sikker her, men jeg mener at min arbejdsgiver forsøgte noget lign. i sin tid men de fik ørene gevaldigt i maskinen fordi det iflg. persondataloven faktisk er forbudt at shape på krypterede data, og dermed på port 443 som jeg pr. default er HTTPS porten, blot et lille indspark.
Avatar billede driis Nybegynder
19. oktober 2008 - 14:28 #6
Og, hvis det kører som et program på maskinen, vil der næsten altid være en måde at omgå det på, hvis brugerne er administratorer. Og hvis de ikke er administratorer, ville det måske bare være nemmere simpelthen at spærre af for messenger med permissions ?

Når det er sagt, hvis opgaven går ud på at spærre for brugernes messenger adgang, så bruger de sikkert bare nogle af de online (http) baserede klienter ...

Jeg havde et eksempel i C# engang hvor jeg kunne lytte på en raw socket. Det kunne måske bruges til filtrering - men det kræver en del arbejde, og jeg mener at der er problemer med at få det til at virke på Vista.
Avatar billede ctnn Nybegynder
24. oktober 2008 - 06:23 #7
driis.

Kunne du måske sende mig en lille snas af den kode til at lytte på den raw socket? det er på winXP.
Avatar billede driis Nybegynder
24. oktober 2008 - 18:00 #8
Måske du kan komme lidt videre med det her. Det er noget jeg skrev på meget, meget prototype stadie en gang jeg undersøgte noget andet. Men det skulle demonstrere hvordan du kan få fat på bytes sendt på linjen, udenom TCP og IP protokollerne (så hvis du vil finde ud af om en TCP port er i brug er du nødt til at fortolke pakkerne og finde TCP informationen.

using System;
using System.Net;
using System.Net.Sockets;

namespace dr.Sniffer
{
    public class Sniffer
    {
        Socket socket = null;
        const int SIO_RCVALL = unchecked((int)0x98000001);

       
        byte[] packet = new byte[4096];

       
        public void Bind(IPAddress ip)
        {
            Close();
            byte[] ioc_in = new byte[4] {1, 0, 0, 0};
            byte[] ioc_out = new byte[4];

            socket = new Socket(AddressFamily.InterNetwork, SocketType.Raw,
                ProtocolType.Unspecified );
            socket.Blocking = true;
            // Bind it to an IP and listen
            socket.Bind(new IPEndPoint(ip, 0));
            // Include headers in packets returned
            socket.SetSocketOption(SocketOptionLevel.IP,
                SocketOptionName.HeaderIncluded, 1);

            // Set RCVALL so we get all packets
            socket.IOControl(SIO_RCVALL, ioc_in, ioc_out);
            // Check for errors in the IOControl call
            if( ioc_out[0] + ioc_out[1] + ioc_out[2] + ioc_out[3] > 0 )
            {
                socket.Close();
                socket = null;
                throw new ApplicationException("Error calling IOControl.");               
            }
        }

        public RawPacket GetPacket()
        {
            int len = socket.Receive(packet,SocketFlags.None);
            if ( len > 0 )
            {
                byte [] bout = new byte[len];
                for(int i = 0 ; i < len ; i++ )
                    bout[i] = packet[i];
                return new RawPacket(bout);
               
            }
            else
                return null;
        }

        public void Close()
        {
            if ( null != socket )
            {
                socket.Close();
                socket = null;
            }
        }
    }
}
Avatar billede ctnn Nybegynder
28. oktober 2008 - 22:36 #9
super Driis, det vil jeg gerne give nogle point for det hjalp mig en smule videre, tusind takker.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester