การทำเกตเวย์และไฟร์วอลล์ด้วย Linux (iptables)

ก่อนจะมาทำเขียนเรื่อง iptables
ก่อนหน้านี้ผมเคยเขียนเรื่องการทำเกตเวย์และไฟร์วอลล์ด้วย iptables มาแล้วครับ  แล้วก็มีคนแนะนำว่า ควรจะเขียนโดยใช้ iptables ด้วย เพราะมันใหม่กว่าและหาอ่านได้ยากกว่า  ก็ยอมรับว่าเป็นความจริงครับ อย่าง RedHat 8.0 ที่เพิ่มออกมาก็มี iptables pakage มาให้แทน ipchains  แต่คนที่จะใช้ ipchains ก็ไม่ต้องตกใจครับ เพราะ ipchains ก็สามารถติดตั้งเพิ่มเติมจากแผ่นได้

บทความนี้จะมีเนื้อหาเหมือนกับเรื่อง
"การทำเกตเวย์และไฟร์วอลล์ด้วย Linux (ipchains)" ต่างกันตรงที่ใช้ iptables แทนนั่นเอง
 
สมมุติว่ามีปัญหาอยู่อย่างนี้ครับ

 ถ้าท่านเป็นผู้ให้บริการอินเตอร์เน็ตเช่นประเภท
Internet Corporate Access โดยจำนวน IP ที่ท่านให้กับลูกค้าแต่ละรายอาจจะมีจำนวนเป็น 16,32,64 หรือ 128 IP ก็แล้วแต่ว่าผู้ให้บริการแต่ละรายจะมีนโยบายให้กันเท่าไหร่นะครับ  ท่านคงจะได้เจอปัญหานี้มาแล้วบ้างที่ว่า เมื่อจำนวนของเครื่องคอมพิวเตอร์หรือ Server ของลูกค้ามีมากกว่าจำนวน IP ที่ท่านให้แล้วท่านจะให้คำปรึกษากับลูกค้าอย่างไร หรือถ้าเป็นในส่วนของลูกค้า จะต้องทำอย่างไร

ปัญหาที่กล่าวมานี้สามารถแก้ปัญหาได้ด้วยวิธีการหนึ่งคือการใช้
Linux Server ซึ่งเป็น OS แบบ Open Source และสามารถใช้ได้ฟรีโดยไม่ต้องซื้อ Software ราคาแพงมาใช้  แต่อาจจะไม่สะดวกเท่ากับ Software ที่มีราคาแพง ๆ นะครับ แต่ก็นั่นแหละครับ มันสามารถประหยัดต้นทุนลงไปได้มากทีเดียว

สมมุติฐาน
สมมุติว่าหน่วยงานที่มีปัญหาได้เช่า Internet Corporate Access (Internet เป็นแบบ Leased Line) จาก ISP มา และได้ IP Address จาก ISP สำหรับวง LAN เป็น 16 ip คือ 202.129.48.160/28 (ใช้งานจริงได้ 14 ip) แต่มีจำนวนของเครื่องคอมพิวเตอร์หรือเซิร์ฟเวอร์ภายในสำนักงานมากกว่า 14 ip โดย ip ที่ได้จาก ISP เป็นดังนี้ครับ :

LAN IP  : 202.129.48.160/28 นั่นคือจะมี IP ภายในวงแลนของผู้ใช้บริการเป็น 16 IP คือ 202.129.48.160-175 แต่ใช้ได้จริงแค่ 14 ip เพราะไอพี 202.129.48.160 เป็น Network IP และไอพี 202.129.48.175 เป็น Broadcast IP

WAN IP : 202.129.19.244/30  นั่นคือจะมี wan ip ฝั่ง ISP เป็น 202.129.19.245 และ wan ip ฝั่งผู้ใช้บริการเป็น 202.129.19.246

วิธีการแก้ปัญหา
เนื่องจาก
IP ที่ได้จาก ISP นั้นไม่เพียงพอต่อการใช้งาน ดังนั้น วิธีแก้ก็คือการใช้ Private IP ร่วมกับการทำเกตเวย์ โดยเครื่องที่จะเอามาทำเกตเวย์นั้นก็สามารถเอาเครื่อง PC ที่มีสเปคพอใช้ได้หน่อยมาทำ หรือจะใช้ Server จริง ๆ เลยก็ได้  ส่วน OS ที่ลงบนเครื่องเกตเวย์ให้ลง Linux นะครับ  สำหรับ Private IP มาตรฐานนั้นมี 3 ชุดด้วยกันคือ

