Hướng dẫn chặn PING trên Linux | PING – Packet InterNet Gopher, là một tiện ích quản trị mạng máy tính được sử dụng để kiểm tra khả năng kết nối của máy chủ trên giao thức Internet (IP) và dùng để đo thời gian gói tin được gửi từ máy chủ đến máy đích và quay trở về. Việc chặn PING trên server/VPS khá hữu ích trong trường hợp máy chủ của bạn bị kiểu tấn công DDOS sử dụng tính năng PING (Flood ICMP).
Trước khi đọc bài hướng dẫn này, mình cần lưu ý các bạn về phần firewall của Linux. Trên Linux có rất nhiều dịch vụ firewall như : shorewall, csf, firewalld,.. nhưng nhìn chung tất cả sẽ tương tác qua ‘iptables‘ -> core module kernel ‘netfilter‘. Vì vậy ta sẽ sử dụng công cụ chính là ‘iptables‘ để cấu hình trực tiếp các rule chặn giao thức ICMP (hoạt động PING) trên Linux.
Iptables là một hệ thống tường lửa dựa vào thiết lập rule, thường được cài sẵn trên hệ điều hành Unix/Linux và chúng có nhiệm vụ kiểm soát gói tin vào ra. Mặc định iptables sẽ không có bất cứ rule nào được thiết lặp sẵn, chúng ta có thể tạo, thêm, sửa các rule. Trong bài viết này, CuongQuach.com sẽ hướng dẫn các bước để làm sao có thể cho phép/chặn gói tin ICMP (thao tác PING) theo cả chiều IN và OUT của hệ thống Linux.
Các bạn cần nắm được thông tin sau :
– ICMP echo messenger (type 0 và type 8)
– ICMP messenger khác
Các kiến thức về PING hay giao thức ICMP có thể xem tại bài viết này: PING là gì ? ICMP là gì?
Có thể bạn quan tâm chủ đề khác
– Guacamole là gì ? Tìm hiểu dịch vụ Remote Desktop Gateway – Guacamole
– Giám sát log server Linux thời gian thực với công cụ Log.io
– Top chứng chỉ Linux quốc tế mà Quản trị viên nên có
– NTP Server là gì ? Tổng quan dịch vụ NTP
Contents
1. Những option iptables hỗ trợ
Do chúng ta sẽ sử dụng chương trình công cụ firewall ‘iptables‘ để thiết lập các rule tường lửa. Vì vậy bạn cần lưu ý cơ bản 1 số option sau của nó. Sau này sẽ có một bài viết chi tiết về sử dụng ‘iptables‘ sau.
- -A : Thêm Rule vào phía dưới bảng rule iptables
- -D : Xóa rule ra
- -p : Chỉ định giao thức (ở đây mình sẽ sử dụng giao thức “icmp”)
- –icmp-type : Loại chỉ định của giao thức ICMP.
- -J : Chỉ định đến mục tiêu
2. Chặn PING đến máy chủ của bạn với một thông báo lỗi
Bạn có thể chặn PING đến máy chủ Linux của bạn với một thông báo lỗi “Destination Port Unreachable”.
# iptables -A INPUT -p icmp --icmp-type echo-request -j REJECT
Kiểm tra:
# iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED ACCEPT all -- anywhere anywhere ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh REJECT icmp -- anywhere anywhere icmp echo-request reject-with icmp-port-unreachable Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination
Kết quả ping thử :
[c:\~]$ ping 192.168.1.69 Pinging 192.168.1.69 with 32 bytes of data: Reply from 192.168.1.69: Destination port unreachable. Reply from 192.168.1.69: Destination port unreachable. Reply from 192.168.1.69: Destination port unreachable. Reply from 192.168.1.69: Destination port unreachable. Ping statistics for 192.168.1.69: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
3. Để chặn PING mà không cần thông báo lỗi nào
Bạn sử dụng DROP là option cho hành động xử lý packet ‘Jump To Target‘.
# iptables -A INPUT -p icmp --icmp-type echo-request -j DROP # iptables -A OUTPUT -p icmp --icmp-type echo-reply -j DROP
Kiểm tra:
# iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination DROP icmp -- anywhere anywhere icmp echo-request Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination DROP icmp -- anywhere anywhere icmp echo-reply
Kết quả ping thử :
[c:\~]$ ping 192.168.1.69 Pinging 192.168.1.69 with 32 bytes of data: Request timed out. Request timed out. Request timed out. Request timed out. Ping statistics for 192.168.1.69: Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),
4. Cho phép PING từ OUTSIDE đến INSIDE
# iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT # iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT
5. Chặn PING từ chính máy chủ của bạn
# iptables -A OUTPUT -p icmp --icmp-type echo-request -j DROP
Kết quả ping thử:
# ping google.com PING google.com (172.217.161.142) 56(84) bytes of data. ping: sendmsg: Operation not permitted ping: sendmsg: Operation not permitted ping: sendmsg: Operation not permitted ping: sendmsg: Operation not permitted ping: sendmsg: Operation not permitted ^C --- google.com ping statistics --- 5 packets transmitted, 0 received, 100% packet loss, time 4855ms
6 .Cho phép PING từ INSIDE đến OUTSIDE
# iptables -A OUTPUT -p icmp --icmp-type echo-request -j ACCEPT # iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT
7. Chặn ping từ cấu hình kernel
Ngoài cách Allow/Deny PING bằng iptables ra, các bạn cũng có thể chặn PING bằng cách cấu hình tinh chỉnh Kernel như sau:
+ Deny PING:
# echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
Ngược lại Allow PING:
# echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all
Tổng kết
Như vậy thông qua bài hướng dẫn này, CuongQuach đã hướng dẫn các bạn 2 cách để chặn PING trên Linux đó là sử dụng chương trình iptables và Kernel setting. Hy vọng bài viết sẽ giúp ích các bạn trong việc ngăn chặn mục đích tấn công DOS Flood PING hoặc không muốn người khác ping được máy chủ Linux của bạn. Cám ơn các bạn đã theo dõi.
Nguồn: https://cuongquach.com/