74
ระบบจัดการรักษาความปลอดภัย ภายในกอง 2 ศูนย์รักษาความปลอดภัย กองบัญชาการกองทัพไทย Web management security for Armed Force Security Center ฤทธิเดช แสงแจ่ม Rittidech Sangjam สารนิพนธ์ฉบับนี ้เป็นส่วนหนึ ่งของการศึกษา ตามหลักสูตรวิทยาศาสตร์มหาบัณฑิต สาขาเทคโนโลยีสารสนเทศ บัณฑิตวิทยาลัย มหาวิทยาลัยเทคโนโลยีมหานคร ปีการศึกษา 2553

* 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: * 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

ระบบจดการรกษาความปลอดภย ภายในกอง 2 ศนยรกษาความปลอดภย กองบญชาการกองทพไทย

Web management security forArmed Force Security Center

ฤทธเดช แสงแจม Rittidech Sangjam

สารนพนธฉบบนเปนสวนหนงของการศกษาตามหลกสตรวทยาศาสตรมหาบณฑต

สาขาเทคโนโลยสารสนเทศ บณฑตวทยาลยมหาวทยาลยเทคโนโลยมหานคร

ปการศกษา 2553

Page 2: * 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

หวขอโครงงาน ระบบจดการรกษาความปลอดภย ภายใน กอง 2 ศนยรกษาความปลอดภย กองบญชาการกองทพไทยนกศกษา ฤทธเดช แสงแจมรหสนกศกษา 5217680013ปรญญา วทยาศาสตรมหาบณฑตสาขา เทคโนโลยสารสนเทศพ.ศ. 2553อาจารยควบคมโครงงาน ดร.วรพล ลลาเกยรตสกล

บทคดยอ

ปรญญานพนธฉบบนนำาเสนอเพอศกษาการทำางานของระบบ ไฟรวอลล บนระบบปฎบตการ ลนกส ใหทำางานรวมกบระบบ Layer7 Fitltering ในการวเคราะหโปรโตคอลทสนใจ และตรวจสอบขอมลทผานเขาออกทงหมด ในระบบเครอขาย เพอเพมประสทธภาพของระบบเครอขาย และ รกษาความปลอดภย จาก โปรโตคอลทไมตองการใหใชงานในระบบเครอขาย และทำาการสกดกนมให เขามาในระบบเครอขายตอไป

I

Page 3: * 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

Project Title Web management security for Armed Force Security Center

Student Rittidech SangjamStudent ID 5217680013Degree Master of ScienceProgram Information TechnologyYear 2010Thesis Advisor Dr.Woraphon Lilakiatsakun

ABSTRACT

This project is to present A performance study of Linux-Based on Firewall the system can use coporate Layer7 Fitltering. The method analyze performance of specific protocol and detect all data input and output to system. And fixing some protocol about problem protocol reject form system.

II

Page 4: * 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

กตตกรรมประกาศ

ในการจดทำาปรญญานพนธเรอง ระบบจดการรกษาความปลอดภยเพอศกษาการทำางานของระบบ ไฟรวอลล บนระบบปฎบตการ ลนกส ในการวเคราะหโปรโตคอลทสนใจ และตรวจสอบขอมลทผานเขาออกทงหมด ในระบบเครอขาย เพอเพมประสทธภาพของระบบเครอขาย และ รกษาความปลอดภย จาก โปรโตคอลทไมตองการใหใชงานในระบบเครอขาย และทำาการสกดกนมให เขามาในระบบเครอขายตอไป โดยไดรบความชวยเหลอและคำาแนะนำาตาง ๆ จากบคคลมากมายจนทำาใหโครงงานสำาเรจลลวงไปไดดวยด ทางคณะผจดทำา จงขอกราบของพระคณบคคลตอไปนอยางสง

ขอกราบขอบพระคณบดามารดาอยางสง ผทใหกำาเนดและใหการอบรมดแล อกทงยงคอยใหกำาลงใจ ความหวงใยและความเขาใจเสมอมา

ขอกราบขอบพระคณ ดร.วรพล ลลาเกยรตสกล อาจารยประจำา ภาควชาเทคโนโลยสารสนเทศ คณะวทยาการสารสนเทศศาสตร มหาวทยาลยเทคโนโลยมหานคร และ อาจารย ทปรกษาโครงงานทใหคำาแนะนำา คำาปรกษา ความชวยเหลอตางๆ ตลอดระยะเวลาทพฒนาโครงงาน

ฤทธเดช แสงแจม ผจดทำา

III

Page 5: * 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

สารบญ

บทคดยอภาษาไทย...................................................................................................... บทคดยอภาษาองกฤษ................................................................................................. กตตกรรมประกาศ………………………………………………………………………….. สารบญ……………………………………………………………………………………….สารบญ (ตอ).……………………………………………………………………………….. สารบญรป…………………………………………………………………………………… สารบญรป (ตอ) …….………………………………………………………………………

บทท 1 บทนำา……………………………………………………………………………….. 1.1 กลาวนำา…………………………………………………………………… 1.2 วตถประสงคของโครงงาน………………………………………………...1.3 แนวทางการดำาเนนงาน....………………………………………………..1.4 ขอบเขตของโครงงาน.....……………..………………………………….

1.5 โครงสรางของโครงงาน…………………………………………………..

บทท 2 ทฤษฎทเกยวของกบโครงงาน…………………………………………………….. 2.1 ทฤษฎทเกยวของกบโครงงาน…………………………………………… 2.1.1 ลนกซคออะไร…………………………………………….. 2.1.2 โปรโตคอล TCP/IP……………………….......................

2.1.3 ไฟลวอลล (Firewall)……………………………………… 2.1.4 Network Address Translation (NAT)………………….. 2.1.5 การใชงานคำาสง iptables………………………………… 2.1.6 Linux Traffic Control....................................................

2.1.7 Sudo……………………….………………………………

บทท 3 วธการดำาเนนงาน...........................……………………………………………..3.1 ความตองการพนฐานของโครงงาน……………………………………… 3.2 วธการดำาเนนงานโครงงาน.……………………………………………… 3.3 โครงสรางของระบบ...........……………………………………………… 3.3.1 การกำาหนดไอพบนเครองแมขาย.................................... 3.3.2 การ Compile Kernel Linux ใหมเพอรองรบ Protocol Layer7 Filter……………………………………………..

หนาIIIIIIIVVVIVII

111112

3334

2225262939

4242424242

43

IV

Page 6: * 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

สารบญ (ตอ)

3.3.3 การทดลองคำาสง Layer 7……………….........................3.3.4 การตดตง Portsentry……………………………………..

3.3.5 การเปดการทำางานของ IP_FORWARD......................... 3.3.6 การทำา IP Masquerading ……………………………….

3.3.7 การใชคำาสง tc ในการกำาหนด Bandwidth Limiting....... 3.3.8 การใชคำาสง iptable L7protocol Bandwidth Limiting.....

3.3.9 การจดทำา Web configuration……………………......... 3.4 การใชงาน Web Management……..……………………………………

3.4.1 การเปด Web Configuration ……..………….................3.4.2 การใชงาน Block with Iptable.......................................3.4.3 การใชงาน Block Service with TCPWarppers..............3.4.4 การใชงาน Send Mail Alert to admin...........................3.4.5 การใชงานปม Report Portsentry...................................3.4.6 การใชงานแทบ Firewall………………………………….3.4.7 การใชงานแทบ QoS……………………………………...

บทท 4 การทดลองการทำางาน…………………………………………………………….4.1 โครงสรางของระบบ...……………………………………………………

4.2 การทดลอง...............…………………………………………………… 4.2.1 ผลการทดลองระบบ NetworkAddressTranslator (NAT)

4.2.2 การใชงาน Iptables TCPWarppers และ Sendmail Alert to Admin................................................................

4.2.3 การใชงาน Web-base เพอจดการ Iptable.....................4.2.4 การจดการ QoS…………………………………………..

บทท 5 สรปผลการทดลอง..........................………………………………………………5.1 สรปผลการทดลอง..............................................................................

5.2 ขอเสนอแนะ……………………………………………………………….. 5.3 แนวทางในการพฒนาตอ…………………………………………………..

เอกสารอางอง………………………………………………………………………………..

สารบญรป

หนา464747484849505050515151525253

54545455

566063

65656565

66

V

Page 7: * 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

รปท 2.1 TCP/IP Layer……………………………………………………………………. รปท 2.2 เลเยอรของโปรโตคอลตางๆในชด TCP/IP……………………………………... รปท 2.3 IP Header………………………………………………………………………... รปท 2.4 ARP Packet format…………………………………………………………… รปท 2.5 การ Encapsulate ICMP………………………………………………………… รปท 2.6 ICMP Message………………………………………………………………….. รปท 2.7 UDP Encapsulation…………………………………………………………….. รปท 2.8 UDP header…………………………………………………………………… รปท 2.9 ฟลดทใชในการคำานวณหา UDP checksum…………………………………… รปท 2.10 Encapsulation ของขอมล TCP ใน IP datagram…………………………….. รปท 2.11 TCP Header……………………………………………………………………. รปท 2.12 บลอกไดอะแกรมแสดงการทำางานของระบบไฟลวอลลและ NAT………….......รปท 2.14 Classful Qdisc............................................................................................รปท 2.15 Classless and Classful Combined.............................................................รปท 2.16 FIFO Queuing Discipline...........................................................................รปท 2.17 SFQ Queuing Discipline............................................................................รปท 2.18 PRIO Queuing Discipline...........................................................................รปท 2.19 Flat Link-sharing........................................................................................ รปท 3.1 แสดงระบบเครอขายทใชทดลอง…………………………………………………รปท 3.2 ผลลพธจากคำาสง # iptables –t nat –L…………………………………………. รปท 3.3 ไดอะแกรมของคลาสทสรางในระบบ Linux Traffic Control…..………………. รปท 3.4 แสดงการแกไขไฟล sudoers …………………………………………………… รปท 3.5 แสดง web Interface Traffic Control ………………………..………………… รปท 3.6 แสดงวามการคอนฟกท Block with Iptable…………………………………….รปท 3.7 แสดงวามการคอนฟก TCPWarppers ………………………………………….รปท 3.8 แสดงวามการคอนฟก Send Mail ……………………………………………….รปท 3.9 แสดงรายละเอยดหมายเลขไอพทเขามา สแกนพอรตในระบบ…………………รปท 3.10 แสดงการคอนฟกท Chain Forward……………………………………………รปท 3.11 แสดงการคอนฟกท Chain

หนา469

1213141516172021243233343637384248485050515152525353535455

VI

Page 8: * 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

Input……………………………………………….รปท 3.12 แสดงการคอนฟกทแทป Qos…………………………………………………..รปท 4.1 แสดงระบบเครอขายทใชในการทดลอง……………………..………………….. รปท 4.2 รายละเอยดของการสงแพคเกต………………………………………………….

สารบญรป(ตอ)

รปท 4.3 แสดงการใชงาน Iptable TCPWarppers และ Sendmail Alert to Admin……รปท 4.4 แสดงผลหลงการ setup ให Iptables TCPWarppers และ Sendmail Alert to Admin ทำางาน……………………………………………………………………………………รปท 4.5 แสดงผลการ setup Iptable………………………………………………………รปท 4.6 แสดงผลการ setup TCPWarppers…………………………………………….. รปท 4.7 แสดงผลการ setup Sendmail Alert to admin…………………………………รปท 4.8 แสดงการ Scan Port โดยใชโปรแกรม Nmap………………………………….รปท 4.9 แสดงผลการ Drop IP 58.8.105.4 ของ Iptables……………………………….รปท 4.10 แสดงผลการ Drop IP 58.8.105.4 ของ Portsentry…………………………..รปท 4.11 แสดงอเมลลแจงเตอนการ Scan Port…………………………………………รปท 4.12 แสดงรายละเอยดภายในอเมลลแจงเตอนการ Scan Port……………………รปท 4.13 แสดงการใชงาน Web-base เพอจดการ Iptable…………………………….รปท 4.14 แสดงการสราง Policy ใน Chain FORWARD………………………………รปท 4.15 แสดงการใชงานคอนฟกทแทป Chain Input………………………………..รปท 4.16 แสดงการสราง Policy ใน Chain Input………………………………………รปท 4.17 ผลลพธการใชคำาสง iptable L7protocol Drop Protocal Bittorrent………...รปท 4.18 ผลลพธกอนการใชคำาสง iptable Accept Port 22……………………………รปท 4.19 ผลลพธหลงการใชคำาสง iptable Accept Port 22…………………………….รปท 4.20 แสดงการใชงาน Web-base เพอจดการ QoS………………………………..รปท 4.21 แสดงการสราง Policy ใน Chain Postrouting………………………………..รปท 4.22 แสดงผลการวด Traffic ใน Class ท 2………………………………………..

หนา56

56565757585859596060616161626263636464

VII

Page 9: * 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

บทท 1 บทนำำ (INTRODUCTION)

1.1 กลาวนำาปจจบนอนเตอรเนตมบทบาทสำาคญตอการดำาเนนกจกรรมตางๆ เปนอยางมาก ไมวาจะเปนดาน

การตดตอสอสาร ธรกจ การศกษา หรอวาเพอความบนเทง องคกรตางๆ ทงภาครฐและเอกชน ตางกนำาเอาเนตเวรกของตนเชอมตอเขากบอนเตอรเนตเพอทจะไดรบประโยชนเหลาน การนำาเอาเนตเวรกไปเชอมตอกบอนเตอรเนตนน ทำาใหใครกไดบนอนเตอรเนตสามารถเขามายงเนตเวรกนนๆ ได ปญหาทตามมากคอความปลอดภยของระบบเนตเวรก เชน ทำาใหเกดความเสยงตอการถกเจาะระบบ และ ขโมยขอมล เปนตน รวมไปถงการนำาเครอขายไปใชผดวตถประสงคและใชแบนดวธไปจำานวนมากจนสงผลกระทบกบเครอขายภายในองคกร

จากปญหาดงกลาวจงมแนวคดในการจดทำาระบบรกษาความปลอดภยในเครอขายดวยระบบปฏบตการลนกซ เนองจากระบบปฏบตการดงกลาวเปน open source ซงเรมมการใชงานอยางแพรหลายและประหยดงบประมาณของหนวยงาน1.2 วตถประสงคของโครงงำน

1. ศกษาการจดการรกษาความปลอดภยในเครอขายดวยลนกซ2. พฒนาระบบการรกษาความปลอดภยของเครอขายภายในกอง 2 ศรภ.บก.กองทพไทย

ใหมประสทธภาพและประหยดงบประมาณของราชการ 1.3 แนวทำงกำรดำำเนนงำน

1. ศกษาการรกษาความปลอดภยของระบบเครอขายโดยใช PortSentry 2. ศกษาการรกษาความปลอดภยของระบบเครอขายโดยใช Iptable 3. ศกษาการรกษาความปลอดภยของระบบเครอขายโดยใช TCP Wrappers4. ศกษาการทำางานของคณภาพของการใหบรการ (Quality of Service / QoS)5. ทดสอบประสทธภาพการทำางานระบบรกษาความปลอดภยของเครอขาย6. วเคราะหและสรปผลการทดสอบ7. พฒนาจดทำา Web-Based เพออำานวยความสะดวกในการจดการกบระบบรกษาความปลอดภย8. จดทำาเอกสารโครงงาน

1.4 ขอบเขตของโครงงำน1. ใชควบคมระบบรกษาความปลอดภยผานระบบเวบเบสอนเทอรเฟส2. ปองกนการเขาถงเวบไซตทไมตองการ3. ปองกนการบกรกระบบและตรวจสอบผบกรก4. กำาหนดความเรวของอนเทอรเนตของผใชงาน

1

Page 10: * 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

1.5 โครงสรำงของโครงงำนโครงงานนจะแบงเนอหาออกเปน 5 บท โดยสรปไดดงนบทท 1 เปนการกลาวถงภาพรวมของปญหา แรงจงใจ วตถประสงคของการทำาโครงงาน รวมถง

ประโยชนทคาดวาจะไดรบบทท 2 เปนการกลาวถงทฤษฎพนฐานทนำามาใชในการทำาโครงงานบทท 3 เปนการกลาวถงวธการดำาเนนงานรวมไปถงการตดตงระบบและวธการใชงานบทท 4 เปนการกลาวถงการทดสอบระบบบทท 5 เปนการสรปผลการทดลองและเสนอแนะแนวทางในการพฒนาโครงงานตอไปในอนาคต

2

Page 11: * 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

บทท 2ทฤษฎทเกยวของกบโครงงาน

2.1 ทฤษฎทเกยวของกบโครงงานในสวนของทฤษฎทเกยวของกบโครงงานโดยหลก ๆ แลว ผพฒนาจะอธบายถง

ระบบปฏบตการลนกซ เรองเกยวกบการเครอขายคอมพวเตอรรวมไปจนถงโปรแกรมสำาเรจรปตาง ๆ ทตองใชซงมรายละเอยดดงตอไปน

2.1.1 ลนกซคออะไรอ.บณฑต จามรภต [1],[2] กลาววา ลนกซระบบปฏบตการแบบ 32 บต

(ในปจจบนนมเวอรช น 64 บตแลว) ทเปนยนกซโคลน สำาหรบเครองพซและแจกจายใหใชฟร สนบสนนการใชงานแบบหลากงานหลายผใช (MultiUser-MultiTasking) มระบบเอกซวนโดวส (X Window) ซงเปนระบบการตดตอผใชแบบกราฟฟกทไมขนกบโอเอสหรอฮารดแวรใด ๆ (มกใชกนมากในระบบยนกซ) และมาตรฐานการสอสาร TCP/IP ทใชเปนมาตรฐานการสอสารในอนเทอรเนตมาใหในตว

ลนกซมความเขากนได (Compatible) กบ มาตรฐาน POSIX ซงเปนมาตรฐานอนเทอรเฟสทระบบยนกซสวนใหญจะตองม และมรปแบบบางสวนทคลายกบระบบปฏบตการ ยนกซจากคาย Berkeley และ System V โดยความหมายทางเทคนคแลวลนกซ เปนเพยงเคอรเนล (kernel) ของระบบปฏบตการซงจะทำาหนาทในดานของการจดสรรและบรหารโพรเซส (Process) งาน การจดการไฟลและอปกรณ I/O ตาง ๆ แตผใชท ว ๆ ไปจะรจกลนกซผานทางแอพพลเคชนและระบบอนเทอรเฟสทเขาเหลานนเหน (เชน Shell หรอ X วนโดวส)

ลนกซถอกำาเนดขนในฟนแลนด ป คศ. 1980 โดยลนส โทรวลดส (Linus Trovalds) นกศกษาภาควชาวทยาการคอมพวเตอร (Computer Science) ในมหาวทยาลยเฮลซงก ลนส เหนวาระบบมนกซ (Minix) ทเปนระบบยนกซบนพซในขณะนน ซงทำาการพฒนาโดย ศ. แอนดรว ทาเนนบาวม (Andrew S. Tanenbaum) ยงมความสามารถไมเพยงพอแกความตองการ จงไดเรมตนทำาการพฒนาระบบยนกซของตนเองขนมาโดยจดประสงคอกประการ คอ ตองการทำาความเขาใจในวชาระบบปฏบตการคอมพวเตอรดวย เมอเขาเรมพฒนาลนกซไปชวงหนงแลว เขากไดทำาการชกชวนใหนกพฒนาโปรแกรมอน ๆ มาชวยทำาการพฒนาลนกซ ซงความรวมมอสวนใหญกจะเปนความรวมมอผานทางอนเทอรเนต

ลนกซจะเปนคนรวบรวมโปรแกรมทผพฒนาตาง ๆ ไดรวมกนทำาการพฒนาขนมาและแจกจายใหทดลองใชเพอทดสอบหาขอบกพรอง ทนาสนใจกคองานตาง ๆ เหลานผคนทงหมดตางกทำางานโดยไมคดคาตอบแทน และทำางานผานอนเทอรเนตทงหมด

ปจจบนเวอรชนลาสดของระบบลนกซทไดประกาศออกมาคอ เวอรชน 2.6.2 ขอสงเกตในเรองเลขรหสเวอรชนนกคอ ถารหสเวอรชนหลงทศนยมตวแรกเปนเลขคเชน 2.0.x, 2.2.x เวอรชนเหลานจะถอวาเปนเวอรชนทเสถยรแลวและมความมนคงในระดบหนง แตถาเปน

3

Page 12: * 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

เลขคเชน 2.1.x, 2.3.x จะถอวาเปนเวอรชนทดสอบ ซงในเวอรชนเหลานจะมการเพมเตมความสามารถใหม ๆ ลงไป และยงตองทำาการทดสอบหาขอผดพลาดตาง ๆ อย

2.1.2 โปรโตคอล TCP/IP เรองไกร รงสพล [3] กลาววา โปรโตคอล TCP/IP เปนชดของโปรโตคอลทมการ

