การนำาopen-source software มาใช้...
TRANSCRIPT
การนำา Open-Source Software มาใชสำาหรบการใหบรการเครอขายคอมพวเตอร
ในสถานศกษา
ฉตรชย จนทรพรม[email protected]
ภาควชาวศวกรรมคอมพวเตอร มหาวทยาลยสงขลานครนทร
วทยาเขตหาดใหญ
คำานำา
รายงานฉบบนเปนสวนหนงของลาการปฏบตงานเพอเพมพนความรในหวขอ การนำา Open-Source Software มาใชสำาหรบการใหบรการเครอขายคอมพวเตอร ในสถานศกษา ผเขยนขอขอบคณภาควชาวศวกรรมคอมพวเตอร และคณะวศวกรรมศาสตร ซงไดอนญาตใหผเขยนใชเวลามากกวา 1 ปในการลาเพอปฏบตงานและเขยนรายงานฉบบน
ฉตรชย จนทรพรม15 สค. 56
กตตกรรมประกาศ
รายงานฉบบนจะไมสามารถสำาเรจออกมาเปนรปเลมเชนนได หากไมมผใหความชวยเหลอทสำาคญเหลาน ผศ.ดร. สนทร วทรสรพจน ผชวยปรบโครงสรางของรายงาน ชใหเหนสวนทจำาเปนและสำาคญ และเสนอแนะใหตดสวนทไมจำาเปนออก ลดระดบความซบซอนจนรายงานอยในระดบทผเขยนสามารถจดการได คณปฏมากร จนทรพรม “คณภรรยา” ทชวยชใหเหนถงทางออก ในยามทภาพรวมของงานอยในระดบททำาใหผเขยนรสกหมดหวง ทจะทำาใหเสรจภายในชวงเวลาทกำาหนด รศ.ดร. มตรชย จงเชยวชำานาญ ผอานรายงานฉบบอยางตงใจ และใหคำาแนะนำาซงทำาใหรายงานฉบบนอยในรปแบบทดขน ผเขยนขอขอบคณทานทงสามเปนอยางยง
ฉตรชย จนทรพรม15 สค. 2556
สารบญบทท 1 บทนำา.................................................................................................... 1
1.1 คอมพวเตอรและระบบเครอขาย..........................................................................................11.2 องคประกอบรายงาน............................................................................................................2
บทท 2 การตดตงเดเบยนลนกซ (Debian Linux).............................................42.1 การตดตงระบบปฎบตการ....................................................................................................42.2 การตดตงระบบปฎบตการเดเบยนลนกซ (Debian Linux).................................................62.3 การตดตงเดเบยนลนกซ (Debian Linux) ผานเครอขาย.....................................................72.4 การกำาหนดคอนฟกสำาหรบการตดตงโดยใชพรสด (Preseed).............................................82.5 การตดตงโปรแกรมเพมเตม................................................................................................112.6 การใชคำาสงเพอหาขอมลของแพคเกจของ Debian...........................................................112.7 การควบคมการใหบรการของเซรฟเวอร.............................................................................12
บทท 3 การตดตงและปรบแตงเราทเตอร.........................................................153.1 การตดตงเพอใชงานเปนแบบเราทเตอร.............................................................................153.2 การตดตงเพอใชงานเปนเราทเตอร โดยใชเดเบยนลนกซ...................................................173.3 ซอฟตแวรแพกเกจทตองใช................................................................................................203.4 เนทเวรคแอดเดรสทรานสเลชน.........................................................................................22
บทท 4 การตดตงดเอชซพเซรฟเวอร (DHCP Server).....................................264.1 โปรโตคอลสำาหรบการกำาหนดหมายเลขของโฮสตแบบไดนามค........................................264.2 การตดตงและปรบแตงไอเอสซ ดเอชซพเซรฟเวอร............................................................274.3 ตวอยางการกำาหนดคอนฟกของดเอสซพเซรฟเวอร...........................................................284.4 การตรวจสอบการทำางานของดเอชซพเซรฟเวอร...............................................................324.5 การใชงานดเอชซพรเลย (DHCP Relay)............................................................................33
บทท 5 การตดตงทเอฟทพเซรฟเวอร (TFTP Server).....................................345.1 ทเอฟทพเซรฟเวอร (TFTP Server)...................................................................................345.2 การตดตงทเอฟทพเซรฟเวอร.............................................................................................345.3 การคอนฟกดเอชซพเซรฟเวอรเพอใหเครองคอมพวเตอรบทจากทเอฟทพเซรฟเวอร.......36
5.4 การแกไขคอนฟกเพอเพมพรสดสำาหรบเนทบท..................................................................36บทท 6 การตดตงดเอนเอสเซรฟเวอร (DNS Server).......................................39
6.1 โดเมนเนมซสเตม (Domain Name System – DNS)......................................................396.2 การจดลำาดบชนของโดเมนเนม (Domain Name Hierachy)...........................................406.3 การตดตงไอเอสซบายดไนนดเอนเอสเซรฟเวอร.................................................................446.4 การคอนฟกบายดไนนเพอเปนดเอนเอสแคชเซรฟเวอร.....................................................446.5 การคอนฟกบายไนนเพอเปนออธอรเอธฟดเอนเอสเซรฟเวอร...........................................456.6 การตรวจสอบความถกตองของคอนฟกและโซนไฟล.........................................................496.7 การตรวจสอบการทำางานของดเอนเอสเซรฟเวอร..............................................................50
บทท 7 การตดตงเมลเซรฟเวอร (Mail Server)...............................................527.1 เมลเซรฟเวอร (Mail Server).............................................................................................527.2 การตดตงเอกซมเอสเอมทพเซรฟเวอร (Exim SMTP Server)..........................................58
7.2.1 การคอนฟกอเมลอะเลยส............................................................................................................647.2.2 การตรวจสอบเอสเอมทพเซรฟเวอร............................................................................................65
7.3 การตดตงโดฟคอท ไอแมพและปอบสามเซรฟเวอร...........................................................657.3.1 การตรวจสอบการทำางานของ ไอแมพและปอปสามเซรฟเวอร....................................................68
บทท 8 การตดตงเวบเซรฟเวอร (Web Server)...............................................698.1 เวบเซรฟเวอร.....................................................................................................................698.2 อาพาเชเวบเซรฟเวอร.........................................................................................................708.3 การตดตงและปรบแตงอาพาเชเวบเซรฟเวอร....................................................................718.4 การสรางเวอรชวลโฮสต.....................................................................................................738.5 การตดตงเอสเอสแอลสำาหรบอาพาเชเวบเซรฟเวอร...........................................................77
บทท 9 การตดตงเอฟทพเซรฟเวอร (FTP Server)..........................................819.1 เอฟทพเซรฟเวอร (FTP Server)........................................................................................819.2 เอฟทพเซรฟเวอรบนลนกซ................................................................................................819.3 การตดตงวเอสเอฟทพด.....................................................................................................829.4 การตดตงโปรเอฟทพด.......................................................................................................83
บทท 10 การตดตงมายเอสควแอล (MySQL Server).....................................8510.1 ดาตาเบสเซรฟเวอร..........................................................................................................8510.2 การตดตงมายเอสควแอลดาตาเบสเซรฟเวอร..................................................................86
10.3 การใชงานมายเอสควแอลไคลเอนท.................................................................................8710.4 การสรางแอคเคาทใหม....................................................................................................8910.5 การแกปญหากรณลมรหสผานของรทของมายเอสควแอลเซรฟเวอร..............................9010.6 การแบคอพและรสตอรดาตาเบส.....................................................................................9010.7 การใชพเอชพมายแอดมน สำาหรบจดการมายเอสควแอลเซรฟเวอร................................92
บทท 11 การตดตง NTP Server.....................................................................9311.1 การกำาหนดเวลาบนเครองคอมพวเตอร...........................................................................9311.2 เนทเวรคไทมโปรโตคอล (Network Time Protocol)....................................................9311.3 การกำาหนดคาคอนฟกสำาหรบเอนทพเซรฟเวอร..............................................................9411.4 การตรวจสอบการทำางานของเอนทพเซรฟเวอร...............................................................95
บทท 12 การตดตงอารซงคเซรฟเวอร (Rsync Server)...................................9712.1 การรบสงขอมลระหวางคอมพวเตอร...............................................................................9712.2 การตดตงแพคเกจอารซงค (rsync).................................................................................9812.3 การรบสงไฟลโดยใชคำาสงอารซงค...................................................................................9812.4 การใชงานอารซงคในแบบเซรฟเวอร................................................................................99
สารบญรปรปท 1: การตดตงเครองคอมพวเตอรเพอใชงานเปนเซรฟเวอร..........................................................................4รปท 2: การเพมเซรฟเวอรเขาไปในเครอขายเดม.............................................................................................15รปท 3: เครอขายสำาหรบทดสอบเซรฟเวอร.....................................................................................................16รปท 4: สภาพแวดลอมสำาหรบเครอขายทดสอบ ทจำาลองโดยใชเวอรชวลบอกซ.............................................19รปท 5: ไอพแอดเดรสสำาหรบเครอขายและเราทเตอรซงจะใชในการทดสอบ..................................................21รปท 6: ตวอยางเครอขาย สำาหรบกำาหนดคอนฟกดเอชซพเซรฟเวอร.............................................................29รปท 7: การแลกเปลยนอเลคทรอนคสเมลระหวางผใช....................................................................................53รปท 8: การแลกเปลยนอเลคทรอนคสเมลระหวางโดเมน...............................................................................54รปท 9: การรบสงอเลคทรอนคสเมลระหวางเมลเซรฟเวอรกบผใช..................................................................57รปท 10: เรมตนการตดตง Debian Squeeze..............................................................................................103รปท 11: เมนเลอกภาษาสำาหรบการตดตง คา default เปนภาษา English.................................................104รปท 12: เลอกใชภาษาสำาหรบการตดตงเปนภาษาไทย.................................................................................105รปท 13: เลอกใชภาษาสำาหรบการตดตงเปนภาษาไทย.................................................................................107รปท 14: เลอกชนดของแปนพมพ.................................................................................................................108รปท 15: กำาหนดชอเครอง.............................................................................................................................109รปท 16: กำาหนดชอ domain.......................................................................................................................110รปท 17: แหลงสำาเนาแพคเกจสำาหรบแตละประเทศ.....................................................................................111รปท 18: เลอกแหลงสำาเนาแพคเกจของเดเบยน...........................................................................................112รปท 19: กำาหนดคาของ proxy.....................................................................................................................113รปท 20: ตวตดตงเรม download โปรแกรมตดตงพนฐาน..........................................................................115รปท 21: กำาหนดรหสผานให root................................................................................................................116รปท 22: ยนยนรหสผานของ root ซำา..........................................................................................................118รปท 23: กำาหนดชอเตมของผใช....................................................................................................................119รปท 24: กำาหนดชอบญชสำาหรบ login........................................................................................................121รปท 25: กำาหนดรหสผานใหผใชงาน.............................................................................................................122รปท 26: ยนยนรหสผานซำาอกครง................................................................................................................123รปท 27: การกำาหนดพารทชนสำาหรบการตดตง............................................................................................124รปท 28: ระบฮารดดสกทจะใชตดตง.............................................................................................................125รปท 29: กำาหนดรปแบบของพารทชนทใชเกบขอมล....................................................................................126รปท 30: ยนยนรปแบบการแบงพารทชน......................................................................................................127รปท 31: ยนยนรปแบบทเลอกไวและเขยนขอมลลงฮารดดสก......................................................................128
รปท 32: ฟอรแมทพารทชน..........................................................................................................................129รปท 33: ตดตงระบบพนฐาน.........................................................................................................................130รปท 34: เลอกรปแบบของคยบอรด..............................................................................................................131รปท 35: เลอกคยสำาหรบสลบภาษา..............................................................................................................132รปท 36: ตดตงระบบพนฐานตอ....................................................................................................................133รปท 37: เตรยมการสำาหรบการเลอกและตดตงซอฟตแวร............................................................................134รปท 38: คำาถามสำาหรบการตงคาใหกบ popularity contest.....................................................................135รปท 39: เลอกชดของซอฟตแวรทจะตดตง...................................................................................................136รปท 40: ตงคาใช grub เปน boot loader..................................................................................................137รปท 41: เสรจสนกระบวนการของการตดตง................................................................................................138
บทท 1 บทนำา1.1 คอมพวเตอรและระบบเครอขาย
คอมพวเตอรและเครอขายคอมพวเตอร ถอเปนสงอำานวยความสะดวก ทมใชอย ในชวตประจำาวนของบคคลทวไป แตในระดบทกวางขน เปนกลมของบคคล ทจำาเปนจะตองมาใชชวต หรอทำางานรวมกน เชนบรษท, หางราน, หนวยงาน, องคกร ความสำาคญของคอมพวเตอรและเครอขายในปจจบน ไดเพมขนจาก สงอำานวยความสะดวกกลายเปนสงจำาเปน
เนองจากคอมพวเตอรและระบบเครอขายเปนสงท ทงอำานวยความสะดวก และจำาเปนตองจดหาเพอใหบรการสำาหรบหนวยงาน และองคกร ตางๆในปจจบน จงถอเปนสงทมความสำาคญเทยบเคยงไดกบปจจยสทจำาเปนตอ การดำารงชพ การขาดซงปจจยส อาจจะไมทำาใหมนษยคนหนง เสยชวตทนททนใด อยางเชนในกรณของ การขาดอากาศหายใจ แตกไมสามารถดำารงชวต อยไดยาวนานนก ถาขาดปจจยนนๆ อยางตอเนอง เชนเดยวกน ในระดบของหนวยงานและองคกร ซงจำาเปนตองใชคอมพวเตอรและเครอขายในการดำาเนนงาน การจดหาคอมพวเตอรและเครอขาย มาใหบรการบคลากร หรอสมาชกขององคกร กเปนสงจำาเปน ทจะตองทำา อยางไรกตาม หากจะเปรยบเทยบ การจดหาคอมพวเตอร และเครอขายใหสำาหรบองคกร กบการจดหาปจจยส ใหกบบคคล กจะมสงทแตกตาง อยางมนยสำาคญอย กคอ ในขณะทปจจยส สามารถซอหาใหกบบคคลแตละคน และเราสามารถบรโภคสงเหลานนได โดยไมจำาเปนจะตองมการเปลยนแปลง สงนนมากนก แตในการใชงานคอมพวเตอร และเครอขายสำาหรบองคกร ยากทจะเกดขนไดงายๆ ในระดบเดยวกน ยกตวอยาง เชนในสงคมปจจบน เราสามารถทจะซอหาอาหาร มากนไดและมชวตอยไดโดยไมจำาเปนจะตองมความร ในการปรงอาหารกนเอง แตหนวยงานระดบ คณะวศวกรรมศาสตรจะไมสามารถทจะซอหาคอมพวเตอรและเครอขาย มาใชงานได โดยไมจำาเปนจะตองมหนวยงานสำาหรบใหบรการเครอขาย คอมพวเตอรของตนเอง (อาจจะมขอโตแยงวา เรา ซอ เครองคอมพวเตอร มาโดยไมได ผลต เครองคอมพวเตอรเอง แตนนกอาจจะเทยบไดกบ การซอเครองปรงทใชประกอบอาหาร เชนไขไก นำามน กระทะ แตเราจะตองเอามาเจยวกอน ถงจะสามารถกนไขเจยวได) สงนเปนจรงกบ องคกร, หนวยงาน, บรษท, หางรานทมขนาดใหญ มจำานวนบคลากรมากถงระดบหนง หากเปรยบเทยบยอนกลบไป กบเรองของอาหาร นนกคอวา เราทกคนยงจำาเปนจะตอง ปรงอาหารกนเอง ไมสามารถซออาหารสำาเรจรป มาแลวกนทนทเลยได
คอมพวเตอรและเครอขาย ทมการใชงานในองคกร หรอหนวยงานตางๆนน จะมทงสวนทแตกตาง
และคลายคลงกนไป ขนอยกบตามขนาดของเครอขาย, จำานวนบคลากรทใชงาน และลกษณะงานตามธรรมชาต ขององคกรหรอหนวยงานนน
ในหนวยงานใดหนวยงานหนง กอาจจะประกอบไปดวย หนวยงานยอยภายใน ซงอาจจะมการใหบรการคอมพวเตอร และเครอขายของตนเอง หรอมในหนวยงาน ระดบใหญดวยเชนเดยวกน เชนในมหาวทยาลยสงขลานครนทร, คณะวศวกรรมศาสตร, และภาควชาวศวกรรมคอมพวเตอร ตางกมหนวยงานสำาหรบ ดแลและใหบรการ เครอขายคอมพวเตอรของตนเอง ทงท ภาควชาฯ ถอเปนสวนหนงของคณะฯ และ คณะฯเปนสวนหนงของมหาวทยาลย การใหบรการคอมพวเตอร และเครอขาย กจะมทงสวนทซอนทบกน ไมทบซอนกน มสวนทจะตองใหความรวมมอกน ถงจะใหบรการเกดขนได และมสวนทสามารถแยกกนทำา โดยเปนอสระจากกนได
ลกษณะงานและการใหบรการประเภทเดยวกน อาจจะมวธการใหเลอกใช ทแตกตางกนไดหลายวธ และอาจจะมการใชงานจรงๆ ทตางกนออกไปในแตละระดบ เชนลกษณะของการเกบขอมล ผทมสทธใชงาน ในเครอขายแบบไรสาย ของภาควชาวศวกรรมคอมพวเตอร , ของคณะวศวกรรมศาสตร และของมหาวทยาลยสงขลานครนทร กจะใชวธทตางกนออกไปไมเหมอนกนเลยแตมจดประสงคเดยวกนคอ ใหสมาชกของหนวยงานนนๆ สามารถเขาถงบรการ ของระบบเครอขาย ของหนวยงาน และเครอขายอนเตอรเนตได
รายงานฉบบนจะนำาเสนอ การใหบรการระบบเครอขาย สำาหรบสถาบนศกษา โดยจะศกษาจากหนวยงานทผเขยนสงกดอย และจะนำาเสนอทางเลอกในการใหบรการ ซงอาจจะเปรยบเทยบไดกบตำาราการปรงอาหาร ซงผเขยนมความเหนวา จะเปนการปรงอาหารซงเปน อาหารเพอสขภาพ ทดกวาทเรากำาลงบรโภคอยในปจจบน
สบเนองจากวา เรายงตองกนอาหารทเราปรงเองอย จนกวาจะถงวนท เราจะสามารถเลอกซออาหาร ทชอวาระบบคอมพวเตอรและเครอขายมากนได โดยไมตองปรงเอง ผเขยนกหวงวา ตำาราปรงอาหารเลมน จะยงมประโยชนสำาหรบผอานบาง
1.2 องคประกอบรายงานองคประกอบของรายงานฉบบนจะแบงเปนบทดงตอไปน
บทท 1 บทนำา
บทท 2 การตดตงเดเบยนลนกซ (Debian Linux)
บทท 3 การตดตงและปรบแตงเราทเตอร
บทท 4 การตดตงดเอชซพเซรฟเวอร (DHCP Server)
บทท 5 การตดตงทเอฟทพเซรฟเวอร (TFTP Server)
บทท 6 การตดตงดเอนเอสเซรฟเวอร (DNS Server)
บทท 7 การตดตงเมลเซรฟเวอร (Mail Server
บทท 8 การตดตงเวบเซรฟเวอร (Web Server
บทท 9 การตดตงเอฟทพเซรฟเวอร (FTP Server
บทท 10 การตดตงมายเอสควแอล (MySQL Server)
บทท 11 การตดตง NTP Server
บทท 12 การตดตงอารซงคเซรฟเวอร (Rsync Server)
บทท 2 การตดตงเดเบยนลนกซ (Debian Linux)
ในบทนจะบรรยายถงเรองของการตดตงระบบปฏบตการเดเบยนลนกซ (Debian Linux) แบบพนฐาน ซงคอมพวเตอร 1 ทไดตดตงระบบปฏบตการเดเบยนลนกซแบบพนฐานนแลว จะสามารถนำาไปตดตงแพกเกจเพมเตม และปรบแตงคอนฟก ของเครองคอมพวเตอรใหเหมาะสม เพอใชงานเปนเซรฟเวอรตอไป ดงตวอยางใน รปท 1: การตดตงเครองคอมพวเตอรเพอใชงานเปนเซรฟเวอร
2.1 การตดตงระบบปฎบตการเครองคอมพวเตอรทใชงานสำาหรบตดตงเปนเซรฟเวอร จะเรมตนจากสภาพทไมมระบบปฏบตการแอพพลเคชนโปรแกรม หรอแมกระทงขอมลบนฮารดดสก เมอผานการตดตงระบบปฏบตการเดเบยนลนกซแบบพนฐานแลว ตามทแสดงในรป เปนขนตอนท 1 กจะสามารถใชงานแบบพนฐานไดโดยทเครองคอมพวเตอร จะมความสามารถในการเชอมตอกบ ระบบเครอขาย และสามารถดาวนโหลดแพกเกจของโปรแกรมอนๆ มาตดตงเพมเตมเพอใชงานได การทจะใช เครองคอมพวเตอรใน
1 หรอในทนจะเปนคอมพวเตอรจำาลอง โดยเปนเวอรชวลแมชชน (Virtual Machine) ทำางานอยบน โปรแกรมเวอรชวลบอกซ (VirtualBox)
รปท 1: การตดตงเครองคอมพวเตอรเพอใชงานเปนเซรฟเวอร
ลกษณะของเซรฟเวอร (Server) แบบตางๆ หรอเปนเครองคอมพวเตอรแบบเดสทอป (Desktop)กขนอยกบแพกเกจของโปรแกรมทจะตองดาวนโหลดมาตดตงเพมเตม ซงสามารถแสดงเปน ทางเลอกไดดง รปท 1: การตดตงเครองคอมพวเตอรเพอใชงานเปนเซรฟเวอร เปนทางเลอกเสนทางท2 จนถงทางเลอกเสนทางท 5 เชน ถาตองการใชเครองคอมพวเตอรดงกลาวเปนเวบเซรฟเวอร(Web Server) ตามทางเลอกท 2 กจะตองดาวนโหลดแพกเกจโปรแกรมเวบเซรฟเวอรมาตดตงและปรบแตงระบบ ใหพรอมสำาหรบการใชงาน เปนเวบเซรฟเวอร หรอถาตองการใชงานคอมพวเตอรเปนแบบเดสทอป โดยมสวนของการตดตอกบผใชเปนแบบ กราฟคอลยเซอรอนเตอรเฟส (Graphical User Interface – GUI) การตดตงโปรแกรมบนเครองคอมพวเตอร กจะเรมตนจากสภาพของคอมพวเตอร ซงตดตงระบบปฏบตการเดเบยนลนกซแบบพนฐาน ตามขนตอนท 1 และหลงจากนน กดาวนโหลดแพกเกจของโปรแกรมสำาหรบการใชงานเปนเดสทอป มาตดตงและปรบแตงเพอใชงาน ตามทแสดงเปน เสนทางเลอกท 5
ดงนนในบทน จะเรมจากการบรรยายขนตอนของการตดตงเดเบยนลนกซแบบพนฐานกอน (ขนตอนท 1 ตามทแสดงใน รปท 1: การตดตงเครองคอมพวเตอรเพอใชงานเปนเซรฟเวอร) หลงจากนนในบทตอไป ซงจะกลาวถงการตดตงและใชงานเครองคอมพวเตอรใหเปนเซรฟเวอรแตชนดเปนลำาดบไป จากนนกจะอธบายเฉพาะในสวนของการตดตงแพจเกจของเซรฟเวอรเหลานนเพมเตมจากเครองคอมพวเตอร ซงตดตงระบบปฏบตการเดเบยนลนกซแบบพนฐานเอาไวแลว
การตดตงระบบปฏบตการแบบเดเบยนลนกซบนเครองคอมพวเตอรแบบทวไป สามารถทำาไดหลายวธ เชน สามารถตดตงจาก ฟลอปปดสก (Floppy Disk) ซดรอม หรอ ดวดรอมไดรว (CDROM, DVD ROM Drive) ยเอสบ หรอ แฟลชไดรว (USB, Flash Drive) หรอตดตงผานระบบเครอขาย เปนตน
วธการตดตงแบบใช ซดรอมหรอดวดรอม จะเปนวธการตดตงระบบปฏบตการแบบพนฐานทนยมใชกน สำาหรบระบบปฏบตการสมยใหมทวไป ซงรวมไปถง วนโดว (Windows) ลนกซ (Linux)และ ยนกซ (Unix) ในตระกล บเอสด (BSD) ดวยเชนกน เนองจากซดรอมหรอดวดรอมไดรวในยคหลงๆ จะเปนอปกรณพนฐานทม อยบนเครองคอมพวเตอรสวนบคคลแทบทกเครอง และมเนอทสำาหรบจดเกบขอมลมากพอทจะตดตงทง ระบบปฏบตการและโปรแกรมแอพลเคชนพนฐาน จากแผนดวรอมเพยงไมกแผน
สำาหรบการตดตง โดยใชยเอสบหรอแฟลชไดรว สามารถทำาไดเชนกนสำาหรบ ระบบปฏบตการเชนลนกซหรอยนกซในตระกลบเอสด แตยงไมเปนทนยมเทาการใชซดหรอดวดรอม เนองจากมขนตอนในการเตรยมการทยงยากกวา
2.2 การตดตงระบบปฎบตการเดเบยนลนกซ (Debian Linux)การตดตงระบบปฏบตการเดเบยนลนกซ ไมวาจะเปนการตดตงโดยใช ซดรอม ดวดรอม หรอโดยสอชนดอน กจะมขนตอนในลกษณะเดยวกน คอเรมจากการบท (Boot) เครองคอมพวเตอรจากสอนน เพอเขาสโปรแกรม ซงใชในการตดตง ซงตวโปรแกรมจะเกบขอมลจากเครองคอมพวเตอรและใชขอมลเหลานนสำาหรบการ กำาหนดตวเลอกในการตดตง เชน ชนดของซพย (CPU) ชนดของการดแสดงผล แตในขณะเดยวกนจะมทางเลอก หลายอยางซงตวโปรแกรมตดตงจะไมสามารถกำาหนดโดยตวเองได ซงในสวนนโปรแกรมตดตงกจะใชวธการ ถามขอมลจากผใช ซงตองคอยตอบคำาถามระหวางการตดตง
ตวอยางการตดตงเดเบยนลนกซจากซดหรอดวดรอม สามารถศกษาเพมเตมไดจาก [debsq00]ซงแสดงการตดตงสำาหรบการใชงานแบบเดสทอป โดยใชจยไอ (GUI) สำาหรบการตดตง หรอการตดตงแบบ ผานเครอขาย (Network Installation) โดยบทจากแผนซด [debsq01] ซงตางจากวธการแรกตรงท วธแรกขอมลทงหมดทจำาเปนตองใชสำาหรบการตดตงจะอยบนแผนซดหรอดวด แตวธการทสองจะใชซดสำาหรบการบทเทานน ขอมลสวนอนๆทเหลอทงหมด จะอยบนเดเบยนมลเรอรรโพสทอร (Debian Mirror Repository)
จากขางตนจะเหนวาการตดตงเดเบยนลนกซมหลายขนตอน ทโปรแกรมตดตงจะตองตงคำาถามและรอคำาตอบ จากผใช กอนทจะดำาเนนการในขนตอนตอไปได ซงวธการน เปนวธการทเหมาะสมสำาหรบการตดตงใชงาน แบบธรรมดาทวไป โดยทวไปแลว การตดตงระบบปฏบตการใหมสำาหรบคอมพวเตอร เครองหนงๆจะเกดขนไมบอยครงนก แตวธการเชนนจะเปนปญหา ถาตองการตดตงกบเครองคอมพวเตอรจำานวนมาก หรอจะตองตดตงระบบปฏบตการแบบเดมใหมซำาหลายครง ซงผเขยนจะตองนำามาใช ในการปฏบตงานครงน ดงนนจงจำาเปนทจะตองใชวธการตดตงรปแบบอนแทน
วธการทผเขยนไดเลอกใชเดม กคอใชวธการสรางระบบไฟล (File system) และตดตงระบบปฏบตการ และโปรแกรมแอพลเคชนลงไปในไฟลซงเปนฮารดดสกอมเมจ (hard disk image) ของโปรแกรมเวอรชวลบอกซ (VirtualBox) โดยตรง เนองจากระบบทใชสำาหรบการทดลอง จะใชโปรแกรมเวอรชวลบอกซ ในการจำาลองระบบคอมพวเตอรและเครอขายทใชสำาหรบทดสอบ วธการนสามารถนำาไปใชงานได อยางไรกตาม ระบบทตดตงขนใหมมขอจำากดวา จะสามารถใชงานไดสำาหรบเวอรชวลบอกซเทานน วธการตดตงดงกลาวไมสามารถนำามาใชงานกบคอมพวเตอรจรง
หรอใชกบเวอรชวลแมชชน ทจำาลอง การทำางานของคอมพวเตอร โดยโปรแกรมอนๆได (ยกเวนวาโปรแกรมนนๆสามารถใชดสกอมเมจของ โปรแกรมเวอรชวลบอกซได ) ดงนนในชวงทผานมา ผเขยนไดศกษาวธการตดตงใหม ซงวธการนจะสามารถประยกตใชสำาหรบ การตดตงระบบปฏบตการเดเบยนลนกซ ลงบนเครองคอมพวเตอรทเปนเครองคอมพวเตอรจรง (Physical HostComputer) หรอจะเปนเวอรชวลแมชชน (Virtual Machine) บนเครองคอมพวเตอรจรงกได
วธการตดตงแบบน จะใชความสามารถของระบบการกำาหนดคาคอนฟก (configuration) ของเดเบยนทชอวา เดเบยนคอนเอฟ (debianconf) ซงเปนสวนหนงของการตดตงของเดเบยน โดยผตดตงจะสามารถกำาหนดคำาตอบ สำาหรบคำาถามทระบบจะถามไวกอนลวงหนา เมอกระบวนการตดตงเรมขน กจะใชคำาตอบทกำาหนดไวลวงหนานน เพอกำาหนดคาใหกบระบบ วธการนเรยกวา เดเบยนคอนเอฟพรสด (debianconf preseed)
ผเขยนเลอกทจะใชวธการตดตงผานเครอขาย โดยสามารถใชวธการนสำาหรบเครองคอมพวเตอรซงสามารถใชวธการบทจากเครอขายได ซงสำาหรบเครองคอมพวเตอรแบบตงโตะ หรอแบบโนตบครนใหม รวมไปถงเวอรชวลแมชชนของเวอรชวลบอกจะมความสามารถนอยดวยแลว
2.3 การตดตงเดเบยนลนกซ (Debian Linux) ผานเครอขายองคประกอบทจำาเปนสำาหรบการตดตงเดเบยนลนกซ โดยการตดตงผานเครอขาย จะตองประกอบไปดวย เซรฟเวอรตางๆเหลาน
• ดเอชซพเซรฟเวอร (DHCP Server)
ซงจะใชสำาหรบการแจกจายไอพแอดเดรส (IP Address) และกำาหนดตวเลอก (Option) ตางๆในการบท ใหกบเครองคอมพวเตอรในเครอขาย เชน ไอพแอดเดรสของทเอฟทพเซรฟเวอร(TFTP Server)
• ทเอฟทพเซรฟเวอร (TFTP Server)
ซงจะเกบลนกซเคอรเนล (Linux kernel) และโปรแกรมเรมตนในสวนของการบท เพอสงใหกบเครองทบทผานเครอขาย เมอมการรองขอมาจากเครองเหลานน
• เอฟทพเซรฟเวอร (FTP Server) หรอ เวบเซรฟเวอร (Web Server)
สำาหรบเกบเดเบยนแพกเกจ (Debian package) ทใชในการตดตงระบบปฏบตการพนฐาน
เซรฟเวอรสำาหรบการใหบรการตางๆเหลาน จะมใหบรการจรงอยแลว ในภาควชาวศวกรรมคอมพวเตอรปจจบน สวนประกอบทจะตองมเพมเตม เพอใหระบบดงกลาว สามารถใชสำาหรบการ
ตดตงระบบปฏบตการ เดเบยนลนกซโดยอตโนมตได กคอสวนของการปรบแตงคอนฟกเรชน(configuration) เพอระบรายละเอยดตางๆสำาหรบการตดตงเพมเขาไป
การตดตงและปรบแตงทจำาเปน สำาหรบการใชงานเดเบยนลนกซเปนเซรฟเวอรตางๆ จะอธบายในแตละบทของการตดตงเซรฟเวอรเหลานน
2.4 การกำาหนดคอนฟกสำาหรบการตดตงโดยใชพรสด (Preseed)ในการตดตงโดยใชเดเบยนคอนเอฟ (debianconf) นน จะสามารถกำาหนดคอนฟกในการตดตงไดโดยใชวธการทเรยกวา พรสด (preseed) สวนของการกำาหนดคาคอนฟกพรสด จะใชได กบการตดตงทกแบบ แตในการใชงานสำาหรบการตดตงผานทางเครอขาย จะตองแบงขอมลของการพรสดเปน 2 สวนคอ สวนทกำา หนดเปนการเลอก (option) สำา หรบการบทโดยใชพเอกซอบท(pxeboot) ในกรณท ขอมลของการบทเกบอยบนตวดเอชซพเซรฟเวอร คาพรสดสวนนกจะเกบอยเปนสวนหนงของขอมลการบท เหลานนบนดเอชซพเซรฟเวอรดวย สวนขอมลสำาหรบการพรสดสวนทสอง จะเกบไวในไฟลทชอวา preseed.cfg ซงเครองทตดตง จะตองดาวนโหลดมาจากเวบเซรฟเวอรหรอ เอฟทพเซรฟเวอร
สาเหตทตองแบงสวนของการเกบพรสดเปนสองสวน สบเนองมาจาก ในขนตอนของการบทคอมพวเตอรผานเครอขาย จะตองกำาหนดคาคอนฟกเบองตนของระบบ เพอใหคอมพวเตอรเครองนน สามารถตดตอกบเครอขายไดอยางถกตองกอน ถาไมระบขอมลเบองตนเหลาน ในขนตอนของการตดตง โปรแกรมเดเบยนคอนเอฟซงทำาหนาทตดตง จะตองแสดงคำาถามตอผใชทางเทอรมนลและรอคำาตอบเพอนำาขอมลมาใชในการกำาหนดคาในการเขาใชงาน เครอขาย ซงกระบวนการทเกดขนน จะทำาใหการตดตงไมสามารถดำาเนนไปแบบอตโนมตได การระบขอมลเหลานเปนขอมลพรสด จะชวยใหผใชไมจำาเปนจะตองตอบคำาถาม ระหวางขนตอนของการตดตง แตอยางไรกตาม ขอมลพรสดทงหมดจะมจำานวนมาก ไมเหมาะทจะกำาหนดใหเปนทางเลอกของขอมล ทกำาหนดโดยดเอชซพเซอรเวอรทงหมด ดงนนขอมลพรสดสวนทเหลอจงจะเกบเปนไฟลอยบนเครองเวบเซรฟเวอร หรอเครองเอฟทพเซรฟเวอร
ตวอยางของขอมลพรสด ซงเกบเปนทางเลอก (option) ของพเอกซอบท โดยเกบอยบนดเอชซพเซรฟเวอร
ในทนขอมลของการพรสดสวนแรก จะระบขอมลพรสดสวนทสองเอาไวดวยกคอ
ซงหมายความวาขอมลพรสดสวนทเหลอ ซงเกบอยในไฟล preseed.cfg สามารถดาวนโหลดไดจาก URL ดงกลาว (http://tftp.coe.psu.ac.th/d-i/squeeze/preseed.cfg)
ตวอยางของขอมลพรสด สวนทสองซงเกบเปนไฟลอยบนเวบเซรฟเวอร
auto url=http://tftp.coe.psu.ac.th/di/squeeze/preseed.cfg fb=false locale=en_US.UTF8 language=en country=TH netcfg/get_hostname=vm netcfg/get_domain=coe.psu.ac.th consolekeymapsat/keymap=us DEBCONF_PRIORITY=critical DEBCONF_DEBUG=5
url=http://tftp.coe.psu.ac.th/di/squeeze/preseed.cfg
เมอการตดตงเสรจสน จะไดระบบคอมพวเตอรซงมเดเบยนลนกซเปนระบบปฏบตการพนฐาน ซง
• มดสตรบวชนเปนเดเบยนสควช (Debian Squeeze Distribution)
di debianinstaller/locale string en_US di debianinstaller/language string en di debianinstaller/country string TH
di consolekeymapsat/keymap select us
di netcfg/get_hostname string unassignedhostname di netcfg/get_domain string unassigneddomain di netcfg/wireless_wep string
di mirror/protocol string http di mirror/country string manual di mirror/http/hostname string ftp.coe.psu.ac.th di mirror/http/directory string /debian di mirror/http/proxy string
di clocksetup/ntp boolean false di clocksetup/utc boolean true di time/zone string Asia/Bangkok
di partmanauto/method string regular di partmanauto/choose_recipe select atomic di partmanlvm/device_remove_lvm boolean true di partmanlvm/confirm boolean true di partmanmd/device_remove_md boolean true di partmanmd/confirm boolean true di partmanpartitioning/confirm_write_new_label boolean true di partman/choose_partition select finish di partman/choose_partition select finish di partman/confirm boolean true di partman/confirm_nooverwrite boolean true
di baseinstaller/kernel/image string linuximage2.6686
di passwd/makeuser boolean false di passwd/rootpassword password root di passwd/rootpasswordagain password root
di aptsetup/nonfree boolean true di aptsetup/contrib boolean true di aptsetup/use_mirror boolean false
tasksel tasksel/first multiselect
di finishinstall/reboot_in_progress note di debianinstaller/exit/poweroff boolean true
popularitycontest popularitycontest/participate boolean false di pkgsel/upgrade select none di grubinstaller/only_debian boolean true
• ระบบคอมพวเตอรจะใชดเอชซพ (DHCP) สำาหรบการระบไอพแอดเดรส (IP Address) ของเครอง
• การตดตงของโปรแกรมเพมเตมได ผานระบบเครอขายสามารถตดตงเพมได โดยใชเดเบยนมลเรอรรโพสทอรเปน ftp.coe.psu.ac.th ซงเปน เอฟทพเซรฟเวอรของภาควชาวศวกรรมคอมพวเตอร
ซงผลทไดน เกดจากขอกำาหนดทกำาหนดไวในสวนของการ preseed สวนทสอง ซงกำาหนดไวดงน
สวนการกำาหนดคาดสตรบวชน (Debian Squeeze) และกำาหนดวาใชดเอชซพเปนคาโดยปรยาย(default) ของคาทกำาหนดไวในการตดตง
2.5 การตดตงโปรแกรมเพมเตมการตดตงโปรแกรมเพมเตม จากโปรแกรมทตดตงแบบพนฐานเอาไวแลว จะทำาไดโดยใชคำาสงดงตอไปน
เชน ถาตองการตดตงโปรแกรมเพอใชคอมพวเตอรเปนเวบเซรฟเวอร โดยใชแพกเกจทชอวาapache2 กจะตองใชคำาสง
2.6 การใชคำาสงเพอหาขอมลของแพคเกจของ Debianในกรณทไมทราบวาโปรแกรมใดอยในแพกเกจ (package) ใดบาง กสามารถคนหาจากแพกเกจทอยใน รโพสทอร (repository) แบบคราวๆได โดยการใชคำาสง
เชนคนหา เอสควแอลดาตาเบสเซรฟเวอร (SQL Database Server) สามารถใชคำาสง
aptget install packagename
aptget install apache2
di mirror/http/hostname string ftp.coe.psu.ac.th
aptcache search keyword
aptcache search sqlserver
ซงตวอยางผลลพธของคำาสง search ขางตนคอ
และเมอไดชอของแพกเกจมาแลว กสามารถใชคำาสง show
สำาหรบดรายละเอยดของแพกเกจนนๆได
ในแพกเกจของโปรแกรมตางๆ โดยทวไปจะมการตดตงไฟลลงไปในไดเรคตอรตางๆจำานวนมาก จะสามารถตรวจสอบวาจะมไฟลใด ในแพกเกจนไปตดตงอยทใดบาง โดยการใชคำาสง
ในกรณทเปนแพกเกจซงไมไดอยในรโพสทอรของดสตรบวชนเอง แตเปนแพกเกจทสรางโดยกลมผพฒนาอนๆ ซงอาจจะไมไดสรางรโพสทอรเอาไวให แตใชวธการแจกจายแพกเกจในลกษณะของไฟลเดเบยน (ไฟลซงมเอกซเทนชนเปน deb) กจะสามารถดาวนโหลดไฟลดงกลาว นำามาตดตงลงบนตวเครองได โดยการใชคำาสง
สำาหรบการลบเอาแพกเกจทไมใชแลว จะสามารถใชคำาสงยอย remove สำาหรบคำาสง apt-getไดดงน
2.7 การควบคมการใหบรการของเซรฟเวอรสำาหรบโปรแกรมใดๆทตดตงไวบนเครอง ซงมลกษณะการทำางานเปนโปรแกรมแบบเดมอน
$ aptcache search sqlserver auth2db Powerful and eyecandy IDS logger, log viewer and alert generator mysqlserver5.0 MySQL database server binaries postgresqlserverdev8.3 development files for PostgreSQL 8.3 serverside ...cacti Frontend to rrdtool for monitoring systems and services mysqlserver MySQL database server (metapackage depending on the latest version)mysqlserver5.1 MySQL database server binaries and system database setup mysqlservercore5.1 MySQL database server binaries postgresqlserverdev8.4 development files for PostgreSQL 8.4 serverside ...postgresqlserverdev9.0 development files for PostgreSQL 9.0 serverside ...postgresqlserverdevall extension build tool for multiple PostgreSQL versions torrentflux web based, featurerich BitTorrent download manager
aptcache show packagename
dpkg L packagename
dpkg i file.deb
aptget remove package
(Daemon) เชนโปรแกรมของเมลเซรฟเวอร (Mail Server) หรอเวบเซรฟเวอร (Web Server) ซงจะเรมใหบรการโดยอตโนมต หลงจากการตดตงแพกเกจ หรอเมอบทเครองครงในตอไป การใหบรการ หรอทเรยกกนวาเซอรวช (service) เหลาน จะเรมทำางานแบบอตโนมต ผดแลระบบจะเปด/ปด การใหบรการแบบชวคราวไดโดย การใชคำาสง
เชน
สำาหรบสงให อาพาเชเวบเซรฟเวอร (Apache Web Server) เรมตนทำางาน หรอ
สำาหรบสงใหหยดทำางาน
ในกรณทไมตองการใหเซอรวชเหลานเรมทำางานโดยอตโนมต หลงจากตดตงไปแลว กสามารถใชคำาสง update-rc.d ในการสง enable ใหเรมทำางานแบบอตโนมต หรอ disable ไมใหเรมทำางานแบบอตโนมต สำาหรบการใหบรการเหลาน เชนเมอไมตองการให โปรแกรมอาพาเชเวบเซรฟเวอรเรมทำางานอตโนมตหลงจากบทเครอง จะใชคำาสง
และเมอตองการใหทำางานอตโนมตหลงจากบทเครองกใหใชคำาสง
เปนตน
บรรณานกรม1. debsq00: Garron, Guillermo, Debian Squeeze 6.0 installation screen shots and review, 2011,
http://go2linux.garron.me/linux/2011/01/debian-squeeze-6-0-installation-screen-shots-and-review-8912. debsq01: จนทรพรม, ฉตรชย, การตดตง Debian Squeeze ผานเครอขาย โดยใช mini.iso, 2011,
http://share.psu.ac.th/blog/etc/18262
service servicename [start|stop]
service apache2 start
service apache2 stop
updaterc.d apache2 disable
updaterc.d apache2 enable
บทท 3 การตดตงและปรบแตงเราทเตอร3.1 การตดตงเพอใชงานเปนแบบเราทเตอร
การใชงานเครองคอมพวเตอรสวนบคคลทวไป เพอทำาหนาทเปนเซรฟเวอรใหบรการสำาหรบระบบเครอขายคอมพวเตอร เครองเซรฟเวอรซงใหบรการตางๆหลายอยาง สามารถตดตงเพอเพมเขาไปในระบบเครอขายเดมทมอยแลวได โดยไมสงผลกระทบตอการใชงานของคอมพวเตอรอนๆ ทอยภายในเครอขายเดม (ตามตวอยางใน รปท 2: การเพมเซรฟเวอรเขาไปในเครอขายเดม)
ตวอยางของเซรฟเวอรเหลานคอ เวบเซรฟเวอร (Web Server) เอฟทพเซรฟเวอร (Ftp Server)เมลเซรฟเวอร (Mail Server) เปนตน แตสำาหรบการใหบรการบางประเภทเชน ดเอชซพเซรฟเวอร(DHCP Server) ซงทำาหนาทแจกจายไอพแอดเดรส (IP Address) ใหกบเครองคอมพวเตอรในระบบเครอขาย ซงใชวธการกำาหนดไอพแอดเดรสแบบไดนามค นนคอดเอชซพเซรฟเวอรจะเปนตวระบวา เครองคอมพวเตอรเครองนนๆจะตองมไอพแอดเดรสเปนหมายเลขอะไร ถามการตดตงดเอชซพเซรฟเวอรตวใหมเพมขนมาในระบบเครอขายเดม ซงมตวดเอชซพเซรฟเวอรเดมแจกจายไอพแอดเดรสอยแลว สงทจะเกดขนมได 2 กรณคอ
• ถาการตดตงดเอชซพเซรฟเวอรตวใหมถกตอง เครองคอมพวเตอรซงขอไอพแอดเดรสใหมกจะสามารถใชงานได แตกเปนการรบกวนการทำางานของดเอชซพเซรฟเวอรเดม เชนดเอชซพเซรฟเวอรเดมอาจจะไมมบนทกของการรองขอไอพแอดเดรสครงนน หรออาจจะตอบกลบโดยการกำาหนดหมายเลขทตางออกไปใหกบคอมพวเตอรทรองขอ
รปท 2: การเพมเซรฟเวอรเขาไปในเครอขายเดม
• ถาการตดตงดเอชซพเซรฟเวอรตวใหมไมถกตอง เครองคอมพวเตอรทรองขอไอพแอดเดรสอาจจะไมสามารถใชไอพแอดเดรสนน ในการตดตอกบเครองคอมพวเตอรอนๆ ทไดรบไอพแอดเดรส จากดเอชซพเซรฟเวอรตวเดมไดเลย
ดวยเหตน ในการตดตงระบบเครอขายขนมาเพอใชในการทดลองซงมรปแบบทซบซอน มเซรฟเวอรใหบรการจำานวนมาก และจะตองมดเอชซพเซรฟเวอร ซงใชใหบรการกำาหนดไอพแอดเดรสรวมอยดวย จงสมควรทจะตองตดตงเปนเครอขายทแยกออกมาตางหาก ไมสมควรตดตงเปนสวนหนงของเครอขายเดม ซงมการใหบรการและใชงานจรงอยแลว
อยางไรกตาม การทดสอบการใหบรการของเครอขาย ทแยกอยอยางโดดเดยวโดยไมเชอมตอกบเครอขายอนๆ หรอไมเชอมตอกบเครอขายอนเทอรเนต (internet) อาจทำาไดไมสมบรณ ตวอยางเชนการใหบรการอเมล (e-Mail) และดเอนเอส (DNS) เปนตน เนองจากทงสองบรการเปนการใหบรการขามเครอขายหรอขามโดเมน ดงนน เครอขายสำาหรบทดสอบการใหบรการเหลานจะตองเชอมตอกบเครอขายอนๆ หรอกบเครอขายอนเทอรเนตเพอใหทดสอบการใหบรการจรงได
วธการซงทำาใหไดตรงตามความตองการทกลาวมาขางตน คอตองมเครอขายแยกอสระจากเครอขายเดม เพอทจะทดสอบเซรฟเวอรทถกตดตงได โดยไมรบกวนการใชงานและการใหบรการของเครอขายเดม อยางไรกดเซรฟเวอรและคอมพวเตอรในเครอขายนยงสามารถเชอมตอกบเครอขายอนๆได ดวยอปกรณเชอมตอระหวางเครอขายซงอยในเนทเวรกเลเยอร (Network Layer)อปกรณตวนเรยกวาเกทเวย (Gateway) หรอเราทเตอร (Router) ดง รปท 3: เครอขายสำาหรบทดสอบเซรฟเวอร
เราทเตอร หรอเกทเวย เปนชอเรยกอปกรณเครอขายประเภทเดยวกน ซงใชเชอมตอ ระหวางเครอขายคอมพวเตอร ตงแตสองเครอขายขนไป โดยจะทำาหนาทสงแพคเกจ (packet) ขอมลระหวางเครอขาย
รปท 3: เครอขายสำาหรบทดสอบเซรฟเวอร
ในหนวยงานหนงๆ อาจมอปกรณเราทเตอรสำาหรบเชอมตอเครอขายยอยๆภายในหลายตวได และจะเรยกอปกรณสำาหรบเชอมตอไปยงเครอขายภายนอกวา เกทเวย ซงหมายถงประตหรอทางผานตวอยางเชน ในระบบเครอขายของมหาวทยาลยสงขลานครนทร จะมอปกรณเราทเตอรทใชเชอมตอระหวาง คณะหรอภาควชาตางๆเขากบเครอขายของศนยคอมพวเตอร และมตวเราทเตอรหลกซงใชเชอมตอกบ เครอขายของยนเนท (UniNet) ซงจะเรยกอปกรณเราทเตอรนนวา เปนเกทเวยของมหาวทยาลยสงขลานครนทร
ตวเกทเวยทมใชงานอยในปจจบนสำาหรบเครอขายขนาดใหญ จะนยมใชอปกรณทเรยกวา เลยเยอรทรสวทช (Layer3 Switch) 2 ซงจะทำาหนาทไดทงเปน สวทชในเลยเยอรทสองและทำาหนาทเราทตงเนทเวรกโปรโตคอล (routing network protocol) ซงอยในเลยเยอรทสามของโอเอสไอโมเดลไดอกดวย เครอขายคอมพวเตอรในหนวยงานตางๆ เกอบทงหมดทมใชงานจรง ในมหาวทยาลยสงขลานครนทร (ไมรวมเครอขายทใชในการทดสอบ) จะใชอปกรณประเภทเลยเยอรทรสวทชนสำา หรบเชอมตอ ระหวางเครอขาย ซงรวมถงการเชอมตอระหวางเครอขายของคณะวศวกรรมศาสตรเขากบ เครอขายของศนยคอมพวเตอรมหาวทยาลยสงขลานครนทร และเครอขายของภาควชา วศวกรรมคอมพวเตอรดวยเชนกน
อยางไรกตามเราสามารถตดตงเครองคอมพวเตอรธรรมดาทวไป ทใชงานระบบปฏบตการเชนลนกซ หรอยนกซในตระกลของบเอสด สำาหรบใหทำาหนาทเปนอปกรณเราทเตอรได โดยไมจำาเปนจะตองใชเลยเยอรทรสวทช และสำาหรบการจดเตรยมระบบเครอขายสำาหรบการทดสอบครงน ไมไดใชงานอปกรณเครอขายจรง แตเปนการจำาลองขนมาโดยใชเทคโนโลยเวอรชวลไลซเซชน(Virtualization) ดงนนในบทน จะเรมจากการบรรยาย ขนตอนของการตดตงเครองคอมพวเตอรเพอใหทำาหนาทเปนอปกรณเราทเตอรโดยใชระบบปฏบตการลนกซขนมากอน เพอทจะใชงานในการแยกเครอขายสำาหรบการทดสอบออกจากเครอขายทใชงานจรง และกอนทจะไปถงขนตอนของการตดตงตวเซรฟเวอรอนๆตอไป
3.2 การตดตงเพอใชงานเปนเราทเตอร โดยใชเดเบยนลนกซโดยทวไปอปกรณซงทำาหนาทเปนเราทเตอรในเครอขายคอมพวเตอร จะมอปกรณสำาหรบเชอมตอ
2 ซงมความหมายอางองตาม โมเดลของโอเอสไอ (OSI Model) [http://en.wikipedia.org/wiki/OSI_model]
โดยคำาวา สวทช (Switch) จะเทยบเคยงกบเลยเยอรทสอง (Layer 2) ซงในปจจบนเครอขายสวนใหญจะใชอเทอรเนตสวทช (Ethernet Switch) ตวอเทอรเนตสวทชจะทำางานในการสงผานแพคเกจของขอมลทเทยบเทากบ เลยเยอรทสองของโอเอสไอโมเดล
กบเครอขาย ตางๆเทากบจำานวนเครอขายทถกเชอมตอ โดยจะเรยกอปกรณนวา เนทเวรกอนเตอรเฟสคารด (Network Interface Card – NIC) ในรปแบบเดม อปกรณเนทเวรกอนเตอรเฟสคารดนจะมลกษณะเปนแผงวงจร (card) ซงสามารถ เสยบเขา/ถอดออก จากเครองคอมพวเตอรได แตสำาหรบคอมพวเตอรทใชงานในปจจบน ตวอปกรณจะรวมกบเมนบอรด (Mainboard) ของคอมพวเตอร ไมไดมลกษณะเปนแผงวงจรอกตอไป และมชองเสยบสายเคเบล สำาหรบเครอขายแบบอเทอรเนต สำาหรบกรณของเครอขายแบบไรสาย (Wireless Network) จะไมมอปกรณภายนอกแสดงใหเหนเนองจากการเชอมตอใชตวถงเครองคอมพวเตอร แบบตงโตะหรอโนตบกเปนสายอากาศสำาหรบรบ/สงสญญาณ ปจจบนเครองคอมพวเตอรทกเครองสามารถเชอมตอกบเครอขายผานเนตเวรกอนเทอรเฟสคารดน และสำาหรบตวเราทเตอร กจะมชองทางสำาหรบเชอมตอเครอขายอยอยางนอย 2 ชองทาง ซงแตละชองทางจะเชอมตอกบเครอขายทตางกน และทำาหนาทสงตอแพกเกจของขอมลระหวาง 2 เครอขายนน 3
กรณของเครองคอมพวเตอรแบบทวไป ซงจะนำามาใชงานในลกษณะของเราทเตอร จะมจำานวนอเทอรเนตคารด (หรออแดปเตอร – Adapter) เทากบจำานวนเครอขายทตองการเชอมตอ
สำาหรบการจำาลองคอมพวเตอรดวยเวอรชวลบอกซ โดยสรางเวอรชวลแมชชนขนมา เวอรชวลบอกซจะกำาหนดจำานวนเนทเวรกอนเทอรเฟส ใหกบเวอรชวลแมชชนเพอเชอมตอกบเครอขาย ใหเพยงอนเทอรเฟสเดยว (คาโดยปรยาย) แตอาจเพมจำานวนเนทเวรกอนเทอรเฟสไดถง 4อนเทอรเฟส ซงสามารถทำาได 2 วธคอ 1) ผานคอมมานดไลน (Command Line) โดยการใชคำาสง VBoxManage ดงน
หรอ 2) โดยผานเวอรชวลบอกซเมเนเจอร ซงเปนโปรแกรมควบคมเวอรชวลแมชชนของเวอรชวลบอกซแบบทใชจยไอ โดยเลอกเวอรชวลแมชชน (Virtual Machine – VM) ทสรางขนและคลก
3 เครองคอมพวเตอรแบบโนตบกทวไปทมอยในปจจบน จะมอปกรณทสามารถใช เชอมตอกบเครอขายไดอยางนอย 2
ชนดคอเครอขายอเทอรเนต ซงจะใชสายเคเบลแบบยทพ (UTP – Unshield Twisted Pair) กบเครอขายไรสาย (Wireless Network) ซงจะใชเสาอากาศซงโดยทวไปจะอยในตวโนตบกเอง เครองคอมพวเตอรแบบโนตบกจะสามารถทำาหนาทเปนเราทเตอรระหวางเครอขายไรสาย และเครอขายอเทอรเนตได ถาตองการทนำามาใชงาน ในลกษณะดงกลาวแตโดยลกษณะของการใชงานเครองคอมพวเตอรแบบโนตบกโดยทวไปในปจจบน ทงสองเครอขายทเชอมตออย โดยทวไปแลวจะเปนเครอขายเดยวกน เมอพจารณาจากเลยเยอรทสาม ของโอเอสไอโมเดล ซงทำาใหเครองคอมพวเตอรโนตบกทเชอมตอกบเครอขายในลกษณะดงกลาว จะทำางานในลกษณะของ มลตโฮมโหนด (Multi-home node) หรอ มลตอนเทอรเฟสโหนด (Multi-interface node) ไมไดทำางานในลกษณะของเราทเตอร
VBoxManage q modifyvm ROUTER nic2 intnet intnet2 LOCAL1
ปม Settings แลวเลอกหวขอ Network จากหนาตางแบบปอบอพ (pop-up windows) ทเปดขนมา และเลอกแทป (Tab) Adapter 2 ในหนาตางปอบอพนนแลวคลกเลอก Enable NetworkAdapter เลอกชนดของการเชอมตอ attached to เปนแบบ Internal Network และกำาหนดชอName เปน LOCAL1 (ดรายละเอยดจากภาคผนวกเรองการตดตงและปรบแตงเวอรชวลบอกซ)
การทดลองทจะทำาตอไปจะสรางเวอรชวลแมชชนของเวอรชวลบอกซขนมา โดยกำาหนดใหเวอรชวลแมชชนน ทำาหนาทเปนเราทเตอรซงเชอมตอระหวางเครอขายทใชงานอยจรง กบเครอขายจำาลองของเวอรชวลบอกซเอง ลกษณะของการจำาลองเวอรชวลแมชชนและเครอขายจำาลอง จะแสดงดงรปท รปท 4: สภาพแวดลอมสำาหรบเครอขายทดสอบ ทจำาลองโดยใชเวอรชวลบอกซ
โดยเวอรชวลแมชชนซงกำาหนดใหชอ ROUTER ในรปจะมเนทเวรกอนเทอรเฟสอย 2 อนเทอรเฟสอนเทอรเฟสแรกจะเชอมตอกบเครอขายจรง ซงในรปกำาหนดใหชอวา เครอขายภายใน (ซงหมายถงเครอขายจรงภายในหนวยงาน) สวนอกอนเทอรเฟสจะเชอมตอกบเครอขายจำาลองของเวอรชวลบอกซ ในรปกำาหนดใหชอวา เครอขายสำาหรบทดสอบ LOCAL1
ในบทตอๆไป ซงจะเปนการตดตงเซรฟเวอรอนๆ จะใชวธการสรางเวอรชวลแมชชนขนมา สำาหรบการตดตงเซรฟเวอรเหลานนโดยเฉพาะ ซงเวอรชวลแมชชนทเปนเซรฟเวอรเหลานน กจะเชอมตอกบเครอขายจำาลองน เพอแยกเครอขายสำาหรบการทดสอบออกจากเครอขายทใชงานจรง แตเครองคอมพวเตอรจรงภายนอก กบคอมพวเตอรทเปนเวอรชวลแมชชนทจำาลองขนเพอใชงานเปนเซรฟเวอร กจะยงสามารถตดตอกนได โดยตดตอผานตวเราทเตอรทจำาลองขนในบทน
รปท 4: สภาพแวดลอมสำาหรบเครอขายทดสอบ ทจำาลองโดยใชเวอรชวลบอกซ
ในกรณน อนเทอรเฟสของตวเราทเตอรดานทตดตอกบเครอขายจำาลองสำาหรบการทดสอบ จะตองกำาหนดชนดของการเชอมตอใหเปนแบบ Internal Network ตามทไดอธบายไวแลว สวนอนเทอรเฟสทตดตอกบเครอขายจรง จะตองกำาหนดชนดของการเชอมตอใหเปนแบบ Bridge โดยจะตองอยบนอนเทอรเฟสอเทอรเนตทเครองคอมพวเตอรจรง ใชในการตดตอกบเครอขายจรงอยในขณะนน
หลงจากตดตงระบบปฏบตการพนฐานและเตรยมการในสวนของ ฮารดแวรแลวเสรจ ลำาดบตอไปกจะเปนการตดตงซอฟตแวร โดยเรมจากกระบวนการตดตงเดเบยนแบบพนฐาน ซงจะทำาใหไดระบบทมระบบปฏบตการและซอฟตแวรอรรถประโยชน (Utility Software) แบบพนฐานสามารถเชอมตอกบเครอขายได (ซงจะเปนความตองการพนฐานกอนทจะสามารถตดตงแพคเกจของโปรแกรมอนๆ เพมเตมผานทางเครอขาย)
3.3 ซอฟตแวรแพกเกจทตองใชในการใชงานเปนเราทเตอร จะใชเฉพาะโปรแกรมอรรถประโยชนพนฐานเหลาน ทมตดตงอยกอนแลวคอ
• ifconfig
• route
• sysctl
• iptables
ซงมซอฟตแวรแพกเกจทจำาเปนตองใชเพอทดสอบการใชงานเราเตอรนอกจากน ดงตอไปน
• tcpdump
• netstat
• iproute2
• ping6
โดยผใชสามารถตดตงเพมเตมดวยคำาสงดงตอไปน
การกำาหนดไอพแอดเดรสใหกบตวเราทเตอร จะตางจากการกำาหนดไอพแอดเดรส ใหกบเครอง
aptget install tcpdump netstat iproute2 ping6
คอมพวเตอรทวไปในเครอขายอยคอ สำาหรบเครองคอมพวเตอรในเครอขาย จะนยมใชวธการกำาหนดไอพโดยอตโนมต โดยเครองคอมพวเตอรจะรองขอไอพแอดเดรส จากดเอชซพเซรฟเวอรโดยผดแลไมจำาเปนจะตองระบไอพแอดเดรสสำาหรบเครองคอมพวเตอรแตละเครอง แตจะระบผานดเอชซพเซรฟเวอร ซงจะทำาใหการจดการและกำาหนดไอพแอดเดรส ใหกบเครองคอมพวเตอรทมจำานวนมากในเครอขายทำาไดอยางสะดวก แตอยางไรกตาม การกำาหนดไอพแอดเดรสใหกบเครองคอมพวเตอรแบบน จะใชไดสำาหรบเครองคอมพวเตอรแบบทวไป ในปจจบนยงไมมเทคโนโลยทเหมาะสม สำาหรบการกำาหนดไอพแอดเดรสใหกบตวเราทเตอรแบบอตโนมต
ในทนจะสมมตใหตวเราทเตอร เชอมตอกบเครอขายสองเครอขาย กำาหนดไอพแอดเดรสสำาหรบเครอขายภายในเปน 172.30.0.0/24 กำาหนดไอพแอดเรสของเครอขายสำาหรบการทดสอบเปน192.168.250.0/24 และกำาหนดไอพแอดเดรสของอนเตอรเฟสทงสองของตวเราทเตอรเปน172.30.3.36 กบ 192.168.250.1 ดง รปท 5: ไอพแอดเดรสสำาหรบเครอขายและเราทเตอรซงจะใชในการทดสอบ
ขนตอนของการกำาหนดใหคอมพวเตอรทำาหนาทเปนเราทเตอรสำาหรบเครอขายทงสอง มขนตอนดงตอไปน
1. กำาหนดไอพแอดเดรสใหกบอนเทอรเฟสทใชงาน
2. กำาหนดเสนทางการสงขอมลโดยปรยาย (default route) ใหกบอปกรณเราทเตอร
รปท 5: ไอพแอดเดรสสำาหรบเครอขายและเราทเตอรซงจะใชในการทดสอบ
3. กำาหนดใหอปกรณเราทเตอรสงตอแพกเกจขอมลระหวางเครอขาย (forward packet)
4. กำาหนดใหอปกรณเราทเตอรแปลงไอพแอดเดรสสำาหรบเครอขายภายใน
การกำาหนดไอพแอดเดรสใหกบอนเทอรเฟสสำาหรบอนเทอรเฟสทเชอมตอกบเครอขายภายในสามารถทำาไดโดยการใชคำาสงดงตอไปน
และสำาหรบอนเทอรเฟสทเชอมตอกบเครอขายสำาหรบการทดสอบ (LOCAL1) จะใชคำาสง
โดยทงสองคำาสงจะทำาใหอปกรณเราทเตอรสามารถตดตอกบคอมพวเตอรในเครอขายทเชอมตอกบอนเทอรเฟสทงสองได
เมอใชคำาสงตอไปน
อปกรณเราทเตอรจงจะเรมสงตอแพกเกจ (forward packet) ระหวางเครอขายทงสองได
3.4 เนทเวรคแอดเดรสทรานสเลชนเนทเวรกแอดเดรสทรานสเลชน (Network Address Translation – NAT)4 คอการแปลงไอพแอดเดรสจากชดหนงไปเปนอกชดหนง เนองจากไอพแอดเดรสทใชในเครอขายทงสอง จะอยในชวงของแอดเดรสทใชงานภายใน (Private Address)5 ซงจะไปซำาซอนกบไอพแอดเดรสบางชวงซงใชงานในเครอขายของ มหาวทยาลยสงขลานครนทรปจจบน ซงถาอปกรณเราทเตอรทตดตงขนสงผานแพกเกจแบบปกต กจะทำาใหเครองคอมพวเตอรภายในเครอขายจำาลอง ไมสามารถตดตอกบเครอขายภายนอกได วธการแกปญหานอาจจะทำาไดสองลกษณะดงน
• โดยการกำาหนดไอพแอดเดรส ไมซำาซอนกบทใชงานอย ภายในเครอขายของภาควชาวศวกรรมคอมพวเตอรปจจบน และกำาหนดใหการเราทแพกเกจ (routing packet) บนอปกรณเราทเตอร ใหเปนสวนหนงของเครอขายภายในภาควชาฯ ซงวธการนคอนขางซบซอนยงยาก และเนองจากการใชงานสำาหรบการทดสอบน จะเปนการใชงานเพยงชวคราว มจดประสงคหลกเพอใชในการเขยนรายงานฉบบนเทานน จงจะไมเลอกใชวธการน
4 http://en.wikipedia.org/wiki/Network_address_translation5 http://en.wikipedia.org/wiki/Private_network
ifconfig eth0 172.30.3.36 netmask 255.255.0.0
ifconfig eth1 192.168.250.1 netmask 255.255.255.0
sysctl w net.ipv4.ip_forward=1
• ใชวธการเนทเวรกแอดเดรสทรานสเลชน (Network Address Translation) บนอปกรณเราทเตอร โดยเราทเตอรจะเปลยนไอพแอดเดรสตนทางภายในแพกเกจขอมล ทสงมาจากเครอขายสำาหรบการทดสอบ เปนไอพแอดเดรสของอปกรณเราทเตอรเอง แลวจงสงออกตอไปยงเครอขายภายนอก เมอเครองจากภายนอกตอบกลบ กจะเปลยนไอพแอดเดรสปลายทาง เปนไอพแอดเดรสของเครองทอยภายในเครอขายทดสอบ
วธการเปลยนไอพแอดเดรสจะเกดขนเฉพาะทอปกรณเราทเตอร ฉะนนจงงายกวาวธการแรก ดงนนในรายงานฉบบนจงเลอกใชวธการนเพอตดตอสอสารระหวางเครองภายในเครอขายจำาลอง กบเครองคอมพวเตอรภายนอกเครอขายได
วธการเปลยนไอพแอดเดรสแบบน ตวเราทเตอรจะเปลยนไอพแอดเรสภายในแพกเกจ จากเดมทเปนไอพแอดเดรสของเครองตนทาง ใหเปนไอพแอดเดรสของอปกรณเราทเตอร โดยจะใชไอพแอดเดรสของเนทเวรกอนเทอรเฟส ดานทเชอมตอไปยงเครอขายของคอมพวเตอรปลายทาง ยงผลใหเครองปลายทางทตดตอดวยรบรเสมอนหนงวา เปนการตดตอจากอปกรณเราทเตอรเอง
เดเบยนลนกซหรอลนกซดสตรบวชนอนโดยทวไปจะใช ไอพเทเบล (iptables) 6 เปนเครองมอสำาหรบการสงคำาสงไปให เนทฟลเตอรเฟรมเวรค (Netfilter Framework)7 ของลนกซเคอรเนล(Linux Kernel) ในการควบคมจดการแพกเกจของขอมล จะม ทงการคดกรอง (filter) และเปลยนแปลง (translate) แพกเกจขอมลในแบบตางๆ การเปลยน ไอพแอดเดรสนจะอยในสวนของการ translate packet ซงสามารถระบใหเปลยนไอพแอดเดรส ของเครองคอมพวเตอรทงหมดทอยภายในเครอขายน ใหใชไอพแอดเดรสเดยวกน ซงเรยกวธการนวา มาสเควอเรด(masquerade) ซงเปนรปแบบทซบซอนนอยทสดโดยการใชคำาสงดงน
โดยแพกเกจขอมลของเครองคอมพวเตอร ทสงเขามายงอปกรณเราทเตอรทางอนเทอรเฟส eth1เพอสงตอไปทางอนเทอรเฟส eth0 จะถกเปลยนไอพแอดเดรสใหเสมอนกบวา แพกเกจเหลานสงจากอปกรณเราทเตอรเอง โดยใชไอพแอดเดรสทกำาหนดใหกบอนเทอรเฟส eth0 อยางไรกตามในการใชงานจรง การใชคำาสง iptables บนเราทเตอรนอกจากการใช ทรานสเลทแพกเกจขอมลแลวยงใชในการควบคมการเขาถงอปกรณเราทเตอรในแบบแอคเซสคอนโทรล (Access Control) ซงจะทำาใหมคำาสงทมขอกำาหนดรปแบบอนๆรวมอยดวย โดยทวไปแลว จะนยมเขยนคำาสงเหลานไวรวมกนในไฟลคำาสงเชลลสครปท (shell script)
6 http://en.wikipedia.org/wiki/Iptables7 http://en.wikipedia.org/wiki/Netfilter
iptables t nat A POSTROUTING o eth0 j MASQUERADE
เมอใชคำาสงตางๆในการกำาหนดคาใหกบระบบของเราทเตอร ตามทกลาวมาแลวทงหมดขางตนระบบของเราทเตอรกพรอมทจะใชงาน เปนอปกรณเราทเตอรของเครอขายภายในทจะใชทดสอบแตถาเมอไหรกตามทจะตองปดหรอชทดาวน (shutdown) เครองเราทเตอร คาตางๆทกำาหนดไวกจะหายไป และจะตองกำาหนดใหมเพอทจะใหเราทเตอรสามารถทำางานไดเหมอนเดม ซงวธการทใชกนจรงๆกคอ จะกำาหนดคาเหลานไวในไฟลคอนฟกของระบบ โดยในสวนของการกำาหนดไอพแอดเดรสใหกบอนเทอรเฟส ทเชอมตอกบเครอขายภายนอกและเครอขายทดสอบของเราทเตอรจะเกบไวในไฟล /etc/network/interfaces ดงตวอยางตอไปน
ทงนรายละเอยดของซนแทกซ (syntax) ในไฟล /etc/network/interfaces ของเดเบยนลนกซ ผทสนใจสามารถศกษาเพมเตมไดจากคมอของเดเบยน8
จากไฟลขางตนจะใชวธการเรยกใชเชลลสครปท (shell script) สำาหรบกำาหนดคาการคดกรองแพกเกจ (packet filtering) และทรานสเลทแพกเกจ (packet translation) โดยใชชอสครปทวาiptables.sh โดยเกบอยในไดเรคตอร /root/bin ซงสครปทดงกลาวมขอความดงตอไปน
8 http://www.debian.org/doc/manuals/reference/ch05.en.html#_the_basic_syntax_of_etc_network_interfaces
auto lo iface lo inet loopback
auto eth0 iface eth0 inet static address 172.30.3.211 netmask 255.255.252.0 broadcast 172.30.3.255 gateway 172.30.0.1 up /root/bin/iptables.sh start down /root/bin/iptables.sh stop
auto eth1 iface eth1 inet static address 192.168.250.1 netmask 255.255.255.0 broadcast 192.168.250.255
คำาสงอนๆในตอนตน จะเปนการกำาหนดนโยบาย (policy) ของการรบ/สงขอมลของเราทเตอรเองเพอใหมความปลอดภยในการใชงาน และคำาสง iptables -t nat -A ... จะใชสำาหรบการทรานสเลทแพกเกจ ตามทไดอธบายไวขางตน
ในสวนของการกำาหนดคาการสงแพกเกจระหวางเครอขาย (packet forwarding) กจะกำาหนดไวในไฟล /etc/sysctl.conf โดยเพมคำาสงทแสดงไวในบรรทดถดไปในไฟล
หลงจากนน เมอบทเครองเราทเตอรใหม คาคอนฟกเหลานกจะกำาหนดใหเราทเตอรพรอมทำางานโดยอตโนมต
#!/bin/sh
case "$1" in start) iptables P INPUT DROP iptables P OUTPUT ACCEPT iptables P FORWARD DROP
iptables A INPUT m state state ESTABLISHED,RELATED \ j ACCEPT iptables A INPUT m state state NEW i eth1 j ACCEPT iptables A FORWARD i eth1 o eth0 j ACCEPT iptables A FORWARD i eth0 o eth1 j ACCEPT iptables A FORWARD i eth0 o eth0 j REJECT
iptables t nat A POSTROUTING o eth0 j MASQUERADE ;;
stop) iptables X iptables F ;;
*) echo "Usage: $0 [start|stop]" exit ;;
esac
net.ipv4.ip_forward=1
บทท 4 การตดตงดเอชซพเซรฟเวอร (DHCP Server)
4.1 โปรโตคอลสำาหรบการกำาหนดหมายเลขของโฮสตแบบไดนามคDHCP 9 หรอไดนามคโฮสตคอนฟกก เร ชนโปรโตคอล (Dynamic Host ConfigurationProtocol) เปนโปรโตคอลสำาหรบกำาหนดไอพแอดเดรสใหกบเครองคอมพวเตอร หรออปกรณอนๆในเครอขายทตองการไอพแอดเดรสสำาหรบสอสาร การกำาหนดแอดเดรสใหกบเครองคอมพวเตอร เพอทจะใชในการสอสารกบคอมพวเตอรอนๆ โดยใชโปรโตคอลในชดทซพไอพ(TCP/IP) อาจจะใชวธการกำาหนดแอดเดรสแบบแมนวล (Manual) หรอแบบอตโนมตได
การกำาหนดแอดเดรสแบบแมนวล มกนยมใชกบเครองททำาหนาทเปนเซรฟเวอรหรอเราทเตอรเนองจากเครองเหลานจะใชแอดเดรสเดม ในการใหบรการในเครอขายเดม โอกาสทจะเปลยนแปลงแอดเดรสมนอยมาก ดงนนการกำาหนดแอดเดรสใหกบเซรฟเวอรแบบแมนวล และกำาหนดใหเปนสแตตคแอดเดรส (Static Address) จะเปนทนยมมากกวาการกำาหนดแอดเดรสใหแบบอตโนมต และปจจบนยงไมมโปรโตคอลรองรบ สำาหรบการกำาหนดแอดเดรสแบบอตโนมตใหกบอปกรณเราทเตอร
สวนเครองคอมพวเตอรซงใชงานในลกษณะไคลเอนท (client computer) 10 คอมพวเตอรเหลานอาจจะเคลอนยายไปเชอมตอกบเครอขายตางๆ ได 11 การกำาหนดแอดเดรสใหกบอปกรณเหลานจะนยมกำาหนดแบบไดนามคมากกวากำาหนดแบบสแตตค การกำาหนดไอพแอดเดรสแบบไดนามคนขอมลซงใชในการกำาหนดไอพแอดเดรสจะเกบอยบนเซรฟเวอร ไมไดเกบไวบนอปกรณไคลเอนท
วธการระบแอดเดรสสำาหรบอปกรณไคลเอนททนยมใชกนในปจจบน จะใชโปรโตคอลดเอชซพ(DHCP Protocol)12 ในการรองขอไอพแอดเดรสจากตวดเอขซพเซรฟเวอร (DHCP Server)
9 ในทนจะหมายถงดเอชซพสำาหรบไอพเวอรชนส (IPv4) เทานน สำาหรบไอพเวอรชนหก (IPv6) สามารถเลอกใชดเอชซพวซกซ (DHCPv6) หรออาจจะใชวธการกำาหนดแอดเดรสแบบสเตทเลส (Stateless Auto Configuration) กได
10 ซงมไดหลากหลายรปแบบตงแตเครองแบบตงโตะ (desktop personal computer) ในหองปฏบตการ หรอประจำาโตะในสำานกงาน หรอเครองคอมพวเตอร แบบพกพาอยางเชน โนตบก (Notebook) เนทบก (Netbook) หรออปกรณสำาหรบเชอมตอกบอนเทอรเนต แบบเคลอนทได (Mobile Internet Device – MID) เชนแทบเลต (Tablet) ตางๆ
11 เชนในกรณของ โมไบลดไวซ (Mobile Device) ในเครอขายไรสาย12 http://tools.ietf.org/html/rfc2131
4.2 การตดตงและปรบแตงไอเอสซ ดเอชซพเซรฟเวอรดเอชซพเซรฟเวอรทมใหใชงานบนระบบปฏบตการลนกซ มใหเลอกใชอยจำานวนหนง แตทนยมใชมากทสดคอดเอชซพเซอรเวอรของ Internet Systems Consortium (ISC)13 วธการตดตงและกำาหนดไอพแอดเดรสมขนตอนดงตอไปน
ตดตงแพกเกจ isc-dhcp-server ดวยคำาสงดงน
แพกเกจ isc-dhcp-server จะเกบไฟลคอนฟกทเกยวของไวในไดเรคตอร /etc/dhcp โดยตวไฟลหลกสำาหรบกำาหนดคาคอนฟกสำาหรบดเอชซพเซรฟเวอรคอไฟล /etc/dhcp/dhcpd.conf
การกำาหนดไอพแอดเดรสแบบไดนามคจะใชรปแบบพล (Pool) กลาวคอจะมการระบวามชวงของไอพแอดเดรสใหแจกจายอยในชวงใดบางในกลมนน เมอมการรองขอไอพแอดเดรสจากเครองทเปนไคลเอนท ดเอชซพเซรฟเวอรจะเลอกไอพแอดเดรสทเหลออยในพล สงกลบไปใหเครองทรองขอ และบนทกไอพแอดเดรสทแจกจายออกไปแลว ไวในไฟลขอมลทเรยกวาลสไฟล (Leasefile) ใน /var/lib/dhcp/dhcpd.leases
ในลสไฟลจะมการบนทกเวลาซงเครองไคลเอนทสามารถใชงานไอพแอดเดรสนนได เมอเครองไคลเอนทใชงานแอดเดรสนน เกนชวงเวลานแลวกจะรองขอการใชงานไอพแอดเดรสนนใหม ระยะเวลานคอ ลสไทม (lease time) ซงสามารถกำาหนดในคอนฟกของดเอชซพไดวา จะใหมระยะเวลานานเทาไร
การระบไอพแอดเดรสทดเอชซพเซรฟเวอรไดแจกจายใหกบเครองไคลเอนท จะใชการจบคระหวางแมคแอดเดรส (MAC Address) กบ ไอพแอดเดรส (IP Address) โดยแมคแอดเดรสของเครองจะเปนคาทกำาหนดไวใน ฮารดแวรของเนทเวรกอนเทอรเฟสคารดทเครองไคลเอนทนนใชอย ซงแมคแอดเดรสนจะไมเปลยนแปลง สำาหรบเครอขายทนยมใชกนในปจจบนคอ เครอขายแบบอเทอรเนต(Ethernet) กบเครอขายไรสาย (WiFi) การระบแมคแอดเดรส จะเปนตวเลขฐาน 16 จำานวน 6ชด และใชเครองหมายโคลอน (’:’) หรอเครองหมายลบ (’-’) สำาหรบคนตวเลขแตละชดนน โดยระบบปฏบตการลนกซจะแสดงหมายเลขแมคแอดเดรสในลกษณะน 00:1E:C9:07:37:B7 สวนระบบปฏบตการวนโดวส (Windows) จะแสดงหมายเลขแมคแอดเดรสเดยวกน ในลกษณะน00-1E-C9-07-37-B7
ในกรณทเครองคอมพวเตอรซงเคยรองขอไอพแอดเดรสมากอนหนาน จะมแมคแอดเดรสบนทกอย
13 http://www.isc.org
aptget install iscdhcpserver
ในลสไฟล เมอมการรองขอไอพแอดเดรสครงใหม ดเอชซพเซรฟเวอรกจะสงไอพแอดเดรสเดม ทเคยกำาหนดใหกบแมคแอดเดรสทบนทกอยในลสไฟลกลบไปให ยกเวนในกรณทจำานวนไอพแอดเดรสทมอยในพล มจำานวนนอยกวาจำานวนเครองคอมพวเตอรทตองการ แอดเดรส อาจจะจำาตองใชกระบวนการรไซเคลแอดเดรส (Recycle Address) กำาหนดไอพแอดเดรสอนทไมมการใชงานในขณะนนๆสงไปใหเครองทรองขอกอน ซงทำาใหเครองคอมพวเตอรเครองเดม เมอสงคำารองขอไอพแอดเดรส ในชวงเวลาททงหางจากการรองขอครงแรก นานเกนชวงเวลาหนง อาจไดหมายเลขไอพแอดเดรส ทตางกนออกไปในการรองขอแตละครง
คาปรยายในการกำาหนดคาคอนฟกดเอชซพเซรฟเวอร จะบนทกการรองขอและตอบกลบเอาไวในลอกของระบบ (System Log) ซงโดยทวไปลอกของระบบนจะเกบไวในไฟล /var/log/syslogทงนผดแลระบบ สามารถตรวจสอบการรองขอและการตอบกลบการขอไอพแอดเดรส โดยใชโปรโตคอลดเอชซพได โดยใชคำาสง
ตวอยางของลอกทเกดขนจากการรองขอไอพแอดเดรสจากเครองไคลเอนท และการตอบกลบของดเอชซพเซรฟเวอร
โดยบรรทดทมขอความ DHCPINFORM จะเปนการสงขอมลหมายเลขไอพแอดเดรสจากเครองไคลเอนท มายงเครองดเอชซพเซรฟเวอร ระบวาหมายเลขไอพทใชอยปจจบนคอหมายเลขใด ซงจะเปนการขอตออายลสไทม ของไอพแอดเดรสเดม ดเอชซพเซรฟเวอรกจะตอบดวยขอความDHCPACK เปนการตอบกลบ (acknowledge) การรองขอของเครองไคลเอนทครงนน
4.3 ตวอยางการกำาหนดคอนฟกของดเอสซพเซรฟเวอรสมมตใหมเครอขายภายใน ซงตองการใชวธดเอชซพในการกำาหนดไอพแอดเดรส ใหกบเครองไคลเอนทในเครอขายดงรป Error: Reference source not found ซงเครองเราทเตอร (router1,router2) และเซรฟเวอร (DNS Server, DHCP Server) ในรป จะใชวธการกำาหนดไอพแอดเดรสแบบสแตตค และเครองไคลเอนท (client1, client2) ซงอยใน 2 เครอขาย จะใชวธการกำาหนดไอพแอดเดรสแบบไดนามค โดยดเอชซพเซรฟเวอรในภาพจะเปนตวแจกจายไอพแอดเดรส
grep DHCP /var/log/syslog
Jul 29 06:37:50 ninedots dhcpd: DHCPINFORM from 172.30.232.226 via 172.30.232.1 Jul 29 06:37:50 ninedots dhcpd: DHCPACK to 172.30.232.226 (00:1b:fc:30:3b:16) ...Jul 29 06:37:51 ninedots dhcpd: DHCPREQUEST for 172.30.232.245 from ... Jul 29 06:37:51 ninedots dhcpd: DHCPACK on 172.30.232.245 to ...
กำาหนดให เครอขายสำาหรบการทดสอบน เปนเครอขายภายในภาควชาวศวกรรมคอมพวเตอรของมหาวทยาลยสงขลานครนทร ซงจะมโดเมนเนม (domain name) เปนของตนเองชอวาcoe.psu.ac.th เครอขายยอยทงสองในทนคอ LOCAL1 และ LOCAL2 จะใชดเอนเอสเซ ร ฟ เวอ ร (DNS Server) 14 ใ น เ ค ร อ ข า ย LOCAL1 ม หมาย เลข ไอ พแอด เ ด รส เ ป น192.168.250.2
คอนฟกของดเอชซพเซรฟเวอรซงจะใชกำาหนดไอพแอดเดรสใหกบเครอง client1 และ เครองclient2 ในรป ใหมไอพแอดเดรสและขอมลอนๆทจำาเปน เพอใหสามารถตดตอกบ เครอขายภายนอก และระหวางเครองไคลเอนททงสองดวยกนได จะมดงน
14 ซงรายละเอยดเพมเตมกลาวถงในบทท 5
รปท 6: ตวอยางเครอขาย สำาหรบกำาหนดคอนฟกดเอชซพเซรฟเวอร
จากตวอยางคอนฟกขาง ตน คาขอกำา หนด (directive) ทสำา คญและควรกำา หนดไวคอauthoriative แมวาไมไดกำาหนดคานไวในคอนฟก ดเอชซพเซรฟเวอรจะยงสามารถทำาหนาทแจกจายไอพแอดเดรส ใหกบเครองไคลเอนทไดตามปกต แตในกรณทเครองไคลเอนทรองขอไอพแอดเดรสทไมถกตอง เชนเครองโนตบกซงยายการเชอมตอจากเครอขายไรสายหนงไปยงอกเครอขายหนง เครองโนตบกจะรองของไอพแอดเดรสเดมโดยใชแอดเดรสเดมกอน ซงในกรณทอยตางเครอขายกน ดเอชซพเซรฟเวอรควรจะสงขอความแจงเครองไคลเอนทเพอยกเลกการใชไอพแอดเดรสทรองขอมา และกำาหนดไอพแอดเดรสใหมใหใชแทน ขอกำาหนด authoriative จะทำาใหดเอชซพเซรฟเวอรสงขอความยกเลกไอพแอดเดรสทไมปรากฎอยในพล ใหกบเครองไคลเอนทได
คาของ default-lease-time และ max-lease-time คออายของ lease (ไอพแอดเดรส) มหนวยเปนวนาท ซงจะเปนชวงเวลาทเครองไคลเอนทตองรองขอไอพแอดเดรสใหม หลงจากใชไอพแอดเดรสไปเทากบหรอนานกวาชวงเวลาน เครองไคลเอนทสามารถระบคา lease time เองไดแตดเอชซพเซรฟเวอรจะตอบคากลบไปไมเกนคาของ max lease time ทกำาหนดเอาไวในคอนฟก ในกรณทเปนเครองคอมพวเตอรแบบ เดสทอปซงไมคอยไดเคลอนยาย (เชนในหองปฏบตการ) กสามารถกำาหนดคาใหเปนคาสงๆได เชนกำาหนดเปนคา 86400 ซงอายของ lease จะเทากบ 1 วน แตถาเปนเครอขายไรสาย กควรจะกำาหนดคาใหไมนานมากเกนไป เชน เปนคา 1800ซงเครองไคลเอนทจะใชไดนานเทากบ 30 นาท
คาขอกำาหนด subnet จะใชระบชวงของไอพแอดเดรสทดเอชซพเซรฟเวอร สามารถแจกจายใหกบเครองไคลเอนทเมอมการรองขอ โดยจะกำาหนดเปน ชวง (range) ระบแอดเดรสเรมตนและแอดเดรสสดทาย ตามตวอยาง
option domainname "coe.psu.ac.th"; option domainnameservers "192.168.250.2";
defaultleasetime 600; maxleasetime 720;
authoriative;
# Network LOCAL1 subnet 192.168.250.0 netmask 255.255.255.0 { range 192.168.250.100 192.168.250.199; options routers 192.168.250.1 }
# Network LOCAL2 subnet 192.168.200.0 netmask 255.255.255.0 { range 192.168.200.100 192.168.200.199; options routers 192.168.200.1 }
เนองจากการรองขอไอพแอดเดรสจากเครองไคลเอนทมายงดเอชซพเซรฟเวอร จะใชวธการสงขอความรองขอแบบบรอดคาสต (broadcast) ขอความลกษณะนจะสงถงดเอชซพเซรฟเวอรไดเมอทงดเอชซพเซรฟเวอรและไคลเอนทอยในเครอขายเดยวกน สำาหรบเครอขายของหนวยงานโดยทวไปจะมหลายเครอขายยอย ซงการกำาหนดไอพแอดเดรสใหกบคอมพวเตอรในเครอขายยอยเหลาน อาจใชดเอชซพเซรฟเวอรเพยงเครองเดยวได โดยเพมเนทเวรคอนเทอรเฟสบนเครองดเอชซพเซรฟเวอรใหตอกบทกเครอขายทมอย หรอใชดเอชซพรเลย (DHCP Relay) สำาหรบการสงตอ(Relay) ขอความรองขอไอพแอดเดรสจากไคลเอนทและขอความตอบกลบจากดเอชซพเซรฟเวอรโดยดเอชซพรเลยจะตองอยบนอปกรณเราทเตอรซงตอระหวางเครอขายของไคลเอนทกบเครอขายของดเอชซพเซรฟเวอร
สำาหรบบางเครอขาย ทไมตองการใหดเอชซพเซรฟเวอรแจกจายไอพแอดเดรส เชนเปนเครอขายของเซรฟเวอร ซงการกำาหนดไอพแอดเดรสใหกบเซรฟเวอรจะใชวธการกำาหนดแบบสแตตคสำาหรบเครอขายนจะกำาหนด subnet เอาไวแตระบวาไมแจกจายไอพแอดเดรสไดโดยการกำาหนดแบบน
สำาหรบคอมพวเตอรบางเครองซงเปนเครองทไมมการเคลอนยายบอยครงเชนเครองคอมพวเตอรแบบเดสทอปของบคลากรหรอเครองคอมพวเตอรซงใชงานในหองปฏบตการ ซงผดแลตองการทจะกำาหนดไอพแอดเดรสไมใหมการเปลยนแปลง และระบเปนไอพแอดเดรสทตองการ โดยการระบขอกำาหนด host ใหอยในสวนของ subnet ตามตวอยาง
# Network LOCAL1 No DHCP Client in this Subnet # But since DHCP Server in this Subnet, this subnet must be defined
subnet 192.168.250.0 netmask 255.255.255.0 {}
... # Network LOCAL1 subnet 192.168.250.0 netmask 255.255.255.0 { range 192.168.250.100 192.168.250.199; options routers 192.168.250.1
host client1 { hardware ethernet 00:1E:C9:07:37:B7; fixedaddress 192.168.250.101; } ... } ...
ซงพารามเตอรของ host กจะประกอบไปดวย ฮารดแวรแอดเดรส (Hardware Address) คอhardware ethernet กบคาแอดเดรสทกำาหนดเอาไว (fixed-address) ซงในสวน hardwareethernet จะใชระบ แมคแอดเดรส (MAC Address) ของอ เทอร เนท (Ethernet) และfixed-address จะใชระบหมายเลข ไอพแอดเดรสหรอจะใชชอเครองคอมพวเตอรซงกำาหนดเอาไวในระบบโดเมนเนม (Domain Name System – DNS) กได ซงในกรณทกำาหนดเปนชอ ดเอชซพเซรฟเวอรกจะเปลยนจากชอโดเมนไปเปนไอพแอดเดรสได โดยสงคำารองขอคนหาไอพแอดเดรสจากชอโดเมนไปยงเครองดเอนเอสเซรฟเวอร และรบคำาตอบกลบมาเปนไอพแอดเดรส
ขอมลทดเอชซพเซรฟเวอรสงกลบไปใหเครองไคลเอนทเมอเครองไคลเอนทรองขอไอพแอดเดรสใหม โดยการสงขอความ DHCP Request นอกจากไอพแอดเดรสแลว กยงมขอมลไอพแอดเดรสของดเอนเอสเซรฟเวอร (DNS Server) ไอพแอดเดรสของเราทเตอร ซงคาขอมลเหลานจะเปนคาทเครองไคลเอนทโดยทวไปจำาเปนจะตองใชเพอใหสามารถตดตอกบเครอขายภายนอกได นอกจากนดเอชซพเซรฟเวอรยงสามารถสงคาอนๆใหกบเครองไคลเอนททรองขอไอพแอดเดรสไดอก เชนสำาหรบเครองไคลเอนทซงไมมแหลงเกบขอมล (เชนฮารดดสก) เปนของตนเอง แตมความสามารถทจะบทเครองผานเครอขายได ผดแลระบบสามารถกำาหนดขอมลเพมเตมในขอความทตอบกลบโดยดเอชซพเซรฟเวอร เพอระบวาใหเครองไคลเอนทเครองนนใชเครองเซรฟเวอรเครองใด และใชไฟลขอมลใดสำาหรบการบทระบบของตนเองผานเครอขาย
เชนตองการกำาหนดใหเครองไคลเอนททบทระบบผานพเอกซอบท (PXEBoot) ดาวโหลดไฟลขอมลสำาหรบการบทจากเครองทเอฟทพเซรฟเวอร ชอ tftp.coe.psu.ac.th โดยไฟลสำาหรบการบทมชอวา pxelinux.0 กสามารถเพมขอความดานลางนเขาไปในคอนฟกของดเอชซพเซรฟเวอร
โดยคาพารามเตอรของ next-server จะเปนไอพแอดเดรสหรอชอโดเมนเนมของทเอฟทพเซรฟเวอร (TFTP Server) ในสวนของการตดตงทเอฟทพเซรฟเวอรใหทำางานเปนเซรฟเวอรทเครองไคลเอนทสามารถบทระบบผานพเอกซอบทได จะกลาวถงในบทของการตดตงทเอฟทพเซรฟเวอร (TFTP Server)
4.4 การตรวจสอบการทำางานของดเอชซพเซรฟเวอรเครองมอทสามารถใชตรวจสอบสถานะการทำางานของดเอชซพเซรฟเวอร คอคำาสง dhclient ซงโดยปกตจะเปนคำาสงทเครองไคลเอนทใชในการรองของไอพแอดเดรสจากดเอชซพเซรฟเวอร มากำาหนดไอพแอดเดรสสำาหรบเครองไคลเอนทเอง โดยสามารถปอนคำาสงใหทำางานตรวจสอบ โดย
nextserver tftp.coe.psu.ac.th; filename "pxelinux.0";
ไมเอาขอมลทดเอชซพเซรฟเวอรตอบกลบมาใชงานจรงไดดงน
หรอ อาจใชคำาสง dhcping ซงเปนคำาสงอยในแพกเกจทตดตงเพมเตมไดโดยใชคำาสง
เมอตดตงแลวเสรจจะสามารถตรวจสอบการทำางานของดเอชซพเซรฟเวอรดงน
จากตวอยางการปอนคำาสงขางตน การใชคำาสง dhcping จะสามารถระบไอพแอดเดรสของตวดเอชซพเซรฟเวอรได ซงตางกบกรณการใชคำาสง dhclient ซงจะเปนการทำางานของเครองไคลเอนทจรงคอสงขอความรองขอไอพแอดเดรสแบบบรอดคาสต (broadcast DHCP Requestpacket) ออกไปโดยไมระบดเอชซพเซรฟเวอร
4.5 การใชงานดเอชซพรเลย (DHCP Relay)ดเอชซพรเลย (DHCP Relay) เปนโปรแกรมทจะตองตดตงบนอปกรณเราทเตอร เพอใหเราทเตอรสงขอความรองขอไอพแอดเดรส (DHCP Request) จากเครอขายทไมมดเอชซพเซรฟเวอรไปยงเครอขายทมดเอชซพเซรฟเวอร โปรแกรมนจะสนบสนนใหเราสามารถตดตงดเอชซพเซรฟเวอรเพยงตวเดยวในการใหบรการกำาหนดไอพแอดเดรสไดหลายเครอขายภายในหนวยงาน เปนการรวมศนยของการกำาหนดไอพแอดเดรสใหอยทเดยวทำาใหงายตอการดแลมากกวาม ดเอชซพเซรฟเวอรหลายตว
วธการตดตง ทำาไดโดยการปอนคำาสง บนเครองเราทเตอร
คาคอนฟกสำาหรบดเอชซพรเลยสามารถกำาหนดไดโดยระบไอพแอดเดรสหรอชอโดเมนเนมของดเอชซพเซรฟเวอรไวท ตวแปรเชลลชอ SERVERS ในไฟล /etc/default/isc-dhcp-relay ดงน
สวนตวแปร INTERFACES และ OPTIONS สามารถปลอยเปนคาวางได ไมจำา เปนตองเปลยนแปลง
dhclient n v eth0
aptget install dhcping
dhcping s 192.168.250.2
aptget install iscdhcprelay
SERVERS="dhcp.coe.psu.ac.th"
บทท 5 การตดตงทเอฟทพเซรฟเวอร (TFTP Server)
5.1 ทเอฟทพเซรฟเวอร (TFTP Server)TFTP หรอ Trivial File Transfer Protocol15 เปนโปรโตคอลสำาหรบการรบสงไฟล ทออกแบบมาใหมความซบซอนนอยกวาโปรโตคอลทใชสำาหรบการรบสงไฟลแบบปกต (File TransferProtocol – FTP)16 โดยไมมสวนของการยนยนตวบคคล (Authentication) และ ฟงกชนทซบซอนอนๆ ดงนนโปรแกรมจงมขนาดเลก โดยใชเนอทสำาหรบเกบขอมลและหนวยความจำานอยมากโปรโตคอลนมกใชสำาหรบรบ/สงไฟลแบบอตโนมต หรอใชในการบทเครองคอมพวเตอรผานระบบเครอขาย ใชกรณทเครองคอมพวเตอร ไมมอปกรณสำาหรบเกบขอมล คอมพวเตอรขนาดเลกทใชในระบบเอมเบดเดด (embedded systems) สามารถเตรยมสวนของโปรแกรมซงโปรโตคอลนและเกบไวในเฟรมแวร (Firmware) ของระบบได
โปรแกรมทเอฟทพเปนสวนหนงของพเอกซอบท (PXEBoot)17 ซงมกจะเปนสวนหนงของเฟรมแวรของ เนทเวรคอนเทอรเฟสคารด (Network Interface Card) สมยใหมทวไป ซงจะทำาใหเครองคอมพวเตอรสามารถเลอกบทเครองจากเครอขายได
ในบทนเราจะอธบายการใชทเอฟทพเซรฟเวอรสำาหรบตดตงเดเบยนแบบอตโนมต โดยจะใชชดโปรแกรมตดตงของเดเบยนชอวา netinstall มาตดตงบนทเอฟทพเซรฟเวอรและกำาหนดขอมลพรสด (preseed) ในดเอชซพเซรฟเวอร ใหดาวนโหลดขอมลพรสดสวนทสองจากเวบเซรฟเวอรเมอเครองคอมพวเตอรบทจากเฟรมแวรของเนทเวรคอนเทอรเฟสคารดใหใชพเอกซอบท กจะรบขอมลพรสดสวนแรกจากดเอชซพเซรฟเวอร มากำาหนดไอพแอดเดรสและคอนฟกอนๆทเกยวของเพอใหสามารถใชงานเครอขายไดอยางถกตอง หลงจากนนกจะดาวโหลดขอมลพรสดสวนทเหลอจากเวบเซรฟเวอร และเรมกระบวนการตดตงแบบอตโนมตตอไปจนเสรจสมบรณ
5.2 การตดตงทเอฟทพเซรฟเวอรจากชดแพกเกจของเดเบยนจะมแพกเกจสำาหรบทำางานเปนทเอฟทพเซรฟเวอรอย 3 แพกเกจคอ
15 http://en.wikipedia.org/wiki/Trivial_File_Transfer_Protocol16 http://en.wikipedia.org/wiki/File_Transfer_Protocol17 http://en.wikipedia.org/wiki/Preboot_Execution_Environment
แพกเกจทใชในบทนคอ atftpd ซงสามารถตดตงโดยใชคำาสงตอไปน
แพกเกจ atftp จะเปนโปรแกรมไคลเอนทสำาหรบทเอฟทพเซรฟเวอรแบบเดยวกบโปรแกรมเอฟทพ (ftp) ซงใชกบเอฟทพเซรฟเวอร (FTP Server) ซงจะใชสำาหรบทดสอบความถกตองในการทำางานของทเอฟทพเซรฟเวอร เมอตดตงแพจเกจ atftpd เสรจแลว โปรแกรมตดตงจะสรางไดเรคตอร /srv/tftp ซงใชเกบขอมลของทเอฟทพเซรฟเวอร
หล ง จ ากน น จะดาวน โหลดไฟล ข อม ลสำา หร บการ ตด ต ง เ ด เบ ยนผ าน เค ร อข า ย ช อnetboot.tar.gz จ า กhttp://ftp.th.debian.org/debian/dists/testing/main/installer-i386/current/images/netboot/netboot.tar.gz ซงเปนไฟลสำาหรบการตดตงใหโปรเซสเซอรซงใชชดคำาสงของอนเทลx86 ใหทำางานแบบ 32 bit18 หรอเลอกใชสถาปตยกรรม i386 (i386 Architecture) ในกรณทตองการใชงานโปรเซสเซอรทำางานแบบ 64 bit19 หรอเลอกใชสถาปตยกรรม amd64 (amd64Architecture) กเปลยนสวนของ URL จาก installer-i386 เปน installer-amd64
ไฟลดงกลาวสามารถดาวนโหลดโดยใชคำาสง wget ตามตวอยาง
หลงจากนนจะตองแยก (extract) ไฟล netboot.tar.gz ในไดเรคตอรของทเอฟทพเซรฟเวอรซงสามารถทำาไดดวยการใชคำาสง
ผลลพธหากถกตองควรจะไดไฟลใน /srv/tftp ดงน
18 http://en.wikipedia.org/wiki/X8619 http://en.wikipedia.org/wiki/X86-64
tftpd Trivial file transfer protocol server atftpd advanced TFTP server tftpdhpa HPA's tftp server
aptget y install atftpd atftp
wget http://ftp.th.debian.org/debian/dists/testing/main/installeri386/current/images/netboot/netboot.tar.gz
tar C /srv/tftp zxvf netboot.tar.gz
หลงจากเสรจสนขนตอนนกจะสามารถตรวจสอบการทำางานของทเอฟทพเซรฟเวอรได ทดลองใชโปรแกรมไคลเอนท atftp สำาหรบดาวนโหลดไฟล version.info มาดวยคำาสงตอไปน
ผลลพธของคำาสงนหากไดไฟล version.info นนหมายถงวาทเอฟทพเซรฟเวอรทำางานถกตอง
5.3 การคอนฟกดเอชซพเซรฟเวอรเพอใหเครองคอมพวเตอรบทจากทเอฟทพเซรฟเวอร
สวนของคอนฟกทจะตองกำาหนดเพมเตมใหกบเครองดเอชซพเซรฟเวอร เพอใหเครองคอมพวเตอรบทจากพเอกซอบท (PXEBoot) สามารถดาวนโหลดไฟลทใชสำาหรบการบทจากตวทเอฟทพเซรฟเวอรได จะตองเพม
โดยขอความทงสองบรรทดนจะใสไวในสวนของการกำาหนด subnet (subnet declaration) หรอสวนของการกำาหนด host (host declaration) กได ในกรณทกำาหนดไวในสวน subnet กจะทำาใหเครองคอมพวเตอรทอยในเครอขายนนทงเครอขายทสามารถบทดวยพเอกซอบท จะสามารถเลอกบทและตดตงเดเบยนผานเครอขายได ในกรณทกำาหนดไวในสวนของ host กจะเปนการระบใหเฉพาะเครองคอมพวเตอรนนๆ สามารถเลอกบทและตดตงเดเบยนผานเครอขายได
5.4 การแกไขคอนฟกเพอเพมพรสดสำาหรบเนทบทไฟลขอมลสำาหรบการตดตงเดเบยนผานเครอขายซงไดจาก netboot.tar.gz ตามทอธบายไวในตอนตน จะมคาคอนฟกซงกำาหนดไวเปนคาปรยายใหผตดตงจะตองเลอกชนดของการตดตงจากเมน ซงผตดตงจะตองตอบคำาถามตางๆเชนเดยวกบการตดตงจากอปกรณชนดอนเชน CDROM ซงทำา ใหกระบวนการตดตงไมไดเปนไปแบบอตโนมต เราสามารถเปลยนคาคอนฟกเพอให
root@tftp:/srv/tftp# ls al total 16 drwxrxrx 3 root root 4096 Jan 17 2011 . drwxrxrx 3 root root 4096 Jun 3 00:58 .. drwxrxrx 3 root root 4096 Jan 17 2011 debianinstaller lrwxrwxrwx 1 root root 32 Aug 21 06:54 pxelinux.0 > debianinstaller/i386/pxelinux.0 lrwxrwxrwx 1 root root 34 Aug 21 06:54 pxelinux.cfg > debianinstaller/i386/pxelinux.cfg rwrr 1 root root 60 Jan 17 2011 version.info
echo "get version.info" | tftp localhost
nextserver 192.168.250.4; filename "pxelinux.0";
กระบวนการตดตงเปนไปแบบอตโนมตได
ไฟลคอนฟกของเดเบยนซงใชในการตดตงผานเครอขาย (Debian Netboot) ซงหลงจากตดตงบนท เ อ ฟ ท พ เ ซ ร ฟ เ ว อ ร แ ล ว จ ะ อ ย ใ น ไ ด เ ร ค ต อ ร/srv/tftp/debian-installer/i386/boot-screens/ โ ด ย จ ะ ป ร ะ ก อ บ ด ว ย ไ ฟล ห ล ก ค อsyslinux.cfg และมไฟลคอนฟกยอยซงมเอกเทนชนของไฟลเปน .cfg อยจำานวนมาก ซงไฟลคอนฟกยอยเหลานจะถกเลอกใช เมอผใชเลอกวธการตดตงแบบตางๆจากเมนแรกในการตดตงเชนไฟล txt.cfg ซงจะใชสำาหรบการตดตงแบบเทกซโมด (text mode) โดยทไฟลเหลานจะระบขอมลสำาหรบการบทเชนเคอรเนล (kernel) ของลนกซทจะใช และพารามเตอรสำาหรบการบทอนๆเชนในไฟล txt.cfg จะมขอมลดงตอไปน
การกำาหนดคาพรสดจะเปนการใสเปนการกำาหนดคาพารามเตอรทจะสงใหกบเคอรเนลของลนกซซงจะอยในบรรทด append ดงนนเพอทจะเปลยนการตดตงแบบเทกซโมดแบบธรรมดา ใหเปนการตดตงแบบอตโนมตกสามารถทำาไดโดยการเปลยนบรรทด append จากเดม
ใหมขอมลดงตอไปน
สวนของการพรสดทกำาหนดไวในคอนฟกน จะใชสำาหรบการคอนฟกเบองตนซงประกอบดวยการกำาหนดคาของภาษาทจะใช รปแบบของการกำาหนดคยบอรด การกำาหนดคาเครอขายตงตนซงมขอมลพอทจะทำาใหเครองไคลเอนททบทขนมา สามารถดาวนโหลดไฟลผานทางเครอขายได ซงสวนของพรสดสวนทเหลอ ซงไดแสดงเอาไวแลวใน บทท 2 จะถกดาวนโหลดผานทางเครอขาย ซงในทนกำาหนดโดย URL ดงน
default install label install menu label ^Install menu default kernel debianinstaller/i386/linux append vga=788 initrd=debianinstaller/i386/initrd.gz quiet
append url=http://tftp.coe.psu.ac.th/di/squeeze.cfg \ fb=false \ locale=en_US.UTF8 \ language=en country=TH netcfg/get_hostname=t \ netcfg/get_domain=coe.psu.ac.th \ consolekeymapsat/keymap=us \ mirror/suite=squeeze \ DEBCONF_PRIORITY=critical \ DEBCONF_DEBUG=5
append vga=788 initrd=debianinstaller/i386/initrd.gz quiet
ในกรณทจะใชเครอง tftp.coe.psu.ac.th สำาหรบใหขอมลพรสดในสวนทสองดวย นนคอจะตองตดตงเวบเซรฟเวอร (Web Server) บนเครอง tftp.coe.psu.ac.th ดวยเชนกน ทงนจะกลาวถงเรองของการตดตง เวบเซรฟเวอรในบทตอๆไป
url=http://tftp.coe.psu.ac.th/di/squeeze.cfg
บทท 6 การตดตงดเอนเอสเซรฟเวอร (DNS Server)
6.1 โดเมนเนมซสเตม (Domain Name System – DNS)DNS20 หรอ Domain Name System เปนระบบของการระบชอคอมพวเตอร การใหบรการ หรอทรพยากรบนเครอขายคอมพวเตอร แบบมลำาดบชนและกระจาย ระบบนถกพฒนาขนเพอใหผใชงานคอมพวเตอรทเปนมนษยสามารถใชงานคอมพวเตอรและบรการตางๆบนระบบเครอขายไดอยางสะดวกขน การทำางานของคอมพวเตอรภายในเครอขายจะมการสอสารระหวางคอมพวเตอรดวยกนเอง เครองคอมพวเตอรตนทางทตองการสงขอมลไปยงเครองคอมพวเตอรปลายทางจะ ตองระบตำาแหนงหรอแอดเดรสของทงเครองตนทางเองและและแอดเดรสของเครองปลายทางลงไปในแพกเกจขอมลทจะสงไป การระบตำาแหนงเหลานระหวางคอมพวเตอรดวยกนเอง จะใชขอมลเปนตวเลขเขารหสซงเครองคอมพวเตอรสามารถตความไดอยางไมมปญหา อยางไรกตามเมอมนษยมาใชคอมพวเตอรและตองการใชขอมลหรอใชบรการจากเครองคอมพวเตอรเครองอนซงเชอมตออยในเครอขาย การระบตำาแหนงของคอมพวเตอรหรอบรการเหลานนโดยใชตวเลข จะเปนเรองยากสำาหรบมนษย ระบบโดเมนเนมซสเตมจะใชสำาหรบการเปลยนตวเลขทใชระบตำาแหนงใหเปนชอซงมนษยสามารถจดจำาไดงายกวา
ถงแมจะมตวใหบรการในการแปลงจากชอมาเปนแอดเดรสในรปแบบอนอยมากพอสมควร เชนในเครอขายของคอมพวเตอรทใชระบบปฏบตการวนโดว (Windows Operating Systems) กจะวนเอสเซรฟเวอร (WINS Server) สำาหรบการเปลยนชอเครองคอมพวเตอรของวนโดวเปนแอดเดรสสำาหรบการตดตอ ซงสามารถทำาไดบนหลาบโปรโตคอล หรอสำาหรบคอมพวเตอรซงใชระบบปฏบตการในตระกลของยนกซ (Unix) กมระบบเอนไอเอส (Network Information Service – NIS)21
สำาหรบเปลยนจากชอเครองคอมพวเตอรเปนไอพแอดเดรสไดเชนกน แตสำาหรบบนเครอขายอนเทอรเนทซงใชทซพไอพ (TCP/IP) เปนโปรโตคอลหลกในการสอสารแลว กจะใชระบบของโดเมนเนมซสเตมเปนหลก จะเรยกเครองคอมพวเตอรททำาหนาทใหบรการขอมลโดเมนเนมซสเตมวา โดเมนเนมเซรฟเวอร (Domain Name Server) หรอดเอนเอสเซรฟเวอร (DNS Server)
ดเอนเอสเซรฟเวอรทำาหนาทในการใหบรการแปลงชอของคอมพวเตอร ไปเปนไอพแอดเดรส (IP
20 http://en.wikipedia.org/wiki/Domain_Name_System21 http://en.wikipedia.org/wiki/Network_Information_Service
Address) สำาหรบการตดตอของคอมพวเตอรซงใชโปรโตคอลทซพไอพ (TCP/IP) แลวเครองคอมพวเตอรจะใชไอพแอดเดรส สำาหรบการระบตำาแหนงของคอมพวเตอรในระบบเครอขายวาอยในเครอขายใด และใชหมายเลข พอรท (Port) เปนตวระบแอพพลเคชน (application) ทตองการจะตดตอดวย ตวอยางเชนเซรฟเวอรชอ fivedots ของภาควชาวศวกรรมคอมพวเตอร จะมชอแบบทเรยกวาฟลลควอลไฟโดเมนเนม (Fully Qualify Domain Name – FQDN)22 หรอชอโดเมนแบบเตมวา fivedots.coe.psu.ac.th ซงเซรฟเวอร เครองนจะมไอพแอดเดรสเวอรชน 4(IPv4 Address) เปน 172.30.0.5 เครองคอมพวเตอรเครองน นอกจากจะใหบรการเปน เวบเซรฟเวอร (Web Server) แลว ยงใหบรการเปนเมลเซรฟเวอร (Mail Server) อกดวย ในการตดตอระหวาง เครองไคลเอนททตองการใชบรการเวบของ fivedots กจะใชไอพแอดเดรส172.30.0.5 และตดตอไปยงพอรท 80 ของเซรฟเวอร ในขณะทเครองไคลเอนทซงตองการใชบรการรบสง เมลโดยใชโปรโตคอลเอสเอมทพ (SMTP) กจะตดตอไปยงพอรท 25 ของเซรฟเวอรซงลกษณะของการใหบรการแตละชนดบนเซรฟเวอรสามารถเขยนอยในรปตวเลขได เชน172.30.0.5:80 จะเปนแอดเดรสสำาหรบการใหบรการเวบของ fivedots และ 172.30.0.5:25จะเปนแอดเดรสสำาหรบการใหบรการเมล
การระบแอดเดรสสำาหรบการใหบรการ โดยใชหมายเลขไอพแอดเดรสและพอรทน เปนวธการทใชสำาหรบการสอสารแบบปกตระหวางเครองคอมพวเตอร ททำางานในลกษณะของไคลเอนทและเซรฟเวอร แ ตสำา หรบมนษยการจดจำา ตว เลขจะเปน เร อ งย งยาก การจดจำา ชอ เชนhttp://fivedots.coe.psu.ac.th จ ะ จำา ไ ด ง า ย ก ว า 172.30.0.5:80 ด ง น น เ พ อ ใ ห ผ ใ ชคอมพวเตอรสามารถใชงานบรการบนคอมพวเตอรในเครอขายไดอยางสะดวกมากขน ระบบโดเมนเนมซสเตมจงถกพฒนาขนมาใชงานบนอนเทอรเนต
6.2 การจดลำาดบชนของโดเมนเนม (Domain Name Hierachy)ในสวนของการกำาหนดโดเมน (domain) เพอจะแปลงจากชอแบบซมโบลค (Symbolic Name)เปนไอพแอดเดรส (IP Address) จะมการกำาหนดในแบบทเรยกวาลำาดบขน (hierarchy) โดยระดบบนสดจะเรยกวา ทอปเลเวลโดเมน (top-level domains – TLDs) ซงจะประกอบไปดวยทอปเลเวลโดเมนแบบทวไป เชน .com .edu .org .net และทอปเลเวลโดเมนสำาหรบแตละประเทศ เชน
• .us สำาหรบ สหรฐอเมรกา
22 http://en.wikipedia.org/wiki/Fully_qualified_domain_name
• .my สำาหรบ มาเลเซย
• .sg สำาหรบ สงคโปร
• .th สำาหรบประเทศไทย
จากระดบบนสด (top-level) กจะมระดบ (level) ทแบงยอยลงไป ซงกขนอยกบผจดทะเบยนของระดบบนสดนน ในกรณของประเทศไทยจะใช
• .ac.th สำาหรบ หนวยงานทางการศกษา เชน มหาวทยาลย, โรงเรยน
• .co.th สำาหรบ บรษทหรอองคกรทางดานธรกจ
• .go.th สำาหรบ หนวยงานของรฐ (Government)
• .mi.th สำาหรบ กองทพ หนวยงานทางดานการทหาร
เปนตน
ในระดบยอยลงมาของแตละโดเมนกจะมโดเมนยอย (Sub Domain) เชนสำาหรบ .ac.th กจะม
• .psu.ac.th มหาวทยาลยสงขลานครนทร
• .ku.ac.th มหาวทยาลยเกษตรศาสตร
• .kku.ac.th มหาวทยาลยขอนแกน
• .cu.ac.th จฬาลงกรณมหาวทยาลย
เปนตน
ในระดบยอยของมหาวทยาลยสงขลานครนทร กจะแบงเปนระดบคณะฯ (หรอภาควชาฯ) เชน
• .coe.psu.ac.th ภาควชาวศวกรรมคอมพวเตอร
• .eng.psu.ac.th คณะวศวกรรมศาสตร
• .sci.psu.ac.th คณะวทยาศาสตร
• .med.psu.ac.th คณะแพทยศาสตร
เปนตน
ลกษณะของการจดเกบขอมลแบบกระจาย (distributed) กคอในแตละลำา ดบขนดเอนเอส
เซรฟเวอรจะไมไดมขอมลทงหมดในโดเมนยอยแตจะมเฉพาะขอมลทระบวา ในโดเมนยอยจะรองขอขอมลไดจากดเอนเอสเซรฟเวอรใด ยกตวอยางเชน ในระดบโดเมนของมหาวทยาลยสงชลานครนทร คอ .psu.ac.th จะมขอมลของโฮสต (host) หรอชอเครองคอมพวเตอรภายในโดเมนบางสวนดงน
และจะมขอมลระบวาโดเมนยอยของ .psu.ac.th จะมดเอนเอสเซรฟเวอรใดเปนเซรฟเวอรทมอำานาจ (Authorized Server) ดงน
แตดเอนเอสเซรฟเวอรของโดเมน .psu.ac.th จะไมมขอมลของโดเมนยอย .coe.psu.ac.th
การรองขอขอมลซงอยในโดเมนยอย จะตองสงคำารองขอไปทดเอนเอสเซรฟเวอรของโดเมนยอยนนๆ
ในแงของกระบวนการของการแปลงไอพแอดเดรส (Resolve IP Address) เชนเมอผใชเปดเวบเบร า เ ซ อ ร (Web Browser) แ ล ะ พ ม พ URL ข อ ง เ ว บ ไ ซ ท (Web Site) เ ช นhttp://fivedots.coe.psu.ac.th/squirrelmail ตวเวบเบราเซอรจะสงสวนของชอโฮสต (host)คอ fivedots.coe.psu.ac.th ใหกบซสเตมไลบราร (System Library) ของระบบ ซงในกรณทไมมขอมลอยใน ฐานขอมลของตวเองกจะสงตอไปใหกบดเอนเอสแคชเซรฟเวอร (DNS CacheServer) ซงจะทำาหนาท แปลงไอพแอดเดรสและสงกลบมาให ซงจะถกสงผานจากซสเตมไลบรารกลบขนไปยงลำาดบชนของ โปรแกรมแอพลเคชนซงกคอเวบเบราเซอรตอไป เวบเบราเซอรกจะใชไอพแอดเดรสสำาหรบการตดตอกบ เวบเซรฟเวอรตามทผใชตองการ
ดเอนเอสแคชเซรฟเวอรซงทำาหนาทแปลงไอพแอดเดรสในตวอยางขางตน ในกรณทยงไมมขอมลของชอโฮสตและไอพแอดเดรสของโฮสตนนอยในแคช (Cache) ของตวเอง กจะสงคำารองขอ(Request) ไปยงดเอนเอสเซรฟเวอรซงมขอมลใหสงคำาตอบกลบมา ซงในกรณทไมมการกำาหนดใหมการสงตอคำารองขอ (forward request) ไปยงดเอนเอสเซรฟเวอรใด กจะสงคำารองขอนนไปยงดเอนเอสรทเซรฟเวอร (Root Server)
... ns.psu.ac.th. 14400 IN A 192.100.77.5 ns2.psu.ac.th. 14400 IN A 192.100.77.2 www.psu.ac.th. 14400 IN CNAME usablelabs.psu.ac.th. usablelabs.psu.ac.th. 14400 IN A 192.168.101.40 ...
coe.psu.ac.th. 14400 IN NS ninedots.coe.psu.ac.th. coe.psu.ac.th. 14400 IN NS fivedots.coe.psu.ac.th. eng.psu.ac.th. 14400 IN NS maroon.eng.psu.ac.th. me.psu.ac.th. 86400 IN NS me.psu.ac.th. ee.psu.ac.th. 7200 IN NS electric2.ee.psu.ac.th.
ยกตวอยางเชนในการแปลงไอพแอดเดรสของ fivedots.coe.psu.ac.th กจะสงคำารองขอไปทรทเซรฟเวอร เ พอ ทจะขอไอพแอดเดรสของเนมเซรฟเวอรของโดเมนระดบบนสดของfivedots.coe.psu.ac.th คอเนมเซรฟเวอรของ .th เมอรทเซรฟเวอรตอบกลบมาดเอนเอสแคชเซรฟเวอร กจะใชแอดเดรสของดเอนเอสเซรฟเวอรนนในการรองขอไอพแอดเดรสของเนมเซรฟเวอรโดเมนยอยระดบชนถดมาของ fivedots.coe.psu.ac.th ซงกคอ .ac.th จากนนกจะใชแอดเดรสของดเอนเอสเซรฟเวอรทไดรบมานน ในการรองขอไอพแอดเดรสของเนมเซรฟเวอรโดเมนยอยระดบถดไปเรอยๆ จนกระทงถงเนมเซรฟเวอรระดบสดทายซงมขอมลไอพแอดเดรสของเครองเซรฟเวอร fivedots.coe.psu.ac.th อย ลำา ดบขนของการแปลงไอพแอดเดรสfivedots.coe.psu.ac.th สรปเปนขนไดดงน
• ตองการไอพแอดเดรสของ fivedots.coe.psu.ac.th
• ใชรทเซรฟเวอรสำาหรบคนหาดเอนเอสเซรฟเวอรของ .th
• ใชดเอนเอสเซรฟเวอรของ .th สำาหรบคนหาดเอนเอสเซรฟเวอรของ .ac.th
• ใชดเอนเอสเซรฟเวอรของ .ac.th สำาหรบคนหาดเอนเอสเซรฟเวอรของ psu.ac.th
• ใชดเอนเอสเซรฟเวอรของ .psu.ac.th สำาหรบคนหาดเอนเอสเซรฟเวอรของ coe.psu.ac.th
• ใ ช ด เ อ น เ อ ส เ ซ ร ฟ เ ว อ ร ข อ ง coe.psu.ac.th สำา ห ร บ ค นห า ไ อ พ แ อ ด เ ด ร ส ข อ งfivedots.coe.psu.ac.th
ในแงของการทำางานจรง การแปลงไอพแอดเดรสโดยการเรมจากโดเมนเนมระดบบนสดอยางน จะไมไดเกด ขนทกครงจากการรองขอของเครองไคลเอนทคอมพวเตอรแตละเครอง เพราะดเอนเอสแคชเซรฟเวอรจะเกบขอมลทไดคนหาเอาไวแลวนนไวในแคช (Cache) ของตนเองจนกวาจะหมดอายการใชงาน ถามการรองขอการแปลงไอพแอดเดรสครงใหมจากคอมพวเตอรเครองอน และดเอนเอสแคชเซรฟเวอรมขอมลนนอยในแคชกจะตอบกลบโดยใชขอมลในแคชนน
ดเอนเอสเซรฟเวอรทมใชงานนอกจากดเอนเอสแคชเซรฟเวอรแลว กมดเอนเอสเซรฟเวอรอกแบบหนงคอ ออธอรเอธฟดเอนเอสเซรฟเวอร (Authoriative DNS Server) ซงเปนผมอำา นาจ(Authorize) ในขอมลของ โดเมนนนๆ ดเอนเอสเซรฟเวอรแบบนจะมขอมลโดเมนของตนเองและจะตอบกลบในการแปลงไอพแอดเดรสหรอขอมลอนทมอยในโดเมนของตนเทานน
6.3 การตดตงไอเอสซบายดไนนดเอนเอสเซรฟเวอรบายด (Bind) ดเอนเอสเซรฟเวอรของ ISC23 เปนดเอนเอสเซรฟเวอรทมการพฒนาและใชงานมาอยางยาวนาน เวอรชนทนยมใชอยในปจจบนคอ Bind924 ซงประกอบไปดวยตวเนมดเดมอน(Named Daemon) ทำาหนาทเปนเซรฟเวอร และมโปรแกรมอรรถประโยชน (Utility Program)จำานวนมากใชในการใหบรการและตรวจสอบการทำางานของดเอนเอสเซรฟเวอร ในทนจะกวาถงเฉพาะตวทใชงานหลกๆเทานน
ตดตง Bind9 และเครองมอทเกยวของ ดวยคำาสงดงน
Bind9 สามารถคอนฟกใหทำาหนาทเปนดเอนเอสแคชเซรฟเวอร (DNS Cache Server) หรอ เปนออธอรเอธฟดเอนเอสเซรฟเวอร (Authoriative DNS Server) กได
6.4 การคอนฟกบายดไนนเพอเปนดเอนเอสแคชเซรฟเวอรหลงจากการตดตงแพกเกจแลวไฟลคอนฟกของ Bind9 จะเกบอยในไดเรคตอร /etc/bind โดยจะมไฟลหลกคอ named.conf และจะมไฟลคอนฟกยอยๆอนประกอบอกจำานวนหนง ซงไฟลยอยเหลานจะถกอานรวมเขากบไฟลคอนฟกหลก เนองจากมขอกำาหนด (directive) ใหรวม(include) เขามาดวย ในแงของการคอนฟก ผดแลระบบกจะแกไขเฉพาะสวนทเกยวของในไฟลคอนฟกยอยเหลานน โดยไมตองไปแกไขไฟลคอนฟกหลก ซงจะทำาใหการจดการแบงออกเปนสดสวนทชดเจนกวา ดงทจะไดอธบายตอไป สำาหรบคอนฟกบนเดเบยนลนกซ ไฟลคอนฟกทจะตองแกไขกคอ named.conf.local กบ named.conf.options
การคอนฟกบายดไนนเพอเปนดเอนเอสแคชเซรฟเวอร สงทเซรฟเวอรจะตองทำากคอแปลงไอพแอดเดรสในลกษณะของการเรยกซำา (Recursive Resolve IP Address) จากดเอนเอสเซรฟเวอรซงมขอมลอย ซงการทำางานสวนนจะกำาหนดโดยตวเลอก (option) recursion ซงคาโดยปรยายจะเปน yes นนคอตวดเอนเอสเซรฟเวอรจะทำาหนาทนอยแลว โดยไมตองแกไขหรอเพมคอนฟกนเขาไป
ในกรณของดเอนเอสแคชเซรฟเวอรภายในเครอขายของมหาวทยาลยสงขลานครนทร จะมขอกำาหนดวา ไมอนญาตใหดเอนเอสเซรฟเวอรภายในเครอขายสงคำารองขอออกไปนอกเครอขายของมหาวทยาลย เพอเปนการปองกนการโจมตตวดเอนเอสเซรฟเวอรและใหกำาหนดใหดเอนเอสแคช
23 http://www.isc.org/24 http://www.isc.org/software/bind
aptget install bind9 bind9utils bind9hosts
เซรฟเวอรของทกหนวยงาน สงคำารองขอไปยงดเอนเอสแคชเซรฟเวอรของมหาวทยาลยคอns.psu.ac.th (192.100.77.5) กบ ns2.psu.ac.th (192.100.77.2) แทน ซงผดแลดเอนเอสแคชเซรฟเวอรภายในเครอขายของมหาวทยาลยสงขลานครนทรสามารถกำาหนดคอนฟกของเซรฟเวอร เพอใหทำาตามขอกำาหนดดงกลาว ไดโดยการใชตวเลอก (option) forwarders และระบใหใชการสงตอ (forward) เทานนโดยตวเลอก (option) forward only โดยแกไขในไฟล/etc/bind/named.conf.options โดยคอนฟกเดมทมอย ในไฟล เมอลบบรรทดท เปนคอมเมนท (comment) หรอบรรทดทเรมดวย "//" หรอ "#" ออกไปแลว กจะมขอมลดงน
และเพอคอนฟกใหทำาหนาทเปนดเอนเอสแคชเซรฟเวอรซงอยภายในมหาวทยาลยสงขลานครนทรกจะตองเพมคอนฟกใหเปนดงน
6.5 การคอนฟกบายไนนเพอเปนออธอรเอธฟดเอนเอสเซรฟเวอรการกำาหนดใหโปรแกรมบายดไนน เปนออธอรเอธฟดเอนเอสเซรฟเวอรสำาหรบโดเมน จะตองมขอมลของโดเมนหรอในกรณของบายดจะเรยกวาโซน (zone) เกบเอาไวใหโปรแกรมเนมดเดมอน(named daemon) สามารถเอาขอมลมาใชได ขอมลของโซนอาจจะเกบอยในฐานขอมลบนดาตาเบสเซรฟเวอร (Database Server) หรออาจจะเกบเปนไฟล ในตวอยางจะแสดงวธการเกบขอมลของโนไฟล เพราะเปนวธการทไมยงยากเทาการเกบขอมลลงในฐานขอมล และยงเปนวธการทนยมใชในปจจบน
โซน ไฟล (zone file) ซ ง ใ ช ใ น ก า ร เ ก บข อ ม ล ขอ ง โ ด เ มน เหล า น อ ย ใ น ไ ด เร คตอ ร/var/cache/bind ในไฟล คอนฟกของดเอนเอสเซรฟเวอร /etc/bind/named.conf.local จะระบวาดเอนเอสเซรฟเวอรมอำานาจ (Authorized) ในการใหบรการขอมลสำาหรบโดเมนหรอโซนใด
options { directory "/var/cache/bind"; authnxdomain no; # conform to RFC1035 listenonv6 { any; }; };
options { directory "/var/cache/bind"; authnxdomain no; # conform to RFC1035 listenonv6 { any; }; recursion yes; forward only; forwarders { 192.100.77.5; # ns.psu.ac.th 192.100.77.2; # ns2.psu.ac.th }; };
และขอมลของโดเมนหรอโซนนนเกบอยในโซนไฟลใด ตวอยางของไฟล named.conf.local มขอมลดงน
จากในตวอยางดเอนเอสเซรฟเวอรจะเปนออธอรเอธฟดเอนเอสเซรฟเวอรของโดเมนหรอโซนcoe.psu.ac.th ซงขอมลในโซนนจะเปนขอมลของการแปลงจากชอคอมพวเตอรเปนไอพแอดเดรส สวนโซน 250.168.192.in-addr.arpa จะใชสำาหรบการคนขอมลยอนกลบ (ReverseLookup) โดยจะแปลงจากไอพแอดเดรสกลบเปนชอเครองคอมพวเตอรโดเมนเนมแบบเตม(FQDN) ซงในกรณของการคนขอมลแบบยอนกลบน การกำาหนดชอโซนไฟลในลกษณะของตวเลขไอพแอดเดรสแบบยอนกลบหลง กลาวคอเปน “250.168.192” แลวตอดวย “.in-addr.arpa”ดงกลาว กจะเปนการกำาหนดขอบเขตของไอพแอดเดรส ในโซนไฟลซงดเอนเอสเซรฟเวอรสามารถใหบรการคนขอมลแบบยอนกลบได โดยไอพแอดเดรสเหลานนกจะอยในชวง 192.168.250.0/24
จากคอน ฟก ใน ต วอย า ง ข า ง ตนข อม ลของ โ ด เ มน coe.psu.ac.th จะ เ กบอย ใ น ไฟลdb.coe.psu.ac.th โดยทไฟลนจะมลกษณะเปนเทกซไฟล (text file) โดยขอมลตวอยางมดงน
และตวอยางของโซนไฟล db.250.168.192.in-addr.arpa ซงใชในการคนหายอนกลบ มดงน
// Forward Lookup for domain coe.psu.ac.th zone "coe.psu.ac.th" { type master; file "db.coe.psu.ac.th"; };
// For Reverse Lookup IP Address in 192.168.250/24 zone "250.168.192.inaddr.arpa" { type master; file "db.250.168.192.inaddr.arpa"; };
$ORIGIN coe.psu.ac.th. $TTL 4H ; @ IN SOA ns.coe.psu.ac.th. root.coe.psu.ac.th. ( 2011060901 ; serial 4H ; refresh 1H ; retry 4W ; expiry 4H ; minimum ) ; Name Servers @ IN NS ns.coe.psu.ac.th. ; A Records gw IN A 192.168.250.1 ns IN A 192.168.250.2 dhcp IN A 192.168.250.3 router1 IN CNAME gw.coe.psu.ac.th. router2 4W IN A 192.168.250.253
ซงสามารถอธบายแตละสวนไดตามน
• $ORIGIN จะใชระบสวนของโดเมน ในการอางถงชอโฮสตเนม (hostname) ใดๆในไฟลน ถาไมไดจบดวย ’.’ กจะถกตอทายดวยโดเมนน เชน ในบรรทด
จะมความหมายเดยวกนกบ
นอกจากนเครองหมาย ’@’ ทจะปรากฏตอไปในไฟล จะใชแทน $ORIGIN ทกำาหนดเอาไว ในกรณทไมมการกำาหนดคา $ORIGIN กจะใชชอโซนซงระบอยในไฟล named.conf.local
• $TTL คอ Time-To-Live ระบคาอายโดยปรยายของเรคคอรด (Record) ของขอมลทปรากฏอยในไฟลน คาททแอล (TTL) จะเปนการกำาหนดอายการใชงานของขอมลหลงจากถกรองขอ ถาไมมการระบหนวยของททแอล จะมหนวยเปนวนาท ถาตองการระบหนวย อาจจะใชคาตอไปน
• S - Second
• M - Minute
• H - Hour
• D - Day
• W - Week
$ORIGIN 250.168.192.inaddr.arpa. $TTL 4H ; @ IN SOA ns.coe.psu.ac.th. root.coe.psu.ac.th. ( 2011060901 ; serial 4H ; refresh 1H ; retry 4W ; expiry 4H ; minimum ) ; Name Servers @ IN NS ns.coe.psu.ac.th. ; PTR Records 1 IN PTR gw.coe.psu.ac.th. 2 IN PTR ns.coe.psu.ac.th. 3 IN PTR dhcp.coe.psu.ac.th. 253 4H IN PTR router2.coe.psu.ac.th.
gw IN A 192.168.250.1
gw.coe.psu.ac.th. IN A 192.168.250.1
คาเรคคอรดใดไมไดกำาหนดคาททแอลในบรรทดนนๆ กจะใชคาปรยายน
ดเอนเอสเรคคอรด (DNS Record) สามารถระบคาททแอลได โดยระบคากอนคยเวรด (keyword) IN เชนจากตวอยาง เรคคอรดของ router2 จะมคาททแอลเทากบ 4 สปดาหแทนทจะเปนคาปรยาย 4 ชม เหมอนกบ เรคคอรดอนๆ
• เอสโอเอเรคคอรด (SOA Record) จะระบผมอำานาจ (Authority) ของขอมลในโซนน ซงขอมลหลง SOA จะเปนโฮสตเนม (hostname – จากตวอยางคอ ns.coe.psu.ac.th) และอเมลแอดเดรส (e-mail address – จากตวอยางคอ [email protected] – โดย ’.’ ตวแรกจะถกแทนดวย ’@’ เพอ เปนการระบอเมลแอดเดรส ซงไมสามารถใช ’@’ ได เพราะเครองหมาย ’@’ ถกใช แทน $ORIGIN ใน ขอกำาหนดรปแบบของโซนไฟล) ของผทดแลขอมลน สวนคาทอยในเครองหมายวงเลบกจะเปนคาของ
• Serial เปนตวเลขขนาด 32 บทเพอใชระบเวอรชน (version) ของขอมล
โดยทวไปจะนยมกำาหนดในรป YYYYMMDDXX โดยท YYYY คอป คศ. MM คอเดอน DD คอวนท และ XX คอครงทแกไขในวนนนๆ
จากตวอยาง serial คอ 2011060901 นนคอ การแกไขครงสดทายเกดขนในวนท2011-06-09 และเปนการแกไขครงแรก (01) ในวนนน
• Refresh เวลาทดเอนเอสเซรฟเวอรสำารอง (Secondary DNS Server) ควรจะอานขอมลโซนมาจากดเอนเอสเซรฟเวอรหลก (Primary DNS Server) มาใหมเพอใหไดขอมลททนสมย
• Retry เวลาสำาหรบดเอนเอสเซรฟเวอรสำารองจะตองรอกอนพยายามอานขอมลครงใหม ถาการอานขอมลครงแรกของการรเฟรช (Refresh) ไมสำาเรจ
• Expiry เวลาทถอวาขอมลในโซนทมอยบนดเอนเอสเซรฟเวอรสำารองเชอถอไมไดถาไมสามารถรเฟรชได
• Minimum คานอยทสดของททแอลในโซนน
• เอนเอสเรคคอรด (NS Record) จะเปนการระบวา สำาหรบโดเมนนนดเอนเอสเซรฟเวอรทเปนแหลงขอมลนนคอเซรฟเวอรใด เชนจากตวอยาง
router2 4W IN A 192.168.250.253
เปนการระบวาสำาหรบโดเมน coe.psu.ac.th ดเอนเอสเซรฟเวอรคอ ns.coe.psu.ac.th. ในกรณทมโดเมนยอยภายใน coe.psu.ac.th เชนม student.coe.psu.ac.th เปนโดเมนยอยกสามารถระบไดดงน
หรอ
การระบเอนเอสเรคคอรดควรจะระบเปนชอ ดงนนจะตองม A Record (หรอ AAAA Record สำาหรบ ไอพเวอรชนหก) สำาหรบระบแอดเดรสของดเอนเอสเซรฟเวอรของโดเมนยอยนนดวย
• เอเรคคอรด (A Record) เชน
จะ เป นการระบ ไ อ พแอด เดรส เวอร ช นส (IPv4 Address) ของ ชอ โฮส ตน นๆ ใน ทนgw.coe.psu.ac.th. จะม ไอพแอดเดรสเปน 192.168.250.1
• พทอารเรคคอรด (PTR Record) ซงจะใชในรเวอรสโซน (Reverse Zone) เชน
• ซเนมเรคคอรด (CNAME Record) สำาหรบระบ Canonical Name ซงเปนการระบวาชอโฮสตเนมน จะเปนชอสมนามของโฮสตเนมใด
รายละเอยด ของการกำาหนดคาตางๆในโซนไฟลสามารถดไดจาก rfc103525
6.6 การตรวจสอบความถกตองของคอนฟกและโซนไฟลเนองจากการตดตงดเอนเอสเซรฟเวอร มรายละเอยดของการกำาหนดคาคอนฟกตางๆอยมาก รวมทงขอมลในโซนไฟลตางๆกจะมขอมลจำานวนมากเชนเดยวกน สำาหรบเครอขายขนาดใหญมคอมพวเตอรจำานวนมากและตองการเกบขอมลตางๆไวในโซนไฟล กระบวนการแกไขคอนฟกและโซนไฟลอาจจะมขอผดพลาดเกดขนได ถาการแกไขขอมลเหลานใชวธการแบบแมนวล อยางไร
25 http://www.ietf.org/rfc/rfc1035.txt
@ IN NS ns.coe.psu.ac.th.
student IN NS std.coe.psu.ac.th. std IN A 192.168.200.200
student.coe.psu.ac.th. IN NS std.coe.psu.ac.th. std.coe.psu.ac.th. IN A 192.168.200.200
gw IN A 192.168.250.1
1 IN PTR gw.coe.psu.ac.th. 2 IN PTR ns.coe.psu.ac.th.
กตามมเครองมอหลายอยางซงจะชวยในการตรวจสอบความถกตองของขอมลในไฟลเหลาน
การตรวจสอบคอนฟกไฟลใชคำาสง
ถามขอผดพลาดหรอสวนทอาจจะทำาใหเกดมปญหาในคอนฟกไฟล คำาสง named-checkconfกจะพมพขอความเตอนออกมา ถาหากคอนฟกทงหมดถกตองกจะไมพมพขอความใดๆ
ในการเรยกใช named-checkconf แบบไมระบตวเลอก (option) คำาสง named-checkconfจะตรวจสอบเฉพาะคอนฟกไฟล แตจะไมตรวจสอบขอมลของโซนไฟล ถาเพมตวเลอก ’-z’ ในคำาสงดงน
กจะทำาให named-checkconf อานและตรวจสอบโซนไฟลดวย
แตอยางไรกตาม ในหลายกรณเมอตดตงดเอนเอสเซรฟเวอรเสรจเรยบรอยแลว การแกไขขอมลมกจะทำาเฉพาะโซนไฟล ไมไดมการแกไขคอนฟกไฟล ถาตองการตรวจสอบเฉพาะโซนไฟลจะใชคำาสงnamed-checkzone ดงน
เชน
6.7 การตรวจสอบการทำางานของดเอนเอสเซรฟเวอรการตรวจสอบการทำางานของเนมเซรฟเวอรสามารถใชคำาสง host หรอ dig ตวอยางเชน
คำาสงแรก (ใชตวเลอก ’-a’) จะรองขอขอมลทงหมดของ gw.coe.psu.ac.th สวนคำาสงทสอง (ใชตวเลอก ’-t a’) จะรองขอเฉพาะขอมลเอเรคคอรด (A Record) ของ gw.coe.psu.ac.th ซงทงสองคำาสงจะสง คำารองไปยงดเอนเอสเซรฟเวอร ซงกำาหนดไวในไฟล /etc/resolv.conf ของคอมพวเตอรซงใชยนกซเปนระบบปฏบตการ
ในกรณทตองการระบวาตองการสงคำารองขอไปยงดเอนเอสเซรฟเวอรอนใด กสามารถระบดเอน
namedcheckconf /etc/bind/named.conf
namedcheckconf z /etc/bind/named.conf
namedcheckzone zonename filename
namedcheckzone coe.psu.ac.th. /var/cache/bind/db.coe.psu.ac.th
host a gw.coe.psu.ac.th host t a dhcp.coe.psu.ac.th
เอสเซรฟเวอรนนไดโดยใชชอโดเมนเนมแบบเตม (FQDN) หรอไอพแอดเดรสได ตามตวอยางดงน
นอกเหนอจากคำาสง host ซงใชในการสงคำารองขอครงละ 1 เรคคอรดแลว กยงมคำาสง dig ซงจะสามารถควบคมการสงคำารองขอซงสงไปยงดเอนเอสเซรฟเวอรไดมากกวาคำาสง host เชนตองการทจะตรวจสอบ การทำาโดเมนทรานสเฟอร (Domain Transfer) จะใชตวเลอก axfrสำาหรบคำาสง dig ดงตอไปน
อยางไรกตามในการใชคำาสงทงสองในการตรวจสอบดเอนเอสเซรฟเวอร มรายละเอยดวธการใชงานอกมาก ซงสามารถอานไดจาก man page ของทงสองคำาสง
host a gw.coe.psu.ac.th ns.coe.psu.ac.th host t a dhcp.coe.psu.ac.th 192.168.250.2
dig a @192.168.250.2 ns.coe.psu.ac.th axfr
บทท 7 การตดตงเมลเซรฟเวอร (Mail Server)
7.1 เมลเซรฟเวอร (Mail Server)อเลคทรอนคสเมล (Electronics Mail) หรอ e-mail นบเปนแอพลเคชนแรกๆ ทมใชงานบนระบบเครอขาย และมอยกอนการถอกำาเนดของเครอขายอนเทอรเนตแบบทรจกกนอยในปจจบนสำาหรบอเลคทรอนคสเมลทใชงานบนเครอขายอนเทอรเนท เองกมการพฒนาและเปลยนแปลงมากในชวงเวลาเกอบสทศวรรษ26 ทมการรบสง e-mail บนเครอขายอนเทอรเนท
วธการระบตวตนของผใชตองการรบสงเมลจะใช ทอย ทเรยกวาอเมลแอดเดรส (e-mail address)ซงประกอบดวยชอผใชและโดเมน การระบแอดเดรสเขยนโดยใชตวอกษร '@' คนระหวางชอและโดเมน อยในรป ชอ@โดเมน เชน [email protected] จะประกอบไปดวยชอผใชคอ cj ซงใชอเลคทรอนคสเมลในโดเมน coe.psu.ac.th ตวอยางอเมลแอดเดรสอนๆ เชน [email protected],[email protected] ซงจะมชอของผใชอเลคทรอนคสเมล ชอเดยวกนคอ chatchai.j แตถอวาเปนอเมลแอดเดรสทตางกน เพราะมชอโดเมนทตางกน คอ psu.ac.th และ gmail.comตามลำาดบ
ระบบซงใชการแลกเปลยนอเลคทรอนคสเมลระหวางผใชงานเหลานจะมชอเรยกวา MessageHandling Services (MHS) รปท 8: การแลกเปลยนอเลคทรอนคสเมลระหวางโดเมน
26 http://tools.ietf.org/html/rfc5598
ในระยะแรกเรม รปแบบของการรบสงอเลคทรอนคสเมลในระบบน แตละโดเมนจะมเครองคอมพวเตอร ซงทำาหนาทเปนเมลเซรฟเวอร มหนาทสองอยางในเวลาเดยวกนคอ รบ /สง หรอแลกเปลยนอเลคทรอนคสเมลกบเมลเซรฟเวอรตวอนๆ เชนสมมตให ผใชซงมอเมลแอดเดรสเปน[email protected] ตองการสงอเลคทรอนคสเมลใหกบผใช [email protected]
โปรแกรมซงใชในการอานและสราง/แกไขอเลคทรอนคสเมล จะเรยกวาเมลยสเซอรเอเจนท (MailUser Agent – MUA) ซงโดยทวไปแลวตวโปรแกรมจะไมไดทำาหนาทสงอเลคทรอนคสเมลใหกบผรบเอง แตจะสงตอใหกบโปรแกรม ทเรยกวาเมลทรานสเฟอรเอเจนท (Mail Tranfer Agent –MTA) ซ งจะมลกษณะเปน โปรแกรมแบบเดมอน (daemon) ททำา งานเปน เบ องหล ง(background process) คอยรบอเลคทรอนคสเมลจากเมลยสเซอรเอเจนท (MUA) เพอสงออกไปใหกบเมลทรานสเฟอรเอเจนท (MTA) ปลายทาง และในเวลาเดยวกนกรอรบการ ตดตอจากเมลทรานสเฟอรเอเจนท (MTA) อนๆทตองการสงอเลคทรอนคสเมลมาใหผใชในโดเมนน ดงแสดงในรป 54
รปท 7: การแลกเปลยนอเลคทรอนคสเมลระหวางผใช
ดงนนจากในตวอยาง ผใช [email protected] ใช MUA สำาหรบการรบสง mail เชน
• mail, mailx
• alpine (pine)27
• mutt28
สำาหรบการ edit และสง mail ซงตวโปรแกรมเหลานกจะสงตอใหกบตว MTA ซงรจกกนในอกชอหนงวา SMTP Server เนองจากใชโปรโตคอล SMTP29 ในการสอสารกบ MTA หรอ SMTPServer อนๆ ตวอยางของ SMTP Server ทนยมใชกนอยกคอ
• Sendmail Server30
• Exim Server31
27 http://www.washington.edu/alpine/28 http://www.mutt.org/29 http://en.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol30 http://www.sendmail.org31 http://www.exim.org
รปท 8: การแลกเปลยนอเลคทรอนคสเมลระหวางโดเมน
• Postfix Server32
• Courier SMTP Server33
ซงในขนตอนของการสง e-mail ตว MUA เชน pine หรอ mail จะตดตอกบ SMTP Server โดยใช โปรโตคอล SMTP เชนเดยวกบท SMTP Server ของ domain ผสง (coe.psu.ac.th) ใชในการตดตอ กบ SMTP Server ของ domain ปลายทาง (psu.ac.th) ซงนนคอ MUA เหลานอาจจะตดตอกบ SMTP Server ปลายทางไดโดยตรง แตในหลายกรณทตว MUA อาจจะไมไดทำางานอยบนตว Server เดยวกนกบ MTA และตว เครองของ MUA อาจจะไมไดเปดใชงานตลอดเวลา(เชนเปนเครอง Desktop ของผใช ไมใช Server) ดงนนในการใชงานจะใชวธการสงตอใหกบ MTAหรอ SMTP ของหนวยงานนนมากกวา
ในขนตอนของการรบ e-mail ตว SMTP Server ปลายทาง (psu.ac.th) กจะรบการตดตอจากSMTP Server ตนทาง และถาม account ทกำาหนดใหเปนผรบใน domain อยจรงกจะจดเกบ(หรอสงตอ) ใหกบผใชทเปนเจาของ account นน
ผรบเมอมามาอาน e-mail กจะใชโปรแกรม MUA สำาหรบอาน e-mail ทไดรบมา
ในรปแบบดงเดมนน Mailbox หรอแหลงสำาหรบเกบ e-mail ทไดรบมาจะอยบน SMTP Serverและ ผรบ e-mail กจะใชโปรแกรม MUA ซงทำางานอยบน SMTP Server และเขาถง mailboxนนๆได โดยตรง
Mailbox ในสมยแรกๆ กจะใชเปนรปแบบไฟล 1 ไฟลสำาหรบเกบ e-mail หลายฉบบ e-mail ทสงมา แลวผรบยงไมไดอานกจะจดเกบไวใน mailspool ซงในสมยแรกๆกคอ directory/var/spool/mail และมไฟลทใชชอเดยวกนกบ account ของเจาของ mail อยใน directoryนน ยกตวอยางเชน mail ของ cj กจะเปนไฟล /var/spool/mail/cj และ mail ของ chatchai.jกจะมชอวา /var/spool/mail/chatchai.j ในสมยหลงๆ mail spool directory บนบางระบบ(เชน Debian) กจะยายมาเกบไวใน /var/mail แทน
ในรปแบบของการเกบ mail ในไฟลเดยวกน ซงเรยกรปแบบ (format) ของการเกบ mail แบบนวา mailbox หรอ mbox34 จะมปญหาตามมากคอ เมอขนาดของ storage มขนาดใหญขนในราคาถกลง และความเรวของการสงขอมลผานเครอขายสงขน ขนาดของ e-mail แตละฉบบกจะมขนาดมากขนตามไปดวย รวมทงจำานวนของ e-mail ทรบสงกนมากขน รวมทงปญหาของ SPAM
32 http://www.postfix.org33 http://www.courier-mta.org34 http://en.wikipedia.org/wiki/Mbox
Mail ทำาใหการใชวธการเกบ mail แบบ mbox เรมกอใหเกดปญหากบ การทำางานอยางอนๆ เชนระบบการ backup ขอมล หรอการใช โปรแกรมสำาหรบตรวจสอบ virus/mulware/spywareจาก e-mail เหลาน เนองจากในแตละ e-mail ทมการ สงมาจะทำาใหไฟล mail ของผใชนเปลยนไป ถงแมวาจะมสวนทเปลยนแปลงเพยงนอยนด แตกระบวนการทำางาน ของการ backup หรอการ scan เพอตรวจสอบเหลานกตองเรมตนทำาใหมทงหมด เพราะไมสามารถแยกแยะ ความเปลยนแปลงทเกดขนได
ดงนนในยคหลงจงมการพฒนารปแบบของการเกบ e-mail แบบใหมซงเรยกกนวาเปนแบบMaildir35 ซงจะใช directory สำาหรบการเกบ e-mail โดย e-mail แตละฉบบจะเกบเปนไฟล 1ไฟล ถามการรบ mail เพม กจะสรางไฟลเพมขนมาอก 1 ไฟล สวน e-mail ฉบบใหนถกลบทงกขะเปนการลบไฟลนนไป 1 ไฟล
วธการนทำาใหการจดการในเรองของการ backup และ scan virus/mulware/spyware ทำางานไดอยาง สะดวกขนมาก SMTP Server ทเปนทนยมใชงานกนสวนใหญจะรองรบทง Maildir และmbox format แตอยางไรกตาม รปแบบทเปนการจดเกบโดยปรยายสวนใหญแลวจะยงคงใชแบบmbox อย เนองจาก เปนวธการทใชงานมานานกวา
นอกเหนอจากในสวนของการจดเกบ mail แลว ในชวงหลงๆเมอคอมพวเตอร ราคาถกลงและมใหใชงานได แพรหลายกนมากขน ผใชงานสามารถมคอมพวเตอรสวนบคคล ซงไมไดเปดใชงานตลอดเวลา และอาจจะเคลอน ยายจากเครอขายหนงไปอกเครอขายหนงได แตผใชงานมกจะใชคอมพวเตอรสวนตวนในการ อานและสง e-mail ในขณะทการทจะให SMTP Server ทำางานอยบนเครองคอมพวเตอรสวนตวจะเปนเรองไมสะดวก เพราะตว SMTP Server จะไมสามารถทำางานไดตลอกเวลา ดงนนเครองของผใชกจะใช SMTP Server ของหนวยงานในการรบ/สง e-mail ไปยง SMTP Server ปลายทางแบบเดม แตในขนตอนของการอาน e-mail ทสงมาจะสะดวกวาทจะจดการบนเครองคอมพวเตอรสวนตวนน
ดงนนจงมการพฒนาโปรโตคอลและ Server สำาหรบการดงขอมล e-mail ซงเกบอยบนตวServer ใหมา เกบบนเครองคอมพวเตอรสวนตว ซงโปรโตคอลนนคอ POP336 และในชวงตอมาเนองจาก ขอจำากดในการเขาถงเนอหาและตองการลดการสงขอมลทไมจำาเปนกมการพฒนาโปรโตคอล IMAP37 ขนมา ซงกจะม Server สำาหรบใชในการรบ/สงขอมลตามทกำาหนดไวทงสองโปรโตคอล และเรยกชอวา POP3 Server และ IMAP Server ตามลำาดบ รปแบบของการเขาถงและการรบ/สง e-mail และ ความสมพนธกนของ SMTP Server, IMAP/POP3 Server กจะ35 http://en.wikipedia.org/wiki/Maildir36 http://en.wikipedia.org/wiki/Post_Office_Protocol37 http://en.wikipedia.org/wiki/Internet_Message_Access_Protocol
แสดงดงรป 57
ถงแมในแงของการรบ e-mail โปรโตคอล IMAP จะมประสทธภาพมากกวา POP3 แตทงสองโปรโตคอล กยงเปนทนยมใชอยในระดบใกลเคยงกน ตว MUA สมยใหมทมลกษณะเปน GUI mailreader อยางเชน
• Mozilla Thunderbird
• Evolution
• KMail
• Eudora
• Opera Mail
• Mail (OS X)
กจะรองรบทงสองโปรโตคอลใหผใชสามารถเลอกใชงานได และตว Mail Server ซงใชในการสงe-mail จาก Mail Spool สงไปใหผใช กจะรองรบทงสองโปรโตคอลเชนเดยวกน เชน
• Dovecot Mail Server38
• Courier IMAP/POP3 Server39
สำาหรบในทนจะเลอกใช Exim สำาหรบเปน SMTP Server เนองจากจะเปน Mail Server ปรยาย38 http://www.dovecot.org39 http://www.courier-mta.org
รปท 9: การรบสงอเลคทรอนคสเมลระหวางเมลเซรฟเวอรกบผใช
ทตดตงบน Debian และ Dovecot สำาหรบ IMAP/POP3 Server เนองจากจะเปน Server ทรองรบ ทง mailbox และ Maildir format ในการเกบ e-mail
7.2 การตดตงเอกซมเอสเอมทพเซรฟเวอร (Exim SMTP Server)ในการตด ตง Debian บนคอมพวเตอร โดย ทว ไป 40 จะมการ ตด ตง package ท ชอ วาmail-transport-agent รวมอยดวยแลว เพราะวธการสอสารพนฐานระหวางระบบ กบ SystemAdministrator ของระบบ (หรอ root account) จะใชวธการสอสารผาน e-mail และ Eximเปน mail-transport-agent โดยปรยายของ Debian เพราะฉะนน Exim SMTP Server อาจจะตดตงอยบนระบบแลว เพยงแตการ config จะใชสำาหรบการ สง mail แบบ local เทานน
อยางไรกตาม ผดแลระบบสามารถตดตง package exim เพมได ในกรณทยงไมม package นตดตงอย โดยการใชคำาสง
โดยคา default config ของ Exim จะเปนการตดตงแบบ local นนคอจะรบ/สง e-mail ระหวางaccount บนเครองคอมพวเตอรเดยวกนเทานน แตจะไมสง mail หรอรบ mail จากภายนอกเพอเปนการ ปองกนการใช SMTP Server ในการ relay e-mail เพอสง SPAM
แตสามารถปรบแก config ของ Exim เพอให รบ/สง mail กบ SMTP Server อนๆได โดยการใชคำาสง
ห ร อ อ า จ จ ะ ใ ช ว ธ ก า ร แ ก ไ ข configurtion ไ ฟ ล โ ด ย ต ร ง โ ด ย Exim4 จ ะ ใ ช ไ ฟ ล/etc/exim4/update-exim4.conf.conf เปน config หลก เมอมการสง start หรอ restartservice ของ exim4 กจะไปสราง configuration ของ exim ทจะใชงานจรงขนมาแทน ซงสำา หร บการ ใช ง าน เป น SMTP Server แบบ ท ว ไปแล ว ก ส ามา รถแ ก ไข เ ฉพาะ ไฟลupdate-exim4.conf.conf นกได
นคอตวอยาง config ไฟลเมอตดตงโดยปรยาย
40 ยกเวนในกรณทเปนการตดตงแบบ minimum ซงจะมเฉพาะโปรแกรมพนฐานเทานน
aptget install exim4
dpkgreconfigure exim4config
ซงคา config ทสำาคญและอาจจะตองเปลยนแปลงได มดงตอไปน
• dc_eximconfig_configtype
เปนคาทใชกำาหนดวา Server จะทำางานในลกษณะใด ซงมตวเลอกทสำาคญดงน
• internet ใชในการตดตอกบ SMTP Server อนบน internet
• smarthost จะรบ e-mail ทสงมาจาก SMTP Server อนๆ แต ในขนตอนสง จะสงไปยงSMTP Server ซงจะทำาหนาทสงตอ (relay) e-mail ไปยง SMTP Server ปลายทาง
• satellite จะไมรบ e-mail สวนการสง จะใชวธการ relay เชนเดยวกน กบ smarthost
• local ใชรบสง mail เฉพาะผใชงานบนเครองเดยวกนเทานน
สำาหรบ การใชงานเปน SMTP Server ของหนวยงานแลวกจะใช configtype เปน internet ในหนวยงานหนงๆ อาจจะม SMTP Server เพยงตวเดยวทใชในการตดตอ กบ SMTP Server อนๆทอยตาง domain ออกไป สวนคอมพวเตอรเครองอนๆ อาจจะ ตดตง SMTP Server เอาไว แตกำาหนด configtype ใหเปน smarthost และสง ตอ (relay) e-mail มาท SMTP Server หลกเครองน
วธการนจะชวยให การควบคม e-mail ทสงออกนอกหนวยงาน/domain ทำา ไดดขน และสามารถปองกนการใช SMTP Server ของหนวยงานสำาหรบการสง SPAM จาก malware หรอกรณผดปกตอนๆ
• dc_other_hostnames
dc_eximconfig_configtype='local' dc_other_hostnames='' dc_local_interfaces='127.0.0.1 ; ::1' dc_readhost='' dc_relay_domains='' dc_minimaldns='false' dc_relay_nets='' dc_smarthost='' CFILEMODE='644' dc_use_split_config='false' dc_hide_mailname='' dc_mailname_in_oh='true' dc_localdelivery='mail_spool'
dc_eximconfig_configtpe="internet"
ในกรณทวไป SMTP Server จะรบ e-mail ทสงถง address ทเปนชอแบบ FQDN ของ ตนเองเทานน เชน ถาใน DNS record กำาหนดให SMTP Server ม IP Address ดงน
SMTP Server กจะรบ e-mail ทสงถงผใช ทม account หรอม e-mail alias อยบน Serverเทานน เชน [email protected] หรอ [email protected]
แตในการใชงาน e-mail โดย ทวไป e-mail address จะนยมระบ เฉพาะ domain เชน[email protected] หรอ [email protected] (โดยตด ’smtp’ ซงเปนชอของ Server ออก)เพอให e-mail สนลง และไมจำาเปนตองผกตดอยกบเครองใดเครองหนง
dc_other_hostnames จะใชสำาหรบการกำาหนดวา นอกเหนอจาก e-mail ทสงแบบ จำาเพาะเจาะจงถง FQDN ของ Server เองแลว จะม address อนทจะถอวาใหสงมา ท SMTP Server นอกหรอไม
ซงในกรณตวอยาง ถาตองการให SMTP Server รองรบการสงมาถง domain "coe.psu.ac.th"ดวย กสามารถกำาำหนดคาของ dc_other_hostnames ไดเปน
• dc_local_interfaces
เปนสวนของการกำาหนดวา SMTP Server จะรบการตดตอจาก Network Interface หรอ IPAddress ใดบาง ในกรณทตว Server มหลาย IP Address หรออาจจะใช เปนการกำาหนดใหไมรบตดตอจาก SMTP Server ภายนอกโดยการกำาหนดใหรบการตดตอ เฉพาะ LoopbackAddress
สำาหรบกรณทจะใชงานคอใหตดตอจาก SMTP Server ใดๆกได กใหกำาหนดเปนคาวาง ดงน
• dc_relay_domains
ใชสำาหรบในการกำาหนดให SMTP Server ทำาหนาทเปน Mail Exchanger ใหกบ domain อนๆ
smtp.coe.psu.ac.th A 172.30.0.5
dc_other_hostnames="coe.psu.ac.th"
dc_local_interfaces=""
เชน SMTP Server smtp.coe.psu.ac.th อาจจะถกกำา หนดให เปน Mail Exchanger ของdomain eng.psu.ac.th โดยมการกำาหนดใน DNS record ของ domain eng.psu.ac.th ดงตอไปน
ในกรณ SMTP Server ทตองการสง e-mail ไปยง domain @eng.psu.ac.th แต ไมสามารถตดตอกบ SMTP Server ของ eng.psu.ac.th ได (เชน Server Down อยในขณะนน) กจะใชMail Exchanger ถดไป ซงในกรณนคอ smtp.coe.psu.ac.th
ซง mail ทสงมา ยง smtp.coe.psu.ac.th กจะม address ของผรบเปน @eng.psu.ac.th ซงไมไดเปน account หรอ aliases ของ smtp.coe.psu.ac.th เอง ตว smtp.coe.psu.ac.th กจะพกmail นนเอาไว และคอยพยายามสงตอใหกบ SMTP Server ของ eng.psu.ac.th จนกวาจะสำาเรจ หรอ จนกวาจะเกนเวลาทกำาหนดไว ซงในกรณนน กจะ drop mail นนทงไปและสง errormail message กลบไปยงผสง
สำาหรบคา config ของ dc_relay_domains ตามตวอยางน คอตองการให SMTP Server เปนrelay ใหกบ domain @eng.psu.ac.th ดวยกสามารถกำาหนดคาไดดงน
สวนคาโดยปรยาย ซงไมมการ relay ให domain ใดๆ กจะเปนคาวางดงน
• dc_minimaldns
ใชสำาหรบกำาหนดวา ในการ lookup IP Address จาก DNS จะพยายามใหนอยทสดหรอไมสำาหรบ SMTP Server โดยทวไปซงไมปญหาในการตดตอกบ DNS Server กสามารถกำาหนดคานเปน "false" ได
eng.psu.ac.th. MX 20 mail.eng.psu.ac.th eng.psu.ac.th. MX 30 smtp.coe.psu.ac.th
dc_relay_domains="eng.psu.ac.th"
dc_relay_domains=""
dc_minimaldns="false"
• dc_relay_nets
ใชสำาหรบกำาหนดคา Network Address ทตว SMTP Server จะรบหนาทสงตอ (relay) ใหกบคอมพวเตอรในเครอขายนนๆ
เชนตองการให Server smtp.coe.psu.ac.th ซงเปน SMTP Server ของภาควชา วศวกรรมคอมพวเตอร รบ e-mail ทสงมาจากคอมพวเตอรภายในเครอขายของภาควชาฯ ทงหมด (ซงจะอยใน network 172.30.0.0/22) และ relay ตอไปยง SMTP Server ปลายทางได กสามารถกำาหนดคา dc_relay_nets ดวน
• dc_smarthost
ใชสำาหรบในกรณท dc_eximconfig_configtype เปน satellite หรอ smarthost กจะใชคานระบ FQDN หรอ IP Address ของ SMTP Server ทจะรบหนาทสงตอ e-mail
ตวอยาง SMTP Server ซงทำา หนาทเปน Smart Host ของคอมพวเตอรในเครอขายของมหาวทยาลยสงขลานครนทรทงหมดกคอ smtp.psu.ac.th
• dc_use_split_config
ค า config น ใ ช สำา ห ร บ ร ะ บ ว า template ข อ ง config ข อ ง exim จ ะ ใ ช จ า ก ไ ฟ ล/etc/exim4/exim4.conf.template ซงเปนไฟลเดยว หรอ จะแบงยอยเปนหลายไฟล และเกบอยใน directory /etc/exim4/conf.d
ต ว config จ ร ง ท exim4 daemon จ ะ อ า น ไ ป ใ ช จ ะ เ ก บ อ ย ใ น ไ ฟ ล/var/lib/exim4/config.autogenerated แตไฟลจะสรางขนโดยอตโนมต จาก template ใน/etc/exim4 ซงจะเปนไฟล template เดยว หรอจะใช template ซงแบงยอยเปนหลายไฟล กขนอยกบการเลอก config ตวน
สำาหรบ config นของแนะนำาใหใชแบบ แบงเปน configuration ยอย ซงสามารถกำาหนดคาไดดงน
dc_relay_nets="172.30.0.0/22"
dc_use_split_config="true"
• dc_localdelivery
กำาหนดวารปแบบของการเกบ mail ทสงมาถง account บน Server จะเปนแบบ mbox หรอMaildir ซงสามารถกำาหนดไดดงน
สำาหรบการเกบ mail ในลกษณะ mbox
สำาหรบการเกบ mail ในลกษณะ Maildir
config หลกของ exim4 จะถกสรางขนมาใหมเมอมการ restart exim4 service ซงจะใชขอมลจาก config ใน update-exim4.conf.conf ไปสรางแกไข macro ซงกำาหนดไวใน templatefile (หรอ directory ในกรณทใช split config) ซง สำาหรบ SMTP Server ซงใชในการตดตอกบPublic internet โดยทวไปกจะ สามารถใชงานไดทนท แตสำาหรบ SMTP Server ซงใชงานในหนวยงานขนาดใหญ อาจจะมการใช Private IP Address ภายในหนวยงาน และตว EximServer อาจจะตองรบ/สง e-mail กบ SMTP Server เหลานนซงใช Private IP Address ดวยในกรณน จะตองไปแกไข config dnslookup ใน template ซงมการกำาหนด IP Address ทใหตว Exim Server ไมสง mail ให นนคอ config ทชอวา ignore_target_hosts ซงอยในสวนของrouter ท ช อ ว า dnslookup ใ น ก ร ณ ข อ ง split config จ ะ อ ย ใ น ไ ฟ ล/etc/exim4/conf.d/router/200_exim4-config_primary สำาหรบ config แบบธรรมดาจะอยในไฟล /etc/exim4/exim4.conf.template ซงจะมขอมลดงตอไปน
dc_localdelivery="mail_spool"
dc_localdelivery="maildir_home"
... dnslookup: debug_print = "R: dnslookup for $local_part@$domain" driver = dnslookup domains = ! +local_domains transport = remote_smtp same_domain_copy_routing = yes # ignore private rfc1918 and APIPA addresses ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8 : 192.168.0.0/16 :\ 172.16.0.0/12 : 10.0.0.0/8 :\ 169.254.0.0/16 : 255.255.255.255 ...
ถาหากวา Exim Server จะตองรบสง e-mail กบ SMTP Server ตวอนซงม IP Address อยในชวงน กจะตอง ลบ IP Address ทกำาหนดเอาไวใน ignore_target_hosts เชน สำาหรบเครอขายของ มหาวทยาลยสงขลานครนทร จะใช Private IP Address ใน ชด 192.168.0.0/16,172.16.0.0/12, 10.0.0.0/8 ดงนน เพอให Exim Server สามารถ ตดตอกบ SMTP Serverภายในมหาวทยาลยสงขลานครนทรได กจะตองแกไข สวนของ config ignore_target_hosts ดงกลาวเปน
จงจะสามารถทำางานไดอยางถกตอง
นอกเหนอจาก config ใน /etc/exim4/update-exim4.conf.conf แลว ไฟล config ซงควรทจะตรวจสอบ และแกไขใหถกตอง ซงมผลตอการทำางานของการรบ/สง mail ของ SMTP Serverอกกคอ /etc/mailname และ /etc/aliases
/etc/mailname จะเปนขอมลซงเมอมการสง mail ออกจาก SMTP Server จะใชระบชอของServer ซงคานควรจะกำาหนดใหเปน FQDN ของ Server เชน
7.2.1 การคอนฟกอเมลอะเลยสสวน /etc/aliases จะเปนการกำาหนด e-mail aliases ใชในการระบ e-mail ซงอาจจะไมมaccount จรงๆ หรอตองการใหม e-mail address เดยวซงเมอ mail สงมาแลวจะสงตอใหกบหลายๆ account เชน สมมตบนเครอง Server smtp.coe.psu.ac.th ม account ดงตอไปน cj,touch, pipat, rungrode และตองการใหใช e-mail address sysadmin สำาหรบรบ mail ใดๆแลวสงตอใหทกๆคน กสามารถกำาหนดใน /etc/aliases โดยการเพม บรรทดนเขาไป
หรอ ไมม account ทชอ postmaster บนเครอง smtp.coe.psu.ac.th แตตองการ ให e-mail
ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8 : 169.254.0.0/16 :\ 255.255.255.255
smtp.coe.psu.ac.th
sysadmin: cj, touch, pipat, rungroad
ทสงมาถง address [email protected] ทงหมด สงตอไปยง sysadmin กสามารถกำาหนดไดดงน
7.2.2 การตรวจสอบเอสเอมทพเซรฟเวอรวธการตรวจสอบวา SMTP Server ทตดตงเอาไวสามารถทำางานไดอยางถกตองหรอไม สามารถทำาไดโดยการสง mail มาจากเครองคอมพวเตอรอนๆ โดยกำาหนด e-mail address ใหเปนเครองทตดตงไว และ ทดสอบการสง mail ออกไปยง e-mail address อนๆ เชน โดยการใชคำาสง
แลวตรวจสอบจาก log file วามการรบสง ทถกตองหรอไม โดยใชคำาสงดงตอไปน
ซงถามการรบ e-mail ไดอยางถกตองกจะม log record ตามตวอยางน
7.3 การตดตงโดฟคอท ไอแมพและปอบสามเซรฟเวอรสำาหรบ Server ของ IMAP และ POP3 ในทนจะเลอกใช Server ของ Dovecot41 เนองจากเปนServer ทรองรบรปแบบของการเกบ e-mail ทงแบบ mbox และแบบ Maildir และมความสามารถเทยบเทากบ IMAP/POP3 Server สมยใหมทวไป
41 http://www.dovecot.org
postmaster: sysadmin
echo "test" | mail s "test" [email protected]
sudo tail f /var/log/exim4/mainlog
20110829 15:06:21 1QxwrN0000Qq84 <= [email protected] U=root P=local S=468 20110829 15:06:21 1QxwrN0000Qq84 => [email protected] R=dnslookup T=remote_smtp H=[192.100.77.17] 20110829 15:06:21 1QxwrN0000Qq84 Completed
วธการตดตง Dovecot IMAP และ POP3 Server สามารถตดตงไดโดยการใชคำาสง
ไฟล config ของ Dovecot ทง IMAP และ POP3 Server จะรวมอย ในไฟล เ ดยวกนคอ/etc/dovecot/dovecot.conf สำา หร บกา ร ตด ต งบน Debian distribution ใหม (ต ง แ ตsqueeze เปนตนไป) config ของ Dovecot ทเกยวของกบระบบจะสรางให โดยอตโนมตทงหมดโดยผดแลระบบไมจำาเปนจะตองเพมเตมหรอแกไข config ใดๆทงสน
แตอยางกตาม ในทนจะอธบาย config ทสำาคญในกรณทผดแลระบบตองการทจะเปลยนแปลงหรอกำาหนดลกษณะ การทำางานของ IMAP Server หรอ POP3 Server ใหม ดงน
• protocols
คา config นจะเปนตวระบวาจะให Server ตวใดทำางานและ โปรโตคอลทตดตอ จะใหใชแบบsecure channel ดวยหรอไม ซงคาโดยปรยายเมอตดตงทง IMAP และ POP3 กจะมลกษณะดงน
ในกรณทตองการยกเลกการใหบรการ POP3 กใหตด pop3 กบ pop3s ออกไป ซงจะเหลอขอมลดงน
secure channel สำาหรบ imap และ pop3 กคอ imaps และ pop3s ซงในลกษณะ การใชงานกจะสามารถเทยบเคยงไดกบ http และ https นนคอขอมลทสงผาน secure channel จะมการเขารหสตงแตเรมตน ซงจะตางจากการสงขอมลแบบปกต ซงทำาใหจะตอง ใชหมายเลข port ทตางออกไปจากการรบ/สงขอมลแบบไมไดเขารหส
แตอยางไรกตาม ทง IMAP และ POP3 สามารถใชวธการเขารหสอกแบบทเรยกวา StartTLS บนchannel ของการสงขอมลแบบปกตไดโดยไมตองเปลยนหมายเลข port ของการสอสาร และe-mail client สมยใหมสวนใหญกจะรองรบการทำางานแบบน เพราะฉะนน imaps และ pop3s
sudo aptget install dovecotimapd dovecotpop3d
protocols = imap imaps pop3 pop3s
protocols = imap imaps
กอาจจะตดทงได
• certificate file และ key file
การเขารหสทงทใช secure channel และแบบ StartTLS จะตองใช public key ซง Dovecotจะสรางใหอตโนมตโดยมอายการใชงาน 10 ป โดยจะเกบ public และ private key ไวใน/etc/ssl/certs/dovecot.pem, /etc/ssl/private/dovecot.pem ต า ม ลำา ด บ ซ ง กำา ห น ดconfig ของ Dovecot ดงน
ซงถาตองการเปลยน key ใหม กสามารถสรางไฟลไปแทนไฟลเกาได หรอเปลยนตำาแหนงของไฟลใน dovecot.conf
การสราง key ใหมจะใชวธการเดยวกนกบการสราง self-signed certificate ของ Apache WebServer ซงสามารถดวธการไดจากการตดตง Apache Web Server
• mail_location
จะใชในการระบตำาแหนงทเกบ mail ซงตว Dovecot จะตรวจสอบทงแบบ mbox และ Maildirและสามารถใชไดอยางถกตอง ถาตำาแหนงของการเกบ mail ทงสองแบบ เปนแบบคาปรยาย ซงคาปรยายของ mbox คอไฟล /var/mail/%u และ ปรยายของ Maildir คอ directory /home/%u/Maildir โดยท %u ทงสองกรณนคอชอของ account
ในกรณทตำาแหนงของ mbox หรอ Maildir ไมไดอยในตำาแหนงปรยาย กสามารถระบตำาแหนงใหม ไดดงน
โดย maildir กบ mbox ซงอยหนาเครองหมาย ’:’ จะเปนการระบ format ของการเกบ mailและสวนทอยหลงเครองหมาย ’:’ กจะเปนการระบ PATH ของไฟลหรอ directory แลวแตกรณและในกรณของ mbox คาชอง INBOX ทอยหลงเครองหมาย ’:’ ทสองกคอตำาแหนงของ INBOXหรอ mail ทสงเขามาสวน PATH ทอยดานหนาคอ directory สำาหรบ folder ของ mail ทอานแลวและ save เกบเอาไว
ssl_cert_file = /etc/ssl/certs/dovecot.pem ssl_key_file = /etc/ssl/private/dovecot.pem
mail_location = maildir:~/Maildir mail_location = mbox:~/mail:INBOX=/var/mail/%u
7.3.1 การตรวจสอบการทำางานของ ไอแมพและปอปสามเซรฟเวอรวธการตรวจสอบวา IMAP/POP3 Server สามารถ ทำางานไดอยางถกตอง วธการทงายทสดกคอตดตง โปรแกรม mail client ซงรองรบ IMAP หรอ POP3 Server และกำาหนด config เกยวกบServer ใหถกตองแลวทดลองใชงาน
ในกรณทใช mutt เปน e-mail client สามารถตรวจสอบไดโดยการใชคำาสงตอไปน
โดย user และ password กคอ login ของ account และ password ของ account นน ทใชในการ login ไปยง Server ทมชอวา hostname ตามลำาดบ ยกตวอยางเชน ม account ซงชอ ’cj’ซงม password เปน ’987=cba’ และ IMAP Server มชอวา imap.coe.psu.ac.th กสามารถใชคำาสงตอไปน
ซงถา IMAP Server ทำางานอย ตว mutt กควรทจะเปด mail ทอยใน folder ไดอยางถกตองสำาหรบ POP3 Server กเปลยน URL จาก imap:// เปน pop3:// กจะใชไดเชนเดยวกน
mutt f imap://user:passwd@hostname/INBOX
mutt f imap://cj:[email protected]/INBOX
บทท 8 การตดตงเวบเซรฟเวอร (Web Server)
8.1 เวบเซรฟเวอรWeb Server นบเปนเซอรฟเวอรทมใหบรการมากทสดบน internet ปจจบน นบเนองมาตงแตมการ นำาเสนอแนวคด Uniform Resource Locator (URL)42 ซงทำาใหมการเชอมโยงกน ของขอมลโดยสามารถอางองถงกนไดโดยใช URL ตว Web Server เปนผ ใหบรการผานทางHypertext Transfer Protocol (http)43 ตว client สำาหรบ Web Server คอ Web Browserโดยการออกแบบดงเดม สามารถทจะเชอมโยงการใหบรการของ Server หลายๆเซรฟเวอรดวยกนได ผานทางการกำาหนด URL ซงจะแตกตางจากการใหบรการแบบ Client-Server ในยคกอนหนาซงมกจะ เชอมโยงระหวาง Client กบ Server แบบ 1 ตอ 1
Web Server ซงพฒนาแบบ Open Source มใหเลอกใชงานอยางคอนขางหลากหลาย เฉพาะทเปน package ใหเลอกใชบน Debian เองกม Server เหลานอย
• apache2 - Apache HTTP Server
• aolserver4 - AOL web server version 4
• araneida - A programmable web server written and extended in Lisp
• boa - Lightweight and high performance web server
• caudium - An extensible WWW server written in Pike
• cherokee - Very fast, flexible and easy to configure web server
• dhttpd - minimal secure webserver without cgi-bin support
• gatling - high performance web server and file server
• lighttpd - fast webserver with minimal memory footprint
• mathopd - Very small, yet very fast HTTP server 42 http://tools.ietf.org/html/rfc173843 http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol
• micro-httpd - really small HTTP server
• mini-httpd - a small HTTP server
• monkey - fast, efficient, small and easy to configure web server
• nginx - small, but very powerful and efficient web server and mail proxy
• ocsigen - web server and programming framework in OCam
• starman - high-performance preforking PSGI/Plack web server
• thin - fast and very simple Ruby web server
• thttpd - tiny/turbo/throttling HTTP server
• yaws - High performance HTTP 1.1 webserver written in Erlang
Web Server เหลานจะแตกตางกนในแงการใชงาน ตงแตตวทพฒนาขนมาใหมขนาดเลกใชresource นอย ทสด แตมความสามารถในการใหบรการทจำา กด ไปจนถง Web Server ทมfeatures ในการใหบรการท หลากหลายแตกใช resource มากตามไปดวยเชนเดยวกน ซงกขนอยกบผใชงานวามลกษณะของ application ทตองการใหบรการทาง Web Server อยางไร
8.2 อาพาเชเวบเซรฟเวอรApache Web Server44 จะเปน Web Server ทนยมใชมากทสดตวหนงสำา หรบการพฒนาApplication ซงใหบรการอยบน Web 45 เปนตว Server ซงม features ทใหบรการคอนขาง44 http://httpd.apache.org
45 สำาหรบการใหบรการ Web Server เพอเปน Web Hosting สำาหรบพฒนาและใหบรการ Application บน Web โดยทวไปแลวจะไมไดมเฉพาะ Web Server แตจะตององคประกอบอนรวมดวย ซงองคประกอบเหลานน มกจะประกอบไปดวย
• ระบบปฏบตการ • Web Server • Database Server • ภาษาสำาหรบการประมวลผลทฟากของ Web Server ซง ชดของซอฟตแวรทนยมนำามาใชกนมากทสดชดนงกคอ LAMP ซงเปนชอยอของการเลอกองคประกอบ ทจำาเพาะเจาะจงลงไปดงน
• L : Linux – ระบบปฏบตการ • A : Apache – Web Server • M : MySQL – Database Server
หลากหลาย สามารถปรบแตงเพอใหเหมาะกบความตองการมนรปแบบตางๆได ในบทนจะกลาวถงการ ตดตง Apache Web Server เปนหลก
8.3 การตดตงและปรบแตงอาพาเชเวบเซรฟเวอรเราสามารถตดตง Apache Web Server โดยการใชคำาสง
เวอรชนทใชงานกนอยปจจบนคอ Apache version 2 ซงจะแบงยอยเปนหลาย module โดยmodule สวนใหญจะแบงเปน package ยอยเพอทจะใหเลอก install ไดตามความตองการ เชนถาตองการใช php เปนภาษาสำาหรบการประมวลผลแบบ script สำาหรบ Apache กสามารถตดตงเพมไดโดยใชคำาสง
สำาหรบ module ตางๆของ apache2 ทมใหใชงาน สามารถใชคำาสง apt-cache สำาหรบแสดงรายการทมอยทงหมด พรอมคำาอธบาย แบบยอได โดยการใชคำาสงดงตอไปน
เมอตดตง apache2 และ module ทตองการใชเสรจแลว สวนของ directory สำาหรบเกบขอมลจะใช /var/www และสวนของ configuration ทงหมดกจะเกบไวใน /etc/apache2
สำาหรบ package apache2 เองจะม module พนฐานทมขนาดเลกและนยมใชกนโดยทวไป ตดตงเอาไวใหแลว แตบาง module จะยง ไมกำาหนดใหเรมใชงานในการตดตงแบบพนฐาน ซงผดแลระบบจะตอง enable module ทตองการใชเหลานนเอง
apache2 จะเกบ config สำา หรบการ load module และปรบแตงการใชงาน เอาไวในdirectory /etc/apache2/mods-available สวน config ของ module ทจะใหใชงานจะสราง
• P : PHP/Perl/Python – ภาษาสำาหรบการประมวลผลทฟากของ Web Server ซงจะเหนวา Apache เปน Web Server ทนยมใชมากทสดตวหนง
aptget install apache2
aptget install libapache2modphp5
aptcache search libapache2
เปน symbolic link ไปยง directory /etc/apache2/mods-enabled ซงเรา สามารถสรางหรอลบ link เหลานนเองได ในกรณทตองการจะเพม module หรอยกเลกการใชงานบาง moduleแต apache2 ไดเตรยม คำา ส ง สำา หรบทำา งานน ไวโดยเฉพาะกคอคำา สง a2enmod และa2dismod ยกตวอยางเชน ม module ทชอวา userdir ซงใชสำาหรบให user บนระบบสรางhomepage ของตนเองไดใน directory public_html ภายใน home directory ถาตองการ ทจะ enable module น กสามารถใชคำาสง
หลงจากนนสามารถสง restart หรอ reload เพอให apache2 อาน config ใหมไปใชงาน โดยการใชคำาสง
สวนการ disable module กจะใชคำาสง a2dismod ในรปแบบเดยวกน
การเพม Web Application package ทไมใช module หนงของ Apache Web Server เอง ยกตวอยางเชน package phpmyadmin ซงจะใชสำาหรบการจดการ MySQL Database Serverโดยจะใช Web เปน User Interface การตดตง package นจะตองใช Web Server ดวยจงจะสามารถใชงานได และสามารถเลอกใช Apache2 เปน Web Server เ พอทจะใชงานกบphpmyadmin ได
ซงในสวนของการ config นน pacakge phpmyadmin จะใชวธการสราง config สำา หรบApache Web Server แยกเอาไว ตางหากและเกบเอาไวใน directory ของ phpmyadmin เองโดยจะม config ชอ /etc/phpmyadmin/apache.conf ไฟลนจะตองอานโดยตว ApacheWeb Server ซง วธการทจะใหตว Apache สามารถเอาไฟลนไปใชไดกคอ สราง link จากconfig directory ของ phpmyadmin ไปยง /etc/apache2/conf.d ของ Apache โดยการใชคำาสงดงตอไปน
หลงจากนนสามารถสง restart หรอ reload เพอให apache2 อาน config ใหมไปใชงาน เชน
a2enmod userdir
service apache2 restart
ln s /etc/phpmyadmin/apache.conf /etc/apache2/conf.d
เดยวกนกบการ enable หรอ disable module
8.4 การสรางเวอรชวลโฮสตการใชงาน Web Server ในหนวยงานหนงๆ จะตองการ Web มากกวาหนงสำาหรบการใหบรการทตางกนออกไปเชน สำาหรบเครอขายของภาควชาวศวกรรมคอมพวเตอร จะม Web Serverสำาหรบของภาควชาฯเองคอ http://www.coe.psu.ac.th Web Server ของกลมวจย เชนhttp://wig.coe.psu.ac.th Web Server สำา ห ร บ บ ค ล า ก ร ข อ ง ภ า ค ว ช า ฯhttp://fivedots.coe.psu.ac.th ซงการใหบรการ Web Server เหลานอาจจะใหบรการแตละServer แยกกนออกไป แตโดยทวไปแลวสำาหรบ Web Server ซงไมมภาระใน การใหบรการมากนก การม Server แยกกนออกไปแตละตวจะเปนเรองสนเปลองเนองจากตว Server จะอยในสภาพ วางงาน (idle) อยเกอบตอลอดเวลา การใช Web Server ตวเดยวกนใหบรการหลายๆWeb บนเครองคอมพวเตอร เครองเดยวกนจะเปนวธการทประหยดทรพยากรมากกวา วธการนเรยกกนโดยทวไปวา Virtual Hosting46 ซง Apache Web Server กรองรบการใหบรการแบบVirtual Hosting เชนกน
การสราง Virtual Host จะตองทำารวมกบการกำาหนดขอมลใน DNS โดยการสราง DomainName ใหมสำาหรบ เครอง Server ซงสามารถทำาไดหลายวธ เชน
• กำาหนดใหแตละ Virtual Host ม IP Address และ Domain Name เปนของตนเอง
• กำาหนดใหแตละ Virtual Host ม Domain Name ของตนเอง แตใช IP Address เหมอนกน
• กำาหนดใหแตละ Virtual Host ม Domain Name ของตนเองเปน Canonical Name ในResource Record ของ DNS
ตวอยาง เชน สมมตใหภาควชาฯตองการใหบรการ Web Server จำา นวน 2 Web คอweb1.coe.psu.ac.th สำาหรบ เปน Homepage คณาจารย และ web2.coe.psu.ac.th สำาหรบเปน Homepage ของนศ.
ถากำาหนดใหทงสอง Server ม IP Address เปนของตนเอง ขอมลใน DNS กอาจจะปรากฏในลกษณะน
46 http://en.wikipedia.org/wiki/Virtual_hosting
ซง web1 และ web2 ม IP Address เปน 192.168.250.10 และ 192.168.250.11 ตามลำาดบในกรณนตว Web Server จะตองมการกำาหนด IP Address โดยตวระบบใหใชงานไดทงสอง IPAddress (หรออาจจะมากกวานน ถาตองการใหบรการมากกวา 2 Virtual Host) แตวธการนไมเปนทนยมเนองจาก จะเปนการสนเปลอง IP Address
สำาหรบวธการกำาหนดใหทงสอง Virtual Host web1 และ web2 ม IP Address เดยวกน อาจจะใช กำาหนดใน DNS โดยตรงในลกษณะน
หรออาจจะใชวธการกำาหนดในลกษณะของ Canonical Name47 ของ DNS
ซงวธการนจะเปนทนยมกนมากกวา
ในสวนของการ config Apache Web Server เพอทใหใชงานแบบ Virtual Host ซง Apacheจ ะ ใ ช ว ธ ก า ร แ ย ก config สำา ห ร บ แ ต ล ะ site เ อ า ไ ว ใ น directory ท ช อ ว า/etc/apache2/sites-available แ ล ะ จ ะ ส ร า ง link จ า ก config file ด ง ก ล า ว ไ ป ย งdirectory /etc/apache2/sites-enabled
คาโดยปรยายของการตดตง Apache Web Server จะใหบรการเพยง Web เดยว ไมม VirtualHost ใ น /etc/apache2/sites-available จ ะ ม ไ ฟ ล default แ ล ะ default-ssl แ ล ะ ใ น/etc/apache2/sites-enabled จะมไฟลชอ 000-default ซงเปน symbolic link ไปยงไฟล/etc/apache2/sites-available/default
ขอมลคราวๆของ default site config จะมลกษณะดงน
47 http://en.wikipedia.org/wiki/CNAME_record
web1.coe.psu.ac.th. A 192.168.250.10 web2.coe.psu.ac.th. A 192.168.250.11
web1.coe.psu.ac.th. A 192.168.250.10 web2.coe.psu.ac.th. A 192.168.250.10
websvr.coe.psu.ac.th. A 192.168.250.10 web1.coe.psu.ac.th. CNAME websvr web2.coe.psu.ac.th. CNAME websvr
ในกรณของ default config คาของ DocumentRoot จะเปน /var/www สำาหรบ Virtual Hostกจะตองม Directory สำาหรบ DocumentRoot ทแยกกนออกไปในแตละ Virtual Host สมมตให เราจะใช /var/web1 กบ /var/web2 สำาหรบเปนเนอทเกบขอมลของ Virtual Host web1และ web2 ตามลำาดบ เราสามารถสราง Virtual Host config สำาหรบ web1 และ web2 ไดดงน
สำาหรบ web1 โดยเกบไวในไฟล /etc/apache2/sites-available/web1 และ
<VirtualHost *:80> ServerAdmin webmaster@localhost
DocumentRoot /var/www <Directory />
Options FollowSymLinks AllowOverride None
</Directory> <Directory /var/www/>
Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all
</Directory>
ScriptAlias /cgibin/ /usr/lib/cgibin/ <Directory "/usr/lib/cgibin">
AllowOverride None Options +ExecCGI MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all
</Directory> ... </VirtualHost>
<VirtualHost *:80> ServerAdmin [email protected] ServerName web1.coe.psu.ac.th
DocumentRoot /var/web1 <Directory /var/web1/>
Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all
</Directory> </VirtualHost>
สำาหรบ web2 โดยเกบไวในไฟล /etc/apache2/sites-available/web2
คา config ทตองเปลยนคอ DocumentRoot และจะตองเพม <Directory> directive สำาหรบDocument Root นนๆ และเพม ServerName ใหเปน domain name ตามทกำาหนดเอาไวในDNS สำาหรบแตละ Virtual Host
ตวอยาง config สำา หรบ Virtual Host web1 และ web2 นเปนแบบ minimal config ถาตองการ features อยางอนเชนการกำาหนด cgi-bin directory กสามารถดตวอยางจาก defaultconfig และศกษาจาก document ของ Apache2 ได
จาก site config ทสรางขน และเกบไวใน directory /etc/apache2/sites-available เมอตองการใชงาน กสามารถใชคำาสง a2ensite สำาหรบการ enable ไดดงน
และเราสามารถ disable default site config ทไมจำาเปนจะตองใชอกตอไปแลวไดดวยคำาสง
หลงจากเปลยน site configuration แลวกสงให Apache Web Server อานคา config ใหม เอาไปใชงานดวยคำาสง
<VirtualHost *:80> ServerAdmin [email protected] ServerName web2.coe.psu.ac.th
DocumentRoot /var/web2 <Directory /var/web2/>
Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all
</Directory> </VirtualHost>
a2ensite web1 a2ensite web2
a2dissite default
service apache2 reload
เชนเดยวกบการเปลยนคา config สำาหรบการเพมหรอลด module
8.5 การตดตงเอสเอสแอลสำาหรบอาพาเชเวบเซรฟเวอรSecure Socket Layer (SSL)48 เปนโปรโตคอลสำาหรบการเขารหสชอมลทสงผานเครอขายแบบTCP/IP เนองจากในการสงขอมลแบบปกต จะไมมการเขารหส ทำาใหขอมลทมความสำาคญและควรจะเปนความลบ อาจจะถกดกจบ เอาไปไดโดยการใชโปรแกรมประเภท sniffer ตางๆ สำาหรบในกรณของ Web Server กพยายามแกปญหาดงกลาวโดย การเพมชองทางของการสอสารโดยมการเขารหสขอมลกอน กลายเปน Hypertext Transfer Protocol Secure49 ซงโดยทวไปแลวจะรองรบโดย Web Server เกอบทงหมด
ในกรณของ Apache Web Server สวนของ SSL จะแยกออกมาเปน module ซงไมได enableเอาไวในการตดตง แบบปรยาย การทจะใชงาน SSL เพมจะตองม Certificates และ Key ไฟลซงใชในการยนยน site นนๆวา เปน site ตามทระบไวจรง Certificates ทจะเอามาใช ถาจะใหถกตองและเชอถอได กจะตองไดรบการ รบรองจากหนวยงานทมอำานาจในการรบรอง (CertificateAuthorities)50 แตเนอง จากกระบวนการดงกลาวมคาใชจายและใชเวลา และในกรณทวไปแลวสงทเราตองการในการใชงาน Web Server แบบ SSL กคอการเขารหสเพอใหขอมลเปนความลบในการรบ/สงระหวาง Web Browser กบ Web Server มากกวา ทจะเปนการยนยนวา Web Siteนนๆเปน Web ทนาเชอถอไดจรงๆ (ซงการยนยนนน สามารถใชวธการอนๆแทนได ) ดงนนCertificate ทจะเอามาใชสำาหรบการปรบแตง Apache Web Server หรอ Web Server ตวอนๆจะสามารถ ใชวธการทเรยกวา Self-Signed Certificate แทนได นนคอผตดตง Web Server จะเปนผรบรอง Certificate นนๆเอง
ขนตอนในการสราง Self-Signed Certificate จะใชคำาสง openssl ซงอยใน package opensslและมกจะตดตงแลวพรอมกบการตดตง Apache Web Server หรอ Server อนๆซงตองการใชงาน SSL
การสราง Certificate จะตองปอนขอมลตอไปน
• Country Name
• State or Province Name
48 http://en.wikipedia.org/wiki/Secure_Sockets_Layer49 http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol50 http://en.wikipedia.org/wiki/Certificate_authorities
• Locality Name
• Organization Name
• Organization Unit Name
• Common Name
• Email Address
ขอมลเหลาน จะถกเขารหสเปนสวนหนงของ Certificate ซงสำาหรบตวอยางน จะใชขอมลแตละตวดงน
• Country Name – TH
• State or Province Name – Songkhla
• Locality Name – Hatyai
• Organization Name – Prince of Songkla University
• Organization Unit Name – Computer Engineering Dept.
• Common Name – web1.coe.psu.ac.th
• Email Address – [email protected]
นนคอใชขอมล ทเรยกวา Street Address สำาหรบระบ Organization Unit Name ไปจนถงCountry Name (ซงจะตองใชแบบ 2 ตวอกษรตามมาตรฐาน ISO – TH) สวน common nameจะเลอกใชชอ site ของ Web Server ทจะใหใช SSL
จากขอมลทมอยนจะนำาไปสราง text file สมมตใหชอ web1-cer.txt โดยมขอมลดงน
จากนนเราสามารถใชคำาสงตอไปน เพอสราง Certificate file และ Key file
TH Songkhla Hatyai Prince of Songkla University Computer Engineering Dept. web1.coe.psu.ac.th [email protected]
ซงในทน option -days 3650 หมายถงตองการให Certificate ฉบบนมอายใชงานไดนาน 10 ป(3650 วน) นบจากวนทสราง และ จะได Key file ชอ web1.key และ Certificate file ชอweb1.cer ซงจะตองนำาไฟลทงสองไปเกบไวในทๆจะใชงานตอไป
ในกรณนกำาหนดใหใช directory /etc/apache2/ssl สำาหรบเกบ Certificate และ Key ซง จะใชคำาสงตอไปนในการเกบ
Certificate file จะเปนไฟลทใชในการยนยนตว ไมเปนความลบ แต key file จะตองเกบไวเปนความลบและอนญาตใหเฉพาะ Web Server เทานนสามารถอานได นนคอสวนของคำาสง chmodและ chown ทเพมขนมา
หล งจากน น จะสามารถสร า ง site config ข นมาใหม ไ ด โดยสมม ตให เ ปน ไฟล ชอ/etc/apache2/sites-available/web1-ssl และมขอมลดงตอไปน
ซงเมอเทยบกบ site config ของ web1 เดมใน /etc/apache2/sites-available/web1 กจะม
cat web1cer.txt |\ openssl req new x509 nodes days 3650 \ keyout web1.key out web1.cer
mkdir p /etc/apache2/ssl mv vf web1.key web1.cer /etc/apache2/ssl chmod 644 /etc/apache2/ssl/web1.cer chmod 600 /etc/apache2/ssl/web1.key chown wwwdata:wwwdata /etc/apache2/ssl/web1.*
<VirtualHost *:80> ServerAdmin [email protected] ServerName web1.coe.psu.ac.th
DocumentRoot /var/web1 <Directory /var/web1/>
Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all
</Directory>
SSLEngine on SSLCertficateFile /etc/apache2/ssl/web1.cer SSLCertficateKeyFile /etc/apache2/ssl/web1.key
</VirtualHost>
สวนทเพมมาคอ
ซงจะเปนการ enable SSL สำาหรบ site นและระบตำาแหนงของ Certificate และ key File ซงในกรณน จะเกบไวใน directory /etc/apache2/ssl
หลงจากนน กจะสามารถ enable ssl module และ enable site web1-ssl และ สง reloadตว Apache Web Server ใหอาน config ใหมเขาไปทำางานได
ถากระบวนการทกอยางถกตอง กจะสามารถเขาถง web1 ซงม SSL เขารหสไวไดผานทาง URLhttps://web1.coe.psu.acth
ขอควรสงเกตประการหนงสำาหรบการใชงาน SSL กบ Virtual Host แบบทมหลาย domainname และใช IP Address เดยวกน (ไมวาจะเปนการระบโดย A Record หรอ CNAME) กคอจะใชงาน SSL ไดเพยง 1 site เทานน ในกรณทสราง site configuration สำาหรบ SSL ไวหลายตวและ enable พรอมกน กจะใชงานไดเฉพาะ site แรกทตว Web Server อาน config เขาไป
ต ว อ ย า ง เ ช น จ า ก ต ว อ ย า ง ม 2 Virtual Host ค อ web1.coe.psu.ac.th ก บweb2.coe.psu.ac.th ในกรณของการใช http protocol ธรรมดา เมอใช Web Browser ไปทhttp://web1.coe.psu.ac.th กบ http://web2.coe.psu.acth กจะไปยง เนอหาของ VirtualHost แตละตวทสรางเอาไว แตถา เ พม SSL config ทง web1 และ web2 เมอใช WebBrowser ไปยง https://web1.coe.psu.ac.th https://web2.coe.psu.ac.th จะไปยงเนอหาของ Virtual Host ตวเดยวกน ขนอยกบวา config ของตวใดถกอานขนมากอน ถาใชชอไฟลตามตวอยางคอ web1 และ web2 ตามลำา ดบ กจะไดผลวา https://web2.coe.psu.ac.th จะปรากฏขอมลเปน Virtual Host ของ web1 แทนทจะเปนของ web2 อยางทควรจะเปน
ปญหาขอนเปนขอจำากดของการออกแบบ SSL วธการทพอจะเลยงไดกคอ จะตองใช IP Addressทตางกน ออกไปสำาหรบ Virtual Host แตละตวทตองการ SSL
SSLEngine on SSLCertficateFile /etc/apache2/ssl/web1.cer SSLCertficateKeyFile /etc/apache2/ssl/web1.key
a2enmod ssl a2ensite web1ssl service apache2 reload
บทท 9 การตดตงเอฟทพเซรฟเวอร (FTP Server)
9.1 เอฟทพเซรฟเวอร (FTP Server)FTP Srver เปนการใหบรการพนฐานของระบบปฏบตการในตระกล Unix ทมมานานพอสมควรใชสำาหรบการ รบ/สงไฟลระหวางเครองคอมพวเตอรโดยทำางานแบบ Client กบ Server และถงแมวาความนยมใช ftp สำาหรบการรบ/สงไฟลทมลกษณะเปนขอมลสวนตวของผใชจะลดลงเนองจากโปรโตคอลในการสอสารจะไมมการ เขารหสขอมล ซงทำาใหไมเหมาะสำาหรบการรบสงขอมลทตองการความปลอดภย เชนขอมลสวนบคคล
การรบสงขอมลสวนตวของผใชบนระบบ Unix โดยทวไปในปจจบนจงนยมเปลยนไปใชวธการอนๆแทน แตอยางไรกตาม สำาหรบขอมลทมลกษณะเปน public เชนไฟล package ของ Linux ในดสตรบวชนตางๆ, โปรแกรมทม การแจกจายแบบ opensource, หรอเอกสารคมอการใชงานตางๆกยงนยมใหบรการผานทาง FTP Server อย เนองจากในการออกแบบของ FTP ททำาใหผ ทตองการเขาถงขอมลเหลาน สามารถเขาถงแบบ Anonymous หรอไมจำาเปนจะตองแสดงตวไดทำาใหการแจกจายขอมลและการเขาถงขอมลทเปน public สามารถทำาไดโดยสะดวก
9.2 เอฟทพเซรฟเวอรบนลนกซเชนเดยวกบตว Server อนๆบน Linux ทมการใหบรการมานาน กจะมการ implement ตวServer ออกมา โดยกลมของผพฒนาซอฟตแวรจำานวนหลายกลม เพอทจะใหมการใชงานหรอการใหบรการทเหมาะสมสำาหรบสภาพ การใหบรการทตางกนออกไป FTP Server บน Linux กจะมเปน package ใหเลอกใชจำานวนหลายตว แตเนองจาก การใหบรการ FTP เปนแบบมาตรฐานเพราะฉะนนในการตดตงจะสามารถตดตงใหใชงานไดเพยงครงละ 1 ตวเทานน 51
บน Debian กจะม package ของ FTP Server เหลานใหเลอกใชงานได
• ftpd
• pure-ftpd
51 ยกเวนวาจะกำาหนดให ftp server ตวทสองใหบรการทหมายเลข port ทไมใช port มาตรฐาน กจะสามารถ กจะสามารถใหบรการพรอมกนมากกวา 1 ตวได
• proftpd-basic
• pyftp
• twoftpd
• vsftpd
• wu-ftpd
• wzdftpd
FTP Server แตละตวจะมความแตกตางกนออกไปทงในแงจดประสงคของการออกแบบ และสภาพแวดลอมในการนำา เอามาใชงาน เชนสำาหรบระบบทม resource ในการการใชงานนอยอยางเชนบนระบบ embedded system package อยาง ftpd จะใช resource นอยกวาpackage อนๆ แตถาตองการใหบรการในลกษณะของ public FTP Server แลว package ซงimplement feature ตางๆของ FTP ครบและม module ของการ authentication หรอการจดการขอมลอนๆ อยางเชน proftpd, pure-ftpd, หรอ wu-ftpd กอาจจะเหมาะสมกวา
ในทนจะกลาวถงเฉพาะ proftpd และ vsftpd เพราะจะเปน Server ทนยมใชงาน 52
9.3 การตดตงวเอสเอฟทพดvsftpd53 มชอเสยงในแงของ security, ความ stable และ performace เปนทนยมใชใน FTPServer ของ Linux distribution จำานวนหนงเชน RedHat, SuSe, Debian และ OpensourceSoftware อก หลายตวเชน gnome, kde, gimp, isc ซงกลมผพฒนาโอเพนซอรส เหลานจะใชFTP Server สำาหรบการแจกจายตวซอฟตแวร และเลอกใช vsftpd สำาหรบการใหบรการ FTPServer เหลาน เปนตน
การตดตง vsftpd สามารถใชคำาสง
52 ftp.coe.psu.ac.th ใช proftpd สำาหรบการใหบรการเปน official mirror ของ debian ประจำาประเทศไทยซงใหบรการในนามของ ftp.th.debian.org และ ftp.psu.ac.th ซงเปน official mirror ของ ubuntu ประจำาประเทศไทย เลอกใช vsftpd เปน FTP Server
53 https://security.appspot.com/vsftpd.html
aptget install vsftpd
ซ งคา config โดยปรยายของ vsftpd สามารถใชงานไดเลย โดย config ไฟลจะอย ใน/etc/vsftpd.conf และ directory ของ anonymous ftp จะใช home ของ ftp account ทสรางเอาไว ซงในกรณของ Debian wheezy เปนตนไปจะใช /srv/ftp เราสามารถเปลยนแปลงตำาแหนงของ directory ของ anonymous ftp ได โดยการ เปลยน home directory ของ userftp โดยการใชคำาสง usermod โดยใช option ’-d’ ยกตวอยางเชนตองการยายตำาแหนงของanonymous ftp directory ไปท /ftp กสามารถ ใชคำาสง
โดย ’ftp’ ตวสดทายของคำาสงคอชอ account ftp
สำาหรบในกรณทตองการความสามารถของ FTP server ทม features ตางๆทมากขน เชน การauthentication โดยใชฐานขอมล กบ ldap, mysql, postgresql, sqlite หรอความสามารถในการควบคม ratio ของการ upload/download การกำาหนด quota ซงไมมใน FTP Serverอนๆ กจะสามารถใช proftpd54 แทนได
9.4 การตดตงโปรเอฟทพดการตดตง proftpd สำาหรบฟงกชนพนฐาน สามารถตดตงไดดวยคำาสง
บน Debian จะแยก proftpd ออกเปนหลาย packages ยอยถาตองการฟงกชนพเศษเพมกสามารถ ตดตงเพมเปนกรณไป เชนในกรณทตองการ authentication module โดยใช ldap กจะตองตดตง package proftpd-mod-ldap เพม โดยการใชคำาสง
รปแบบ config file และการจดการ module ของ proftpd จะคลายกบของ Apache WebServer เพราะฉะนนสำาหรบผดแล Web Server ทเขาใจรปแบบ และโครงสรางของ ApacheServer config กจะแกไขไดโดยงาย
54 http://www.proftpd.org/
usermod d /ftp ftp
aptget install proftpdbasic
aptget install proftpdmodldap
สำาหรบ proftpd คาโดยปรยายของ config จะไมอนญาตใหใช anonymous ftp ซงจะตองไปแกไข config เพมเตมดงน ในไฟล /etc/proftpd/proftpd.conf
ซงจะแสดงใหเหนตวอยางของ config แบบ คราวๆไดวามรปแบบเดยวกนกบท Apache WebServer ใชอย
FTP Server จะใช port สำาหรบการรบ/สงขอมลแยกจาก port สำาหรบการรบ/สงคำาสง ดงนนถาตว Server มการตดตง firewall เอาไวกจะตองเปด port 20 และ 21 เพอใหตว client สามารถตดตอกบ FTP Server ไดดวย
<Anonymous ~ftp> User ftp Group nogroup UserAlias anonymous ftp RequireValidShell off MaxClients 10
<Directory *> <Limit WRITE> DenyAll </Limit> </Directory> </Anonymous>
บทท 10 การตดตงมายเอสควแอล (MySQL Server)
10.1 ดาตาเบสเซรฟเวอรDatabase Server มใหบรการบน Linux/Unix มานานพอสมควรและมใหเลอกจำานวนมาก SQLจดเปนภาษาทมาตรฐานและมการใชงานมานานมาก บน Linux จะม SQL Server และ SQLEngine ใหเลอกใชหลายตว ตวทเปนทนยมกนกคอ MySQL Server55, PostgreSQL Server56,SQLite Engine57 ในทนจะกลาวถงเฉพาะ MySQL ซงเปนทนยมมากทสดในการใชงานกบ WebServer
การใชงาน Database Server สวนใหญบนระบบบฏบตการ Linux ทใชงานอยทวไปในเครอขายขององคกร ขนาดเลกถงขนาดกลางโดยทวไป (รวมถงหนวยงานทางการดานการศกษาเชนโรงเรยน วทยาลย และ มหาวทยาลย) การใชงานฐานขอมลจะไมไดใชจากตวโปรแกรม clientของตว Database Server เอง แตมกจะใชผาน Library ของภาษาทใชในการพฒนา หรอFramework ในการพฒนาโปรแกรม เชน ตว Web Application ทเปนทนยมใชงานกน เชนWordpress, MediaWiki, Joomla กจะมสวนของการ จดการสราง database, table และกำาหนดขอมลอนๆทจำาเปนสำาหรบการใชงาน เพอให application พรอม ทจะใชงานหลงจากตดตงตว application เหลานนลงไปไดเลย โดยทผตดตงและใชงานซอฟตแวรไมจำาเปนจะ ตองมความรเ กยวกบ SQL command หรอการจดการ database เองเลย เพยงแตจะตองมตวpackage พนฐาน ทจำาเปนตดตงใหครบกอน และในกรณของ Linux distribution โดยทวไป กจะใชการกำาหนด dependency ของ package สำาหรบระบ package อนๆทจำาเปนจะตองใช ถาจะตดตง package นนลงไป ดงนนเมอตดตง package ของ application เชน wordpress ลงไปตว package manager กจะเรยกตดตง package อนๆเชน php, mysql และ library อนๆทจำาเปนตองใชให
สำาหรบในทน กจะกลาวถงเฉพาะการตดตงตว Database Server และการจดการพนฐาน สวนในเรองของการ ใชงาน SQL command และรายละเอยดของการใชงาน Database Server ขอให
55 http://www.mysql.com56 http://www.postgresql.org57 http://www.sqlite.org
อานจาก manual ของ MySQL58
10.2 การตดตงมายเอสควแอลดาตาเบสเซรฟเวอรตดตง MySQL Server โดยใชคำาสง
ในการตดตงครงแรกของ MySQL Server บนเครองเซรฟเวอรใดๆ ตวตดตงจะถาม passwordของ root ของ MySQL Server ซง account root ของ MySQL Server นจะไมมความเกยวของใดๆกบ root account ของ Linux หรอตวเซอรฟเวอรเอง แตจะเปน account ซงไดกำาหนดสทธในการเขาถง database หลก และ database ตางๆทสรางขนในภายหลง
ดงนน password สำา หรบ account root ของ MySQL นจ งไมควร ทจะเปน passwordเดยวกนกบ password root ของระบบ เพราะถงแม วา password ของ administratoraccount ของระบบใดๆกตาม ไมวาจะเปนของ system account หรอ account ของซอฟตแวรควรทจะมการกำาหนดและจดเกบรหสผานอยาง มความปลอดภนสงกตาม แตโดยวธการ ลกษณะของการจดเกบและใชงานของ administrator account ของตว Database Server อยางเชนMySQL กจะมการใชงานทไมมความปลอดภยเทาการจดเกบและใชงาน password ของระบบเชน ในบางกรณอาจจะตองเกบ password ของ MySQL ในลกษณะของ plaintext บน textfile บน filesystem ของระบบเอง
คา config โดยปรยายของ MySQL จะทำาให MySQL ใชงานเปน server บนเครอขาย TCP/IPไดเฉพาะ บนเครองของตนเอง ไมสามารถตดตอจากเครองอนๆได เนองจากเพอปองกนการรวไหลของขอมลผานเครอขาย เนองจากการสงขอมลของ MySQL จะสงแบบไมเขารหส แตสำาหรบการใชงานเครอขายภายในทอาจจะเขารหสในระดบ ของเครอขายเอง หรออยภายในเครอขายทปลอดภย และตองการแยกเอาตว MySQL Server ออกจาก Application Server (หรอ Web Server)กสามารถกำาหนด config ใหตว MySQL server สามารถตดตอผานเครอขายได ดดยการปรบเปลยนคา config ในไฟล /etc/mysql/my.conf โดยเปลยนคา bind-address จากคาเดม127.0.0.1 ใหเปนหมายเลข IP ของตว Server ซงใชในการตดตอกบเครองอนๆ หรออาจจะใช0.0.0.0 ซง แทน IP address ใดๆของเครองเอง ซงทำาใหตดตอกนไดกบทกๆ address ทมใหใชงาน
58 http://dev.mysql.com/doc
aptget install mysqlserver mysqlclient
นอกจากน ในกรณทมการตดตง firewall ไวบนตว Server กจะตองกำาหนดให port ของ MySQL(3306) สามารถ ตดตอไดจาก client ทตองการใชงาน Database ไดดวย
ตวอยางเชน ถาใช iptables เปนตวกำาหนด firewall และตองการให client ซงใชงานอยบนhost ซงม หมายเลข IP เปน 192.168.250.101 สามารถเขาถง MySQL ได กสามารถใขคำาสงดงตอไปน
10.3 การใชงานมายเอสควแอลไคลเอนทการสราง database สามารถใชคำาสง mysql ซงเปน tools ในชดของ package mysql-clientใน การสรางหรอสง SQL command ไปใหตว MySQL Server ได ตวอยางเชน ตองการสรางdatabase เพอ เกบคะแนนสอบของ นศ. โดยจะใช 2 table สำาหรบการเกบ ให table แรกสำาหรบเกบขอมล นศ. และ table ทสองสำาหรบเกบ คะแนน ซงจะสามารถ เขยนอธบายโดยใชSQL command ไดดงน
ผใชสามารถเรยกใชคำาสง mysql จาก shell command line และพมพ SQL command ขางตน แบบ interactive หรอ อาจจะสราง text file ใหมขอมลตาม SQL command ขางตน โดยสมมตใหมชอไฟลวา create-db.sql กสามารถทจะสงคำาสงดงกลาวใหคำาสง mysql โดยผานshell pipe แบบ batch ไดโดยการใชคำาสงดงน
และในสวนของการจดการกบขอมลหลงจากสราง database เสรจแลวกสามารถทำาไดโดยวธ
bindaddress 0.0.0.0
iptables I INPUT s 192.168.250.101 p tcp dport 3306 j ACCEPT
CREATE DATABASE exam; USE exam; CREATE TABLE student(id INT, name VARCHAR(40)); CREATE TABLE mark(id INT, midterm INT, final INT);
cat createdb.sql | mysql u root p
เดยวกน เชน ถาตองการเพมขอมลเหลาน เขาไปใน database exam ทเพงสรางขน
กสามารถสราง text file ใหมขอมลขางตน สมมตใหมชอวา dataset1.sql กสามารถใช mysqlสำาหรบการเพมขอมลโดยการใชคำาสงแบบเดยวกบการสราง database
ทงสองกรณ คำาสง mysql จะแสดง prompt สำาหรบการรบ password ซงเราจะตองพมพpassword ทถกตองลงไปกอน คำาสง mysql จงจะสามารถเขาถง database ได
ในกรณทตองการใชงานแบบ batch ซงอาจจะเรยกใชคำาสงจาก shell script โดยไมมผใช คอยพมพ password แบบ interactive ให กอาจจะใส password โดยพมพตามหลง option ’-p’ไปเลย ยกตวอยางเชน ในกรณทกำาหนดให account ’root’ ของ mysql ม password เปน’secret’ กจะใชคำาสงสำาหรบการสราง database ไดเปน
ขอสงเกตสำาหรบกรณนกคอวา ในการใช option -u สำาหรบการกำาหนด account จะมชองวางระหวาง -u กบชอ account (ซงในทนกคอ ’root’) หรอไมกได แตสำาหรบการระบ passwordตอทาย option -p จะตองไมมชองวางระหวาง -p และ password (ซงในทนคอ ’secret’)
อกวธการหนงในการระบ account และ password สำาหรบคำาสง mysql โดยไมตองใช option-u และ -p บน command line ของ shell กคอ ใชวธการสราง config file สำาหรบคำาสงmysql โดยจะมชอวา .my.cnf โดยจะเกบอยใน home directory ของผใช และในไฟลดงกลาวกจะม config ดงตอไปน
USE exam; INSERT INTO student VALUES(1, 'Chatchai J'); INSERT INTO student VALUES(2, 'Kraisorn J'); INSERT INTO mark VALUES(1, 30, 30); INSERT INTO mark VALUES(2, 40, 40);
cat dataset1.sql | mysql u root p
cat createdb.sql | mysql u root psecret
[client] user = root password = secret
โดย [client] จะเปนการระบ section ของ config วาจะใชสวนทตามมาสำาหรบ mysql clientและ user = root กบ password = secret กจะอยใน format ของ key = value สำาหรบระบชอ account และ password ของ account ทจะใชตามลำาดบ ซงนอกเหนอ จาก user และpassword แลว key อนๆ ทสามารถกำาหนดเพมเขาไปใน .my.cnf ไฟลได กม host และdatabase เปนตน ซงคาตางๆเหลาน ถาผใชเรยกใชคำาสง mysql บน shell command lineโดยไมไดระบ option สำาหรบการกำาหนดคานนๆ กจะใชคาจาก config น แตถามการระบเปนoption บน command line กจะใชจาก command line
10.4 การสรางแอคเคาทใหมในการใชงาน Database โดยทวไปแลวจะไมนยมใช root account สำาหรบการจดการกบขอมลใน database โดยตรง แตมกจะใช root account สำาหรบการสราง database ขนมาใหม และสราง account ขนมาสำา หรบ application ทจะใช database นนๆ ในสวนของการสรางaccount ขนมา และกำาหนดสทธใหในการจดการ database นนๆได สามารถใชคำาสง grantprivileges จากคำาสง mysql ได ยกตวอยางเชน ตองการสราง account ทมชอวา ’teacher’สำาหรบจดการกบ database โดยมสทธในการจดการและแกไขขอมลตางๆใน database ชอexam ทงหมด กสามารถใชคำาสงตอไปน
คำาสงนจะเปนการสราง account, กำาหนด password ของ account และกำาหนดสทธในการจดการกบ database ในคำาสงเดยว ในทน สวนของการระบ account จะเปน ’teacher’@’%’ซง ’teacher’ คอชอของ account ทจะใหใชและ ’%’ จะเปนการระบ host ทสามารถเขามาใชงานได ซง ’%’ หมาย ถง host ใดๆไมจำากด ในกรณทตองการจำากด host กใหแทน ’%’ ดวยชอhost สวนเครองหมาย ’@’ จะใช เปนตวแบงระหวางชอ account กบชอของ host
สวนของ password จะระบ ในส วนของ IDENTIFIED BY ซ งใน ทน กำา หนดให account’teacher’ ม password เปน ’classroom’
GRANT ALL PRIVILEGES ON exam.* TO 'teacher'@'%' IDENTIFIED BY 'classroom';
10.5 การแกปญหากรณลมรหสผานของรทของมายเอสควแอลเซรฟเวอร
ปญหาหนงซงมกจะเกดขนในการใชงาน MySQL Server สำาหรบระบบทไมมการเปลยนแปลงตวDatabase บอยๆ กคอการลม password ของ root account ซงเหตการณนเกดขนเนองจากหลงจากการ setup database เสรจเรยบรอยแลว กไมมการใช root account อกเปนเวลานาน
ในกรณนสามารถแกปญหาไดโดยหยดการทำางานของตว MySQL Server และใหเรมทำางานใหมในสภาวะซงไมม privileges ซงใน mode นผดแลสามารถใช account ของ root ไดโดยไมตองใส password โดยการใชคำาสง ดงตอไปน
ตว mysqld จะทำางานใน forground mode ซงจะตองเปด terminal อก terminal หนงเพอเรยกใชคำาสง mysql เพอเปลยน password โดยใชคำาสงดงน
ซงเปนการแกไข password ใน table ทชอ user ของ database mysql ซงเปน databaseหลกทใชในการ ควบคม account ของ MySQL Server เอง และ password ทจะกำาหนดใหกบaccount root ใหมในทน คอ ’secret’
หลงจากนน กสามารถหยดการทำางานของ mysqld ททำางานอยใน terminal เดมโดยการกดปมControl+
และ สงให MySQL Server เรมตนทำางานใหมตามปกต โดยการใชคำาสง
10.6 การแบคอพและรสตอรดาตาเบสdatabase ของ MySQL สามารถ backup ใหอย ใ นล กษณะไฟล ไ ด โดยการ ใชคำา ส ง
service mysql stop mysqld skipgranttables
( echo n "UPDATE mysql.user SET PASSWORD=PASSWORD('secret') " echo "WHERE USER='root';" ) | mysql
service mysql start
mysqldump ซงสามารถ เลอก dump เฉพาะ database หรอ table ใด table หนงของdatabase หรอทกๆ database ทมได โดยทจะใชสทธของ account เชนเดยวกบการใชงานdatabase นนคอ อาจจะใชการระบ account กบ password ผาน option -u และ -p ตามลำาดบ หรอจะใช account กบ password ซงระบไวในไฟล .my.cnf
คำาสงตอไปนจะ backup database หลกของ MySQL Server ลงไปเกบไวในไฟลชอ mysql.sql
คำา สงตอไปนจะ backup ทกๆ database ทมอยบนเครอง server ลงไปเกบไวในไฟล ชอall-db.sql
และการ restore database จากไฟลท backup เอาไวกสามารถใชคำาสง mysql ในการ restoreได เชน เมอตองการ restore database หลกของ MySQL Server จากไฟล mysql.sql กจะใชคำาสง
โดยท ’mysql’ ตวสดทายของบรรทดคำาสงคอ ชอของ database ซงจะตองบอกในกรณทเปนการ backup เฉพาะ database แตในกรณทเปนไฟล all-db.sql ซง backup จากทกๆdatabase สามารถใชคำาสง
โดยไมตองระบชอของ database ใดๆ เพราะในไฟล SQL จะมคำาสงซงใชในการสราง databaseรวมอยดวยแลว
mysqldump u root psecret mysql > mysql.sql
mysqldump u root psecret alldatabases > alldb.sql
cat mysql.sql | mysql u root psecret mysql
cat alldb.sql | mysql u root psecret
10.7 การใชพเอชพมายแอดมน สำาหรบจดการมายเอสควแอลเซรฟเวอร
phpMyAdmin59 เปน application ซงใชในการจดการ database ซงพฒนา โดยใชภาษา PHPซงจะตองใชงานอยบน Web Server จดเปนเครองมอสำาหรบจดการ MySQL Server ทนยม กนมากทสดตวนง เนองจากมลกษณะเปน GUI client โดยสามารถใช Web Browser ใดๆในการจดการกบ Database บน MySQL Server ได
ในทนจะกลาวถงเฉพาะการตดตง phpmyadmin บน Debian
สำาหรบ Debian จะม package ของ phpmyadmin และ package อนๆทจำาเปนจะตองตดตงกอนเพอทจะใหใชงาน phpmyadmin ได กำาหนดเปนรายการ Dependency เอาไวแลว เมอเรยกใชคำาสง
Debian กจะตดตง package อนๆทจำาเปนใหโดยอตโนมต (ในกรณทไมม package เหลานนตดตงเอาไวกอนแลว) ซง package เหลานนคอ Web Server, PHP และ library อนๆทจำาเปน
เมอตดตงเสรจเรยบรอยแลวกจะสามารถ จดการกบ MySQL Server บนเครอง Server ดงกลาวโดยใช Web Browser ใดๆ (ซงควรจะเปน GUI Web Browser ซงรองรบ frame) ไปท URLของ Server ตามดวย /phpmyadmin หรอในกรณทตองการทดสอบบนเครอง Server เอง อาจจะใช text mode Web Browser เชน w3m หรอ lynx โดบกำาหนด URL เปน address ของlocalhost ได ตวอยางเชน
เมอใช lynx เปน Web Browser เปนตน
59 http://www.phpmyadmin.net/home_page/index.php
aptget install phpmyadmin
lynx http://localhost/phpmyadmin
บทท 11 การตดตง NTP Server
11.1 การกำาหนดเวลาบนเครองคอมพวเตอรระบบคอมพวเตอรสมยใหมจะมชปวงจรรวม (Integrated Circuit -- IC) บนเมนบอรดใชกำาหนดเวลาของระบบใหมความถกตอง ซงทำาใหเซรฟเวอรหรอเครองคอมพวเตอรสวนตวของผใชงานทวไป สามารถแสดงเวลาไดอยางถกตองพอสมควร แตอยางไรกตาม โดยลกษณะตามธรรมชาตของชปวงจรรวมโดยทวไปซงใช ครสตล (Crystal) เปนตวกำาหนดความถ กจะมคาความผดพลาดจำานวนหนงทจะสะสมมากขนเรอยๆเมอเวลาผานไป คาเวลาผดพลาดสะสมนถาไมมการปรบคาเวลาใหถกตองกจะทำาใหการทำางานของคอมพวเตอรในเครอขายมปญหา เนองจากเวลาของเครองไมตรงกน สำาหรบอปกรณคอมพวเตอรสมยใหมเชน สมารทโฟน (Smartphone) โมไบลอนเทอรเนตดไวซ (MID) ซงมตวอปกรณรบสญญาณจพเอส (GPS) อย ปญหานกจะไดรบการแกไข โดยอปกรณรบคาเวลาทถกตองจากนาฬกาจพเอส (GPS Clock)60 ของดาวเทยมซงมตวกำาหนดเวลาเปนนาฬกาอตอมมค (Atomic Clock)61 ทมคาความเทยงตรงสง
แตสำาหรบเครองคอมพวเตอรทใชงานโดยทวไปมกจะไมมอปกรณชนดนอย เนองจากจะยงยากในการตดตงอปกรณสำาหรบรบสญญาณจพเอส และมวธการอนๆทสามารถทดแทนได
11.2 เนทเวรคไทมโปรโตคอล (Network Time Protocol)สำาหรบคอมพวเตอรโดยทวไป ทไมมอปกรณทใชกำาหนดเวลาทมความเทยงตรงสงอยบนตวเอง แตสามารถเชอมตอกบเครอขายอนเทอรเนตได กสามารถใชเนทเวรคไทมโปรโตคอล (NetworkTime Protocol)62 สำาหรบการกำาหนดเวลาใหกบเครองตนเอง โดยการตดตอกบ เอนทพเซรฟเวอร(NTP Server) บนอนเทอรเนต เพอรบคาเวลาทถกตองมาปรบแตงคาเวลาของตนเองได เอนทพเซรฟเวอรจะใชในการซงโครไนซเวลา (synchronize time) ระหวางคอมพวเตอรทเปนเซรฟเวอรดวยกน โดยมการจดลำาดบชน (hierachy) คอมพวเตอรลำาดบชนบนสดซงเรยกวาไทมเซรฟเวอรสแตรตมหนง (Stratum 1 Time Server) จะเชอมตอกบอปกรณกำาหนดเวลาทมความเทยงตรงสง เชนนาฬกาจพเอส (GPS clock) นาฬกาอตอมมค (Atomic Clock) หรอ นาฬกาเรดโอ(Radio Clock) โดยจะเรยกอปกรณกำาหนดเวลาเหลานวา เซอปกรณสแตรตมศนย (Stratum 0
60 http://en.wikipedia.org/wiki/GPS_clock61 http://en.wikipedia.org/wiki/Atomic_clock62 http://en.wikipedia.org/wiki/Network_Time_Protocol
Device)
คอมพวเตอรซงซงโครไนซเวลาจากไทมเซรฟเวอรสแตรตมหนง กจะมสถานะเปนไทมเซรฟเวอรสแตรตมสอง (Stratum 2 Server) และคอมพวเตอรซงซงโครไนซเวลาจากไทมเซรฟเวอรสแตรตมสอง กจะเปนไทมเซรฟเวอรสแตรตมสามตอไปตามลำาดบ อยางไรกตามในการใชงานเนทเวรคไทมโปรโตคอล มกจะไมไดเชอมตอกบไทมเซรฟเวอรเพยงเครองเดยว ดงนนจงไมไดหมายความวาเซรฟเวอรทมคาสแตรตมสงกวา จะมคาเวลาไมเทยงตรงหรอไมนาเชอถอเทาเซรฟเวอรทมคาสแตรตมทตำากวา63
สำาหรบเอนทพเซรฟเวอรซงใชงานบนเดเบยน จะทำาหนาทเปนทงเซรฟเวอรและไคลเอนทไดในเวลาเดยวกน (ตามการออกแบบของเนทเวรคไทมโปรโตคอล นนคอเปนไคลเอนทของสแตรตมทตำากวา และเปนเซรฟเวอร ของสแตรตมทสงกวา) แพกเกจสำาหรบการตดตงเอนทพเซรฟเวอรจะใชแพกเกจ ntp ตดตงไดดงน
11.3 การกำาหนดคาคอนฟกสำาหรบเอนทพเซรฟเวอรคาคอนฟกโดยปรยาย (default config) ของ ntp จะสามารถใชงานไดทนทโดยไมตองแกไขเพราะใชพล (pool) ของเอนทพเซรฟเวอร64 ทมอาสาสมครใหบรการจากทวโลกโดยการใชเทคนคการกำา หนดดเอนเอส (DNS) แบบราวดโรบน (round-robin) ทำา ให เอนทพเดมอน (ntpdaemon) ซงใช คอนฟกแบบปรยายสามารถตดตอกบเซรฟเวอรเหลานไดเลยโดยไมตองปรบเปลยนคาใดๆ แตอยางไรกตามเราสามารถปรบคา คอนฟกเพอใหตวเดมอน เลอกใชเอนทพเซรฟเวอรทอยในประเทศไทยได ซงจะทำาใหลดเวลาทใชในการตดตอลง
การแกไขคอนฟกทำาไดโดยแกไขไฟล /etc/ntp.conf โดยเพมบรรทด server เขาไปในไฟลดงน
โดยท
• ntp.ku.ac.th เปนเอนทพเซรฟเวอรของมหาวทยาลยเกษตรศาสตร
• time.navy.mi.th เปนเอนทพเซรฟเวอรของกองทพเรอ 63 http://en.wikipedia.org/wiki/Network_Time_Protocol64 http://www.pool.ntp.org/en/
aptget install ntp
server ntp.ku.ac.th server time.navy.mi.th server time1.nimt.or.th server time2.nimt.or.th
• time1.nimt.or.th และ time2.nimt.or.th เปนเอนทพเซรฟเวอรสถาบนมาตรวทยา
เซรฟเวอรทง 4 เปนไทมเซรฟเวอรสแตรตมหนง
เมอตดตงปรบแกคอนฟกแลวเราสามารถ เรมตนการทำางานของไทมเซรฟเวอรโดยใชคำาสง
11.4 การตรวจสอบการทำางานของเอนทพเซรฟเวอรการตรวจสอบการทำางานและสถานะของการซงโครไนซเวลา จะใชคำาสง ntpq ดงน
ซงตวเลอก -p จะแสดงรายการของเซรฟเวอรแตละตวทซงโครไนซอย และ -n จะใหแสดงเฉพาะไอพแอดเดรส (เพอไมใหเสยเวลาในการคนหาชอแบบยอนกลบ) ซงตวอยางของผลจะไดดงน
ในสภาวะเรมตนกอนทเอนทพเซรฟเวอรจะซงโครไนซเวลากบเอนทพเซรฟเวอรตวอนๆได สถานะของ refid ของเซรฟเวอรแตละตวจะมสถานะเปน init และจะกำาหนดคา stratum ของเซรฟเวอรนนเปน 16 ซง เปนคาสงสดของคาปรยายทกำาหนดไวสำาหรบเอนทพเซรฟเวอรบนลนกซ
และเมอเอนทพเซรฟเวอรตดตอกบเอนทพเซรฟเวอรอนๆไดแลว ผลของคำาสงกจะไดดงตวอยาง
service ntp start
ntpq pn
$ ntpq pn remote refid st t when poll reach delay offset jitter ============================================================================== 118.175.67.83 .INIT. 16 u 64 0 0.000 0.000 0.000 203.185.69.60 .INIT. 16 u 64 0 0.000 0.000 0.001 203.185.69.59 .INIT. 16 u 64 0 0.000 0.000 0.001 203.158.111.32 .INIT. 16 u 64 0 0.000 0.000 0.001 158.108.32.17 .INIT. 16 u 64 0 0.000 0.000 0.001 2001:1b10:100:: .INIT. 16 u 64 0 0.000 0.000 0.001 158.108.7.157 .INIT. 16 u 64 0 0.000 0.000 0.001
$ ntpq pn remote refid st t when poll reach delay offset jitter ============================================================================== 118.175.67.83 .PPS. 1 u 103 128 357 49.985 48.998 118.254 *203.185.69.60 .PPS. 1 u 66 128 377 18.855 38.831 17.909 +203.185.69.59 .IRIG. 1 u 79 128 377 19.143 15.697 26.020 124.109.2.169 158.108.212.157 3 u 83 128 377 18.858 50.755 25.847 +158.108.7.157 .GPS. 1 u 51 128 377 17.261 11.196 26.233 x2600:3c01::f03c 69.25.96.13 2 u 62 128 177 309.405 82.926 17.542 158.108.212.157 158.108.96.32 2 u 44 128 377 16.833 59.279 34.745
โดยในคอลมนแรกคา remote จะแสดงไอพแอดเดรสของเอนทพเซรฟเวอรทมการตดตอดวยโดยตวอกษรแรก ทเปนเครองหมาย * จะเปนตวระบวาเพยร (peer) ของเอนทพเซรฟเวอรนคอเซรฟเวอรตวใหน และใน คอลมนทสอง refid จะแสดงวาเวลาอางอง (reference time) ของเซรฟเวอรนนคออะไร ถาเปนไทมเซรฟเวอรซงมคาสแตรตมสงกวาหนง กจะแสดงหมายเลขไอพของไทมเซรฟเวอรซงเซรฟเวอรตวนนใชในการอางอง ซงในกรณมคาสแตรตมเปนหนงกจะแสดงวาอปกรณระบเวลา (reference device) ของเซรฟเวอรนนคออะไร คา st คอ stratum สวนคาdelay, offset และ jitter จะเปนการระบคาเวลาในระดบ milliseconds โดยถามคานอยแสดงวามความถกตองสงกวา คาทมคามากกวา
สำาหรบการตรวจสอบวาเวลาของเครองคอมพวเตอร มคาตางจากเอนทพเซรฟเวอรเทาไร วธการทงายทสดคอใชคำาสง ntpdate ซงตดตงไดดงน
คำา สงน ใชสำาหรบการกำาหนดเวลา สำาหรบเครองคอมพวเตอร ซงไมไดตออย กบเครอขายอนเทอรเนตตลอดเวลามการเชอมตอเปนบางชวง จะใชคำาสง ntpdate ในการรองขอคาเวลาจากเอนทพเซรฟเวอรเพอกำาหนดเวลาของเครอง แตคำาสงน ถาใชกบตวเลอก -q กสามารถใชในการตรวจสอบการทำา งานของ เอนทพเซรฟเวอร ไ ดเชนกน เชน เมอใชคำา ส ง ntpdate กบtime.psu.ac.th
จะแสดงผลวาเอนทพเซรฟเวอรทตรวจสอบมคาสแตรตมเปนเทาไร และในการตดตอระหวางเครองไคลเอนทซงเรยกใชคำาสง ntpdate ไปยงซรฟเวอรนนจะมคา delay และ offset เปนเทาไร
ในการตดตอกบเอนทพเซรฟเวอรอนจะตดตอผานยดพ (UDP) พอรท (port) 123 ดงนน ถาเอนทพเซรฟเวอรมการตดตงไฟรวอล (firewall) ไวหรออยในเครอขายซงมอปกรณไฟรวอล กตองเปดพอรทหมายเลข 123 เพอใหเอนทพเซรฟเวอรอน หรอเครองไคลเอนททตองการซงโครไนซเวลาตดตอเขามาได
aptget install ntpdate
/usr/sbin/ntpdate q time.psu.ac.th server 10.10.3.1, stratum 2, offset 0.000531, delay 0.02629 10 Aug 14:42:46 ntpdate[7436]: adjust time server 10.10.3.1 offset 0.000531 sec
บทท 12 การตดตงอารซงคเซรฟเวอร (Rsync Server)
12.1 การรบสงขอมลระหวางคอมพวเตอรในการรบสงขอมลจำานวนมากระหวางคอมพวเตอรทเชอมตออยบนเครอขาย อนเทอรเนตมวธการอยหลายวธ ตวอยางวธทเปนมาตรฐานวธการหนงกคอการใชเอฟทพเซรฟเวอร (FTP Server) ซงใชสำาหรบการรบสงไฟล (ซงไดกลาวถง ไปแลวในบทของการตดตงเอฟทพเซรฟเวอร) หรออาจจะใชสงผานเซรฟเวอรอนๆ เชนในเซรฟเวอรซงมให บรการซเคยวเชลล (Secure Shell Server)สำาหรบการรโมทลอกอน (Remote Login) กจะสามารถใชคำาสง scp สำาหรบการสงไฟลแบบปลอดภยมการเขารหสขอมล ผานทางซเคยวเชลลเซรฟเวอรไดเชนเดยวกน นอกจากนการใชเวบเซรฟเวอร สำาหรบการสงไฟลแบบทางเดยวกเปนอกรปแบบหนงททำาได
อยางไรกตามการใชวธการตางๆเหลาน มกจะมขอจำากดเมอตองการรบสงไฟลจำานวนมาก หรอมโครงสรางไดเรคตอรการจดเกบไฟลทซบซอน ตวอยางเชน ในกรณทมไฟลจำานวนมาก ผใชตองการสงไฟลทงหมดไปยงเครองคอมพวเตอรอกเครองหนงสามารถทำาไดหลายวธเชน
• ใชคำาสง scp -r สำาหรบสำาเนา (copy) ไฟลทงหมดในไดเรคตอรรวมทงไดเรคตอรยอยไปยงเซรฟเวอรปลายทางซงจะเปนการทำาสำาเนาทละไฟล
• ใชคำาสง tar สำาหรบการสรางไฟลแบบ archive จากไฟลทงหมดในไดเรคตอรเปนไฟลเดยว แลวสงไฟลนนไปยงเครองคอมพวเตอรปลายทาง 65 จากนนรโมทลอกอนไปยงเครองคอมพวเตอรปลายทาง แลวใชคำาสง tar สำาหรบแยกไฟลทงหมดออกมา
ทงสองวธทกลาวมาขางตนสามารถสงไฟลไปยงเครองคอมพวเตอรปลายทางได แตกมปญหาคอถามการเปลยนแปลงขอมลเพยงเลกนอย เชน มการเปลยนแปลงไฟลเพยงไฟลจากไฟลทงหมดในไดเรคตอร การสงขอมลไปใหมโดยใชวธการเดม กจะตองสงขอมลไปเหมอนกบเรมตนสงใหมทงหมดยกเวนผใชจะตองสามารถระบไดวาจะใหสงเฉพาะไฟลใด วธการนจะเปนการเพมความซบซอนของการใชงาน โปรแกรมอารซงค (rsync) จะชวยในการลดการสงไฟลทซำาซอนได
65 ซงอาจจะใช scp หรอ ftp หรอวธการอนๆ
12.2 การตดตงแพคเกจอารซงค (rsync) โปรแกรมอารซงคเปนโปรแกรมแอพลเคชนซงสามารถตดตงไดโดยการใชคำาสง
12.3 การรบสงไฟลโดยใชคำาสงอารซงคอารซงค (rsync)66 เปน โปรแกรมแอพลเคชนซงพฒนามาเพอแกปญหาน โดยในการสงไฟลจำานวนมาก จากเครองตนทางไปยงเครองปลายทางอารซงคจะสรางรายการ (listing) ของไฟลทงหมดทมทงตนทาง และปลายทางเพอนำามาเปรยบเทยบกน ในกรณทเปนการสงไฟลทงหมดครงแรก ซงยงไมมไฟลใดๆทเครองปลายทางเลยอารซงคกจะสงไฟลทงหมดเชนเดยวกบวธการสงไฟลโดยโปรแกรมแอพลเคชนอน แตในกรณทมไฟลเดมอยแลว อารซงคสามารถตรวจสอบไดวามไฟลใดบางทเปลยนแปลงไป และเลอกสงไปเฉพาะไฟลทเปลยนแปลงไปเทานน ทำาใหในการสงไฟลครงตอไป จะลดปรมาณของการสงขอมลใหเหลอเฉพาะเทาทจำาเปน
อารซงคสามารถทำางานไดโดยไมจำาเปนจะตองมการตดตงใหทำางานเปนเซรฟเวอร เพยงแตจะตองมโปรแกรมอารซงคตดตงเอาไวทงบนเครองคอมพวเตอรตนทางและเครองปลายทาง อารซงคสามารถเรยกใชผานซเคยวเชลลเซรฟเวอรได โดยการกำาหนดตนทาง (source) หรอปลายทาง(destination) ของการสงไฟลจะใชรปแบบเดยวกนกบคำาสง scp เชน ถาตองการซงค (sync)ไฟลและไดเรคตอรยอยทงหมด ในไดเรคตอร Documents ไปยงเซรฟเวอรซงมชอวา svr โดยใชสทธของผใชทชอวา user และใหไปเกบในไดเรคตอรปลายทาง /home/user/docs จะใชคำาสงscp ดงน
เมอเปลยนมาใชอารซงค กจะเปลยนเฉพาะคำาสง scp เปน rsync สวนพารามเตอรอนๆสามารถใชในรปแบบเดมได ดงน
67
ซงคำาสงอารซงคกจะใชวธการสงผานซเคยวเชลลเซรฟเวอรไปยงเครองปลายทาง แตเรยกใชอารซงคสำาหรบการเปรยบเทยบรายการของไฟลและสงเฉพาะไฟลทเปลยนแปลงเทานน
66 http://en.wikipedia.org/wiki/Rsync
67 คำาสงทงสองจะใหผลลพธสดทาย เกอบจะเหมอนกน จะตางกนในกรณทม symbolic links อยใน directory
Documents นนซง scp จะ copy ไฟลไปดวยแต rsync จะไม ถาตองการใหผล ออกมาเหมอนกน ในกรณของ rsync
จะตองเพม option ’-L’ เขาไปดวย
aptget install rsync
scp r Documents/ user@svr:/home/user/docs
rsync r Documents/ user@svr:/home/user/docs
12.4 การใชงานอารซงคในแบบเซรฟเวอรคำาสงอารซงคยงสามารถใชงานในลกษณะเซรฟเวอรได ซงวธการนจะตดตอผานโปรโตคอลของอารซงคเอง มขอดคอไมจำาเปนจะตองมแอคเคาท (account) ของผใชงานบนเครองเซรฟเวอรแบบทใชสงผานซเคยวเชลลเซรฟเวอร โดยอารซงคจะเรมตนทำางานโดยใชสทธของรท (root) แลวเปลยนสทธของการทำางานใหเปนผใชอนทมสทธตำากวาได ถามกำาหนดไวในไฟลคอนฟก
การใชงานอารซงคเปนเซรฟเวอรจะตองเรยกใชโปรแกรมโดยใชสทธของรทดงน
ก อน ทจะ ใช ง านอาร ซ งค ในแบบ เซ ร ฟ เวอร จะ ตอ งม คอน ฟก ไฟล ซ ง โ ดย ท ว ไป ค อ/etc/rsyncd.conf หรอในกรณทเกบในตำาแหนงอน อาจจะกำาหนดโดยคำาสงดงน
รปแบบของไฟลคอนฟก rsyncd.conf และพารามเตอรทใชกำาหนดการทำางานของตวเดมอน(daemon) สามารถอานไดจากแมนเพจ (man page) rsyncd.conf(5) โดยทวไปจะมลกษณะคราวๆดงตอไปน
โดยในคอนฟกแตละสวนจะอยในรปของ key = value ในสวนของโมดล (module) จะกำาหนดบรเวณซง อารซงคจะมการรบสงไฟล
การใชงานอารซงคในแบบของเซรฟเวอร จะใหบรการสำาหรบการรบสงไฟลในหลายสวนไดพรอมกน โดยจะเรยกแตละสวนวาโมดลซงหมายถงไดเรคตอรกำาหนดโดยพารามเตอร path
เชนจากตวอยางซงตองการใหผใชซงมชอแอคเคาทเปน user บนเครอง svr สามารถแบคอพ(backup) ขอมลของตนเองในไดเรคตอร Documents บนเครองคอมพวเตอรไคลเอนทไปเกบในไดเรคตอร /home/user/docs บนเครอง svr กจะตองสรางไฟลคอนฟก rsyncd.conf ซงมขอมลดงน
rsync daemon
rsync daemon config=/tmp/rsyncd.conf
... global parameters ... [module] ... module parameters ... [module2] ... module2 parameters ...
• comment จะเปนสวนของคำาอธบายวาโมดลนเกบขอมลใด
• path ระบตำาแหนง (directory) ของโมดล
• read only = false จะระบวา ผใชสามารถเขยนหรอแกไขขอมลในโมดลได (คาโดยปรยายจะเปน true นนคออานไดอยางเดยว)
การใชงานคำาสงอารซงคกบอารซงคเซรฟเวอรจะใชคำาสง ดงน
สำาหรบแสดงรายการโมดลตางๆทมอยบนเซรฟเวอร และในการเลอกทจะซงคกบขอมลในโมดลใดกจะใชชอของโมดลตอทาย
จากตวอยาง ในการซงคขอมลของผใชจากเครองไคลเอนทไปเกบบนเครองเซรฟเวอรกจะใชคำาสง
กรณทขอมลบนเครองคอมพวเตอรสญหาย ตองการทจะเอาไฟลซงเกบไวบนเครอง svr กลบมากเพยงเปลยนตำาแหนงของตนทาง (source) และปลายทาง (target) ไดเปน
กจะไดขอมลทแบคอพเอาไวกลบคนมา
uid = 0 gid = 0 [docs] comment = backup for user's Documents/ path = /home/user/docs read only = false
rsync host::
rsync host::module
rsync a Documents/ svr::docs/
rsync a svr::docs/ Documents/
ภาคผนวก: การตดตง Debian Squeezeการตดตงระบบปฏบตการแบบ Debian Linux สามารถทำาไดหลายวธ สามารถเลอกทจะตดตงผานสอประเภทตางๆไดหลายแบบ แบบทเปนทนยมมากทสดคอการใชวธการ Boot และตดตงจาก CDROM เนองจากตว CDROM Drive แทบทจะเปนอปกรณมาตรฐานสำาหรบเครองคอมพวเตอรแบบ Personal Computer ทวไปไมวาจะเปนแบบ Desktop หรอ Notebook วธการตดตงระบบปฏบตการจาก CDROM เปนวธการทใชกนอย ทวไปในการตดตงระบบปฏบตการสมยใหม ซงผใชคอมพวเตอรทวไปมกจะคนเคยกนด
โดยลกษณะของการเผยแพร (distribute) ระบบปฏบตการและแอพลเคชนโปรแกรม แบบOpen-Source ซงแตกตางจากซอฟตแวรแอพลเคชนและระบบปฏบตการแบบเชงพาณชย ซงทำาให Open-Source มการ เปลยนแปลง ทเรวกวาทงในการปรบปรงตวซอฟตแวรเอง หรอการแกปญหา security ทำาใหการบนทก สวนของระบบปฏบตการ หรอแพคเกจของโปรแกรมแอพลเคชนลงบนแผน CDROM มกจะเปนเรองไมคมคา เนองจากขอมลบนแผนนน มกจะลาสมยภายในเวลาไมนาน ดงนนแนวทางในการปฏบตสำาหรบการ ใชงานระบบปฏบตการแบบ Open-Sourceกคอ จะใชวธการ download แพคเกจของโปรแกรมจาก แหลงสำา เนาแพคเกจ (Debianpackage mirror) มาตดตงใหม หรอ ทดแทนโปรแกรมเดมทตดตงอย ทลาสมยไปแลว ซงวธการนถกนำามาใชทงในกรณทตดตงลงบน เครองคอมพวเตอรใหม หรอปรบปรงระบบ เดมทมตดตงเอาไวแลว
วธการตดตง Debian Linux โดย download แพคเกจของโปรแกรมทงหมดจากแหลงสำาเนาแพคเกจ ยงตองการ วธการ boot เครองคอมพวเตอร เพอใหระบบสำาหรบการตดตงเรมตนทำางาน ในทน จะใชการ boot จาก CDROM ซงแผน CDROM ทใชสำาหรบการตดตงในแบบนจะตางจากแผน CDROM ซงใชสำาหรบการตดตงแบบทวไป สำาหรบแผนทใชในการตดตงแบบทวไปนน มกจะมสวนของโปรแกรม รวมอยบนแผน CDROM (หรอ DVDROM) จนใชเนอทเตมแผนปกต ซงสามารถตดตงระบบปฏบตการ และโปรแกรมพนฐาน จากแผน CDROM ไดเลย ในขณะทแผนCDROM สำาหรบ boot และตดตงผาน เครอขาย จะมเฉพาะสวนของระบบปฏบตการและโปรแกรมเรมตนสำาหรบการตดตงเทานน สวนของแพคเกจโปรแกรมทงหมด จะ download ผานระบบเครอขาย ทำาใหขนาดของแผน boot น จะมขนาดเลกกวาแผน CDROM สำาหรบการตดตงแบบปกตมาก (สำาหรบ Debian Squeeze dist จะมขนาดราว 16 MB เมอเทยบกบ ขนาดประมาณ 680MB ของ CDROM สำาหรบตดตงแบบปกต)
แหลงสำาเนาแพคเกจของโปรแกรมสำาหรบ Debian Linux อาจจะเปน FTP Server หรอ WebServer (ซงอาจจะเปนเซรฟเวอรเดยวกน แตใหบรการทงสองโปรโตคอล ) สำาหรบในทนจะเลอกใชแหลงสำา เนา แพคเกจเปน Web Server ทชอ ftp.th.debian.org ซงเปน Official Debianmirror ของ ประเทศไทย โดยขนตอนของการตดตงจะเปนดงน
• download debian installer image จ า กhttp://ftp.th.debian.org/debian/dists/testing/main/installer-i386/current/images/netboot/mini.iso หรอ แหลงสำาเนาแพคเกจทอน โดยเลอก dist ของ Debian และสถาปตยกรรมของโปรเซสเซอร ตามความเหมาะสม ในทนเลอกใช สถาปตยกรรมของCPU เปน i386 ซงเปนสถาปตยกรรมทแพรหลาย ทสดบนเครองคอมพวเตอรแบบ PC ในปจจบน (สำาหรบเครองคอมพวเตอรรนใหมๆ อาจจะใชสถาปตยกรรม ของ CPU แบบAMD64 ได ซงจะทำาใหสามารถ ใชประสทธภาพของ CPU ไดสงกวา แต i386 สามารถ ใชงานไดบน CPU ทรองรบ AMD64 ดวย) สวน dist ของ Debian ในทนเลอกใช testingเนองจาก ในชวงเวลาทกำาลงเขยนรายงานฉบบน Debian อยในชวงของการ เปลยนผานจาก Debian Stable ปจจบนซงใชรหสของ dist วา Lenny ไปเปน dist ใหมทมรหสวาSqueeze ซงขณะนยงอยใน testing
ในสภาวะปกต การตดตง Debian สำาหรบใชงานเปน Server ควรทจะเลอกใช dist เปน Stableมากกวาทจะเปน Testing เนองจากมเสถยรภาพของระบบปฏบตการและโปรแกรมสงกวา ยกเวนเฉพาะในกรณทม features บางอยางทตองการจากเคอรเนลของระบบปฏบตการ หรอมแพคเกจของโปรแกรม ซงไมมอยใน dist ทเปน Stable ซงในกรณนนกสามารถใช dist Testing ได
• ใชซอฟตแวรสำาหรบเขยน image ท download มาลงใน CD และใช CD แผนนนสำาหรบboot เครอง
ในตวอยางทจะแสดงตอไปจะใช VirtualBox สำาหรบแสดงการตดตง Debian Linux บนเครองคอมพวเตอรแบบ PC เพอความสะดวกในการสราง Screen Shot และ บรรยายประกอบภาพโดยเรมจากขนตอนแรกทตดตง ไปจนกระทงถงขนตอนของการ Reboot เครองใหม ซงหลงจากนน เครองทตดตง Debian Linux กพรอมทจะใชงานได
เรมจากการ boot เครองดวยแผน CD เครองจะอานระบบปฏบตการ Linux และเรมตนทำางานสวนของโปรแกรมทมอยบนแผน CD คอโปรแกรมสำาหรบตดตง ซงจะเขาสหนาจอแรกทจะตงคำาถาม กบผใช ดงรป รปท 10: เรมตนการตดตง Debian Squeeze
ในกรณของการตดตงแบบทวไป กจะเลอกตวเลอก Install สำาหรบเรมตนการตดตง โดยการกดปมEnter สามารถใชคยลกศรในการเลอกเมนอนๆได สวนของ Advanced Options จะใชสำาหรบผใชทมประสบการณ ในการตดตงมากอนแลว เชนตองการเลอก Desktop Environment แบบอนๆทไมใช Gnome Desktop หรอตองการตดตงแบบอตโนมต หรอจะตองการใชแผน boot นในลกษณะอนๆ เชน boot เครองใน rescue mode แทนทจะเปนการตดตงแบบทวไป เปนตนสำาหรบในกรณนเมอเลอก Install แลว กจะเขาสจอภาพถดไป ซงจะเปนการเลอกใชภาษา ดงรป105
รปท 10: เรมตนการตดตง Debian Squeeze
คาโดยปรยายจะเปนภาษาองกฤษ (English) แตสำาหรบ Debian Squeeze ในการตดตงแบบText Mode จะรองรบภาษาไทยดวย ซงสามารถเลอกภาษาไทย (Thai) ไดโดยการใช ปมลกศรเลอน หรอ กดปมตวอกษร ’T’ สองครง ดงรป รปท 12: เลอกใชภาษาสำาหรบการตดตงเปนภาษาไทย
รปท 11: เมนเลอกภาษาสำาหรบการตดตง คา default เปนภาษา English
ขนตอนตอไปกจะเปนการเลอกตำาแหนงทตง (Location) ซงจะระบวาเครองคอมพวเตอรนอยทใดซงจะใชสำาหรบการระบเขตเวลา (Time Zone) และภาษาทใช (Locale) ซงถาเราเลอกใช ภาษาไทยสำาหรบการตดตง ระบบกจะใชคาตำาแหนงโดยปรยายเปนประเทศไทยเชนเดยวกน ดงรป รปท13: เลอกใชภาษาสำาหรบการตดตงเปนภาษาไทย
รปท 12: เลอกใชภาษาสำาหรบการตดตงเปนภาษาไทย
ขนตอนตอไปจะเปนการเลอกชนดของแปนพมพ ดงรป รปท 14: เลอกชนดของแปนพมพ
รปท 13: เลอกใชภาษาสำาหรบการตดตงเปนภาษาไทย
หลงจากนนตวตดตงจะตรวจสอบ Hardware ของเครอง เพอเลอกใช Driver ทเหมาะสม สำาหรบการตดตอกบเครอขาย สำา หรบเครองแบบ Notebook โดยทวไปจะม ทง Wireless และEthernet ในการตดตง การใชงาน Ethernet จะใชงานไดสะดวกกวา เมอเลอกใช Driver ทเหมาะสมแลว ตวตดตงกจะรองขอ IP address โดยใช DHCP ซงในทนจะสมมตวา ในเครอขายทใชงาน สำาหรบการตดตงครงน เครองสามารถรองขอ address ไดโดยไมมปญหา (ในกรณทมปญหา ตวตดตงจะใหผใชกำาหนด IP Address เอง) ขนตอนตอไปจะเปนการกำาหนด ชอเครองโดยตวโปรแกรมตดตงกำาหนดคาปรยายของชอเครองเปน debian ดงรป รปท 15: กำาหนดชอเครอง
รปท 14: เลอกชนดของแปนพมพ
สวนชอ domain name จะใชคาท DHCP server สงมาให ดงรป รปท 16: กำาหนดชอ domain
รปท 15: กำาหนดชอเครอง
ขนตอนถดไปกจะเปนการเลอก แหลงสำาเนาแพคเกจ ซงแบงแยกตามประเทศ ดงรป รปท 17: แหลงสำาเนาแพคเกจสำาหรบแตละประเทศ
รปท 16: กำาหนดชอ domain
สำาหรบประเทศไทย จะมแหลงสำาเนาอยมากกวาทปรากฏอยในรายการทแสดงไว แตทปรากฏอยจะเปนแหลงทได ลงทะเบยนไวกบ Debian Mirror
ในการตดตงควรจะเลอกแหลงทอยใกลทสด (บนเครอขายอนเตอรเนท) ในทนจะเลอกใช OfficialMirror ของประเทศไทย คอ ftp.th.debian.org ดงรป รปท 18: เลอกแหลงสำาเนาแพคเกจของเดเบยน
รปท 17: แหลงสำาเนาแพคเกจสำาหรบแตละประเทศ
ในขนตอนถดไปตวตดตงจะถามขอมลของ proxy ซงใชในกรณทเครอขายทเครองคอมพวเตอร จะตองตดตอกบ แหลงสำาเนาแพคเกจผาน proxy ในกรณทไมจำาเปนตองใชกไมตองกรอกขอมลใดๆดงรป รปท 13: เลอกใชภาษาสำาหรบการตดตงเปนภาษาไทย
รปท 18: เลอกแหลงสำาเนาแพคเกจของเดเบยน
หลงจากนนตวตดตงจะเรม download โปรแกรมเพมเตมเพอทำางานในการตดตงตอไป ดงรป รปท 20: ตวตดตงเรม download โปรแกรมตดตงพนฐาน
รปท 19: กำาหนดคาของ proxy
หลงจากนนจะเปนการกำาหนดคารหสผานของ root ซงเปนผใชทมสทธสงสดของระบบ และสรางผใชใหมขนมา
ใน distribution อนๆของ Linux เชน Ubuntu จะเลอกใชวธการระงบการใชงาน root โดยการใช password แตจะใหสรางผใชขนมา และผใชนนสามารถใชสทธของผดแลระบบได โดยใชผานคำาสง sudo สำาหรบ Debian สามารถเลอกทจะใช root โดยการกำาหนดรหสผานให หรอจะใชวธการแบบเดยวกบ Ubuntu โดยไมกำาหนดรหสผานให root และจะตองสรางผใชขนมา และใชคำาสง sudo เมอตองการสทธของ root แทน ดงรป รปท 21: กำาหนดรหสผานให root
รปท 20: ตวตดตงเรม download โปรแกรมตดตงพนฐาน
ในกรณทกำาหนดรหสผานให root จะตองยนยนรหสผานนนซำาอกครงหนง ดงรป รปท 22: ยนยนรหสผานของ root ซำา เพอเปนการตรวจสอบวา รหสผานทใสเขาไปนนถกตอง
รปท 21: กำาหนดรหสผานให root
ขนตอนตอไปจะเปนการสรางผใชขนมาใหม โดยตวตดตงจะถามชอเตมของผใช เพอทจะใชชอนนสำาหรบกำาหนดเปนชอบญช (login name) ดงรป รปท 23: กำาหนดชอเตมของผใช
รปท 22: ยนยนรหสผานของ root ซำา
ซงในทนควรจะใชเปนภาษาองกฤษ สำาหรบ ชอบญช จะตองเปนภาษาองกฤษเรมตนดวยตวพมพเลก และตามดวยตวพมพเลกกบตวเลขเทานน ไมสามารถใช ชองวาง หรอสญลกษณพเศษอนๆไดดงรป รปท 24: กำาหนดชอบญชสำาหรบ login
รปท 23: กำาหนดชอเตมของผใช
หลงจากนนกจะเปนการกำาหนดรหสผาน ซงจะตองยนยนรหสผานนนซำาอกครงเชนเดยวกนกบ ในขนตอนของการกำาหนดรหสผานให root
ในรป รปท 25: กำาหนดรหสผานใหผใชงาน จะเปนการกำาหนดรหสผาน และรป รปท 26: ยนยนรหสผานซำาอกครง จะเปนการยนยนรหสผาน
รปท 24: กำาหนดชอบญชสำาหรบ login
รปท 25: กำาหนดรหสผานใหผใชงาน
หลงจากนนกจะเปนขนตอนของการจดเตรยมพนทสำาหรบจดเกบระบบปฏบตการและแอพลเคชนซงโดยทวไปแลวกจะเปนฮารดดสก เนองจากสถาปตยกรรมของ PC ปจจบนทำาให สามารถ แบงเนอทบนฮารดดสก เปนสวนยอยเรยกวาพารทชน (partition) และสามารถตดตงระบบปฏบตการหลายตวอยรวมกนบนฮารดดสกตวเดยว โดยแยกกนอยหลายพารทชนได ดงนนในขนตอนน ตวตดตงของ Debian จะใหผใชเลอกทจะตดตงไดหลายรปแบบ รวมทงตดตงให Debian ใชงานฮารดดสกรวมกบ ระบบปฏบตการตวอนทตดตงไวกอนแลวได
แตสำาหรบในกรณน จะขอแสดงรปแบบทซบซอนนอยทสดคอ มระบบปฏบตการ Debian Linuxเพยงตวเดยวตดตงอยบนฮาดรดสก และใชเนอททงหมดเกบขอมลไวรวมกน ในพารทชนเดยว ไมมการแบงเปนพารทชนยอย
ในการตดตงจะเรมจากคำาถามสำาหรบการแบงพารทชนดงรป รปท 27: การกำาหนดพารทชนสำาหรบการตดตง
รปท 26: ยนยนรหสผานซำาอกครง
เลอกการตดตง โดยใชเนอททงหมด และไมตองใช LVM (Logical Volume Manager) 68 และไมตองมการเขารหสขอมลใดๆ
ตอจากนนจะเปนการเลอกฮารดดสก ซงหนาตางนมไวกรณสำาหรบเครองทมฮารดดสกหลายตวจะไดระบฮารดดสกตวทตองการตดตง Debian Linux ไดถกตอง แตเนองจากในกรณน มฮารดดสกเพยงตวเดยวจงม ตวเลอกเพยงตวเดยวใหเลอก ดงรป รปท 28: ระบฮารดดสกทจะใชตดตง
68 Logical Volume จะเหมาะสำาหรบการแบงเนอทฮารดดสกเปนสวนยอย และตองการใหสามารถปรบเปลยนขนาดของเนอทในแตละสวนในภายหลงได ซงเหมาะ สำาหรบการใชงานในระดบ Server ซงมการใหบรการขอมลจำานวนมากและอาจจะมการ ปรบเปลยนเนอทสำาหรบการเกบขอมล แตเนองจากมรายละเอยดมากเกนไป ดงนนจะไมกลาวถงในทน
รปท 27: การกำาหนดพารทชนสำาหรบการตดตง
และระบรปแบบของการแบงพารทชนสำาหรบเกบขอมล ดงรป รปท 29: กำาหนดรปแบบของพารทชนทใชเกบขอมล
รปท 28: ระบฮารดดสกทจะใชตดตง
ขนตอนตอไปตวตดตงจะคำานวณเนอทและใหยนยนรปแบบพารทชนทจะสรางบนฮารดดสก ดงรปรปท 30: ยนยนรปแบบการแบงพารทชน
รปท 29: กำาหนดรปแบบของพารทชนทใชเกบขอมล
ในขนตอนเกยวกบการกำาหนดรปแบบของสรางพารทชนบนฮารดดสกทงหมด จะเปนขนตอน ของการเตรยมการแตจะยงไมมการเขยนขอมลจรงลงไปในฮารดดสก เพอทวาในกรณท ผใชเปลยนใจกจะสามารถยกเลกไดโดยไมมขอมลเสยหาย ดงนนในขนตอนตอไป ตวตดตงจะใหยนยนอกครงและจะเขยนรปแบบของการสรางพารทชนลงไปบนฮารดดสกจรงๆ เมอผานขนตอนนจะไมสามารถยกเลกสงททำาได ดงรป รปท 31: ยนยนรปแบบทเลอกไวและเขยนขอมลลงฮารดดสก
รปท 30: ยนยนรปแบบการแบงพารทชน
หลงจากนนตวตดตงกจะเรมกระบวนการของการฟอรแมทพารทชน ดงรป รปท 32: ฟอรแมทพารทชน
รปท 31: ยนยนรปแบบทเลอกไวและเขยนขอมลลงฮารดดสก
ขนตอนถดไป กจะเปนการตดตงระบบปฏบตการและโปรแกรมพนฐานลงบนฮารดดสก ดงรป รปท 33: ตดตงระบบพนฐาน
รปท 32: ฟอรแมทพารทชน
ในระหวางทกำาลงตดตงระบบพนฐานเมอมาถงสวนของการตดตงและปรบแตงคาของคยบอรด(keyboard configuration) จะมการใหเลอกรปแบบ Layout ของการวางตำา แหนงคย บนคยบอรดซงจะม 3 รปแบบคอ เกษมณ, ปตตโชต, และมาตรฐาน มอก-820.2538 ตามลำาดบ ดงแสดงในรป รปท 34: เลอกรปแบบของคยบอรด
รปท 33: ตดตงระบบพนฐาน
หลงจากนนจะเปนการเลอกคยสำาหรบการสลบภาษาระหวางไทยกบองกฤษ ดงรป รปท 35: เลอกคยสำาหรบสลบภาษา
รปท 34: เลอกรปแบบของคยบอรด
เมอผานขนตอนนกจะกลบเขาสการตดตงระบบพนฐานตอ ดงรป รปท 36: ตดตงระบบพนฐานตอ
รปท 35: เลอกคยสำาหรบสลบภาษา
เมอตดตงระบบพนฐานเสรจ กจะเปนขนตอนเตรยมการสำาหรบตดตงซอฟตแวร ดงรป รปท 37: เตรยมการสำาหรบการเลอกและตดตงซอฟตแวร
รปท 36: ตดตงระบบพนฐานตอ
โดยกอนทจะตดตงซอฟตแวรสำาหรบใชงาน ตวตดตงของ Debian จะมแพคเกจทชอวา popconหรอ Popularity Contest ซงใชสำาหรบการเกบขอมลวามแพคเกจใดบาง ทผใชเลอกทจะตดตงและใชงาน เพอทจะสงขอมลกลบไปใหผพฒนาทราบ โดยในสวนนผใชสามารถเลอกทจะใหสงขอมลน กลบหรอไมกได โดยคาปรยายจะเปนไมสงขอมลกลบไป
การเลอกตงคาสำาหรบแพคเกจ popularity-contest ดงรป รปท 38: คำาถามสำาหรบการตงคาใหกบ popularity contest
รปท 37: เตรยมการสำาหรบการเลอกและตดตงซอฟตแวร
หลงจากนนจะเปนการเลอกตดตง ชดซอฟตแวรสำาหรบการใชงาน ผใชสามารถเลอกตดตง แพคเกจแยกแตละตวได แตในขนตอนนจะเปนวธการเลอกตดตง ตามลกษณะการใชงาน โดยคาโดยปรยายจะเปนการตดตงสำาหรบเปน Graphical Desktop ดงรป รปท 39: เลอกชดของซอฟตแวรทจะตดตง
รปท 38: คำาถามสำาหรบการตงคาใหกบ popularity contest
เมอเลอกแลว ตวตดตงกจะเรม download แพคเกจของโปรแกรมแตละตวทมในชดซอฟตแวรและตดตงลงไปจนครบ
ขนตอนสดทายกอนทจะเสรจสนในกระบวนการของการตดตง กคอการตดตง boot loader ซงคาโดยทวไปจะเปนการตดตง grub boot loader ซงสามารถใช boot ทง Linux และระบบปฏบตการอนๆ (ถามตดตงอย) ไดดวย ถามระบบปฏบตการอนทม boot loader อยแลวและไมตองการเปลยน boot loader กสามารถเลอกทจะขามขนตอนนไปได แตสำาหรบในกรณทวไปการใช grubเปน boot loader จะเปนตวเลอกทดทสด ดงรป รปท 40: ตงคาใช grub เปน boot loader
รปท 39: เลอกชดของซอฟตแวรทจะตดตง
เมอตดตง boot loader เสรจแลว การตดตงกถอวาเสรจสมบรณ ตวตดตงจะแสดงขอความสดทาย กอนทจะ reboot เครอง ดงรป รปท 41: เสรจสนกระบวนการของการตดตง
รปท 40: ตงคาใช grub เปน boot loader
รปท 41: เสรจสนกระบวนการของการตดตง