Δωρεάν διακομιστής μεσολάβησης για επιχειρήσεις με εξουσιοδότηση τομέα

Δωρεάν διακομιστής μεσολάβησης για επιχειρήσεις με εξουσιοδότηση τομέα

pfSense+Squid με φιλτράρισμα https + Single sign-on (SSO) με φιλτράρισμα ομάδας Active Directory

Σύντομο υπόβαθρο

Η εταιρεία χρειαζόταν να εφαρμόσει έναν διακομιστή μεσολάβησης με δυνατότητα φιλτραρίσματος της πρόσβασης σε ιστότοπους (συμπεριλαμβανομένου του https) από ομάδες από το AD, έτσι ώστε οι χρήστες να μην εισάγουν πρόσθετους κωδικούς πρόσβασης και να μπορούν να διαχειρίζονται από τη διεπαφή ιστού. Καλή εφαρμογή, έτσι δεν είναι;

Η σωστή απάντηση θα ήταν να αγοράσετε λύσεις όπως το Kerio Control ή το UserGate, αλλά όπως πάντα δεν υπάρχουν χρήματα, αλλά υπάρχει ανάγκη.

Εδώ έρχεται να σώσει το παλιό καλό Squid, αλλά και πάλι - πού μπορώ να βρω μια διεπαφή ιστού; SAMS2; Ηθικά ξεπερασμένο. Εδώ έρχεται να σώσει το pfSense.

Περιγραφή

Αυτό το άρθρο θα περιγράψει πώς να ρυθμίσετε τις παραμέτρους του διακομιστή μεσολάβησης Squid.
Το Kerberos θα χρησιμοποιηθεί για την εξουσιοδότηση χρηστών.
Το SquidGuard θα χρησιμοποιηθεί για φιλτράρισμα κατά ομάδες τομέα.

Για την παρακολούθηση θα χρησιμοποιηθούν συστήματα παρακολούθησης Lightsquid, sqstat και εσωτερικών pfSense.
Θα λύσει επίσης ένα κοινό πρόβλημα που σχετίζεται με την εισαγωγή της τεχνολογίας single sign-on (SSO), δηλαδή εφαρμογές που προσπαθούν να σερφάρουν στο Διαδίκτυο κάτω από τον λογαριασμό πυξίδας με τον λογαριασμό συστήματος τους.

Προετοιμασία εγκατάστασης του Squid

Το pfSense θα ληφθεί ως βάση, Οδηγίες Εγκατάστασης.

Μέσα στο οποίο οργανώνουμε τον έλεγχο ταυτότητας στο ίδιο το τείχος προστασίας χρησιμοποιώντας λογαριασμούς τομέα. Οδηγίες.

Είναι πολύ σημαντικό!

Πριν ξεκινήσετε την εγκατάσταση του Squid, πρέπει να διαμορφώσετε τον διακομιστή DNS στο pfsense, να δημιουργήσετε μια εγγραφή A και μια εγγραφή PTR για αυτόν στον διακομιστή DNS μας και να διαμορφώσετε το NTP έτσι ώστε η ώρα να μην διαφέρει από την ώρα στον ελεγκτή τομέα.

Και στο δίκτυό σας, παρέχετε τη δυνατότητα στη διεπαφή WAN του pfSense να μεταβαίνει στο Διαδίκτυο και στους χρήστες του τοπικού δικτύου να συνδέονται στη διεπαφή LAN, συμπεριλαμβανομένων των θυρών 7445 και 3128 (στην περίπτωσή μου 8080).

Όλα είναι έτοιμα; Έχει δημιουργηθεί η σύνδεση LDAP με τον τομέα για εξουσιοδότηση στο pfSense και η ώρα είναι συγχρονισμένη; Εξαιρετική. Ήρθε η ώρα να ξεκινήσετε την κύρια διαδικασία.

Εγκατάσταση και προδιαμόρφωση

Τα Squid, SquidGuard και LightSquid θα εγκατασταθούν από τον διαχειριστή πακέτων pfSense στην ενότητα "System / Package Manager".

Μετά την επιτυχή εγκατάσταση, μεταβείτε στο "Services / Squid Proxy Server /" και πρώτα από όλα, στην καρτέλα Local Cache, ρυθμίστε την προσωρινή αποθήκευση, έβαλα τα πάντα στο 0, επειδή Δεν βλέπω πολύ νόημα στην προσωρινή αποθήκευση ιστότοπων, τα προγράμματα περιήγησης κάνουν εξαιρετική δουλειά με αυτό. Μετά τη ρύθμιση, πατήστε το κουμπί "Αποθήκευση" στο κάτω μέρος της οθόνης και αυτό θα μας δώσει τη δυνατότητα να κάνουμε βασικές ρυθμίσεις διακομιστή μεσολάβησης.

