Weitere ähnliche Inhalte
Ähnlich wie Coovaubuntu904
Ähnlich wie Coovaubuntu904 (20)
Coovaubuntu904
- 1. 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 ด้ งรูป
่ ้
- 2. (อย่าสับสนนะครับถ้ ามีเครื่ องหมาย # มันจะไม่อานบรรทัดนัน)
่ ้
ทดสอบว่า 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
- 3. #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
- 4. แล้ วเอา # ออก
หน้ า readclient =yes ด้ วย
ต่อมาเข้ าไปแก้ ไข file clients.conf เป็ นคีย์ในการเข้ ารหัส
#nano -w /etc/freeradius/clients.conf
client 127.0.0.1 {
secret = radiussecret
}
- 5. ต่อไปเป็ นการ test freeradius ใครจะไม่test ก็ได้ นะครับเพราะไม่คอยมีปัญหาเท่าไรแต่ใครจะ test ก็ตามมาเลยนะ
่
เข้ าไปที่ file users
#nano -w /etc/freeradius/users
เอา # หน้ า john ข้ างล่างนี ้ออก
"John Doe" Auth-Type := Local, User-Password == "hello"
Reply-Message = "Hello, %u"
- 6. ทําการ 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
- 7. มันจะขึ ้นข้ อความว่า 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
- 8. ต่อมาก็หาคําว่า 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
- 9. เรี ยบร้ อยแล้ ว 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
- 10. ดาว์โหลด 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
- 11. แก้ ไข file /etc/chilli/config
#nano /etc/chilli/config
จะเห็นว่าในที่นี ้ผมใช้ วง 192.168.8.0 นะครับ
file ที่ต้องแก้ ไขมี
- 13. ติดตัง้ 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
- 14. สร้ าง 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 ubuntu.sniperthai@yahoo.com
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 !!!!!!!
- 15. <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
- 16. #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
ขอขอบคุณอาจารย์ เผด็จ พราวศรี ที่เป็ นแรงบันดาลให้ ผมทําเอกสารชุดนี ้และต่อๆๆไปครับ