Πρώτο commit
Αυτό το commit περιλαμβάνεται σε:
commit
8ec8e9bee2
451 αρχεία άλλαξαν με 46736 προσθήκες και 0 διαγραφές
119
content/articles/05/05_ipmasq.md
Κανονικό αρχείο
119
content/articles/05/05_ipmasq.md
Κανονικό αρχείο
|
@ -0,0 +1,119 @@
|
|||
+++
|
||||
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 κλπ ισως ακολουθησει\...
|
Φόρτωση…
Προσθήκη πίνακα
Προσθήκη υπερσυνδέσμου
Παράθεση σε νέο ζήτημα