Giáo trình tin học: Firewall chống DDoS cho Forum
Khi vào nó sẽ hiện 1 form đòi nhập user và pass. Nếu ai cancel hay nhập
sai thì log sẽ ghi lại IP đó
Sẽ là lựa chọn tốt cho forum của bạn khi server bị tấn công từ chối dịch
vụ
Cách làm:
Tạo 1 file log.html và chmod 777 và up lên host . File này là nơi để bạn
check [code]xem những IP nào truy cập ko hợp lệ. Nếu muốn thì có thể
Ban IP của nó đề phòng tấn công
Code:
8 trang |
Chia sẻ: tlsuongmuoi | Lượt xem: 2288 | Lượt tải: 0
Bạn đang xem nội dung tài liệu Giáo trình tin học: Firewall chống DDoS cho Forum, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Giáo trình tin học : Firewall chống DDoS cho Forum
Khi vào nó sẽ hiện 1 form đòi nhập user và pass. Nếu ai cancel hay nhập
sai thì log sẽ ghi lại IP đó
Sẽ là lựa chọn tốt cho forum của bạn khi server bị tấn công từ chối dịch
vụ
Cách làm:
Tạo 1 file log.html và chmod 777 và up lên host . File này là nơi để bạn
check [code]xem những IP nào truy cập ko hợp lệ. Nếu muốn thì có thể
Ban IP của nó đề phòng tấn công
Code:
PHP Code:
<?php
////////////-- Firewall --////////////////
/* File : firewall.php */
/* Tac Gia : HCV Team */
/////////////////////////////////////////
if (md5($PHP_AUTH_USER!='e10adc3949ba59abbe56e057f20f883e')
OR md5($PHP_AUTH_PW!='e10adc3949ba59abbe56e057f20f883e')) {
Header('WWW-Authenticate: Basic realm="FireWall Chong FLood"');
Header('HTTP/1.0 401 Unauthorized');
echo "
FireWall
Access denied
FireWall Of HCV Team
".$warnMsg = " IP:
".$_SERVER["REMOTE_ADDR"];
if(isset($PHP_AUTH_USER)){
$warnMsg = " IP: ".$_SERVER["REMOTE_ADDR"];
}
exit;
}
//Ghi lai nhung ip truy cap vao file log.html
$file = "log.html";
$mode = "r+";
if (!file_exists($file))
$mode = "w+";
$fp = fopen ($file, $mode);
fseek($fp, 0, SEEK_END);
fwrite($fp, $ip."");
fclose($fp);
echo 'Se bao IP cua ban cho Admin';
?>
Lưu ý :
Code:
PHP Code:
(md5($PHP_AUTH_USER!='e10adc3949ba59abbe56e057f20f 883e')
PHP Code:
md5($PHP_AUTH_PW!='e10adc3949ba59abbe56e057f20f883 e'))
Ở đây là nơi đặt user và pass ở dạng MD5 vào
Vào file index.php của bạn , chèn thêm dòng này
Code:
PHP Code:
1 cách khác nữa :
Flood hiểu nôm na có nghĩa là tràn ngập - Khi bạn thiết kế một FORM để
nhập dữ liệu, thì bất kỳ ai cũng áo thể view sources để xem cấu trúc
HTML của FORM bạn thiết kế, vì vậy nếu site bạn không chống flood,
hackers có thể dễ dàng flood site bạn, làm DB của bạn có thể bị tràn ngập
và xuất hiện nhiều dữ liệu dư thừa.
Thông thường thì trong khi thiết kế một FORM bất kỳ thì phải thoả mãn
cấu trúc như sau:
Đoạn code trên sử method="post" có nghĩa là phương pháp lấy dữ liệu là
POST, ngoài nó ra bạn còn có thể dùng GET để lấy dữ liệu.
Có thể hiểu nếu method="GET" là dùng nhập dữ liệu ngay trên thanh địa
chỉ, điều này cũng khó kiểm soát dữ liệu vì hackers có thể trực tiếp flood
qua đường này nếu như không chống flood.
Còn nếu method="POST" thì bắt buộc phải được nhập qua 1 FORM nhất
định, hiện tại hầu hết các site điều thiết lập method là POST vì dễ dàng
kiểm tra dữ liệu và nhất là phòng chống SQL injection vì ít có hackers để
ý đến các FORM lắm.
Có rất nhiều phương pháp để chống flood, tôi xin trình bày vài cách để
bạn tham khảo: Sử dụng session, tạo 1 field trong table dùng trong việc
lưu trữ IP của máy đang truy cập (Cách này hơi rắc rối nên tôi không
trình bày ở đây).
Phương pháp chống flood bằng cách sử dụng SESSION:
1. Tạo FORM: Việc tạo một FORM để nhập dữ liệu không khó, nếu
không biết tạo xin hỏi tại box khác vì box này chỉ dành tham khảo về bảo
mật ứng dụng web thôi
2. Tạo 1 file PHP tên là anti_flood.php, với code sau:
Code:
PHP Code:
<?php
session_start();
$timeout = 60;
$session_name = "action_time";
if ( isset($_SESSION["{$session_name}"]) && (
$_SESSION["{$session_name}"] >= time() - $timeout ) )
{
print "Làm ơn đợi {$timeout} giây rồi quay lại kiếm tôi!!";
return false;
}
$_SESSION["{$session_name}"] = time();
?>
Giải thích:
Dòng thứ 3 dùng session_start() để khởi động dữ liệu của session (Phiên
làm việc).
Dòng kế tiếp là để thiết lập thời gian cho một session, mặc định là 60
giây.
Dòng tiếp theo là $session_name, đơn giản chỉ là đặt tên cho session.
Dòng tiếp theo nữa là để kiểm tra thời gian của phiên làm việc trước đó
(nếu trước đó có một session đã thực hiện và session đó phải lớn hơn
hoặc bằng thời gian hiện tại trừ cho thời gian thiết lập cho mổi session).
+ Điều đó có nghĩa là nếu session đã thực hiện trước đó (session thứ 1)
chỉ cách session thứ 2 dưới 60 giây (đây là thời gian do bạn qui định:
$timeout = 60) thì sẽ được xét vào dạng Flood data, và ngược lại thì sẽ
cho qua và xác nhận hợp lệ.
Và dòng cuối cùng là thiết lập thời gian "hiện tại" cho session "hiện tại".
Có 2 cách để sử dụng đoạn code trên:
Cách 1: Load trực tiếp file anti_flood.php, áp dụng cho site có ít FORM
cần chống flood.
Code:
PHP Code:
<?php
require_once("anti_flood.php");
?>
Cách 2: Là copy trực tiếp đoạn code của tôi rồi sửa lại tên session để dễ
phân biệt cho site có nhiều FORM cần chống flood:
Code:
PHP Code:
<?php
require_once("anti_flood.php");
?>
Hướng dẫn backup data trên cpanel hosting
Do có 1 số bạn nhắn tin hỏi về cách backup data trên cpanel nên
PETER gửi bài hướng dẫn chung, dành cho những bạn mới làm
quen với hosting và các chức năng trong cpanel control của host.
Hiện nay đa số các dịch vụ hosting có control là cpanel sử dụng
theme (giao diện) phổ biến là x3 nên PETER chỉ hướng dẫn trên
theme x3 của cpanel với các bước thực hiện được xem là đơn giản
nhất.
Bắt đầu: Sau khi đăng nhập vào cpanel, các bạn vào menu (icon)
Backups. Tại đây các bạn có thể download backup hoặc restore thủ
công Home Directory, MySQL Database, Email Forwarders, Email
Filters. Tuy nhiên cái PETER lưu ý và hướng dẫn là backup Home
Directory vì nó chứa toàn bộ data của tài khoản hosting, hay còn gọi
là Full Backup.
Hướng dẫn Full Backup trên cpanel hosting
Tại trang Backups các bạn click vào Download or Generate a Full
Backup. Tại phần Generate a Full Backup, PETER hướng dẫn 2 tình
huống tạo file backup cơ bản là: Backup Home Directory và Remote
FTP Server.
*Lưu ý: Để tạo file backup thành công thì dung lượng còn trống của
host phải đủ để chứa file backup, nếu không quá trình tạo file backup
sẽ bị hủy bỏ giữa chừng.
1. Backup Home Directory: Là quá trình tạo file backup chứa toàn
bộ dữ liệu của tài khoản hosting và file backup này sẽ nằm ngay trên
host để các bạn có thể download. Để tạo file backup này các bạn chỉ
cần nhập email nhận thông báo sau khi tạo xong file backup (theo
hình minh họa bên dưới) và bấm Generate Backup và chờ quá trình
tạo file backup hoàn tất.
Sau khi file backup được tạo xong sẽ có tên dạng: backup-
11.2.2008_08-30-46_peter.tar.gz nằm ngang hàng với folder
public_htmlCHMOD
trên host (trong phần File Manager/Legacy File Manager). Các bạn
cho file này thành 0644 và move nó vào folder public_html sau đó
download về máy với link dạng:2. Remove FTP Server: Là quá trình
tạo file backup trên host sau đó file này được upload qua 1 tài khoản
hosting khác ở cùng hoặc khác server theo hình thức Remote FTP
Connection bằng user và pass của remote host. Trường hợp này được
dùng tới khi bạn muốn chuyển host hoặc cất giữ data ở host khác
thay vì download về máy của mình.
Để thực hiện backup bằng hình thức Remote FTP Server các bạn
phải có 1 tài khoản hosting khác đủ dung lượng để chứa file backup,
trong trường hợp cần bung nén file backup thì dung lượng còn trống
phải lớn hơn 2.5 lần dung lượng của file backup.
Tại trang Download or Generate a Full Backup, các bạn chọn và
nhập thông tin theo hướng dẫn và hình minh họa bên dưới:
Backup Destination: Chọn Remote FTP Server.
Email Address: Nhập email của bạn.
Remote Server (FTP/SCP only): Nhập IP của remote host.
Remote User (FTP/SCP only): Nhập username đăng nhập vào
FTP của remote host.
Remote Password (FTP/SCP only): Nhập password đăng nhập
vào FTP của remote host.
Port (FTP/SCP only): Để trống nếu bạn chưa rành về FTP
port.
Remote Dir (FTP/SCP only): Để trống nếu bạn chưa rành về
Path/dir.
Click Generate Backup và chờ quá trình tạo file backup và
upload qua remove host hoàn tất.
Hình minh họa:
Chức năng backup còn lại là Remote FTP Server (Passive mode
transfer) và Secure Copy (scp) chỉ thực hiện khi các bạn đã nắm
phần nào kiến thức về Passive mode transfer và Secure Copy (scp)
mới biết dùng nó để làm gì và có tác dụng gì. PETER không giới
thiệu thêm phần này để tránh làm các bạn bị rối.
Trên đây PETER hướng dẫn các bước cơ bản về vấn đề backup dữ
liệu thông dụng dành cho những host có control panel là cpanel.
Chúc các bạn thành công!
Các file đính kèm theo tài liệu này:
- Giáo trình tin học - Firewall chống DDoS cho Forum.pdf