Kirjoittaja Aihe: [RATKAISTU] Miten nettiyhteyden jakaminen langattomasti, xbmcbuntu 11.10  (Luettu 4776 kertaa)

Jantunen

  • Käyttäjä
  • Viestejä: 254
  • Hö.
    • Profiili
    • Strobotti.com: Valokuvausta ja kameraharrastusta
Moi,

Otsikon kaltainen kysymys toistuu aika ajoin ja googlella löytyy kaikenlaista tauhkaa, mutta ilmeisesti oma ymmärrykseni aiheesta on aivan liian puutteellinen, koska en tahdo ymmärtää puoliakaan siitä, mitä pitäisi tehdä. Skenaario on seuraavanlainen:

Nettiyhteys tulee nyt asuntoon Elisan ADSL:n kautta, ko. boksi on todella epävakaa langattoman suhteen, langallisesti toimii todella hyvin, joten olisi tarkoitus saada media-pc jakamaan langattomasti tuota yhteyttä.

Eli tarkoitus olisi saada langalla yhteys kaikkiin langallisiin laitteisiin edelleenkin, mutta sammuttaa tuon Elisan boxin langaton kokonaan ja saada ubuntu-pohjainen laite "tilalle". Koneen eth0:lla on ip:nä 192.168.100.50 ja ideaalitilanne olisi, että wlan0:n avulla saisi samaan verkkoon lisää laitteita. Networkmanager on poistettu, koska purkkia pitää konffata ssh:n yli.

Asensin jo paketit dhcp-server ja dnsmasq, jälkimmäinen jotta saisin kaupanpäälle kakutettua dns-tauhkaa. Ongelmani on lähinnä siinä, miten konffaan wlan0:n /etc/network/interfaces-tiedostossa siten, että saan wpa2:n käyttöön jakamaan yhteyden samaan lähiverkkoon ja internettiin kuin muutkin laitteet ovat langallisesti.

eth0:n osalta interfaces näyttää tältä:


Koodia: [Valitse]
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 192.168.100.50
netmask 255.255.255.0
#network 192.168.255.0
broadcast 192.168.100.255
gateway 192.168.100.1

wlan0:n ei tarvitse välttämättä olla samassa verkossa langallisten laitteiden kanssa, mutta se olisi toki bonusta...

Kiitos jo etukäteen!
« Viimeksi muokattu: 20.03.12 - klo:20.19 kirjoittanut Jantunen »
Lenovo Thinkpad T420 Intel i5 16Gt/SSD512GB+HDD2TB, Ubuntu 16.04 Xenial Xerus 64bit; Kuvia ja lätinää valokuvauksesta: https://www.strobotti.com/

Daneli

  • Käyttäjä
  • Viestejä: 1037
  • Red Hat Chili Peppers
    • Profiili
    • www.daneli.org
Miten olis wlan tukiasema tuohon adls laatikkoon kaveriksi ja loisin kotiverkon laitteiden välille ?  Itse ostin juuri yhden 10€ kirparilta.
« Viimeksi muokattu: 17.03.12 - klo:16.47 kirjoittanut Daneli »

Jantunen

  • Käyttäjä
  • Viestejä: 254
  • Hö.
    • Profiili
    • Strobotti.com: Valokuvausta ja kameraharrastusta
Miten olis wlan tukiasema tuohon adls laatikkoon kaveriksi ja loisin kotiverkon laitteiden välille ?  Itse ostin juuri yhden 10€ kirparilta.

Kävi kyllä mielessä, mutta toisaalta en halua (eikä vaimokaan varmasti :P) yhtään lisää laitteita nurkkiin hurraamaan, ja kun tuo media-pc nyt on päällä 24/7 joka tapauksessa ja omaa "ylimääräisen" langattoman verkkokortin. Ja varsinkin kun tuo periaatteessa käsittääkseni olisi vain muutamasta rivistä konfiguraatiota kiinni.

