ในระบบปฏิบัติการทั้งหมดตามเคอร์เนล Linux มีไฟร์วอลล์ในตัวการควบคุมและการกรองการเข้าชมขาเข้าและขาออกตามกฎที่ระบุหรือแพลตฟอร์ม ในการกระจาย CentOS 7 ยูทิลิตี้ iptables ดำเนินการฟังก์ชั่นการโต้ตอบกับไฟร์วอลล์ Netfilter ในตัว บางครั้งผู้ดูแลระบบหรือผู้จัดการเครือข่ายต้องกำหนดค่าการทำงานขององค์ประกอบนี้กำหนดกฎที่เกี่ยวข้อง เป็นส่วนหนึ่งของบทความในปัจจุบันเราต้องการพูดคุยเกี่ยวกับพื้นฐานของการกำหนดค่า iptables ในระบบปฏิบัติการดังกล่าวข้างต้น
กำหนดค่า iptables ใน CentOS 7
เครื่องมือนั้นสามารถเข้าถึงได้ทันทีหลังจากการติดตั้ง CentOS 7 เสร็จสมบูรณ์ แต่จะต้องติดตั้งบริการบางอย่างซึ่งเราจะพูดคุยเกี่ยวกับ ในแพลตฟอร์มภายใต้การพิจารณามีเครื่องมือในตัวอื่นที่ทำหน้าที่ไฟร์วอลล์ที่เรียกว่า Firewalld เพื่อหลีกเลี่ยงความขัดแย้งด้วยการทำงานเพิ่มเติมเราขอแนะนำให้ปิดใช้งานส่วนประกอบนี้ คำแนะนำที่ขยายในหัวข้อนี้อ่านในเนื้อหาอื่นในลิงค์ต่อไปนี้อ่านเพิ่มเติม: ปิดใช้งาน Firewalld ใน CentOS 7
อย่างที่คุณทราบโปรโตคอล IPv4 และ IPv6 สามารถใช้ได้ในระบบ วันนี้เราจะมุ่งเน้นไปที่ตัวอย่าง IPv4 แต่ถ้าคุณต้องการกำหนดค่าสำหรับโปรโตคอลอื่นคุณจะต้องใช้แทนทีมiptablesในการใช้คอนโซลIP6Tables.
การติดตั้ง iptables
ควรให้ความสำคัญกับระบบส่วนประกอบเพิ่มเติมของยูทิลิตี้ภายใต้การพิจารณาในวันนี้ พวกเขาจะช่วยในการตั้งกฎและพารามิเตอร์อื่น ๆ การโหลดจะดำเนินการออกจากที่เก็บอย่างเป็นทางการดังนั้นจึงใช้เวลาไม่นาน
- การดำเนินการเพิ่มเติมทั้งหมดจะทำในคอนโซลแบบคลาสสิกดังนั้นให้ทำงานด้วยวิธีที่สะดวก
- คำสั่ง sudo yum ติดตั้ง iptables-services มีหน้าที่รับผิดชอบในการติดตั้งบริการ ป้อนมันแล้วกดปุ่ม Enter
- ยืนยันบัญชี Superuser โดยการระบุรหัสผ่านจากมัน โปรดทราบว่าเมื่อเคียวรี sudo อักขระที่ป้อนในแถวไม่เคยปรากฏขึ้น
- มันจะถูกเสนอให้เพิ่มหนึ่งแพคเกจไปยังระบบยืนยันการกระทำนี้โดยเลือกรุ่น Y
- เมื่อเสร็จสิ้นการติดตั้งให้ตรวจสอบรุ่นปัจจุบันของเครื่องมือ: Sudo Iptables - Version
- ผลลัพธ์จะปรากฏในสตริงใหม่
ตอนนี้ระบบปฏิบัติการพร้อมให้พร้อมสำหรับการกำหนดค่าไฟร์วอลล์เพิ่มเติมผ่านยูทิลิตี้ iptables เราขอแนะนำให้ทำความคุ้นเคยกับการกำหนดค่าในรายการเริ่มต้นด้วยบริการจัดการ
การหยุดและเปิดใช้บริการ IPTables
จำเป็นต้องมีการจัดการโหมด iptables ในกรณีที่คุณต้องตรวจสอบการกระทำของกฎบางอย่างหรือเพียงรีสตาร์ทส่วนประกอบ สิ่งนี้ทำโดยใช้คำสั่งฝังตัว
- ป้อน Sudo Service Iptables หยุดและคลิกที่ปุ่ม Enter เพื่อหยุดบริการ
- เพื่อยืนยันขั้นตอนนี้ให้ระบุรหัสผ่าน Superuser
- หากกระบวนการสำเร็จสตริงใหม่จะปรากฏขึ้นเพื่อระบุการเปลี่ยนแปลงในไฟล์กำหนดค่า
- การเปิดตัวบริการจะดำเนินการเกือบแบบเดียวกันเพียงเส้นเดียวที่ได้รับ Sudo Service Iptables เริ่มดู
การรีบูตที่คล้ายกันเริ่มต้นหรือหยุดยูทิลิตี้สามารถใช้ได้ตลอดเวลาอย่าลืมเพียงเพื่อส่งคืนค่าย้อนกลับเมื่อต้องการอยู่ในความต้องการ
ดูและลบกฎ
ดังที่ได้กล่าวไว้ก่อนหน้านี้การควบคุมไฟร์วอลล์จะดำเนินการโดยคู่มือหรือการเพิ่มกฎโดยอัตโนมัติ ตัวอย่างเช่นแอปพลิเคชันเพิ่มเติมบางอย่างสามารถเข้าถึงเครื่องมือเปลี่ยนนโยบายบางอย่าง อย่างไรก็ตามการกระทำดังกล่าวส่วนใหญ่ยังคงทำด้วยตนเอง การดูรายการกฎปัจจุบันทั้งหมดสามารถใช้ได้ผ่านคำสั่ง sudo iptables -l
ในผลลัพธ์ที่แสดงจะมีข้อมูลเกี่ยวกับสามโซ่: "อินพุต", "เอาท์พุท" และ "ไปข้างหน้า" - การเข้าชมขาเข้าออกและส่งต่อตามลำดับ
คุณสามารถกำหนดสถานะของโซ่ทั้งหมดได้โดยป้อน sudo iptables -s
หากกฎเห็นไม่พอใจกับคุณพวกเขาเพียงแค่ถูกลบ รายการทั้งหมดจะถูกล้างเช่นนี้: sudo iptables -f หลังจากเปิดใช้งานกฎจะถูกลบอย่างแน่นอนสำหรับทั้งสามโซ่
เมื่อคุณต้องการส่งผลกระทบเฉพาะนโยบายจากโซ่เดียวบางอย่างอาร์กิวเมนต์เพิ่มเติมจะถูกเพิ่มเข้าไปในบรรทัด:
sudo iptables -f อินพุต
sudo iptables -f เอาท์พุท
sudo iptables -f ไปข้างหน้า
การไม่มีกฎทั้งหมดหมายความว่าไม่มีการตั้งค่าการกรองปริมาณการใช้งานในส่วนใด ๆ ต่อไปผู้ดูแลระบบจะระบุพารามิเตอร์ใหม่อย่างอิสระโดยใช้คอนโซลเดียวกันคำสั่งและอาร์กิวเมนต์ต่าง ๆ
รับและวางการจราจรในโซ่
แต่ละห่วงโซ่ถูกกำหนดค่าแยกต่างหากสำหรับการรับหรือบล็อกการรับส่งข้อมูล โดยการตั้งค่าความหมายที่แน่นอนสามารถทำได้เช่นนั้นตัวอย่างการรับส่งข้อมูลที่เข้ามาทั้งหมดจะถูกบล็อก เมื่อต้องการทำเช่นนี้คำสั่งจะต้องเป็น sudo iptables --policy Input Drop ที่อินพุตเป็นชื่อของโซ่และการวางเป็นค่าการปล่อย
พารามิเตอร์เดียวกันทั้งหมดถูกตั้งค่าสำหรับวงจรอื่น ๆ เช่น sudo iptables - การส่งออกเกือบจะลดลง หากคุณต้องการตั้งค่าเพื่อรับปริมาณการใช้งานการเปลี่ยนแปลงการลดลงในการยอมรับและปรากฎว่า Sudo Iptables --Policy Input ยอมรับ
ความละเอียดพอร์ตและล็อค
อย่างที่คุณทราบแอปพลิเคชันเครือข่ายและกระบวนการทั้งหมดทำงานผ่านพอร์ตที่แน่นอน โดยการปิดกั้นหรือแก้ไขที่อยู่ที่แน่นอนคุณสามารถตรวจสอบการเข้าถึงเครือข่ายทั้งหมด ลองวิเคราะห์พอร์ตไปข้างหน้าตัวอย่างเช่น 80 ในเทอร์มินัลมันจะเพียงพอที่จะเข้าสู่ sudo iptables -a อินพุต -p TCP - DPORT 80 -J ยอมรับคำสั่ง -a - การเพิ่มกฎใหม่อินพุต - คำแนะนำของ นิยามโซ่, -p - โปรโตคอลในกรณีนี้ TCP, A - Deport เป็นพอร์ตปลายทาง
คำสั่งเดียวกันทั้งหมดที่ใช้กับพอร์ต 22 ซึ่งใช้โดย SSH Service: Sudo iptables -A อินพุต -P TCP - DVPORT 22 -J ยอมรับ
ในการบล็อกพอร์ตที่ระบุสตริงจะใช้เป็นประเภทเดียวกันอย่างเดียวในตอนท้ายของการเปลี่ยนแปลงการยอมรับที่จะลดลง เป็นผลให้มันปรากฎตัวอย่างเช่น sudo iptables -a อินพุต -p TCP - DROP 2450 -J ลดลง
กฎเหล่านี้ทั้งหมดจะถูกป้อนลงในไฟล์การกำหนดค่าและคุณสามารถดูได้ตลอดเวลา เราเตือนคุณว่ามันทำผ่าน sudo iptables -l หากคุณต้องการอนุญาตให้ที่อยู่ IP ของเครือข่ายกับพอร์ตพร้อมกับพอร์ตสตริงจะถูกแก้ไขเล็กน้อย - หลังจากเพิ่ม TPC -s และที่อยู่เอง Sudo iptables -A การป้อนข้อมูล -p TCP -s 12.12.12.12/32 - DESPORT 22 -J ยอมรับที่ 12.12.12.12/32 เป็นที่อยู่ IP ที่จำเป็น
การปิดกั้นเกิดขึ้นในหลักการเดียวกันโดยการเปลี่ยนค่าของค่าที่ยอมรับในการลดลง จากนั้นก็ปรากฎขึ้นตัวอย่างเช่น Sudo Iptables -A อินพุต -p TCP -s 12.12.12.0/224 - DREP 22 -J DROP
การปิดกั้น ICMP
ICMP (Internet Control Message Protocol) - โปรโตคอลที่รวมอยู่ใน TCP / IP และมีส่วนร่วมในการส่งข้อความแสดงข้อผิดพลาดและสถานการณ์ฉุกเฉินเมื่อทำงานกับปริมาณการใช้งาน ตัวอย่างเช่นเมื่อเซิร์ฟเวอร์ที่ร้องขอไม่พร้อมใช้งานเครื่องมือนี้ให้บริการฟังก์ชั่นบริการ ยูทิลิตี้ Iptables ช่วยให้คุณสามารถปิดกั้นได้ผ่านไฟร์วอลล์และคุณสามารถใช้งานได้โดยใช้ Sudo Iptables -A เอาต์พุต -P ICMP - คำสั่ง DROP TYPE 8 -J มันจะบล็อกคำขอจากคุณและไปยังเซิร์ฟเวอร์ของคุณ
คำขอขาเข้าจะถูกบล็อกแตกต่างกันเล็กน้อย จากนั้นคุณต้องป้อน Sudo iptables -i อินพุต -p ICMP - ICMP-Type 8 -J Drop หลังจากเปิดใช้งานกฎเหล่านี้เซิร์ฟเวอร์จะไม่ตอบสนองต่อการร้องขอ Ping
ป้องกันการกระทำที่ไม่ได้รับอนุญาตบนเซิร์ฟเวอร์
บางครั้งเซิร์ฟเวอร์จะถูกโจมตี DDoS หรือการกระทำที่ไม่ได้รับอนุญาตอื่น ๆ จากผู้บุกรุก การปรับไฟร์วอลล์ที่ถูกต้องจะช่วยให้คุณสามารถป้องกันตัวเองจากการแฮ็คชนิดนี้ ในการเริ่มต้นเราขอแนะนำให้ตั้งค่ากฎดังกล่าว:
- เราเขียนใน iptables -AP อินพุต -p TCP -DPORT 80 -m จำกัด --Limit 20 / นาที - Limit-Burst 100 -J ยอมรับที่ --limit 20 / นาทีเป็นข้อ จำกัด ในความถี่ของผลลัพธ์ที่เป็นบวก . คุณสามารถระบุหน่วยการวัดตัวเองเช่น / วินาที, / นาที, / ชั่วโมง, / วัน - จำนวนลิมิต - ระเบิด - จำกัด จำนวนแพ็คเกจที่ขาดหายไป ค่าทั้งหมดจะแสดงเป็นรายบุคคลตามความต้องการของผู้ดูแลระบบ
- ต่อไปคุณสามารถห้ามการสแกนพอร์ตเปิดเพื่อลบหนึ่งในสาเหตุที่เป็นไปได้ของการแฮ็ค ป้อนคำสั่ง sudo iptables -nllock scan แรก
- จากนั้นระบุ sudo iptables -a บล็อก -p tcp -tcp-flags syn, ack, fin, rst -m จำกัด -limit 1 / s-j return
- คำสั่งที่สามสุดท้ายคือ: sudo iptables - สแกนบล็อก -j ลดลง นิพจน์การสแกนบล็อกในกรณีเหล่านี้ - ชื่อของวงจรที่ใช้
การตั้งค่าที่แสดงในปัจจุบันเป็นพื้นฐานสำหรับการทำงานในเครื่องมือควบคุมของไฟร์วอลล์เท่านั้น ในเอกสารทางการของยูทิลิตี้คุณจะพบคำอธิบายของอาร์กิวเมนต์และตัวเลือกที่มีอยู่ทั้งหมดและคุณสามารถกำหนดค่าไฟร์วอลล์โดยเฉพาะภายใต้คำขอของคุณ เหนือกฎความปลอดภัยมาตรฐานซึ่งส่วนใหญ่มักใช้และในกรณีส่วนใหญ่จำเป็น