Chống DDos linux

Một số lệnh cơ bản kiểm tra server khi bị DDoS

Tấn công từ chối dịch vụ phân tán (DDoS – Distributed Denial Of Service) là kiểu tấn công làm cho hệ thống máy tính hay hệ thống mạng quá tải, không thể cung cấp dịch vụ hoặc phải dừng hoạt động. Trong các cuộc tấn công DDoS, máy chủ dịch vụ sẽ bị “ngập” bởi hàng loạt các lệnh truy cập từ lượng kết nối khổng lồ.
Khi số lệnh truy cập quá lớn, máy chủ sẽ quá tải và không còn khả năng xử lý các yêu cầu. Hậu quả là người dùng không thể truy cập vào các dịch vụ trên các trang web bị tấn công DDoS.
Mình xin chia sẻ lại bài của BKNS, giới thiệu một số lệnh cơ bản để kiểm tra server trong trường hợp này.
– Đếm lượng connection vào Port 80:
netstat -n | grep :80 |wc -l
– Kiểm tra số lượng connection đang ở trạng thái SYN_RECV:
netstat -n | grep :80 | grep SYN_RECV|wc -l
– Hiển thị tất cả các IP đang kết nối và số lượng kết nối từ mỗi IP:
netstat -an|grep :80 |awk '{print $5}'|cut -d":" -f1|sort|uniq -c|sort -rn
– Nếu muốn kiểm tra IP nào mở nhiều SYN thì thêm vào:
netstat -an|grep :80|grep SYN |awk '{print $5}'|cut -d":" -f1|sort|uniq -c|sort -rn
– Đối với server có nhiều IP, để kiểm tra IP nào đang bị tấn công:
netstat -plan | grep :80 | awk '{print $4}'| cut -d: -f1 |sort |uniq -c
– Hiển thị tất cả các IP đang kết nối và số lượng kết nối từ mỗi IP:
netstat -an | grep ':80' | awk '{print $5}' | sed s/'::ffff:'// | cut -d":" -f1 | sort | uniq -c
– Hiển thị số lượng kết nối mỗi loại
netstat -an | grep :80 | awk '{print $6}' | sort | uniq -c
61 ESTABLISHED
 13 FIN_WAIT1
 17 FIN_WAIT2
 1 LISTEN
 25 SYN_RECV
 298 TIME_WAIT
– Hiển thị tất cả các IP đang kết nối và số lượng kết nối từ mỗi IP
watch "netstat -an | grep ':80' | awk '{print \$5}' | sed s/'::ffff:'// | cut -d\":\" -f1 | sort | uniq -c"
watch "netstat -an | grep :80 | awk '{print \$6}' | sort | uniq -c"
Khi đã phát hiện IP có dấu hiệu bất thường, bạn có thể sử dụng CSF để block IP đó lại.
Bạn dùng luôn lệnh này để block ip:
iptables -A INPUT -s 1.2.3.4 -j DROP
                       -------------------------------------------------------------------------------------------

Tăng cường bảo mật TCP/IP Stack chống lại SYN Attack trên Linux

Vì vậy để hạn chế mức độ ảnh hưởng của SYN Flood, chúng ta sẽ điều chỉnh các thông số bảo vệ của hệ điều hành gồm:
* Tăng kích thước của backlog-queue để có thể xử lý nhiều yêu cầu kết nối hơn.
* Giảm tối thiểu thời gian "các kết nối chờ xử lý" trong backlog-quee mà đã chiếm dụng bộ nhớ do OS cấp phát.

3. Trong Linux bạn sử dụng các lệnh sau

* Bật cơ chế SYN cookies
# echo 1 > /proc/sys/net/ipv4/tcp_syncookies

* Tăng kích thước backlog-queue lên 2048
# sysctl -w net.ipv4.tcp_max_syn_backlog="2048"

* Giảm thời gian xử lý yêu cầu kết nối xuống 45s, 21s, 9s
# sysctl -w net.ipv4.tcp_synack_retries=9
# sysctl -w net.ipv4.tcp_syn_retries=9

Nhận xét

Bài đăng phổ biến từ blog này

Code chống iframe

Code đặt mật khẩu cho file PHP

Hướng dẫn cài đặt và cấu hình PHP Zend OPcache trên CentOS