120 γραμμές
8,1 KiB
Markdown
120 γραμμές
8,1 KiB
Markdown
|
+++
|
|||
|
title = 'IP Masquerading'
|
|||
|
date = '1998-06-01T00:00:00Z'
|
|||
|
description = ''
|
|||
|
author = 'Ευριπίδης Παπακώστας'
|
|||
|
issue = ['Magaz 05']
|
|||
|
issue_weight = 5
|
|||
|
+++
|
|||
|
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
|||
|
*Είχαμε την παρακάτω απορία. Διαβάσαμε ένα παλιό Linux Journal, ρωτήσαμε και ένα δύο φίλους και την λύσαμε*
|
|||
|
|
|||
|
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
|||
|
- Εχω μόνο ένα account/connection (είτε dialup, είτε permanent) σε κάποιον Internet provider.
|
|||
|
- Εχω πάνω από ένα PCs και θέλω όλα να έχουν πρόσβαση στο Internet (ξαδέρφια, συνάδελφοι, το αφεντικό).
|
|||
|
- Θέλω επίσης, είτε επειδή δεν μου δίνουν τόσα legal IPs, είτε γιατί θέλω αυξημένο security τα PCs αυτά να έχουν dummy IPs (π.χ 10.0.0.x).
|
|||
|
|
|||
|
**Τι χρειάζομαι:**
|
|||
|
|
|||
|
- Ενα Linux Box.με kernel κάπως πρόσφατο = 2.0.30 μας κάνει σίγουρα..
|
|||
|
- Μια κάρτα δικτύου προς το εσωτερικό μου δίκτυο και άρα έστω το IP της 10.0.0.1.
|
|||
|
- Σε περίπτωση dialup connection, ένα modem. IP θα πάρω δυναμικά (έστω ότι η σύνδεση είναι dynamic IP) και φυσικά να ξέρω να συνδέομαι με τον provider μέσω
|
|||
|
Linux.
|
|||
|
- Σε περίπτωση permanent connection, μια κάρτα δικτύου προς το εξωτερικό υποδίκτυο (που πάει στον router) και άρα με ένα legal IP που μου δίνει ο provider.
|
|||
|
Εστω 195.175.200.1 το IP αυτό.
|
|||
|
|
|||
|
**Τι κάνω:**
|
|||
|
|
|||
|
Για nameserver στο linux (αν δεν το\'χουμε λυσει αυτο το θεμα αλλοιως) βαζουμε του provider.\
|
|||
|
π.χ. το /etc/resolv.conf μας ειναι\
|
|||
|
search nini.gr\
|
|||
|
nameserver 127.0.0.1 (εμεις οι ιδιοι)\
|
|||
|
nameserver 195.170.0.2 (η ΟΤΕΝΕΤ).
|
|||
|
|
|||
|
- Για default gateway πρέπει να έχουμε το internet gateway (ειτε modem ειτε η δευτερη καρτα δικτυου μας). Θα μπορούσαμε και χειροκίνητα π.χ. για την δεύτερη
|
|||
|
κάρτα να δώσουμε:\
|
|||
|
route add default eth1 (eth0=1η καρτα, eth1=2η καρτα).\
|
|||
|
- Στην περιπτωση του dialup connection ο τροπος συνδεσης σας, λογικα θετει ως default gateway to ppp0.
|
|||
|
- Μαλλον τα default options που έχει ο precompiled kernel μας κάνουν, αλλά όπως και να\'χει αυτά θα χρειαστείτε (αν όχι όλα, να το θέσουμε έτσι: εμάς με αυτά
|
|||
|
δουλεύει άψογα):\
|
|||
|
\
|
|||
|
Loadable Module Support\
|
|||
|
Loadable module support = YES\
|
|||
|
Version Information on all symbols = YES\
|
|||
|
Kernel demon support = NO (αυτό παίζεται και αν το θέλετε)\
|
|||
|
\
|
|||
|
\
|
|||
|
Networking Options\
|
|||
|
Network Firewalls = YES\
|
|||
|
Network Aliasing = YES\
|
|||
|
TCP/IP Networking = YES\
|
|||
|
IP: forwarding = YES\
|
|||
|
IP: multicastiong = YES\
|
|||
|
IP: syn cookies = YES\
|
|||
|
IP: rst cookies = YES\
|
|||
|
IP: firewalling = YES\
|
|||
|
IP : packet logging = YES\
|
|||
|
IP : masq = YES\
|
|||
|
\
|
|||
|
Protocol Specific masq modules\
|
|||
|
IP: ipautofw masq = YES\
|
|||
|
IP: ICMP masq = YES\
|
|||
|
IP: transparent proxy support = YES\
|
|||
|
IP: always defrag = YES\
|
|||
|
IP : accounting = YES\
|
|||
|
IP : optimize as router = YES\
|
|||
|
\
|
|||
|
|
|||
|
**ΟΚ. Τώρα τι κάνω:**
|
|||
|
|
|||
|
Αν είναι να το ξεκινήσω χειροκίνητα, γράφω τα εξής:
|
|||
|
|
|||
|
- ipfwadm -F -p deny (δηλαδή δεν πρόκειται να προωθούμε πακέτα πλεόν με διαφορετικές διευθύνσεις δικτύων από αυτές που έχει το μηχάνημά μας)
|
|||
|
- ipfwadm -F -a m -S 10.0.0.0/0 -D 0.0.0.0/0 (εδώ τι λέμε: Θα κάνω modification στα forwarding rules που μέχρι τώρα όρισα, δηλάδη μόνο την παραπάνω εντολή και
|
|||
|
θα επιτρέψω το forwarding πακέτων από το εσωτερικό μου υποδίκτυο 10.0.0.0 και για όλα τα 255 IPs 10.0.0.1 - 10.0.0.255 προς οπουδήποτε θέλουν να πάνε.
|
|||
|
Επειδή δεν έχω πάνω από δυο κάρτες δεν θέλω τιποτα άλλο)
|
|||
|
|
|||
|
Αν θελω το κανω και scriptακι να ξεκινάει αυτοματα:
|
|||
|
|
|||
|
#!/bin/sh
|
|||
|
PATH=/usr/local/bin; export PATH
|
|||
|
# Αυτο το θέλω γιατι εκει ειναι το δικό μου ipfwadm.
|
|||
|
#Εσεις κάντε whereis ipfwadm και βάλτε το δικο σας
|
|||
|
ipfwadm -F -p deny
|
|||
|
ipfwadm -F -a m -S 10.0.0.0/0 -D 0.0.0.0/0
|
|||
|
|
|||
|
Το σώζω σαν π.χ. /etc/rc.d/rc.masq\_rules (αντε και chmod 755 /etc/rc.d/rc.masq\_rules)
|
|||
|
|
|||
|
και μετά παω π.χ. στο /etc/rc.d/rc.local και στο τέλος του προσθέτω και:
|
|||
|
|
|||
|
/etc/rc.d/rc.masq\_rules
|
|||
|
|
|||
|
**Στα εσωτερικά PCs, τι κάνω εκεί;**
|
|||
|
|
|||
|
Εστω windows 95 PCs. Δινω IP του τύπου 10.0.0.x (2\<=x\<=254). Για DNS και δίνω το DNS μας (αν το Linux εκτελεί χρέη DNS δώστε αυτό, αλλοιώς δώστε του provider
|
|||
|
σας.). Στο Gateway δίνω 10.0.0.1 (να φέυγουν τα πακέτα μέσω του Linux).
|
|||
|
|
|||
|
Αρχικά είσαστε έτοιμοι (αν είσαστε με dialup μένει να συνδεθείτε μέσω Linux όπως κάνατε πάντα) και τα PCs μπορούν επίσης να βλέπουν Internet παράλληλα με εσας.
|
|||
|
Εντυπωσιακο, πρακτικο, λειτουργικο, κομψο και γρηγορο. Τέλος.
|
|||
|
|
|||
|
**Όμως, αυτό λύνει το Internet Browser κομμάτι κλπ. Τι γίνεται με περιπτώσεις όπως το ftp?**
|
|||
|
|
|||
|
Καλή ερώτηση , την περιμέναμε. Μέχρι τώρα δεν είναι αναγκαστικό να μπορούν και τα PCs να κάνουν ftp προς τον έξω κόσμο με επιτυχία. Από το Linux, δώστε
|
|||
|
|
|||
|
insmod ip_masq_ftp (για ftp)
|
|||
|
insmod ip_masq_raudio (για να ακούν και τα PCs real audio)
|
|||
|
insmod ip_mas_irc (για να έχετε και το IRC σας, θα πέσει φωτιά να μας κάψει!)
|
|||
|
|
|||
|
Για πιο σύνθετα προβλήματα, όπως να περνάει ICQ, CUSEEME κλπ. δεν υπάρχουν έτοιμα modules (τουλάχιστον όταν εμείς κοιτάγαμε αυτο το θέμα) και θα καταφύγετε στην
|
|||
|
χρήση της εντολής ipautofw (που κάναμε πιο πάνω include στον kernel μας). Μονο που επειδή θέλει settings\...άλλη φορά.
|
|||
|
|
|||
|
Το παραπανω ειναι πολυ γενικο και χοντροκομμενο. Finetunnings μπορουν να γινουν (και μερικες φορες πρεπει) στην περιπτωση που θελουμε να κανουμε forwarding μονο
|
|||
|
σε μερος του δικτυου μας η σε συγκεκριμενα IPs, εχουμε πανω απο δυο καρτες δικτυου, θελουμε τα εσωτερικα PCs να ειναι προσπελασιμα απο τους εξω (γιατι; γιατι;
|
|||
|
αφου ειναι επικινδυνο) κλπ. Δεν θα ασχοληθουμε, να τα βρειτε μονοι σας, αλλωστε ουτε εμεις τα ξερουμε σε μεγαλο βαθος :-)
|
|||
|
|
|||
|
Επισης αν δε δουλεψει, μαλλον κατι ξεχασαμε έξω. Πειτε μας να το συμπεριλαβουμε.
|
|||
|
|
|||
|
Τυφλοσουρτι για mail server, DNS server κλπ ισως ακολουθησει\...
|