Professional Documents
Culture Documents
Etch
GreenSQL (hay greensql-fw) là một firewall cho cơ sở dữ liệu MySQL để cản
lọc các cuộc tấn công SQL Injection. Nó làm việc như là một reverse proxy, ví
dụ : nó tiếp nhận các query SQL, kiểm tra chúng, chuyển cho MySQL và trả lại
kết quả từ cơ sở dữ liệu MySQl. Bạn có thể quản lý GreenSQL thông qua giao
diện web trên hệ thống Debian Etch.
1 Lưu ý sơ bộ
Tôi đã thử trên máy chủ Debian Etch đã được cài đặt MySQL. Tôi sẽ sử dụng
virtual host www.example.com với thiết lập document root
/var/www/web1/web để cài đặt giao diện web GreenSQL.
2 Installing greensql-fw
Dự án GreenSQL cung cấp gói binary cho Debian Etch tại
http://www.greensql.net/public/releases/Debian_Etch/ (bạn có thể tìm các gói
cho các bản khác tại http://www.greensql.net/public/releases/). Tải về và cài
đặt bản .deb mới nhất như sau:
cd /tmp
wget http://www.greensql.net/public/releases/Debian_Etch/i386/greensql-
fw_0.9.2_i386.deb
dpkg -i greensql-fw_0.9.2_i386.deb
(Cho hệ thống i386)
Để kiểm tra xem greensql-fw hoạt động hay không, hãy thử connect tới
MySQL thông qua proxy GreenSQL:
mysql -h 127.0.0.1 -P 3305 -u root -p
Điền mật khẩu root của MySQL và bạn sẽ đăng nhập vào để sử dụng greensql-
fw.
Nếu bạn muốn ứng dụng web connect tới MySQL thông qua green-fw, bạn cần
sửa lại vài chỗ trong cấu hình MySQL. Ví dụ, nếu bạn có ứng dụng PHP với
dòng sau trong tập tin cấu hình (e.g. config.php)...
[...]
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
[...]
[...]
$link = mysql_connect('127.0.0.1:3305', 'mysql_user', 'mysql_password');
[...]
(Điều này là quan trọng nếu bạn connect tới 127.0.0.1 thay vì localhost bởi
greensql-fw hỗ trợ TCP nhưng không hỗ trợ Unix sockets!)
Trong config.php hãy chắc chắn rằng bạn đã điền đúng mật khẩu cho tài khoản
green MySQL (tại dòng $db_pass):
# Uncomment the following line to switch to demo version
#$demo_version = 1;
# greensql version
$version = "0.4.0";
# If you run greensql-fw service on the same computer you can specify
# location of it's log file. It will be visible as part of the console.
$log_file = "/var/log/greensql.log";
# Number of lines to show when viewing log file.
$num_log_lines = 200;
?>
Trong giao diện web GreenSQL bạn đã có thể thấy truy vấn MySQL nào bị
chặn và kết quả, bạn có thể thiết lập whitelist cho truy vấn MySQL, chỉ cho
greensql-fw chặn cái gì và cho phép cái gì cho từng database riêng biệt, xem
log hoặc đổi mật khẩu admin cho giao diện web GreenSQL:
Nếu bạn muốn đổi vị trí kiểm tra cho green-fw, hãy sửa tập tin cấu hình của
greensql-fw configuration /etc/greensql/greensql.conf. Sau khi sửa tập tin này
bạn cần khởi động lại green-fw:
/etc/init.d/greensql-fw stop
/etc/init.d/greensql-fw start