ค้นหาเว็บไซต์

วิธีสำรวจการกำหนดค่าไฟร์วอลล์ Shorewall ใน Linux


ในบทความก่อนหน้าของฉัน เราได้เรียนรู้การติดตั้ง Shorewall การตั้งค่าไฟล์การกำหนดค่า และการกำหนดค่าการส่งต่อพอร์ตผ่าน NAT ในบทความนี้ เราจะเจาะลึกข้อผิดพลาดทั่วไปที่เกี่ยวข้องกับ Shorewall เสนอวิธีแก้ปัญหา และแนะนำตัวเลือกบรรทัดคำสั่ง

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

sudo shorewall check

Shorewall จะพิมพ์การตรวจสอบไฟล์การกำหนดค่าทั้งหมดของคุณ และตัวเลือกที่มีอยู่ภายในไฟล์เหล่านั้น

ผลลัพธ์จะมีลักษณะเช่นนี้

Determining Hosts in Zones...
Locating Actions Files...
Checking /usr/share/shorewall/action.Drop for chain Drop...
Checking /usr/share/shorewall/action.Broadcast for chain Broadcast...
Checking /usr/shrae/shorewall/action.Invalid for chain Invalid...
Checking /usr/share/shorewall/action.NotSyn for chain NotSyn..
Checking /usr/share/shorewall/action.Reject for chain Reject...
Checking /etc/shorewall/policy...
Adding Anti-smurf Rules
Adding rules for DHCP
Checking TCP Flags filtering...
Checking Kernel Route Filtering...
Checking Martian Logging...
Checking Accept Source Routing...
Checking MAC Filtration -- Phase 1...
Checking /etc/shorewall/rules...
Checking /usr/share/shorewall/action.Invalid for chain %Invalid...
Checking MAC Filtration -- Phase 2...
Applying Policies...
Checking /etc/shorewall/routestopped...
Shorewall configuration verified

บรรทัดมหัศจรรย์ที่เรากำลังมองหาคือบรรทัดด้านล่างที่เขียนว่า: “ยืนยันการกำหนดค่า Shorewall แล้ว ” หากคุณได้รับข้อผิดพลาดใดๆ อาจเป็นไปได้มากว่าโมดูลในการกำหนดค่าเคอร์เนลของคุณหายไป

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

ข้อผิดพลาดแรกและที่พบบ่อยที่สุดคือข้อผิดพลาดเกี่ยวกับ NAT

Processing /etc/shorewall/shorewall.conf...
Loading Modules...
Checking /etc/shorewall/zones...
Checking /etc/shorewall/interfaces...
Determining Hosts in Zones...
Locating Actions Files...
Checking /usr/share/shorewall/action.Drop for chain Drop...
Checking /usr/share/shorewall/action.Broadcast for chain Broadcast...
Checking /usr/shrae/shorewall/action.Invalid for chain Invalid...
Checking /usr/share/shorewall/action.NotSyn for chain NotSyn..
Checking /usr/share/shorewall/action.Reject for chain Reject...
Checking /etc/shorewall/policy...
Adding Anti-smurf Rules
Adding rules for DHCP
Checking TCP Flags filtering...
Checking Kernel Route Filtering...
Checking Martian Logging...
Checking Accept Source Routing...
Checking /etc/shorewall/masq...
    ERROR: a non-empty masq file requires NAT in your kernel and iptables /etc/shorewall/masq (line 15)

หากคุณเห็นสิ่งที่คล้ายสิ่งนี้ อาจเป็นไปได้ว่า เคอร์เนล ปัจจุบันของคุณไม่ได้รับการคอมไพล์โดยรองรับ NAT นี่เป็นเรื่องปกติกับเคอร์เนลที่แกะกล่องส่วนใหญ่ โปรดอ่านบทช่วยสอนของฉันเกี่ยวกับ “วิธีคอมไพล์เคอร์เนล Debian ” เพื่อเริ่มต้นใช้งาน

ข้อผิดพลาดทั่วไปอีกประการหนึ่งที่เกิดจากการตรวจสอบคือข้อผิดพลาดเกี่ยวกับ iptables และ การบันทึก

shorewall check
Checking...
Processing /etc/shorewall/params...
Processing /etc/shorewall/shorewall.conf
Loading Modules..
   ERROR: Log level INFO requires LOG Target in your kernel and iptables

นี่เป็นสิ่งที่คุณสามารถคอมไพล์เป็นเคอร์เนลใหม่ได้ แต่จะมีวิธีแก้ไขด่วนหากคุณต้องการใช้ ULOG ULOG เป็นกลไกการบันทึกที่แตกต่างจาก syslog มันค่อนข้างใช้งานง่าย

หากต้องการตั้งค่านี้ คุณต้องเปลี่ยนทุกอินสแตนซ์ของ “ข้อมูล ” เป็น “ULOG ” ในไฟล์การกำหนดค่าทั้งหมดใน /etc/shorewall . คำสั่งต่อไปนี้สามารถทำเพื่อคุณได้

cd /etc/shorewall
sudo sed –i ‘s/info/ULOG/g’ *

หลังจากนั้น ให้แก้ไขไฟล์ /etc/shorewall/shorewall.conf และตั้งค่าบรรทัด

LOGFILE=

ที่คุณต้องการจัดเก็บบันทึกของคุณไปยังที่ใด ของฉันอยู่ใน /var/log/shorewall.log

LOGFILE=/var/log/shorewall.log

การรันคำสั่งต่อไปนี้อีกครั้งจะทำให้คุณมีสุขภาพที่ดี

shorewall check

อินเทอร์เฟซบรรทัดคำสั่งของ Shorewall มาพร้อมกับบรรทัดเดียวที่มีประโยชน์มากมายสำหรับผู้ดูแลระบบ คำสั่งที่ใช้บ่อยอย่างหนึ่ง โดยเฉพาะอย่างยิ่งเมื่อมีการเปลี่ยนแปลงไฟร์วอลล์จำนวนมาก คือการบันทึกสถานะการกำหนดค่าปัจจุบัน เพื่อให้คุณสามารถย้อนกลับได้หากมีปัญหาใดๆ

ไวยากรณ์สำหรับสิ่งนี้เป็นเรื่องง่าย

sudo shorewall save <filename>

การย้อนกลับเป็นเรื่องง่ายเช่นเดียวกัน:

sudo shorewall restore <filename>

Shorewall ยังสามารถเริ่มต้นและกำหนดค่าให้ใช้ไดเร็กทอรีการกำหนดค่าสำรองได้ คุณสามารถระบุได้ว่านี่คือคำสั่งเริ่มต้น แต่คุณจะต้องตรวจสอบก่อน

sudo shorewall check <config-directory>

หากคุณเพียงต้องการลองใช้การกำหนดค่า และหากใช้งานได้ ให้เริ่มต้นใช้งาน คุณสามารถระบุตัวเลือกลองได้

sudo shorewall try <config-directory> [  ]

Shorewall เป็นเพียงหนึ่งในโซลูชั่นไฟร์วอลล์ที่แข็งแกร่งซึ่งมีอยู่บนระบบ Linux ไม่ว่าคุณจะพบว่าตัวเองอยู่ในขอบเขตใดก็ตามของเครือข่าย หลายคนพบว่ามันง่ายและมีประโยชน์

นี่เป็นเพียงการเริ่มต้นเล็กๆ และเป็นจุดเริ่มต้นที่จะช่วยให้คุณก้าวต่อไปได้โดยไม่ต้องยึดติดกับแนวคิดเรื่องเครือข่ายมากนัก และเช่นเคย โปรดค้นคว้าและดู man page และแหล่งข้อมูลอื่นๆ รายชื่ออีเมลของ Shorewall เป็นสถานที่ที่ยอดเยี่ยมและเป็นปัจจุบันและได้รับการดูแลอย่างดี