119 γραμμές
8,1 KiB
Markdown
119 γραμμές
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 κλπ ισως ακολουθησει\...
|