Kirjoittaja Aihe: Internet yhteyden jakaminen komentorivillä (vanhentunut, ei toimi versio 18 -> )  (Luettu 22579 kertaa)

samsunix

  • Käyttäjä
  • Viestejä: 198
    • Profiili
    • samuliweb
Sisältö:
  • Asiakaskoneet omassa aliverkossa
  • Asiakaskoneet samassa verkossa (siltaaminen)
  • Asiakaskoneet samassa verkossa (siltaaminen wlanilla) kera wlan (wpa2-psk)
  • Mokkula yhteyden jakaminen wifillä
  • Scripti ap-hotspotin käynnistämiseen



Asiakaskoneet omassa aliverkossa

Internet
 |
 |
ADSL (192.168.1.1)
 |
 |
Ubuntu palvelin (eth0 192.168.1.33, eth1 192.168.0.1) (dhcp:llä 192.168.0.10 - 192.168.0.210 )
 |
Kytkin
 |
Asiakas 1 - 200

Asetetaan verkkokortit
Koodia: [Valitse]
sudo nano /etc/network/interfaces
Lainaus
# The loopback network interface
auto lo
iface lo inet loopback

# Yhteys DSL paatteeseen
auto eth0
iface eth0 inet static
        address 192.168.1.33
        network 192.168.1.0
        netmask 255.255.255.0
        broadcast 192.168.1.255
        gateway 192.168.1.1

# Laite jolla jaetaan yhteys asiakaskoneille
auto eth1
iface eth1 inet manual
        address 192.168.0.1
        network 192.168.0.0
        netmask 255.255.255.0
        broadcast 192.168.0.255
        gateway 192.168.1.1

Tarkistetaan Dns palvelin
Koodia: [Valitse]
sudo nano /etc/resolv.conf
Lainaus
nameserver 192.168.1.1

Käynistetään verkkopalvelut uudelleen ja testataan Internet-yhteys
Koodia: [Valitse]
sudo /etc/init.d/networking restart
ping google.fi
PING google.fi (209.85.173.94) 56(84) bytes of data.
64 bytes from lpp01m01-in-f94.1e100.net (209.85.173.94): icmp_req=1 ttl=53 time=48.0 ms
64 bytes from lpp01m01-in-f94.1e100.net (209.85.173.94): icmp_req=2 ttl=53 time=54.6 ms
64 bytes from lpp01m01-in-f94.1e100.net (209.85.173.94): icmp_req=3 ttl=53 time=47.7 ms
^X64 bytes from lpp01m01-in-f94.1e100.net (209.85.173.94): icmp_req=4 ttl=53 time=47.3 ms
^C
--- google.fi ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3002ms
rtt min/avg/max/mdev = 47.386/49.441/54.639/3.017 ms

Asennetaan dhcp palvelin.
Koodia: [Valitse]
sudo apt-get install dhcp3-server
Varmuuskopioidaan conffi.
Koodia: [Valitse]
sudo cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.bak
Poistetaan alkuperäinen conffi.
Koodia: [Valitse]
sudo rm /etc/dhcp/dhcpd.conf
Kirjoitetaan uusi.
Koodia: [Valitse]
sudo nano /etc/dhcp/dhcpd.conf
Lainaus
# /etc/dhcp/dhcpd.conf
default-lease-time 600;
max-lease-time 7200;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option routers 192.168.0.1;
option domain-name-servers 192.168.0.1;


ddns-update-style none;
log-facility local7;

# dhcp
subnet 192.168.0.0 netmask 255.255.255.0 {
authoritative;
range 192.168.0.10 192.168.0.210;
}

Määritellään kuuneltavat laitteet
Koodia: [Valitse]
sudo nano /etc/default/isc-dhcp-server
Lainaus
INTERFACES="eth1"

Käynistetään / uudelleenkäynnistetään dhcp palvelu
Koodia: [Valitse]
sudo /etc/init.d/isc-dhcp-server restart

