Sissejuhatus

Selles kirjatükis kirjeldatu tegemise peamine motivaator on huvi. Jätke see meelde.

Üks kõrts tahtis saada WiFi leviala. Eksperimenteerisin parasjagu WRT54G ruuteriga ja seadmevalik oli seega tehtud. Samuti pidi sellest levialast tulema näiteline leviala tegemine, internetiühendus on jagatud avalikuks ja privaatseks (asutuse enda kasutuseks) samaaegselt. Ütlen kohe ära, et tegemist tuleb linuxi- ja internetivõrgukeskse jutuga, mida ma üritan arusaadavalt kirjutada.

Sama jutu baasil valmis hiljem endatehtud openwrt firmware, mis on kättesaadav selle lingi alt.

WRT54G seestpoolt ja ülesande püstitus selle baasil, teoreetiline jutt.

Kohustuslik kirjandus

  1. OpenWrt eestikeelne leht
  2. Leht kus WRT54G sisu on juba lahti kirjeldatud

Füüsiliste ühenduste pilt

Füüsiline ühendus

PILT1. Sellel pildil on näha WRT54G sisu ja füüsilised ühendused mis kõrtsus tegema pidi. WRT54G'st on näha VLAN'idega (otsi googlest) majandada oskav kuubikujuline switch, mis autommaagiliselt oma porte risti ja otse väänata oskab, et ristkaableid tarvis pole. Teine ümmargune junn seal on protsessor/wifikaart/flash/ram/linux kombinatsioon mida võib kokkuvõtteks sõimata kui router/firewall/bridge/NAT/jms.

Loogiliste ühenduste pilt

Loogiline ühendus

PILT2. Sellel pildil on näha WRT54G sisu ja loogilised ühendused mis kõrtsus tegema pidi. Sellist pilti näeb enda jaoks WRT54G's pesitsev linux, eth0 sees käiv on siin eraldi raamitud. Kes ei tea mis asi on vlan, ehk virtual lan kasutab Googlet ja saab teada.

Internett sisse

Internet tuleb sisse Elioni ADSL ühendust kasutades. Paketiks oli PPPOE'd kasutav koduADSL vms. Seega selle ühenduse IP on igakord erinev. Ja samuti pole ma välja joonistanud pppX liidest mis jookseb vlan1 sees ja mida pidi tegelikul interneed (meelega) ruuterisse jõuab.

Internett vlan0 peale, sild br0 ja wireless kaart eth1

Kogu see ehitus pärineb originaalsest tarkvarast mis WRT54G poest kaasa antakse. PILT1 on näha et eth1 on routeri küljes ja ruuteri tagumised pordid 1,2 (originaalis ka 3,4) on switch'i kyljes. Tavaolukorras hirmus jama, aga linuxil on olemas tarkvaline etherneti sild (bridge). Seega tehakse nii, et interfeisid vlan0 ja eth1 sillatakse kokku etherneti tasemel (Level2) sillaks br0 (vaata PILTI2). Sellele sillale antaksegi LAN ip (192.168.1.1/255.255.255.0). Seega on switchi pordid 1,2 ja wlan eth1 wifi ühes ja samas võrgus. Sellele võrgule on käima pandud DHCP server, firewallist on keelatud ligipääs interfeissidele vlan3(kassa) ja vlan4(korter) ja ülejäänud ühendused NAT'itakse välja pppX kasutades.

Internett kassamasinasse - PORT 3

Selleks on tehtud switchi (PILT1) eraldi VLAN numbriga 3, millele on antud IP (192.168.3.1/255.255.255.0) ja käima pandud ka DHCP server. Firewallist on keelatud ligi- ja väljapääs interfeissidelt vlan4 ja vlan0 seonduvatelt ip aadressitelt. Väljuvad ühendused suunal vlan1/pppX NAT'itakse.

Internett korterisse - PORT 4 (jätka ise samas vaimus kuni porte jätkub, ehk võta 1 ja 2 ka kasutusele)