Οι κύριες ρυθμίσεις είναι οι εξής:

Δωρεάν διακομιστής μεσολάβησης για επιχειρήσεις με εξουσιοδότηση τομέα

Η προεπιλεγμένη θύρα είναι 3128, αλλά προτιμώ να χρησιμοποιήσω το 8080.

Οι επιλεγμένες παράμετροι στην καρτέλα Διασύνδεση διακομιστή μεσολάβησης καθορίζουν ποιες διεπαφές θα ακούει ο διακομιστής μεσολάβησής μας. Δεδομένου ότι αυτό το τείχος προστασίας είναι χτισμένο με τέτοιο τρόπο ώστε να φαίνεται στο Διαδίκτυο ως διεπαφή WAN, παρόλο που το LAN και το WAN μπορούν να βρίσκονται στο ίδιο τοπικό υποδίκτυο, προτείνω να χρησιμοποιήσετε το LAN για το διακομιστή μεσολάβησης.

Χρειάζεται Loopback για να λειτουργήσει το sqstat.

Παρακάτω θα βρείτε τις ρυθμίσεις Διαφανές (διαφανές) διακομιστή μεσολάβησης, καθώς και Φίλτρο SSL, αλλά δεν τις χρειαζόμαστε, ο διακομιστής μας δεν θα είναι διαφανής και για φιλτράρισμα https δεν θα αντικαταστήσουμε το πιστοποιητικό (έχουμε ροή εγγράφων, τράπεζα πελάτες, κ.λπ.), ας δούμε απλώς τη χειραψία.

Σε αυτό το στάδιο, πρέπει να πάμε στον ελεγκτή τομέα μας, να δημιουργήσουμε έναν λογαριασμό ελέγχου ταυτότητας σε αυτόν (μπορείτε επίσης να χρησιμοποιήσετε αυτόν που έχει ρυθμιστεί για έλεγχο ταυτότητας στο ίδιο το pfSense). Εδώ είναι ένας πολύ σημαντικός παράγοντας - εάν σκοπεύετε να χρησιμοποιήσετε κρυπτογράφηση AES128 ή AES256 - επιλέξτε τα κατάλληλα πλαίσια στις ρυθμίσεις του λογαριασμού σας.

Εάν ο τομέας σας είναι ένα πολύ περίπλοκο δάσος με μεγάλο αριθμό καταλόγων ή ο τομέας σας είναι .local, τότε είναι ΠΙΘΑΝΟ, αλλά όχι σίγουρο, ότι θα πρέπει να χρησιμοποιήσετε έναν απλό κωδικό πρόσβασης για αυτόν τον λογαριασμό, το σφάλμα είναι γνωστό, αλλά μπορεί απλά να μην λειτουργεί με σύνθετο κωδικό πρόσβασης, πρέπει να ελέγξετε μια συγκεκριμένη περίπτωση.

Δωρεάν διακομιστής μεσολάβησης για επιχειρήσεις με εξουσιοδότηση τομέα

Μετά από αυτό, δημιουργούμε ένα αρχείο κλειδιού για το kerberos, ανοίγουμε μια γραμμή εντολών με δικαιώματα διαχειριστή στον ελεγκτή τομέα και εισάγουμε:

# ktpass -princ HTTP/[email protected] -mapuser pfsense -pass 3EYldza1sR -crypto {DES-CBC-CRC|DES-CBC-MD5|RC4-HMAC-NT|AES256-SHA1|AES128-SHA1|All} -ptype KRB5_NT_PRINCIPAL -out C:keytabsPROXY.keytab

Όπου υποδεικνύουμε το FQDN pfSense, βεβαιωθείτε ότι τηρείτε την περίπτωση, εισάγετε τον λογαριασμό τομέα μας και τον κωδικό πρόσβασής του στην παράμετρο mapuser και στο crypto επιλέγουμε τη μέθοδο κρυπτογράφησης, χρησιμοποίησα το rc4 για εργασία και στο πεδίο -out επιλέγουμε όπου θα στείλει το τελικό αρχείο κλειδιού μας.
Αφού δημιουργήσουμε με επιτυχία το αρχείο κλειδιού, θα το στείλουμε στο pfSense μας, χρησιμοποίησα το Far για αυτό, αλλά μπορείτε επίσης να το κάνετε τόσο με εντολές όσο και με στόκο ή μέσω της διεπαφής web pfSense στην ενότητα "Γραμμή εντολών διάγνωσης".

Τώρα μπορούμε να επεξεργαστούμε/δημιουργούμε /etc/krb5.conf

