iptables
George K.
kargig.lists at gmail.com
Tue Jan 31 15:56:26 EET 2012
2012/1/31 Antonis Christofides <anthony at itia.ntua.gr>:
> Έχω ένα server Α που περιέχει ένα virtual server v. Ο v έχει IP
> address 10.1.0.1, και είναι accessible επειδή ο A κάνει nat.
> Αυτό το έχω φτιάξει και λειτουργεί, όπως και το port forwarding,
> χρησιμοποιώντας το nat table. Τώρα θέλω να έχω και firewall, οπότε
> πειράζω το filter table. Δεν είμαι σίγουρος όμως ότι καταλαβαίνω καλά
> το από ποια tables/chains περνάει ένα πακέτο.
>
> Χρησιμοποιώντας λοιπόν ως οδηγό τα σχήματα που έκλεψα απροκάλυπτα από
> το
> http://www.netfilter.org/documentation/HOWTO/netfilter-hacking-HOWTO-3.html:
>
> A Packet Traversing the Netfilter System:
>
> --->[1]--->[ROUTE]--->[3]--->[4]--->
> | ^
> | |
> | [ROUTE]
> v |
> [2] [5]
> | ^
> | |
> v |
>
>
>
> --->PRE------>[ROUTE]--->FWD---------->POST------>
> Conntrack | Mangle ^ Mangle
> Mangle | Filter | NAT (Src)
> NAT (Dst) | | Conntrack
> (QDisc) | [ROUTE]
> v |
> IN Filter OUT Conntrack
> | Conntrack ^ Mangle
> | Mangle | NAT (Dst)
> v | Filter
>
> συμπεραίνω:
>
> Έστω ότι μέσα απ' το v κάνω wget http://microsoft.com/. Ας αγνοήσουμε
> το πώς έφυγε το εξερχόμενο πακέτο κι ας δούμε τι θα κάνει το
> απαντητικό εισερχόμενο πακέτο όταν φτάνει στον Α.
> a) Πρώτα περνάει από το hook 1, και ακολουθούνται οι κανόνες που έχω
> ορίσει στο nat/PREROUTING, που το αφήνουν ως έχει.
> b) Στη συνέχεια o kernel αποφασίζει (επειδή έχω τις κατάλληλες
> ρυθμίσεις στο sysctl.conf) να κάνει forwarding, και αυτό είναι
> άσχετο με το τι λέει το nat table.
> c) Επομένως πάμε στο hook 3, οπότε ακολουθούνται οι κανόνες που έχω
> ορίσει στο filter/FORWARD. Αν φερ' ειπείν του έχω πει
> -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
> τότε θα περάσει.
> d) Μετά πάμε στο hook 4, POSTROUTING, και μετά πάει στον v.
>
> Θέλω μόνο να μου πείτε αν τα έχω καταλάβει καλά.
>
> Δηλαδή ένα chain είναι hooked σ' ένα hook; Το hook 5 είναι το OUTPUT,
> και υπάρχει OUTPUT chain και στα τρία tables (mangle, filter, nat). Θα
> περάσει λοιπόν κι απ' τα τρία tables το εξερχόμενο πακέτο; Τι νόημα
> έχει αυτό; Αν έναν κανόνα που κανονικά θα έπρεπε να μπει στο
> nat/OUTPUT τον βάλω αντ' αυτού στο filter/OUTPUT θα δουλέψει;
>
> Κάτι αριθμοί που βγάνει το iptables-save τι είναι: Π.χ.
> *nat
> :PREROUTING ACCEPT [5:1222]
> :POSTROUTING ACCEPT [6:371]
> :OUTPUT ACCEPT [6:371]
> -A POSTROUTING -s 10.1.0.0/16 -j SNAT --to-source 192.168.1.65
> COMMIT
>
> --
> linux-greek-users mailing list -- http://lists.hellug.gr
Ένα γράφημα ίσως σε βοηθήσει:
http://commons.wikimedia.org/wiki/File:Diagrama_linux_netfilter_iptables.gif
μπορείς να αγνοήσεις τα "μωβ" που έχουν να κάνουν με ebtables.
--
Καργιωτάκης Γιώργος
More information about the Linux-greek-users
mailing list