centos环境下sqlplus安全设置
在CentOS环境下配置SQL*Plus涉及多个步骤,以确保数据库的安全性。以下是详细的步骤:
1. 安装Oracle客户端
首先,您需要下载并安装Oracle Instant Client。您可以从Oracle官方网站下载适合您操作系统的Instant Client包。例如,对于Oracle 19c,您可以下载以下包:
- oracle-database-ee-19c-1.0-1.x86_64.rpm
- oracle-database-preinstall-19c-1.0-1.el8.x86_64.rpm
然后使用yum安装这些包:
sudo yum localinstall oracle-database-preinstall-19c-1.0-1.el8.x86_64.rpm
sudo yum localinstall oracle-database-ee-19c-1.0-1.x86_64.rpm
2. 配置环境变量
安装完成后,您需要配置环境变量。编辑~/.bashrc
文件(或/root/.bashrc
,如果您以root用户操作),添加以下内容:
export ORACLE_HOME=/opt/oracle/product/19c/dbhome_1
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export PATH=$ORACLE_HOME/bin:$PATH
export TNS_ADMIN=$ORACLE_HOME/network/admin
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export ORACLE_SID=orclcdb
保存文件并运行以下命令使更改生效:
source ~/.bashrc
3. 创建数据库用户和设置权限
使用以下命令创建一个用户并为其分配密码:
sudo useradd -g oinstall -G dba oracle
sudo passwd oracle
按照提示设置密码。接下来,为用户分配适当的权限。例如,要为用户分配创建会话和创建表的权限,使用以下命令:
GRANT CREATE SESSION, CREATE TABLE TO oracle;
刷新权限以使更改生效:
FLUSH PRIVILEGES;
4. 配置SQL*Plus连接文件(可选)
在您的主目录下创建一个名为.sqlplusrc
的文件,用于存储连接信息:
touch ~/.sqlplusrc
使用文本编辑器打开文件,添加以下内容:
DB_SID=orclcdb
DB_PDB=orclpdb1
DB_DOMAIN=your_domain_name
DB_MEMORY=2G
DB_DOMAIN_HOME=/opt/oracle/instantclient_19_8
保存文件并关闭编辑器。现在,您可以使用以下命令连接到数据库:
sqlplus /@your_connection_string
将your_connection_string
替换为您在.sqlplusrc
文件中配置的连接信息。
5. 加强系统访问控制
- 关闭不需要的网络服务:通过查看当前运行的网络服务列表,可以检查是否有不需要的服务在运行,并关闭它们。
- 使用强密码:确保数据库服务器上的所有用户都使用强密码,并定期更改密码。
- 禁止root远程登录:禁止root用户通过SSH远程登录,可以增加系统的安全性。您可以编辑
/etc/ssh/sshd_config
文件,修改PermitRootLogin
选项值为no
。 - 定期备份数据:无论您的数据库服务器有多么安全,意外仍然可能发生。定期备份数据是一种保障数据安全的重要手段。
6. 配置防火墙
在CentOS上,可以使用以下命令来安装iptables:
sudo yum install iptables
安装完成后,您需要配置防火墙以允许数据库服务器的流量通过,并阻止不必要的流量。以下是一些常用的防火墙规则示例:
# 允许SSH访问
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# 允许MySQL访问
sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
# 允许HTTP和HTTPS访问
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# 其他流量全部拒绝
sudo iptables -A INPUT -j DROP
在配置完规则后,您可以使用以下命令启动防火墙:
sudo systemctl enable iptables
sudo systemctl start iptables
7. 使用SSL连接(可选)
要将SQL*Plus配置为使用SSL连接到RDS for Oracle数据库实例,请按照以下步骤操作:
- 将
ORACLE_HOME
环境变量设置为Oracle主目录的位置。 - 将
$ORACLE_HOME/lib
追加到LD_LIBRARY_PATH
环境变量。 - 为
$ORACLE_HOME/ssl_wallet
处的Oracle钱包创建一个目录。 - 下载适用于所有Amazon Web Services区域的证书捆绑
.pem
文件并将此文件放在ssl_wallet目录中。 - 在
$ORACLE_HOME/network/admin
目录中,修改或创建tnsnames.ora
文件并包含SSL相关的条目。 - 在同一目录中,修改或创建
sqlnet.ora
文件并包含以下参数:
WALLET_LOCATION = (SOURCE = (METHOD = FILE) (METHOD_DATA = (DIRECTORY = $ORACLE_HOME/ssl_wallet)))
SSL_CLIENT_AUTHENTICATION = FALSE
SSL_VERSION = 1.0
SSL_CIPHER_SUITES = (SSL_RSA_WITH_AES_256_CBC_SHA)
SSL_SERVER_DN_MATCH = ON
运行下列命令以创建Oracle钱包:
orapki wallet create -wallet $ORACLE_HOME/ssl_wallet -auto_login_only
使用操作系统实用程序将.pem
捆绑文件中的每个证书解压缩到单独的.pem
文件中。使用单独的orapki命令将每个证书添加到Wallet中。
通过以上步骤,您可以在CentOS上成功配置SQL*Plus并连接到Oracle数据库,同时确保数据库的安全性。