วิธีบล็อกคำขอ Ping ICMP ไปยังระบบ Linux
ผู้ดูแลระบบบางรายมักจะบล็อกข้อความ ICMP ไปยังเซิร์ฟเวอร์ของตนเพื่อซ่อนกล่อง Linux ไม่ให้ปรากฏต่อโลกภายนอกบนเครือข่ายที่หยาบกระด้าง หรือเพื่อป้องกัน IP ท่วมท้นและปฏิเสธการโจมตีบริการ
วิธีที่ง่ายที่สุดในการบล็อก คำสั่ง ping บนระบบ Linux คือการเพิ่มกฎ iptables ดังที่แสดงในตัวอย่างด้านล่าง Iptables เป็นส่วนหนึ่งของเคอร์เนล Linux netfilter และโดยปกติแล้วจะได้รับการติดตั้งตามค่าเริ่มต้นในสภาพแวดล้อม Linux ส่วนใหญ่
iptables -A INPUT --proto icmp -j DROP
iptables -L -n -v [List Iptables Rules]
วิธีการทั่วไปอีกวิธีหนึ่งในการบล็อกข้อความ ICMP ในระบบ Linux ของคุณคือการเพิ่มตัวแปรเคอร์เนลด้านล่างที่จะปล่อยแพ็กเก็ต Ping ทั้งหมด
echo “1” > /proc/sys/net/ipv4/icmp_echo_ignore_all
เพื่อให้กฎข้างต้นเป็นแบบถาวร ให้เพิ่มบรรทัดต่อไปนี้ต่อท้ายไฟล์ /etc/sysctl.conf จากนั้นจึงใช้กฎด้วยคำสั่ง sysctl
echo “net.ipv4.icmp_echo_ignore_all = 1” >> /etc/sysctl.conf
sysctl -p
ในการกระจาย Linux ที่ใช้ Debian ซึ่งมาพร้อมกับไฟร์วอลล์แอปพลิเคชัน UFW คุณสามารถบล็อกข้อความ ICMP ได้โดยการเพิ่มกฎต่อไปนี้ลงในไฟล์ /etc/ufw/before.rules ดังภาพประกอบ ในข้อความที่ตัดตอนมาด้านล่าง
-A ufw-before-input -p icmp --icmp-type echo-request -j DROP
รีสตาร์ทไฟร์วอลล์ UFW เพื่อใช้กฎโดยใช้คำสั่งด้านล่าง
ufw disable && ufw enable
ในการกระจาย CentOS หรือ Red Hat Enterprise Linux ที่ใช้อินเทอร์เฟซ Firewalld เพื่อจัดการกฎ iptables ให้เพิ่มกฎด้านล่างไปที่ วางข้อความ ping
firewall-cmd --zone=public --remove-icmp-block={echo-request,echo-reply,timestamp-reply,timestamp-request} --permanent
firewall-cmd --reload
เพื่อทดสอบว่ากฎไฟร์วอลล์ถูกนำไปใช้สำเร็จในทุกกรณีที่กล่าวถึงข้างต้นหรือไม่ ให้ลองส่ง Ping ที่อยู่ IP ของเครื่อง Linux จากระบบระยะไกล ในกรณีที่ข้อความ ICMP ถูกบล็อกไปยังกล่อง Linux ของคุณ คุณควรได้รับข้อความ “คำขอหมดเวลา ” หรือ “ไม่สามารถเข้าถึงโฮสต์ปลายทางได้ ” บนเครื่องระยะไกล