Cách ngăn ngừa DDoS SYN Floods

Tác giả NetworkEngineer, T.Năm 21, 2020, 10:13:47 SÁNG

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 1 Khách đang xem chủ đề.

Cách ngăn ngừa DDoS SYN Floods


1. Giới thiệu.

Tấn công từ chối dịch vụ (DDoS) thông qua SYN Floods có thể rất khó khăn đối với các máy chủ không được cấu hình tốt để xử lý chúng. Các chính sách lọc tường lửa phù hợp chắc chắn thường là tuyến phòng thủ đầu tiên, tuy nhiên Linux Kernel cũng có thể được tăng cường chống lại các loại tấn công này. Kiểu làm cứng này rất hữu ích đối với kiểu tấn công SYN Floods cố gắng làm quá tải một dịch vụ cụ thể như https với các yêu cầu trái ngược với dịch vụ, có ý định làm bão hòa kết nối mạng của máy chủ.


1. Định nghĩa về SYN Floods.

Các kết nối TCP được thiết lập bằng cách bắt tay 3 chiều. Những kẻ tấn công mong muốn bắt đầu một trận SYN Floods sẽ giả mạo địa chỉ IP của chúng trong header của gói SYN được gửi đến máy chủ, để khi máy chủ phản hồi với gói SYN-ACK, nó sẽ không bao giờ đến đích, từ đó ACK sẽ được gửi và kết nối được thiết lập. Máy chủ để lại các kết nối chưa được thiết lập này trong một hàng đợi trong một khoảng thời gian xác định trước mà sau đó chúng chỉ bị loại bỏ. Tuy nhiên, nếu đủ các kết nối này, các kết nối giả mạo trong hàng đợi có thể ngăn chặn các yêu cầu hợp pháp mới được xử lý. Linux có một hàng đợi tồn đọng tương đối nhỏ theo mặc định và giữ các yêu cầu đang mở trong hàng đợi tối đa 3 phút. Do đó, nhu cầu điều chỉnh Linux Kernel xử lý các yêu cầu này được đặt ra.

2. Bảo vệ máy chủ của bạn.

Trước tiên, chúng ta sẽ đặt các biến sẽ được kích hoạt ngay lập tức.

Mã nguồn [Chọn]
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
echo 2048 > /proc/sys/net/ipv4/tcp_max_syn_backlog
echo 3 > /proc/sys/net/ipv4/tcp_synack_retries

Điều này sẽ cấu hình Kernel sử dụng cơ chế Cookie SYN, sử dụng kích thước hàng đợi tồn đọng của 2048 kết nối và lượng thời gian để giữ các kết nối đang mở trong hàng đợi 3 tương đương với khoảng 45 giây.

3. Lưu những thay đổi tồn tại mãi mãi.

Để thực hiện những thay đổi này liên tục trong các lần khởi động lại tiếp theo, chúng ta cần nói với hệ thống sysctl về các tham số được sửa đổi này. Chúng ta sẽ sử dụng tập tin /etc/sysctl.conf để làm như vậy. Chúng ta sẽ thêm các dòng sau vào dưới cùng của tập tin.
Mã nguồn [Chọn]
# TCP SYN Flood Protection
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 2048
net.ipv4.tcp_synack_retries = 3

Những thay đổi này sẽ là vĩnh viễn và hy vọng sẽ giúp các bạn giảm thiểu được các cuộc tấn công từ chối dịch vụ DDos thông thường nhất và hiệu quá nhất.
Nếu các bạn có ý kiến gì hay hơn hoặc kinh nghiệm với chủ để này thì hãy đừng quên chia sẻ với mọi người qua bình luận bên dưới.