Selleks on tehtud switchi (PILT1) eraldi VLAN numbriga 4, millele on antud IP (192.168.4.1/255.255.255.0) ja käima pandud ka DHCP server. Firewallist on keelatud ligi- ja väljapääs interfeissidelt vlan3 ja vlan0 seonduvatelt ip aadressitelt. Väljuvad ühendused suunal vlan1/pppX NAT'itakse.

Hakkame samm-sammult ruuterit ehitama.

OpenWrt firmware

Kirjeldatud on protsess selle lingi all ja sellepärast ma seda kordama ei kavatse hakata.

Ligipääs OpenWrt sisaldavale seadmele

Oleme jõudnud sinnamaale kus telnetime sisse 192.168.1.1 aadressile ja meile vaatab vastu prompt:

Trying 192.168.1.1...
Connected to 192.168.1.1.
Escape character is '^]'.



BusyBox v1.00-rc2 (2004.09.13-17:38+0000) Built-in shell (ash)
Enter 'help' for a list of built-in commands.

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
          
@OpenWrt:/# 
Edaspidi on see peamine ja ainus töövahend.

Esimesed konfimuudatused Oh õudust, kasutaja peab ju vi'd oskama...

Meie ainukeseks normaalseks tekstiredaktoriks on vi. Vi õpetus .

Nagu näha protsessitabelit vaadates, käib meil seal suht palju mõttetut kola.

@OpenWrt:/# ps -ef 
  PID  Uid     VmSize Stat Command
    1 0           384 S   init       
    2 0               SW  [keventd]
    3 0               SWN [ksoftirqd_CPU0]
    4 0               SW  [kswapd]
    5 0               SW  [bdflush]
    6 0               SW  [kupdated]
    7 0               SW  [mtdblockd]
   16 0               SWN [jffs2_gcd_mtd4]
   30 0           340 S   syslogd -C 16 
  343 0           368 S   /usr/sbin/dnsmasq 
  348 0           364 S   /usr/sbin/httpd -p 80 -h /www -r WRT54G Router 
  353 0           312 S   /usr/sbin/telnetd -l /bin/login 
  358 0           516 S   ash --login 
  364 0           376 S   udhcpc -i vlan1 -b -p /tmp/dhcp-wan.pid 
  394 0           356 R   ps -ef 
Lähme kataloogi /etc/init.d/, vaatame mis meil seal on, kustutame ebavajalikud failid. /etc/init.d/ ongi see kataloog kust kõik teenused käima pannakse.
@OpenWrt:/# cd /etc/init.d/
@OpenWrt:/etc/init.d# ls
S10boot      S45firewall  S50httpd     S99done
S40network   S50dnsmasq   S50telnet    rcS
@OpenWrt:/etc/init.d# rm S50httpd
@OpenWrt:/etc/init.d# reboot
@OpenWrt:/etc/init.d# Connection closed by foreign host.
Et pakke alla tirida peab seadmele külge saama reaalse ip aadressi ja samas ka peab ligipääs olema seadme sisemusele telnetiga. Mina lahendasin omal selle probleemi nii, et lisasin töömasinale lisaip 192.168.1.2 ja panin ruuteri pordid 4 ja INTERNET omavahel patch kaabliga kokku. OpenWrt küsib neitsilikus seisus endale ip'd INTERNET pordist DCHP kasutades. Uuesti telnetiga sisse aadressile 192.168.1.1 ja vaatame kas purk on endale IP ka saanud.
@OpenWrt:/# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.0.0.0        *               255.255.255.0   U     0      0        0 vlan1
192.168.1.0     *               255.255.255.0   U     0      0        0 br0
default         10.0.0.1        0.0.0.0         UG    0      0        0 vlan1
Siit on näha et vlan1 peal on nii IP kui ka default route. Numbrid sõltuvad muidugi DHCP serverist saadavast. Igaks juhuks ka ping.
@OpenWrt:/# ping -c 4 www.ee
PING www.ee (212.107.32.146): 56 data bytes
64 bytes from 212.107.32.146: icmp_seq=0 ttl=250 time=5.1 ms
64 bytes from 212.107.32.146: icmp_seq=1 ttl=250 time=5.7 ms
64 bytes from 212.107.32.146: icmp_seq=2 ttl=250 time=6.0 ms
64 bytes from 212.107.32.146: icmp_seq=3 ttl=250 time=5.9 ms