Jos Internet-yhteys ei toimi suoraan näillä niin heitä perään pari iptables tulikomentoa:
Koodia: [Valitse]
sudo iptables -A FORWARD -i eth0 -o eth1 -m state --state NEW,ESTABLISHED -j ACCEPT
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Voit myös suorittaa pelkästään iptables komennot ja määrittää ip:n asiakaskoneille käsin.
Vanhemmille versiolle vastaava ohje löytyy tältä langalta


Asiakaskoneet samassa verkossa (siltaaminen)

Internet
 |
 |
ADSL (192.168.1.1) dhcp:llä 192.168.1.50 - 192.168.1.250)
 |
 |
Ubuntu palvelin (eth0 192.168.1.33, eth1 0.0.0.0)
 |
Kytkin
 |
Asiakas 1 - 200

Jos haluat asiakaskoneet samaan verkkoon kuin esim DSL pääte (jossa yleensä myös wlani) on siltaaminen järkevempi (ja helpompi) ratkaisu. (Tosin ketjuun verkottaminen ei ehkä ole hirveän järkevää mutta, nojaa...)

Päivitetään tietokanta ja asennetaan tarvittavat palikat
Koodia: [Valitse]
sudo apt-get update
sudo apt-get install bridge-utils

Muokataan interfaces uuteen uskoon
Koodia: [Valitse]
sudo nano /etc/network/interfaces
Lainaus
# The loopback network interface
auto lo
iface lo inet loopback

# Yhteys DSL paatteeseen
auto eth0
iface eth0 inet manual

# Laite jolla jaetaan yhteys asiakaskoneille
auto eth1
iface eth1 inet manual


#Siltaus
auto br0
iface br0 inet static
        address 192.168.1.33
        network 192.168.1.0
        netmask 255.255.255.0
        broadcast 192.168.1.255
        gateway 192.168.1.1
        bridge_ports eth0 eth1
        bridge_fd 0
        bridge_hello 2
        bridge_maxage 12
        bridge_stp off

Uudelleenkäynistetään verkkopalvelu.
Koodia: [Valitse]
sudo /etc/init.d/networking restart

Asiakaskoneet samassa verkossa (siltaaminen wlanilla) kera wlan (wpa2-psk)
Internet
 |
 |
ADSL (192.168.1.1) dhcp:llä 192.168.1.50 - 192.168.1.250)
 |
 |
Ubuntu palvelin (eth0 192.168.1.33, wlan0 192.168.1.x)
 |
Kytkin
 |
Asiakas 1 - 200


Asennetaan hostapd

Koodia: [Valitse]
sudo apt-get install hostapd
luodaan conffi kansio ja tiedosto

Koodia: [Valitse]
sudo mkdir /etc/hostapd
sudo nano /etc/hostapd/hostapd.conf

Itse käytän wpa2 salausta joten conffi sen mukaan (suosittelen muillekkin)
Koodia: [Valitse]
interface=wlan0
bridge=br0
driver=nl80211
hw_mode=g
channel=11
ieee8021x=0
eap_server=0
logger_syslog=-1
logger_syslog_level=2
logger_stdout=-1
logger_stdout_level=1
dump_file=/tmp/hostapd.dump
ctrl_interface=/var/run/hostapd
ctrl_interface_group=0
ssid=langattomanverkonimi
macaddr_acl=0
auth_algs=1
wpa=2
#wpa_psk=d897a2df7e3b82b8916fd974f11543ff367b824a1d48324db13546f6348dc72c
wpa_passphrase=verkonsalasana #vähintään 7 merkkiä
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP CCMP

Asennetaan dnsmasq dhcp palvelimen tilalle
Koodia: [Valitse]
sudo apt-get install dnsmasq chkconfig
Tehdään conffi

Koodia: [Valitse]
sudo nano /etc/dnsmasq.conf
Koodia: [Valitse]
interface=wlan0
dhcp-range=net:wlan0,192.168.1.100,192.168.1.150,255.255.255.0,1440m
dhcp-option=wlan0,3,192.168.1.1
dhcp-option=wlan0,6,208.67.222.222,208.67.220.220

Luodaan käynistys scripti
Koodia: [Valitse]
sudo nano /usr/bin/ap_ctl
Koodia: [Valitse]
#!/bin/bash

# broadcasting interface
BROADCAST="wlan0"

