openresty及openrasp

OpenResty® 是一個基於 Nginx 與 Lua 的高性能 Web 平臺,其內部集成了大量精良的 Lua 庫、第三方模塊以及大多數的依賴項。用於方便地搭建可以處理超高併發、擴展性極高的動態 Web 應用、Web 服務和動態網關。
yum install -y readline-devel pcre-devel openssl-devel git wget vim openssl-devel gcc curlhtml

wget https://openresty.org/download/ngx_openresty-1.9.3.2.tar.gz --no-check-certificate
tar -zxvf ngx_openresty-1.9.3.2.tar.gz
cd ngx_openresty-1.9.3.2
./configure --prefix=/usr/local/openresty --with-luajit --with-http_stub_status_module --with-pcre --with-pcre-jit
gmake
gmake installjava

支持IP白名單和黑名單功能,直接將黑名單的IP訪問拒絕。
支持URL白名單,將不須要過濾的URL進行定義。
支持User-Agent的過濾,匹配自定義規則中的條目,而後進行處理(返回403)。
支持CC***防禦,單個URL指定時間的訪問次數,超過設定值,直接返回403。
支持Cookie過濾,匹配自定義規則中的條目,而後進行處理(返回403)。
支持URL過濾,匹配自定義規則中的條目,若是用戶請求的URL包含這些,返回403。
支持URL參數過濾,原理同上。
支持日誌記錄,將全部拒絕的操做,記錄到日誌中去。
日誌記錄爲JSON格式,便於日誌分析,例如使用ELKStack進行***日誌收集、存儲、搜索和展現。node

配置waf規則nginx

git clone https://github.com/unixhot/waf.git
cp -a ./waf/waf /usr/local/openresty/nginx/conf/git

vim /usr/local/openresty/nginx/conf/nginx.conf
http{
lua_shared_dict limit 50m;
lua_package_path "/usr/local/openresty/nginx/conf/waf/?.lua";
init_by_lua_file "/usr/local/openresty/nginx/conf/waf/init.lua";
access_by_lua_file "/usr/local/openresty/nginx/conf/waf/access.lua」;github

OpenRASP 是一個百度安全旗下的免費開源安全項目,全稱應該是:Open­source Run­time Ap­pli­ca­tion Self-Pro­tec­tion 開源實時程序自保護系統。web

更想詳細瞭解OpenRASP:https://www.freebuf.com/articles/web/164413.htmlmongodb

可是目前,OpenRASP 支持 Java 和 PHP 兩種開發語言,那也但願之後能支持各類類型。
軟件兼容性
https://rasp.baidu.com/doc/install/compat.htmlapache

部署單機OpenRASPvim

yum install epel-release
yum install java-1.8.0-openjdk* -y
systemctl stop firewalld.service
systemctl disable firewalld.service

安裝tomcat

wget http://mirrors.shu.edu.cn/apache/tomcat/tomcat-8/v8.5.38/bin/apache-tomcat-8.5.38.tar.gz
mv apache-tomcat-8.5.38 /usr/local/tomcat

Vim /usr/local/tomcat/bin/catalina.sh

在 OS specific support. 前面加入以下代碼:
JAVA_HOME=/usr/local/java/jdk1.8.0_151
JRE_HOME=$JAVA_HOME/jre

配置啓動:
vim /usr/lib/systemd/system/tomcat8.service

[Unit]
Description=Tomcat
After=syslog.target network.target remote-fs.target nss-lookup.target

[Service]
Type=oneshot
ExecStart=/usr/local/tomcat/bin/startup.sh
ExecStop=/usr/local/tomcat/bin/shutdown.sh
ExecReload=/bin/kill -s HUP $MAINPID
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

設置開機啓動:
systemctl enable tomcat8
systemctl start tomcat8.service

配置tomcat
vim /usr/local/tomcat/conf/tomcat-users.xml
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<user username="admin" password="123ccc" roles="manager-gui,manager-script,manager-jmx,manager-status"/>

設置tomcat訪問:
vim /usr/local/tomcat/webapps/manager/META-INF/context.xml

<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="\d+.\d+.\d+.\d+|::1|0:0:0:0:0:0:0:1" />

下載漏洞平臺:
https://github.com/baidu-security/openrasp-testcases/releases
tomcat部署war

安裝單機版openrasp

https://github.com/baidu/openrasp/releases/

自動安裝,若是沒法自動安裝就進行手動安裝。
java -jar RaspInstall.jar -install /usr/local/tomcat/
重啓tomcat

安裝出錯:
https://rasp.baidu.com/doc/install/software.html

手動安裝

cp -rf rasp /usr/share/tomcat/
OpenRASP 須要在 rasp 目錄下釋放一些動態連接庫,因此還須要修改 rasp 目錄的權限,e.g
chmod 777 -R rasp

對於使用 yum 安裝的 tomcat,
你須要建立 /etc/tomcat/conf.d/rasp.conf,並寫入如下內容
JAVA_OPTS="-javaagent:${CATALINA_HOME}/rasp/rasp.jar ${JAVA_OPTS}"
JAVA_OPTS="-Dlog4j.rasp.configuration=file://${CATALINA_HOME}/rasp/conf/rasp-log4j.xml ${JAVA_OPTS}"

安裝OpenRASP後臺管理

安裝mongoldb
/etc/yum.repos.d/mongodb-org-4.0.repo

[mongodb-org-4.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc

yum update
sudo yum install -y mongodb-org
systemctl start mongod

安裝mongoreposldb
/etc/yum..d/mongodb-org-4.0.repo

[mongodb-org-4.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc

yum update
sudo yum install -y mongodb-org
systemctl start mongod

安裝OpenRASP後臺管理
安裝Elasticsearch
https://www.elastic.co/downloads/elasticsearch

建立普通用戶
useradd Elasticsearch
chown -R Elasticsearch Elasticsearch目錄

vim /usr/local/elasticsearch/config/elasticsearch.yml
network.host: 127.0.0.1
http.port: 9200
discovery.zen.ping.unicast.hosts
discovery.zen.minimum_master_nodes

安裝OpenRASP後臺管理
若是啓動會出現jdk錯誤問題。

sysctl -w vm.max_map_count=262144
或者永久性修改
/etc/sysctl.conf

vim /usr/java/elasticsearch/config/jvm.options
將-Xmx2g改爲-Xmx256m,也就是heap size [268435456] /1024/1024的值
若是:max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]這個錯誤(切換到root操做)
/etc/security/limits.conf seven hard nofile 65536
修改後從新登陸seven用戶,使用以下命令查看是否修改爲功
ulimit -Hn
啓動:
/usr/local/elasticsearch/bin/elasticsearch -d

安裝後臺:
https://github.com/baidu/openrasp/releases
rasp-cloud.tar.gz
編輯 conf/app.conf 文件,將 PanelServerURL、AgentServerURL 裏面的 127.0.0.1 替換爲你的服務器IP或者域名。
修改es和mongodb

啓動
./rasp-cloud -d

http://ip:8086 訪問管理後臺。其中,後臺用戶名固定爲 openrasp,初始密碼爲 admin@123

添加客戶端:
https://github.com/baidu/openrasp/releases
rasp-java.zip

java -jar RaspInstall.jar -install /path/to/tomcat -appid 9efa63c2964106740d0e99fdeadeb3991326dc95 -appsecret p29HD7aZsfTPkPOy1qG8rLzXrCwAoElzwG8ZRPdFZto -backendurl http://207.xxx.xxx.x:8086
重啓tomcat

更多詳細的功能

文檔:
https://rasp.baidu.com/doc/install/panel.html
https://rasp.baidu.com/

相關文章
相關標籤/搜索