--- www.ee ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 5.1/5.6/6.0 ms
Tore, meil on internet. Edasi ipkg pakkide uuendamine, saadaolevate vaatamine ja mõned vajalikud pakid. Neiks on dropbear ja pppoecd. Tähelepanu ! dropbear küsib parooli, see parool on edaspidi ruuterisse ssh ligipääsu jaoks vajalik, seega jäta meelde.

@OpenWrt:/# ipkg update
Downloading http://openwrt.org/ipkg/Packages ...
Connecting to openwrt.org[208.185.247.160]:80
Packages             100% |*****************************| 15596       00:00 ETA
Done.
Updated list of available packages in /usr/lib/ipkg/lists/openwrt
@OpenWrt:/# ipkg list
admcfg - WRT54G adm configuration kernel module and binary
chillispot - a wireless access point controller
dhcp-fwd - a DHCP relay agent
dropbear - Lightweight SSH client and server system
fprobe - a NetFlow probe
ip - iproute2 stuff
ip6tables - Linux kernel 2.4+ IPv6 packet filter administration tools
kismet - Wireless 802.11b monitoring tool
kmod-ipt6 - ip6tables kernel modules
kmod-ipv6 - Kernel modules for the IPv6 protocol
kmod-nfs - NFS kernel modules
kmod-ppp-async - PPP async serial channel driver kernel module
kmod-ppp-mppe-mppc - Microsoft PPP compression/encryption (MPPC/MPPE) kernel mod
ule
kmod-sched - Traffic Control (TC) kernel modules
kmod-tun - Universal TUN/TAP device driver kernel module
libmatrixssl - an embedded SSL implementation
libpcap - a low-level packet capture library
libpthread - POSIX threads library
libssl - OpenSSL libraries used for SSL encryption.
ntpclient - utility to setting system time from NTP server
oidentd - A nat aware identd daemon/redirector
openssh-client - The OpenSSH client. Allows for access to remote systems via the
 SSH protocol.
openssh-client-extras - Various optional OpenSSH client tools.
openssh-server - The OpenSSH server daemon. 
openssh-sftp-client - OpenSSH Secure FTP server. 
openssh-sftp-server - OpenSSH Secure FTP server. 
ppp - a Point-to-Point Protocol (PPP) daemon
pppoecd - Linksys PPPoE daemon for access to internet using DSL modems
ppp-radius-plugin - a RADIUS plugin for the PPP daemon
pptp-client - a Point-to-Point Tunneling Protocol (PPTP) client
pptp-server - a Point-to-Point Tunneling Protocol (PPTP) server
quagga-bgpd - Quagga BGP routing daemon
quagga-full - Quagga routing suite (ripd, ripngd, ospfd, ospf6d and bgpd)
quagga-ospf6d - Quagga OSPF IPv6 routing daemon
quagga-ospfd - Quagga OSPF routing daemon
quagga-ripd - Quagga RIP routing daemon
quagga-ripngd - Quagga RIPng routing daemon
quagga-zebra - Quagga zebra meta-routing daemon
radvd - Routing Advertisement Daemon for IPv6
radvd - Routing Advertisement Daemon for IPv6
strace - A system call tracer
tc - iproute2 stuff
tcpdump - A Tool for network monitoring and data acquisition. BSD licensed.
tspc - Provides a Freenet6 TSPC client for IPv6.
vsftpd - a fast and secure FTP server
wondershaper - Wondershaper qos management
zlib - zlib is a library implementing the 'deflate' compression system used by m
any programs.

