Your SlideShare is downloading. ×
Coovaubuntu904
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Coovaubuntu904

1,790
views

Published on

Published in: Self Improvement

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,790
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
37
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 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 ที่ต้องแก้ ไขมี
  • 12. ติดตัง้ 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
  • 13. สร้ าง 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 !!!!!!!
  • 14. <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
  • 15. #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 ขอขอบคุณอาจารย์ เผด็จ พราวศรี ที่เป็ นแรงบันดาลให้ ผมทําเอกสารชุดนี ้และต่อๆๆไปครับ