安全性保障
Kerberos 和活动目录(Active Directory)加密认证
SQL Relay支持Kerberos加密和认证。
当启用Kerberos和Active Directory加密认证后:
- SQL Relay客户端和服务器之间的全部通信都会加密
- 通过了认证用户才可以访问SQL Relay
Kerberos应用于Linux,Unix系统,活动目录域用于Windows系统。
下面的实例启用了Kerberos认证和加密:
<?xml version="1.0"?>
<instances>
<instance id="example" krb="yes" krbservice="sqlrelay" krbkeytab="/usr/local/firstworks/etc/sqlrelay.keytab">
<auths>
<auth module="krb_userlist">
<user user="dmuse@KRB.FIRSTWORKS.COM"/>
<user user="kmuse@KRB.FIRSTWORKS.COM"/>
<user user="imuse@KRB.FIRSTWORKS.COM"/>
<user user="smuse@KRB.FIRSTWORKS.COM"/>
<user user="FIRSTWORKS.COM\dmuse"/>
<user user="FIRSTWORKS.COM\kmuse"/>
<user user="FIRSTWORKS.COM\imuse"/>
<user user="FIRSTWORKS.COM\smuse"/>
</auth>
</auths>
<connections>
<connection string="user=scott;password=tiger;oracle_sid=orcl"/>
</connections>
</instance>
</instances>
krb参数是Kerberos加密认证的使能标记。
krbservice参数默认为sqlrelay,指明使用哪个Kerberos服务。
krbkeytab参数指明keytab文件的位置。
krb_userlist包含一系列已认证的用户,Linux上格式为user@REALM,Windows上格式为REALM\user。
启动方法:
sqlr-start -id example
连接方法:
sqlrsh -host sqlrserver -krb //Linux
sqlrsh -host sqlrserver -krb -krbservice sqlrelay/sqlrserver.firstworks.com@AD.FIRSTWORKS.COM
//Windows 需要指明krbserveice参数
TLS/SSL加密认证
SQL Relay支持TLS/SSL加密认证。
当启用TLS/SSL加密认证后:
- SQL Relay客户端和服务器之间的全部通信都会加密
- SQL Relay客户端和服务器会随机的验证对方的证书和身份
当启用TLS/SSL加密认证时,SQL Relay服务器至少会提供一个证书,在高安全级别的情况下,这个证书需要来自一个可信的证书认证中心。Linux和Unix支持多种证书格式,但Windows只支持.pfx格式。
实例:
<?xml version="1.0"?>
<instances>
<instance id="example"
tls="yes"
tlscert="/usr/local/firstworks/etc/sqlrserver.pem"
tlsvalidate="yes"
tlsca="/usr/local/firstworks/etc/sqlrca.pem">
<auths>
<auth module="tls_userlist">
<user user="sqlrclient1.firstworks.com"/>
<user user="sqlrclient2.firstworks.com"/>
<user user="sqlrclient3.firstworks.com"/>
<user user="sqlrclient4.firstworks.com"/>
</auth>
</auths>
<connections>
<connection string="user=scott;password=tiger;oracle_sid=orcl"/>
</connections>
</instance>
</instances>
tls参数是TLS/SSL加密的使能标记
tlscert参数指明使用的证书
tlsvalidate参数用于启用对客户端证书的认证(可信认证签署,系统已知或由tlsca提供)
tlsca参数指定证书认证
tls_userlist参数列出通过认证的用户
启动方法:
sqlr-start -id example
连接方法:
sqlrsh -host sqlrserver -tls -tlsvalidate no -tlscert /usr/local/firstworks/etc/sqlrclient.pem
下列命令开启了交互认证(即C-S相互认证)
sqlrsh -host sqlrserver.firstworks.com -tls -tlscert /usr/local/firstworks/etc/sqlrclient.pem -tlsvalidate ca+host -tlsca /usr/local/firstworks/etc/sqlrca.pem