@OpenWrt:/# ipkg install dropbear pppoecd

Downloading http://openwrt.org/ipkg/./dropbear_0.44test3_mipsel.ipk ...
Connecting to openwrt.org[208.185.247.160]:80
dropbear_0.44test3_m 100% |*****************************|   125 KB    00:00 ETA
Done.
Unpacking dropbear...Done.
Configuring dropbear...
Will output 1024 bit dss secret key to '/etc/dropbear/dropbear_dss_host_key'
Generating key, this may take a while...
Public key portion is:
ssh-dss AAAAB3NzaC1kc3MAAACBAIxRqV70iTix/jkInmfgpp+O2v77STw6MRnj
Fingerprint: md5 53:1a:12:78:ae:58:cf:b4:5e:2c:aa:99:84:cb:e0:88
Changing password for root
Enter the new password (minimum of 5, maximum of 8 characters)
Please use a combination of upper and lower case letters and numbers.
Enter new password: 
Re-enter new password: 
Password changed.
==========================================
dropbear is now configured to run on boot.
==========================================
To start it now, run the following command:

/usr/bin/dropbear

Done.

Downloading http://openwrt.org/ipkg/./pppoecd_1.0_mipsel.ipk ...
Connecting to openwrt.org[208.185.247.160]:80
pppoecd_1.0_mipsel.i 100% |*****************************| 54576       00:00 ETA
Done.
Unpacking pppoecd...Done.
Configuring pppoecd...Done.
@OpenWrt:/# reboot

Nii nüüd on meil edaspidiseks turvaliseks haldamiseks olemas SSH ligipääs. Windowsis on selleks programm Putty. Telnet on ka muidugi endiselt alles. Samuti on olemas ka PPPoE programm Elioni ADSL'i kasutamiseks. Alustamegi ADSL'i konfist. Selleks peame muutma mõningaid NVRAM'i parameetreid. Kõigepealt määrame ära interfeisi väljuvaks ühenduseks ja selle tüübi, seejärel sisestame PPPoE parameetrid. Samuti tuleb muuta permanentseks
root@OpenWrt:/# nvram set wan_ifname=vlan1
root@OpenWrt:/# nvram set wan_proto=pppoe
root@OpenWrt:/# nvram set wan_hostname=purk            
root@OpenWrt:/# nvram set ppp_username="KALAKALA"
root@OpenWrt:/# nvram set ppp_passwd="KALAKALA"  
root@OpenWrt:/# nvram set ppp_redialperiod=20  
root@OpenWrt:/# nvram set ppp_idletime=2
root@OpenWrt:/# nvram set wan_mtu=1492  
root@OpenWrt:/# nvram commit
nvram_commit(): start
nvram_commit(): end
root@OpenWrt:/# reboot
root@OpenWrt:/# Connection closed by foreign host.

Võtame maha patchkaabli pordi 4 ja INTERNET vahelt. Paneme adsl modemist tuleva kaabli INTERNET porti. Kui kõik on hästi on näha midagi sellist.
root@purk:/# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.0.0.1        *               255.255.255.255 UH    0      0        0 ppp0
192.168.1.0     *               255.255.255.0   U     0      0        0 br0
default         10.0.0.1        0.0.0.0         UG    0      0        0 ppp0
NB! Promptil on muutunud nimi ja et IP aadress ning vaikimisi ruuting on vlan1 pealt kolinud ppp0 interfeisile. ADSL töötab. Tegelikult töötab ka WiFi, essid on "linksys" või see mis sai pandud originaalfirmwarega. Samuti muud parameetrid. Et neid muuta on vaja mudida NVRAM parameetreid. Peale seda laseme wifi korraks maha ja voila, meil on uued seaded ilma bootimata olemas.
root@purk:/etc/init.d# nvram set wl0_ssid="testleviala"
root@purk:/etc/init.d# nvram set wl0_channel=1
root@purk:/etc/init.d# nvram commit
nvram_commit(): start
nvram_commit(): end
root@purk:/etc/init.d# wifi down
root@purk:/etc/init.d# wifi up  
root@purk:/etc/init.d# iwconfig eth1
eth1      IEEE 802.11-DSF  ESSID:"testleviala"  
          Mode:Master  Channel:1  Access Point: 00:0F:66:51:81:B8  
          Bit Rate:54Mb/s   Tx-Power=15 dBm   
          Retry limit:0   RTS thr:off   Fragment thr:off
          Encryption key:off
          Link Quality:0/5  Signal level:-160 dBm  Noise level:-256 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