# receiving interface broadcast is connected to
RECEIVE="eth0"

if [[ $1 == "-0" || $1 == "--start" ]]
 then
 ## start hostapd
 echo "Starting hostapd"
 echo "    You can view the log at /var/log/hostapd.log"

 # launch hostapd daemon
 hostapd -d /etc/hostapd/hostapd.conf > /var/log/hostapd.log &

 ## start dhcp server
 echo "Starting dnsmasq"

 # set IP address
 ifconfig $BROADCAST 192.168.0.1
 sleep 2

 # launch dhcpd3 daemon
 # echo "INTERFACES=$BROADCAST" > /etc/default/dhcp
 # dhcpd3 $BROADCAST &
 dnsmasq

elif [[ $1 == "-1" || $1 == "--stop" ]]
 then
 # send signal 2 to hostapd and dhcpd3
 killall -2 hostapd  dnsmasq

elif [[ $1 == "-2" || $1 == "--ics" ]]
 then
 # create iptables rules
 iptables -A FORWARD -i $RECEIVE -o $BROADCAST -s 192.168.0.1/24 -m conntrack --ctstate NEW -j ACCEPT
 iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
 iptables -A POSTROUTING -t nat -j MASQUERADE

 # set kernel variable(s)
 echo 1 > /proc/sys/net/ipv4/conf/all/forwarding

 # edit kernel configuration
 cp /etc/sysctl.conf /etc/sysctl.conf.ap_ctl
 echo "net.ipv4.conf.default.forwarding=1" >> /etc/sysctl.conf
 echo "net.ipv4.conf.all.forwarding=1" >> /etc/sysctl.conf

 # restart networking
 /etc/init.d/networking restart

elif [[ $1 == "-3" || $1 == "--noics" ]]
 then
 # remove iptables rules
 iptables -D FORWARD 1
 iptables -D FORWARD 1

 # set kernel variable(s)
 echo 0 > /proc/sys/net/ipv4/conf/all/forwarding

 # revert kernel configuration
 mv -i /etc/sysctl.conf.ap_ctl /etc/sysctl.conf

 # restart networking
 /etc/init.d/networking restart

else
 echo $0
 echo "A tool to manage hostapd and dhcpd3"
 echo "Usage:"
 echo "    -0 --start    Start hostapd and dhcpd3"
 echo "    -1 --stop    Stop hostapd and dhcpd3 with signal 2"
 echo "    -2 --ics    Activate internet connection sharing"
 echo "            between specified interfaces"
 echo "    -3 --noics    Undo internet connection sharing settings"
fi

exit 0

Asetetaan scripti suoritettavaksi

Koodia: [Valitse]
sudo chmod +x /usr/bin/ap_ctl
Juoksuta scripti
Koodia: [Valitse]
sudo ap_ctl --start
sudo ap_ctl --ics

Jos otit edeliset suoraan copypastella pitäisi asiakaskoneille näkyä nyt uusi langaton verkko

Jos wpa2 salaus ei jostain syystä toimi niin tässä avoimelle verkolle hostapd conffi:

Koodia: [Valitse]
interface=wlan0
bridge=br0
driver=nl80211
logger_syslog=-1
logger_syslog_level=2
logger_stdout=-1
logger_stdout_level=2
dump_file=/tmp/hostapd.dump
ctrl_interface=/var/run/hostapd
ctrl_interface_group=0
ssid=mun-verkko
hw_mode=g
channel=11
beacon_int=100
dtim_period=2
max_num_sta=255
rts_threshold=2347
fragm_threshold=2346
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wmm_enabled=1
wmm_ac_bk_cwmin=4
wmm_ac_bk_cwmax=10
wmm_ac_bk_aifs=7
wmm_ac_bk_txop_limit=0
wmm_ac_bk_acm=0
wmm_ac_be_aifs=3
wmm_ac_be_cwmin=4
wmm_ac_be_cwmax=10
wmm_ac_be_txop_limit=0
wmm_ac_be_acm=0
wmm_ac_vi_aifs=2
wmm_ac_vi_cwmin=3
wmm_ac_vi_cwmax=4
wmm_ac_vi_txop_limit=94
wmm_ac_vi_acm=0
wmm_ac_vo_aifs=2
wmm_ac_vo_cwmin=2
wmm_ac_vo_cwmax=3
wmm_ac_vo_txop_limit=47
wmm_ac_vo_acm=0
eapol_key_index_workaround=0
eap_server=0
own_ip_addr=127.0.0.1



