lsnrctl如何提升Ubuntu系统安全性
导读:1. 限制lsnrctl工具的执行权限 通过操作系统层面的权限控制,确保只有授权用户(如oracle数据库管理员)能执行lsnrctl命令。具体操作包括: 修改文件所有权:将lsnrctl文件的所有权归属为root用户和root组,避免非...
1. 限制lsnrctl工具的执行权限
通过操作系统层面的权限控制,确保只有授权用户(如oracle数据库管理员)能执行lsnrctl命令。具体操作包括:
- 修改文件所有权:将
lsnrctl文件的所有权归属为root用户和root组,避免非特权用户篡改。sudo chown root:root /path/to/lsnrctl - 设置严格文件权限:将
lsnrctl的权限设为700(仅所有者可读、写、执行)或750(所有者完全控制,组用户可读/执行),防止未授权访问。sudo chmod 700 /path/to/lsnrctl - 通过sudoers文件授权:若需允许特定用户(如
oracle)以root身份运行lsnrctl,可使用visudo编辑/etc/sudoers文件,添加如下规则(避免直接赋予root密码):
此配置确保oracle ALL=(root) NOPASSWD: /path/to/lsnrctloracle用户可通过sudo lsnrctl安全执行命令。
2. 强化监听器配置的安全参数
通过修改listener.ora文件(通常位于$ORACLE_HOME/network/admin目录),添加以下关键安全设置:
- 设置监听器密码:为监听器配置强密码,防止未经授权的修改或重启操作。
lsnrctl set password StrongPassword123! - 启用ADMIN_RESTRICTIONS:禁止在监听器运行时动态修改其配置(如添加地址、修改端口),必须停止监听器(
lsnrctl stop)并将该参数置为OFF才能调整,降低配置被篡改的风险。ADMIN_RESTRICTIONS_LISTENER = ON - 限制访问IP地址:通过
listener.ora中的ADDRESS参数,仅允许特定IP地址(如数据库服务器本地IP、信任的业务服务器IP)访问监听器端口(默认1521)。
保存配置后,需重启监听器(LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521)) # 仅允许192.168.1.100访问 ) )lsnrctl restart)使更改生效。
3. 启用SSL/TLS加密通信
为防止监听器与客户端之间的数据(如用户名、密码、SQL语句)被窃听或篡改,需配置SSL加密:
- 生成SSL证书与密钥:使用
openssl生成自签名证书(有效期365天),包含私钥(key.pem)和公钥(cert.pem)。openssl req -newkey rsa:2048 -nodes -keyout key.pem -x509 -days 365 -out cert.pem - 配置listener.ora支持SSL:添加
TCPS协议地址(默认端口1522)及加密参数,要求客户端必须使用加密连接。LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = your_host)(PORT = 1521)) # 普通TCP端口(可选保留) (ADDRESS = (PROTOCOL = TCPS)(HOST = your_host)(PORT = 1522)) # SSL加密端口 ) ) SECURITY_LISTENER = (ENCRYPTION_CLIENT = REQUIRED) # 强制客户端加密 (ENCRYPTION_TYPES_CLIENT = (AES256, AES192, AES128)) # 指定加密算法 (SSL_VERSION = 1.2) # 使用TLS 1.2及以上版本 (SSL_CIPHER_SUITES = (TLS_AES_256_GCM_SHA384, TLS_AES_128_GCM_SHA256)) # 指定加密套件 SSL_CLIENT_AUTHENTICATION = FALSE # 是否要求客户端提供证书(TRUE为必须) - 配置tnsnames.ora客户端连接:修改客户端
tnsnames.ora文件,将连接协议改为TCPS,指向监听器的SSL端口(1522)。
重启监听器后,客户端需使用YOUR_SERVICE = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCPS)(HOST = your_host)(PORT = 1522)) # 使用SSL连接 (CONNECT_DATA = (SERVICE_NAME = your_service_name) ) )TCPS协议连接,实现数据加密传输。
4. 配置操作系统层防火墙限制
通过Ubuntu防火墙(ufw或iptables)限制对监听器端口(默认1521)的访问,仅允许信任的IP地址连接:
- 使用ufw(推荐):若系统安装了
ufw,可添加如下规则:sudo ufw allow from 192.168.1.0/24 to any port 1521/tcp # 允许192.168.1.0/24网段访问1521端口 sudo ufw deny 1521/tcp # 拒绝其他所有IP访问1521端口 sudo ufw enable # 启用防火墙 - 使用iptables:若使用传统
iptables,可添加如下规则:防火墙规则能有效阻断非法IP对监听器的扫描或攻击。sudo iptables -A INPUT -p tcp --dport 1521 -s 192.168.1.100 -j ACCEPT # 允许192.168.1.100访问 sudo iptables -A INPUT -p tcp --dport 1521 -j DROP # 拒绝其他所有IP访问 sudo service iptables save # 保存规则(CentOS系统)
5. 启用监听器安全审计与监控
通过监控监听器日志,及时发现异常访问或攻击行为:
- 查看监听器日志:监听器的日志文件默认位于
$ORACLE_HOME/network/log/listener.log,可通过tail命令实时监控:tail -f $ORACLE_HOME/network/log/listener.log - 记录连接尝试:确保
listener.ora中的LOG_LEVEL参数设置为INFO或DEBUG(默认OFF),记录连接请求、认证失败等事件:
日志内容可帮助识别恶意IP(如频繁的连接失败尝试),便于后续采取封禁措施。LOG_LEVEL_LISTENER = INFO TRACE_LEVEL_LISTENER = OFF # 避免过度记录影响性能
6. 定期更新与补丁管理
保持lsnrctl及Oracle数据库软件为最新版本,及时应用官方发布的安全补丁,修复已知漏洞(如监听器缓冲区溢出、密码破解漏洞)。可通过以下命令检查Oracle数据库更新:
opatch lspatches # 查看已安装补丁
opatch apply /path/to/new_patch # 应用新补丁
定期更新是防范针对性攻击的重要手段。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: lsnrctl如何提升Ubuntu系统安全性
本文地址: https://pptw.com/jishu/740905.html
