Linux/Internet-yhteyden jakaminen Ubuntulla
Sisältö:
- Asiakaskoneet omassa aliverkossa
- Asiakaskoneet samassa verkossa (siltaaminen)
- Asiakaskoneet samassa verkossa (siltaaminen wlanilla) kera wlan (wpa2-psk)
- Mokkula-yhteyden jakaminen wifillä
Asiakaskoneet omassa aliverkossa
muokkaaInternet | | 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:
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:
sudo nano /etc/resolv.conf
Lainaus
nameserver 192.168.1.1
Käynistetään verkkopalvelut uudelleen ja testataan Internet-yhteys
Koodia:
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:
sudo apt-get install dhcp3-server
Varmuuskopioidaan conffi.
Koodia:
sudo cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.bak
Poistetaan alkuperäinen conffi.
Koodia:
sudo rm /etc/dhcp/dhcpd.conf
Kirjoitetaan uusi.
Koodia:
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:
sudo nano /etc/default/isc-dhcp-server
Lainaus
INTERFACES="eth1"
Käynistetään / uudelleenkäynnistetään dhcp-palvelu
Koodia:
sudo /etc/init.d/isc-dhcp-server restart
Jos Internet-yhteys ei toimi suoraan näillä, niin heitä perään pari iptables-tulikomentoa
Koodia:
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)
muokkaaInternet | | 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:
sudo apt-get update sudo apt-get install bridge-utils
Muokataan interfaces uuteen uskoon
Koodia:
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:
sudo /etc/init.d/networking restart
Asiakaskoneet samassa verkossa (siltaaminen wlanilla) kera wlan (wpa2-psk)
muokkaaInternet | | 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:
sudo apt-get install hostapd
luodaan conffi kansio ja tiedosto
Koodia:
sudo mkdir /etc/hostapd sudo nano /etc/hostapd/hostapd.conf
Itse käytän wpa2-salausta joten conffi sen mukaan (suosittelen muillekkin)
Koodia:
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:
sudo apt-get install dnsmasq chkconfig
Tehdään conffi
Koodia:
sudo nano /etc/dnsmasq.conf
Koodia:
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äynistysscripti
Koodia:
sudo nano /usr/bin/ap_ctl
Koodia:
#!/bin/bash # broadcasting interface BROADCAST="wlan0" # receiving interface broadcast is connected to RECEIVE="eth0" if | $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 == "--stop" then # send signal 2 to hostapd and dhcpd3 killall -2 hostapd dnsmasq elif | $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 == "--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:
sudo chmod +x /usr/bin/ap_ctl
Juoksuta scripti
Koodia:
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:
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ä
muokkaa(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:
sudo apt-get install dnsmasq chkconfig
Pakotetaan Network Manager unohtamaan DNS-asetus
Koodia:
sudo nano /etc/NetworkManager/NetworkManager.conf
Kommentoidaan rivi
Lainaus:
#dns=dnsmasq
Varmistetaan, että dnsmasq kuuntelee paikallista laitetta.
Koodia:
sudo nano /etc/dnsmasq.conf
Lisää tarvittaessa rivi:
Lainaus:
listen-address=127.0.0.1
Uudelleenkäynistetään palvelut
Koodia:
sudo restart network-manager sudo /etc/init.d/dnsmasq restart
Jos ei virheitä: Asennetaan ap-hotspot
Koodia:
sudo add-apt-repository ppa:nilarimogard/webupd8 sudo apt-get update sudo apt-get install ap-hotspot
Annetaan ap-hotspotille asetukset:
(VARMISTA, ETTÄ VERKKOLAITTEET OVAT PÄÄLLÄ)
Koodia:
sudo ap-hotspot configure
Aseta laitteet, anna verkon nimi ja salasana.
Käynnistetään palvelu
Koodia:
sudo ap-hotspot start
Jaettu wifi-yhteys pitäisi nyt löytyä.
Liikenteen seuraaminen voidaan suorittaa esim. saidarilla (sudo apt-get install saidar)
Koodia:
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
Ruusut, risut ja keskustelua oppaasta Ubuntu Suomen foorumeilla.