วันอาทิตย์ที่ 14 ธันวาคม พ.ศ. 2557

สร้าง php สคริปสำหรับส่งข้อมูล(method post)อัตโนมัติ สำหรับระบบงานที่ไม่ต้องการใช้คนช่วย

ปัญหาที่ผู้เขียนกำลังจะแก้อยู่ในขณะนี้คือ ผู้เขียนต้องการสร้าง Form/Submit ธรรมดาสำหรับผู้พัฒนาเวบแอพพลิเคชั่น การสร้าง Form/Submit ทำได้ไม่ยากเพราะมีซอร์สโค๊ดอยู่มากมาย ปัญหาที่ผู้เขียนพบก็คือหากเรามีForm แต่ไม่มีใครมากด Submit ให้ระบบก็เลยไม่ทำงานแบบอัตโนมัติ

บางคนอาจจะนึกหน้าตา Form/Submit ไม่ออกผู้เขียนก็เลยจะได้นำมาให้ดูเป็นตัวอย่าง จากตัวอย่างเป็นการสร้างฟอร์ม เพื่อส่งข้อความสั้น(SMS) ผ่านเวบไซต์ clickatell.com เหตุผลที่ผู้เขียนเลือกใช้ผู้ให้บริการของ clickatell เพราะว่ามีการทำงานมาตรฐาน เป็นที่นิยมใช้กันมาก


จากปัญหาข้างต้นเมื่อผู้เขียนสร้างฟอร์มเสร็จสมบูรณ์ และป้อนค่าต่างๆ ลงเท็กซ์บ็อกแบบอัตโมมัติ ปรากฎว่าไม่มีใครมาช่วยกดปุ่ม Submit การแก้ปัญหาให้โปรแกรมทำงานแบบอัตโนมัติก็เลยยังทำไม่ได้

ผู้เขียนก็เลยได้พยายามค้นคว้าหาคำตอบเพิ่มเติมว่า เวบแอพพลิเคชั่นง่ายๆแบบนี้ต้องทำยังไง ครั้นจะโทรไปสอบถามนักพัฒนา PHP สคริปก็ยังไม่ค่อยกล้าถาม ต้องพยายามหาคำตอบด้วยตัวเอง ในที่สุดผู้เขียนก็พบไลบราลี่ตัวหนึ่งที่ทำงานได้เรียกว่า curl

<?php
$ch = curl_init();                    // initiate curl
$url = "http://api.clickatell.com/http/sendmsg.php"; // where you want to post data
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_POST, true);  // tell curl you want to post something
curl_setopt($ch, CURLOPT_POSTFIELDS, "user=xxxxxx&password=xxxxxx&api_id=xxxxxx&from=xxxxxx&to=xxxxxx&text=xxxxxx"); // define what you want to post
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // return the output in string format
$output = curl_exec ($ch); // execute

curl_close ($ch); // close curl handle
 
var_dump($output); // show output
 
?>

อธิบายการทำงานของโค๊ด

curl_init   เป็นฟังก์ชั่นเริ่มต้นการใช้งานไลบรารี่ curl
url           เป็นตำแหน่งของเวบแอพพลิเคชั่นที่ต้องการเรียกให้ทำงาน
setopt     เป็นกำหนดพารามิเตอร์ต่างๆ ก่อนเรียกให้ฟังก์ชั่น curl ทำงาน
curl_exec เป็นการประมวลผลคำสั่งพูดง่ายๆ ว่าเป็นการกดปุ่ม submit นั่นเอง
curl_close จบการทำงานของไลบรารี่ curl

สำหรับการติดตั้งโปรแกรม curl และ php5 สำหรับระบบปฏิบัติการ Ubuntu ให้ดำเนินการดังนี้

apt-get install curl libcurl3 libcurl3-dev php5-curl
/etc/init.d/apache2 restart
ผู้เขียนทดลองแปะโค๊ดตัวอย่างการส่งข้อความสั้นผ่าน API ที่ผู้เขียนใช้บริการอยู่ ซึ่งมีค่าใช้จ่ายถูกกว่า Clickatell มาก เพื่อให้ใช้เป็นข้อมูลสำหรับการนำไปประยุกต์ใช้งาน สำหรับแอพพลิเคชั่น SMS PROXY ที่ผู้เขียนกำลังพัฒนาอยู่จะได้ประโยชน์ในทุกๆ แอพพลิเคชั่นที่ต้องการเรียกใช้งานระบบ SMS

<?php
$ch = curl_init();                    // initiate curl
$posturl = "http://api.sms-delivery.com/api/sendsms/plain";
$fields = "user=xxxx&password=xxxx&sender=TPIT&GSM=6686xxxxxxx&SMSText=TEST SENDING MESSAGE FROM API CURL";
curl_setopt($ch, CURLOPT_URL,$posturl);
curl_setopt($ch, CURLOPT_POST, 1);  // tell curl you want to post something
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields); // define what you want to post
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // return the output in string format
$output = curl_exec ($ch); // execute

curl_close ($ch); // close curl handle

var_dump($output); // show output

?>
 


ต้องขอขอบคุณ บจก.ไทย พรอสเพอรัส ไอที ผู้นำด้านการให้บริการ thaigpstrack ด้วยสินค้าคุณภาพ นำเข้าจากผู้ผลิตโดยตรง มั่นใจได้ในคุณภาพของสินค้า

วันอังคารที่ 16 กันยายน พ.ศ. 2557

ติดตั้ง noip บนอินเทอร์เฟสที่ 2 เพื่อตรวจสอบ WAN ลิงค์สำรอง

ยินดีต้อนรับสู่เวบบล็อกรวบรวมประสพการณ์ดีๆของการนำลินุกส์ไปใช้งานจริงๆ เพื่อนำเสนอข้อมูลที่เป็นประโยชน์ต่อการนำไปประยุกต์ใช้งานในโอกาสต่อๆไป หรือเป็นบันทึกกันลืมว่าเคสนี้เราเคยผ่านการแก้ปัญหามาอย่างไร

สำหรับวันนี้ก็เช่นเดียวกันผู้เขียนทำเซิร์ฟเวอร์อินเทอร์เน็ตหอพักมี 2 อัพลิงค์ ลิงค์ที่ 1 เป็นทรู ส่วนลิงค์ที่ 2 เป็นทีโอที ประกฎว่าผู้เขียนไม่สามารถตรวจสอบไอพีแวนของลิงค์ที่ 2 ได้เลยว่าหมายเลขอะไร นั่นคือที่มาของการติดตั้ง noip บนอินเทอร์เฟสที่ 2 เพื่อตรวจสอบ wan ลิงค์ที่ 2 หรือลิงค์สำรองนั่นเอง