10.0.0.0
- 10.255.255.255            สำหรับ Class A
172.16.0.0 - 172.31.255.255       สำหรับ Class B
192.168.0.0 - 192.168.255.255   สำหรับ Class C

ในที่นี้ผมขอเลือกใช้ Class C นะครับ โดยวิธีการที่จะทำนั้นก็คือการเอาเกตเวย์มาคั่นระหว่างเราเตอร์กับเครือข่าย LAN ภายใน ดังรูปที่ 1 โดยเครือข่าย LAN ภายในนั้นให้ใช้ IP Address เป็น Private IP  ซึ่งสามารถกำหนดได้โดยไม่จำกัด ซึ่งในที่นี้กำหนด IP เริ่มต้นที่ 192.168.1.11 เป็นต้นไป 

ส่วนของตัวเกตเวย์ควรจะมีการ์แลน 2 การ์ดนะครับ โดยกำหนดให้การ์หนึ่งมี IP อยู่ในกลุ่มของ IP ที่ได้จาก ISP โดยในที่นี้เลือกเป็น 202.129.48.162 และอีกการ์ดให้กำหนด IP เป็น Private IP โดยในที่นี้กำหนดเป็น 192.168.1.1

ดังนั้นจากรูปจะเห็นว่า  ถ้าจะให้เครื่องภายในวงแลนสามารถออกสู่อินเตอร์เน็ตได้ ก็ต้องกำหนดให้เครื่องคอมพิวเตอร์ภายในชี้ default gateway ไปที่ 192.168.1.1 และที่เกตเวย์จะต้องมีการเซ็ตว่าจะอนุญาตให้แพ็คเก็ตข้อมูลที่ส่งมาจากเครือข่ายภายในประเภทไหนบ้างผ่านไปยังเครือข่ายอินเตอร์เน็ตได้ และในทางกลับกันก็จะตัองทำการเซ็ตว่าจะอนุญาตให้แพ็คเก็ตข้อมูลไดบ้างจากภายนอกหรืออินเตอร์เน็ตสามารถผ่านเข้าไปสู่เครือข่ายภายในได้ด้วย
 


รูปที่ 1 การทำเกตเวย์โดยใช้การ์ดแลน 2 การ์ด

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

#echo 1 > /proc/sys/net/ipv4/ip_forward
#iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

จากคำสั่งดังกล่าว คำสั่งแรกเป็นการ enable ip_forward ส่วนคำสั่งที่ 2 เป็นการทำ IP Masquerading ซึ่งจะหมายถึง  การทำแพ็คเก็ตข้อมูลที่ส่งมาจากเครือข่ายภายในให้เปลี่ยนแปลงเป็นแพ็คเก็ตข้อมูลเสมือนว่ามีแอสเดรสต้นทางของแพ็คเก็ตมากจากเครื่อง Linux เอง แต่จะมีการกำหนดพอร์ตเพิ่มเติมเพื่อที่จะให้ทราบได้ว่าส่งมาจากโฮสต์ใดของเครือข่ายภายใน  โดยขั้นตอนในการกำหนด Masquerade Gatewate มีขั้นตอนดังนี้

  • แจ้งให้โฮสต์บนโลคัลเน็ตเวิร์ค (เครือข่ายภายใน) ทราบว่าช่องทางที่จะเชื่อมต่อกับอินเตอร์เน็ตเป็นช่องทางใดบน Linux Server อาจจะเป็น eth1 (การ์ดแลนฝั่งที่ติดต่อกับเครือข่ายภายนอก จากรูปที่ 1 คือการ์ดด้านขวามือ) หรือในการณีที่เชื่อมต่ออินเตอร์เน็ตผ่าน dialup อาจะเป็น ppp0 หรือ ppp1 นะครับ

  • เมื่อมีแพ็คเกตจากโลคัลเน็ตเวิร์คเดินทางมาถึง Masqueraded Gateway ตัว Masqueraded Gateway ก็จะเปลี่ยนข้อมูลที่เป็นแอสเดรสต้นทางในแพ็คเก็ต  พร้อมกับการกำหนดพอร์ตบนโปรโตคอล TCP/IP ใหม่เพื่อที่จะให้สามารถจำแนกโฮสต์บนโลคัลเน็ตเวิร์คได้

  • เมื่อมีแพ็คเกตจากอินเตอร์เน็ตเดินทางมาถึง Masqueraded Gateway ตัว Masqueraded Gateway ก็จะค้นหาข้อมูลบนพอร์ตของโปรโตคอล TCP/IP เพื่อจะให้ทราบว่าเป็นข้อมูลของโฮสต์ใดบนโลคัลเน็ตเวิร์ค  จากนั้นก็จะกำหนดแอดเดรสปลายทางของแพ็คเกตใหม่  เพื่อส่งไปยังโฮสต์บนโลคัลเน็ตเวิร์ค

  • การทำงานดังกล่าวเป็น Transparent ต่อโฮสต์ต้นทางหรือปลายทางที่รับ/ส่งข้อมูล

ซึ่งก็คล้ายกันการทำ NAT แบบมี IP จริงแค่ IP เดียวนะครับ

ส่วนรูปที่ 2 ก็เป็นหลักการเดียวกันกับรูปที่ 1 นะครับ เพียงแต่ว่าบนตัว
Gateway มีการ์ดแลนแค่การ์ดเดียว  การแก้ปัญหาก็ทำได้ด้วยการกำหนดค่า IP Address บนการ์ดนั้นให้มี IP เป็น 2 ค่า (Linux สามารถทำได้) คือ ip จริงค่าหนึ่งและอีกค่าเป็น Private IP และให้เครือข่ายภายในกำหนด IP ของทุกเครื่องเป็น Private IP หมด โดยให้ชี้ default dateway มาที่ Private IP ของ Gateway แต่วิธีนี้ไม่ขอแนะนำให้ใช้นะครับเพราะแพ็กเกตข้อมูลที่เป็นของอินเตอร์เน็ตปนเปอยู่กับแพ็คเกตข้อมูลภายใน  และยูสเซอร์ก็สามารเปลี่ยน IP ของเครื่องเป็น IP จริงได้



รูปที่ 2 การทำเกตเวย์โดยใช้การ์ดแลน 1 การ์ด


การใช้ iptables ที่ผ่านมานั้นเป็นการเปิดบริการให้ยูสเซอร์ที่อยู่ในวงเครือข่ายภายในสามารถใช้บริการบนอินเตอร์เน็ตได้ทุกอย่าง นั่นคือไม่มีการห้ามใช้บริการประเภทใด  ในบางสถานะการณ์นั้น เราสามารถห้ามไม่ให้ยูสเซอร์ใช้บริการบางอย่างได้  เช่นห้ามเล่น ICQ ห้ามใช้ POP3 เป็นต้น  และบางครั้งตัวเกตเวย์ของเราเองอาจจะถูกโจมตีจากบุคคลที่ไม่หวังดีได้  ดังนั้นถ้าเรามีการป้องกันการโจมตีไว้ด้วยก็จะเป็นสิ่งที่ดี  ซึ่ง iptables สามารถจะป้องกันตรงนี้ได้

การทำไฟร์วอลล์ด้วย
iptables
ตัวอย่างต่อไปนี้เป็นตัวอย่างหนึ่งของการทำไฟร์วอลล์ที่ผมใช้งานอยู่จริง โดยมีรูปแบบการเชื่อมต่อของเครือข่ายเป็นดังรูปที่ 1 ซึ่งในตัวไฟร์วอลล์เองมีบริการอื่นที่รันอยู่ด้วยคือ Web Server (ทำเป็น Webmail ติดต่อกับ mail server คือเครื่องตัวเองผ่าน smtp และ imap), DNS Server, Proxy Server, Mail Server (เปิดให้ client คอนเน็กผ่านทั้ง pop3 และ imap), Ftp Server และอนุญาตให้เครือข่ายภายในสามารถออกไปใช้บริการอินเตอร์เน็ตที่ประกอบด้วย ftp,telnet,smtp,pop3,imap,webcache,http,https,icq,ping,dns และมีการห้ามพอร์ตบางพอร์ตของ tcp และ udp ซึ่งสามารถสรุปเป็นตารางดังต่อไปนี้

ลำดับ Source Destination Service Port No. Action
1 Internal any ftp 21 tcp accept
2 Internal any telnet 23 tcp accept
3 any any smtp 25 tcp accept
4 any any http 80 tcp accept
5 Internal any pop3 110 tcp accept
6 Internal any imap 143 tcp accept
7 localhost localhost imap 143 tcp accept
8 Internal any https 443 tcp accept
9 any any dns 53 udp accept
10 Intenal any icq 4000 udp accept
11 ไม่ใช่ Internal any webcache (proxy) 8080 tcp reject
12 any any tcp port 0-1023 0-1023 tcp reject
13 any any tcp Network File System (NFS) 2049 tcp reject
14 any any udp port 0-1023 0-1023 udp reject
15 any any udp Network File System (NFS) 2049 udp reject
16 any any x windows system 6000-6009 tcp reject
17 any any X Font Service 7100 tcp reject

1:#iptables -A INPUT -s 192.168.1.0/24 -d 0/0 -p tcp --dport 21 --syn -j ACCEPT
2:#iptables -A INPUT -s 192.168.1.0/24 -d 0/0 -p tcp --dport 23 --syn -j ACCEPT
3:#iptables -A INPUT -s 0/0 -d 0/0 -t tcp --dport 25 --syn -j ACCEPT
4:#iptables -A INPUT -s 0/0 -d 0/0 -p tcp --dport 80 --syn -j ACCEPT
5:#iptables -A INPUT -s 192.168.1.0/24 -d 0/0  -p tcp --dport 110 --syn -j ACCEPT
6:#iptables -A INPUT -s 192.168.1.0/24 -d 0/0 -p tcp --dport 143 --syn -j ACCEPT
7:#iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -p tcp --dport 143 --syn -j ACCETP
8:#iptables -A INPUT -s 192.168.1.0/24 -d 0/0 -p tcp --dport 443 --syn -j ACCEPT
9:#iptables -A INPUT -s 0/0 -d 0/0 -p udp --dport 53 -j ACCEPT
10:#iptables -A INPUT -s 192.168.1.0/24 -d 0/0 -p udp --dport 4000 -j ACCEPT
11:#iptables -A INPUT -s 192.168.1.0/24 -d 0/0 -p tcp --dport 8080 --syn -j ACCEPT
12:#iptables -A INPUT -s 0/0 -d 0/0 -p tcp --dport 0:1023 --syn -j REJECT
13:#iptables -A INPUT -s 0/0 -d 0/0 -p tcp --dport 2049 --syn -j REJECT
14:#iptables -A INPUT -s 0/0 -d 0/0 -p udp --dport 0:1023 -j REJECT
15:#iptables -A INPUT -s 0/0 -d 0/0 -p udp --dport 2049 -j REJECT
16:#iptables -A INPUT -s 0/0 -d 0/0 -p tcp --dport 6000:6009 --syn -j REJECT
17:#iptables -A INPUT  -s 0/0 -d 0/0 -p tcp --dport 7100  --syn -j REJECT

(ดูรายละเอียดของ tcp ports และ udp ports ได้ที่ http://www.southcat.net/technology/computer/tcp_ports.html และ http://www.southcat.net/technology/computer/udp_ports.html )
ความหมายแต่ละบรรทัด:
1.อนุญาตให้เครือข่ายภายใน ftp ไปยังปลายทางที่ไหนก็ได้
2.อนญาติให้เครือข่ายภายใน telnet ไปยังปลายทางที่ไหนก็ได้
3.อนุญาตให้รับส่งเมล์ผ่าน smtp ได้ไม่ว่าจะเป็นต้นทางและปลายทางที่ไหน
4.อนุญาตให้ใช้เรียกใช้งานเว็บได้ไม่ว่าจะเรียกจากที่ไหน และเรียกไปที่ไหนก็ได้
5.อนุญาตให้ mail client ของเครือข่ายภายในรับส่งเมล์กับ mail server ที่ไหนก็ได้ผ่าน POP3
6.อนุญาตให้ mail client ของเครือข่ายภายในรับส่งเมล์กับ mail server ที่ไหนก็ได้ผ่าน IMAP
7.อนุญาตให้ localhost สามารถใช้ imap ติดต่อกับ localhost ได้ เพื่อทำ webmail
8.อนุญาตให้เครือข่ายภายในใช้ https ได้
9.อนุญาตให้ใช้งาน DNS ได้ ไม่ว่าต้นทางและปลายทางอยู่ที่ไหน
10.อนุญาตให้เครือข่ายภายในใช้ ICQ ได้
11.ไม่อนุญาตให้เครือข่ายที่นอกเหนือจากเครือข่ายภายในสามารถใช้งาน Proxy Server ได้
12.ไม่อนุญาตให้ใช้งาน tcp พอร์ต 0-1023 ไม่ว่าจะเป็นต้นทางและปลายทางที่ไหน
13.ไม่อนุญาตให้ใช้งาน tcp พอร์ต 2049 (NFS) ไม่ว่าจะเป็นต้นทางและปลายทางที่ไหน
14.ไม่อนุญาตให้ใช้งาน udp พอร์ต 0-1023 ไม่ว่าจะเป็นต้นทางและปลายทางที่ไหน
15.ไม่อนุญาตให้ใช้งาน udp พอร์ต 2049 (NFS) ไม่ว่าจะเป็นต้นทางและปลายทางที่ไหน
16.ไม่อนุญาตให้ใช้งาน tcp พอร์ต 6000-6009 (เป็น x11 สำหรับ X-windows) ไม่ว่าจะเป็นต้นทางและปลายทางที่ไหน
17.ไม่อนุญาตให้ใช้งาน tcp พอร์ต 7100 (X Font Service) ไม่ว่าจะเป็นต้นทางและปลายทางที่ไหน

จากคำสั่งข้างบน เนื่องจาก
webmail จะต้องมีการติดต่อกับ Mail Server ผ่าน imap  ดังนั้นในบรรทัดที่ 7 เราจึงต้องอนุญาตให้ localhost สามารถเชื่อมต่อ IMAP กับ localhost ได้

และจากคำสั่งจะเห็นว่าในกรณีที่เป็น
tcp นั้นจะมี --syn อยู่ด้วย  กล่าวคือ TCP เป็นโปรโตคอลแบบ "connection oriented" คือต้องสถาปนาการเชื่อมต่อระหว่างสถานีต้นทางและปลายทางก่อนการส่งข้อมูล ซึ่งจะต่าง กับ UDP ที่เป็นแบบ "connectionless" คือไม่มีการสถาปนาการเชื่อมต่อระหว่างต้นทางและปลายทาง  การใช้ -syn ก็เพื่อที่จะอนุญาต/ไม่อนุญาต ให้มีการสถาปนาการเชื่อมต่อ (initiate communication) สำหรับโปรโตคอล TCP นั่นเอง

ในเรื่องของ
iptables นั้นมีรายละเอียดเกี่ยวกับการใช้งานมาก  ซึ่งไม่ขออธิบายรายละเอียดในที่นี้  การทำไฟร์วอลล์หรือเกตเวย์  ถ้าต้องการความปลอดภัยมาก ๆ ก็อาจจะต้องใช้คำสั่งของ iptables ที่ยุ่งยากมากกว่านี้ แต่ยิ่งมีจำนวน rule มากขึ้นเท่าไหร่ก็จะมีผลทำให้ Server ต้องทำงานหนักขึ้น ซึ่งส่งผลให้ Server ทำงานช้าลงได้  ในการใช้งานจริง ๆ ท่านสามารถพลิกแพรง  ได้ตามความเหมาะสมนะครับ ไม่ต้องเอาตามของผม ของผมอาจจะจะไม่ปลอดภัยมากนักนะครับ มันขึ้นอยู่กับระดับความปลอดภัยที่ต้องการนะครับว่าจะให้มากน้อยขนาดไหน

ให้ดูอีกตัวอย่างหนึ่ง
ตัวอย่างต่อไปนี้ผมใช้
ip จริงหมดครับ โดยได้ wan ip จาก isp เป็น 202.129.16.238/30 และได้ lan ip เป็น 128 ip คือเป็น 202.129.48.0/25 ซึ่งผมกำหนดให้ lan port ของ router เป็น 202.129.48.1และกำหนด ip ให้เครื่องคอมพิวเตอร์ภายในเริ่มต้นที่ 202.129.48.11 เป็นต้นไป  และได้ตั้ง linux firewall ขึ้นมาหนึ่งตัวมี ip เป็น 202.129.48.2 ดังรูปที่ 2

โดยกำหนดให้เครื่องคอมพิวเตอร์ที่อยู่ในเครือข่ายภายใน  ติดต่อไปยังเครือข่ายภายนอกหรือเครือข่ายอินเตอร์เน็ตจะต้องผ่าน ตัว
firewall ทั้งหมด นั่นคือทำได้ด้วยการให้เครื่องคอมพิวเตอร์ภายในทั้งหมดชี้เกตเวย์มาที่เครื่อง firewall คือ 202.129.48.2 ดังรูป

การทำ firewall ที่เครื่อง 202.129.48.2
ผมทำ
firewall โดยใช้ iptables ครับ ซึ่งป้อนคำสั่งทั้งหมดไว้ที่ไฟล์ /etc/rc.d/rc.local ซึ่งคล้ายกับไฟล์ autoexec.bat บน windows นั่นเอง คือมีการ boot เครื่องใหม่ ไฟล์นี้ก็จะถูกรันทุกครั้ง  หรือจะรันโดยไม่ต้อง boot ใหม่ก็ได้ คือให้พิมพ์ชื่อไฟล์นี้จาก command line ได้เลย ดังนี้ :
#/etc/rc.d/rc.local

ในเครื่องนี้ที่ผมใช้จริงนั้น นอกจากจะเป็น
firewall แล้วยังใช้งานเป็น dns server, proxy server  กับ dhcp server ด้วยครับดังนั้นในการทำ firewall จะต้องมีการอนุญาต service ทั้งสองนี้ด้วย ซึ่งคำสั่งทั้งหมดที่ผมใช้มีดังต่อไปนี้

#echo 1 > /proc/sys/net/ipv4/ip_forward
#iptables -F
#iptables -t nat -F
#iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
#iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
#iptables -A INPUT -s 0/0 -d 0/0 -p tcp --dport 21 --syn -j ACCETP
#iptables -A INPUT -s 0/0 -d 0/0 -p tcp --dport 23 --syn -j ACCEPT
#iptables -A INPUT -s 202.129.48.0/30 -d 0/0 -p tcp --dport 25 --syn -j ACCEPT
#iptables -A INPUT -s 0/0 -d 0/0 -p tcp --dport 67:68 --syn -j ACCEPT
#iptables -A INPUT -s 0/0 -d 0/0 -p udp --dport 67:68 -j ACCEPT
#iptables -A INPUT -s 0/0 -d 0/0 -p udp --dport 53 -j ACCEPT
#iptables -A INPUT -s 202.129.48.0/25 -d 0/0 -p tcp --dport 110  --syn -j ACCEPT
#iptables -A INPUT -s 202.129.48.0/25 -d 0/0 -p tcp --dport 143 --syn -j ACCEPT
#iptables -A INPUT -s 202.129.48.0/25 -d 0/0 -p tcp --dport 443 --syn -j ACCEPT

#iptables -A INPUT -s ! 202.129.48.0/25 -d 0/0 -p tcp --dport 8080 --syn -j REJECT
#iptables -A INPUT -s 0/0 -d 0/0 -p tcp --dport 0:1023 --syn -j REJECT
#iptables -A INPUT -s 0/0 -d 0/0 -p udp --dport 0:1023 -j REJECT
#iptables -A INPUT -s 0/0 -d 0/0 -p tcp --dport 2049 --syn -j REJECT
#iptables -A INPUT -s 0/0 -d 0/0 -p udp --dport 2049 -j REJECT
#iptables -A INPUT -s 0/0 -d 0/0 -p tcp --dport 6000:6009 --syn -j REJECT
#iptables -A INPUT -s 0/0 -d 0/0 -p tcp --dport 7100 --syn -j REJECT
#iptables -A INPUT -s 0/0 -d 0/0 -p tcp --dport 61020:62975 --syn -j REJECT
#iptables -A INPUT -s 0/0 -d 0/0 -p udp --dport 61020:62975 -j REJECT

คำอธิบาย
ขออภัย ขอพักก่อนนะ