algo/docs/setup-roles.md
2018-04-25 12:27:58 -07:00

1.8 KiB

Ansible Roles

Required roles

  • Common
    • Installs several required packages and software updates, then reboots if necessary
    • Configures network interfaces, and enables packet forwarding on them
  • VPN
    • Installs strongSwan, enables AppArmor, limits CPU and memory access, and drops user privileges
    • Builds a Certificate Authority (CA) with easy-rsa-ipsec and creates one client certificate per user
    • Bundles the appropriate certificates into Apple mobileconfig profiles for each user
    • Configures IPtables to block traffic that might pose a risk to VPN users, such as SMB/CIFS

Optional roles

  • Security Enhancements
    • Enables unattended-upgrades to ensure available patches are always applied
    • Modify features like core dumps, kernel parameters, and SUID binaries to limit possible attacks
    • Enhances SSH with modern ciphers and seccomp, and restricts access to old or unwanted features like X11 forwarding and SFTP
  • DNS-based Adblocking
    • Install the dnsmasq local resolver with a blacklist for advertising domains
    • Constrains dnsmasq with AppArmor and cgroups CPU and memory limitations
  • DNS encryption
    • Install dnscrypt-proxy
    • Constrains dingo with AppArmor and cgroups CPU and memory limitations
  • SSH Tunneling
    • Adds a restricted algo group with no shell access and limited SSH forwarding options
    • Creates one limited, local account per user and an SSH public key for each