การบรหารจดการการเขาใชงานอนเทอรเนตภายในองคกร กรณศกษา บรษทซเอสจโซลชน จ ากด
Internet Access Management for Organization A Case Study : CSG Solution Co., Ltd.
สรยา สมานธารณ
สารนพนธนเปนสวนหนงของการศกษา หลกสตรวทยาศาสตรมหาบณฑต สาขาวชาวศวกรรมเครอขาย
คณะวทยาการและเทคโนโลยสารสนเทศ มหาวทยาลยเทคโนโลยมหานคร
ปการศกษา 2558
I
หวขอ การบรหารจดการการเขาใชงานอนเทอรเนตภายในองคกร กรณศกษา บรษทซเอสจโซลชน จ ากด
นกศกษา นายสรยา สมานธารณ รหสนกศกษา 53176600048 ปรญญา วทยาศาสตรมหาบณฑต สาขาวชา วศวกรรมเครอขาย ปการศกษา 2558 อาจารยทปรกษา ผศ.ดร. วรพล ลลาเกยรตสกล
บทคดยอ
สารนพนธฉบบนจดท าขนเพอน าเสนอระบบระบบพสจนสทธการใชงานอนเตอรเนตภายในองคกรโดยมวตถประสงคเพอก าหนดการใชงานของผใชงานแตละคนใหสามารถใชงานทรพยากรของบรษทไดอยางเหมาะสมและจดเกบลอคไฟลใหสอดคลองกบ พ.ร.บ.คอมพวเตอร
ระบบทจดท าขนน สามารถก าหนดชวงเวลาในการเขาใชงาน ก าหนดแบนดวธดในการอพโหลดและดาวนโหลด รวมถงสามารถตรวจสอบขอมลการใชงานของผใชงานแตละคนผานเวบแอพพลเคชนได และสารถบนทกลอคไฟลทเกดขนจดเกบเปนไฟลได ระบบนจะชวยอ านวยความสะดวกใหกบผดแลระบบในการบรหารจดการผานทางเวบแอพพลเคชนและใหสอดคลองกบ พ.ร.บ.คอมพวเตอรทมการบงคบใชงานในการจดเกบลอคไฟล
II
กตตกรรมประกาศ
สารนพนธเลมนไดพฒนาจนส าเรจดวยด เพราะความกรณา ความชวยเหลอ และก าลงใจจากหลายสวน ซงขอขอบพระคณทกทานมา ณ ทน
ขอขอบพระคณ ผศ.ดร. วรพล ลลาเกยรตสกล อาจารยทปรกษาโครงงานทคอยเสนอแนะแนวความคดและแนวทางในการจดท าสารนพนธกอปรกบองคความรตางๆจากทานทคอยชแนะใหกบลกศษยคนน
ขอขอบคณนายปรญญา ภารดรจรา ทคอยกระตนและใหค าปรกษาในการแกไขปญหาตางๆส าหรบการคอนฟคระบบ
ขอขอบคณนายระพ สภคศรกล ส าหรบการเปนทปรกษาชนดในการจดท าเวบแอพพลเคชนของสารนพนธฉบบน
ขอขอบคณพสรเชษฐ ณ นคร ส าหรบแนวทางและตวอยางดๆในการจดท าสารนพนธ ขอขอบพระคณเพอนรวมงาน เจานายของขาพเจา(พนตพงษ สองแสงศร) และบรษทซ
เอสจโซลชนทใหการสนบสนนอปกรณและทรพยากรตางๆ ท าใหสามารถท างานไดอยางมประสทธภาพ
ทายสดนขอขอบพระคณครอบครวของขาพเจาทคอยสนบสนน ใหก าลงใจในยามทอถอย และคอยผลกดนใหประสบความส าเรจตลอดมา อกทงเพอนๆหลายทานทไมไดเอยนามทคอยชวยเหลอสนบสนนในการจดท าสารนพนธนใหส าเรจลลวงไปไดดวยด
สรยา สมานธารณ ธนวาคม 2558
III
สารบญ
หนา บทคดยอ ................................................................................................................................... I กตตกรรมประกาศ .................................................................................................................... II สารบญ .................................................................................................................................... III สารบญภาพ ............................................................................................................................ VII สารบญตาราง ........................................................................................................................... X บทท 1 บทน า ........................................................................................................................... 1
1.1 ความเปนมาและมลเหตจงใจในการเสนอโครงงาน .................................... 1 1.2 ปญหาและแรงจงใจ ................................................................................... 1 1.3 วตถประสงคของโครงงาน ......................................................................... 2 1.4 ขอบเขตของโครงงาน ............................................................................... 2 1.5 ประโยชนทคาดวาจะไดรบ ........................................................................ 2 1.6 โครงสรางของสารนพนธ ........................................................................... 3
บทท 2 ทฤษฎทเกยวของ ......................................................................................................... 4
2.1 กลาวน า (INTRODUCTION) ................................................................... 4 2.2 ลนกซ ....................................................................................................... 4 2.3 Netfilter/ IPTABLES ................................................................................ 5 2.4 Authentication ......................................................................................... 7 2.4.1 มาตรฐาน 802.1x และ RADIUS ........................................................... 7 2.4.2 EAP (Extensible Authentication Protocol) ......................................... 8 2.4.3 RADIUS (Remote Authentication Dial-In User Service) ................. 16 2.4.4 AAA Server(Authentication Authorization,Accounting Server) ....... 23 2.5 Chillspot ................................................................................................ 23 2.6 NTP(Network Time Protocol ................................................................ 24 2.7 Syslogd.................................................................................................. 25
2.8 PHP……………………………………………………………………….. 29 2.8.1 CodeIgniter framework บน PHP ...................................................... 30 2.9 MySQL .................................................................................................. 32 2.9.1 การก าหนดสทธใหผใชงาน MySQL (Privilege System) .................... 32 2.9.2 ประเภทของขอมล ............................................................................... 36
IV
สารบญ (ตอ)
หนา 2.9.3 การจดการฐานขอมลและตาราง ........................................................... 39 2.10 Linux Traffic Control ……………………………………………………42 2.11 พรบ.คอมพวเตอร 2550………………………………………………….45
บทท 3 การออกแบบและพฒนาระบบ .................................................................................... 53
3.1 กลาวน า ................................................................................................. 53 3.2 การออกแบบโครงสรางระบบใหมทดแทนระบบเกา ............................... 55 3.3 การออกแบบระบบการท างาน ............................................................... 57 3.4 การออกแบบ Database ......................................................................... 59 3.4.1 radius Database ................................................................................ 59 3.4.2 Syslog Database ............................................................................... 64 3.5 การออกแบบในการตดตงออเทนทเคชนเกตเวยเซรฟเวอร .................... 65 3.5.1. สวนประกอบของโครงสรางเครองออเทนทเคชนเกตเวยเซรฟเวอร..... 65 3.6 การออกแบบ WebManage ................................................................... 66 3.6.1 โครงสรางของ Webmanage แตละหนา .............................................. 67 3.7 สรปทายบท ........................................................................................... 74
บทท 4 ผลการทดสอบโครงงาน.............................................................................................. 75 4.1 บทน า .................................................................................................... 75 4.2 ผลการทดสอบ Web Manage ............................................................... 76 4.2.1 การเขาสระบบ Web Manage ............................................................. 76 4.2.2 Home page ........................................................................................ 77 4.2.3 UserGroup page ................................................................................ 77 4.2.4 User page .......................................................................................... 79 4.2.5 Usage Logs page .............................................................................. 81 4.2.6 Rotate Log page ................................................................................ 83 4.2.7 User Online page .............................................................................. 83 4.3 ผลการทดสอบในสวนการพสจนตวตน .................................................. 84 4.4 ผลการทดสอบการ Manage Group ...................................................... 87 4.5 ผลการทดสอบ Manage User ............................................................... 90
V
สารบญ (ตอ)
หนา 4.6 ผลการทดสอบใชงานของ User ............................................................. 93 4.7 ผลการทดสอบการเรยกด Logs การใชงานของ User และการ Export .. 95 4.7.1 การเรยกด Log ของ User ทใชงานในระบบ ........................................ 95 4.7.2 การคนหา Log การใชงานของ User ................................................... 97 4.7.3 การ Export Log File ......................................................................... 101 4.8 ผลการทดสอบการเรยกด Logs ในหนา Rotate Logs ......................... 102
บทท 5 สรปผลโครงงาน ....................................................................................................... 103 5.1 กลาวน า ................................................................................................ 103 5.2 สรปผลด าเนนงาน ................................................................................ 103 5.3 ปญหาและอปสรรค ............................................................................... 103 5.4 แนวทางในการพฒนา ........................................................................... 104
เอกสารอางอง...................................................................................................................105 ภาคผนวก ก.....................................................................................................................106 ภาคผนวก ข.....................................................................................................................135
VI
สารบญภาพ หนา รปท 2.1 iptables Flow Diagram ............................................................................................. 6 รปท 2.2 ลกษณะการท างาของ 802.1x .................................................................................... 8 รปท 2.3 EAP architecture ...................................................................................................... 8 รปท 2.4 EAP packet format ................................................................................................. 10 รปท 2.5 EAP Request and Response packets .................................................................. 11 รปท 2.6 EAP Success and Failure packets ....................................................................... 12 รปท 2.7 Simple EAP Challenge .......................................................................................... 12 รปท 2.8 EAPOL packets ...................................................................................................... 13 รปท 2.9 Typical EAPOL exchange ..................................................................................... 14 รปท 2.10 Typical EAPOW exchange .................................................................................. 16 รปท 2.11 โครงสรางการท างาน RADIUS .............................................................................. 17 รปท 2.12 การแลกเปลยนขอมลระหวาง Access Clients, NAS, Radius Server................... 18 รปท 2.13 Packet Structure .................................................................................................. 19 รปท 2.14 RADIUS Attributes ............................................................................................... 20 รปท 2.15 แสดงลกษณะการท างานเครอขาย ......................................................................... 23 รปท 2.16 แสดงล าดบชน Stratum ......................................................................................... 24 รปท 2.17 โครงสรางของ CodeIgniter.................................................................................... 31 รปท 2.18 การท างานของ pfifo_fast....................................................................................42 รปท 2.19 การท างานของ TBF............................................................................................43 รปท 2.20 การท างานของ SFQ...........................................................................................44 รปท 3.1 แสดงเครอขายโดยทวไป .......................................................................................... 53 รปท 3.2 แสดงเครอขายองคกรขนาดเลกทมการใชงานอนเตอรเนตอยางเดยว ...................... 54 รปท 3.3 แสดงโครงสรางการเชอมตอระบบเครอขายเดมของบรษท ....................................... 55 รปท 3.4 แสดงการออกแบบโครงสรางการเชอมตอระบบเครอขายใหม .................................. 56 รปท 3.5 แสดงแผนภาพบรบท (Context Diagram) ของ Gateway Server ........................... 57 รปท 3.6 แสดงแผนภาพบรบท (Context Diagram)การไหลของขอมล ................................... 58 รปท 3.7 แสดงการจ าลองการตดตงบนโปรแกรม Vmware .................................................... 65 รปท 3.8 แสดงโครงหนา Home page .................................................................................... 67 รปท 3.9 แสดงโครงหนา Usergroup page ............................................................................ 69 รปท 3.10 แสดงโครงหนา User page .................................................................................... 70 รปท 3.11 แสดงโครงหนา Usage log page(1) ...................................................................... 71
VII
สารบญภาพ (ตอ) หนา รปท 3.12 แสดงโครงหนา Usage log page(2) ...................................................................... 72 รปท 3.13 แสดงโครงหนา Rotate logs .................................................................................. 73 รปท 3.14 แสดงโครงหนา User Online page………………………………………………….73 รปท 3.15 แสดงโครงสรางหนา Logout page…………………………………………………..74 รปท 4.1 แสดงการจ าลองการตดตงบนโปรแกรม VM Ware .................................................. 75 รปท 4.2 แสดงหนา login ....................................................................................................... 76 รปท 4.3 แสดงหนา Home page............................................................................................ 77 รปท 4.4 แสดงหนา User Group page .................................................................................. 78 รปท 4.5 แสดงหนา add group ใสคาไมครบ .......................................................................... 78 รปท 4.6 แสดงคาวาม Group นมอยแลวในระบบ ................................................................... 79 รปท 4.7 แสดงหนา User page ทใชส าหรบ Manage User ................................................. 80 รปท 4.8 แสดงหนา User ทเพมเขาไปใหมนนซ ากบทมในระบบ ............................................ 80 รปท 4.9 แสดงหนา Add User ซงไมไดกรอก Re-Password อกครง ..................................... 81 รปท 4.10 แสดงหนา Usage Logs page ............................................................................... 82 รปท 4.11 แสดงหนา Rotate Logs page……………………………………………………….83 รปท 4.12 แสดงหนา User Online page ............................................................................... 83 รปท 4.13 แสดงการหนาแรกเพอสระบบลอคอน .................................................................... 84 รปท 4.14 แสดงหนาลอคอนโดยใสชอผใชและรหสผาน .......................................................... 84 รปท 4.15 แสดง Session Time ทเรมนบถอยหลงหลงจาก Login ......................................... 85 รปท 4.16 แสดงการใสชอผใชหรอรหสผด .............................................................................. 85 รปท 4.17 แสดงการใสชอผใชงานซ าซอนในเวลาเดยวกน ...................................................... 86 รปท 4.18 แสดงภาพ User ทก าลง Online ............................................................................ 86 รปท 4.19 แสดงการเพม group sample01 เขาไปในระบบ .................................................... 87 รปท 4.20 แสดงการลบ group sample01 ออกจากระบบ....................................................... 88 รปท 4.21 แสดงการแกไขคาใน group sample01 .................................................................. 89 รปท 4.22 แสดงการเพม User Test4 เขาไปในระบบ ............................................................. 90 รปท 4.23 แสดงการลบ User Test4 ออกจากระบบ ............................................................... 91 รปท 4.24 แสดงการแกไข Group ของ User Test4 ............................................................... 92 รปท 4.25 แสดงรายละเอยด Attribute ของ User ทใชทดสอบ ............................................... 93 รปท 4.26 แสดง Logs ของ user ทใชทดสอบหลงจาก Session Timeout ............................. 93
VIII
สารบญภาพ (ตอ) รปท 4.27 แสดงรายละเอยดและ Attribute ของ User ทใชทดสอบความเรว........................... 94 รปท 4.28 แสดงการทดสอบ speed test ของ User ............................................................... 94 รปท 4.29 แสดงการเลอกหนา Usage Logs........................................................................... 95 รปท 4.30 แสดง Logs Detail หลงจากเลอก User ทตองการด Logs ..................................... 96 รปท 4.31 แสดง Logs ของ User ทคนหาจากชอผใชงาน ...................................................... 97 รปท 4.32 แสดง Logs ของ User ทคนหาจากวนท ................................................................ 98 รปท 4.33 แสดง Logs ของ User ทคนหาจากสาเหต ............................................................. 99 รปท 4.34 แสดง Logs ของ User ทคนหาจาก IP Address.................................................. 100 รปท 4.35 แสดงการ Export Log file เปน CSV ................................................................... 101 รปท 4.36 แสดงเนอหาใน Log file ทไดจากการ Export ...................................................... 101 รปท 4.37 แสดงการเลอก Download ไฟลของ rotation Logs.............................................. 102 รปท 4.38 แสดงเนอหาใน wifireport.txt ............................................................................... 102
IX
สารบญตาราง
หนา ตารางท 1 Packet Type EAPOL ........................................................................................... 14 ตารางท 2 RADIUS Code ..................................................................................................... 20 ตารางท 3 Attributes Code .................................................................................................... 20 ตารางท 4 NTP Server ในประเทศไทย ................................................................................. 25 ตารางท 5 แสดงคา facility ..................................................................................................... 26 ตารางท 6 แสดงคา priority .................................................................................................... 26 ตารางท 7 แสดงรายชอโปรแกรมทใช syslog ......................................................................... 28 ตารางท 8 ตารางสทธส าหรบผใช ........................................................................................... 34 ตารางท 9 ตารางสทธส าหรบผดแลระบบ ............................................................................... 34 ตารางท 10 ตารางสทธอนๆ ................................................................................................... 35 ตารางท 11 ตารางแสดงชนดขอมลแบบตวเลข ....................................................................... 36 ตารางท 12 ตารางแสดงชนดขอมลแบบวนทและเวลา ............................................................ 37 ตารางท 13 ตารางแสดงชนดขอมลแบบสตรง ......................................................................... 38 ตารางท 14 Data Structure of group…………………………………………………………...59 ตารางท 15 Data Structure of radacct…………………………………………………………60 ตารางท 16 Data Structure of radcheck……………………………………………………….61 ตารางท 17 Data Structure of radgroupcheck………………………………………………...62 ตารางท 18 Data Structure of radgroupreply………………………………………………....63 ตารางท 19 Data Structure of radusergroup………………………………………………….63 ตารางท 20 Data Structure of admin…………………………………………………………..64 ตารางท 21 Data Structure of SystemEvents…………………………………………………64
1
บทท 1 บทน ำ
1.1 ควำมเปนมำและมลเหตจงใจในกำรเสนอโครงงำน
ปจจบนระบบเครอขายอนเทอร เนต (Internet)ได เข ามามบทบาทและมสวนส าคญตอชวตประจ าวนของคนเราหลายๆดานไมวาจะเปนการรบสงจดหมายอเลกทรอนกส(E-Mail) การสนทนา แบบออนไลนหรอการใชเวบบราวเซอร (Web Browser) เพอใชในการคนหาขอมลตดตามขอมล การท าธรกรรมทางดานการเงน หรอจะเปนการสงหรอรบขอมล รวมไปจนถงการใหความบนเทงรปแบบตางๆ เชน รายการโทรทศน เกม เพลง รายการวทย เปนตน ซงทงหมดทกลาวมานลวนเปนสงทท าบนระบบเครอขายอนเทอรเนตทงสน
จากทกลาวมาขางตนถอวาเปนการใหบรการในรปแบบตางๆ ทกระท าผานทางระบบ เครอขายอนเทอรเนตโดยประโยชนของระบบเครอขายอนเทอรเนตนนเปนสอชองทางทมประสทธภาพและเปนการกระจายขอมลขาวสารในระบบไดเปนอยางด มคาใชจายทต าจงท าใหทกๆ องคกรมการน ามาใชงานอยางแพรหลายและกวางขวาง ซงในขณะเดยวกนอาจท าใหเกดปญหาตางๆ อาทเชน ไมสามารถควบคมแบนดวดธ (Bandwidth) ของผใชบรการได หรอแบนดวดธไมเพยงพอตอความตองการของผใชบรการ ซงเกดจากการใชบรการกนอยางคบคงซงปญหาดงกลาวถอไดวาเปนสงทจ าเปน และส าคญทควรค านงถงเปนอยางยง ดงนนองคกรทมการใชงานอนเทอรเนต ควรมระบบทสามารถควบคมปรมาณการใชงานของผใชบรการภายในองคกรไดเพอใหรองรบความตองการบรการตางๆไดอยางมประสทธภาพ ดวยเหตนทางผจดท าจงมแนวคดทจะท าระบบควบคมการใชงานอนเทอรเนตภายในองคกรเพอตอบสนองการใชงานทรพยากรของบรษทไดอยางมประสทธภาพมากยงขน 1.2 ปญหำและแรงจงใจ
เนองดวยบรษท ซเอสจโซลชน จ ากด ไดมการใชระบบเครอขายอนเทอรเนตในการท างานเพอการตดตอสอสารทงภายในองคกรและภายนอกองคกร ซงปจจบนไดประสบปญหาคอไมมระบบตรวจสอบผใชบรการบนเครอขายอนเทอรเนตท าใหไมสามารถพสจนตวบคคลวาคนๆนนทเขาใชงานระบบเครอขายอนเตอรเนตคอใคร ซงมผลเกยวเนองกบการเกบ Log ตามพระราชบญญตวาดวยการกระท าผดเกยวกบคอมพวเตอร พ.ศ. 2550 ซงไดมผลบงคบใชมานานแลว และไมมการจ ากดการใชงานแบนดวดธ (Bandwidth) ของผใชงานภายในองคกร
จงไดเกดมแนวความคดพฒนาระบบบรหารการเขาใชงานอนเตอรเนตภายในองคกรโดยไดน าระบบปฏบตการลนกซ(Linux) ซงเปนซอฟตแวรโอเพนซอส (Open Source) ทสามารถน ามาใชงานไดโดยไมตองจายคาลขสทธและมประสทธภาพทดมาเปนระบบปฎบตการหลกของระบบ และจดท าระบบ
2
บรหารจดการผานเวบแอพพลเคชน(Web Application) ขนมาเพอชวยผดแลระบบในการบรหารจดการและลดภาระใหแกผดแลระบบ จงจดท าโครงงานนขนเพอน ามาประยกตใชงานภายในองคกรตอไป 1.3 วตถประสงคของโครงงำน
1.3.1 เพอใหมการตรวจสอบผใชงานทกครงทมการเขาใชงานอนเตอรเนต 1.3.2 เพอสรางสรางระบบพสจนสทธการใชงานในรปแบบเวบลอกอนหรอแคบทปพอทอล
(Captive Portal) 1.3.3 เพอออกแบบเวบแอพพลเคชนเพอบรหารจดการในระบบเครอขายอนเทอรเนตภายใน
องคกร 1.3.4 เพอจดการบรหารแบนดวธดในการใชงานเครอขายใหกบผใชบรการแตละคนอยาง
เหมาะสม 1.3.5 เพอใหทราบขอมลเวลาการเขา-ออกของผใชงานในระบบเครอขายอนเตอรเนตภายใน
องคกรไดโดยสามารถตรวจสอบผานผานเวบบราวเซอร (Web Browser) 1.3.6 เพอความสอดคลองในการจดเกบ Log ตามพระราชบญญตวาดวยการกระท าผด
เกยวกบคอมพวเตอร พ.ศ. 2550 1.3.7 เพอทดลองใชงานภายในองคกร
1.4 ขอบเขตของโครงงำน
1.4.1 ขอบเขตของโครงงาน 1 1.4.1.1 ศกษาโครงสรางระบบเครอขายปจจบนขององคกร 1.4.1.2 ตรวจสอบปญหาในการใชงานระบบเครอขายอนเทอรเนตและวเคราะหหา
ทฤษฎทเขามาเกยวของของการท างานในระบบเครอขายใหม 1.4.1.3 ออกแบบโครงสรางกระบวนการท างานของระบบเครอขายใหม 1.4.1.4 ศกษาการพสจนตวตนการเขาใชงานในระบบเครอขายอนเทอรเนต
1.4.2 ขอบเขตของโครงงาน 2 1.4.2.1 ศกษาการจดเกบ Log ขอมลในการใชงานระบบเครอขายอนเทอรเนต 1.4.2.2 การออกแบบเวบแอพพลเคชนใหตรงกบความตองการ และท าการตดตง 1.4.2.3 ทดสอบระบบ พรอมทงแกไขขอผดพลาดตางๆ ทเกดขน 1.4.2.4 สรปผลการด าเนนงาน
1.5 ประโยชนทคำดวำจะไดรบ จากการแกปญหาขางตน ผท าโครงการคาดวาเมอสามารถด าเนนการตามขนตอนตางๆ
3
ไดอยางสมบรณ จะกอใหเกดประโยชนตอองคกรดงตอไปน 1.5.1 มระบบบรหารจดการแบนดวธดการใชงานระบบเครอขายอนเทอรเนตภายใน
องคกร 1.5.2 ท าใหระบบแครอขายมประสทธภาพในการท างานและมความปลอดภยเพมขน
ภายในองคกร 1.5.3 เพอเพมประสทธภาพในการท างานของผดแลระบบโดยสามารถตรวจสอบและ
ท าการวเคราะหจากขอมลทบนทกมาจาก Log file ได 1.5.4 สามารถจดเกบ Log ขอมลในการใชงานระบบเครอขายอนเทอรเนต 1.5.5 เพอน าเอาซอฟตแวรโอเพนซอสมาประยกตใชงานภายในองคกร
1.6 โครงสรำงของสำรนพนธ โครงสรางของสารนพนธฉบบนจะแบงเนอหาออกเปน 5 บท โดยสรปไดดงน บทท 1 เปนการกลาวถงปญหาและแรงจงใจ วตถประสงค ขอบเขตโครงงานและประโยชนทคาดวาจะไดรบของสารนพนธฉบบน บทท 2 เปนการกลาวถงทฤษฎพนฐานทน ามาใชในสารนพนธ บทท 3 เปนการกลาวถงการออกแบบและพฒนาระบบทน ามาใชในสารนพนธ บทท 4 เปนการกลาวถงผลการทดสอบของสารนพนธ บทท 5 เปนการสรปผลการทดลอง กลาวถงปญหากบอปสรรคและแนวทางในการพฒนาตอ
4
บทท 2 ทฤษฎทเกยวของ
2.1 กลาวน า
อาจจะกลาวไดวาทกวนนระบบเครอขายอนเตอรเนต มความจ าเปนกบชวตของคนเรามากขนทกวน ในธรกจขนาดเลกจ าเปนทจะตองมระบบขนมารองรบในการจดการเกยวการใชงานอนเตอรเนตไมวาจะเปนการใชงานในการทองโลกอนเตอรเนตเพอคนหาขอมลตางๆ การดาวโหลดไฟลตางๆ ไปจนกระทง การสนทนาผานทางอนเตอรเนตดวยโปรแกรมตางๆ เชน Skype, LINE, Facebook และอนๆดงนนเพอจดสรรแบนดวธใหยชเซอรใชงานและจดการปองกนมใหยชเซอรใชงานโปรแกรมบางประเภททใช แบนดวธมากอยางเชน bittorrent และการดาวนโหลดตางๆ เปนตน ลนกซจงเปนทางเลอกหนงทจะน ามาใชในการออกแบบ GetewayServer เนองจากเปนระบบปฎบตการ opensource ทมใหใชงานฟรมประสทธภาพสงม Package สนบสนนเพอรองรบการใชงานมากมาย
ทฤษฎทเกยวของกบโครงงานนจะอธบายถงระบบครอขายคอมพวเตอร และการจดสรรใชงานแบนดวธดของอนเทอรเนตซงสามารถน ามาใชเพอใหเกดระบบการบรหารจดการเขาใชงานอนเตอรเนตทดขน โดยสามารถควบคมบรหารผานระบบสวนกลาง ผานหนาเวบแอพพลเคชน (Web Application) ได
2.2 ลนกซ [2] ลนกซระบบปฏบตการแบบ 32 บต (ในปจจบนนมเวอรชน 64 บตแลว) ทเปนยนกซโคลน
ส าหรบเครองพซและแจกจายใหใชโดยไมเสยคาใชจายนน สนบสนนการใชงานแบบหลายงานหลายผใช (MultiUser-MultiTasking) มระบบเอกซวนโดวส (X Window) ซงเปนระบบการตดตอผใชแบบกราฟฟกทไมขนกบโอเอสหรอฮารดแวรใดๆ (มกใชกนมากในระบบยนกซ) และมาตรฐานการสอสาร TCP/IP ทใชเปนมาตรฐานการสอสารในอนเทอรเนตมาใหในตว
ลนกซมความเขากนได (Compatible) กบ มาตรฐาน POSIX ซงเปนมาตรฐานอนเทอรเฟสทระบบยนกซสวนใหญจะตองม และมรปแบบบางสวนทคลายกบระบบปฏบตการยนกซ จากคาย Berkeley และ System V โดยความหมายทางเทคนคแลวลนกซ เปนเพยงเคอรเนล (kernel) ของระบบปฏบตการซงจะท าหนาทในดานของการจดสรรและบรหารโพรเซส (Process) งาน การจดการไฟลและอปกรณ I/O ตาง ๆ แตผใชทว ๆ ไปจะรจกลนกซผานทางแอพพลเคชนและระบบอนเทอรเฟสทเขาเหลานนเหน (เชน Shell หรอ X Windows)
ลนกซถอก าเนดขนในฟนแลนด ป คศ. 1980 โดยลนส โทรวลดส (Linus Trovalds) นกศกษาภาควชาวทยาการคอมพวเตอร (Computer Science) ในมหาวทยาลยเฮลซงก ลนส เหนวาระบบมนกซ (Minix) ทเปนระบบยนกซบนพซในขณะนน ซงท าการพฒนาโดย ศ. แอนดรว ทาเนนบาวม (Andrew S. Tanenbaum) ยงมความสามารถไมเพยงพอแกความตองการ จงไดเรมตนท าการพฒนาระบบยนกซของตนเองขนมาโดยจดประสงคอกประการ คอ ตองการท าความเขาใจในวชาระบบปฏบตการคอมพวเตอร
5
ดวย เมอเขาเรมพฒนาลนกซไปชวงหนงแลว เขากไดท าการชกชวนใหนกพฒนาโปรแกรมอน ๆ มาชวยท าการพฒนาลนกซ ซงความรวมมอสวนใหญกจะเปนความรวมมอผานทางอนเทอรเนต
ลนกซจะเปนคนรวบรวมโปรแกรมทผพฒนาตาง ๆ ไดรวมกนท าการพฒนาขนมาและแจกจายใหทดลองใชเพอทดสอบหาขอบกพรอง ทนาสนใจกคองานตาง ๆ เหลานผคนทงหมดตางกท างานโดยไมคดคาตอบแทน และท างานผานอนเทอรเนตทงหมด
ปจจบนเวอรชนลาสดของระบบลนกซทไดประกาศออกมาคอ เวอรชน 2.6.25 ขอสงเกตในเรองเลขรหสเวอรชนนกคอ ถารหสเวอรชนหลงทศนยมตวแรกเปนเลขคเชน 2.0.x, 2.2.x เวอรชนเหลานจะถอวาเปนเวอรชนทเสถยรแลวและมความมนคงในระดบหนง แตถาเปนเลขคเชน 2.1.x, 2.3.x จะถอวาเปนเวอรชนทดสอบ ซงในเวอรชนเหลานจะมการเพมเตมความสามารถใหม ๆ ลงไป และยงตองท าการทดสอบหาขอผดพลาดตาง ๆ อย
2.3 Netfilter/ IPTABLES [6] Netfilter นนเปนสวนทส าคญของลนกซเคอรเนลในดานของเรองความปลอดภย (Security),
Packet Mangling และ Manipulation เบองหนาของ Netfilter คอ iptables ซงจะเปนตวบอกเคอรเนลวาผใชตองการไอพแพคเกตแบบไหนหรออยางไรบางทจะเขามาสลนกซ ลกษณะการใชงานสวนใหญส าหรบ Netfilter คอ Packet Filtering, Network Address Translation (NAT) แตกถกใชในลกษณะการท างานอนๆอกเชน Packet Mangling Layer 7 Filtering เปนตน
Netfilter นนอาจจะดงายในการใชงานเรมตนแตจรงๆแลวมนดเขาใจยากในกระบวนการการท างาน โดย Netfilter จะมตาราง(Table) ซงแตละTable กจะม Rule ทเปนคา Default อยจะเรยกวา Chain โดยTable ทเปน Default นจะถกโหลดเขาไปในเคอรเนลแบบอตโนมตซงกคอ Filter Table จะประกอบไปดวย
- INPUT ประกอบดวย Rule ส าหรบกรองแพคเกตทจะเขามาท Linux Box - FORWARD ประกอบดวย Rule ส าหรบแพคเกตทเขามาลนกซแลวสง ตอไปให IP Address
ทเครองอนๆ - OUTPUT ประกอบดวย Rule ส าหรบกรองแพคเกตทสรางจาก Linux Box ไปยงเครองอน
6
รปท 2.1 iptables Flow Diagram
จากรปท 2.1 แสดงถงการท างานของ Iptables เมอมแพคเกตเขามาท Table และ Chains ตางๆ โดยจะมโมดล NAT และ Mangle ถกโหลดเขาสเคอรเนลโดยอตโนมตตามคา Default เมอมแพคเกตผานเขามาสลนกซอนดบแรก mangle table PREROUTING chain จะท าการตรวจสอบ ซงตรงจดนเราสามารถแกไขคาตางๆของไอพแพคเกตไดดวย mangle table เชน แกไข TOS byte, Marking Packet เปนตน ถดมาเมอแพคเกตผานถง PREROUTING Chain ของ NAT Table เราสามารถทจะท า DNAT, Port Redirection ได ซง DNAT จะใชส าหรบการแปลง Public IP Address มาเปน Private IP
7
Address หลงจากทผาน Chains มาแลว 2 Chains ลนกซเคอรเนลจะท าการตดสนใจเลอกเสนทางของแพคเกตตรง Routing Process ซงจะท าการตรวจสอบไอพปลายทางจากสวนหวของแพคเกตนน ลนกซจะรวาแพคเกตนนตองการทจะสงไปยงเสนทางอนหรอมเสนทางมาทตวของมนเอง ถาแพคเกตนนมจดหมายปลายทางมาทตวของลนกซเองแพคเกตนกจะผานเขาส mangle table INPUT Chain หลงจากนนกจะเขาส filter table INPUT Chain ซงสามารถทจะกระท าการยอมรบ(Accepted), ปฎเสธ (Rejected) หรอ ละทง (Dropped) แพคเกตนน ถาแพคเกตไดรบการยอมรบแลว ลนกซกจะสงการตอบสนองตอแพคเกตนนโดยจะสงผานไปท mangle table OUTPUT chain เปนอนดบแรก ตอมาแพคเกตกจะเขามาส nat table OUTPUT Chain และ filter table OUTPUT Chain มาถงตรงจดน mangle table POSTROUTING Chain และ nat table POSTROUTING Chain จะท าการตรวจสอบและแพคเกตกพรอมทจะถกสงออกจากอนเตอรเฟสของลนกส
2.4 Authentication ปจจบนนระบบเครอขายอนเตอรเนตมความนยมใชกนอยางแพรหลาย และนบวนยงเพมมากขน
เรอยๆ ประกอบกบการท าอาชาญกรรมทางคอมพวเตอรจะเพมมากขนเปนเงาตามตวดวย ซงท าความเสยหายใหกบบคคลและองคกรตางๆมากขนดวย เมอกอนการกระท าผดแตละครงไมสามารถตรวจสอบหาผกระท าความผดได รฐบาลจงไดมการออก พระราชบญญตวาดวยการกระท าความผดเกยวกบคอมพวเตอร พ.ศ. 2550 ซงมการระบใหผใหบรการเครอขายในลกษณะ เชน Proxy Server, NAT (Network Address Translation), Proxy Cache, หรอ Cach Engine, หรอ WiFi-Hotspot ตองมการเกบขอมลจราจรทอยบนเครอขายอนเตอรเนตของตนไดนน ตองสามารถระบรายละเอยดของผใชบรการระบบเครอขายอนเตอรเนตเปนรายบคคลไดจรง (Identification and Authentication)
Authentication เปนวธการทใชในการตรวจสอบตวตนของผใชงานระบบเครอขายอนเตอรเนต โดยทวไประบบจะท าการตรวจสอบจาก username และ password วาถกตองไหม จดประสงคหลกๆของการ Authentication คอการพสจนตวตนวาบคคลคนนนไดรบการอนญาตใหใชงานเครอขายอนเตอรเนตนนหรอไม ถาอนญาตกมการตรวจสอบสทธวามสทธใชไดนานเทาไร ซงเมอหมดเวลาระบบกจะท าการตดผใชนนออกจากระบบทนท และยงสามารถ upload หรอ download ไดดวยความเรวเทาไร เพอก าหนดความเรวและเวลาในการใชงานใหเหมาะสม ทงยงสามารถเกบขอมลการใชงานของผใชนนๆใหเปนไปตาม พระราชบญญตฯ ดวย ดงนน Authentication จงเปนสวนส าคญทขาดไมไดส าหรบการใชงานระบบเครอขานอนเตอรเนตในปจจบน เพราะ "เปนเครองพสจนตวตนวาคณคอใคร"
2.4.1 มาตรฐาน 802.1x และ RADIUS
[3] มาตรฐาน 802.1x เปนมาตรฐานใหมส าหรบ MAC Layer ทใหใชในการตรวจสอบผใชงานระบบเครอขายทงในระบบ LAN และ WLAN ใหมความปลอดภยสงยงขน ในกรณทมผของใชเครอขาย (Supplicant) จะตองมการแสดงหลกฐานประกอบการตรวจสอบ (credential) กบอปกรณแมขาย
8
(Authenticator) หลงจากนน Authenticator จะสงหลกฐานดงกลาวไปให Authentication Server(RADIUS) ซงเปนระบบทใชส าหรบท าการตรวจสอบขอมลผใชกบดาตาเบส วธนจะเปนไปตามโปรโตคอลทเรยกวา EAP (Extensible Authentication Protocol) ดงรปท 2.2
รปท 2.2 ลกษณะการท างาของ 802.1x
2.4.2 EAP (Extensible Authentication Protocol)
EAP (Extensible Authentication Protocol) ถกระบไวใน RFC 2284 และน าไปใชงานครงแรกกบ PPP (Point to Point Protocol) และไดมการรองรบโปรโตคอล 802.3 และ 802.11 เพมขนในเวลาตอมา ซง EAP เปนการ encapsulation ทท างานอยบน Link Layers มลกษณะสถาปตยกรรมดงรปท2.3
รปท 2.3 EAP architecture ซงในปจจบนนไดมการพฒนา โปรโตคอลEAP ขนมาหลายรปแบบ ซงสามารถหาขอมลเพมเตมไดท http://en.wikipedia.org/wiki/Extensible_Authentication_Protocol โดยมหลกๆ คอ - EAP-MD5 ถกระบไวใน RFC 3748 ซงเปนโปรโตคอลเดยวทท าตามกฎ EAP ท IETF Standard ระบไว โดยหลกฐานทสงผานไปยง RADIUS Server นน คอ username และ password จะถกเขารหสดวย MD5 (Message-Digest algorithm 5 ซงเปน hash function มคา hash 128 bits อางองตามมาตรฐาน RFC 1321) การใช EAP-MD5 ชวยแกไขปญญหาเรองการตรวจสอบผใชในเครอขายใหมความปลอดภยมากขน แตไมไดชวยแกไขความไมปลอดภยของการใชรหสลบเครอขาย
9
(WEP Key) ซงมความคงท (static) ดงนนถามผโจมตสามารถท าการดกจบขอมลและเจาะรหสของเครอขายซงมความคงทได ถงแมจะมการใช EAP-MD5 เมอผโจมตทราบรหสลบของเครอขายแลวกจะสามารถเขาใจขอมลทรบสงกนกอาจจะทราบ username และ password ไดไมยากเลย และมขอบกพรองอกอยางหนงคอ ผใช(Supplicant) ไมสามารถตรวจสอบอปกรณแมขาย (Authenticator) ได ซงอาจท าใหผโจมตอาจจะท าการปลอมตวเปนเครองแมขายเสยเอง ท าใหผใช(Supplicant) เขาใจผดวาเปนเครองแมขายจรงๆได - EAP-TLS (Transport Layer Security) ถกระบไวใน RFC 5216 ซงไดรบการพฒนาขนมา โดยบรษท Microsoft โดยโปรโตคอลนจะไมไดใช username และ password ในการตรวจสอบผใช แตจะใช X.509 certificates แทน ซงการท างานของโปรโตคอลนจะอาศยการสงคา PKI (Public-Key Infrastructure) ผาน SSL (Secure Sockets Layers) มายง EAP เพอใชในการก าหนดคา WEP-Key ส าหรบผใช(Supplicant) และผใชสามารถตรวจสอบตวตนของเครองแมขาย (Authenticator)ได โดยโปรโตคอล EAP-TLS นสามารถตรวจสอบตวตนไดทงผใชและเครองแมขาย(Mutual Authentication) แตอยางไรกตามกยงมปญหาหลกของ EAP-TLS คอ ความยงยากและคาใชจายในการตดตงและบรหารจดการระบบ PKI certificate - EAP-TTLS (Tunneled Transport Layer Security) ถกพฒนาตอมาจาก EAP-TLS โดย บรษท Funk Software และ Certicon Corp. โปรโตคอลนสามารถรองรบขาม platforms ได ซงโดยปกตจะไมรองรบ Microsoft Windows แตเราสามารถลงโปรแกรมเพมเพอใหรองรบการท างานของโปรโตคอลน เชน โปรแกรม SecureW2 เปนตน โดยหลการท างานของ EAP-TTLS คอจะมการตรวจสอบเครองแมขาย(Authenticator) โดยใช certificate แตในขณะทผใช(Supplicant) จะถกตรวจสอบโดยการใช username และ password ซงมความปลอดภย EAP-TTLS จะนอยกวา EAP-TLS และทส าคญ EAP-TTLS อาจจะไมไดรบความนยมมากนกในเวลาตอไป อนเนองมาจาก Microsoft และ Cisco ไดรวมมอกนพฒนาโปรโตคอลขนมาใหมชอวา PEAP(Protected EAP) ซงมลกษณะการท างานทเหมอนกบ EAP-TLS ทกลาวมาแลว - LEAP Lightweight Extensible Authentication Protocol) หรอ EAP-Cisco Wireless ไดรบการพฒนาขนโดยบรษท Cisco ซงมหลกการท างานในการสงผานขอมลเกยวกบ username และ password ของผใช(Supplicant) ไปยง Radius Server เพอท าการตรวจสอบ เมอตรวจสอบแลว LEAP จะเปนตวบรหารจดการรหสลบของเครอขาย(WEP-Key) ใหมการแลกเปลยนกน นนคอเมอผใชผานการตรวจสอบเรยบรอยแลวกจะไดรบ WEP-Key เพอใชในการเขารหสขอมลส าหรบผใชนนๆ ซงหมายความวา WEP-Key ของแตละคนจะไมเหมอนกน โดยท Radius Server ยงสามารถก าหนดอายการใชงานของแตละ session ได จงท าให WEP-Key ของผใชแตละคนเปลยนคาไปไดทกชวงเวลาสนๆทก าหนดไว นอกจากน LEAP ยงสามารถก าหนดใหมการตรวจสอบทงเครองแมขายและผใช(Mutual Authentication) ได เพอปองกนผโจมตปลอมตวเปนเครองแมขายหลอกลอผใชใหมาเชอมตอ แตอยางไรกตามยงมขอเสยคอ ในปจจบน LEAP ถกจ ากดอยแตผลตภณฑของCisco เทานน
10
2.4.2.1 EAP Packet Format รปแบบของ EAP packet ทใชโปรโตคอล PPP links ในระดบ Link Layers เพอน าพาเฟรม
PPP โดยมตวเลขโปรโตคอล คอ 0xC227 ซงโปรโตคอล EAP ไมไดรองรบการท างานแคโปรโตคอล PPP อยางเดยว แตยงรองรบโปรโตคอล 208.3 และ 802.11 ดวย ดงรปท 2.4
รปท 2.4 EAP packet format code field : เปน field แรกของ packet มขนาด 1 byte ใชระบชนดของ EAP packet ซงใชควบคกบ Data field ในการแปลความหมายของ packet ดวย code 1 : Request code 2 : Response code 3 : Success code 4 : Failure Identifier field : มขนาด 1 byte ใชควบคกบ request, response ซงถามการ retransmission คา Identifier จะเปนคาเดม แตถาเปนการสงใหมจะเปนคาใหม Length field : มขนาด 2 bytes ซงเปนระบจ านวน packet ทงหมดของ frame Data field : ขนาดของ field ขนอยกบชนดของ packet, Data field อาจจะไมมกได แลวแตชนดของ packet การแปลความหมายขอมลใน Data field ขนอยกบคาของ code field วาเปนชนดใด
2.4.2.2 EAP Requests and Responses เปน packet ทใชในการ Requset และ Response ระหวาง Access Client กบ Authenticator โดยใน Code field ถาเปน "1" จะใชส าหรบ packet Request และ "2" จะใชส าหรบ packet Response และคาใน Identifier และ Length จะเปนดงทกลาวในหวขอกอนหนาน และในสวนของขอมลทอยใน Data field กขนอยชนดของ packet นน ดงรปท 2.5
11
รปท 2.5 EAP Request and Response packets Type field : มขนาด 1 byte เปนการแสดงลกษณะของการ request หรอ response ในแตละ packet วาตรงกนหรอไม เมอมการสง packet request พรอมกบ authentication method ออกไป packet response ทตอบกลบตองตรงกบทตองการ แตถาไมตรงกน อปกรณปลายทางกจะตองมการสง NAK เพอทจะแนะน า authentication method ใหมมาให คา Type code ทมคาเทากบ 4 หรอมากกวา จะเปน code ทแสดง authentication method โดยมคา Type code ตางๆดงน
Type code 1 : Identity โดยทวไป authenticator จะใชใน packet แรกทเรม request และ เปน packet แรกท user response ตอบกลบ
Type code 2 : Notification เปน code ท authenticator ใชสง message ไปหา user เปนการจดเตรยมขอมลตางๆให user เชน password expire เปนตน เมอมการสง notification request มาแลว ตองมการสง response กลบดวย ขนาดของ Type-Data มขนาดเปน 0
Type code 3 : NAK ใชส าหรบแนะน า authentication method ใหม เมอ authenticator สง challenge โดยการเขารหสตามชนดของ type code นน(Type code 4 หรอ สงกวา) ถา user ไมสามารถรองรบ method นนได userกจะสง NAK พรอมทง method ใหมทใสไวใน Type-Data กลบไปใหกบ authenticator
Type code 4 : MD-5 Challenge เปนการใช MD-5 ในการท า challenge ซงมระบไวใน RFC 1994 การ challenge ระหวาง authenticator กบ user จะใช shared secret ทเราตงคาใหเหมอนกนทงคท าการ challenge โดย EAP ทก protocol รองรบ MD-5 Challenge
Type code 5 : One-time password (OTP) เปนการก าหนดโดย RFC 1938 Type code 6 : Generic Token Card เปนการใช Token card เชน RSA's SecureID เปนตน Type code 13 : TLS เปนการใช Transport Layer Security ส าหรบ authentication เพอ
ปองกนการดกจบ packet และมการท า mutual authentication ดวย Type-Data field : ขนาดและขอมลของ field นจะขนอยกบ Type ของ packet นนๆ
2.4.2.3 EAP Successs and Failure
สดทายแลวเมอมการท า EAP exchange เสรจแลว ผลท user ไดรบ กคอ Success หรอไมก Fail ซง authenticator จะพจารณาจากการแลกเปลยนขอมลกนวาส าเรจหรอไม โดย Success(code 3) หรอ Failure(code 4) ดงรปท 2.6
12
รปท 2.6 EAP Success and Failure packets
รปท 2.7 Simple EAP Challenge รปท 2.7 เปนการแสดงลกษณะ Time Diagram ของตวอยางการท า EAP Challenge มการท างานดงน
1. Authenticator สง Request/Identity packet ไปยง user โดยระบตวตนของ user 2. User เกบขอมลตางๆของตน สงกลบมาใน Response/Identity message
13
3. เมอ Authenticator ไดรบขอมล User แลว Authenticator ท าการ challenge กบ User ในทนใช MD-5 สงกลบใน Request/MD-5 packet
4. User มการ config ใหใช token card ในการท า authentication โดยการ reply packet Response/NAK เพอแนะน า Authenticator วาใช Generic Token Card
5. Authenticator สง Request/Generic Token Card เพอของ sequence number ของ card 6. User สง Response/Generic Token Card (bad) ไปให Authenticator ท าการตรวจสอบ 7. ขอมลท User สงมานนไมถกตอง Authenticator สามารถท า multiple authentication
Request ซง Authenticator สง Request/Generic Token Card packet ครงทสองออกไปอก 8. User สง Response/Generic Token Card(good) กลบมาอกครง ครงนถกตอง 9. Authenticator น าไปตรวจสอบ เมอถกตองแลว ท าการสง Success Packet กลบมาให User
2.4.2.4 EAPOL Encapsulation
ดงทไดกลาวมาแลววา IEEE 802.1x นนสามารถน าไปใชในการท า authentication ไดทง IEEE 802.3 (Ethernet) และ IEEE 802.11 (Wireless) ซง โปรโตคอล EAP ทท างานบนระบบ LANs เราเรยกวา EAP over LANs (EAPOL) และ โปรโตคอล EAP ทท างานบนระบบ wireless เราเรยกวา EAP over wireless (EAPOW) ซ งส วนท ท าก ารตดตอก นร ะหว า ง Supplicant(User) กบ Authenticator เราอาจจะเรยกสวนนวา "front end" และสวนทท าการตดตอกนระหวาง Authenticator กบ RADIUS Server เราอาจจะเรยกวา "back end" โดยใช RADIUS Protocol หรอบางเอกสารจะเรยกวา "EAP over RADIUS" ดงรปท 2.8
รปท 2.8 EAPOL packets
MAC header : ประกอบดวย Destination MAC และ Source MAC Ethernet Type : มขนาด 2 byte ซงถาเปน EAPOL จะมเปน code 88-8e Version : เปน version 1 Packet Type : เปนการก าหนดชนดของรปแบบ packet EAPOL มอยดวยกน ดงตาราง
14
ตารางท 1 Packet Type EAPOL
Packet Type Name Description 0000 0000 EAPOL-Packet ใชระบวาเปน EAPOL-Packet 0000 0001 EAPOL-Start supplicant เรมสงpacketให Authenticator เพอ
ท าการ challenge 0000 0010 EAPOL-Logoff เปน Frame เพอยตการเชอมตอ 0000 0011 EAPOL-Key เปน Frame ทใชส าหรบแลกเปลยนรหสกน 0000 0100 EAPOL-Encapsulated-ASF-Alert The Alerting Standards Forum ใชส าหรบสง
Frame เตอนตางๆเชน SNMP Packet Body Length : ใชบอกขนาดของ Frame ซงขนอยกบขอมลใน Frame นน ยกเวน
EAPOL-Start และ EAPOL-Logoff FCS : Frame Check Sequence มขนาด 4 byte
รปท 2.9 Typical EAPOL exchange
15
ดงรป 2.9 เปนลกษณะการ authentication ท successful โดยเรมจากสถานะของ port เปน unauthorized ดงนนการ access เครอขายยงโดน block อย โดยมสเตปการท างานดงน
1. Supplicant เรมท าการแลกเปลยนขอมลตามโปรโตคอล 802.1x exchange โดยการสง EAPOL-Start
2. โดยปกต Authenticator จะตอบกลบดวย EAP-Request/Identity 3. Supplicant ท าการสงกลบดวย EAP-Responce/Identity Frame แลวตว Authenticator ท า
การสงผานไปยง RADUIS Server ดวย Radius-Access packet 4. RADIUS Server สง EAP-Access-Challenge packet กลบไปยง Authenticator ผานไปยง
Supplicant เปน EAP-Request ซงเปนการขอการ Challenge ทตรงกบท Supplicant ม 5. Supplicant สง EAP-Response กลบมายง Authenticator และท าการแปลงเปน Radius-
Access-Request กลบไปยง RADIUS Server ซงเปนการ response challenge กลบมาอยใน data field
6. RADIUS Server อนญาตการเขาใชเครอขาย โดยการตอบ Radius-Access-Accept packet กลบมา จากนน Authenticator สง EAP-Success กลบไปให Supplicant ซง port อยในสถานะ authorized ซงผใชงานจะสามารถเรมเขาใชงานเครอขายได โดยการจาย IP ดวย DHCP กจะอยตรงจดนดวย
7. เมอ Supplicant หยดการเขาใชงานเครอขายแลวกจะสง EAP-Logoff
2.4.2.5 EAPOW Encapsulation ดงรปท 2.10 EAPOW Encapsulation เปนการ encapsulation โปรโตคอล EAP ทท างานอยบน wireless ซงเปนโปรโตคอล 802.11 ซงมลกษณะการท างานจะคลายๆกบ EAPOL ทท างานบน โปรโตคอล 802.3 โดยจะมสวนทแตกตางกนคอ 1. Supplicant สง Association Request ไปยง Authenticator ซงอาจจะเปน Access point
หรอ Switch กได 2. Authenticator ท าการสง Association Response กลบมายง Supplicant 3. สวนทเหลอตงแตขนตอนท 3 - 8 จะเหมอนกบสวนของ EAPOL และในสวนขนตอนท 9 เมอผานการท าการตรวจสอบทกอยางแลวอนญาต Authenticator กจะท าการสง WEP ให Supplicant
16
รปท 2.10 Typical EAPOW exchange
2.4.3 RADIUS (Remote Authentication Dial-In User Service) [1] RADIUS เปนโปรโตคอล networking ทท าหนาทเปนศนยกลางในการบรหารจดการ
เกยวกบการ Authentication, Authorization, Accounting (AAA) ส าหรบผใชทจะท าการขอเขาใชงานเครอขาย โดยท RADIUS ไดถกพฒนาขนจากบรษท Livingston Enterprises, Inc., ในป ค.ศ. 1991 และในเวลาตอมาไดถกบรรจไวเปน IEIF standards
RADIUS มลกษณะการท างานเปนแบบ Client/Server ซงท างานอยบน Application Layer โดยทระดบ Transport Layer มการใชงาน UDP port ซงถกก าหนดไวคอ UDP port 1812 ส าหรบ RADIUS Authentication (อางองจาก RFC 2865) และ UDP port 1813 ไวใชส าหรบ RADIUS Accounting (อางองจาก RFC 2866) โดย port ดงกลาวไดถกก าหนดโดย IANA(Internet Assigned Number Authority) ใหเปนคา port มาตรฐานการใชงานของ RADIUS protocol ดงรปท 2.11
17
รปท 2.11 โครงสรางการท างาน RADIUS
2.4.3.1 องคประกอบพนฐานของ RADIUS Access Clients คอ เครองคอมพวเตอรหรออปกรณทผใชใชสงงานใหตดตอกบเครอขาย โดยอาจจะใชโปรแกรม Dial-Up Networking สงงานให Modem connect เพอใชงานอนเตอรเนต NAS(Network Access Server) คออปกรณทท าหนาทในการเชอมตอและจดการตดตอระหวาง Access Clients กบ RADIUS Server โดยท NAS จะท าหนาทเปน client ของ RADIUS Server สวนอปกรณทคอยท าหนาทเปน RADIUS Client ไดแก NAS, RAS, Router, Firewall, Wireless Access Point เปนตน ทคอยสงผานและจดการขอมลทใชในการตรวจสอบสทธ และก าหนดสทธของ Access Clients โดยเมอ Access Clients ตองการใชงานเครอขายกจะท าการสงค ารองขอไปยง NAS โดยผานโปรโตคอลทใชส าหรบการเชอมตอตางๆ เชน PPP(Point-to-Point Protocol), SLIP(Serial Line Internet Protocol), EAP(Extensible Authentication Protocol) เปนตน ซงสงท Access Clients จ าเปนทจะตองสงให NAS กจะเปน username และ password หลงจากท NAS ไดรบแลวกจะท าการสงตอไปให RADIUS Server โดยขอมลท NAS สงไปนนอาจจะประกอบดวย usernsme, password, NAS IP Address, NAS Port Number และขอมลอนๆ เพอท RADIUS Server ใชในการตรวจสอบสทธในการขอเขาใชระบบของ user นนๆ
18
RADIUS Server คอ Server ทท าหนาทในการตรวจสอบสทธของการขอเขาใชงานของ user ทสงมาจาก NAS กบฐานขอมลทอยทตว RADIUS Server เอง หรอจะเปนฐานขอมลจากภายนอกอนๆ เชน MS-SQL Server, Oracle, Database, MySql, LDAP Database เปนตน หลงจากไดขอมลตางๆจนครบแลว และท าการตรวจสอบสทธเรยบรอยแลว RADIUS Server กจะสงผลกลบมายง NAS เปน (Access-Accept) ถาขอมลนนถกตองและไดรบอนญาต หรอ (Access-Reject) ถาขอมลนนไมไดรบอนญาต ตอไป NAS กจะท าการเชอมตอหรอยกเลกการเชอมตอตามท RADIUS Server ไดสงมา โดยทวไปแลว NAS จะมการสงขอมลตางๆ เชน วนท เวลาท username นนใชงาน เพอทจะให RADIUS Server ท าการจดเกบในฐานขอมลดวย ดงรปท 2.12
รปท 2.12 การแลกเปลยนขอมลระหวาง Access Clients, NAS, Radius Server
2.4.3.2 RADIUS Shared Secret RADIUS Shared Secret เปนสงทส าคญและจ าเปนส าหรบการตรวจสอบความถกตองของการตดตอกนระหวาง RADIUS Server กบ NAS หรอ RADIUS Client ซง Shared Secret จะเปนตวอกษร(ตวเลกตวใหญมความแตกตางกน) หรอตวเลข โดยจะตองมการก าหนดใหตรงกนทง RADIUS Server และ Radius Client แต RADIUS Client แตละตวไมจ าเปนจะตองก าหนดใหเหมอนกน ในกรณทระบบม RADIUS Client หลายตวอยรวมกน RADIUS Shared Secret มการก าหนดคาได 2 ตว คอ Authentication Shared Secret Accounting Shared Secret ในการท า Authentication ไดมการจดสง Packet Access-Request ระหวาง NAS กบ RADIUS Server ซงในนนกจะม password อยดวย จงจ าเปนทจะตองมโปรโตคอลในการเขารหสเพอความปลอดภยของขอมลดวย โดยโปรโตคอลทนยมใชกนคอ PAP, CHAP, EAP ในสวนของการท า Accounting นนจะไมมการท า Encrypt ขอมล แต RADIUS Server จะใช Shared Secret ในการตรวจสอบความถกตองของ NAS ทจะตดตอดวย
19
2.4.3.3 RADIUS Packet Structure RADIUS Packet เปนรปแบบขอมลทใชรบสงกนระหวาง RADIUS Server กบ RADIUS Client(NAS) ซงไดมการก าหนดรปแบบไวตามมารตฐาน RFC 2865 (Remote Authentication Dial In User Service (RADIUS)) และ RFC 2866 (RADIUS Accounting) โดยมคณสมบตดงน - เปนขอมลทใชรบ-สงกนระหวาง RADIUS Server กบ RADIUS Client - ลกษณะรปแบบเปนการรองขอและตอบกลบ (Request/Response) คอ RADIUS Client สงการรองขอไปยง RADIUS Server และ RADIUS Server กตอบกลบการรองขอนนของ RADIUS Client - แตละ packet จะตองระบจดประสงคของการตดตอ Authentication หรอ Accounting - แตละ packet มการบรรจขอมลทเรยกวา Attributes ซงใชในการตรวจสอบสทธ การก าหนดสทธ และการเกบบนทกขอมลการใชงาน รปแบบของ packet RADIUS มรปแบบดงแสดงในรปท 2.13
รปท 2.13 Packet Structure - Code field (1 byte) เปนการก าหนดชนดของ message ดงในตารางท 3 - Identifier field (1 byte) เปนฟลดทชวยเหลอในการ request และ reply ซงมคาเดยวกบ message request และ reply - Length (2 byte) เปนคาแสดงความยาวของ packet message ทงหมด - Authenticator field (4 byte) ใชในการระบวาเปน message ทสงกลบจาก RADIUS Server ทถกตอง โดยคานใน Access-Request packet จะเปนคา RADIUS Client สมขนมา และน าคานไปเขารหสลบกบรหสผานของผใช ดวยคยทตรงกนทง client และ server และผลทไดจะน าไปใสใน Attributes username/password ใน message Access-Request - Attributes field เปนฟลดทใชบรรจขอมลการ Authentication, Authorization, configuration ซงไดมมาตรฐานก าหนดไวใน RFC 2138
20
ตารางท 2 RADIUS Code
Code Assignment 1 Access-Accept 2 Access-Accept 3 Access-Reject 4 Accounting-Request 5 Accounting-Response 11 Access-Challenge 12 Status-Server (experimental) 13 Status-Client (experimental) 255 Reserved
2.4.3.4 RADIUS Attributes รปแบบของ RADIUS Attributes มรปแบบดงแสดงในดงรปท 2.14
รปท 2.14 RADIUS Attributes
ตารางท 3 Attributes Code
Code Assisgnment 1 User-Name
2 User-Password
3 CHAP-Password
4 NAS-IP-Address
5 NAS-Port
6 Service-Type
7 Framed-Protocol
21
8 Framed-IP-Address
9 Framed-IP-Netmask
10 Framed-Routing
11 Filter-Id
12 Framed-MTU
13 Framed-Compression
14 Login-IP-Host
15 Login-Service
16 Login-TCP-Port
17 (unassigned)
18 Reply-Message
19 Callback-Number
20 Callback-Id
21 (unassigned)
22 Framed-Route
23 Framed-IPX-Network
24 State
25 Class
26 Vendor-Specific
27 Session-Timeout
28 Idle-Timeout
29 Termination-Action
30 Called-Station-Id
31 Calling-Station-Id
32 NAS-Identifier
33 Proxy-State
34 Login-LAT-Service
35 Login-LAT-Node
36 Login-LAT-Group
37 Framed-AppleTalk-Link
38 Framed-AppleTalk-Network
39 Framed-AppleTalk-Zone
40 Acct-Status-Type
41 Acct-Delay-Time
22
42 Acct-Input-Octets
43 Acct-Output-Octets
44 Acct-Output-Octets
45 Acct-Authentic
46 Acct-Session-Time
47 Acct-Input-Packets
48 Acct-Output-Packets
49 Acct-Terminate-Cause
50 Acct-Multi-Session-Id
51 Acct-Link-Count
52-59 (reserved for accounting)
60 CHAP-Challenge
61 NAS-Port-Type
62 Port-Limit
63 Login-LAT-Port
Attributes ทส าคญคอ - Service-type เปน Attribute ทใชก าหนดชนดของ service ทผใชรองขอ เชน Login, Framed, Callback login, Callback framed, Outbound, Administrative, NAS prompt เปนตน - Framed-MTU เปน Attribute ทใชก าหนดขนาดของ MTU ส าหรบผใช - Login-IP-Host เปน Attribute ทใชในการระบถง host ทจะท าการ login - Login-Service เปน Attribute ทใชในการก าหนด service ทใชในการเชอมตอของผใชเขาส host เชน Telnet, Rlogin เปนตน - Callback-Number เปน Attribute ทใชในการก าหนดหมายเลขโทรศพททใชในการ callback - Frame-Route เปน Attribute ทใชในการแจงขอมลเกยวกบ routing ทสงใหกบผใชท NAS เชน destination address หรอ gateway address - Session-Timeout เปน Attribute ทใชในการก าหนดเวลา(หนวยเปนวนาท) ของบรการกอนทจะปดการเชอมตอของ session หรอตอบกลบจาก prompt - Idle-Timeout เปน Attribute ทใชก าหนดเวลา(หนวยเปนวนาท) ทไมมการตดตอสอสาร(idle) กอนทจะท าการตดการเชอมตอ - Terminetion-Action เปน Attribute ใชก าหนดการท างานของ NAS เมอสนสดการใชบรการ
23
2.4.4 AAA Server(Authentication Authorization,Accounting Server) RADIUS Server ใชหลกการแนวความคด AAA ในการจดการการเขาใชเครอขายของเครองลกขาย โดยมหนาหลกๆคอ
Authentication การพสจนตวตนทแทจรง Authorization การตรวจสอบสทธของผใช Accounting การเกบขอมลการใชงานของผใช
ขอดของการใช Radius Server คอ - ชวยลดขอจ ากดเรองปรมาณการจดเกบ username และ password ของ user ทใชงานทเกบไวใน RAS ซงมหนวยความจ าทจ ากด ไปเกบไวใน Radius แทน - ชวยลดความยงยากในการจดการ Account ของระบบ เนองจาก RADIUS เปนระบบทมลกษณะการท างานแบบศยกลาง(centralized) username และ password สามารถจดเกบไวทเดยวกนทงหมดได ท าใหชวยลดความผดผลาดและไมตรงกนของ Account เดยวกนได - สามารถใชงาน Account เดยวกนกบ หลายๆ Service ได เนองจาก RADIUS ถอไดวาเปนระบบ single sign-on ดวย - ลดความยงยากในการจดเกบ Account Log ของผใชได - สามารถท า Proxy RADIUS ได หมายความวา RADIUS ทท าหนาทเปน Proxy RADIUS จะไมการตรวจสอบ username และ password แตจะสงตอไปยง Taget RADIUS ท าการตรวจสอบแทน - มความยดหยนในการท างาน เพอตอบสนองความตองการของระบบได เชน สามารถใหผใชเปลยน password ดวยตวเองได
2.5 Chillspot Chillispot เปน package opensource ทท างานอยบน Linux ทมลกษณะการท างานเปนแบบ captive portal ซงนยมน าไปใชเพอท าเปน Gateway ของระบบเครอขาย ดงรปท 2.15
รปท 2.15 แสดงลกษณะการท างานเครอขาย
24
captive portal เปนเทคนดทมการท างานโดยการทเมอ user ขอใชงานอนเตอรเนตกจะถกบงคบใหไปทหนาเวปของการ Authetication ของ chillispot กอน เพอใสคา username, passwod แลวน าไปตรวจสอบกบ RADIUS กอน ถาไดรบอนญาต user กจะสามารถใชงานอนเตอรเนตได ซง Chillispot ม port 3990 เปน port ทเปดรบ request และมการใช iptables เปนตวบงคบการใชงาน
chillispot ยงท าหนาทเปน DHCP Server ในการจาย ip ใหกบเครองลกขายโดยอตโนมตเมอเปดเครองขนมาใหมดวย
2.6 NTP(Network Time Protocol) [1] NTP Protocol เปน protocol ทใชในการปรบเทยบเวลา (Time Synchronization) ของเครอง
คอมพวเตอร โดยผานทางเครอขายอนเตอรเนตกบศนยทใหบรการการสอบเทยบเวลา ซงมอยหลายแหงทวโลก โดยประเทศไทยกจะม หองปฏบตการดานเวลา สถาบนมาตรวทยาแหงชาต คอยท าหนาทดแลเกยวกบเวลาของประเทศไทย NTP Protocol เปนโปรโตคอลทท างานในระดบ Application Layer ท าหนาทในการเทยบเวลากนระหวางอปกรณคอมพวเตอร โดยอางองจาก RFC 778, RFC 891, RFC956, RFC 958, RFC 1305 ในการท างานนนจะตดตอกนผานทาง UDP Port 123 ซงในลกษณะการจายเวลาของ NTP นนมลกษณะการท างานเปนล าดบชน เรยกวา "Clock Strata" โดยมการแบงล าดบดงน ดงรปท 2.16
รปท 2.16 แสดงล าดบชน Stratum
25
Stratum 0 เปนอปกรณทเปนแหลงก าเนดเวลา เชน Atomic Clock, GPS เปนตน Stratum 1 เปนเครองคอมพวเตอรทตอกบกบ stratum 0 โดยผานการเชอมตอในระบบคอมพวเตอร เชน RS-232 เปนตน Stratum 2 เปนคอมพวเตอรทเชอมตอกบเครองแมขาย stratum 1 ผานทางเครอขาย TCP/IP โดยอาจจะตอกบเครองแมขาย stratum 1 มากกวา 1 แหลง เพอรองรบการท างานททดแทนกนได นอกจากนนยงสามารถเทยบเคยงเวลาแบบ peer-to-peer เพอรกษาเวลาใหเทยบเทากนในระดบเดยวกน Stratum 3 เปนคอมพวเตอรทเชอมตอกบเครองแมขาย stratum 2 ผานทางเครอขาย TCP/IP โดยอาจจะตอกบเครองแมขาย stratum 1 มากกวา 1 แหลง เพอรองรบการท างานททดแทนกนได นอกจากนนยงสามารถเทยบเคยงเวลาแบบ peer-to-peer เพอรกษาเวลาใหเทยบเทากนในระดบเดยวกน ซง NTP สามารถรองรบระดบการเทยบเวลาไดถง 16 ระดบ
ตารางท 4 NTP Server ในประเทศไทย NTP Server Address หนวยงาน Clock Strata อปกรณอางอง
203.185.69.60 สถาบนมาตรวทยาแหงชาต
Stratum 1 นาฬกาซเซยม Stratum 0 เทยบดวยคา TAI โดย BIPM (precision ~ 50 nSec)
time.navy.mi.th กรมอทกศาสตร กองทพเรอ
Stratum 1 นาฬกาซเซยม Stratum 0 ท า MOU กบสถาบนมาตรฯ เพอสงคาเทยบกบ BIPM
time.nist.gov Nation Institute of Standards and Technology, US
Stratum 1 นาฬกาซเซยม Stratum 0 เทยบดวยคา TAI โดย BIPM
2.7 Syslogd [6] ในระบบปฎบตการตางๆ Log เปนสงส าคญและจ าเปนทจะตองมเพอทจะใหผดแลระบบสามารถ
ตรวจสอบความผดพลาดหรอขอบกพรองของระบบทเกดขนได หรอใชเปนหลกฐานทส าคญเมอมผละเมดกฎความปลอดภยของคอมพวเตอร Syslogd เปนกลไกทส าคญในการเกบขอมลตางๆของ Kernel และ Application ทท างานอยบนระบบปฎบตการ Linux ซงท างานเปน daemon ทถกตดตงมากบระบบปฏบตการอยแลว ซงอาจจะแตกตางกนไปในแตละระบบ โดยทผดแลระบบสามารถปรบแตงคาตางๆใหเหมาะสมไดแกการใชงาน
26
นนๆได เชน อาจจะเกบ Log ไวแยกประเภทของ Log หรออาจจะสง Log ทงหมดไปเกบไวท Log Server กได Log ทไดจากการควบคมของ Syslogd จะถกก าหนดโดยคา facility และ priority โดยสวนของ facility จะเปนสวนทอธบายถงแหลงก าเนดของ Log นน เชน Log ทสงมาจากเมลกจะม facility เปน mail ในสวนของ priority นน จะเปนสวนของระดบความส าคญของเหตการณทเกดขนส าหรบแตละ facility ดงนนขอมลของ Log ทเกดขนจงจ าเปนจะตองมทง facility และ priority เสมอ
ตารางท 5 แสดงคา facility
Facility ค าอธบาย auth เกยวของกบการท า authentication authpriv การท า private authentication เทานน cron cron daemon daemon system daemon kern สวนของ kernel lpr line printer spooling system mail sendmail และซอฟแวรอนทเกยวกบเมล mark ใหบนทกเวลาขณะทเกดเหตการณดวย news usenet news system security เหมอนกบ auth syslog ขอมล Log ภายในของ syslogd user สวนของการโปรเซสของ user uucp ส ารองไวส าหรบ UUCP Local0-local7 local messages
ตารางท 6 แสดงคา priority
Priority ค าอธบาย emerg ภาวะฉกเฉน alert แจงเตอนเรงดวน crit ลอแหลม err มขอผดพลาด warning ค าเตอน
27
notice ขอสงเกต info ขอมลทวไป debug ใชส าหรบดบก
ในระบบปฏบตการทอยในตระกล Red Hat (Fedora, CentOS) จะมการก าหนดการท างานอยทไฟล /etc/syslog.conf ซงมรปแบบดงน facility.level action facility1,facility2.level action facility1.level;facility2.level action *.level action *.level;facility.none action โดยมความหมายวา เมอ Log ทตรงกบ facility ทก าหนด และมระดบ priority ทเทากบหรอสงกวา กจะท าตาม action ทก าหนดไวดานหลง นนคอคา priority ทตงไวถอวาเปนคาทต าสด ถาเราเลอกคา debug กจะครอบคลม priority ทงหมด
ความหมายของ action นนเปนสงท syslogd กระท าหลงจากเงอนไข facility.priority ตรงกน ซงเราสามารถเลอกไดหลายคา คอ
filename : เกบ Log ทไดลงไฟลทก าหนด @hostname : สง Log ไปเกบไวบน hostname ทก าหนด @ipaddress : สง Log ไปเกบไวบน host ทม ipaddress ทก าหนด user1,user2 : สง Log ใหไปทหนาจอของ user ทก าหนด ถา user นน Login อยในระบบ * : สง Log ใหไปทหนาจอของ user ทงหมดท Login อยในระบบ /dev/console : สง Log ไป console device หรอ device อนๆทตองการ
การใชเครองหมายดอกจน (*) จะใชแทนคาทงหมด ใชไดทง facility และ priority เชน
mail.* /var/log/mail.log คอ ให syslogd ท าการเกบ Log mail ทงหมดทก priority แลวเขยนลงไฟล /var/log/mail.log
การใช none หมายความวา ไมสนใจ facility ทประกาศไวหลง facility นน เชน *.emerg;mail.none /var/log/emerg.log คอ ให syslogd ท าการเกบ Log ทก facility ทม priority เปน emerg ยกเวน facility mail แลวท าการเขยนลงไฟล /var/log/emerg.log การใชเครองหมายเทากบ(=) หมายถง การก าหนดคา priority ทตองการเทานน เชน mail.=info /var/log/mail.log
28
คอ ให syslogd ท าการเกบ Log ทม priority เปน info เทานนเขยนลงไฟล /var/log/mail.log
การใชเครองหมาย(!) หมายถง priority อนทไมใช priority นและสงกวา เชน mail.info;mail.!err /var/log/mail.log คอ ให syslogd ท าการเกบ Log ทม priority เปน info,notice,warning เทานน mail.debug;mail.!=warning /var/log/mail.log
คอ ให syslogd ท าการเกบ Log ทม priority ตงแต debug ขนไปทกระดบ ยกเวน warning
ส าหรบระบบปฏบตการ Fedora Core 8 จะใช rsyslog ซงเปน syslog ทตดตงมากบระบบอยแลว เราสามารถก าหนดคาใหเปน Centralize Log Server เพอท าเปนตวเกบ Log ของระบบได ใหเขาไปแกไข โดยการพมพ (-r)เพมเขาไปทไฟล /etc/sysconfig/rsyslog (SYSLOGD_OPTIONS="-m -r 0") Server เครองนนกจะท าหนาทเปน Log Server โดยจะใช Protocol UDP Port 514 เปนชองทางในการรบ Log จากเครอง Log ทเปนลกขาย ซงเรากตองมการเซตคาทเครองลกขายดวย คอ *.warning;lpr,local1.none @192.168.162.250
ตารางท 7 แสดงรายชอโปรแกรมทใช syslog
Program Facility Level Description amd daemon err-info NFS automounter date auth notice Set the time and date ftpd daemon err-debug FTP daemon gated daemon alert-info Routing daemon halt/reboot auth crit Shutdown programs inetd daemon err,warning Internet super-daemon login/rlogind auth crit-info Login programs lpd ipl err-info BSD line printer daemon named daemon err-info Name server (DNS) nnrpd news crit-notice INN news reader ntpd daemon/user crit-infog Network time daemon password auth err Password-setting program popper local0 notice,debug Mac/PC mail system sendmail mail alert-debug Mail transport system su auth crit,notice Switches UIDs sudo local2 alert,notice Limited su program
29
syslogd syslog, mark err-info Internal errors, timestamps tcpd local7 err-debug TCP wrapper for inetd cron cron,daemon info System task-scheduling daemon vmunix kern varies The kernel
2.8 PHP [4] ปจจบนน PHP ภาษาทไดรบความนยมจากนกพฒนาเวป เพอใชในการพฒนาเวปเพจและเวป
แอพพลเคชน ถงแมวา PHP จะถกสรางขนมาดวยวตถประสงคสวนตวของนกพฒนาโปรแกรมทชอวา Rasmus Lerdoft ในป ค.ศ. 1995 เพอทจะพฒนาโปรแกรมเพอขอมลของผทมาเยยมชมโฮมเพจสวนตวของเขา ซงเขาไดเรยกโปรแกรมนวา PHP (Personal Home Page Tools) โดยการใชภาษา C ทสามารถแยกสวนทเปนภาษา HTML ออกจากสวนทเปนภาษา C เพอแยกประมวลผลแลวท าการสรางโคด HTML ขนใหม และไดเรมแจกจายโคดไปในลกษณะฟรแวร ตอมาจงไดเรมเปดใหผทสนใจเขารวมปรบปรงและพฒนาจนมากลายเปน PHP/FI ทเรมมผนยมมากขน ตอมาจนกระทง Zeev Suraski และ Andi Gutmans ไดรวมกนปรบปรงใหดขนมากมายหลายดาน ทงในดานประสทธภาพ การสนบสนนการเขยนโปรแกรมเชงวตถ และอนๆอกหลายอยาง จนเกดเปน PHP 3 ทไดรบความนยมอยางมากมาย เมอมจ านวนผใชงานมากขน จงมการน าไปใชงานทยงยากสบซอนมากขน อนเปนเหตให Zeev Suraski และ Andi Gutmans ผพฒนา PHP 3 ไดตดสนใจเชยนโคดขนมาใหมทงหมด และไดตงชอวา Zend engine (มาจาก Zeev และ Andi) อนกลายเปนหวใจของ PHP 4 และนบตงแต PHP 5 ถอไดวาเปนการพลกโฉมการเขยนโปรแกรมเชงวตถเมอเทยบกบเวอรชนกอนหนาน นบตงแต ค.ศ. 1995 ท Rasmus Lerdoft ไดใหก าเนด PHP จนถงปจจบน (ค.ศ. 2007) จากการส ารวจของ www.netcraft.com พบวา PHP Module ถกน าไปใชแลวกวา 20 ลานโดเมน และยงมแนวโนมทสดใสมากขน อนเนองมาจากสามารถใชไดกบ Web Server ทหลากหลายแพลตฟอรม PHP เปนภาษาสครปตแบบเซรฟเวอรไซด (server-side script language) หมายถง การประมวลผลจะเกดขนท Server แลวจงสงผลลพธเปนภาษา HTML สงกลบมาใหเครองลกขายเพอแสดงผล ซงเปนการลดภาระการสงถายขอมลจ านวนมากเพอทจะน าไปประมวลผลทเครองลกขาย การเขยนสามารถท าไดโดยการเขยนโคด PHP แทรกลงไปในโคด HTML โดยมรปแบบ คอ <?php…..?> แตในกรณทไมมการเขยนโคด XML รวมดวย กสามารถใชแค <?...?>กได และตองท าการบนทกไฟลเปนนามสกล .php หรอ .phtml ขนอยกบการก าหนดไวในการตดตง Web Server ณ. ปจจบนเมอเรามการตดตง Web Server(apache) ทเปน Linux ใหม กจะม PHP Module ถกตดตงมาใหเรยบรอยแลว หรอเราสามารถดาวนโหลด PHP (source code) มาใชงานไดฟรจาก www.php.net/downloads.php ในสวนของคมอนนสามารถดาวนโหลดไดท www.php.net/docs.php
30
PHP เปนภาษาทเขยนงาย สามารถน ามาใชงานในการท าเวปเพจทจ าเปนตองตอบสนองกบผใชงาน โดบเฉพาะอยางยง PHP มความสามารถในการใขงานขอมล ในฐานขอมลประเภทตางๆมาแสดงบนหนาเวปเพจไดด จงเหมาะแกการน ามาใชงานในการท าเวปบอรด, เวปเมล, ไดนามกเวปเพอประโยชนในทางพานชยอเลกทรอนกส(e-commerce), ตลอดจนเวปแอพพลเคชนเพอใชงานในองคกร
2.8.1 CodeIgniter Web Framework [8] CodeIgniter คอ Framework ส าหรบใชพฒนาแอพพลเคชนหรอเวบ มเครองมอตางๆ
ส าหรบผทใชสรางเวบไซดโดยใชภาษา PHP วตถประสงคเพอชวยใหผใชงานสามารถพฒนาโครงการไดอยางรวดเรว โดยทไมตองเรมเขยนโคดตงแตเรมตน โดยท Codeigniter จะใหชด Library ทมอยซงสามารถเรยกใชงานไดทนท เชนเดยวกบการมอนเตอรเฟสทใชงานงายและโครงสรางทาง Logical ทสามารถเขาใชงานกบ Library ทมมาใหได ซง Codeigniter จะชวยใหผใชงานสามารถสรางโปรเจคโดยทลดปรมาณของโคดทไมจ าเปนในระบบลงได Features ของ CodeIgniter ในสวนนจะแสดงเกยวกบ Feature ของ Codeigniter ทงหมด ซงในสารนพนธฉบบนนนจะใช Feature ของ Model-View-Controller Based System เปนหลกสวน Feature ทเหลอนนมรายละเอยดดงน
Model-View-Controller Based System Extremely Light Weight Full Featured database classes with support for several platforms. Query Builder Database Support Form and Data Validation Security and XSS Filtering Session Management Email Sending Class. Supports Attachments, HTML/Text email, multiple protocols
(sendmail, SMTP, and Mail) and more. Image Manipulation Library (cropping, resizing, rotating, etc.). Supports GD,
ImageMagick, and NetPBM File Uploading Class FTP Class Localization Pagination Data Encryption Benchmarking
31
Full Page Caching Error Logging Application Profiling Calendaring Class User Agent Class Zip Encoding Class Template Engine Class Trackback Class XML-RPC Library Unit Testing Class Search-engine Friendly URLs Flexible URI Routing Support for Hooks and Class Extensions Large library of “helper” functions
Flowchart การท างานของระบบ
รปท 2.17 Flowchart ของ Codeigniter จากรปภาพท 2.17 นนจะแสดงใหเหนถง Flow Chart การท างานของระบบซงอธบายวธการท างานไดดงน 1.เรมจาก index.php ทเปนตวควบคมทางสวนหนา ซงท าการก าหนดคาตงตนของทรพยากรพนฐานทจ าเปนส าหรบการใชงาน Codeigniter 2.Routing จะท าการตรวจสอบ HTTP Request เพอระบวา HTTP ทวงเขามาในระบบนนควรจะน ามนไปท าอะไรตอ
32
3.Caching ถามขอมลทเกบอยในแคชอยแลว มนจะสงขอมลตอบกลบไปยง Browser ทนท โดยทจะขามขนตอนการท างานตามปกตของระบบไป 4.Security กอนท Application Controller จะเรมท ำงำนนนถำม HTTP Request และมการสงขอมลจากผใชงานเขามาในระบบนนแพคเกตเหลานจะถกกรองขอมลเพอความปลอดภยของระบบ 5.Application Controller จะท าการน าเขา Model,Core Libraries,Helper และทรพยากรอนๆทจ าเปนเพอเรมกระบวนการท างานตามทไดมการรองขอมา 6.View เปนกระบวนการสดทายทใชส าหบแสดงขอมลผาน Web Browser ถาขอมลทรองขอมานนมอยใน Caching อยแลวขอมลทอยใน Cach จะถกเรยกใชงานกอนเปนล าดบแรก กระบวนการของ Model-View-Controller Codeigniter นนจะท างานตามรปแบบของ MVC(Model-View-Controller) ซง MVC นนจะมวธการท างานโดยทจะแยกสวนของการประมวลผลและสวนแสดงผลออกจากกน ในทางปฏบตนนกยงสามารถเขยนโคด PHP ลงในสวนแสดงผลได โดยจะขออธบาย MVC ตามรายละเอยดดงน
Model นนจะแสดงใหเหนถงโครงสรางของขอมล ซงโดยปกตนนใน Model Class จะมฟงกชนชวยส าหรบการรบ,เพม และปรบปรงฐานขอมลของผใชงาน
View คอสวนทใชส าหรบแสดงขอมลใหผใชงานเหนโดยแสดงเปนเวบเพจ แตใน Codeigniter นนสวนของ view ยงสามารถใชงานเพอท าหนาทเปน Header หรอ Footer ไดดวยหรออาจเปนแคหนา RSS หรอบางสวนของหนาไดเชนเดยวกน
Controller ท าหนาทเปนตวกลางทตดตอระหวาง Model กบ View และแหลงทมาอนๆทตองการจะเรมกระบวนการ HTTP Request และเรมสรางเวบเพจ
2.9 MySQL [6] ในการพฒนา Web Application ในปจจบนนนมความจ าเปนทจะตองใชระบบฐานขอมลเขา
มาเกยวของในการเกบขอมลตางๆ และน าขอมลมาแสดงผานหนาเวป ซง MySQL มความเหมาะสมทถกน ามาใชงานเนองจากเปน opensource ไมมคาใชจายในสวนของโปรแกรม MySQL เปนระบบฐานขอมลทถกพฒนาโดยบรษท MySQL AB ประเทศสวเดน โดยมผกอตงเปนชาวสวเดนสองคน คอ David Axmark และ Allan Larsson และชาวฟนแลนดอกคน คอ Michael “Monty” Widenius ซงมจดประสงคเพอใหเปน opensource ทมการเปดเผยโคด ภายใต GNU General Public License (GPL)
2.9.1 การก าหนดสทธใหผใชงาน MySQL (Privilege System) ในการใชงาน MySQL โดยทวไปสามารถมการก าหนดใหมผใชงาน Database ไดหลายคน ซงเมอเรมใชงานแรกสดหลงจากการตดตงกจะม User เปน root ท าหนาทเปน Administration ซงท าใหม
33
ระดบการใชงานทสงสด เพอความปลอดภยเราควรจะมการสราง User เพอรองรบการใชงานนนๆ และมการก าหนดสทธใหนอยทสดเทาทจะเปนไปได สทธของ User ทใชงาน MySQL มดวยกน 4 ระดบ คอ สทธของ User ระดบ Global : การก าหนดสทธในระดบโกบอล จะมผลตอทกฐานขอมลใน Server โดยจะถกเกบอยในเทเบล user ของฐานขอมลทชอวา mysql สทธของ User ระดบ Database : การก าหนดสทธในระดบฐานขอมล จะมผลตอทกๆเทเบลในฐานขอมล โดยจะถกเกบอยในเทเบล db และเทเบล host ของฐานขอมลทชอวา mysql สทธของ User ระดบ Table : การก าหนดสทธในระดบเทเบล จะมผลตอทกๆคอลมนในเทเบล โดยจะถกเกบอยในเทเบล table_priv ของฐานขอมลทชอวา mysql สทธของ User ระดบ Column : การก าหนดสทธในระดบคอลมน จะมผลส าหรบแตละคอลมนในเทเบล โดยจะถกเกบอยในเทเบล columns_priv ของฐานขอมลทชอวา mysql ค าสง GRANT ใชในการก าหนดสทธ User มรปแบบ คอ
GRANT priv_type [ (column_list) ] [, priv_type [ (column_list) ]…] ON item TO user_name [IDENTIFIED BY ‘ password ' ] [WITH GRANT OPTION]
ค าสงในวงเลบสเหลยมเปนตวเลอกใสกไดไมใสกได -priv_type คอ ประเภทของสทธ (Privileges) ทจะตองก าหนดใหแกผใช ตองมจลภาคแบงรายการสทธ ซงจ าแนกไดเปน 3 กลม คอ สทธส าหรบผใช, สทธส าหรบผดแลระบบ, สทธอนๆ -columns เปนตวเลอก สามารถใชในการระบสทธกบคอลมน และสามารถใชชอคอลมนเดยว หรอ จลภาคแบงรายการชอคอลมน -item คอ ฐานขอมล หรอ ตารางขอมลในการประยกตสทธใหม การใหสทธกบฐานขอมลทงหมด โดยใช *.* ท item เรยกวา การใหสทธระดบ global การระบ ตารางขอมลทงหมดในฐานขอมลใช dbname.* หรอ ตารางขอมลเดยว ใช dbname.tablename และเจาะจงคอลมนใน column สงเหลานแสดง 3 ระดบของสทธ คอ ฐานขอมล ตารางขอมล และคอลมน ถาก าลงใชฐานขอมลทเจาะจง เมอใชค าสง tablename จะถกขดขวางในฐานะตารางขอมลในฐานขอมลปจจบน
-user_name เปนชอผใชทตองการใหเขาส MySQL ไมจ าเปนตองเหมอนกบชอเขาสระบบ user_name ใน MySQL สามารถเกบชอ host ซงสามารถน าไปแยกระหวาง radius ( ไดรบการแปลเปน radius@localhost ) โดยมประโยชนเพราะผใชจากตาง domain อาจจะมชอเหมอนกน รวมถงการเพมความปลอดภยเพราะสามารถเจาะจงสถานทใหเขาสระบบ และสามารถใหคนทมาจากสถานทเฉพาะใหเขาถงตารางขอมล หรอฐานขอมลเฉพาะได
-password เปนรหสผาน ทผใชผานเขาสระบบ รหสไมควรเดาไดงาย ดงนนไมควรเปนค าในพจนานกรม หรอ ชอผใช ในทางความคดควรผสมตวอกษรใหญ เลก และไมใชพยญชนะ -WITH GRANT OPTION เปนการยอมใหผใชทระบสามารถโอนสทธ ใหกบคนอน
34
สทธทไดรบจากการ GRANT นนจะเกบอยในตารางฐานขอมลทชอวา mysql โดยจะเกบ 4 ตาราง คอ mysql.user, mysql.db, mysql.tables_priv, และ mysql.column_priv ซงมความสมพนธกนอยโดยตรง การแกไขสทธกสามารถแกไขไดจากตารางเหลานไดโดยตรง นอกจากการใชค าสง GRANT ค าสง REVOKE ใชในการถอนสทธ User มรปแบบ คอ
REVOKE priv_type [ (column_list) ] [, priv_type [ (column_list) ]…] ON item FROM user_name
การใชงานพารามเตอรกจะเหมอนกบ ค าสง GRANT
ตารางท 8 ตารางสทธส าหรบผใช สทธ มผลกบ ความหมาย
SELECT ตารางขอมล , คอลมน ยอมใหผใช เลอก เรคคอรด จากตารางขอมล INSERT ตารางขอมล , คอลมน ยอมใหผใช เพม เรคคอรด ใหมเขาสตารางขอมล UPDATE ตารางขอมล , คอลมน ยอมใหผใช ปรบปรงในเรคคอรดทมอยในตารางขอมล DELETE ตารางขอมล ยอมใหผใชเพอลบเรคคอรดในตารางขอมล INDEX ตารางขอมล ยอมใหผใชสรางและลบดชนบนตารางขอมล ALTER
ตารางขอมล ยอมใหผใช แกไขโครงสรางของตารางขอมล ตวอยางเชน การเพมคอลมน เปลยนชอคอลมนหรอตารางขอมล และเปลยนแปลงประเภทขอมลของคอลมน
CREATE ตารางขอมล , คอลมน ยอมใหผใชสรางฐานขอมล หรอตารางขอมลใหม ถาฐานขอมล หรอตารางขอมล ไดรบการระบ ในค าสง GRANT ผใชสามารถท าไดเฉพาะการสรางฐานขอมล หรอตารางขอมล ถามอยแลวตองลบกอน
DROP ตารางขอมล , คอลมน ยอมใหผใชลบ (DROP) ฐานขอมล หรอตารางขอมล
ตารางท 9 ตารางสทธส าหรบผดแลระบบ
สทธ ความหมาย FILE ยอมใหผใชสามารถโหลดขอมลมาบนทกลงตารางได PROCESS ยอมใหผใช(ผดแลระบบ)สามารถเรยกดและยกเลกโปรเซสการท างานของ Server ได RELOAD ยอมใหผใช(ผดแลระบบ)ใชค าสง FLUSH เพอปรบปรงตารางสทธทถกอานไวใน
35
หนวยความจ าตงแตตอนเรมระบบ ใหทนสมยตามการเปลยนแปลงทเกดขนภายหลงได SHUTDOWN ยอมใหผใช(ผดแลระบบ)สามารถสงปดการท างานของ MySQL Server
ตารางท 10 ตารางสทธอนๆ
สทธ ความหมาย ALL ยอมใหผใชไดรบสทธทงหมด USAGE เปนการไมก าหนดสทธใดๆใหผใชเพยงสามารถสามารถ Login ไดเทานน ตวอยางท 1 การใชค าสง GRANT
GRANT ALL ON *.* TO radius@localhoat IDENTIFIED BY ‘password’;
จากตวอยางเปนการก าหนดสทธใหแกผใชชอ radius (ถาไมมชอกจะสรางขนมา) เปนการก าหนดใหไดรบทกสทธ(ALL - All Privilege)ในทกตารางและทกฐานขอมล(ON *.*) โดยก าหนดรสผานเปน password ในการสรางรายชอผใช อาจจะสามารถเชอมตอจาก localhost หรอจากเครองอนกได โดยอาจจะระบเปน IP (radius@”192.168.1.%”) หรอระบเปนชอ host (radius@”%.gateway.com”) หรออาจจะใชเครองหมาย wildcards(%) ซงหมายถง อนญาตใหเชอมตอจากจาก host ไหนกได ตวอยางท 2 การใชค าสง REVOKE
REVOKE ALL ON *.* FROM radius;
จากตวอยางเปนการถอนสทธผใชชอ radius ออกจากทกตารางทกฐานขอมล แตไมไดลบชอผใชออกจากระบบฐานขอมล ผใชยงสามารถ Login เขามาได แตไมสามารถเรยกด, แกไข, เพมขอมล หรอลบขอมลได
36
2.9.2 ประเภทของขอมล ประเภทของขอมลทใชในฐานขอมลอาจจะแบงไดเปน 3 กลมหลกๆคอ กลมตวเลข, กลมวนทและเวลา, ตวอกษร ซงในการก าหนดคาตางๆในฐานขอมลควรจะก าหนดใหถกกบขอมลทจะน ามาเกบในฐานขอมลและเหมาะสมดวย
2.9.2.1 ขอมลชนดตวเลข(Numeric) การก าหนดชนดขอมลชนดตวเลขนนสามารถก าหนดความยาวและจ านวนตวเลขหลงจดทศนยมได โดยขนอยกบวาเปนขอมลชนดใด โดยในทนจะแทนคาความยาวของตวเลขและขอความ ซงรวมจดทศนยมแลว ดวย M และแทนตวเลขหลงจดทศนยมดวย D การก าหนดใหชนดขอมลตวเลขเปน แบบไมมเครองหมาย (unsigned)นน สามารถก าหนดไดดวยการระบ UNSIGNED ตอทาย สวนขอมลชนดมเครองหมาย(signed) เปนคา default อยแลว
ตารางท 11 ตารางแสดงชนดขอมลแบบตวเลข
ชนดของขอมล ขนาด(ไบต)
ชวงคา แบบมเครองหมาย(signed) แบบไมมเครองหมาย(unsigned)
TINYINT[(M)] 1 -128 ถง 127 0 ถง 255 SMALLINT[(M)] 2 -32768 ถง 32767 0 ถง 65535 MEDIUMINT[(M)] 3 -8388608 ถง 8388607 0 ถง 16777215 INT[(M)],INTEGER[(M)] 4 -2147483648 ถง 2147483647 0 ถง 4294967295 BIGINT[(M)] 8 -9223372036854775808
ถง 9223372036854775807 0 ถง 18446744073709551615
FLOAT[(M,D)] 4 -3.402823466E+38 ถง -1.175494351E-38
1.175494351E-38 ถง 3.402823466E+38
DOUBLE[(M,D)], DOUBLE PRECISION[(M,D)], REAL[(M,D)]
8 -1.7976931348623157E+308 ถง -2.2250738585072014E-308
2.2250738585072014E-308 ถง 1.7976931348623157E+308
DECIMAL[(M,D)], DEC[(M,D)], NUMERIC[(M,D)]
M+2 ขนอยกบความยาวของตวเลข (M) เนองจากเปนการเกบแบบ char
37
2.9.2.2 ขอมลชนดวนทและเวลา(DATE and TIME)
ขอมลประภทวนทและเวลาใน MySQL มความยดหยนสง โดยจะตรวจสอบวาอยในวนชวง 0-31 และ เดอนอยในชวง 0-12 หรอไม ทเหลอจะเปนหนาทของแอพพลเคชนทจะท าการตรวจสอบความถกตองเอง อยางเชน การบนทกวนท ‘2007-02-29’ (ป 2007 ไมใชปอธกสรทน ซงเดอนกมภาพนธมแค 28 วน) และนอกจากนน MySQL ยงยอมใหบนทก วน-เดอน ในกรณทไมทราบ วน-เดอนดวย ส าหรบฟลดขอมลชนด TIMESTAMP จะถกปรบปรงอตโนมตเมอมการ INSERT หรอ UPDATE โดยฟลดชนดนจะถกก าหนดคาดวยวนเวลาขณะนนตามรปแบบในตาราง ขนอยกบการก าหนดคา M วาเปน 14, 12, 8, 6 แตถาในกรณทตารางมฟลดชนด TIMESTAMP มากกวา 1 ฟลด จะมการปรบปรงโดยอตโนมตเพยงฟลดแรกเทานน
ตารางท 12 ตารางแสดงชนดขอมลแบบวนทและเวลา ชนดของขอมล รปแบบ ชวงของขอมล
DATE YYYY-MM-DD 1000-01-01 ถง 9999-12-31 DATETIME YYYY-MM-DD HH:MM:SS 1000-01-01 00:00:00 ถง 9999-12-31 23:59:59 TIMESTAMP[(M)]
YYYYMMDDHHMMSS, YYMMDDHHMMSS, YYYYMMDD, YYMMDD ขนอยกบวา M มคาเทากบ 14, 12, 8, 6
1970-01-01 00:00:00 ถงป ค.ศ. 2037
TIME HH:MM:SS -838:59:59 ถง 838:59:59 YEAR[(2|4)]
YYYY
กรณใชควายาว 2 ต าแหนง คาจะเกบอยระหวาง ป ค.ศ. 1970 – 2069 กรณใชควายาว 4 ต าแหนง คาจะเกบอยระหวาง ป ค.ศ. 1901 – 2155
2.9.2.3 ขอมลชนดสตรง(String) ขอมลประเภทสตรงอาจจะแบงได 3 กลม คอ
-ขอมลชนด CHAR และ VARCHAR -ขอมลชนด BLOB และ TEXT
38
-ขอมลชนดพเศษทถกแทนทดวยตวเลขเพอลดพนทในการจดเกบโดยตวเลขอาจจะเปนล าดบทของขอความทถกเกบไวในตอนสรางตารางคอขอมลชนดENUM และขอมลชนด SET
2.9.2.3.1 ขอมลชนด CHAR และ VARCHAR
ขอมลสตรงชนด CHAR และVARCHAR ใชเกบขอความขนาดสนๆ ระหวาง 1-255 ตวอกษร ขนอยกบจ านวนทก าหนดให เชน CHAR(20) เปนการก าหนดใหเกบขอความขนาดความยาวไมเกน 20 ตวอกษร หากมการใสขอความเกน 20 ตวอกษร ขอความนนกจะถกตดทง ในการจดเรยง(sorting) และการเปรยบเทยบขอมล(comparision) นน ทง CHAR และ VARCHAR จะไมค านงวาเปนตวอกษรพมพใหญหรอวาพมพเลก(case insensitive) เวนเสยแตจะมการใชแอตทรบวต BINARY ตอทายในตอนสรางตารางซงจะท าใหการจดเรยงและการเปรยบเทยบมการพจารณาตวอกษรพมพใหญพมพเลก สงท CHAR และ VARCHAR แตกตางกน คอ
- ในขณะทเกบขอมลแบบ CHAR จะจดเกบขอความ พรอมกบชองวางจนเตมขนาดขอมลทระบไว สวน VARCHAR จะเกบเฉพาะขอความทเปนจรงเทานน
- ในขณะเรยกใชขอมล ขอมลชนด CHAR จะท าการตดชองวางทายขอความออก - พนทจดเกบทใชส าหรบจดเกบขอมลชนด CHAR จะมขนาดเทากบขนาดทได ระบเอาไว
สวนขอมลชนด VARCHAR จะใชเทากบความยาวจรงของขอความบวกกบ 1 ไบต เพอใชส าหรบบนทกขนาดของขอความ
ตารางท 13 ตารางแสดงชนดขอมลแบบสตรง
ชนดของขอมล ชวงของขอมล CHAR(M) 1 ถง 255 VARCHAR(M) 1 ถง 255 TINYBLOB TINYTEXT 1 ถง 255 BLOB TEXT 1 ถง 65535 MEDIUMBLOB MEDIUMTEXT 1 ถง 16777215 LONGBLOB LONGTEXT 1 ถง 4294967295
2.9.2.3.2 ขอมลชนด BLOB และ TEXT ขอมลชนด BLOB(Binary Large Object) และ TEXT ใชส าหรบเกบขอมลขนาดใหญกวา CHAR และ VARCHAR สงทแตกตางกนระหวาง BLOB กบ TEXT คอ ในการจดเรยงขอมล(sorting)
39
หรอ การเปรยบเทยบ(Comparasion)นน ขอมลชนด BLOB จะมการพจารณาตวอกษรพมพเลกหรอพมพใหญ(case sensitive) แตขอมลชนด TEXT ไมมการพจารณา(case insensitive) ดงนนหากพจารณาในสวนนเราสามารถใชขอมลชนด TEXT แทน VARCHAR และ BLOB แทน VARCHAR BINARY แตมสงทแตกตางกน ระหวาง TEXT กบ VARCHAR และ BLOB กบ VARCHAR BINARY ดงน - BLOB และ TEXT จะไมมการตดชองวางในขณะทมการท าการบนทกขอมล ในขณะท VARCHAR จะมการตดชองวางโดยการบนทกเฉพาะขอมลตามความยาวทมอยจรง - ไมสามารถก าหนดคาเรมตน (Default) ใหกบ BLOB และ TEXT ได
2.9.2.3.3 ขอมลชนดพเศษ NUM และ SET ขอมลชนด NUM ใชในกรณทตองการจดเกบขอความสตรงทมอยในรายการทก าหนดไวแลว โดยการก าหนดรายการขอความนนจะถกสรางไวในขณะสรางตารางแลว ซงขอความนนจะถกก าหนดไวแทนดวยคาเรมตนตงแต 1 เปนตนไป แตถาหากขอมลทเขามานนไมตรงกบทไดก าหนดไวแลว กจะมการเกบคาเปน 0 หรอวางเปลา หรอเมอมการเพมเรคคอรดแตไมมการระบคาใหแกฟลดชนด NUM คาทถกบนทกกจะเปน NULL ดวยคณสมบตของขอมลชนด NUM จะนยมน ามาใชในลกษณะลสตบอกซ ซงจะสามารถจะเลอกไดเพยงคาเดยวเทานน ขอมลชนด SET จะมคณสมบตทแตกตางจากขอมลชนด NUM คอ สามารถเลอกเกบขอความไดมากกวา 1 ขอความ จงเหมาะทจะน ามาใชเปนเชคบอกซ การบนทกขอมลชนด SET สามารถท าได 2 วธ คอ เกบเปนตวเลข หรอเปนขอความไดเชนเดยวกบขอมลชนด NUM
2.9.3 การจดการฐานขอมลและตาราง กอนทเราเขาใชงาน MySQL เราจะตองท าการเขอมตอกบ MySQL กอน ซงเราสามารถเชอมตอโดยตรงกบ Server เอง (localhost) หรอเครองอนทอยในเครอขาย ขนอยกบการก าหนดสทธวาใหผใชรายนนสามารถเชอมตอจากไหน โดยใชค าสง
mysql –u(user) –p(password)
2.9.3.1 การสรางฐานขอมลและลบฐานขอมล การสรางฐานขอมลมรปแบบค าสงดงน
CREATE DATABASE [IF NOT EXISTS] db_name
40
จะท าการสรางไดเรกทรอรวางๆชอเดยวกบฐานขอมล(db_name) ซงในสวนของ Linux จะอยท /var/lib/mysql แตถามฐานขอมลอยแลวกจะแสดงขอผดผลาด เวนเสยแตจะใส IF NOT EXISTS ตอทายค าสง กจะไมแสดงขอผดผลาดออกมา การลบฐานขอมลมรปแบบค าสงดงน
DROP DATABASE [IF EXISTS] db_name
2.9.3.2 การสรางตาราง การสรางตารางโดยปกตจะสรางในขณะทเปดฐานขอมลอยแลว (ใชค าสง use db_name) นบตงแต MySQL V 3.22 เปนตนมา ไดอนญาตใหสามารถสรางตารางดวยการระบชอฐานขอมลลงไปไดทนท โดยไมจ าเปนตองเปดฐานขอมลเอาไวลวงหนา ดงน db_name.table_name การสรางตารางมค าสงปลกยอยมากมาย แตมค าสงหลกทใชสรางตารางดงรปแบบ
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name [(create_definition, …..)] [table_option] [select_statement]
ความหมายของสวนตางๆดงน
- TEMPORARY เรมตงแต MySQL V 3.22 ใชระบเมอตองการสรางตารางขนมาเปนการชวคราว โดยตารางนไมสามารถมองเหนไดดวยค าสง show tables แตสามารถใชค าสง describe table_name เพอดโครงสรางของตารางได ตารางชวคราวนสามารถใชงานไดเหมอนตารางทวไป แตเมอการเชอมตอถกตดขาด ตารางนนกจะถกลบดวย ในการตงชอตารางชวคราวผใชตละคนสามารถตงชอซ ากนไดโดยไมมผลกระทบ
- IF NOT EXISTS เพอไมแสดงขอผดผลาด เมอมการสรางตารางซ ากบตารางทมอยแลว โดยจะไมมการสรางตารางขนมาทบตารางเกา
- tbl_name เปนชอตารางตงตามขอก าหนดชอไฟล ยกเวนตวอกษร (/ และ .) โดยมความยาวไดไมเกน 64 ตวอกษร
- create_definition ประกอบไปดวย 3 สวน คอ ชอ คอลมน (ฟลด) ความยาวไดไมเกน 64 ตวอกษร ชนดขอมลคอลมน ขอก าหนดอนๆ ไดแก
[NOT NULL | NULL] [DEFAULT default_value] [AUTO_INCREMENT] [PRIMARY KEY] [reference_definition]
41
or PRIMARY KEY (index_col_name, ….) or KEY [index_name] (index_col_name, ….) or INDEX [index_name] (index_col_name, ….) or UNIQUE [INDEX] [index_name] (index_col_name, ….) or FULL TEXT [index_name] (index_col_name, ….) or [CONSTRAINT symbol] FOREIGN KEY [index_name] (index_col_name, ….) [reference_definition] or CHECK (expr)
เมอตารางถกสรางขนกจะเกดไฟลขน 3 ไฟล ภายในไดเรกทรอรของฐานขอมลนน ซงจะมชอเหมอนกบตารางนน แตจะมนามสกลเปน FRM, MYD, MYI โดยทไฟล .FRM จะเกบโครงสรางของตาราง ไฟล .MYD จะเกบขอมล และ ไฟล .MYI จะเปนไฟลอนเดกซ(index file) ดงตวอยาง
CREATE DATABASE Syslog;
USE Syslog;
CREATE TABLE SystemEvents
( ID int unsigned not null auto_increment primary key,
ReceivedAt datetime NULL,
DeviceReportedTime datetime NULL,
Facility smallint NULL,
Priority smallint NULL,
FromHost varchar(60) NULL,
Message text,
InfoUnitID int NULL,
SysLogTag varchar(60) );
จากตวอยางมฐานขอมลชอ Syslog มตารางชอ SystemEvents และมคอลมน 9 คอลมน (ID,
ReceivedAt, DeviceReportedTime, Facility, Priority, FromHost, Message, InfoUnitID,
SysLogTag) และมการก าหนดคาตางๆตามหลงชอคอลมน
42
2.10 Linux Traffic Control [7] Traffic Control(TC) คอ ชอทก าหนดใหกบชดของการจดล าดบในระบบและกลไกในการใชรบ-สง
ขอมลบนระบบ Network รวมไปถงการควบคมกลมของควในการรบ-สงแพกเกต โดยท TC จะใชระบบควแบบ FIFO(First-in First-out) คอเมอมขอมลเขามาอยในคว ขอมลทวงเขา
มากอนกจะถกสงออกไปกอนตามล าดบ เขากอน-ออกกอน เขาทหลง-ออกทหลง การจดการควในลนกซเพอสงแพกเกตผานเครอขาย จะเรยกวา ควดสครปปง (Queuing Discipline)
หรอ qdisc โดยควทตออยกบการดเครอขายเรยกวา รทดส(root disc) Qdisc แบงออกไดเปน 2 ประเภท คอคลาสเลส ควดส (Classless qdisc) และ คลาสฟล ควดส
(Classful qdisc)
2.10.1 คลาสเลส ควดส (Classless qdisc) คอคลาสอยางง ายๆ ท างานเพยงแค accept,drop,delay,reschedule ขอมลทวงเขามาในเครอขาย โดยสามารถสรางไดแค 1คลาสเทานน ควในสวนของ คลาสเลสทส าคญๆไดแก pfifo_fast , TBF(Token Bucket Filter) , SFQ(Stochastic Fair
Queuing) 2.10.1.1 pfifo_fast นนจะท าการสงแพกเกตทเขามาแบบ fifo(first-in first-out) โดย
ควจะถกแบงออกเปน 3 แบนด คอ แบนด 0,1,2 โดยการท างานนนแพกเกตทอยในแบนด 0 จะตองถกสงออกหมดกอนถงจะยอมใหแบนด 1 สงออกขอมลได เชนเดยวกบทแบนด 2 นนตองรอใหแบนด 1 ท างานใหเสรจกอนถงจะสามารถสงออกขอมลได ดงรปท 2.18
รปท 2.18 การท างานของ pfifo_fast
43
2.9.3.2 TBF(Token Bucket Filter) ใชการควบคมไมใหแพกเกตถกสงออกเกนความเรวทตงไว โดยหลกการท างานของ TBF นนจะสรางบฟเฟอรแยกออกมาจากควทเกบปกตเพอเกบ Token และบงคบใหการสงแพกเกตแตละชนจะตองดงเอา Token ออกไปกอน ตามรปท 2.19
รปท 2.19 การท างานของ TBF 2.9.3.3 SFQ(Stochastic Fair Queuing) เปนควทใชในกรณทแบนดวธขาออกเทากบ
ความเรวสงสดของการดเครอขายซงกลไกของ SFQ จะท าใหเกดการเวยนสงแพคเกตทอยในควอยางเทาเทยมกนเพอปองกนการหยดชะงกของการสงขอมล หลกการท างานของ SFQ จะสรางควยอยแบบ FIFO หลายๆคว และกระจายแพกเกตทตองการสงออกไปในควแยกตาม connection-flow ของการตดตอระหวางผสงและผรบแยกตาม TCP session หรอ UDP stream โดยท SFQ จะสลบน าเอาแพกเกตทอยในคว FIFO สงออกไปท าใหแพกเกตถกสงกระจายตวไปอยางสม าเสมอไมกระจกตวอยในควใดควหนงตามรปท 2.20
44
รปท 2.20 การท างานของ SFQ 2.10.2 คลาสฟล ควดส (Classful qdisc) เปน ควดสทสามารถสรางคลาสยอยได และก าหนด
เงอนไขความเรว รวมทงจดล าดบความส าคญของแพกเกตทจะสงออกไปได Classful qdisc เปนสวนประกอบส าคญของลนกสในการควบคมแบนดวธ โดยสวนประกอบของ Classful qdisc มดงน
Queuing Discipline Classes Filters Policer
Classful qdisc หลกๆทจะกลาวถงในสารนพนธนนนจะมอย 3 แบบคอ PRIO , CBQ , HTB ซงจะมความแตกตางกนในเรองของโครงสรางและคณสมบตของคลาส
2.10.2.1 PRIO qdisc จะมการสรางคลาสขนมาทงหมด 3 คลาส โดยแตละคลาสจะมควแบบ FIFO เกาะอย คลาสทสรางขนมาจะม priority เปน 1,2,3 การสงแพกเกตจะเรยงตามล าดบของ priority คอตองสงในคลาส 1 ใหหมดกอนแลวถงจะสงขอมลคลาสท 2 และ 3 ตอไปได
2.10.2.2 CBQ (Classes Based Queue) เปนควทใชส าหรบจดการแบนดวธใหกบผใชบรการทมการใชงานหลายคนรวนกนโดยจะมการรบประกนแบนดวธส าหรบผใชแตละคนในชวงเวลาทมการใชงานกนอยางแออด เพอปองกนมใหเกดการชะงกของการใชงาน
45
การจดการแบนดวธดวย CBQ นนจะท างานโดยการสราง root disc เปนแบบ CBQ จากนนจงสรางคลาสยอยในลกษณะทเปนล าดบชน โดยระบเงอนไขความเรวในการสงแพกเกตแลวสรางฟลเตอรเพอคดแยกแพกเกตลงตามคลาส ซงจะท าใหลนกซจดสงแพกเกตไดตามความเรวทก าหนด
2.10.2.3 HTB (Hierarchical Token Bucket) เนองมาจากควแบบ CBQ นนมความซบซอนมากซงอาจจะท าใหเกดขอผดพลาดในการควบคมแบนดวธได ดงนนจงมการพฒนาควแบบทมลกษณะการท างานคลายกบ CBQ ขนมาแตมความซบซอนของการท างานนอยกวาและมประสทธภาพใกลเคยงกนโดยจะถกตดตงขนมาในลนกซทมเคอรเนลตงแต 2.4.20 ขนไป หลกการท างานของ HTB นนจะใชแนวคดของ token/bucket และใช filter ในการควบคมปรมาณขอมล ซงจะท าใหสามาถจ ากดแบนดวธและรบประกนแบนดวธไดดวย
2.11 พรบ.คอมพวเตอร 2550 [9] พระบาทสมเดจพระปรมนทรมหาภมพลอดลยเดช มพระบรมราชโองการโปรดเกลา ฯ ใหประกาศวา โดยทเปนการสมควรมกฎหมายวาดวยการกระท าความผดเกยวกบคอมพวเตอร จงทรงพระกรณาโปรดเกลา ฯ ใหตราพระราชบญญตขนไวโดยค าแนะน าและยนยอมของสภานตบญญตแหงชาต ดงตอไปน
มาตรา 1 พระราชบญญตนเรยกวา “พระราชบญญตวาดวยการกระท าความผดเกยวกบคอมพวเตอร พ.ศ. 2550”
มาตรา 2 พระราชบญญตนใหใชบงคบเมอพนก าหนดสามสบวนนบแตวนประกาศในราชกจจานเบกษาเปนตนไป
มาตรา 3 ในพระราชบญญตน “ระบบคอมพวเตอร” หมายความวา อปกรณหรอชดอปกรณของคอมพวเตอรทเชอมการท างานเขาดวยกน โดยไดมการก าหนดค าสง ชดค าสง หรอสงอนใด และแนวทางปฏบตงานใหอปกรณหรอชดอปกรณท าหนาทประมวลผลขอมลโดยอตโนมต
“ขอมลคอมพวเตอร” หมายความวา ขอมล ขอความ ค าสง ชดค าสง หรอสงอนใดบรรดาทอยในระบบคอมพวเตอรในสภาพทระบบคอมพวเตอรอาจประมวลผลได และใหหมายความรวมถงขอมลอเลกทรอนกสตามกฎหมายวาดวยธรกรรมทางอเลกทรอนกสดวย
“ขอมลจราจรทางคอมพวเตอร” หมายความวา ขอมลเกยวกบการตดตอสอสารของระบบคอมพวเตอร ซงแสดงถงแหลงก าเนด ตนทาง ปลายทาง เสนทาง เวลา วนท ปรมาณ ระยะเวลาชนดของบรการ หรออน ๆ ทเกยวของกบการตดตอสอสารของระบบคอมพวเตอรนน
46
“ผใหบรการ” หมายความวา (1) ผใหบรการแกบคคลอนในการเขาสอนเทอรเนต หรอใหสามารถตดตอถงกนโดยประการอน โดยผานทางระบบคอมพวเตอร ทงน ไมวาจะเปนการใหบรการในนามของตนเอง หรอในนามหรอเพอประโยชนของบคคลอน (2) ผใหบรการเกบรกษาขอมลคอมพวเตอรเพอประโยชนของบคคลอน
“ผใชบรการ” หมายความวา ผใชบรการของผใหบรการไมวาตองเสยคาใชบรการหรอไมกตาม “พนกงานเจาหนาท” หมายความวา ผซงรฐมนตรแตงตงใหปฏบตการตามพระราชบญญตน “รฐมนตร” หมายความวา รฐมนตรผรกษาการตามพระราชบญญตน
มาตรา 4 ใหรฐมนตรวาการกระทรวงเทคโนโลยสารสนเทศและการสอสารรกษาการตามพระราชบญญตน และใหมอ านาจออกกฎกระทรวงเพอปฏบตการตามพระราชบญญตน กฎกระทรวงนน เมอไดประกาศในราชกจจานเบกษาแลวใหใชบงคบได
หมวด 1 ความผดเกยวกบคอมพวเตอร
มาตรา 5 ผใดเขาถงโดยมชอบซงระบบคอมพวเตอรทมมาตรการปองกนการเขาถงโดยเฉพาะและมาตรการนนมไดมไวส าหรบตน ตองระวางโทษจ าคกไมเกนหกเดอน หรอปรบไมเกนหนงหมนบาท หรอทงจ าทงปรบ
มาตรา 6 ผใดลวงรมาตรการปองกนการเขาถงระบบคอมพวเตอรทผอนจดท าขนเปนการเฉพาะถาน ามาตรการดงกลาวไปเปดเผยโดยมชอบในประการทนาจะเกดความเสยหายแกผอน ตองระวางโทษจ าคกไมเกนหนงป หรอปรบไมเกนสองหมนบาท หรอทงจ าทงปรบ
มาตรา 7 ผใดเขาถงโดยมชอบซงขอมลคอมพวเตอรทมมาตรการปองกนการเขาถงโดยเฉพาะและมาตรการนนมไดมไวส าหรบตน ตองระวางโทษจ าคกไมเกนสองปหรอปรบไมเกนสหมนบาทหรอทงจ าทงปรบ
มาตรา 8 ผใดกระท าดวยประการใดโดยมชอบดวยวธการทางอเลกทรอนกสเพอดกรบไวซงขอมลคอมพวเตอรของผอนทอยระหวางการสงในระบบคอมพวเตอร และขอมลคอมพวเตอรนนมไดมไวเพอประโยชนสาธารณะหรอเพอใหบคคลทวไปใชประโยชนไดตองระวางโทษจ าคกไมเกนสามป หรอปรบไมเกนหกหมนบาท หรอทงจ าทงปรบ
มาตรา 9 ผใดท าใหเสยหาย ท าลาย แกไข เปลยนแปลง หรอเพมเตมไมวาทงหมดหรอบางสวน ซงขอมลคอมพวเตอรของผอนโดยมชอบ ตองระวางโทษจ าคกไมเกนหาป หรอปรบไมเกนหนงแสนบาท หรอทงจ าทงปรบ
47
มาตรา 10 ผใดกระท าดวยประการใดโดยมชอบ เพอใหการท างานของระบบคอมพวเตอรของผอนถกระงบ ชะลอ ขดขวาง หรอรบกวนจนไมสามารถท างานตามปกตไดตองระวางโทษจ าคกไมเกนหาป หรอปรบไมเกนหนงแสนบาท หรอทงจ าทงปรบ
มาตรา 11 ผใดสงขอมลคอมพวเตอรหรอจดหมายอเลกทรอนกสแกบคคลอนโดยปกปดหรอปลอมแปลงแหลงทมาของการสงขอมลดงกลาว อนเปนการรบกวนการใชระบบคอมพวเตอรของบคคลอนโดยปกตสข ตองระวางโทษปรบไมเกนหนงแสนบาท
มาตรา 12 ถาการกระท าความผดตามมาตรา 9 หรอมาตรา 10 (1) กอใหเกดความเสยหายแกประชาชน ไมวาความเสยหายนนจะเกดขนในทนทหรอในภายหลงและไมวาจะเกดขนพรอมกนหรอไม ตองระวางโทษจ าคกไมเกนสบป และปรบไมเกนสองแสนบาท (2) เปนการกระท าโดยประการทนาจะเกดความเสยหายตอขอมลคอมพวเตอร หรอระบบคอมพวเตอรทเกยวกบการรกษาความมนคงปลอดภยของประเทศ ความปลอดภยสาธารณะ ความมนคงในทางเศรษฐกจของประเทศ หรอการบรการสาธารณะ หรอเปนการกระท าตอขอมลคอมพวเตอรหรอระบบคอมพวเตอรทมไวเพอประโยชนสาธารณะ ตองระวางโทษจ าคกตงแตสามปถงสบหาป และปรบตงแตหกหมนบาทถงสามแสนบาท ถาการกระท าความผดตาม (2) เปนเหตใหผอนถงแกความตาย ตองระวางโทษจ าคกตงแตสบปถงยสบป
มาตรา 13 ผใดจ าหนายหรอเผยแพรชดค าสงทจดท าขนโดยเฉพาะเพอน าไปใชเปนเครองมอในการกระท าความผดตามมาตรา 5 มาตรา 6 มาตรา 7 มาตรา 8 มาตรา 9 มาตรา 10 หรอมาตรา 11 ตองระวางโทษจ าคกไมเกนหนงป หรอปรบไมเกนสองหมนบาท หรอทงจ าทงปรบ
มาตรา 14 ผใดกระท าความผดทระบไวดงตอไปน ตองระวางโทษจ าคกไมเกนหาป หรอปรบไมเกนหนงแสนบาท หรอทงจ าทงปรบ (1) น าเขาสระบบคอมพวเตอรซงขอมลคอมพวเตอรปลอมไมวาทงหมดหรอบางสวน หรอขอมลคอมพวเตอรอนเปนเทจ โดยประการทนาจะเกดความเสยหายแกผอนหรอประชาชน (2) น าเขาสระบบคอมพวเตอรซงขอมลคอมพวเตอรอนเปนเทจ โดยประการทนาจะเกดความเสยหายตอความมนคงของประเทศหรอกอใหเกดความตนตระหนกแกประชาชน (3) น าเขาสระบบคอมพวเตอรซงขอมลคอมพวเตอรใด ๆ อนเปนความผดเกยวกบความมนคงแหงราชอาณาจกรหรอความผดเกยวกบการกอการรายตามประมวลกฎหมายอาญา (4) น าเขาสระบบคอมพวเตอรซงขอมลคอมพวเตอรใด ๆ ทมลกษณะอนลามกและขอมลคอมพวเตอรนนประชาชนทวไปอาจเขาถงได (5) เผยแพรหรอสงตอซงขอมลคอมพวเตอรโดยรอยแลววาเปนขอมลคอมพวเตอรตาม (1)(2) (3) หรอ (4)
48
มาตรา 15 ผใหบรการผใดจงใจสนบสนนหรอยนยอมใหมการกระท าความผดตามมาตรา 14 ในระบบคอมพวเตอรทอยในความควบคมของตน ตองระวางโทษเชนเดยวกบผกระท าความผดตามมาตรา 14
มาตรา 16 ผใดน าเขาสระบบคอมพวเตอรทประชาชนทวไปอาจเขาถงไดซงขอมลคอมพวเตอรทปรากฏเปนภาพของผอน และภาพนนเปนภาพทเกดจากการสรางขน ตดตอ เตม หรอดดแปลงดวยวธการทางอเลกทรอนกสหรอวธการอนใด ทงน โดยประการทนาจะท าใหผอนนนเสยชอเสยง ถกดหมน ถกเกลยดชง หรอไดรบความอบอาย ตองระวางโทษจ าคกไมเกนสามป หรอ ปรบไมเกนหกหมนบาท หรอทงจ าทงปรบ ถาการกระท าตามวรรคหนง เปนการน าเขาขอมลคอมพวเตอรโดยสจรต ผกระท าไมมความผด ความผดตามวรรคหนงเปนความผดอนยอมความได ถาผเสยหายในความผดตามวรรคหนงตายเสยกอนรองทกข ใหบดา มารดา คสมรส หรอ บตรของผเสยหายรองทกขได และใหถอวาเปนผเสยหาย
มาตรา 17 ผใดกระท าความผดตามพระราชบญญตนนอกราชอาณาจกรและ (1) ผกระท าความผดนนเปนคนไทย และรฐบาลแหงประเทศทความผดไดเกดขนหรอผเสยหายไดรองขอใหลงโทษ หรอ (2) ผกระท าความผดนนเปนคนตางดาว และรฐบาลไทยหรอคนไทยเปนผเสยหายและผเสยหายไดรองขอใหลงโทษ จะตองรบโทษภายในราชอาณาจกร
หมวด 2 พนกงานเจาหนาท
มาตรา 18 ภายใตบงคบมาตรา 19 เพอประโยชนในการสบสวนและสอบสวนในกรณทมเหตอนควรเชอไดวามการกระท าความผดตามพระราชบญญตน ใหพนกงานเจาหนาทมอ านาจอยางหนงอยางใด ดงตอไปน เฉพาะทจ าเปนเพอประโยชนในการใชเปนหลกฐานเกยวกบการกระท าความผดและหาตวผกระท าความผด (1) มหนงสอสอบถามหรอเรยกบคคลทเกยวของกบการกระท าความผดตามพระราชบญญตนมาเพอใหถอยค า สงค าชแจงเปนหนงสอ หรอสงเอกสาร ขอมล หรอหลกฐานอนใดทอยในรปแบบทสามารถเขาใจได (2) เรยกขอมลจราจรทางคอมพวเตอรจากผใหบรการเกยวกบการตดตอสอสารผานระบบคอมพวเตอรหรอจากบคคลอนทเกยวของ (3) สงใหผใหบรการสงมอบขอมลเกยวกบผใชบรการทตองเกบตามมาตรา 26 หรอทอยใน
49
ความครอบครองหรอควบคมของผใหบรการใหแกพนกงานเจาหนาท (4) ท าส าเนาขอมลคอมพวเตอร ขอมลจราจรทางคอมพวเตอร จากระบบคอมพวเตอรทมเหตอนควรเชอไดวามการกระท าความผดตามพระราชบญญตน ในกรณทระบบคอมพวเตอรนนยงมไดอยในความครอบครองของพนกงานเจาหนาท (5) สงใหบคคลซงครอบครองหรอควบคมขอมลคอมพวเตอร หรออปกรณทใชเกบขอมลคอมพวเตอร สงมอบขอมลคอมพวเตอร หรออปกรณดงกลาวใหแกพนกงานเจาหนาท (6) ตรวจสอบหรอเขาถงระบบคอมพวเตอร ขอมลคอมพวเตอร ขอมลจราจรทางคอมพวเตอรหรออปกรณทใชเกบขอมลคอมพวเตอรของบคคลใด อนเปนหลกฐานหรออาจใชเปนหลกฐานเกยวกบการกระท าความผด หรอเพอสบสวนหาตวผกระท าความผดและสงใหบคคลนนสงขอมลคอมพวเตอรขอมลจราจรทางคอมพวเตอร ทเกยวของเทาทจ าเปนใหดวยกได (7) ถอดรหสลบของขอมลคอมพวเตอรของบคคลใด หรอสงใหบคคลทเกยวของกบการเขารหสลบของขอมลคอมพวเตอร ท าการถอดรหสลบ หรอใหความรวมมอกบพนกงานเจาหนาทในการถอดรหสลบดงกลาว (8) ยดหรออายดระบบคอมพวเตอรเทาทจ าเปนเฉพาะเพอประโยชนในการทราบรายละเอยดแหงความผดและผกระท าความผดตามพระราชบญญตน
มาตรา 19 การใชอ านาจของพนกงานเจาหนาทตามมาตรา 18 (4) (5) (6) (7) และ (8) ใหพนกงานเจาหนาทยนค ารองตอศาลทมเขตอ านาจเพอมค าสงอนญาตใหพนกงานเจาหนาทด าเนนการตามค ารอง ทงน ค ารองตองระบเหตอนควรเชอไดวาบคคลใดกระท าหรอก าลงจะกระท าการอยางหนงอยางใดอนเปนความผดตามพระราชบญญตน เหตทตองใชอ านาจ ลกษณะของการกระท าความผด รายละเอยดเกยวกบอปกรณทใชในการกระท าความผดและผกระท าความผด เทาทสามารถจะระบได ประกอบค ารองดวยในการพจารณาค ารองใหศาลพจารณาค ารองดงกลาวโดยเรวเมอศาลมค าสงอนญาตแลว กอนด าเนนการตามค าสงของศาล ใหพนกงานเจาหนาทสงส าเนาบนทกเหตอนควรเชอทท าใหตองใชอ านาจตามมาตรา 18 (4) (5) (6) (7) และ (8) มอบใหเจาของหรอผครอบครองระบบคอมพวเตอรนนไวเปนหลกฐาน แตถาไมมเจาของหรอผครอบครองเครองคอมพวเตอรอย ณ ทนน ใหพนกงานเจาหนาทสงมอบส าเนาบนทกนนใหแกเจาของหรอ ผครอบครองดงกลาวในทนททกระท าไดใหพนกงานเจาหนาทผเปนหวหนาในการด าเนนการตามมาตรา 18 (4) (5) (6) (7) และ (8) สงส าเนาบนทกรายละเอยดการด าเนนการและเหตผลแหงการด าเนนการใหศาลทมเขตอ านาจภายในสสบแปดชวโมงนบแตเวลาลงมอด าเนนการ เพอเปนหลกฐานการท าส าเนาขอมลคอมพวเตอรตามมาตรา 18 (4) ใหกระท าไดเฉพาะเมอมเหตอนควรเชอไดวามการกระท าความผดตามพระราชบญญตน และตองไมเปนอปสรรคในการด าเนนกจการของเจาของหรอผครอบครองขอมลคอมพวเตอรนนเกนความจ าเปน การยดหรออายดตามมาตรา 18 (8) นอกจากจะตองสงมอบส าเนาหนงสอแสดงการยดหรออายดมอบใหเจาของหรอผ
50
ครอบครองระบบคอมพวเตอรนนไวเปนหลกฐานแลว พนกงานเจาหนาทจะสงยดหรออายดไวเกนสามสบวนมได ในกรณจ าเปนทตองยดหรออายดไวนานกวานน ใหยนค ารองตอศาลทมเขตอ านาจเพอขอขยายเวลายดหรออายดได แตศาลจะอนญาตใหขยายเวลาครงเดยวหรอหลายครงรวมกนไดอกไมเกนหกสบวน เมอหมดความจ าเปนทจะยดหรออายดหรอครบก าหนดเวลาดงกลาวแลว พนกงานเจาหนาทตองสงคนระบบคอมพวเตอรทยดหรอถอนการอายดโดยพลน หนงสอแสดงการยดหรออายดตามวรรคหาใหเปนไปตามทก าหนดในกฎกระทรวง
มาตรา 20 ในกรณทการกระท าความผดตามพระราชบญญตนเปนการท าใหแพรหลายซงขอมลคอมพวเตอรทอาจกระทบกระเทอนตอความมนคงแหงราชอาณาจกรตามทก าหนดไวในภาคสองลกษณะ 1 หรอลกษณะ 1/1 แหงประมวลกฎหมายอาญา หรอทมลกษณะขดตอความสงบเรยบรอยหรอศลธรรมอนดของประชาชน พนกงานเจาหนาทโดยไดรบความเหนชอบจากรฐมนตรอาจยนค ารอง พรอมแสดงพยานหลกฐานตอศาลทมเขตอ านาจขอใหมค าสงระงบการท าใหแพรหลายซงขอมลคอมพวเตอรนนได ในกรณทศาลมค าสงใหระงบการท าใหแพรหลายซงขอมลคอมพวเตอรตามวรรคหนง ใหพนกงานเจาหนาทท าการระงบการท าใหแพรหลายนนเอง หรอสงใหผใหบรการระงบการท าใหแพรหลายซงขอมลคอมพวเตอรนนกได
มาตรา 21 ในกรณทพนกงานเจาหนาทพบวา ขอมลคอมพวเตอรใดมชดค าสงไมพงประสงครวมอยดวย พนกงานเจาหนาทอาจยนค ารองตอศาลทมเขตอ านาจเพอขอใหมค าสงหามจ าหนายหรอเผยแพร หรอสงใหเจาของหรอผครอบครองขอมลคอมพวเตอรนนระงบการใช ท าลายหรอแกไขขอมลคอมพวเตอรนนได หรอจะก าหนดเงอนไขในการใช มไวในครอบครอง หรอเผยแพรชดค าสงไมพงประสงคดงกลาวกไดชดค าสงไมพงประสงคตามวรรคหนงหมายถงชดค าสงทมผลท าใหขอมลคอมพวเตอร หรอระบบคอมพวเตอรหรอชดค าสงอนเกดความเสยหาย ถกท าลาย ถกแกไขเปลยนแปลงหรอเพมเตมขดของ หรอปฏบตงานไมตรงตามค าสงทก าหนดไว หรอโดยประการอนตามทก าหนดในกฎกระทรวงทงน เวนแตเปนชดค าสงทมงหมายในการปองกนหรอแกไขชดค าสงดงกลาวขางตน ตามทรฐมนตรประกาศในราชกจจานเบกษา
มาตรา 22 หามมใหพนกงานเจาหนาทเปดเผยหรอสงมอบขอมลคอมพวเตอร ขอมลจราจรทางคอมพวเตอร หรอขอมลของผใชบรการ ทไดมาตามมาตรา 18 ใหแกบคคลใดความในวรรคหนงมใหใชบงคบกบการกระท าเพอประโยชนในการด าเนนคดกบผกระท าความผดตามพระราชบญญตน หรอเพอประโยชนในการด าเนนคดกบพนกงานเจาหนาทเกยวกบการใชอ านาจหนาท โดยมชอบ หรอเปนการกระท าตามค าสงหรอทไดรบอนญาตจากศาลพนกงานเจาหนาทผใดฝาฝนวรรคหนงตองระวางโทษจ าคกไมเกนสามป หรอปรบไมเกนหกหมนบาท หรอทงจ าทงปรบ
51
มาตรา 23 พนกงานเจาหนาทผใดกระท าโดยประมาทเปนเหตใหผอนลวงรขอมลคอมพวเตอรขอมลจราจรทางคอมพวเตอร หรอขอมลของผใชบรการ ทไดมาตามมาตรา 18 ตองระวางโทษจ าคกไมเกนหนงป หรอปรบไมเกนสองหมนบาท หรอทงจ าทงปรบ
มาตรา 24 ผใดลวงรขอมลคอมพวเตอร ขอมลจราจรทางคอมพวเตอรหรอขอมลของผใชบรการ ทพนกงานเจาหนาทไดมาตามมาตรา 18 และเปดเผยขอมลนนตอผหนงผใด ตองระวางโทษจ าคกไมเกนสองป หรอปรบไมเกนสหมนบาท หรอทงจ าทงปรบ
มาตรา 25 ขอมล ขอมลคอมพวเตอร หรอขอมลจราจรทางคอมพวเตอรทพนกงานเจาหนาทไดมาตามพระราชบญญตน ใหอางและรบฟงเปนพยานหลกฐานตามบทบญญตแหงประมวลกฎหมายวธพจารณาความอาญาหรอกฎหมายอนอนวาดวยการสบพยานได แตตองเปนชนดทมไดเกดขนจากการจงใจมค ามนสญญา ขเขญ หลอกลวง หรอโดยมชอบประการอน
มาตรา 26 ผใหบรการตองเกบรกษาขอมลจราจรทางคอมพวเตอรไวไมนอยกวาเกาสบวนนบแตวนทขอมลนนเขาสระบบคอมพวเตอร แตในกรณจ าเปนพนกงานเจาหนาทจะสงใหผใหบรการผใดเกบรกษาขอมลจราจรทางคอมพวเตอรไวเกนเกาสบวนแตไมเกนหนงปเปนกรณพเศษเฉพาะรายและเฉพาะคราวกได ผใหบรการจะตองเกบรกษาขอมลของผใชบรการเทาทจ าเปนเพอใหสามารถระบตวผใชบรการนบตงแตเรมใชบรการและตองเกบรกษาไวเปนเวลาไมนอยกวาเกาสบวนนบตงแตการใชบรการสนสดลง ความในวรรคหนงจะใชกบผใหบรการประเภทใด อยางไร และเมอใด ใหเปนไปตามทรฐมนตรประกาศในราชกจจานเบกษา ผใหบรการผใดไมปฏบตตามมาตราน ตองระวางโทษปรบไมเกนหาแสนบาท
มาตรา 27 ผใดไมปฏบตตามค าสงของศาลหรอพนกงานเจาหนาททสงตามมาตรา 18 หรอมาตรา 20 หรอไมปฏบตตามค าสงของศาลตามมาตรา 21 ตองระวางโทษปรบไมเกนสองแสนบาทและปรบเปนรายวนอกไมเกนวนละหาพนบาทจนกวาจะปฏบตใหถกตอง
มาตรา 28 การแตงตงพนกงานเจาหนาทตามพระราชบญญตน ใหรฐมนตรแตงตงจากผมความรและความช านาญเกยวกบระบบคอมพวเตอรและมคณสมบตตามทรฐมนตรก าหนด
มาตรา 29 ในการปฏบตหนาทตามพระราชบญญตน ใหพนกงานเจาหนาทเปนพนกงานฝายปกครองหรอต ารวจชนผใหญตามประมวลกฎหมายวธพจารณาความอาญามอ านาจรบค ารองทกขหรอรบค ากลาวโทษ และมอ านาจในการสบสวนสอบสวนเฉพาะความผดตามพระราชบญญตน ในการจบ ควบคม คน การท าส านวนสอบสวนและด าเนนคดผกระท าความผดตามพระราชบญญตน บรรดาทเปนอ านาจของพนกงานฝายปกครองหรอต ารวจชนผใหญ หรอพนกงานสอบสวนตามประมวลกฎหมายวธพจารณาความอาญา ใหพนกงานเจาหนาทประสานงานกบพนกงานสอบสวนผรบผดชอบเพอด าเนนการตามอ านาจหนาทตอไป ใหนายกรฐมนตรในฐานะผก ากบดแลส านกงานต ารวจแหงชาตและรฐมนตรมอ านาจรวมกนก าหนดระเบยบเกยวกบแนวทางและวธปฏบตในการด าเนนการตามวรรคสอง
52
มาตรา 30 ในการปฏบตหนาท พนกงานเจาหนาทตองแสดงบตรประจ าตวตอบคคลซงเกยวของ บตรประจ าตวของพนกงานเจาหนาทใหเปนไปตามแบบทรฐมนตรประกาศในราชกจจานเบกษา
ผรบสนองพระบรมราชโองการ พลเอก สรยทธ จลานนท นายกรฐมนตร
หมายเหต :- เหตผลในการประกาศใชพระราชบญญตฉบบน คอ เนองจากในปจจบนระบบคอมพวเตอรไดเปนสวนส าคญของการประกอบกจการและการด ารงชวตของมนษย หากมผกระท าดวยประการใด ๆ ใหระบบคอมพวเตอรไมสามารถท างานตามค าสงทก าหนดไวหรอท าใหการท างานผดพลาดไปจากค าสงทก าหนดไว หรอใชวธการใด ๆ เขาลวงรขอมล แกไข หรอท าลายขอมลของบคคลอนในระบบคอมพวเตอรโดยมชอบ หรอใชระบบคอมพวเตอรเพอเผยแพรขอมลคอมพวเตอรอนเปนเทจหรอมลกษณะอนลามกอนาจาร ยอมกอใหเกดความเสยหาย กระทบกระเทอนตอเศรษฐกจ สงคม และความมนคงของรฐ รวมทงความสงบสขและศลธรรมอนดของประชาชน สมควรก าหนดมาตรการเพอปองกนและปราบปรามการกระท าดงกลาว จงจ าเปนตองตราพระราชบญญตน
53
บทท 3 การออกแบบและพฒนาระบบ
3.1 กลาวน า
ปจจบนนมการใชงานอนเตอรเนตกนอยางแพรหลาย อาจจะกลาวไดวาทการใชงานกนแทบทก
องคกร โดยในแตละองคกรกจะมโครงสรางของระบบเครอขายทไมเหมอนกน ขนอยกบการใชงานและ
การใหบรการขององคกรนนๆ ซงอาจจะมโครงสรางโดยทวๆไปตามรปท 3.1
รปท 3.1 แสดงเครอขายโดยทวไป
จากรปดานบนนนเปนการแสดงเครอขายโดยทวไปซงอาจจะมการใหบรการ Web, Ftp, Mail
แกบคคลภายในองคกรหรอบคคลภายนอกใชงาน และมการใหบรการ Database หรอ Share printer
ภายในองคกรกได และอาจจะมการให User ภายในองคกรใชงานอนเตอรเนต ซงม Firewall คอยท า
หนาทปองกนเครอขายและก าหนดการใชงานของเครอขายอกทงยงท าหนาทเปน Gateway ดวยกได
ซงตองใช Firewall ทมประสทธภาพสง ท าใหตองมการลงทนทคอนขางสงตามไปดวย
แตในบางองคกรทมขนาดเลก อาจจะมแคการใหบรการการใชงานอนเตอรเนตและ SERVICE
เลกๆทองคกรณพอมความรในการจดการเพอใหบรการแก User ภายในองคกรณของตนเองไดเทานน
54
ตามรปท 3.2 ซงในการทจะลงทนซอ Firewall ทมราคาสงจงคอนขางสนเปลองงบประมาณโดยใชเหต
ดงนนจงเปนทมาของโครงงานนทจะท าการสราง Gateway Server ขนมาเพอใชงานภายในองคกร โดย
ประยกตใชเครอง PC และลงโปรแกรมระบบปฎบตการ Linux ซงเปน Opensource รวมไปถง
Package ตางๆทเกยวของในการท างาน และใชความสามารถของ PHP ในการจดท าหนา Manage
ผานเวบใหกบผดแลระบบเพอชวยในการบรหารจดการรวมไปถงการเรยกดรายงานตางๆผานหนาเวบ
ซงจะอ านวยความสะดวกใหกบผใชงานระบบตอไป
รปท 3.2 แสดงเครอขายองคกรขนาดเลกทมการใชงานอนเตอรเนตอยางเดยว
55
3.2 การออกแบบโครงสรางระบบใหมทดแทนระบบเกา
จากโครงสรางการเชอมตอระบบเครอขายของบรษททมอยเดมตามรปท 3.3 นนทางผจดท าไดท าการออกแบบโครงสรางการเชอมตอของระบบเครอขายใหม ซงจะเพมในสวนของ Authentication Gateway Server เขาไปในระบบ
Internet
Client Client Client File Server
Switch
Router & Wireless DHCPLaptop
รปท 3.3 แสดงโครงสรางการเชอมตอระบบเครอขายเดมของบรษท
56
รปท 3.4 แสดงการออกแบบโครงสรางการเชอมตอระบบเครอขายใหม
จากรปท 3.4 แสดงการออกแบบโครงสรางการเชอมตอระบบเครอขายใหม โดยมการจดวางเครองออเทนทเคชนเกตเวยเซรฟเวอรตดตงขวางระหวางระบบเครอขายภายนอกและระบบเครอขายภายในเพอเปนการบงคบใหผใชบรการทตองการใชงานระบบเครอขายอนเตอรเนตเขาสระบบการตรวจสอบและพสจนตวตนกบเครองออเทนทเคชนเกตเวยเซรฟเวอรกอนจากนนเครองออเทนทเคชนเกตเวยเซรฟเวอรจะสงหนาลอคอน (Login) ไปยงเครองลกขายโดยใหผใชบรการท าการปอนชอผใชและรหสผานซงระบบบญชรายชอทงหมดจะถกเกบไวทเรเดยสเซรฟเวอร (RADIUS Server) เมอผใชบรการปอนชอและรหสผานเรยบรอยแลวเรเดยสเซรฟเวอรจะท าการพสจนตวตนพรอมทงตรวจสอบสทธของขอมลในการเขาใชงานของระบบเมอมการพสจนตวตนถกตองของผใชบรการเรเดยสเซรฟเวอรกจะอนญาตใหใชงานอนเตอรเนตไดแตถาการพสจนตวตนไมถกตองเรเดยสเซรฟเวอรจะท าการยกเลกการใหอนญาตในการเขาใชงานระบบเครอขายอนเทอรเนต
57
3.3 การออกแบบระบบการท างาน
เพอใหเหนระบบการท างานของ Gateway โดยรวม จงไดใชแผนภาพบรบท (Context
Diagram) อธบายการท างานและการออกแบบโดยคราวๆ ตามรปท 3.5-3.6
รปท 3.5 แสดงแผนภาพบรบท (Context Diagram) ของ Gateway Server
แผนภาพบรบท (Context Diagram) ของระบบบรหารการจดการการใชงานอนเตอรเนตภายใน
องคกร จะประกอบดวย หนวยขอมล(Entity) ทเกยวของ 2 สวน คอ
หนวยท 1 ผใช (User) หมายถง ผใชงานอนเตอรเนตภายในองคกรทไดรบอนญาต
หนวยท 2 ผดแลระบบ (Administrator) หมายถง เจาหนาททไดรบใหดและระบบเครอขาย
58
รปท 3.6 แสดงแผนภาพบรบท (Context Diagram)การไหลของขอมล
กระบวนการท 1.0 Authentication คอ การท าการพสจนตวตนของผใชงาน มหนาทในการตรวจสอบ
สทธในการขอเขาใชงานของ User นน โดยการระบ User, Password โดยผานระบบ RADIUS จะน าไป
เปรยบเทยบกบขอมลทอยใน Mysql ถามกจะไดรบอนญาตใหใชงาน
กระบวนการท 2.0 Register คอ การลงทะเบยน เปนการเพมรายชอ User, Password ลงไปใน
ฐานขอมล Mysql ซงอนญาตให Administrator เปนคนเพมรายชอไดเทานน เพอน าไปใชในการ
ตรวจสอบสทธในการขอเขาสเครอขาย
กระบวนการท 3.0 Authorization คอ การอนญาตการใชงาน เปนการก าหนดสทธในการเขาใชงาน
เครอขาย ซงจะน าไปตรวจสอบสทธตางๆกบฐานขอมล Mysql โดยม Administrator เปนคนก าหนดสทธ
ตางๆในการใชงาน และจดเกบบนทกการใชงานของ User ลงไวในฐานขอมล Mysql ดวย
กระบวนการท 4.0 Report คอการเกบสถตการใชงานและการแสดงรายงานการใชงาน มหนารบขอมล
ตางๆเกยวกบการใชงานของ User เชน เวลาในการใชงาน, ปรมาณการใช สงไปใหผดแลระบบน าไป
วเคราะหและแสดงผล โดยสามารถสงออกไฟลออกมาเปน .CSV ไดดวย
59
3.4 การออกแบบ Database
โครงงานนมสวนของการใชงาน Database ในการจดเกบขอมลตางๆโดยจะใช Mysql ในการท า
เปน Database ซง Mysql จดเปน opensourse ทสามารถใชงานไดฟร โดยผจดท าไดออกแบบ
Database ไว 2 database คอ 1.Radius Database 2.Syslog Database ซงรายละเอยดมดงตอไปน
3.4.1 Radius Database เปน Database ทใชงานส าหรบ Freeradius เปนการเกบคาตางๆ
ของการใชงาน User, IPAddress, และคา Attibute ตางๆ โดยมการแบง Table ตางๆ
ไดดงน
3.4.1.1 Table groups เปน table ทใชเกบ GroupName ทสรางขน
- field id เปน field เลขหมายทถกสรางขนอตโนมตเพมขนทละ 1 เมอมการเพม group
- field GroupName เปน field ทเกบชอกลม
ตารางท 14 Data Structure of group
Field Type KEY
id int(2) PK
groupname varchar(64)
3.4.1.2 Table radacct เปน table ทใชเกบคาตางๆ เมอมการใชงานของ Userซงประกอบดวย
- field RadAcctId เปน field ทถกสรางขนอตโนมต เมอมการใชงานของ User
- field AcctSessionId เปน field session ทถกสรางขนอตโนมตเมอมการใชงานของ
User ทไมซ ากน โดยจะเปนตวเลขฐาน 16 จ านวน 16 หลก
- field AcctUniqueId เปน field UniqueID ทถกสรางขนอตโนมตเมอมการใชงานของ
User ทไมซ ากน โดยจะเปนตวเลขฐาน 16 จ านวน 16 หลก
- field UserName เปน field ทใชเกบ UserName ทมการใชงาน
- field NASIPAddress เปน field ทเกบ NASIPAddress ในทนเปน 0.0.0.0 เนองจาก
radius client และ radius Server อยในตวเดยวกน
60
- field NASPortId เปน field ทเกบ NASIPortId ในทนเปน 1 เนองจากเราใชคา port
default ของการตดตง Freeradius
- field NASPortType เปน field ทใชเกบชนดของการใชงาน โดย default เปน
Wireless-802.11
- field AcctStartTime เปน field ทเกบเวลาเรมตนเมอ User ใชงาน
- field AcctStopTime เปน field ทเกบเวลาสนสดลงเมอ User หยดใชงาน
- field AcctSessionTime เปน field ทใชเกบเวลาการใชงาน มหนอยเปน วนาท
- field CalledStationId เปน field ทใชเกบคา Mac Address ของ Radius server
- field CallingStationId เปน field ทใชเกบคา Mac Address ของ Client
- field AcctTerminateCause เปน field ทใชเกบสาเหตการสนสดการใชงานของ
User เชน User-Request(User Logout), Session-Timeout(User หมดเวลาการใชงาน), Idle-
Timeout(User ไมมการใชงานตามเวลาทก าหนด), Admin-Reset(Admin สง Dissconnect user นน
หยดการใชงานทนท)
- field FrameIPAddress เปน field ทเกบใช IPAddress ของ เครอง Client
ตารางท 15 Data Structure of radacct
Field Type KEY
radacctid int(11) PK
acctsessionid varchar(64)
acctuniqueid varchar(32)
username varchar(64)
nasipaddress varchar(16)
nasportid varchar(16)
nasporttype varchar(32)
acctstarttime datetime
acctstoptime datetime
acctsessiontime int(12)
calledstationid varchar(50)
callingstationid varchar(50)
61
acctterminatecause varchar(32)
frameipaddress varchar(16)
3.4.1.3 Table radcheck เปน table ทใชเกบคาตางๆ ของ User เชน Username , Password
- field id เปน field เลขหมายทถกสรางขนอตโนมตเพมขนทละ 1
- field UserName เปน field ทใชเกบ UserName
- field Attribute เปน field ทใชเกบคณสมบตของ User คอ
- Password เปนคา password ของ User นน
- field op เปน field option
- field Value เปน field ทใชเกบคาของ field Attribute
ตารางท 16 Data Structure of radcheck
Field Type KEY
id int(11) PK
username varchar(64)
attribute varchar(64)
op char(2)
value varchar(253)
3.4.1.4 Table radgroupcheck เปน table ทใชเกบคาตางๆ ของ Group
- field id เปน field เลขหมายทถกสรางขนอตโนมตเพมขนทละ 1
- field GroupName เปน field ทใชเกบ GroupName
- field Attribute เปน field ทใชเกบคณสมบตของ Group คอ
- Simultaeous-Use เปนการก าหนดให User ทอยใน Group น สามารถ
Login พรอมกนไดกเครอง ตามแตทไดระบใน field Value
62
-Auth-Type เปนการก าหนดชนดของการ Authentication
- field op เปน field option
- field Value เปน field ทใชเกบคาของ field Attribute
ตารางท 17 Data Structure of radgroupcheck
Field Type KEY
id int(11) PK
groupname varchar(64)
arttribute varchar(64)
op varchar(2)
value varchar(253)
3.4.1.5 Table radgroupreply เปน table ทใชเกบคาตางๆ ของ Group
- field id เปน field เลขหมายทถกสรางขนอตโนมตเพมขนทละ 1
- field GroupName เปน field ทใชเกบ GroupName
- field Attribute เปน field ทใชเกบคณสมบตของ Group คอ
- Idle-Timeout เปนการก าหนดไววา เมอ User ใน Group นไมไดใชงาน
เครองตามเวลาทก าหนดใน field Value กจะ Logout
- Session-Timeout เปนการก าหนดไววา เมอ User ใน Group สามารถใช
งานไดนานเทาไรในการ Login 1 ครง ตามทก าหนดใน field Value
- WISPr-Bandwidth-Max-Up เปนการก าหนดไววา เมอ User ใน Group
สามารถ Upload ไดเทาไร ตามทก าหนดใน field Value
- WISPr-Bandwidth-Max-Down เปนการก าหนดไววา เมอ User ใน Group
สามารถ Download ไดเทาไร ตามทก าหนดใน field Value
- field op เปน field option
- field Value เปน field ทใชเกบคาของ field Attribute
63
ตารางท 18 Data Structure of radgroupreply
Field Type KEY
id int(11) PK
groupname varchar(64)
attribute varchar(64)
op char(2)
value varchar(253)
3.4.1.6 Table usergroup เปนการเกบคาของ UserName วาอยใน GroupName ใด
- field id เปน field เลขหมายทถกสรางขนอตโนมตเพมขนทละ 1
- field UserName เปน field ทใชเกบ UserName
- field GroupName เปน field ทใชเกบ GroupName
- field priority เปน field ทใชเกบล าดบความส าคญของ UserName นน
ตารางท 19 Data Structure of radusergroup
Field Type KEY
id int(11) PK
username varchar(64)
groupname varchar(64)
priority int(11)
3.4.1.7 Table admin เปนการเกบคา username และ password ของ admin ทจะท าการ
manage ระบบ
- field id เปน field เลขหมายทถกสรางขนอตโนมตเพมขนทละ 1
- field UserName เปน field ทใชเกบ UserName
- field Attribute เปน field ทใชเกบคณสมบตของ User คอ
64
- Password เปนคา password ของ User
ตารางท 20 Data Structure of admin
Field Type KEY
id int(11) PK
username varchar(64)
attribute varchar(64)
op char(2)
value varchar(253)
3.4.2. Syslog Database เปน Database ใชในการเกบ Log ตางๆ ของระบบ ในทรวมถง
Logs การใชงานของ User ดวย โดยมแค 1 Table คอ
3.4.2.1 Table SystemEvents
- field ID เปน field เลขหมายทถกสรางขนอตโนมตเพมขนทละ 1
- field ReceiveAt เปน field ทใชเกบเวลาทอปกรณปลายทางสงมา
- field DeviceReportedTime เปน field ทใชเกบเวลาทเขยนลงฐานขอมล
- field Facility เปน field ทใชเกบ Facility ทเกดขน
- field Priority เปน field ทใชเกบ Priority ทเกดขน
- field FromHost เปน field ทใชเกบชอ Hostname ทสงมา
- field Message เปน field ทใชเกบเนอหาทเกดขน
- field SysLogTag เปน field ทใชเกบวาอะไรเปนตวสราง Log ขนมา
ตารางท 21 Data Structure of SystemEvents
Field Type KEY
id int(11) PK
ReceiveAt datetime
65
DeviceReportedTime datetime
Facility smallint(6)
Priority smallint(6)
FromHost varchar(60)
Message text
InfoUnitID int(11)
SysLogTag varchar(60)
3.5 การออกแบบในการตดตงออเทนทเคชนเกตเวยเซรฟเวอร การออกแบบในการตดตงจะทดลองบนโปรแกรม Vmware โดยท างานอยบนเครองแลปทอป
(Laptop Computer) ซงจะมการจ าลองเครองออเทนทเคชนเกตเวยเซรฟเวอรจ านวน 1 เครอง และเครองลกขายจ านวน 1 เครอง ตามรปท 3.7
ISP
Router & DHCP Server
Authentication gateway Server
DHCP Client(Host-only)
eth1
Workstation
eth0
tun0
Eth0 = BOOTP/DHCP(Bridged)
Eth1 = None(Host-only)
Tun0 = 10.0.1.1/24
Laptop Computer
รปท 3.7 แสดงการจ าลองการตดตงบนโปรแกรม VMWARE
3.5.1 สวนประกอบของโครงสรางเครองออเทนทเคชนเกตเวยเซรฟเวอร 3.5.1.1 เครองออเทนทเคชนเกตเวยเซรฟเวอรมการตดตงระบบปฏบตการเซนตโอเอส
เซอรเวอร 6.4
3.5.1.2 eth0 มการตงคาใหเปน BOOTP/DHCP (Bridged) ซงจะไดรบแจกไอพแอดเดรสจากเราเตอร ทท าหนาทแจกไอพแอดเดรสแบบอตโนมต
3.5.1.3 eth1 มการตงคาใหอย Host-only ซงจะไมมการตงคาไอพแอดเดรสใดๆ ใหกบเครองลกขาย
3.5.1.4 tun0 เปนอนเตอรเฟส ทสรางขนจากชลลสปอท โดยมการแจกคาไอพแอดเดรสใหกบเครองลกขายทท าการเขามาในระบบ
66
3.6 การออกแบบ WebManage หลงจากท ไดมการตดตงระบบปฏบตการและ package ท เกยวกบการท างานของ
Authentication Gateway Server ตลอดจนการ config คาตางๆทจ าเปนเพอทจะใหระบบท างานได
อยางทตองการแลวนนในการใชงาน Gateway Server มความจ าเปนทตองออกแบบ Webmanage ซง
ถกเขยนขนจากภาษา PHP โดยใช CodeIgniter Framework ในการเขยนเปนหลก และในหนา
Webmanage นนถกออกแบบมาเพอใหผใชงานนสามารถใชงานไดงายและสะดวกในการท างานบรหาร
จดการตางๆเกยวกบ Gateway Server
เพอทจะไดมองเหนภาพการท างานอยางชดเจนจงไดแสดงโครงสรางหนา Webpage ทงหมดซง
ใน Webmanage นนไดออกแบบขนมาโดยมหนา webpage หลกๆ 6 หนา คอ
1.Home page เปนหนาทใชส าหรบแสดงคาตางๆของ Gateway Server เชน สถานะ
ของ Service ,Spec ของ Gateway Server,รายละเอยดของ interface card ทมใน
เครอง
2.Usergroup page เปนหนาทใชส าหรบแสดง Groups ตางๆ และการจดการ Groups
3.User page เปนหนาทใชส าหรบแสดง User ตางๆ และการจดการ User
4.Usage Logs page เปนหนาทใชส าหรบแสดง Logs การใชงานของ user
โดยสามารถ Search Log ตามเงอนไขไดและสามารถ Export ไฟลออกมาดได
● 5.Rotate Logs page เปนหนาทใชส าหรบแสดง Log ของระบบทวงผาน Linux และม
การท า rotation log ตามพ.ร.บ
6.User Online page เปนหนาทใชส าหรบแสดง user ทก าลง online อยในระบบและ
สามารถ Kick user ทก าลง onlone ได
7.Logout page เปนหนาทใชส าหรบ Logout ออกจากระบบ
67
3.6.1 โครงสรางของ Webmanage แตละหนา
3.6.1.1 Home page เปนหนาทใชส าหรบแสดงคาตางๆของ Gateway Server เมอผดแลระบบ
ท าการ Login ผานเขามาแลว จะพบกบหนา Home เปนหนาแรก ซงในหนานจะแสดง สถานะ Service
,Spec เครอง และ รายละเอยด Network Interface Card ในระบบ ดงทกลาวมาขางตน
ซงโครงสราของหนา Home page ตามรปท 3.8 จะประกอบไปดวย 3 สวนคอ 1.แสดงสถานะ
ของ service 2.แสดง Spec ของเครอง 3.แสดง Interface ในเครอง
รปท 3.8 แสดงโครงสรางหนา Home page
3.6.1.2 Usergroup page เปนหนาทใชส าหรบแสดง Groups ตางๆ และการจดการ Groups
เชน
- Display Group (การแสดงคาตางๆของ Group )โดยมคาตางๆดงน
68
GroupName แสดงชอ Group ตางๆ
UL(bis/s) เปนคา Up Load ของ Group นนๆ
DL(bis/s) เปนคา Down Load ของ Group นนๆ
Idle Timeout เปนคาทเมอ user ไมมการใชงานภายในระยะเวลาทก าหนดก
จะถก disconnect แตเมอจะใชงานใหมกจะตอง Login ใหม
Session Timeout เปนคาทก าหนดให user แตละคนสามารถเลนไดครงละ
เทาไรตามทก าหนด เมอตองการใชงานใหมกตอง Login เขามาใหม
Simultaneous-Use เปนคาทก าหนดให user หนง user สามารถ Login ได
พรอมกนกเครอง )
- Add Group (การเพม Group)
- Edit Group (การแกไขคาตางๆของ Group)
- Delete Group (การลบ Group)
ซงโครงสรางหนา Usergroup page ตามรปท 3.9 นนจะประกอบไปดวย 2 สวน คอ 1.สวนเพมและแกไขรายละเอยดของ Group 2.สวนทแสดงรายละเอยดของ Group และสวนของการลบ Group
69
รปท 3.9 แสดงโครงสรางหนา Usergroup page
3.6.1.3 User page เปนหนาทใชส าหรบแสดงคาของ User ตางๆทมในระบบ และ
ส าหรบจดการ User ซงโครงสรางหนา User page ตามรปท 3.10 นนจะประกอบไปดวย 2
สวนคอ 1.สวนเพมและแกไขรายลเอยดของ User 2.สวนทแสดงรายละเอยดของแตละ User
และสวนของการลบ User
70
รปท 3.10 แสดงโครงสรางหนา User page
3.6.1.4 Usage Log page เปนหนาทใชส าหรบแสดง Log การใชงานของ user ซงโครงสราง
หนา User Log page ตามรปท 3.11-3.12 นนจะประกอบไปดวย 3 สวนคอ 1.สวนคนหา 2.สวนทแสดง
Log ของ User ทงหมด 3.สวนของการแสดง Log Detail ของ User แตละคนและการ Export
71
รปท 3.11 แสดงโครงหนา Usage log page(1)
72
รป 3.12 แสดงโครงหนา Usage log page(2)
3.6.1.5 Rotate Logs เปนหนาทใชส าหรบแสดง Log ทวงผาน linux โดยมการท า Rotation
Log File ซงโครงสรางหนา Rotate Logs ตามรป 3.13 นนจะประกอบไปดวย 2 สวนคอ 1.สวนของการ
แสดง Rotation Logs ทมในระบบ 2.สวนของการ Download Logs
73
รป 3.13 แสดงโครงหนา Rotate logs
3.6.1.6 User Online page เปนหนาทใชส าหรบแสดง user ทก าลง online อยในระบบและ
สามารถ Kick user ทก าลง onlone ได ซงมโครงสรางหนา User Online page ตามรปท 3.14
รปท 3.14 แสดงโครงหนา User Online page
74
3.6.1.7 Logout page เปนหนาทใชส าหรบ Logout ออกจากระบบ Webmanage ซงม
โครงสรางหนา Logout page ตามรปท 3.15
รปท 3.15 แสดงโครงสรางหนา Logout page
3.7 สรปทายบท ในบทท 3 จะเปนการกลาวถงการออกแบบโครงสรางการเชอมตอระบบเครอขายโดยมเครองออ
เทนทเคชนเกตเวยเซรฟเวอรซงตดตงขวางไวระหวางระบบเครอขายภายนอกและระบบเครอขายภายใน โดยจะท าใหเครองลกขายทจะตองการใชงานระบบเครอขายอนเทอรเนตจะตองผานการตรวจสอบสทธและพสจนตวตนจากเครองออเทนทเคชนเกตเวยเซรฟเวอรทกครงดงนนขนตอนการสรางและตดตงระบบบรหารจดการการเขาใชงานอนเทอรเนตภายในบรษทจะตองมการตดตงลนกซเซนตโอเอสเวอรชน 6.4 (Centos 6.4) แลวท าการเลอกแพกเกตตางๆในการตดตงดงน
3.7.1 Lamp server (Linux, Apache, Mysql, PHP) 3.7.2 SSH server 3.7.3 Freeradius (freeradius, freeradius-mysql, freeradius-utils) 3.7.4 Chillispot 3.7.5 Rsyslog
ซงหลงจากตดตงแพกเกตตางๆตามดานบนแลวนนจะตองท าการตงคาตางๆเพอใหระบบนนสามารถท างานไดตามวตถประสงคตอไป
75
บทท 4 ผลการทดสอบโครงงาน
4.1 บทน า ในการทดสอบโครงงานนไดท าการทดสอบบนโปรแกรมวเอมแวร(VMWARE) โดยเครองออ
เทนทเคชนเกตเวยเซรฟเวอรจะท าการตดตงระบบปฏบตการลนกซเซนตโอเอสเวอรชน 6.4 เพอท าหนาทตรวจสอบสทธและพสจนตวตนใหกบผใชบรการและเครองลกขายจะท าการตดตงระบบปฏบตการวนโดรเอกซพ(Windows XP) ซงจะท าหนาเปนผขอใชบรการ โดยมโครงสรางเครอขายจ าลองตามรปท 4.1
INTERNET
Router & DHCP Server
Authentication gateway Server
DHCP Client(Host-only)
eth1
Workstation
eth0
tun0
Eth0 = BOOTP/DHCP(Bridged)
Eth1 = None(Host-only)
Tun0 = 10.10.106.1/24
Laptop Computer
รปท 4.1 แสดงการจ าลองการตดตงบนโปรแกรม VM Ware
76
4.2 ผลการทดสอบ Web Manage 4.2.1 การเขาสระบบ Web Manage เพอจะบรหารจดการ User และคาตางๆในระบบท
http://192.168.1.242/wifiaut/index.php/cms/login ซงจะมหนา Login ใหใส Username,Password ส าหรบ Admin กอนเขาระบบ ตามรปท 4.2
รปท 4.2 แสดงหนา login
77
4.2.2 Home page เปนหนาแรกหลงจากทท าการ Login เขาสระบบ ซงจะแสดงหนา
รายละเอยดตางๆของ Server โดยแบงออกเปน 3 สวน คอ สวนท 1 จะเปนสวนทแสดง Service ตางๆท running อยและสเปกของ Gateway Server สวนท 2 จะเปน interface card ทใชงานใน Gateway Server โดย eth0 จะเปน card ทใชตอกบ Modem ADSL เพอใชงาน Internet, eth1 เปน card ทใชเชอมตอกบเครองลกขายภายใน และ tun0 เปน Tunnel Interface ของ Chillispot และสวนท 3 จะแสดงรายละเอยดทางกายภาพ(Physical) ของเครอง Gateway Server ตามรปท 4.3
รปท 4.3 แสดงหนา Home page
4.2.3 UserGroup page เปนหนาทแสดง Group ตางๆทมใชงานโดยมการแสดงคา
Attribute ตางๆของ Group นนๆ คอ Upload, Download, Idle Timeout, Session Timeout,
Simultaneous-Use โดยสามารถ Edit Group, Delete Group และ Add Group ได
โดยในการ Add Group นนสามารถท าการตรวจสอบไดวามการใสคาครบถวนหรอไม และมการตรวจสอบวาม Group ซ ากนหรอไม ตามรปท 4.4-4.6
78
รปท 4.4 แสดงหนา User Group page
รปท 4.5 แสดงหนา add group ใสคาไมครบ
79
รปท 4.6 แสดงคาวาม Group นมอยแลวในระบบ 4.2.4 User page เปนหนาทแสดงการจดการ User โดยแบงเปน 2 สวน คอสวนท 1 จะเปน
สวนทเพม User เขาไปในระบบ โดยตองท าการใส Username กบ Password และตองมการ Confirm Password อกครง หลงจากนนท าการเลอก Group ของ User ทจะใหอย โดยในสวนนจะมการตรวจสอบ User ดวยวามซ ากบในระบบหรอไม สวนท 2 จะแสดงรายการของ User ทมในระบบ และในสวนนยงสามารถท าการ edit คาของ User ได และสามารถท าการ delete user ทมอยในระบบได ตามรปท 4.7-4.9
80
รปท 4.7 แสดงหนา User page ทใชส าหรบ Manage User
รปท 4.8 แสดงหนา User ทเพมเขาไปใหมนนซ ากบทมในระบบ
81
รปท 4.9 แสดงหนา Add User ซงไมไดกรอก Re-Password อกครง
4.2.5 Usage Logs page เปนหนาทแสดง Log การใชงานของ User ตางๆ ซงจะแสดง ID, UserName, StarTime, StopTime, Time, Terminate Cause, IP Address โดยไดมาจากการ query จาก Radius Database ตามรปท 4.10 โดยหนานแบงออกเปน 3 สวนหลกๆคอ 1.สวนของการแสดงขอมล Log การใชงานของ User แตละคน 2.Search Logs สวนนใชส าหรบคนหา Log ของ User ทเราตองการ สามารถคนหา Log ไดตามเงอนไข 4 ชนดคอ 1.Username 2.Time 3.Terminate Cause 4.IP ADDRESS 3.สวนแสดง Logs Detail และการ Export ขอมล ตามรปท 4.10
82
รปท 4.10 แสดงหนา Usage Logs page
83
4.2.6 Rotate Logs page เปนหนาทแสดง Log ของระบบทงหมดทวงผาน Linux และไดม
การท า Rotation Log หลงจากนนระบบจะท าการ Encryption และลบ Logs ออกจากระบบ ซงจะแสดง Logs ทงหมดตามรปท 4.11
รปท 4.11 แสดงหนา Rotate Logs page
4.2.7 User Online page เปนหนาทแสดง User ทก าลง Online อยในระบบ ตามรปท 4.12
รปท 4.12 แสดงหนา User Online page
84
4.3 ผลการทดสอบในสวนการพสจนตวตน
4.3.1 เมอเครองลกขายท าการเรยกเวบบราวเซอรจะแสดงหนา welcome.html ตามรปท 4.13
รปท 4.13 แสดงการหนาแรกเพอสระบบลอคอน
4.3.2 เมอเลอกท Click here to login จะแสดงหนา login เพอใหใส Username และ
password ตามรปท 4.14
รปท 4.14 แสดงหนาลอคอนโดยใสชอผใชและรหสผาน
85
4.3.3 หลงจากนนเมอผใชบรการใสชอผใชและรหสผานและระบบท าการตรวจสอบสทธเสรจ
เรยบรอยแลวกจะอนญาตใหผใชบรการใชงานอนเตอรเนตไดดงรป ซงจะปรากฎ Remaining Time ท
เหลอบนหนา Page ตามรปท 4.15
รปท 4.15 แสดง Session Time ทเรมนบถอยหลงหลงจาก Login
4.3.4 แตถาผใชบรการใสชอผใชหรอรหสผานผดระบบจะบอกสถานะผานหนาเวบโดยแจงขอความวา Login Failed ตามรปท 4.16
รปท 4.16 แสดงการใสชอผใชหรอรหสผด
86
4.3.5 แตถาผใชบรการท าการ Login เขาใชงานดวย username เดมเปนครงท 2 ในขณะทก าลงใชงานอยอกเครองผลลพธจะปรากฎตามรปท 4.17
รปท 4.17 แสดงการใสชอผใชงานซ าซอนในเวลาเดยวกน
4.3.6 เมอมการ Login ส าเรจแลวเราสามารถดไดจากหนา Web Manage ทอยในหนา User Page ซงะแสดง User ท online อย โดยจะแสดง Username, IPAddress, StartTime, MacAddress ซงเราสามารถ Kick User ทก าลง online อยได โดยการเลอกท Kick ซงอยในสวนของ Action ตามรปท 4.18
รปท 4.18 แสดงภาพ User ทก าลง Online
87
4.4 ผลการทดสอบการ Manage Group
4.4.1 ทดสอบโดยการเพม Group sample01 เขาไปในระบบ โดยมคา Idel Timeout = 10
นาท, Session Timeout = 4 ชวโมง, Bandwidth Upload = 256 KB/s, Bandwidth Download = 512
KB/s ตามรปท 4.19
รปท 4.19 แสดงการเพม group sample01 เขาไปในระบบ
88
4.4.2 ทดสอบโดยการลบ Group sample01 ออกจากระบบ ตามรปท 4.20
รปท 4.20 แสดงการลบ group sample01 ออกจากระบบ
89
4.4.3 ทดสอบโดยการแกไขคาใน Group sample01 โดยแกไขคา Bandwidth Upload จาก 256 KB/s เปน 512 KB/s ตามรปท 4.21
รปท 4.21 แสดงการแกไขคาใน group sample01
90
4.5 ผลการทดสอบ Manage User
4.5.1 ทดสอบโดยการเพม user test4 และใหอยใน Group sample01 เขาไปในระบบ
ตามรปท 4.22
รปท 4.22 แสดงการเพม User Test4 เขาไปในระบบ
91
4.5.2 ทดสอบโดยการลบ User test4 ทอยใน Group sample01 ออกจากระบบระบบ ตามรป
ท 4.23
รปท 4.23 แสดงการลบ User Test4 ออกจากระบบ
92
4.5.3 ทดสอบโดยการแกไขคาของ User Test4 ทอยใน Group sample01 ตามรปท 4.24
รปท 4.24 แสดงการแกไข Group ของ User Test4
93
4.6 ผลการทดสอบใชงานของ User
4.6.1 ทดสอบ Session Timeout ของ USER “suriya” ซงอยใน Group sample01 ซงมคา
Session Timeout = 5 นาท และแสดงผมตามรปท 4.25-4.26
รปท 4.25 แสดงรายละเอยด Attribute ของ User ทใชทดสอบ
รปท 4.26 แสดง Logs ของ user ทใชทดสอบหลงจาก Session Timeout
94
4.6.2 ทดสอบการก าหนด speed การใชงานของ User โดยการใชงาน Attribute Upload และ
Download โดยใช Username=suriya ซงอยใน group sample01 มคา Upload=512 KB/s, Download=
512 KB/s ตามรปท 4.27-4.28
รปท 4.27 แสดงรายละเอยดและ Attribute ของ User ทใชทดสอบความเรว
รปท 4.28 แสดงการทดสอบ speed test ของ User
95
4.7 ผลการทดสอบการเรยกด Logs การใชงานของ User และการ Export
4.7.1 การเรยกด Log ของ User ทใชงานในระบบโดยเรยกทหนา Usage Logs แลวคลกท
User ทตองการจะด หลงจากนนกจะแสดง Log การใชงานของ User ในหนา Logs Detail ตามรปท
4.29-4.30
รปท 4.29 แสดงเลอกหนา Usage Logs
96
รปท 4.30 แสดง Logs Detail หลงจากเลอก User ทตองการด Logs
97
4.7.2 การคนหา Log การใชงานของ User
4.7.2.1 คนหา Logs จากชอผใชงาน โดยการทดสอบนผจดท าจะท าการคนหา Logs
ของผใชงานชอ nitipong ซงจะแสดงผลลพธตามรปท 4.31
รปท 4.31 แสดง Logs ของ User ทคนหาจากชอผใชงาน
98
4.7.2.2 คนหา Logs ตามวนทใชงาน โดยการทดสอบนจะท าการคนหา Logs ตาม
เวลาทตองการ ซงตามตวอยางจะเลอก Logs ของ User ทเกดขนตงแตวนท 1 ต.ค.58 – 31 ต.ค.58
ตามรปภาพ 4.32
รปท 4.32 แสดง Logs ของ User ทคนหาจากวนท
99
4.7.2.3 คนหาจากสาเหต โดยการทดสอบนจะท าการคนหา Log จากสาเหตการสนสด
การใชงาน ซงตามตวอยางจะเลอกจากสาเหต Session timeout ตามรปภาพ 4.33
รปท 4.33 แสดง Logs ของ User ทคนหาจากสาเหต
4.7.2.4 คนหาจาก IP Address โดยการทดสอบนจะท าการคนหาจาก IP Address ตาม
ตวอยางจะคนหาจาก IP Address : 10.10.106.112 ตามรปท 4.34
100
รปท 4.34 แสดง Logs ของ User ทคนหาจาก IP Address
101
4.7.3 การ Export Log ในการทดสอบนจะท าการ Export Log การใชงานของผใชงานชอ
suriya ตามรปท 4.35-4.36
รปท 4.35 แสดงการ Export Log file เปน CSV
รปท 4.36 แสดงเนอหาใน Log file ทไดจากการ Export
102
4.8 ผลการทดสอบการเรยกด Logs ในหนา Rotate Logs
ซงตามตวอยางนนจะเลอกด logs ของวนท 5 พ.ย.58 โดยผจดไดท าการ download ไฟลลง
เครองซงจะไดไฟลทชอ wifireport.txt ตามทแสดงในรปภาพ 4.37-4.38
รปท 4.37 แสดงการเลอก Download ไฟลของ rotation Logs
รปท 4.38 แสดงเนอหาใน wifireport.txt
103
บทท 5 สรปผลโครงงาน
5.1 กลาวน า
การทดลองผศกษาไดใชระบบปฏบตการลนกซเซนตโอเอสเซอรเวอร 6.4 ซงท าหนาทเปนออเทนทเคชนเกตเวยเซรฟเวอร (Authentication Gateway Server) ของระบบเครอขายโดยมการตดตงแพตเกต (Package) ตางๆทเกยวของ คอ ชลลสปอท(Chillispot), ฟรเรเดยส(Freeradius), มายเอสควแอล(Mysql), rsyslog เพอทจะท าหนาทในการพสจนตวตนบนเครองแมขายซงเปนสวนหนงในการบรหารจดการการเขาใชงานระบบบรหารจดการอนเตอรเนตภายในองคกร
5.2 สรปผลด าเนนงาน
จากขอบเขตสารนพนธในบทท 1 ทางผจดท าไดท าการทดสอบในการจ าลองระบบเครอขายในโปรแกรมวเอมแวร(VMWARE) ซงไดมการเชอมตอระหวางเครองออเทนทเคชนเกตเวยเซรฟเวอรจ านวน 1 เครองกบเครองลกขายจ านวน 1 เครองโดยใชลนกซเซนตโอเอสเซอรเวอร 6.4 โดยมผลการด าเนนงานดงน
5.2.1 สามารถพสจนตวตนของ Client ทท าการรบ DHCP จากระบบโดยใช Account ทสรางจาก Web Manage ได 5.2.2 สามารถเพม,ลบและแกไข Account ของผใชบรการผานทาง Web Manageได 5.2.3 สามารถก าหนดระยะเวลาในการเขาใชงานของผใชบรการไดผานทาง Web Manageได 5.2.4 สามารถควบคมแบนดวดธ (Bandwidth)ทงอพโหลดและดาวนโหลดของผใชบรการได 5.2.5 สามารถด Log ของผใชบรการผานทางหนา Web Manageได 5.2.6 สามารถคนหา Log ของผใชบรการตามเงอนไขทก าหนดได 5.2.7 สามารถด Log ของระบบทเกดจากการท า Rotation ไฟลได
5.3 ปญหาและอปสรรค 5.3.1 เนองจากเครองทใชทดสอบนนเปนเครองเสมอน(Virtual Server) ท างานบน VMWARE ดงนนในการทดสอบจงมขอจ ากดในเรองของประสทธภาพของ Hardware 5.3.2 เนองจากระบบทใชทดสอบนนอางองจากการใชงานจรง จงจ าลองสถานะของระบบใหเปนจรงตามไปดวย ดงนนในระบบนจงตองมการเชอมตอ internet อยตลอดเวลาเพอใชส าหรบแจกไอพใหกบ Server และ Client ซงระบบจะท างานไมไดถาไมมการเชอมตอ internet กอน
104
5.4 แนวทางในการพฒนา
5.4.1 พฒนาระบบการออกรายงานใหคลอบคลมและหลากหลายตามความตองการ 5.4.2 สามารถน าระบบนไปตอยอดในการบลอก Website ,บลอก Port ทไมตองการใหเขาใชงานเพอเพมความปลอดภยใหกบระบบ
105
เอกสารอางอง [1] พศาล พทยาธรววฒน ตดตงระบบเครอขาย Linux Server ภาคปฎบต. –กรงเทพฯ : ซเอด
ยเคชน, 2555. [2] อ.บณฑต จามรภต คมภร Ubuntu Linux Server เลม 3: Bandhit Press 2554. [3] อ.บญลอ อยคง, คมอประกอบการฝกอบรมปฏบตงาน Linux Server Security, พ.ศ. 2551. [4] [1] PHP. (2013 July). My PHP.net, [Online]. Available:
http://www.php.net/manual/en/index.php
[5] จตชย แพงจนทร, อนโชต วฒพรพงษ, เจาะระบบ Network 2nd
, infopress, พ.ศ. 2551. [6] นายสรเชษฐ ณ นคร, ระบบบรหารจดการการใชอนเตอรเนตส าหรบธรกจขนาดเลก. สารนพนธ
วทยาศาสตรมหาบณฑต สาขาวศวกรรมเครอขาย มหาวทยาลยเทคโนโลยมหานคร, 2553. [7] http://tldp.org/HOWTO/Traffic-Control-HOWTO/ [8] https://www.codeigniter.com/ [9] http://www.thaiall.com/pdf/law_500618.pdf
106
ภาคผนวก ก
การตดตงระบบปฏบตการ CentOS 6.4 บน VMware
1. กด New Virtual Machine
รปท 1 2. เมอไดหนาตาดงรป ใหเลอก Typical แลวกด Next > (หรอกดตามตวเลขทก ากบไว)
107
รปท 2
3. กดตวเลอกชองลางสด และกด Next >
รปท 3
108
4. เลอกระบบปฏบตการ ในทนจะเปน Linux และท าการเลอกเวอรชนใหเขากบเครองคอมพวเตอรของคณ ตวอยางคอ CentOS ท าการกด Next >
รปท 4
5. พมพชอระบบทเราตองการ ท าการเลอกทอยของไฟล และกด Next >
109
รปท 5
6. ปรบ size ใหเปน 30 แลวกด Next >
110
รปท 6 7. กด Finish
รปท 7
8. เสรจแลวจะไดหนาตาแบบน ดงรปท 8
รปท 8
111
9. ตอไปเปนการตงคา ใหกดท Edit (ตวเลข 12)
รปท 9
10. เลอกเพม-ลด ความจ าตามตองการ ตวอยางปรบไปท 2 GB
112
รปท 10
11. เลอกท CD/DVD กด User ISO ดงรป กดหาทอยของไฟลระบบปฏบตการทเราเกบไว
รปท 11
113
12. ตงคา Network Adapter กดท Custom เลอก VMnet8 (NAT) แลวกด OK
รปท 12
13. กด Power on this virtual machine เพอเปดระบบปฏบตการ
114
รปท 13
14. เมอมหนาตางแสดงขนมาใหกด OK
รปท 14
115
15. ปลอยใหระบบตดตงเองไรเรอยๆ ดงรปท 15
รปท 15
16. ในขนตอนนเราจะไมสามารถใชเมาสได ใหกดลกศร ไปท Skip แทน แลวก Enter
รปท 16
116
17. กด Next
รปท 17
18. ท าการเลอกภาษา ใหเลอกเปน English (English) แลวกด Next
รปท 18
117
19. ตงคาคยบอรดในเลอก U.S English แลวกด Next
รปท 19
20. ขนตอนนใหเลอก Basic Storage Devices แลวกด Next
รปท 20
118
21. ขนตอนนระบบจะถามถงการปรบปรงพนทใหเลอก Yes
รปท 21
22. ตงชอตาม localhost
119
รปท 22
23. เลอกเวลาตามสถานททเราอยตามภมภาค หรอเวลาสากลของประเทศ กด Next
รปท 23
24. ตงรหสความปลอดภยส าหรบตวเครอง เสรจแลวกด Next
120
รปท 24
25. เลอก Create Custom Layout แลวกด Next
รปท 25
26. ขนตอนตอไปเปนการสรางไดรฟส าหรบเครอง โดยใหกดทพนทวางหรอค าวา Free 1 ครงแลวกด Create จะมหนาตางขนมาใหเลอกท Standard Partition กด create อกครง
121
รปท 26
27. ชอง Mount Point ใหกดลกศรลงเลอก /boot ก าหนด Size ท 250 ตกท Fixed size แลวก Force to be a primary partition และกกดปม OK
รปท 27
28. ใหท าตามขอท 26 อกครง (รปท 26) แลวตงคา ชอง Mount Point ใหกดลกศรลงเลอก / ก าหนด Size
122
ท 10000 ตกท Fixed size แลวก Force to be a primary partition และกกดปม OK ตามรปท 28
รปท 28
29. ใหท าตามขอท 26 อกครง (รปท 26) แลวตงคา ชอง File System Type ใหกดลกศรลงเลอก swap ก าหนด Size ท 4000 ตกท Fixed size แลวก Force to be a primary partition และกกดปม OK ตามรปท 29
รปท 29
123
30. ใหท าตามขอท 26 อกครง (รปท 26) แลวตงคา ชอง Mount Point ใหกดลกศรลงเลอก /home ก าหนด Size ท 1000 ตกท Fixed size และกกดปม OK ตามรปท 30
รปท 30
31. ใหท าตามขอท 26 อกครง (รปท 26) แลวตงคา ชอง Mount Point ใหกดลกศรลงเลอก /tmp ก าหนด Size ท 250 ตกท Fixed size และกกดปม OK ตามรปท 31
รปท 31
124
32. ใหท าตามขอท 26 อกครง (รปท 26) แลวตงคา ชอง Mount Point ใหกดลกศรลงเลอก /var ก าหนด Size ท 200 ตกท Fill to maximum allowable size แลวกกดปม OK ตามรปท 32
รปท 32
33. เมอตงคาเสรจหมดแลวจะไดไดรฟตางๆดงรป กด Next
รปท 33
125
34. กด Format เพอใหระบบไดลางไดรฟตางๆ
รปท 34
35. เมอมหนาตางแสดงขนมาใหกด Write changes to disk
126
รปท 35 36. ระบบจะท าการ Format
รปท 36
37. กด Next
127
รปท 37
38. เลอกท Desktop และ Customize now กด Next
รปท 38
39. หนานจะแสดงโปรแกรมตางๆ หากเราตองการโปรแกรมไหนใหท าการตกเลอก เมอเสรจแลวกด Next
128
รปท 39
40. รอสกคร ระบบจะท าการตดตง
รปท 40
41. เมอระบบท าการตดตงเสรจแลวจะแสดงหนาดงรปท 41 ใหเรากด Reboot
129
รปท 41
42. ระบบจะท าการ Reboot เมอเสรจเรยบรอยแลวจะแสดงหนาตาดงรปท 44 ใหกด Forward
รปท 42
130
รปท 43
รปท 44
43. ใหกดเลอก Yes แลวกกด Forward ตามรปท 45
รปท 45
131
44. ใหท าการสรางผใช โดยการตงชอผใช และรหสผาน เมอสรางเสรจแลวใหเลอนลงมาดานลาง และกด Forward ดงรปท 46-47
รปท 46
รปท 47
132
45. ตอไปเปนการตงคาวนทส าหรบตวเครอง ใหตกท Synchronize date and time over the network เพอใหวนและเวลาตงคาตามทเชอมตอกบอนเตอรเนต กด Forward ดงรปท 48-49
รปท 48
รปท 49
46. กด Finish เมอมหนาตางแสดงขนมาใหกด Yes ดงรปท 50-51
133
รปท 50
รปท 51
47. จะมหนาตางแสดงขนมา ใหเราท าการ Login ตามชอผใชและรหสผานทเราไดสรางไวแลวเบองตน ดงรปท 52
134
รปท 52
48. เมอท าการ Login เสรจแลวจะแสดงหนาตาของระบบปฏบตการ เราสามารถใชไดตามปกต ตามรปท 53 ถอวาเปนการเสรจสนในการตดตงระบบปฏบตการ CentOS 6.4
รปท 53
135
ภาคผนวก ข การตดตงแพกเกตตางๆบนระบบ 1. การตดตง และการ configuration freeradius
1.1 ตดตง package โดยใชค ำสง yum install freeradius ตอบ “Y” เพอตดตง
1.2แกไขใหท ำงำนทกครงเมอมกำร boot เครอง ใชค ำสง chkconfig --level 2345 radiusd on
1.3สงให service ท ำงำนใหม service rediusd restart
1.4ไฟลทเกยวของ /var/log/radius/radius.log เปนไฟลส ำหรบด error /etc/raddb/radius.conf เปนไฟลส ำหรบ config
136
/etc/raddb/clients.conf เปนไฟลส ำหรบอนญำตให ip ใดใชงำน radius ได 2. การตดตง และการ configuration chillispot แบบ Web Login
2.1ท ำกำรตดตง package chillispot
2.2ไฟลทเกยวของ /etc/chilli.conf /var/www/cgi-bin/hostspotlogin.cgi /var/www/html/welcome.html /etc/firewall.iptables
2.3แกไขไฟล /etc/sysconfig/network-scripts/ifcfg-eth1
2.4แกไขไฟล /etc/chilli.conf โดยใชค ำสง
vi /etc/chilli.conf แลวท ำกำรแกไขคำตำงๆดงน [หวขอ # TUN parameters] เดม # 192.168.182.0/24 ใหพมพ net 10.0.1.0/24 (เปน network ลกขำยของเรำ) [หวขอ # Radius parameters] [ # TAG : radiusserver1 ] เดม radiusserver1 rad01.chillispot.org (ท ำกำรใส เครองหมำย # หนำบรรทดน) พมพเพม radiusserver1 127.0.0.1 [ # TAG : radiusserver2 ] เดม radiusserver2 rad02.chillispot.org (ท ำกำรใส เครองหมำย # หนำบรรทดน) พมพเพม radiusserver2 127.0.0.1
137
[ # TAG : radiussecret ] เดม radiussecret testing123 (ยงไมแกไข เมอใชงำนจรงควรแกไข ใหตรงกบคำ radius secret ของไฟล /etc/raddb/clients.conf) [หวขอ # Universal access method (UAM) parameters] [ # TAG : uamserver ] เดม uamserver https://radius.chillispot.org/hotspotlogin (ใส เครองหมำย # หนำบรรทดน) พมพเพม uamserver https://10.0.1.1/cgi-bin/hotspotlogin.cgi [ # TAG : uamhomepage ] เดม uamhomepage http://192.168.182.1/welcome.html (ใส เครองหมำย # หนำบรรทดน) พมพเพม uamhomepage http://10.0.1.1/welcome.html [ # TAG : uamsecret ] เดม #uamsecret ht2eb8ej6s4et3rglulp แกเปน uamsecret ht2eb8ej6s4et3rglulp (เอำเครองหมำย # หนำบรรทดนออก หรอจะท ำกำรแกไขรหสใหมกได แตตองใหมคำเหมอนกบในไฟล hotspotlogin.cgi) [ # TAG : uamlisten ] เดม #uamlisten 192.168.182.1 พมพเพม uamlisten 10.0.1.1
2.5copy file firewall.iptables ดวยค ำสง cp /usr/share/doc/chillispot-1.1.0/firewall.iptables /etc
2.6copy file hotspotlogin.cgi ดวยค ำสง
cp /usr/share/doc/chillispot-1.1.0/ hotspotlogin.cgi /var/www/cgi-bin/
2.7แกไขไฟล vi /var/www/cgi-bin/hotspotlogin.cgi คำตำงๆดงน เดม # $uamsecret = "ht2eb8ej6s4et3rglulp"; เปน $uamsecret = "ht2eb8ej6s4et3rglulp";
138
(เอำเครองหมำย # ออก ถำไมตองกำรเปลยนคำของ uamsecret หรอตองกำรทจะท ำกำรแกไขรหสใหมกได แตตองใหมคำเหมอนกบในไฟล /etc/chilli.conf)
เดม # $userpassword=1; (เอำเครองหมำย # ออก) เปน $userpassword=1;
2.8สรำงไฟล /var/www/html/welcome.html โดยมลำยละเอยด คอ
<html> <head> <title>Welcome to Our Hotspot, Wireless Network.</title> </head> <body> <center> <H1><font color="red">TESTING ONLY</font></H1> <img src="chillispot.png" mce_src="chillispot.png"> <H3><font color="blue">Welcome to Our Hotspot, Wireless Network.</font></H3> <p>You are connected to an authentication and restricted network access point. <H3><a href="http://10.0.1.1:3990/prelogin" mce_href="http://10.0.1.1:3990/prelogin">Click here to login</a></H3> <p> <p>Enjoy. </center> </body> </html>
2.9 ดำวนโหลดรป chillispot.png แลวไปไวท /var/www/html 2.10 แกไขใหท ำงำนทกครงเมอมกำร boot เครอง ใชค ำสง
chkconfig --level 2345 chilli on
2.11 สงให service ท ำงำนใหม service chilli restart
139
2.12 เมอ restart เรยบรอยแลว กจะม interface tun0 ม ip เปน 10.0.1.1 [root@Gateway ~]# ifconfig eth0 Link encap:Ethernet HWaddr 00:0C:29:CA:05:BB inet addr:192.168.1.3 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:feca:5bb/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:773 errors:0 dropped:0 overruns:0 frame:0 TX packets:164 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:85413 (83.4 KiB) TX bytes:23308 (22.7 KiB) Interrupt:18 Base address:0x2000 eth1 Link encap:Ethernet HWaddr 00:0C:29:CA:05:C5 inet6 addr: fe80::20c:29ff:feca:5c5/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:13 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 b) TX bytes:1046 (1.0 KiB) Interrupt:17 Base address:0x2080 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:4109 errors:0 dropped:0 overruns:0 frame:0 TX packets:4109 errors:0 dropped:0 overruns:0 carrier:0
140
collisions:0 txqueuelen:0 RX bytes:5964744 (5.6 MiB) TX bytes:5964744 (5.6 MiB) tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet addr:10.0.1.1 P-t-P:10.0.1.1 Mask:255.255.255.0 UP POINTOPOINT RUNNING MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:500 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b) [root@Gateway ~]#
2.13 copy ไฟล firewall.iptables ดวยค ำสง
cp /usr/share/doc/chillispot-1.1.0/firewall.iptables /etc
2.14 แกไขไฟล vi /etc/rc.local โดยเพม 2 บรรทดดำนลำงน เพอให firewall.iptables และ chllispot แลวท ำกำรบตเครองใหม sh /etc/firewall.iptables service chilli start
3. การตดตง และการ configuration Mysql โดยม package ทเกยวของทจะตดตงดวยกนคอ
mysql-5.0.45-4.fc8 mysql-server-5.0.45-4.fc8 freeradius-mysql-1.1.7-3.1.fc8
3.1หลงจำกท start service mysqld แลว ในครงแรกนน ใหท ำกำร create password ใหกบ admin
ของ mysql ซงกคอ root (คนละ root กบของ system) โดยใชค ำสง /usr/bin/mysqladmin -u root password 'abcd1234'
และเมอเรำตองกำรออกจำก mysql กใหพมพค ำวำ quit
141
3.2 สรำง database และ user ใหมชอ radius เพอให freeradius ใชเปนฐำนขอมลทเกยวของใน กำร authentication โดยเขำ mysql ครงแรกใหเปน root กอน
ค ำสงเพอไปยงฐำนขอมล โดยเขำเปน root mysql -uroot -pabcd1234 สรำง database ชอ radius โดยใชค ำสง CREATE DATABASE radius;
สรำง user ชอ radius และอนญำตใหมสทธในกำรใช database ชอ radius โดยใชค ำสง GRANT ALL PRIVILEGES ON radius.* to 'radius@localhost' IDENTIFIED BY 'abcd1234';
142
FLUSH PRIVILEGES;
3.3 น ำ database schema ของ freeradius มำใชงำน โดยค ำสง mysql -uroot -pabcd1234 radius < /usr/share/doc/freeradius-1.1.7/examples/mysql.sql
4. การตดตง และการ configuration freeradius-mysql
4.1ท ำกำรตดตง package freeradius-server โดยวธกำร yum install เพอทจะให mysql ท ำงำนรวมกบ freeradius
4.2แกไขไฟล /etc/raddb/sql.conf
login = "radius" password = "abcd1234" radius_db = "radius"
143
4.3แกไขไฟล /etc/raddb/radiusd.conf เดม # $INCLUDE ${confdir}/sql.conf (เอำเครองหมำย # ออก) เปน $INCLUDE ${confdir}/sql.conf
4.4 แกไขไฟล /etc/raddb/radiusd.conf เดม # See "Authorization Queries" in sql.conf # sql (เอำเครองหมำย # หนำ sql ออก) เปน # See "Authorization Queries" in sql.conf sql เดม # See "Accounting queries" in sql.conf # sql (เอำเครองหมำย # หนำ sql ออก) เปน # See "Accounting queries" in sql.conf sql เดม # See "Simultaneous Use Checking Querie" in sql.conf # sql (เอำเครองหมำย # หนำ sql ออก) เปน # See "Simultaneous Use Checking Querie" in sql.conf sql
4.5แกไขไฟล /etc/raddb/radiusd.conf เพอเพม modules sqlcounter ทสำมำรถใชงำนในสวนของ session-timeout ม 3 module คอ noresetcounter, dailycounter, monthlycounter ลงใน section authorize {….} คอ
authorize {….. # Append modules noresetcounter dailycounter monthlycounter # # See "Authorization Queries" in sql.conf sql ……. }
144
4.6แกไขไฟล /etc/raddb/radiusd.conf โดยเพม noresetcounter ไวบน sqlcounter ทชอ dailycounter ดงลำยละเอยดดำนลำง
sqlcounter noresetcounter { counter-name = Max-All-Session-Time check-name = Max-All-Session sqlmod-inst = sql key = User-Name reset = never query = "SELECT SUM(AcctSessionTime)FROM radacct WHERE UserName='%{%k}'" }
4.7สรำงไฟล script ชอ /etc/raddb/log-gateway.sh เพอจดให log ของกำรใชงำน Radius
แบงเปนเวลำตำมวน
#!/bin/sh export LANG=en.US mydir="/var/log/radius/log-gateway" if [ ! -d $mydir ] ; then mkdir -p $mydir fi today=`date "+%Y%m%d"` myfile="$mydir/$today" if [ ! -e $myfile ] ; then touch $myfile fi mytime=`echo $1|awk '{print strftime("%Y%m%d:%H:%M:%S",$1)}'` echo " $mytime: User Name = $USER_NAME IP Client = $FRAMED_IP_ADDRESS: $1: MAC Client = $CALLING_STATION_ID: MAC Gateway = $CALLED_STATION_ID: Session ID = $ACCT_UNIQUE_SESSION_ID:
145
Status = $ACCT_STATUS_TYPE Total Time = $ACCT_SESSION_TIME Sec" >> $myfile
4.8หลงจำกแกไขไฟลทงหมดแลว ท ำกำร service restart
5. การตดตง และการ configuration Squid
5.1หลงจำกมกำรตดตงแลว ท ำกำรแกไขไฟล /etc/squid/squid.conf
[root@Gateway ~]#vi /etc/squid/squid.conf acl our_net src 10.0.1.0/255.255.255.0 http_access allow our_net http_port 3128 transparent cache_mem 85 MB cache_dir ufs /var/spool/squid 100 16 256 logformat combined %{%Y%m%d:%H:%M:%S:}tl %6tr %>a %Ss/%03Hs %<st %rm %ru %un %Sh/%<A %mt access_log /var/log/squid/access.log combined client_netmask 255.255.255.255
5.2ท ำกำรก ำหนด transparent proxy ดวย กำรแกไขไฟล /etc/firewall.iptables
[root@Gateway ~]#vi /etc/firewall.iptables #Allow transparent proxy1 $IPTABLES -A INPUT -p tcp -m tcp --dport 3128 --syn -j ACCEPT #Allow Transparent proxy2 $IPTABLES -t nat -A PREROUTING -i tun0 -p tcp --dport 3128 --syn -j DROP $IPTABLES -t nat -A PREROUTING -i tun0 -p tcp --dport 80 -j REDIRECT --to-ports 3128
5.3หลงจำกนนสงให iptables ท ำงำนโดยใชค ำสง
sh /etc/firewall.iptables
5.4หลงจำกแกไขไฟลทงหมดแลว ท ำกำร service squid restart 6. การตดตง และการ configuration NTP (Network Time Protocol)
6.1 ท ำกำรแกไขไฟล /etc/ntp.conf ตำมคำดำนลำง
146
[root@Gateway ~]#vi /etc/ntp.conf driftfile /var/lib/ntp/drift restrict default kod nomodify notrap nopeer noquery restrict 127.0.0.1 restrict 10.0.1.0 mask 255.255.255.0 nomodify notrap server 203.185.69.60 dynamic server time.navy.mi.th dynamic server time.nist.gov dynamic server 127.127.1.0 # local clock fudge 127.127.1.0 stratum 10 includefile /etc/ntp/crypto/pw keys /etc/ntp/keys
6.2ท ำกำร restart service ดวยค ำสง service ntpd restart 6.3ท ำกำร config เครองลกขำยทใช ระบบปฏบตกำร Windows Xp ดงน
- เลอกเมน Start -> Run -> พมพ regedit แลวกด Enter แลวเลอก Tap [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w32time\TimeProviders\NtpClient]
จำกนน double click ไฟล SpecialPollInterval ใหเลอกเปน decimal จะมคำ 604800 มหนวยเปน วนำท ซง 604800 = 7 วน ในทจะเลอกคำ = 60 วนำท
- double click ทชอง time มมขวำลำง แลวเลอก tap Internet Time ในชอง server ใหใส ip = 10.0.1.1 เปน ip ของ card tun0 แลวตก Automatically synchronize
6.4เพม rule ใสในไฟล /etc/firewall.iptables [root@Gateway ~]#vi /etc/firewall.iptables #Allow ntpd $IPTABLES -A INPUT -p udp --dport 123 -j ACCEPT ##port of ntp $IPTABLES -A OUTPUT -p udp --dport 123 -j ACCEPT ##port of ntp
6.5หลงจำกนนสงให iptables ท ำงำนโดยใชค ำสง
sh /etc/firewall.iptables
147
7. การ Configuration เพอให Gateway สามารถเกบ Log ลงฐานขอมล MySql ได 7.1ท ำกำร yum install package rsyslog-mysql เพอให rsyslog เปนตวจดสง Log ท Username ใช
งำนไปเกบไวในฐำนขอมล เพอใหเรำสำมำรถเรยกดไดสะดวก
[root@gateway ~]# yum install –y rsyslog-mysql fedora 100% |=========================| 2.1 kB 00:00 updates 100% |=========================| 2.6 kB 00:00 Setting up Install Process Parsing package install arguments Resolving Dependencies --> Running transaction check ---> Package rsyslog-mysql.i386 0:1.19.6-3.fc8 set to be updated --> Finished Dependency Resolution Dependencies Resolved ============================================================== Package Arch Version Repository Size ============================================================== Installing: rsyslog-mysql i386 1.19.6-3.fc8 fedora 9.7 k Transaction Summary ============================================================== Install 1 Package(s) Update 0 Package(s) Remove 0 Package(s) Total download size: 9.7 k Downloading Packages: (1/1): rsyslog-mysql-1.19 100% |=========================| 9.7 kB 00:00 Running rpm_check_debug Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Installing: rsyslog-mysql ######################### [1/1] Installed: rsyslog-mysql.i386 0:1.19.6-3.fc8
148
Complete!
7.2แกไขไฟล /etc/rsyslog.conf โดยในสวนของ $template HostFile,"/var/log/messages-%HOSTNAME%.log"
kern.warning;local2.warning -?HostFile
เปนสวนของกำรก ำหนด template ชอ HostFile ใหเกบเปนชอของ server ดวย โดยจะเกบแค
kern.warning;local2.warning เพอทจะใหระบบท ำกำร rotate ตำมวนท และเกบไว 90 วน ตำมท config ทไฟล /etc/logrotate.d/ messages-gateway และในสวนของ
$ModLoad MySQL
$template dbFormat,"insert into SystemEvents (Message, Facility,FromHost, Priority,
DeviceReportedTime, ReceivedAt, InfoUnitID, SysLogTag) values ('%msg%',
%syslogfacility%, '%HOSTNAME%',%syslogpriority%, '%timereported:::date-mysql%',
'%timegenerated:::date-mysql%', %iut%, '%syslogtag%')",sql
*.* >localhost,Syslog,root,abcd1234;dbFormat
เปนการจด template ชอ dbFormat เพอน า Log ทงหมดลงเกบใน Mysql โดยเกบทงหมด [root@gateway ~]#vi /etc/rsyslog.conf $template HostFile,"/var/log/messages-%HOSTNAME%.log" kern.warning;local2.warning -?HostFile $ModLoad MySQL $template dbFormat,"insert into SystemEvents (Message, Facility,FromHost, Priority, DeviceReportedTime, ReceivedAt, InfoUnitID, SysLogTag) values ('%msg%', %syslogfacility%, '%HOSTNAME%',%syslogpriority%, '%timereported:::date-mysql%', '%timegenerated:::date-mysql%', %iut%, '%syslogtag%')",sql *.* >localhost,Syslog,root,abcd1234;dbFormat
7.3สรำง database เพอเกบ Log ชอ Syslog โดยสรำงไฟล createDB.sql
[root@gateway ~]# vi /home/project/scripts/createDB.sql CREATE DATABASE Syslog; USE Syslog; CREATE TABLE SystemEvents
149
( ID int unsigned not null auto_increment primary key, ReceivedAt datetime NULL, DeviceReportedTime datetime NULL, Facility smallint NULL, Priority smallint NULL, FromHost varchar(60) NULL, Message text, InfoUnitID int NULL, SysLogTag varchar(60) );
7.4จำกนนใชค ำสง mysql -uroot –pabcd1234 < /home/project/scripts/createDB.sql
[root@gateway ~]# mysql -uroot –pabcd1234 < /home/project/scripts/createDB.sql
7.5ท ำกำรแกไขไฟล /etc/logrotate.d/rsyslog เพอท ำกำร rotate log ใหได 90 วน ตำมท พรบ. ก ำหนด และมกำรบบอดขอมลดวย
[root@gateway ~]# vi /etc/logrotate.d/rsyslog /var/log/messages /var/log/secure /var/log/maillog /var/log/spooler /var/log/boot.log /var/log/cron /var/log/messages-gateway.log { daily compress rotate 90 missingok notifempty create 640 root root sharedscripts postrotate /bin/kill -HUP `cat /var/run/rsyslogd.pid 2> /dev/null` 2> /dev/null || true endscript }
Note : เรำสำมำรถทดสอบกำร rotate log โดยใชค ำสง
150
[root@gateway log]#logrotate -f /etc/logrotate.d/rsyslog
7.6สรำงไฟล script เพอท ำกำร encryption และ hash function หลงจำกทไดมกำร rotate log
ประจ ำวนแลว โดยมกำรสรำงไฟลทมชอปะจ ำวนนนๆไวท directory ปเดอนวนดวย และท ำกำรลบไฟลทมกำร rotae กอนหนำนทงดวย
[root@gateway backup]# vi /home/project/scripts/encrypt_md5.sh #!/bin/sh ## Script encryption and md5 log files. ## cd /var/log/backup/archive_file pass="123456" #server name file file_name_1=/var/log/messages-gateway.log-$(date +%Y%m%d).gz # Name file server1=gateway-$(date +%Y%m%d) # Encryption files. openssl des -in "$file_name_1" -k "$pass" -out "$server1".gz.sec # Check MD5 sum. md5sum "$server1".gz.sec > $server1.md5sum rm -rf "$file_name_1"
7.7แกไขไฟล vi /etc/crontab เพอให daily crontab รนทกวน ณ. เวลำ 23: 59 ของทกวน [root@gateway backup]# vi /etc/crontab SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ # run-parts 01 * * * * root run-parts /etc/cron.hourly 59 23 * * * root run-parts /etc/cron.daily 22 4 * * 0 root run-parts /etc/cron.weekly 42 4 1 * * root run-parts /etc/cron.monthly 00 01 * * * root /home/project/scripts/encrypt_md5.sh
151
7.8 restart service radiusd
[root@gateway backup]# service radiusd restart radiusd (pid 2479) is running... radiusd (pid 2479) is running... Stopping RADIUS server: [ OK ] radiusd is stopped Starting RADIUS server: Mon Jul 19 14:51:13 2010 : Info: Starting - reading configuration files ... [ OK ]
7.9 restart service rsyslog [root@gateway ~]# service rsyslog restart Shutting down kernel logger: [ OK ] Shutting down system logger: [ OK ] Starting system logger: [ OK ] Starting kernel logger: [ OK ]
7.10 restart service crond [root@gateway ~]# service crond restart Stopping crond: [ OK ] Starting crond: [ OK ]