23 ม.ค. 2553

100% Work! Ubuntu+Freeradius2+CoovaChilli+Daloradius

Ubuntu+Freeradius2+CoovaChilli+Daloradius

หลังจากติดตั้ง Ubuntu 9.0.4 เสร็จเรียบร้อย

eth0 = 10.10.10.3 ต่อ Internet
eth1 = 192.168.0.1 LAN

1. ติดตั้งค่า Network Interface Card




  • nano /etc/network/interfaces
iface eth0 inet static
address 10.10.10.3
netmask 255.255.255.240
gateway 10.10.10.1
auto eth1
2. อนุญาตให้ forward packet ได้
  • nano /etc/sysctl.conf ให้เอา # ออกจากบรรทัด net.ip4.ip_forward=1
  • echo 9 sudo tee /proc/sys/net/ipv4/ip_forward
3. เพิ่ม module tun เพราะ coova จำเป็นต้องใช้
  • nano /etc/modules แล้ว พิมพ์ที่บรรทัดล่างสุด tun
  • modprobe tun สั่งให้ทำงานโดยไม่ต้อง restart
4. ติดตั้ง LAMP Server และ DNS Server
  • tasksel แล้วเลือก LAMP Server และ Openssh-Server
จบไปสำหรับ Hors d'oeuvre ต่อไปก็เป็น Main Course กันละ
5. ok มาถึงขั้นติดตั้ง freeradius
  • apt-get install freeradius freeradius-mysql ติดตั้ง Freeradius 2
6. สร้างฐานข้อมูล ชื่อ radius และ เอาscript สร้างtables ใส่เข้าไป
  • mysqladmin -ppasswd create radius
  • mysql -u root -p radius < /etc/freeradius/sql/mysql/schema.sql -ppassswd สีแดงเปลี่ยนเป็นรหัสผ่าน
  • mysql -u root -p radius < /etc/freeradius/sql/mysql/nas.sql -ppasswd สีแดงเปลี่ยนเป็นรหัสผ่าน
  • mysql -u root -p
  • mysql>GRANT ALL PRIVILEGES ON radius.* TO 'radius'@'localhost' IDENTIFIED BY 'Iloveradius';
  • mysql>FLUSH PRIVILEGES;
  • mysql>quit
