Hosts.allow – Εντολή Linux

Εύρεση των επιτρεπόμενων κεντρικών υπολογιστών σας

Πιθανότατα προσγειώσατε εδώ αναζητώντας έναν τρόπο να δείτε τους οικοδεσπότες (άλλους υπολογιστές) που επιτρέπεται να έχουν πρόσβαση στον υπολογιστή σας Linux Σύστημα. Λοιπόν, εκτός κι αν έχετε ήδη ρυθμίσει περιορισμούς, πιθανότατα οποιοσδήποτε υπολογιστής προσπαθεί, από προεπιλογή.

Στην πραγματικότητα, αυτό δεν είναι απολύτως αλήθεια. Χωρίς κανόνες που ορίζονται στο αρχείο /etc/hosts.allow ή στο /etc/hosts.deny one, ο υπολογιστής σας θα μεταβιβάσει τις συνδέσεις στις αντίστοιχες εφαρμογές τους. Έτσι, αν κάποιος προσπαθήσει να συνδεθεί SSH, η σύνδεση θα φτάσει στο σύστημα Linux όπου θα παραδοθεί στο SSH για σύνδεση. Εάν δεν παρέχονται τα κατάλληλα διαπιστευτήρια, η σύνδεση θα απορριφθεί.

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

Μπορείτε να ελέγξετε τους επιτρεπόμενους κεντρικούς υπολογιστές παραθέτοντας τα περιεχόμενα του αρχείου /etc/hosts.allow.

cat /etc/hosts.allow. 

Εάν δεν βλέπετε τίποτα εκεί, το σύστημά σας πιθανότατα θα επιτρέψει οποιαδήποτε σύνδεση.

Άντρες που εργάζονται σε έναν υπολογιστή σε ένα γραφείο
 Yuri_Arcurs/Getty Images

Χρησιμοποιώντας το αρχείο Hosts.allow

Το αρχείο /etc/hosts.allow σάς επιτρέπει να επιλέξετε ποιοι υπολογιστές μπορούν να έχουν πρόσβαση στο σύστημά σας. Στο αρχείο, μπορείτε να καθορίσετε απλούς κανόνες σε απλό κείμενο για να πείτε στον υπολογιστή σας πώς να χειρίζεται τις συνδέσεις. Για να ξεκινήσετε, δημιουργήστε έναν κανόνα που επιτρέπει σε οποιονδήποτε υπολογιστή να έχει όλες τις υπηρεσίες.

ΟΛΟΙ: ΟΛΟΙ. 

Είναι τόσο απλό. Στη συνέχεια, εάν θέλετε να εξαιρέσετε έναν προβληματικό υπολογιστή, μπορείτε να το κάνετε και αυτό.

ΟΛΟΙ: ΟΛΟΙ ΕΚΤΟΣ 192.168.1.110. 

Υπάρχουν πολλές άλλες λέξεις-κλειδιά που μπορείτε να χρησιμοποιήσετε για να χειριστείτε διαφορετικά σύνολα υπολογιστών. Για παράδειγμα, θα μπορούσατε να επιτρέψετε όλη την τοπική κυκλοφορία ως εξής:

ΟΛΑ: 192.168.1.0/24. 

Εναλλακτικά, θα μπορούσατε να χρησιμοποιήσετε τη λέξη-κλειδί "LOCAL".

ΟΛΟΙ: ΤΟΠΙΚΟΙ. 

Μπορείτε επίσης να χρησιμοποιήσετε ονόματα τομέα. Για παράδειγμα:

ΟΛΟΙ: .example.com. 

Μπορείτε να χρησιμοποιήσετε τη λέξη-κλειδί "EXCEPT" και εδώ για να εξαιρέσετε έναν δυνητικά προβληματικό υποτομέα.

ΟΛΟΙ: .example.com ΕΚΤΟΣ από το testing.example.com. 

Μπορείτε επίσης να καθορίσετε κανόνες για συγκεκριμένους δαίμονες. Έτσι, εάν θέλετε να ελέγξετε την πρόσβαση SSH, θα ορίσετε κανόνες για το 'sshd'.

