Skip to content

Allow Hardening #36

Open
Open
@Poil

Description

@Poil

Hi,

Proposed feature

Allow to harden the instance by default

Rationale

Security

Additional context

Actually I do this, dunno how we can integrate this

---
- name: Hardening
  block:
    - name: Init hardening_todo fact to False
      ansible.builtin.set_fact:
        hardening_todo: false

    - name: "Test if default webapps are present"
      ansible.builtin.stat:
        path: '/opt/tomcat/webapps/{{ item }}'
      with_items:
        - docs
        # - ROOT  # Already managed by the role
        - examples
      register: is_hardening_done

    - name: Set hardening_todo fact to true if a directory exists
      ansible.builtin.set_fact:
        hardening_todo: true
      with_items: "{{ is_hardening_done.results }}"
      when: item.stat.exists == true

    - name: "Test if hide version is present"
      ansible.builtin.stat:
        path: '/opt/tomcat/lib/org/apache/catalina/util/ServerInfo.properties'
      register: is_hardening_done

    - name: Set hardening_todo fact to true if hide version is not present
      ansible.builtin.set_fact:
        hardening_todo: true
      when: is_hardening_done.stat.exists == false

    - name: Stop Tomcat
      ansible.builtin.service:
        name: "tomcat"
        enabled: true
        state: stopped
      when:
        - hardening_todo

    - name: Remove default webapps
      ansible.builtin.file:
        path: '/opt/tomcat/webapps/{{ item }}'
        state: absent
      with_items:
        - docs
        # - ROOT  # Already managed by the role
        - examples

    - name: Hide Tomcat version - Directories
      ansible.builtin.file:
        dest: '/opt/tomcat/{{ item }}'
        state: directory
      with_items:
        - lib
        - lib/org
        - lib/org/apache
        - lib/org/apache/catalina
        - lib/org/apache/catalina/util

    - name: Hide Tomcat version
      ansible.builtin.copy:
        dest: '/opt/tomcat/lib/org/apache/catalina/util/ServerInfo.properties'
        content: 'server.info={{ custom_version_string | default("Apache Tomcat")  }}'

    - name: Start Tomcat
      ansible.builtin.service:
        name: "tomcat"
        enabled: true
        state: started
      when:
        - hardening_todo

And in the web.xml, add a block showServerInfo

    <servlet>
        <servlet-name>default</servlet-name>
        <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
        <init-param>
            <param-name>debug</param-name>
            <param-value>0</param-value>
        </init-param>
        <init-param>
            <param-name>listings</param-name>
            <param-value>false</param-value>
        </init-param>
        <init-param>
            <param-name>showServerInfo</param-name>
            <param-value>false</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

Best regards

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions