• 百度Openrasp开源的应用运行时自我保护产品,安装教程。


    第一步: 下载最新版本的安装包

    https://packages.baidu.com/app/openrasp/release/latest/rasp-php-linux.tar.bz2

    解压到目录:/opt/rasp

    bzip2 -d rasp-php-linux.tar.bz2
    tar -xvf rasp-php-linux.tar

    解压出来的文件夹会带日期版本号,不方便在PHP里设置open_base,所以文件夹更名移动

    mv rasp-php-* /opt/rasp

    给日志文件夹其他用户写入权限,也可以只给apache或者nginx运行用户的权限,要不然检测到攻击只会拦截,不会写日志。

    chmod -R 777 /opt/rasp/logs

    在phpinfo里查看php扩展的目录 extension_dir

    cd /opt/rasp/php

    选择对应的PHP版本扩展复制到扩展目录

    cp /opt/rasp/php/linux-php5.6-x86_64/openrasp.so /php/56/lib/php/extensions

    chmod 755 /php/56/lib/php/extensions/openrasp.so

    修改php.ini文件,加入openrasp扩展

    修改 php.ini,或者创建 z-openrasp.ini 文件,添加如下内容:

    ; BEGIN OPENRASP

    [openrasp]
    extension=openrasp.so
    openrasp.root_dir=/opt/rasp

    ; 远程管理配置,不需要不用配置
    ; openrasp.backend_url=
    ; openrasp.app_id=
    ; openrasp.app_secret=
    ; openrasp.remote_management_enable=1

    ; END OPENRASP

    其中,openrasp.root_dir 表示刚才选择的 OpenRASP 安装目录,不填写则无法加载。对于其他配置参数,可参考其他配置文档进行调整。

    安装检测插件

    点击这里下载官方插件 plugins/official/plugin.js,并放置到 <openrasp.root_dir>/plugins/ 目录,下载后自动加载并生效。

    如果是fastcgi模式就重启php-fpm,

    service php-fpm restart

    1. 确认基本信息

    在 web 目录下面,我们建立一个 info.php,并填写如下内容

    <?php phpinfo();?>

    访问刚才创建的 info.php,检查 openrasp 模块是否加载成功即可,e.g

    img

    如果你没有看到类似的信息,则说明扩展加载失败。常见原因有

    1. PHP版本和扩展版本不一致,比如 PHP 是 5.3 版本,但你安装了 PHP 5.6 版本的 openrasp.so
    2. INI 配置不正确,请参考 php error.log 里的错误消息
      • 所有的错误消息都以 [OpenRASP] 错误码 开头,方便和其他日志进行区分
      • 对于 apache/nginx,可以查看类似 /var/log/nginx/error.log 的路径

    确认安装成功后,请删除 info.php 这个文件,以避免泄露敏感信息。

    要比较注意open_base的设置,比如宝塔部署的话,是每个网站独立的open_base,一般是在网站根目录下的.user.ini,

    FTP里是看不到这个文件的,需要在SSH输入

    ls -a才能看到,由于限制了权限需要用chattr解除权限

    chattr -i .user.ini

    vi .user.ini

    open_basedir=/www/:/tmp/:/proc/

    在后面追加:/opt/rasp/logs

    OpenRASP 正常拦截攻击,但是 alarm.log 没有日志

    假设 OpenRASP 安装到了 /opt/rasp

    1. 检查 logs 目录是否有写权限
      • 如果没有权限,可以执行 chmod 777 /opt/rasp/logs 增加权限
      • 检查 SELinux 是否开启,可以执行 setenforce 0 关闭
    2. 检查 php error_log 是否有 OpenRASP 相关的错误日志
      • 如果没有配置过,请在 php.ini 里开启,e.g error_log = /tmp/php_error.log
    3. 检查 php open_basedir 是否关闭(或者将 /opt/rasp 加入到允许的路径里)
      • 我们的 alarm 日志使用 PHP stream 写入,会受到这个配置的影响,e.g
        PHP Warning:  scandir(): open_basedir restriction in effect. File(/www/rasp/logs/alarm/alarm.lo
  • 相关阅读:
    建立Azure Dev Ops持续集成和持续交付(CICD)(四、使用 Azure Pipelines 建立CICD)
    建立Azure Dev Ops持续集成和持续交付(CICD)(三、准备好Azure DevOps的帐号并上传代码)
    建立Azure Dev Ops持续集成和持续交付(CICD)(二、准备好ServicePrincipal并配置相应的权限)
    建立Azure Dev Ops持续集成和持续交付(CICD)(一、准备好Azure Web App资源)
    Jquery.Datatable 控件后端分页实例 (后台使用ashx、aspx-webmethod)
    c# 将object尝试转为指定对象
    c# 生成随机数
    http跳转https
    解决sqlserver数据库表空间不自动释放问题
    windowsSevice程序和topshelf程序创建服务对比
  • 原文地址:https://www.cnblogs.com/xiami2046/p/12669821.html
Copyright © 2020-2023  润新知