Ilmu tak baik simpan
sorang-sorang, he heh.Ok, saya dah bersemangat nak buat tutorial, dan mungkin
akan capture pakai video post terus ke Youtube. Tapi kena sediakan
bahan-bahannya.
1 unit intel PC beserta 2 network card
2 unit linksys AP WRT54GL
Complete CD Linux Centos 4.6final ( download kat centos.org )..ada 4 keping
8 port hub / switch
Sambungan ke internet
Perjalanan Tutorial
--------------------------
1 unit intel PC beserta 2 network card
2 unit linksys AP WRT54GL
Complete CD Linux Centos 4.6final ( download kat centos.org )..ada 4 keping
8 port hub / switch
Sambungan ke internet
Perjalanan Tutorial
--------------------------
Jika berjaya surf ke internet, saya akan teruskan dengan
install Apache Web Server
Diteruskan dengan install PHP Scripting language
Dan kemudian, kita akan install MySQL Database
Jika server radius dah berjaya setup, kita teruskan ke setup
Coova Chilli ( sangat sangat penting ), Coova Chilli nih lah yg jadi polis
check user radius dan supply Captive Portal.
Kita akan setup Coova AP cakap dengan Radius
Akhir sekali, install MamakSpot PHP Script, script nih yang
akan control user Wifi
Lepas tuh anda boleh start HotSpot sendiri.
Kena pastikan anda mempunyai hardware berikut
1. Intel Pentium PC
2. Minima 128MB RAM
3. 2 Network Card
4. 4 keping CD kosong
5. Laptop Windows XP dengan burn cd capability
6. 2 CAT5e Straight cable ( network card )
7. Linksys WRT54GL AP
Download Linux Centos 4.6 ISO
URL : http://mirror.nsc.liu.se/CentOS/4.6/isos/i386/
Download 4 iso di atas dan burn ke dalam 4 keping CD
Saya gunakan ISO Recorder : http://isorecorder.alexfeinman.com/isorecorder.htm
Pengetahuan menggunakan Linux amat penting untuk menggunakan MamakSpot, jadi saya assume anda mempunyai pengalaman lampau install dan gunakan linux. Jika anda tidak mempunyai asas dalam Linux, sila rujuk How To dan tutorial dari Google.
Install Linux Centos dengan setting berikut
- no firewall
- server mode ( minimal configuration)
- gcc,make ,compiler kena ada
Saya assume anda berjaya install Centos 4.6 Final edition, dan di bawah adalah setting-setting yang saya guna.
Lepas install, matikan firewall, laksanakan command berikut
/sbin/service iptables stop
[root@hotspot ~]# yum install gcc
[root@hotspot ~]# yum install make
[root@hotspot ~]# yum install compiler
Setting untuk model Streamyx
IP-address : 192.168.1.1
Subnet : 255.255.255.0
DNS : 202.188.1.5
DNS 2 : 202.188.0.133
Mode : auto dial,auto auth
Maksudnya, kita akan set username dan password terus dalam Modem Streamyx, jadi user yang point ke gateway 192.168.1.1 akan terus dapat sambungan ke internet
Setting untuk network card 1
Nama : ETH0
IP-Address : 192.168.1.2
Subnet Mask : 255.255.255.0
Gateway Address : 192.168.1.1
Cable : Sambung terus ke ethernet port Router Modem Streamyx
Setting untuk model Streamyx
IP-address : 192.168.1.1
Subnet : 255.255.255.0
DNS : 202.188.1.5
DNS 2 : 202.188.0.133
Mode : auto dial,auto auth
Maksudnya, kita akan set username dan password terus dalam Modem Streamyx, jadi user yang point ke gateway 192.168.1.1 akan terus dapat sambungan ke internet
Setting untuk network card 1
Nama : ETH0
IP-Address : 192.168.1.2
Subnet Mask : 255.255.255.0
Gateway Address : 192.168.1.1
Cable : Sambung terus ke ethernet port Router Modem Streamyx
# edit file : vi /etc/sysconfig/network-scripts/ifcfg-eth0
# Setting untuk network card 1
DEVICE=eth0
ONBOOT=yes
NETMASK=255.255.255.0
IPADDR=192.168.1.2
GATEWAY=192.168.1.1
TYPE=Ethernet
# Setting untuk network card 1
DEVICE=eth0
ONBOOT=yes
NETMASK=255.255.255.0
IPADDR=192.168.1.2
GATEWAY=192.168.1.1
TYPE=Ethernet
Ok, kita telah edit configuration untuk Network Card 1. Mari
kita suba sambungan ke internet. Laksanakan command berikut :
/sbin/service network restart
Kemudian kita akan cuba sambungan ke internet dengan ping ke google.com
ping google.com
Sepatutnya anda akan dapat result seperti berikut :
[root@localhost html]# ping google.com
PING google.com (64.233.167.99) 56(84) bytes of data.
64 bytes from py-in-f99.google.com (64.233.167.99): icmp_seq=1 ttl=238 time=322 ms
64 bytes from py-in-f99.google.com (64.233.167.99): icmp_seq=2 ttl=238 time=275 ms
64 bytes from py-in-f99.google.com (64.233.167.99): icmp_seq=3 ttl=238 time=273 ms
64 bytes from py-in-f99.google.com (64.233.167.99): icmp_seq=4 ttl=238 time=278 ms
64 bytes from py-in-f99.google.com (64.233.167.99): icmp_seq=5 ttl=238 time=273 ms
--- google.com ping statistics ---
6 packets transmitted, 5 received, 16% packet loss, time 4997ms
rtt min/avg/max/mdev = 273.613/284.723/322.454/18.936 ms
[root@localhost html]#
Jika anda berjaya hingga ke tahap ini, anda berjaya connect Linux Box anda ke internet menggunakan laluan ETH0. Seterusnya kita akan setup Network Card 2 dengan menggunakan setting berikut:
Setting untuk network card 2
Nama : ETH1
IP-Address : 10.0.0.1
Subnet Mask : 255.255.255.0
Gateway Address : 192.168.1.2
Cable : Sambung terus ke ethernet port Linksys WRt54 GL
# edit file : vi /etc/sysconfig/network-scripts/ifcfg-eth1
# Setting untuk network card 2
DEVICE=eth1
BOOTPROTO=static
BROADCAST=10.0.0.255
HWADDR=00:0C:76:6B:0B:E0
IPADDR=10.0.0.1
NETMASK=255.255.255.0
NETWORK=10.0.0.0
ONBOOT=yes
TYPE=Ethernet
# Setting untuk network card 2
DEVICE=eth1
BOOTPROTO=static
BROADCAST=10.0.0.255
HWADDR=00:0C:76:6B:0B:E0
IPADDR=10.0.0.1
NETMASK=255.255.255.0
NETWORK=10.0.0.0
ONBOOT=yes
TYPE=Ethernet
Restart semula service network menggunakan command /sbin/service dan kemudian laksanakan command berikut
/sbin/ifconfig -a
Command di atas berfungsi untuk melihat network card yang telah diconfigure dalam sistem. Sepatutnya anda akan melihat data mengenai ETH0 dan dan ETH1.
-bash-3.00$ /sbin/ifconfig -a
eth0 Link encap:Ethernet HWaddr xxxxxxxxxxxx
inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::206:5bff:feed:62c6/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:401058151 errors:0 dropped:0 overruns:0 frame:0
TX packets:497301783 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:2828013415 (2.6 GiB) TX bytes:2305496074 (2.1 GiB)
Base address:0xcce0 Memory:feb60000-feb80000
eth1 Link encap:Ethernet HWaddr xxxxxxxxxxxx
inet addr:10.0.0.1 Bcast:10.0.0.255 Mask:255.255.255.0
inet6 addr: fe80::206:5bff:feed:62c6/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:401058151 errors:0 dropped:0 overruns:0 frame:0
TX packets:497301783 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:2828013415 (2.6 GiB) TX bytes:2305496074 (2.1 GiB)
Base address:0xcce0 Memory:feb60000-feb80000
* peringatan, data di atas cuma contoh sahaja, dan bukan gambaran yang anda lihat di konsol Linux anda *
Seterusnya, sambung cable CAT 5 ( straight cable ), dari ETh1 ke ethernet port ( bukan WAN port ) AP Linksys WRT 54GL. Kemudian, sambung pula Laptop anda CAT5 cable ke ethernet port no 2 di LinksysAP yang sama.
Configure Laptop anda menggunakan setting berikut:
Setting untuk Laptop
IP-Address : 10.0.0.2
Subnet-mask : 255.255.255.0
GatewayAddress: 10.0.0.1 ( poin ke ETH1 ip address )
DNS: 202.188.1.5
Kemudian, ping ke IP 10.0.0.1
Pastikan anda dapat ping reply dari 10.0.0.1, dan kemudian baru teruskan ke bab seterusnya.
Jika anda berjaya dapat ping reply, itu sudah mencukupi untuk ke tahap ini. Sepatutnya anda tidak boleh surf ke internet . Ini disebabkan Linux anda masih belum diconfigure untuk menjadi router.
bab seterusnya kita akan configure Linux anda sebagai router menggunakan IPTABLES.
Pastikan anda berjaya mengikut Tutorial 1 dengan jayanya.
Seterusnya, saya akan ajar bagaimana untuk menjadikan Linux anda sebagai
router. Ini bermakna, Laptop anda yang connect menerusi HUB ( Linksys AP
ethernet port ) --> port ETH1, dapat melayari ke internet
Laptop anda = 10.0.0.2 ( gatewaye 10.0.0.1 iaitu ETH1 )
ETH1 = 10.0.0.1
perkara pertama, kita perlu enablekan ip forwarding di dalam Linux. edit fail /etc/systcl.conf dan ubah mengikut konfigurasi di bawah.
[root@hotspot ~]# vi /etc/sysctl.conf
Laptop anda = 10.0.0.2 ( gatewaye 10.0.0.1 iaitu ETH1 )
ETH1 = 10.0.0.1
perkara pertama, kita perlu enablekan ip forwarding di dalam Linux. edit fail /etc/systcl.conf dan ubah mengikut konfigurasi di bawah.
[root@hotspot ~]# vi /etc/sysctl.conf
# Kernel sysctl configuration file for Red Hat Linux
#
# For binary values, 0 is disabled, 1 is enabled. See sysctl(8) and
# sysctl.conf(5) for more details.
# Controls IP packet forwarding
# ubah jadi 1 ( default =0 )
net.ipv4.ip_forward = 1
# Controls source route verification
net.ipv4.conf.default.rp_filter = 1
# Do not accept source routing
net.ipv4.conf.default.accept_source_route = 0
# Controls the System Request debugging functionality of the kernel
kernel.sysrq = 0
# Controls whether core dumps will append the PID to the core filename.
# Useful for debugging multi-threaded applications.
kernel.core_uses_pid = 1
Kemudian, create satu script bernama route.sh dan masukkan data berikut :
route.sh
# firewall.sh
/sbin/iptables -F
/sbin/iptables -t nat -F
/sbin/iptables -t mangle -F
/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
/sbin/iptables -A FORWARD -i eth1 -j ACCEPT
echo 1 > /proc/sys/net/ipv4/ip_forward
Kemudian laksanakan arahan berikut
sh route.sh
[root@hotspot ~]# service network restart
kemudian cuba ping google.com melalui Laptop anda. sepatutnya anda boleh ping ke Google.com
Okay, sudah sampai ke tahap nak install Free Radius. Sila
download source code di URL di bawah :
http://freeradius.org/download.html
Download version 2.0.3 dan baca installation procedure. RTFM!. Saya galakkan compile dari source dari install guna RPM.
Download Free Radius
http://freeradius.org/download.html
Download version 2.0.3 dan baca installation procedure. RTFM!. Saya galakkan compile dari source dari install guna RPM.
Download Free Radius
-bash-3.1$ wget ftp://ftp.freeradius.org/pub/freeradius/freeradius-server-2.0.3. tar.gz
--08:33:54-- ftp://ftp.freeradius.org/pub/freeradius/freeradius-server-2.0.3.ta r.gz
=> `freeradius-server-2.0.3.tar.gz'
Resolving ftp.freeradius.org... 66.135.41.84
Connecting to ftp.freeradius.org|66.135.41.84|:21... connected.
Logging in as anonymous ... Logged in!
==> SYST ... done. ==> PWD ... done.
==> TYPE I ... done. ==> CWD /pub/freeradius ... done.
==> SIZE freeradius-server-2.0.3.tar.gz ... 3488944
==> PASV ... done. ==> RETR freeradius-server-2.0.3.tar.gz ... done.
Length: 3488944 (3.3M)
100%[====================================================================================================================>] 3,488,944 134K/s in 27s
08:34:25 (126 KB/s) - `freeradius-server-2.0.3.tar.gz' saved [3488944]
Untar Free Radius
-bash-3.1$ tar zxvf freeradius-server-2.0.3.tar.gz
Configure Free Radius
-bash-3.1$ pwd
/var/www/html/freeradius-server-2.0.3
-bash-3.1$ ./configure
.
.
.
configure: creating ./config.status
config.status: creating Makefile
config.status: creating config.h
Make Free Radius ( kalau tiada error )
-bash-3.1$ make
Kemudian kita install Free Radius
-bash-3.1$ make install
Kalau berjaya akan dapat mesej berikut
----------------------------------------------------------------------
Libraries have been installed in:
/usr/local/lib
If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
- add LIBDIR to the `LD_LIBRARY_PATH' environment variable
during execution
- add LIBDIR to the `LD_RUN_PATH' environment variable
during linking
- use the `-Wl,--rpath -Wl,LIBDIR' linker flag
- have your system administrator add LIBDIR to `/etc/ld.so.conf'
See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
[root@localhost freeradius-server-2.0.3]#
Dan binary berikut adalah yang berasal dari freeradius
[root@localhost freeradius-server-2.0.3]# rad
radclient radlast radtest radzap
radeapclient radsqlrelay radwho
[root@localhost freeradius-server-2.0.3]# rad
Nak uninstall Free Radius ? Malangnya, dalam Free Radius tidak diberikan sekali command make uninstall . Tapi boleh guna teknik di bawah :
You can use checkinstall to uninstall FreeRADIUS.
http://www.asic-linux.com.mx/~izto/checkinstall/
What you do is use checkinstall to install FreeRADIUS a second time from freeradius-server-2.0.2.tar.gz. You use the commands:
./configure
make
checkinstall
checkinstall will create a deb or rpm package for you. You then install the deb or rpm package and then uninstall it.
Ok. Skrg dah berjaya install Free Radius. Cuba local di mana radiusd ( Radius Daemon ) disimpan dan kita akan run untuk pertama kali
[root@localhost freeradius-server-2.0.3]# whereis radiusd
radiusd: /usr/local/sbin/radiusd
Runkan radius daemon dengan option -X ( so kita nampak apa yang sedang berlaku )
[root@localhost freeradius-server-2.0.3]# /usr/local/sbin/radiusd -X
.
.
.
Listening on authentication address * port 1812
Listening on accounting address * port 1813
Listening on proxy address * port 1814
Ready to process requests.
Berdasarkan maklumat di atas freeradius akan menggunakan 3 port iaitu 1812,1813 dan 1814.
Kita akan buat ujian Radtest untuk menguji server tersebut.Perlu diingatkan, fail configuration radius semuanya terletak di folder berikut
/usr/local/etc/raddb/
CD ke folder tersebut dan edit fail users
[root@localhost raddb]# vi /usr/local/etc/raddb/users
Dan letak configurasi berikut di bahagian paling bawah
# mamakspot user radtest demonstration
mankuk Cleartext-Password := "hayun"
Save fail tersebut dan laksanakan arahan berikut: ( kill radiusd dan run kembali dahulu )
radtest mankuk hayun 127.0.0.1 1812 testing123
Sila lihat gambar di bawah untuk hasil command tersebut.
Cuba lihat mesej radiusd -X yang mengatakan
auth: type "PAP"
+- entering group PAP
rlm_pap: login attempt with password "hayun"
rlm_pap: Using clear text password "hayun"
rlm_pap: User authenticated successfully
++[pap] returns ok
Login OK: [mankuk/hayun] (from client localhost port 1812)
Bermaksud anda memasukkan username dan password yang betul dan dapat reply status Login OK. Cuba masukkan username dengan password yang salah
auth: type "PAP"
+- entering group PAP
rlm_pap: login attempt with password "xhayun"
rlm_pap: Using clear text password "hayun"
rlm_pap: Passwords don't match
++[pap] returns reject
auth: Failed to validate the user.
Login incorrect (rlm_pap: CLEAR TEXT password check failed): [mankuk/xhayun] (from client localhost port 1812)
Found Post-Auth-Type Reject
+- entering group REJECT
expand: %{User-Name} -> mankuk
attr_filter: Matched entry DEFAULT at line 11
++[attr_filter.access_reject] returns updated
Anda akan direject.Dan sistem tidak akan authenticate anda.
Untuk mengubah nas secret "testing123", ubah fail clients.conf dan cari entry untuk 127.0.0.1
Jika anda telah berjaya ke tahap ini, itu sudah memadai. Tutorial seterusnya ialah kita akan ubah configuration radius server untuk menggunakan database MySQL sebagai storage. Buat masa ini anda boleh surf Google untuk maklumat menggunakan Free Radius