ขั้นตอนที่ 1 เริ่มต้นด้วยการดาวน์โหลดและติดตั้งแพ็คเกจกันก่อน


 wget http://www.no-ip.com/client/linux/noip-duc-linux.tar.gz  

ขั้นตอนที่ 2 แตกไฟล์ คอมไพล์และติดตั้งแพคเกจ
 tar xzvf noip-duc-linux.tar.gz
 cd noip-2.1.9-1/
 make
 make install

ขั้นตอนที่ 3 เป็นการกำหนดค่าให้กับโปรแกรม noip2 ก่อนอื่นเราต้องมีชื่อผู้ใช้งานและรหัสผ่านของ noip.com ก่อนตามรูป


/usr/local/bin/noip2 -C
หลังจากเรียกคำสั่งข้างต้นโปรแกรมจะบังคับให้เราตั้งค่า ผู้เขียนเลือกเป็นอินเทอร์เฟซ ppp1


ขั้นตอนที่ 4 เป็นการรันโปรแกรม
/usr/local/bin/noip2

ลองกลับเข้าไปดูผลลัพธ์ที่เวบnoip.com ตามรูปจะต้องแสดงค่าไอพีแอดเดรสปัจจุบันของอินเทอร์เฟซ WAN 2 หรือลิงค์สำรอง จากตัวอย่างจะเห็นว่า WAN 1 คือหมายเลขไอพี 115.87.31.7 ส่วน WAN 2 คือหมายเลขไอพี 180.180.137.24

ผู้เขียนต้องขอขอบคุณ บจก.ไทย พรอสเพอรัส ไอที ผู้นำด้านการให้บริการ gps ติดตามรถ เอื้อเฟื้อพื้นที่บล็อกดีๆ เพื่อเป็นเวทีให้นำเสนอเรื่องราวดีๆ อยู่เสมอมา

วันจันทร์ที่ 28 กรกฎาคม พ.ศ. 2557

ตั้งเวลารีสตาร์ทเครื่องทุกวัน เพื่อเพิ่มประสิทธิภาพการทำงานของอุปกรณ์ LINKSYS WRT54GL

ยินดีต้อนรับสู่เวบบล็อกดีๆ รวบรวมประสบการณ์ Opensource ของเรา Thai Prosperous IT Co.,Ltd. มานำเสนอกันอยู่เป็นประจำ ผู้เขียนต้องขอขอบคุณ บจก.ไทย พรอสเพอรัส ไอที ได้ให้พื้นที่เวบไซต์ดีๆ สำหรับบอกเล่าเรื่องราวที่ผ่านๆ มา นอกจากนี้ บจก.ไทย พรอสเพอรัส ไอที ยังเป็นผู้นำด้านอุปกรณ์ GPS TRACKING สินค้าทุกชนิดสั่งตรงจากโรงงานผู้ผลิตโดยตรงเพื่อความมั่นใจได้ในประสิทธิภาพและความคงทนถาวร

วันนี้ผู้เขียนจะได้แนะนำวิธีการตั้งเวลารีสตาร์ทเครื่องทุกวัน เพื่อเพิ่มประสิทธิภาพการทำงานของอุปกรณ์ LINKSYS WRT54GL โดยซอฟต์แวร์ที่ใช้ก็คือ dd-wrt v24sp2 จัดได้ว่ามีความเสถียรภาพดีมากทีเดียว


การตั้งค่าให้เลือกไปที่เมนู Administration -> Keep Alive -> Sechedule Reboot ตามตัวอย่างให้รีสตาร์ททุกๆ วันตอนเที่ยงคืน

ผู้เขียนยังมีเรื่องราวดีๆ ที่น่าสนใจเกี่ยวกับอุปกรณ์ DD-WRT อีกเช่น การทำ NAT แบบ 1 ต่อ 1 ในการทำไฟร์วอลแบบ DMZ เป็นต้น แน่นอนที่สุดนอกจากจะเป็นอุปกรณ์ที่มีราคาประหยัดแล้วยังมีความสามารถเกินตัวอีกด้วย

วันอาทิตย์ที่ 27 กรกฎาคม พ.ศ. 2557

ปิดสัญญาณไวไฟ การทำงานของอุปกรณ์ LINKSYS WRT54GL ด้วยซอฟต์แวร์ DD-WRT

ยินดีต้อนรับเข้าสู่เวบบล็อกดีๆ รวบรวมเรื่องราวประสบการณ์ดีๆ จากการใช้งานจริง เรื่องราวในวันนี้ยังคงมีการอัพเดทกันอย่างต่อเนื่องในเรื่องของการกำหนดค่าให้กับอุปกรณ์ LINKSYS WRT54GL โดยการติดตั้งซอฟต์แวร์โอเพนซอร์ส dd-wrt v24sp2

วันนี้ผู้เขียนจะขอแนะนำเทคนิคในการปิดสัญญาณไวไฟบนตัวอุปกรณ์ LINKSYS WRT54GL หลายคนคงจะเกิดคำถามขึ้นในใจว่า จะปิดสัญญาณไวไฟบนไวร์เลสเร้าเตอร์ได้หรือ เพราะเราซื้อมาเพื่อทำไวร์เลสโดยเฉพาะ คำตอบก็คือปิดได้ครับ เหตุผลที่ผู้เขียนต้องปิดก็คือ อุปกรณ์ LINKSYS WRT54GL ตัวนี้ผู้เขียนจะได้นำไปทำไฟร์วอลแบบ DMZ บนพื้นที่ให้บริการ Co-location ดังนั้นการเปิดสัญญาณไวไฟ ย่อมเป็นการสร้างการรบกวน ที่สำคัญมันจะกลายเป็นช่องโหว่ที่จะถูกเข้าถึงจากเน็ตเวิร์คภายในได้โดยง่าย

เพื่อไม่ให้เป็นการเสียเวลาเราไปดูขั้นตอนกันเลย


ขั้นตอนการปิดสัญญาณไวไฟ ให้เลือกไปที่เมนู Services จากนั้นทำการ Enable Use this button for turning off radio และ Enable Turn radio off at boot โดยการอนุญาตให้กดปุ่ม EZ-SETUP เพื่อทำการเปิดปิดสัญญาณไวไฟได้ ส่วนข้อที่สอง Turn radio off at boot เป็นการสั่งให้ปิดสัญญาณไวไฟทุกครั้งที่เครื่องเริ่มทำงาน จากนั้นกด Save และ Apply