พฒนามาตงแตป 1960 โดยมวตถประสงคใหสามารถใชสอสารจากตนทางขามเนตเวรกไปยงปลายทางได และสามารถหาเสนทางทจะสงขอมลไปไดโดยอตโนมต ถงแมวาในระหวางทางอาจจะผานเนตเวรกทมปญหา โปรโตคอลกยงคงหาเสนทางสงผานขอมลไปใหถงปลายทางจนได ในระยะเรมตนโปรโตคอลนใชกนในวงแคบๆ เฉพาะราชการและสถานศกษาของอเมรกา จนในชวงป 1990 จงมการนำามาใชกนในวงแคบ ๆ จดเรมตนของอนเทอรเนตในปจจบน

จากทกลาวมาขางตนจะเหนไดวา TCP/IP นมการออกแบบมาเปนเวลานาน และตงแตป 1960 กมการใชไปปรบปรงไปอยเรอยๆ เพอใหสามารถใชงานไดหลากหลายและมประสทธภาพมากขน แตอยางไรกตามโปรโตคอลนกยงคงมจดบกพรองอกมากมาย ซงจดบกพรองเหลานบางสวนกมไดมผลกระทบรนแรงเทาไรนกในมมมองของนกคอมพวเตอรโดยทวไป แตกลบกลายเปนเครองมอนทรงอานภาพของบรรดาเหลาแฮกเอรทงหลายทหยบฉวยขอบกพรองเหลานมาใชในการโจมตผอน โดยเฉพาะการโจมตแบบ D0S นนลวนแตใชขอบกพรองของ TCP/IP แทบทงสน

การแบงชน (Layering) : TCP/IP เปนชดของโปรโตคอลทประกอบดวยโปรโตคอลยอยหลายตว โดยแตละตวกจะทำาหนาทในแตละชนหรอเลเยอร (layer) ซงรบผดชอบและแปรความหมายของขอมลในแตละระดบของการสอสาร ซงในภาพรวมแลว TCP/IP แบงออกเปน 4 เลเยอรดงรป

Application

Transport

Network

Link

Physical

รปท 2.1 TCP/IP Layer

4

Page 13: * 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

หนาทความรบผดชอบแตละเลเยอรมดงน- Link Layer ในเลเยอรนจะเปนดไวซไดรเวอรททำางานอยบนระบบปฏบตการแตละ

ระบบทำาหนาทรบผดชอบในการรบสงขอมลตงแตระดบกายภาพ,สญญาณไฟฟา จนถงการแปลความจากระดบสญญาณไฟฟาจนเปนขอมลทางคอมพวเตอร โปรโตคอลระดบน เชน Ethernet และ SLIP (Serial Line Internet Protocol)

- Network Layer รบผดชอบในการรบ-สงขอมลในเนตเวรก สงตอขอมลไปจนถงจดหมายปลายทาง โปรโตคอลระดบน ไดแก IP,ICMP,IGMP

- Transport Layer รบผดชอบในการรบสงขอมลระหวางเครองหนง (Host) ไปยงอกโฮสตหนง และจะสงขอมลขนไปให Application Layer นำาไปใชงานตอ มโปรโตคอลทจดอยในเลเยอรนคอ TCP และ UDP ซงมลกษณะในการรบสงขอมลทแตกตางกนออกไป

- Application Layer เปนเลเยอรทแอพพลเคชนเรยกใชโปรโตคอลระดบลางๆ ลงไปเพอวตถประสงคแตกตางกน เชน

FTP (File Transfer Protocol) : ใชสำาหรบรบสงแฟมขอมลระหวางโฮสตSMTP (Simple Mail Transfer Protocl) : ใชรบสงจดหมายอเลกทรอนคสระหวางโฮสตTelnet : ใชสำาหรบการควบคมเครองระยะไกลHTTP (Hypertext Transfer Protocol) : เปนโปรโตคอลทใชรบสงขอมลเวบเพจ

ระหวางบราวเซอรและเวบเซรฟเวอรPOP (Post Office Protocol) :ใชสำาหรบดาวนโหลดอเมลจากเมลเซรฟเวอรมาไวท

เครองเมล ไคลเอนต (PC) ของผใชTCP/IP Layering ในชดของโปรโตคอล TCP/IP ประกอบดวยโปรโตคอลหลายตวทำางานรวมกนใน

เลเยอรตางๆ และมหนาทแตกตางกนออกไป ตามรปแสดงใหเหนถงโปรโตคอลในแตละเลเยอรทเมอรวมกนเปนชดของ TCP/IP ซงหลกในภาพกคอ

5

Page 14: * 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

UserProcess

UserProcess

UserProcess

UserProcess

TCP UDP

IPICMP IGMP

HardwareInterface

ARP RARP

Application

Transport

Network

Link

Media

รปท 2.2 เลเยอรของโปรโตคอลตางๆในชด TCP/IP

TCP : อยในทรานสปอรตเลเยอร ทำาหนาทจดการและควบคมการรบสงขอมลใหมเสถยรภาพและเชอถอได UDP : อยในทรานสปอรตเลเยอร ทำาหนาทจดการและควบคมการรบสงขอมลเชนเดยวกนแตไมมกลไกการรบสงทมเสถยรและเชอถอไดโดยปลอยหนาทนใหกบแอพพลเคชนเลเยอรเปนผทำาหนาทแทน

IP : อยในเนตเวรกเลเยอร เปนโปรโตคอลหลกในการสอสารขอมล ซงกลไกสำาคญททำาใหขอมลสามารถเคลอนทไปยงปลายทางไดกคอโปรโตคอล IP นเอง

ICMP : (Internet Control Message Protocol) อยในเนตเวรกเลเยอร ทำาหนาทเสรมใหการทำางานของ IP ใหสมบรณ โดยจะเปนโปรโตคอลทคอยสงขาวสารและแจงความผดพลาดใหแก IP แตในบางโอกาสแอพพลเคชนเลเยอรกเรยกฝ ง ICMP โดยตรงเพอใชประโยชนจากความสามารถของ ICMP ดวยเชนกน

ARP : (Address Reservation Protocol) อยในลงคเลเยอร ทำาหนาทเปลยนระหวางแอดเดรสทใชโดย IP ใหเปนแอดเดรสของ Network Interface

RARP : (Reverse ARP) อยในลงคเลเยอรเชนกน แตทำาหนาทกลบกนกบ ARP คอ เปลยนระหวางแอดเดรสของ Network Interface ใหเปนแอดเดรสทใชโดย IP

6

Page 15: * 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

IP : (Internet Protocol) เปนโปรโตคอลททำาหนาทรบภาระในการนำาขอมลไปสงยงจดหมายปลายทางไมวาทใดๆ ในอนเทอรเนต โปรโตคอลตางๆ ใน TCP/IP Suite ทง TCP,UDP,ICMP ตางกตองอาศยระบบนทงสน เนองจากตวโปรโตคอล IP นมกลไกทคอนขางฉลาดในการหาเสนทางขนสงขอมลรจกทจะซอกแซกหาชองทางไปยงจดหมายปลายทกทางทเปนไปได โปรโตคอลอนทอยเลเยอรสงขนไปเลยไมรบภาระปวดหวในการหาวธสงขอมลไปยงจดหมายอกขอเพยงแคเตรยมขอมลใหเสรจสรรพแลวสงให IP กนอนใจไดวา IP จะพยายามอยางสดความสามารถทจะหาทางไปใหถงจดหมายใหจงได

ถงแมวา IP จะเปนโปรโตคอลทเชยวชาญในการขนสงขอมลไปไดไกลๆ แตกมจดดอยคอ IP เปนโปรโตคอลท unreliable และ connectionless (เปรยบเสมอนเปนระบบขนสงทชำานาญรวดเรวแตไมรบประกนวาขอมลจะถงปลายทางหรอไม) การท IP มขอดอย 2 ประการน ดงนนโปรโตคอลเลเยอรอนทใช IP เปนตวสงขอมลจำาเปนตองหาหนทางในการลดขอดอยเหลานลงไป เพอใหการรบสงขอมลมเสถยรภาพและเชอถอได ซงกคอจะตองมกลไกในการรบประกนการรบสงขอมลอกชนนนเอง การสงขอมลดวย IP เปรยบเสมอนการสงจดหมายทวไปทเราจาหนาซองเรยบรอย ตดแสตมป แลวนำาไปหยอนในตไปรษณย โดยสวนใหญแลวบรษไปรษณยกจะทำาหนาทอยางสมำาเสมอคอนำาจดหมายทมอยสงไปตามชองทางไปจนถงปลายทางเสมอ โดยในขนสดทายบรษไปรษณยกจะนำาจดหมายไปทบานเลขทตามจาหนาซอง แลวกหยอนลงไปในตรบจดหมายของผรบ ซงจะเหนวาดวยการทำางานปกตจดหมายนาจะถงจดหมายปลายทางเสมอ แตโอกาสทจะเกดอปสรรคทำาใหจดหมายไมถงตรบจดหมายกเปนไปได หรอแมกระทงจดหมายไปถงจดหมายปลายทางแลวแตไมมคนรบไป ปลอยใหทงคางอยในตรบจดหมายกเปนได จดสำาคญทยกตวอยางการสงจดหมายเปรยบเทยบกบการใชโปรโตคอล IP คอผสงไมสามารถทราบสถานะการสงของตนเองไดวาตกลงแลวขอมลของตนเองไดวาตกลงแลวขอมลทสงไปถงปลายทางหรอไม ไมมการยนยนตอบกลบจาก IP วาถงหรอไมถงปลายทาง ถงแมวาโดยสวนใหญแลวขอมลจะสงถงปลายทางกตาม ซงการยนยนนนเปนสงสำาคญเพราะคนสงขอมลจะไดไมตองรออยางไมมเปาหมาย ถาขอมลถงปลายทางกจะไดสอสารกนตอ ถาสงไมถงกจะไดไปทำาอยางอนไมตองรอสำาหรบความหมายจรงๆของ unreliable และ connectionless ในแงของ IP คอ

Unreliable : ดวยตวโปรโตคอล IP เองมกลไกในการหาเสนทางเดนของขอมล (routing) ไปยงปลายทาง โดยจะพยายามใชกลไกเหลานนในการสงขอมลไปถงปลายทางใหจงได แตไมมการตรวจสอบวาปลายทางไดรบขอมลหรอไม กลไกการแจงกลบมเพยงในกรณทม ปญหาเกดขนระหวางการเดนทาง เชน เราเตอรมปญหา, หาเสนทางไมได กจะใช ICMP สงขอความกลบมาใหผสงทราบ ซงอาจจะถงผสงหรอไมกได ดงนนหากสงดวย IP แลวไมมการตอบกลบมากอาจจะเปนไปไดวาขอมลถงปลายทางอยางสมบรณ หรอวาขอมลไปไมถงแตสง error message กลบมาไมได

7

Page 16: * 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

Connectionless : หมายถง IP จะไมมสถานะเหมอนการเชอมตอกนระหวางตนทางกบปลายทาง โดยทวไปการทโฮสตสองโฮสตจะมการเชอมตอกนไดนนจะตองทำาอยางไร อนดบแรกสดกจะตองเอาสายมาเชอมตอใหถงกนกอน หลงจากนนกจงจะสามารถรบสงขอมลไดและเรากสามารถรบสงขอมลกนไดตลอดตราบใดทสายยงตอกนอย เราอาจจะตอสายคางไวกไดอยากสงขอมลเมอไรกทำาไดทนท สำาหรบโปรโตคอลระดบ IP แลวสายทตอถงกนทวานนหมายถงการเชอมตอแบบลอจคลไมใชสายจรงๆ (ฟสคล) แตการบอกวา IP มการเชอมตอแบบ connectionless นนคอหากรบสงขอมลผาน IP จะตองทำาการตอสายใหมทกครงทจะรบสงขอมล 1 IP ดาตาแกรม เมอสงเสรจกถอวาเสรจและทำาการถอดสายออก ในระดบ IP กจะรจกขอมลเพยงแตในดาตาแกรมเดยวเทานน จะไมรจกดาตาแกรมอนทสงกอนหนาหรอตามมาและจะไมรวาดาตาแกรมแตละอนมความสมพนธกนหรอไมอยางไร ภารกจ IP ตองทำาใหสำาเรจคอ ทำาการตอสายไปยงปลายทางใหไดแลวสงขอมลดาตาแกรมนนไปใหถงแลวกถอดสายออกเปนอยางนเรอยไป

อาจจะมกรณทดเหมอนวา IP มการสอสารอยางตอเนองและมความสมพนธกนระหวางดาตาแกรม กคอกรณของ Fragmentation ทมการกระจายขอมลออกเปนหลายแพกเกจและเมอแพกเกจสงถงปลายทางแลวจะตองนำามารวมกนอกครงหนงตามลำาดบ ซงแสดงวา IP นาจะมความสมพนธกนระหวางดาตาแกรมแททจรงแลวความสมพนธดงกลาวมใชความสมพนธกนระหวางดาตาแกรมแตอยางใด เปนความสมพนธภายในดาตาแกรมเดยวกนแตถกกระจายออกจากกนและนำากลบมารวมกนใหมใหเปนดาตาแกรมเดยวเหมอนเดม มใชการนำาขอมลดาตาแกรมอนมาเชอมโยงรวมกนแตอยางใด ขอมลหนงดาตาแกรมไมจำาเปนตองสงเพยงครงเดยวหากความยาวเกนกวาทจะสงไดในแตละครงนนดาตาแกรมสามารถทจะแบงยอยเพอใหขนาดของแพกเกจมขนาดเหมาะสมได

IP Header : จากภาพแสดงใหถง IP Header ขนาดของ IP Header โดยปกตจะมขนาด 20 ไบต ยกเวนในกรณทมการเพมเตมออปชนบน IP Header จากภาพจะแสดงเปนทอนละ 32 บต คอ 4 ไบต โดยการสงขอมลจะเรยงลำาดบใหไบตแรกกอนแลวคอยตามดวยไบตถดไป สำาหรบขอมลแตละสวนในเฮดเดอรมความหมายดงน

8

Page 17: * 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

4-bitVersion

4-bit headerlength 8-bit type of service 16-bit total length (in bytes)

16-bit identification 3-bitflags Fragment offset

8-bit time to live(TTL) 8 bit protocal 16-bit header checksum

32-bit source IP address

32-bit destinatation IP address

option (if any)

data

รปท 2.3 IP Header

บต 0-3 เวอรช นของ : ปจจบนเปนเวอรชน 4บต 4-7 Header Length : ความยาวของเฮดเดอร โดยทวไปถาไมมออปชนคาในสวนน

จะเปน 5 หมายความวาความยาวขอมลมขนาด 5*32 บต หรอเทากบ 20 ไบตนนเองบต 8-15 Type of Service (TOS) : ปจจบนไมไดใชงานแลว ถกกออกแบบมาเพอเกบ

คาของ Minimize delay , Maximize Throughput , Maximize reliability , Mimimize Monetary cost เพอใชเปนตวบงชใหเราเตอรตดสนใจในการเลอกเราขอมลแตละดาตาแกรม อยางไรกตามปจจบนไมมการนำาสวนนไปใชงานแตอยางใด

บต 16-31 Total length : เปนฟลดทบอกจำานวนไบตทงหมดของ IP Datagram ดวยขนาด 16 บตของฟลดนแสดงวาขนาดความยาวขอมลของ IP ดาตาแกรมจะมขนาดไดสงสด 65535 ไบต ขนอยกบขนาดของ MTU โดยทวไปแลวถงแมวาเราจะสามารถสงขอมลใน 1 ดาตาแกรมไดสงสดถง 65535 ไบต แตเมอขอมลถกสงลงไปเลเยอรลางกจะถกแฟรกเมนตกอนทำาการสงจรงอยดและแอพพลเคชนเลเยอรสวนใหญกจะรบสงขอมลครงละ 512 ไบตใน 1 ดาตาแกรม เพอทำาใหสามารถถอดขอมลออกมาได

บต 32-47 Identification : เปนหมายเลขของดาตาแกรมทสงในกรณทมการกระจายของดาตาแกรมและนำากลบมารวมกนใหมจะไดวามาจากดาตาแกรมเดยวกน

บต 48-50 แฟลก : ใชในกรณทมการแฟรกเมนตของดาตาแกรมบต 51-63 Fragment offset : ใชในการกำาหนดตำาแหนงของขอมลใน 1 ดาตาแกรมท

ถกแฟลกเมนตกลบมาตอเรยงกนในตำาแหนงของขอมลทถกตองบต 64-71 Time To Live (TTL) : เปนฟลดทกำาหนดจำานวนครงสงสดทดาตาแกรมนจะ

ถกเราต (route) เพอปองกนมใหดาตาแกรมถกเราตไปโดยไมมทส นสดดวยคณสมบตของ IP ทจะถกเราตไปเรอยๆ จนกวาจะถงปลายทาง ซงในบางครงอาจจะยงหาเสนทางไมได TTL จะเปนตวบอกจำานวนสงสดของการเราตหาหากวาจำานวนครงทดาตาแกรมถกเราตไปเทากบ TTL แลวยงไมถงปลายทางกใหทำาการดรอปดาตาแกรมนทง แลวแจงกลบมายงตนทางวา Time out

9

Page 18: * 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

คอหมดเวลากอน ทงนในการเราตผานเราเตอร 1 ครงคา TTL จะลดลง 1 หากเมอคา TTL ลดลงจนถง 0 เมอใดแสดงวาดาตาแกรมนนไทมเอาทไปแลวและจะไมถกเราตอกตอไป

บต 72-79 Protocol : อยางทไดกลาวไปแลวขางตนวามโปรโตคอลยอยหลายตวทอาศย IP ในการขนสงขอมล ดงนนเพอระบวาขอมลท IP กำาลงสงอยนเปนของโปรโตคอลอะไรกตองระบไวในฟลดน เชน TCP,UDP,ICMP เปนตน

บต 80-95 Header Checker : เปนสวนตรวจสอบความถกตองของขอมลในเฮดเดอรเพอปองกนการผดพลาดในการสงขอมล ซงจะปองกนเฉพาะขอมลในเฮดเดอรเทานนมใชขอมลทงหมดในดาตาแกรม

บต 96-127 Source IP Address : คอ IP Address ของผสงขอมลดาตาแกรมบต 128-163 Destination IP Address : คอ IP Address ของปลายทางผรบขอมล

ดาตาแกรมIP Header เปนสวนสำาคญทสดของ IP ดาตาแกรม กอนทเราจะศกษาถงชองวางและ

จดบกพรองของ IP จำาเปนตองเขาใจการทำางานปกตของ IP เสยกอน แลวจากนนเมอเหนการโจมตทระดบ IP กจะสามารถปองกนและเขาใจการโจมตนนไดไมยากนก คาตางๆ ในแตละฟลดของ IP Header ลวนเปนกลไกทควบคมการเดนทางของดาตาแกรมในทางกลบกนเมอนำามาใชผดวธกอาจจะกลายเปนเครองมอในการบกรกได

ARP ( Address Resolution Protocol ) : จาก IP ทเราไดศกษามากอนหนาน คณสมบตอนหนงทสำาคญของ IP คอ ทก IP Datagram จะตองระบแอดเดรสของผสงและผรบเพอระบตนทางและปลายทางของขอมล ถาเราดเฉพาะในระดบ IP กเปนอนวาหากตงคาของ IP Address ไดถกตองกจะสอสารไดแตสำาหรบการศกษา IP ใหลกซงเพอจะเขาใจทกกลไกของการทำางานของ TCP/IP นนจำาเปนตองศกษาละเอยดและลกลงไปกวาระดบ IP

จงอยาลมวาการท IP จะสงขอมลลงไปไดนนจำาเปนตองสงลงไปในระดบ Link Layer คอ Ethernet กอน และในระดบ Ethernet นนยอมมอง IP Datagram ทงหมดวาเปนแค Ethernet Frame หนง Frame แนนอนวา Ethernet ไมรจก Source Address , Destination Address ใดๆ ในระดบ IP จงตองมกระบวนการทมำาใหระดบ Link Layer กบระดบ IP มความสมพนธเชอมโยงกนได

ARP (Address Resolution Protocol) เปนกระบวนการเปลยนคาระหวาง IP ไปเปน Ethernet Address (หรอทเรารจกกนในชอ MAC Address คอแอดเดรสทางฮารดแวรของอปกรณ เชนการด LAN) IP Address นนเปนลอจคลแอดเดรสทผใชกำาหนดขนมาใหสำาหรบโฮสตตวใดตวหนงอาจจะเปลยนคาเปนแอดเดรสอนเมอไรหรออยางไรกไดตามทผใชตองการ การตงคา IP Address ผดกเพยงแตทำาใหไมสามารถสอสารได แตเมอใดผใชตงคา IP ไดถกตองโฮสตนนกจะกลบมาสอสารไดอกครง การสอสารขอมลไดหรอไมในระดบ IP จงเปนเพยงสภาวะทางลอจคลไมตายตวตางกบในระดบอเธอรเนตซงอปกรณทกชนดจะมหมายเลขประจำาตว (Ethernet Address) ซงเปนเลขทระบตดตวอยกบอปกรณนนๆ เปนเลขขนาด 48 บต (6

10

Page 19: * 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

ไบต) จะสามารถมทแตกตางกนได =281,474,976,710,656 คาและอปกรณ Ethernet ทกชนทผลตขนมาในโลกใบนจะไมม Ethernet Address ทซำากนเลย

