Untitled Document
» หน้าแรก

Knowledge Management - KM

ระบบจัดการความรู้ (Knowledge Management)
 
-:- Registrat!on -:-

หน้าหลัก » เรื่องเทคโนโลยี » เครือข่าย » Authen at home - freeradius+coovachilli+gologin
admin Authen at home - freeradius+coovachilli+gologin
โพสเมื่อ 2011-10-04 11:22:09  แก้ไขล่าสุด 2012-01-10 14:41:57
 

 

บันทึกนี้ปรับปรุงล่าสุดเมื่อวันที่ 9-10-2554

ดูแลโดย วิบูลย์

 

สภาพแวดล้อม

  • ใช้บริการ adsl router modem ที่มีช่องพอร์ตแลน เพื่อต่อกับ PC
  • PC ที่มีการ์ดแลน 2 การ์ด การ์ดใบแรกต่อกับ adsl router modem การ์ดอีกใบต่อกับ access point
  • ติดตั้งลงในฮาร์ดดิสก์ที่มีหลายพาร์ทิชัน คือ พาร์ทิชันที่ 1 มี Windows 7 พาร์ทิชันที่ 2 มี linux ubuntu desktop และมีการเตรียมพื้นที่เว้นว่างไว้สำหรับทำเรื่องนี้
  • เตรียมแผ่น CD-ROM ชื่อ ubuntu-10.04.3-server-i386
  • ใช้เอดิเตอร์ชื่อ vi ในการแก้ไขไฟล์

 

ซอฟต์แวร์ที่ใช้

  • freeradius ที่ตั้งค่าการทำงานแบบ radius ครอบจักรวาล 
    - สามารถใช้ username ของ gmail หรืออื่นๆ ได้
    - ไม่ต้องสร้าง/ดูแล username
    - เพียงแค่กำหนดว่าจะอนุญาต username ใดบ้าง กำหนดในไฟล์ viplist.txt
    - หรือไม่อนุญาตใครบ้าง กำหนดในไฟล์ blacklist.txt
  • coovachilli เป็น captive portal ที่แจกจ่ายหมายเลขไอพีเอง 
    default คือ 10.1.0.0/24
  • gologin1.24.zip เป็น URL web login ที่ได้จาก chillispot ปรับปรุงมาจาก hotspotlogin.php

 