Δωρεάν διακομιστής μεσολάβησης για επιχειρήσεις με εξουσιοδότηση τομέα

όπου το /etc/krb5.keytab είναι το αρχείο κλειδιού που δημιουργήσαμε.

Φροντίστε να ελέγξετε τη λειτουργία του kerberos χρησιμοποιώντας το kinit, εάν δεν λειτουργεί, δεν έχει νόημα να διαβάσετε περαιτέρω.

Διαμόρφωση ελέγχου ταυτότητας Squid και λίστας πρόσβασης χωρίς έλεγχο ταυτότητας

Έχοντας διαμορφώσει με επιτυχία τα kerberos, θα το στερεώσουμε στο Καλαμάρι μας.

Για να το κάνετε αυτό, μεταβείτε στον διακομιστή μεσολάβησης ServicesSquid και στις κύριες ρυθμίσεις κατεβείτε στο κάτω μέρος, εκεί θα βρείτε το κουμπί "Προηγμένες ρυθμίσεις".

Στο πεδίο Προσαρμοσμένες Επιλογές (Πριν από την Εξουσιοδότηση), πληκτρολογήστε:

#Хелперы
auth_param negotiate program /usr/local/libexec/squid/negotiate_kerberos_auth -s GSS_C_NO_NAME -k /usr/local/etc/squid/squid.keytab -t none
auth_param negotiate children 1000
auth_param negotiate keep_alive on
#Списки доступа
acl auth proxy_auth REQUIRED
acl nonauth dstdomain "/etc/squid/nonauth.txt" 
#Разрешения 
http_access allow nonauth 
http_access deny !auth
http_access allow auth

που auth_param negotiate program /usr/local/libexec/squid/negotiate_kerberos_auth - επιλέγει τον βοηθό ελέγχου ταυτότητας kerberos που χρειαζόμαστε.

Κλειδί -s με νόημα GSS_C_NO_NAME — ορίζει τη χρήση οποιουδήποτε λογαριασμού από το αρχείο κλειδιού.

Κλειδί -k με νόημα /usr/local/etc/squid/squid.keytab - καθορίζει να χρησιμοποιήσει αυτό το συγκεκριμένο αρχείο keytab. Στην περίπτωσή μου, αυτό είναι το ίδιο αρχείο keytab που δημιουργήσαμε, το οποίο αντέγραψα στον κατάλογο /usr/local/etc/squid/ και το μετονόμασα, επειδή το καλαμάρι δεν ήθελε να είναι φίλος με αυτόν τον κατάλογο, προφανώς δεν υπήρχαν αρκετά δικαιώματα.

Κλειδί -t με νόημα -κανένα - απενεργοποιεί τα κυκλικά αιτήματα στον ελεγκτή τομέα, γεγονός που μειώνει σημαντικά το φόρτο σε αυτόν εάν έχετε περισσότερους από 50 χρήστες.
Κατά τη διάρκεια της δοκιμής, μπορείτε επίσης να προσθέσετε το πλήκτρο -d - δηλαδή διαγνωστικά, θα εμφανιστούν περισσότερα αρχεία καταγραφής.
auth_param negotiate παιδιά 1000 - καθορίζει πόσες ταυτόχρονες διαδικασίες εξουσιοδότησης μπορούν να εκτελεστούν
auth_param negotiate keep_alive on - δεν επιτρέπει τη διακοπή της σύνδεσης κατά τη διάρκεια της μέτρησης της αλυσίδας εξουσιοδότησης
acl auth proxy_auth ΑΠΑΙΤΕΙΤΑΙ - δημιουργεί και απαιτεί μια λίστα ελέγχου πρόσβασης που περιλαμβάνει χρήστες που έχουν περάσει εξουσιοδότηση
acl nonauth dstdomain "/etc/squid/nonauth.txt" - ενημερώνουμε το καλαμάρι για τη λίστα πρόσβασης nonauth, η οποία περιέχει τομείς προορισμού, στους οποίους θα επιτρέπεται πάντα η πρόσβαση σε όλους. Δημιουργούμε το ίδιο το αρχείο και μέσα σε αυτό εισάγουμε τομείς στη μορφή

.whatsapp.com
.whatsapp.net