Siiamaani oleme lihtsalt saanud. Edasi tuleb keerulisem osa.

PORT3-KASSA ja PORT4-KORTER

VLAN switchi konfimine

Nagu öeldud on purgis sees tore võimas riistapuu nimega VLAN'e oskav switch. Seda tulebki nüüd konfida. Vana hea nvram abiks on. Vaatame korraks hetkeseisu.

root@purk:/# nvram show | grep vlan
size: 1798 bytes (30970 left)
vlan0ports=1 2 3 4 5*
vlan1hwname=et0
vlan1ports=0 5
vlan0hwname=et0
Siit on näha, et vlan0 portideks on 1 2 3 4 ja 5*. 5* tähendab, et 5 port on tagged, so tema sisse aetakse kõik VLAN'id millest switch midagi teab. Ja see on tähtis, sest 5 port on ühendatud otse eth0 külge linuxi masinas. vlan0hwname=et0 on märksõna vlan0 interfeisi tekitamiseks eth0 külge. Niisamuti on meil olemas vlan1 mille osalised on pordid 0 (INTERNET) ja 5. Tärni ei ole vaja siinkorral korrata.

Teeme siis 2 uut VLAN'i juurde. Esmalt vabastame 2 porti VLAN0 alt. Siis lisame need 2 uut porti. NB! Jutumärgid on vajalikud !!!
root@purk:/# nvram set vlan0ports="1 2 5*"
root@purk:/# nvram set vlan3ports="3 5"
root@purk:/# nvram set vlan4ports="4 5" 
root@purk:/# nvram set vlan3hwname=et0
root@purk:/# nvram set vlan4hwname=et0 
root@purk:/# nvram commit 
nvram_commit(): start
nvram_commit(): end
root@purk:/# reboot 

Peale booti on meil olemas küll ümber konfitud vlan switch aga ei ühtki kasutatavat uut vlan'i linuxi mätta otsast vaadatuna, selle konfiga nüüd me tegelema hakkamegi. esmalt NVRAM. valime nimeks midagi suvalist näiteks lan3 ja sätime ta seotuks vlan3'ga, omistame staatilised ip'd ja hw aadressi mille me saame ülaltpoolt sektsioonist kus on iwconfig eth0. Kuna see on individuaalne iga seadmega tuleb võtta sealt väärtus, näiteks 00:0F:66:51:81:B8 ja liita viimasele HEX'is 1. saame 00:0F:66:51:81:B9. Järgmisele aga on see hoopis 00:0F:66:51:81:BA. Sa arvasid et 00:0F:66:51:81:B10 ? vale :)
root@purk:/# nvram set lan3_ifname=vlan3
root@purk:/# nvram set lan3_ipaddr=192.168.3.1
root@purk:/# nvram set lan3_netmask=255.255.255.0
root@purk:/# nvram set lan3_proto=static         
root@purk:/# nvram set lan3_hwaddr="00:0F:66:51:81:B9"
root@purk:/# nvram set lan4_ifname=vlan4
root@purk:/# nvram set lan4_ipaddr=192.168.4.1 
root@purk:/# nvram set lan4_netmask=255.255.255.0
root@purk:/# nvram set lan4_proto=static
root@purk:/# nvram set lan4_hwaddr="00:0F:66:51:81:BA"
root@purk:/# nvram commit
nvram_commit(): start
nvram_commit(): end
root@purk:/# cd /etc/init.d/
root@purk:/etc/init.d# rm S40network 
root@purk:/etc/init.d# cp /rom/etc/init.d/S40network .
Nii, nüüd tuleb vi'd kasutada :), liigu nooleklahvidega rea wifi up lõppu, vajuta 'a' ja kirjuta 'ifup lan3' ja kirjuta 'ifup lan4' . Kui midagi läheb valesti, vajuta ja kustuta valed tähed 'x' kasutades. Uuesti saad kirjutada kui vajutad 'a'. Faili salvestamiseks on ja ':' 'w' 'q' . Väljumiseks on , ':', 'q' ,'!', . Kui ei saa hakkama vaada vi õpetust mille link on ülalpool.
root@purk:/etc/init.d# vi S40network


