Chia Sẽ Kinh Nghiệm Về IT



Tìm Kiếm Với Google
-


Gởi Ðề Tài Mới  Gửi trả lời
 
Công Cụ Xếp Bài
Tuổi 02-02-2010, 11:12 AM   #1
hoctinhoc
Guest
 
Trả Lời: n/a
Cấu hình bảo mật cho mysql
Cấu hình bảo mật cho mysql


1. Yêu cầu bảo mật


Để mysql được bảo mật hơn các bạn cần cấu hình theo các yêu cầu sau:

  • Cơ sở dữ liệu MySQL phải được chạy trong môi trường Chrooted ;
  • Tiến trình(processes) MySQL phải chạy bằng một tài khoản riêng, chuyên dụng (tạo một tải khoản chỉ dùng để chạy mysql)
  • Chỉ cho phép truy cập từ localhost (Disabled tính năng cho phép truy cập cơ sở dữ liệu từ xa)
  • Đặt password phức tạp cho tài khoản quản trị cao nhất của MySQL (Root)
  • Đổi tên tài khoản quản trị Mysql (root)
  • Cấm truy cập Nạt danh (Anonymous access) đến cơ sở dữ liệu (tài khoản nobody) phải bị disabled
  • Xóa tất cả các cơ sở dữ liệu và tables mẩu được tạo bởi Mysql (như test...)
2. Cài đặt MySQL

2.0 Tạo tài khoản để chạy mysql

Mã:
pw groupadd mysql

pw useradd mysql -c "MySQL Server" -d /dev/null -g mysql -s /sbin/nologin

2.1 Cài đặt mysql


Mã:
#cd /usr/local/mysql 
#./configure --prefix=/usr/local/mysql --with-mysqld-user=mysql --with-unix-socket-path=/tmp/mysql.sock --with-mysqld-ldflags=-all-static
#make
#su
#make install
#strip /usr/local/mysql/libexec/mysqld
#scripts/mysql_install_db
#chown -R root  /usr/local/mysql
#chown -R mysql /usr/local/mysql/var
#chgrp -R mysql /usr/local/mysql
2.2 Copy tập tin cấu hình

Mã:
#cp support-files/my-medium.cnf /etc/my.cnf
#chown root:sys /etc/my.cnf
#chmod 644 /etc/my.cnf
2.3 Start Mysql

Mã:
   /usr/local/mysql/bin/mysqld_safe &

2.4 Kiểm tra kết nối đến Mysql


Mã:
  
#/usr/local/mysql/bin/mysql -u root mysql  -> Enter




mysql> show databases;
+----------+
| Database |
+----------+
| mysql    |
| test     |
+----------+
2 rows in set (0.00 sec)

mysql> quit;
2.4 Stop Mysql

Mã:
   /usr/local/mysql/bin/mysqladmin -u root shutdown


3. Chrooting the server

Áp dụng cho hầu hết hệ nên tảng linux, unix..

3.2 Chuẩn bị môi trường chrooted

Mã:
mkdir -p /chroot/mysql/dev
mkdir -p /chroot/mysql/etc
mkdir -p /chroot/mysql/tmp
mkdir -p /chroot/mysql/var/tmp
mkdir -p /chroot/mysql/usr/local/mysql/libexec
mkdir -p /chroot/mysql/usr/local/mysql/share/mysql/english

3.3 Set quyền


Mã:
chown -R root:sys /chroot/mysql
chmod -R 755 /chroot/mysql
chmod 1777 /chroot/mysql/tmp

3.4 Tạo cấu trúc thư mục


Mã:
cp /usr/local/mysql/libexec/mysqld /chroot/mysql/usr/local/mysql/libexec/
cp /usr/local/mysql/share/mysql/english/errmsg.sys /chroot/mysql/usr/local/mysql/share/mysql/english/
cp /etc/hosts /chroot/mysql/etc/
cp /etc/host.conf /chroot/mysql/etc/
cp /etc/resolv.conf /chroot/mysql/etc/
cp /etc/group /chroot/mysql/etc/
cp /etc/master.passwd /chroot/mysql/etc/passwords
cp /etc/my.cnf /chroot/mysql/etc/
3.5 Xóa mật khẩu và nhóm không cần thiết

