Network Commands

iptables

iptables เป็นเครื่องมือสำคัญอีกตัวหนึ่งที่ถูกนำมาใช้ในการจัดการระบบความปลอดภัยในระบบเครือข่ายที่เรียกว่า ไฟร์วอลล์ (firewall) โดยพื้นฐานในการกำหนดการควบคุมการเข้าออกของข้อมูลนั้น ผู้ดูแลระบบหรือแม้แต่นักพัฒนาทางด้านระบบสมองกลฝังตัวควรเข้าใจโครงสร้างและหลักการทำงานของ iptables เป็นอย่างดี

ภายใน iptables นั้นมีด้วยกันหลายตาราง (tables) โดยแต่ละตารางจะประกอบไปด้วยหลายรายการที่เรียกว่า chain (ที่ iptables เตรียมมาให้แล้วหรือผู้ใช้กำหนดขึ้นเอง) และภายในแต่ละ chain จะประกอบไปด้วยข้อกำหนดการควบคุมการเข้าออกของข้อมูลที่เรียกว่า rule ดังโครงสร้างแสดงในรูปข้างล่าง

ตารางที่ใช้ในการกําหนดกฏของ iptables

iptables จะถูกเตรียมตารางให้แล้ว 4 ตาราง (4 built-in tables) ได้แก่

  1. Filter Table

  2. NAT Table

  3. Mangle Table

  4. Raw Table

ส่วนประกอบของ iptables จะมีส่วนประกอบหลัก 3 ส่วนได้แก่

  • INPUT คือส่วนของข้อมูลที่เข้ามาสู่เครื่องคอมพิวเตอร์

  • OUTPUT คือส่วนของข้อมูลที่ออกจะเครื่องคอมพิวเตอร์

  • FORWARD คือส่วนที่ส่งต่อข้อมูลจากระบบเครือข่ายภายในสู่เครือข่ายภายนอก ซึ่งการบล็อกพอร์ตก็จะใช้ส่วนนี้เป็นหลัก

โฟลว์ชาร์ตแสดงการควบคุมการไหลของข้อมูล

ตัวอย่างการแสดงรายละเอียดของตารางภายใน iptables

โดยที่

  • ACCEPT คือไฟร์วอลล์จะยอมให้แพ็กเก็ต (packet) ผ่านไปยังปลายทางได้

  • DROP คือไฟร์วอลล์จะทิ้งแพ็กเก็ตทันที แต่จะไม่แจ้งผู้ส่งเกี่ยวกับข้อความที่ส่งไม่สำเร็จ

  • REJECT คือไฟร์วอลล์จะทิ้งแพ็กเก็ตทันที และผู้ส่งจะได้รับข้อความผ่าน ICMP ตอบกลับถึงข้อความที่ส่ง

ไม่สำเร็จ

  • QUEUE คือไฟร์วอลล์จะส่งต่อแพ็กเก็ต ไปยังส่วนระบบบนที่ติดต่อกับผู้ใช้ (userspace)

  • RETURN คือไฟร์วอลล์จะหยุดการทำงานภายใน chain แล้วกลับไปยัง Chain เดิมที่เรียกก่อนหน้านี้

ตัวอย่างแสดงการเปิดพอร์ตด้วยคำสั่ง iptables โดยหลักการสำคัญคือ ควรปิดพอร์ตทั้งหมดก่อนแล้วจึงค่อยเลือกเปิดพอร์ตที่ใช้ทีละพอร์ตจะเป็นวิธีที่มีความปลอดภัยที่สุด

พอร์ตพื้นฐานที่จะถูกเปิดไว้สำหรับบอร์ดสมองกลฝังตัว เพื่อใช้ในการติดตั้ง bootloader,ลีนุกซ์คอร์เนลและ เรียก root filesystem ได้นั้นจะมีด้วยกันอย่างน้อย 4 ถึง 5 พอร์ต ได้แก่

ตารางรายการ services ที่ถูกเปิดใช้ในระบบสมองกลฝังตัว

Service
Port Name
Port No.
TCP/IP Protocol

DHCP

bootps

67

UDP

TFTP

tftp

69

UDP

NFS

sunrpc

111

UDP

nfs

2049

UDP

mountd

32700 หรือ 32772

UDP

ในกรณีที่ต้องการปิดการทำงานของไฟร์วอลล์ เพื่อเข้าสู่โหมดบำรุงรักษาระบบสามารถใช้คำสั่งดังต่อไปนี้

รายละเอียดของโปรโตคอลในแต่ละช้ันของ TCP/IP

NFS

nfs เป็นโปรโตคอลที่ได้รับการออกแบบมาเพื่อการเชื่อมโยงทรัพยากรฮาร์ดดิสก์จากเครื่องอื่นๆที่อยู่บนเครือข่ายคอมพิวเตอร์ที่อยู่ห่างออกไปให้เป็นเสมือนระบบไฟล์ของอุปกรณ์เอง สำหรับนักพัฒนาระบบสมองกลฝังตัวแล้วการใช้งาน nfs มีผลทำให้ในระหว่างการปรับแต่งระบบปฏิบัติการ หรือการพัฒนาโปรแกรมเพื่อใช้ในระบบสมองกลฝังตัวคล่องตัวและสะดวกมากยิ่งขึ้นและไม่มีข้อจำกัดของขนาดในการเก็บข้อมูล โดยการนำไฟล์ root file system (RFS) ไปวางไว้ในไดเรกทอรีที่ถูกตั้งค่าให้เป็นไดเรอทอรีที่ถูกแชร์ผ่านโปรโตคอล NFS เนื่องจากโดยทั่วไปแล้วเมื่อนักพัฒนาได้ปรับแต่งระบบปฏิบัติการเสร็จ และพัฒนาโปรแกรมฝังเข้าไป root file system เรียบร้อยก็จะถูกนำไปเขียนลงในตัวเก็บข้อมูลที่อยู่ภายในบอร์ดสมองกลฝังตัว เช่น Flash Memory เป็นต้น

แสดงข้ันตอนการ mount พื้นที่บนเครื่อง Host ด้วยโปรโตคอล NFS

ในระบบปฏิบัติการลีนุกซ์บนระบบสมองกลฝังตัว การเชื่อมต่อระบบเข้ากับ Network File System นั้นในขั้นตอนการทำงานจะมีลักษณะเดียวกับการเชื่อมต่อของระบบปฏิบัติการลีนุกซ์โดยทั่วไป

ขั้นตอนการติดตั้ง nfs-kernel-server และตั้งค่าในไฟล์ /etc/exports ดังนี้

ทำการเรียก service ที่เกี่ยวข้องทั้งหมด ด้วยคำสั่ง

ไฟล์ /etc/exports เป็นไฟล์ที่ได้ถูกสร้างขึ้นจากเครื่องแม่ข่าย เพื่อระบุว่าจะให้ไดเรกทอรีใดในเครื่องแม่ข่ายที่จะให้เครื่องลูกข่ายสามารถทำการ mount ไดเรกทอรีได้ ด้วยคำสั่งข้างล่าง

Last updated

Was this helpful?