หลังจากผู้เขียนทดลองเปิดปิดเครื่องใหม่ จะพบว่าในส่วนของสถานะ Wireless มีการแสดงคำว่า Radio is Off นั่นก็คืออุปกรณ์เร้าเตอร์เราทำการปิดสัญญาณไวไฟครบถ้วนสมบูรณ์ดีแล้ว เป็นอันปิดงานครับ

 ผู้เขียนต้องขอขอบคุณ บจก.ไทย พรอสเพอรัส ไอที ที่ได้เอื้อเฟื้อพื้นที่บล็อกเกอร์ดีๆ อันเป็นประโยชน์ต่อการแลกเปลี่ยนประสบการณ์จริง นอกจากนี้ ไทย พรอสเพอรัส ไอที ยังเป็นผู้นำในด้านการให้บริการ gps ติดตามรถ ด้วยทีมวิศวกรมืออาชีพ เข้าใจถึงทฤษฎีและปัญหาต่างๆ ได้ครบถ้วนสมบูรณ์ ทำให้คุณภาพการให้บริการมีความรวดเร็ว สะดวกและไม่ติดขัด



เปิดใช้งาน authorized key บนซอฟต์แวร์ dd-wrt

ยินดีต้อนรับสู่ เวบบล็อกรวบรวมประสบการณ์ Opensource ของ ไทย พรอสเพอรัส ไอที กันอีกครั้งหนึ่ง หลังจากที่ได้ห่างเหินการอัพเดทข้อมูลกันไปนานพอสมควร ในวันนี้ผู้เขียนมีโปรเจคนำอุปกรณ์ไวร์เลสเราเตอร์ไปทำหน้าที่เป็น DMZ ไฟร์วอล เพื่อป้องกันเครื่องเซิร์ฟเวอร์ที่ติดตั้งซอฟต์แวร์ Kernel Virtual Machine(KVM) แบบบริดจ์

สำหรับฮาร์ดแวร์ที่ใช้งานในครั้งนี้คงหนีไปพ้น Linksys WRT54GL ลงซอฟต์แวร์ DD-WRT v24sp2 การป้องกันการเข้าถึงอุปกรณ์ในครั้งนี้ก็คือการยกเลิกการป้อนชื่อผู้ใช้และรหัสผ่าน เปลี่ยนมาใช้แบบ public key แทน ซึ่งแน่นอนย่อมป้องกันการโจมตีแบบการเดาพาสเวิร์ดที่ได้ผล 100% เซอร์วิสที่เราจะทำการป้องกันก็คือ ssh นั่นเอง


การตั้งค่าต้องทำ 2 ขั้นตอนดังนี้ ขั้นตอนแรกให้ทำการ Disable Password Login เป็นการป้องกันการล็อกอินโดย root พูดง่ายๆ คือป้องกันการป้อนชื่อผู้ใช้และรหัสผ่าน ขั้นตอนที่ 2 เป็นการป้อนข้อมูล public key สำหรับใช้การตรวจสอบแบบกุญแจส่วนตัวแทน ให้นำคีย์ป้อนลงในช่อง Authorized Keys จากนั้นกด SAVE และ Apply ตามลำดับ

ผู้เขียนทดสอบโดยการสั่ง putty ไปยังอุปกรณ์โดยป้อนชื่อผู้ใช้เป็น root ผลปรากฎดังรูป อุปกรณ์ WRT54GL ทำการปฏิเสธการล็อกอินโดยใช้ชื่อผู้ใช้และรหัสผ่านธรรมดา


ในตัวอย่างนี้ผู้เขียนเปลี่ยนพอร์ตจากเดิม 22 ไปเป็นพอร์ต 222 ด้วยเพื่อป้องกันการค้นหาพอร์ตหรือสแกนพอร์ตสำหรับแฮกเกอร์ นับว่าได้ผลเป็นที่น่าพอใจมากทีเดียว

ผู้เขียนจะได้ทะยอยอัพเดทเนื้อหาที่น่าสนใจสำหรับการกำหนดค่าให้อุปกรณ์ WRT54GL ไปเรื่อยๆ ยังมีหัวข้อที่น่าสนใจอีกเช่น สั่งปิดสัญญาณไวไฟ หรือตั้งเวลารีสตาร์ทเครื่องทุกๆ วัน รวมไปถึงการสร้าง 1 ต่อ 1 NAT เพื่อเปิดเซอร์วิสต่างๆ สำหรับ Guest Virtual Machine ในระบบด้วย

ต้องขอขอบคุณ บจก.ไทย พรอสเพอรัส ไอที เอื้อเฟื้อพื้นที่บล็อกเกอร์ดีๆ นำเสนอเรื่องราวประสบการณ์ด้านซอฟต์แวร์โอเพนซอร์ส ทำให้ประเทศชาติประหยัดค่าใช้จ่ายในการสั่งซื้อซอฟต์แวร์ลิขสิทธิ์จากต่างประเทศไปได้บางส่วน นอกจากนี้หากต้องการเรียกใช้บริการ เช่ารถตู้ h1 ต้องเลือกใช้บริการที่แวน-วีไอพี ผู้นำด้านการให้บริการรถตู้เช่าขับเอง

วันเสาร์ที่ 15 มีนาคม พ.ศ. 2557

กำหนดค่า Freeradius และ Mysql บน ClearOS 6.4

เกริ่นนำ สวัสดีกันอีกครั้งสำหรับแฟนเพจของ s-techthai.com รวบรวมประสบการณ์ดีๆ เกี่ยวกับการใช้งาน Opensource Server ในนาม ไทย พรอสเพอรัส ไอที มาฝากกันอีกครั้งหนึ่ง หลังจากที่ผู้เขียนเคยเขียนวิธีการใช้งาน SyntaxHighLighter บนบล็อกสปอตมาแล้ว

ครั้งที่แล้วผู้เขียนเคยแนะนำวิธีการกำหนดค่าให้ Freeradius เชื่อมต่อกับ OpenLDAP บน ClearOS 6.4 มาแล้ว ในครั้งนี้จะเป็นการเชื่อมต่อกับ Mysql Server กันบ้าง เพราะเป็นงานที่ใช้บ่อย รวมถึงการติดตั้งซอฟต์แวร์บริหารจัดการบัญชีรายชื่อผู้ใช้งาน daloRadius ที่จะขอแนะนำกันอีกครั้งหนึ่ง

การติดตั้งซอฟต์แวร์ Mysql Server สามารถทำได้ผ่าน GUI หรือสามารถติดตั้งผ่านคอมมานไลน์ตามขั้นตอนต่อไปนี้

 
/usr/sbin/wc-yum -i app-radius 
/usr/sbin/wc-yum -i app-mysql
หากยังไม่ได้ติดตั้งเวบเซิร์ฟเวอร์ให้ทำการติดตั้งให้ด้วยคำสั่งต่อไปนี้
 