sshd: ΤΟΠΙΚΟ. 

Το αρχείο hosts.allow υποστηρίζει την καταχώριση δαιμόνων στην ίδια γραμμή, εάν οι κανόνες τους είναι οι ίδιοι. Για παράδειγμα:

sshd, in.ftpd: ΤΟΠΙΚΟ. 

Παρατηρήστε το "in." μέρος στο "in.ftpd?" Αυτό σας επιτρέπει να καθορίσετε την εισερχόμενη κίνηση.

Στη συνέχεια, έχετε την επιλογή να τα συνδυάσετε όλα μαζί.

sshd, in.ftpd: ΤΟΠΙΚΟ ΕΚΤΟΣ 192.168.1.110. 

Αυτοί είναι οι πιο συνηθισμένοι τρόποι με τους οποίους θα χρησιμοποιούσατε το αρχείο /etc/hosts.allow στο σύστημά σας Linux. Για την πλήρη τεχνική ανάλυση του τι μπορείτε να κάνετε με το αρχείο /etc/hosts.allow, συνεχίστε στην επόμενη ενότητα.

Τεχνική Βλάβη

Αυτή η σελίδα εγχειριδίου περιγράφει το Linux ως μια απλή γλώσσα ελέγχου πρόσβασης που βασίζεται στον πελάτη (όνομα/διεύθυνση κεντρικού υπολογιστή, όνομα χρήστη) και υπηρέτης μοτίβα (όνομα διεργασίας, όνομα/διεύθυνση κεντρικού υπολογιστή). Παραδείγματα δίνονται στο τέλος. Ο ανυπόμονος αναγνώστης ενθαρρύνεται να μεταβεί στην ενότητα Παραδείγματα για μια γρήγορη εισαγωγή. Μια εκτεταμένη έκδοση της γλώσσας ελέγχου πρόσβασης περιγράφεται στο hosts_options (5) έγγραφο. Οι επεκτάσεις ενεργοποιούνται κατά το χρόνο δημιουργίας του προγράμματος με τη δημιουργία —DPROCESS_OPTIONS.

Στο κείμενο που ακολουθεί, δαίμονας είναι το όνομα διεργασίας μιας διεργασίας δαίμονα δικτύου και πελάτης είναι το όνομα και/ή η διεύθυνση μιας υπηρεσίας που ζητά οικοδεσπότη. Τα ονόματα διεργασιών δαίμονα δικτύου καθορίζονται στο αρχείο διαμόρφωσης inetd.

Αρχεία ελέγχου πρόσβασης

Το λογισμικό ελέγχου πρόσβασης συμβουλεύεται δύο αρχεία. Η αναζήτηση σταματά στον πρώτο αγώνα.

Η πρόσβαση θα παραχωρηθεί όταν ένα ζεύγος (δαίμονας, πελάτης) ταιριάζει με μια καταχώρηση στο /etc/hosts.allowαρχείο.

Διαφορετικά, η πρόσβαση θα απαγορεύεται όταν ένα ζεύγος (δαίμονας, πελάτης) ταιριάζει με μια καταχώρηση στο/etc/hosts.deny αρχείο.

Διαφορετικά, θα επιτραπεί η πρόσβαση.

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

Κανόνες ελέγχου πρόσβασης

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

Ένας χαρακτήρας νέας γραμμής αγνοείται όταν προηγείται ένας χαρακτήρας ανάστροφης κάθετου. Αυτό σας επιτρέπει να σπάσετε μεγάλες ουρές ώστε να είναι ευκολότερο να τις επεξεργαστείτε.

Οι κενές γραμμές ή γραμμές που ξεκινούν με χαρακτήρα «#» αγνοούνται. Αυτό σας επιτρέπει να εισάγετε σχόλια και κενό διάστημα, έτσι ώστε οι πίνακες να είναι πιο ευανάγνωστοι.