Eli miten ihmeessä luon komentoriviltä wpa(2) -suojatun langattoman verkon wlan0:lle, joka sitten reitittää liikennettä eth0:aan mielellään samaan verkkoon?
Lenovo Thinkpad T420 Intel i5 16Gt/SSD512GB+HDD2TB, Ubuntu 16.04 Xenial Xerus 64bit; Kuvia ja lätinää valokuvauksesta: https://www.strobotti.com/


Jantunen

  • Käyttäjä
  • Viestejä: 254
  • Hö.
    • Profiili
    • Strobotti.com: Valokuvausta ja kameraharrastusta
https://help.ubuntu.com/community/WifiDocs/ShareEthernetConnectionThroughWireless

Juuri tuota etsiskelin, meni ilmeisesti nolosti ohi silmien jossain kohtaa : :(

Koitetaan tuolla ensin, ja tullaan sitten itkemään lisää, jos ei lähde potkimaan...  :)
Lenovo Thinkpad T420 Intel i5 16Gt/SSD512GB+HDD2TB, Ubuntu 16.04 Xenial Xerus 64bit; Kuvia ja lätinää valokuvauksesta: https://www.strobotti.com/

Jantunen

  • Käyttäjä
  • Viestejä: 254
  • Hö.
    • Profiili
    • Strobotti.com: Valokuvausta ja kameraharrastusta
Ei näytä onnistuvan, eli saan näkyviin verkon, johon ei voi yhdistää.

/etc/network/interfaces näyttää nyt tältä:

Koodia: [Valitse]
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

auto wlan0
iface wlan0 inet static
wireless-key 0987654321
wireless-channel 6
wireless-mode ad-hoc
wireless-essid munverkko
address 10.0.0.1
netmask 255.255.255.0

Tuon seurauksena iwconfig näyttää tältä:

Koodia: [Valitse]
lo        no wireless extensions.

eth0      no wireless extensions.

wlan0     IEEE 802.11bgn  ESSID:"munverkko"  
          Mode:Ad-Hoc  Frequency:2.437 GHz  Cell: D2:9B:7F:91:40:48  
          Tx-Power=14 dBm  
          Retry  long limit:7   RTS thr:off   Fragment thr:off
          Power Management:on

Ja master modeen laittaminen herjaa:

Koodia: [Valitse]
$ sudo iwconfig wlan0 mode Master
Error for wireless request "Set Mode" (8B06) :
    SET failed on device wlan0 ; Invalid argument.

Mikähän auttaisi?

EDIT:

Mjoo, tuo keksintö ei näytä taipuvan master-modeen sitten kirveelläkään, täytynee etsiä siihen joku usb-dongeli, joka olisi paremmin tuettu, toimisikohan tuo master-modessa:

http://www.verkkokauppa.com/fi/product/5911/dcqgg/Netwjork-PICO-150Mbps-WLAN-USB-sovitin

Ei vaan mitään käsitystä mikä piirisarja tuossa on...
« Viimeksi muokattu: 18.03.12 - klo:17.47 kirjoittanut Jantunen »
Lenovo Thinkpad T420 Intel i5 16Gt/SSD512GB+HDD2TB, Ubuntu 16.04 Xenial Xerus 64bit; Kuvia ja lätinää valokuvauksesta: https://www.strobotti.com/

Jantunen

  • Käyttäjä
  • Viestejä: 254
  • Hö.
    • Profiili
    • Strobotti.com: Valokuvausta ja kameraharrastusta
Sain vihdoin toimimaan yhdistelmällä hostapd ja dnsmasq + iptables -säätö. Laitan tarkemman listan säädöistä, kunhan ehdin.
Lenovo Thinkpad T420 Intel i5 16Gt/SSD512GB+HDD2TB, Ubuntu 16.04 Xenial Xerus 64bit; Kuvia ja lätinää valokuvauksesta: https://www.strobotti.com/