Το Whatsapp δεν χρησιμοποιείται μάταια ως παράδειγμα - είναι πολύ επιλεκτικό σχετικά με τον διακομιστή μεσολάβησης με έλεγχο ταυτότητας και δεν θα λειτουργήσει εάν δεν επιτρέπεται πριν από τον έλεγχο ταυτότητας.
http_access επιτρέπεται nonauth - να επιτρέπεται η πρόσβαση σε αυτήν τη λίστα σε όλους
http_access deny !auth - απαγορεύουμε την πρόσβαση σε μη εξουσιοδοτημένους χρήστες σε άλλους ιστότοπους
http_access επιτρέπεται auth - να επιτρέπεται η πρόσβαση σε εξουσιοδοτημένους χρήστες.
Αυτό είναι όλο, το ίδιο το καλαμάρι έχει ρυθμιστεί, τώρα ήρθε η ώρα να ξεκινήσετε το φιλτράρισμα ανά ομάδες.

Διαμόρφωση του SquidGuard

Μεταβείτε στο ServicesSquidGuard Filter Proxy.

Στις Επιλογές LDAP εισάγουμε τα δεδομένα του λογαριασμού μας που χρησιμοποιούνται για τον έλεγχο ταυτότητας kerberos, αλλά με την ακόλουθη μορφή:

CN=pfsense,OU=service-accounts,DC=domain,DC=local

Εάν υπάρχουν κενά ή μη λατινικοί χαρακτήρες, ολόκληρη αυτή η καταχώρηση θα πρέπει να περικλείεται σε μονά ή διπλά εισαγωγικά:

'CN=sg,OU=service-accounts,DC=domain,DC=local'
"CN=sg,OU=service-accounts,DC=domain,DC=local"

Στη συνέχεια, βεβαιωθείτε ότι έχετε επιλέξει αυτά τα πλαίσια:

Δωρεάν διακομιστής μεσολάβησης για επιχειρήσεις με εξουσιοδότηση τομέα

Για να διακόψετε το περιττό DOMAINpfsense DOMAIN.ΤΟΠΙΚΟ στο οποίο όλο το σύστημα είναι πολύ ευαίσθητο.

Τώρα πηγαίνουμε στο Group Acl και δεσμεύουμε τις ομάδες πρόσβασης τομέα μας, χρησιμοποιώ απλά ονόματα όπως group_0, group_1, κ.λπ. μέχρι το 3, όπου το 3 είναι η πρόσβαση μόνο στη λευκή λίστα και το 0 - όλα είναι δυνατά.

Οι ομάδες συνδέονται ως εξής:

ldapusersearch ldap://dc.domain.local:3268/DC=DOMAIN,DC=LOCAL?sAMAccountName?sub?(&(sAMAccountName=%s)(memberOf=CN=group_0%2cOU=squid%2cOU=service-groups%2cDC=DOMAIN%2cDC=LOCAL))

αποθηκεύστε την ομάδα μας, πηγαίνετε στους Times, εκεί δημιούργησα ένα κενό που σημαίνει ότι θα λειτουργεί πάντα, τώρα μεταβείτε στις Κατηγορίες στόχου και δημιουργήστε λίστες κατά την κρίση μας, αφού δημιουργήσουμε τις λίστες επιστρέφουμε στις ομάδες μας και μέσα στην ομάδα, χρησιμοποιήστε τα κουμπιά για να επιλέξετε ποιος μπορεί να πάει πού, και ποιος δεν μπορεί να πάει πού.

LightSquid και sqstat

Εάν κατά τη διαδικασία διαμόρφωσης επιλέξαμε ένα loopback στις ρυθμίσεις του squid και ανοίξαμε τη δυνατότητα πρόσβασης στο 7445 στο τείχος προστασίας τόσο στο δίκτυό μας όσο και στο ίδιο το pfSense, τότε όταν πάμε στο Diagnostics of Squid Proxy Reports, μπορούμε εύκολα να ανοίξουμε και τα δύο sqstat και Lighsquid, για το τελευταίο θα χρειαστούμε Στο ίδιο μέρος, βρείτε ένα όνομα χρήστη και έναν κωδικό πρόσβασης, και υπάρχει επίσης η ευκαιρία να επιλέξετε ένα σχέδιο.

Ολοκλήρωση

Το pfSense είναι ένα πολύ ισχυρό εργαλείο που μπορεί να κάνει πολλά πράγματα - τόσο ο διακομιστής μεσολάβησης κίνησης όσο και ο έλεγχος της πρόσβασης των χρηστών στο Διαδίκτυο είναι μόνο ένα κλάσμα της συνολικής λειτουργικότητας, ωστόσο, σε μια επιχείρηση με 500 μηχανές, αυτό έλυσε το πρόβλημα και εξοικονομήθηκε αγορά πληρεξούσιου.

Ελπίζω ότι αυτό το άρθρο θα βοηθήσει κάποιον να λύσει ένα πρόβλημα που είναι αρκετά σχετικό για μεσαίες και μεγάλες επιχειρήσεις.

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο