Mở bài
Bảo mật mạng là một trong những vấn đề quan trọng nhất trong việc bảo vệ hệ thống và dữ liệu khỏi các cuộc tấn công mạng. Một trong những công cụ mạnh mẽ nhất để thực hiện bảo mật mạng trên hệ thống Linux làiptables
. Trong bài viết này, chúng ta sẽ khám phá cách sử dụng iptables
để phòng chống các cuộc tấn công DoS/DDoS (Denial of Service/Distributed Denial of Service) cơ bản.
Nội dung chính
1. Giới thiệu về iptables
iptables
là một công cụ trong hệ thống Linux được sử dụng để quản lý bảng điều khiển gói tin mạng trong kernel của hệ thống. Nó cho phép bạn tạo ra các quy tắc (rule) để kiểm soát và điều khiển lưu lượng truy cập vào và ra khỏi máy chủ của bạn[4].
2. Cài đặt và cấu hình iptables
Để sử dụngiptables
, bạn cần biết các lệnh cơ bản để quản lý các rule. Dưới đây là một số lệnh cần thiết:
- Xóa tất cả các rule trong danh sách đã được cấu hình:
sudo iptables -F
- Lưu các rules trong danh sách:
sudo service iptables save
- Thêm một rule mới để chặn truy cập từ một IP bất kỳ:
sudo iptables -A INPUT -s 113.171.18.109 -j DROP
Đây là ví dụ về cách chặn truy cập từ một IP cụ thể. Bạn có thể thay thế 113.171.18.109
bằng bất kỳ địa chỉ IP nào bạn muốn chặn[3].
3. Chặn các cuộc tấn công DoS/DDoS cơ bản
Chặn các request từ một IP
Để chặn các cuộc tấn công DoS/DDoS bằng cách chặn các request từ một IP cụ thể, bạn có thể sử dụng lệnh sau:
sudo iptables -A INPUT -s 113.171.18.109 -j DROP
Giới hạn số lượng kết nối từ một IP
Nếu bạn muốn giới hạn số lượng kết nối từ một IP trong một khoảng thời gian, bạn có thể sử dụng lệnh sau:
iptables -I INPUT 1 -p tcp --dport 80 -m limit --limit 20/minute --limit-burst 70 -j ACCEPT
Lệnh này sẽ thêm vào đầu của INPUT chain một rule có nội dung: Kiểm tra khi một IP cố tình tạo ra đủ 70 kết nối vào cổng 80 (http) tới server thì bắt đầu hạn chế IP đó, chỉ cho phép 20 kết nối trong 1 phút. Những kết nối khác sẽ bị gián đoạn[3].
Sử dụng lựa chọn lưu lượng (traffic selection)
Để chặn các cuộc tấn công dựa trên loại lưu lượng (traffic selection), bạn có thể sử dụng các lựa chọn như -p
(protocol), --dport
(destination port), -s
(source IP), v.v.
Ví dụ, để chặn tất cả các gói tin TCP đến từ IP 113.171.18.109
, bạn có thể sử dụng lệnh sau:
sudo iptables -A INPUT -s 113.171.18.109 -p tcp -j DROP
Quảng cáo
300x250 In-Content Advertisement
4. Tạo một danh sách cấm tự động
Nếu bạn cần chặn nhiều IP một lúc, có thể tạo một danh sách cấm tự động bằng cách sử dụng file cấu hình. Dưới đây là một ví dụ về cách làm việc này:Tạo file cấu hình danh sách cấm (banned_IPs.cfg):
plaintext
122.174.12.228
129.122.10.23
111.154.84.130
Tạo file tự động thêm vào iptables (banned_IPs.sh):
bash
#!/bin/sh
for i in $(< banned_IPs.cfg) ; do iptables -I INPUT -i eth1 -s “$i” -j DROP done
Gán quyền thực thi cho file tự động thêm vào iptables:
bash
chmod +x banned_IPs.sh
Chạy file tự động thêm vào iptables:
bash
./banned_IPs.sh
Bằng cách này, các địa chỉ IP trong file banned_IPs.cfg
sẽ được tự động thêm vào danh sách cấm trong iptables[5].