วิธีการเปิดใช้งานไฟร์วอลล์ ufw เพื่อให้ตอบสนองต่อ icmp?


21

ฉันมีชุดของเซิร์ฟเวอร์ Ubuntu 10.04 และแต่ละตัวมีการเปิดใช้งานไฟร์วอลล์ ufw ฉันอนุญาตพอร์ต 22 (สำหรับ SSH) และ 80 (ถ้าเป็นเว็บเซิร์ฟเวอร์) คำถามของฉันคือฉันพยายามเปิดใช้งานการตอบสนองต่อ icmp echo (ตอบกลับ ping)

ฟังก์ชั่น ICMP แตกต่างจากโปรโตคอลอื่น ๆ - ฉันรู้ว่ามันต่ำกว่าระดับ IP ในแง่เทคนิค คุณสามารถพิมพ์sudo ufw allow 22ได้ แต่ไม่สามารถพิมพ์ได้sudo ufw allow icmp

คำตอบ:


17

ufw ไม่อนุญาตให้ระบุกฎ icmp ผ่านคำสั่งบรรทัดคำสั่งอินเตอร์เฟส มันช่วยให้คุณสามารถปรับ ruleset ของคุณผ่านไฟล์กฎซึ่งเป็นไฟล์สไตล์ iptables-restore

ufw อนุญาตการรับส่งข้อมูล icmp ที่แน่นอนโดยค่าเริ่มต้นรวมถึงการตอบกลับ icmp echo และสิ่งนี้ได้รับการกำหนดค่าโดยค่าเริ่มต้นใน/etc/ufw/before.rules:

-A ufw-before-input -p icmp --icmp-type echo-request -j ACCEPT

หากโฮสต์ของคุณไม่ตอบสนองต่อการ ping ให้ดูในไฟล์นี้เพื่อให้แน่ใจว่ามีบรรทัดข้างต้นอยู่และหากไม่ได้ผลให้ดูที่โฮสต์ที่ส่ง Ping และไฟร์วอลล์ใด ๆ ระหว่างพวกเขา


3
ใช้งานไม่ได้สำหรับฉัน: เซิร์ฟเวอร์ 11.04 ฉันจะแก้ไขปัญหานี้ได้อย่างไร
pylover

มันต้องการการรีเซ็ตหรืออะไรแบบนั้นเหรอ?
Amir Karimi

1
@AmirKarimi sudo ufw reload(และอนุญาตการร้องขอ ping ฉันมีการเพิ่ม-A ufw-before-output -p icmp --icmp-type echo-request -j ACCEPTใน/etc/ufw/before.rules)
baptx

2

สำหรับ Ubuntu 18.04 คุณควรมีกฎต่อไปนี้ในไฟล์/etc/ufw/before.rulesของคุณ:

# ok icmp codes for INPUT
-A ufw-before-input -p icmp --icmp-type destination-unreachable -j ACCEPT
-A ufw-before-input -p icmp --icmp-type source-quench           -j ACCEPT
-A ufw-before-input -p icmp --icmp-type time-exceeded           -j ACCEPT
-A ufw-before-input -p icmp --icmp-type parameter-problem       -j ACCEPT
-A ufw-before-input -p icmp --icmp-type echo-request            -j ACCEPT

# ok icmp code for FORWARD
-A ufw-before-forward -p icmp --icmp-type destination-unreachable -j ACCEPT
-A ufw-before-forward -p icmp --icmp-type source-quench           -j ACCEPT
-A ufw-before-forward -p icmp --icmp-type time-exceeded           -j ACCEPT
-A ufw-before-forward -p icmp --icmp-type parameter-problem       -j ACCEPT
-A ufw-before-forward -p icmp --icmp-type echo-request            -j ACCEPT

สิ่งเหล่านี้อยู่ในไฟล์เริ่มต้นของฉัน

แน่นอนว่าต้องเป็นปัญหาจริงๆ ปัญหาของฉันคือคอมพิวเตอร์ของฉันบล็อก pings ไม่ให้ออกไปยังเครือข่ายที่มีเซิร์ฟเวอร์ที่ฉันพยายาม ping อยู่ ฉันลงเอยด้วยการใช้เว็บไซต์ที่มีอยู่แล้วบนอินเทอร์เน็ตเพื่อทำการ ping ให้ฉัน (เช่นhttps://ping.eu/ping/ )



0

เพิ่มสิ่งต่อไปนี้ในไฟล์ /etc/ufw/before.rules:

# allow outbound icmp
-A ufw-before-output -p icmp -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
-A ufw-before-output -p icmp -m state --state ESTABLISHED,RELATED -j ACCEPT

หลังจากแก้ไขไฟล์แล้วให้รันคำสั่ง:

sudo ufw reload
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.