Udostępniamy internet z Ubuntu dla XP

Awatar użytkownika
karmelek
Przyjaciel
Przyjaciel
Posty: 883
Rejestracja: 10 lut 2007, 17:45
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

Udostępniamy internet z Ubuntu dla XP

Post autor: karmelek » 26 lut 2008, 07:52

Długo szukałem czegoś o udostępnianiu połączenia internetowego spod Ubuntu dla Windowsa XP. Pomoc nadeszła z ubuntowego IRCa - serdeczne za to dzięki. Jako że temat stosunkowo popularny, to sądzę że warto opisać w jednym miejscu, tak żeby poszukujący łatwo mogli sobie co nieco wyszukać. No to koniec tego gadania i zaczynamy ;-)

Zanim jednak zaczniemy

Autor nie bierze odpowiedzialności za uszkodzenia powstałe w wyniku stosowania poniższych instrukcji. Przy wykonywaniu/modyfikowaniu komend zaleca się wykonywanie kopii zapasowych edytowanych plików na wypadek awarii. Powyższe instrukcje sprawdziłem osobiście przy stałym adresie IP połączenia na systemie operacyjnym Linux Ubuntu 7.10 z jądrem2.6.22-14-generic i działały bezproblemowo.


Pierwsze co będzie nam potrzebne to zasadniczo 2 kompy, trochę kabla i 2 wtyczki RJ45 - przydałaby się także zaciskarka do owych wtyków. Maszyna udostępniająca musi posiadać 2 interfejsy sieciowe ( jeden do Internetu i drugi do drugiego kompa). W drugim kompie potrzeba tylko jednej sieciówki. Oba komputery lączymy przy uzyciu kabla skrosowanego, czyli na jednej wtyczce kolory powinny być ustawione:

Kod: Zaznacz cały

biało-pomarańcz. pomarańcz. biało-ziel. nieb. biało-nieb. ziel. biało-brąz. brąz
czyli standard T56B, natomiast drugi wtyk to standard T56A, czyli

Kod: Zaznacz cały

biało-ziel. ziel biało-pomarańcz. nieb. biało-nieb. pomarańcz. biało-brąz. brąz
I to by było na tyle, jeżeli chodzi o przygotowanie kabla do połączenia. Tak przygotowaną skrętką możemy połączyć obie maszyny.

Teraz pora na ustawienie odpowiednich parametrów w komputerze udostępniającym sieć. Przy użyciu ifconfig orientujemy się, która karta będzie służyć do połączenia z siecią, a która do udostępniania łącza. W tym tutorialu założyłem, że:

eth0 - udostępnia

eth1 - łączy się z internetem

Ustawiamy na początek IP dla karty udostepniającej

Kod: Zaznacz cały

sudo ifconfig eth0 192.168.0.1 up
Teraz potrzebny nam będzie skrypt - (autora nie pamiętam - otrzymałem w każdym razie na #ubuntu-pl - jak się odnajdzie - podpiszemy ;-)

W skrypcie założono takie interfejsy jak podane powyżej - jeżeli masz inne to musisz zmienic je w odpowiednich linijkach. Również IP wyjsciowe jest takie jak u mnie ;-)

Kod: Zaznacz cały

#!/bin/sh
# Sciezka do iptables
IPTABLES=/sbin/iptables
# Interfejs zewnetrzny
EXT_IP=77.65.162.134
EXT_INT=eth1
PODSIEC1=”192.168.0.0/24″
PODSIEC2=”192.168.1.0/24″
$IPTABLES -t nat -A POSTROUTING -s $PODSIEC1 -o $EXT_INT -j SNAT –to-source $EXT_IP
$IPTABLES -t nat -A POSTROUTING -s $PODSIEC2 -o $EXT_INT -j SNAT –to-source $EXT_IP
# Lokalny interfejs
LAN_IP=192.168.0.1
LAN_INT=eth0
# Siec
SIEC_IP=192.168.0.0
SIEC_MASKA=255.255.255.0
SIEC_IP2=192.168.1.0
SIEC_MASKA2=255.255.255.0
# Hosty, ktorym udostepniamy lacze
HOST1=192.168.0.2
HOST2=192.168.1.2
# Uruchomienie przekazywania pakietow
echo “1″ > /proc/sys/net/ipv4/ip_forward
# Czyszczenie tablic iptables (NAT i Filtrowanie)
$IPTABLES -F -t nat
$IPTABLES -X -t nat
$IPTABLES -F -t filter
$IPTABLES -X -t filter
# Odrzucenie i brak zezwolenia na forwardowanie pakietow
$IPTABLES -t filter -P FORWARD DROP
# Przepuszczanie pakietow z sieci lub przeznaczone dla sieci
$IPTABLES -t filter -A FORWARD -s $SIEC_IP/$SIEC_MASKA -d 0/0 -j ACCEPT
$IPTABLES -t filter -A FORWARD -s 0/0 -d $SIEC_IP/$SIEC_MASKA -j ACCEPT
$IPTABLES -t filter -A FORWARD -s $SIEC_IP2/$SIEC_MASKA2 -d /0 -j ACCEPT
$IPTABLES -t filter -A FORWARD -s 0/0 -d $SIEC_IP2/$SIEC_MASKA2 -j ACCEPT
# Maskarada
$IPTABLES -t nat -A POSTROUTING -s $HOST1 -d 0/0 -j MASQUERADE
$IPTABLES -t nat -A POSTROUTING -s $HOST2 -d 0/0 -j MASQUERADE
# Moduly do FTP i IRCa
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_nat_irc
Powyższy tekst zapisujemy sobie jako iptables.sh w katalogu domowym. Następnie nadajemy mu prawa wykonalności.

Kod: Zaznacz cały

sudo chmod +x /home/user/iptables.sh
Nastepnie również z sudo odpalamy ten skrypt. No i w zasadzie jesteśmy na półmetku. Teraz sprawdzamy sobie w networ-managerze DNS’y i odpisujemy je sobie. Czas na konfigurację maszyny z windowsem.

Wchodzimy w Połączenia internetowe i następnie we właściwości interfejsu, do ktorego mamy podpięty kabel. Dalej zaznaczamy protokój TCP/IP i tam ustawiamy następujące wartości.

IP
: 192.168.0.2

Brama:
192.168.0.1

I ta srodkowa wartość(nie pamietam co to ma być):
255.255.255.0

i do tego DNS'y takie jakie odpisaliśmy z Ubuntu.

No i tym sposobem internet na drugim kompie powinien działać bezproblemowo. Jednakże reboot komputera z Ubuntu zmusi nas do ponownej zmiany IP interfejsu i odpalenia skryptu. Aby temu zaradzić odpalamy

Kod: Zaznacz cały

sudo gedit etc/rc.local
i do pliku dopisujemy

Kod: Zaznacz cały

/home/user/iptables.sh
tudzież inną scieżkę do skryptu z góry strony. Jako kolejny plik edytujemy /etc/network/interfaces, czyli:

Kod: Zaznacz cały

sudo gedit  /etc/network/interfaces
gdzie dopisujemy:

Kod: Zaznacz cały

 iface eth0 inet static address 192.168.0.1 netmask 255.255.255.0
I tym razem to już naprawdę koniec ;-)


źródło: http://www.karmelek.wordpress.com
Wszystkich moderatorów Bóg po śmierci zabiera do nieba, żeby ci dwadzieścia cztery godziny na dobę moderowali modlitwy do niego.
http://karmelek.wordpress.com
inny OS=debian lenny
ODPOWIEDZ

Wróć do „Software-Sieć”