Jantunen

  • Käyttäjä
  • Viestejä: 254
  • Hö.
    • Profiili
    • Strobotti.com: Valokuvausta ja kameraharrastusta
Koitetaas, miten tämän kirjoittaminen puoliksi ulkomuistista sujuu, tuli asennettua ja poistettua aika monta pakettia tuon savotan aikana. Ensiksi: mikäli langaton korttisi tukee master modea, jätä tämä ohje välistä ja tee "helposti", netti on ohjeita pullollaan. Master moden tuen voit tarkistaa tuon ohjeen mukaisesti: https://help.ubuntu.com/community/WifiDocs/MasterMode#Test_an_adapter_for_.22master_mode.22

Omassa tukiasemassani on Atheros-pohjainen langaton sovitin, tämän taas saat tietoosi käskyttämällä:

Koodia: [Valitse]
lshw -C network
Asiaan, eli asennetaan tarvittavat paketit, eli dnsmasq (yhdistetty DHCP- ja DNS-palvelinohjelmisto) ja hostapd (tukiaseman ja sitä varten autentikoinnin mahdollistava daemon).

Koodia: [Valitse]
sudo apt-get install dnsmasq hostapd
Tämän jälkeen säädetään kuntoon /etc/dnsmasq.conf:

Koodia: [Valitse]
# sovittimen laitenimi, johon siis dnsmasq bindaa itsensä:
interface=wlan0

# yhteyttä käyttävät laitteet saavat tältä väliltä osoitteita, 12 tunnin lease-aika:
dhcp-range=192.168.101.10,192.168.101.199,12h

Sitten konffataan hostapd, eli /etc/hostapd/hostapd.conf:

Koodia: [Valitse]
interface=wlan0
driver=nl80211

ssid=verkonnimi

channel=6
hw_mode=g

auth_algs=1
wpa=3
wpa_passphrase=riittavanhyvasalasana
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP CCMP
rsn_pairwise=CCMP

Oletuksena hostapd ei osaa käyttää tätä konffi-tiedostoa, eli ei osaa käynnistyä itsestään koneen mukana vaan sille pitää se kertoa muokkaamalla tiedoston /etc/default/hostapd rivi DAEMON_CONF="" muotoon:

Koodia: [Valitse]
DAEMON_CONF="/etc/hostapd/hostapd.conf"
Seuraavaksi muokataan tiedostoa /etc/network/interfaces, jotta saadaan verkko-sovittimet toimimaan oikein:

Koodia: [Valitse]
# local loopback, pakollinen, älä koske!
auto lo
iface lo inet loopback

# saan langallisen yhteyden dhcp:llä:
auto eth0
iface eth0 inet dhcp

# laitetaan 192.168.101.1 IPksi:
auto wlan0
iface wlan0 inet static
address 192.168.101.1
netmask 255.255.255.0
broadcast 192.168.101.255

Jotta asia ei olisi liian yksinkertaista, pitää vielä kernelille kertoa, että IP forwarding sallitaan, tarkistetaan tällä (0 = ei sallittu, 1 = sallittu):

Koodia: [Valitse]
cat /proc/sys/net/ipv4/ip_forward
Ja se saadaan päälle heti käskemällä pääkäyttäjänä:

Koodia: [Valitse]
echo 1 > /proc/sys/net/ipv4/ip_forward
Ja jotta se saadaan myös pysymään päällä, täytyy laittaa tiedostoon /etc/sysctl.conf rivi (tai oikeammin, ottaa se pois kommenteista):

Koodia: [Valitse]
net.ipv4.ip_forward=1
Viimeiseksi ennen kuin päästään testaamaan, tulee laittaa routing kondikseen (jotta bitti liikkuu wlan0:sta eth0:n läpi nettiin ja takaisin):

Luodaan tiedosto /etc/iptables.up.rules:

Koodia: [Valitse]
*nat
:PREROUTING ACCEPT [346:25976]
:INPUT ACCEPT [298:23096]
:OUTPUT ACCEPT [178:19598]
:POSTROUTING ACCEPT [15:1741]
-A POSTROUTING -o eth0 -j MASQUERADE
-A POSTROUTING -o wlan0 -j MASQUERADE
COMMIT

(ei mitään muistikuvaa, miten tämä sääntö luotiin käyttämällä iptablesia, mutta tämän sain ulos iptables-save -työkalulla)
EDIT: tämä taisi olla tuo komento (en pistäisi päätäni pantiksi kuitenkaan, kun tuo iptables on itselle hepreaa):

Koodia: [Valitse]
sudo iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
Sitten luodaan skripti /etc/network/if-pre-up.d/iptables

Koodia: [Valitse]
#!/bin/bash
/sbin/iptables-restore < /etc/iptables.up.rules

ja tehdään siitä suoritettava komennolla:

Koodia: [Valitse]
sudo chmod +x /etc/network/if-pre-up.d/iptables
Loppusilauksena voidaan poistaa network-manager käskemällä:

Koodia: [Valitse]
sudo apt-get remove network-manager
Tässä kohtaa kannattaa tarkistaa että nykyiset säädöt toimivat, eli että voit komentaa seuraavat komennot ilman virheitä:

Koodia: [Valitse]
# sovittimien konffien lataus, antaa varoituksen, ettei välttämättä ole "ajan tasalla":
sudo /etc/init.d/network restart

# dns/dhcp palvelimen (uudelleen)käynnistys:
sudo /etc/init.d/dnsmasq restart

# hostapd (uudelleen)käynnistys:
sudo /etc/init.d/hostapd restart

Jos kaikki menee ok, voit pistää koneen uudelleen käyntiin ja koittaa yhdistää.

Mikäli ongelmia tulee, voi esim hostapdia diagnosoida käynnistämällä se komentoriviltä (sammuta ensin daemon, jos se on käynnissä):

Koodia: [Valitse]
sudo hostapd -d /etc/hostapd/hostapd.conf
Tällöin näet, mitä tapahtuu kun yritetään käynnistää ja myöhemmin yhdistää "tukiasemaan".

Tämä ohje on siis kirjoitettu puoliksi ulkomuistista, jos löydät virheitä tai puutteita, anna palautetta, niin korjataan.

Oman verkkoni rakenne on tämän toimenpiteen jälkeen sellainen, että adsl-boksissa on langalla suoraan kiinni laitteita verkossa 192.168.100.X, tämän juuri luodun tukiaseman langallisen sovittimen ip on 192.168.100.50 (tämän se saa taas dhcp:llä adsl-boksilta).

EDIT2: lisätty puuttuva tiedostopolku

EDIT3: korjattu hostapd default-tiedoston polku
« Viimeksi muokattu: 27.06.12 - klo:18.18 kirjoittanut Jantunen »
Lenovo Thinkpad T420 Intel i5 16Gt/SSD512GB+HDD2TB, Ubuntu 16.04 Xenial Xerus 64bit; Kuvia ja lätinää valokuvauksesta: https://www.strobotti.com/

Jantunen

  • Käyttäjä
  • Viestejä: 254
  • Hö.
    • Profiili
    • Strobotti.com: Valokuvausta ja kameraharrastusta
Hah, tulipa ihan hyötykäyttöön tämä "tutoriaali" kun piti uudelleenasentaa htpc, löysin vain yhden suoranaisen virheen, jonka myös korjasin :)

Pitäisiköhän tästä vääntää wikisivu?
Lenovo Thinkpad T420 Intel i5 16Gt/SSD512GB+HDD2TB, Ubuntu 16.04 Xenial Xerus 64bit; Kuvia ja lätinää valokuvauksesta: https://www.strobotti.com/