Mokkula yhteyden jakaminen wifillä
(Periaatteessa edellinen ohje pitäisi toimia myös mokkulan kanssa mutta helpoin tapa on käyttää ap-hotspottia)

Internet
 |
 |
USB-Mokkula--Ubuntu wifi-hotspot
                                   |
                                   |
                      Asiakas 1 - 200

Asennetaan dnsmasq.
Koodia: [Valitse]
sudo apt-get install dnsmasq chkconfig
Pakotetaan Network Manager unohtamaan dns asetus
Koodia: [Valitse]
sudo nano /etc/NetworkManager/NetworkManager.conf
Kommentoidaan rivi
Lainaus
#dns=dnsmasq

Varmistetaan, että dnsmasq kuuntelee paikallista laitetta.
Koodia: [Valitse]
sudo nano /etc/dnsmasq.confLisää tarvittaessa rivi:
Lainaus
listen-address=127.0.0.1

Uudelleenkäynistettään palvelut
Koodia: [Valitse]
sudo restart network-manager
sudo /etc/init.d/dnsmasq restart

Jos ei virheitä: Asennetaan ap-hotspot
Koodia: [Valitse]
sudo add-apt-repository ppa:nilarimogard/webupd8
sudo apt-get update
sudo apt-get install ap-hotspot

Tai hae ja asenna deb paketti TÄÄLTÄ

Annetaan ap-hotspotille asetukset:
(VARMISTA, ETTÄ VERKKOLAITTEET OVAT PÄÄLLÄ)
Koodia: [Valitse]
sudo ap-hotspot configureAseta laitteet, anna verkon nimi ja salasana.

Käynnistetään palvelu
Koodia: [Valitse]
sudo ap-hotspot startJaettu wifi yhteys pitäisi nyt löytyä.


Liikenteen seuraaminen voidaan suorittaa esim saidarilla (sudo apt-get install saidar)
Koodia: [Valitse]
samsunix@samuliweb:~$ saidar
Hostname  : samuliweb     
Uptime : 4d 12:16:16       Date : 2012-04-23 20:42:46

Load 1    :   0.11   CPU Idle  :  86.68%  Running   :     1   Zombie    :     0
Load 5    :   0.22   CPU System:   3.02%  Sleeping  :   113   Total     :   115
Load 15   :   0.17   CPU User  :  11.31%  Stopped   :     1   No. Users :     2

Mem Total :   4971M  Swap Total:  30568M  Mem Used  : 46.95%  Paging in :     0
Mem Used  :   2334M  Swap Used :      0B  Swap Used :  0.00%  Paging out:    48
Mem Free  :   2637M  Swap Free :  30568M  Total Used:  6.57%

Disk Name      Read         Write         Network Interface        rx        tx
sda              0B        49152B         lo                       0B        0B
                                          eth1                   650B      481B
Total            0B        49152B         eth0                  2916B    26398B
                                          wlan0                  401B      796B
                                          br0                   2675B    25941B
                                          mon.wlan0             1266B        0B

                                          Mount Point            Free      Used


Bonus ap-hotspotin käyttäjille

Scripti jolla ap-hotspot käynistetään bootin yhteydessä:

Kopio ja tallenna seuraava scripti /opt/hotspot.sh

Koodia: [Valitse]
#! /bin/bash/
echo "Käynnistetään Hotspot"
sleep 1
rm /tmp/hotspot.pid
sleep 1
nmcli nm wifi off
sleep 1
rfkill unblock wlan
sleep 1
ap-hotspot start
echo "Suljetaan scripti"
exit

Asetetaan tarvittavat oikeudet

Koodia: [Valitse]
chown root:root hotspot.sh
chmod 4755 hotspot.sh

Lataa ja tallenna tämä tiedosto /etc/init.d/ -kansioon

