Install open-appsec for Linux
The fastest and easiest way to deploy and configure open-appsec is using an interactive CLI tool which will guide you through the most commonly required customizations.
Prerequisites
Root permissions
wgetcommand-line tool installed on your linux machineExecution permissions on the
/tmpdirectory.Linux machine with:
A supported OS and NGINX, Kong, or APISIX version already installed. Here you find lists of all supported/pre-compiled attachments per supported OS versions for each available integration: - NGINX attachment compatibility - APISIX attachment compatibility - Kong attachment compatibility
In case your version is not supported yet, you can also build the attachment yourself from source code, see here.
Installation
Download the installer for Linux using these commands:
wget https://downloads.openappsec.io/open-appsec-install && chmod +x open-appsec-install You can show the installer version and available options by running the following command to show the help info:
./open-appsec-install -hThis interactive installer provides 2 alternative modes for automatic vs. manual installation:
Mode 1: Automatic installation of open-appsec and adding attachment (plugin) to NGINX/Kong/APISIX
This is the recommended deployment mode for deploying open-appsec on Linux for most deployments, as this is fully automatic and compatible with most, typically used environments.
In this mode open-appsec will automatically be installed with all required components and the attachment will be added and activated in the existing configuration for NGINX/Kong (traditional integration)/APISIX.
The resulting configuration will be locally, declaratively managed using local_policy.yaml configuration file.
Run this command to start the installation:
The following command will automatically install the open-appsec attachment to the NGINX, APISIX or Kong proxy, configure it to be loaded and also install the open-appsec agent with default local declarative configuration.
./open-appsec-install --autoFor deployment of the open-appsec attachment using the Kong Lua-based plugin:
Install dependencies: Make sure to have all required dependencies installed on your system, as shown in the command below: (This command is for Ubuntu, make sure to adjust it, if you are using a different OS.)
sudo apt-get install build-essential git curl zlib1g-dev ca-certificates Compile and install the Kong Lua plugin: Run the following
luarockscommand to compile and install the Kong Lua plugin for the open-appsec attachment:
luarocks install https://raw.githubusercontent.com/openappsec/attachment/main/attachments/kong/plugins/open-appsec-waf-kong-plugin/open-appsec-waf-kong-plugin-1.0.0-1.rockspecInstall open-appsec agent: Run the following command to automatically install the open-appsec agent with default local declarative configuration. Make sure to add the
--kong-pluginflag, this will make the installer skip the installation of the traditional attachment on NGINX level, which is not required, as the Lua-based attachment plugin was already installed in the above step using theluarockscommand.
./open-appsec-install --auto --kong-pluginLoad the open-appsec attachment plugin in the Kong Gateway (note there's multiple ways to do this in Kong), here are examples for some alternative options: Option 1 — If you use Kong Konnect for central management of Kong: Add the Kong Konnect plugin schema for the open-appsec attachment custom plugin to your Kong Konnect tenant, you can download it from here and import in Kong Konnect web UI: https://github.com/openappsec/attachment/raw/main/attachments/kong/plugins/open-appsec-waf-kong-plugin/schema.lua Then activate the plugin from the Kong Konnect web UI. Full instructions for using Kong Konnect for managing the open-appsec attachment plugin can be found here: Using Kong Konnect (Kong only) Option 2 — Include the following line in the
kong.conffile (usually located in/etc/kong/):plugins = bundled,open-appsec-waf-kong-pluginOption 3 — Run this command to activate the plugin using an env variable: (This also loads the included bundled plugins, you can removebundled, if you are not using those.)export KONG_PLUGINS="bundled,open-appsec-waf-kong-plugin"Make sure to restart Kong to apply the changes:kong restartalso make sure to actually enable the plugin, see following step:Enable the plugin in the Kong Gateway, here are examples for some alternative options: Note all examples below are for globally enabling the attachment so that the open-appsec agent can inspect all traffic, you can also enable it more specifically per consumer, per route or per service, follow the Kong documentation for further details how to configure this. Option 1 — If you use Kong Konnect for central management of Kong: After you activated the attachment plugin in Kong Konnect, leave Service, Route and Consumer fields empty to enable it globally. Option 2 — To globally enable the attachment plugin when using Kong with database:
curl -i -X POST http://localhost:8001/plugins --data "name=open-appsec-waf-kong-plugin" Option 3 — To globally enable the attachment plugin when using Kong in DB-less mode:
Load the plugin by specifying it in your kong.yml file:
plugins:
- name: open-appsec-waf-kong-pluginReload Kong configuration to make sure all changes are applied:
kong reload
As part of the installation, a default configuration file for declarative, local management of open-appsec will be created in the following path:
/etc/cp/conf/local_policy.yamlOptional open-appsec installer parameters
--tokenallows connecting directly to SaaS management, to get the token please follow the instructions here.--preventwill set the default rule in the default policy file toprevent-learninstead ofdetect-learn, but the recommendation is to keepdetect-learnas the default rule.--kong-pluginONLY use this when deploying open-appsec with the Lua-based open-appsec attachment, this will skip the automatic installation of the traditional attachment, which is not required in this case.
Mode 2: Download of software components and presenting manual installation instructions
In this mode all required components based on your NGINX, Kong or APISIX version, OS version, Platform will be downloaded to your machine and instructions are presented for manual installation.
./open-appsec-install --downloadOptionally you can add a --tmpdir <path> option to specify an alternative path for the downloaded software components (default path is /tmp/openappsec/ )

Once the download has finished, follow these steps for manual installation:
Step 1: Deploying the attachment on an existing alpine NGINX/Kong server
Copy the associated libraries as shown in the output of the script
Copy the nginx attachment file as shown in the output for Step 1
Load the attachment on your NGINX by adding the following line to your
nginx.conf
Deploy the attachment by following the commands in the script's output.
Deploy the attachment by following the commands in the script's output
Step 2: Installing open-appsec agent
Run the following commands:
/tmp/open-appsec/openappsec/install-cp-nano-agent.sh --install --hybrid_mode
/tmp/open-appsec/openappsec/install-cp-nano-service-http-transaction-handler.sh --install
/tmp/open-appsec/openappsec/install-cp-nano-attachment-registration-manager.sh --installStep 3 Validate configuration
Run the following command to validate the nginx configuration:
nginx -tYou should see an output confirming that the syntax is "ok" similar to this:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Restart the NGINX service so that the updated nginx configuration is applied and the open-appsec attachment module is loaded:
service nginx restartRun the following command to validate the OpenResty configuration:
/usr/local/openresty/nginx/sbin/nginx -tYou should see an output confirming that the syntax is "ok" similar to this:
nginx: the configuration file /usr/local/openresty/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/openresty/nginx/conf/nginx.conf test is successful
Restart the Kong service so that the updated OpenResty configuration in OpenResty's nginx.conf is applied and the open-appsec attachment module is loaded:
kong restartRun the following command to validate the OpenResty configuration:
/usr/local/openresty/nginx/sbin/nginx -tYou should see an output confirming that the syntax is "ok" similar to this:
nginx: the configuration file /usr/local/openresty/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/openresty/nginx/conf/nginx.conf test is successful
Restart the APISIX service so that the updated OpenResty configuration in OpenResty's nginx.conf is applied and the open-appsec attachment module is loaded:
apisix restartRun the following command to validate the Kong Gateway configuration: - When using Kong with database:
kong check- When using Kong in DB-less mode:kong check /path/to/kong.confkong config parse /path/to/kong.yml
Congratulations, you successfully installed and activated open-appsec integrated with your existing NGINX, Kong or APISIX installation.
Now you might want to have a look at our interactive CLI tool:
Using the open-appsec-ctl ToolLast updated
Was this helpful?