/usr/sbin/wc-yum -i app-web-server
ไฟล์สำหรับกำหนดค่าให้กับโปรแกรม freeradius จะอยู่ที่ /etc/raddb ขั้นตอนนี้จะเป็นการแก้ไขคอนฟิกกูเลชั่นไฟล์ของระบบ เราควรที่จะต้องสำรองข้อมูลไว้ก่อนการแก้ไขทุกครั้งจำเป็นต้องฝึกให้เคยชิน
 
modules { 
    $INCLUDE sql.conf
}
 
ดาวโหลด daloradius สำหรับบริหารจัดการบัญชีผู้ใช้ของระบบ ซึ่งสามารถเข้าไปดาวน์โหลดข้อมูลตามลิงค์ที่ผู้เขียนให้ไว้ http://sourceforge.net/projects/daloradius/ จากนั้นแตกไฟล์ไปเก็บที่โฟลเดอร์ /var/www/html และเปลี่ยนสิทธิ์การเข้าถึงโดยกลุ่ม nobody แก้ไขไฟล์ clearos-clients.conf
 
# This file is managed through webconfig.  Please add another clients file
# your custom changes outside of webconfig.
client 127.0.0.1 {
 secret = testing123
 shortname = localhost
}
ขั้นตอนที่สำคัญในการติดตั้งฐานข้อมูล daloradius สามารถทำได้ตามนี้ ต้องสร้างฐานข้อมูลขึ้นมาก่อนตามตัวอย่าง สร้างฐานข้อมูลชื่อ daloradius และกำหนดสิทธิ์ให้กับยูสเซอร์ admin และรหัสผ่าน password
 
mysql> create database daloradius;
Query OK, 1 row affected (0.00 sec)

mysql> grant all privileges on daloradius.* to 'admin'@localhost identified by 'password';
Query OK, 0 rows affected (0.00 sec)
จากนั้นให้ทำการป้อนค่าเทมเพลตลงสู่ฐานข้อมูล ตามวิธีการต่อไปนี้ เป็นการเสร็จสิ้นวิธีป้อนค่าให้กับฐานข้อมูล ขั้นตอนต่อไปจะเป็นการกำหนดค่าให้กับโปรแกรม freeradius ให้สามารถติดต่อกับฐานข้อมูล daloradius ที่เราได้สร้างขึ้นมา
 
mysql -uadmin -p daloradius < fr2-mysql-daloradius-and-freeradius.sql
Enter password:
โดยปกติซอฟต์แวร์ freeradius ไม่สามารถเชื่อมต่อโปรแกรมฐานข้อมูล mysql ได้เราต้องทำการติดตั้งซอฟต์แวร์เพิ่มเติมเพื่อให้ freeradius สามารถเชื่อมต่อกับโปรแกรมฐานข้อมูล mysql ได้
 
yum install freeradius-mysql
ขั้นตอนนี้เป็นขั้นตอนที่สำคัญเพราะจะเป็นวิธีการกำหนดค่าให้โปรแกรม freeradius สามารถติดต่อกับโปรแกรมฐานข้อมูล mysql ได้ ให้ทำการแก้ไขคอนฟิกไฟล์ต่อไปนี้
 
/etc/raddb/sql.conf
 server = "localhost"
 #port = 3306
 login = "admin"
 password = "password"
 # Database table configuration for everything except Oracle
 radius_db = "daloradius"
ต่อไปให้แก้ไขไฟล์ /etc/raddb/sites-available/default ให้เพิ่มในส่วนของ sql ตามหัวข้อต่อไปนี้
authorization {sql}, accounting {sql}, session {sql}
สร้างไฟล์ทดสอบการสร้างบัญชีรายชื่อ test2 รหัสผ่านเป็นการทำ md5sum ของ test2 ป้อนเก็บลงฐานข้อมูลเพื่อทดสอบ
 
INSERT INTO `radcheck` (`id`, `UserName`, `Attribute`, `op`, `Value`) VALUES ('', 'test2', 'User-Password', ':=', '126a8a51b9d1bbd07fddc65819a542c3');
INSERT INTO `usergroup` (`UserName`, `GroupName`, `priority`) VALUES ('test2', 'mhs', 1);
รันคำสั่งทดสอบ radtest ตามด้วยชื่อผู้ใช้ รหัสผ่าน ชื่อเครื่อง พอร์ต และรหัสผ่านไคลเอนท์ ตามตัวอย่างข้างล่าง หากสามารถใช้งานได้ โปรแกรม freeradius จะตอบกลับมาเป็น Access-Accept ตามตัวอย่าง
 
Sending Access-Request of id 121 to 127.0.0.1 port 1812
        User-Name = "test2"
        User-Password = "126a8a51b9d1bbd07fddc65819a542c3"
        NAS-IP-Address = 127.0.0.1
        NAS-Port = 0
        Message-Authenticator = 0x00000000000000000000000000000000
rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=121, length=26
        Session-Timeout = 36000
        Acct-Interim-Interval = 60
        Idle-Timeout = 300
เป็นอันจบขั้นตอนการติดตั้งโปรแกรม freeradius และโปรแกรมฐานข้อมูล mysql นอกจากนี้โปรแกรม freeradius ยังมีความสามารถมากมายโดยเฉพาะการกำหนดค่าให้รองรับการทำงานของโปรโตคอล 802.1x ที่มีความปลอดภัยในการใช้งานที่สูงกว่า pap ตามตัวอย่างที่ได้แนะนำกันไปมาก โปรโตคอล 802.1x เองมีประโยชน์ที่จะนำไปออกแบบระบบ authentication แบบพอร์ตได้ด้วย แน่นอนที่สุดผู้เขียนจะได้แนะนำวิธีการกำหนดค่าระบบ freeradius รองรับโปรโตคอล 802.1x ในลำดับต่อไป

วันจันทร์ที่ 3 มีนาคม พ.ศ. 2557

ติดตั้ง Freeradius บนเครื่อง ClearOS 6.4 และคอนฟิกเชื่อมต่อกับ LDAP บน Zimbra Community 8.04

สวัสดีครับแฟนๆ ชาวs-techthai.com ศูนย์รวมเรื่องราวการรวบรวมประสบการณ์ OpenSource ของเรา Thai Prosperous IT หลังจากที่ผู้เขียนเคยกล่าวถึงเทคนิคการสร้าง เรียนรู้การสร้างจุมล่าร์ 2.5 โมดูลกันดีกว่า เริ่มด้วย HelloWorld บนเครื่องเซิร์ฟเวอร์ ที่ให้บริการ เช่ารถตู้ vip ของผู้เขียนมาแล้ว ผู้เขียนตั้งใจว่าจะแนะนำวิธีการเขียนโมดูลจุมล่าร์ พวก PAYSBUY สำหรับใช้รับชำระเงินออนไลน์ มาฝากกันตอนนี้อยู่ในช่วงทดสอบและรวบรวมข้อมูล สำหรับการติดตั้ง Freeradius บนเครื่อง ClearOS 6.4 และคอนฟิกเชื่อมต่อกับ LDAP บน Zimbra Community 8.04 ผู้เขียนได้ทดลองและทดสอบบนเครื่องเซิร์ฟเวอร์ก่อนนำไปใช้งานจริง เพื่อเตรียมพร้อมสำหรับส่งงานในงวดงานถัดไป การคอนฟิกนั้นทำได้ไม่ยาก เราไปดูกันเลยครับ

ขั้นตอนที่ 1 ติดตั้งซอฟต์แวร์ FreeRadius
 
/usr/bin/sudo /user/sbin/wc-yum -i app-radius
/usr/bin/python -u /usr/sbin/wc-yum -i app-radius

clearos-clients.conf
client 127.0.0.1 {
secret = testing123
shortname = localhost
}

ขั้นตอนที่ 2 กำหนดค่า LDAP เพื่อให้สามารถเชื่อมต่อกับ Zimbra Community 8.04
 

server = "192.168.200.236"
#identity = "cn=admin,o=My Org,c=UA"
identity = “uid=zimbra,cn=admins,cn=zimbra”
#password = mypass
password = xxxxxxxx
#basedn = "o=My Org,c=UA"
basedn = "ou=people,dc=tpit,dc=co,dc=th"
filter = "(uid=%{%{Stripped-User-Name}:-%{User-Name}})"

ขั้นตอนที่ 3 การดูค่ารหัสผ่านบน LDAP ของ Zimbra Community 8.04
 

su zimbra
zmlocalconfig -s | grep zimbra_ldap_password
zimbra_ldap_password=xxxxxxxx

จากนั้นนำค่า zimbra_ldap_password ไปใส่แทน xxxxxxx บน password ข้างบน ขั้นตอนที่ 4 ต้องแก้ไขไฟล์ default คอนฟิกของ LDAP ในส่วนของ authorize {ldap},authenticate{ Auth-Type LDAP { ldap} } และให้แก้คอมเมนต์ของไฟล์ clearos-user
 
From:
DEFAULT LDAP-Group != "allusers", Auth-Type := Reject

To:
#DEFAULT LDAP-Group != "allusers", Auth-Type := Reject

เป็นอันสิ้นสุดวิธีการติดตั้ง Freeradius ซึ่งสามารถทำได้ไม่ยาก และผู้เขียนหวังว่ามันจะเป็นข้อมูลที่เป็นประโยชน์ในการนำไปประยุกต์ใช้งานได้ในอนาคต นอกจากนี้ผู้เขียนยังมีในส่วนของการนำ Freeradius เชื่อมต่อกับ mysql server มานำเสนอกันในครั้งต่อๆ ไปอีกด้วย

วันศุกร์ที่ 28 กุมภาพันธ์ พ.ศ. 2557

รัน Multiple instances สำหรับ Coova-Chilli 1.3.0

สวัสดีกันอีกครั้งสำหรับบล็อกประสบการณ์ดีๆ ของการใช้งาน OpenSource เซิร์ฟเวอร์ หลังจากที่ผู้เขียนได้วุ่นวายกับการแก้ไข PAGE ERROR 404 บนBlogSpot ตามลิงค์ที่แปะไว้ให้แล้ว http://www.thaiseoservices.com/2014/02/page-error-404-blogspot.html แต่วันนี้รายงาน PAGE ERROR 404 ยังมีมาอีกถึงหลายร้อยหน้า คงต้องใช้เวลาแก้กันใหม่อีกรอบหนึ่ง ส่วนวิธีการจะได้รวบรวมเป็นเอกสารกันไว้ให้ศึกษากันอีกครั้งหนึ่ง

มาวันนี้ผู้เขียนจะพาวกกลับมาที่วิธีการ "รัน Multiple instances สำหรับ Coova-Chilli 1.3.0" กัน ทำไมต้องรันโปรแกรม Coova-Chilli หลายๆ instances โดยปกติ ในหนึ่ง instance จะรันโปรแกรม Coova-Chilli เพียงแค่เน็ตเวิร์คเดียว กรณีที่เราจะทดสอบนี้มีการสร้างเน็ตเวิร์คถึง 3 เน็ตเวิร์ค หรือ 3 Vlans ดังนั้นเราจึงมีความจำเป็นต้องรัน Coova-Chilli 3 ครั้งด้วย

 
VLAN 11 --/usr/local/etc/chilli/eth1.11
             --/usr/local/etc/chilli/eth1.11/chilli.conf
             --/usr/local/etc/chilli/eth1.11/main.conf
             --/usr/local/etc/chilli/eth1.11/local.conf
             --/usr/local/etc/chilli/eth1.11/hs.conf

VLAN 12  --/usr/local/etc/chilli/eth1.12
              --/usr/local/etc/chilli/eth1.12/chilli.conf
              --/usr/local/etc/chilli/eth1.12/main.conf
              --/usr/local/etc/chilli/eth1.12/local.conf
              --/usr/local/etc/chilli/eth1.12/hs.conf

VLAN 13  --/usr/local/etc/chilli/eth1.13
              --/usr/local/etc/chilli/eth1.13/chilli.conf
              --/usr/local/etc/chilli/eth1.13/main.conf
              --/usr/local/etc/chilli/eth1.13/local.conf
              --/usr/local/etc/chilli/eth1.13/hs.conf

ตัวอย่างไฟล์คอนฟิกของ VLAN 11
# cat /usr/local/etc/chilli/eth1.11/chilli.conf
include /usr/local/etc/chilli/eth1.11/main.conf
include /usr/local/etc/chilli/eth1.11/hs.conf
include /usr/local/etc/chilli/eth1.11/local.conf
ipup=/usr/local/etc/chilli/up.sh
ipdown=/usr/local/etc/chilli/down.sh

