OpenWAF 安裝

2018-06-06 13:39 更新

名稱

OpenWAF 支持源碼安裝和 Docker 安裝

學(xué)習(xí)、開發(fā)、需求變動(dòng)大、有一定維護(hù)能力,建議源碼安裝
僅使用 OpenWAF 進(jìn)行防護(hù),建議 Docker 安裝

Table of Contents

源碼安裝

Debian&Ubuntu

  1. 安裝OpenWAF依賴

  1. cd /opt
  2. apt-get install wget git swig make perl build-essential zlib1g-dev libgeoip-dev libncurses5-dev libreadline-dev -y
  3. wget https://ftp.pcre.org/pub/pcre/pcre-8.40.tar.gz
  4. wget https://www.openssl.org/source/openssl-1.0.2k.tar.gz
  5. wget https://openresty.org/download/openresty-1.11.2.2.tar.gz
  6. tar -zxvf pcre-8.40.tar.gz
  7. tar -zxvf openssl-1.0.2k.tar.gz
  8. tar -zxvf openresty-1.11.2.2.tar.gz
  9. rm -rf pcre-8.40.tar.gz \
  10. openssl-1.0.2k.tar.gz \
  11. openresty-1.11.2.2.tar.gz

  1. PS:
  2. 1.1 OpenSSL 版本要求
  3. OpenResty 要求 OpenSSL 最低版本在 1.0.2e 以上,但 apt-get 安裝 openssl 并不滿足此版本,因此提供解決方法如下:
  4. 方法 1. apt-get 使用 backports 源安裝 openssl,如 jessie-backports
  5. echo "deb http://mirrors.163.com/debian/ jessie-backports main" >> /etc/apt/sources.list
  6. apt-get update
  7. apt-get install -t jessie-backports openssl
  8. 方法 2. 下載 openssl 源代碼,如 1.0.2k 版本
  9. wget -c http://www.openssl.org/source/openssl-1.0.2k.tar.gz
  10. tar -zxvf openssl-1.0.2k.tar.gz
  11. ./config
  12. make && make install
  13. 若用方法 1 方法 2 后, openssl version 命令顯示的版本依舊低于 1.0.2e 版本,請(qǐng)求方法 3
  14. 方法 3. 編譯 openresty 時(shí)指定 openssl 安裝目錄
  15. wget -c http://www.openssl.org/source/openssl-1.0.2k.tar.gz
  16. tar -zxvf openssl-1.0.2k.tar.gz
  17. 編譯 openresty 時(shí)通過 --with-openssl=/path/to/openssl-xxx/ 指定 openssl 安裝路徑
  18. 本示例使用方法 3
  19. 1.2 pcre-jit
  20. OpenResty 依賴 PCRE ,但通過 apt-get 安裝無法開啟 pcre-jit,解決方法:
  21. 方法 1. 源碼編譯
  22. wget https://ftp.pcre.org/pub/pcre/pcre-8.40.tar.gz
  23. tar -zxvf pcre-8.40.tar.gz
  24. cd pcre-8.40
  25. ./configure --enable-jit
  26. make && make install
  27. 方法 2. 編譯 openresty 時(shí)指定 openssl 安裝目錄
  28. wget https://ftp.pcre.org/pub/pcre/pcre-8.40.tar.gz
  29. tar -zxvf pcre-8.40.tar.gz
  30. 編譯 openresty 時(shí)通過 --with-pcre=/path/to/pcre-xxx/ 指定 pcre 安裝路徑
  31. 本示例使用方法 2
  1. 安裝 OpenWAF

  1. cd /opt
  2. git clone https://github.com/titansec/OpenWAF.git
  3. mv /opt/OpenWAF/lib/openresty/ngx_openwaf.conf /etc
  4. mv /opt/OpenWAF/lib/openresty/configure /opt/openresty-1.11.2.2
  5. mv /opt/OpenWAF/lib/openresty/* /opt/openresty-1.11.2.2/bundle/
  6. rm -rf /opt/OpenWAF/lib/openresty

  1. PS:
  2. 2.1 ngx_openwaf.conf
  3. ngx_openwaf.conf OpenResty [nginx](http://nginx.org/en/docs/) 配置文件
  4. 2.2 configure
  5. configure OpenResty 的編譯文件
  6. OpenWAF 修改了此文件,用于編譯 OpenWAF 所依賴的第三方模塊

  1. 編譯 openresty

  1. cd /opt/openresty-1.11.2.2/
  2. ./configure --with-pcre-jit --with-ipv6 \
  3. --with-http_stub_status_module \
  4. --with-http_ssl_module \
  5. --with-http_realip_module \
  6. --with-http_sub_module \
  7. --with-http_geoip_module \
  8. --with-openssl=/opt/openssl-1.0.2k \
  9. --with-pcre=/opt/pcre-8.40 \
  10. make && make install

CentOS

Debian 安裝幾乎一致,只需在安裝依賴時(shí),將 apt-get 一行命令換成以下命令即可:

  1. yum install gcc gcc-c++ wget GeoIP-devel git swig make perl perl-ExtUtils-Embed readline-devel zlib-devel -y

Others

其他操作系統(tǒng)安裝 OpenWAF,可參考 OpenResty 安裝
再安裝 OpenWAF 依賴的 swig 即可

Docker容器安裝

  1. 1. pull docker images from repository
  2. docker pull titansec/openwaf
  3. 2. start-up docker
  4. docker run -d --name openwaf \
  5. -p 80:80 -p 443:443 \
  6. -v /opt/openwaf/conf/ngx_openwaf.conf:/etc/ngx_openwaf.conf \
  7. -v /opt/openwaf/conf/twaf_access_rule.json:/opt/OpenWAF/conf/twaf_access_rule.json \
  8. -v /opt/openwaf/log/openwaf_error.log:/var/log/openwaf_error.log \
  9. titansec/openwaf

  1. PS:
  2. 1. docker pull titansec/openwaf
  3. 默認(rèn) pull titansec/openwaf:latest Debian 的最新版
  4. 2. 掛載配置文件和日志
  5. 將配置文件保留在宿主機(jī)中,更新 OpenWAF 只需更新 Docker 鏡像即可
  6. 2.1 掛載 nginx 配置文件
  7. 如,事先將 ngx_openwaf.conf 放在宿主機(jī) /opt/openwaf/conf/ 目錄下,然后啟動(dòng) docker 容器時(shí)添加參數(shù)如下:
  8. -v /opt/openwaf/conf/ngx_openwaf.conf:/etc/ngx_openwaf.conf
  9. 2.2 掛載 twaf_access_rule.json 接入規(guī)則配置文件
  10. 如,事先將 twaf_access_rule.json 放在宿主機(jī) /opt/openwaf/conf/ 目錄下,然后啟動(dòng) docker 容器時(shí)添加參數(shù)如下:
  11. -v /opt/openwaf/conf/twaf_access_rule.json:/opt/OpenWAF/conf/twaf_access_rule.json
  12. 2.3 掛載 nginx 錯(cuò)誤日志
  13. -v /opt/openwaf/log/openwaf_error.log:/var/log/openwaf_error.log
  14. 3. restart
  15. 修改宿主機(jī)中的配置文件后,執(zhí)行 docker restart openwaf(容器名稱) 即可
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)