|
数据库安全防护几点介绍1 U- m! X4 K1 I9 j2 ]* \
% D3 M" C1 m" W
企业最有价值的资产通常是其数据库中的客户或产品信息。因此,在这些企业中,数据库管理的一个重要部分就是保护这些数据免受外部攻击,及修复软/硬件故障。
5 ~- N/ Z$ w& B& |
1 j2 G6 y l! B' H. U8 Z5 L6 j+ H+ F. h8 K& u5 m
# x- Q# M, o2 s/ |
在大多数情况下,软硬件故障通过数据备份机制来处理。多数数据库都自带有内置的工具自动完成整个过程,所以这方面的工作相对轻松,也不会出错。但麻烦却来自另一面:阻止外来黑客入侵窃取或破坏数据库中的信息。不幸的是,一般没有自动工具解决这一问题;而且,这需要管理员手工设置障碍来阻止黑客,确保公司数据的安全。$ ?+ M5 x0 X+ G5 }
1 ^$ y* V" y! V( D5 l9 \( S. O( d+ c+ @# R$ R' U0 v
& M( _; J4 d o不对数据库进行保护的常见原因是由于这一工作“麻烦”而“复杂”。这确实是事实,但如果你应用MySQL,就可以使用一些方便的功能来显著减少面临的风险。下面列出了以下几个功能:
& B4 Q' g, T7 z3 s* T; Q
7 Z' C7 A0 M1 @' h" ~
' U9 m$ B- C) m1 u$ L: A0 k# b7 ]% |" j$ _9 x
删除授权表中的通配符2 ?* Y# n% V+ u' d5 ~' }) V7 T
+ X3 K. N0 Q& K- z1 N1 f$ s
9 ^" W6 O/ j" J2 F- E; R: Q% L1 g/ m9 w
MySQL访问控制系统通过一系列所谓的授权表运行,从而对数据库、表格或栏目级别的用户访问权利进行定义。但这些表格允许管理员为一名用户设定一揽子许可,或一组应用通配符的表格。这样做会有潜在的危险,因为黑客可能会利用一个受限的账户来访问系统的其他部分。由于这一原因,在设置用户特权时要谨慎,始终保证用户只能访问他们所需的内容。在给个别用户设定超级特权时要尤其小心,因为这种级别允许普通用户修改服务器的基本配置,并访问整个数据库。
% E* u4 V* D _9 n+ c$ Q7 G- F0 s
1 o- U. Q' k9 h L/ X' T4 T' ?" a, `' l
; G1 ]& n3 a6 l5 L5 E9 R; q4 _6 e2 a5 E, [6 N8 z
建议:对每个用户账户应用显示特权命令,以审查授权表,了解应用通配符许可是否恰当。+ r J' i2 a, a- t# Y" K7 G2 f
- a5 B/ t# b' s4 o0 _+ S5 }
7 y: B' n. I f5 ]( a% y7 {
- q9 ]1 B. l( \3 j9 |. Z4 R要求使用安全密码9 a# j5 b$ Z1 A N" g: Z+ u2 h
6 ?/ v6 b/ d# a6 K+ _' E
# c# j% A6 J; f8 ]2 u4 z. I5 Z P
: U( j6 X2 u p" {5 i# T用户账号的安全与用来保护它们的密码密切相关。因此,在安装MySQL时第一件事就应该设置MySQL根账号的密码(默认为空)。修复这一漏洞后,接下来就应要求每个用户账号使用一个密码,且不要使用生日、用户名或字典中的单词这些容易识别的启发式密码。1 Q, M# q& S4 Q+ U- m* u9 s
1 c( p, W- H$ `& T9 |
! V2 R: a1 d# \
s+ j, ?5 `% y4 a% q2 v- |建议:应用MySQL-安全-授权选项避免使用旧的,不大安全的MySQL密码格式。
" i, X) z% d/ s0 @7 u+ [- k2 S% \8 C
7 a8 k& A: ^: m
+ y6 ]' d2 g6 u) o! b检查配置文件许可5 @$ d% {* ?. g" L, `; O9 N
5 A! {' g( L9 n- b3 O! ^5 E2 i) I+ Z' K8 P
. U( a$ m/ i5 |- g5 d+ u) `2 ^一般来说,要使服务器连接更为快速方便,单个用户和服务器管理员必须把他们的用户账号密码存储在单用户MySQL选项文件中。但是,这种密码是以纯文本形式存储在文件中的,很容易就可以查阅。因此,必须保证这样的单用户配置文件不被系统中的其他用户查阅,且将它存储在非公共的位置。理想情况下,你希望单用户配置文件保存在用户的根目录,许可为0600。6 F1 y% q9 o& x* F1 V
U Z1 [% l2 V) _4 w3 g5 T6 j: a7 |
\4 I& x1 W0 Z* s* V' X7 W( u+ W3 V9 K3 k
加密客户与服务器之间数据传送" g: x4 `% u1 ?& Y! ?: n7 E8 P. _; R! h
& Q# z0 d% e. C' m4 g
& S9 i/ x! J- r1 M0 r( K, y, I+ k4 w% ^; W9 A/ c# V
MySQL(及其它)客户与服务器构架的一个重要问题就是通过网络传送数据时的安全问题。如果客户与服务器间的交互以纯文本形式发生,黑客就可能“嗅出”被传送的数据包,从而获得机密信息。你可以通过激活MySQL配置中的SSL,或应用一个OpenSSH这样的安全应用来为传送的数据建立一个安全的加密“通道”,以关闭这一漏洞。以这种形式加密客户与服务器连接可使未授权用户极难查阅往来的数据。- u% q, k, w' @7 _
; _& H( r4 Y, }$ w( S
3 k; z9 {; v! i+ q0 {9 \0 V! Y* z9 x
禁止远程访问
5 u( [4 m6 e4 z) g5 l
& I& a7 H1 V e8 I+ k2 L1 e
4 V9 O9 Q* e) A6 \! M, H
. z- D( I! U; c G& x# e, b如果用户不需要远程访问服务器,你可以迫使所有MySQL连接通过UNIX插槽文件来完成,从而大大减少网络受攻击的风险。这一过程可通过跳过网络选项启动服务器来完成。这样可以阻止TCP/IP网络连接到MySQL上,保证没有用户可以远程连接系统。
4 S7 a$ z6 i6 Y! @/ M
& F4 C" b% E- \% j) c: k- X* @# S1 ^1 i6 \/ H& a
1 b- l' d0 c& _1 n7 ^
建议:可以在MySQL服务器配置中添加捆绑地址127.0.0.1指令来增强这一功能,迫使MySQL捆绑当地机器的IP地址来保证只有同一系统中的用户可以连接到MySQL。
4 f! V6 Z; I0 O% k0 |, e+ X9 Q! K( a% {$ Q% }+ u# I
: a2 h' s% f3 h1 x; G- q& [2 `$ z
% I) n9 X, k5 ^; @6 G
积极监控MySQL访问记录
1 W1 l; Y3 o% q- ~0 ^6 ?+ n
; s9 ?5 X/ t+ z1 v
$ J% o( W* _" g8 r' r2 @
( `: j! j2 f6 yMySQL中带有很多不同的日志文件,它们记录客户连接,查询和服务器错误。其中,最重要的是一般查询日志,它用时间标签记录每名客户的连接和中断时间,并记录客户执行的每个查询。如果你怀疑发生了不寻常的行为,如网络入侵,那么监控这个日志以了解行为的来源是个好方法。+ [ M) Z8 a0 N) @+ l
O. a, F! B: d) F: [3 a- t# W% F; G" ?5 t" Q3 c3 c/ y
- p$ Z% W" k- A% g& G( y: v& W
保护你的MySQL数据库是一个日常工作。因此,即使完成了上述步骤,也还需要你利用更多的时间去了解更多的安全建议,积极监控并更新你的系统安全。
/ ^# j- z6 O1 f4 r4 s8 B5 w
. X) N4 s: F( A
$ q3 v* [% f0 j8 R& U) l
* T0 ]% e; P4 W( l, G4 s& @原文连接:http://www.szw86.com/thread-8236-1-1.html |
|