Nếu đang dùng Server Linux có sử dụng CPanel khi phát hiện ra có DDoS, nếu có thể root ngay lập tức các bác hãy Suppend Site đang bị tấn công và cài Password tạm thời lên sau khi thao tác xong phần cài password cho folder hoặc site bị tấn công thì có thể Unsuppend để tiếp tục theo dõi.
Nếu không phát hiện thì chắc tiêu tùng ah ? Mình nghĩ chúng ta nên phòng hơn tránh . Còn lúc đang bị DoS mình phát hiện và có mặt kịp thời thì tìm cách block hết các IP, trường hợp nguy kịch hoặc muốn giải quyết theo hướng cho trang web ngưng hoạt động tạm thời thì rút dây mạng ,rồi bật điều hoà giải nhiệt server chẳng hạn [lol]. Nhưng mục đích của DoS là làm server quá tải,người truy cập không vào được web nên nếu phải ngừng trang web tức là kẻ tấn công đã thực hiện được mục đích. Hơn nữa việc đặt passwd chỉ hạn chế người truy cập vào trang web chứ không hạn chế được packets gửi đến server , apache vẫn phải làm việc , server vẫn phải chịu tải và sẽ sớm bị hạ gục .
Cách dùng mod_rewrite của apache để redirect qua lại giữa các trang thì liệu đã an toàn ?
Sau đó thì phải lên một cấu hình Firewall phù hợp cho site.
.htaccess
********************************************************
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?tenmienbitancong.com [NC]
RewriteRule \.(php
htmlasp)$ http://sitefirewall.com [NC,R,L]
********************************************************
Trước tiên đây không phải là cấu hình của Firewall mà là của web server.
Với cấu hình mạng trên thì ta sẽ cần đến 2 server ?? Mà theo mình thì chưa hiệu quả bởi vì : server chạy mod_rewrite ở đây là tenmienbitancong.com sẽ chịu tải nhiều khi phải forward packets đến sitefirewall.com và dĩ nhiên khi packets gửi đến sitefirewall.com nó cũng sẽ chịu tải . Nên nhớ nếu thành viên vào được trang web tức là ta cũng sẽ gửi được packet tới đó .Cứ việc DoS thẳng vào , một trong 2 em tiêu là xong chuyện . Mấu chốt ở đây là server vẫn tiếp nhận packets gửi đến , apache vẫn phải làm việc và tiêu tốn tài nguyên .
Trường hợp tenmienbitancong.com và sitefirewall.com cùng một máy chủ thì khỏi cần bàn .
Tóm lại theo mình cách này không hiệu quả mấy, không thể nào ngăn chặn DoS đến 95% .
Các trang web sừng sỏ , nổi tiếng bảo mật cao mà vẫn còn bị hạ gục thì đủ hiểu DoS không đơn giản như vậy.
Cốt lõi vấn đề là làm sao luôn luôn phân biệt và ngăn chặn được packets của kẻ tấn công , giữ cho server luôn đứng vững.Theo mình thì phải sử dụng firewall tốt , đường truyền nhanh, máy móc xịn và hệ thống backup hòan chỉnh . Nếu có điều kiện thì chuẩn bị thêm 1 máy dự phòng trong trường hợp server chính bị hạ gục .
Và mình muốn trao đổi kinh nghiệm với anh em về:
1. Sử dụng Firewall (Packets filter) thế nào cho hiệu quả nhất ?
2. Ngòai ra sử dụng Firewall còn có biện pháp nào khác ?
----------------
Xin nói thêm một chút về .htaccess phần Basic authentication . Để sử dụng được .htaccess thì cần có những thiết lập phù hợp phía admin và phía user
(Đối với web server apache)
1. Phía admin
Các thiết lập của Apache web server được đặt trong file httpd.conf . Muốn cho phép sử dụng .htaccess trong 1 thư mục nào đó ,thường ta sẽ thiếp lập như sau:
< Directory "đường dẫn tới thư mục" >
AllowOverride AuthConfig Limit FileInfo
< /Directory >
Sau đó reload hoặc restart lại Apache là ok .
※Tên file .htaccess được quy định trong httpd.conf và có thể thay đổi . Thông thường người ta để tên mặc định .htaccess .htpasswd và các file này sẽ được ẩn đi .
2. Phía người dùng
Soạn 1 file .htaccess trong thư mục mình muốn đặt passwd , nội dung như sau:
a. Nếu chỉ cho phép 1 user truy cập
AuthType Basic
AuthName "Password Required"
AuthUserFile "đường dẫn đến .htpasswd"
Require user user_name
b. Nếu muốn cả 1 nhóm người có khả năng truy cập
AuthType Basic
AuthName "Password Required"
AuthUserFile "đường dẫn đến .htpasswd"
AuthGroupFile "đường dẫn đến .htgroup"
Require group group_name
※Chú ý:
+ user_name là tên user và group_name là tên group muốn cho phép truy cập .
+ đường dẫn đến file .htpasswd và .htgroup là đường dẫn tuyệt đối .
+ .htpasswd là file chứa thông tin về user và password . Tên file thì tùy bạn đặt .
+ Còn .htgroup thì mang format như sau:
group1: username1 username2 ...
group2: usernameA usernameB
Để tạo password cho .htaccess, có thể dùng 1 tiện ích sẵn có của apache là htpasswd . Nếu không có tiện ích này, bạn có thể tham khảo qua apache.org để biết thêm . Cách tạo:
Tạo mới:
$ htpasswd -c tên_file tên_user
Khi file passwd đã tồn tại, bạn bỏ option -c
$ htpasswd tên_file tên_user
Nếu đang dùng Server Linux có sử dụng CPanel khi phát hiện ra có DDoS, nếu có thể root ngay lập tức các bác hãy Suppend Site đang bị tấn công và cài Password tạm thời lên sau khi thao tác xong phần cài password cho folder hoặc site bị tấn công thì có thể Unsuppend để tiếp tục theo dõi.
Nếu không phát hiện thì chắc tiêu tùng ah ? Mình nghĩ chúng ta nên phòng hơn tránh . Còn lúc đang bị DoS mình phát hiện và có mặt kịp thời thì tìm cách block hết các IP, trường hợp nguy kịch hoặc muốn giải quyết theo hướng cho trang web ngưng hoạt động tạm thời thì rút dây mạng ,rồi bật điều hoà giải nhiệt server chẳng hạn [lol]. Nhưng mục đích của DoS là làm server quá tải,người truy cập không vào được web nên nếu phải ngừng trang web tức là kẻ tấn công đã thực hiện được mục đích. Hơn nữa việc đặt passwd chỉ hạn chế người truy cập vào trang web chứ không hạn chế được packets gửi đến server , apache vẫn phải làm việc , server vẫn phải chịu tải và sẽ sớm bị hạ gục .
Cách dùng mod_rewrite của apache để redirect qua lại giữa các trang thì liệu đã an toàn ?
Sau đó thì phải lên một cấu hình Firewall phù hợp cho site.
.htaccess
********************************************************
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?tenmienbitancong.com [NC]
RewriteRule \.(phphtmlasp)$ http://sitefirewall.com [NC,R,L]
********************************************************
Trước tiên đây không phải là cấu hình của Firewall mà là của web server.
Với cấu hình mạng trên thì ta sẽ cần đến 2 server ?? Mà theo mình thì chưa hiệu quả bởi vì : server chạy mod_rewrite ở đây là tenmienbitancong.com sẽ chịu tải nhiều khi phải forward packets đến sitefirewall.com và dĩ nhiên khi packets gửi đến sitefirewall.com nó cũng sẽ chịu tải . Nên nhớ nếu thành viên vào được trang web tức là ta cũng sẽ gửi được packet tới đó .Cứ việc DoS thẳng vào , một trong 2 em tiêu là xong chuyện . Mấu chốt ở đây là server vẫn tiếp nhận packets gửi đến , apache vẫn phải làm việc và tiêu tốn tài nguyên .
Trường hợp tenmienbitancong.com và sitefirewall.com cùng một máy chủ thì khỏi cần bàn .
Tóm lại theo mình cách này không hiệu quả mấy, không thể nào ngăn chặn DoS đến 95% .
Các trang web sừng sỏ , nổi tiếng bảo mật cao mà vẫn còn bị hạ gục thì đủ hiểu DoS không đơn giản như vậy.
Cốt lõi vấn đề là làm sao luôn luôn phân biệt và ngăn chặn được packets của kẻ tấn công , giữ cho server luôn đứng vững.Theo mình thì phải sử dụng firewall tốt , đường truyền nhanh, máy móc xịn và hệ thống backup hòan chỉnh . Nếu có điều kiện thì chuẩn bị thêm 1 máy dự phòng trong trường hợp server chính bị hạ gục .
Và mình muốn trao đổi kinh nghiệm với anh em về:
1. Sử dụng Firewall (Packets filter) thế nào cho hiệu quả nhất ?
2. Ngòai ra sử dụng Firewall còn có biện pháp nào khác ?
----------------
Xin nói thêm một chút về .htaccess phần Basic authentication . Để sử dụng được .htaccess thì cần có những thiết lập phù hợp phía admin và phía user
(Đối với web server apache)
1. Phía admin
Các thiết lập của Apache web server được đặt trong file httpd.conf . Muốn cho phép sử dụng .htaccess trong 1 thư mục nào đó ,thường ta sẽ thiếp lập như sau:
AllowOverride AuthConfig Limit FileInfo
Sau đó reload hoặc restart lại Apache là ok .
※Tên file .htaccess được quy định trong httpd.conf và có thể thay đổi . Thông thường người ta để tên mặc định .htaccess .htpasswd và các file này sẽ được ẩn đi .
2. Phía người dùng
Soạn 1 file .htaccess trong thư mục mình muốn đặt passwd , nội dung như sau:
a. Nếu chỉ cho phép 1 user truy cập
AuthType Basic
AuthName "Password Required"
AuthUserFile "đường dẫn đến .htpasswd"
Require user user_name
b. Nếu muốn cả 1 nhóm người có khả năng truy cập
AuthType Basic
AuthName "Password Required"
AuthUserFile "đường dẫn đến .htpasswd"
AuthGroupFile "đường dẫn đến .htgroup"
Require group group_name
※Chú ý:
+ user_name là tên user và group_name là tên group muốn cho phép truy cập .
+ đường dẫn đến file .htpasswd và .htgroup là đường dẫn tuyệt đối .
+ .htpasswd là file chứa thông tin về user và password . Tên file thì tùy bạn đặt .
+ Còn .htgroup thì mang format như sau:
group1: username1 username2 ...
group2: usernameA usernameB
Để tạo password cho .htaccess, có thể dùng 1 tiện ích sẵn có của apache là htpasswd . Nếu không có tiện ích này, bạn có thể tham khảo qua apache.org để biết thêm . Cách tạo:
Tạo mới:
$ htpasswd -c tên_file tên_user
Khi file passwd đã tồn tại, bạn bỏ option -c
$ htpasswd tên_file tên_user