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 aliverkossaInternet
|
|
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
sudo nano /etc/network/interfaces
# 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
sudo nano /etc/resolv.conf
nameserver 192.168.1.1
Käynistetään verkkopalvelut uudelleen ja testataan Internet-yhteys
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.
sudo apt-get install dhcp3-server
Varmuuskopioidaan conffi.
sudo cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.bak
Poistetaan alkuperäinen conffi.
sudo rm /etc/dhcp/dhcpd.conf
Kirjoitetaan uusi.
sudo nano /etc/dhcp/dhcpd.conf
# /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
sudo nano /etc/default/isc-dhcp-server
INTERFACES="eth1"
Käynistetään / uudelleenkäynnistetään dhcp palvelu
sudo /etc/init.d/isc-dhcp-server restart
Jos Internet-yhteys ei toimi suoraan näillä niin heitä perään pari iptables tulikomentoa:
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ä langaltaAsiakaskoneet 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
sudo apt-get update
sudo apt-get install bridge-utils
Muokataan interfaces uuteen uskoon
sudo nano /etc/network/interfaces
# 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.
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
sudo apt-get install hostapd
luodaan conffi kansio ja tiedosto
sudo mkdir /etc/hostapd
sudo nano /etc/hostapd/hostapd.conf
Itse käytän wpa2 salausta joten conffi sen mukaan (suosittelen muillekkin)
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
sudo apt-get install dnsmasq chkconfig
Tehdään conffi
sudo nano /etc/dnsmasq.conf
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
sudo nano /usr/bin/ap_ctl
#!/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
sudo chmod +x /usr/bin/ap_ctl
Juoksuta scripti
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:
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.
sudo apt-get install dnsmasq chkconfig
Pakotetaan Network Manager unohtamaan dns asetus
sudo nano /etc/NetworkManager/NetworkManager.conf
Kommentoidaan rivi
#dns=dnsmasq
Varmistetaan, että dnsmasq kuuntelee paikallista laitetta.
sudo nano /etc/dnsmasq.conf
Lisää tarvittaessa rivi:
listen-address=127.0.0.1
Uudelleenkäynistettään palvelut
sudo restart network-manager
sudo /etc/init.d/dnsmasq restart
Jos ei virheitä: Asennetaan ap-hotspot
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Ä)
sudo ap-hotspot configure
Aseta laitteet, anna verkon nimi ja salasana.
Käynnistetään palvelu
sudo ap-hotspot start
Jaettu wifi yhteys pitäisi nyt löytyä.
Liikenteen seuraaminen voidaan suorittaa esim saidarilla (sudo apt-get install saidar)
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äjilleScripti jolla ap-hotspot käynistetään bootin yhteydessä:
Kopio ja tallenna seuraava scripti /opt/hotspot.sh
#! /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
chown root:root hotspot.sh
chmod 4755 hotspot.sh
Lataa ja tallenna
tämä tiedosto /etc/init.d/ -kansioon
Asetetaan myös runhotspotille oikeudet
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)
#! /bin/bash
/etc/init.d/runhotspot start
lopuksi lisää start.sh käynistettäväksi rc.localsiin exitin yläpuolelle (/etc/rc.locals)
esim
/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:
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:
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