#!/bin/sh
. /etc/functions.sh
case "$1" in
  start|restart)
    ifup lan
    ifup wan
    ifup wifi
    wifi up

    for route in $(nvram get static_route); do {
      eval "set $(echo $route | sed 's/:/ /g')"
      $DEBUG route add -net $1 netmask $2 gw $3 metric $4 dev $5
    } done
    ;;
esac
Tulemuseks peab selline fail saama.
root@purk:/etc/init.d# cat S40network 
#!/bin/sh
. /etc/functions.sh
case "$1" in
  start|restart)
    ifup lan
    ifup wan
    ifup wifi
    wifi up
    ifup lan3
    ifup lan4
    

    for route in $(nvram get static_route); do {
      eval "set $(echo $route | sed 's/:/ /g')"
      $DEBUG route add -net $1 netmask $2 gw $3 metric $4 dev $5
    } done
    ;;
esac

Teeme booti, peale booti vaatame mis sai ifconfig nimelise utiliidiga.
root@purk:/etc/init.d# ifconfig 
br0       Link encap:Ethernet  HWaddr 00:0F:66:51:81:B6  
          inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

eth0      Link encap:Ethernet  HWaddr 00:0F:66:51:81:B6  
          UP BROADCAST RUNNING PROMISC MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Interrupt:5 Base address:0x2000 

eth1      Link encap:Ethernet  HWaddr 00:0F:66:51:81:B8  
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Interrupt:4 Base address:0x1000 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

vlan0     Link encap:Ethernet  HWaddr 00:0F:66:51:81:B6  
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

vlan3     Link encap:Ethernet  HWaddr 00:0F:66:51:81:B9  
          inet addr:192.168.3.1  Bcast:192.168.3.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

vlan4     Link encap:Ethernet  HWaddr 00:0F:66:51:81:BA  
          inet addr:192.168.4.1  Bcast:192.168.4.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

Kui meil on näha kaks uut tegelast vlan3 ja vlan4, siis on asi õnnestunud.

DHCP serverid uute VLAN'ide peale

Selle võib vahele jätta, kui dhcp teenust ei vajata.

Alustame udhcpd hankimisest. See on mu enda krosskompileeritud binaar, kui ei usalda kompileeri ise.

root@purk:/# cd /tmp/
root@purk:~# wget http://www.bumpclub.ee/~jaanus/wrt54g/ipkg/udhcpd
Connecting to www.bumpclub.ee[194.126.106.38]:80
udhcpd               100% |*****************************| 30623       00:00 ETA
root@purk:~# mv udhcpd /usr/sbin/
root@purk:~# wget http://www.bumpclub.ee/~jaanus/wrt54g/ipkg/lan3.conf
Connecting to www.bumpclub.ee[194.126.106.38]:80
lan3.conf            100% |*****************************|   220       00:00 ETA
root@purk:~# wget http://www.bumpclub.ee/~jaanus/wrt54g/ipkg/lan4.conf 
Connecting to www.bumpclub.ee[194.126.106.38]:80
lan4.conf            100% |*****************************|   220       00:00 ETA
root@purk:~# mv lan*.conf /etc/
root@purk:~# chmod +x /usr/sbin/udhcpd 
root@purk:~# wget http://www.bumpclub.ee/~jaanus/wrt54g/ipkg/S55lan3
Connecting to www.bumpclub.ee[194.126.106.38]:80
S55lan3              100% |*****************************|    33       00:00 ETA
root@purk:~# wget http://www.bumpclub.ee/~jaanus/wrt54g/ipkg/S55lan4
Connecting to www.bumpclub.ee[194.126.106.38]:80
S55lan4              100% |*****************************|    33       00:00 ETA
root@purk:~# mv S55lan* /etc/init.d/
root@purk:~# chmod +x /etc/init.d/S55lan*

