Fina είναι ένα απλό, στιβαρό σενάριο κελύφους που φορτώνει το iptables κανόνες από έναν κατάλογο κανόνων. Ως εκ τούτου, δεν ασχολείται με τη δημιουργία κανόνων για σας, αυτό ακριβώς σας βοηθάει να τα φορτώσετε σε ένα ισχυρό τρόπο.
Αν κάτι αποτύχει, Fina θα φορτώσει παλιά κανόνων σας. Το έργο Fina επιτρέπει επίσης πιο πλούσια σχολιάζοντας στα αρχεία κανόνες από iptables. Ακόμα, μπορεί να χειριστεί οτιδήποτε iptables-restore μπορεί.
Fina είναι το αποτέλεσμα της συνεργασίας με διάφορες προσπάθειες για την περιτύλιξη iptables
(Μάλλον: Netfilter) με σενάρια και άλλες υποδομές, προκειμένου να
κάνουν την καθημερινή διαχείριση της ευκολότερη κανόνες.
Λόγω της δουλειάς μου, έχω πάντα χρειάζεται ένα σενάριο που μπορεί εύκολα να αυτοματοποιηθεί
εξ αποστάσεως. Δεν έχει σημασία πόσο μεγάλη είναι ένα σενάριο είναι, αν παίρνει τις ηλικίες για να ενημερώσετε
δεκατέσσερα διακομιστές web του συμπλέγματος, είναι άχρηστα για μένα.
Μια άλλη βασική ανάγκη για ένα τέτοιο σενάριο είναι ότι θα πρέπει να είναι ασφαλής από
default - χωρίς να μπουν τα admins τον τρόπο πάρα πολύ. Δηλαδή,
δημιουργεί μόνο κανόνες που ο διαχειριστής ρυθμίζει ρητά. Φυσικά, ένα
/ παρέχεται λογικό σύνολο των ρυθμίσεων / παραδείγματα.
Η τρίτη σκληρή απαίτηση είναι ότι το σενάριο θα πρέπει να είναι σε θέση να κάνει
όλα Netfilter μπορεί. Αυτό σημαίνει ότι δεν έχει σημασία πόσο περίπλοκο σας
ΝΑΤ και PREROUTING ανάγκες μαγεία είναι, το σενάριο πρέπει να είναι σε θέση να χειριστεί
αυτό. Μια παρενέργεια αυτού είναι, ότι πρέπει να χειριστεί τεράστια σύνολα φίλτρο
τουλάχιστον τόσο εύκολα όσο η ίδια Netfilter.
Η τέταρτη προϋπόθεση είναι λίγο περίπλοκη. Μερικές φορές, μπορεί να είναι
είναι απαραίτητο να αλλάξετε τις μεταβλητές στο / proc μετά ενότητες έχουν φορτωθεί
αλλά πριν από τους κανόνες που αναφέρονται στις εν λόγω μονάδες προστίθενται. Επίσης, μερικές φορές
μπορεί να είναι απαραίτητο, για να κάνουμε πράγματα μετά το φίλτρο πακέτου έχει
φορτωμένο. Για το σκοπό αυτό, το / etc / Fina μπορεί να περιέχει δύο σενάρια που ονομάζεται
"Pre-up.sh" και "post-up.sh». Αν υπάρχουν αυτά τα αρχεία και να είναι εκτελέσιμο,
διενεργούνται κατά τις αντίστοιχες χρονικές στιγμές.
Τέλος, το σενάριο θα πρέπει να είναι ελαφρύ, με όσο το δυνατόν λιγότερα εξωτερικά
εξαρτήσεις δυνατόν. Επίσης, το ίδιο το σενάριο πρέπει να είναι τόσο απλή
και μικρή όσο είναι δυνατόν. Αυτό οφείλεται στο γεγονός ότι απλά πράγματα έχουν λιγότερες τρόπους
το οποίο μπορεί να αποτύχει.
Σχέδιο
Λόγω των τεσσάρων σκληρών απαιτήσεων που αναφέρονται παραπάνω, το σενάριο δεν
πραγματικά "γνωρίζουν" όλα αυτά πολύ για Netfilter. Με αυτό τον τρόπο, είναι εύκολα
ενσωματώνει όλα Netfilter μπορεί να κάνει - χωρίς να έχει ένα κινούμενο
στόχος των προδιαγραφών να τηρούν.
Βασικά, Fina συναρμολογεί iptables-restore συμβατό χωματερή κανόνα από
αποσπάσματα διαμορφώνουν / επιμέλεια από τον διαχειριστή του μηχανήματος. Στη συνέχεια, προσπαθεί να
φορτώσει το σύνολο. Αν αυτό αποτύχει καθ 'οιονδήποτε τρόπο, το παλιό σετ κανόνας είναι
αποκατασταθεί.
Φυσικά, αυτό σημαίνει ότι δεν Fina δίπλα σε τίποτα για το διαχειριστή
όταν πρόκειται για την / παραγωγής / κανόνες σχετικά με το μηχάνημα. Αυτή είναι μια συνειδητή
απόφαση. Για το ένα, όποιος χρησιμοποιεί / διαμορφώνει ένα φίλτρο πακέτου θα πρέπει να είναι
επίγνωση όλων των συνεπειών των πράξεών του. Αυτό περιλαμβάνει για παράδειγμα
γνωρίζοντας γιατί είναι κακό να πέσει όλη την κυκλοφορία ICMP.
Ένας άλλος λόγος είναι ότι η παροχή παραδείγματα ή ακόμα και συνταγές για το πακέτο
Τα φίλτρα είναι κάτι / τεκμηρίωση / πρέπει να το κάνουμε. Δεν είναι μια καλή ιδέα να
έχουν ένα μαύρο κουτί κάνει "απλά το σωστό". Συνήθως, υπάρχει ένα
μη-τετριμμένη ποσό των χρηστών για τους οποίους το σωστό πράγμα δεν μπορεί να είναι εύκολα
μαντέψατε.
Πως δουλεύει
Αν Fina έχει ξεκινήσει μέσω του script εκκίνησης, ένα κρίσιμο επιπλέον βήμα είναι
λαμβάνονται: το σενάριο προσπαθεί να φορτώσει /etc/fina/minimal.rules με
iptables-restore. Αυτό έρχεται σε βολικό αν έχετε ενημερώσει τον πυρήνα και
ξεχασμένα μέρη των ενοτήτων iptables - ωραίο μεγάλο αρχείο ρυθμίσεων σας
κατά πάσα πιθανότητα δεν θα φορτώσει και το μηχάνημά σας είναι είτε ευάλωτα ή
απρόσιτες για σας. Συνήθως, θα θέλετε να έχετε ένα πολύ απλό σύνολο κανόνα
εδώ (χωρίς conntracking) που επιτρέπει την πρόσβαση από τη διαχείριση σας
IPs. Μπορείτε να φορτώσετε αυτό το σύνολο κανόνων χρησιμοποιώντας το διακόπτη -m εντολών. Αυτό μπορεί να
να είναι χρήσιμο σε περιπτώσεις έκτακτης ανάγκης (σκεφτείτε το σαν ένα κουμπί πανικού).
Fina αναμένει ένα αρχείο ρυθμίσεων, /etc/fina/fina.cfg. Αυτό είναι
στην πραγματικότητα απλά ένα σενάριο φλοιού που προέρχεται από την κύρια Fina
σενάριο. Περιέχει (από προεπιλογή) μια μεταβλητή που προσδιορίζει ένα
επιπλέον θέση, αυτή του καταλόγου κανόνα. Κατ 'αρχάς, η FINA ελέγχει αν
/etc/fina/pre-up.sh υπάρχει και είναι εκτελέσιμο και αν ναι, να τρέχει. Αυτό είναι
ο τόπος για να φορτώσετε ενότητες ή να αλλάξετε τα πράγματα σε proc, εάν παραστεί ανάγκη.
Η δεύτερη θέση είναι πιο σημαντική. Καθορίζει τον κατάλογο που
περιλαμβάνει τα τμήματα του κανόνα που Fina πρέπει να συγκεντρωθούν. Συνήθως, αυτό είναι
που βρίσκεται στο /etc/fina/rules.d/. Fina στη συνέχεια προχωρά να φορτώσετε όλα τα αρχεία από
είπε κατάλογο (και τους υποκαταλόγους του) που λήγουν .rules. Ώστε να
έχουν αξιόπιστες ώστε κατά την συναρμολόγηση, τα αρχεία είναι συνήθως το πρόθεμα
δίκυκλα και τριψήφιους αριθμούς.
Η αναμενόμενη μορφή των αρχείων δεν έχει καμία ανησυχία για Fina. Η ίδια Fina
θα τους συγκεντρώσει μόνο για σε ένα αρχείο. Μετά από αυτό, θα κάνει
ένα αντίγραφο ασφαλείας του τρέχοντος συνόλου κανόνα (χρησιμοποιώντας iptables-save) και το βάζουμε σε ένα
συγκεκριμένη θέση /etc/fina/fina.cfg. Στη συνέχεια, η FINA θα προσπαθήσει να φορτώσει
το παραγόμενο αρχείο χρησιμοποιώντας iptables-restore. Αν αυτό αποτύχει για οποιονδήποτε
λόγο αυτό, θα προσπαθήσει να φορτώσει το παλιό σύνολο κανόνων και επιδεικνύουν την κατάλληλη
μήνυμα σφάλματος, συν ό, τι μήνυμα που πήρε από την αποτυχία
iptables-restore εντολή.
Τέλος, η FINA θα εκτελέσει /etc/fina/post-up.sh εάν υπάρχουν και είναι
εκτελέσιμο.
Άλλες λειτουργίες
Εκτός από την παραγωγή και στη συνέχεια απευθείας φόρτωση ενός συνόλου κανόνων, Fina μπορεί
Επίσης, απλά χωματερή το αρχείο θα φορτώσει στο stdout ("Λειτουργία προσποιούνται", η οποία
είναι η προεπιλογή). Αυτό είναι χρήσιμο εάν υποψιάζεστε ότι ένα σφάλμα στο Netfilter σας
αποσπάσματα και θέλετε να ρίξετε μια ματιά στο σύνολο πριν προσπαθήσετε να το φορτώσετε.
Fina προσθέτει μια πληθώρα σχολίων για το παραγόμενο αρχείο να κάνει debugging
ευκολότερη. Χρησιμοποιώντας Φίνα λειτουργία προσποιούνται, μπορείτε επίσης να διασφαλίσουν ότι Fina μπορεί να διαβάσει
όλα τα αρχεία που πρέπει.
Επίσης, με αυτόν τον τρόπο μπορείτε να δημιουργήσετε diffs μεταξύ τρέχουν κανόνες σας
Και οι κανόνες Fina θα δημιουργήσει. Με αυτό τον τρόπο, μπορείτε να εντοπίσετε εύκολα αν η
αλλαγές στα αποσπάσματα κανόνες έχουν τα αναμενόμενα αποτελέσματα.
Να θυμάστε όμως ότι σε αυτή την κατάσταση, Fina δεν έχει τρόπο να πει αν
τι παράγει μπορεί πραγματικά να φορτωθεί με iptables-restore.
Δυστυχώς, η διεπαφή πυρήνας δεν παρέχει ένα μέσο για να δούμε αν ένα
σύνολο κανόνων θα μπορούσε να φορτωθεί χωρίς στην πραγματικότητα να την ενεργοποίηση (αν κάνω λάθος
εδώ, θα ήμουν ευτυχής να ακούσω για αυτή τη λειτουργία).
Για να βοηθήσει τον εντοπισμό σφαλμάτων, όλες οι γραμμές που παράγονται από την ίδια Fina είναι
με το πρόθεμα "# Fina #", ώστε να μπορείτε να πείτε ποιες γραμμές είναι από Fina και
ποια ήταν αυτά προέρχονται από τα αρχεία σας
Τι είναι καινούργιο σε αυτή την έκδοση:.
- Ένα συνταρακτικό σφάλμα στο χειρισμό σφάλματος των γενικών σενάρια εκκίνησης έχει καθοριστεί.
Τι είναι καινούργιο στην έκδοση 0.2.2:
- Μια μικρή λογική λύση για pre / post-up scripts έγινε.
- Η τεκμηρίωση ενισχύθηκε ελαφρώς.
Τι είναι καινούργιο στην έκδοση 0.2.0:
- Fina τώρα είναι σε θέση να χειριστεί τόσο IPv4 και IPv6 σύνολα κανόνα.
Απαιτήσεις :
- GNU bash (& gt? = V2)
- GNU βρείτε (κάτι πρόσφατο)
- GNU grep (ομοίως)
- GNU sed (ομοίως)
- iptables (Ό, τι δουλεύει με τον πυρήνα σας)
Τα σχόλια δεν βρέθηκε