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

วิธีบล็อกคำขอ 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 ของคุณ คุณควรได้รับข้อความ “คำขอหมดเวลา ” หรือ “ไม่สามารถเข้าถึงโฮสต์ปลายทางได้ ” บนเครื่องระยะไกล