ขั้นตอน

  1. บูตแผ่น ubuntu-10.04.3-server-i386
     
  2. เลือกจัดการพาร์ทิชันแบบ manual
    ระบุพื้นที่ที่เว้นว่างไว้ ให้เป็น ext3 และตั้งชื่อว่าเป็น /
    ระบุพื้นที่ที่เว้นว่างไว้อีกที่ ให้เป็น linux-swap
     
  3. เมื่อมีคำถามเกี่ยวกับ grub install ให้เลือก grub on MBR 
     
  4. เมื่อมีคำถามเกี่ยวกับ applications ที่จะเลือกติดตั้ง
    เลือก OpenSSH server อย่างเดียว
     
  5. เสร็จ ให้รีบูต เอาแผ่นออก
     
  6. จะบูตขึ้นหน้าจอ grub มีหลาย OS ให้เลือกใช้
     
  7. เข้าใช้งานด้วย username ที่ตั้งไว้ เช่น mama
     
  8. ตั้งค่าการเทียบเวลามาตรฐาน
    sudo ntpdate pool.ntp.org
     
  9. ตั้งค่าการเทียบเวลาตอนเปิดเครื่องใหม่ และทุกวัน
    sudo vi /etc/rc.local 
    ใส่บรรทัดข้อความดังนี้ 
    ntpdate pool.ntp.org

    sudo vi /etc/cron.daily/update-time
    ใส่บรรทัดข้อความดังนี้
    ntpdate pool.ntp.org

    sudo chmod +x /etc/cron.daily/update-time
    sudo /etc/init.d/cron restart
     
  10. ปรับปรุง OS
    แก้ไขให้ชี้เซิร์ฟเวอร์มาที่ประเทศไทย
    sudo vi /etc/apt/sources.list
    แทน us ด้วย th

    sudo apt-get update
    sudo apt-get dist-upgrade
     
  11. สั่งรีบูตเพื่อให้การปรับปรุงมีผล
    sudo reboot
     
  12. ติดตั้งโปรแกรม freeradius และ php
    sudo apt-get install freeradius freeradius-utils php5 php5-imap php5-cli php-soap
    หากต้องการใช้ mysql และ ldap
    sudo apt-get install freeradius-mysql freeradius-ldap 
     
  13. แก้ไขค่า radius secret key
    sudo vi /etc/freeradius/clients.conf
    ใส่ข้อมูลดังนี้
    client localhost {
    secret = mytestkey
    shortname = private-network
    }
    และเพิ่ม client ใดๆ
    client 0.0.0.0/0 {
    secret = mytestkey
    shortname = world-network
    }
     
  14. ทดสอบ freeradius ด้วย radius secret key
    sudo /etc/init.d/freeradius restart
    sudo radtest mama your_password 127.0.0.1 0 mytestkey
     
  15. ติดตั้งโปรแกรมชุด radius ครอบจักรวาล ตามตำรา opensource.psu.ac.th
    sudo apt-get install expect mkpasswd
    sudo apt-get install libpam-radius-auth
    sudo apt-get install gcc
    sudo apt-get install gawk
     
  16. แก้ไขค่า secret 
    sudo vi /etc/pam_radius_auth.conf
    แก้ไขค่า secret ให้เหมือนกับ clients.conf
     
  17. ลอก scripts ชุด radius ครอบจักรวาล ตามตำรา opensource.psu.ac.th
    copy and paste จากลิงค์ 
     
  18. ติดตั้ง coovachilli
    wget ftp://ftp.psu.ac.th/pub/coova/coova-chilli_1.2.5_i386.deb -P /tmp
    sudo dpkg -i /tmp/coova-chilli_1.2.5_i386.deb
    sudo cp /etc/chilli/defaults /etc/chilli/config
     
  19. คอนฟิก coovachilli
    sudo vi /etc/default/chilli
    ตั้งค่าดังนี้
    START_CHILLI=1

    sudo vi /etc/chilli/config
    ตั้งค่าดังนี้
    HS_RADSECRET=mytestkey
    HS_UAMSECRET=uamsecret
    HS_TCP_PORTS="80 443"
    เพิ่มบรรทัดต่อท้ายไฟล์
    HS_RAD_PROTO=pap

    sudo vi /etc/chilli/up.sh
    ให้เพิ่มต่อหลังบรรทัดท้ายสุดข้อความว่า iptables -I POSTROUTING -t nat -o $HS_WANIF -j MASQUERADE
     
  20. ติดตั้ง apache2
    sudo apt-get install apache2 apache2-doc libapache2-mod-perl2
    sudo vi /etc/apache2/conf.d/charset
    กำหนด AddDefaultCharset UTF-8
     
  21. เตรียมสำหรับคอนฟิก apache2 SSL
    sudo mkdir -p /etc/apache2/ssl
    sudo mkdir -p /var/www/hotspot

    แก้ไขชื่อโฮสต์
    sudo vi /etc/hosts
    แก้ไขดังนี้
    127.0.0.1 localhost.local ubuntuplus.local
    และเพิ่มบรรทัด 
    10.1.0.1 ubuntuplus ubuntuplus.local

    ดูชื่อโฮสต์ที่จะใช้ในการคอนฟิก SSL
    hostname -f
     
  22. คอนฟิก SSL
    sudo make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem
    เมื่อถามชื่อโฮสต์ ให้ระบุตาม hostname -f

    สร้างไฟล์ apache config สำหรับ SSL
    sudo vi /etc/apache2/sites-available/hotspot
    มีข้อมูลดังนี้
    NameVirtualHost 10.1.0.1:443

        ServerAdmin webmaster@domain.org
        DocumentRoot "/var/www/hotspot"
        ServerName "10.1.0.1"
       
            Options Indexes FollowSymLinks MultiViews
            AllowOverride None
            Order allow,deny
            allow from all
       

        ScriptAlias /cgi-bin/ /var/www/hotspot/cgi-bin/
        );
    define('UAMSECRET', 'uamsecret');
    ทำรูปใหม่ใช้แทนรูปกราฟฟิค เช่น ตัวอย่างรูปนี้
    wget http://netserv.cc.psu.ac.th/files/hotspot/wireless_logo.png
    sudo cp wireless_logo.png /var/www/hotspot/gologin/go/
     
  23. คอนฟิก coovachilli
    sudo vi /etc/chilli/config
    แก้ไขดังนี้
    HS_UAMFORMAT=https://\$HS_UAMSERVER/gologin/go/index.php
     
  24. รีสตาร์ทโปรแกรม
    sudo /etc/init.d/freeradius restart
    sudo /etc/init.d/chilli start
     
  25. ทดสอบโดยนำโน้ตบุ๊คเชื่อมต่อกับ SSID ของ access point แล้วจะเห็นว่าเมื่อไปยังเว็บไซต์จะมีการ redirect มาหน้า login
     
  26. ตั้งค่าให้ coovachilli ทำงานเมื่อเปิดเครื่อง
    sudo vi /etc/rc.local
    แก้ไขบรรทัด
    #!/bin/sh -e
    ให้เป็น
    #!/bin/sh
    แล้วใส่บรรทัดดังนี้
    /etc/init.d/chilli start
     
  27. ทดสอบรีบูตอีกครั้ง เมื่อกลับเข้ามาจะต้องเห็น
    อินเทอร์เฟส eth0 มีหมายเลขไอพีที่รับจาก adsl router modem เช่น 192.168.10.2
    อินเทอร์เฟส eth1 ไม่มีหมายเลขไอพี
    อินเทอร์เฟส tun0 มีหมายเลขไอพี 10.1.0.1
     
  28. ต่อไปก็เป็นการตั้งค่าตรวจสอบรายชือผู้มีสิทธิ์ใช้บริการ แก้ไขระบบตรวจสอบสิทธิ์ที่แฟ้ม /etc/freeradius/my-authen.sh ตั้งค่าดังนี้
    CHECK_BLACKLIST="YES" หมายถึงตรวจสอบระบบ blacklist ด้วย
    รายชื่อในแฟ้ม /etc/freeradius/blacklist.txt จะถูกตัดสิทธ์ใช้งาน
    ALL_PASS="NO" หมายถึงว่าต้องตรวจสอบขั้นตอนอื่นตามลำดับถัดไป
    CHECK_VIPLIST="YES" หมายถึงตรวจสอบระบบแฟ้ม vip ด้วย
    รายชื่อในแฟ้ม /etc/freeradius/viplist.txt ก็จะสามารถผ่านได้เลย
    CHECK_PSU_STAFF="YES" หมายถึงตรวจสอบว่าเป็น staff ของ PSU หรือไม่
    CHECK_PSU_STUDENT="YES" หมายถึงตรวจสอบว่าเป็น student ของ PSU หรือไม่
    # การตรวจสอบดู log ของการ authen และ authorize ใช้คำสั่งดังนี้
    sudo cat /var/log/freeradius/myauthen/20110809
    ผลลัพธ์ที่ได้จากการคอนฟิก
    เมื่อใช้ บัญชีผู้ใช้บนลินุกซ์
    20110809:09:53:57;"mama";127.0.0.1;1312858437;CHECK_IN
    20110809:09:53:57;"mama";127.0.0.1;1312858437;PASS
    เมื่อใช้ อีเมลภายนอก ที่เป็นรายการใน blacklist
    20110809:09:56:06;"wwiboon@hotmail.com";127.0.0.1;1312858566;CHECK_IN
    20110809:09:56:06;"wwiboon@hotmail.com";127.0.0.1;1312858566;PASS
    20110809:09:56:06;"wwiboon@hotmail.com";127.0.0.1;1312858566;BLACKLIST
    เมื่อใช้ อีเมลภายนอก ที่เป็นรายการใน viplist
    20110809:09:52:04;"wiboon080808@gmail.com";127.0.0.1;1312858324;CHECK_IN
    20110809:09:52:04;"wiboon080808@gmail.com";127.0.0.1;1312858324;PASS
    เมื่อใช้ PSU Passport wiboon.w ไม่ต้องระบุใดๆต่อท้าย
    20110809:10:31:54;"wiboon.w";127.0.0.1;1312860714;CHECK_IN
    20110809:10:31:54;"wiboon.w";127.0.0.1;1312860714;PASS
    เมื่อใช้ อีเมลมหาวิทยาลัย wiboon.w ไม่ต้องระบุใดๆต่อท้าย
    20110809:10:32:18;"wiboon.w";127.0.0.1;1312860738;CHECK_IN
    20110809:10:32:18;"wiboon.w";127.0.0.1;1312860738;PASS
    โปรแกรมจะทำตามลำดับเช็ค PSU Passport แล้วไปเช็ค PSU e-mail
ผู้โพส :    


ทดสอบ

โดย : มยุรฉัตร  รัตนบุรี   2012-01-13 09:05:27  


admin

ลองแล

โดย :     2011-11-07 08:50:34