The Klustair scanner scanns your Kubernetes namespaces for the used images and scan them with trivy. This frontend displays the result of the scanned namespaces and images in a report.
Demo : https://klustair.herokuapp.com/
- The vulnerabilities of an images can be reviewed and whitelisted if they dont apply to any risk.
- Auditing the configuration of your kubernetes cluster
- Klustair runner to scan all your used images with trivy
- Klustair Helm charts to spin up Anchore and Klustair
- trivy A Simple and Comprehensive Vulnerability Scanner for Containers and other Artifacts
- kubeaudit kubeaudit helps you audit your Kubernetes clusters against common security controls
- (DEPRECATED) anchore-engine A service that analyzes docker images and applies user-defined acceptance policies to allow automated container image validation and certification
| ENV VAR | Type | value | description |
|---|---|---|---|
| AUTH | Boolean | true|false | Enables Authentication |
| AUTH_REGISTER | Boolean | true|false | Allows public registration |
| AUTH_RESET | Boolean | true|false | Allows password reset |
| AUTH_VERIFY | Boolean | true|false | Enables E-Mail verfication |
| Type | value | description | |
|---|---|---|---|
| LDAP | Boolean | true|false | Enables LDAP |
| LDAP_TYPE | String | OpenLDAP|ActiveDirectory | Preconfigured for OpenLDAP and Active Directory |
| LDAP_QUERYFIELD | String | uid|mail|{custom} | The field Klustair will try to find the User Account |
| LDAP_LOGGING | Boolean | true|false | Enable logging |
| LDAP_CONNECTION | String | default | Since there is only default, you want to keep this value |
| LDAP_HOST | String | openldap|custom | Hostname of the LDAP Server (without Protocol ldap://) |
| LDAP_USERNAME | String | "cn=admin,dc=example,dc=org" | The DN Klustair uses to connect to LDAP |
| LDAP_PASSWORD | String | The Password Klustair uses to connect to LDAP | |
| LDAP_PORT | Integer | 1389|389 | LDAP listening port |
| LDAP_BASE_DN | String | "ou=users,dc=example,dc=org" | DN where the users are located |
| LDAP_TIMEOUT | Integer | 5 | Query timeout |
| LDAP_SSL | Boolean | true|false | |
| LDAP_TLS | Boolean | true|false |
php artisan klustair:importcwe <version> [<force>]
The current latest Version is 4.3 (2020-12-10) https://cwe.mitre.org/
php artisan klustair:user <action> [<email> [<fullname>]]
Available actions are :
- create [<email> [<fullname>]]
- list
- delete[<email>]
php artisan klustair:token <action> [<name> [<email>]]
Available actions are :
- create [<name> [<email>]]
- list
- delete [<name>]
php artisan klustair:init <action>]
Available actions are :
- waitForDB
php artisan ldap:test
+------------+------------+----------------------------+-------------------------+---------------+
| Connection | Successful | Username | Message | Response Time |
+------------+------------+----------------------------+-------------------------+---------------+
| default | ✔ Yes | cn=admin,dc=example,dc=org | Successfully connected. | 22.27ms |
+------------+------------+----------------------------+-------------------------+---------------+
Docker images an tags can be found on hub.docker.com
-
klustair/klustair-frontend:v[VERSION]-apache
runs apache and PHP in a combined server. This container is based on Debian and is therefore bigger and has more vulnerabilities. -
klustair/klustair-frontend:v[VERSION]-nginx
Alpine baes Nginx server -
klustair/klustair-frontend:v[VERSION]-php-fpm
Alpine based php-fpm server
Update the values for APP_KEY DB_USERNAME & DB_PASSWORD within docker/.env.example
Note APP_KEY should be a 32 character string which is then base64 encoded you can generate one via openssl rand -base64 32
For example
> openssl rand -base64 32
vtfiojf..redacted..iofE=
APP_KEY=base64:APP_KEY=vtfiojf..redacted..iofE= cd docker
cp .env.example .env
docker-compose up klustair-db klustair-apache cd docker
cp .env.example .env
docker-compose up klustair-db klustair-nginx klustair-php-fpm
