ypiresies meta apo zitisi?

Giorgos Keramidas keramida at ceid.upatras.gr
Fri Oct 15 13:04:25 EEST 2004


On 2004-10-15 00:27, Alaios <alaios at yahoo.com> wrote:
> Eyxaristo gia tis apantiseis sas.. Exo akousei oti to
> inetd einai xeirotero apo to xinetd to opoio pleon
> xrisimopoieitai kai kairo. Mou kaneis omos entyposi
> pos  to slackware 9.1 pou einai kai prosfato exei
> akoma inet.

Και το Debian inetd έχει.  Το inetd του είναι BSD-derived, οπότε μπορείς, αν
δε σου φτάνουν τα features που έχει το inetd στο Slackware ή στο Debian, να
κάνεις port το inetd που έχει κάποιο από τα BSD στο σύστημά σου (αν δεν
υπάρχει ήδη τέτοιο port δηλαδή).  Οι νεότερες εκδόσεις του inetd στα BSD
λειτουργικά έχουν από όσο ξέρω όλα τα χαρακτηριστικά για τα οποία διαφημίζεται
ο xinetd ως "ανώτερος":

Από το www.xinetd.org αντιγράφω:

        ``xinetd is a secure replacement for inetd.''

Και το inetd των μοντέρνων BSD secure είναι.  Η τελευταία φορά που εμφανίζεται
critical bug στο inetd του FreeBSD είναι στις 06 Αυγ 1999[1].  Αντιθέτως το
xinetd είχε memory leaks μέχρι και τα 2003[2].