กอนทจะศกษาไปถงกระบวนการในการเปลยน IP Address กบอเธอรเนตแอดเดรสนนจะขอใหดกระบวนการ Encapsulation จาก IP เปน Ethernet เสยกอนจะทำาใหสามารถเขาใจไดงายและเรวขน

กลบมาทเรอง ARP ตอจากการ Encapsulate ทง 2 วธกจะเหนวา IP Address จะถกฝงอยใน IP Datagram และเมอจะทำาการสงใน Link Layer นนจะตองมอเธอรเนตแอดเดรสของทงตนทางและปลายทางทถกตองจงจะสามารถรบสงขอมลได กระบวนการในการหา MAC Address ของ IP Address ทระบมดงน - หาก IP Address ของปลายทางอยในเนตเวรกเดยวกนกบตนทาง โฮสตตนทางจะสงขอมลไปยงโฮสตปลายทางโดยตรง หาก IP Address ของปลายทางอยคนละเนตเวรกกน โฮสตตนทางจะสงขอมลไปยงเราเตอร แตทง 2 เงอนไขตางกจะตองเปลยน IP Address เปน MAC Address ทงคเพยงแตเราจะเลอก IP ของปลายทางหรอ IP ของเราเตอรเทานน

- เมอจะเรมตนสงรบขอมลในครงแรกโปรโตคอล ARP กจะถกเรยกขนมาทำางาน- ARP จะสง Ethernet Frame ทเรยกวา ARP Request ไปยงทกโฮสตทอยบน

เนตเวรค (เรยกวาการบรอดคาสต) เพอถามวา Host เครองใดม IP Address ตรงกบทตองการและขอใหตอบ MAC Address กลบมา - เมอโฮสตทเปนเจาของ IP Address ทมผสอบถามถงไดรบ ARP Request กจะตองตอบดวย ARP Reply ซงในคำาตอบกจะมทง IP Address และ MAC Address ของตนเองตอบกลบไป - เมอโฮสตทสง ARP Request ไดรบ ARP Reply กลบมากจะทราบ MAC Address ของโฮสตปลายทางไดจงนำาคา MAC Address ทไดรบมาใสใน Ethernet Header ในกระบวนการ Encapsulate แลวจงสง IP Datagram นนไปยง Host ปลายทางไดอยางถกตอง และการสอสารขอมลผาน Ethernet ในระดบ IP กจะเรมตนขน

ARP Cache : จะเหนวากระบวนการ ARP จะเกดขนเสมอกอนทดาตาแกรมของ IP จะถก Encapsulate ลงบน Ethernet และกระบวนการ ARP Request-Reply กจะใชเวลาระยะหนงและใชแบนดวดธของเนตเวรกบางสวนไปดวยทำาใหประสทธภาพในการรบสงลดลง จงมการออกแบบโฮสตเกบตารางทจบคระหวาง MAC กบ IP Address ไวเปนการชวคราว เพอใหไมตองทาการ ARP Request ใหมทกครง ตารางนเรยกวา ARP Cache โดยกนอท ARP จะทำาการกระจายรเควสทออกไปทกโฮสตนนใหตรวจดขอมลใน Cache เสยกอนวามคาเดมอยแลวหรอไม หากวามคา MAC Address อยแลวกใหนำาไปใชเลยไมตองถามใหม หากไมมจงคอยถามและเมอถามไดคำาตอบมาแลวกใหเกบลงใน Cache เพอครงตอไปจะไดไมตองถามอก

อยางทกลาวไวตงแตตนวา IP Address เปนลอจคลและสามารถเปลยนแปลงไดโดยผใชดงนนคาระหวาง MAC-IP Address ใน ARP Cache กอาจจะเปนคาทผดพลาดได ถามการ

11

Page 20: * 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

เปลยน IP Address ทโฮสตปลายทาง ดงนนเพอปองกนปญหานจงมการกำาหนดอายของขอมลใน ARP Cache กลาวคอขอมลใน ARP Cache จะยงคงเชอถอไดในเวลาหนงเทานน หากเวลาลวงเลยไปมากกวาจบคระหวาง MAC-IP อาจจะเปลยนไปแลวกได ซงจะตองมการนำา ARP Request ใหมเพอใหไดขอมลปจจบนและทนสมยทสด โดยทวไปอายของขอมลใน ARP Cache จะเกบไว 20 นาท หากเลยจากนนคาใน Cache กจะถกลบทงนนหมายถงหากตองการตดตอกจะตองทำา ARP Request ใหมนนเอง

Ethernetdestination addr

Ethernetsource addr

Frametype

Hardtype

Prottype

Senderethernet addr

SenderIP addr

targetEthernet addr

target IPaddr

port sizehard size

รปท 2.4 ARP Packet format

ในแพกเกตของ ARP จะประกอบดวยไบต 0-5 : Ethernet Destination Address สำาหรบ Ethernet ทวไปจะหมายถง

แอดเดรสของปลายทาง แตสำาหรบกรณของ ARP เนองจากเปนการสงขอมลถงทกโฮสตทอยบนเนตเวรกหรอทเรยกวาบรอดคาสตดงนนทกบตของฟลดนจงตองเปน”1”ทงหมดคอ FF FF FF FF FF FF

ไบต 6-11 : Ethernet Source Address เปนแอดเดรสของผทสง ARP Request เองเพอใหโฮสตทตองการตอบกลบสามารถตอบกลบมาไดอยางถกตอง

ไบต 12-13 : Ethernet Frame Type ระบถงโปรโตคอลท Encapsulate อยใน Ethernet Frame นสำาหรบ ARP จะตองเปน 0x0806

ไบต 14-15 : Hard Type ระบประเภทของ Hardware Address ท ARP กำาลงถามอยในกรณนคอ Ethernet Address คาจะตองเปน 1

ไบต 16-17 : Prot Type ระบโปรโตคอลทตองการถามหมายถงตองการถาม Hardware Address ของโปรโตคอลอะไรกรณนกคอ IP

ไบต 18 : Hard Size ระบขนาดของฮารดแวรแอดเดรส = 6 สำาหรบ Ethernet Addressไบต 19 : Port Size ระบขนาดของแอดเดรสในโปรโตคอลทถาม = 4 สำาหรบ IPไบต 20-21 : OP Field เปนการระบวาเปน ARP ชนดใด

1 = ARP Request2 = ARP Reply3 = RARP Request4 = RARP Reply

ไบต 22-27 : Sender Ethernet Address คา Ethernet Address ของผสงซงจะมคาซำากบในไบต 6-11

12

Page 21: * 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

ไบต 28-31 : Sender IP Address คอคา IP Address ของผสงไบต 32-37 : Target Ethernet Address จะวางไวสำาหรบ ARP Request เพราะยงไมร

(ถารแลวคงไมตองทำา ARP Request อก)ไบต 38-41 : Target IP Address คอคา IP Address ทกำาลงตองการหาคา Ethernet

AddressARP Reply : หลงจากมการสงกระจาย ARP Request ลงไปยงเนตเวรกแลวโฮสตทก

ตวทอยบนเนตเวรกจะไดรบ ARP Request นซงกจะนำาคาในไบตท 38-41 มาเปรยบเทยบกบ IP Address ของตนเองหากไมตรงกนกอยเฉยๆ ไมตองทำาอะไร (ถาขนตอบกคงวนวายนาดเพราะเนตเวรกคงตองเตมดวยคำาตอบแน ๆ หากทกๆ โฮสตทไดรบบรอดคาสตแลวพรอมใจกนตอบ) ถาตรงกนกจะตอบกลบดวย ARP Reply โดยใชแพกเกจเดมของ ARP Reply โดยใชแพกเกจเดมของ ARP ทอธบายตอนตนแตจะเปลยนคาของขอมลดงน

- เปลยนคาใน OP field จาก 1 เปน 2 แสดงวาเปน ARP Reply - นำาคาใน Source Address ทง Hardware และ IP ไปใสลงใน Target Address

ทง Hardware และ IP (เพอเปนการสงกลบไปยงผสง ARP Request มา)- นำาคา Hardware Address และ IP แอดเดรสของตนเองใสลงในฟลด Ethernet

Sorce Address และ Sender IP Addressเมอมการ ARP Request และมผสง ARP Reply นนหมายถงกระบวนการหา Ethernet

Address ของ IP Address ไดเสรจสมบรณตอไปกจะเรมสง IP Datagram ไดในการ ARP Request นนหากไมมโฮสตใดตอบกลบมากจะถอวาไมมโฮสตทม IP Address นนอยบนเนตเวรกและโปรโตคอลเลเยอรสงขนไปไมวา TCP , UDP , ICMP จะไมสามารถสอสารได ในการนำา ARP ไปใชงานนนโปรโตคอลเลเยอรสงขนไปจะเปนผตดสนใจเองวาหาก ARP แลวไมมผตอบจะทำาอยางไรด เชน เลกตดตอ , คอยเปนเวลาเทากบ X วนาท หรอวาคดพยายามทำา ARP ใหมอกสกครง ซงในสวนนจะไมตายตว

ICMP (Internet Control Message Protocol) : เปนโปรโตคอลหนงทอยในชดของ TCP/IP Suite มหนาทสงขาวสารและคำาสงควบคมของ IP โดยเฉพาะการรบสง Error Message ดวยลกษณะของ ICMP แลวนบไดวาอยท งในเลเยอรเดยวกบ IP หรอเลเยอรทสงกวา IP คอเทยบเทา TCP และ UDP กได ขนอยกบลกษณะของ Message ท ICMP ทำาการสอสารทงน ICMP ใช IP เปนตวสงขอมลเชนเดยวกบ TCP และ UDP (ดวยเหตนกอาจถอไดวา ICMP อยในเลเยอรเดยวกบ TCP และ UDP)

IP header ICMP Message

IP datagram

รปท 2.5 การ Encapsulate ICMP

13

Page 22: * 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

จะเหนไดวาในสวนของ IP Header กยงคงใชเฮดเดอรตามปกตของ IP ทำาใหกลไกในการรบสงขอมลจากตนทางไปยงปลายทางสามารถใชกลไกปกตของ IP ไดทนทสำาหรบภายใน ICMP Message จะเกบขอมลอะไรมความหมายอยางไรบางนนจะแสดงในภาพ

8-bit Type 8-bit code 16-bit checksum

�o° ¤¼£µ¥Ä��¹Ê���Type ¨ ³ Code (�¼�µ¦ µ�)

0 7 8 15 16 32

รปท 2.6 ICMP Message

ความหมายของขอมลใน ICMP Messageบตท 0-7 : (ไบตท 0) ICMP Type เปนฟลดขนาด 8 บตบอกถงประเภทของ ICMP ท

กำาลงสอสารอยบตท 8-15 : (ไบตท 1 ) ICMP Code เปนฟลดขนาด 8 บตทเกบขอมลรหสของ ICMP

Messageบตท 16-31 : (ไบตท 2-3) Check sum ใชเปนตวตรวจสอบความถกตองของ ICMP

Message ทงหมดโดยทวไปความยาวของ ICMP Message จะไมคงทแนนอนขนอยกบลกษณะของ ICMP Message นนๆ วาจะมขอมลตามหลงมามากนอยแคไหน

การใชงานของ ICMP โดยทวไป ICMP จะใชงานเพอสองลกษณะคอ- Query ใชสำาหรบสอบถามสถานะระหวางกน- Error ใชสำาหรบรายงานขอผดพลาดทเกดขน

จากตารางจะเหนวา ICMP Message สวนใหญจะทำาหนาทรายงานความผดพลาดทเกดขนของ IP แตอยางทกลาวในตอนตนวา ICMP นนอาจจะอยไดทงเลเยอรเดยวกบ IP และสงกวา IP ไมตายตว โดยเฉพาะในกรณท ICMP Message นนทำาหนาทรายงานความผดพลาด ในลกษณะน ICMP จะทำาหนาทในเลเยอรเดยวกบ IP ในขณะเดยวกนกยงคงอาศย IP เปนตวสง ICMP Message ไปยงปลายทางอยด (ในลกษณะนจะเหนวาถาหาก ICMP อยเลเยอรบนของ IP โดยสนเชงแลว ICMP Message จะตองไมสามารถสงได เพราะในระดบ IP ม Error เสยแลว ดงนน ICMP จงตองลงมาทำาการรบขอมลในระดบ IP เสยเอง) และสำาหรบการรายงานความผดพลาดนน ICMP จะไมรายงานความผดพลาดของการสงขอมลในกรณตางๆ เหลาน เพอปองกนการรายงานขอผดพลาดทไมรจบ

- เกดขอผดพลาดในการสง ICMP Error Message เสยเองถงแมวา ICMP เปนตวทคอยรายงานความผดพลาดของ IP แตตว ICMP เองกตองอาศย IP เปนตวนำามนกลบไปยง

14

Page 23: * 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

ปลายทางอยด การท ICMP อาจจะเดนทางกลบไมถงปลายทางดวยเหตใดกแลวแตยอมเปนสงทมโอกาสเกดขนได เชนการท Host A ตองการสงขอมลไปยง Host B แต Host B ไมไดเปดใชงานอย ดงนนเราเตอรตวทตออยกบ Host B จะตองสง ICMP Type 3 Code 1 (Host Unreachable) กลบไปยง Host A แตเราเตอรระหวางทางนนมเราตตงเทเบลทไมถกตองทำาให ICMP แพกเกตไมสามารถสงตอกลบไปยง Host A ไดดวยเชนกน ในกรณนหากไมมขอกำาหนดไวกจะทำาใหเกด ICMP ยอนกลบไปมาไมรจบ

- ขอมลท IP Address ปลายทางไมไดเฉพาะเจาะจงโฮสตตวเดยวแตเปนปลายทางประเภทบรอดคาสต (ทกๆโฮสตในเนตเวรก) และมลตคาสต (โฮสตหลายตวพรอมกน)

