inspec-core 2.1.67
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/CHANGELOG.md +3136 -0
- data/Gemfile +56 -0
- data/LICENSE +14 -0
- data/MAINTAINERS.md +33 -0
- data/MAINTAINERS.toml +52 -0
- data/README.md +453 -0
- data/bin/inspec +12 -0
- data/docs/.gitignore +2 -0
- data/docs/README.md +40 -0
- data/docs/dev/control-eval.md +62 -0
- data/docs/dsl_inspec.md +258 -0
- data/docs/dsl_resource.md +100 -0
- data/docs/glossary.md +99 -0
- data/docs/habitat.md +192 -0
- data/docs/inspec_and_friends.md +114 -0
- data/docs/matchers.md +169 -0
- data/docs/migration.md +293 -0
- data/docs/platforms.md +119 -0
- data/docs/plugin_kitchen_inspec.md +50 -0
- data/docs/profiles.md +378 -0
- data/docs/reporters.md +105 -0
- data/docs/resources/aide_conf.md.erb +76 -0
- data/docs/resources/apache.md.erb +67 -0
- data/docs/resources/apache_conf.md.erb +68 -0
- data/docs/resources/apt.md.erb +71 -0
- data/docs/resources/audit_policy.md.erb +47 -0
- data/docs/resources/auditd.md.erb +79 -0
- data/docs/resources/auditd_conf.md.erb +68 -0
- data/docs/resources/bash.md.erb +75 -0
- data/docs/resources/bond.md.erb +90 -0
- data/docs/resources/bridge.md.erb +57 -0
- data/docs/resources/bsd_service.md.erb +67 -0
- data/docs/resources/chocolatey_package.md.erb +58 -0
- data/docs/resources/command.md.erb +138 -0
- data/docs/resources/cpan.md.erb +79 -0
- data/docs/resources/cran.md.erb +64 -0
- data/docs/resources/crontab.md.erb +89 -0
- data/docs/resources/csv.md.erb +54 -0
- data/docs/resources/dh_params.md.erb +205 -0
- data/docs/resources/directory.md.erb +30 -0
- data/docs/resources/docker.md.erb +219 -0
- data/docs/resources/docker_container.md.erb +103 -0
- data/docs/resources/docker_image.md.erb +94 -0
- data/docs/resources/docker_service.md.erb +114 -0
- data/docs/resources/elasticsearch.md.erb +242 -0
- data/docs/resources/etc_fstab.md.erb +125 -0
- data/docs/resources/etc_group.md.erb +75 -0
- data/docs/resources/etc_hosts.md.erb +78 -0
- data/docs/resources/etc_hosts_allow.md.erb +74 -0
- data/docs/resources/etc_hosts_deny.md.erb +74 -0
- data/docs/resources/file.md.erb +526 -0
- data/docs/resources/filesystem.md.erb +41 -0
- data/docs/resources/firewalld.md.erb +107 -0
- data/docs/resources/gem.md.erb +79 -0
- data/docs/resources/group.md.erb +61 -0
- data/docs/resources/grub_conf.md.erb +101 -0
- data/docs/resources/host.md.erb +86 -0
- data/docs/resources/http.md.erb +197 -0
- data/docs/resources/iis_app.md.erb +122 -0
- data/docs/resources/iis_site.md.erb +135 -0
- data/docs/resources/inetd_conf.md.erb +94 -0
- data/docs/resources/ini.md.erb +76 -0
- data/docs/resources/interface.md.erb +58 -0
- data/docs/resources/iptables.md.erb +64 -0
- data/docs/resources/json.md.erb +63 -0
- data/docs/resources/kernel_module.md.erb +120 -0
- data/docs/resources/kernel_parameter.md.erb +53 -0
- data/docs/resources/key_rsa.md.erb +85 -0
- data/docs/resources/launchd_service.md.erb +57 -0
- data/docs/resources/limits_conf.md.erb +75 -0
- data/docs/resources/login_defs.md.erb +71 -0
- data/docs/resources/mount.md.erb +69 -0
- data/docs/resources/mssql_session.md.erb +60 -0
- data/docs/resources/mysql_conf.md.erb +99 -0
- data/docs/resources/mysql_session.md.erb +74 -0
- data/docs/resources/nginx.md.erb +79 -0
- data/docs/resources/nginx_conf.md.erb +138 -0
- data/docs/resources/npm.md.erb +60 -0
- data/docs/resources/ntp_conf.md.erb +60 -0
- data/docs/resources/oneget.md.erb +53 -0
- data/docs/resources/oracledb_session.md.erb +52 -0
- data/docs/resources/os.md.erb +141 -0
- data/docs/resources/os_env.md.erb +91 -0
- data/docs/resources/package.md.erb +120 -0
- data/docs/resources/packages.md.erb +67 -0
- data/docs/resources/parse_config.md.erb +103 -0
- data/docs/resources/parse_config_file.md.erb +138 -0
- data/docs/resources/passwd.md.erb +141 -0
- data/docs/resources/pip.md.erb +67 -0
- data/docs/resources/port.md.erb +137 -0
- data/docs/resources/postgres_conf.md.erb +79 -0
- data/docs/resources/postgres_hba_conf.md.erb +93 -0
- data/docs/resources/postgres_ident_conf.md.erb +76 -0
- data/docs/resources/postgres_session.md.erb +69 -0
- data/docs/resources/powershell.md.erb +102 -0
- data/docs/resources/processes.md.erb +109 -0
- data/docs/resources/rabbitmq_config.md.erb +41 -0
- data/docs/resources/registry_key.md.erb +158 -0
- data/docs/resources/runit_service.md.erb +57 -0
- data/docs/resources/security_policy.md.erb +47 -0
- data/docs/resources/service.md.erb +121 -0
- data/docs/resources/shadow.md.erb +146 -0
- data/docs/resources/ssh_config.md.erb +73 -0
- data/docs/resources/sshd_config.md.erb +83 -0
- data/docs/resources/ssl.md.erb +119 -0
- data/docs/resources/sys_info.md.erb +42 -0
- data/docs/resources/systemd_service.md.erb +57 -0
- data/docs/resources/sysv_service.md.erb +57 -0
- data/docs/resources/upstart_service.md.erb +57 -0
- data/docs/resources/user.md.erb +140 -0
- data/docs/resources/users.md.erb +127 -0
- data/docs/resources/vbscript.md.erb +55 -0
- data/docs/resources/virtualization.md.erb +57 -0
- data/docs/resources/windows_feature.md.erb +47 -0
- data/docs/resources/windows_hotfix.md.erb +53 -0
- data/docs/resources/windows_task.md.erb +95 -0
- data/docs/resources/wmi.md.erb +81 -0
- data/docs/resources/x509_certificate.md.erb +151 -0
- data/docs/resources/xinetd_conf.md.erb +156 -0
- data/docs/resources/xml.md.erb +85 -0
- data/docs/resources/yaml.md.erb +69 -0
- data/docs/resources/yum.md.erb +98 -0
- data/docs/resources/zfs_dataset.md.erb +53 -0
- data/docs/resources/zfs_pool.md.erb +47 -0
- data/docs/ruby_usage.md +203 -0
- data/docs/shared/matcher_be.md.erb +1 -0
- data/docs/shared/matcher_cmp.md.erb +43 -0
- data/docs/shared/matcher_eq.md.erb +3 -0
- data/docs/shared/matcher_include.md.erb +1 -0
- data/docs/shared/matcher_match.md.erb +1 -0
- data/docs/shell.md +217 -0
- data/examples/README.md +8 -0
- data/examples/inheritance/README.md +65 -0
- data/examples/inheritance/controls/example.rb +14 -0
- data/examples/inheritance/inspec.yml +15 -0
- data/examples/kitchen-ansible/.kitchen.yml +25 -0
- data/examples/kitchen-ansible/Gemfile +19 -0
- data/examples/kitchen-ansible/README.md +53 -0
- data/examples/kitchen-ansible/files/nginx.repo +6 -0
- data/examples/kitchen-ansible/tasks/main.yml +16 -0
- data/examples/kitchen-ansible/test/integration/default/default.yml +5 -0
- data/examples/kitchen-ansible/test/integration/default/web_spec.rb +28 -0
- data/examples/kitchen-chef/.kitchen.yml +20 -0
- data/examples/kitchen-chef/Berksfile +3 -0
- data/examples/kitchen-chef/Gemfile +19 -0
- data/examples/kitchen-chef/README.md +27 -0
- data/examples/kitchen-chef/metadata.rb +7 -0
- data/examples/kitchen-chef/recipes/default.rb +6 -0
- data/examples/kitchen-chef/recipes/nginx.rb +30 -0
- data/examples/kitchen-chef/test/integration/default/web_spec.rb +28 -0
- data/examples/kitchen-puppet/.kitchen.yml +23 -0
- data/examples/kitchen-puppet/Gemfile +20 -0
- data/examples/kitchen-puppet/Puppetfile +25 -0
- data/examples/kitchen-puppet/README.md +53 -0
- data/examples/kitchen-puppet/manifests/site.pp +33 -0
- data/examples/kitchen-puppet/metadata.json +11 -0
- data/examples/kitchen-puppet/modules/.gitkeep +0 -0
- data/examples/kitchen-puppet/test/integration/default/web_spec.rb +28 -0
- data/examples/meta-profile/README.md +37 -0
- data/examples/meta-profile/controls/example.rb +13 -0
- data/examples/meta-profile/inspec.yml +13 -0
- data/examples/profile-attribute.yml +2 -0
- data/examples/profile-attribute/README.md +14 -0
- data/examples/profile-attribute/controls/example.rb +11 -0
- data/examples/profile-attribute/inspec.yml +8 -0
- data/examples/profile-sensitive/README.md +29 -0
- data/examples/profile-sensitive/controls/sensitive-failures.rb +9 -0
- data/examples/profile-sensitive/controls/sensitive.rb +9 -0
- data/examples/profile-sensitive/inspec.yml +8 -0
- data/examples/profile/README.md +48 -0
- data/examples/profile/controls/example.rb +23 -0
- data/examples/profile/controls/gordon.rb +36 -0
- data/examples/profile/controls/meta.rb +34 -0
- data/examples/profile/inspec.yml +10 -0
- data/examples/profile/libraries/gordon_config.rb +59 -0
- data/inspec-core.gemspec +43 -0
- data/lib/bundles/README.md +3 -0
- data/lib/bundles/inspec-artifact.rb +7 -0
- data/lib/bundles/inspec-artifact/README.md +1 -0
- data/lib/bundles/inspec-artifact/cli.rb +277 -0
- data/lib/bundles/inspec-compliance.rb +16 -0
- data/lib/bundles/inspec-compliance/.kitchen.yml +20 -0
- data/lib/bundles/inspec-compliance/README.md +193 -0
- data/lib/bundles/inspec-compliance/api.rb +360 -0
- data/lib/bundles/inspec-compliance/api/login.rb +193 -0
- data/lib/bundles/inspec-compliance/bootstrap.sh +41 -0
- data/lib/bundles/inspec-compliance/cli.rb +260 -0
- data/lib/bundles/inspec-compliance/configuration.rb +103 -0
- data/lib/bundles/inspec-compliance/http.rb +125 -0
- data/lib/bundles/inspec-compliance/images/cc-token.png +0 -0
- data/lib/bundles/inspec-compliance/support.rb +36 -0
- data/lib/bundles/inspec-compliance/target.rb +106 -0
- data/lib/bundles/inspec-compliance/test/integration/default/cli.rb +93 -0
- data/lib/bundles/inspec-habitat.rb +12 -0
- data/lib/bundles/inspec-habitat/cli.rb +36 -0
- data/lib/bundles/inspec-habitat/log.rb +10 -0
- data/lib/bundles/inspec-habitat/profile.rb +391 -0
- data/lib/bundles/inspec-init.rb +8 -0
- data/lib/bundles/inspec-init/README.md +31 -0
- data/lib/bundles/inspec-init/cli.rb +97 -0
- data/lib/bundles/inspec-init/templates/profile/README.md +3 -0
- data/lib/bundles/inspec-init/templates/profile/controls/example.rb +19 -0
- data/lib/bundles/inspec-init/templates/profile/inspec.yml +8 -0
- data/lib/bundles/inspec-init/templates/profile/libraries/.gitkeep +0 -0
- data/lib/bundles/inspec-supermarket.rb +13 -0
- data/lib/bundles/inspec-supermarket/README.md +45 -0
- data/lib/bundles/inspec-supermarket/api.rb +84 -0
- data/lib/bundles/inspec-supermarket/cli.rb +73 -0
- data/lib/bundles/inspec-supermarket/target.rb +34 -0
- data/lib/fetchers/git.rb +163 -0
- data/lib/fetchers/local.rb +74 -0
- data/lib/fetchers/mock.rb +35 -0
- data/lib/fetchers/url.rb +247 -0
- data/lib/inspec.rb +24 -0
- data/lib/inspec/archive/tar.rb +29 -0
- data/lib/inspec/archive/zip.rb +19 -0
- data/lib/inspec/backend.rb +93 -0
- data/lib/inspec/base_cli.rb +368 -0
- data/lib/inspec/cached_fetcher.rb +66 -0
- data/lib/inspec/cli.rb +292 -0
- data/lib/inspec/completions/bash.sh.erb +45 -0
- data/lib/inspec/completions/fish.sh.erb +34 -0
- data/lib/inspec/completions/zsh.sh.erb +61 -0
- data/lib/inspec/control_eval_context.rb +179 -0
- data/lib/inspec/dependencies/cache.rb +72 -0
- data/lib/inspec/dependencies/dependency_set.rb +92 -0
- data/lib/inspec/dependencies/lockfile.rb +115 -0
- data/lib/inspec/dependencies/requirement.rb +123 -0
- data/lib/inspec/dependencies/resolver.rb +86 -0
- data/lib/inspec/describe.rb +27 -0
- data/lib/inspec/dsl.rb +66 -0
- data/lib/inspec/dsl_shared.rb +33 -0
- data/lib/inspec/env_printer.rb +157 -0
- data/lib/inspec/errors.rb +14 -0
- data/lib/inspec/exceptions.rb +12 -0
- data/lib/inspec/expect.rb +45 -0
- data/lib/inspec/fetcher.rb +45 -0
- data/lib/inspec/file_provider.rb +275 -0
- data/lib/inspec/formatters.rb +3 -0
- data/lib/inspec/formatters/base.rb +259 -0
- data/lib/inspec/formatters/json_rspec.rb +20 -0
- data/lib/inspec/formatters/show_progress.rb +12 -0
- data/lib/inspec/library_eval_context.rb +58 -0
- data/lib/inspec/log.rb +11 -0
- data/lib/inspec/metadata.rb +247 -0
- data/lib/inspec/method_source.rb +24 -0
- data/lib/inspec/objects.rb +14 -0
- data/lib/inspec/objects/attribute.rb +75 -0
- data/lib/inspec/objects/control.rb +61 -0
- data/lib/inspec/objects/describe.rb +92 -0
- data/lib/inspec/objects/each_loop.rb +36 -0
- data/lib/inspec/objects/list.rb +15 -0
- data/lib/inspec/objects/or_test.rb +40 -0
- data/lib/inspec/objects/ruby_helper.rb +15 -0
- data/lib/inspec/objects/tag.rb +27 -0
- data/lib/inspec/objects/test.rb +87 -0
- data/lib/inspec/objects/value.rb +27 -0
- data/lib/inspec/plugins.rb +60 -0
- data/lib/inspec/plugins/cli.rb +24 -0
- data/lib/inspec/plugins/fetcher.rb +86 -0
- data/lib/inspec/plugins/resource.rb +135 -0
- data/lib/inspec/plugins/secret.rb +15 -0
- data/lib/inspec/plugins/source_reader.rb +40 -0
- data/lib/inspec/polyfill.rb +12 -0
- data/lib/inspec/profile.rb +513 -0
- data/lib/inspec/profile_context.rb +208 -0
- data/lib/inspec/profile_vendor.rb +66 -0
- data/lib/inspec/reporters.rb +60 -0
- data/lib/inspec/reporters/automate.rb +76 -0
- data/lib/inspec/reporters/base.rb +25 -0
- data/lib/inspec/reporters/cli.rb +356 -0
- data/lib/inspec/reporters/json.rb +116 -0
- data/lib/inspec/reporters/json_min.rb +48 -0
- data/lib/inspec/reporters/junit.rb +78 -0
- data/lib/inspec/require_loader.rb +33 -0
- data/lib/inspec/resource.rb +190 -0
- data/lib/inspec/rule.rb +280 -0
- data/lib/inspec/runner.rb +345 -0
- data/lib/inspec/runner_mock.rb +41 -0
- data/lib/inspec/runner_rspec.rb +175 -0
- data/lib/inspec/runtime_profile.rb +26 -0
- data/lib/inspec/schema.rb +213 -0
- data/lib/inspec/secrets.rb +19 -0
- data/lib/inspec/secrets/yaml.rb +30 -0
- data/lib/inspec/shell.rb +220 -0
- data/lib/inspec/shell_detector.rb +90 -0
- data/lib/inspec/source_reader.rb +29 -0
- data/lib/inspec/version.rb +8 -0
- data/lib/matchers/matchers.rb +339 -0
- data/lib/resources/aide_conf.rb +151 -0
- data/lib/resources/apache.rb +48 -0
- data/lib/resources/apache_conf.rb +149 -0
- data/lib/resources/apt.rb +149 -0
- data/lib/resources/audit_policy.rb +63 -0
- data/lib/resources/auditd.rb +231 -0
- data/lib/resources/auditd_conf.rb +46 -0
- data/lib/resources/bash.rb +35 -0
- data/lib/resources/bond.rb +69 -0
- data/lib/resources/bridge.rb +122 -0
- data/lib/resources/chocolatey_package.rb +78 -0
- data/lib/resources/command.rb +73 -0
- data/lib/resources/cpan.rb +58 -0
- data/lib/resources/cran.rb +64 -0
- data/lib/resources/crontab.rb +169 -0
- data/lib/resources/csv.rb +56 -0
- data/lib/resources/dh_params.rb +77 -0
- data/lib/resources/directory.rb +25 -0
- data/lib/resources/docker.rb +236 -0
- data/lib/resources/docker_container.rb +89 -0
- data/lib/resources/docker_image.rb +83 -0
- data/lib/resources/docker_object.rb +57 -0
- data/lib/resources/docker_service.rb +90 -0
- data/lib/resources/elasticsearch.rb +169 -0
- data/lib/resources/etc_fstab.rb +94 -0
- data/lib/resources/etc_group.rb +154 -0
- data/lib/resources/etc_hosts.rb +66 -0
- data/lib/resources/etc_hosts_allow_deny.rb +112 -0
- data/lib/resources/file.rb +298 -0
- data/lib/resources/filesystem.rb +31 -0
- data/lib/resources/firewalld.rb +143 -0
- data/lib/resources/gem.rb +70 -0
- data/lib/resources/groups.rb +215 -0
- data/lib/resources/grub_conf.rb +227 -0
- data/lib/resources/host.rb +306 -0
- data/lib/resources/http.rb +253 -0
- data/lib/resources/iis_app.rb +101 -0
- data/lib/resources/iis_site.rb +148 -0
- data/lib/resources/inetd_conf.rb +54 -0
- data/lib/resources/ini.rb +29 -0
- data/lib/resources/interface.rb +129 -0
- data/lib/resources/iptables.rb +80 -0
- data/lib/resources/json.rb +111 -0
- data/lib/resources/kernel_module.rb +107 -0
- data/lib/resources/kernel_parameter.rb +58 -0
- data/lib/resources/key_rsa.rb +63 -0
- data/lib/resources/limits_conf.rb +46 -0
- data/lib/resources/login_def.rb +57 -0
- data/lib/resources/mount.rb +88 -0
- data/lib/resources/mssql_session.rb +101 -0
- data/lib/resources/mysql.rb +82 -0
- data/lib/resources/mysql_conf.rb +127 -0
- data/lib/resources/mysql_session.rb +85 -0
- data/lib/resources/nginx.rb +96 -0
- data/lib/resources/nginx_conf.rb +226 -0
- data/lib/resources/npm.rb +48 -0
- data/lib/resources/ntp_conf.rb +51 -0
- data/lib/resources/oneget.rb +71 -0
- data/lib/resources/oracledb_session.rb +139 -0
- data/lib/resources/os.rb +36 -0
- data/lib/resources/os_env.rb +86 -0
- data/lib/resources/package.rb +370 -0
- data/lib/resources/packages.rb +111 -0
- data/lib/resources/parse_config.rb +112 -0
- data/lib/resources/passwd.rb +76 -0
- data/lib/resources/pip.rb +130 -0
- data/lib/resources/platform.rb +109 -0
- data/lib/resources/port.rb +771 -0
- data/lib/resources/postgres.rb +131 -0
- data/lib/resources/postgres_conf.rb +114 -0
- data/lib/resources/postgres_hba_conf.rb +90 -0
- data/lib/resources/postgres_ident_conf.rb +79 -0
- data/lib/resources/postgres_session.rb +71 -0
- data/lib/resources/powershell.rb +67 -0
- data/lib/resources/processes.rb +204 -0
- data/lib/resources/rabbitmq_conf.rb +51 -0
- data/lib/resources/registry_key.rb +297 -0
- data/lib/resources/security_policy.rb +180 -0
- data/lib/resources/service.rb +794 -0
- data/lib/resources/shadow.rb +159 -0
- data/lib/resources/ssh_conf.rb +97 -0
- data/lib/resources/ssl.rb +99 -0
- data/lib/resources/sys_info.rb +28 -0
- data/lib/resources/toml.rb +32 -0
- data/lib/resources/users.rb +654 -0
- data/lib/resources/vbscript.rb +68 -0
- data/lib/resources/virtualization.rb +247 -0
- data/lib/resources/windows_feature.rb +84 -0
- data/lib/resources/windows_hotfix.rb +35 -0
- data/lib/resources/windows_task.rb +102 -0
- data/lib/resources/wmi.rb +110 -0
- data/lib/resources/x509_certificate.rb +137 -0
- data/lib/resources/xinetd.rb +106 -0
- data/lib/resources/xml.rb +46 -0
- data/lib/resources/yaml.rb +43 -0
- data/lib/resources/yum.rb +180 -0
- data/lib/resources/zfs_dataset.rb +60 -0
- data/lib/resources/zfs_pool.rb +49 -0
- data/lib/source_readers/flat.rb +39 -0
- data/lib/source_readers/inspec.rb +75 -0
- data/lib/utils/command_wrapper.rb +27 -0
- data/lib/utils/convert.rb +12 -0
- data/lib/utils/database_helpers.rb +77 -0
- data/lib/utils/enumerable_delegation.rb +9 -0
- data/lib/utils/erlang_parser.rb +192 -0
- data/lib/utils/file_reader.rb +25 -0
- data/lib/utils/filter.rb +273 -0
- data/lib/utils/filter_array.rb +27 -0
- data/lib/utils/find_files.rb +47 -0
- data/lib/utils/hash.rb +41 -0
- data/lib/utils/json_log.rb +18 -0
- data/lib/utils/latest_version.rb +22 -0
- data/lib/utils/modulator.rb +12 -0
- data/lib/utils/nginx_parser.rb +105 -0
- data/lib/utils/object_traversal.rb +49 -0
- data/lib/utils/parser.rb +274 -0
- data/lib/utils/pkey_reader.rb +15 -0
- data/lib/utils/plugin_registry.rb +93 -0
- data/lib/utils/simpleconfig.rb +120 -0
- data/lib/utils/spdx.rb +13 -0
- data/lib/utils/spdx.txt +344 -0
- metadata +713 -0
@@ -0,0 +1,53 @@
|
|
1
|
+
---
|
2
|
+
title: About the kernel_parameter Resource
|
3
|
+
platform: linux
|
4
|
+
---
|
5
|
+
|
6
|
+
# kernel_parameter
|
7
|
+
|
8
|
+
Use the `kernel_parameter` InSpec audit resource to test kernel parameters on Linux platforms.
|
9
|
+
These parameters are located under `/proc/cmdline`.
|
10
|
+
<br>
|
11
|
+
|
12
|
+
## Syntax
|
13
|
+
|
14
|
+
A `kernel_parameter` resource block declares a parameter and then a value to be tested:
|
15
|
+
|
16
|
+
describe kernel_parameter('path.to.parameter') do
|
17
|
+
its('value') { should eq 0 }
|
18
|
+
end
|
19
|
+
|
20
|
+
where
|
21
|
+
|
22
|
+
* `'kernel.parameter'` must specify a kernel parameter, such as `'net.ipv4.conf.all.forwarding'`
|
23
|
+
* `{ should eq 0 }` states the value to be tested
|
24
|
+
|
25
|
+
<br>
|
26
|
+
|
27
|
+
## Examples
|
28
|
+
|
29
|
+
The following examples show how to use this InSpec audit resource.
|
30
|
+
|
31
|
+
### Test if global forwarding is enabled for an IPv4 address
|
32
|
+
|
33
|
+
describe kernel_parameter('net.ipv4.conf.all.forwarding') do
|
34
|
+
its('value') { should eq 1 }
|
35
|
+
end
|
36
|
+
|
37
|
+
### Test if global forwarding is disabled for an IPv6 address
|
38
|
+
|
39
|
+
describe kernel_parameter('net.ipv6.conf.all.forwarding') do
|
40
|
+
its('value') { should eq 0 }
|
41
|
+
end
|
42
|
+
|
43
|
+
### Test if an IPv6 address accepts redirects
|
44
|
+
|
45
|
+
describe kernel_parameter('net.ipv6.conf.interface.accept_redirects') do
|
46
|
+
its('value') { should cmp 'true' }
|
47
|
+
end
|
48
|
+
|
49
|
+
<br>
|
50
|
+
|
51
|
+
## Matchers
|
52
|
+
|
53
|
+
For a full list of available matchers, please visit our [matchers page](https://www.inspec.io/docs/reference/matchers/).
|
@@ -0,0 +1,85 @@
|
|
1
|
+
---
|
2
|
+
title: The key_rsa Resource
|
3
|
+
platform: os
|
4
|
+
---
|
5
|
+
|
6
|
+
# key_rsa
|
7
|
+
|
8
|
+
Use the `key_rsa` InSpec audit resource to test RSA public/private keypairs.
|
9
|
+
|
10
|
+
This resource is mainly useful when used in conjunction with the x509_certificate resource but it can also be used for checking SSH keys.
|
11
|
+
|
12
|
+
<br>
|
13
|
+
|
14
|
+
## Syntax
|
15
|
+
|
16
|
+
An `key_rsa` resource block declares a `key file` to be tested.
|
17
|
+
|
18
|
+
describe key_rsa('mycertificate.key') do
|
19
|
+
it { should be_private }
|
20
|
+
it { should be_public }
|
21
|
+
its('public_key') { should match "-----BEGIN PUBLIC KEY-----\n3597459df9f3982" }
|
22
|
+
its('key_length') { should eq 2048 }
|
23
|
+
end
|
24
|
+
|
25
|
+
You can use an optional passphrase with `key_rsa`
|
26
|
+
|
27
|
+
describe key_rsa('mycertificate.key', 'passphrase') do
|
28
|
+
it { should be_private }
|
29
|
+
end
|
30
|
+
|
31
|
+
<br>
|
32
|
+
|
33
|
+
## Properties
|
34
|
+
|
35
|
+
* `public_key`, `private_key`, `key_length`
|
36
|
+
|
37
|
+
<br>
|
38
|
+
|
39
|
+
## Property Examples
|
40
|
+
|
41
|
+
### public_key (String)
|
42
|
+
|
43
|
+
The `public_key` property returns the public part of the RSA key pair
|
44
|
+
|
45
|
+
describe key_rsa('/etc/pki/www.mywebsite.com.key') do
|
46
|
+
its('public_key') { should match "-----BEGIN PUBLIC KEY-----\n3597459df9f3982......" }
|
47
|
+
end
|
48
|
+
|
49
|
+
### private_key (String)
|
50
|
+
|
51
|
+
The `private_key` property returns the private key or the RSA key pair.
|
52
|
+
|
53
|
+
describe key_rsa('/etc/pki/www.mywebsite.com.key') do
|
54
|
+
its('private_key') { should match "-----BEGIN RSA PRIVATE KEY-----\nMIIJJwIBAAK......" }
|
55
|
+
end
|
56
|
+
|
57
|
+
### key_length
|
58
|
+
|
59
|
+
The `key_length` property allows testing the number of bits in the key pair.
|
60
|
+
|
61
|
+
describe key_rsa('/etc/pki/www.mywebsite.com.key') do
|
62
|
+
its('key_length') { should eq 2048 }
|
63
|
+
end
|
64
|
+
|
65
|
+
<br>
|
66
|
+
|
67
|
+
## Matchers
|
68
|
+
|
69
|
+
For a full list of available matchers, please visit our [matchers page](https://www.inspec.io/docs/reference/matchers/).
|
70
|
+
|
71
|
+
### public?
|
72
|
+
|
73
|
+
To verify if a key is public use the following:
|
74
|
+
|
75
|
+
describe key_rsa('/etc/pki/www.mywebsite.com.key') do
|
76
|
+
it { should be_public }
|
77
|
+
end
|
78
|
+
|
79
|
+
### private?
|
80
|
+
|
81
|
+
This property verifies that the key includes a private key:
|
82
|
+
|
83
|
+
describe key_rsa('/etc/pki/www.mywebsite.com.key') do
|
84
|
+
it { should be_private }
|
85
|
+
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
---
|
2
|
+
title: About the launchd_service Resource
|
3
|
+
platform: linux
|
4
|
+
---
|
5
|
+
|
6
|
+
# launchd_service
|
7
|
+
|
8
|
+
Use the ``launchd_service`` InSpec audit resource to test a service using Launchd.
|
9
|
+
|
10
|
+
<br>
|
11
|
+
|
12
|
+
## Syntax
|
13
|
+
|
14
|
+
A ``launchd_service`` resource block declares the name of a service and then one (or more) matchers to test the state of the service:
|
15
|
+
|
16
|
+
describe launchd_service('service_name') do
|
17
|
+
it { should be_installed }
|
18
|
+
it { should be_enabled }
|
19
|
+
it { should be_running }
|
20
|
+
end
|
21
|
+
|
22
|
+
where
|
23
|
+
|
24
|
+
* ``('service_name')`` must specify a service name
|
25
|
+
* `be_installed`, `be_enabled`, and `be_running` are valid matchers for this resource; all matchers available to the `service` resource may be used
|
26
|
+
|
27
|
+
The path to the service manager's control may be specified for situations where the path isn't available in the current ``PATH``. For example:
|
28
|
+
|
29
|
+
describe launchd_service('service_name', '/path/to/control') do
|
30
|
+
it { should be_enabled }
|
31
|
+
it { should be_installed }
|
32
|
+
it { should be_running }
|
33
|
+
end
|
34
|
+
|
35
|
+
<br>
|
36
|
+
|
37
|
+
## Matchers
|
38
|
+
|
39
|
+
For a full list of available matchers, please visit our [matchers page](https://www.inspec.io/docs/reference/matchers/).
|
40
|
+
|
41
|
+
### be_enabled
|
42
|
+
|
43
|
+
The `be_enabled` matcher tests if the named service is enabled:
|
44
|
+
|
45
|
+
it { should be_enabled }
|
46
|
+
|
47
|
+
### be_installed
|
48
|
+
|
49
|
+
The `be_installed` matcher tests if the named service is installed:
|
50
|
+
|
51
|
+
it { should be_installed }
|
52
|
+
|
53
|
+
### be_running
|
54
|
+
|
55
|
+
The `be_running` matcher tests if the named service is running:
|
56
|
+
|
57
|
+
it { should be_running }
|
@@ -0,0 +1,75 @@
|
|
1
|
+
---
|
2
|
+
title: About the limits_conf Resource
|
3
|
+
platform: linux
|
4
|
+
---
|
5
|
+
|
6
|
+
# limits_conf
|
7
|
+
|
8
|
+
Use the `limits_conf` InSpec audit resource to test configuration settings in the `/etc/security/limits.conf` file. The `limits.conf` defines limits for processes (by user and/or group names) and helps ensure that the system running those processes remains stable. Each process may be assigned a hard or soft limit.
|
9
|
+
|
10
|
+
* Soft limits are maintained by the shell and defines the number of file handles (or open files) available to the user or group after login
|
11
|
+
* Hard limits are maintained by the kernel and defines the maximum number of allowed file handles
|
12
|
+
|
13
|
+
Entries in the `limits.conf` file are similar to:
|
14
|
+
|
15
|
+
grantmc soft nofile 4096
|
16
|
+
grantmc hard nofile 63536
|
17
|
+
|
18
|
+
^^^^^^^^^ ^^^^ ^^^^^^ ^^^^^
|
19
|
+
domain type item value
|
20
|
+
|
21
|
+
<br>
|
22
|
+
|
23
|
+
## Syntax
|
24
|
+
|
25
|
+
A `limits_conf` resource block declares a domain to be tested, along with associated type, item, and value:
|
26
|
+
|
27
|
+
describe limits_conf('path') do
|
28
|
+
its('domain') { should include ['type', 'item', 'value'] }
|
29
|
+
its('domain') { should eq ['type', 'item', 'value'] }
|
30
|
+
end
|
31
|
+
|
32
|
+
where
|
33
|
+
|
34
|
+
* `('path')` is the non-default path to the `inetd.conf` file
|
35
|
+
* `'domain'` is a user or group name, such as `grantmc`
|
36
|
+
* `'type'` is either `hard` or `soft`
|
37
|
+
* `'item'` is the item for which limits are defined, such as `core`, `nofile`, `stack`, `nproc`, `priority`, or `maxlogins`
|
38
|
+
* `'value'` is the value associated with the `item`
|
39
|
+
|
40
|
+
<br>
|
41
|
+
|
42
|
+
## Properties
|
43
|
+
|
44
|
+
* `domain`
|
45
|
+
|
46
|
+
<br>
|
47
|
+
|
48
|
+
## Examples
|
49
|
+
|
50
|
+
The following examples show how to use this InSpec audit resource.
|
51
|
+
|
52
|
+
### domain
|
53
|
+
|
54
|
+
The `domain` property tests the domain in the `limits.conf` file, along with associated type, item, and value:
|
55
|
+
|
56
|
+
its('domain') { should include ['type', 'item', 'value'] }
|
57
|
+
`
|
58
|
+
For example:
|
59
|
+
|
60
|
+
its('grantmc') { should include ['hard', 'nofile', '63536'] }
|
61
|
+
|
62
|
+
### Test limits
|
63
|
+
|
64
|
+
describe limits_conf('path') do
|
65
|
+
its('*') { should include ['soft', 'core', '0'], ['hard', 'rss', '10000'] }
|
66
|
+
its('ftp') { should eq ['hard', 'nproc', '0'] }
|
67
|
+
end
|
68
|
+
|
69
|
+
<br>
|
70
|
+
|
71
|
+
## Matchers
|
72
|
+
|
73
|
+
For a full list of available matchers, please visit our [matchers page](https://www.inspec.io/docs/reference/matchers/).
|
74
|
+
|
75
|
+
|
@@ -0,0 +1,71 @@
|
|
1
|
+
---
|
2
|
+
title: About the login_defs Resource
|
3
|
+
platform: linux
|
4
|
+
---
|
5
|
+
|
6
|
+
# login_defs
|
7
|
+
|
8
|
+
Use the `login_defs` InSpec audit resource to test configuration settings in the `/etc/login.defs` file. The `logins.defs` file defines site-specific configuration for the shadow password suite on Linux and Unix platforms, such as password expiration ranges, minimum/maximum values for automatic selection of user and group identifiers, or the method with which passwords are encrypted.
|
9
|
+
|
10
|
+
<br>
|
11
|
+
|
12
|
+
## Syntax
|
13
|
+
|
14
|
+
A `login_defs` resource block declares the `login.defs` configuration data to be tested:
|
15
|
+
|
16
|
+
describe login_defs do
|
17
|
+
its('name') { should include('foo') }
|
18
|
+
end
|
19
|
+
|
20
|
+
where
|
21
|
+
|
22
|
+
* `name` is a configuration setting in `login.defs`
|
23
|
+
* `{ should include('foo') }` tests the value of `name` as read from `login.defs` versus the value declared in the test
|
24
|
+
|
25
|
+
<br>
|
26
|
+
|
27
|
+
## Properties
|
28
|
+
|
29
|
+
This resource supports the properties found in the `login.defs` configuration settings.
|
30
|
+
|
31
|
+
<br>
|
32
|
+
|
33
|
+
## Examples
|
34
|
+
|
35
|
+
The following examples show how to use this InSpec audit resource.
|
36
|
+
|
37
|
+
### name
|
38
|
+
|
39
|
+
The `name` matcher tests the value of `name` as read from `login.defs` versus the value declared in the test:
|
40
|
+
|
41
|
+
its('name') { should eq 'foo' }
|
42
|
+
|
43
|
+
### Test password expiration settings
|
44
|
+
|
45
|
+
describe login_defs do
|
46
|
+
its('PASS_MAX_DAYS') { should eq '180' }
|
47
|
+
its('PASS_MIN_DAYS') { should eq '1' }
|
48
|
+
its('PASS_MIN_LEN') { should eq '15' }
|
49
|
+
its('PASS_WARN_AGE') { should eq '30' }
|
50
|
+
end
|
51
|
+
|
52
|
+
### Test the encryption method
|
53
|
+
|
54
|
+
describe login_defs do
|
55
|
+
its('ENCRYPT_METHOD') { should eq 'SHA512' }
|
56
|
+
end
|
57
|
+
|
58
|
+
### Test umask setting
|
59
|
+
|
60
|
+
describe login_def do
|
61
|
+
its('UMASK') { should eq '077' }
|
62
|
+
its('PASS_MAX_DAYS') { should eq '90' }
|
63
|
+
end
|
64
|
+
|
65
|
+
<br>
|
66
|
+
|
67
|
+
## Matchers
|
68
|
+
|
69
|
+
For a full list of available matchers, please visit our [matchers page](https://www.inspec.io/docs/reference/matchers/).
|
70
|
+
|
71
|
+
|
@@ -0,0 +1,69 @@
|
|
1
|
+
---
|
2
|
+
title: About the mount Resource
|
3
|
+
platform: linux
|
4
|
+
---
|
5
|
+
|
6
|
+
# mount
|
7
|
+
|
8
|
+
Use the `mount` InSpec audit resource to test the mount points on FreeBSD and Linux systems.
|
9
|
+
|
10
|
+
<br>
|
11
|
+
|
12
|
+
## Syntax
|
13
|
+
|
14
|
+
An `mount` resource block declares the synchronization settings that should be tested:
|
15
|
+
|
16
|
+
describe mount('path') do
|
17
|
+
it { should MATCHER 'value' }
|
18
|
+
end
|
19
|
+
|
20
|
+
where
|
21
|
+
|
22
|
+
* `('path')` is the path to the mounted directory
|
23
|
+
* `MATCHER` is a valid matcher for this resource
|
24
|
+
* `'value'` is the value to be tested
|
25
|
+
|
26
|
+
<br>
|
27
|
+
|
28
|
+
## Examples
|
29
|
+
|
30
|
+
The following examples show how to use this InSpec audit resource.
|
31
|
+
|
32
|
+
### Test a the mount point on '/'
|
33
|
+
|
34
|
+
describe mount('/') do
|
35
|
+
it { should be_mounted }
|
36
|
+
its('device') { should eq '/dev/mapper/VolGroup-lv_root' }
|
37
|
+
its('type') { should eq 'ext4' }
|
38
|
+
its('options') { should eq ['rw', 'mode=620'] }
|
39
|
+
end
|
40
|
+
|
41
|
+
<br>
|
42
|
+
|
43
|
+
## Matchers
|
44
|
+
|
45
|
+
For a full list of available matchers, please visit our [matchers page](https://www.inspec.io/docs/reference/matchers/).
|
46
|
+
|
47
|
+
### be_mounted
|
48
|
+
|
49
|
+
The `be_mounted` matcher tests if the file is accessible from the file system:
|
50
|
+
|
51
|
+
it { should be_mounted }
|
52
|
+
|
53
|
+
### device
|
54
|
+
|
55
|
+
The `device` matcher tests the device from the `fstab` table:
|
56
|
+
|
57
|
+
its('device') { should eq '/dev/mapper/VolGroup-lv_root' }
|
58
|
+
|
59
|
+
### options
|
60
|
+
|
61
|
+
The `options` matcher tests the mount options for the file system from the `fstab` table:
|
62
|
+
|
63
|
+
its('options') { should eq ['rw', 'mode=620'] }
|
64
|
+
|
65
|
+
### type
|
66
|
+
|
67
|
+
The `type` matcher tests the file system type:
|
68
|
+
|
69
|
+
its('type') { should eq 'ext4' }
|
@@ -0,0 +1,60 @@
|
|
1
|
+
---
|
2
|
+
title: About the mssql_session Resource
|
3
|
+
platform: windows
|
4
|
+
---
|
5
|
+
|
6
|
+
# mssql_session
|
7
|
+
|
8
|
+
Use the `mssql_session` InSpec audit resource to test SQL commands run against a Microsoft SQL database.
|
9
|
+
|
10
|
+
<br>
|
11
|
+
|
12
|
+
## Syntax
|
13
|
+
|
14
|
+
A `mssql_session` resource block declares the username and password to use for the session, and then the command to be run:
|
15
|
+
|
16
|
+
describe mssql_session(user: 'username', password: 'password').query('QUERY').row(0).column('result') do
|
17
|
+
its('value') { should eq('') }
|
18
|
+
end
|
19
|
+
|
20
|
+
where
|
21
|
+
|
22
|
+
* `mssql_session` declares a username and password with permission to run the query. Omitting the username or password parameters results in the use of Windows authentication as the user InSpec is executing as. You may also optionally pass a host and instance name. If omitted, they will default to host: localhost and the default instance.
|
23
|
+
* `query('QUERY')` contains the query to be run
|
24
|
+
* `its('value') { should eq('') }` compares the results of the query against the expected result in the test
|
25
|
+
|
26
|
+
<br>
|
27
|
+
|
28
|
+
## Examples
|
29
|
+
|
30
|
+
The following examples show how to use this InSpec audit resource.
|
31
|
+
|
32
|
+
### Test for matching databases
|
33
|
+
|
34
|
+
sql = mssql_session(user: 'my_user', password: 'password')
|
35
|
+
|
36
|
+
describe sql.query("SELECT SERVERPROPERTY('ProductVersion') as result").row(0).column('result') do
|
37
|
+
its("value") { should cmp > '12.00.4457' }
|
38
|
+
end
|
39
|
+
|
40
|
+
### Test using Windows authentication
|
41
|
+
|
42
|
+
sql = mssql_session
|
43
|
+
|
44
|
+
describe sql.query("SELECT SERVERPROPERTY('ProductVersion') as result").row(0).column('result') do
|
45
|
+
its("value") { should cmp > '12.00.4457' }
|
46
|
+
end
|
47
|
+
|
48
|
+
### Test a specific host and instance
|
49
|
+
|
50
|
+
sql = mssql_session(user: 'my_user', password: 'password', host: 'mssqlserver', instance: 'foo')
|
51
|
+
|
52
|
+
describe sql.query("SELECT SERVERPROPERTY('ProductVersion') as result").row(0).column('result') do
|
53
|
+
its("value") { should cmp > '12.00.4457' }
|
54
|
+
end
|
55
|
+
|
56
|
+
<br>
|
57
|
+
|
58
|
+
## Matchers
|
59
|
+
|
60
|
+
For a full list of available matchers, please visit our [matchers page](https://www.inspec.io/docs/reference/matchers/).
|