Οπότε το `xinetd is secure' είναι κάπως αμφισβητήσιμο.

[1] http://www.freebsd.org/cgi/query-pr.cgi?pr=bin/12998
[2] http://www.freebsd.org/cgi/query-pr.cgi?pr=ports/51134

        ``Has builtin access control for stopping connections from evil
        bad guys, or for only allowing connections from good guys.''

Αυτό το κάνουν και τα tcpwrappers με τα αρχεία hosts.{allow,deny}.  Το inetd
στο FreeBSD έχει δύο options (-w και -W), με τα οποία μπορεί να ενεργοποιηθεί
η υποστήριξη για έλεγχο των internal ή external inetd services μέσω
hosts.allow access controls.

Άρα ούτε αυτό είναι feature αποκλειστικά του xinetd.

        ``Can be compiled with builtin libwrap support. Use
        hosts.{allow|deny}! More efficient than using tcpd!''

Βλ. παραπάνω.

        ``Tcp wrappers are good, but can only see one connection at a
        time. xinetd can limit the rate of incoming connections, number
        of incoming connections from specific hosts, or total number of
        connections for a service.''

Οι πρόσφατες εκδόσεις του inetd στα BSD λειτουργικά έχουν rate limiting
δυνατότητες.  Μπορεί να ρυθμιστεί το connection rate limit τόσο ως
προκαθορισμένη τιμή για όλα τα services του inetd, όσο και για κάθε service
ξεχωριστά.  Επίσης μπορεί να ρυθμιστεί ο μέγιστος αριθμός ταυτόχρονων
συνδέσεων που θα δέχεται κάποιο service.

          ``Limit access to services based on access time of day.''

Αυτό δεν το κάνει το BSD inetd.

          ``You can have specific services bind to specific IP's. This
          lets you provide different services to internal clients than
          external clients.''

Πολλά inetd processes μπορούν να τρέξουν με διαφορετικό config το καθένα και
διαφορετικό IP address στο οποίο θα κάνουν bind.  Οπότε δεν είναι κάτι αυτό το
οποίο δεν κάνει το inetd.

        ``With the access control capabilities of limiting the rate of
        incoming connections, xinetd can respond to "port bombs" in a
        reasonable fashion.''

Δεν υπάρχει από όσο ξέρω rate limit που να ισχύει συνολικά για όλα τα
services, αλλά δεν είναι τίποτα τρομερό αυτό εφόσον μπορεί να μπει
προκαθορισμένο rate limit που να ισχύει για κάθε service.

        ``If one host seems to be hogging your services, you can limit
        the number of simultaneous connections from a host.''

Yeah, το ξέρουμε.  Και το inetd το κάνει αυτό.

        ``You can place limits on the size of the log files it creates,
        so people can't fill your disk.''

Το logging δεν είναι θέμα του inetd.  Κακώς προσπαθεί να υλοποιήσει τον δικό
του τροχό γιατί όταν αποδειχθεί ότι αυτός ο συγκεκριμένος τροχός είναι πιο
τετράγωνος από τον χλιδάτο τροχό μιας νέας έκδοσης του syslogd και του
logrotate, αυτός ο άχρηστος πλέον τροχός είναι... ε, είναι άχρηστος.

        ``You can configure the syslog logging level for each service
        independently.''

Δεν είναι πάντα καλό αυτό.  Έτσι μπορεί τα logs από ένα port scan attempt να
είναι σκόρπια σε περισσότερα από 1 logfiles και να μην είναι τόσο προφανές ότι
ανήκουν στην ίδια, μικρή χρονική περίοδο.

Επίσης, δεν είναι δουλειά του xinetd αυτό.  Τα services θα πρέπει να έχουν
κάποιο τρόπο να επιλέγει ο root με τι log level & facility γράφουν τα μηνύματά
τους ή να έχουν κάποιο standard <level,facility> ζευγάρι για να μην ψάχνεται
ένας administrator που στο διάολο έχουν πάει τα logs όταν κάθεται σε ένα
καινούριο μηχάνημα.

        ``If you don't want to use syslog logging, you can have each
        service log to a file, independent of any other service.''

Βλ. παραπάνω για επανεφεύρεση του τροχού.  Δεν είναι πάντα κακή ιδέα να
αντικαθιστάς το syslogd με δικό σου file-backed σύστημα καταγραφής.

        ``It can log the start and stop times for the connection, so you
        can determine how long a client used your services.''

Το timestamping των log files του syslog μπορεί άνετα να παίξει τον ίδιο ρόλο.
Δεν είναι τίποτα για το οποίο αξίζει να είναι περήφανος κανείς που κατάφερε να
το υλοποιήσει (πάλι).

        ``It can log extensive information about failed connection
        attempts.''

Αυτό ακούγεται ενδιαφέρον.

        ``The redir feature allows you to redirect a TCP stream to
        another host. This other host does not need to be an externally
        reachable machine. If you want to provide services on a NAT'd
        machine, run xinetd with the redir feature to redirect the
        service to a different host.''

Χρήσιμο αλλά σπανίως αναγκαίο feature.

        ``As of the xinetd 2.1.8.8pre* series, xinetd supports IPv6.''

Το ίδιο και το BSD inetd.

        ``You can print different banners to the client when they have a
        successful connection, when their connection attempt failed, and
        always regardless of connection status. This can help keep your
        users informed of changes, and why they may be having trouble
        accessing services.''

Άχρηστα φρου-φρου κι αρώματα.

Αν το xinetd δε μπορεί να κάνει allocate file descriptors ή μνήμη ή κάποιο
άλλο κρίσιμο resource και το connection αποτυγχάνει δεν υπάρχει σοβαρός λόγος
να πιστεύουμε ότι το banner printing θα πετύχει.  Ούτε προσφέρει ιδιαίτερα
μεγαλύτερη πληροφορία από το ``Connection refused.''  ή το ``Unable to connect
to remote host.''

Συνολικά, για να κλείσω, από τα 16 features τα οποία διαφημίζει το
xinetd ως selling points του:

        1 είναι όντως χρήσιμο
        1 φαίνεται ενδιαφέρον
        11 είναι διαθέσιμα και στο BSD inetd
        1 είναι διαθέσιμο μόνο στο xinetd
        2 είναι άχρηστα ή επικίνδυνα features

Μετά από όλα αυτά, δε βλέπω γιατί πρέπει να τρελλαίνεται κανείς για να βάλει
το xinetd, εκτός ίσως από αιτίες του στυλ ``the modern-BSD versions of inetd
were Not Implemented Here''.

- Γιώργος




More information about the Linux-greek-users mailing list