Mini Howto Subject : การทำ Network security(Firewall) By : Dome Potikanond Date : Apr 6, 1998 Update from : - License: สงวนลิขสิทธิ์เอกสารนี้ โดย โดม โพธิกานนท์ การเผยแพร่เอกสารนี้จะต้องอยู่ภายไต้ เงื่อนไขของ GNU General Public License เวอร์ชั่น 2.0 ที่ออกโดย Free Sofware Foundation กรุฒาอ่านรายละเอียดของ GPL ที่ Introduction : สำหรับ Linux นั้นมีความสามารถในการทำ network security ได้ในระดับที่ค่อนข้างดี โดยที่ไม่จำเป็นต้องหา software มาเพิ่มเติมเลย ซึ่งในการทำ network security นั้นจะอาศัย Firewall ซึ่งจะทำได้โดยการใช้ความสามารถของ ipfwadm(ip firewall admin) ซึ่งมีมากับ package ของ linux อยู่แล้ว ในการทำงานของ ipfwadm นั้นสามารถทำงานได้ 4 รูปแบบได้แก่ IP packets IP input firewall IP output firewall IP forwarding firewall สำหรับ ipfwadm สามารถกำหนดได้ว่าจะทำ firewall ในส่วนของข้อมูลขาเข้า ออก หรือ ทั้งสองทาง นอกจากนี้แล้วสำหรับเครื่องที่เป็น gateway นั้นยังสามารถทำ forwarding firewall ได้เพราะตังเองทำหน้าที่เป็น gatewaying/forwarding gateway อยู่แล้ว Prerequire : ต้อง make kernel ให้สนับสนุนการทำงานของ Network Firewall ,IP Firewall และถ้าเครื่องที่ใช้นั้นต้องทำหน้าที่เป็น gateway ให้ make kernel ให้สนับสนุนการทำงานของ IP forwarding/gatewaying ด้วย การใช้งาน firewall (ipfwadm) : 1. ให้พิจารณาจากรูปแบบการเชื่่อมต่อของ network นั้นๆว่าเป็นไปในลักษณะใด เช่นดูว่าในระบบมี gateway กี่ตัวอยู่ที่ในบ้าง มี network กี่วง วงใดต่อกับวงใด ผู้ใช้งานหลักสำหรับ network แต่ละวงเป็นใคร 2. พิจารณาว่าต้องการให้ network วงใดถูกกันออกจากการเข้าถึงของเครื่องใน network อื่นๆ เช่น network ของผู้บริหาร ไม่ควรที่จะถูก พนักงานธรรมดา หรือเครื่องจาก internet เข้าถึงได้ 3. ให้ใช้เครื่อง linux เครื่องหนึ่งเป็น gateway สำหรับ network ที่ต้องการ security แล้วสร้าง firewall โดยใช้ ipfwadm 4. กำหนด policy ต่างๆที่เห็นสมควรเช่น เครื่องของผู้บริหารสามารถเข้าถึงเครื่องของพนักงาน และ internet ได้ แต่เครื่องจาก internet และพนักงานจะไม่สามารถเข้าถึงข้อมูลในเครื่องผู้บริหารได้ โดยใช้ ipfwadm ซึ่งจะได้อธิบายดังต่อไปนี้ Syntax : Firewall Categories : ipfwadm -I command parameters [options] --> ใช้เมื่อต้องการกำหนด IP input firewall rules สำหรับเครื่องๆนั้น ipfwadm -O command parameters [options] --> ใช้เมื่อต้องการกำหนด IP output firewall rules สำหรับเครื่่องๆนั้น ipfwadm -F command parameters [options] --> ใช้สำหรับการกำหนด IP forwarding firewall rules สำหรับเครื่องที่ใช้เป็น gateway/forwarding [option] : -a --> ใช้เมื่อต้องการเพิ่ม policy ใหม่เข้าไปใน list -d --> ใช้เมื่อต้องการลบ policy เดิมที่มีอยู่ใน list ออกไป -l --> ใช้เมื่อต้องการดู policy ทั้งหมดที่มีอยู่ใน list -P --> ใช้เมื่อต้องการกำหนด policy ในระดับ port (application)ว่าให้บริการใช้ได้บ้าง หรือบริการใดใช้ไม่ได้บ้าง -S --> ตามด้วยหมายเลข ip address/netmask ของเครื่องต้นทางในการส่งข้อมูล -D --> ตามด้วยหมายเลข ip address/netmask ของเคร่่ื่องปลายทางที่จะส่งข้อมูลไปถึง Example : bash# ipfwadm -I -l เป็นการ list policy เกี่ยวกับ IP input firewall ทั้งหมดที่มีการกำหนดไว้ ซึ่งถ้ายังไม่เคยมีการกำหนดมาก่อนจะได้ผลลัพธ์คือ IP firewall input rules, default policy: accept แต่ถ้ามีการกำหนด policy ใหม่ดังตัวอย่าง ipfwadm -O -a deny -P tcp -S 202.44.248.93/32 -D 202.44.248.67/32 80 จะหมายถึงว่า จะไม่ยอมให้เครื่องที่มี ip address 202.44.248.93(ตัวเอง) ส่งข้อมูลที่ใช้ protocal TCP ไปยังเครื่่องที่มี ip address 202.44.248.67 ที่ port 80 (แต่ยังส่งไปยัง port อื่นๆได้อยู่ หรือยังส่งข้อมูลที่เป็น UDP ไปที่ port 80 ของ เครื่่อง 202.44.248.67 ได้อยู่) bash# ipfwadm -I -a deny -P tcp -S 0.0.0.0/0 -D 202.44.248.93/32 157 bash# ipfwadm -I -a deny -P udp -S 0.0.0.0/0 -D 202.44.248.93/32 157 เป็นการกำหนดว่าไม่อนุญาติให้มีการส่งข้อมูลทีใช้ protocal TCP และ UDP จากเครื่องใดๆก็ตามมายังเครื่องที่มี ip address 202.44.248.93(เครื่องตัวเอง) ที่ port 157 (แต่ยังสามารถรับข้อมูลที่เข้ามาที่ port อื่นๆได้) bash# ipfwadm -O -l IP firewall output rules, default policy: accept type prot source destination ports deny tcp mimi.mptc.eng.cmu.ac.th ows.doc.eng.cmu.ac.th any -> www bash# ipfwadm -I -l IP firewall input rules, default policy: accept type prot source destination ports deny tcp anywhere mimi.mptc.eng.cmu.ac.th any -> 157 deny udp anywhere mimi.mptc.eng.cmu.ac.th any -> 157 เมื่อมีทดลอง list รายละเอียดของ policy ทั้งหมดที่มีสำหรับ IP output firewall และ IP input firewall ตามลำดับจะ ปรากฎรายละเอียดตามลำดับดังตัวอย่าง สำหรับเครื่องที่ทำหน้าที่เป็น gateway/forwarding นั้นยังสามารถใช้ command ใน category ของ -F ได้ดังตัวอย่าง bash# ipfwadm -F -a deny -S 200.0.2.0/24 -D 202.44.248.67/32 จะเป็นการกำหนดว่า จะไม่ยอมให้เครื่องในเครื่อข่าย 200.0.2.0 ส่งข้อมูลใดๆไปยังเครื่อง 202.44.248.67(ไม่ใช่เครื่องตัวเอง)ได้