Page 1 of 1
Έλεγχος συνδέσεων TCP/IP
Posted: Sun Aug 13, 2006 2:11 am
by Babedacus
Πρόγραμμα-πελάτης θέλει να συνδεθεί σε απμακρυσμένο υπολογιστή.Πως μπορώ να το κάνω να νομίζει πως συνδέθηκε με αυτόν ενώ στην πραγματικότητα έχει συνδεθεί στον localhost;Μπορώ να τρέξω κάποιο daemon και να το βάλω να ακούει "εξερχόμενες κλήσεις",η κάποια υπηρεσία;Το τι δεδομένα θα δίνω και θα παίρνω είναι δικό μου θέμα.Απλώς θέλω να παρεμβάλω την εφαρμογή μου ανάμεσα στο πρόγραμμα αυτό και το απομακρυσμένο πρόγραμμα-δούλος.
Σχήμα:
Code: Select all
Πελάτης--->Πελάτης/Δούλος(Δικό μου)--->Δούλος
Αν σας μπέρδεψα ρωτήστε με για διευκρινίσεις,γιατί είμαι και λίγο νέος στο άθλημα και είναι πιθανό να ήταν ανακριβής η διατύπωση μου.
Posted: Sun Aug 13, 2006 3:13 am
by tsilochr
μάλλον είναι πολύ εύκολο αυτό που θες αλλά για να είμαστε σιγουροι δώσε μια αναλυτική περιγραφή του τι προσπαθείς να κάνεις
Posted: Sun Aug 13, 2006 1:02 pm
by Babedacus
Θέλω να φτιάξω ένα πρόγραμμα το οποίο να πιάνει τις εξερχόμενες συνδέσεις,να παίρνει το προεπιλεγμένα ρεύματα Εισόδου-εξόδου και να τα ανακατευθύνει στον απομακρυσμένο.
Παράδειγμα:
Code: Select all
Πριν:Firefox(Τοπικός υπολογιστής)->Apache(Απομακρυσμένος υπολογιστής)
Μετά:Firefox(Τοπικός υπολογιστής)->MyProgram(Τοπικός υπολογιστής)->Apache(Απομακρυσμένος υπολογιστής)
Δηλαδή να ξεγελάσω τον client και να νομίζει πως συνδέθηκε στον server,με το να παίρνω το default OutputStream του client και να το γράφω στο default InputStream του server,και το default OutputStream του server στο default InputStream του client.Κατι έχω ακούσει για την μηδενική IP,ξέρει κανείς τι παίζει και αν είναι αυτό που ψάχνω;
Posted: Mon Aug 14, 2006 2:37 pm
by tsilochr
λίγο ζόρικα πράγματα ζητάς.
Υπόθεση 1 (απίθανο)
Αν απλά θες να φτιάξεις μια δική σου αυτόνομη εφαρμογή που θα μιλά μέσω δικτύου, τότε μπορείς να στήσεις client και server στο ίδιο pc , χρησιμοποιώντας την default ΙΡ 127.0.0.1
Υπόθεση 2 (μάλλον αυτό που θέλεις να κάνεις)
Θες να φτιάξεις ενα ενδιάμεσο πρόγραμμα που θα φιλτράρει όλη την κίνηση δικτύου που γίνεται στο pc? Στα γρήγορα αυτό που μου έρχεται είναι να θέσεις κάποιο άλλο pc ως default gateway που κάνει εκ νέου δρομολόγηση πακέτων (software router δλδ). Αυτό θέλει δεύτερο pc αφενός, αφετέρου δεν θα έχεις πρόσβαση στα ρεύματα των εφαρμογών αλλά στα IP πακέτα που φέυγουν από τους "πελάτες".
Κάποιο network sniffing ίσως?
Για δώσε κι άλλες πληροφορίες για το τι θες να κάνεις ακριβώς μήπως κατέβει καμιά άλλη ιδέα (απάντηση όμως θα ξαναβάλω από τις 19/8 και μετά)
Posted: Mon Aug 14, 2006 2:46 pm
by Erevodifwntas
<off topic> αυτά τα ρεύματα τι θα θέλατε... καλά τα ελληνικά... αλλά ξεφύγατε </off topic>
Posted: Mon Aug 14, 2006 5:53 pm
by Babedacus
tsilochr wrote:Θες να φτιάξεις ενα ενδιάμεσο πρόγραμμα που θα φιλτράρει όλη την κίνηση δικτύου που γίνεται στο pc?
Περίπου.Θέλω να ελέγχει μια πόρτα (Erevodifwntas μην αρχίσεις πάλι για την ελληνοποίηση των ξένων όρων:P) μόνο.Δεύτερο PC δεν έχω,οπότε η λύση αυτή δεν παίζει.Ένα σχετικό παράδειγμα είναι το firewall.Ελέγχει την κίνηση όλου του δικτύου.Εγώ θέλω ένα που να κοιτάει μια πόρτα και να μην παίζει κανένα ρόλο.Να μην αλλοιώνει τα δεδομένα,να μην τα επηρεάζει καθόλου γενικότερα.Απλώς να τα αναλύει,να τα καταγράφει,κοκ,και να αποστέλλει στον παραλήπτη τους.
Posted: Tue Aug 15, 2006 11:34 am
by PaP
Κοίτα τον κώδικα του Ethereal
Posted: Tue Aug 15, 2006 12:34 pm
by vangos
Αυτό που χρειάζεσαι νομίζω είναι ένας proxy server. Εγκαθιστάς τον proxy server τοπικά και στη συνέχεια όλη η κυκλοφορία περνάει μέσω αυτού οπότε μπορείς και να την ελέγχεις με διάφορους τρόπους. Για περισσότερες πληροφορίες δες στο
http://en.wikipedia.org/wiki/Proxy_server.
P.S. Η αλήθεια είναι ότι δεν το έχω δοκιμάσει ο ίδιος αλλά νομίζω ότι γίνεται. Τα παιδιά που ασχολούνται με δίκτυα ίσως μπορούν να σου εξηγήσουν περισσότερα.
Posted: Wed Aug 16, 2006 2:03 am
by Babedacus
Βρήκα ένα σχετικό πρόγραμμα,που κάνει αυτό ακριβώς που ήθελα.
http://www.westbrooksoftware.com/tsdetails.shtml
Θα κοιτάξω και το Ethereal και θας σας ενημερώσω για την συνέχεια.Μείνετε συντονισμένοι. :P
Posted: Mon Aug 21, 2006 2:10 pm
by HdkiLLeR
Αυτό που θέλεις να κάνεις γίνεται μόνο με proxy (squid - best proxy server ever) και όχι με passive sniffing (βλ. Ethereal).