Είμαι από εκείνους τους τύπους που ΔΕΝ χρησιμοποιεί iptables, μάλιστα 9 στις 10 φορές το θεωρώ κι εντελώς άχρηστο σε ένα σύστημα. Παρόλα αυτά όμως, χρησιμοποιώ tcp wrappers & sshd σε μία high not-known port & ssh key authentication κ.λ.π.-κ.λ.π.
Το πρόβλημα με το tcp wrappers είναι ότι πρέπει να δηλώσεις τις στατικές IP’s που έχεις πράγμα το οποίο σε εμποδίζει να μπεις σε ένα σύστημα από μία άγνωστη τοποθεσία. Φυσικά εμποδίζει κι όλους τους “πονηρούς” τύπους, αλλά το πιο σημαντικό είναι ότι εμποδίζει κι εσένα όταν χρειαστεί να μπεις από κάπου “άγνωστα”.
Η λύση σε αυτό το γόρδιο δεσμό την προσφέρει το knock!
Λειτουργεί ως δαίμονας κι ακούει τα port knockings σε ένα σύστημα.
Έχει ένα εύκολο αρχείο ρυθμίσεων το οποίο μπορείς να τροποποιήσεις και σου δίνει την δυνατότητα να τρέχεις μια συγκεκριμένη εντολή (ή script ή whatever) όταν ενεργοποιηθεί ο “μυστικός” συνδυασμός χτυπημάτων.
Μιας κι όλα τα παραδείγματα είναι πάνω σε iptables, να προσφέρω με την σειρά μου ένα παράδειγμα βασισμένο σε tcp wrappers για το ssh:
[openSSH]
sequence = 7000,8000,9000
seq_timeout = 10
command = /bin/sed -i ’s/^(sshd.*)/1 %IP%/g’ /etc/hosts.allow
tcpflags = syn
Pretty Neat !
Saturday, May 15, 2010 - 18:09:14
Επειδή μετά από λίγο καιρό το hosts.allow μαζεύει αρκετές IPs που η πιθανότητα να τις ξαναχρησιμοποιήσω είναι μηδαμινές, προτείνω να κρατήσετε ένα backup το αρχικό αρχείο κι εν συνεχεία με ένα cron entry να αντιγράφετε το bak αρχείο στο /etc/hosts.allow.
Με αυτό τον τρόπο εάν “ξεχάσετε” μια IP ανοιχτά ssh sessions ΔΕΝ κόβονται, αλλά δεν θα επιτρέψουν νέες συνδέσεις από τυχόν αγνώστους.