Files
ansible-hardening/tasks/rhel7stig/misc.yml
Major Hayden f9a3a1606e Check for two nameservers [+Docs]
This patch adds tasks to verify that two or more nameservers
are configured on each server in `/etc/resolv.conf`. If not,
a warning is printed in a debug message.

Documentation is included.

Implements: blueprint security-rhel7-stig
Change-Id: I60a75be3fb3af031464f9a9defe8b2434dad7f56
2016-12-01 20:07:56 +00:00

198 lines
5.1 KiB
YAML

---
# Copyright 2016, Rackspace US, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
- name: Check autofs service
command: systemctl status autofs
register: autofs_check
failed_when: autofs_check.rc not in [0,3]
changed_when: False
check_mode: no
tags:
- always
- name: RHEL-07-020161 - File system automounter must be disabled unless required.
service:
name: autofs
state: stopped
enabled: no
when:
- "'not-found' not in autofs_check.stdout"
- security_rhel7_disable_autofs | bool
tags:
- medium
- misc
- RHEL-07-020161
# This returns an exit code of 0 if it's running, 3 if it's masked.
- name: Check if ctrl-alt-del.target is already masked
command: systemctl status ctrl-alt-del.target
register: cad_mask_check
check_mode: no
changed_when: False
failed_when: cad_mask_check.rc not in [0,3]
tags:
- always
- name: RHEL-07-020220 - The x86 Ctrl-Alt-Delete key sequence must be disabled
command: systemctl mask ctrl-alt-del.target
when:
- security_rhel7_disable_ctrl_alt_delete | bool
- cad_mask_check.rc != 3
notify:
- reload systemd
tags:
- high
- misc
- RHEL-07-020220
- name: Check if ClamAV is installed
stat:
path: /usr/bin/clamdscan
register: clamav_install_check
changed_when: False
tags:
- always
- name: Remove 'Example' line from ClamAV configuration files
lineinfile:
dest: "{{ item }}"
regexp: "^Example"
state: absent
with_items:
- /etc/freshclam.conf
- /etc/clamd.d/scan.conf
when:
- clamav_install_check.stat.exists
- security_enable_virus_scanner | bool
- ansible_os_family | lower == 'redhat'
notify:
- restart clamav
tags:
- misc
- RHEL-07-030810
- name: Set ClamAV server type as socket
lineinfile:
dest: /etc/clamd.d/scan.conf
regexp: "^(#)?LocalSocket (.*)$"
line: 'LocalSocket \2'
backrefs: yes
when:
- clamav_install_check.stat.exists
- security_enable_virus_scanner | bool
- ansible_os_family | lower == 'redhat'
notify:
- restart clamav
tags:
- misc
- RHEL-07-030810
- name: Allow automatic freshclam updates
lineinfile:
dest: /etc/sysconfig/freshclam
regexp: "^FRESHCLAM_DELAY"
state: absent
when:
- clamav_install_check.stat.exists
- security_enable_virus_scanner | bool
- ansible_os_family | lower == 'redhat'
notify:
- restart clamav
tags:
- misc
- RHEL-07-030810
- name: Update ClamAV database
command: freshclam
changed_when: False
when:
- clamav_install_check.stat.exists
- security_enable_virus_scanner | bool
tags:
- misc
- RHEL-07-030810
- name: Ensure ClamAV is running
service:
name: "{{ clamav_service }}"
state: started
enabled: yes
when:
- clamav_install_check.stat.exists
- security_enable_virus_scanner | bool
tags:
- misc
- RHEL-07-030810
# Returns 0 if installed, 3 if not installed
- name: Check firewalld status
command: systemctl status firewalld
register: firewalld_status_check
failed_when: firewalld_status_check.rc not in [0,3]
changed_when: False
check_mode: no
tags:
- always
- name: Ensure firewalld is running and enabled
service:
name: firewalld
state: started
enabled: yes
when:
- firewalld_status_check.rc != 3
- security_enable_firewalld | bool
tags:
- medium
- misc
- RHEL-07-040290
- name: Limit new TCP connections to 25/minute and allow bursting to 100
command: "firewall-cmd --direct --add-rule ipv4 filter IN_public_allow 0 -m tcp -p tcp -m limit --limit {{ security_enable_firewalld_rate_limit_per_minute }}/minute --limit-burst {{ security_enable_firewalld_rate_limit_burst }} -j ACCEPT"
register: add_rate_limit_firewalld_rule
changed_when: "'ALREADY_ENABLED' not in add_rate_limit_firewalld_rule.stdout"
when:
- firewalld_status_check.rc != 3
- security_enable_firewalld_rate_limit | bool
tags:
- medium
- misc
- RHEL-07-040250
# Linting checks need to be skipped because this command doesn't create any
# files.
- name: Count nameserver entries in /etc/resolv.conf
command: grep nameserver /etc/resolv.conf
register: nameserver_check
check_mode: no
changed_when: False
failed_when: False
tags:
- always
- skip_ansible_lint
- name: RHEL-07-040320 - For systems using DNS resolution, at least two name servers must be configured.
debug:
msg: |
Two or more nameservers must be configured in /etc/resolv.conf.
Nameservers found: {{ nameserver_check.stdout_lines | length }}
when:
- nameserver_check is defined
- nameserver_check.stdout_lines | length < 2
tags:
- low
- misc
- RHEL-07-040320