Mã:
cd /chroot/mysql/etc
pwd_mkdb -d /chroot/mysql/etc passwords
rm -rf /chroot/mysql/etc/master.passwd
3.6 Special considerations


Mã:
/dev/null:   
ls -al /dev/null
 crw-rw-rw-  1 root  sys    2,   2 Jun 21 18:31 /dev/null
mknod /chroot/mysql/dev/null c 2 2
chown root:sys /chroot/mysql/dev/null
chmod 666 /chroot/mysql/dev/null
  cp -R /usr/local/mysql/var/ /chroot/mysql/usr/local/mysql/var
chown     -R mysql:mysql /chroot/mysql/usr/local/mysql/var

3.7 Cấu hình Charset ngôn ngữ


nếu muốn sử dụng thêm một ngôn ngữ khác ngoài tiếng anh thì chúng ta có thể copy charsets thích hợp vào

Mã:
  /usr/local/mysql/share/mysql/charsets .
3.8 Kiểm tra sau khi cấu hình

Mã:
/chroot/mysql mysql /usr/local/mysql/libexec/mysqld &

4 Disable truy cập từ xa (không cho kết nối từ xa vào mysql)

thêm dòng: skip-networking vào trong thẻ [mysqld]

Mã:
   vi /chroot/mysql/etc/my.cnf
 skip-networking
4.2 Cải thiện bảo mật Local

thêm dòng: set-variable=local-infile=0 vào trong thẻ [mysqld]

Mã:
/chroot/mysql/etc/my.cnf: 
  set-variable=local-infile=0
Không cho phép sử dụng: mysqladmin, mysqldump..

Mã:
 [client] section of /etc/my.cnf: 
  socket = /chroot/mysql/tmp/mysql.sock
Khi nào cần sử dụng mysqladmin, mysqldump thì sử dụng lênh sau:

Mã:

--socket=/chroot/mysql/tmp/mysql.sock
4.3 Thay đổi mật khẩu root

Mã:
 chrootuid /chroot/mysql mysql /usr/local/mysql/libexec/mysqld &
 
   /usr/local/mysql/bin/mysql -u root 
 mysql> SET PASSWORD FOR root@localhost=PASSWORD('new_password');

4.4 Xóa người dùng và cở sở dữ liệu mặc đinh


Mã:
 mysql> drop database test;
 mysql> use mysql;
 mysql> delete from db;
 mysql> delete from user where not (host="localhost" and user="root");
 mysql> flush privileges;

4.5 Đổi tên tài khoản root


Mã:
mysql> update user set user="mydbadmin" where user="root";
mysql> flush privileges;


4.6 Xóa history



Cuối cùng chúng ta nên xóa nội dung file: history của mysql (~/.mysql_history), tập tin này chủa tất cả các lệnh mà mysql đã thực thi (Đặt biệt mật khẩu được lưu trữ theo dạng Plain Test trong tập tin này


Mã:
 cat /dev/null > ~/.mysql_history
Vậy là chúng ta đã cấu hình bảo mật cở bản cho Mysql rồi đó,


chúc các bạn năm mới vui vẽ và thành công

Tham khảo:

Securing MySQL: step-by-step

Securing Apache: Step-by-Step

.......................



  Trả lời ngay kèm theo trích dẫn này
Gửi trả lời


Công Cụ
Xếp Bài

Quyền Hạn Của Bạn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Hình Cảm xúc đang Mở
[IMG] đang Mở
Mã HTML đang Tắt




Bây giờ là 06:01 PM. Giờ GMT +7



Diễn đàn tin học QuantriNet
quantrinet.com | quantrimang.co.cc
Founded by Trương Văn Phương | Developed by QuantriNet's members.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.