# cat /usr/local/etc/chilli/eth1.11/main.conf
cmdsocket       /usr/local/var/run/chilli.eth1.11.sock
unixipc         chilli.eth1.11.ipc
pidfile         /usr/local/var/run/chilli.eth1.11.pid
net             192.168.11.0/255.255.255.0
uamlisten       192.168.11.254
uamport         3110
dhcpif          eth1.11
uamallowed      "192.168.11.0/24,192.168.1.0/24"
domain "lan110"
dns1 "192.168.11.254"
dns2 "192.168.11.254"
uamhomepage http://192.168.11.254:3120/prelogin
wwwdir /usr/local/etc/chilli/www
wwwbin /usr/local/etc/chilli/wwwsh
uamuiport 4110
locationname "PG vlan 110"
radiuslocationname "PG_vlan_110"
radiuslocationid "isocc=,cc=,ac=,network=Coova,"

# cat /usr/local/etc/chilli/eth1.11/hs.conf
radiusserver1   "127.0.0.1"
radiusserver2   "127.0.0.1"
radiussecret    "testing123"
radiusauthport  1812
radiusacctport  1813
uamserver       "https://192.168.11.254/cgi-bin/hotspotlogin.cgi"
radiusnasid     "nas120"
papalwaysok
uamaliasname "pg2 vlan110"

ส่วนสคริปที่ใช้ทำการเริ่มการทำงานก็เป็น /usr/local/etc/init.d/chilli โดยให้คอมเมนท์สองบรรทัดนี้ เพราะเราไม่ต้องการให้เครื่องมือของ Coova-Chilli สร้างคอนฟิกใหม่ทุกครั้งที่เริ่มการทำงาน 
#writeconfig
#radiusconfig
ผู้เขียนทดลองสตาร์ทเซอร์วิส ปรากฏว่า VLAN 11 ทำงานได้สมบูรณ์ แต่ VLAN 12 และ VLAN 13 ไม่ทำงาน ผู้เขียนเลยเพิ่มคำสั่ง sleep 10 เข้าไปที่ก่อนบรรทัดสุดท้ายของ start รูทีนก็สามารถสตาร์ทเซอร์วิสได้ครบทุก VLANs

วันพุธที่ 26 กุมภาพันธ์ พ.ศ. 2557

วางแผนการดำเนินการระบบเครือข่าย ClearOS 6.4 + Coova-Chilli 1.3.0 + vlan + dd-wrt

สวัสดียามบ่ายแก่ๆ ของวันพุธที่ 26 กุมภาพันธ์ พ.ศ.2557 กันอีกครั้งหลังจากที่ผู้เขียนทดสอบการเซ็ทอัพระบบ ClearOS 6.4 + Coova-Chilli 1.3.0 และ WRT54GL เพื่อแบ่ง VLANs ได้สำเร็จ ตามความต้องการตามภาพรวมข้างล่าง ก็ถึงเวลาที่จะได้รวบรวมเอกสารที่ได้ปฏิบัติงาน เพื่อให้เป็นประโยชน์กับหลายๆ ท่านที่สนใจ นำไปต่อยอดพัฒนากันได้ต่อไปในภายภาคหน้า

ผู้เขียนเคยเขียนบทความดำเนินการ Joomla 2.5 free seo tool สไตล์ประหยัดงบประมาณ ตามลิงค์ที่ให้ไว้บนตัวเครื่อง ClearOS 6.4 เมื่อหลายวันก่อนไปแล้ว แต่เพื่อเป็นการเพิ่มฟังก์ชั่นการทำงานของตัว Internet Gateway กันอย่างเต็มที่จึงได้เริ่มนำการทดสอบตามแผนผังด้านหลังมาแนะนำกัน

มองภาพรวมของการทำงานหรือว่า network scenario ตามรูปด้านล่าง
ต้องการสร้างระบบ Internet Gateway โดยใช้ ClearOS 6.4 รันโปรแกรม Coova-Chilli เพื่อทำหน้าที่เป็น Captive Portal มีเครื่องลูกข่ายแบ่งเป็น 2 VLANs คือ VLAN 12 และ VLAN 13 อาศัยอุปกรณ์ Linksys WRT54GL ลงซอฟต์แวร์ DD-WRT เป็นตัวจัดการ VLANs และ Trunk
 
         Internet |       ClearOS 6.4        | DD-WRT       | VLAN 12
                     |   Coova-Chilli-1.3.0    | WRT54GL     | VLAN 13
 
ตัวซอฟต์แวร์  DD-WRT บนอุปกรณ์ Linksys WRT54GL จะถูกใช้งานทั้งหมด 3 Ports คือ PORT 4 เป็น Trunk, PORT 3 ใช้งาน VLAN 13 และ PORT 2 ใช้งาน VLAN 12

 
        DD-WRT |4--------- PORT Trunk
                     |3----------VLAN 13
                     |2----------VLAN 12

ตัวเครื่องเซิร์ฟเวอร์ที่รัน Coova-Chilli จะสร้างขึ้นมา 2 instances เพื่อรองรับ VLAN 12 ใช้อินเทอร์เฟส eth1.12 ส่วนอินสแตนที่สองใช้อินเทอร์เฟส eth1.13 ตัวอุปกรณ์ Coova-Chilli ไม่ต้องจ่ายไอพีแอดเดรสอัตโนมัติ(disable internal dhcp server)

โดยขั้นตอนการทำงานสามารถดูเอกสารประกอบการทำได้ดังนี้

1.

2.
3.

4.
 


วันอังคารที่ 25 กุมภาพันธ์ พ.ศ. 2557

สร้าง VLAN และ TRUNK บน DD-WRT ในอุปกรณ์ Linksys WRT54GL

สวัสดีกันอีกครั้งสำหรับเวบบล็อกดีๆ s-techthai.com เพื่อแลกเปลี่ยนประสบการณ์ดีๆ กับการใช้งานซอฟต์แวร์ Opensource หลังจากที่ผู้เขียนได้ทดลองสร้าง VLAN บนลินุกส์ ClearOS 6.4 ไปเมื่อครั้งที่แล้ว มาครั้งนี้จะเป็นการทดสอบว่า vlan ที่เราสร้างขึ้นจะสามารถเชื่อมต่อกับวงอื่นๆ ในระบบเครือข่ายคอมพิวเตอร์ของเราได้หรือไม่

ก่อนที่ผู้เขียนจะเริ่มคล่องกับการใช้งาน blogspot ผู้เขียนได้ทำการแก้ไข 404 page error ให้ทำการรีไดเรคไปยังหน้าหลัก ตามลิงค์ที่ผู้เขียนแปะไว้ให้ http://www.thaiseoservices.com/2014/02/page-error-404-blogspot.html ทำให้เริ่มคุ้นเคยกับการใช้งานเวบบล็อก แน่นอนที่สุดสามารถอัพเดทข้อมูลได้สะดวกและรวดเร็วนั่นเอง

 ความสำคัญในเนื้อหานี้ คงหนีไม่พ้นอุปกรณ์ที่ทำหน้าที่เป็น VLAN Switching มันคงไม่เป็นการยากหากผู้เขียนสามารถไปหยิบยืมหรือมีอุปกรณ์ L2 switching ที่รองรับพอร์ท Trunk อีกทั้งงานนี้ก็อยู่ในขั้นการทดลอง การจะลงทุนซื้อหาอุปกรณ์ L2 switching ราคาห้าพันกว่าบาทคงมากเกินความจำเป็น พอดีไปเหลือบเห็นเจ้านี่ Linksys WRT54GL ที่ลงโอเอส dd-wrt เรียบร้อยแล้ว พร้อมคู่มือกำหนดค่าให้กับ VLAN ตามลิงค์ที่แปะให้นี้   http://www.dd-wrt.com/wiki/index.php/Switched_Ports

หน้าตาของระบบทดสอบก็จะทำการคอนฟิกอุปกรณ์ dd-wrt ตามแบนด้านล่างนี้
PORT 2[2] -> VLAN 12
PORT 3[1] -> VLAN 13
PORT 4[0] -> TRUNK PORT
ก่อนอื่นเรามาทำความเข้าใจเกี่ยวกับพอร์ต Trunk กันก่อน พอร์ต Trunk คือพอร์ตที่สามารถเพิ่ม Tag โปรโตคอล 802.1q ได้ในแพ็จเกจเลเยอร์ 2 เพื่อเชื่อมต่อระหว่างอุปกรณ์ตั้งแต่ 2 ตัวขึ้นไปให้สามารถใช้งาน VLAN ข้ามอุปกรณ์กันได้ หากอุปกรณ์ใดไม่มีพอร์ต Trunk การเชื่อมต่อกับอุปกรณ์ตัวอื่นๆ ก็ต้องลากสายไปพ่วงแทน ยกตัวอย่าง หากเราสร้าง 10 VLANs ก็ต้องลากสายแลน 10 เส้น แต่หากเรามี Trunk ก็ใช้สายแลนเพียงแค่เส้นเดียวเพื่อบรรจุข้อมูลหรือ Tag ของทั้ง 10 VLAN ได้

มาดู VLAN มาตรฐานของอุปกรณ์ dd-wrt กัน จะมีอยู่แค่ 2 VLANs คือ VLAN 0 และ VLAN1 VLAN 0 ใช้เชื่อมต่อกับพอร์ต LAN ส่วน VLAN1 ใช้เชื่อมต่อกับพอร์ต WAN

root@DD-WRT:~# nvram show | grep vlan.*ports
vlan0ports=3 2 1 0 5*
vlan1ports=4 5
โดยที่  0 = PORT 4 , 1 = PORT 3, 2 = PORT 2, 3 = PORT 1, 4 = WAN, 5 = CPU internal and 5* = CPU internal default
จากตัวอย่างการคอนฟิก ต้องการให้ VLAN 12 อยู่บน PORT 2 ของอุปกรณ์ WRT54GL และ VLAN 13 อยู่บน PORT 3 ส่วน PORT TRUNK ให้ใช้ PORT 4 การกำหนดค่าทำได้ดังนี้

root@DD-WRT:~# nvram set vlan0ports=”3 0t 5*”
root@DD-WRT:~# nvram set vlan12ports=”2 0t 5”
root@DD-WRT:~# nvram set vlan13ports=”1 0t 5”
root@DD-WRT:~# nvram show | grep vlan.*.ports
vlan12ports=2 0t 5
vlan0ports=3 0t 5*
vlan13ports=1 0t 5
vlan1ports=4 5
root@DD-WRT:~# nvram set vlan0hwname=eth0
root@DD-WRT:~# nvram set vlan12hwname=eth0
root@DD-WRT:~# nvram set vlan13hwname=eth0
root@DD-WRT:~# nvram commit
root@DD-WRT:~# reboot

หลังจากรีสตาร์ทเครื่องก็จะสามารถใช้งาน VLAN ตามที่เราต้องการได้ ผู้เขียนทดสอบโดยการต่อสายแลนจาก PORT 4 ไปยังอุปกรณ์คอมพิวเตอร์ Linux ClearOS 6.4  ตั้งค่า VLAN 12 ไอพีแอดเดรส 192.168.12.1/24 และ VLAN 13  192.168.13.1/24 จากนั้นหาโน๊ตบุ๊คมาเชื่อมต่อที่ PORT 2 ตั้งค่าการ์ดแลนที่โน๊ตบุ๊คเป็น 192.168.12.99/24 ทดสอบการ ping ไปยังเซิร์ฟเวอร์สามารถทำงานได้ ตรงตามความต้องการ เนื้อหาการทดสอบแบบละเอียดผู้เขียนจะขอติดไว้ก่อน เพื่อมาอัพเดทให้ทราบกันอีกที หรืออาจจะนำรวมมาพร้อมกันกับระบบ Coova-Chilli รองรับ VLAN ไปพร้อมกันทีเดียว

วันจันทร์ที่ 24 กุมภาพันธ์ พ.ศ. 2557

ClearOS 6.4 สร้าง vlan โดยใช้คอมมานไลน์

สวัสดีอีกครั้งครับสำหรับ บล็อกดีๆ s-techthai.com รวบรวมประสบการณ์ดีๆ ของการใช้งานระบบปฏิบัติการลินุกส์ เซิร์ฟเวอร์ เรื่องราวของผู้เขียนจริงๆ แล้วน่าจะใช้คำว่า series กันดีกว่าเพราะผู้เขียนอยู่ในระหว่างการเตรียมขึ้นระบบใหม่ให้กับทางลูกค้าราชการ ผู้เขียนเคยแนะนำวิธีการแก้ปัญหาเครื่องดับ ClearOS 6.4 ไฟดับ mysql server ไม่ทำงานมาครั้งนึงแล้วเมื่อไม่นานมานี้ แต่ครั้งนันเป็นลูกค้าบริษัทฯ http://www.credit-thai.com/2014/01/clearos-64-mysql-server.html

วันนี้ผู้เขียนจะสร้าง "ClearOS 6.4 สร้าง vlan โดยใช้คอมมานไลน์"


/etc/sysconfig/network-scripts

[root@system network-scripts]# cat ifcfg-eth1.11
DEVICE=eth1.11
TYPE="VLAN"
ONBOOT="yes"
USERCTL="no"
BOOTPROTO="static"
IPADDR="192.168.11.1"
NETMASK="255.255.255.0"
VLAN="yes"


