Compare commits
No commits in common. "3735c11b9f0143d5d8c11c71b12551a8f8ef1335" and "e7150c694ba5082d19d8f1c4978eeab065f6c8af" have entirely different histories.
3735c11b9f
...
e7150c694b
21 changed files with 138 additions and 384 deletions
|
|
@ -17,20 +17,6 @@ all:
|
||||||
ansible_host: 172.20.21.200
|
ansible_host: 172.20.21.200
|
||||||
kube-node01:
|
kube-node01:
|
||||||
ansible_host: 172.20.21.201
|
ansible_host: 172.20.21.201
|
||||||
rke-master01:
|
|
||||||
ansible_host: rke-master01.local.mrwho.ru
|
|
||||||
rke-node01:
|
|
||||||
ansible_host: rke-node01.local.mrwho.ru
|
|
||||||
ca:
|
|
||||||
ansible_host: ca.local.mrwho.ru
|
|
||||||
router:
|
|
||||||
ansible_host: router.local.mrwho.ru
|
|
||||||
git:
|
|
||||||
ansible_host: git.local.mrwho.ru
|
|
||||||
vm03:
|
|
||||||
ansible_host: 150.251.147.212
|
|
||||||
# ansible_ssh_user: root
|
|
||||||
# ansible_ssh_password: OdUdPx7yKa4Ga1i
|
|
||||||
|
|
||||||
rocky9-template:
|
# rocky9-template:
|
||||||
ansible_host: 172.20.21.106
|
# ansible_host: 172.20.21.106
|
||||||
|
|
@ -1,33 +0,0 @@
|
||||||
---
|
|
||||||
# ── Admin groups ───────────────────────────────────────────────────────────────
|
|
||||||
# Add new users here. Each entry requires:
|
|
||||||
# username — Linux username
|
|
||||||
# ssh_key — public SSH key string (optional, but strongly recommended)
|
|
||||||
#
|
|
||||||
# To allow a group on a specific host/group, override `users_allowed_admin_groups`
|
|
||||||
# in the corresponding group_vars/<group>/vars.yml or host_vars/<host>/vars.yml.
|
|
||||||
|
|
||||||
users_admin_groups:
|
|
||||||
super_admin:
|
|
||||||
- username: mrwho
|
|
||||||
ssh_key: >-
|
|
||||||
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAlQz8IhTEQ0utmWmwOC7FijieQULbeyXLDkjmYwSyptqj+7u0qyPPStQzN9leIISSKJ1/eJ5UbETTvc1R1Jg1tdTg5xZTMoz0jwruDP73vYIxLdeO4cZvjJIGyzS2PemUM+016uf4DLZ3jmK4hwEi2mF6UX+NYRPNIuPpr96gP1kYb1vrlG7P0cEk7EbGO6Deda3S64L0lDherSqc/Z7cn8nr6iemTdsBfl303vqFgXf/aWijuvVPUSpSiI3fR0NwvX/RW7oDIFls1dVU5CPkcwaX25Fu3voJ6e3lmduW+1s/vL1nMd5ourET+1Std3S75jqzkVsV3R74Xkgq5avn7w==
|
|
||||||
|
|
||||||
middle_admin: []
|
|
||||||
# Example:
|
|
||||||
# - username: m.ivanov
|
|
||||||
# ssh_key: "ssh-rsa AAAA..."
|
|
||||||
|
|
||||||
junior_admin: []
|
|
||||||
# Example:
|
|
||||||
# - username: j.petrov
|
|
||||||
# ssh_key: "ssh-rsa AAAA..."
|
|
||||||
|
|
||||||
# ── Default access policy ──────────────────────────────────────────────────────
|
|
||||||
# Which admin groups are provisioned on hosts by default.
|
|
||||||
# Override in group_vars/<os_group>/vars.yml or host_vars/<host>/vars.yml
|
|
||||||
# to restrict access on specific servers.
|
|
||||||
users_allowed_admin_groups:
|
|
||||||
- super_admin
|
|
||||||
- middle_admin
|
|
||||||
- junior_admin
|
|
||||||
|
|
@ -1,37 +0,0 @@
|
||||||
---
|
|
||||||
# ── SSH connection ─────────────────────────────────────────────────────────────
|
|
||||||
# Credentials are injected from GitLab CI/CD Variables:
|
|
||||||
# ANSIBLE_SSH_USER — remote user
|
|
||||||
# ANSIBLE_SSHKEY_ID_RSA — private SSH key (записывается в ~/.ssh/id_rsa в before_script)
|
|
||||||
# ANSIBLE_BECOME_PASS — sudo password
|
|
||||||
ignored_interfaces: lo
|
|
||||||
ansible_user: "{{ lookup('env', 'ANSIBLE_SSH_USER') | mandatory }}"
|
|
||||||
ansible_become: true
|
|
||||||
ansible_become_method: sudo
|
|
||||||
ansible_become_pass: "{{ lookup('env', 'ANSIBLE_BECOME_PASS') | mandatory }}"
|
|
||||||
|
|
||||||
ansible_ssh_common_args: "-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null"
|
|
||||||
|
|
||||||
# Zabbix agent default settings
|
|
||||||
agent_major_version: "7.0"
|
|
||||||
agent_variant: "2"
|
|
||||||
agent_2_plugin_list: ['']
|
|
||||||
agent_param_server:
|
|
||||||
- 10.203.0.50
|
|
||||||
agent_param_serveractive:
|
|
||||||
- 10.203.0.50
|
|
||||||
agent_param_tlsconnect: unencrypted
|
|
||||||
agent_param_tlsaccept:
|
|
||||||
- unencrypted
|
|
||||||
|
|
||||||
# Chrony NTP Client settings
|
|
||||||
chrony_log_enable: true
|
|
||||||
chrony_log: measurements statistics tracking
|
|
||||||
chrony_logdir: /var/log/chrony/
|
|
||||||
chrony_ntp_servers:
|
|
||||||
- router.local.mrwho.ru
|
|
||||||
chrony_rtcsync: true
|
|
||||||
chrony_timezone: Europe/Moscow
|
|
||||||
# Firewalld defaults
|
|
||||||
firewall_disable_conflicting_services: true
|
|
||||||
firewall_transactional_update_reboot_ok: true
|
|
||||||
|
|
@ -1,10 +0,0 @@
|
||||||
---
|
|
||||||
# ── Rocky Linux 9 specifics ───────────────────────────────────────────────────
|
|
||||||
ansible_python_interpreter: /usr/bin/python3
|
|
||||||
|
|
||||||
# Группа для sudo-привилегий на RHEL-совместимых системах
|
|
||||||
users_sudo_group: wheel
|
|
||||||
|
|
||||||
# Переопределяем логику named-роли: RedHat.yml возвращает '2' для версий != 8,
|
|
||||||
# на Rocky 9 нужен python3-netaddr / python3-dns
|
|
||||||
named_python_version: "3"
|
|
||||||
|
|
@ -1,10 +0,0 @@
|
||||||
---
|
|
||||||
all:
|
|
||||||
children:
|
|
||||||
centos:
|
|
||||||
hosts:
|
|
||||||
# router:
|
|
||||||
# ansible_host: 172.20.21.100
|
|
||||||
|
|
||||||
rocky9-template:
|
|
||||||
ansible_host: 172.20.21.106
|
|
||||||
|
|
@ -1,9 +1,8 @@
|
||||||
---
|
---
|
||||||
- name: Initial Rocky9 Configuration
|
- name: Initial Rocky9 Configuration
|
||||||
|
|
||||||
hosts:
|
hosts: all
|
||||||
# - vm03
|
# - rocky9-template
|
||||||
- rocky9-template
|
|
||||||
# kuber-node01
|
# kuber-node01
|
||||||
# - 172.20.21.193
|
# - 172.20.21.193
|
||||||
become: true
|
become: true
|
||||||
|
|
@ -13,7 +12,7 @@
|
||||||
- root-cert
|
- root-cert
|
||||||
- linux_login_banner_rhel9
|
- linux_login_banner_rhel9
|
||||||
- linux_core_dumps_rhel9
|
- linux_core_dumps_rhel9
|
||||||
# - linux_ctrl_alt_del_rhel9
|
- linux_ctrl_alt_del_rhel9
|
||||||
- linux_dnf_automatic_rhel9
|
- linux_dnf_automatic_rhel9
|
||||||
- linux_wireless_rhel9
|
- linux_wireless_rhel9
|
||||||
- openssh
|
- openssh
|
||||||
|
|
@ -26,14 +25,11 @@
|
||||||
epel_repo: true
|
epel_repo: true
|
||||||
reboot_system: false
|
reboot_system: false
|
||||||
hostname: "{{ inventory_hostname }}.local.mrwho.ru"
|
hostname: "{{ inventory_hostname }}.local.mrwho.ru"
|
||||||
flush_sysctl_rules: true
|
|
||||||
sysctl_tune: true
|
|
||||||
|
|
||||||
openssh_password_authentication: false
|
openssh_password_authentication: false
|
||||||
openssh_permit_root_login: "no" # Completely disable root SSH
|
openssh_permit_root_login: "no" # Completely disable root SSH
|
||||||
openssh_challenge_response_auth: false
|
openssh_challenge_response_auth: false
|
||||||
# Rate limiting and attack mitigation (OpenSSH 9.8+)
|
# Rate limiting and attack mitigation (OpenSSH 9.8+)
|
||||||
openssh_enable_persourcepenalties: false
|
openssh_enable_persourcepenalties: true
|
||||||
openssh_persource_authfail_penalty: "10s" # Aggressive penalty
|
openssh_persource_authfail_penalty: "10s" # Aggressive penalty
|
||||||
openssh_persource_maxstartups: "5:30:10" # Very restrictive
|
openssh_persource_maxstartups: "5:30:10" # Very restrictive
|
||||||
# Disable all port forwarding
|
# Disable all port forwarding
|
||||||
|
|
@ -48,7 +44,7 @@
|
||||||
openssh_macs:
|
openssh_macs:
|
||||||
- hmac-sha2-512-etm@openssh.com
|
- hmac-sha2-512-etm@openssh.com
|
||||||
# Minimum RSA key size
|
# Minimum RSA key size
|
||||||
openssh_required_rsa_size: 2048 # Maximum strength (Exceeds NIST/CNSA 3072-bit requirement)
|
openssh_required_rsa_size: 4096 # Maximum strength (Exceeds NIST/CNSA 3072-bit requirement)
|
||||||
# Aggressive session limits
|
# Aggressive session limits
|
||||||
openssh_max_auth_tries: 2 # (Exceeds PCI DSS 8.3.6 limit of 6)
|
openssh_max_auth_tries: 2 # (Exceeds PCI DSS 8.3.6 limit of 6)
|
||||||
openssh_login_grace_time: "20s"
|
openssh_login_grace_time: "20s"
|
||||||
|
|
|
||||||
|
|
@ -5,5 +5,6 @@ collections:
|
||||||
- name: ansible.utils
|
- name: ansible.utils
|
||||||
version: ">=2.0.0,<5.0.0"
|
version: ">=2.0.0,<5.0.0"
|
||||||
- name: community.general
|
- name: community.general
|
||||||
|
version: ">=8.0.0"
|
||||||
- name: community.vmware
|
- name: community.vmware
|
||||||
version: ">=4.0.0"
|
version: ">=4.0.0"
|
||||||
|
|
|
||||||
|
|
@ -113,21 +113,21 @@
|
||||||
- name: Set OpenSSH capability flags
|
- name: Set OpenSSH capability flags
|
||||||
ansible.builtin.set_fact:
|
ansible.builtin.set_fact:
|
||||||
# Core capabilities for backwards compatibility
|
# Core capabilities for backwards compatibility
|
||||||
openssh_has_disable_forwarding: "{{ openssh_version is defined and openssh_version is version('7.4', '>=') }}"
|
openssh_has_disable_forwarding: "{{ openssh_version is defined and openssh_version >= 7.4 }}"
|
||||||
openssh_has_ca_signature_algorithms: "{{ openssh_version is defined and openssh_version is version('7.9', '>=') }}"
|
openssh_has_ca_signature_algorithms: "{{ openssh_version is defined and openssh_version >= 7.9 }}"
|
||||||
openssh_has_fido2: "{{ openssh_version is defined and openssh_version is version('8.2', '>=') }}"
|
openssh_has_fido2: "{{ openssh_version is defined and openssh_version >= 8.2 }}"
|
||||||
openssh_has_include: "{{ openssh_version is defined and openssh_version is version('8.2', '>=') }}"
|
openssh_has_include: "{{ openssh_version is defined and openssh_version >= 8.2 }}"
|
||||||
openssh_has_log_verbose: "{{ openssh_version is defined and openssh_version is version('8.5', '>=') }}"
|
openssh_has_log_verbose: "{{ openssh_version is defined and openssh_version >= 8.5 }}"
|
||||||
openssh_has_required_rsa_size: "{{ openssh_version is defined and openssh_version is version('9.3', '>=') }}"
|
openssh_has_required_rsa_size: "{{ openssh_version is defined and openssh_version >= 9.3 }}"
|
||||||
openssh_has_persourcepenalties: "{{ openssh_version is defined and openssh_version is version('9.8', '>=') }}"
|
openssh_has_persourcepenalties: "{{ openssh_version is defined and openssh_version >= 9.8 }}"
|
||||||
openssh_has_mlkem: "{{ openssh_version is defined and openssh_version is version('9.9', '>=') }}"
|
openssh_has_mlkem: "{{ openssh_version is defined and openssh_version >= 9.9 }}"
|
||||||
# Algorithm support flags
|
# Algorithm support flags
|
||||||
openssh_has_rsa_sha2: "{{ openssh_version is defined and openssh_version is version('7.2', '>=') }}"
|
openssh_has_rsa_sha2: "{{ openssh_version is defined and openssh_version >= 7.2 }}"
|
||||||
openssh_has_modern_kex: "{{ openssh_version is defined and openssh_version is version('7.4', '>=') }}"
|
openssh_has_modern_kex: "{{ openssh_version is defined and openssh_version >= 7.4 }}"
|
||||||
# Security restriction flags
|
# Security restriction flags
|
||||||
openssh_blocks_dsa_ca: "{{ openssh_version is defined and openssh_version is version('7.9', '>=') }}"
|
openssh_blocks_dsa_ca: "{{ openssh_version is defined and openssh_version >= 7.9 }}"
|
||||||
openssh_removes_dsa: "{{ openssh_version is defined and openssh_version is version('9.6', '>=') }}"
|
openssh_removes_dsa: "{{ openssh_version is defined and openssh_version >= 9.6 }}"
|
||||||
openssh_dh_disabled_default: "{{ openssh_version is defined and openssh_version is version('10.0', '>=') }}"
|
openssh_dh_disabled_default: "{{ openssh_version is defined and openssh_version >= 10.0 }}"
|
||||||
tags:
|
tags:
|
||||||
- openssh
|
- openssh
|
||||||
- facts
|
- facts
|
||||||
|
|
@ -139,7 +139,7 @@
|
||||||
openssh_ca_signature_algorithms: "{{ openssh_ca_signature_algorithms | reject('match', '^sk-') | list }}"
|
openssh_ca_signature_algorithms: "{{ openssh_ca_signature_algorithms | reject('match', '^sk-') | list }}"
|
||||||
when:
|
when:
|
||||||
- openssh_version is defined
|
- openssh_version is defined
|
||||||
- openssh_version is version('8.2', '<')
|
- openssh_version < 8.2
|
||||||
tags:
|
tags:
|
||||||
- openssh
|
- openssh
|
||||||
- facts
|
- facts
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ ListenAddress {{ address }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
||||||
# Protocol (deprecated directive in newer OpenSSH, kept for compatibility)
|
# Protocol (deprecated directive in newer OpenSSH, kept for compatibility)
|
||||||
{% if openssh_version is defined and openssh_version is version('7.4', '<') %}
|
{% if openssh_version is defined and openssh_version < 7.4 %}
|
||||||
Protocol {{ openssh_protocol }}
|
Protocol {{ openssh_protocol }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
|
@ -153,6 +153,6 @@ GatewayPorts no
|
||||||
{% if openssh_has_persourcepenalties | default(false) and openssh_enable_persourcepenalties %}
|
{% if openssh_has_persourcepenalties | default(false) and openssh_enable_persourcepenalties %}
|
||||||
# Automatic penalties for repeated failures and suspicious behavior
|
# Automatic penalties for repeated failures and suspicious behavior
|
||||||
PerSourcePenalties authfail:{{ openssh_persource_authfail_penalty }} noauth:{{ openssh_persource_noauth_penalty }} crash:{{ openssh_persource_crash_penalty }}
|
PerSourcePenalties authfail:{{ openssh_persource_authfail_penalty }} noauth:{{ openssh_persource_noauth_penalty }} crash:{{ openssh_persource_crash_penalty }}
|
||||||
PerSourceMaxStartups '{{ openssh_persource_maxstartups }}'
|
PerSourceMaxStartups {{ openssh_persource_maxstartups }}
|
||||||
PerSourceNetBlockSize {{ openssh_persource_netblock_ipv4 }}:{{ openssh_persource_netblock_ipv6 }}
|
PerSourceNetBlockSize {{ openssh_persource_netblock_ipv4 }}:{{ openssh_persource_netblock_ipv6 }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
---
|
---
|
||||||
logrotate_interval: 14
|
|
||||||
epel_repo_url: "https://dl.fedoraproject.org/pub/epel/epel-release-latest-{{ ansible_facts.distribution_major_version }}.noarch.rpm"
|
epel_repo_url: "https://dl.fedoraproject.org/pub/epel/epel-release-latest-{{ ansible_facts.distribution_major_version }}.noarch.rpm"
|
||||||
epel_repo_gpg_key_url: "https://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-{{ ansible_facts.distribution_major_version }}"
|
epel_repo_gpg_key_url: "https://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-{{ ansible_facts.distribution_major_version }}"
|
||||||
epel_repofile_path: "/etc/yum.repos.d/epel.repo"
|
epel_repofile_path: "/etc/yum.repos.d/epel.repo"
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,11 @@
|
||||||
---
|
---
|
||||||
- name: Enable EPEL repo
|
- name: Enable EPEL repo
|
||||||
ansible.builtin.package:
|
ansible.builtin.dnf:
|
||||||
name: epel-release
|
name: epel-release
|
||||||
state: present
|
state: present
|
||||||
|
|
||||||
- name: Install soft from EPEL
|
- name: Install soft from EPEL
|
||||||
ansible.builtin.package:
|
ansible.builtin.dnf:
|
||||||
name:
|
name:
|
||||||
- screen
|
- screen
|
||||||
- unrar
|
- unrar
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,16 @@
|
||||||
---
|
---
|
||||||
|
# - name: Add Nginx Repo
|
||||||
|
# template:
|
||||||
|
# src: nginx.repo.j2
|
||||||
|
# dest: /etc/yum.repos.d/nginx.repo
|
||||||
|
# owner: root
|
||||||
|
# group: root
|
||||||
|
# - name: Configure dnf to use fastest mirror
|
||||||
|
# ansible.builtin.lineinfile:
|
||||||
|
# path: /etc/dnf/dnf.conf
|
||||||
|
# regexp: '^fastestmirror='
|
||||||
|
# line: 'fastestmirror=True'
|
||||||
|
|
||||||
# - name: Enable fastestmirror in DNF
|
# - name: Enable fastestmirror in DNF
|
||||||
# community.general.ini_file:
|
# community.general.ini_file:
|
||||||
# path: /etc/dnf/dnf.conf
|
# path: /etc/dnf/dnf.conf
|
||||||
|
|
@ -14,20 +26,22 @@
|
||||||
option: max_parallel_downloads
|
option: max_parallel_downloads
|
||||||
value: "10"
|
value: "10"
|
||||||
state: present
|
state: present
|
||||||
owner: root
|
|
||||||
group: root
|
|
||||||
mode: '0644'
|
|
||||||
backup: true
|
backup: true
|
||||||
|
|
||||||
# - name: Ensure the crb repository is enabled
|
- name: Ensure the crb repository is enabled
|
||||||
# community.general.dnf_config_manager:
|
community.general.dnf_config_manager:
|
||||||
# name: crb
|
name: crb
|
||||||
# state: enabled
|
state: enabled
|
||||||
# when: crb_repo is true
|
when: crb_repo is defined
|
||||||
|
|
||||||
- name: Install EPEL repo
|
- name: Install EPEL repo
|
||||||
ansible.builtin.include_tasks: install-epel-repo.yml
|
ansible.builtin.include_tasks: install-epel-repo.yml
|
||||||
when: epel_repo is true
|
when: epel_repo is defined
|
||||||
|
|
||||||
|
# - name: Upgrade all packages
|
||||||
|
# ansible.builtin.dnf:
|
||||||
|
# name: "*"
|
||||||
|
# state: latest
|
||||||
|
|
||||||
- name: Install soft
|
- name: Install soft
|
||||||
ansible.builtin.dnf:
|
ansible.builtin.dnf:
|
||||||
|
|
@ -65,12 +79,11 @@
|
||||||
- nano
|
- nano
|
||||||
- bind-utils
|
- bind-utils
|
||||||
- psmisc
|
- psmisc
|
||||||
# - python-pip
|
- python-pip
|
||||||
- open-vm-tools
|
- open-vm-tools
|
||||||
- qemu-guest-agent
|
- qemu-guest-agent
|
||||||
- cloud-utils-growpart
|
- cloud-utils-growpart
|
||||||
- iptraf-ng
|
- iptraf-ng
|
||||||
- python3-firewall
|
|
||||||
# - speedtest-cli
|
# - speedtest-cli
|
||||||
# - deltarpm
|
# - deltarpm
|
||||||
# - screen
|
# - screen
|
||||||
|
|
@ -79,11 +92,11 @@
|
||||||
# - btop
|
# - btop
|
||||||
state: present
|
state: present
|
||||||
|
|
||||||
# - name: Обновить всё
|
- name: Обновить всё
|
||||||
# become: true
|
become: true
|
||||||
# ansible.builtin.dnf:
|
ansible.builtin.dnf:
|
||||||
# name: "*"
|
name: "*"
|
||||||
# state: latest
|
state: latest
|
||||||
|
|
||||||
- name: Удалить старые ядра и ненужные зависимости
|
- name: Удалить старые ядра и ненужные зависимости
|
||||||
become: true
|
become: true
|
||||||
|
|
|
||||||
|
|
@ -1,23 +1,21 @@
|
||||||
---
|
---
|
||||||
# Отключение фильтрации на br интерфейсах. необходимо в некоторых случаях,
|
# Отключение фильтрации на br интерфейсах. необходимо в некоторых случаях,
|
||||||
# когда NAT не правильно отрабатывает по таким интерфейсам
|
# когда NAT не правильно отрабатывает по таким интерфейсам
|
||||||
- name: Set net.bridge.bridge-nf-call-ip6tables
|
- name: net.bridge.bridge-nf-call-ip6tables
|
||||||
ansible.posix.sysctl:
|
ansible.posix.sysctl:
|
||||||
name: net.bridge.bridge-nf-call-ip6tables
|
name: net.bridge.bridge-nf-call-ip6tables
|
||||||
value: 0
|
value: 0
|
||||||
state: present
|
state: present
|
||||||
sysctl_file: /etc/sysctl.d/03-bridge.conf
|
sysctl_file: /etc/sysctl.d/03-bridge.conf
|
||||||
when: br_netfilter_status.stat.exists
|
when: br_netfilter_status.stat.exists
|
||||||
|
- name: net.bridge.bridge-nf-call-iptables
|
||||||
- name: Set net.bridge.bridge-nf-call-iptables
|
|
||||||
ansible.posix.sysctl:
|
ansible.posix.sysctl:
|
||||||
name: net.bridge.bridge-nf-call-iptables
|
name: net.bridge.bridge-nf-call-iptables
|
||||||
value: 0
|
value: 0
|
||||||
state: present
|
state: present
|
||||||
sysctl_file: /etc/sysctl.d/03-bridge.conf
|
sysctl_file: /etc/sysctl.d/03-bridge.conf
|
||||||
when: br_netfilter_status.stat.exists
|
when: br_netfilter_status.stat.exists
|
||||||
|
- name: net.bridge.bridge-nf-call-arptables
|
||||||
- name: Set net.bridge.bridge-nf-call-arptables
|
|
||||||
ansible.posix.sysctl:
|
ansible.posix.sysctl:
|
||||||
name: net.bridge.bridge-nf-call-arptables
|
name: net.bridge.bridge-nf-call-arptables
|
||||||
value: 0
|
value: 0
|
||||||
|
|
|
||||||
|
|
@ -1,19 +1,19 @@
|
||||||
---
|
---
|
||||||
# Запрет на передачу пакетов через сервер (т.е. работу его как шлюза)
|
# Запрет на передачу пакетов через сервер (т.е. работу его как шлюза)
|
||||||
- name: Set net.ipv4.ip_forward
|
- name: net.ipv4.ip_forward
|
||||||
ansible.posix.sysctl:
|
ansible.posix.sysctl:
|
||||||
name: net.ipv4.ip_forward
|
name: net.ipv4.ip_forward
|
||||||
value: 0
|
value: 0
|
||||||
state: present
|
state: present
|
||||||
sysctl_file: /etc/sysctl.d/03-ip_forward.conf
|
sysctl_file: /etc/sysctl.d/ip_forward.conf
|
||||||
|
|
||||||
# Запрет на маршрутизацию на основе соответствующей опции в пакете (безопасность)
|
# Запрет на маршрутизацию на основе соответствующей опции в пакете (безопасность)
|
||||||
- name: Set net.ipv4.conf.default.accept_source_route
|
- name: net.ipv4.conf.default.accept_source_route
|
||||||
ansible.posix.sysctl:
|
ansible.posix.sysctl:
|
||||||
name: net.ipv4.conf.default.accept_source_route
|
name: net.ipv4.conf.default.accept_source_route
|
||||||
value: 0
|
value: 0
|
||||||
state: present
|
state: present
|
||||||
sysctl_file: /etc/sysctl.d/03-ip_forward.conf
|
sysctl_file: /etc/sysctl.d/ip_forward.conf
|
||||||
|
|
||||||
# Если в таблице маршрутизации есть маршрут на сеть, с которой пришёл пакет (src ip)
|
# Если в таблице маршрутизации есть маршрут на сеть, с которой пришёл пакет (src ip)
|
||||||
# и он ссылается на данный интерфейс, то такой пакет будет принят.
|
# и он ссылается на данный интерфейс, то такой пакет будет принят.
|
||||||
|
|
@ -24,45 +24,42 @@
|
||||||
# - Использование политик маршрутизации (Policy Based Routing via ip rule).
|
# - Использование политик маршрутизации (Policy Based Routing via ip rule).
|
||||||
# При строгом режиме 1 ядро проверяет обратный путь по дефолтной таблице main,
|
# При строгом режиме 1 ядро проверяет обратный путь по дефолтной таблице main,
|
||||||
# игнорируя кастомные таблицы, что приводит к ложному отбрасыванию пакетов.
|
# игнорируя кастомные таблицы, что приводит к ложному отбрасыванию пакетов.
|
||||||
- name: Set net.ipv4.conf.default.rp_filter
|
- name: net.ipv4.conf.default.rp_filter
|
||||||
ansible.posix.sysctl:
|
ansible.posix.sysctl:
|
||||||
name: net.ipv4.conf.default.rp_filter
|
name: net.ipv4.conf.default.rp_filter
|
||||||
value: 2
|
value: 0
|
||||||
state: present
|
state: present
|
||||||
sysctl_file: /etc/sysctl.d/03-ip_forward.conf
|
sysctl_file: /etc/sysctl.d/ip_forward.conf
|
||||||
|
- name: net.ipv4.conf.all.rp_filter
|
||||||
- name: Set net.ipv4.conf.all.rp_filter
|
|
||||||
ansible.posix.sysctl:
|
ansible.posix.sysctl:
|
||||||
name: net.ipv4.conf.all.rp_filter
|
name: net.ipv4.conf.all.rp_filter
|
||||||
value: 2
|
value: 0
|
||||||
state: present
|
state: present
|
||||||
sysctl_file: /etc/sysctl.d/03-ip_forward.conf
|
sysctl_file: /etc/sysctl.d/ip_forward.conf
|
||||||
|
- name: net.ipv4.conf.lo.rp_filter
|
||||||
- name: Set net.ipv4.conf.lo.rp_filter
|
|
||||||
ansible.posix.sysctl:
|
ansible.posix.sysctl:
|
||||||
name: net.ipv4.conf.lo.rp_filter
|
name: net.ipv4.conf.lo.rp_filter
|
||||||
value: 1
|
value: 1
|
||||||
state: present
|
state: present
|
||||||
sysctl_file: /etc/sysctl.d/03-ip_forward.conf
|
sysctl_file: /etc/sysctl.d/ip_forward.conf
|
||||||
|
- name: net.ipv4.conf.all.send_redirects
|
||||||
- name: Set net.ipv4.conf.all.send_redirects
|
|
||||||
ansible.posix.sysctl:
|
ansible.posix.sysctl:
|
||||||
name: net.ipv4.conf.all.send_redirects
|
name: net.ipv4.conf.all.send_redirects
|
||||||
value: 0
|
value: 0
|
||||||
state: present
|
state: present
|
||||||
sysctl_file: /etc/sysctl.d/03-ip_forward.conf
|
sysctl_file: /etc/sysctl.d/ip_forward.conf
|
||||||
|
|
||||||
- name: Set net.ipv4.conf.default.send_redirects
|
- name: net.ipv4.conf.default.send_redirects
|
||||||
ansible.posix.sysctl:
|
ansible.posix.sysctl:
|
||||||
name: net.ipv4.conf.default.send_redirects
|
name: net.ipv4.conf.default.send_redirects
|
||||||
value: 0
|
value: 0
|
||||||
state: present
|
state: present
|
||||||
reload: true
|
reload: true
|
||||||
sysctl_file: /etc/sysctl.d/03-ip_forward.conf
|
sysctl_file: /etc/sysctl.d/ip_forward.conf
|
||||||
|
|
||||||
- name: Set net.ipv4.conf.all.accept_redirects
|
- name: net.ipv4.conf.all.accept_redirects
|
||||||
ansible.posix.sysctl:
|
ansible.posix.sysctl:
|
||||||
name: net.ipv4.conf.all.accept_redirects
|
name: net.ipv4.conf.all.accept_redirects
|
||||||
value: 0
|
value: 0
|
||||||
state: present
|
state: present
|
||||||
sysctl_file: /etc/sysctl.d/03-ip_forward.conf
|
sysctl_file: /etc/sysctl.d/ip_forward.conf
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,12 @@
|
||||||
---
|
---
|
||||||
# Remove kernel.panic entry from /etc/sysctl.conf
|
# Remove kernel.panic entry from /etc/sysctl.conf
|
||||||
- name: Set kernel.panic
|
- name: kernel.panic
|
||||||
ansible.posix.sysctl:
|
ansible.posix.sysctl:
|
||||||
name: kernel.panic
|
name: kernel.panic
|
||||||
state: absent
|
state: absent
|
||||||
sysctl_file: /etc/sysctl.conf
|
sysctl_file: /etc/sysctl.conf
|
||||||
# Отключаем отслеживание ядром нажатие специальных сочетаний клавиш
|
# Отключаем отслеживание ядром нажатие специальных сочетаний клавиш
|
||||||
- name: Set kernel.sysrq
|
- name: kernel.sysrq
|
||||||
ansible.posix.sysctl:
|
ansible.posix.sysctl:
|
||||||
name: kernel.sysrq
|
name: kernel.sysrq
|
||||||
value: 0
|
value: 0
|
||||||
|
|
@ -14,21 +14,21 @@
|
||||||
sysctl_file: /etc/sysctl.d/01-kernel.conf
|
sysctl_file: /etc/sysctl.d/01-kernel.conf
|
||||||
|
|
||||||
# Добавление к файлу дампа ядра PID процесса
|
# Добавление к файлу дампа ядра PID процесса
|
||||||
- name: Set kernel.core_uses_pid
|
- name: kernel.core_uses_pid
|
||||||
ansible.posix.sysctl:
|
ansible.posix.sysctl:
|
||||||
name: kernel.core_uses_pid
|
name: kernel.core_uses_pid
|
||||||
value: 1
|
value: 1
|
||||||
state: present
|
state: present
|
||||||
sysctl_file: /etc/sysctl.d/01-kernel.conf
|
sysctl_file: /etc/sysctl.d/01-kernel.conf
|
||||||
# Здесь указывается максимальное количество байт в одном сообщении при передачи их между процессами
|
# Здесь указывается максимальное количество байт в одном сообщении при передачи их между процессами
|
||||||
- name: Set kernel.msgmnb
|
- name: kernel.msgmnb
|
||||||
ansible.posix.sysctl:
|
ansible.posix.sysctl:
|
||||||
name: kernel.msgmnb
|
name: kernel.msgmnb
|
||||||
value: 65536
|
value: 65536
|
||||||
state: present
|
state: present
|
||||||
sysctl_file: /etc/sysctl.d/01-kernel.conf
|
sysctl_file: /etc/sysctl.d/01-kernel.conf
|
||||||
# Здесь определяется максимальный размер сообщения, которое может быть отправлено от одного процесса другому.
|
# Здесь определяется максимальный размер сообщения, которое может быть отправлено от одного процесса другому.
|
||||||
- name: Set kernel.msgmax
|
- name: kernel.msgmax
|
||||||
ansible.posix.sysctl:
|
ansible.posix.sysctl:
|
||||||
name: kernel.msgmax
|
name: kernel.msgmax
|
||||||
value: 65536
|
value: 65536
|
||||||
|
|
@ -36,14 +36,14 @@
|
||||||
sysctl_file: /etc/sysctl.d/01-kernel.conf
|
sysctl_file: /etc/sysctl.d/01-kernel.conf
|
||||||
|
|
||||||
# Максимальный размер (в байтах) на сегменте shared memory.
|
# Максимальный размер (в байтах) на сегменте shared memory.
|
||||||
- name: Set kernel.shmmax
|
- name: kernel.shmmax
|
||||||
ansible.posix.sysctl:
|
ansible.posix.sysctl:
|
||||||
name: kernel.shmmax
|
name: kernel.shmmax
|
||||||
value: 68719476736
|
value: 68719476736
|
||||||
state: present
|
state: present
|
||||||
sysctl_file: /etc/sysctl.d/01-kernel.conf
|
sysctl_file: /etc/sysctl.d/01-kernel.conf
|
||||||
# Общее количество разделяемой памяти (в страницах), какое все процессы на сервере могут использовать.
|
# Общее количество разделяемой памяти (в страницах), какое все процессы на сервере могут использовать.
|
||||||
- name: Set kernel.shmall
|
- name: kernel.shmall
|
||||||
ansible.posix.sysctl:
|
ansible.posix.sysctl:
|
||||||
name: kernel.shmall
|
name: kernel.shmall
|
||||||
value: 4294967296
|
value: 4294967296
|
||||||
|
|
@ -51,7 +51,7 @@
|
||||||
sysctl_file: /etc/sysctl.d/01-kernel.conf
|
sysctl_file: /etc/sysctl.d/01-kernel.conf
|
||||||
|
|
||||||
# Лимит одновременно открытых файлов в системе
|
# Лимит одновременно открытых файлов в системе
|
||||||
- name: Set fs.file-max
|
- name: fs.file-max
|
||||||
ansible.posix.sysctl:
|
ansible.posix.sysctl:
|
||||||
name: fs.file-max
|
name: fs.file-max
|
||||||
value: 1000000
|
value: 1000000
|
||||||
|
|
@ -59,35 +59,35 @@
|
||||||
sysctl_file: /etc/sysctl.d/01-kernel.conf
|
sysctl_file: /etc/sysctl.d/01-kernel.conf
|
||||||
|
|
||||||
# Максимальный размер буфера приема данных для всех соединений.
|
# Максимальный размер буфера приема данных для всех соединений.
|
||||||
- name: Set net.core.rmem_max
|
- name: net.core.rmem_max
|
||||||
ansible.posix.sysctl:
|
ansible.posix.sysctl:
|
||||||
name: net.core.rmem_max
|
name: net.core.rmem_max
|
||||||
value: 33554432
|
value: 33554432
|
||||||
state: present
|
state: present
|
||||||
sysctl_file: /etc/sysctl.d/01-kernel.conf
|
sysctl_file: /etc/sysctl.d/01-kernel.conf
|
||||||
# Максимальный размер буфера передачи данных для всех соединений.
|
# Максимальный размер буфера передачи данных для всех соединений.
|
||||||
- name: Set net.core.wmem_max
|
- name: net.core.wmem_max
|
||||||
ansible.posix.sysctl:
|
ansible.posix.sysctl:
|
||||||
name: net.core.wmem_max
|
name: net.core.wmem_max
|
||||||
value: 33554432
|
value: 33554432
|
||||||
state: present
|
state: present
|
||||||
sysctl_file: /etc/sysctl.d/01-kernel.conf
|
sysctl_file: /etc/sysctl.d/01-kernel.conf
|
||||||
# Размер буфера приема данных по умолчанию для всех соединений.
|
# Размер буфера приема данных по умолчанию для всех соединений.
|
||||||
- name: Set net.core.rmem_default
|
- name: net.core.rmem_default
|
||||||
ansible.posix.sysctl:
|
ansible.posix.sysctl:
|
||||||
name: net.core.rmem_default
|
name: net.core.rmem_default
|
||||||
value: 8388608
|
value: 8388608
|
||||||
state: present
|
state: present
|
||||||
sysctl_file: /etc/sysctl.d/01-kernel.conf
|
sysctl_file: /etc/sysctl.d/01-kernel.conf
|
||||||
# Размер буфера передачи данных по умолчанию для всех соединений.
|
# Размер буфера передачи данных по умолчанию для всех соединений.
|
||||||
- name: Set net.core.wmem_default
|
- name: net.core.wmem_default
|
||||||
ansible.posix.sysctl:
|
ansible.posix.sysctl:
|
||||||
name: net.core.wmem_default
|
name: net.core.wmem_default
|
||||||
value: 4194394
|
value: 4194394
|
||||||
state: present
|
state: present
|
||||||
sysctl_file: /etc/sysctl.d/01-kernel.conf
|
sysctl_file: /etc/sysctl.d/01-kernel.conf
|
||||||
# Максимальный размер буфера приема данных для всех соединений.
|
# Максимальный размер буфера приема данных для всех соединений.
|
||||||
- name: Set net.core.optmem_max
|
- name: net.core.optmem_max
|
||||||
ansible.posix.sysctl:
|
ansible.posix.sysctl:
|
||||||
name: net.core.optmem_max
|
name: net.core.optmem_max
|
||||||
value: 40960
|
value: 40960
|
||||||
|
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
- name: Set logrotate rsyslog
|
|
||||||
ansible.builtin.template:
|
|
||||||
src: logrotate-rsyslog.j2
|
|
||||||
dest: /etc/logrotate.d/rsyslog
|
|
||||||
mode: "0644"
|
|
||||||
owner: root
|
|
||||||
group: root
|
|
||||||
|
|
@ -12,16 +12,8 @@
|
||||||
group: root
|
group: root
|
||||||
mode: "0644"
|
mode: "0644"
|
||||||
|
|
||||||
- name: Добавить строку в файл, если её нет
|
|
||||||
ansible.builtin.lineinfile:
|
|
||||||
path: /etc/vconsole.conf
|
|
||||||
regexp: '^FONT\s*='
|
|
||||||
line: 'FONT="UniCyr_8x16"'
|
|
||||||
create: true
|
|
||||||
|
|
||||||
- name: Syctl tuning
|
- name: Syctl tuning
|
||||||
ansible.builtin.include_tasks: sysctl_tuning.yml
|
ansible.builtin.include_tasks: sysctl_tuning.yml
|
||||||
when: sysctl_tune is true
|
|
||||||
|
|
||||||
|
|
||||||
############# DEPRICATED ###################
|
############# DEPRICATED ###################
|
||||||
|
|
@ -32,46 +24,17 @@
|
||||||
# - name: Setup NIC to eth0
|
# - name: Setup NIC to eth0
|
||||||
# ansible.builtin.include_tasks:
|
# ansible.builtin.include_tasks:
|
||||||
# file: set_nic_names_eth.yml
|
# file: set_nic_names_eth.yml
|
||||||
############################################
|
#############################################
|
||||||
|
|
||||||
- name: Install packages
|
- name: Install packages
|
||||||
ansible.builtin.include_tasks:
|
ansible.builtin.include_tasks:
|
||||||
file: install_packages.yml
|
file: install_packages.yml
|
||||||
|
|
||||||
- name: Disable SELinux
|
- name: Setup secutity options
|
||||||
ansible.builtin.include_tasks:
|
ansible.builtin.include_tasks:
|
||||||
file: security_setup.yml
|
file: security_setup.yml
|
||||||
|
|
||||||
- name: Logrotate
|
|
||||||
ansible.builtin.include_tasks:
|
|
||||||
file: logrotate.yml
|
|
||||||
|
|
||||||
- name: Check if Cloud-Init present
|
|
||||||
ansible.builtin.stat:
|
|
||||||
path: /etc/cloud
|
|
||||||
register: cloudinit_status
|
|
||||||
|
|
||||||
- name: Disable cloud-init
|
|
||||||
ansible.builtin.file:
|
|
||||||
path: /etc/cloud/cloud-init.disabled
|
|
||||||
state: touch
|
|
||||||
owner: root
|
|
||||||
group: root
|
|
||||||
mode: '0644'
|
|
||||||
when: cloudinit_status.stat.exists
|
|
||||||
|
|
||||||
- name: Migrate legacy network scripts to NetworkManager keyfiles
|
|
||||||
ansible.builtin.command:
|
|
||||||
cmd: nmcli connection migrate
|
|
||||||
become: true
|
|
||||||
register: migration_result
|
|
||||||
changed_when: "'successfully migrated' in migration_result.stdout"
|
|
||||||
|
|
||||||
- name: Reboot System
|
- name: Reboot System
|
||||||
ansible.builtin.debug:
|
ansible.builtin.reboot:
|
||||||
msg:
|
reboot_timeout: 60
|
||||||
- "Going to reboot..."
|
|
||||||
- "System: {{ ansible_distribution }}"
|
|
||||||
- "Version: {{ ansible_distribution_version }}"
|
|
||||||
notify: "Reboot Server"
|
|
||||||
when: reboot_system is true
|
when: reboot_system is true
|
||||||
|
|
|
||||||
|
|
@ -11,23 +11,6 @@
|
||||||
path: "{{ item.path }}"
|
path: "{{ item.path }}"
|
||||||
state: absent
|
state: absent
|
||||||
loop: "{{ files_to_delete.files }}"
|
loop: "{{ files_to_delete.files }}"
|
||||||
when: flush_sysctl_rules is true
|
|
||||||
|
|
||||||
- name: Disable Default sysctl.d
|
|
||||||
ansible.builtin.file:
|
|
||||||
path: /etc/sysctl.d/50-redhat.conf
|
|
||||||
state: touch
|
|
||||||
owner: root
|
|
||||||
group: root
|
|
||||||
mode: '0644'
|
|
||||||
|
|
||||||
- name: Disable Default sysctl.d
|
|
||||||
ansible.builtin.file:
|
|
||||||
path: /etc/sysctl.d/50-default.conf
|
|
||||||
state: touch
|
|
||||||
owner: root
|
|
||||||
group: root
|
|
||||||
mode: '0644'
|
|
||||||
|
|
||||||
- name: Kernel Tuning
|
- name: Kernel Tuning
|
||||||
ansible.builtin.include_tasks: kernel_tune.yml
|
ansible.builtin.include_tasks: kernel_tune.yml
|
||||||
|
|
@ -47,16 +30,16 @@
|
||||||
ansible.builtin.include_tasks: ip_bridge.yml
|
ansible.builtin.include_tasks: ip_bridge.yml
|
||||||
when: br_netfilter_status.stat.exists
|
when: br_netfilter_status.stat.exists
|
||||||
|
|
||||||
# Закоментировано, тк в некоторых случаях вызывает невозможность выделения памяти
|
- name: vm.overcommit_ratio
|
||||||
# - name: Set vm.overcommit_ratio
|
ansible.posix.sysctl:
|
||||||
# ansible.posix.sysctl:
|
name: vm.overcommit_ratio
|
||||||
# name: vm.overcommit_ratio
|
value: 100
|
||||||
# value: 100
|
state: present
|
||||||
# state: present
|
sysctl_file: /etc/sysctl.d/04-ip_httpd.conf
|
||||||
# sysctl_file: /etc/sysctl.d/04-ip_httpd.conf
|
|
||||||
# - name: Set vm.overcommit_memory
|
- name: vm.overcommit_memory
|
||||||
# ansible.posix.sysctl:
|
ansible.posix.sysctl:
|
||||||
# name: vm.overcommit_memory
|
name: vm.overcommit_memory
|
||||||
# value: 2
|
value: 2
|
||||||
# state: present
|
state: present
|
||||||
# sysctl_file: /etc/sysctl.d/04-ip_httpd.conf
|
sysctl_file: /etc/sysctl.d/04-ip_httpd.conf
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
# Защита на случай TCP Syn атак
|
# Защита на случай TCP Syn атак
|
||||||
# Согласно рекомендациям разработчиков ядра, этот режим лучше отключить.
|
# Согласно рекомендациям разработчиков ядра, этот режим лучше отключить.
|
||||||
# http://www.kernel.org/doc/Documentation/networking/ip-sysctl.txt
|
# http://www.kernel.org/doc/Documentation/networking/ip-sysctl.txt
|
||||||
- name: Set net.ipv4.tcp_syncookies
|
- name: net.ipv4.tcp_syncookies
|
||||||
ansible.posix.sysctl:
|
ansible.posix.sysctl:
|
||||||
name: net.ipv4.tcp_syncookies
|
name: net.ipv4.tcp_syncookies
|
||||||
value: 0
|
value: 0
|
||||||
|
|
@ -20,68 +20,68 @@
|
||||||
# Максимум: максимальный размер буфера, который может быть автоматически выделен для приема сокету TCP. Это значение не отменяет максимума,
|
# Максимум: максимальный размер буфера, который может быть автоматически выделен для приема сокету TCP. Это значение не отменяет максимума,
|
||||||
# заданного в файле /proc/sys/net/core/rmem_max. При “статическом” выделении памяти с помощью SO_RCVBUF этот параметр не имеет значения.
|
# заданного в файле /proc/sys/net/core/rmem_max. При “статическом” выделении памяти с помощью SO_RCVBUF этот параметр не имеет значения.
|
||||||
# На приём TCP пакетов
|
# На приём TCP пакетов
|
||||||
- name: Set net.ipv4.tcp_rmem
|
- name: net.ipv4.tcp_rmem
|
||||||
ansible.posix.sysctl:
|
ansible.posix.sysctl:
|
||||||
name: net.ipv4.tcp_rmem
|
name: net.ipv4.tcp_rmem
|
||||||
value: 4096 8388608 16777216
|
value: 4096 8388608 16777216
|
||||||
state: present
|
state: present
|
||||||
sysctl_file: /etc/sysctl.d/02-tcp.conf
|
sysctl_file: /etc/sysctl.d/02-tcp.conf
|
||||||
# На передачу TCP пакетов
|
# На передачу TCP пакетов
|
||||||
- name: Set net.ipv4.tcp_wmem
|
- name: net.ipv4.tcp_wmem
|
||||||
ansible.posix.sysctl:
|
ansible.posix.sysctl:
|
||||||
name: net.ipv4.tcp_wmem
|
name: net.ipv4.tcp_wmem
|
||||||
value: 4096 4194394 16777216
|
value: 4096 4194394 16777216
|
||||||
state: present
|
state: present
|
||||||
sysctl_file: /etc/sysctl.d/02-tcp.conf
|
sysctl_file: /etc/sysctl.d/02-tcp.conf
|
||||||
# Для TCP протокола в целом
|
# Для TCP протокола в целом
|
||||||
- name: Set net.ipv4.tcp_mem
|
- name: net.ipv4.tcp_mem
|
||||||
ansible.posix.sysctl:
|
ansible.posix.sysctl:
|
||||||
name: net.ipv4.tcp_mem
|
name: net.ipv4.tcp_mem
|
||||||
value: 8388608 12582912 16777216
|
value: 8388608 12582912 16777216
|
||||||
state: present
|
state: present
|
||||||
sysctl_file: /etc/sysctl.d/02-tcp.conf
|
sysctl_file: /etc/sysctl.d/02-tcp.conf
|
||||||
# Для UDP протокола в целом
|
# Для UDP протокола в целом
|
||||||
- name: Set net.ipv4.udp_mem
|
- name: net.ipv4.udp_mem
|
||||||
ansible.posix.sysctl:
|
ansible.posix.sysctl:
|
||||||
name: net.ipv4.udp_mem
|
name: net.ipv4.udp_mem
|
||||||
value: 8388608 12582912 16777216
|
value: 8388608 12582912 16777216
|
||||||
state: present
|
state: present
|
||||||
sysctl_file: /etc/sysctl.d/02-tcp.conf
|
sysctl_file: /etc/sysctl.d/02-tcp.conf
|
||||||
- name: Set net.ipv4.udp_rmem_min
|
- name: net.ipv4.udp_rmem_min
|
||||||
ansible.posix.sysctl:
|
ansible.posix.sysctl:
|
||||||
name: net.ipv4.udp_rmem_min
|
name: net.ipv4.udp_rmem_min
|
||||||
value: 16384
|
value: 16384
|
||||||
state: present
|
state: present
|
||||||
sysctl_file: /etc/sysctl.d/02-tcp.conf
|
sysctl_file: /etc/sysctl.d/02-tcp.conf
|
||||||
- name: Set net.ipv4.udp_wmem_min
|
- name: net.ipv4.udp_wmem_min
|
||||||
ansible.posix.sysctl:
|
ansible.posix.sysctl:
|
||||||
name: net.ipv4.udp_wmem_min
|
name: net.ipv4.udp_wmem_min
|
||||||
value: 16384
|
value: 16384
|
||||||
state: present
|
state: present
|
||||||
sysctl_file: /etc/sysctl.d/02-tcp.conf
|
sysctl_file: /etc/sysctl.d/02-tcp.conf
|
||||||
# Параметр определяет максимальное количество пакетов в очереди на обработку, если интерфейс получает пакеты быстрее, чем ядро может их обработать.
|
# Параметр определяет максимальное количество пакетов в очереди на обработку, если интерфейс получает пакеты быстрее, чем ядро может их обработать.
|
||||||
- name: Set net.core.netdev_max_backlog
|
- name: net.core.netdev_max_backlog
|
||||||
ansible.posix.sysctl:
|
ansible.posix.sysctl:
|
||||||
name: net.core.netdev_max_backlog
|
name: net.core.netdev_max_backlog
|
||||||
value: 500000
|
value: 500000
|
||||||
state: present
|
state: present
|
||||||
sysctl_file: /etc/sysctl.d/02-tcp.conf
|
sysctl_file: /etc/sysctl.d/02-tcp.conf
|
||||||
# Максимальное число запоминаемых запросов на соединение (TCP Syn), для которых не было получено подтверждения от подключающегося клиента.
|
# Максимальное число запоминаемых запросов на соединение (TCP Syn), для которых не было получено подтверждения от подключающегося клиента.
|
||||||
- name: Set net.ipv4.tcp_max_syn_backlog
|
- name: net.ipv4.tcp_max_syn_backlog
|
||||||
ansible.posix.sysctl:
|
ansible.posix.sysctl:
|
||||||
name: net.ipv4.tcp_max_syn_backlog
|
name: net.ipv4.tcp_max_syn_backlog
|
||||||
value: 5480000
|
value: 5480000
|
||||||
state: present
|
state: present
|
||||||
sysctl_file: /etc/sysctl.d/02-tcp.conf
|
sysctl_file: /etc/sysctl.d/02-tcp.conf
|
||||||
# Увеличим возможное количество сокетов в состоянии TIME_WAIT.
|
# Увеличим возможное количество сокетов в состоянии TIME_WAIT.
|
||||||
- name: Set net.ipv4.tcp_max_tw_buckets
|
- name: net.ipv4.tcp_max_tw_buckets
|
||||||
ansible.posix.sysctl:
|
ansible.posix.sysctl:
|
||||||
name: net.ipv4.tcp_max_tw_buckets
|
name: net.ipv4.tcp_max_tw_buckets
|
||||||
value: 5480000
|
value: 5480000
|
||||||
state: present
|
state: present
|
||||||
sysctl_file: /etc/sysctl.d/02-tcp.conf
|
sysctl_file: /etc/sysctl.d/02-tcp.conf
|
||||||
# Разрешаем повторное использование TIME-WAIT сокетов в случаях, если протокол считает это безопасным.
|
# Разрешаем повторное использование TIME-WAIT сокетов в случаях, если протокол считает это безопасным.
|
||||||
- name: Set net.ipv4.tcp_tw_reuse
|
- name: net.ipv4.tcp_tw_reuse
|
||||||
ansible.posix.sysctl:
|
ansible.posix.sysctl:
|
||||||
name: net.ipv4.tcp_tw_reuse
|
name: net.ipv4.tcp_tw_reuse
|
||||||
value: 1
|
value: 1
|
||||||
|
|
@ -97,7 +97,7 @@
|
||||||
|
|
||||||
# Параметр tcp_fin_timeout определяет время сохранения сокета в состоянии FIN-WAIT-2 после его закрытия локальной стороной.
|
# Параметр tcp_fin_timeout определяет время сохранения сокета в состоянии FIN-WAIT-2 после его закрытия локальной стороной.
|
||||||
# Партнер может не закрыть это соединение никогда.
|
# Партнер может не закрыть это соединение никогда.
|
||||||
- name: Set net.ipv4.tcp_fin_timeout
|
- name: net.ipv4.tcp_fin_timeout
|
||||||
ansible.posix.sysctl:
|
ansible.posix.sysctl:
|
||||||
name: net.ipv4.tcp_fin_timeout
|
name: net.ipv4.tcp_fin_timeout
|
||||||
value: 3
|
value: 3
|
||||||
|
|
@ -105,28 +105,28 @@
|
||||||
sysctl_file: /etc/sysctl.d/02-tcp.conf
|
sysctl_file: /etc/sysctl.d/02-tcp.conf
|
||||||
# Разрешить выборочные подтверждения протокола TCP. Опция необходима для эффективного использования всей доступной
|
# Разрешить выборочные подтверждения протокола TCP. Опция необходима для эффективного использования всей доступной
|
||||||
# пропускной способности некоторых сетей
|
# пропускной способности некоторых сетей
|
||||||
- name: Set net.ipv4.tcp_sack
|
- name: net.ipv4.tcp_sack
|
||||||
ansible.posix.sysctl:
|
ansible.posix.sysctl:
|
||||||
name: net.ipv4.tcp_sack
|
name: net.ipv4.tcp_sack
|
||||||
value: 1
|
value: 1
|
||||||
state: present
|
state: present
|
||||||
sysctl_file: /etc/sysctl.d/02-tcp.conf
|
sysctl_file: /etc/sysctl.d/02-tcp.conf
|
||||||
# Число попыток повтора передачи пакетов SYNACK для пассивных соединений TCP.
|
# Число попыток повтора передачи пакетов SYNACK для пассивных соединений TCP.
|
||||||
- name: Set net.ipv4.tcp_synack_retries
|
- name: net.ipv4.tcp_synack_retries
|
||||||
ansible.posix.sysctl:
|
ansible.posix.sysctl:
|
||||||
name: net.ipv4.tcp_synack_retries
|
name: net.ipv4.tcp_synack_retries
|
||||||
value: 1
|
value: 1
|
||||||
state: present
|
state: present
|
||||||
sysctl_file: /etc/sysctl.d/02-tcp.conf
|
sysctl_file: /etc/sysctl.d/02-tcp.conf
|
||||||
# Определяет максимальное число допустимых в системе сокетов TCP, не связанных каким-либо идентификатором пользовательского файла (user file handle).
|
# Определяет максимальное число допустимых в системе сокетов TCP, не связанных каким-либо идентификатором пользовательского файла (user file handle).
|
||||||
- name: Set net.ipv4.tcp_max_orphans
|
- name: net.ipv4.tcp_max_orphans
|
||||||
ansible.posix.sysctl:
|
ansible.posix.sysctl:
|
||||||
name: net.ipv4.tcp_max_orphans
|
name: net.ipv4.tcp_max_orphans
|
||||||
value: 65536
|
value: 65536
|
||||||
state: present
|
state: present
|
||||||
sysctl_file: /etc/sysctl.d/02-tcp.conf
|
sysctl_file: /etc/sysctl.d/02-tcp.conf
|
||||||
# Определяется число неудачных попыток, после которого уничтожается соединение TCP, закрытое на локальной стороне.
|
# Определяется число неудачных попыток, после которого уничтожается соединение TCP, закрытое на локальной стороне.
|
||||||
- name: Set net.ipv4.tcp_orphan_retries
|
- name: net.ipv4.tcp_orphan_retries
|
||||||
ansible.posix.sysctl:
|
ansible.posix.sysctl:
|
||||||
name: net.ipv4.tcp_orphan_retries
|
name: net.ipv4.tcp_orphan_retries
|
||||||
value: 0
|
value: 0
|
||||||
|
|
@ -134,21 +134,21 @@
|
||||||
sysctl_file: /etc/sysctl.d/02-tcp.conf
|
sysctl_file: /etc/sysctl.d/02-tcp.conf
|
||||||
# Проверка наличия подключения по средствам keepalive сообщений. Активируется только для тех сокетов, которые были созданы с флагом SO_KEEPALIVE.
|
# Проверка наличия подключения по средствам keepalive сообщений. Активируется только для тех сокетов, которые были созданы с флагом SO_KEEPALIVE.
|
||||||
# Через какой промежуток времени после установки подключения начать слать keepalive сообщения (в сек)
|
# Через какой промежуток времени после установки подключения начать слать keepalive сообщения (в сек)
|
||||||
- name: Set net.ipv4.tcp_keepalive_time
|
- name: net.ipv4.tcp_keepalive_time
|
||||||
ansible.posix.sysctl:
|
ansible.posix.sysctl:
|
||||||
name: net.ipv4.tcp_keepalive_time
|
name: net.ipv4.tcp_keepalive_time
|
||||||
value: 600
|
value: 600
|
||||||
state: present
|
state: present
|
||||||
sysctl_file: /etc/sysctl.d/02-tcp.conf
|
sysctl_file: /etc/sysctl.d/02-tcp.conf
|
||||||
# Интервал, с которым слать keepalive пакеты (в сек)
|
# Интервал, с которым слать keepalive пакеты (в сек)
|
||||||
- name: Set net.ipv4.tcp_keepalive_intvl
|
- name: net.ipv4.tcp_keepalive_intvl
|
||||||
ansible.posix.sysctl:
|
ansible.posix.sysctl:
|
||||||
name: net.ipv4.tcp_keepalive_intvl
|
name: net.ipv4.tcp_keepalive_intvl
|
||||||
value: 20
|
value: 20
|
||||||
state: present
|
state: present
|
||||||
sysctl_file: /etc/sysctl.d/02-tcp.conf
|
sysctl_file: /etc/sysctl.d/02-tcp.conf
|
||||||
# После скольки неудачных пробах считать соединение разорванным
|
# После скольки неудачных пробах считать соединение разорванным
|
||||||
- name: Set net.ipv4.tcp_keepalive_probes
|
- name: net.ipv4.tcp_keepalive_probes
|
||||||
ansible.posix.sysctl:
|
ansible.posix.sysctl:
|
||||||
name: net.ipv4.tcp_keepalive_probes
|
name: net.ipv4.tcp_keepalive_probes
|
||||||
value: 2
|
value: 2
|
||||||
|
|
@ -156,21 +156,21 @@
|
||||||
sysctl_file: /etc/sysctl.d/02-tcp.conf
|
sysctl_file: /etc/sysctl.d/02-tcp.conf
|
||||||
# Запрещаем технологию slow start (малый размер окна) в TCP подключениях,
|
# Запрещаем технологию slow start (малый размер окна) в TCP подключениях,
|
||||||
# в которых долгое время не было трафика.
|
# в которых долгое время не было трафика.
|
||||||
- name: Set net.ipv4.tcp_slow_start_after_idle
|
- name: net.ipv4.tcp_slow_start_after_idle
|
||||||
ansible.posix.sysctl:
|
ansible.posix.sysctl:
|
||||||
name: net.ipv4.tcp_slow_start_after_idle
|
name: net.ipv4.tcp_slow_start_after_idle
|
||||||
value: 0
|
value: 0
|
||||||
state: present
|
state: present
|
||||||
sysctl_file: /etc/sysctl.d/02-tcp.conf
|
sysctl_file: /etc/sysctl.d/02-tcp.conf
|
||||||
# Увеличиваем диапазон локальных портов, доступных для установки исходящих подключений.
|
# Увеличиваем диапазон локальных портов, доступных для установки исходящих подключений.
|
||||||
- name: Set net.ipv4.ip_local_port_range
|
- name: net.ipv4.ip_local_port_range
|
||||||
ansible.posix.sysctl:
|
ansible.posix.sysctl:
|
||||||
name: net.ipv4.ip_local_port_range
|
name: net.ipv4.ip_local_port_range
|
||||||
value: 2000 65000
|
value: 2000 65000
|
||||||
state: present
|
state: present
|
||||||
sysctl_file: /etc/sysctl.d/02-tcp.conf
|
sysctl_file: /etc/sysctl.d/02-tcp.conf
|
||||||
# Разрешает временные метки протокола TCP. Их наличие позволяет управлять работой протокола в условиях серьезных нагрузок.
|
# Разрешает временные метки протокола TCP. Их наличие позволяет управлять работой протокола в условиях серьезных нагрузок.
|
||||||
- name: Set net.ipv4.tcp_timestamps
|
- name: net.ipv4.tcp_timestamps
|
||||||
ansible.posix.sysctl:
|
ansible.posix.sysctl:
|
||||||
name: net.ipv4.tcp_timestamps
|
name: net.ipv4.tcp_timestamps
|
||||||
value: 1
|
value: 1
|
||||||
|
|
@ -180,7 +180,7 @@
|
||||||
# Cubic - алгоритм для высоконагруженных систем, но более структурированный, нежели BIC.
|
# Cubic - алгоритм для высоконагруженных систем, но более структурированный, нежели BIC.
|
||||||
# Включён по умолчанию в linux ядре начиная с версии 2.6.19
|
# Включён по умолчанию в linux ядре начиная с версии 2.6.19
|
||||||
# BBR - Алгоритм от Гугла, получайте максимальную скорость, если у вас широкий канал
|
# BBR - Алгоритм от Гугла, получайте максимальную скорость, если у вас широкий канал
|
||||||
- name: Set net.ipv4.tcp_congestion_control
|
- name: net.ipv4.tcp_congestion_control
|
||||||
ansible.posix.sysctl:
|
ansible.posix.sysctl:
|
||||||
name: net.ipv4.tcp_congestion_control
|
name: net.ipv4.tcp_congestion_control
|
||||||
value: bbr
|
value: bbr
|
||||||
|
|
@ -188,7 +188,7 @@
|
||||||
sysctl_file: /etc/sysctl.d/02-tcp.conf
|
sysctl_file: /etc/sysctl.d/02-tcp.conf
|
||||||
# Параметр определяет дисциплину обработки очередей
|
# Параметр определяет дисциплину обработки очередей
|
||||||
# FQ делят пропускную способность между всеми соединениями, даёт лучшую пропускную способность в связке с BBR
|
# FQ делят пропускную способность между всеми соединениями, даёт лучшую пропускную способность в связке с BBR
|
||||||
- name: Set net.core.default_qdisc
|
- name: net.core.default_qdisc
|
||||||
ansible.posix.sysctl:
|
ansible.posix.sysctl:
|
||||||
name: net.core.default_qdisc
|
name: net.core.default_qdisc
|
||||||
value: "fq"
|
value: "fq"
|
||||||
|
|
@ -196,7 +196,7 @@
|
||||||
sysctl_file: /etc/sysctl.d/02-tcp.conf
|
sysctl_file: /etc/sysctl.d/02-tcp.conf
|
||||||
|
|
||||||
# Не сохранять результаты измерений TCP соединения в кеше при его закрытии
|
# Не сохранять результаты измерений TCP соединения в кеше при его закрытии
|
||||||
- name: Set net.ipv4.tcp_no_metrics_save
|
- name: net.ipv4.tcp_no_metrics_save
|
||||||
ansible.posix.sysctl:
|
ansible.posix.sysctl:
|
||||||
name: net.ipv4.tcp_no_metrics_save
|
name: net.ipv4.tcp_no_metrics_save
|
||||||
value: 1
|
value: 1
|
||||||
|
|
@ -204,28 +204,28 @@
|
||||||
sysctl_file: /etc/sysctl.d/02-tcp.conf
|
sysctl_file: /etc/sysctl.d/02-tcp.conf
|
||||||
# Разрешаем динамическое изменение размера окна TCP стека (окно увеличивается, если не было потерь
|
# Разрешаем динамическое изменение размера окна TCP стека (окно увеличивается, если не было потерь
|
||||||
# пакетов при передаче в рамках TCP подключения)
|
# пакетов при передаче в рамках TCP подключения)
|
||||||
- name: Set net.ipv4.tcp_window_scaling
|
- name: net.ipv4.tcp_window_scaling
|
||||||
ansible.posix.sysctl:
|
ansible.posix.sysctl:
|
||||||
name: net.ipv4.tcp_window_scaling
|
name: net.ipv4.tcp_window_scaling
|
||||||
value: 1
|
value: 1
|
||||||
state: present
|
state: present
|
||||||
sysctl_file: /etc/sysctl.d/02-tcp.conf
|
sysctl_file: /etc/sysctl.d/02-tcp.conf
|
||||||
# Защита от TIME_WAIT атак.
|
# Защита от TIME_WAIT атак.
|
||||||
- name: Set net.ipv4.tcp_rfc1337
|
- name: net.ipv4.tcp_rfc1337
|
||||||
ansible.posix.sysctl:
|
ansible.posix.sysctl:
|
||||||
name: net.ipv4.tcp_rfc1337
|
name: net.ipv4.tcp_rfc1337
|
||||||
value: 1
|
value: 1
|
||||||
state: present
|
state: present
|
||||||
sysctl_file: /etc/sysctl.d/02-tcp.conf
|
sysctl_file: /etc/sysctl.d/02-tcp.conf
|
||||||
# Не отвечаем на ICMP ECHO запросы, переданные на широковещательный адрес.
|
# Не отвечаем на ICMP ECHO запросы, переданные на широковещательный адрес.
|
||||||
- name: Set net.ipv4.icmp_echo_ignore_broadcasts
|
- name: net.ipv4.icmp_echo_ignore_broadcasts
|
||||||
ansible.posix.sysctl:
|
ansible.posix.sysctl:
|
||||||
name: net.ipv4.icmp_echo_ignore_broadcasts
|
name: net.ipv4.icmp_echo_ignore_broadcasts
|
||||||
value: 1
|
value: 1
|
||||||
state: present
|
state: present
|
||||||
sysctl_file: /etc/sysctl.d/02-tcp.conf
|
sysctl_file: /etc/sysctl.d/02-tcp.conf
|
||||||
# Не отвечаем на ошибочно сформированные сообщения.
|
# Не отвечаем на ошибочно сформированные сообщения.
|
||||||
- name: Set net.ipv4.icmp_ignore_bogus_error_responses
|
- name: net.ipv4.icmp_ignore_bogus_error_responses
|
||||||
ansible.posix.sysctl:
|
ansible.posix.sysctl:
|
||||||
name: net.ipv4.icmp_ignore_bogus_error_responses
|
name: net.ipv4.icmp_ignore_bogus_error_responses
|
||||||
value: 1
|
value: 1
|
||||||
|
|
@ -233,30 +233,9 @@
|
||||||
sysctl_file: /etc/sysctl.d/02-tcp.conf
|
sysctl_file: /etc/sysctl.d/02-tcp.conf
|
||||||
# Максимальное число открытых сокетов, ждущих соединения.
|
# Максимальное число открытых сокетов, ждущих соединения.
|
||||||
# Максимум в CentOS 7
|
# Максимум в CentOS 7
|
||||||
- name: Set net.core.somaxconn
|
- name: net.core.somaxconn
|
||||||
ansible.posix.sysctl:
|
ansible.posix.sysctl:
|
||||||
name: net.core.somaxconn
|
name: net.core.somaxconn
|
||||||
value: 65535
|
value: 65535
|
||||||
state: present
|
state: present
|
||||||
sysctl_file: /etc/sysctl.d/02-tcp.conf
|
sysctl_file: /etc/sysctl.d/02-tcp.conf
|
||||||
|
|
||||||
- name: Set net.netfilter.nf_conntrack_max
|
|
||||||
ansible.posix.sysctl:
|
|
||||||
name: net.netfilter.nf_conntrack_max
|
|
||||||
value: 524288
|
|
||||||
state: present
|
|
||||||
sysctl_file: /etc/sysctl.d/02-udp.conf
|
|
||||||
|
|
||||||
- name: Set net.netfilter.nf_conntrack_udp_timeout
|
|
||||||
ansible.posix.sysctl:
|
|
||||||
name: net.netfilter.nf_conntrack_udp_timeout
|
|
||||||
value: 10
|
|
||||||
state: present
|
|
||||||
sysctl_file: /etc/sysctl.d/02-udp.conf
|
|
||||||
|
|
||||||
- name: Set net.netfilter.nf_conntrack_udp_timeout_stream
|
|
||||||
ansible.posix.sysctl:
|
|
||||||
name: net.netfilter.nf_conntrack_udp_timeout_stream
|
|
||||||
value: 30
|
|
||||||
state: present
|
|
||||||
sysctl_file: /etc/sysctl.d/02-udp.conf
|
|
||||||
|
|
|
||||||
|
|
@ -1,65 +0,0 @@
|
||||||
/var/log/cron {
|
|
||||||
daily
|
|
||||||
rotate {{ logrotate_interval }}
|
|
||||||
size 50M
|
|
||||||
compress
|
|
||||||
delaycompress
|
|
||||||
missingok
|
|
||||||
notifempty
|
|
||||||
sharedscripts
|
|
||||||
postrotate
|
|
||||||
/usr/bin/systemctl reload rsyslog.service 2> /dev/null || true
|
|
||||||
endscript
|
|
||||||
}
|
|
||||||
/var/log/maillog {
|
|
||||||
daily
|
|
||||||
rotate {{ logrotate_interval }}
|
|
||||||
size 50M
|
|
||||||
compress
|
|
||||||
delaycompress
|
|
||||||
missingok
|
|
||||||
notifempty
|
|
||||||
sharedscripts
|
|
||||||
postrotate
|
|
||||||
/usr/bin/systemctl reload rsyslog.service 2> /dev/null || true
|
|
||||||
endscript
|
|
||||||
}
|
|
||||||
/var/log/secure {
|
|
||||||
daily
|
|
||||||
rotate {{ logrotate_interval }}
|
|
||||||
size 50M
|
|
||||||
compress
|
|
||||||
delaycompress
|
|
||||||
missingok
|
|
||||||
notifempty
|
|
||||||
sharedscripts
|
|
||||||
postrotate
|
|
||||||
/usr/bin/systemctl reload rsyslog.service 2> /dev/null || true
|
|
||||||
endscript
|
|
||||||
}
|
|
||||||
/var/log/spooler
|
|
||||||
{
|
|
||||||
daily
|
|
||||||
rotate {{ logrotate_interval }}
|
|
||||||
compress
|
|
||||||
missingok
|
|
||||||
notifempty
|
|
||||||
sharedscripts
|
|
||||||
postrotate
|
|
||||||
/usr/bin/systemctl -s HUP kill rsyslog.service >/dev/null 2>&1 || true
|
|
||||||
endscript
|
|
||||||
}
|
|
||||||
|
|
||||||
/var/log/messages {
|
|
||||||
daily
|
|
||||||
rotate {{ logrotate_interval }}
|
|
||||||
size 50M
|
|
||||||
compress
|
|
||||||
delaycompress
|
|
||||||
missingok
|
|
||||||
notifempty
|
|
||||||
sharedscripts
|
|
||||||
postrotate
|
|
||||||
/usr/bin/systemctl reload rsyslog.service 2> /dev/null || true
|
|
||||||
endscript
|
|
||||||
}
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
---
|
---
|
||||||
# Группа sudo по умолчанию — переопределяется в group_vars для конкретной ОС
|
# Группа sudo по умолчанию — переопределяется в group_vars для конкретной ОС
|
||||||
users_sudo_group: wheel
|
users_sudo_group: sudo
|
||||||
|
|
||||||
# По умолчанию разрешены все группы администраторов (переопределяется для конкретного хоста/группы)
|
# По умолчанию разрешены все группы администраторов (переопределяется для конкретного хоста/группы)
|
||||||
users_allowed_admin_groups:
|
users_allowed_admin_groups:
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue