首页主机资讯lsnrctl如何提升Ubuntu系统安全性

lsnrctl如何提升Ubuntu系统安全性

时间2025-11-03 15:57:03发布访客分类主机资讯浏览966
导读: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/lsnrctl
    
    此配置确保oracle用户可通过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防火墙(ufwiptables)限制对监听器端口(默认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,可添加如下规则:
    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系统)
    
    防火墙规则能有效阻断非法IP对监听器的扫描或攻击。

5. 启用监听器安全审计与监控
通过监控监听器日志,及时发现异常访问或攻击行为:

  • 查看监听器日志:监听器的日志文件默认位于$ORACLE_HOME/network/log/listener.log,可通过tail命令实时监控:
    tail -f $ORACLE_HOME/network/log/listener.log
    
  • 记录连接尝试:确保listener.ora中的LOG_LEVEL参数设置为INFODEBUG(默认OFF),记录连接请求、认证失败等事件:
    LOG_LEVEL_LISTENER = INFO
    TRACE_LEVEL_LISTENER = OFF  # 避免过度记录影响性能
    
    日志内容可帮助识别恶意IP(如频繁的连接失败尝试),便于后续采取封禁措施。

6. 定期更新与补丁管理
保持lsnrctl及Oracle数据库软件为最新版本,及时应用官方发布的安全补丁,修复已知漏洞(如监听器缓冲区溢出、密码破解漏洞)。可通过以下命令检查Oracle数据库更新:

opatch lspatches  # 查看已安装补丁
opatch apply /path/to/new_patch  # 应用新补丁

定期更新是防范针对性攻击的重要手段。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: lsnrctl如何提升Ubuntu系统安全性
本文地址: https://pptw.com/jishu/740905.html
Linux ulimit对CPU时间如何限制 Ubuntu lsnrctl与其他管理工具比较

游客 回复需填写必要信息