Όλες οι άλλες γραμμές θα πρέπει να πληρούν την ακόλουθη μορφή, τα πράγματα μεταξύ [] είναι προαιρετικά:

daemon_list: client_list [: shell_command ]

daemon_list είναι μια λίστα με ένα ή περισσότερα ονόματα διεργασιών δαίμονα (τιμές argv[0]) ή χαρακτήρες μπαλαντέρ (βλ. παρακάτω).

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

Οι πιο σύνθετες μορφές daemon@host και user@host επεξηγούνται στις ενότητες για τα μοτίβα τελικού σημείου διακομιστή και τις αναζητήσεις ονομάτων χρήστη πελάτη, αντίστοιχα.

Τα στοιχεία της λίστας πρέπει να διαχωρίζονται με κενά ή/και κόμματα.

Με την εξαίρεση του Αναζητήσεις ομάδας δικτύου NIS (YP)., όλοι οι έλεγχοι ελέγχου πρόσβασης δεν κάνουν διάκριση πεζών-κεφαλαίων.

Μοτίβα

Η γλώσσα ελέγχου πρόσβασης υλοποιεί τα ακόλουθα μοτίβα:

Μια συμβολοσειρά που ξεκινά με ένα `. χαρακτήρας. Ένα όνομα κεντρικού υπολογιστή ταιριάζει εάν τα τελευταία στοιχεία του ονόματός του ταιριάζουν με το καθορισμένο μοτίβο. Για παράδειγμα, το μοτίβο ".tue.nl" ταιριάζει με το όνομα κεντρικού υπολογιστή "wzv.win.tue.nl".

Μια συμβολοσειρά που τελειώνει με ένα `. χαρακτήρας. Μια διεύθυνση κεντρικού υπολογιστή αντιστοιχίζεται εάν τα πρώτα αριθμητικά της πεδία ταιριάζουν με τη δεδομένη συμβολοσειρά. Για παράδειγμα, το μοτίβο "131.155." ταιριάζει με τη διεύθυνση (σχεδόν) κάθε κεντρικού υπολογιστή στο δίκτυο του Πανεπιστημίου του Αϊντχόβεν (131.155.x.x).

Μια συμβολοσειρά που ξεκινά με χαρακτήρα «@» αντιμετωπίζεται ως όνομα ομάδας δικτύου NIS (πρώην YP). ΕΝΑ όνομα κεντρικού υπολογιστή αντιστοιχίζεται εάν είναι μέλος υποδοχής της καθορισμένης ομάδας δικτύου. Οι αντιστοιχίσεις Netgroup δεν υποστηρίζονται για ονόματα διεργασιών δαίμονα ή για ονόματα χρηστών πελατών.

Μια έκφραση της μορφής «n.n.n.n/m.m.m.m» ερμηνεύεται ως ζεύγος «δίχτυ/μάσκα». Μια διεύθυνση κεντρικού υπολογιστή IPv4 αντιστοιχίζεται εάν το "net" είναι ίσο με το bit AND της διεύθυνσης και της "μάσκας". Για παράδειγμα, το μοτίβο δικτύου/μάσκας «131.155.72.0/255.255.254.0» αντιστοιχεί σε κάθε διεύθυνση στην περιοχή «131.155.72.0» έως «131.155.73.255».

Μια έκφραση της μορφής «[n: n: n: n: n: n: n: n]/m» ερμηνεύεται ως ζεύγος «[net]/prefixlen». Μια διεύθυνση κεντρικού υπολογιστή IPv6 αντιστοιχίζεται εάν τα bit "prefixlen" του "net" είναι ίσα με τα bit "prefixlen" της διεύθυνσης. Για παράδειγμα, το μοτίβο [net]/prefixlen «[3ffe: 505:2:1::]/64» ταιριάζει με κάθε διεύθυνση στην περιοχή «3ffe: 505:2:1::» έως «3ffe: 505:2: 1:φφφ: φφφ: φφφ: φφφ».