- ดาตาแกรมททำาหนาทเหมอนการบรอดคาสตของ Link Layer- ดาตาแกรมทแพกเกจถกแฟรกเมนตมา (แยกมาเปนหลายแพกเกจ ยกเวนดาตา

แกรมแรกเทานน เนองจากดาตาแกรมทถกแฟรกเมนตมานนจรงๆ แลวมทมาจากดาตาแกรมขนาดใหญเพยงอนเดยว ดงนนหากมปญหาในการสอสารการแจงกลบไปกควรแจงเพยงครงเดยวไมควรแจงตอบกลบทกแฟรกเมนต

- ดาตาแกรมทตนทางไมไดเฉพาะเจาะจงโฮสต ดงนนแอดเดรสในลกษณะนเมอนำามาใชเปนแอดเดรสตนทางกจะไมไดรบ ICMP Message เชน แอดเดรสตนทางเปนศนยทงหมด แอดเดรสทเปน loop back (สงเขาหาตวเอง) แอดเดรสทเปนบรอดคาสตหรอมลตคาสตแอดเดรสเหลานจะเปนแอดเดรสทไมไดระบถงโฮสตใดโฮสตหนงจรงๆ ดงนน ICMP จงไมทำาการสง Message ไปให

IPheader

UDPheader

UDP Data

UCP datagram

IP datagram

รปท 2.7 UDP Encapsulation

UDP (User Datagram Protocol) : เปนโปรโตคอลพนฐานทอาศย IP เปนพาหนะในการสงขอมล โดยตว UDP นนจดอยใน Transport Layer ลกษณะของโปรโตคอลจะจดการครงละ 1 ชดของขอมลทเรยกวา UDP datagram โดยขอมลแตดาตาแกรมจะไมมความสมพนธกน (ในความรบรของ UDP) เพราะความสมพนธระหวางดาตาแกรมจะถกจดการโดยโปรโตคอลอนในแอพพลเคชนเลเยอรแทน

UDP ดาตาแกรมจะถก Encapsulate ลงใน IP ดาตาแกรมดงแสดงในภาพ โดยเมอ Encapsulate แลว 20 ไบตแรกจะเปนของ IP Header และในไบตท 9 ของ IP Header จะตองมคา = 17 ดวยคณสมบตสำาคญของ UDP คอจดรปแบบขอมลอยางงายใหอยในรปของ UDP Datagram และสง-รบขอมลชดนใหถงปลายทางเทานน ไมมกลไกใดๆ ในการตรวจสอบยนยน

15

Page 24: * 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

การรบสงในตวของ UDP เอง ดงนนแอพพลเคชนทใช UDP จะตองระลกเสมอวา UDP เปนโปรโตคอลทไมมเสถยรภาพและไมรบประกนการสง-รบขอมล (Unreliable) และจะตองเสรมกลไกในสวนทรบประกนการรบสงขอมลในแอพพลเคชนนนเสมอ โดยทวไปแอพพลเตชนทม ความจำาเปนในเรองเสถยรภาพและความถกตองของขอมลนนควรจะหลกเลยงการใช UDP เพราะแอพพลเคชนจะตองเสยเวลาในการจดการเรองนมากจงทำางานได โดยสวนใหญควรจะใช TCP แทนซงจะลดปญหานได แตอยางไรกตามแอพพลชนบางประเภททอาจจะไมตองการความถกตองของขอมลมากนกกอาจจะเลอกใชโปรโตคอลนเพออาศยประสทธภาพในการสอสารขอมลเรวกวาได

16-bit source port number 16-bit destination port number

16-bit UDP length 16-bit UDP checksum

Data (�oµ¤ )

15 16 31

udpheader

รปท 2.8 UDP header

จากภาพจะเหนวา UDP Header ไดมการกำาหนดฟลดไวอยางงายๆ มขนาดทงหมดของเฮดเดอรเพยง 8 ไบตเทานน โดยแตละฟลดมความหมายดงน

ไบต 0-1 : Source Port Number หมายเลขพอรตของตนทางทสงขอมลดาตาแกรมไบต 2-3 : Destination Port Number หมายเลขพอรตของปลายทางทจะเปนผรบขอมล

ดาตาแกรมไปใชงานไบต 4-5 : UDP Length เปนฟลดทระบความยาวของ UDP ดาตาแกรม คอ UDP

Header+UDP data ขนาดตำาสดของ UDP Length = 8 หมายถง ดาตาแกรมนมเฉพาะ UDP Header ซงเทากบ 8 ไบตและไมม UDP Data เลย

ไบต 6-7 : UDP Checksum ทำาหนาทตรวจสอบความถกตองของ UDP ดาตาแกรมทงหมดถงแมวา UDP จะถก Encapsulate อยใน IP ดาตาแกรมและม IP Checksum คมอยแลวกตาม แต IP Checksum นนจะทำาหนาทเฉพาะตรวจสอบความถกตองของ IP Header เทานนมไดครอบคลมทง IP ดาตาแกรมแตอยางใด นนหมายถงหากมความผดพลาดในสวนของทเปนขอมลของ IP ดาตาแกรม IP กจะไมสามารถทราบได ซงตางจาก UDP Checksum ซงทำาหนาทตรวจสอบความถกตองทง UDP ดาตาแกรมและเปนกลไกของ UDP เองแยกตางหากจาก IP ดงนนการตรวจสอบความถกตองดวย Checksum เมอใช UDP กจะม 2 ขนตอน คอการตรวจสอบความถกตองในระดบ IP Header โดยใช Checksum ของ IP หลงจากนนจงคอยทำาการตรวจสอบความถกตองของ UDP โดยใช UDP Checksum อกทหนง

16

Page 25: * 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

32 bit source IP address32 bit destination IP address

zero 8-bit protocal(17) 16-bit UDP length16-bit source port number 16-bit destination port number

16-bit UDP length 16-bit UDP checksum

Pad byte (0)data

UCP pseudo header

UDP header

รปท 2.9 ฟลดทใชในการคำานวณหา UDP checksum

กลไกในการหาคา checksum เพอใชตรวจสอบความถกตองของ UDP จะคลายกบการหาคา checksum ของ IP คอคา checksum ทไดจะเปนคาผลรวมของขอมลขนาด 16 บตทงหมดและแปลงเปน one’s compliment แตจะมจดแตกตางจากการหาคา checksum ของ IP อย 2 ประการคอ

- ขนาดของ UDP ดาตาแกรมจะไมคงทเนองจากขนาดของสวนทเปน Data อาจเปลยนแปลงไดตามขนาดของขอมลจรง

- ถงแมวาจรงๆ แลว UDP Header จะมขนาด 8 ไบต แตในการหาคา checksum นนจะนำาบางคาใน IP Header มารวมเปนสวนหนงของ UDP Header (เรยกวา UDP Pseudo Header) จากนนจงหาคา checksum ทงหมดอกทหนง

ฟลดท UDP นำามาจาก IP Header ดงแสดงในภาพ ไดแก Source IP Address , Destination IP Address , Zero , Protocol , UDP length ทงนเพอใหคา UDP Checksum ไดทำาการตรวจสอบซำาในสวนทสำาคญสำาหรบ UDP ดวยวาทำาการรบ-สงถกตองทงตนทางและปลายทาง

กลไกในการตรวจสอบโดย checksum ของ UDP นเพอเปนการปองกนขอมลทอาจจะถกแกไขหรอมความผดพลาดระหวางการสงและหากเกดเหตการณดงกลาวปลายทางจะไดทราบวามขอผดพลาดแตเปนการตรวจสอบเพยงฝายเดยวเทานน โดยในขอกำาหนดของ UDP หากพบวา checksum Error กใหผรบปลายทางทำาการทงขอมลนนเสยแตไมมการแจงกลบไปยงผสงแตอยางใดจดนเองททำาให UDP ไดชอวา UDP เปนโปรโตคอลทไมมเสถยรภาพและเชอถอไมคอยได การสง-รบขอมลแตละครงหากมขอผดพลาดในระดบ IP เชนสงไมถง ,หมดเวลา ผสงจะไดรบ Error Message จากระดบ IP เปน ICMP Error Message แตเมอขอมลสงถงปลายทางถกตองแตเกดขอผดพลาดในสวนของ UDP เองกลบไมมการยนยนหรอแจงใหทราบแตอยางใด

17

Page 26: * 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

ในบางระบบทนำา UDP ไปใชงานอาจกำาหนดให checksum เปน option คอเลอกทจะมหรอไมม checksum ไดโดยหวงผลในแงประสทธภาพในการรบ-สงขอมลจะสงขนเพราะไมตองเสยเวลาในการตรวจสอบ checksum และปลอยหนาทในการปองกนความผดพลาดของขอมลใหเปนของ Datalink Layer ซงกไดผลในแงของการชวยเพมประสทธภาพ แตใน Datalink Layer เองกจะมขอผดพลาดเกดขนพอสมควรจะทำาใหระบบโดยรวมไมมเสถยรภาพมาก ดงนนการใชงาน UDP ควรจะตอง Enable checksum เสมอ

ขนาดของ UDP Datagram : ในทางทฤษฎแลว UDP Datagram จะมขนาดไดสงสดเทากบ 65535 ไบต โดยแบงเปน IP Header เสย 20 ไบต และเปน UDP Header อก 8 ไบต คงเหลอสวนทเปนขอมลเทากบ 65507 ไบต อยางไรกตามการนำา UDP ไปใชงานสวนใหญจะใชขนาดของดาตาแกรมทตำากวาน โดยทวไปขดจำากดของ UDP Datagram จะมอย 2 ประการคอ

Application : ในการรบสงขอมลแตละครงแอพพลเคชนจะตองทำาการจองพนทหนวยความจำาเพอทำาการรบ-สงขอมลใหเหมาะสมกบสภาพของโฮสตและคณสมบตของตวแอพพลเคชนเองดวย เชน หากกำาหนดขนาดใหญเกนไปกจะทำาใหเปลองหนวยความจำา หรอการรบสงขอมลแตละครงของแอพพลเคชนนนๆ อาจจะตองการขอมลจำานวนหนงเทานนมไดตองการเตมทง 64K ดงนนโดยทวไหขนาดของ UDP Datagram จะถกตงคาไวเทากบ 8192 ไบต

ขนาดของ IP Datagram : โดยสวนใหญการนำา TCP/IP ไปใชงานกบระบบปฏบตการตางๆ จะมการกำาหนดขนาดของ IP ดาตาแกรมใหตำากวา 64K จงทำาให UDP ดาตาแกรมซงตองอาศยอยใ IP ดาตาแกรมอกชนหนงถกจำากดขนาดไปดวยโดยปรยาย

TCP (Transmission Control Protocol) : เปนโปรโตคอลอนทกลาวถงในบทกอนหนานจะเหนไดวาโปรโตคอลในระดบ IP หรอแมกระทง UDP จะสนใจขอมลเพยว 1 ดาตาแกรม กลไกของโปรโตคอลจะมหนาทตรวจสอบความถกตองเพยงเฉพาะดาตาแกรมนน ๆ อยางเดยว เมอจะทำาการสงดาตาแกรมใหมกจะถอวาเปนขอมลชดใหมทไมมความสมพนธใด ๆ กบขอมลดาตาแกรมอน (การสอสาร 1 ครงจงใชเพยง 1 ดาตาแกรม) แตสำาหรบ TCP แลวจะเหนวาขอมลนนเปน stream คอมความสมพนธตอเนองกนมกลไกในการตรวจสอบทงดานสงและดานรบเพอใหแนใจวาทง 2 ฝ งมความพรอมและสามารถสอสารกนไดจรงจงจะมการสงรบขอมลเกดขนจนมการรบ-สงขอมลแลวกจะมการยนยนความถกตองทกครงของการสอสาร เพอรบประกนวาขอมลทรบ-สงนนถกตองตรงกนทง 2 ฝาย ดวยลกษณะเชนนการสอสารดวย TCP จงเสมอนวาทง 2 ฝายคอฝายรบและฝายสงไดทำาการตอสายเนตเวรกถงกน (connected) ตลอดเวลาทการรบสงขอมลจนกระทงการสอสารทงหมดเสรจสนจงจะทำาการยกเลกการเชอมตอนนเสย

ดวยกลไกทกลาวถงขางตน TCP จงจำาเปนตองใช IP ดาตาแกรมมากกวา 1 ดาตาแกรมในการรบสงแตละครง รวมทงการม TCP เฮดเดอรททำางานสมพนธกน เพอควบคมการสอสารทงฝายรบฝายสงและในแตละ IP ดาตาแกรมทใชควบคมนนกจะมจงหวะและขนตอนในการสงทแนนอนและสมพนธกนดวย

18

Page 27: * 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

TCP Service : จดเดนประการสำาคญของ TCP ทกลาวถงอยเสมอคอ ความมเสถยรภาพและความถกตองของการสอสารทมความเชอถอไดสง คณสมบตททำาให TCP มขอดดงกลาวคอ

- ขอมลทจะสงผาน TCP จะถกนำามาแตกยอยออกเปนสวนๆ ใหมขนาดเหมาะสมสำาหรบการสงโดย TCP จะเปนตวพจารณาวาขนาดเทาใดจะทำาใหการรบ-สงนนมประสทธภาพและนาเชอถอสงสด โดยขอมลแตละชดทแบงออกและทำาการสงโดย TCP แตละครงจะเรยกวา TCP เซกเมนต ตางกบ UDP ทแอพพลเคชนจะเปนผกำาหนดวาขนาดของขอมลทจะสงมขนาดเทาใดและไมมขอจำากดตราบเทาทไมเกนขนาดของ UDP ดาตาแกรม (64K) แอพพลเคชนตองเปนผระบขนาดของขอมลเอง ซงอาจจะไมเหมาะสมสำาหรบการสงกได เชน หากขนาดเลกเกนไปกจะทำาใหประสทธภาพในการสงลดลงเพราะจะตองเสย overhead เปนสดสวนทสงเมอเทยบกบขนาดของขอมลหรอหากขนาดของขอมลใหญเกนไปกจะทำาให IP ซงอยเลเยอรตำาลงไปไมสามารถจดสงไดใน IP ดาตาแกรมเดยวและมผลใหถกแฟรกเมนตออกเปนสวนเลกๆ อกเชนกน

- ในการสงขอมลแตละครงของ TCP จะมการจบเวลาไวเสมอเพอรอใหอกฝ งหนงตอบยนยนการรบขอมลกลบมา หากถงเวลากำาหนดทขอมลควรจะถงปลายทางและตอบยนยนกลบมาแตยงไมมการตอบกลบ TCP จะถอวาขอมลทสงไปนนไมถงปลายทางและจดทำาการสงขอมลซำาหรอยกเลกการตดตอ ซงดวยกลไกนจะทำาใหการรบสงขอมลทกครงแอพพลเคชนสามารถทราบไดวาขอมลถงปลายทางหรอไมอยางแนนอน ไมมขอมลใดๆทสงผาน TCP แลวไมทราบสถานะของการสงครงนน

- ทกๆ ครงท TCP ไดรบขอมลอกฝ งหนงจะตองทำาการตอบรบยนยนกลบไปยงผสงเสมอซงจะสอดคลองกบขอ 2 กลาวคอหากไมมการตอบรบกจะถอวาปลายทางไมไดรบขอมล

- TCP ม checksum ซงจะคลอบคลมทง TCP Header และ TCP Data เพอเปนการปองกนและตรวจสอบวาขอมลทสงมานนถกตองและไมไดถกแกไขระหวางทางหาก TCP ไดรบขอมลททำาการตรวจสอบกบ checksum แลวปรากฎวามความผดพลาดเกดขน TCP จะทงขอมลทไดรบและจะไมทำาการตอบรบขอมลนนกลบไปยงผสง คอ ถอเสมอนวาไมไดรบขอมลนนเพอใหฝายผสงทำาการสงใหมหรอหาขอบกพรองและพยายามแกไขตามแตแอพพลเคช นทางฝายผสงเหนสมควร

- เนองจาก TCP อาศย IP ในการสงขอมลซง IP เองอาจจะถกแฟรกเมนตไดและทำาใหขอมลทถกแฟรกเมนตนนสงถงปลายทางในลำาดบทไมถกตองได หนาทของ TCP เมอรบขอมลทแฟรกเมนตมานนจะตองนำาขอมลแตละสวนมาประกอบกนใหถกตองสมบรณกอนจะสงไปยง Application Layer ตอไป

- การสงรบขอมลดวย IP อาจจะมกรณท IP Datagram นนถกสงซำาขนได TCP ทรบขอมลซำาดงกลาวจะตองทราบวาเปน IP Datagram ทซำาและไมนำาขอมลนนไปใชงาน

- TCP มกลไกควบคมการไหลของขอมล (Flow Control) โดยการควบคมนจะตองอาศยลำาดบของการรบสงทถกตองและสมพนธทงสองฝ งในขณะเดยวกนขอมลทสงนนจะตอง

19

Page 28: * 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

อาศย IP หลายดาตาแกรมจงจะไดขอมลครบทงหมด ดงนนในการรบสงขอมลทางฝายรบจงตองเตรยมบฟเฟอรไวจำานวนหนงเพอรอรบขอมลและรวบรวมขอมลทงชดใหอยในบฟเฟอรกอนทจะทำาการจดเรยงขอมลตรวจสอบความถกตองแลวจงสงตอไปยงแอพพลเคชนดวยเหตผลดงกลาวจะเหนไดวาขนาดของขอมลมไดถกจำากดทขนาดของดาตาแกรมใดๆ ขอมลทสงอาจจะมขนาดใหญมากอยในหลายดาตาแกรมกเปนได ดงนน เพอปองกนการสงขอมลขนาดใหญหรอเรวเกนไปจนทำาใหฝายรบไมมหนวยความจำาเพยงพอทจะเปนบฟเฟอรทพกขอมลการสงขอมลจงถกจำากดโดยจะอนญาตใหทำาการสงขอมลไดเทาทฝายรบมบฟเฟอรเพยงพอเทานน

IP header TCP header

TCP Segment

IP datagram

รปท 2.10 Encapsulation ของขอมล TCP ใน IP datagram

TCP Header : ใน TCP Header จะเรมตนระบทหมายเลขพอรตตนทางและปลายทาง แตอนทจรงแลวขอมลอกสวนหนงทใชในการสอสารคอ IP Address ของตนทางและปลายทางกตองระบดวยเชนกนแตไดถก Encapsulate ไวในเลเยอรของ IP และคาของ IP Address ทงคจะอยใน IP Header และคของ IP Address และหมายเลขพอรตนนจะเรยกวา “ซอคเกต (Socket)” ซงในการสอสารแตละครงจะตองมทงซอคเกตของตนทางและปลายทาง ขอมลจงจะถกสง-รบไปถกทและถกแอพพลเคชน รายละเอยดหนาทของแตละฟลดใน TCP Header มดงน

20

Page 29: * 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

16-bit source port number 16-bit destination port number32-bit sequence number

32-bit acknowledge number4-bit

Headerlength

FIN

RYN

RST

URG

ACK

PSH

Reserves(6 bits) 16-bit windowns size

16-bit TCP Checksum 16-bit urfent pointer

Option (�oµ¤)

Data (�oµ¤ )

15 160 31

tcpheader

รปท 2.11 TCP Header

Source Port Number : หมายถงพอรตทโฮสตตนทางใชในการสอสารกนของเซสชนนและ TCP/IP จะใชพอรตนไปตลอดตราบเทาทการสอสารในเซสชนนยงไมยตลง โดยทวไปพอรตนจะเรยกวา “ไคลเอนตพอรต” คอ พอรตทไคลเอนตเปดขนมาเพอรอการตอบรบจากเซรฟเวอร ไคลเอนตจะมหมายเลขไมแนนอนและเปลยนไปทกครงทมการเรมการเชอมตอใหมเปนพอรตทถกเปดไวในระยะเวลาสนๆ คาทเปนไปไดของพอรตนขนอยกบการจดสรรของระบบปฏบตการในการกำาหนดขอบเขตของพอรตเหลาน สวนใหญจะมคาอยในชวง 1024-5000

Destination Pot Number : หมายถงหมายเลขพอรตบนโฮสตปลายทางทโฮสตตนทางตองการตดตอดวย โดยนยแลวจะหมายถงแอพพลเคชนทใหบรการอยบนพอรตนนทโฮสตปลายทางนนเองพอรตนจะเรยกอกอยางหนงวา “เซรฟเวอรพอรต” หมายเลขพอรตทเปดไวจะขนอยกบแอพพลเคชนทใหบรการ โดยทวไปแอพพลเคชนแตละประเภทจะมหมายเลขพอรตเปนมาตรฐานสำาหรบใหไคลเอนตไดเรยกใชบรการ

Sequence Number : เปนฟลดทระบถงหมายเลขลำาดบทใชอางองในการสอสารขอมลแตละครงเพอใหทงสองฝายจะไดรบทราบตรงกนวาเปนขอมลของชดใด การนำาไปใชงานจะไดไมปะปนกนและมลำาดบทถกตองเนองจากการสอสารขอ TCP Header รวมไปถงการทขอมลในแตละ TCP Segment อาจจะถกทำาการแฟลกเมนตในเลเยอรของ IP ถดลงไป ทำาใหขอมลถกแบงออกและสงไปใน Flag เปนขอมลในระดบบตทใชเปนตวบอกคณสมบตของ TCP Segment ทกำาลงสงอยนนและใชเปนตวควบคมจงหวะการรบสงขอมลดวยซง Flag ทงหมดมอย 6 บต แตละบตมชอและความหมายดงนลำาดบทไมเรยงกน หากไมมจดอางองของขอมลกจะไม

21

Page 30: * 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

สามารถอานขอมลกลบใหมไดอยางสมบรณและถกตอง การสงขอมลและการตอบรบจะใชฟลดนเปนตวยนยนระหวางกนเสมอ

Acknowledge Number : ทำาหนาทเชนเดยวกบ Sequence Number ตางกนตรงทเปน Sequence Number ซงใชในการตอบรบกลาวคอเนองจาก Sequence Number ทใชในการอางองนนผท เรมสงขอมลจะเปนผกำาหนดเลขขนมาและสงไปพรอมกบการสรางการเชอมตอครงใหม แตสำาหรบฝายทถกตดตอกจำาเปนกำาหนดหมายเลขสำาหรบใชอางองในการตอบรบเชนกนคาทอยใน Acknowledge Number กคอหมายเลขทใชอางองในการตอบรบนปกตคาทงใน Sequence Number และ Acknowledge Number จะตองพจารณาประกอบกบ Flag จงจะสามารถแปลความหมายของ TCP Segment ไดอยางสมบรณ

Header Length : โดยปกตความยาวของ TCP Header จะเทากบ 20 ไบต แตถาหากมการใชคา option อาจจะทำาใหขนาดของเฮดเดอรยาวขนตามขอมลทตองเพมมาจาก option นนแตทงหมดแลวจะไมเกน 60 ไบต

URG แสดงวาขอมลในฟลด Urgent Pointer นนนำามาใชงานไดACK แสดงวาขอมลในฟลด Acknowledge Number นำามาใชงานไดDSH เพอแจงใหผรบขอมลทราบวาควรจะสงขอมล Segment นไปยงแอพ -

พลเคชนโดยเรวRST ยกเลกการตดตอSYN ใชในการเรมตนขอตดตอปลายทางFIN ใชสงเพอแจงใหปลายทางทราบวายตการตดตอWindow size : เปนขนาดของการรบ-สงขอมลในแตละครงททางฝายผรบจะสามารถรบ

ไดเนองจากากรบขอมลนนทางผรบจะตองจดเตรยมหนวยความจำาในการพกขอมลทมาจาก TCP และทำาการ Demultiplex ออกมา หากไมมการตกลงถงขนาดททางฝายรบสามารถรบไดจะทำาใหการสอสารขอมลไมสมดลและฝายรบอาจจะประมวลผลไมทน ซงจะสงผลใหตองสงขอมลซำาหลายครง

Checksum : ฟลดทใชในการตรวจสอบความถกตองของขอมลทใชใน TCP เซกเมนทUrgent pointer : ใชหมนหมายเลข sequence Number ของ TCP เซกเมนทลาสดทอย

ในโหมด urgentOption : ขอมลเพมเตมซงจะอยใน TCP Header เมอมการตงคา option บางอยางท

ตองการขอมลเพมซงไมมใน TCP Header เชน MSS, Strict Route2.1.3 ไฟลวอลล (Firewall) เรองไกร รงสพล [4] กลาววา ในการเชอมตอกบเครอขายอนเทอรเนตอยางหนง

ทจะขาดไมไดนนคอเราตองมวธการในการรกษาความปลอดภย สงทสามารถชวยลดความเสยงนไดกคอ ไฟลวอลล โดยไฟลวอลลนนจะทำาหนาทปองกนอนตรายตาง ๆ จากภายนอกทจะเขามายงเนตเวรกของเรา ไฟลวอลลเปนคอมโพเนนตหรอเนตเวรกทเราคดวาไมปลอดภย

22

Page 31: * 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

กบเนตเวรกภายในหรอเนตเวรกทตองการจะปองกน โดยทคอมโพเนนตนนอาจจะเปนเราเตอร คอมพวเตอรหรอเนตเวรกตามเทคโนโลยทใชในการตรวจสอบและควบคมแบงไดเปน Packet Filtering , Proxy Service และ Stateful Inspection

Packet Filter : คอเราเตอรททำาการหาเสนทางและสงตอ (route) อยางมเงอนไข โดยจะพจารณาจากขอมลสวนทอยในหวของแพกเกจทผานเขามาเทยบกบกฎทกำาหนดไวและตดสนวาควรจะทงแพกเกจนนไปหรอวาจะยอมใหแพกเกจนนผานไปได

ในการพจารณาเฮดเดอร Packet Filter จะตรวจสอบในระดบของอนเทอรเนตเลเยอรและทรานสปอรตเลเยอรในอนเทอรเนตโมเดล ซงในอนเทอรเนตเลเยอรจะมแอตทรบวตทสำาคญตอ Packet Filtering ดงน ไอพตนทาง , ไอพปลายทาง , ชนดของโปรโตคอล (TCP UDP และ ICMP) และในระดบของทรานสปอรตเลเยอรมแอตทรบวตทสำาคญคอ พอรตตนทาง , พอรตปลายทาง , แฟลก (Flag) ซงจะมเฉพาะในเฮดเดอรของแพกเกต TCP (ชนดของ ICMP message) ในแพกเกจ ICMP (ซงพอรตของทรานสปอรตเลเยอร คอ ทง TCP และ UDP นนจะเปนสงทบอกถงแอพพลเคชนทแพกเกจนนตองการตดตอดวยเชน พอรต 80 หมายถง HTTP พอรต 21 หมายถง FTP เปนตน ดงนนเมอ Packet Filter พจารณาเฮดเดอร จงทำาใหสามารถควบคมแพกเกจทมาจากทตาง ๆ และมลกษณะตาง ๆ (ดไดจากแฟลกของแพกเกจหรอชนดของ ICMP ในแพกเกจ ICMP )ได เชน หามแพกเกจทกชนดจาก crack.cracker.net เขามายงเนตเวรก 203.154.207.0/24 , หามแพกเกจทมไอพตนทางอยในเนตเวรก 203.154.207.0/24 ผาน

Proxy Firewall หรอ Application Gateway เปนแอพพลเคชนโปรแกรมททำางานอยบนไฟลวอลลทต งอยระหวางเนตเวรกสองเนตเวรกทำาหนาทเพมความปลอดภยของระบบเนตเวรกโดยการควบคมการเชอมตอระหวางเนตเวรกภายในและภายนอก Proxy จะชวยเพมความปลอดภยไดมาก เนองจากมการตรวจสอบขอมลถงในระดบของแอพลเคชนเลเยอร (Application Layer)

เมอไคลเอนตตองการใชเซอรวสภายนอกไคลเอนตจะทำาการตดตอไปยง Proxy กอน ไคลเอนตจะเจรจา (negotiate) กบ Proxy เพอให Proxy ตดตอไปยงเครองปลายทางใหเมอ Proxy ตดตอไปยงเครองปลายทางใหแลวจะมการเชอมตอ (connection) 2 การเชอมตอ คอ ไคลเเอนตกบ Proxy และ Proxy กบเครองปลายทาง โดยท Proxy จะทำาหนาทรบขอมลและสงตอขอมลใหใน 2 ทศทาง ทงน Proxy จะทำาหนาทในการตดสนใจวาจะใหมการเชอมตอกนหรอไม จะสงตอแพกเกจใหหรอไม

Stateful Firewall : โดยปกตแลว Packet Filtering แบบธรรมดา (ทเปน Stateless แบบทมอยในเราเตอรทวไป) จะควบคมการเขาออกของแพกเกจโดยพจารณาขอมลจากเฮดเดอรของแตละแพกเกจนำามาเทยบกบกฎทมอย ซงกฎทมอยกจะเปนกฎทสรางจากขอมลสวนทอยในเฮดเดอรเทานน ดงนน Packet Filtering แบบธรรมดาจงไมสามารถทราบไดวาแพกเกจนอยสวนใดของการเชอมตอเปนแพกเกจทเขามาตดตอใหมหรอเปลาหรอวาเปนแพกเกจทเปน

23

Page 32: * 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

สวนของการเชอมตอทเกดขนแลว เปนตน ซง Stateful Inspection เปนเทคโนโลยทเพมเขาไปใน Packet Filtering โดยในการพจารณาวาจะยอมใหแพกเกจผานไปนนแทนทจะดขอมลจากเฮดเดอรเพยงอยางเดยว Stateful Inspection จะนำาเอาสวนขอมลของแพกเกจ (message content) และขอมลทไดจากแพกเกจกอนหนานทไดทำาการบนทกเอาไวนำามาพจารณาดวย จงทำาใหสามารถระบไดวาแพกเกจใดเปนแพกเกจทตดตอเขามาใหมหรอวาเปนสวนหนงของการเชอมตอทมอยแลว สวนตวอยางผลตภณฑทางการคาทใช Stateful Inspection Technology ไดแก Check Point Firewall-1 , Cisco Secure Pix Firewall หรอ SunScreen Secure Net และสวนทเปน open source แจกฟร ไดแก NetFilter ใน Linux (iptables ในลนกซเคอรเนล 2.3 เปนตนไป)

ระบบปฎบตการลนกซไดม iptables ใชในการตงกฎเพอตรวจสอบการเขา-ออกจากระบบซงจะมการสรางเชนขนเหมอนเปนกลมของการตรวจสอบโดยเชนเรมตนทพรอมกบระบบปฎบตการลนกซมดงน

- เชนขาเขา (input chain) ตรวจสอบแพกเกจจากภายนอกทเขามาตดตอกบระบบหลงกำาแพงไฟ

- เชนขาออก (output chain) ตรวจสอบแพกเกจจากภายในทตดตอกบภายนอกกำาแพงไฟ

- เชนสงตอ (forwark chain) ตรวจสอบแพกเกจทเขามาทเครองแลวมการสงตอไปยงเครองอนอกท

PREROUING(DNAT)

LocalDestination ? FORWARD POSTROUTING

(SNAT)

INPUT Localprocess

OUTPUT

รปท 2.12 บลอกไดอะแกรมแสดงการทำางานของระบบไฟลวอลลและ NAT

โดยตามโครงสรางของเนตเวรกทวางไวแพกเกจทกแพกเกจไมวาจะเขามาตดตอกบองคกรหรอจากภายในองคกรตดตอสภายนอกจะตองผานเครองทเปนกำาแพงไฟกอน ดงนนแพกเกจทผานเขามาทเครองกำาแพงไฟจะถอวาเปนแพกเกจทเขามาตดตอ ดงนนจะถกตรวจสอบดวยเชนขาเขา (Input chain) กอน

ถาแพกเกจนนผานกฎเขามาไดจะถกตรวจสอบตอวามการตดตอไปยงเครองอนหรอวาเครองกำาแพงไฟเองเรยกวาการเราทตง (routing) ถาเปนการตดตอกบเครองอนทไมใชเครองกำาแพงไฟกจะถกสงตอไปใหเชนสงตอ (Forward chain) ตรวจสอบและถาผานกฎในเชน

24

Page 33: * 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

สงตอได กอนแพกเกจจะถกสงออกนอกเครองกำาแพงไฟจะถกตรวจสอบดวยเชนขาออก (Output chain) อกท

เมอขอมลอยในระหวางการเดนทาง เชน กำาลงมาจากอนเทอรเนตแลวขอมลนนกเขามายงเครองไฟลวอลลผานทาง incoming interface (eth0) มาถง PREROUTING chain ซง chain นใชสำาหรบทำา Destination Network Address Translation ไมควรสราง rule เพอกรอง packet ท chain นเพราะอาจจะมบาง packet ทไมเขาส chain น (มแค packet แรกเทานนทผานเขาส chain สวน packet ถดไปใน connection เดยวกนนนจะถกกระทำาเหมอนกบท packet แรกไดรบ) หลงจากนนกเขาส Routing decision เพอตดสนใจวา packet จะถกสงไปทใด ถาในกรณท packet ถกสงไปยงเครองอนในเครอขาย packet ตองเขา FORWARD chain ซงสามารถเขยน rule สำาหรบควบคมการผานเขาออกของ packet สำาหรบ forwarded packet ไดทนและกอนท packet จะออกไปจากเครองไฟลวอลล โดยสวนใหญ (ไมใชทงหมด) จะผาน chain นซงใชทำา Source Network Address Translation ไมควรสราง rule เพอกรอง packet ท chain นเพราะอาจจะมบาง packet ทไมเขาส chain น (มแค packet แรกเทานนทผานเขาส chain สวน packet ถดไปใน connection เดยวกนนนจะถกกระทำาเหมอนกบท packet แรกไดรบ) และ packet กออกไปทาง outgoing interface (eth1) เดนทางไปสเปาหมาย (เชน ผานทาง LAN)

สวนในกรณท Rouing decision ตดสนใจวา packet ทมเปาหมายเปนเครองไฟลวอลลจะตองเขาส INPUT chain เสมอไมวาจะมาจาก interface ใดกตามและ OUTPUT chain ใชสำาหรบกรอง packet ทออกมาจาก localhost หรอเครองไฟลวอลลเองแลวเขาส Rouing decision เพอตดสนวา packet จะถกสงไปทใดและกอนท packet ออกไปจากเครองไฟลวอลลกจะตองผาน POSTROUING chain เหมอนกบในกรณแรก

2.1.4 Network Address Translation (NAT)ในการเชอมตอกบอนเทอรเนตนนจำาเปนตองม Public IP address เปนการเฉพาะ

จงจะสามารถเชอมตอและใชงานได แตเนองจากการเตบโตอยางรวดเรวของอนเทอรเนตทำาให IP ไมเพยงพอตอการใชงานดงนน NAT จงเปนทางออกหนงสำาหรบการแกไขปญหาน โดยการทำา NAT นนทำาใหสามารถใช private IP เชอมตอและใชงานอนเทอรเนตไดและยงเพมความปลอดภยทางเครอขาย (network security) อกดวย

เมอ NAT เรมทำางานมนจะสรางตารางภายในซงมไวสำาหรบบรรจขอมล IP address ของเครองในเครอขายภายในทสง packet ผาน NAT และจากนนมนกจะสรางตารางไวสำาหรบเกบขอมลหมายเลขพอรต (port number) ทถกใชไปและเมอมการสง packet จากเครอขายภายในไปยงเครอขายภายนอก NAT มกระบวนการทำางานดงตอไปน

- มนจะบนทกขอมลไอพตนทางและพอรตตนทางไวในตารางทเกยวของ- มนจะแทนท IP ของ packet ดวย IP ขาออกของ NAT device เอง - มนจะใหคาหมายเลขพอรตใหมใหกบ packet และบนทกคาพอรตนไวในตาราง

25

Page 34: * 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

และกำาหนดคานลงไปใน source port number ของ packet นน - จากนนจะคำานวณหา IP , TCP checksum อกครงเพอตรวจสอบความถกตอง และเมอ NAT device ไดรบ packet ยอนกลบมาจาก external network มนจะ

ตรวจสอบ destination port number ของ packet นน ๆ แลวนำามาเปรยบเทยบกบขอมล source port number ในตารางทบรรจขอมลไวถาเจอขอมลทตรงกนมนกจะเขยนทบ destination port number , destination IP address ของ packet นน ๆ แลวจงสง packet นนไปยงเครองอยภายในเครอขายภายในทเปนผสราง packet นขนมาในครงแรก

2.1.5 การใชงานคำาสง iptablesหลงจากทเราไดรจกการทำางานของไฟลวอลลและ NAT ไปอยางคราว ๆ แลว คราว

นเราจะมาทำาความรจกกบคำาสงทใชในการสรางไฟลวอลลและคำาสงในการทำา NAT ซงนนกคอ คำาสง Iptables ซงเปนตวทตดมากบ Kernel เวอรช น (ตงแต Kernel เวอรช น 2.3 เปนตนมา) ซงใน Linux สมยกอน ๆ จะมทใหใชกคอคำาสง ipchain ซงหลงจากเวอรชน 2.3.15 นนกไดออกมาเปน iptables ซงอาจจะถอไดวาเปนรนทส ของระบบไฟลวอลลทมอยในระบบลนกซซงจะเรยกวาเนตฟลเตอร (Netfilter) ซงในการทำางานของ Iptables กจะคลายๆ กบการใชงาน ipchain และ ipfwadm จะมบางคำาสงเทานนทมการเปลยนไปบางซง iptables จะมรปแบบการใชงานดงนคอ

iptables [table] <command><match><target/jump>โดยกฎทเขยนขนจะเปนตวบอกเคอรเนลวาใหกระทำาอยางไร ในกรณทพบขอมล

ตรงตามทระบไว[Table] หมายถง ตารางหรอ table ทตองการระบ เชน iptables –t nat หมายถงให

ทำางานกบ nat table ในกรณทไมไดระบตาราง iptables จะถอวาคำาสงดงกลาวระบถง filter table โดยอตโนมต

<Command> จะเปนตวสงให iptables ทำาในสงทตองการ เชน iptables –A INPUT ซงหมายถงใหสราง rule ตอทาย INPUT chain ใน filter table

<Match> เปนสวนทใชตรวจสอบวา packet มขอมลตรง (match) กบทระบไวหรอไม เชน ม source ip address เปน 1.2.3.4

<Targer/jump> เปนตวระบวาเมอเจอ packet ท match กจะกระทำา (action) ตามทระบไว เชน ถา packet ใดม source ip address เปน 1.2.3.4 ให DROP packet นนทงไป

Table : iptables สามารถระบตารางไดโดยใชออปชน –t ตามดวยชอ table คอ- Filter table ใชสำาหรบกรอง packet ม 3 built-inchain คอ INPUT, OUTPUT ,

FORWARD - Nat table ใชสำาหรบการเปลยนแปลงแอดเดรส (Network Address Translation)

ม 3 built-in chain คอ PREROUTION , POSTROUTING , OUTPUT ซงรายละเอยดจะไดอธบายตอไป

26

Page 35: * 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

- Mangle table เปนตารางทใชเปลยนแปลงแกไข packet เชน เปลยนคา TTL , MARK ซงปกตจะใชในการทำา routing ทมความซบซอนสง ม 2 built-in chain คอ PREROUTING chain (ใชแกไข packet กอนทจะเขาสไฟลวอลลและกอนเขาส routing decision) และ OUTPUT chain (ใชแกใข packet ทถกสรางโดยไฟลวอลลกอนทมนจะถกสงไป ยง routing decision) ทงนไมสามารถทำา network address translation หรอ masquerading ท table นไดและในเอกสารฉบบนจะไมกลาวถง mangle อก เนองจากเปนสวนทไมนยมนำาไปใช

สวนคำาสงในการทำางานของ Iptables น ทางผพฒนาจะขอหยบยกคำาสงพนฐานททางผพฒนาไดใชในการทำาโครงงานน เชน

-A เพม rule ใหมตอทาย chain (Append rule) เชน# iptables –A INPUT –p ALL –i eth0 –j ACCEPT

-D ลบ rule (Delete rule) เชน# iptables –D INPUT –dport 80 –j DROP

-I เพม rule ใหม ใน chain (Insert rule) เชน# iptables –I OUTPUT –p ALL –s 127.0.0.1/32 –j ACCEPT

-L แสดง rule ทงหมดใน chain (ถาไมระบ chain จะแสดง rule ทงหมดใน filter table ทงสาม built-in chain) เชน

# iptables –L# iptables –t nat -L# iptables –L INPUT

-F ลบ rule ทงหมดใน chain ทง เชน# iptables –F INPUT# iptables –F mychain

-P เปลยน default policy ของ chain คาทใชไดคอ ACCEPT, DROP ทงนคานมความสำาคญอยางมากเพราะหาก packet ถกสงเขามาใน chain แลวและไม match กบ rule ใดๆ เลย packet นนกตองถกตดสนใจโดย policy ของ chain นน ๆ เชน

# iptables –P FORWARD DROP

27

Page 36: * 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

ซงหาก Packet ถกสงเขามายง FORWARD chain และไม match กบ rule ใด ๆ ใน FORWARD chain นเลย มนกจะถก DROP ทนท

-E ใชเปลยนชอ chain ใหม เชน# iptables –E myoldchain mynewchain

Match : การตงเงอนไขของการ match นนจะตองอาศยความเขาใจในเรอง IP , TCP , UDP , และ ICMC มาบางพอสมควรจงจะสามารถตงเงอนไขทเหมาะสมและตรงตามความตองการได ซงมรายละเอยดดงน

การระบ source , destination IP address : สามารถระบ source ip address ของ packet โดยใช –s หรอ –source หรอ –src และสำาหรบ destination ip address กใช –d หรอ –destination หรอ –dst การระบไอพแอดเดรสนนสามารถทำาได 4 แบบดวยกน คอ

- ใชชอเตมแทน เชน localhost หรอ www.nectec.or.th- ระบไอพแอดเดรสโดยตรง เชน 127.0.0.1 หรอ 202.44.204.33- ระบเปน group ของไอพแอดเดรส เชน 202.44.204.0/24 หมายถงไอพแอดเดรส

ตงแต 202.44.204.0 – 202.44.204.255 - หรออาจจะใช 202.44.204.0/255.255.255.0 แทน 202.44.204.0/24 ในบางกรณนนหากตองการระบเปนสวนกลบ (Inverse) เชนอนญาตใหทกไอพ

ยกเวนไอพทระบไวซงการใชคำาสงดงกลาวสามารถทำาไดโดยใชเครองหมาย “!” นำาหนาสงทเราตองการ (เครองหมาย ! หมายถง NOT) เชน –p ! TCP ซงจะตรงกบโปรโตคอลทก ๆ ตวทไมใช TCP หรอ –S ! Iocalhost ซงหมายถง packet ทม source ip address อน ๆ ยกเวน Iocalhost (127.0.0.1)

สวนในการระบโปรโตคอลสามารถระบโปรโตคอลทตองการไดดงนคอ TCP , UDP, ICMP หรอสามารถใชตวเลขแทนไดและยงสามารถใชไดทงตวอกษรเลกหรอใหญ (ใชไดทง tcp และ TCP) เชน –p TCP หรอ –p ! tcp

การระบ Interface โดย –I หรอ –in-interface ตามดวยชอ interface ใชเพอระบ incoming interface ซงหมายถงวา packet ทจะตรงกบกฎขอนตองเขามาจาก interface ทกำาหนด เชน –I eth0 หมายความวา ทก packet ทเขามาทาง eth0 จะตรงกบกฎขอน ทงนชอ interface ทสามารถใชไดนนสามารถตรวจสอบไดโดยใชคำาสง ifconfig ซงเปนคำาสงในระบบลนกซและ –o หรอ –out-interface ตามดวยชอของ interface ใชเพอระบ outgoing interface ซงหมายถงวา packet ทจะ match กบ rule น กำาลงจะเดนทางผาน interface ทระบไว เชน –o eth1 หรอ –o ! eth1

28

Page 37: * 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

--source-port หรอ –sport สามารถใชไดทงตวเลขและตวอกษร (อางองจากไฟล /etc/services) และระบเปน port เดยว หรอชวงของ port ได เชน –sport 21:25 หมายถง port 21 – 25 , --sport 25 หมายถง port ทมากกวาหรอเทากบ 25 , --sport 25 หมายถง port ทนอยกวาหรอเทากบ 25 สวน –destination-port หรอ –dport มรปแบบการใชงานเชนเดยวกนกบ –sport

--tcp-option ใชตรวจสอบ TCP option วาตรงกบเลขทระบไวหรอไม การระบ Target เมอม packet ท match กบ rule แลวตองกำาหนด target สำาหรบ packet ไวดวย โดยปกตจะใชกน 2 target คอ DROP และ ACCEPT ซงเปาหมายแบบ Drop กเปนการไมทำางานกบ Package น สวน ACCEPT กคอการยอมนนเอง นอกจากนยงม target แบบอนไดคอ REJECT ซงจะคลายกบ DROP เพยงแตจะสง ICMP port unreachable กลบไปยงผทสง packet มา2.1.6 Linux Traffic Control

2.1.6.1 QoS คออะไรLucian Gheorghe [5] กลาววา QoS ในระบบเครอขายโดยทวไปหมายถงสงท

สามารถวดไดเหมอนกบ Latency และ Throughput โดยปกตแลวการจดการเนตเวรกทราฟฟคและแพคเกตนนนยมใชวธ Best Effort อยางไรกตามถาคณเคยประสบปญหาเกยวกบการตดตอสอสารของแอพพลเคชนบนระบบอนเตอรเนตเกดความลาชาขนซงเปนทเขาใจวา Best Effort นนบอยครงนนยงคงดไมเพยงพอ ความตองการสำาหรบ Flow ของแอพพลเคช นบางอยางตองการสทธพเศษสำาหรบการทำางานและบางครงมความเปนไปไดทจะสามารถจดการ Flow ทตางกนของแพคเกตทตางกน ตองยอมรบวาสำาหรบทราฟฟคบางอยางมความตองการ Latency ทตำาหรออตราความเรวทสามารถรบประกนไดบางครง QoS จะหมายถงการทำา Traffic Control หรอ Traffic Shaping

2.1.6.2 Traffic Control Overview

การจดแบงประเภทของทราฟฟคและ Shaping จะเกดขนททางขาออกของเราเตอรทเปนเกตเวยการทเราจะเขาใจถงการจดแบงประเภทของทราฟฟคและการดแลทใหสทธพเศษ ดจากตวอยางดงน สมมตวาเราเตอรมการใชงานเปน FIFO Scheduler สำาหรบการจดการแบบ Best Effort เพอดแลจดการ Flow เราสามารถพจารณาเรองของ Queue ซงเปรยบเหมอนดานเกบคาผานทางทอยบนทางหลวง ดานเกบคาผานทางนจะรองรบจำานวนของรถไดจำากดเพยงครงละคนเทานนเมอมาพรอมกนรถทเขามาทหลงตองมาเขาคว และสมมตวามรถพยาบาลพรอมดวยผปวยฉกเฉนเขามาตอควอยททายสด Packet Scheduler สามารถทจะตดสนใจบนพนฐานของเกณฑทกำาหนดไวและนคอ Flow พเศษ รถพยาบาลมความสำาคญควรทจะไปอยขางหนาและควรจะผานดานดวยความรวดเรวกวารถคนอนๆ ตวอยางขางบนนจะเปนประโยชนถาเราสามารถจดการ Queue ทมความสำาคญได

29

Page 38: * 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

2.1.6.3 Linux Traffic Control

ความสามารถในการทำา Traffic control ของลนกซนนเรมมตงแตเคอรเนล 2.2 การทำา Shaping Configuration นนจะใชความหลากหลายของ Packet Scheduler และ Shaper ซงการคอนฟกนนจะใช tc Binary ทอยในแพคเกจ iproute2 สวน Qdisc จะเปนการทำา Scheduler บนลนกซ

• The Qdisc

การจดทำาลนกซ Traffic Shaping จะอนญาตใหเราสามารถทจะสรางคอนฟกกเรชนทไมมกฎเกณฑซงยากทจะเขาใจและอยบนพนฐานของ Building Block ของ Qdisc เราสามารถทจะเลอกชนดของ Qdisc ไดซงจะม Classless และ Classful โดยปกตแลวอเธอรเนตอนเตอรเฟสจะใช Classless Qdisc ซงจะใช FIFO เปนพนฐานในการทำางาน ในทางตรงกนขาม Classful Qdisc สามารถทจะประกอบไปดวยคลาสทเปน Level ตางๆลงไป Leaf Class

จะไมสามารถเพมคลาสเขาไปไดซง Qdisc จะเลอกใช FIFO โดยอตโนมต Classless Qdisc

จะเปนสวนของ Scheduler สวน Classful Qdisc โดยปกตจะเปน Shapers แต Schedule จะดกวา

• Hooks

การทำางานของแตละเนตเวรกอนเตอรเฟสจะมประสทธภาพนนจะมอย 2 สวนทเราจะ เพม Qdisc เขาไปทอนเตอรเฟสคอ Root และ Ingress ซง Root จะมความหมายเดยวกนกบ Egress ความแตกตางกนระหวาง 2 Hooks ในลนกซ QoS ซงเปนสวนประกอบทสำาคญคอ Root Hooks ซงอยทอเธอรเนตอนเตอรเฟสของเครอขายภายในนนสามารถทจะนำามาใชในการแบงประเภทของทราฟฟคเพอใหมประสทธภาพและ Root Hook จะหมายถง Queue ทก Queue ทสรางขนมาภายใตการควบคมของเรา Ingress Hook จะอยบนอเธอรเนตอนเตอรเฟสทจะตดตอกบภายนอกซงเราไมสามารถทจะทำาการ Shape ทราฟฟคในสวนนได

2.1.6.4 Class Structure Revealed

สงทสำาคญทสดในการสรางคอนฟกกเรชนสำาหรบการควบคมทราฟฟคนนเราจะตองเขาใจถงวธการเขาไปจดการกบคลาสทเปนลำาดบชนเพอทจะเพม Root Hook เขาไปเราสามารถปรบแตงโดยใชคำาสง tc

• Classless Qdisc

ตวอยางการใชคำาสง tc ในการสราง Classless Qdisc

#tc qdisc add dev eth2 parent root handle 1:0 pfifoจากตวอยางอนดบแรกทตองระบตอจาก tc คอ Qdisc เพอบอกวาจะทำางานโดยใช Qdisc และ Add Dev Eth2 จะเปนการสราง Qdisc ใหมทอเธอรเนตอนเตอรเฟส Eth2 (เราสามารถทจะระบ Del แทนท Add เพอเปนการลบ Qdisc ทเราสรางขน) ตอจากนนกคอ Parent Root ซง

30

Page 39: * 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

หมายถง Hook ทอเธอรเนตอนเตอรเฟสขาออก สวน Handle จะเปนการกำาหนดชอเฉพาะของ Qdisc และสดทายเราจะตองระบประเภทของ Qdisc ทเราใชจากตวอยางจะเปน Pfifo ซง Pfifo จะเปน Classless Qdisc ซงจะไมสามารถเพมออฟชนตอไดอกถอวาเปนการจบคำาสงน จากตวอยางสามารถแสดงเปนรปไดดงรป

รปท 2.13 Classless Qdisc

สงสำาคญทตองพจารณาคอ การตงชอให Qdisc กอนจะทำาการโปรเซสซงสงท Qdisc ใชอางถงคอหมายเลขทผสมกนระหวางหมายเลขของโหนดหลก (Major Node Number) และ หมายเลยของโหลดรอง(Minor Node Number) ซงหมายเลขของโหลดหลกสำาหรบ Root Hook ทกำาหนดใหอเธอรเนตอนเตอรเฟสจะตองไมซำากนและหมายเลขของโหนดรองจะตองเปนศนยเสมอ สมมตวาครงแรกเราสราง Qdisc ชอ 1:0 เราสามารถเปลยนชอเปน 7:0 แทนได หมายเลขเหลานตองเปนจำานวนจรงจรงทอยในเลขฐาน 16 ซงอยระหวาง 1 ถง ffff โดยทวไปทนยมกนจะใชเลขระหวาง 0 ถง 9

• Classful Qdisc

ตวอยางของการสราง Classful Qdisc และ Single Class

# tc qdisc add dev eth2 parent root handle 1:0 htb default 1จากตวอยางการจะเหนวาการใชคำาสงจะเหมอนกบ Classless Qdisc แตจะมการใช HTB

Qdisc เพมเขามา จรงๆแลวประโยชนของการใชงาน Classful Qdisc คอเราจะสามารถเพมคลาสเขาไปไดอกและจากตวอยางขางบนจะสงเกตเหนการใชพารามเตอร Default ซงเปนออฟชนสำาหรบ HTB Qdiscs โดยจะอธบายภายหลง

# tc class add dev eth2 parent 1:0 classid 1:1 htb rate 1 mbit

จากตวอยางเราใชคำาสง tc พรอมกบ Class Argument แทนทการใช Qdisc Argument ซงการใช Class Argument จะเปนการยอมใหเราสามารถสรางคลาสแบบลำาดบชนได พารามเตอร Parent จะทำาใหเราสามารถเพมคลาสประเภทตางๆทเปนของ Classful Qdisc หรอคลาสอนๆทอยในประเภทเดยวกนจากตวอยางขางบนเปนการเพม HTB Qdisc เขาไป คาของพารามเตอร Parent จะตองเปนหมายเลขของ Major และ Minor Node ของ Qdisc หรอหมายเลขของคลาสทเราตองการจะเพมเขาไปจากตวอยางเราระบ 1:0 คานจะถกเลอกใชสำาหรบ Handle ของ HTB Qdisc ซงจะถกใชเปน Argument ของพารามเตอร Parent สวนพารามเตอร Classid ใชสำาหรบคลาสนนกคอ Handle พารามเตอรนนเองจะเปนการระบชอสำาหรบคลาสโดยเฉพาะหมายเลข Major Node ของ Classid จะใชหมายเลขทเหมอนกบ Major Node ทเราไดระบใน Parent Argument สวน Minor Node เราสามารถเลอกหมายเลขอะไรกไดสำาหรบพารามเตอร Classid แตตองอยระหวาง 1 ถง ffff สำาหรบคลาสนจะม Classid เปน 1:1 หมายเลข 1 ตวแรก

31

Page 40: * 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

จะหมายถงหมายเลขของ Major node สำาหรบพารามเตอร Handle และสดทายกคอเราจะระบประเภทของคลาสและออฟชนตางๆทคลาสนตองการ จากตวอยางเราใชคลาสประเภท HTB

สำาหรบ Rate ซงเปนออฟชนของ HTB จะอธบายในลำาดบตอไป จากคำาสงขางตนสามารถแสดงเปนรปไดดงรป

รปท 2.14 Classful Qdisc

• Classless and Classful Combined

ตวอยางของการสราง Classless และ Classful Qdisc ใหทำางานรวมกน#tc qdisc add dev eth2 parent root handle 1:0 htb default 20

#tc class add dev eth2 parent 1:0 classid 1:1 htb rate 1000kbit

#tc class add dev eth2 parent 1:1 classid 1:10 htb rate 500kbit

#tc class add dev eth2 parent 1:1 classid 1:20 htb rate 500kbit

#tc qdisc add dev eth2 parent 1:20 handle 2:0 sfq

จากตวอยางจะเปนโครงสรางแบบ Nested Structure โดย HTB Classful Qdisc จะถกกำาหนดใหกบ Root Hook ประกอบดวยคลาส HTB 3 คลาสและ 1 SFQ Qdisc สำาหรบ 1 HTB

คลาสดงรปท 2.10

32

Page 41: * 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

รปท 2.15 Classless and Classful Combined

จากรปโครงสรางขางบนสดจะเปน HTB Qdisc ประกอบดวย 3 คลาสโดยทคลาสแรกคอ Parent จะเปน 1:0 และอก 2 คลาสทเหลอจะเปน Children ของคลาสแรก สวนคลาสแตละคลาสทงหมด 3 คลาสทถกเพมเขาไปท HTB Qdisc จะถกกำาหนดดวยหมายเลขของ Major

Node เปน 1 สำาหรบ Classid โดย Qdisc ทเพมเขาไปจะม Handle เปน 1 ซงกคอหมายเลขของ Major Node ตอมากคอหมายเลขของ Minor Node Number สำาหรบ Classid แตละคลาสจะตองเปนเลขทไมซำากนอยระหวาง 1 ถง ffff ในเลขฐาน 16 และสดทายคอ SFQ Qdisc

ซงจะเปน Leaf Class ของ Classid 1:20 สงเกตการใชคำาสงจะคลายๆกบ HTB แตจะไมใชเปนการกำาหนดให Root Hook โดยจะเปนของ Classid 1:20 ในสวนของ Handle นนตองเปนไปตามกฎคอหมายเลข Major Node Number จะตองเปนเลขทไมซำากนและอยระหวาง 1 ถง ffff และหมายเลข Minor Node Number จะตองเปน 0 เราสามารถลบ Root Hook ทเราสรางขนไดโดยใชคำาสง

#tc qdisc del dev eth2 root2.1.6.4 Display qdisc and class Details

เราสามารถทจะดรายละเอยดโครงสรางลำาดบชน (Hierarchy) ทเราสรางขนได โดยการใช คำาสง tc ดงตวอยาง

# tc -s -d qdisc show dev eth2

qdisc sfq 2: quantum 1514b limit 128p flows 128/1024

33

Page 42: * 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

Sent 0 bytes 0 pkts (dropped 0, overlimits 0)

qdisc htb 1: r2q 10 default 0 direct_packets_stat 0 ver 3.16

Sent 0 bytes 0 pkts (dropped 0, overlimits 0)

แตละ Qdisc ทอยในแตละลำาดบชนจะแสดงพรอมดวยขอมล Statistics และรายละเอยดของพารามเตอรตางๆทใช

# tc -s -d class show dev eth2

class htb 1:10 root leaf 2: prio 0 quantum 13107 rate 1Mbit ceil 1Mbit

burst 2909b/8 mpu 0b cburst 2909b/8 mpu 0b level 0

Sent 0 bytes 0 pkts (dropped 0, overlimits 0)

lended: 0 borrowed: 0 giants: 0

tokens: 28791 ctokens: 2879 จากตวอยางจะแสดงรายละเอยดของคลาสซงจะเหมอน Qdisc ขอมลทแสดงจะแปรผนไปขนอยกบประเภทของคลาสทใชจากตวอยางขางบนจะเปน HTB Qdisc Class

2.1.6.5 Overview of Common qdisc

• Classless Qdiscs

1. Pfifo/Bfifo Queuing Discipline

Firstin Firstout(FIFO) Queuing เปน Queue Scheduling Discipline แบบพนฐานทมการใชมากทสด ทกแพคเกตจะมความเทาเทยมกนและเปนแบบ Single Queue และ FIFO Queuing จะอางถง Firstcome Firstserved (FCFS) Queuing ดงรป

รปท 2.16 FIFO Queuing Discipline

ปกต FIFO จะเปนคา Default อยแลวใน Queuing Discipline ซงถกใชงานมากในลนกซและเราเตอร ในกรณนเราไมไดระบชนดของ Qdisc ไปทอนเตอรเฟสวาใชประเภทไหน FIFO จะถกเลอกใชโดยอตโนมต ตวอยางการใช FIFO Queue บนอเธอรเนตอนเตอรเฟส Eth0

34

Page 43: * 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

#tc qdisc add dev eth0 root pfifo limit 10• tc เปนเครองมอทใชทำา Traffic Control ในลนกซ• qdisc สำาหรบบอก tc วาเราจะทำาการคอนฟก Queue Discipline(นอกจากน

ยงม Class หรอ Filter ถาเราตองการคอนฟก Class หรอ Filter)• add ใชเพอบอกวาจะเพม Qdisc ใหมเขาไปทอนเตอรเฟส• dev eth0 คอเปนการบอกวาเพม Qdisc ไปทอปกรณหรออเธอรเนต• root หมายความวาเปน Root Qdisc

• pfifo เปนการระบประเภทของ Queue วาเปน Pfifo (Packet-fifo)

• limit จะหมายถง ความยาวของ Queue (จำานวนของแพคเกตท Queue

สามารถ Hold ไว) จากตวอยางจะเปน 10 แพคเกตหลงจากทเราสราง Queuing Discipline สามารถทจะแสดงขอมลทเราคอนฟกไปได

โดยใชคำาสง#tc qdisc show dev eth0

ซงจะแสดงขอมลดงตวอยางqdisc pfifo 8001: dev eth0 limit 10 p

ขอมลทแสดงนจะบอกวาเราใช Qdisc อะไรทอนเตอรเฟส Eth0 ซงคำาสง tc กจะแสดงทเราใชคอ Pfifo Qdisc และหมายเลขของมนคอ 8001: (ซงจรงๆคอ 8001:0) พรอมดวยมการลมตปรมาณของแพคเกตทรบไดในทนคอครงละ 10 แพกเกต เราสามารถทจะลบ Pfifo Queue

ออกจากอนเตอรเฟส Eth0 ไดโดยใชคำาสง#tc qdisc del dev eth0 root

2. SFQ Queuing Discipline

Stochastic Fairness Queuing (SFQ) เปนสวนหนงของ Queuing Discipline ซงอยบนพนฐานของ Fair Queuing Algorithm ซงอลกอรทมนถกนำาเสนอโดย John Nagle ในป 1987 FQ อยบนพนฐานของคลาสใน Queue Scheduling Disciplines ซงถกออกแบบมาเพอทำาใหม นใจวาแตละ Flow จะมความเทาเทยมกนในการเขาใชงานทรพยากรในระบบเครอขายและขดขวางการสงขอมลอยางรวดเรวของ Flow ไมใหใชงานแบนวธดมากเกนไปโดยการแชร เอาพทแบนวธด (Output Bandwidth) ทเทาเทยมกน แพกเกตทถกแบงประเภทแลวจะเขาส Flow จากนนจะกำาหนด Queue และกำาหนดเสนทางของ Flow เฉพาะของแตละประเภทใหและ Queue จะใหบรการหนงแพคเกตในเวลาหนงๆแบบ Round Robin order ถา Flow ไหนไมม Queue กจะขามไป FQ อาจจะเรยกอกอยางวา Perflow หรอ Flowbased Queuing ดงรป

35

Page 44: * 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

รปท 2.17 SFQ Queuing Discipline

FQ จะเปรยบเหมอนกบประตหลายๆประตเมอมแพคเกตมาถงมนจะถกแบงประเภทโดย Classifier และถกกำาหนดใหไปทประตใดประตหนง ประตนจะเปนการนำาแพคเกตมาเขาควซงจะใหบรการเหมอนกบประตอนๆ แพคเกตหนงๆจะมลำาดบเปนแบบ Round-robin ซงเปนการใหบรการแบบเทาเทยมกบทกๆคว

• Classful Qdiscs

1. PRIO Queuing Discipline

Priority queuing (PQ) เปนหลกพนฐานสำาหรบคลาสของ Queue Scheduling

อลกอรทมซงถกออกแบบเพอจดการโดยวธการเปรยบเทยบแบบงายๆสำาหรบการใหบรการทแตกตางกนของคลาสตางๆ ใน PQ แพคเกตจะถกแบงประเภทโดยระบบเปนลำาดบแรกตามลำาดบความสำาคญของแตละแพคเกต และหลงจากนนแพคเกตจะถกสงไปยง Queue ตางๆ ทไดจดประเภทตามลำาดบความสำาคญของ Queue ไวแลวและในแตละ Queue นนแพคเกตกจะมลำาดบการสงขอมลแบบ FIFO ดงรป

36

Page 45: * 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

รปท 2.18 PRIO Queuing Discipline

2. HTB queuing discipline

HTB สรางขนมามจดประสงคเพอทจะสามารถเขาใจไดงายขน และสามารถนำามาแทนการใชงาน CBQ Qdisc บนระบบปฏบตการลนกซ ทง CBQ และ HTB ชวยใหเราสามารถควบคมการงานแบนวธดขาออก (Outbound Bandwidth) ซงทง CBQ และ HTB จะยอมใหเราสามารถใช Physical Link จำาลองการทำางานเปนลงคทมความเรวตำาหลายๆลงค และสงทราฟฟกประเภทตางๆไปบนลงคจำาลองทสรางขนมา ซง CBQ และ HTB นเราสามารถทจะกำาหนดวธการแบง Physical Link บนลงคทจำาลองขนมาและวธตดสนใจวาจะสงแพคเกตแตละชนดไปทลงคจำาลองลงคไหน

ความตองการอยางหนงสำาหรบ Link-sharing คอการแบงแบนวธดใหใชงานรวมกนบนลงคเดยวสำาหรบหลายๆองคกร โดยทแตละองคกรมความตองการในการรบประกนแบนวธดในระหวางทเกด Congestion แตวาแบนวธดนไมไดถกใชโดยองคกรใดองคกรหนงแตมหลายองคกรทใชรวมกน เราจงตองหากลไกลบางอยางเพอมารบประกนการใชงานแบนวธดของแตละองคกร Floyd และ Jacobson จำาแนกประเภทของโครงสรางในการจดสรรแบนวธดใหกบองคกรตางๆเปน 2 ประเภทคอ อนดบแรกเรยกวาโครงสรางแบบ Flat Link-sharing ดงรป

37

Page 46: * 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

รปท 2.19 Flat Link-sharingแบนวธดของ Link-sharing ถกจดสรรใหกบคลาสในแตละคลาส (ดงรปท 2.14 แสดงอตราสวนของแตละคลาสคดเปนเปอรเซนจากแบนวธดทงหมด) ซง Link-sharing นจะถกจดสรรในรปแบบ Static (จะถกกำาหนดโดยผดแลระบบเอง) หรอแบบ Dynamic (เปลยนแปลงตามการตอบสนองในปจจบนของระบบเครอขายทไดกำาหนดไวแลวโดยอลกอรธม) จดมงหมายอนดบแรกของ Link-sharing คอแตละคลาสมการจดสรรแบนวธดใหเพยงพอตอความตองการในเวลาทเกด Congestion ผลลพธทออกมาคอในเวลาทเกด Congestion ขนคลาสบางคลาสอาจจะถกจำากดแบนวธด ในโครงสรางของ Link-sharing สำาหรบคลาสท Link-sharing จดสรรใหเปนศนย ดงตวอยางจากคลาส Mail ในรปท 2.18 แบนวธดทคลาสนไดรบจะมาจากกลไกล Scheduling อนๆทเกตเวยไมใชกลไกลของ Link-sharing ดงนน Link-sharing จงไมมการรบประกนแบนวธดสำาหรบคลาสนในกรณทเกด Congestion โครงสรางประเภททสองคอโครงสรางแบบ Hierarchical Link-sharing โดยท Link-sharing หลายๆโครงสรางมขอจำากดทเกตเวยซงสามารถทำาใหรวดเรวไดโดยใช Hierarchical Link-sharing ดงรป

38

Page 47: * 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

รปท 2.19 Hierarchical Link-sharing

โครงสรางของ Link-sharing ในรปท 2.19 แสดงตวอยางของ Link-sharing ระหวางองคกรหลายๆองคกร, ระหวางโปรโตคอลตางๆ, ระหวางเซอรวสคลาสตางๆ และระหวางการเชอมตอสวนบคคลภายในเซอรวสคลาสตางๆ โดยทจะไมไดหมายความวาทกโครงสรางของ Link-sharing structure จะรวมลงคทกๆลงคทมาจาก Link-share เมอทกแพคเกตมาถงเกตเวยจะถกกำาหนดใหเปนหนงใน Leaf Class สวน Interior Class จะถกใชเพอกำาหนดวธการเกยวกบการใชงานแบนวธดไมใหเกนขอบเขตทไดรบการจดสรรมา ดงนนเปาหมายของการใหบรการของคลาสทง 3 คอ Agency A ทงกลมจะไดรบ 50% จากลงคแบนวธดทจดสรรไวในชวงเวลา Interval ซงเพยงพอตอความตองการ ถา Real-time Class ของ Agency A มขอมลทจะสงเพยงเลกนอยแลว โครงสรางทเปน Hierarchical Link-sharing จะทำาการจดแบงแบนวธดไปให Subclass อนๆของ Agency A ซงโครงสรางนจะมความยดหยนกวาโครงสรางแบบ Flat ในโครงสรางแบบ Flat นนจะมระดบของ Bandwidth Distribution แคเพยงระดบเดยวเทานนตางจากโครงสรางแบบ Hierarchical ซงจะมโครงสรางของ Bandwidth

Distribution แบบหลายระดบซงจะเพมความยดหยนในการกระจายระหวางคลาสทใหบรการได

2.1.8 SUDOถาเครองลนกซเซรฟเวอรของทาน มผดแลชวยกนหลายคน คงไมคอยดแน ถาหากจะใหทกคนลอกอนโดยใช ผใช root เนองจากเปนการยากทจะตรวจสอบวา ใครทำาอะไร แกไข เปลยนแปลงระบบตรงไหนบาง sudo เปนเครองมอทจะมาชวยเหลอตรงจดน

Sudo เปนเครองมอทอนญาตใหผใชบางคน หรอบางกลม สามารถมสทธในการเขาถงทรพยากรบางสงบางอยาง ไดเหมอนผใช root หรอในบางทสามารถกำาหนดใหมสทธเทาเทยมกบ root กได ซงขนอยกบการปรบแตงคาตางๆ ในไฟล /etc/sudoers

39

Page 48: * 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

การปรบตงคาตางๆของ sudo ในการปรบตงคาตางๆ ของ sudo นน จะทำาการแกไขในไฟล /etc/sudoers โดยมรปแบบของการปรบแตงคาตางๆ ดงน

ชอผใช/กลม ชอเครองเซรฟเวอร = ( รนคำาสงดวยผใชใด ) คำาสง

ตวอยางการใชงานจากกอนหนาน ( การจดการกบบญชผใช ) เราไดทำาการเพมผใชงานทชอวา chujai กบ somsak อยในกลมของ admin ซงสามารถกำาหนดให chujai กบ somsak ทำาหนาทไดเหมอน root ทกประการ โดยสามารถใชคำาสงใดกได และใชกบโฮสตใดกได ดงน

Chujai , somsak ALL=(ALL) ALL

40

Page 49: * 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

บทท 3 วธการดำาเนนงาน

การสรางและพฒนาระบบของโครงงานตองสรางเครองลนกซเกตเวยกอนจากนนจงทำาการสรางระบบรกษาความปลอดภย ใหกบลนกซเกตเวยน โดยการทำาการเขยนโปรแกรมเพอควบคมการทำางานของตวคำาสง Portsentry iptables TCP Wrappers และ QoS ทำาการทดลองในคำาสงตางๆ เพอทจะสามารถทำาใหลนกซเกตเวยเครองนเปนเครองแมขายไดและจากนนจะเปนในสวนของการทดลองและการออกแบบในสวนของ web interface ทใชในการควบคมโปรแกรมของ Portsentry iptables TCP Wrappers และ QoS

3.1 ความตองการพนฐานของโครงงานในการทำาการทดลองในระบบแลวอยางนอยๆ ผอานจะตองมคอมพวเตอรมากวาสองเครองขน

ไป โดยทำาการเชอมตอระบบเครอขายโดยอาจจะใชสายไขว (Cross Cable) หรอไมวาจะเปนการใชฮบเพอทำาการเชอมตอระบบเครอขาย เปนตน โดยเครองหนงจะตองตดตงระบบปฎบตการลนกซซงในการทำาการทดลองของผพฒนานนไดเลอกใช FedoraCore7 สำาหรบคอมพวเตอรอกสองเครองจะตดตงระบบปฎบตการวนโดว (Windows) โดยทผอานสามารถทจะเลอกตดตงไดตามตองการไมวาเปน Windows 98 , ME หรอ XP เปนตน ซงกแลวแตวาผอานใชระบบอะไรอย

อปกรณอกอยางทจะขาดไมไดเลยกคอ การดเครอขาย ซงจะตองมทงในเครองลกและเครอง แมขาย โดยทเครองลกขายจำาเปนทจะตองมอยางนอยหนงใบเพอเอาไวใชตดตอกบเครองแมขาย สำาหรบเครองแมขายนนถาระบบการเชอมตออนเทอรเนตนนทำาผานทางการดเครอขายกจำาเปนทจะตองมมากกวาสองใบขนไปเพอจะไดตดตอกบเครอขายอนเทอรเนตหนงใบและอกหนงใบสำาหรบเชอมตอกบเครอขายภายใน แตหากวาระบบการเชอมตอกบเครอขายอนเทอรเนตนนใชระบบทไมตองใชการดเครอขายในการเชอมตอ อาทเชน การเชอมตอระบบ ADSL โดยโมเดมทมการเชอมตอกบคอมพวเตอรผานทางพอรต USB เปนตน กไมจำาเปนทจะตองมการดเครอขายถงสองใบ

3.2 วธการดำาเนนงานโครงงาน

ขนตอนในการดำาเนนโครงงานนนผพฒนาจะเรมจากการเซตอพระบบบนเครองลนกซเกตเวยโดยจะกลาวถงการปรบแตงคาตางๆ ของระบบบนเครองลนกซเกตเวยและเครองลกขายเพอใหสามารถใชงานระบบทผพฒนาไดพฒนาขนโดยจะกลาวถงการคอนฟกระบบไมวาจะเปนการคอนฟกการดเครอขาย ,การเปด IP_Forward , การทำา Masquerade จนไปถงการทดสอบการเชอมตอเครอขายอนเทอรเนตจากเครองลนกซเกตเวย และเครองลกขาย

3.2.1 การกำาหนด IP Adress บนเครองลนกซเกตเวยในการตดตงระบบเครอขายเพอทจะทำาใหระบบสามารถทำางานในลกษณะนไดนนเครองทเปน

เครองแมขายจะตองเปนเครองททำาหนาทเปนเกตเวยของระบบซงนนหมายถงวาระบบจะตองมการเอาเครองลกขายเชอมตอเครอขายอนเทอรเนตผานเครองแมขาย โดยจะตอผานสวตชดงแสดงใหเหน ในรปท 3.1 3.3 โครงสรางของระบบ

41

Page 50: * 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

โครงสรางของระบบประกอบไปดวยลนกซเซรฟเวอรททำาหนาทเปนเกตเวย Network Address Translation (NAT) และ วนโวสเซรฟเวอร 2003 ทำาหนาทเปน File Server ดงรป 3.1

รปท 3.1 แสดงระบบเครอขายทจะตดตง จากรปท 3.1 แสดงการตดตง Web-Based ในระบบเครอขายของกอง 2 ศนยรกษาความ

ปลอดภย เพอทดสอบใชงานจรง3.3.1 การกำาหนด IP Address บนเครองแมขายในการปรบคาไอพของเครองแมขายซงเปนระบบปฏบตการลนกซนนสามารถทำาไดสองวธคอ

การปรบโดยใชกราฟฟค (GUI) และอกวธกคอการเขาไปแกไขไฟลของระบบเลยโดยผพฒนาจะนำาเสนอวธหลงซงเปนวธทงายและสะดวกกวา ซงไฟลทเกยวของกบเนตเวรกมดงน

-ไฟล /etc/sysconfig/network-scripts/ifcfg-eth0 ในไฟลนจะมบรรทดสำาคญทจะตองตงคาดงน DEVICE = eth0 BOOTPROTO = Static BROADCAST = 192.168.111.255 IPADDR = 192.168.111.42

42

Page 51: * 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

NETMASK = 255.255.255.0 NETWORK = 192.168.111.0 ONBOOT = yes GATEWAY = 192.168.111.2 TYPE = Ethenet

- ไฟล /etc/sysconfig/network-scripts/ifcfg-eth1 ในไฟลนจะมบรรทดสำาคญทจะตองตงคาดงน DEVICE = eth1 BOOTPROTO = Static BROADCAST = 192.168.145.255 IPADDR = 192.168.145.42 NETMASK = 255.255.255.0 NETWORK = 192.168.145.0 ONBOOT = yes TYPE = Ethenet

หลงจากทเราไดทำาการกำาหนด IP Address บนเครองแมขายสำาเรจเราตองสงใหระบบทำาการเรยนรคาทเราปรบแตงใหมโดยใชคำาสง

[root@fpitak]# service network restart

3.3.2 การ Compile Kernel Linux ใหมเพอรองรบ Protocol Layer7 Filter กอนทจะใชงาน ฟงกชนใดของ Layer7 Filter นนจำาเปนทจะตองทำาการ Compile

Kernel Linux ใหมเพอใหใชงานฟงกชนของ Layer7 Filter ได3.3.2.1 ดาวนโหลดไฟลทจำาเปนตอการลง Kernel และ Iptables Layer7 ดงตอไปนผานทาง

Terminalดาวนโหลด linux kernel 2.6.21# wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.21.tar.bz2ดาวนโหลด iptables source code# wget http://www.netfilter.org/projects/iptables/files/iptables-1.3.8.tar.bz2ดาวนโหลด layer-7 patch# wget http://jaist.dl.sourceforge.net/sourceforge/l7-filter/netfilter-layer7-v2.18.tar.gz

43

Page 52: * 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

ดาวนโหลด layer-7 protocol pattern# wget http://nchc.dl.sourceforge.net/sourceforge/l7-filter/l7-protocols-2008-04-23.tar.gzยายไฟลทงหมดไปท /usr/src/# mv iptables-1.3.8.tar.gz netfilter-layer7-v2.18.tar.gz l7-protocols-2008-04-23.tar.gz

linux-2.6.21.tar.bz2 /usr/src/จากนนใหเขาไปท /usr/src/ จะพบไฟลทง 4 ทดาวนโหลดมาอยขางใน ใหทำาการแตกไฟลท

ดาวนโหลดมาทงหมด# cd /usr/src/

# tar -jxvf linux-2.6.21.tar.bz2# tar -jxvf iptables-1.3.8.tar.bz2# tar -zxvf netfilter-layer7-v2.18.tar.gz# tar -zxvf l7-protocols-2008-04-23.tar.gzทำาการสราง symbolic link 2 file# ln -s linux-2.6.21 linux# ln -s ptables-1.3.8 iptables

3.3.2.2 Patch kernel ดวย layer-7 patch ทดาวนโหลดมา และทำาการตดตง# cd /usr/src/linux# patch -p1 < ../netfilter-layer7-v2.18/for_older_kernels/kernel-2.6.20-2.6.21-layer7-

2.16.1.patchทำาการ copy config file ของ kernel เดม# cd /usr/src/linux# cp /boot/config-2.6.21-1.3194.fc7 .config3.3.2.3 ทำาการเพมการตงคาการตดตง kernel ใหม ดวยคำาสง make menuconfig หลงจากนน

จะมหนาตางดงภาพขางลางขนมาเพอทำาการตงคา จากนนทำาการตงคาดงตอไปน# make menuconfigขาไปแกไขท-> Networking-> Networking options-> Network packet filtering framework (netfilter)-> Core Netfileter configuration[M] layer7 match support << กดปม “M”[*] layer7 debugging output << กดปม “Y”(ออกแลวทำาการบนทกคา)

44

Page 53: * 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

3.3.2.4 ทำาการตดตง Kernel ใหมดวยคำาสง - make modules ; make modules_install ; make bzImage ; make install แลวทำาการ

Reboot เครองแลวเลอก Boot เขามาใน kernel Linux 2.6.21

3.3.2.5 Patch iptable 1.3.8 ดวย layer-7 และทำาการตดตง # cd /usr/src/iptables# patch -p1 < ../netfilter-layer7-v2.18/iptables-1.3-for-kernel-2.6.20forward-layer7-

2.18.patch# chmod +x extensions/.layer7-testทำาการ set kernel ทตองการใช - make KERNEL_DIR=/usr/src/linux-2.6.21- make install KERNEL_DIR=/usr/src/linux-2.6.21 ทำาการตดตง layer-7 protocol pattern# cd /usr/src/l7-protocol-2008-04-23# make install

จากนนทำาการตง Default boot ของเครองใหมาเปน linux-2.6.21 โดย# gedit /boot/grub/menu.lst

หนาจอจะปรากฏ text editor ขนมา ภายในจะมขอความดงตวอยางตอไปนdefault=1timeout=5splashimage=(hd0,0)/grub/splash.xpm.gzhiddenmenutitle Fedora (2.6.21) << ลำาดบท 0

root (hd0,0)kernel /vmlinuz-2.6.21 ro root=/dev/VolGroup00/LogVol00 rhgb quietinitrd /initrd-2.6.21.img

title Fedora (2.6.21-1.3194.fc7) << ลำาดบท 1root (hd0,0)kernel /vmlinuz-2.6.21-1.3194.fc7 ro root=/dev/VolGroup00/LogVol00 rhgb quietinitrd /initrd-2.6.21-1.3194.fc7.img

จากขอความขางตนบรรทดทแสดงวา “default=1” เปนการบอกวา default kernel คอ Fedora (2.6.21-1.3194.fc7) แตเราตองการจะเปลยนให default kernel เปน kernel ทเราได patch และ compile ไวกอนหนาน ดงนนใหทำาการเปลยนคา “default=0” แทนของเดมซงเปน “default=1” จากนนใหทำาการ save และปดโปรแกรม

45

Page 54: * 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

3.3.3 การทดลองคำาสงของ Layer7 กอนอนตองทำาการ reboot เครองมายง kernel ทสนบสนนการใชงานของ layer-7# reboot

จากนนลองสง# iptables -L

หนาจอจะแสดงรายการออกมา เชนChain INPUT (policy ACCEPT) target prot opt source destination

Chain FORWARD (policy ACCEPT) target prot opt source destination

Chain OUTPUT (policy ACCEPT) target prot opt source destination

จากนนลองเพมคำาสง# iptables -A FORWARD -m layer7 --l7proto bittorrent -j DROP

แลวสง iptables -L เพอดรายการอกครง จะพบวาม rule เพมเขาไปแลวChain INPUT (policy ACCEPT) target prot opt source destination

Chain FORWARD (policy ACCEPT) target prot opt source destination DROP all -- anywhere anywhere LAYER7 l7proto bittorrent

Chain OUTPUT (policy ACCEPT) target prot opt source destination

หากมกฎเพมขนมา 1 กฎอยางทเหน แสดงระบบสามารถใชงาน layer7 ไดแลว3.3.4 การตดตง Portsentry

46

Page 55: * 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

การตดตง Portsentry เพอปองกนการ สแกนพอรตและยงบนทกไวใน Log File สำาหรบตรวจสอบ ซงสามารถดาวนโหลดโปรแกรม Portsentry และทำาการตดตง ดงน

ดาวนโหลดไฟล portsentry-1.2-1.te.i386.rpm# wget http://rpm.pbone.net/index.php3/stat/4/idpl/2522738/dir/centos_other/com/portsentry - 1. 2-

1.te.i386.rpm.htm#rpm –ivh portsentry-1.2-1.te.i386.rpmหลงจากนนเขาไปแกไฟล /etc/portsentry/portsentry.conf ทบรรทด# KILL_ROUTE="/sbin/iptables -I INPUT -s $TARGET$ -j DROP"ซงหมายความวา เมอ Portsentry ตรวจจบการสแกนพอรตจะนำาไอพทตรวจจบได สงให

Iptables ในเชนอนพท เพอทำาการ Drop packet ทงหมดของไอพทตรวจจบได# KILL_HOSTS_DENY="ALL: $TARGET$"ซงหมายความวา เมอ Portsentry ตรวจจบการสแกนพอรตจะนำาไอพทตรวจจบได ไปใสในไฟล

Host.deny เพอให TCP Warrpers หยดใหบรการทงหมดกบไอพทตรวจจบได# KILL_RUN_CMD="/root/mailto.sh $TARGET$ $PORT$"ซงหมายความวา เมอ Portsentry ตรวจจบการสแกนพอรตจะสงเมลลไปยงผดแลระบบ

ตามสครปตทเขยนไว3.3.5 การเปดการทำางานของ IP_FORWARDกอนทเราจะทำาการใชงานของ NAT อยางหนงทเราจำาเปนทจะตองทำาการปรบแตกอนนนกคอ

เราตองปรบเพอทจะใหระบบยอมทจะสงตอขอมลใหเรา หรอเรยกวา IP_Forwarding โดยเราสามารถทำาการปรบคาจากไฟล /etc/sysctl.conf โดยแกไขคาในบรรทด

net.ipv4.ip_forward = 0โดยแกไขใหเปน

net.ipv4.ip_forward = 1

รปท 3.1 การเปดการทำางานของ IP_Forwardหลงจากไดแกไขดงรปท 3.1 แลว IP_Forward จะทำางานไดตอง restart กอนโดยใชคำาสง

# service iptables restart กอนไมอยางนน IP_Forward จะไมทำางาน

47

Page 56: * 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

3.3.6 การทำา IP Masquerading ในการทำา IP Masquerading นนเปนการทำา SNAT ชนดหนงโดยทตว IP Masque-rading นจะ

ทำาการแปลงหมายเลขไอพของแพคเกจทตองการจะทำาการสงออกอนเทอรเนตจากไอพภายในเปนไอพทไดรบจากผใหบรการอนเทอรเนตซงคำาสงทจะแสดงใหเหนนนจะอางองจากรปท 3.2 โดยมคำาสงดงตอไปน

# iptables –t nat –A POSTROUTING –o eth0 –j MASQUERADE

รปท 3.2 ผลลพธจากคำาสง # iptables –t nat –L

3.3.7 การใชคำาสง tc ในการกำาหนด Bandwidth Limiting

1:0

1:21:1 1:3 1:4 1:5

รปท 3.3 ไดอะแกรมของคลาสทสรางในระบบ Linux Traffic Control

จากรปท 3.3 เปนไดอะแกรมของคลาสทสรางในระบบ Linux Traffic Control ซงสามารถนำามาสรางคลาสตางๆ โดยใช tc tool ในการสรางคลาสโดยใช Classful Queuing Discipline แบบ HTB ไดดงน

48

Page 57: * 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

#tc qdisc del dev eth1 root#tc qdisc add dev eth1 root handle 1: htb#tc class add dev eth1 parent 1:0 classid 1:1 htb rate 1Mbit#tc class add dev eth1 parent 1:0 classid 1:2 htb rate 1Mbit#tc class add dev eth1 parent 1:0 classid 1:3 htb rate 1Mbit#tc class add dev eth1 parent 1:0 classid 1:4 htb rate 1Mbit#tc class add dev eth1 parent 1:0 classid 1:5 htb rate 1Mbit#tc qdisc add dev eth1 parent 1:1 sfq quantum 1514b perturb 15#tc filter add dev eth1 protocol ip parent 1:0 prio 5 handle 1 fw flowid 1:1#tc qdisc add dev eth1 parent 1:2 sfq quantum 1514b perturb 15#tc filter add dev eth1 protocol ip parent 1:0 prio 5 handle 2 fw flowid 1:2#tc qdisc add dev eth1 parent 1:3 sfq quantum 1514b perturb 15#tc filter add dev eth1 protocol ip parent 1:0 prio 5 handle 3 fw flowid 1:3#tc qdisc add dev eth1 parent 1:4 sfq quantum 1514b perturb 15#tc filter add dev eth1 protocol ip parent 1:0 prio 5 handle 4 fw flowid 1:4#tc qdisc add dev eth1 parent 1:5 sfq quantum 1514b perturb 15#tc filter add dev eth1 protocol ip parent 1:0 prio 5 handle 5 fw flowid 1:5

3.3.8 การใชคำาสง iptable L7protocol Bandwidth Limitingภายใน Linux Traffic Control จะทำาหนาทในการกรองแพคเกต ในระดบแอพพลเคชนเลเยอร

ไดโดยใช Layer 7 Filtering ซงเปนโมดลทคอมไพลเพมเขามาใน Netfilter เพอให iptables มความสามารถในการกรองแพคเกตทระดบแอพพลเคชนเลเยอรได รปแบบการใชงานในสวนของการทำาฟลเตอรรงแอพพลเคชนดาตาจะเหมอนกบการใชคำาสงของ iptables ทวๆ ไปแตจะเพมในสวนของออฟชน –l7proto เขามา ดงตวอยาง

#Iptables –t mangle –A POSTROUTING –m layer7 –l7proto bittorrent –j DROP

จากตวอยางจะเปนการ DROP แอพพลเคชน bittorrent สวนในการทำางานในสวนของแอพพลเคชนแบนวธดลมต ในทนขอยกตวอยางจากรปท 3.4 จากรปใน Class 1:1 มการใช tc tool กำาหนดให

49

Page 58: * 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

จำากดแบนวธดท 1 Mbit สามารถใช iptables กรองแพคเกต bittorrent ใหจำากดแบนวธด ท 1 Mbit ไดดงน

#Iptables –t mangle –A POSTROUTING –m layer7 –l7proto bittorrent -j MARK –set-mark 1

3.3.9 การจดทำา Web configurationการทำา web configuration ผพฒนาไดใช Apache เปน Web Server ในสวนของตว web

configuration ใชภาษา HTML และ PHP ในการพฒนาเวปเพอควบคมการทำางานของตว linux ทใชในการควบคมระบบ โดยการเขยน Web Config บน Apache Web server โดยตว Apache จะทำางานผานโปรแกรม SUDO กำาหนดให User Apache สามารถเขาไปใช Command บน linux แสดงดงรป 3.3

รปท 3.4 แสดงการแกไขไฟล sudoersจากรปท 3.4 แสดงการใชคำาสง visudo เขาไปแกไขไฟล sudoers โดยทำาการเพมในบรรทด

%apache ALL=(ALL) NOPASSWORD ALL, /usr/sbin/iptables เขาไป ซงหมายความวาทกคนในกรป apache สามารถรนไดทกคำาสงใน /usr/sbin/iptables กคอคำาสงใน iptables ทงหมด ในสวนของการรนคำาสง iptables ผานเวปจะใชฟงกชน system ของ PHP เพอสงรนคำาสงบน linux

3.4 การใชงาน Web Management3.4.1 การเปด Web Configurationทำาการเปดเวปบราวเซอรแลวพมพ http://msit42.mtts.com จะไดดงรปท 3.5

รปท 3.5 แสดง web Interface Traffic Control

3.4.2 การใชงาน Block with Iptable

50

Page 59: * 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

สวนของ Block Iptables จะสามารถคอนฟกใหทำาการ Block IP เครองทเขามา สแกนพอรต ไดจากรปท 3.6 แสดงวามการเลอกใชบรการ Iptables

รปท 3.6 แสดงวามการคอนฟกท Block with Iptable3.4.3 การใชงาน Block Service with TCPWarppersการใชงาน Block Service with TCPWarpers จะสามารถคอนฟกใหทำาการ Block IP ท สแกน

พอรตไมสามารถใชบรการ Service ตาง ๆ ภายในเครองได ซงในรปท 3.7 แสดงวามการเลอกใชบรการ TCPWarppers

รปท 3.7 แสดงวามการคอนฟก TCPWarppers3.4.4 การใชงาน Send Mail Alert to adminการใชงาน Send Mail Alert to admin เปนการคอนฟกใหระบบมการสงเมลลแจงเตอน เมอม

การ สแกนพอรตโดยระบบจะสงอเมลลแจงเตอนหมายเลขไอพพรอมรายละเอยดผถอครองโดเมนทเขามา สแกนพอรตมายงอเมลลทกำาหนด ซงในรปท 3.8 แสดงวามการสงใหสงอเมลลแจงเตอนไปยงผดแลระบบ

51

Page 60: * 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

รปท 3.8 แสดงวามการคอนฟก Send Mail3.4.5 การใชงานป ม Report Portsentryการใชงานปม Report Portsentry เปนการแสดงรายละเอยดหมายเลขไอพทเขามา สแกนพอรต

ในระบบ ซงประกอบดวยวนท เวลา ไอพตนทาง พอรตทสแกน โปรโตคอลทใช ซงในรปท 3.9 แสดงรายละเอยดหมายเลขไอพทเขามา สแกนพอรตในระบบ

รปท 3.9 แสดงรายละเอยดหมายเลขไอพทเขามา สแกนพอรตในระบบ

3.4.6 การใชงานแทบ Firewallในแทบ Firewall สามารถ Config Chain Input และ Chain Forward ซงการใชงาน Chain Forward

จะสามารถคอนฟกใหทำาการ Block ในระดบแอพพลเคชน และพอรต จากรปท 3.10 แสดงวามการ Config ใหมการ Block การใชงาน http และ msn

52

Page 61: * 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

รปท 3.10 แสดงการคอนฟกท Chain Forward

รปท 3.11 แสดงการคอนฟกท Chain Inputจากรปท 3.11 แสดงการคอนฟกท Chain Input ซงการใชงาน Chain Input จะสามารถคอนฟก

ใหทำาการ Accept ตาง ๆ ได ซงจากรปท 3.11 แสดงวามการ Config ใหมการใชงาน ssh จากทก ๆ ไอพ ทเขามาตดตอภายในระบบ

3.4.7 การใชงานแทบ QoSการใชงานแทบ Qos จะสามารถคอนฟกโปรแกรม และบรการตาง ๆ ใหใชแบนดวธใน Class

ตางๆ ตามทกำาหนดจากรปท 3.12 แสดงวามการคอนฟกใหโปรแกรม Bittorrent ใชแบนดวธสงสดไมเกน 512 Kbps

รปท 3.12 แสดงการคอนฟกทแทป Qos

53

Page 62: * 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

บทท 4 การทดลองการทำางาน

4.1 โครงสรางของระบบโครงสรางของระบบประกอบไปดวยลนกซเซรฟเวอรททำาหนาทเปนเกตเวยโดยการทำา

Network Address Translation (NAT) และ วนโดวสเซรฟเวอร 2003 ทำาหนาทเปน File Server ดงรป 4.1

รปท 4.1 แสดงระบบเครอขายทใชในการทดลอง จากรปท 4.1 แสดง ระบบเครอขายทใชตดตง Web-Based ยของกอง 2 ศนยรกษา

ความปลอดภย เพอทดสอบใชงานจรง4.2 การทดลอง

ในการทำาโครงงานน ผพฒนาไดทำาการพฒนาระบบขนมาสามระบบโดยระบบแรกจะเปนการทดลองในสวนของโปรแกรม Portsentry ในการควบคม Iptable TCPWarppers และสงอเมลลแจงเตอนในสวนทสอง จะเปนการทดลองการคอนฟก Iptable และในสวนทสามจะเปนการทดลองในสวนการควบคมแบนดวธ ดงนนผพฒนาจะขอแยกการทดลองออกเปนสามสวน ดงจะกลาวถงรายละเอยดของผลการทดลองโครงงานในหวขอถดไป

54

Page 63: * 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

4.2.1 ผลการทดลองระบบ Network Address Translator (NAT)ในระบบนมความตองการในการทจะการแปลงหมายเลขไอพของแพคเกตทตองการจะทำาการสง

ออกอนเทอรเนตจากไอพภายในเปนไอพทไดรบจากผใหบรการอนเทอรเนต โดยการทำา IP Masquerading นนในโครงงานนผพฒนาเลอกทจะใชโปรแกรม Billsniff ซงเปนเปนโปรแกรมจำาพวก Packet sniffer โดยเราใชโปรแกรมนในการดรายละเอยดของการสงแพคเกตจะสงเกตเหนไดวาโปรแกรม Billsniff จะทำาการแสดงรายละเอยดของการสงแพคเกตซงจะประกอบดวยเวลาทสง (Time) , ขนาดของขอมล (Size) , หมายเลข MAC Addres ของเครองตนทาง (SrcMAC) , หมายเลข MAC Address ของเครองปลายทาง (DestMAC) , หมายเลข IP Address ของเครองตนทาง (Src IP) , หมายเลข IP Address ของเครองปลายทาง (Dest IP) , พอรตตนทางทใชในการสง (Src Port) , พอรตปลายทางทใชในการสง (Dest Port) และโปรโตคอลทใชในการสง (Protocols) โดยทเครองทเปนเครองตนทางกคอเครองทอยในเครอขาย (IP Address 192.168.2.253) สวนเครองทเปนปลายทางกคอเครองทอยนอกเครอขาย (IP Address 192.168.1.254) นนเอง

รปท 4.2 รายละเอยดของการสงแพคเกต

จากรปท 4.2 เปนผลการทดลองของการสงแพคเกตจากเครอง 192.168.2.253 ไปยงเครอง 192.168.1.254 โดยใชวธการ ping จากเครองตนทางไปหาปลายทาง โดยใชโปรแกรม BillSniff ดกจบแพคเกตทเครองปลายทาง จะสงเกตเหนวาในบรรทดทหนงนนหมายเลข IP Address ตนทาง (Src IP) นนเปน 192.168.1.1 ซงหมายเลข IP Address นจรงๆ เปนของการด eth0 และในบรรทด ทสองเปนการ Reply แพคเกตกลบไปทตนทาง จะสงเกตเหนวาหมายเลข IP Address ปลายทาง (Dest IP) ทจะสงแพคเกตกลบไปนนกเปนหมายเลข IP Address ของการด eth0 เชนกน จงสรปไดวาเครองทอยดานนอกเครอขายนนจะไมสามารถเหนเครองทอยดานในเครอขายไดแตจะเหนการด eth0 แทน

55

Page 64: * 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

4.2.2 การใชงาน Iptables TCPWarppers และ Sendmail Alert to Admin

รปท 4.3 แสดงการใชงาน Iptable TCPWarppers และ Sendmail Alert to Adminจากรปท 4.3 แสดงผลการสงงานผานหนา Web base เพอใหโปรแกรม Portsentry เปด

Service Iptables TCPWarppers และ Sendmail Alert to Admin ทำางาน

รปท 4.4 แสดงผลหลงการ setup ให Iptables TCPWarppers และ Sendmail Alert to Admin ทำางานจากรปท 4.4 แสดงผลหลง setup ให Iptables TCPWarppers และ Sendmail Alert to Admin

ทำางาน ทงนถาเราใชการtelnet เขาไปใน Linux แลวใชคำาสง vi /etc/portsentry/portsentry.conf เพอดการแกไขในบรรทดดงน

รปท 4.5 แสดงผลการ setup Iptable

56

Page 65: * 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

จากรปท 4.5 เปนการแสดงผลคาคอนฟกหลงจากสงงานผานหนา Web base ให portsentry เปด Service Iptable เพอบลอกไอพทเขามาสแกนพอรต เมอ Portsentry ตรวจจบการสแกนพอรต จะนำาไอพทตรวจจบได สงให Iptables ในเชนอนพท เพอทำาการ Drop packet ทงหมดของไอพ ทตรวจจบได

รปท 4.6 แสดงผลการ setup TCPWarppersจากรปท 4.6 เปนการแสดงผลคาคอนฟกหลงจากสงงานผานหนา Web base ให portsentry

ตรวจจบการสแกนพอรตจะนำาไอพทตรวจจบได ไปใสในไฟล Host.deny เพอให TCP Warrpers หยดใหบรการทงหมดกบไอพทตรวจจบได

รปท 4.7 แสดงผลการ setup Sendmail Alert to adminจากรปท 4.7 เปนการแสดงผลคาคอนฟกหลงจากสงงานผานหนา Web base ให portsentry

ทำางานตามสครปทเขยนขน ในทนผพฒนาระบบไดเขยนสครปเพอนำาไอพทไดไปตรวจสอบรายละเอยดผถอครองโดเมน ดวยคำาสง whois และสงอเมลลแจงเตอนไปยงผควบคมระบบ ดงน

#!/bin/bashhost=$1port=$2whois $host | mail -s "แจงเตอนผบกรกจาก IP $host โดยเชอมตอมายง port $port" root

4.2.2.1 การทดลอง โดยผพฒนาไดใชเครองคอมพวเตอร ip 58.8.105.4 ทดลอง Scan port โดยใชโปรแกรม Nmap

ไปยง http://fpitak.no-ip.biz ดวยโปรแกรม Nmap ดงรป 4.8

57

Page 66: * 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

รปท 4.8 แสดงการ Scan Port โดยใชโปรแกรม Nmap

จากรป ท 4.8 เปนการแสดงผลการสแกนพอรตโดยใชโปรแกรม Nmap ไปยง http://fpitak.no-ip.biz

4.2.2.1 ผลการทดลอง ในการทำาโครงงานน ผพฒนาไดทำาการทดสอบระบบเบองตน โดยหลงจากท setup ระบบ

ดงรปท 4.3 ผพฒนาไดใชเครองคอมพวเตอร ไอพ 58.8.105.4 ทดลอง Scan port ไปยง http://fpitak.no-ip.biz ดวยโปรแกรม Nmap ซงไดผลการทดลอง ดงรปท 4.9 และ 4.10

รปท 4.9 แสดงผลการ Drop IP 58.8.105.4 ของ Iptables

58

Page 67: * 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

จากรปท 4.9 เปนการแสดงผล การทำางานของ Portsentry ในการสงให Iptables Drop IP 58.8.105.4 ทเขามาสแกนพอรท ซงในบางกรณอาจจะมเครอง Client ภายในระบบ ถกบลอกสามารถยกเลก Client ออกจาก Iptable เพอใหสามารถใชบรการภายในระบบได

รปท 4.10 แสดงผลการ Drop IP 58.8.105.4 ของ Portsentry

จากรปท 4.10 เปนการนำา Log ไอพทเขามาสแกนพอรตจาก path /etc/portsentry/portsentry.history พรอมแสดงรายละเอยดวน เวลา พอรต และโปรโตคอล

รปท 4.11 แสดงอเมลลแจงเตอนการ Scan Portจากรปท 4.11 เปนการแสดงหนาจอระบบ Web mail ทรบอเมลลแจงเตอนหลงจากมการ

สแกนพอรต

59

Page 68: * 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

รปท 4.12 แสดงรายละเอยดภายในอเมลลแจงเตอนการ Scan Port

จากรปท 4.11 และ 4.12 แสดงผลการสงอเมลลแจงเตอนตามสครปตทเขยน พรอมรายละเอยดผถอครองโดเมนทเขามา Scan Port ยงอเมลลทกำาหนด

4.2.3 การใชงาน Web-base เพอจดการ Iptable

รปท 4.13 แสดงการใชงาน Web-base เพอจดการ Iptableจากรปท 4.13 การใชงาน Chain Forward จะสามารถคอนฟกใหทำาการ Block ในระดบ

ของ Layer 7 และ Layer 3 ซงสามารถเลอก Block จากแอปพลเคชน หรอจะ Block จาก Port ทแอปพลเคชนใชงาน ในทนผพฒนาระบบไดตง Default Policy ของ Chain Forward เปน Accept โดยในรปท 4.13 ผพฒนาระบบไดทำาการ Drop แอปพลเคชน Bittorent เมอใชคำาสง iptables –L FORWARD จะแสดงใหเหนวามการสราง Policy ใน Chain FORWARD ให drop แอปพลเคชน Bittorent ซงแสดงดงรปท 4.14

60

Page 69: * 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

รปท 4.14 แสดงการสราง Policy ใน Chain FORWARD

รปท 4.15 แสดงการใชงานคอนฟกทแทป Chain Inputจากรปท 4.15 การใชงาน Chain Input จะสามารถคอนฟกใหทำาการ Accept service

จาก port ทกำาหนดในทนผพฒนาระบบไดตง Default Policy ของ Chain Input เปน Drop ซงจากรป ท 4.15 แสดงวามการ Config ใหมการยอมรบการใชงาน ssh จากทก ๆ ไอพทเขามาตดตอภายในระบบเมอใชคำาสง iptables –L INPUT จะแสดงใหเหนวามการสราง Policy ใน Chain Input แสดงดงรป ท 4.16

รปท 4.16 แสดงการสราง Policy ใน Chain Input

61

Page 70: * 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

4.2.3.1การทดลองในการทดลองผพฒนาระบบไดทำาการกำาหนด Policy ใน Chain Forward ดวยการ

Drop แอปพลเคชน Bittorent และทำาการเปดพอรท 22 ใน Chain Input ซงจะทำาใหสามารถใชโปรแกรม SSH เขาสระบบได

4.2.3.2 ผลการทดลอง

รปท 4.17 ผลลพธการใชคำาสง iptable L7protocol Drop Protocal Bittorrentจากรปท 4.17 ผพฒนาระบบทดลองดาวนโหลดไฟลbittorrent ทางอนเตอรเนต โดยโปรแกรม

uTorrent ซงจะเหนวาไมสามารถดาวนไฟล bittorrent ได

รปท 4.18 ผลลพธกอนการใชคำาสง iptable Accept Port 22

62

Page 71: * 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

รปท 4.19 ผลลพธหลงการใชคำาสง iptable Accept Port 22จากรปท 4.18 ผพฒนาระบบทดลองใชโปรแกรม SSH ไปทไอพ 192.168.111.42 ซงไม

สามารถ Connect ได เนองจาก Default Policy ของ Chain Input เปน Drop ภายหลง Config ใหมการยอมรบการใชงาน SSH จากทก ๆ ไอพทเขามาตดตอจะทำาใหสามารถ SSH ไปทไอพ 192.168.111.42 ได ตามรปท 4.19

4.2.4 การจดการ QoS

รปท 4.20 แสดงการใชงาน Web-base เพอจดการ QoSจากรปท 4.20 การใชงานแทบ QoS จะสามารถคอนฟกใหโปรแกรม และบรการตาง ๆ

ใชแบนดวธใน Class ตางๆ ตามทกำาหนดใน Chain Postrouting ซงสามารถกำาหนดแบนดวธ ได 5 Class โดยในรปท 4.20 ผพฒนาระบบไดทำาการจำากดแบนดวธของการดาวนโหลดไฟล Bittorent ไวท 512 Kbps เมอใชคำาสง iptables –t mangle –L POSTROUTING จะแสดงใหเหนวามการสราง Policy ใน Chain Postrouting ใหจำากดของการดาวนโหลดไฟล Bittorent ไวท Class 2 แสดง ดงรปท 4.21

63

Page 72: * 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

รปท 4.21 แสดงการสราง Policy ใน Chain Postrouting

4.2.4.1ผลการทดลอง

รปท 4.22 แสดงผลการวด Traffic ใน Class ท 2จากรปท 4.22 แสดงผลการวด Traffic ใน Class ท 2 ซงเปนการควบคมแบนดวธ

ของการ ดาวนโหลดไฟล Bittorent จากรปท 4.22 ในชวงแรกมการแกไขคาแบนดวธใน Linux Traffic Control ใชเปนคา 512 kbps จากรปคาทวดไดประมาณ 512 kbps หลงจากนนผพฒนาทำาการแกไขแบนดวธเปน 1000 kbps ผลทไดจะเหนวาคาแบนดวธทวดไดอยท 920 kbps

64

Page 73: * 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

บทท 5สรปผลการทดลอง

5.1 สรปผลการทดลองการพฒนาจดทำา Web-Based เพออำานวยความสะดวกในการจดการกบระบบรกษา

ความปลอดภยสามารถควบคมการทำางานของ Portsentry Iptables และ Quality of Service (QoS) ดวยวธการกำาหนดแบนดวธใหกบเซอรวสประเภทตางๆ แยกประเภทกน สามารถทำางานไดเปนด โดยดจากกราฟการควบคมในแตละ Class คาแบนดวธทไดมคาใกลเคยงกบคาทเรากำาหนดในพารามเตอร Rate ของแตละ Class5.2 ขอเสนอแนะ

5.2.1 ในขณะทเครองเซรฟเวอรรสตารท จะทำาให Iptable ท Portsentry ควบคมการทำางาน จะถกรเซทไปดวยจงทำาใหไอพทเขามาแสกนพอรทไมถกปดกนการทำางานตอทำาใหสามารถเขามาใชบรการตาง ๆ ในเซรฟเวอรได

5.2.2 กรณท Client ถกปดกนการทำางานจาก Service TCP Warppers ระบบทพฒนาขนยงไมสามารถเขาไปแกไขไฟลใน /etc/host.deny ทถกปดกนโดย Service TCPWarppers ได

5.2.3 ในกรณทเครองลกใชงานในแอพพลเคชนเดยวกน เชน bittorrent คาแบนดวธ ทจดสรรใหแอพพลชนนนจะถกแบงแชรแบนดวธกน โดยผลรวมการใชงานของทกเครองในแอพพลเคชนนนไมเกนแบนดวธทจดสรรไว5.3 แนวทางในการพฒนาตอ

5.3.1 หาแนวทางในการบนทก ไอพทเขามาแสกนพอรทไมใหสญหายหลงจากเครองเซรฟเวอรรสตารท

5.3.2 ทำาการพฒนาระบบใหสามารถลบไอพในไฟล /etc/host.deny ของ Client ทถกปดกนโดย Service TCPWarppers

65

Page 74: * 0 1.*( 2 ()*+&, 3 $& * 4 567 89 8: ;+&&+0 (< 2#$%=# 9 6 ... ระบบจัดการ... · !"#$%&'()&*$ lbm n@h@ibnbhf obpqcefa rsc tcnbu dscpb vbpqcefa wbhfbc +&,-$.& xeffeubpy

เอกสารอางอง

[1] บณฑต จามรภต , “Linux RedHat เลม 1“ , ซเอดยเคชน จำากด , พ.ศ.2548 [2] บณฑต จามรภต , “Linux RedHat เลม 2“ , ซเอดยเคชน จำากด , พ.ศ.2549[3] เรองไกร รงสพล , “เจาะระบบ TCP/IP จดออนของโปรโตคอลและวธปองกน“ , บรษท โปรวชน จำากด , พ.ศ.2544[4] เรองไกร รงสพล , “เปดโลก Firewall และ Internet Security“ ,บรษท โปรวชน จำากด , พ.ศ.2544[5] Lucian Gheorghe, Linux Firewall and QoS using netfilter, iproute2, NAT and L7-filter, PACKT PUBLISHING, 2006

66