3. Λίγο βαθύτερη έκδοση

Κάνωντας compile τον πυρήνα: (Χρησιμοποιήστε έναν 2.4.x πυρήνα ή μεγαλύτερο)

Χρειάζεστε τις παρακάτω ρυθμίσεις στον πυρήνα:

Πρώτα, εάν τα iptables και το masq module δεν έχουν γίνει compile στον πυρήνα και δεν είναι εγκατεστημένα, αλλά υπάρχουν σαν modules, χρειαζόμαστε να τα εγκαταστήσουμε. Εαν κάνετε ένα insmod ipt_MASQUERADE θα φορτώσει τα ip_tables, ip_conntrack και το iptable_nat.

$> modprobe ipt_MASQERADE

Ανεξαρτήτως άν το Intranet (εσωτερικό δίκτυο) σας είναι μεγάλο, ή απλώς θέλετε δύο τρεις υπολογιστές να συνδεθούν με το Internet δεν υπάρχει μεγάλη διαφορά.

Υποθέτωντας οτι δεν υπάρχουν άλλοι κανόνες στα iptables, κάντε ένα:

$> iptables -F; iptables -t nat -F; iptables -t mangle -F

Εάν παίρνετε ένα λάθος οπου λέει οτι δεν βρίσκει τα iptables, πηγαίντε κατεβάστε τα και εγκαταστήστε τα. Εάν σας πει οτι δεν υπάρχει ο πίνακας 'nat', κάντε recompile τον πυρήνα με nat support. Εαν σας πει οτι δεν υπάρχει πίνακας 'mangle', μην στεναχωριέστε, δεν χρειάζετε για το μασκάρισμα. Εάν σας πει οτι τα iptables είναι ασύμβατα με τον πυρήνα σας, πηγαίντε κατεβάστε έναν πυρήνα 2.4.x ή μεγαλύτερο και κάντε του compile με iptables support.

Αν έχετε ΣΤΑΘΕΡΗ (static) ip κάντε (π.χ. Σε κάρτα δικτύου που δεν χρησιμοποιεί DHCP):

$> iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 123.12.23.43

Η για δυναμική (dynamic) (π.χ. Ένα modem που χρειάζετε να καλέσετε έναν αριθμο πρώτα (dialup):

$> iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

Τελικά πρέεπι να πειτε στον πυρήνα πως ναι, θέλετε να ξεκινήσει το forwarding (η προώθηση) των πακέτων: (Αυτό χρειάζετε να γίνει μόνο μια φορά σε κάθε reboot αλλά δεν πειράζει να το κάνετε και παραπάνω φορές)

$> echo 1 > /proc/sys/net/ipv4/ip_forward

Οταν θα έχετε σιγουρευτεί οτι όλα αυτά δουλεύουν (δείτε τις οδηγίες Post-install πρώτα) αφήστε να δουλεύει το μασκάρισμα μόνο του εσωτερικού δικτύου δεν θέλετε να αφήσετε όλο τον κόσμο στο Internet να το χρησιμοποιούν φυσικά :)

Πρώτα, αφήστε τις ήδη υπάρχουσες συνδέσεις, ή οτιδήποτε σχετίζετε με αυτές (π.χ. Την σύνδεση σε έναν server ftp που έχετε συνδεθεί εσείς)

$> iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

Εάν αυτό σας βγάλει μύνημα λάθους, τότε το πιο πιθανό είναι να μην έχετε ενεργοποιήσει το state tracking στον πυρήνα κάντε recompile. Μετά αφήστε καινούριες συνδέσεις μόνο απο το intranet (τοπικό/εσωτερικό δίκτυο). Αντικαταστήστε το ppp0 με eth0 ή με οτιδήποτε είναι η εξωτερική σας συσκευή. (Το ! σημαίνει οτιδήποτε εκτός απο)

$> iptables -A INPUT -m state --state NEW -i ! ppp0 -j ACCEPT

Και τώρα αρνηθείτε οτιδήποτε άλλο:

$> iptables -P INPUT DROP   #only if the first two are succesful

Εάν οποιοσδήποτε απο τους δύο πρώτους κανόνες αποτύχει, τότε αυτός ο τελευταίος κανόνας θα εμποδίσει το μασκάρισμα να δουλέψει εντελώς. Για να αναιρέσετε αυτόν τον κανόνα μπορείτε να γράψετε "iptables -P INPUT ACCEPT".