Μια συμβολοσειρά που ξεκινά με χαρακτήρα `/' αντιμετωπίζεται ως α όνομα αρχείου. Ένα όνομα ή διεύθυνση κεντρικού υπολογιστή αντιστοιχίζεται εάν ταιριάζει με οποιοδήποτε όνομα κεντρικού υπολογιστή ή μοτίβο διεύθυνσης που παρατίθεται στο ονομαζόμενο αρχείο. Η μορφή αρχείου είναι μηδέν ή περισσότερες γραμμές με μηδέν ή περισσότερα μοτίβα ονόματος κεντρικού υπολογιστή ή διεύθυνσης διαχωρισμένα με κενό διάστημα. Ένα μοτίβο ονόματος αρχείου μπορεί να χρησιμοποιηθεί οπουδήποτε μπορεί να χρησιμοποιηθεί ένα όνομα κεντρικού υπολογιστή ή ένα μοτίβο διεύθυνσης.

Μπαλαντέρ "*" και ";" μπορεί να χρησιμοποιηθεί για την αντιστοίχιση ονομάτων κεντρικών υπολογιστών ή διευθύνσεις IP. Αυτή η μέθοδος αντιστοίχισης δεν μπορεί να χρησιμοποιηθεί σε συνδυασμό με αντιστοίχιση «net/mask», αντιστοίχιση ονόματος κεντρικού υπολογιστή που αρχίζει με «». ή διεύθυνση IP που αντιστοιχεί σε «.».

Μπαλαντέρ

Η γλώσσα ελέγχου πρόσβασης υποστηρίζει ρητούς χαρακτήρες μπαλαντέρ, όπως:

  • 'ΟΛΑ' — Ο γενικός χαρακτήρας μπαλαντέρ, πάντα ταιριάζει.
  • 'ΤΟΠΙΚΟΣ' — Ταιριάζει με οποιονδήποτε κεντρικό υπολογιστή του οποίου το όνομα δεν περιέχει χαρακτήρα κουκκίδας.
  • 'ΑΓΝΩΣΤΟΣ' — Ταιριάζει με οποιονδήποτε χρήστη του οποίου το όνομα είναι άγνωστο και ταιριάζει με οποιονδήποτε υπολογιστή του οποίου το όνομα ή η διεύθυνση είναι άγνωστη. Αυτό το μοτίβο θα πρέπει να χρησιμοποιείται με προσοχή: τα ονόματα κεντρικών υπολογιστών ενδέχεται να μην είναι διαθέσιμα λόγω προσωρινών προβλημάτων διακομιστή ονομάτων. ΕΝΑ διεύθυνση δικτύου δεν θα είναι διαθέσιμο όταν το λογισμικό δεν μπορεί να καταλάβει σε ποιον τύπο δικτύου μιλάει.
  • 'ΓΝΩΣΤΟΣ' — Ταιριάζει με οποιονδήποτε χρήστη του οποίου το όνομα είναι γνωστό και ταιριάζει με οποιονδήποτε κεντρικό υπολογιστή του οποίου το όνομα και η διεύθυνση είναι γνωστή. Αυτό το μοτίβο θα πρέπει να χρησιμοποιείται με προσοχή: τα ονόματα κεντρικών υπολογιστών ενδέχεται να μην είναι διαθέσιμα λόγω προσωρινών προβλημάτων διακομιστή ονομάτων. Μια διεύθυνση δικτύου δεν θα είναι διαθέσιμη όταν το λογισμικό δεν μπορεί να καταλάβει σε ποιον τύπο δικτύου μιλάει.
  • 'ΠΑΡΑΝΟΪΚΟΣ' — Ταιριάζει με οποιονδήποτε κεντρικό υπολογιστή του οποίου το όνομα δεν ταιριάζει με τη διεύθυνσή του. Όταν το tcpd δημιουργείται με -DPARANOID (προεπιλεγμένη λειτουργία), απορρίπτει αιτήματα από τέτοιους πελάτες ακόμη και πριν κοιτάξει τους πίνακες ελέγχου πρόσβασης. Δημιουργήστε χωρίς -DPARANOID όταν θέλετε περισσότερο έλεγχο σε τέτοια αιτήματα.

'ΧΕΙΡΙΣΤΕΣ'

  • 'ΕΚΤΟΣ' —Η προβλεπόμενη χρήση έχει τη μορφή: «list_1 EXCEPT list_2». αυτή η κατασκευή ταιριάζει με οτιδήποτε ταιριάζει λίστα_1 εκτός αν ταιριάζει λίστα_2. Ο τελεστής EXCEPT μπορεί να χρησιμοποιηθεί σε daemon_lists και client_lists. Ο τελεστής EXCEPT μπορεί να είναι ένθετος: εάν η γλώσσα ελέγχου επιτρέπει τη χρήση παρενθέσεων, το "a EXCEPT b EXCEPT c" θα αναλύεται ως "(a EXCEPT (b EXCEPT c))".
  • Εντολές Shell —Εάν ο κανόνας ελέγχου πρόσβασης πρώτης αντιστοίχισης περιέχει μια εντολή φλοιού, αυτή η εντολή υποβάλλεται σε %αντικαταστάσεις (δείτε την επόμενη ενότητα). Το αποτέλεσμα εκτελείται από α /bin/sh θυγατρική διαδικασία με τυπική είσοδο, έξοδο και σφάλμα συνδεδεμένα με /dev/null. Καθορίστε ένα «&» στο τέλος του εντολή τερματικού εάν δεν θέλετε να περιμένετε μέχρι να ολοκληρωθεί. Οι εντολές φλοιού δεν πρέπει να βασίζονται στη ρύθμιση PATH του inetd. Αντίθετα, θα πρέπει να χρησιμοποιούν απόλυτα ονόματα μονοπατιών ή θα πρέπει να ξεκινούν με μια ρητή PATH=όποια δήλωση.

ο hosts_optionsΤο έγγραφο (5) περιγράφει μια εναλλακτική γλώσσα που χρησιμοποιεί το πεδίο εντολών φλοιού με διαφορετικό και ασυμβίβαστο τρόπο.

% Επεκτάσεις

Οι ακόλουθες επεκτάσεις είναι διαθέσιμες στις εντολές φλοιού:

  • %a (%A) — Ο πελάτης (διακομιστής) πλήθος διεύθυνση.
  • %ντο — Πληροφορίες πελάτη: user@host, user@address, όνομα κεντρικού υπολογιστή ή απλώς διεύθυνση, ανάλογα με το πόσες πληροφορίες είναι διαθέσιμες.
  • %ρε — Το όνομα διεργασίας δαίμονα (τιμή argv[0]).
  • %h (%H) — Το όνομα κεντρικού υπολογιστή πελάτη (διακομιστής) ή η διεύθυνση, εάν το όνομα κεντρικού υπολογιστή δεν είναι διαθέσιμο.
  • %n (%N) — Το όνομα κεντρικού υπολογιστή πελάτη (διακομιστή) (ή "άγνωστο" ή "παρανοϊκό").
  • — Το αναγνωριστικό της διαδικασίας του δαίμονα.
  • %μικρό — Πληροφορίες διακομιστή: daemon@host, daemon@address ή απλώς όνομα δαίμονα, ανάλογα με το πόσες πληροφορίες είναι διαθέσιμες.
  • %u — Το όνομα χρήστη πελάτη (ή "άγνωστο").
  • %% — Επεκτείνεται σε έναν μόνο χαρακτήρα «%».

Οι χαρακτήρες σε % επεκτάσεις που μπορεί να μπερδέψουν το κέλυφος αντικαθίστανται από υπογράμμιση.

Μοτίβα τελικού σημείου διακομιστή

Για να διακρίνετε τους πελάτες με βάση τη διεύθυνση δικτύου στην οποία συνδέονται, χρησιμοποιήστε μοτίβα της φόρμας:

process_name@host_pattern: client_list... 

Μοτίβα όπως αυτά μπορούν να χρησιμοποιηθούν όταν το μηχάνημα έχει διαφορετικές διευθύνσεις Διαδικτύου με διαφορετικά ονόματα κεντρικού υπολογιστή Διαδικτύου. Οι πάροχοι υπηρεσιών μπορούν να χρησιμοποιήσουν αυτήν τη δυνατότητα για να προσφέρουν αρχεία FTP, GOPHER ή WWW με ονόματα Διαδικτύου που μπορεί ακόμη και να ανήκουν σε διαφορετικούς οργανισμούς. Δείτε επίσης την επιλογή 'twist' στο έγγραφο hosts_options (5). Ορισμένα συστήματα (Solaris, FreeBSD) μπορούν να έχουν περισσότερες από μία διευθύνσεις Διαδικτύου σε μία φυσική διεπαφή. με άλλα συστήματα, ίσως χρειαστεί να καταφύγετε σε ψευδοδιεπαφές SLIP ή PPP που βρίσκονται σε έναν αποκλειστικό χώρο διευθύνσεων δικτύου.

Το host_pattern υπακούει στους ίδιους κανόνες σύνταξης με τα ονόματα και τις διευθύνσεις κεντρικών υπολογιστών στο πλαίσιο client_list. Συνήθως, οι πληροφορίες τελικού σημείου διακομιστή είναι διαθέσιμες μόνο με υπηρεσίες προσανατολισμένες στη σύνδεση.

Αναζήτηση ονόματος χρήστη πελάτη

Όταν ο κεντρικός υπολογιστής-πελάτης υποστηρίζει το πρωτόκολλο RFC 931 ή έναν από τους απογόνους του (TAP, IDENT, RFC 1413), τα προγράμματα περιτυλίγματος μπορούν να ανακτήσουν πρόσθετες πληροφορίες σχετικά με τον κάτοχο μιας σύνδεσης. Οι πληροφορίες ονόματος χρήστη πελάτη, όταν είναι διαθέσιμες, καταγράφονται μαζί με το όνομα κεντρικού υπολογιστή πελάτη και μπορούν να χρησιμοποιηθούν για την αντιστοίχιση μοτίβων όπως:

daemon_list:... user_pattern@host_pattern... 

Τα περιτυλίγματα δαίμονα μπορούν να ρυθμιστούν κατά τη στιγμή της μεταγλώττισης ώστε να πραγματοποιούν αναζητήσεις ονόματος χρήστη βάσει κανόνων (προεπιλογή) ή να ανακρίνουν πάντα τον κεντρικό υπολογιστή-πελάτη. Στην περίπτωση αναζητήσεων ονόματος χρήστη βάσει κανόνων, ο παραπάνω κανόνας θα προκαλούσε αναζήτηση ονόματος χρήστη μόνο όταν και τα δύο daemon_list και το host_patternαγώνας.

Ένα μοτίβο χρήστη έχει την ίδια σύνταξη με ένα μοτίβο διαδικασίας δαίμονα, επομένως ισχύουν οι ίδιοι χαρακτήρες μπαλαντέρ (δεν υποστηρίζεται η ιδιότητα μέλους ομάδας δικτύου). Ωστόσο, δεν πρέπει να παρασυρόμαστε με αναζητήσεις ονομάτων χρήστη.

Οι πληροφορίες ονόματος χρήστη πελάτη δεν είναι αξιόπιστες όταν χρειάζονται περισσότερο, δηλαδή όταν το σύστημα πελάτη έχει παραβιαστεί. Γενικά, το ALL και το (ΜΗ)ΓΝΩΣΤΟ είναι τα μόνα μοτίβα ονομάτων χρήστη που έχουν νόημα.

Οι αναζητήσεις ονόματος χρήστη είναι δυνατές μόνο με υπηρεσίες που βασίζονται σε TCP και μόνο όταν ο κεντρικός υπολογιστής-πελάτης εκτελεί έναν κατάλληλο δαίμονα. σε όλες τις άλλες περιπτώσεις το αποτέλεσμα είναι «άγνωστο».

Μια γνωστή UNIX Το σφάλμα του πυρήνα μπορεί να προκαλέσει απώλεια της υπηρεσίας όταν οι αναζητήσεις ονόματος χρήστη αποκλείονται από ένα τείχος προστασίας. Το έγγραφο wrapper README περιγράφει μια διαδικασία για να μάθετε εάν ο πυρήνας σας έχει αυτό το σφάλμα.

Οι αναζητήσεις ονομάτων χρήστη ενδέχεται να προκαλέσουν αξιοσημείωτες καθυστερήσεις για χρήστες που δεν ανήκουν στο UNIX. Το προεπιλεγμένο χρονικό όριο για την αναζήτηση ονομάτων χρήστη είναι 10 δευτερόλεπτα: πολύ σύντομο για να αντιμετωπίσει τα αργά δίκτυα, αλλά αρκετά μεγάλο για να εκνευρίσει τους χρήστες Η/Υ.

Οι επιλεκτικές αναζητήσεις ονόματος χρήστη μπορούν να μετριάσουν το τελευταίο πρόβλημα. Για παράδειγμα, ένας κανόνας όπως:

daemon_list: @pcnetgroup ALL@ALL. 

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

Ανίχνευση επιθέσεων πλαστογράφησης διευθύνσεων

Ένα ελάττωμα στη γεννήτρια ακολουθιών αριθμών πολλών Υλοποιήσεις TCP/IP επιτρέπει στους εισβολείς να μιμούνται εύκολα αξιόπιστους κεντρικούς υπολογιστές και να εισβάλλουν μέσω, για παράδειγμα, της υπηρεσίας απομακρυσμένου κελύφους. Η υπηρεσία IDENT (RFC931 κ.λπ.) μπορεί να χρησιμοποιηθεί για τον εντοπισμό τέτοιων και άλλων επιθέσεων πλαστογράφησης διευθύνσεων κεντρικού υπολογιστή.

Πριν αποδεχτούν ένα αίτημα πελάτη, τα περιτυλίγματα μπορούν να χρησιμοποιήσουν την υπηρεσία IDENT για να ανακαλύψουν ότι ο πελάτης δεν έστειλε καθόλου το αίτημα. Όταν ο κεντρικός υπολογιστής πελάτη παρέχει υπηρεσία IDENT, ένα αρνητικό αποτέλεσμα αναζήτησης IDENT (ο πελάτης ταιριάζει με το 'UNKNOWN@host') αποτελεί ισχυρή απόδειξη επίθεσης πλαστογράφησης κεντρικού υπολογιστή.

Ένα θετικό αποτέλεσμα αναζήτησης IDENT (ο πελάτης ταιριάζει με το 'KNOWN@host') είναι λιγότερο αξιόπιστο. Είναι δυνατό για έναν εισβολέα να πλαστογραφήσει τόσο τη σύνδεση πελάτη όσο και την αναζήτηση IDENT, αν και κάτι τέτοιο είναι πολύ πιο δύσκολο από την πλαστογράφηση μιας σύνδεσης πελάτη. Μπορεί επίσης να είναι ότι ο διακομιστής IDENT του πελάτη λέει ψέματα.

Οι αναζητήσεις IDENT δεν λειτουργούν με υπηρεσίες UDP.

Περισσότερα Παραδείγματα

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

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

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

Κυρίως κλειστό

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

Η προεπιλεγμένη πολιτική (χωρίς πρόσβαση) υλοποιείται με ένα ασήμαντο αρχείο άρνησης:

/etc/hosts.deny:

ΟΛΟΙ: ΟΛΟΙ. 

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

Οι ρητά εξουσιοδοτημένοι κεντρικοί υπολογιστές παρατίθενται στο αρχείο επιτρεπόμενων. Για παράδειγμα:

/etc/hosts.allow:

ΟΛΟΙ: ΤΟΠΙΚΟ @some_netgroup
ΟΛΟΙ: .foobar.edu ΕΚΤΟΣ από terminalserver.foobar.edu.

Ο πρώτος κανόνας επιτρέπει την πρόσβαση από κεντρικούς υπολογιστές στο τοπικός τομέας (όχι «.» στο όνομα του κεντρικού υπολογιστή) και από μέλη του some_netgroup netgroup. Ο δεύτερος κανόνας επιτρέπει την πρόσβαση από όλους τους κεντρικούς υπολογιστές στοfoobar.edu τομέα (προσέξτε την κύρια κουκκίδα), με εξαίρεση το terminalserver.foobar.edu.

Κυρίως Ανοιχτό

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

Η προεπιλεγμένη πολιτική (χορηγήθηκε πρόσβαση) καθιστά το αρχείο άδειας περιττό, ώστε να μπορεί να παραλειφθεί. Οι ρητά μη εξουσιοδοτημένοι κεντρικοί υπολογιστές παρατίθενται στο αρχείο άρνησης. Για παράδειγμα:

/etc/hosts.deny:

ΟΛΟΙ: some.host.name, .some.domain
ΟΛΟΙ: ΟΛΟΙ ΕΚΤΟΣ in.fingerd: other.host.name, .other.domain.

Ο πρώτος κανόνας αρνείται σε ορισμένους κεντρικούς υπολογιστές και τομείς όλες τις υπηρεσίες. ο δεύτερος κανόνας εξακολουθεί να επιτρέπει αιτήματα δακτύλων από άλλους κεντρικούς υπολογιστές και τομείς.

Booby Traps

Το επόμενο παράδειγμα το επιτρέπει αιτήματα tftp από κεντρικούς υπολογιστές στον τοπικό τομέα (προσέξτε την κύρια κουκκίδα). Αιτήματα από οποιονδήποτε άλλο οικοδεσπότη απορρίπτονται. Αντί για το αρχείο που ζητήθηκε, αποστέλλεται μια δακτυλική ανίχνευση στον παραβάτη κεντρικό υπολογιστή. Το αποτέλεσμα ταχυδρομείται στον υπερχρήστη.

/etc/hosts.allow:

in.tftpd: ΤΟΠΙΚΟ, .my.domain
/etc/hosts.deny:
in.tftpd: ALL: spawn (/some/where/safe_finger -l @%h | \
/usr/ucb/mail -s %d-%h ρίζα) &

Η εντολή safe_finger συνοδεύεται από το περιτύλιγμα tcpd και θα πρέπει να εγκατασταθεί σε κατάλληλο μέρος. Περιορίζει πιθανή ζημιά από δεδομένα που αποστέλλονται από τον απομακρυσμένο διακομιστή δακτύλων. Παρέχει καλύτερη προστασία από την τυπική εντολή δακτύλου.

Η επέκταση των ακολουθιών %h (κεντρικός υπολογιστής πελάτη) και %d (όνομα υπηρεσίας) περιγράφεται στην ενότητα για τις εντολές φλοιού.

Μην παγιδεύετε τον δαίμονα των δακτύλων σας, εκτός κι αν είστε προετοιμασμένοι για άπειρους βρόχους δακτύλων.

Στο δίκτυο συστήματα τείχους προστασίας αυτό το κόλπο μπορεί να μεταφερθεί ακόμη περισσότερο. Το τυπικό τείχος προστασίας δικτύου παρέχει μόνο ένα περιορισμένο σύνολο υπηρεσιών στον εξωτερικό κόσμο. Όλες οι άλλες υπηρεσίες μπορούν να "παρουσιαστούν με σφάλματα" όπως το παραπάνω παράδειγμα tftp. Το αποτέλεσμα είναι ένα εξαιρετικό σύστημα έγκαιρης προειδοποίησης.

Δείτε επίσης

Πρόγραμμα tcpd (8) tcp/ip daemon wrapper.
tcpdchk (8), tcpdmatch (8), δοκιμαστικά προγράμματα.

Χρησιμοποιήστε το άνδρας εντολή (% άνδρας) για να δείτε πώς χρησιμοποιείται μια εντολή στον συγκεκριμένο υπολογιστή σας.