Konfiguracja prostej sieci WIFI Internet <=> Komputer_1 <=> Komputer_2.

Awatar użytkownika
igotit4free
Przyjaciel
Przyjaciel
Posty: 6453
Rejestracja: 29 paź 2008, 22:51
Płeć: Mężczyzna
Architektura: x86_64
Lokalizacja: KRK

Konfiguracja prostej sieci WIFI Internet <=> Komputer_1 <=> Komputer_2.

Post autor: igotit4free » 03 sty 2010, 15:12

1. Co chcemy uzyskać ?
Połączenie wifi z Internetem. Połączenie statyczne, adresy "sztywne", static, nie DHCP. Ad-Hoc. Udostępnianie połączenia internetowego. Wifi. Linux. Ubuntu. Windows. Bez routera i dodatkowych wydatków. Szyfrowanie WEP z kluczem "open". Sprawna zapora sieciowa. Firewall.

Temat oklepany do bólu, mogłoby się zdawać, że nikt nie powinien mieć z tym żadnych kłopotów a jednak ...
No to spróbuję to opisać w najprostszy możliwe, łopatologiczny sposób.
ZAKŁADAM, ŻE KARTY MACIE SPRAWNE, STEROWNIKI POINSTALOWANE, ZAJMUJEMY SIĘ TYLKO KONFIGURACJĄ POŁĄCZENIA.

2. Projekt sieci.


INTERNET - w budowie każdej sieci występuje coś o nazwie "brama", czyli dosłownie miejsce przez które łączymy się ze światem. W moim przykładzie adres IP bramy to 192.168.1.2
Adres twojej bramy uzyskasz od twojego dostawcy sieci.

Komputer_1 - ten się będzie łączył z Internetem i z Komputerem_2, musi mieć więc co najmniej dwie karty sieciowe.
W moim przykładzie ma wlan0 (radiowa karta wifi, tą łączy się z Internetem) oraz wlan1 (radiowa karta wifi, tą łączy się z Komputerem_2).
Zainstalowany system Linux.

Komputer_2 - ten się będzie łączył tylko z Komputerem_1, wystarczy mu jedna karta, w moim przykładzie to wlan0.
Zainstalowany system Linux albo inny, nieistotne.

Chcemy to połączyć tak :
Internet(brama 192.168.1.2) <=> (wlan0 192.168.1.184) Komputer_1 (brama wlan1 10.0.0.1) <=> (wlan0 10.0.0.2) Komputer_2.

3. Projekt konfiguracji.
Na konfigurację bramy Internetu nie mamy wpływu, pamiętamy jedynie jej adres tj. 192.168.1.2.

Komputer_1 :
Parametry połączenia internetowego są narzucane przez dostawcę sieci. Karta wlan0 będzie działać w trybie Managed (co znaczy chyba to samo co "Infrastructure";)).
W moim przypadku, dla karty wlan0 są to adres IP 192.168.1.184, maska 255.255.255.0, DNS 192.168.1.2, brama 192.168.1.2. Połączenie zabezpieczone jest dziesięciocyfrowym kluczem open WEP 1111111111 i ma swoją NAZWĘ_INTERNET.
Parametry sieci wewnętrznej dla karty wlan1 Komputera_1 przyjmujemy dowolne (no zgodne z regułami sztuki;)), sami tam jesteśmy administratorem.
U mnie dobrze sprawia się adresowanie IP 10.0.0.1, maska 255.0.0.0, DNS nie podajemy, bramy nie podajemy. Karta ma działać w trybie Ad-Hoc, zabezpieczam WEPem z kluczem "open" 222222222, sieć ma oczywiściwe NAZWĘ_LOCAL.

Komputer_2 :
Kartę wlan0 tego komputera adresujemy IP 10.0.0.2, maska 255.0.0.0, DNS1 192.168.1.2, DNS2 10.0.0.1 ... w zwykłych warunkach DNSy mogą być cztery, można tam dodać jakieś szybkie OpenDNS albo GoogleDNS.
Działa w trybie Ad-Hoc, połączenie zabezpieczone WEPem z kluczem "open" 2222222222, sieć ma NAZWĘ_LOCAL.

4. Konfiguracja.
Dobra, wiem że są aplikacje typu Networkmanager czy Wicd ... są i czasem działają lepiej, czasem gorzej a czasem wcale.
Ja konfiguruję w najprostszy możliwy sposób => poprzez edycję plików systemowych ... tak naprawdę istotne są dwa:
/etc/network/interfaces - tu podaje się WSZYSTKO.
/etc/resolv.conf - tu podaje się DNSy i domeny wyszukiwania.

Konfiguracja Komputera_1.
Edytujemy:

Kod: Zaznacz cały

sudo gedit /etc/network/interfaces
i umieszczamy tam zapis:
# The loopback network interface
auto lo
iface lo inet loopback

# The wlan0 network interface
auto wlan0
iface wlan0 inet static
wireless-mode Managed
wireless-essid NAZWA_INTERNET
wireless-key open 1111111111
address 192.168.1.184
netmask 255.255.255.0
gateway 192.168.1.2

# The wlan1 network interface
auto wlan1
iface wlan1 inet static
wireless-mode Ad-Hoc
wireless-essid NAZWA_LOCAL
wireless-key open 2222222222
address 10.0.0.1
netmask 255.0.0.0
Zapisujemy plik.
Edytujemy:

Kod: Zaznacz cały

sudo gedit /etc/resolv.conf
i wpisujemy tam:
nameserver 192.168.1.2
nameserver 208.67.222.222
nameserver 208.67.220.220
Zapisujemy.
Restart komputera celem sprawdzenia :

Kod: Zaznacz cały

iwconfig
=>
lo no wireless extensions.

wlan1 IEEE 802.11b ESSID:"NAZWA_LOCAL"
Mode:Ad-Hoc Frequency:2.412 GHz Cell: 2A:B2:30:CB:E0:76
Bit Rate=11 Mb/s Tx-Power:20 dBm Sensitivity=-100 dBm
RTS thr=2347 B Fragment thr=2346 B
Power Management:off
Link Quality:93/100 Signal level:-36 dBm Noise level:-96 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0

wlan0 IEEE 802.11g ESSID:"NAZWA_INTERNET"
Mode:Managed Frequency:2.412 GHz Access Point: 00:0E:8E:7C:4B:A4
Bit Rate=11 Mb/s Tx-Power:20 dBm Sensitivity=-121 dBm
RTS thr=2347 B Fragment thr=2346 B
Power Management:off
Link Quality:46/100 Signal level:-66 dBm Noise level:-96 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
oraz

Kod: Zaznacz cały

ifconfig
=>
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:2894 errors:0 dropped:0 overruns:0 frame:0
TX packets:2894 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:169271 (165.3 KB) TX bytes:169271 (165.3 KB)

wlan0 Link encap:Ethernet HWaddr XX:XX:XX:XX:XX:XX
inet addr:192.168.1.184 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::222:b0ff:fe72:13f/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:8038 errors:0 dropped:0 overruns:0 frame:0
TX packets:4296 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3916234 (3.7 MB) TX bytes:548553 (535.6 KB)
Interrupt:19 Memory:fe700000-fe708000

wlan1 Link encap:Ethernet HWaddr XX:XX:XX:XX:XX:XX
inet addr:10.0.0.1 Bcast:10.255.255.255 Mask:255.0.0.0
inet6 addr: fe80::208:a1ff:fe81:bfe4/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:53 errors:0 dropped:0 overruns:0 frame:0
TX packets:58 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:4413 (4.3 KB) TX bytes:14181 (13.8 KB)
Interrupt:19 Memory:fe900000-fe902000
Czyli działa.
Można i trzeba sprawdzić czy widzimy Świat, wydajemy sobie w konsoli:

Kod: Zaznacz cały

ping www.onet.pl
i dostajemy coś w stylu:
PING http://www.onet.pl (213.180.146.27) 56(84) bytes of data.
64 bytes from s4.m1r2.onet.pl (213.180.146.27): icmp_seq=1 ttl=56 time=19.3 ms
64 bytes from s4.m1r2.onet.pl (213.180.146.27): icmp_seq=2 ttl=56 time=24.7 ms
64 bytes from s4.m1r2.onet.pl (213.180.146.27): icmp_seq=3 ttl=56 time=20.6 ms
64 bytes from s4.m1r2.onet.pl (213.180.146.27): icmp_seq=4 ttl=56 time=21.7 ms
64 bytes from s4.m1r2.onet.pl (213.180.146.27): icmp_seq=5 ttl=56 time=24.7 ms
64 bytes from s4.m1r2.onet.pl (213.180.146.27): icmp_seq=6 ttl=56 time=20.1 ms
Jak nie dostajemy odpowiedzi, to sprawdzamy pliki konfiguracyjne, gdzieś jest błąd.

Konfiguracja Komputera_2.


Edytujemy:

Kod: Zaznacz cały

sudo gedit /etc/network/interfaces
i umieszczamy tam zapis:
# The loopback network interface
auto lo
iface lo inet loopback

# The wlan0 network interface
auto wlan0
iface wlan0 inet static
wireless-mode Ad-Hoc
wireless-essid NAZWA_LOCAL
wireless-key open 2222222222
address 10.0.0.2
netmask 255.0.0.0
gateway 10.0.0.1
Zapisujemy plik.
Edytujemy:

Kod: Zaznacz cały

sudo gedit /etc/resolv.conf
i wpisujemy tam:
nameserver 192.168.1.2
nameserver 10.0.0.1
nameserver 208.67.222.222
nameserver 208.67.220.220
To wszystko dla Komputera_2 przy założeniu, że jest tam Linux, jeśli np. jest to jakiś M$ to w okienka stosownego managera wpisujemy:
IP 10.0.0.2
maska 255.0.0.0.
brama 10.0.0.1
DNS 192.168.1.2, 10.0.0.1, 208.67.222.222 itp.
ESSID NAZWA_LOCAL
klucz 222222222
Restart, sprawdzamy przy użyciu iwconfig i ifconfig czy Komputer_2 "trzyma" założoną konfigurację.

5. Firewall, udostępnianie połączenia.

Jak już mamy działające połączenie Komputera_1 z Internetem i rozgłasza on sieć NAZWA_LOCAL, to pora pomyśleć o udostępnieniu połączenia z Internetem Komputerowi_2 ...
Zrobimy to ŁATWO i BEZPIECZNIE.
Wg. tego manuala na Komputerze_1 budujemy firewalla ... jak wkleimy te reguły:
#!/bin/bash
# Definicje.
IPT="/sbin/iptables"

# Czyszczenie ustawień.
$IPT -F
$IPT -F -t nat
$IPT -X -t nat
$IPT -F -t mangle
$IPT -X -t mangle
$IPT -F -t filter
$IPT -X -t filter

# Ochrona przed atakami syn-flood.
echo "1" > /proc/sys/net/ipv4/tcp_syncookies
# Włączenie przekazywania pakietów pomiędzy interfejsami.
echo "1" > /proc/sys/net/ipv4/ip_forward

# Domyślne akcje dla pakietów.
$IPT -P INPUT DROP
$IPT -P FORWARD DROP
$IPT -P OUTPUT ACCEPT

# Odblokowanie loopbacku tylko dla naszego routera.
$IPT -A INPUT -i lo -j ACCEPT
# Odblokowanie loopbacku dla komputerów za maskaradą.
$IPT -A FORWARD -o lo -j ACCEPT

# Zezwolenie na ruch połączeń nawiązanych i powiązanych.
$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Udostępnienie połączenia w sieci lokalnej/MAC_ADDR
$IPT -t nat -A POSTROUTING -s 10.0.0.2 -j MASQUERADE
$IPT -A FORWARD -m mac --mac-source XX:XX:XX:XX:XX:XX -j ACCEPT
# $IPT -A FORWARD -s 10.0.0.2 -j ACCEPT
to dostaniemy dobrą ścianę ogniową, a przy okazji udostępnimy połączenie internetowe komputerowi o adresie IP 10.0.0.2 i adresie MAC karty sieciowej XX:XX:XX:XX:XX:XX ... czyli niespodzianka => Komputerowi_2.
Adres MAC karty pod linuxami ustalamy wydając komendę: ifconfig i o odczytując zapis za "HWaddr".
Pod M$ wchodzimy w "Uruchom", wpisujemy "cmd" a następnie "ipconfig".

Na Komputerze_2 firewalla budujemy analogicznie i wklejamy reguły:
#!/bin/bash
# Definicje.
IPT="/sbin/iptables"

# Czyszczenie ustawień.
$IPT -F
$IPT -F -t nat
$IPT -X -t nat
$IPT -F -t mangle
$IPT -X -t mangle
$IPT -F -t filter
$IPT -X -t filter

# Ochrona przed atakami syn-flood.
echo "1" > /proc/sys/net/ipv4/tcp_syncookies
# Włączenie przekazywania pakietów pomiędzy interfejsami.
echo "1" > /proc/sys/net/ipv4/ip_forward

# Domyślne akcje dla pakietów.
$IPT -P INPUT DROP
$IPT -P FORWARD DROP
$IPT -P OUTPUT ACCEPT

# Odblokowanie loopbacku tylko dla naszego routera.
$IPT -A INPUT -i lo -j ACCEPT
# Odblokowanie loopbacku dla komputerów za maskaradą.
$IPT -A FORWARD -o lo -j ACCEPT

# Zezwolenie na ruch połączeń nawiązanych i powiązanych.
$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
Voila! Gra i buczy, a przynajmniej powinno.

.
Windows 10 @ GA-P67A-D3-B3, i3-2100 3.10GHz, 8GB RAM, Gigabyte HD6850 1GB RAM
Android 7.0 @ Motorola Moto G4+
ODPOWIEDZ

Wróć do „Software-Sieć”