Διαβάζοντας ένα σφάλμα SO_ORIGINAL_DST του Squid
Ελέγξτε αν ένας ρητά ρυθμισμένος πελάτης έφτασε σε ακροατή υποκλοπής πριν αντιμετωπίσετε αποτυχία αναζήτησης του αρχικού προορισμού στο Squid.
Το NF getsockopt(SO_ORIGINAL_DST) υποδεικνύει αναζήτηση του αρχικού προορισμού. Σε ρύθμιση υποκλοπής, το Squid πρέπει να ανακτήσει πού κατευθυνόταν αρχικά η ανακατευθυνόμενη σύνδεση.
Ένας ρητά ρυθμισμένος περιηγητής στέλνει σκόπιμα τα αιτήματά του στο proxy. Η σύνδεση αυτή δεν αποκτά ιστορικό υποκλοπής NAT μόνο και μόνο επειδή δίπλα στη θύρα του ακροατή του Squid είναι γραμμένο το intercept.
Επομένως αυτή η αναντιστοιχία μπορεί να αποτύχει πριν γίνει σχετικό το πιστοποιητικό του προορισμού.
Ξεκινήστε από το πώς έφτασε η σύνδεση
- Αν η εφαρμογή έχει ρυθμισμένη διεύθυνση proxy, προσδιορίστε τον συνηθισμένο ακροατή προωθητικού proxy που πρέπει να χρησιμοποιεί.
- Αν μια πύλη ανακατευθύνει κίνηση που θα ήταν αλλιώς άμεση, ελέγξτε ότι φτάνει στον προβλεπόμενο ακροατή υποκλοπής και ότι η υποστηριζόμενη σχεδίαση NAT διατηρεί τις απαιτούμενες πληροφορίες προορισμού.
- Αν υπάρχουν και οι δύο τρόποι, ελέγξτε σε ποια διεύθυνση και θύρα συνδέθηκε πραγματικά ο πελάτης που αποτυγχάνει.
Η τεκμηρίωση του Squid για το http_port κάνει τη διάκριση σαφή: η παράλειψη σημαίας λειτουργίας επιλέγει λειτουργία προωθητικού proxy· το intercept αναμένει υποκλοπή NAT στο επίπεδο IP.
Στη συνέχεια αντιμετωπίστε την ασφάλεια μεταφοράς ξεχωριστά. Ένα proxy HTTP μπορεί να μεταφέρει HTTPS μέσω CONNECT. Μια σύνδεση TLS προς το proxy απαιτεί συμβατό ακροατή και ρύθμιση πελάτη. Η αποκρυπτογράφηση της κίνησης προορισμού είναι άλλη μια προαιρετική δυνατότητα.
Μην αντιγράφετε μια παλιά “λύση HTTPS” που ενεργοποιεί την παραγωγή πιστοποιητικών μόνο και μόνο επειδή η διεύθυνση προορισμού αρχίζει με HTTPS. Πρώτα διορθώστε τη συμφωνία μεταξύ πελάτη και ακροατή. Αν μετά παραμένει πραγματικό σφάλμα TLS, θα είναι πιο χρήσιμο σφάλμα για έρευνα.