7. แก้ไขไพล์ sql.conf เพื่อใช้เชื่อมต่อกับฐานข้อมูลที่เพิ่งสร้างขึ้นมา
  • nano -w /etc/freeradius/sql.conf

    server = "localhost"
    login = "radius"
    password = "Iloveradius"
    แล้วเอา # หน้า readclient =yes ออก
  • nano /etc/freeradius/radiusd.conf

    ให้เอา comment ที่หน้า 2 บรรทัดนี้ออก

    modules {
    ….
    $INCLUDE sql.conf
    $INCLUDE sql/mysql/counter.conf
8. แก้ไขไพล์ client.conf เพื่อให้ Coova-chilli และ Daloradius มาทำงานร่วมกับ freeradius ได้
  • nano -w /etc/freeradius/clients.conf

    client 127.0.0.1 {
    secret = Iloveradius
    }
9. แก้ไขไพล์ default
  • nano -w /etc/freeradius/sites-available/default
ให้กด ctrl+w หาคำว่า authorize { เจอแล้วให้เลื่อนลงมาใส่ # ที่ file และเอา # ที่หน้า sql
authorize {
#file เติม # เข้าไป
sql เอา # ออก
daily เอา # ออก และเพิ่ม 3 บรรทัดข้างล่างต่อท้าย
noresetcounter
dailycounter
monthlycounter
}


ต่อมาก็หาคำว่า accounting { แล้วเอา # หน้า sql ออก
accounting {
detail
radutmp
sql ###change manually
}

ต่อมาก็หาคำว่า session { แล้วเอา # หน้า sql ออก
session {
sql ###change manually
}

10. เพิ่ม User เข้าไปในฐานข้อมูล Radius เสร็จ restart Freeradius แล้วทดสอบ User เลย
  • mysql -u root -p
  • INSERT INTO radcheck (UserName, Attribute, Value) VALUES ('guest', 'Password','guest'); เพิ่มusername เข้าไปในฐานข้อมูล
  • quit
  • /etc/init.d/freeradius restart
  • radtest guest guest 127.0.0.1 0 Iloveradius
ถ้าทำสำเร็จ จะมีข้อความประมาณนี้ Access-Accept packet from host 127.0.0.1:1812, id=144, length=20

--------------------จบ Freeradius----------------
ต่อด้วย coova-chilli กันต่อเลย (ผมได้ลอง Chillispot แล้วไม่เหมาะกับการทำงาน อีกอย่างหนึ่งเค้าเลิกพัฒนาแล้ว)

11. download และติดตั้ง
12. มาจัดการแก้ไข file ต่างๆ ใน coova
สร้าง file config ของ chilli
  • cp /etc/chilli/defaults /etc/chilli/config
13. สร้าง folder hotspot ขึ้น
  • mkdir /var/www/hotspot
  • cd /var/www/hotspot
  • cp /etc/chilli/www/* /var/www/hotspot
  • mkdir /var/www/hotspot/images copy สร้าง folder image
  • cp /var/www/hotspot/coova.jpg /var/www/hotspot/images copy รูปภาพไปไว้ที่ images
14. สร้าง folder uam ขึ้นมา
15. เปลี่ยน Host Address ใหม่
  • sed -i 's/ap.coova.org\/js\/chilli.js/192.168.0.1\/uam\/chilli.js/g' /var/www/hotspot/uam/index.html ต่อยาวเป็นบรรทัดเดียวกัน
  • sed -i 's/192.168.182.1/192.168.0.1/g' /etc/chilli/www/ChilliLibrary.js ยาวเป็นบรรทัดเดียว
  • sed -i 's/192.168.182.1/192.168.0.1/g' /var/www/hotspot/ChilliLibrary.js
16. เข้าไปแก้ไข file chilli โดยเปลี่ยนค่าเป็น 1
  • nano -w /etc/default/chilli

    START_CHILLI=1
17. แก้ไข file /etc/chilli/config
  • nano /etc/chilli/config

    HS_LANIF=eth1 # Subscriber Interface for client devices
    HS_NETWORK=192.168.0.0 # HotSpot Network (must include HS_UAMLISTEN)
    HS_NETMASK=255.255.255.0 # HotSpot Network Netmask
    HS_UAMLISTEN=192.168.0.1 # HotSpot IP Address (on subscriber network)
    HS_UAMPORT=3990 # HotSpot Port (on subscriber network)

    HS_NASID=nas01
    HS_UAMSECRET=uamsecret
    HS_RADIUS=127.0.0.1
    HS_RADIUS2=127.0.0.1
    HS_RADSECRET=Iloveradius
    HS_UAMALLOW=www.google.com,192.168.0.0/24

    HS_UAMSERVER=192.168.0.1
    HS_UAMFORMAT=https://\$HS_UAMSERVER/uam/
    HS_UAMHOMEPAGE=http://\$HS_UAMLISTEN:\$HS_UAMPORT/www/coova.html
    HS_UAMSERVICE=https://192.168.0.1/cgi-bin/hotspotlogin.cgi
    HS_TCP_PORTS="80 443"
18. ติดตั้ง 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
19. ติดตั้ง SSL
  • apt-get install libapache2-mod-auth-mysql
20. สร้าง Certificate
  • apt-get install ssl-cert สร้าง Certificate
21. สร้าง folder ssl
  • mkdir /etc/apache2/ssl
22. ดูชื่อเครื่อง รึจะเปลี่ยนชื่อเครื่องก็ได้
  • nano /etc/hostname
23. เสร็จแล้วก็เอาชื่อ hostnameมาใส่ในการตอบคำถามข้างล่างนี้
  • make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem
24. ติดตั้ง module ssl
  • a2enmod ssl
  • /etc/init.d/apache2 force-reload
25. แก้ไขไพล์ hosts
  • nano /etc/hosts
    127.0.0.1 localhost.local localhost
    127.0.1.1 Authen.local Authen
    192.168.0.1 Authen.local Authen
26. สร้างsite hotspot
  • nano -w /etc/apache2/sites-available/hotspot ก๊อบข้างล่างไปวางใน hotspot

    NameVirtualHost 192.168.0.1:443
    <.VirtualHost 192.168.0.1:443>
    ServerAdmin webmaster@domain.org
    DocumentRoot "/var/www/hotspot"
    ServerName "192.168.0.1"
    <.Directory "/var/www/hotspot/">
    Options Indexes 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>

    <.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>
27. สั่งให้ hotspot ใน apache ทำงาน
  • a2ensite hotspot
28. จัดการเรื่อง Listen Ports ใน apche
  • nano -w /etc/apache2/ports.conf แก้ไขให้เหลือตามข้างล่างเป็นพอ

Listen *:443
Listen *:80
  • nano -w /etc/apache2/apache2.conf
ServerName 192.168.0.1 เพิ่มคำสั่งนี้ไว้บนสุดเลยครับ
    29. เปิดไฟล์ default
    • nano -w /etc/apache2/sites-available/default
      เพิ่มตรงบนสุด NameVirtualHost *:80
    30. สร้างหน้า login ของ Hotspot
    31. จบด้วยการ restart
    • reboot
    มาถึงตรงนี้ สามารถทดสอบได้แล้ว



    ติดตั้ง Daloradius (โดยส่วนตัวแล้ว ผมชอบตัวนี้แหละ)32. ดาวน์โหลด daloRADIUS
    33. แตกไพล์
    • tar -zxvf daloradius-0.9-8.tar.gz
    34. ย้ายไดเร็กทอรี่ของ daloradius ไปยังตำแหน่งของ web ด้วยคำสั่ง
    • cp daloradius-0.9-8/ /var/www -R
    35. เปลี่ยน owner ดังนี้
    • chown www-data:www-data /var/www/daloradius-0.9-8 -R
    • chmod 644 /var/www/daloradius-0.9-8/library/daloradius.conf.php ทำการ chmod ดังนี้
    36. สำหรับคนที่มี database ชื่อ radius อยู่แล้วก็ข้ามขั้นตอนนี้ไป แต่ถ้าไม่มีDatabase ก็ให้ใช้คำสั่งเพื่อเรียก script อีกไฟล์ดังนี้
    • mysql -u root -p radius < /var/www/daloradius-0.9-8/contrib/db/mysql-daloradius.sql
    37. เปิดไฟล์คอนฟิกคือ

    5 ความคิดเห็น:

    1. ผมได้แก้ไขใหม่แล้ว เพราะทำตามที่เขียนไปไม่สำเร็จ คราวนี้ใช้ได้แน่นอน

      ตอบลบ
    2. ผมลองลงดูแล้มันขึ้น fail ตอน restart freeradius
      ตอนนี้ใช้ ubuntu 10.10

      /etc/init.d/freeradius restart
      * Stopping FreeRADIUS daemon freeradius * /var/run/freeradius/freeradius.pid not found... [ OK ]
      * Starting FreeRADIUS daemon freeradius [fail]

      ตอบลบ
    3. แก้ได้แล้วคับ

      https://help.ubuntu.com/community/WifiDocs/CoovaChilli

      /etc/init.d/freeradius start
      ใช้ freeradius -XXX
      บรรทัดสุดท้ายมี error บอกให้แก้ในไฟล์นั้นๆ
      ของผมเขียนผิดในไฟล์
      nano -w /etc/freeradius/clients.conf

      secret = Iloveradius

      ขอบคุณคับ

      ตอบลบ
    4. user login ซ่ำได้ครับ แก้ยังไง

      ตอบลบ
    5. บ้างครั้ง ไม่ redirec ครับ
      และ เพิ่ม user ใน dalo แล้ว
      นำมา radtest ผ่าน
      แต่มันออกเน็ตไม่ได้ครับ

      ตอบลบ