[root@system network-scripts]# cat ifcfg-eth1.12
DEVICE=eth1.12
TYPE="VLAN"
ONBOOT="yes"
USERCTL="no"
BOOTPROTO="static"
IPADDR="192.168.12.1"
NETMASK="255.255.255.0"
VLAN="yes"


สั่งเริ่มต้นการทำงานของอินเทอร์เฟซโดยใช้คำสั่งต่อไปนี้

# ifup eth1.11
# ifup eth1.12 
# ifconfig
eth1      Link encap:Ethernet  HWaddr 00:13:F7:CB:9B:5C
          UP BROADCAST RUNNING PROMISC MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:34 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 b)  TX bytes:2040 (1.9 KiB)
          Interrupt:20 Base address:0xec00

eth1.11   Link encap:Ethernet  HWaddr 00:13:F7:CB:9B:5C
          inet addr:192.168.11.1  Bcast:192.168.11.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 b)  TX bytes:368 (368.0 b)

eth1.12   Link encap:Ethernet  HWaddr 00:13:F7:CB:9B:5C
          inet addr:192.168.12.1  Bcast:192.168.12.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 b)  TX bytes:368 (368.0 b)

หรือสั่งยกเลิกการใช้งานอินเทอร์เฟซโดยใช้คำสั่งต่อไปนี้
# ifdown eth1.11
# ifdown eth1.12
# ifconfig
eth1      Link encap:Ethernet  HWaddr 00:13:F7:CB:9B:5C
          UP BROADCAST RUNNING PROMISC MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:34 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 b)  TX bytes:2040 (1.9 KiB)
          Interrupt:20 Base address:0xec00


ตามตัวอย่างผู้เขียนสร้าง VLAN 11 และ VLAN 12 ขึ้นมาโดยตั้งค่า ip address สำหรับ VLAN 11 เป็น 192.168.11.1/255.255.255.0 ส่วน VLAN 12 เป็น 192.168.12.1/255.255.255.0 

Coova-Chilli 1.3.0 แบบเลเยอร์ 3 แก้ปัญหาการจ่าย dhcp ของ authentication

ยินดีต้อนรับสู่ stechthai.blogspot.com นำเสนอเรื่องราวดีๆ ของการใช้งานหรือประสบการณ์ Opensource หรือระบบปฏิบัติการ Linux โดยบริษัท ไทย พรอสเพอรัส ไอที จำกัด ทางบริษัทฯ เองได้มีโอกาสร่วมงานกับหน่วยงานภาครัฐในการนำระบบซอฟต์แวร์โอเพ่นซอร์สหลายๆตัว เช่น Zimbra Community 8.0.4 และ ClearOS 6.4 เป็นต้น

วันนี้ผู้เขียนจะขอแนะนำงานหนึ่งที่ทางลูกค้าต้องการให้ระบบพิสูจน์ตัวตน(Coova)ทำงานโดยไม่ต้องจ่าย dhcp ไปซ้ำซ้อนกับระบบเดิม พูดง่ายๆ ต้องการใช้งานกับ external dhcp นั่นเองเพื่อให้สะดวกต่อการบริหารจัดการ เพื่อไม่ให้เป็นการเสียเวลาเราไปลองดูกันเลยครับ

[root@system ~]# cat /etc/issue
ClearOS Community release 6.4.0 (Final)




ผู้เขียนใช้ระบบปฏิบัติการ ClearOS Community Release 6.4.0 (Final) ส่วน package ที่ต้องการติดตั้งคือ coova-chilli-1.3.0 สามารถเข้าไปดาวน์โหลดได้ที่เวบไซต์ coova.org หลังจากนั้นให้แตกไฟล์ออกเพราะเราต้องทำการคอมไพล์ใหม่ ให้รองรับ layer3


#svn checkout http://dev.coova.org/svn/coova-chilli/
#cd coova-chilli/
#sh bootstrap


# make clean
# ./configure --disable-static --enable-shared --enable-largelimits --enabl
e-miniportal  --enable-chilliredir --enable-chilliproxy --enable-chilliscript --
with-poll --without-openssl  --disable-chilliradsec --enable-libjson --enable-la
yer3
--enable-ieee8023 --enable-l2tpppp  --enable-eapol --enable-ieee8021q --ena
ble-multiroute --enable-multilan --enable-uamanyip  --enable-uamuiport

# make
# make install

# yum --enablerepo=clearos-core,clearos-developer,clearos-epel install gengetopt

สำหรับการคอมไพล์ด้านบนหากเกิดข้อผิดพลาดจากการหาคำสั่ง gengetopt ไม่พบให้ติดตั้งเพิ่มเติมตามคำสั่งด้านบน ผู้เขียนพบว่าหากติดตั้งจากซอร์สโค๊ดแล้วแก้ไข Makefile ตามตัวอย่างข้างล่างซอฟต์แวร์ทำงานได้ไม่สมบูรณ์ ให้คอมไพล์จาก svn ตามวิธีข้างบนดีกว่า หากจะใช้วิธีด้านล่าง ต้องเข้าไปแก้ไขใน Makefile ให้ลบข้อความที่มี  "--Werror" ซึ่งผู้เขียนไม่แนะนำ

# vi src/Makefile
# make
# make install


หลังจากทำการคอมไพล์และติดตั้ง coova-chilli-1.3.0 เรียบร้อยแล้วไฟล์ติดตั้งหลักจะอยู่ที่โฟลเดอร์ /usr/local/ect/chilli

ผู้เขียนจะกล่าวถึงวิธีการ disable dhcp ใน coova-chilli-1.3.0 ก็คือไปแก้ไขค่าคอนฟิกให้เพิ่ม layer3 เพื่อให้ coova-chilli ยกเลิกการตรวจสอบ MAC Address เปลี่ยนมาใช้ IP Address แทน เพิ่มคำสั่ง nodynip เพื่อให้ coova-chilli ไม่ต้องจ่ายไอพีแอดเดรสกับเครื่องลูกข่าย ในไฟล์ local.conf สำหรับตัวอย่างผู้เขียนเพิ่ม ieee8021q เพื่อให้รองรับการทำ vlan tag หรือ trunk สำหรับการเชื่อมต่อหลายๆ อินเทอร์เฟซนั่นเอง

[root@system chilli]# cat local.conf
ieee8021q

layer3
nodynip



เพียงแค่นี้ coova-chilli ของเราก็จะไม่ต้องจ่าย dhcp ไปกวนกับระบบเดิมที่มีอยู่ เพื่อให้ผู้ดูแลระบบส่วนของ dhcp เซิร์ฟเวอร์ไม่ต้องมาคอยค่อนขอด coova-chilli ของเราอีกต่อไป