167 lines
4.6 KiB
YAML
167 lines
4.6 KiB
YAML
---
|
|
# FlokiNET-specific security tasks
|
|
# Enhanced security features for FlokiNET servers
|
|
|
|
- name: Configure FlokiNET networking for maximum anonymity
|
|
lineinfile:
|
|
path: /etc/sysctl.conf
|
|
regexp: "{{ item.regexp }}"
|
|
line: "{{ item.line }}"
|
|
state: present
|
|
with_items:
|
|
- { regexp: '^net.ipv4.tcp_timestamps', line: 'net.ipv4.tcp_timestamps = 0' }
|
|
- { regexp: '^net.ipv4.tcp_syncookies', line: 'net.ipv4.tcp_syncookies = 1' }
|
|
- { regexp: '^net.ipv4.conf.all.accept_redirects', line: 'net.ipv4.conf.all.accept_redirects = 0' }
|
|
- { regexp: '^net.ipv6.conf.all.accept_redirects', line: 'net.ipv6.conf.all.accept_redirects = 0' }
|
|
- { regexp: '^net.ipv4.conf.all.send_redirects', line: 'net.ipv4.conf.all.send_redirects = 0' }
|
|
- { regexp: '^net.ipv4.conf.all.accept_source_route', line: 'net.ipv4.conf.all.accept_source_route = 0' }
|
|
- { regexp: '^net.ipv6.conf.all.accept_source_route', line: 'net.ipv6.conf.all.accept_source_route = 0' }
|
|
- { regexp: '^net.ipv4.conf.all.log_martians', line: 'net.ipv4.conf.all.log_martians = 1' }
|
|
notify: Apply sysctl settings
|
|
|
|
- name: Install Tor for anonymous outbound connections
|
|
apt:
|
|
name:
|
|
- tor
|
|
- torsocks
|
|
- obfs4proxy
|
|
state: present
|
|
update_cache: yes
|
|
register: tor_installed
|
|
when: use_tor_proxy | default(true)
|
|
|
|
- name: Create Tor configuration directory
|
|
file:
|
|
path: /etc/tor
|
|
state: directory
|
|
mode: '0755'
|
|
when: use_tor_proxy | default(true) and tor_installed is succeeded
|
|
|
|
- name: Configure Tor for hardened privacy settings
|
|
template:
|
|
src: torrc.j2
|
|
dest: /etc/tor/torrc
|
|
owner: root
|
|
group: root
|
|
mode: '0644'
|
|
notify: Restart Tor service
|
|
when: use_tor_proxy | default(true) and tor_installed is succeeded
|
|
|
|
- name: Configure ProxyChains for routing through Tor
|
|
template:
|
|
src: proxychains.conf.j2
|
|
dest: /etc/proxychains.conf
|
|
owner: root
|
|
group: root
|
|
mode: '0644'
|
|
when: use_tor_proxy | default(true) and tor_installed is succeeded
|
|
|
|
- name: Install iptables-persistent for firewall persistence
|
|
apt:
|
|
name: iptables-persistent
|
|
state: present
|
|
update_cache: yes
|
|
|
|
- name: Configure hardened iptables rules for FlokiNET
|
|
template:
|
|
src: iptables-rules.j2
|
|
dest: /etc/iptables/rules.v4
|
|
owner: root
|
|
group: root
|
|
mode: '0644'
|
|
notify: Apply iptables rules
|
|
|
|
- name: Create SSH security hardening script
|
|
template:
|
|
src: secure-ssh.sh.j2
|
|
dest: /opt/c2/secure-ssh.sh
|
|
owner: root
|
|
group: root
|
|
mode: '0700'
|
|
when: use_hardened_ssh | default(true)
|
|
|
|
- name: Run SSH security hardening script
|
|
command: /opt/c2/secure-ssh.sh
|
|
args:
|
|
creates: /opt/c2/.ssh_hardened
|
|
when: use_hardened_ssh | default(true)
|
|
|
|
- name: Install timezone data
|
|
apt:
|
|
name: tzdata
|
|
state: present
|
|
|
|
- name: Set timezone to UTC
|
|
timezone:
|
|
name: UTC
|
|
|
|
- name: Configure DNS to use secure DNS servers
|
|
template:
|
|
src: resolv.conf.j2
|
|
dest: /etc/resolv.conf
|
|
owner: root
|
|
group: root
|
|
mode: '0644'
|
|
when: enable_dns_encryption | default(true)
|
|
|
|
- name: Create directory for DNS cache configuration
|
|
file:
|
|
path: /etc/systemd/resolved.conf.d
|
|
state: directory
|
|
mode: '0755'
|
|
when: enable_dns_encryption | default(true)
|
|
|
|
- name: Configure DNS caching with DNSCrypt
|
|
template:
|
|
src: dnscrypt.conf.j2
|
|
dest: /etc/systemd/resolved.conf.d/dnscrypt.conf
|
|
owner: root
|
|
group: root
|
|
mode: '0644'
|
|
notify: Restart systemd-resolved
|
|
when: enable_dns_encryption | default(true)
|
|
|
|
# Configure memory security if enabled
|
|
- name: Set memory security measures
|
|
lineinfile:
|
|
path: /etc/sysctl.conf
|
|
line: "{{ item }}"
|
|
state: present
|
|
with_items:
|
|
- "vm.swappiness=0"
|
|
- "kernel.randomize_va_space=2"
|
|
when: secure_memory | default(true)
|
|
notify: Apply sysctl settings
|
|
|
|
# Configure history settings if disabled
|
|
- name: Disable system history
|
|
lineinfile:
|
|
path: "{{ item.file }}"
|
|
line: "{{ item.line }}"
|
|
state: present
|
|
create: yes
|
|
with_nested:
|
|
- [{ file: '/etc/profile' }, { file: '/root/.bashrc' }]
|
|
- [{ line: 'export HISTFILESIZE=0' }, { line: 'export HISTSIZE=0' }, { line: 'unset HISTFILE' }]
|
|
when: disable_history | default(true)
|
|
|
|
handlers:
|
|
- name: Apply sysctl settings
|
|
command: sysctl -p
|
|
|
|
- name: Restart Tor service
|
|
service:
|
|
name: tor
|
|
state: restarted
|
|
enabled: yes
|
|
when: use_tor_proxy | default(true)
|
|
|
|
- name: Apply iptables rules
|
|
command: iptables-restore < /etc/iptables/rules.v4
|
|
|
|
- name: Restart systemd-resolved
|
|
service:
|
|
name: systemd-resolved
|
|
state: restarted
|
|
enabled: yes
|
|
when: enable_dns_encryption | default(true) |