Download - Coova-Chill+Freeradius2 on Ubuntu 9.04
Coova-chill+freeradius2 on ubuntu 9.04
เรมแรกเลยตองมการแลนดสองใบครบ ผมลองใน vmware สบายอยแลวกใบกไดไมตองซอ
(ในการตดตงนผมถอวาผม sudo เปน root แลวนะครบไดไมตองมานง sudo กนอก)
เพมการดแลนใหเจา ubuntu กนกอนจา
#nano /etc/network/interface
แกไข ip_forward ทแฟม /etc/sysctl.cof ใหเอา # ออกจากบรรทด net.ip4.ip_forward=1 ดงรป
(อยาสบสนนะครบถามเครองหมาย # มนจะไมอานบรรทดนน)
ทดสอบวา ip_forward มนใชงานไดไหมดวยคาสง
# echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward
คาทตอบกลบมาจะได 1 (ตรง 1 ใสไรกไดนะมนเพยงแตใหแสดงใหรวามนทางาน)
เปดการทางานของ tun/tap device ท file /etc/modules
#nano /etc/modules
แลวทาการเพม tun เขาไปในบรรทดสดทายทายสดเลยจา ดงรป
สงใหทางานโดยไมดอง restart
# modprobe tun
มาตดตงตอกนเลย
# apt-get update
# apt-get upgrade
Update ใหมนทนสมยกนหนอยนะครบ
มาตดตง apache2+php5+mysql-server
#apt-get install apache2
#apt-get install php5-mysqli
#apt-get install mysql-sever ตอนตดตงกใหใส password ดวยนะครบ
ใครจะตดตง phpmyadmin ดวยกไดนะครบยากมาก ดวยคาสง
# apt-get install phpmyadmin แลวมนจะขนมาใหเลอก กเลอก apache2 เลยนะครบ
ทนไดเวบ server มาแลว
ไดเวลาตดตง radius server และ database
#apt-get install freeradius freeradius-mysql
ทาการสราง ฐานขอมลใหกบ freeradius ในทนผมจะใหชอ radius นะครบ
# mysql –u root –p (enter แลวใสรหสผาน mysql ทเราตงไวตอนทเราตดตง mysql-server)
mysql> CREATE DATABASE radius;
mysql> quit
ตอมากทาการใสฐานขอมลใหกบ freeradius โดยใชฐานขอมลของมนเองนะครบ
mysql -u root -p radius < /etc/freeradius/sql/mysql/schema.sql
mysql -u root -p radius < /etc/freeradius/sql/mysql/nas.sql
mysql -u root –p (enter แลวใสรหสผาน mysql ทเราตงไวตอนทเราตดตง mysql-server)
mysql> GRANT ALL PRIVILEGES ON radius.* TO 'root'@'localhost' IDENTIFIED BY 'sniperthai';
(ตรงsniperthai นคอรหสผานของผมเองนะครบใครตงไวยงไงกเปลยนซะนะครบอยาเหมอนผมนะ)
mysql> FLUSH PRIVILEGES;
mysql> quit
เขาไปแกไข file sql.conf เพอใหใช databases ได
#nano -w /etc/freeradius/sql.conf
server = "localhost"
login = "radius"
password = "sniperthai
แลวเอา # ออก
หนา readclient =yes ดวย
ตอมาเขาไปแกไข file clients.conf เปนคยในการเขารหส
#nano -w /etc/freeradius/clients.conf
client 127.0.0.1 {
secret = radiussecret
}
ตอไปเปนการ test freeradius ใครจะไมtest กไดนะครบเพราะไมคอยมปญหาเทาไรแตใครจะ test กตามมาเลยนะ
เขาไปท file users
#nano -w /etc/freeradius/users
เอา # หนา john ขางลางนออก
"John Doe" Auth-Type := Local, User-Password == "hello"
Reply-Message = "Hello, %u"
ทาการ reboot สกทกอน
#reboot
เมอreboot กนเสรจแลว กมาcheck กนเลย
#/etc/init.d/freeradius stop
# freeradius –XXX
เมอ test แลวกจะเหนขอความ debug:ready ดงรปชางลาง
แลวกด ctrl+c
แลวสง start freeradius ซะ
#/etc/init.d/freeradius start
เสรจแลวมา test user john doe กนดวยคาสง
# radtest "John Doe" hello 127.0.0.1 0 radiussecret
มนจะขนขอความวา rad_recv: Access-Accept packet from host 127.0.0.1:1812, id=136, length=37
อาวแลวจะงงวาแลวทาไมของผมมนขนวา Access-Reject ละทมนขนขอมความแบบนไมตองตกใจคดวาเฮยไมผานตาย
แลวทาไงดนกถงหลวงพอดไหม ไมตองนะครบจากทผมหามาไดคาตอบวา ถงแมวาจะมการแจงวา Access-Reject
เปนสาเหตเนองจากไมมสทธในการอานแฟม /etc/shadow ของระบบ
ทนกมากาหนดให freeradius อานขอมลจาก mysql โดยเขาไปแกไขท file
#nano -w /etc/freeradius/sites-available/default
ใหกด ctrl+w หาคาวา authorize { เจอแลวใหเลอนลงมาใส # ท file และเอา # ทหนา sql
ตอมากหาคาวา accounting { แลวเอา # หนา sql ออก
accounting {
detail
radutmp
sql ###change manually
}
ตอมากหาคาวา session { แลวเอา # หนา sql ออก
session {
sql ###change manually
}
ทนลงมาแอด user กนเลนดกวาหรอจะเอาจรงดเนย
# echo "INSERT INTO radcheck (UserName, Attribute, Value) VALUES ('mysqltest', 'Password', 'testsecret');" | mysql -u root -p radius
(Enter password:sniperthai)
มาลอง test กนเลยดกวา
#/etc/init.d/freeradius restart
#radtest mysqltest testsecret 127.0.0.1 0 radiussecret
เรยบรอยแลว freeradius มาตอกนท coova-chilli กนตอเลย
เรมแรกเลยเรากไป download coova มากอนจา
#wget http://ap.coova.org/chilli/coova-chilli_1.0.13-1_i386.deb
ตดตงกนเลย
#dpkg -i coova-chilli_1.0.13-1_i386.deb
มาจดการ file ตางๆๆ ใน coova
Copy file config ของ chilli
#cp /etc/chilli/defaults /etc/chilli/config
สราง folder hotspot ขน
#mkdir /var/www/hotspot
เขาไปใน folder hotspot
#cd /var/www/hotspot
copy fle ใน folder www ทงหมดไปท hotspot
#cp /etc/chilli/www/* /var/www/hotspot
สราง folder image
#mkdir /var/www/hotspot/images
copy รปภาพไปไวท images
#cp /var/www/hotspot/coova.jpg /var/www/hotspot/images/
สราง folder uam ขนมา
#mkdir /var/www/hotspot/uam
เขาไปใน uam
#cd /var/www/hotspot/uam
ดาวโหลด uam และ รปจาก coova.org
#wget http://ap.coova.org/uam/
#wget http://ap.coova.org/js/chilli.js
เปลยน Host Address ใหม
#sed -i 's/ap.coova.org\/js\/chilli.js/192.168.8.1\/uam\/chilli.js/g'
/var/www/hotspot/uam/index.html (ตองเปนบรรทดเดยวกนนครบ)
#sed -i 's/192.168.182.1/192.168.8.1/g' /etc/chilli/www/ChilliLibrary.js
#sed -i 's/192.168.182.1/192.168.8.1/g' /var/www/hotspot/ChilliLibrary.js
เขาไปแกไข file chilli โดยเปลยนคาเปน 1
START_CHILLI=1
CONFFILE="/etc/chilli.conf"
#nano -w /etc/default/chilli
ทาการ restart chilli
# /etc/init.d/chilli start
แกไข file /etc/chilli/config
#nano /etc/chilli/config
จะเหนวาในทนผมใช วง 192.168.8.0 นะครบ
file ทตองแกไขม
ตดตง firewall
#nano /etc/chilli/up.sh
เพมขอความขางลางในบรรทดทายสด
# may not have been populated the first time; run again
[ -e "/var/run/chilli.iptables" ] && sh /var/run/chilli.iptables 2>/dev/null
# force-add the final rule necessary to fix routing tables
iptables -I POSTROUTING -t nat -o $HS_WANIF -j MASQUERADE
มาตดตง ssl ใหกบ apache กนดกวา
# apt-get install libapache2-mod-auth-mysql
สราง Certificate
#apt-get install ssl-cert
สราง folder ssl
#mkdir /etc/apache2/ssl
ดดวา hostnameเราชอไร ถาจะแกไขกท file /etc/hostname นะ
#hostname -f
เสรจแลวกเอาชอ hostnameมาใสในการตอบคาถามขางลางน
#ake-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem
ตดตง module ssl
a2enmod ssl
/etc/init.d/apache2 force-reload
เขาไปเพมขอความบรรทดดานลางใน file hotspot
#nano -w /etc/apache2/sites-available/hotspot
NameVirtualHost 198.168.8.1:443
<VirtualHost 198.168.8.1:443> ServerAdmin [email protected] DocumentRoot "/var/www/hotspot" ServerName "198.168.8.1" <Directory "/var/www/hotspot/"> Options FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> Alias "/dialupadmin/" "/usr/share/freeradius-dialupadmin/htdocs/" <Directory "/usr/share/freeradius-dialupadmin/htdocs/"> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /var/www/hotspot/cgi-bin/ #this here is a alias with no hotspot path !!!!!!!
<Directory "/var/www/hotspot/cgi-bin/"> AllowOverride None Options ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog /var/log/apache2/hotspot-error.log LogLevel warn CustomLog /var/log/apache2/hotspot-access.log combined ServerSignature On SSLEngine on SSLCertificateFile /etc/apache2/ssl/apache.pem </VirtualHost>
สงให hotspot ใน apache ทางาน
#a2ensite hotspot
#/etc/init.d/apache2 reload
จดการเรอง post ใน apche
#nano -w /etc/apache2/ports.conf
Listen *:443 Listen *:80 #<IfModule mod_ssl.c> # Listen 443 #</IfModule>
แกไข default ดวยนะ
#nano -w /etc/apache2/sites-available/default
NameVirtualHost *:80 <virtualhost *:80>
เพม server name ใน apache2.conf
#nano -w /etc/apache2/apache2.conf
ServerName 198.168.8.1
192.168.8.1 host.name host #change to your host name
รสตาร apache
#/etc/init.d/apache2 restart
เรยบรอยแลวเรากเรยกวบจากเครองลกในวงแลนไดเลยนะครบ
อางอง https://help.ubuntu.com/community/WifiDocs/CoovaChilli
ขอขอบคณอาจารย เผดจ พราวศร ทเปนแรงบนดาลใหผมทาเอกสารชดนและตอๆๆไปครบ