Peale booti on siis mõlemal vlanil ka toimiv DHCP server. Kui ei taha kirjuta lihtsalt chmod -x /etc/init.d/S55lan3 ja 3 lani dhcp server on väljas. Kogu tarkus on kirjas /etc/lan3.conf failis.

Tulemüür

Teeme vajalikud eeltoimingud ja võtame vi'ga ette S45firewall faili.

root@purk:~# cd /etc/init.d/
root@purk:/etc/init.d# rm S45firewall 
root@purk:/etc/init.d# cp /rom/etc/init.d/S45firewall .
root@purk:/etc/init.d# vi S45firewall 


#!/bin/sh
. /etc/functions.sh

WAN=$(nvram get wan_ifname)
WAN=ppp0 # MUUDATUS VAJALIK PPPoE KASUTAMISEKS

IPT=/usr/sbin/iptables

for T in filter nat mangle ; do
  $IPT -t $T -F
  $IPT -t $T -X
done

$IPT -t filter -A INPUT -m state --state INVALID -j DROP
$IPT -t filter -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 
$IPT -t filter -A INPUT -p icmp -j ACCEPT 
$IPT -t filter -A INPUT -i $WAN -p tcp -j REJECT --reject-with tcp-reset 
$IPT -t filter -A INPUT -i $WAN -j REJECT --reject-with icmp-port-unreachable 

$IPT -t filter -A FORWARD -j DROP -i vlan3 -o vlan4
$IPT -t filter -A FORWARD -j DROP -i vlan4 -o vlan3
$IPT -t filter -A FORWARD -j DROP -i vlan3 -d 192.168.1.0/24
$IPT -t filter -A FORWARD -j DROP -i vlan4 -d 192.168.1.0/24
$IPT -t filter -A FORWARD -j DROP -s 192.168.1.0/24 -o vlan3
$IPT -t filter -A FORWARD -j DROP -s 192.168.1.0/24 -o vlan4


$IPT -t filter -A FORWARD -m state --state INVALID -j DROP 
$IPT -t filter -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT 
$IPT -t filter -A FORWARD -i $WAN -m state --state NEW,INVALID -j DROP
$IPT -t filter -A FORWARD -o $WAN -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

$IPT -t nat -A POSTROUTING -o $WAN -j MASQUERADE
Ehk siin on kinni keeratud kogu liiklus vlan3, vlan4 ja br0 vahel 192.168.1.1/255.255.255.0 ja WAN interfeisiks on määratud ppp0 mis on PPPoE interfeiss. Käivitame selle firewalli. Boodi aeg pannakse ta nagunii käima.
root@purk:/etc/init.d# ./S45firewall

Telneti keelamine

Lihtne ja edaspidi ssh root@192.168.1.1

root@purk:/# rm /etc/init.d/S50telnet       

Purk valmis

Ongi!

Lisavidinad WISP'ile

Manageerimistunnel

tulekul...

SNMP ja MRTG graafikud

Kasutajate üle arvepidamine.

IPV6

Syslog

Chillispot Wireless Controller

tuleb


sys at bumpclub dot ee, kasutatud o p e n w r t . o r g stiililehte