Asetetaan myös runhotspotille oikeudet

Koodia: [Valitse]
chown root:root runhotspot
chmod 4755 runhotspot

luo vielä yksi scripti vapaavalintaiseen sijaintiin, vapaavalintaisella nimellä (esim /home/<käyttäjä>/documents/scriptit/aphotspot/start.sh)

Koodia: [Valitse]
#! /bin/bash
/etc/init.d/runhotspot start

lopuksi lisää start.sh käynistettäväksi rc.localsiin exitin yläpuolelle (/etc/rc.locals)

esim
Koodia: [Valitse]
/home/<käyttäjä>/Documents/scripts/aphotspot/start.sh
ei ehkä se helpoin tapa mutta todettu toimivaksi.


AP-Hotspot ei toimi ubuntu päivityksen jälkeen:

Downgreidataan Hostapd:

64bit:

Koodia: [Valitse]
cd /tmp
wget http://archive.ubuntu.com/ubuntu/pool/universe/w/wpa/hostapd_1.0-3ubuntu2.1_amd64.deb
sudo dpkg -i hostapd*.deb
sudo apt-mark hold hostapd


32bit:

Koodia: [Valitse]
cd /tmp
wget http://old-releases.ubuntu.com/ubuntu/pool/universe/w/wpa/hostapd_1.0-3ubuntu2.1_i386.deb
sudo dpkg -i hostapd*.deb
sudo apt-mark hold hostapd



Ruusuja / risuja sekä oppaan kehitykseen liittyvää keskustelua toivotaan.

- Samuli



« Viimeksi muokattu: 19.08.18 - klo:20.04 kirjoittanut samsunix »

samsunix

  • Käyttäjä
  • Viestejä: 198
    • Profiili
    • samuliweb
Päivitetty ja nostoa ettei unohdu. Lisätty Mokkulayhteyden jakaminen langattomasti wifillä.
Olisko muuten stickyn paikka?  ;)
« Viimeksi muokattu: 25.03.15 - klo:14.53 kirjoittanut samsunix »

kamara

  • Käyttäjä
  • Viestejä: 2045
    • Profiili
Päivitetty ja nostoa ettei unohdu. Lisätty Mokkulayhteyden jakaminen langattomasti wifillä.
Olisko muuten stickyn paikka?  ;)

Itse suosittelisin ohjeen siirtoa wikiin, jos vain jaksat tehdä sen ja hyväksyt lisenssin.
http://wiki.ubuntu-fi.org/

Tosin kyllä mulle toi stickykin kävisi.

samsunix

  • Käyttäjä
  • Viestejä: 198
    • Profiili
    • samuliweb
http://wiki.ubuntu-fi.org/Internet-yhteyden_jakaminen_Ubuntulla

...derpa derp... python errorin pisti sitte nii...

Tonneppa uppos: Eikös noita siirrellä keskenään tarpeen mukaan?

http://fi.wikibooks.org/wiki/Internet-yhteyden_jakaminen_Ubuntulla
« Viimeksi muokattu: 25.03.15 - klo:19.33 kirjoittanut samsunix »

kamara

  • Käyttäjä
  • Viestejä: 2045
    • Profiili
http://wiki.ubuntu-fi.org/Internet-yhteyden_jakaminen_Ubuntulla

...derpa derp... python errorin pisti sitte nii...

Voihan gerbiili. Itse en ole tehnyt sinne mitään pitkään aikaan, ja entiset tunnukseni eivät enää toimi, enkä muista salasanaakaan.

Tonneppa uppos: Eikös noita siirrellä keskenään tarpeen mukaan?

http://fi.wikibooks.org/wiki/Internet-yhteyden_jakaminen_Ubuntulla

Niissä taitaa olla eri lisenssit (Siis ei voida siirtää ilman lupaasi sellaisenaan). Lisäksi toi sun ohje taitaa olla jakelupakettikohtainen, joten http://www.linux.fi/wiki/Portaali:Verkko tämäkään ei taida olla ihan paras paikka, mutta sinne voisi varmaan linkin lisätä (Se ei käsittääkseni riko lisenssiä).