fraud detection system of employees within the … ระบบ...daily rent ส ทธ พจน...
TRANSCRIPT
ระบบตรวจสอบการทจรตของพนกงานภายในธรกจหองเชารายวน
Fraud detection system of employees
within the business daily rent
สทธพจน อดรพมพ
สารนพนธนเปนสวนหนงของการศกษา
หลกสตรวทยาศาสตรมหาบณฑต สาขาวชาวศวกรรมเครอขาย
คณะวทยาการและเทคโนโลยสารสนเทศ
มหาวทยาลยเทคโนโลยมหานคร
ปการศกษา 2555
I
หวขอโครงงาน ระบบตรวจสอบการทจรตของพนกงานภายในธรกจ
หองเชารายวน
นกศกษา นายสทธพจน อดรพมพ
รหสนกศกษา 5417660010
ปรญญา วทยาศาสตรมหาบณฑต
สาขาวชา วศวกรรมเครอขาย
พ.ศ. 2555
อาจารยผควบคมโครงงาน ดร.วรพล ลลาเกยรตสกล
บทคดยอ
สารนพนธฉบบน เปนการเสนอระบบตรวจสอบการทจรตของพนกงานภายในธรกจ
หองเชารายวน โดยนาอปกรณอเลกโทรนค ทใชวดแรงดนไฟฟามาประยกตใชรวมกบเวบ
แอพพลเคชน (Web Application) การตรวจสอบจะทาการเฝาตดตามการใชงานของหองพก
โดยจะสงชดคาสงสอบถามขอมล (get-request) ไปยงอปกรณอเลกโทรนค แลวรอรบขอมล ณ
ขณะนนวามการใชไฟฟาในหองพกอยหรอไม จากนนจะนาขอมลมาตรวจสอบตามเงอนไข
กอนทจะสรปวาหองพกดงกลาวมระยะเวลาการเปดใชมานานเทาใดแลว และนาระยะเวลาทได
ดงกลาวมาคานวณกบหลกเกณฑการคดคาบรการของหองเชา
ผลทไดจากการดาเนนโครงงานทาใหมเครองมอในการเฝาตดตามการใชงานหองพก
แบบ Real Time ชวยใหผดแลสามารถทราบและรบรไดตลอดเวลา เมอมผมาใชบรการ รวมถง
ทราบวารายไดทจะไดรบตอวนแทจรงมปรมาณเทาใด ผานทาง Internet หากรายไดไมเปนไป
ตามทควรจะไดรบ (เทยบจากการเปดใชหอง) จะไดหาทางคด และจดการแกไขปญหาตนเหต
ไดทนทวงท เพอลดความเสยหายทอาจเกดกบธรกจ
II
Project Title Fraud detection system of employees within the business
daily rent
Student Sudtipoj Udonpim
StudentID. 5417660010
Degree Master of Science
Programme Network Engineer
Year 2010
Project Advisor Dr.Woraphon lilakiatsakun
Abstract
The purpose of this research is to present the internal employee fraud detection
system in a day rented accommodation business by applying an electronic voltage
detector with Web Application. This system monitors frequent usage or access in an
accommodation by transferring and receiving the data via the detector system to
analyze whether electricity is in use or not. The data will be brought to calculate and
compare the period of accommodation has been occupied at that time with involves the
rental cost measurement.
The result of this research provided the new detection system for monitoring
guests access in real time including acknowledge the right amount of revenue via
Internet in current time. If the income revenue has been discovered the slightly error,
workers can find out the resolution and solve the problem immediately in order to
reduce business risks.
III
กตตกรรมประกาศ
การดาเนนโครงงานระบบตรวจสอบการทจรตของพนกงานภายในธรกจหองเชารายวน
ฉบบน ไดสาเรจลลวงดวยด เนองจากไดรบความอนเคราะหและความชวยเหลอจากหลายทาน
กระผมจงใครขอขอบคณในความชวยเหลอ ดงน
ขอขอบพระคณ อาจารย ดร.วรพล ลลาเกยรตสกล ซงใหเกยรตเปนอาจารยทปรกษา
โครงงาน และใหคาปรกษา คาแนะนาทเปนประโยชนตอโครงงานแกกระผม อกทงยงชวย
ตรวจสอบความถกตองของสารนพนธ จนกระทงโครงงานนสาเรจไปไดดวยด
ขอขอบคณ เพอน รนพ ทกๆ คนทคอยใหความชวยเหลอ มอบคาแนะนาเกรดความรท
เปนประโยชน ทงยงคอยใหกาลงใจเสมอ ทาใหโครงงานนสาเรจไปไดดวยดและขอขอบพระคณ
คณพอ และคณแม ทคอยดแลเอาใจใสตลอดมา
สดทายน คณคาและประโยชนอนพงมจากสารนพนธฉบบนขอมอบแด บดามารดา คร
อาจารย ผถายทอดวชาความรในทกดาน รวมถงเจาของแนวคดและทฤษฎตางๆ ทนามาใชใน
การอางองในโครงงานน ชวยใหโครงงานสาเรจลลวงผานไปดวยด
สทธพจน อดรพมพ
IV
สารบญ
หนา
บทคดยอ I
กตตกรรมประกาศ III
สารบญ IV
สารบญรป VI
บทท 1 บทนา 1
1.1 ปญหาและแรงจงใจ 1
1.2 วตถประสงค 2
1.3 ขอบเขตของระบบ 2
1.4 ประโยชนทคาดวาจะไดรบ 2
1.5 โครงสรางโครงงาน 3
บทท 2 พนฐานและทฤษฎทเกยวของ 4
2.1 LAMBDA NU NetDAQ ND-100 4
2.2 โพรโทคอล HTTP 8
2.3 Linux CentOs 5 10
2.4 Perl 10
2.5 MySQL 11
2.6 PHP 11
2.7 Apache 11
2.8 Squirrel Mail 12
2.9 Sandmail 12
2.10 SSL (Secure Socket Layer) 12
2.11 Radius Server 15
บทท 3 การออกแบบระบบ 16
3.1 การทางานของระบบ 17
3.2 ระบบการ Login 19
3.3 การบรหารจดการภายใน 22
V
สารบญ (ตอ)
หนา
บทท 4 การทดลองและสรปผลการทดลอง 23
4.1 ตงคาและทดสอบการทางานของ broad ND-100 24
4.2 การทดลองระบบยนยนตวตนของการเขาเวบเพจ 28
บทท 5 สรปผลการทดลอง 36
ภาคผนวก ก Source Code ทใชในการเชอมตอกบอปกรณไมโครคอนโทรลเลอร 37
ภาคผนวก ข Source Code ทใชในการสง E-mail หาทก Users ในระบบ 46
ภาคผนวก ค วธการตดโปรแกรม Freeradius 48
ภาคผนวก ง การตดตง SSL (Secure Socket Layer) เพอรกษาความปลอดภยของขอมล
54
เอกสารอางอง 57
VI
สารบญรป
หนา
รปท 2.1 บอรด NetDAQ ND-100 4
รปท 2.2 แผนผงวงจรของบอรด NetDAQ ND-100 5
รปท 2.3 บลอกไดอะแกรมการเชอมตอ ENC28J60 กบ ไมโครคอนโทรลเลอร 7
รปท 2.4 TYPICAL ENC28J60-BASED INTERFACE 7
รปท 2.5 โครงสรางภายในของ ENC28J60 7
รปท 2.6 โคด Getweb.pl 8
รปท 2.7 ขอความทตอบกลบจาก Web Server (ND-100) 9
รปท 2.8 ขนตอนการทางานของ SSL Handshake 14
รปท 3.1 การออกแบบ Diagram การทางานของระบบ 16
รปท 3.2 กระบวนการทางานของระบบ 17
รปท 3.3 แผนผงการรบ – สงขอมล 18
รปท 3.4 แผนผงการแสดงผลบนจอคอมพวเตอร 20
รปท 4.1 บอรดทตดตงลงกลองแลว 23
รปท 4.2 แสดงการตดตงกลองทบรรจบอรด ND-100 แลว 24
รปท 4.3 แสดงการทางานปกตของ บอรด ND-100 เพอใชวดแรงดนไฟฟา 24
รปท 4.4 แสดงการทางานในโหมด config 25
รปท 4.5 แสดงการ setup Ip address เพอใชตดตอกบ board ND-100 25
รปท 4.6 แสดงการตงคา Password เมอกด Change Password 26
รปท 4.7 เมอกด Setting บอรดจะใหกาหนด คา Port ทจะใชตดตอ 26
รปท 4.8 เมอกด Calibrate Voltage เพอตงคาเรมตนของ แรงดนไฟ 27
รปท 4.9 แสดงถงการทางานของบอรด ND-100 ในสถานะมการจายไฟเขาท Channel 4 27
รปท 4.10 แสดงการเปลยน http เปน https 28
รปท 4.11 หนาจอแสดงการ Login เมอเขาใชโดยไปท 192.168.1.42/bestinn 29
รปท 4.12 แสดงหนาจอเรมตนในการเขาระบบ จะแสดงสถานะ การใชหองในปจจบน 29
รปท 4.13 แสดงหนาจอเมอผใชงานเขาไปคนหาตามชวงระยะเวลา 30
รปท 4.14 หนาจอแสดงผลการคนหา เมอผใชงานเขาไปคนหาตามชวงระยะเวลา 30
รปท 4.15 หนาจอแสดงผล สถตการเปดใชแตละหอง 31
รปท 4.16 แสดงผลใหผใชเลอกชวงเวลาทจะออกรายงาน และเมอกดปม ออกรายงาน 32
VII
สารบญรป (ตอ)
หนา
รปท 4.17 เมอเปดดวย Microsoft Word 32
รปท 4.18 คาสงทใชเขยนในการสง Mail 33
รปท 4.19 แสดงหนาตางในการเขาเชค Mail 33
รปท 4.20 แสดงหนาตางความปลอดภย 34
รปท 4.21 แสดงหนาตางการลงทะเบยน 34
รปท 4.22 แสดงผลของ Mail ทสงมา 35
รปท 4.23 แสดง Log เมอมยสเซอรเขาใชงานระบบ 35
รปท ข.1 Source Code ทใชในการสง E-mail หาทก Users ในระบบ 47
รปท ค.1 รปแสดงผลการนาเขากลมผใชงานลงสฐานขอมล 50
รปท ค.2 รปแสดงผลการนาเขา User name และ Password แบบ MD5 ลงสฐานขอมล 50
รปท ค.3 รปแสดงผลการแจงลกษณะการ Authentication ในการเขาใชงาน 51
รปท ค.4 รปแสดงผลการกาหนดระยะเวลาใชงานของ User ในระบบ 51
รปท ค.5 รปแสดงผลการแจงลกษณะการเขาใชงานของ User 51
รปท ค.6 รป log แสดงผลการเขาใชงานของ User 53
รปท ง.1 แสดงการสรางการตดตง SSL (Secure Socket Layer) 55
รปท ง.2 การทาให Apache สามารถ Redirect ไปท https โดยอตโนมต 56
รปท ง.3 แสดงผลเมอเขาเวบโดยใช http จะเปลยนเปน https อตโนมต 56
1
บทท 1
บทนา
โลกในยคปจจบนเทคโนโลยสารสนเทศ เขามามบทบาทสาคญเปนอยางมากตอทกๆ
ภาคสวน ทงภาคธรกจ ภาคอตสาหกรรม และหนวยงานราชการ การใชงานระบบสารสนเทศ
และการสอสารเรมมบทบาทสาคญมากขนเรอยๆ ตามลาดบ จนเปนปจจยหลก โดยเฉพาะระบบ
เครอขายอนเตอรเนต ซงเปนระบบขนาดใหญทมผใชงานอยเปนจานวนมากและอยทวทกมม
โลก Internet ไดเขามามสวนชวยทาใหการตดตอสอสารสามารถทาไดงาย ประหยดเวลา ลด
คาใชจาย จงเปนเทคโนโลยททกองคกรนามาใชงาน ไมวาจะเปนการประสานงาน การ
ประชาสมพนธ การตดตอสอสารระหวางหนวยงาน เปนตน ดวยเหตน Internet จงกลายเปน
ปจจยหลกในการดาเนนงานซงจะขาดไมไดเลย
1.1 ปญหาและแรงจงใจ
ปจจบนธรกจประเภทรสอรท ทมลกษณะเปนบานพกชวคราว / คางคน เปนธรกจททา
รายไดใหกบผประกอบการเปนอยางมาก เมอเปนธรกจทสามารถทารายไดไดสง จงเปนปจจย
หลกอยางหนงทจงใจใหพนกงาน / ลกจางทจรต ยกยอกเงนรายไดจากคาใชบรการหองพก
เนองจากเจาของไมไดดแลกจการตลอดเวลา 24 ชม. ซงลกษณะการดาเนนงาน คอ เมอมผมา
เขาใชบรการ พนกงานจะเรยกเกบคาหองพก พรอมจดทาบลลงใบแบบฟอรมทจดเตรยมไวให
และนาสงเงนทไดรบใหกบเจาของธรกจในวนรงขน จากการสงเกตและศกษาขอมล พบวา
ในชวงทเปดกจการแรกๆ มผเขาใชมาใชบรการคอนขางมาก ผใชบรการมการตอเวลาอย
บอยครง พนกงานมการนาสงเงนเปนปกต (มการนาสงเงนในชวงของการตอเวลา) แตในระยะ
หลงพนกงานไมมการนาสงรายไดในชวงทผใชบรการขอตอเวลา ทงทปรมาณในการใชนา และ
ไฟฟายงคงถกใชในสดสวนทเทาเดม แตในสวนของรายไดกลบลดลงไป (ซงตรวจสอบไดจาก
กลองวงจรปดทตดตงไวบรเวณหนาสถานประกอบการ ทแสดงถงระยะเวลาทรถของผใชบรการ
เขา-ออก และจากใบเสรจทลงบญชไว) แสดงใหเหนวาอาจมการทจรตขนภายในกจการ หาก
ปลอยปญหานไวจะทาใหรายรบของกจการรวไหลออกไปนอกระบบ สงผลใหเกดความเสยหาย
ในธรกจไดในภายภาคหนา
โครงงานฉบบนจงมงเนนไปทการเปดใชหองพกชวคราว ซงทกครงทมแขกเขามาพก
ตองมการใชไฟฟาเปนองคประกอบหลก ดงนนหากเราทราบระยะเวลาในการใชไฟฟาภายใน
หอง เรากจะสามารถนาขอมลนนมาบรหารรวมกบการจดการเชงคณภาพได โดยนาระยะเวลา
ดงกลาวมาคดคานวณเปนตวเลข และคดเปนจานวนเงน เพอใหเจาของกจการไดทราบลวงหนา
วาในแตละวนจะมการใชหองพกเปนเวลาเทาไหร, ขณะเวลานมผเขามาใชบรการอยกหอง และ
รายรบทจะเกดขนในแตละวนเปนเทาไหร ซงทราบขอมลผานทาง Internet กอนลวงหนาทจะ
เดนทางไปเกบเงนรายได แตทงนตองคานงถงเสมอวาไมมระบบใดทสามารถควบคมการทจรต
2
ได 100% แตเราสามารถใชระบบนเพอตรวจสอบการทจรตไดมากกวา 90% อก 10 % ทเหลอ
นนตองอาศยการบรหารทมประสทธภาพสง และอปกรณชนดอน เชน กลองวงจรปด เซนเซอร
ตรวจจบรถทวงเขา – ออก ทางประตของรสอรท เขามาชวยในการควบคมอกสวนหนง
1.2 วตถประสงคโครงงาน
1.2.1 เพอแกไขปญหาการทจรตของพนกงานททางานภายในรสอรททงแบบชวคราว
และคางคน ซงลกษณะของการทจรตนนมไดหลายแบบ อาทเชน
1. ผใชบรการมการตอเวลา แตลกจางไมแจงและเกบเงนสวนตางทไดนนไว
2. ลกจางแจงจานวนผเขามาใชบรการตาความเปนจรง
3. นาเพอน หรอญาต มาใชหองพกในชวงทไมมแขกเขามาใชบรการ
4. เปดหองพกใหแขกเขาพกเกนทลงบนทกไว
1.2.2 สามารถตรวจสอบเวลาในการเปดใชบรการหองพกในแตละวน เพอคานวณยอด
รายรบทเกดขนจรง
1.2.3 เพอควบคมการทางานของพนกงาน / ลกจางใหเปนไปตามระเบยบการบรหาร
1.2.4 สามารถตรวจสอบขอมลไดโดยผานระบบ Internet
1.3 ขอบเขตของโครงงาน
1.3.1 สามารถเขาถงระบบไดโดยผานทาง internet
1.3.2 การเขาถงขอมลโดยกาหนด Username และ Password
1.3.3 แสดงสถานะปจจบนในการเขาใชบรการของหองนนๆ
1.3.4 บนทกระยะเวลาการเขาใชหอง โดยแยกเปนของแตละหอง
1.3.5 แสดงรายไดทจะไดรบในแตละวน
1.3.6 สามารถจดเกบเปนรายงานประจาเดอน หรอชวงเวลาทตองการได
1.3.7 สามารถสง e-mail โดยอตโนมตใหกบ user ทอยในระบบได
1.4 ประโยชนทคาดวาจะไดรบ
1.4.1 ไดความรเกยวกบหลกการทางานของ Linux (CenOs 5), MySQL, PHP, Perl,
SendMail, Squirrel Mail, SSL (Secure Socket Layer)
1.4.2 ประหยดคาใชจายในการซอฮารดแวรสาเรจรป (อปกรณตงเวลาทาการตดตอ
ไฟฟา) และซอรฟแวรลขสทธ เนองจากใชซอฟตแวรแบบ (Open- Source) ทงหมด
1.4.3 เกดความรความเขาใจถงปญหาตางๆของธรกจหองเชารายวน และแนวทางการ
แกไข จากปญหาการทจรตของพนกงานในธรกจ
1.4.4 สามารถทราบถงรายไดในแตละวนได อยางแทจรง ผานทาง internet
3
1.5 โครงสรางโครงงาน
โครงสรางของโครงงานฉบบนประกอบไปดวย ขนตอนการของระบบตรวจสอบ
การทจรตของพนกงานภายในธรกจหองเชารายวน และขนตอนการใชงานของระบบ รวมไปถง
การออกแบบการทดลองและทดสอบระบบ เพอตรวจจบการใชไฟภายในธรกจหองเชารายวน
พรอมแสดงผล โดยในแตละบทม รายละเอยดดงตอไปน
บทท 1 : ภาพรวมของการพฒนาระบบ
บทท 2 : ทฤษฎทเกยวของในการศกษาคนควาทาโครงงาน
บทท 3 : เกยวกบการนาเสนอขนตอนการทางานของระบบตรวจสอบการทจรตของพนกงาน
ภายในธรกจหองเชารายวน
บทท 4 : ตดตงอปกรณ รปแบบของการทดลอง และผลการทดลอง
บทท 5 : สรปผลโครงงาน
4
บทท 2
พนฐานและทฤษฎเกยวของ
2.1 LAMBDA NU NetDAQ ND-100 [1]
บอรด NetDAQ ND-100 เปนบอรดทใชในการอานคาอนพต (Input) 8 ชอง มเวบ
เซรฟเวอร (Web Server) ในตวจงสามารถควบคมผานระบบเครอขายทง LAN และ Internet
ดงรปท 2.1
รปท 2.1 บอรด NetDAQ ND-100
2.1.1 คณลกษณะและการประยกตใชงาน
2.1.1.1 สามารถวดอณหภมได 4 ชอง และแรงดนไฟกระแสตรงตรงได 4 ชอง
ผานระบบเครอขายทงแบบภายในและผานอนเตอรเนต
2.1.1.2 วดอณหภมในชวง -55°C ถง 125°C ความละเอยด 0.1°C และแรงดน
0 - 30 VDC ความละเอยด 100mV
2.1.1.3 สอบเทยบแรงดนไดโดยผใชงาน เพอใหคาวดแรงดนถกตองในระดบ
10 mV
2.1.1.4 ไมตองการคอมพวเตอรปลายทางตออยกบบอรด เนองจากเปนเวบ
เซรฟเวอรในตว (Embedded Web Server) จงสามารถใชบราวเซอร เชน Firefox แล IE ในการ
ควบคมไดทนท
5
2.1.1.5 ตงคาเลข IP Service Port และ รหสผานของบอรดได
2.1.1.6 สามารถสงคาทวดไดกลบมาเปนหนาเวบหรอสงเฉพาะตวเลขได ซง
ในกรณหลงทาใหสะดวกตอการเกบคาอยางตอเนองลงในฐานขอมลของเซรฟเวอรทอยไกล
ออกไป
2.1.1.7 ใชแรงดนไฟไดกวางตงแต 5 - 12 VDC จงสะดวกในกรณใชงานกบ
แบตเตอรรตางๆ
อปกรณทตองการเพมเตมประกอบการใชงาน: สาย LAN (หากตอกบคอมพวเตอร
โดยตรงโดยไมผานสวตช (Switch) / ฮบ (Hub) ใหเลอกชนด Cross-Over) และอะแดปเตอร
(Adater) ไฟกระแสตรงขนาด 5 - 12 V (เสนผาศนยกลางภายในของแจคขนาด 2.5 มม.) ทจาย
กระแสไดตามทระบ กรณวดอณหภม ตองการเซนเซอรดจตอล DTS-01 (DS18B20)
รปท 2.2 แผนผงวงจรของบอรด NetDAQ ND-100
2.1.2 MicrocontrollerChip บนตวบอรด มการใช Chip 2 ตวคอATMega 168 และ
ENC28J60 ดงรปท 2.2 ซงไดขอมลมาจากคมอทตดมากบบอรดจากผผลต
2.1.2.1 ATMega 168 [2] เปนไมโครคอนโทรลเลอร 8 บต ในตระกล AVR
ของบรษท Atmel มสถาปตยกรรมภายในเปนแบบ Advanced RISC สามารถทางาน 1 คาสงใน
เวลา 1 ไซเกล (Cycle) ของสญญาณนาฬกา มคณสมบตทสาคญดงน
* มคาสงควบคมการทางาน 133 คาสง สวนใหญใชเวลา 1 ไซเกลของ
สญญาณนาฬกาในการทางาน
6
* มรจสเตอร (Register) สาหรบใชงานทวไป ขนาด 8 บต จานวน 32 ตว
* ความเรวในการทางานสงสด 19 ลานคาสงตอวนาท ทความถของสญญาณ
นาฬกา 16 MHz
* มหนวยความจาขอมลออพรอม (EEPROM data memory) ความจ 4
กโลไบต สามารถลบและเขยนซาได 100,000 รอบ
* มหนวยความจาขอมลแรม (RAM) ภายในความจ 4 กโลไบต
* มหนวยความจาโปรแกรมแฟลชความจ 128 กโลไบต สามารถลบและเขยน
ซาได 10,000 รอบ
* สามารถตอหนวยความจาภายนอกเพมไดมากถง 64 กโลไบต
* มไทเมอร/เคานเตอรขนาด 8 บต จานวน 2 ตวพรอม ปรสเกลเลอร (Pre-
scale dealers)
* มระบบตรวจสอบความผดพลาดในการทางานดวยวอตชดอกไทเมอร
* มโมดลเปรยบเทยบแรงดนอะนาลอก (Analog voltage)
* มโมดลสรางสญญาณ PWM ( Pulse Width Modulator ) ขนาด 8 บต
จานวน 6 ชอง
* มโมดลแปลงสญญาณ อะนาลอก เปนดจตอล (ADC) ขนาด 10 บต จานวน
8 ชอง
* มโมดลตดตอกบระบบบส 2 สาย
* มโมดลสอสารขอมลอนกรม 2 ชด
* มโมดลเชอมตออปกรณอนกรมผานระบบบส SPI (Serail Peripheral
Interface)
* ยานแรงดนไฟเลยง +4.5 ถง +5.5 V เมอทางานดวยสญญาณนาฬกา 16
MHz
2.1.2.2 ENC28J60 [3] เปน Ethernet Controller ขนาด 28 ขา รองรบมาตรฐาน IEEE
802.3 ตอกบพอรต (Port) แบบ 10BASE-T ภายในไอซจะมการตดตอแบบ DMA และมหนวยความจา Dual
Port RAM ขนาด 8KB ม SPI พอรต รองรบการตดตอกบ MCU ทความเรว 10Mbit/s นอกจากนนยงมการ
แสดงผลการเชอมตอกบสญญาณอนเตอรเนตดวย LED 2 ตวการทางานของบอรดนจะตดตอกบ MCU ผาน
พอรตอนกรมแบบ SPI ทความเรว 10Mbs และผใชสามารถเสยบหวตอแบบ RJ45 เขากบชดโมดลบนบอรด
ไดทนท สาหรบซอฟแวรในการพฒนาผใชสามารถดาวนโหลดฟรไดจากเวบของ Microchip ทชอวา
Microchip TCP/IP Stack ความเรวในการตดตอสอสารขอมลมคาสงสด 10Mbs และรองรบการทางานของ
โพรโทคอล HTTP รปท 2.3 – 2.5 แสดงถงลกษณะการทางาน และการเชอมตอของ ENC28J60
7
รปท 2.3 บลอกไดอะแกรมการเชอมตอ ENC28J60 กบ ไมโครคอนโทรลเลอร
รปท 2.4 TYPICAL ENC28J60-BASED INTERFACE
รปท 2.5 โครงสรางภายในของ ENC28J60
8
ในการเชอมตอกบ บอรด nd-100 นน จะใชโพรโทคอล HTTP เปนตวสอสารระหวาง
Web Browser และ Web Server ทอยบนตวบอรด
2.2 โพรโทคอล HTTP [4]
2.2.1 HTTP (Hypertext Transfer Protocol) ซงเปน protocol ทใชในรองขอการรบสง
ขอมลระหวาง เครองเซรฟเวอร และเครองไคลแอน โพรโทคอลตวนใชในลกษณะของเวบไซต
โดยทเครองไคลแอน เปนเครองผใชงาน สวนเครองเซรฟเวอร เปนเวบไซต โพรโทคอล Http
จดเปนโพรโทคอลทอยในชน Aplication Layer ของ OSI Model
2.2.2 โครงสรางของ HTTP
จากหลกการทางานของ HTTP ขางตน จะใช message เปนสอการทใชในการ
ตดตอสอสาร ระหวาง Client กบ Server และรปแบบของ message จะใช text เปนหลกใน
request หรอ response message
ในโครงงานน คาสงสครปตภาษา Perl กคอ HTTP client ทกลาวมาใน เปนตวสง
request ไปท Web Server (บอรด ND-100) เพอจะรบ resource ทตองการกลบมาโดยใช
HTTP protocol ตามตวอยางตอไปน
- สราง file getweb.pl ขนมาโดยม Code ดงรปท 2.6
รปท 2.6 โคด Getweb.pl
- เมอรน Code แลว จะม ขอความตอบกลบจาก web server ( ND-100 ) ดงน ตามรป
2.7
9
รปท 2.7 ขอความทตอบกลบจาก Web Server (ND-100)
กอนท HTTP Client จะสง request ไปท HTTP Server, HTTP Client จะทาการสราง
คอนเนคชนขนมาอนหนงกอนโดยใช socket. การสราง socket จะตองทาการกาหนดชอของ
host ทจะตดตอ คอ หมายเลขไอพ 192.168.1.199 พอรต 80 ตามรปท 2.6 ซงมขอสงเกตดงน
- ชอของ method จะตองใชตวใหญเสมอ
- เวอรชนของ HTTP จะอยในรป HTTP/x.x และจะตองเปนตวใหญเสมอ
2.2.4 Initial Response Line
initial response line หรอเรยกอกชอวา Status-Line ประกอบดวย 3 สวนยอย เรยง
ตามลาดบไดแก HTTP version, status code และเหตผล มการจดเรยงตามลาดบ
HTTP/1.1 200 OK
HTTP version status code เหตผล
HTTP version คอรน HTTP ท Server รองรบ จากตวอยางคอ 1.1
Status code ทาหนาทบอกผลของ request ซงถกแสดงในรปตวเลข 3 ตวตดกน
หมายเลข Status code สามารถนามาจดกลมได 5 หมวด ไดแกหมวด 1xx, 2xx, 3xx, 4xx
และ 5xx แตละหมวดมความหมาย และการนาไปใชงานแตกตางกน ดงตอไปน
- 1xx เปน code ทใชใหขอมลเพมเตมในการสอสารระหวาง Client และ
Server ,มกใชในกรณ server ยงไมสามารถตอบสนองไดทนท เชน code 101 หมายถง
Service ทาการเปลยน Protocol ตามท Service requester รองขอ
- 2xx เปน code ทใชบอกถงความสาเรจของ request ทสงจาก Client ถกทา
ให complete สาเรจแลว เชน code 200 หมายถง Process ตามคารองขอเรยบรอย
10
- 3xx เปน code ทใชเปลยนตาแหนง Service Requester (Client) ตองทา
ตามเพอใหคารองขอ ประสบความสาเรจ เชน ทาการ redirect ไปยงเวบไซตอน เชน code 301
ตาแหนง resource เปลยนตาแหนงถาวร
- 4xx เปน code ทใชบอกถงความผดพลาดทเกดขนจาก Client เนองจาก ม
request error เชน code 400 ไมสามารถทาตาม request ของ client ได
- 5xx เปน code ทใชบอกถงความผดพลาดทเกดขนจาก Server เชน code
503 หมายถง Service ไมพรอมใหบรการชวคราว
2.3 Linux CentOs 5 [5]
CentOS (Community Enterprise Operating System) เปนลนกซพฒนามาจาก
RedHat แตตองเสยคาลขสทธซอรฟแวร CentOS มการจายแจกฟร สามารถนามาเปน
เซรฟเวอรเพอใหบรการตาง ๆ ในเครอขาย หรอใชสวนบคคลไมเชอมตอกบเครอขายกได ม
ความสามารถทคลายกบ RedHat และตดตงแพกเกจยอยภายใน โดยใชคาสง YUM ในการ
อพเดทซอฟตแวรแบบอตโนมตได แตหากตองการจะตดตงแบบ Manual สามารถตดตงไดทง
RPM, TAR, APT ซงจะทาการนาเสนอตอไปในบทท 3
2.4 Perl [6]
Perl คอภาษาคอมพวเตอรภาษาหนง ททางานอยบนระบบ UNIX ในเครอง
คอมพวเตอรทเปนเซรฟเวอร เปนโปรแกรมทเราตองทางานดวย เนองจากในโครงงานนมการ
บนทกขอมลจากเวบไซตลงสฐานขอมล Mysql บนเครองเซรฟเวอร โครงสรางของภาษาไม
ซบซอน และมรปแบบคลายภาษา C ลกษณะการทางานแบบ Server-side script ซงทางานบน
เครองใหบรการ (Server) เชนเดยวกบภาษา PHP หรอ ASP ภาษาเหลานเกบ Source code
บนเครองใหบรการ เมอผใชรองขอโปรแกรมทตองการ สงทสงใหผใช คอ ผลลพธทผานการ
ประมวลผลเปนภาษาคอมพวเตอร เหมาะสาหรบการเขยนโปรแกรมในสภาวะแวดลอมของ
ระบบ UNIX โดยเฉพาะ เปนภาษาทมความสามารถและมความยดหยนเหมอนภาษาชนสงทวๆ
ไป ซงภาษา Perl ถกสรางขนมาเพอทางานในทกสวนใหเสรจสมบรณในตวเองไมตองไป
เรยกใชภาษาอนอก
โครงสรางของโปรแกรม Perl
1. การเรยกใชโปรแกรมจะตองเรยกตามทอยบนเครองเซรฟเวอรททางาน ทอยของ
Perl เชน #!/usr/bin/perl และเราตองนาบรรทดนไวบนสดของโปรแกรมทจะเขยนเสมอ
2. เมอสนสดการเขยนโปรแกรมในแตละบรรทดจะตองลงทายดวย “ ; ” เสมอ
11
2.5 MySQL [7]
Mysql เปนฐานขอมลทนยมใชรวมกบ PHP เนองจาก Mysql เปนฐานขอมลขนาดกลาง
ทไมใหญมากนก แตมประสทธภาพในการทางานทสง สามารถเชอใจได และสามารถนามาใช
งานไดฟร สามารถดาวนโหลดไดตามอนเตอรเนต โดยไมเสยคาใชจายใดๆ และเปนโปรแกรม
ฐานขอมลทรองรบระบบฐานขอมล SQL ซงเปนภาษาทใชสรางฐานขอมลทเขาใจงาย การใช
Mysql ในการจดการฐานขอมลนนจะตองกระทาผานทางคอมมานด ดงน เพอความสะดวกของ
ผใชงานจงมเครองมอชวยจดการฐานขอมลผานทางกราฟฟคดวย phpmyadmin ซงมลกษณะ
เปนเวบแอปพลเคชน จงเปนทนยมมากในปจจบน
2.6 PHP [8]
PHP คอภาษาทนยมในการเขยน Website ซงจะทางานในฝ งของ Server แลวสวนการ
แสดงผลจะสงมายง Browser ของเครอง Client สามารถนามาใชในการสรางเอกสารแบบ
HTML พรอมทงสามารถทางานรวมกบฐานขอมลไดหลายชนด อาทเชน Mysql, Oracle,
Sybase ไดเพอนาผลลพธทไดมาคานวณและแสดงผลไดอยางมประสทธภาพ โดยอาศยตวแปร
ชดคาสงของภาษาสครปต เชน Perl เปนตน
คาสงของ PHP สามารถเขยนขนไดโดยใชโปรแกรมทวๆ ไป เชน Vi , Notepad สง
สาคญ หากจะใช PHP กจะตองดกอนวา Web Server นนสามารถใชสครปต PHP ไดหรอไม
ยกตวอยางเชน PHP สามารถใชไดกบ Apache Web Server
เนองจากโครงสรางของภาษา PHP เปนโครงสรางทไมคอยซบซอน ผเรมตนทจะศกษา
พอทาความเขาใจไดไมยาก สครปตทเขยนดวยภาษา PHP การประมวลผลคอนขางทาไดไว
สวนขยายเพมเตมการทางาน (Extension) คอนขางมผพฒนาไวใหใชเพอความสะดวกมาก
เชน การสรางกราฟ การสรางเอกสาร PDF และทสาคญเปน โอเพนซอรซ (Open source) ใช
งานไดฟร ไมมคาใชจายใดๆทงสน ผใชงานจงสามารถดาวนโหลดมาใชงานไดฟร มการ
พฒนาขนอยางตอเนอง และทแพรหลายในสงคม ผเรมศกษาสามารถหาความรเพมเตมไดจาก
ศนยหนงสอทวไป
2.7 Apache [9]
ในปจจบนโปรแกรมเวบเซรฟเวอรมอยมากมายทงในรปแบบทตองเสยเงนซอมาใชและ
รปแบบทใชงานไดฟรไมเสยเงน อาปาเช (Apache) เปนโปรแกรมเวบเซรฟเวอรตวหนงท
สามารถใชงานไดฟรไมตองเสยเงนซอมาใช มจดเดนทสามารถใชงานไดบนระบบ ยนกซ/ลนกซ
ไดโดยตรง จงมความเสถยรสงมาก อาปาเชเนนทการสนบสนนภาษา PHP/Perl เปนหลก ม
ความสามารถทางานรวมกบภาษา PHP/Perl ไดเปนอยางด แตตวแปลภาษา PHP / Perl ไมได
12
พวงตดมาพรอมกบอาปาเช ดงนนผใชงานจงตองตดตงเพมเตมเอง สามารถดาวนโหลดได
โดยตรงจากเวบไซตของผพฒนา PHP และ Perl
2.8 Squirrel Mail [10]
เปน web mail ทถกสรางขนโดย Nathan and Luke Ehresman ในป 1999 ถกเขยนโดย
ใช ภาษาPHP สามารถแสดงผลไดดกบเวบเบราเซอร ในปจจบน สามารถรองรบภาษาไดมาก
ถง 50 ภาษาทวโลก พรอมทงมปลกอนมากกวา 200 ปลกอน สามารถดาวนโหลดเพมเตมได
จากเวบไซตของ Squirrel Mail เชน Mail Filters, Calandar เปนโอเพนซอรซ (Open source)
ใชงานไดฟร ไมมคาใชจายใดๆ ทงสน ผใชงานจงสามารถดาวนโหลดมาใชงานไดฟร
2.9 Sendmail [11]
โปรแกรม Sendmail เปน Mail Server ทมผใชงานคอนขางมากและเปนดฟอลตของ
Centos และใชงานกนมากทสดตวหนง ใชโพรโทคอล SMTP (Simple mail transfer protocol
server) เปนตวดาเนนการรบ-สงจดหมาย ในลกษณะทเปนสงคว เมอสงเสรจเรยบรอยแลวจะ
ลบควนนทง มความสามารถใชรบ-สง จดหมายใหกบ ยสเซอร ในเครอขาย สวนมากแลวจะ
ใหบรการเฉพาะเครองทอยในเครอขายเดยวกนเทานน ไมอนญาตใหเครองนอกเครอขายเขามา
ใชงาน
2.10 SSL (Secure Socket Layer) [12]
เพอเพมความปลอดภยใหกบขอมล ในการตดตอระหวาง Apache กบ Brower จะใช
กระบวนการ ตามมาตรฐาน SSL (Secure Socket Layer) เทคโนโลย SSL สามารถใชงาน
สาหรบรกษาความปลอดภยในการรบ – สงขอมลระหวางเวบเซรฟเวอรและเบราเซอรได อกทง
สามารถนาไปใชในการสงขอมลในลกษณะอนๆ เชน การสงขอมลจากฐานขอมลหนงไปยง
ฐานขอมลอกแหงหนง โดยใชหลกการเขารหสและถอดรหสดวยกญแจคนละดอก ( Asymmetric
Encryption ) ประกอบดวยการทางาน 8 ขนตอน ดงน
2.10.1 เบราเซอรรองขอ URL ไปยง Apache ดวยโพรโทคอล HTTPS คอ ระบ
https:// นาหนา URL และนาสงขอมลทเกยวของกบการเขารหสละถอดรหส ไดแก
2.10.1.1 เวอรชนของ SSL ทเบราเซอร ยอมรบ
2.10.1.2 อลกอลธมในการเขารหส / ถอดรหส
2.10.1.3 ขอมลทเบราเซอรสมสรางขนมา 1 ชด
2.10.2 เมอเบราเซอรไดรบขอมลทง 3 แลว จะทาการตรวจสอบเวอรชน SSL ของ
เบราเซอรวาสงกวาเวอรชน SSL ของทางฝ งเซรฟเวอรหรอไม เทยบจาก เวอรชนของ
13
OpenSSL ทตดตงบนเซรฟเวอร หากของทางเบราเซอรทรองขอนนสงกวาฝ งเซรฟเวอร
Apache จะสงขอมลกบไปยงเบราเซอรทรองขอวา ไมมการเขารหสปองกนความปลอดภย
พรอมยตข นตอน SSL Handshake และสงขอมลกลบไปยงเบราเซอรไปตามปกต แตหาก
เวอรชนเทาหรอตากวา SSL บนเซรฟเวอร Apache จะสงขอมลสาคญ กลบไปใหแกเบราเซอร
ไดแก
2.10.2.1 เวอรชนของ SSLทมอยในเซรฟเวอร
2.10.2.2 ชออลกอลธมในการเขารหส/ถอดรหส ทมอยในเซรฟเวอร
2.10.2.3 ขอมลชดหนงท Apache สรางขนมาแบบสม
2.10.2.4 ไฟลขอมลทเรยกวา Certificate
Certificate เปนไฟลทสรางจากโปรแกรม OpenSSL ทตดตงอยบนฝ ง เซรฟเวอร โดย
เกบบนทกขอมลบางอยางทสาคญดงน
- Public Key ซงเปนกญแจทใชสาหรบการเขารหสขอมล จะตองถอดรหสดวย
กญแจ Private Key ทถกสรางขนพรอมๆ กบการสราง Certificate และเกบไวทางฝ งเซรฟเวอร
เทานน
- ชอของ Certificate
- วนหมดอายของ Certificate
- ชอ CA หรอ Certification Authority ทเปนผอนมต certificate
- Digital Signature ของ CA ผอนมต certificate
- IP Address หรอชอเวบไซตทตองการให Certificate รบรอง และใชงาน SSL
2.10.3 เมอเบราเซอรไดรบขอมลตางๆ ท Apache สงให ตวเบราเซอรจะทาการ
ตรวจสอบขอมลสาคญ 3 อยาง คอ CA มความนาเชอถอ, Certificate ยงไมหมดอาย และ IP
Address หรอชอเวบไซตทระบใน Certificate ตรงกบ IP Address หรอชอเวบไซตท เบราเซอร
รองขอ ถาไมผานอยางนอย 1 อยาง เบราเซอรจะแสดงหนาตาง Security Alert แจงคาเตอนให
ผชมเวบทราบ หากถกตองจะดาเนนการตอในขนตอนตอไป
2.10.4 เบราเซอรจะสรางขอมลชดหนงทเรยกวา Premaster Secret โดยใชฟงกชน
RSA ท SSL ในเบราเซอร มาสราง ซงแตละครงยอมไดชดขอมลทไมเหมอนกนเนองจาก
อนพตของฟงกชน RSA ในการสราง Premaster Secret คอ ขอมลทเบราเซอรสมขนมาเองกบ
ขอมลแบบสมทไดรบจาก Apache ในขนตอนท 2 จากนนจงสง Premaster Secret ทเขารหส
(ทถกเขารหสดวย Public Key) ใหแก Apache
14
2.10.5 จากนน Apache จะใชอลกอลธมทเคยสงใหแกเบราเซอร มาถอดรหส
Premaster Secret โดยอาศย Private Key ทเกบไวในเซรฟเวอร เปนอนพตในการถอดรหส
จากนนจงใชฟงกชนใน OpenSSL มาสรางขอมลทเรยกวา Master Secret โดยใช Premaster
Secret (ทถอดรหสแลว) เปนอนพตของฟงกชน
2.10.6 เบราเซอรจะสราง Master Secret จาก Premaster Secret โดยใชฟงกชน
เดยวกบท Apache ใชในขนตอนท 5 เพราะเบราเซอรมฟงกชนดงกลาวอยในตวอยแลว จง
สรางโดยไมตองใช Private Key และถอดรหส Premaster Secret เนองจากเปนขอมลท
เบราเซอรสรางขนเอง
2.10.7 เมอ Apache และเบราเซอรตางกมขอมล Master Secret ทตรงกน ทง
Apache และเบราเซอรจะสราง Session Key โดยอาศยฟงกชนเดยวกน ทมอยทงใน
OpenSSL ทางฝ งเซรฟเวอร และในตวเบราเซอรทางฝ งไคลเอนต แตเปนคนละฟงกชนกบตอน
ทสราง Master Secret และใช Master Secret เปนอนพตของฟงกชนเหมอนกน
2.10.8 เบราเซอรและ Apache จะใช Session Key ในการเขารหสและถอดรหสขอมล
ทมการรบ – สงระหวางกน ขนตอนดงกลาวแสดงไดดงรปท 2.8
รปท 2.8 ขนตอนการทางานของ SSL Handshake
สงรายละเอยดตางๆ ของเซรฟเวอร, Public Key และ
Certificate
เบราเซอร
เบราเซอรตรวจ
Certificate
สราง Premaster
Secret
สราง Master
Secret จาก Premaster Secret ท
สราง Session
Key
จาก Master Secret
สงขอมล Premaster Secret ทเขารหสจาก Public Key
สงคารองขอ HTTPS และรายละเอยดตางๆของเบราเซอร
Apache
สราง Master
ถอดรหส Premaster
สราง Session
Key
จาก Master Secret
ทง 2 ฝ งรบสงขอมลทเขารหสโดย Session Key จนสนสด
การทางาน
15
2.11 Radius Server [13]
ในโครงงานชนนจะมการจดการบรหารบญชผใชงานระบบ โดยใช Radius ( Remote
Authentication Dial-In User Service ) เปนศนยกลางในการดาเนนการบรหารบญชผใชงาน
ระบบ Radius จะมการใชรหสลบทเรยกวา Secret เพอยนยนตวตนวาตดตอมาจาก Radius
Client จรง หากผใชมสทธในการใชงาน Radius Server จะสงผลการยอมรบการเชอมตอ
(Access-Accept)แตถาหากผใชดงกลาวไมมสทธใชงาน Radius Server จะไมยอมใหเขาใช
งาน หนาทหลกๆ ของ Radius Server คอ พสจนตวตนของผใช ( Authentication ) กาหนด
สทธของผใช ( Authorization ) และบนทกประวตการใชงานของผใช สาหรบซอฟแวรทจะใช
สราง Radius Server คอโปรแกรม Freeradius ซงเปนโปรแกรมบรหารจดการบญชผใชบน
ระบบปฏบตลนกซ ทไดรบความนยมมากเนองจากเปนโปรแกรมประเภทฟรแวร และวธการ
ตดตงสามารถคนควาหาขอมลไดงาย เชน อนเตอรเนต เปนตน
16
บทท 3
การออกแบบระบบ
ในขนตอนนจะกลาวถงรายละเอยดการออกแบบระบบสาหรบใชงานพสจนตวจรง โดย
ผานทางสายสญญาณ (สาย LAN) เพอเขาไปสกระบวนการการทางานของระบบ ตรวจสอบการ
ทจรตในเปดเขาใชหองพก ระบบไดออกแบบขนมาเพอตรวจสอบการใชไฟฟาโดยวดแรงดนของ
กระแสไฟฟาวามการใชไฟฟาอยหรอไม โดยใชอปกรณอเลกโทรนครน ND-100 ของบรษท
แลมดานว จากด แลวสงคาแรงดนไฟฟามายง Server ทไดตงไวทนท ทมการเปดใชหองพก
โดยผานทาง Ethernet
ภายใตความคดทวาหากมลกคามาใชบรการ ลกคาตองมการใชไฟฟาไมวามากหรอ
นอยกแลวแต ในแตละหองจะม Breaker เพอควบคมไฟฟาเขาหอง ดงนน เมอมกระแสไฟฟา
ผาน Breaker ใหถอวามการใชหองโดย ซงจะมการตอ Adapter พวงกบ Breakerไว เพอ
Adapter ดงกลาวจะตอตรงเขาบอรด ND-100 ทาใหบอรดอานคาไดวามกระแสไฟเขามา บอรด
จะสงคาไปยง Server เพอลงบนทกขอมลตอไป ดงแสดงเปนแผนภาพดงรป 3.1
รปท 3.1 การออกแบบ Diagram การทางานของระบบ
17
รปท 3.2 กระบวนการทางานของระบบ
3.1 การทางานของระบบมดงตอไปน
จากรปท 3.2 ระบบจะทาการตรวจสอบการใชงานของแตละหองไดทกๆ 1 นาท คาท
ไดออกมาคอแรงดนไฟฟา ซงจะถกสงตอไปยง Server เพอตรวจสอบในขนตอนแรกวาขณะนม
การใชไฟฟาอยหรอไม ซงจะแบงออกไดเปน 2 กรณ คอ
3.1.1 กรณทมแรงดนไฟฟาเขาสบอรด เมอ Server ตดตอไปยงบอรดแลวพบวาม
แรงดนไฟฟาเขามาทบอรด Server จะตดสนวามการเปดใชหองพก จากนน Server จะ
ตรวจสอบกบคาในบรรทดทบนทกลาสดใน Tables room 1 in วามคาเปน “ON” ตรงกนหรอไม
แบงไดเปน
3.1.1.1 บรรทดสดทายมสถานะเปน “ON” แสดงวาเมอ 5 นาททผานมานน ม
ผใชบรการอยและยงไมไดออกจากหอง ระบบจะถอวายงคงสถานะเปน “ON” อย ดงนนระบบจะ
ไมมการบนทกขอมลเพมเขาไปยง Table room 1
3.1.1.2 บรรทดสดทายมสถานะเปน “OFF” แสดงวาเมอ 5 นาททผานมานน
หองพกวางไมมแขกผใชบรการ เมอหองพกไดถกเปดใชงานในระหวางระยะเวลา 5 นาททผาน
มา ระบบจะถอวาตองมสถานะเปน “ON” แตเมอระบบพบวาบรรทดสดทายมสถานะเปน “OFF”
ระบบจะทาการเปลยนสถานะเปน “ON” และบนทกลงใน Table room 1 in ทนท
3.1.2 กรณทไมมแรงดนไฟฟาเขาสบอรด เมอ Server ตดตอไปยงบอรดแลวพบวาไม
มแรงดนไฟฟาเขามาทบอรด Server จะตดสนวาไมมการเปดใชหองพกในขณะนน Server จะ
18
ตรวจสอบกบคาในบรรทดทบนทกลาสดใน Tables room 1 วามคาเปน “ON” ตรงกนหรอไม
แบงไดเปน
3.1.2.1 บรรทดสดทายมสถานะเปน “OFF” แสดงวาเมอ 5 นาททผานมานน
ไมมผใชบรการ ระบบจะถอวายงคงสถานะเปน “OFF” อย ดงนนระบบจะไมมการบนทกขอมล
เพมเขาไปยง Table room 1
3.1.2.2 บรรทดสดทายมสถานะเปน “ON” แสดงวาเมอ 1 นาททผานมานน
หองพกทวางมแขกเขามาใชบรการ เมอหองพกไดถกเปดใชในระหวางระยะเวลา 1 นาททผาน
มา ระบบจะถอวาตองมสถานะเปน “ON” เมอระบบพบวาบรรทดสดทายมสถานะเปน “ON”
ระบบจะทาการเปลยนสถานะเปน “OFF” และบนทกลงใน Table room 1 out ทนท
กระบวนการทางานทกลาวมาขางตน แสดงไดดงรปท 3.3
รปท 3.3 แผนผงการรบ – สงขอมล
19
ยกตวอยางเชน หองเบอร 1 กาลงเปดใชบรการอย และเมอครบ 1 นาท ระบบจะทา
การตรวจสอบหากมกระแสไฟฟาเขาบอรด ND-100 ระบบจะตรวจสอบ Table ของ MySql
database ทบรรทดลางสด หากยงมสถานะเปน “ON” ระบบจะไมมการบนทกขอมลลง Table
ของ MySql database เมอหองเบอร 1 สนสดการใชบรการ พนกงานบรการจะทาการตด
Braker หลกของหอง เมอครบชวงระยะเวลา 1 นาท ระบบจะทาการตรวจสอบและสามารถ
ทราบไดวาไมมกระแสไฟฟาเขาสบอรด ND-100 แลว ระบบกจะเขาสกระบวนการตรวจสอบ
Table ของ MySql database ทบรรทดลางสด ซงจะพบวามสถานะเปน “ON” ระบบจะมการ
เปลยนสถานะเปน “OFF” พรอมบนทกขอมลลง Table ของ MySql database
ซงขอมลทระบบทาการบนทกไวนนจะประกอบดวย วน/เดอน/ป, เวลาเขา - เวลาออก
และนาขอมลทงหมดทไดมาประมวลผล เพอคดคานวณออกมาเปนอตราคาใชบรการตามททาง
รสอรทไดกาหนดไว และแสดงผลทไดผานหนาเวบไซด
3.2 ระบบการ Login
การ Login เขาสระบบเพอเขาไปตรวจสอบขอมลการเปดใชหองพกสาหรบเจาของ
กจการและผดแลระบบ ขนแรกตอง Login ผานเวบบราวเซอร (Browser) เทานน โดยม
รปแบบของขอมลคอ ยสเซอรเนม (Username) เปนตวอกษรภาษาองกฤษตวพมพเลก พาส
เวรด (Password) เปนตวอกษรภาษาองกฤษตวพมพเลกหรอตวพมพใหญหรอตวเลข ในสวน
ของการทางานของระบบ เมอมการตรวจสอบขอมลถกตองตามรปแบบแลว จะนาพาสเวรดมา
เขารหส MD5 และจะสงขอมลไปตรวจสอบในตาราง Login ถา Username และ Password
ถกตอง จะสามารถเขาไปยงหนา index.php ซงเปนหนาแรกสาหรบดขอมลสถานะของการใช
งานหองพก วา ณ ปจจบนมการเปดใชงานหองพกอยจานวนกหอง และแสดงระยะเวลาในการ
เปดใชหองพกของรสอรท แตถากรอกขอมลไมถกตองหรอไมพบขอมลใดๆ จากตาราง
Database จะพบขอความ “Incorrect Username or Password” ซง Username ของระบบคอ
“beer” และ Password ของระบบนนคอ “1234” ดงจะแสดงไดดงรปท 3.4
20
รปท 3.4 แผนผงการแสดงผลบนจอคอมพวเตอร
Linux CentOs
จากทกลาวมาในบทกอนหนาน Linux Cent Os 5 เปนระบบปฏบตการทจะนามาใชใน
โครงงานฉบบน ซงจะมการตดตง apache ใหทาหนาทเปน Web Server (http) จากนนจะทา
การตดตง php และ php extension เพอเอาไวใชกบโปรแกรมทเขยนดวย php ในสวนของ
21
ภาษา perl นน มการตดตงอยในตวของ Linux Cent Os 5แลว จงไมมการตดตงเพมเตม ดงนน
จงขออธบายการทางานของ Linux Cent Os คอ
Linux Cent Os 5 จะมการรนสครปต Check.pl ซงเปนภาษา Perl เพอสงขอความ
ตรวจสอบไปยงบอรด ND-100 ทกๆ 1 นาท และดาเนนการตรวจสอบวามกระแสไฟเขามายง
บอรดหรอไม (เนองจากแขกผเขาใชบรการสามารถเดนทางเขามาใชบรการไดตลอดเวลา จง
ตองตรวจสอบทก 1 นาท) โดยสงขอความ “GET /& HTTP/1.0\n\n” ตามรปท 2.6 (ในบทท 2)
จากนนตวบอรดจะทาการตอบกลบมาเปนคาแรงดนไฟ ตามรปท 2.7 (ในบทท 2) คาทไดจะม
ตวเลข 8 ชด แตละชดคนดวยเครองหมาย | ซง 4 ชดแรกจะเปนการวดคาอณหภม (ไม
นามาใชงานในโครงงานน) และ 4 ชดถดไป จะเปนการวดคาแรงดนไฟทวดได ซงคาแรงดนไฟ
ทไดนน ไมวาจะสงหรอตาขนอยกบ Adapter ทใชแปลงไฟทออกมาจากหองพก หากม
แรงดนไฟเกดขนจะถอวามการใชไฟในหองพกทงสน จากนนตองนาขอความทไดจาก Server
มาตดขอความใหเปนของหองแตละหอง และนามาตรวจสอบ ตามขนตอนการบนทกในรปท 3.2
ผลการตรวจสอบจะถกบนทกลงใน MySql
เมอมการบนทกระยะเวลาเขา – ออกของหองพกลงสฐานขอมล MySql แลว ผใชงาน
ระบบสามารถเขาถงขอมลการเปดใชหองพก รวมทงทราบถงรายรบของคาบรการหองพกของ
แขกผใชบรการตอวนได 2 ชองทางคอ
1. ผานทางหนาเวบเบราเซอร ทเขยนดวยภาษา PHP ได เนองจากมการตดตง
apache ทกลาวมาในขางตน ทงนจะตองผานกระบวนการ Login กอนจงจะ
เขาใชงานได
2. ผานทาง webmail ภายในระบบจะมการตดตง sandmail เพอสงทาการสงขอมล
รายไดประจาวน ผานทาง e-mail address ภายในระบบทก user ทตงคาไว ทกวน
ในเวลา 23.59 โดยผใชงานสามารถเขาสระบบไดโดย http://ipaddress/webmail
ระบบจะจะใหใสชอผใชงานภายในระบบกอนจงจะสามารถเขาใชงานได
เนองจากวาภายในระบบมการตดตงโปรแกรม Freeradius เพอจดเกบ Log ของ User
ทอยในฐานขอมล Login วามการเขาใชงานวนไหน เวลาเทาไหร การ Login เขาสระบบโดย
ผานหนาเวบเบราเซอร จะมการจดเกบขอมลของ User ทกครง ทเขามาใชงานภายในระบบ
22
3.3 การบรหารจดการภายใน
3.3.1 พนกงานทาความสะอาดทรบผดชอบหองพก ตองทาความสะอาดหองพกทนท ท
แขกออกจากหอง โดยกาหนดใหใชระยะเวลาไมเกน 20 นาทในการทาความสะอาดหอง
เนองจากเปนระยะเวลาโดยเฉลยทตองดาเนนการใหเสรจโดยเรว เพอมใหระบบเวลาเกนเปน
เหตใหคดไดเปน 2 กรณ คอ พนกงานไมทางานเสรจตามระยะเวลาทกาหนด หรอลกคาทเขา
มาพกอาจมการตอเวลา แตพนกงานไมแจงหรอแจงวาทางานไมเสรจ และไมนาสงเงนรายได
สวนทเกดขนจากการตอระยะเวลา (นนคอการทจรต)
3.3.2 เมอทาความสะอาดหองเสรจแลว ตองปดเบรกเกอรทนท และหามมใหเปดใชเอง
โดยทยงไมมลกคาเขามาพก (เนองจากหลงจากปดไฟแลวระบบจะถอวาไมมแขกเขาพก สถานะ
ใน room table จะเปน “OFF” และจะทางานอกครงเมอมการใชไฟ ดงนนอาจจะทาใหระบบคด
คาใชบรการคลาดเคลอนได)
ทงน อาจกลาวไดวาไมมระบบใดทปองกนทจรตไดถง 100% จากการสอบถามเจาของ
กจการรสอรทในพนทใกลเคยงพบวา บางรายทใชวธการนบถงพลาสตกใสผาเชดตว (ซงตอง
เปลยนทกครงทแขกออกจากหอง) ถงพลาสตกดงกลาวทใชเปนแบบบาง จงตองใชวธการฉกถง
ออกเทานน อยางทสองคอ ตรวจสอบจากกลองวงจรปด วธนคอนขางจะตองใชระยะเวลาใน
การตรวจสอบนาน เพราะกลองวงจรปดดงกลาวตองตดเฉพาะดานหนาทางเขา-ออก หาก
นามาตดตงภายในรสอรท จะทาใหแขกผเขาพกเกดความรสกอดอด ไมเปนสวนตว และไม
อยากกลบเขามาใชบรการอก ฉะนนธรกจประเภทนการตดตงกลองวงจรปด ไมควรตดตงมาก
เกนไป
23
บทท 4
การทดลองและสรปผลการทดลอง
การทดลองนแบงออกไดเปน 2 สวน คอ
1. ตงคาและทดสอบการทางานของ broad ND-100
2. การทดลองระบบยนยนตวตนของการเขาเวบเพจ
ตดตงตวบอรดลงกลอง โดยเดนสายไฟเขาไปยงบอรดเพอใชในการทดสอบระบบ และ
ตดตงทบานตามรปท 4.1 และรปท 4.2
รปท 4.1 บอรดทตดตงลงกลองแลว
24
รปท 4.2 แสดงการตดตงกลองทบรรจบอรด ND-100 แลว
4.1 ตงคาและทดสอบการทางานของ broad ND-100
เนองจากการทดลองโครงงานฉบบนมการนา บอรด ND-100 มาเชอมตอกบเครอขาย
สอสารขอมล เพอนาผลของการเชอมตอทไดมาประมวลผล ขนแรกเขาเชอมตอกบบอรดโดย
เปดเวบเบราเซอร แลวพมพ 192.168.1.199 ซงเปนหมายเลข IP Address ของอปกรณบอรด
ND-100 แลวจะไดผลดงภาพท 4.3
รปท 4.3 แสดงการทางานปกตของ บอรด ND-100 เพอใชวดแรงดนไฟฟา
25
ตอมาใหพมพ password ของบอรด ND-100 ในทนคอ 1234 ตามหลงหมายเลข IP
Address ดงรปท 4.4 จะปรากฏหมายเลข IP Address และหมายเลข Mac Address ทหนาจอ
จากนนจะสามารถเขาไป Config คาตางๆ ของ บอรด ND-100 ได เชน Change IP, Change
Password, Settings, Calibrate Voltage ตามรปท 4.5 – 4.8
รปท 4.4 แสดงการทางานในโหมด config
รปท 4.5 แสดงการ setup Ip address เพอใชตดตอกบ board ND-100
26
รปท 4.6 แสดงการตงคา Password เมอกด Change Password
รปท 4.7 เมอกด Setting บอรดจะใหกาหนด คา Port ทจะใชตดตอ
27
รปท 4.8 เมอกด Calibrate Voltage เพอตงคาเรมตนของ แรงดนไฟ
รปท 4.9 แสดงถงการทางานของบอรด ND-100 ในสถานะมการจายไฟเขาท Channel 4
28
เมอตงคาเบองตนของ บอรด ND-100 เสรจเรยบรอยแลว ใหทดลองจายกระแสไฟฟา
เขาท Channel 4 ของ บอรด ND-100 จะพบวาในชอง V4 มคาแรงดนไฟปรากฏขนมา ตามรป
ท 4.9
4.1.1 รปแบบของการทดลองดงน
4.1.1.1 การทดสอบตวบอรดโดยทาการสลบถอด-เสยบ adapter ทง 4 ตว
เพอเปนการจาลองเหตการณ เมอผเขาพกทง 4 หอง เขาและออกในเวลาทไลเลยกน ผลการ
ทดสอบพบวาบอรดแสดงคาหนาทหนาหลกมตวเลข Voltage ขนลงสลบไปมาระหวางทสลบ
ถอด-เสยบ adapter ทง 4 ตว (adapter ทตางรน ตางยหอ ) ในแตละตวจะมคา delay ไมเทากน
เนองจากadapter บางตวนนยงมไฟคางอยในตว โดยเฉลยแลวประมาน 5-20 วนาท ใน
ขณะเดยวกน Server ไดมการตงคา ( ใน Crontab ) ใหรนสครปตทใชตรวจเชความไฟเขา
บอรดไวทกๆ 1 นาท ดงนน ถงแมวาจะถอด adapter ออกไปแลว จะมการ Delay ในการวด
คาไฟประมาณ 20 วนาทกตาม กยงเรวกวาชวงเวลาท Server ทาการตรวจสอบคาไฟจากบอรด
จงทาใหการตรวจสอบการเขาใชหองพก มไดมคาเปลยนแปลงไป
4.2 การทดลองระบบยนยนตวตนของการเขาเวบเพจ
ทาการเชอมตอกบ Server ผานเวบเบราเซอร โดยพมพหมายเลข IP Address ของ
เครอง server ตามดวย /bestinn ในชอง Address ของ Web Browser ทใชจะพบวา http ได
เปลยนเปน https และมการแจงเตอนความนาเชอถอของเวบไซต ดงรปท 4.10
รปท 4.10 แสดงการเปลยน http เปน https
29
เมอทาการยนยนตวตอนแลวจะเขาสหนาจอ Login Form ทงน โดยมรปแบบของ
ขอมลคอ ยสเซอรเนม (Username) เปนตวอกษรภาษาองกฤษตวพมพเลก สวนพาสเวรด
(Password) เปนตวอกษรภาษาองกฤษตวพมพเลกหรอตวพมพใหญหรอตวเลข มความยาว 4
ตวอกษร และไมเกน 10 ตวอกษร ซงในการทดลองนจะกาหนด ยสเซอรเนม คอ beer , mol ,
pea พาสเวรด คอ 1234 แลวจงกดปม Submit ดงรปท 4.11
รปท 4.11 หนาจอแสดงการ Login เมอเขาใชโดยไปท 192.168.1.42/bestinn
จากนนระบบจะทาการตรวจสอบ ยสเซอรเนม และ พาสเวรด ท Table redcheck บน
ฐานขอมลชอ login หากถกตองระบบจะแสดงหนาเวบเพจเปนสถานะ การเปดใชหองพก ณ
ปจจบน ดงรปท 4.12
รปท 4.12 แสดงหนาจอเรมตนในการเขาระบบ จะแสดงสถานะ การใชหองในปจจบน
30
หากผใชตองการขอมลเปนรายวน หรอ เฉพาะบางวน ใหเลอกท ระบวน-เวลาทตองการ
และกด Search ระบบจะแสดงขอมลการใชบรการของผเขาพก พรอมแสดงรายไดทงหมดใน
ชวงเวลาทเลอก ดงรปท 4.13 – 4.14
รปท 4.13 แสดงหนาจอเมอผใชงานเขาไปคนหาตามชวงระยะเวลา
รปท 4.14 หนาจอแสดงผลการคนหา เมอผใชงานเขาไปคนหาตามชวงระยะเวลา
31
ผใชงานสามารถดสถตการเปดใหบรการเปนรายหองพกได เพยงคลกเลอกหองท
ตองการทางดานซายมอ ระบบจะทาการแสดงสถตการเปดใหบรการเปนรายหองพกทงหมด
ตงแตระบบเรมมการจดเกบขอมลจนถงปจจบน ดงรปท 4.15
รปท 4.15 หนาจอแสดงผล สถตการเปดใชแตละหอง
หากผใชงานมความประสงคทจะออกรายงาน ทงนเพอใหงายตอการพจารณาลกษณะ
ของการเขาใชหองพกของผใชบรการรวมถงการจดเกบหองภายหลงทผใชบรการออกจาก
หองพก และจดเกบในรปแบบของเอกสาร เพยงคลกเลอกหองทตองการทางดานซายมอภายใต
เมนการออกรายงาน ระบบจะทาการใหเลอกท ระบวน-เวลาทตองการ เมอผใชงานะบชวงเวลา
ทตองการแลวกดปม ออกรายงาน ระบบจะออกรายงานในรปแบบของ Microsoft Word และให
ผใชงานจดเกบเอกสาร เพอนามาดภายหลงได ดงรปท 4.16 – 4.17
32
รปท 4.16 แสดงผลใหผใชเลอกชวงเวลาทจะออกรายงาน และเมอกดปม ออกรายงาน
รปท 4.17 เมอเปดดวย Microsoft Word
33
ทงนระบบไดตดตงโปรแกรม sandmail และ Dovecot ไวเพอใหบรการสง E-mail ถง
กนไดระหวาง User ในเครอขาย และใช Squrrial Mail เปนตว Web Server เพอใหเขาดไดจาก
ทางอนเตอรเนต ในทกชวงเวลาทตองการ โดยกาหนดใหโปรแกรม Sandmail ทาการสงเมล
ใหกบ User ทกคนในระบบ ในเวลา 5.00 น.ของทกวน โดยใชเขยนคาสง crontab –e ระบ ให
เรยก script sentmailmoney.pl ดงรป 4.18
รปท 4.18 คาสงทใชเขยนในการสง Mail
จากนนเราสามารถตรวจสอบ Mail จาก Webmail ไดโดยการพมพ
http://192.168.1.42/webmail เพอเขาส Webmail ดงรปท 4.19 – 4.22
รปท 4.19 แสดงหนาตางในการเขาเชค Mail
34
รปท 4.20 แสดงหนาตางความปลอดภย
รปท 4.21 แสดงหนาตางการลงทะเบยน
35
รปท 4.22 แสดงผลของ Mail ทสงมา
ดงนน หากตองการตรวจสอบการเขาใชงานของ User ภายในระบบสามารถตรวจสอบไดโดยใช
โปรแกรม Putty เขาไปยงเครอง เซรฟเวอร แลวเขาไปทแลวพมพคาสง
#cat /var/log/radius/radacct/127.0.0.1/auth-detail-xxxxxxxx xxxx หมายถงวนทตองการจะด
เชน ตองการจะดวาวนท 16 มนาคม 2556 ม User ไหนทเขามา ใชงานในระบบใหพมพเปน
วนท 20130316 ดงรป 4.23
รปท 4.23 แสดง Log เมอมยสเซอรเขาใชงานระบบ
36
บทท 5
สรปผลโครงงาน
โครงงานระบบตรวจสอบการทจรตของพนกงานภายในธรกจหองเชารายวนฉบบน เปน
ระบบทชวยใหเจาของธรกจหองเชารายวนตรวจสอบการทางานของพนกงานลกจางภายในได
โดยงาย และสะดวกมากยงขน เจาของธรกจหองเชารายวนสามารถตรวจสอบรายไดทเกดขนใน
ระหวางวนไดตลอดเวลา โดยไมตองนงดการทางานของลกจางทงวน ซงในความเปนจรงแลว
นน เปนไปไมไดเลย ทเจาของกจการ จะไมออกไปไหน และทางานตลอดเวลา 24 ชม. สวน
พนกงานลกจางสลบ เปลยนกะกนมาทา ดงนนจงเปนการยากท จะไมใหเกดการทจรต
การทดลองโครงงานนผลทออกมา เปนการแสดงใหเหนวามการใชบรการหองพกเปดใช
ไฟ และลงขอมลการเปดใชไฟในระยะเวลาทเปนอยจรง และนามาคานวณวาระยะเวลาขนาดน
จะไดรายไดเทาไหร แมอาจจะไมตรงถงขนในหนวยของวนาท เพราะเมอแขกผใชบรการออก
จากทพก พนกงานจงดบไฟ แต adapter ยงมการเกบประจไฟอย ระยะเวลาในการคายประจ
หมดประมาณ 20 วนาท ระบบจงจะบนทกขอมล แตทงนเจาของกจการกจะยงสามารถ
คาดคะเน ไดวาควรจะมรายรบเขาวนละเทาไหร โดยพจารณาจากระยะเวลาเขา-ออก ของผเขา
ใชบรการ
จากการทดลองปจจยภายนอกททาไหไมสามารถเขาไปดขอมลผานทาง internet ได
ปญหาทพบไดคอ ทรสอรทนนใชระบบ internet ของ TOT wi-net มปญหาทพบบอยคอ ปญหา
DNS Server ของทาง TOT ลมบอย เปนผลใหไมสามารถเขาไปดขอมลทางเวบไซตได
อนง พบวาจากการทดลองเปด บอรด ND-100 ทงไวไมตากวา 72 ชวโมง บอรดยง
สามารถทางานไดตามปกต แตหากเกน 72 ชวโมง (ขนอยกบสภาวะอากาศในขณะนน) ตว
บอรด ND – 100 ไมไดมการตดตงพดลมหรอระบบระบายความรอนมาใหดวย การตดตงบอรด
ND-100 เขาสกลองจงทาใหเกดความรอนขนสวนหนง ประกอบกบสภาพอากาศรอน อณหภม
ภายในกลองกจะยงสงตามขนไปดวย เปนผลทาใหบอรดเกดอาการหยดการทางานขนชวคราว
ลกษณะดงกลาวทาใหบอรดไมไดสงขอมลไปยงเครองเซรฟเวอร ทาใหประมวลผลผดพลาดได
วธแกไข เพยงถอดปลกไฟเลยงบอรด ND -100 ทงไวไมเกน 5 นาทแลวนามาเสยบเขาใหม
บอรด ND-100 จะสามารถทางานไดตามปกต
37
ภาคผนวก ก
Source Code ทใชในการเชอมตอกบอปกรณไมโครคอนโทรลเลอร
38
ภาคผนวก ก
Source Code ทใชในการเชอมตอกบอปกรณไมโครคอนโทรลเลอร
โคด Check.pl ใชตรวจสอบคาแรงดนไฟฟาและใสขอมลลงในฐานขอมล
#!/usr/bin/perl -w
##use strict;
use DBI;
require IO::Socket;
my $url = '192.168.1.199';
my $socket = IO::Socket::INET->new (
Proto => 'tcp',
PeerAddr => $url,
PeerPort => 80) || die "[!] Can not connect...\n";
print "Connecting to $url\n";
print $socket "GET /& HTTP/1.1\n\n";
$socket->recv(my $data, 1024);
print "$data \n";
@bee=split(/\n/,$data);
print "$bee[4]\n\n";
@mine=split(/\|/,$bee[4]);
print "$mine[4]\n";
print "$mine[5]\n";
print "$mine[6]\n";
print "$mine[7]\n";
$zero = "0.00";
close ($socket);
39
#connect to mysql
my $dbh = DBI->connect("DBI:mysql:database=bee;host=localhost",
"root", "xxxx",{'RaiseError' => 1});
if ($mine[4] eq $zero)
{
print "The Room 1 OFF\n";
# Now retrieve data from the table.
my $sth = $dbh->prepare("SELECT * FROM room1 order by id desc limit 1");
$sth->execute();
my $ref = $sth->fetchrow_hashref();
print "Found a row: id = $ref->{'id'}, status = $ref->{'status'}\n";
print "$ref->{'status'}\n";
$mind = $ref->{'status'};
print " mind is $mind \n";
if ($mind eq "on" )
{
$dbh->do("INSERT INTO room1 VALUES (null,curdate(),curtime(),". $dbh-
>quote("on_to_off") .")");
$dbh->do("INSERT INTO room1out VALUES (null,curdate(),curtime(),". $dbh-
>quote("on_to_off") .")");
print "insert room 1 off leaw\n";
print "------------------------------\n";
}
else
{
print " mysql line end is off\n";
print "------------------------------\n";
}
}
else { print "THE Room 1 is ON\n";
40
my $sth = $dbh->prepare("SELECT * FROM room1 order by id desc limit 1");
$sth->execute();
my $ref = $sth->fetchrow_hashref();
print "Found a row: id = $ref->{'id'}, status = $ref->{'status'}\n";
print "$ref->{'status'}\n";
$mind = $ref->{'status'};
print " mind is $mind \n";
if ($mind ne "on")
{
$dbh->do("INSERT INTO room1 VALUES (null,curdate(),curtime(),". $dbh-
>quote("on") .")");
$dbh->do("INSERT INTO room1in VALUES (null,curdate(),curtime(),". $dbh-
>quote("on") .")");
print "insert Mysql on in table leaw na\n";
print "------------------------------\n";
}
else
{
print " mysql line end is on\n";
print "------------------------------\n";
}
}
##################### ROOM 2 #############################
if ($mine[5] eq $zero)
{
print "The Room 2 OFF\n";
# Now retrieve data from the table.
my $sth = $dbh->prepare("SELECT * FROM room2 order by id desc limit 1");
$sth->execute();
my $ref = $sth->fetchrow_hashref();
print "Found a row: id = $ref->{'id'}, status = $ref->{'status'}\n";
print "$ref->{'status'}\n";
41
$mind = $ref->{'status'};
print " mind is $mind \n";
if ($mind eq "on" )
{
$dbh->do("INSERT INTO room2 VALUES (null,curdate(),curtime(),". $dbh-
>quote("on_to_off") .")");
$dbh->do("INSERT INTO room2out VALUES (null,curdate(),curtime(),". $dbh-
>quote("on_to_off") .")");
print "insert room 2 off leaw\n";
print "------------------------------\n";
else
{
print " mysql line end is off\n";
print "------------------------------\n";
}
}
else { print "THE Room 2 is ON\n";
my $sth = $dbh->prepare("SELECT * FROM room2 order by id desc limit 1");
$sth->execute();
my $ref = $sth->fetchrow_hashref();
print "Found a row: id = $ref->{'id'}, status = $ref->{'status'}\n";
print "$ref->{'status'}\n";
$mind = $ref->{'status'};
print " mind is $mind \n";
if ($mind ne "on")
{
$dbh->do("INSERT INTO room2 VALUES (null,curdate(),curtime(),". $dbh-
>quote("on") .")");
$dbh->do("INSERT INTO room2in VALUES (null,curdate(),curtime(),". $dbh-
>quote("on") .")");
print "insert Mysql on in table leaw na\n";
42
print "------------------------------\n";
}
else
{
print " mysql line end is on\n";
print "------------------------------\n";
}
}
##################### ROOM 3 #############################
if ($mine[6] eq $zero)
{
print "The Room 3 OFF\n";
# Now retrieve data from the table.
my $sth = $dbh->prepare("SELECT * FROM room3 order by id desc limit 1");
$sth->execute();
my $ref = $sth->fetchrow_hashref();
print "Found a row: id = $ref->{'id'}, status = $ref->{'status'}\n";
print "$ref->{'status'}\n";
$mind = $ref->{'status'};
print " mind is $mind \n";
if ($mind eq "on" )
{
$dbh->do("INSERT INTO room3 VALUES (null,curdate(),curtime(),". $dbh-
>quote("on_to_off") .")");
$dbh->do("INSERT INTO room3out VALUES (null,curdate(),curtime(),". $dbh-
>quote("on_to_off") .")");
print "insert room 3 off leaw\n";
print "------------------------------\n";
}
else
{
43
print " mysql line end is off\n";
print "------------------------------\n";
}
}
else { print "THE Room 3 is ON\n";
my $sth = $dbh->prepare("SELECT * FROM room3 order by id desc limit 1");
$sth->execute();
my $ref = $sth->fetchrow_hashref();
print "Found a row: id = $ref->{'id'}, status = $ref->{'status'}\n";
print "$ref->{'status'}\n";
$mind = $ref->{'status'};
print " mind is $mind \n";
if ($mind ne "on")
{
$dbh->do("INSERT INTO room3 VALUES (null,curdate(),curtime(),". $dbh-
>quote("on") .")");
$dbh->do("INSERT INTO room3in VALUES (null,curdate(),curtime(),". $dbh-
>quote("on") .")");
print "insert Mysql on in table leaw na\n";
print "------------------------------\n";
}
else
{
print " mysql line end is on\n";
print "------------------------------\n";
}
}
##################### ROOM 4 #############################
if ($mine[7] eq $zero)
{
print "The Room 4 OFF\n";
# Now retrieve data from the table.
44
my $sth = $dbh->prepare("SELECT * FROM room4 order by id desc limit 1");
$sth->execute();
my $ref = $sth->fetchrow_hashref();
print "Found a row: id = $ref->{'id'}, status = $ref->{'status'}\n";
print "$ref->{'status'}\n";
$mind = $ref->{'status'};
print " mind is $mind \n";
if ($mind eq "on" )
{
$dbh->do("INSERT INTO room4 VALUES (null,curdate(),curtime(),". $dbh-
>quote("on_to_off") .")");
$dbh->do("INSERT INTO room4out VALUES (null,curdate(),curtime(),". $dbh-
>quote("on_to_off") .")");
print "insert room 4 off leaw\n";
print "------------------------------\n";
exit;
}
else
{
print " mysql line end is off\n";
print "------------------------------\n";
exit;
}
}
else { print "THE Room 4 is ON\n";
my $sth = $dbh->prepare("SELECT * FROM room4 order by id desc limit 1");
$sth->execute();
my $ref = $sth->fetchrow_hashref();
print "Found a row: id = $ref->{'id'}, status = $ref->{'status'}\n";
print "$ref->{'status'}\n";
$mind = $ref->{'status'};
45
print " mind is $mind \n";
if ($mind ne "on")
{
$dbh->do("INSERT INTO room4 VALUES (null,curdate(),curtime(),". $dbh-
>quote("on") .")");
$dbh->do("INSERT INTO room4in VALUES (null,curdate(),curtime(),". $dbh-
>quote("on") .")");
print "insert Mysql on in table leaw na\n";
print "------------------------------\n";
$sth->finish();
$dbh->disconnect(); # Disconnect from the database.
exit;
}
else
{
print " mysql line end is on\n";
print "------------------------------\n";
$sth->finish();
$dbh->disconnect(); # Disconnect from the database.
exit;
}
}
46
ภาคผนวก ข
Source Code ทใชในการสง E-mail หาทก Users ในระบบ
47
ภาคผนวก ข
รปท ข.1 Source Code ทใชในการสง E-mail หาทก Users ในระบบ
48
ภาคผนวก ค
วธการตดโปรแกรม Freeradius
49
ภาคผนวก ค
วธการตดโปรแกรม Freeradius
- ตดตง freeradius โดยพมพคาสง
#yum install freeradius
- สราง Database login ใน mysql และเพมสทธผใชฐานขอมลใหกบฐานขอมล login
ดงน
# mysql –u root –p
Mysql> CREATE DATABASE login;
Mysql>GRANT ALL PRIVILEGES ON login.* to 'radius'@'localhost'
IDENTIFIED BY 'xxxx';
FLUSH PRIVILEGES;
- ใส database schema ดวยคาสงดงน
#mysql –u root –p xxxx login < /usr/share/doc/freeradius-
1.1.3/examples/mysql.sql
- ทาการนาเขาขอมลผใชระบบสามารถทาไดโดยเขาไปยง Mysql โดยพมพคาสง
#mysql –u root –p
และนาเขาขอมลดงตอไปน
1. INSERT INTO usergroup (UserName, GroupName) VALUES ('beer',
'admin');
INSERT INTO usergroup (UserName, GroupName) VALUES ('mol',
'admin');
INSERT INTO usergroup (UserName, GroupName) VALUES ('pea',
'admin');
จะแสดงผลออกมาดงรป ค.1
50
รปท ค.1 รปแสดงผลการนาเขากลมผใชงานลงสฐานขอมล
2. INSERT INTO radcheck (UserName, Attribute, Value, Op) VALUES
('beer', 'Password', MD5('1234'), '==');
INSERT INTO radcheck (UserName, Attribute, Value, Op) VALUES
('mol', 'Password', MD5('1234'), '==');
INSERT INTO radcheck (UserName, Attribute, Value, Op) VALUES
('pea', 'Password', MD5('1234'), '==');
จะแสดงผลออกมาดงรป ค.2
รปท ค.2 รปแสดงผลการนาเขา User name และ Password แบบ MD5 ลงสฐานขอมล
3. INSERT INTO radgroupcheck (GroupName, Attribute, Value, Op)
VALUES ('admin', 'Auth-Type', 'Local', ':=');
จะแสดงผลออกมาดงรป ค.3
51
รปท ค.3 รปแสดงผลการแจงลกษณะการ Authentication ในการเขาใชงาน
4. INSERT INTO radreply (UserName, Attribute, Value, Op) VALUES
('beer', 'Idle-Timeout', '300', ':=');
INSERT INTO radreply (UserName, Attribute, Value, Op) VALUES
('mol', 'Idle-Timeout', '300', ':=');
INSERT INTO radreply (UserName, Attribute, Value, Op) VALUES
('pea', 'Idle-Timeout', '300', ':=');
จะแสดงผลออกมาดงรป ค.4
รปท ค.4 รปแสดงผลการกาหนดระยะเวลาใชงานของ User ในระบบ
5. INSERT INTO radgroupreply (GroupName, Attribute, Value, Op)
VALUES ('admin', 'Service-Type', 'Login-User', ':=');
จะแสดงผลออกมาดงรป ค.5
รปท ค.5 รปแสดงผลการแจงลกษณะการเขาใชงานของ User
52
- ออกจากMysql โดยพมพคาสง exit
แกไขไฟล sql.conf /etc/raddb/sql.conf ดงน
บรรทดท 22 แกเปน login = "root"
บรรทดท 23 แกเปน password = "xxxx"
บรรทดท 26 แกเปน radius_db = "login"
แกไขไฟล radius.conf /etc/raddb/radiusd.conf โดยเอาคอมเมนออก ดงน
บรรทดท 1249 เดม #$INCLUDE ${confdir}/sql.conf เอาคอมเมนตออก เปน
$INCLUDE ${confdir}/sql.conf
บรรทดท 1129,1130,1135,1136 ใหเอา comments ออก (#)
detail auth_log {
detailfile = ${radacctdir}/%{Client-IP-Address}/auth-detail-%Y$
detailperm = 0600
}
บรรทดท 1790 เดม #auth_log เอาคอมเมนตออก เปน auth_log
บรรทดท 1845 เดม #sql เอาคอมเมนตออก เปน sql
บรรทดท 2001 เดม #sql เอาคอมเมนตออก เปน sql
จากนนให restart redius โดยพมพคาสง
#service redius restart
ทดสอบวาredius เขยน log ของผใชงานโดยการพมพคาสง
# tail -f /var/log/radius/radacct/127.0.0.1/auth-detail-20130320
และเขาเวปไซคเพอทดสอบการ login ผาน Radius Server หากเขาเวปไซคไดจะปรากฏดงรป
ท ค.6
53
รปท ค.6 รป log แสดงผลการเขาใชงานของ User
54
ภาคผนวก ง
การตดตง SSL (Secure Socket Layer) เพอรกษาความปลอดภยของขอมล
55
ภาคผนวก ง
การตดตง SSL (Secure Socket Layer) เพอรกษาความปลอดภยของขอมล
การสราง ssl เพอเพมความปลอดภยจาก Http เปน Https
1. ตดตง mod_ssl โดยพมพคาสง # yum install mod_ssl
2. สราง file thebestinnresort.crt และ thebestinnresort.key โดยใชคาสง
# openssl req -new -x509 -nodes -out thebestinnresort.crt -keyout
thebestinnresort.key
รปท ง.1 แสดงการสรางการตดตง SSL (Secure Socket Layer)
3. ยายไฟล thebestinnresort.crt (SSLCertificateFile) ไปท /etc/pki/tls/certs/ และ
ไฟล thebestinnresort.key ( SSLCertificateKeyFile ) ไปท /etc/pki/tls/private/ โดยใชคาสง
#mv thebestinnresort.crt /etc/pki/tls/certs/thebestinnresort.crt
#mv thebestinnresort.key /etc/pki/tls/private/thebestinnresort.key
4. เพมขอความในไฟล https.conf ตอนทายสด
56
รปท ง.2 การทาให Apache สามารถ Redirect ไปท https โดยอตโนมต
5. ทดสอบโดยพมพ http://192.168.1.42/bestinn/ ในชอง Address ของ Web
Browser ทใชจะพบวา http ไดเปลยนเปน https แลว ดงรป
รปท ง.3 แสดงผลเมอเขาเวบโดยใช http จะเปลยนเปน https อตโนมต
57
เอกสารอางอง
[1] http://www.lambda-nu.com
[2] http://www.atmel.com/images/doc2545.pdf
[3] http://www.datasheetdir.com/go-ENC28J60.pdf
[4] http://www.docstoc.com/docs/139783573/ch3-http
[5] http://www.arnut.com/b/CentOS
[6] http://www.kmitl.ac.th/~s8060601/perlwww
[7] สมพงษ อรสรยวงศ, เขยนโปรแกรมบนฐานขอมล MySQL, ประเทศไทย:บรษท ซเอด
ยเคชน จากด (มหาชน), 2554.
[8] บญชา ปะสละเตสง, พฒนาเวบแอปพลเคชนดวย PHP รวมกบ MySQL และ
Dreamweaver, ประเทศไทย:บรษท ซเอดยเคชน จากด (มหาชน),2553.
[9] บรรพต ดลวทยากล, เกง Apache ใหครบสตร, ประเทศไทย:สานกพมพ วตตกรป, 2549.
[10] http://www.amno.moph.go.th/technology/Lesson-19/le19-03.html
[11] http://en.wikipedia.org/wiki/Sendmail
[12] ดจากเอกสารอางองหมายเลข [9]
[13] http://www.it.tl.ac.th/~witsarut/download/Configure%20Radius%20Server.doc