Cách chống DDoS cho Web Server và bảo mật website hiệu quả

DDos viết tắt của Distributed Denial of Service là tấn công từ chối dịch vụ phân tán và là phiên bản nâng cấp của Dos vì rất khó bị ngăn chặn. Theo một nghiên cứu của Neustar cho thấy: một cuộc tấn công DDoS có thể tiêu tốn tới 250.000 USD mỗi giờ cho 1 tổ chức bị nhắm mục tiêu. Bài viết dưới đây chia sẻ cách phòng chống DDoS và bảo mật cho Web Server của doanh nghiệp.

Chống DDoS Website

1. Chống DDoS bằng htaccess

Cách 1: Hypertext Access hay còn gọi là htaccess là một tập tin dùng để cấu hình máy chủ web apache. Nó được máy chủ chấp nhận như là một thành phần và cho phép chúng ta thực hiện điều hướng và bật các tính năng một cách linh hoạt hoặc bảo vệ một phần (folder) nào đó của trang web. Hôm nay chúng ta sẽ tìm hiểu về cách chống DDoS và bảo mật Server bằng .htaccess
Bước 1 : Tạo 1 file .htaccess trên máy tính của bạn hoặc thông qua Cpanel hosting
Bước 2 : Mở file .htaccess ra bằng trình xoạn thảo bất kỳ
Bước 3 : Thêm nội dung sau vào file .htaccess
• order deny,allow
• allow from210.245.90.203
• deny from all
Chỉ có địa chỉ IP 210.245.90.203 sẽ được cho phép vào thư mục admincp của bạn, ngoài ra những IP khác sẽ không thể truy cập được trừ IP được Allow. Cách này giúp bảo vệ Server khỏi những truy cập trái phép từ các địa chỉ IP lạ, chỉ cho những IP được white list mới được quyền truy cập vào máy chủ gốc.

Cách 2: Chống iframe.

Đây là phương pháp được xem là thô sơ nhất. Kẻ tấn công sẽ mượn 1 website có lượt truy cập lớn nào đó chèn các iframe hướng về website cần đánh rồi cho chạy lệnh refresh (tải lại) nhiều lần hoặc họ viết sẵn 1 tập tin flash với công dụng tương tự rồi đặt lên website và khi người dùng truy cập vào website này thì họ vô tình bất đắc dĩ trở thành người tấn công website kia.

Với hình thức tấn công kiểu như thế này bạn hoàn toàn có thể chống lại bằng cách chèn 1 đoạn mã Javascript chống chèn iframe từ các website khác đến website của bạn.
<script language=”JavaScript”>
if (top.location != self.location)
{top.location = self.location}
</script>

Cách 3: Chống tải lại trang web có ác ý

