iptables/ip6tables — εργαλείο διαχείρισης για φιλτράρισμα πακέτων IPv4/IPv6 και NAT
ΣΥΝΤΑΞΗ
iptables [-t table] {-A|-C|-D|-V} chain rule-specification
ip6tables [-t table] {-A|-C|-D|-V} chain rule-specification
iptables [-t table] -I chain [rulenum] rule-specification
iptables [-t table] -R chain rulenum rule-specification
iptables [-t table] -D chain rulenum
iptables [-t table] -S [chain [rulenum]]
iptables [-t table] {-F|-L|-Z} [chain [rulenum]] [options...]
iptables [-t table] -N chain
iptables [-t table] -X [chain]
iptables [-t table] -P chain policy
iptables [-t table] -E old-chain-name new-chain-name
rule-specification := [matches...] [target]
match := -m matchname [per-match-options]
target := -j targetname [per-target-options]
ΠΕΡΙΓΡΑΦΗ
Τα Iptables και ip6tables χρησιμοποιούνται για τη δημιουργία, τη συντήρηση και τον έλεγχο των πινάκων κανόνων φιλτραρίσματος πακέτων IPv4 και IPv6 στον πυρήνα του Linux. Μπορούν να οριστούν αρκετοί διαφορετικοί πίνακες. Κάθε πίνακας περιέχει έναν αριθμό ενσωματωμένων αλυσίδων και μπορεί επίσης να περιέχει αλυσίδες που ορίζονται από τον χρήστη.
Κάθε αλυσίδα είναι μια λίστα κανόνων που μπορούν να ταιριάζουν με ένα σύνολο πακέτων. Κάθε κανόνας καθορίζει τι πρέπει να συμβεί με ένα πακέτο που ταιριάζει. Αυτό ονομάζεται στόχος, ο οποίος μπορεί να είναι μια μετάβαση σε μια αλυσίδα που έχει ορίσει ο χρήστης στον ίδιο πίνακα.
ΣΤΟΧΟΙ
Ένας κανόνας τείχους προστασίας καθορίζει κριτήρια για ένα πακέτο και έναν στόχο. Εάν το πακέτο δεν ταιριάζει, ελέγχεται ο επόμενος κανόνας στην αλυσίδα. εάν ταιριάζει, τότε ο επόμενος κανόνας καθορίζεται από την τιμή του στόχου, ο οποίος μπορεί να είναι το όνομα μιας αλυσίδας που έχει ορίσει ο χρήστης, ένα από τους στόχους που περιγράφονται στο iptables-extensions(8) ή μία από τις ειδικές τιμές ACCEPT, DROP ή RETURN.
Το ACCEPT σημαίνει να επιτρέπεται η διέλευση του πακέτου. Το DROP σημαίνει να απορρίπτεται το πακέτο. Το RETURN σημαίνει να σταματά η διαδρομή σε αυτήν την αλυσίδα και να συνεχίζεται στον επόμενο κανόνα στην προηγούμενη (κλήσης) αλυσίδα. Εάν φτάσει στο τέλος μιας ενσωματωμένης αλυσίδας ή εάν ένας κανόνας σε μια ενσωματωμένη αλυσίδα με στόχο RETURN ταιριάζει, ο στόχος που καθορίζεται από την πολιτική αλυσίδας καθορίζει τη μοίρα του πακέτου.
ΠΙΝΑΚΕΣ
Υπάρχουν επί του παρόντος πέντε ανεξάρτητοι πίνακες (οι πίνακες που υπάρχουν ανά πάσα στιγμή εξαρτώνται από τις επιλογές διαμόρφωσης του πυρήνα και από τις παρουσίες των διαθέσιμων μονάδων).
-t, --table table
Αυτή η επιλογή καθορίζει τον πίνακα αντιστοίχισης πακέτων στον οποίο θα λειτουργήσει η εντολή. Εάν ο πυρήνας έχει ρυθμιστεί με αυτόματη φόρτωση μονάδων, θα γίνει μια προσπάθεια φόρτωσης της κατάλληλης μονάδας για αυτόν τον πίνακα, εάν δεν είναι ήδη εκεί.
Οι πίνακες έχουν ως εξής:
filter:
Αυτός είναι ο προεπιλεγμένος πίνακας (αν δεν περνάει η επιλογή -t). Περιέχει τις ενσωματωμένες αλυσίδες INPUT (για πακέτα που προορίζονται για τοπικές υποδοχές), FORWARD (για πακέτα που δρομολογούνται μέσω του συστήματος) και OUTPUT (για τοπικά δημιουργημένα πακέτα).
nat:
Αυτός ο πίνακας συμβουλεύεται όταν συναντάται ένα πακέτο που δημιουργεί μια νέα σύνδεση. Αποτελείται από τέσσερις ενσωματωμένες αλυσίδες: PREROUTING (για την τροποποίηση πακέτων μόλις φτάσουν), INPUT (για την τροποποίηση πακέτων που προορίζονται για τοπικές υποδοχές), OUTPUT (για την τροποποίηση τοπικά δημιουργημένων πακέτων πριν από τη δρομολόγηση) και POSTROUTING (για την τροποποίηση πακέτων λίγο πριν από την αποστολή τους). Η υποστήριξη IPv6 NAT είναι διαθέσιμη από την έκδοση 3.7 του πυρήνα.
mangle:
Αυτός ο πίνακας χρησιμοποιείται για εξειδικευμένες τροποποιήσεις πακέτων. Μέχρι την έκδοση 2.4.17 του πυρήνα, είχε δύο ενσωματωμένες αλυσίδες: PREROUTING (για την τροποποίηση εισερχόμενων πακέτων πριν από τη δρομολόγηση) και OUTPUT (για την τροποποίηση τοπικά δημιουργημένων πακέτων πριν από τη δρομολόγηση). Από την έκδοση 2.4.18 του πυρήνα, υποστηρίζονται επίσης τρεις άλλες ενσωματωμένες αλυσίδες: INPUT (για πακέτα που εισέρχονται στο σύστημα), FORWARD (για την τροποποίηση πακέτων που δρομολογούνται μέσω του συστήματος) και POSTROUTING (για την τροποποίηση πακέτων λίγο πριν από την αποστολή τους).
raw:
Αυτός ο πίνακας χρησιμοποιείται κυρίως για τη διαμόρφωση εξαιρέσεων από την παρακολούθηση συνδέσεων σε συνδυασμό με την επιλογή NOTRACK. Καταγράφεται στα netfilter hooks με υψηλότερη προτεραιότητα και έτσι καλείται πριν από το ip_conntrack ή οποιαδήποτε άλλη IP table. Παρέχει τις ακόλουθες ενσωματωμένες αλυσίδες: PREROUTING (για πακέτα που φτάνουν μέσω οποιασδήποτε δικτυακής διεπαφής) και OUTPUT (για πακέτα που δημιουργούνται από τοπικές διεργασίες).
security:
Αυτός ο πίνακας χρησιμοποιείται για κανόνες δικτύωσης υποχρεωτικού ελέγχου πρόσβασης (MAC), όπως αυτοί που ενεργοποιούνται από τις επιλογές SECMARK και CONNSECMARK. Ο υποχρεωτικός έλεγχος πρόσβασης υλοποιείται από τα Linux Security Modules, όπως το SELinux. Ο πίνακας ασφαλείας καλείται μετά τον πίνακα φίλτρου, επιτρέποντας σε τυχόν κανόνες διακριτικού ελέγχου πρόσβασης (DAC) στον πίνακα φίλτρου να τεθούν σε ισχύ πριν από τους κανόνες MAC. Αυτός ο πίνακας παρέχει τις ακόλουθες ενσωματωμένες αλυσίδες: INPUT (για πακέτα που εισέρχονται στο σύστημα), OUTPUT (για την τροποποίηση τοπικά δημιουργημένων πακέτων πριν από τη δρομολόγηση) και FORWARD (για την τροποποίηση πακέτων που δρομολογούνται μέσω του συστήματος).
ΕΠΙΛΟΓΕΣ
Οι επιλογές που αναγνωρίζονται από τα iptables και ip6tables μπορούν να χωριστούν σε διάφορες ομάδες.
ΕΝΤΟΛΕΣ
Αυτές οι επιλογές καθορίζουν την επιθυμητή ενέργεια που θα εκτελεστεί. Μόνο μία από αυτές μπορεί να καθοριστεί στην γραμμή εντολών, εκτός αν ορίζεται διαφορετικά παρακάτω. Για τις μακρές εκδόσεις των ονομάτων εντολών και επιλογών, πρέπει να χρησιμοποιείτε μόνο αρκετά γράμματα για να διασφαλίσετε ότι το iptables μπορεί να το διακρίνει από όλες τις άλλες επιλογές.
-A, --append chain rule-specification
Προσθέστε μία ή περισσότερες κανόνες στο τέλος της επιλεγμένης αλυσίδας. Όταν τα ονόματα πηγής και/ή προορισμού επιλύονται σε περισσότερες από μία διευθύνσεις, θα προστεθεί ένας κανόνας για κάθε πιθανό συνδυασμό διευθύνσεων.
-C, --check chain rule-specification
Ελέγξτε εάν υπάρχει ένας κανόνας που ταιριάζει με τις προδιαγραφές στην επιλεγμένη αλυσίδα. Αυτή η εντολή χρησιμοποιεί την ίδια λογική με την -D για να βρει μια αντίστοιχη εγγραφή, αλλά δεν αλλάζει την υπάρχουσα διαμόρφωση του iptables και χρησιμοποιεί την έξοδο κώδικα της για να υποδείξει την επιτυχία ή την αποτυχία.
-D, --delete chain rule-specification
-D, --delete chain rulenum
Διαγράφει έναν ή περισσότερους κανόνες από την επιλεγμένη αλυσίδα. Υπάρχουν δύο εκδόσεις αυτής της εντολής: ο κανόνας μπορεί να καθοριστεί ως αριθμός στην αλυσίδα (ξεκινώντας από το 1 για τον πρώτο κανόνα) ή ένας κανόνας για αντιστοίχιση.
-I, --insert chain [rulenum] rule-specification
Εισάγει έναν ή περισσότερους κανόνες στην επιλεγμένη αλυσίδα ως τον δεδομένο αριθμό κανόνα. Επομένως, εάν ο αριθμός κανόνα είναι 1, ο κανόνας ή οι κανόνες εισάγονται στην αρχή της αλυσίδας. Αυτό είναι επίσης η προεπιλογή εάν δεν καθοριστεί κανένας αριθμός κανόνα.
-R, --replace chain rulenum rule-specification
Αντικαθιστά έναν κανόνα στην επιλεγμένη αλυσίδα. Εάν τα ονόματα προέλευσης και/ή προορισμού επιλύονται σε πολλαπλές διευθύνσεις, η εντολή θα αποτύχει. Οι κανόνες αριθμούνται ξεκινώντας από το 1.
-L, --list [chain]
Καταγράφει όλους τους κανόνες στην επιλεγμένη αλυσίδα. Εάν δεν έχει επιλεγεί αλυσίδα, καταγράφονται όλες οι αλυσίδες. Όπως και κάθε άλλη εντολή iptables, εφαρμόζεται στην καθορισμένη таблица (η προεπιλογή είναι η "filter"), επομένως οι κανόνες NAT καταγράφονται με iptables -t nat -n -L
-S, --list-rules [chain]
Εμφανίζει όλους τους κανόνες στην επιλεγμένη αλυσίδα. Εάν δεν έχει επιλεγεί αλυσίδα, όλοι οι κανόνες καταγράφονται όπως το iptables-save. Όπως και κάθε άλλη εντολή iptables, εφαρμόζεται στην καθορισμένη таблица (η προεπιλογή είναι η "filter").
-F, --flush [chain]
Εκκαθαρίζει την επιλεγμένη αλυσίδα (όλες τις αλυσίδες στην таблица εάν δεν έχει καθοριστεί καμία). Αυτό ισοδυναμεί με τη διαγραφή όλων των κανόνων ένας προς έναν.
-Z, --zero [chain [rulenum]]
Μηδενίζει τους μετρητές πακέτων και byte σε όλες τις αλυσίδες ή μόνο στην δεδομένη αλυσίδα ή μόνο στον δεδομένο κανόνα σε μια αλυσίδα. Είναι έγκυρο να καθορίζεται επίσης η επιλογή -L, --list (κατάλογος), για να δείτε τους μετρητές αμέσως πριν διαγραφούν. (Δείτε παραπάνω.)
-N, --new-chain chain
Δημιουργεί μια νέα αλυσίδα που καθορίζεται από τον χρήστη με το δεδομένο όνομα. Δεν πρέπει να υπάρχει ήδη κάποιος στόχος με αυτό το όνομα.
-X, --delete-chain [chain]
Διαγράφει την καθορισμένη αλυσίδα. Δεν πρέπει να υπάρχουν αναφορές στην αλυσίδα. Εάν υπάρχουν, πρέπει να διαγραφούν ή να αντικατασταθούν οι κανόνες που αναφέρονται πριν μπορέσει να διαγραφεί η αλυσίδα. Η αλυσίδα πρέπει να είναι κενή, δηλαδή να μην περιέχει κανέναν κανόνα. Εάν δεν δοθεί κανένα όρισμα, θα διαγράψει όλες τις κενές αλυσίδες στην таблица. Οι κενές ενσωματωμένες αλυσίδες μπορούν να διαγραφούν μόνο με το iptables-nft.
-P, --policy chain target
Ορίζει την πολιτική για την ενσωματωμένη (όχι αλυσίδα που καθορίζεται από τον χρήστη) αλυσίδα στον δεδομένο στόχο. Ο στόχος πολιτικής πρέπει να είναι είτε ACCEPT είτε DROP.
-E, --rename-chain old-chain new-chain
Μετονομάζει την αλυσίδα που καθορίζει ο χρήστης στην ονομασία που παρέχεται από τον χρήστη. Αυτό είναι καθαρά καλλυντικό και δεν επηρεάζει τη δομή του πίνακα.
-h Βοήθεια. Παρέχει μια (προς το παρόν πολύ σύντομη) περιγραφή της σύνταξης της εντολής.
ΠΑΡΑΜΕΤΡΟΙ
Οι παρακάτω παράμετροι αποτελούν μια προδιαγραφή κανόνα (όπως χρησιμοποιείται στις εντολές προσθήκης, διαγραφής, εισαγωγής, αντικατάστασης και προσάρτησης).
-4, --ipv4
Αυτή η επιλογή δεν έχει καμία επίδραση στο iptables και το iptables-restore. Εάν ένας κανόνας που χρησιμοποιεί την επιλογή -4 εισαχθεί (και μόνο με το ip6tables-restore), θα αγνοηθεί σιωπηρά. Οποιεσδήποτε άλλες χρήσεις θα προκαλέσουν σφάλμα. Αυτή η επιλογή επιτρέπει κανόνες IPv4 και IPv6 σε ένα μόνο αρχείο κανόνων για χρήση τόσο με το iptables-restore όσο και με το ip6tables-restore.
-6, --ipv6
Εάν ένας κανόνας που χρησιμοποιεί την επιλογή -6 εισαχθεί (και μόνο με το iptables-restore), θα αγνοηθεί σιωπηρά. Οποιεσδήποτε άλλες χρήσεις θα προκαλέσουν σφάλμα. Αυτή η επιλογή επιτρέπει κανόνες IPv4 και IPv6 σε ένα μόνο αρχείο κανόνων για χρήση τόσο με το iptables-restore όσο και με το ip6tables-restore. Αυτή η επιλογή δεν έχει καμία επίδραση στο ip6tables και το ip6tables-restore.
[!] -p, --protocol protocol
Το πρωτόκολλο του κανόνα ή του πακέτου που θα ελεγχθεί. Το καθορισμένο πρωτόκολλο μπορεί να είναι ένα από τα tcp, udp, udplite, icmp, icmpv6, esp, ah, sctp, mh ή η ειδική λέξη-κλειδί "all", ή μπορεί να είναι μια αριθμητική τιμή, που αντιπροσωπεύει ένα από αυτά τα πρωτόκολλα ή ένα διαφορετικό. Μπορεί επίσης να χρησιμοποιηθεί ένα όνομα πρωτοκόλλου από το /etc/protocols. Ένα όρισμα "!" πριν από το πρωτόκολλο αντιστρέφει τη δοκιμή. Ο αριθμός μηδέν είναι ισοδύναμος με το all. Το "all" θα ταιριάζει με όλα τα πρωτόκολλα και θεωρείται προεπιλογή όταν παραλείπεται αυτή η επιλογή. Σημειώστε ότι, στο ip6tables, οι επεκτάσεις IPv6 εκτός από το esp δεν επιτρέπονται. Τα esp και ipv6-nonext μπορούν να χρησιμοποιηθούν με έκδοση πυρήνα 6.11 ή μεταγενέστερη. Ο αριθμός μηδέν είναι ισοδύναμος με το all, πράγμα που σημαίνει ότι δεν μπορείτε να ελέγξετε απευθείας την τιμή 0 στο πεδίο πρωτοκόλλου. Για να αντιστοιχίσετε σε μια κεφαλίδα HBH, ακόμη και αν είναι η τελευταία, δεν μπορείτε να χρησιμοποιήσετε το -p 0, αλλά πρέπει πάντα να χρησιμοποιείτε το -m hbh.
[!] -s, --source address[/mask][,...]
Προδιαγραφή πηγής. Η διεύθυνση μπορεί να είναι είτε ένα όνομα δικτύου, ένα όνομα κεντρικού υπολογιστή, μια διεύθυνση IP δικτύου (με /mask) ή μια απλή διεύθυνση IP. Τα ονόματα κεντρικών υπολογιστών θα επιλυθούν μία μόνο φορά, πριν ο κανόνας υποβληθεί στον πυρήνα. Σημειώστε ότι η καθοδήγηση οποιουδήποτε ονόματος για επίλυση με μια απομακρυσμένη ερώτηση, όπως το DNS, είναι μια πολύ κακή ιδέα. Η μάσκα μπορεί να είναι είτε μια μάσκα δικτύου IPv4 (για το iptables) είτε ένας απλός αριθμός, που καθορίζει τον αριθμό των 1 στο αριστερό μέρος της μάσκας δικτύου. Έτσι, μια μάσκα iptables του 24 είναι ισοδύναμη με το 255.255.255.0. Ένα όρισμα "!" πριν από την προδιαγραφή διεύθυνσης αντιστρέφει την έννοια της διεύθυνσης. Η σημαία --src είναι ένα ψευδώνυμο για αυτήν την επιλογή. Μπορούν να καθοριστούν πολλές διευθύνσεις, αλλά αυτό θα επεκταθεί σε πολλούς κανόνες (όταν προστίθενται με το -A) ή θα προκαλέσει τη διαγραφή πολλών κανόνων (με το -D).
[!] -d, --destination address[/mask][,...]
Προδιαγραφή προορισμού. Δείτε την περιγραφή της σημαίας -s (πηγή) για μια λεπτομερή περιγραφή της σύνταξης. Η σημαία --dst είναι ένα ψευδώνυμο για αυτήν την επιλογή.
-m, --match match
Καθορίζει μια αντιστοίχιση προς χρήση, δηλαδή μια επεκτάσιμη μονάδα που ελέγχει για μια συγκεκριμένη ιδιότητα. Το σύνολο των αντιστοιχιών αποτελεί την συνθήκη υπό την οποία ενεργοποιείται ένας στόχος. Οι αντιστοιχιίες αξιολογούνται από την πρώτη έως την τελευταία όπως καθορίζονται στη γραμμή εντολών και λειτουργούν με τρόπο βραχυκυκλώματος, δηλαδή εάν μια επέκταση επιστρέψει false, η αξιολόγηση θα σταματήσει.
-j, --jump target
Αυτό καθορίζει τον στόχο του κανόνα· δηλαδή, τι να γίνει εάν το πακέτο ταιριάζει. Ο στόχος μπορεί να είναι μια αλυσίδα που έχει ορίσει ο χρήστης (εκτός από αυτήν στην οποία βρίσκεται αυτός ο κανόνας), ένας από τους ειδικούς ενσωματωμένους στόχους που καθορίζουν τη μοίρα του πακέτου άμεσα ή μια επέκταση (βλ. ΕΠΕΚΤΑΣΕΙΣ ΑΝΤΙΣΤΟΙΧΙΣΗΣ ΚΑΙ ΣΤΟΧΩΝ παρακάτω). Εάν αυτή η επιλογή παραλειφθεί σε έναν κανόνα (και δεν χρησιμοποιείται το -g), τότε η αντιστοίχιση του κανόνα δεν θα έχει καμία επίδραση στη μοίρα του πακέτου, αλλά οι μετρητές στον κανόνα θα αυξηθούν.
-g, --goto chain
Αυτό καθορίζει ότι η επεξεργασία θα πρέπει να συνεχιστεί σε μια αλυσίδα που έχει ορίσει ο χρήστης. Σε αντίθεση με την επιλογή --jump, το RETURN δεν θα συνεχίσει την επεξεργασία σε αυτήν την αλυσίδα, αλλά αντίθετα στην αλυσίδα που μας κάλεσε μέσω του --jump.
[!] -i, --in-interface name
Όνομα μιας διεπαφής μέσω της οποίας ελήφθη ένα πακέτο (μόνο για πακέτα που εισέρχονται στις αλυσίδες INPUT, FORWARD και PREROUTING). Όταν το όρισμα "!" χρησιμοποιείται πριν από το όνομα της διεπαφής, η έννοια αντιστρέφεται. Εάν το όνομα της διεπαφής τελειώνει με "+", τότε οποιαδήποτε διεπαφή που ξεκινά με αυτό το όνομα θα ταιριάζει. Εάν αυτή η επιλογή παραλειφθεί, οποιοδήποτε όνομα διεπαφής θα ταιριάζει.
[!] -o, --out-interface name
Όνομα μιας διεπαφής μέσω της οποίας ένα πακέτο πρόκειται να σταλεί (για πακέτα που εισέρχονται στις αλυσίδες FORWARD, OUTPUT και POSTROUTING). Όταν το όρισμα "!" χρησιμοποιείται πριν από το όνομα της διεπαφής, η έννοια αντιστρέφεται. Εάν το όνομα της διεπαφής τελειώνει με ένα "+", τότε οποιαδήποτε διεπαφή που ξεκινά με αυτό το όνομα θα ταιριάζει. Εάν αυτή η επιλογή παραλειφθεί, οποιοδήποτε όνομα διεπαφής θα ταιριάζει.
[!] -f, --fragment
Αυτό σημαίνει ότι ο κανόνας αναφέρεται μόνο στα δεύτερα και τα επόμενα τμήματα πακέτων IPv4 που έχουν υποστεί κατακερματισμό. Επειδή δεν υπάρχει τρόπος να προσδιοριστεί η πηγή ή οι θύρες προορισμού ενός τέτοιου πακέτου, ένα τέτοιο πακέτο δεν θα ταιριάζει με κανέναν κανόνα που καθορίζει αυτά τα στοιχεία. Όταν το όρισμα "!" προηγείται της σημαίας "-f", ο κανόνας θα ταιριάζει μόνο με τα αρχικά τμήματα ή μη κατακερματισμένα πακέτα. Αυτή η επιλογή είναι ειδική για το IPv4, δεν είναι διαθέσιμη στο ip6tables.
-c, --set-counters packets bytes
Αυτό επιτρέπει στον διαχειριστή να αρχικοποιήσει τους μετρητές πακέτων και byte ενός κανόνα (κατά τις λειτουργίες INSERT, APPEND, REPLACE).
ΆΛΛΕΣ ΕΠΙΛΟΓΕΣ
Οι ακόλουθες πρόσθετες επιλογές μπορούν να καθοριστούν:
-v, --verbose
Λεπτομερής έξοδος. Αυτή η επιλογή κάνει την εντολή list να εμφανίζει το όνομα της διεπαφής, τις επιλογές του κανόνα (εάν υπάρχουν) και τις μάσκες TOS. Οι μετρητές πακέτων και byte εμφανίζονται επίσης, με το επίθημα 'K', 'M' ή 'G' για πολλαπλασιαστές 1000, 1.000.000 και 1.000.000.000 αντίστοιχα (αλλά δείτε τη σημαία -x για να αλλάξετε αυτό). Για την προσάρτηση, την εισαγωγή, τη διαγραφή και την αντικατάσταση, αυτό προκαλεί την εκτύπωση λεπτομερών πληροφοριών σχετικά με τον κανόνα ή τους κανόνες. Η επιλογή -v μπορεί να καθοριστεί πολλές φορές για να εκδοθούν ενδεχομένως πιο λεπτομερείς δηλώσεις εντοπισμού σφαλμάτων: Καθορισμένη δύο φορές, η iptableslegacy θα εμφανίσει πληροφορίες πίνακα και εγγραφές στη libiptc, η iptables-nft εμφανίζει κανόνες σε παρουσίαση netlink (κώδικας VM). Καθορισμένη τρεις φορές, η iptables-nft θα εμφανίσει επίσης τυχόν μηνύματα netlink που αποστέλλονται στον πυρήνα.
-V, --version
Εμφανίζει την έκδοση του προγράμματος και το API του πυρήνα που χρησιμοποιείται.
-w, --wait [δευτερόλεπτα]
Περιμένετε για το κλείδωμα xtables. Για να αποτραπούν πολλαπλές ταυτόχρονες εκτελέσεις του προγράμματος, θα γίνει μια προσπάθεια να αποκτηθεί ένα αποκλειστικό κλείδωμα κατά την εκκίνηση. Από προεπιλογή, το πρόγραμμα θα τερματιστεί εάν δεν μπορεί να αποκτηθεί το κλείδωμα. Αυτή η επιλογή θα κάνει το πρόγραμμα να περιμένει (είτε επ' αόριστον είτε για συγκεκριμένο αριθμό δευτερολέπτων) μέχρι να αποκτηθεί το αποκλειστικό κλείδωμα.
-n, --numeric
Αριθμητική έξοδος. Οι διευθύνσεις IP και οι αριθμοί θυρών θα εκτυπώνονται σε αριθμητική μορφή. Από προεπιλογή, το πρόγραμμα θα προσπαθήσει να τις εμφανίσει ως ονόματα κεντρικών υπολογιστών, ονόματα δικτύων ή υπηρεσίες (όποτε είναι δυνατόν).
-x, --exact
Επέκταση αριθμών. Εμφανίζει την ακριβή τιμή των μετρητών πακέτων και byte, αντί να εμφανίζει μόνο τον στρογγυλοποιημένο αριθμό σε K (πολλαπλάσια του 1000), M (πολλαπλάσια του 1000K) ή G (πολλαπλάσια του 1000M). Αυτή η επιλογή είναι σχετική μόνο για την εντολή -L.
--line-numbers
Όταν καταγράφονται κανόνες, προσθέτει αριθμούς γραμμών στην αρχή κάθε κανόνα, που αντιστοιχούν στη θέση αυτού του κανόνα στην αλυσίδα.
--modprobe=εντολή
Όταν προστίθενται ή εισάγονται κανόνες σε μια αλυσίδα, χρησιμοποιεί την εντολή για να φορτώσει τυχόν απαραίτητα modules (στόχους, επεκτάσεις αντιστοίχισης κ.λπ.).
ΑΡΧΕΙΟ ΚΛΕΙΔΩΜΑΤΟΣ
Το iptables χρησιμοποιεί το αρχείο /run/xtables.lock για να αποκτήσει ένα αποκλειστικό κλείδωμα κατά την εκκίνηση.
Η μεταβλητή περιβάλλοντος XTABLES_LOCKFILE μπορεί να χρησιμοποιηθεί για να αντικαταστήσει την προεπιλεγμένη ρύθμιση.
ΕΠΕΚΤΑΣΕΙΣ ΑΝΤΙΣΤΟΙΧΙΣΗΣ ΚΑΙ ΣΤΟΧΩΝ
Το iptables μπορεί να χρησιμοποιήσει επεκταμένα modules αντιστοίχισης και στόχων πακέτων. Μια λίστα αυτών είναι διαθέσιμη στη σελίδα man iptables-extensions(8).
ΣΗΜΑΝΣΕΙΣ
Διάφορα μηνύματα σφαλμάτων εκτυπώνονται στην τυπική έξοδο σφαλμάτων. Ο κωδικός εξόδου είναι 0 για σωστή λειτουργία. Σφάλματα που φαίνεται να προκαλούνται από μη έγκυρες ή κακοποιημένες παραμέτρους γραμμής εντολών προκαλούν έναν κωδικό εξόδου 2. Σφάλματα που υποδεικνύουν ασυμβατότητα μεταξύ του πυρήνα και του χώρου χρήστη προκαλούν έναν κωδικό εξόδου 3. Σφάλματα που υποδεικνύουν πρόβλημα πόρων, όπως ένα κατειλημμένο κλείδωμα, αποτυχία εκχώρησης μνήμης ή μηνύματα σφαλμάτων από τον πυρήνα, προκαλούν έναν κωδικό εξόδου 4. Τέλος, άλλα σφάλματα προκαλούν έναν κωδικό εξόδου 1.
ΣΦΑΛΜΑΤΑ
Σφάλματα; Τι είναι αυτό; ;-) Ίσως θα θέλατε να ρίξετε μια ματιά στο https://bugzilla.netfilter.org/
Το iptables θα τερματιστεί αμέσως με έναν κωδικό σφάλματος 111 εάν διαπιστώσει ότι έχει κληθεί ως πρόγραμμα setuid-to-root. Το iptables δεν μπορεί να χρησιμοποιηθεί με ασφάλεια με αυτόν τον τρόπο επειδή εμπιστεύεται τις κοινόχρηστες βιβλιοθήκες (αντιστοιχίσεις, στόχους) που φορτώνονται κατά την εκτέλεση, η διαδρομή αναζήτησης μπορεί να οριστεί χρησιμοποιώντας μεταβλητές περιβάλλοντος.
ΣΥΜΒΑΤΟΤΗΤΑ ΜΕ ΤΟ IPCHAINS
Αυτό το iptables είναι πολύ παρόμοιο με το ipchains του Rusty Russell. Η κύρια διαφορά είναι ότι οι αλυσίδες INPUT και OUTPUT διατρέχονται μόνο για πακέτα που εισέρχονται στον τοπικό κεντρικό υπολογιστή και προέρχονται από τον τοπικό κεντρικό υπολογιστή, αντίστοιχα. Επομένως, κάθε πακέτο περνάει μόνο από μία από τις τρεις αλυσίδες (εκτός από την κυκλοφορία του loopback, η οποία περιλαμβάνει και τις δύο αλυσίδες INPUT και OUTPUT). Προηγουμένως, ένα πακέτο που προωθούνταν θα περνούσε από και τις τρεις αλυσίδες.
Η άλλη κύρια διαφορά είναι ότι το -i αναφέρεται στη διεπαφή εισόδου. το -o αναφέρεται στη διεπαφή εξόδου και και τα δύο είναι διαθέσιμα για πακέτα που εισέρχονται στην αλυσίδα FORWARD.
Οι διάφορες μορφές NAT έχουν διαχωριστεί. το iptables είναι μια καθαρή συσκευή φιλτραρίσματος πακέτων κατά τη χρήση της προεπιλεγμένης πίνακα filter, με προαιρετικά πρόσθετα. Αυτό θα πρέπει να αποφύγει μεγάλο μέρος της σύγχυσης σχετικά με τον συνδυασμό της IP μεταμφίεσης και του φιλτραρίσματος πακέτων που είχε παρατηρηθεί προηγουμένως. Επομένως, οι ακόλουθες επιλογές αντιμετωπίζονται διαφορετικά:
-j MASQ
-M -S
-M -L
Υπάρχουν αρκετές άλλες αλλαγές στο iptables.
ΔΕΙΤΕ ΕΠΙΣΗΣ
iptables-apply(8), iptables-save(8), iptables-restore(8), iptables-extensions(8),
Το packet-filtering-HOWTO περιγράφει λεπτομερώς τη χρήση του iptables για το φιλτράρισμα πακέτων, το NAT-HOWTO περιγράφει λεπτομερώς το NAT, το netfilter-extensions-HOWTO περιγράφει λεπτομερώς τις επεκτάσεις που δεν περιλαμβάνονται στην τυπική διανομή και το netfilter-hacking-HOWTO περιγράφει λεπτομερώς τα εσωτερικά του netfilter. Δείτε το https://www.netfilter.org/.
ΣΥΓΓΡΑΦΕΙΣ
Ο Rusty Russell έγραψε αρχικά το iptables, σε πρώιμη διαβούλευση με τον Michael Neuling.
Ο Marc Boucher έπεισε τον Rusty να εγκαταλείψει το ipnatctl, υποστηρίζοντας ένα γενικό πλαίσιο επιλογής πακέτων στο iptables, στη συνέχεια έγραψε την πίνακα mangle, την αντιστοιχία ιδιοκτήτη, το στοιχείο σήμανσης και έκανε διάφορα ενδιαφέροντα πράγματα παντού.
Ο James Morris έγραψε τον στόχο TOS και την αντιστοιχία tos.
Ο Jozsef Kadlecsik έγραψε τον στόχο REJECT.
Ο Harald Welte έγραψε τους στόχους ULOG και NFQUEUE, τη νέα libiptc, καθώς και τις αντιστοιχίες και τους στόχους TTL, DSCP, ECN.
Η Netfilter Core Team είναι: Jozsef Kadlecsik, Pablo Neira Ayuso, Eric Leblond, Florian Westphal και Arturo Borrero Gonzalez. Τα μέλη της ομάδας Netfilter Core που έχουν αποσυρθεί είναι: Marc Boucher, Martin Josefsson, Yasuyuki Kozakai, James Morris, Harald Welte και Rusty Russell.
Η σελίδα εγχειριδίου γράφτηκε αρχικά από τον Herve Eychenne <_>.
ΕΚΔΟΣΗ
Αυτή η σελίδα εγχειριδίου ισχύει για το iptables/ip6tables 1.8.11.