Một hình thức tấn công khác nữa là dùng phím F5 liên tục có chủ ý, hoặc dùng một phần mềm được lập trình sẵn với công dụng tương tự (tải lại trang web liên tục sau những khoảng thời gian định sẵn) của một nhóm người làm cho trang web của bạn tải lại (reload) liên tục. Việc này có thể làm tốn băng thông của trang web hoặc làm trang web chạy chậm vì những kết nối ảo.
Với cách thức tấn công này thì nếu dùng cách một để chống coi như là vô ích. Nếu bạn bị tấn công như thế này thì bạn hãy thiết lập tập tin .htaccess với nội dung:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?domain.com [NC]
RewriteRule !antiddos.phtml http://www.domain.com/antiddos.phtml?%{REQUEST_URI} [QSA]
Sau đó tạo thêm một một tập tin antiddos.phtml có nội dung:
<?
$text = $HTTP_SERVER_VARS[‘QUERY_STRING’];
$text = preg_replace(“#php\&#si”,’php?’,$text);
echo(‘<center><a href=http://www.domain.com/?’.$text.’>;<font color=red size=5 face=Monotype>[CLICK HERE TO ENTER]</font></a</center>’);
?>
Sau đó bạn upload 2 tập tin này lên thư mục gốc của website. Như vậy là mỗi khi truy cập vào website, nếu lần đầu tiên thì sẽ có thông báo yêu cầu nhấn chuột thì bạn mới vào được website và ở các lần sau sẽ không có và các phần mềm DDOS được lập trình sẽ bị chặn lại ở bước click chuột để vào trang web ở lần truy cập đầu tiên nên việc tải lại trang web chỉ đơn thuần là 1 trang HTML nhỏ không ảnh hưởng nhiều đến hệ thống.

Cách 4: Giới hạn số kết nối website tại một thời điểm

Khi một khách truy cập vào website thì sẽ tạo ra một truy vấn kết nối với cơ sở dữ liệu (CSDL) lấy thông tin và trả về thông qua hiển thị của website. Mỗi máy chủ sẽ có phép bao nhiêu truy vấn kết nối là hạn định và khi vượt quá hạn mức này thì việc truy cập sẽ khó khăn hoặc không thể truy xuất được. Các tin tặc lợi dụng vào điều này để tạo ra các truy cập ảo, kết nối ảo thông qua proxy hay chuyên nghiệp hơn là mạng botnet nhằm đánh sập trang web và phá hỏng CSDL website. Để hạn chế điều này ta có thể chủ động giới hạn số kết nối truy vấn tin (lượt truy cập) cùng một thời điểm.
Bạn thêm dòng đoạn mã sau vào trang chủ của website.

function server_busy($numer) {
if (THIS_IS == ‘WEBSITE’ && PHP_OS == ‘Linux’ and @file_exists ( ‘/proc/loadavg’ ) and $filestuff = @file_get_contents ( ‘/proc/loadavg’ )) {
$loadavg = explode ( ‘ ‘, $filestuff );
if (trim ( $loadavg [0] ) > $numer) {
print ”;
print ‘Lượng truy cập đang quá tải, mời bạn quay lại sau vài phút.’;
exit ( 0 );
}
}
}
$srv = server_busy ( 1000 ); // 1000 là số người truy cập tại 1 thời điểm
Đoạn mã trên có ý nghĩa cho phép 1000 người online trên website tại một thời điểm. Nếu vượt qua số 1000 thì khách truy cập sẽ nhận được thông báo: Lượng truy cập đang quá tải. Mời bạn quay lại sau vài phút.
Chú ý đoạn mã này chỉ áp dụng cho ngôn ngữ lập trình PHP.
Đó chỉ là một số cách chống đỡ mang tính chất giản đơn áp dụng cho những đợt tấn công nhỏ lẻ. Để website của mình hoạt động tốt và có sức chống chọi lại những đợt tấn công quy mô lớn bạn nên:
– Tối ưu hóa website ví dụ bạn có thể xây dựng bộ nhớ đệm (cache) cho website để nhằm giảm số kết nối vào CSDL.
– Lựa chọn nhà cung cấp hosting lưu trữ web tốt để có những đối phó với những đợt tấn công.

Cách 5 . Sử dụng Cloudflare (có trả phí và miễn phí)

Phương án sử dụng miễn phí chỉ phù hợp với quy mô DDoS nhỏ. Quy mô lớn 1 chút là chính Cloudflare sẽ khóa website của Bạn nhằm đảm bảo tài nguyên của Cloudflare.
Bản có trả phí khá tốt, tuy nhiên nó RẤT đắt

Chống DDoS Server

– Sử dụng Firewall mềm trên VPS
Phương án này không khả quan cho lắm. Nó chỉ có thể chống ddos bằng cách chặn IP nếu IP đó gửi quá nhiều request đến VPS. Phương án này bất khả thi nếu Bạn đang thuê Hosting
– Sử dụng Firewall cứng hoặc thiết bị chống DDoS để chống tấn công DDoS (Phương án này là tối ưu nhất)
– Firewall bằng server cài đặt phần mềm chống ddos pfsense. Phần mềm nguồn mở pfsense khá mạnh và chặn được hầu hết các cuộc tấn công quy mô trung bình. Sức mạnh của pfsense phụ thuộc vào sức mạnh của Server (Ram, CPU, SSD, port mạng).
– Sử dụng Firewall cứng chuyên dụng.
– Sử dụng Thiết bị chống DDoS của các hãng như Fortinet, ArBor, Radware.
Cách phòng chống DDOS này là tốt nhất, chống được DDoS quy mô lớn. Nhưng chi phí CỰC KỲ đắt đỏ, ngoài phần cứng, Bạn cần trả thêm cả phí phần mềm đi kèm, thường phần mềm tính phí theo năm.

Chống DDoS cho Server Windows

Tường lửa của Windows cho phép người dùng tạo các quy tắc để kiểm soát lưu lượng vào/ ra. VNETWORK sẽ hướng dẫn bạn quy trình tạo quy tắc trong máy chủ Windows 2012.
1. Nhấp vào Trình quản lý máy chủ (Server Manager) trên Thanh tác vụ (Task Bar).
2. Chuyển đến Trình đơn Công cụ (Tools Menu) và nhấp vào Quản lý Chính sách Nhóm (Group Policy Management).
3. Nhấp vào Tường lửa của Windows (Windows Firewall) với Bảo mật Nâng cao (Advanced Security).
4. Trong trang điều hướng, bạn sẽ thấy một tùy chọn Inbound Rules.
5. Nhấp vào tùy chọn “hành động” (action) để tạo các quy tắc mới.
6. Một hộp thoại sẽ được mở ra chứa các tùy chọn như Chương trình (Program), Cổng (Port), Định sẵn (Predefined) và Tùy chỉnh (Custom).
7. Bạn có thể tạo các quy tắc theo nhu cầu của bạn.
Tuy nhiên, tường lửa bên trong một hệ điều hành chỉ có khả năng ngăn chặn một cuộc tấn công DDoS với cường độ nhỏ. Thông thường các tấn công DDoS trên một máy chủ có mức độ rất lớn vì chúng được tạo nên từ nhiều nguồn tài nguyên mà hacker thu thập được. Do đó, doanh nghiệp nên sử dụng các dịch vụ tường lửa chuyên dụng để bảo mật chuyên sâu.

Chống DDoS Server Linux

Nếu bạn chưa cấu hình chống DDoS trên Server Linux thì khi bị tấn công máy chủ sẽ bị treo dẫn đến rất khó thao tác. Để giảm tỉ lệ thiệt hại đến mức thấp nhất thì doanh nghiệp nên áp dụng cả Firewall mềm lẫn Firewall cứng và các dịch vụ hỗ trợ chống DDoS khác như: Multi CDN hay Cloud WAF.
Bài viết sẽ trình bày về một giải pháp mang tính khẩn cấp tạm thời, dựa vào Iptables để có thể ngăn chặn ngay các cuộc tấn công DDoS vào Server Linux.
Bước 1: Trước tiên stop và tạo các rules mới cho Iptables:
• service apf stop
• iptables –F
Bước 2: Tải về và chạy file script để cấu hình các rules chống lại tấn công DoS/DDoS:
• wget http://duyquang.net/wp-content/uploads/2016/01/antiDDoS.txt
• mvantiDDoS.txtantiDDoS.sh
• chmodu+xantiDDoS.sh
• ./antiDDoS.sh
Điều đó có nghĩa là bạn hoàn toàn có thể soạn lại các nội dung rules trong script để cho phù hợp với thực tế máy chủ của bạn đang gặp phải.
Ngoài ra, bạn có thể dùng các lệnh sau để thống kê các cuộc tấn công, rất hữu ích:
• netstat –antp | grep ESTABLISHED
• netstat–antp|grep–isync
• netstat —help

Chúc các bạn thành công !

Nếu trong quá trình thực hiện xảy ra lỗi hay sự cố gì, các bạn có thể liên hệ bộ phận kỹ thuật để được giúp đỡ. Hiện tại BKHOST có các cách liên hệ như sau:
• Liên hệ qua số tổng đài 024 7303 8088, sau đó ấn phím 2 để gặp BPKT.
• Gửi ticket thông qua trang web id.bkhost.vn.
• Live chat trực tiếp trên trang chủ bkhost.vn.
• Hỗ trợ từ xa thông qua TeamView hoặc Ultraview.

Tags: