trailofbits / algo

Set up a personal VPN in the cloud
https://blog.trailofbits.com/2016/12/12/meet-algo-the-vpn-that-works/
GNU Affero General Public License v3.0
28.66k stars 2.32k forks source link

EC2 AWS instance volumes aren't encrypted #989

Closed TC1977 closed 6 years ago

TC1977 commented 6 years ago

OS / Environment (where do you run Algo on)

Darwin Mycomputername.local 17.5.0 Darwin Kernel Version 17.5.0: Fri Apr 13 19:32:32 PDT 2018; root:xnu-4570.51.2~1/RELEASE_X86_64 x86_64

Cloud Provider (where do you deploy Algo to)

AWS EC2

Summary of the problem

I'm attempting to help someone on Gitter and just installed an instance on AWS EC2. Looking at the console, the volume isn't encrypted. Wasn't this encrypted previously?

Steps to reproduce the behavior

  1. Install Algo onto EC2 AWS
  2. Check the console, review the volume info (or install awscli)

Full log

(env) Mycomputername:algo-master-2 admin$ ./algo

  What provider would you like to use?
    1. DigitalOcean
    2. Amazon EC2
    3. Microsoft Azure
    4. Google Compute Engine
    5. Scaleway
    6. OpenStack (DreamCompute optimised)
    7. Install to existing Ubuntu 16.04 server (Advanced)

Enter the number of your desired provider
: 2

Enter your aws_access_key (http://docs.aws.amazon.com/general/latest/gr/managing-aws-access-keys.html)
Note: Make sure to use an IAM user with an acceptable policy attached (see https://github.com/trailofbits/algo/blob/master/docs/deploy-from-ansible.md).
[pasted values will not be displayed]
[AKIA...]: 

Enter your aws_secret_key (http://docs.aws.amazon.com/general/latest/gr/managing-aws-access-keys.html)
[pasted values will not be displayed]
[ABCD...]: 

Name the vpn server:
[algo]: algo1

  What region should the server be located in?
    1.   us-east-1           US East (N. Virginia)
    2.   us-east-2           US East (Ohio)
    3.   us-west-1           US West (N. California)
    4.   us-west-2           US West (Oregon)
    5.   ca-central-1        Canada (Central)
    6.   eu-central-1        EU (Frankfurt)
    7.   eu-west-1           EU (Ireland)
    8.   eu-west-2           EU (London)
    9.   eu-west-3           EU (Paris)
    10.  ap-northeast-1      Asia Pacific (Tokyo)
    11.  ap-northeast-2      Asia Pacific (Seoul)
    12.  ap-northeast-3      Asia Pacific (Osaka-Local)
    13.  ap-southeast-1      Asia Pacific (Singapore)
    14.  ap-southeast-2      Asia Pacific (Sydney)
    15.  ap-south-1          Asia Pacific (Mumbai)
    16.  sa-east-1           South America (São Paulo)

Enter the number of your desired region:
[1]: 1

Do you want macOS/iOS clients to enable "VPN On Demand" when connected to cellular networks?
[y/N]: y

Do you want macOS/iOS clients to enable "VPN On Demand" when connected to Wi-Fi?
[y/N]: y

List the names of trusted Wi-Fi networks (if any) that macOS/iOS clients exclude from using the VPN (e.g., your home network. Comma-separated value, e.g., HomeNet,OfficeWifi,AlgoWiFi)
: 

Do you want to install a DNS resolver on this VPN server, to block ads while surfing?
[y/N]: y

Do you want each user to have their own account for SSH tunneling?
[y/N]: n

Do you want the VPN to support Windows 10 or Linux Desktop clients? (enables compatible ciphers and key exchange, less secure)
[y/N]: n

Do you want to retain the CA key? (required to add users in the future, but less secure)
[y/N]: n
 [WARNING]: While constructing a mapping from /Users/admin/Downloads/algo-master-2/roles/cloud-scaleway/tasks/main.yml, line 73, column
11, found a duplicate dict key (enable_ipv6). Using last defined value only.

PLAY [Configure the server] ************************************************************************************************************

TASK [Gathering Facts] *****************************************************************************************************************
ok: [localhost]

TASK [Local pre-tasks] *****************************************************************************************************************
included: /Users/admin/Downloads/algo-master-2/playbooks/local.yml for localhost

TASK [Generate the SSH private key] ****************************************************************************************************
changed: [localhost]

TASK [Generate the SSH public key] *****************************************************************************************************
ok: [localhost]

TASK [Change mode for the SSH private key] *********************************************************************************************
ok: [localhost]

TASK [Ensure the dynamic inventory exists] *********************************************************************************************
changed: [localhost]

TASK [cloud-ec2 : set_fact] ************************************************************************************************************
ok: [localhost]

TASK [cloud-ec2 : Locate official AMI for region] **************************************************************************************
ok: [localhost]

TASK [cloud-ec2 : set_fact] ************************************************************************************************************
ok: [localhost]

TASK [cloud-ec2 : include_tasks] *******************************************************************************************************
included: /Users/admin/Downloads/algo-master-2/roles/cloud-ec2/tasks/cloudformation.yml for localhost

TASK [cloud-ec2 : Deploy the template] *************************************************************************************************
changed: [localhost]

TASK [cloud-ec2 : Add new instance to host group] **************************************************************************************
changed: [localhost]

TASK [cloud-ec2 : set_fact] ************************************************************************************************************
ok: [localhost]

TASK [cloud-ec2 : Get EC2 instances] ***************************************************************************************************
ok: [localhost]

TASK [cloud-ec2 : Ensure the group ec2 exists in the dynamic inventory file] ***********************************************************
changed: [localhost]

TASK [cloud-ec2 : Populate the dynamic inventory] **************************************************************************************
changed: [localhost] => (item={u'root_device_type': u'ebs', u'private_dns_name': u'ip-172-16-255-117.ec2.internal', u'cpu_options': {u'core_count': 1, u'threads_per_core': 1}, u'security_groups': [{u'group_id': u'sg-501e2118', u'group_name': u'algo1-InstanceSecurityGroup-1UAJFRQJMON2S'}], u'monitoring': {u'state': u'disabled'}, u'subnet_id': u'subnet-ea0894a0', u'ebs_optimized': False, u'state': {u'code': 16, u'name': u'running'}, u'source_dest_check': True, u'client_token': u'algo1-EC2In-S9P881PJWUQ7', u'virtualization_type': u'hvm', u'architecture': u'x86_64', u'public_ip_address': u'xxx.xxx.xxx.xxx', u'tags': {u'Environment': u'Algo', u'aws:cloudformation:stack-name': u'algo1', u'aws:cloudformation:logical-id': u'EC2Instance', u'aws:cloudformation:stack-id': u'arn:aws:cloudformation:us-east-1:276898828908:stack/algo1/691d51b0-6794-11e8-a61b-500c524058f2', u'Name': u'Algo'}, u'image_id': u'ami-432eb53c', u'ena_support': True, u'public_dns_name': u'ec2-18-233-70-170.compute-1.amazonaws.com', u'block_device_mappings': [{u'device_name': u'/dev/sda1', u'ebs': {u'status': u'attached', u'delete_on_termination': True, u'attach_time': u'2018-06-04T01:14:14+00:00', u'volume_id': u'vol-0b98a27f90ee3951d'}}], u'placement': {u'group_name': u'', u'tenancy': u'default', u'availability_zone': u'us-east-1d'}, u'ami_launch_index': 0, u'hypervisor': u'xen', u'network_interfaces': [{u'status': u'in-use', u'description': u'', u'subnet_id': u'subnet-ea0894a0', u'ipv6_addresses': [{u'ipv6_address': u'2600:1f18:648c:700:ba42:77fa:f479:9ad7'}], u'network_interface_id': u'eni-f4dffd65', u'private_dns_name': u'ip-172-16-255-117.ec2.internal', u'attachment': {u'status': u'attached', u'device_index': 0, u'attachment_id': u'eni-attach-9431929c', u'delete_on_termination': True, u'attach_time': u'2018-06-04T01:14:14+00:00'}, u'private_ip_addresses': [{u'private_ip_address': u'172.16.255.117', u'private_dns_name': u'ip-172-16-255-117.ec2.internal', u'association': {u'public_ip': u'xxx.xxx.xxx.xxx', u'public_dns_name': u'ec2-18-233-70-170.compute-1.amazonaws.com', u'ip_owner_id': u'276898828908'}, u'primary': True}], u'mac_address': u'0a:f1:ba:28:8c:b0', u'private_ip_address': u'172.16.255.117', u'vpc_id': u'vpc-a9e4edd2', u'groups': [{u'group_id': u'sg-501e2118', u'group_name': u'algo1-InstanceSecurityGroup-1UAJFRQJMON2S'}], u'association': {u'public_ip': u'xxx.xxx.xxx.xxx', u'public_dns_name': u'ec2-18-233-70-170.compute-1.amazonaws.com', u'ip_owner_id': u'276898828908'}, u'source_dest_check': True, u'owner_id': u'276898828908'}], u'launch_time': u'2018-06-04T01:14:14+00:00', u'instance_id': u'i-0aec0c46ae6604e27', u'instance_type': u't2.micro', u'root_device_name': u'/dev/sda1', u'state_transition_reason': u'', u'private_ip_address': u'172.16.255.117', u'vpc_id': u'vpc-a9e4edd2', u'product_codes': []})

TASK [Local post-tasks] ****************************************************************************************************************
included: /Users/admin/Downloads/algo-master-2/playbooks/post.yml for localhost

TASK [Wait until SSH becomes ready...] *************************************************************************************************
ok: [localhost]

TASK [A short pause, in order to be sure the instance is ready] ************************************************************************
Pausing for 20 seconds
(ctrl+C then 'C' = continue early, ctrl+C then 'A' = abort)
ok: [localhost]

TASK [include_tasks] *******************************************************************************************************************
included: /Users/admin/Downloads/algo-master-2/playbooks/local_ssh.yml for localhost

TASK [Ensure the local ssh directory is exist] *****************************************************************************************
ok: [localhost]

TASK [Copy the algo ssh key to the local ssh directory] ********************************************************************************
changed: [localhost]

PLAY [Configure the server and install required software] ******************************************************************************

TASK [Common pre-tasks] ****************************************************************************************************************
included: /Users/admin/Downloads/algo-master-2/playbooks/common.yml for xxx.xxx.xxx.xxx

TASK [Check the system] ****************************************************************************************************************
changed: [xxx.xxx.xxx.xxx]

TASK [Ubuntu pre-tasks] ****************************************************************************************************************
included: /Users/admin/Downloads/algo-master-2/playbooks/ubuntu.yml for xxx.xxx.xxx.xxx

TASK [Ubuntu | Install prerequisites] **************************************************************************************************
changed: [xxx.xxx.xxx.xxx] => (item=sleep 10)
changed: [xxx.xxx.xxx.xxx] => (item=apt-get update -qq)
changed: [xxx.xxx.xxx.xxx] => (item=apt-get install -qq -y python2.7 sudo)

TASK [Ubuntu | Configure defaults] *****************************************************************************************************
changed: [xxx.xxx.xxx.xxx]

TASK [FreeBSD pre-tasks] ***************************************************************************************************************
skipping: [xxx.xxx.xxx.xxx]

TASK [include_tasks] *******************************************************************************************************************
included: /Users/admin/Downloads/algo-master-2/playbooks/facts/main.yml for xxx.xxx.xxx.xxx

TASK [Gather Facts] ********************************************************************************************************************
ok: [xxx.xxx.xxx.xxx]

TASK [Ensure the algo ssh key exist on the server] *************************************************************************************
ok: [xxx.xxx.xxx.xxx]

TASK [Check if IPv6 configured] ********************************************************************************************************
ok: [xxx.xxx.xxx.xxx]

TASK [Set facts if the deployment in a cloud] ******************************************************************************************
ok: [xxx.xxx.xxx.xxx]

TASK [Generate password for the CA key] ************************************************************************************************
changed: [xxx.xxx.xxx.xxx -> localhost]

TASK [Generate p12 export password] ****************************************************************************************************
changed: [xxx.xxx.xxx.xxx -> localhost]

TASK [Define password facts] ***********************************************************************************************************
ok: [xxx.xxx.xxx.xxx]

TASK [Define the commonName] ***********************************************************************************************************
ok: [xxx.xxx.xxx.xxx]

TASK [common : include_tasks] **********************************************************************************************************
included: /Users/admin/Downloads/algo-master-2/roles/common/tasks/ubuntu.yml for xxx.xxx.xxx.xxx

TASK [common : Install software updates] ***********************************************************************************************
changed: [xxx.xxx.xxx.xxx]

TASK [common : Upgrade the ca certificates] ********************************************************************************************
ok: [xxx.xxx.xxx.xxx]

TASK [common : Check if reboot is required] ********************************************************************************************
changed: [xxx.xxx.xxx.xxx]

TASK [common : Reboot] *****************************************************************************************************************
skipping: [xxx.xxx.xxx.xxx]

TASK [common : Wait until SSH becomes ready...] ****************************************************************************************
skipping: [xxx.xxx.xxx.xxx]

TASK [common : Include unatteded upgrades configuration] *******************************************************************************
included: /Users/admin/Downloads/algo-master-2/roles/common/tasks/unattended-upgrades.yml for xxx.xxx.xxx.xxx

TASK [common : Install unattended-upgrades] ********************************************************************************************
ok: [xxx.xxx.xxx.xxx]

TASK [common : Configure unattended-upgrades] ******************************************************************************************
changed: [xxx.xxx.xxx.xxx]

TASK [common : Periodic upgrades configured] *******************************************************************************************
changed: [xxx.xxx.xxx.xxx]

TASK [common : Disable MOTD on login and SSHD] *****************************************************************************************
changed: [xxx.xxx.xxx.xxx] => (item={u'regexp': u'^session.*optional.*pam_motd.so.*', u'line': u'# MOTD DISABLED', u'file': u'/etc/pam.d/login'})
changed: [xxx.xxx.xxx.xxx] => (item={u'regexp': u'^session.*optional.*pam_motd.so.*', u'line': u'# MOTD DISABLED', u'file': u'/etc/pam.d/sshd'})

TASK [common : Loopback for services configured] ***************************************************************************************
changed: [xxx.xxx.xxx.xxx]

TASK [common : systemd-networkd enabled and started] ***********************************************************************************
ok: [xxx.xxx.xxx.xxx]

RUNNING HANDLER [common : restart systemd-networkd] ************************************************************************************
changed: [xxx.xxx.xxx.xxx]

TASK [common : Check apparmor support] *************************************************************************************************
changed: [xxx.xxx.xxx.xxx]

TASK [common : set_fact] ***************************************************************************************************************
ok: [xxx.xxx.xxx.xxx]

TASK [common : set_fact] ***************************************************************************************************************
ok: [xxx.xxx.xxx.xxx]

TASK [common : include_tasks] **********************************************************************************************************
skipping: [xxx.xxx.xxx.xxx]

TASK [common : Install tools] **********************************************************************************************************
ok: [xxx.xxx.xxx.xxx] => (item=git)
ok: [xxx.xxx.xxx.xxx] => (item=screen)
changed: [xxx.xxx.xxx.xxx] => (item=apparmor-utils)
ok: [xxx.xxx.xxx.xxx] => (item=uuid-runtime)
ok: [xxx.xxx.xxx.xxx] => (item=coreutils)
changed: [xxx.xxx.xxx.xxx] => (item=iptables-persistent)
changed: [xxx.xxx.xxx.xxx] => (item=cgroup-tools)
ok: [xxx.xxx.xxx.xxx] => (item=openssl,linux-headers-4.15.0-1009-aws)

TASK [common : Sysctl tuning] **********************************************************************************************************
changed: [xxx.xxx.xxx.xxx] => (item={u'item': u'net.ipv4.ip_forward', u'value': 1})
changed: [xxx.xxx.xxx.xxx] => (item={u'item': u'net.ipv4.conf.all.forwarding', u'value': 1})
changed: [xxx.xxx.xxx.xxx] => (item={u'item': u'net.ipv6.conf.all.forwarding', u'value': 1})

TASK [dns_encryption : Include tasks for Ubuntu] ***************************************************************************************
included: /Users/admin/Downloads/algo-master-2/roles/dns_encryption/tasks/ubuntu.yml for xxx.xxx.xxx.xxx

TASK [dns_encryption : Add the repository] *********************************************************************************************
changed: [xxx.xxx.xxx.xxx]

TASK [dns_encryption : Install dnscrypt-proxy] *****************************************************************************************
changed: [xxx.xxx.xxx.xxx]

TASK [dns_encryption : Ubuntu | Unbound profile for apparmor configured] ***************************************************************
changed: [xxx.xxx.xxx.xxx]

TASK [dns_encryption : Ubuntu | Enforce the dnscrypt-proxy AppArmor policy] ************************************************************
ok: [xxx.xxx.xxx.xxx]

TASK [dns_encryption : Ubuntu | Ensure that the dnscrypt-proxy service directory exist] ************************************************
changed: [xxx.xxx.xxx.xxx]

TASK [dns_encryption : Ubuntu | Add capabilities to bind ports] ************************************************************************
changed: [xxx.xxx.xxx.xxx]

TASK [dns_encryption : Include tasks for FreeBSD] **************************************************************************************
skipping: [xxx.xxx.xxx.xxx]

TASK [dns_encryption : dnscrypt-proxy configured] **************************************************************************************
changed: [xxx.xxx.xxx.xxx]

TASK [dns_encryption : dnscrypt-proxy enabled and started] *****************************************************************************
ok: [xxx.xxx.xxx.xxx]

RUNNING HANDLER [dns_encryption : restart dnscrypt-proxy] ******************************************************************************
changed: [xxx.xxx.xxx.xxx]

TASK [dns_adblocking : The DNS tag is defined] *****************************************************************************************
ok: [xxx.xxx.xxx.xxx]

TASK [dns_adblocking : Dnsmasq installed] **********************************************************************************************
changed: [xxx.xxx.xxx.xxx]

TASK [dns_adblocking : Ensure that the dnsmasq user exist] *****************************************************************************
changed: [xxx.xxx.xxx.xxx]

TASK [dns_adblocking : The dnsmasq directory created] **********************************************************************************
changed: [xxx.xxx.xxx.xxx]

TASK [dns_adblocking : include_tasks] **************************************************************************************************
included: /Users/admin/Downloads/algo-master-2/roles/dns_adblocking/tasks/ubuntu.yml for xxx.xxx.xxx.xxx

TASK [dns_adblocking : Ubuntu | Dnsmasq profile for apparmor configured] ***************************************************************
changed: [xxx.xxx.xxx.xxx]

TASK [dns_adblocking : Ubuntu | Enforce the dnsmasq AppArmor policy] *******************************************************************
changed: [xxx.xxx.xxx.xxx]

TASK [dns_adblocking : Ubuntu | Ensure that the dnsmasq service directory exist] *******************************************************
changed: [xxx.xxx.xxx.xxx]

TASK [dns_adblocking : Ubuntu | Setup the cgroup limitations for the ipsec daemon] *****************************************************
changed: [xxx.xxx.xxx.xxx]

TASK [dns_adblocking : include_tasks] **************************************************************************************************
skipping: [xxx.xxx.xxx.xxx]

TASK [dns_adblocking : Dnsmasq configured] *********************************************************************************************
changed: [xxx.xxx.xxx.xxx]

TASK [dns_adblocking : Adblock script created] *****************************************************************************************
changed: [xxx.xxx.xxx.xxx]

TASK [dns_adblocking : Adblock script added to cron] ***********************************************************************************
changed: [xxx.xxx.xxx.xxx]

TASK [dns_adblocking : Update adblock hosts] *******************************************************************************************
changed: [xxx.xxx.xxx.xxx]

RUNNING HANDLER [dns_adblocking : restart dnsmasq] *************************************************************************************
changed: [xxx.xxx.xxx.xxx]

RUNNING HANDLER [vpn : daemon-reload] **************************************************************************************************
changed: [xxx.xxx.xxx.xxx]

TASK [dns_adblocking : Dnsmasq enabled and started] ************************************************************************************
ok: [xxx.xxx.xxx.xxx]

TASK [wireguard : WireGuard repository configured] *************************************************************************************
changed: [xxx.xxx.xxx.xxx]

TASK [wireguard : WireGuard installed] *************************************************************************************************
changed: [xxx.xxx.xxx.xxx]

TASK [wireguard : Ensure the required directories exist] *******************************************************************************
changed: [xxx.xxx.xxx.xxx -> localhost] => (item=private)
changed: [xxx.xxx.xxx.xxx -> localhost] => (item=public)

TASK [wireguard : Delete the lock files] ***********************************************************************************************
skipping: [xxx.xxx.xxx.xxx] => (item=dan) 
skipping: [xxx.xxx.xxx.xxx] => (item=jack) 
skipping: [xxx.xxx.xxx.xxx] => (item=xxx.xxx.xxx.xxx) 

TASK [wireguard : Generate private keys] ***********************************************************************************************
changed: [xxx.xxx.xxx.xxx] => (item=dan)
changed: [xxx.xxx.xxx.xxx] => (item=jack)
changed: [xxx.xxx.xxx.xxx] => (item=xxx.xxx.xxx.xxx)
 [WARNING]: As of Ansible 2.4, the parameter 'executable' is no longer supported with the 'command' module. Not using 'bash'.

TASK [wireguard : Save private keys] ***************************************************************************************************
changed: [xxx.xxx.xxx.xxx] => (item=None)
changed: [xxx.xxx.xxx.xxx] => (item=None)
changed: [xxx.xxx.xxx.xxx] => (item=None)

TASK [wireguard : Touch the lock file] *************************************************************************************************
changed: [xxx.xxx.xxx.xxx] => (item=dan)
changed: [xxx.xxx.xxx.xxx] => (item=jack)
changed: [xxx.xxx.xxx.xxx] => (item=xxx.xxx.xxx.xxx)

TASK [wireguard : Generate public keys] ************************************************************************************************
ok: [xxx.xxx.xxx.xxx] => (item=dan)
ok: [xxx.xxx.xxx.xxx] => (item=jack)
ok: [xxx.xxx.xxx.xxx] => (item=xxx.xxx.xxx.xxx)

TASK [wireguard : Save public keys] ****************************************************************************************************
changed: [xxx.xxx.xxx.xxx] => (item=None)
changed: [xxx.xxx.xxx.xxx] => (item=None)
changed: [xxx.xxx.xxx.xxx] => (item=None)

TASK [wireguard : WireGuard configured] ************************************************************************************************
changed: [xxx.xxx.xxx.xxx]

TASK [wireguard : WireGuard reload-module-on-update] ***********************************************************************************
changed: [xxx.xxx.xxx.xxx]

TASK [wireguard : WireGuard users config generated] ************************************************************************************
changed: [xxx.xxx.xxx.xxx -> localhost] => (item=(0, u'dan'))
changed: [xxx.xxx.xxx.xxx -> localhost] => (item=(1, u'jack'))

TASK [wireguard : WireGuard enabled and started] ***************************************************************************************
changed: [xxx.xxx.xxx.xxx]

RUNNING HANDLER [wireguard : restart wireguard] ****************************************************************************************
changed: [xxx.xxx.xxx.xxx]

TASK [vpn : Ensure that the strongswan group exist] ************************************************************************************
changed: [xxx.xxx.xxx.xxx]

TASK [vpn : Ensure that the strongswan user exist] *************************************************************************************
changed: [xxx.xxx.xxx.xxx]

TASK [vpn : include_tasks] *************************************************************************************************************
included: /Users/admin/Downloads/algo-master-2/roles/vpn/tasks/ubuntu.yml for xxx.xxx.xxx.xxx

TASK [vpn : set_fact] ******************************************************************************************************************
ok: [xxx.xxx.xxx.xxx]

TASK [vpn : Ubuntu | Install strongSwan] ***********************************************************************************************
changed: [xxx.xxx.xxx.xxx]

TASK [vpn : Ubuntu | Enforcing ipsec with apparmor] ************************************************************************************
changed: [xxx.xxx.xxx.xxx] => (item=/usr/lib/ipsec/charon)
changed: [xxx.xxx.xxx.xxx] => (item=/usr/lib/ipsec/lookip)
changed: [xxx.xxx.xxx.xxx] => (item=/usr/lib/ipsec/stroke)

TASK [vpn : Ubuntu | Enable services] **************************************************************************************************
ok: [xxx.xxx.xxx.xxx] => (item=apparmor)
ok: [xxx.xxx.xxx.xxx] => (item=strongswan)
ok: [xxx.xxx.xxx.xxx] => (item=netfilter-persistent)

TASK [vpn : Ubuntu | Ensure that the strongswan service directory exist] ***************************************************************
changed: [xxx.xxx.xxx.xxx]

TASK [vpn : Ubuntu | Setup the cgroup limitations for the ipsec daemon] ****************************************************************
changed: [xxx.xxx.xxx.xxx]

TASK [vpn : include_tasks] *************************************************************************************************************
included: /Users/admin/Downloads/algo-master-2/roles/vpn/tasks/iptables.yml for xxx.xxx.xxx.xxx

TASK [vpn : Iptables configured] *******************************************************************************************************
changed: [xxx.xxx.xxx.xxx] => (item={u'dest': u'/etc/iptables/rules.v4', u'src': u'rules.v4.j2'})

TASK [vpn : Iptables configured] *******************************************************************************************************
changed: [xxx.xxx.xxx.xxx] => (item={u'dest': u'/etc/iptables/rules.v6', u'src': u'rules.v6.j2'})

TASK [vpn : include_tasks] *************************************************************************************************************
skipping: [xxx.xxx.xxx.xxx]

TASK [vpn : Install strongSwan] ********************************************************************************************************
ok: [xxx.xxx.xxx.xxx]

TASK [vpn : include_tasks] *************************************************************************************************************
included: /Users/admin/Downloads/algo-master-2/roles/vpn/tasks/ipsec_configuration.yml for xxx.xxx.xxx.xxx

TASK [vpn : Setup the config files from our templates] *********************************************************************************
changed: [xxx.xxx.xxx.xxx] => (item={u'dest': u'/etc/strongswan.conf', u'src': u'strongswan.conf.j2', u'group': u'root', u'mode': u'0644', u'owner': u'root'})
changed: [xxx.xxx.xxx.xxx] => (item={u'dest': u'/etc/ipsec.conf', u'src': u'ipsec.conf.j2', u'group': u'root', u'mode': u'0644', u'owner': u'root'})
changed: [xxx.xxx.xxx.xxx] => (item={u'dest': u'/etc/ipsec.secrets', u'src': u'ipsec.secrets.j2', u'group': u'root', u'mode': u'0600', u'owner': u'strongswan'})

TASK [vpn : Get loaded plugins] ********************************************************************************************************
changed: [xxx.xxx.xxx.xxx]

TASK [vpn : Disable unneeded plugins] **************************************************************************************************
changed: [xxx.xxx.xxx.xxx] => (item=updown)
changed: [xxx.xxx.xxx.xxx] => (item=md5)
skipping: [xxx.xxx.xxx.xxx] => (item=random) 
skipping: [xxx.xxx.xxx.xxx] => (item=socket-default) 
changed: [xxx.xxx.xxx.xxx] => (item=bypass-lan)
skipping: [xxx.xxx.xxx.xxx] => (item=nonce) 
changed: [xxx.xxx.xxx.xxx] => (item=constraints)
skipping: [xxx.xxx.xxx.xxx] => (item=pem) 
changed: [xxx.xxx.xxx.xxx] => (item=aesni)
skipping: [xxx.xxx.xxx.xxx] => (item=stroke) 
skipping: [xxx.xxx.xxx.xxx] => (item=hmac) 
skipping: [xxx.xxx.xxx.xxx] => (item=sha2) 
changed: [xxx.xxx.xxx.xxx] => (item=gmp)
changed: [xxx.xxx.xxx.xxx] => (item=pkcs1)
skipping: [xxx.xxx.xxx.xxx] => (item=pubkey) 
skipping: [xxx.xxx.xxx.xxx] => (item=pkcs12) 
changed: [xxx.xxx.xxx.xxx] => (item=eap-mschapv2)
changed: [xxx.xxx.xxx.xxx] => (item=mgf1)
changed: [xxx.xxx.xxx.xxx] => (item=attr)
changed: [xxx.xxx.xxx.xxx] => (item=sshkey)
changed: [xxx.xxx.xxx.xxx] => (item=xauth-generic)
skipping: [xxx.xxx.xxx.xxx] => (item=pkcs8) 
changed: [xxx.xxx.xxx.xxx] => (item=fips-prf)
skipping: [xxx.xxx.xxx.xxx] => (item=gcm) 
skipping: [xxx.xxx.xxx.xxx] => (item=pgp) 
changed: [xxx.xxx.xxx.xxx] => (item=agent)
changed: [xxx.xxx.xxx.xxx] => (item=sha1)
changed: [xxx.xxx.xxx.xxx] => (item=rc2)
skipping: [xxx.xxx.xxx.xxx] => (item=aes) 
skipping: [xxx.xxx.xxx.xxx] => (item=openssl) 
changed: [xxx.xxx.xxx.xxx] => (item=md4)
skipping: [xxx.xxx.xxx.xxx] => (item=kernel-netlink) 
changed: [xxx.xxx.xxx.xxx] => (item=resolve)
skipping: [xxx.xxx.xxx.xxx] => (item=revocation) 
changed: [xxx.xxx.xxx.xxx] => (item=dnskey)
changed: [xxx.xxx.xxx.xxx] => (item=xcbc)
skipping: [xxx.xxx.xxx.xxx] => (item=pkcs7) 
skipping: [xxx.xxx.xxx.xxx] => (item=x509) 
changed: [xxx.xxx.xxx.xxx] => (item=connmark)
changed: [xxx.xxx.xxx.xxx] => (item=counters)

TASK [vpn : Ensure that required plugins are enabled] **********************************************************************************
skipping: [xxx.xxx.xxx.xxx] => (item=updown) 
skipping: [xxx.xxx.xxx.xxx] => (item=md5) 
changed: [xxx.xxx.xxx.xxx] => (item=random)
changed: [xxx.xxx.xxx.xxx] => (item=socket-default)
skipping: [xxx.xxx.xxx.xxx] => (item=bypass-lan) 
changed: [xxx.xxx.xxx.xxx] => (item=nonce)
skipping: [xxx.xxx.xxx.xxx] => (item=constraints) 
changed: [xxx.xxx.xxx.xxx] => (item=pem)
skipping: [xxx.xxx.xxx.xxx] => (item=aesni) 
changed: [xxx.xxx.xxx.xxx] => (item=stroke)
changed: [xxx.xxx.xxx.xxx] => (item=hmac)
changed: [xxx.xxx.xxx.xxx] => (item=sha2)
skipping: [xxx.xxx.xxx.xxx] => (item=gmp) 
skipping: [xxx.xxx.xxx.xxx] => (item=pkcs1) 
changed: [xxx.xxx.xxx.xxx] => (item=pubkey)
changed: [xxx.xxx.xxx.xxx] => (item=pkcs12)
skipping: [xxx.xxx.xxx.xxx] => (item=eap-mschapv2) 
skipping: [xxx.xxx.xxx.xxx] => (item=mgf1) 
skipping: [xxx.xxx.xxx.xxx] => (item=attr) 
skipping: [xxx.xxx.xxx.xxx] => (item=sshkey) 
skipping: [xxx.xxx.xxx.xxx] => (item=xauth-generic) 
changed: [xxx.xxx.xxx.xxx] => (item=pkcs8)
skipping: [xxx.xxx.xxx.xxx] => (item=fips-prf) 
changed: [xxx.xxx.xxx.xxx] => (item=gcm)
changed: [xxx.xxx.xxx.xxx] => (item=pgp)
skipping: [xxx.xxx.xxx.xxx] => (item=agent) 
skipping: [xxx.xxx.xxx.xxx] => (item=sha1) 
skipping: [xxx.xxx.xxx.xxx] => (item=rc2) 
changed: [xxx.xxx.xxx.xxx] => (item=aes)
changed: [xxx.xxx.xxx.xxx] => (item=openssl)
skipping: [xxx.xxx.xxx.xxx] => (item=md4) 
changed: [xxx.xxx.xxx.xxx] => (item=kernel-netlink)
skipping: [xxx.xxx.xxx.xxx] => (item=resolve) 
changed: [xxx.xxx.xxx.xxx] => (item=revocation)
skipping: [xxx.xxx.xxx.xxx] => (item=dnskey) 
skipping: [xxx.xxx.xxx.xxx] => (item=xcbc) 
changed: [xxx.xxx.xxx.xxx] => (item=pkcs7)
changed: [xxx.xxx.xxx.xxx] => (item=x509)
skipping: [xxx.xxx.xxx.xxx] => (item=connmark) 
skipping: [xxx.xxx.xxx.xxx] => (item=counters) 

TASK [vpn : include_tasks] *************************************************************************************************************
included: /Users/admin/Downloads/algo-master-2/roles/vpn/tasks/openssl.yml for xxx.xxx.xxx.xxx

TASK [vpn : Set subjectAltName as a fact] **********************************************************************************************
ok: [xxx.xxx.xxx.xxx -> localhost]

TASK [vpn : Ensure the pki directory does not exist] ***********************************************************************************
skipping: [xxx.xxx.xxx.xxx]

TASK [vpn : Ensure the pki directories exist] ******************************************************************************************
changed: [xxx.xxx.xxx.xxx -> localhost] => (item=ecparams)
changed: [xxx.xxx.xxx.xxx -> localhost] => (item=certs)
changed: [xxx.xxx.xxx.xxx -> localhost] => (item=crl)
changed: [xxx.xxx.xxx.xxx -> localhost] => (item=newcerts)
changed: [xxx.xxx.xxx.xxx -> localhost] => (item=private)
changed: [xxx.xxx.xxx.xxx -> localhost] => (item=reqs)

TASK [vpn : Ensure the files exist] ****************************************************************************************************
changed: [xxx.xxx.xxx.xxx -> localhost] => (item=.rnd)
changed: [xxx.xxx.xxx.xxx -> localhost] => (item=private/.rnd)
changed: [xxx.xxx.xxx.xxx -> localhost] => (item=index.txt)
changed: [xxx.xxx.xxx.xxx -> localhost] => (item=index.txt.attr)
changed: [xxx.xxx.xxx.xxx -> localhost] => (item=serial)

TASK [vpn : Generate the openssl server configs] ***************************************************************************************
changed: [xxx.xxx.xxx.xxx -> localhost]

TASK [vpn : Build the CA pair] *********************************************************************************************************
changed: [xxx.xxx.xxx.xxx -> localhost]

TASK [vpn : Copy the CA certificate] ***************************************************************************************************
changed: [xxx.xxx.xxx.xxx -> localhost]

TASK [vpn : Generate the serial number] ************************************************************************************************
changed: [xxx.xxx.xxx.xxx -> localhost]

TASK [vpn : Build the server pair] *****************************************************************************************************
changed: [xxx.xxx.xxx.xxx -> localhost]

TASK [vpn : Build the client's pair] ***************************************************************************************************
changed: [xxx.xxx.xxx.xxx -> localhost] => (item=dan)
changed: [xxx.xxx.xxx.xxx -> localhost] => (item=jack)

TASK [vpn : Build the client's p12] ****************************************************************************************************
changed: [xxx.xxx.xxx.xxx -> localhost] => (item=dan)
changed: [xxx.xxx.xxx.xxx -> localhost] => (item=jack)

TASK [vpn : Copy the p12 certificates] *************************************************************************************************
changed: [xxx.xxx.xxx.xxx -> localhost] => (item=dan)
changed: [xxx.xxx.xxx.xxx -> localhost] => (item=jack)

TASK [vpn : Get active users] **********************************************************************************************************
changed: [xxx.xxx.xxx.xxx -> localhost]

TASK [vpn : Revoke non-existing users] *************************************************************************************************
skipping: [xxx.xxx.xxx.xxx] => (item=dan) 
skipping: [xxx.xxx.xxx.xxx] => (item=jack) 

TASK [vpn : Genereate new CRL file] ****************************************************************************************************
skipping: [xxx.xxx.xxx.xxx]

TASK [vpn : Copy the CRL to the vpn server] ********************************************************************************************
skipping: [xxx.xxx.xxx.xxx]

TASK [vpn : include_tasks] *************************************************************************************************************
included: /Users/admin/Downloads/algo-master-2/roles/vpn/tasks/distribute_keys.yml for xxx.xxx.xxx.xxx

TASK [vpn : Copy the keys to the strongswan directory] *********************************************************************************
changed: [xxx.xxx.xxx.xxx] => (item={u'dest': u'/etc/ipsec.d/cacerts/ca.crt', u'src': u'configs/xxx.xxx.xxx.xxx/pki/cacert.pem', u'group': u'root', u'mode': u'0600', u'owner': u'strongswan'})
changed: [xxx.xxx.xxx.xxx] => (item={u'dest': u'/etc/ipsec.d/certs/xxx.xxx.xxx.xxx.crt', u'src': u'configs/xxx.xxx.xxx.xxx/pki/certs/xxx.xxx.xxx.xxx.crt', u'group': u'root', u'mode': u'0600', u'owner': u'strongswan'})
changed: [xxx.xxx.xxx.xxx] => (item={u'dest': u'/etc/ipsec.d/private/xxx.xxx.xxx.xxx.key', u'src': u'configs/xxx.xxx.xxx.xxx/pki/private/xxx.xxx.xxx.xxx.key', u'group': u'root', u'mode': u'0600', u'owner': u'strongswan'})

TASK [vpn : include_tasks] *************************************************************************************************************
included: /Users/admin/Downloads/algo-master-2/roles/vpn/tasks/client_configs.yml for xxx.xxx.xxx.xxx

TASK [vpn : Register p12 PayloadContent] ***********************************************************************************************
changed: [xxx.xxx.xxx.xxx -> localhost] => (item=dan)
changed: [xxx.xxx.xxx.xxx -> localhost] => (item=jack)

TASK [vpn : Set facts for mobileconfigs] ***********************************************************************************************
ok: [xxx.xxx.xxx.xxx -> localhost]

TASK [vpn : Build the mobileconfigs] ***************************************************************************************************
changed: [xxx.xxx.xxx.xxx] => (item=None)
changed: [xxx.xxx.xxx.xxx] => (item=None)

TASK [vpn : Build the client ipsec config file] ****************************************************************************************
changed: [xxx.xxx.xxx.xxx -> localhost] => (item=dan)
changed: [xxx.xxx.xxx.xxx -> localhost] => (item=jack)

TASK [vpn : Build the client ipsec secret file] ****************************************************************************************
changed: [xxx.xxx.xxx.xxx -> localhost] => (item=dan)
changed: [xxx.xxx.xxx.xxx -> localhost] => (item=jack)

TASK [vpn : Create the windows check file] *********************************************************************************************
skipping: [xxx.xxx.xxx.xxx]

TASK [vpn : Check if the windows check file exists] ************************************************************************************
ok: [xxx.xxx.xxx.xxx -> localhost]

TASK [vpn : Build the windows client powershell script] ********************************************************************************
skipping: [xxx.xxx.xxx.xxx] => (item=[u'dan', {'_ansible_parsed': True, 'stderr_lines': [], u'cmd': u'cat private/dan.p12 | base64', u'end': u'2018-06-03 21:20:58.617057', '_ansible_no_log': False, '_ansible_delegated_vars': {'ansible_delegated_host': u'localhost', 'ansible_host': u'localhost'}, '_ansible_item_result': True, u'changed': True, u'stdout': u'MIIEBQIBAzCCA8sGCSqGSIb3DQEHAaCCA7wEggO4MIIDtDCCAo8GCSqGSIb3DQEHBqCCAoAwggJ8AgEAMIICdQYJKoZIhvcNAQcBMBwGCiqGSIb3DQEMAQYwDgQIISkIwz33bQsCAggAgIICSKp2rBnxBlQv9QVfC1zY7o3s1mhSjdyZWHkpsRVH//fkcXPXA6C+ILoDxP3btsrGH311jc8jbcNGyVYGgWmvRsDt0X8q341mYthoLdnKbSNZsz2i3DVcO87f6RnrY4x+ZVi/FPBUK1Pgqqpah8pJ0Uvirx+vhAGlrk9NajKScd6CXyv6pk11EseHkcZwpmeXaAZa3DVSNYV8JxHIFW6dRfOKmEbdZCBsIDpYividBD6BE2Cd0CYjVnaFtwUZmAvoR+3ijJwyiWVeqvnMq1h/4+wgW7Yp+KhFkETAPdXn6gM/ESdhkpTMBXD+a3f1qrFVbSw+3d1AtHCtHvcGlrz+mOse91hNfkCBbEreTc5HpuZHTuYKuLrNTZa8jNmRW+c6IfAT/2W2bGmTWFf0u1b4NEL0WmvEp83agL0lixIY3Zt8KwMIxHn4Wy9KFIOxDIGhwU91aW2dD3NTzW679bRB4zAV1L0FtKqsPqaIiCBe9NVlNcc+9v8OaCC2bOK2Opc6V/My3XISXwRHMO+5UT49DEK9jeg87QDI1XCNF8ZMmZ15SAxdcC+PG1WLHO/A+eeThxzsCxob3C6drOKM75jkWNCV20OuQMLJniqlvA9G8zDx47JIlhOnX5Oi3zBTmE4XlNZ/VhrXtL44iLHkPywiD984KYCVZTG/DBZtlTUj0VejTyFvv6P9dvvEFy/3RKCCQpDKwG4JzNh2COe5Aozu63iV4XRzoI5MtqOYigRkhQVYjvejt5QAY8C+AhqyfZHerSNCbaPyboyJMIIBHQYJKoZIhvcNAQcBoIIBDgSCAQowggEGMIIBAgYLKoZIhvcNAQwKAQKggbQwgbEwHAYKKoZIhvcNAQwBAzAOBAi4nkqaXCErmwICCAAEgZDdfR6rF8FF2HQI+WGU/+m5PyCnx6HvoM6gjvbs27B9uj9YSoFzWdnHzcF2MJGZuj/CRUfAf1gpkih3uMJu00NKnLDyMWu6/7K0cp0n3kRnhME5piikySbS0iVDxqsrGe7T7i6l16TZ2MMh+MGJ/Z7CWUmuNQacQV8PJ20WkNa02OdSxjo0CGNJbpGVisRIl9QxPDAVBgkqhkiG9w0BCRQxCB4GAHQAbwBtMCMGCSqGSIb3DQEJFTEWBBTQhoosvk/LxlIcRCKBnJCpEN0BfDAxMCEwCQYFKw4DAhoFAAQUIuAaEvze7FbA2plZszEpiQiwZuUECK1iPixd4pepAgIIAA==', 'item': u'dan', u'delta': u'0:00:00.027891', u'stderr': u'', u'rc': 0, u'invocation': {u'module_args': {u'warn': True, u'executable': None, u'chdir': u'configs/xxx.xxx.xxx.xxx/pki/', u'_raw_params': u'cat private/dan.p12 | base64', u'removes': None, u'creates': None, u'_uses_shell': True, u'stdin': None}}, 'stdout_lines': [u'MIIEBQIBAzCCA8sGCSqGSIb3DQEHAaCCA7wEggO4MIIDtDCCAo8GCSqGSIb3DQEHBqCCAoAwggJ8AgEAMIICdQYJKoZIhvcNAQcBMBwGCiqGSIb3DQEMAQYwDgQIISkIwz33bQsCAggAgIICSKp2rBnxBlQv9QVfC1zY7o3s1mhSjdyZWHkpsRVH//fkcXPXA6C+ILoDxP3btsrGH311jc8jbcNGyVYGgWmvRsDt0X8q341mYthoLdnKbSNZsz2i3DVcO87f6RnrY4x+ZVi/FPBUK1Pgqqpah8pJ0Uvirx+vhAGlrk9NajKScd6CXyv6pk11EseHkcZwpmeXaAZa3DVSNYV8JxHIFW6dRfOKmEbdZCBsIDpYividBD6BE2Cd0CYjVnaFtwUZmAvoR+3ijJwyiWVeqvnMq1h/4+wgW7Yp+KhFkETAPdXn6gM/ESdhkpTMBXD+a3f1qrFVbSw+3d1AtHCtHvcGlrz+mOse91hNfkCBbEreTc5HpuZHTuYKuLrNTZa8jNmRW+c6IfAT/2W2bGmTWFf0u1b4NEL0WmvEp83agL0lixIY3Zt8KwMIxHn4Wy9KFIOxDIGhwU91aW2dD3NTzW679bRB4zAV1L0FtKqsPqaIiCBe9NVlNcc+9v8OaCC2bOK2Opc6V/My3XISXwRHMO+5UT49DEK9jeg87QDI1XCNF8ZMmZ15SAxdcC+PG1WLHO/A+eeThxzsCxob3C6drOKM75jkWNCV20OuQMLJniqlvA9G8zDx47JIlhOnX5Oi3zBTmE4XlNZ/VhrXtL44iLHkPywiD984KYCVZTG/DBZtlTUj0VejTyFvv6P9dvvEFy/3RKCCQpDKwG4JzNh2COe5Aozu63iV4XRzoI5MtqOYigRkhQVYjvejt5QAY8C+AhqyfZHerSNCbaPyboyJMIIBHQYJKoZIhvcNAQcBoIIBDgSCAQowggEGMIIBAgYLKoZIhvcNAQwKAQKggbQwgbEwHAYKKoZIhvcNAQwBAzAOBAi4nkqaXCErmwICCAAEgZDdfR6rF8FF2HQI+WGU/+m5PyCnx6HvoM6gjvbs27B9uj9YSoFzWdnHzcF2MJGZuj/CRUfAf1gpkih3uMJu00NKnLDyMWu6/7K0cp0n3kRnhME5piikySbS0iVDxqsrGe7T7i6l16TZ2MMh+MGJ/Z7CWUmuNQacQV8PJ20WkNa02OdSxjo0CGNJbpGVisRIl9QxPDAVBgkqhkiG9w0BCRQxCB4GAHQAbwBtMCMGCSqGSIb3DQEJFTEWBBTQhoosvk/LxlIcRCKBnJCpEN0BfDAxMCEwCQYFKw4DAhoFAAQUIuAaEvze7FbA2plZszEpiQiwZuUECK1iPixd4pepAgIIAA=='], u'start': u'2018-06-03 21:20:58.589166', '_ansible_ignore_errors': None, 'failed': False}]) 
skipping: [xxx.xxx.xxx.xxx] => (item=[u'jack', {'_ansible_parsed': True, 'stderr_lines': [], u'cmd': u'cat private/jack.p12 | base64', u'end': u'2018-06-03 21:20:58.875467', '_ansible_no_log': False, '_ansible_delegated_vars': {'ansible_delegated_host': u'localhost', 'ansible_host': u'localhost'}, '_ansible_item_result': True, u'changed': True, u'stdout': u'MIIEJwIBAzCCA+0GCSqGSIb3DQEHAaCCA94EggPaMIID1jCCAqcGCSqGSIb3DQEHBqCCApgwggKUAgEAMIICjQYJKoZIhvcNAQcBMBwGCiqGSIb3DQEMAQYwDgQIlk1bPAg6XHYCAggAgIICYIkaFJLYkNiQExnSWK9k48CyIrP7pDISzaIia16DCAR6DGunU+KVY4OpLF4qD4nlvS2BS5HR0+yXItTs7ua4hK9MkoBU5Kt3FSARCwUbgD4cRMj7rVIN3IWHEoyINTI1+TUYYvYdATexq2YA8wv8MUrqZJ/E44EcoD6ppkFr9gV1JwKFF2+7eI3iE43St2givEE544K6oSZz2lIsgjQbV47t8vLCLRqjbqc1nx/bqLD8mhblrrnsRGHVinV/TPjSQi+jMQnUgqqgv/lmi9KhQ30rzbIZYFH+ez+xSVFQPW26i/sAZx77kvKxRjIthwat/xj1VImIDkSqv/rX57h3/IzIuriieKNwpyY1fCtm/Jdf7CfZBW4yuI6gJSkj0GW9Dkf5Fr29Tl2CuWf0YTNCtvqaQP7MchF+/PELRx3MAvQzacwzS2XffqwfYzNFqQ7zvVpBNU2rRiTKuoTfC8lzspFUP0QVxoz33Fmcb7NAAs4wNbMbA37lxzsAzYgO8uoBdicCymG+3KM6sCh2tfxiYgAVpOQ7Gmleij2xn9WdQ6aXP5Swgaez3VdKvW+kl44uyn9ti7DGdaKrVNJbbe0qvIUzbHeNrnqM0h8ysKt4jlei73C0g+1q5AhgZXUH40bJg8OZUJQHQftr5FX6Nb0FTbY7azYYvoXf7KSFTqX90HpwoJkTYENJcMxoT956DbHhvCoK/UemgVb3m3KqNqDXOIy1ZhdpjLoGU4QdnB2oCh0Xe5VRHgW4v2EI2a9TAIvObl1bKEX4w1yH6FYO54C8qjjS+n6hnx2Sr5YMEzh7dzXEMIIBJwYJKoZIhvcNAQcBoIIBGASCARQwggEQMIIBDAYLKoZIhvcNAQwKAQKggbQwgbEwHAYKKoZIhvcNAQwBAzAOBAiR/wCIhKSUoQICCAAEgZBJVMlIQPYImaUARk16SlrRuLfr6IAlVdPNLNv2JpQpX0TNkXNQwM7QW4NQz/L7Zg5eusNRetiGcL+8p/CWA3h9f0aDctIBc3QsoDdOXVOZIon0WcD8qcO/JWSnh9nw41tr714dUAgnLVUXmoJ2Y6V5LBhmFjjOIHr7LNlPOVTKskJ2RxHAadefe1acXYng0FsxRjAfBgkqhkiG9w0BCRQxEh4QAHMAdQBlAHkAbwB1AG4AZzAjBgkqhkiG9w0BCRUxFgQUMXwwX/ivi1BxzWarJmlgq3L86ywwMTAhMAkGBSsOAwIaBQAEFNxggCVZAsSzl/EmtycSNt0RYizrBAhG2KvbhN4AMgICCAA=', 'item': u'jack', u'delta': u'0:00:00.022722', u'stderr': u'', u'rc': 0, u'invocation': {u'module_args': {u'warn': True, u'executable': None, u'chdir': u'configs/xxx.xxx.xxx.xxx/pki/', u'_raw_params': u'cat private/jack.p12 | base64', u'removes': None, u'creates': None, u'_uses_shell': True, u'stdin': None}}, 'stdout_lines': [u'MIIEJwIBAzCCA+0GCSqGSIb3DQEHAaCCA94EggPaMIID1jCCAqcGCSqGSIb3DQEHBqCCApgwggKUAgEAMIICjQYJKoZIhvcNAQcBMBwGCiqGSIb3DQEMAQYwDgQIlk1bPAg6XHYCAggAgIICYIkaFJLYkNiQExnSWK9k48CyIrP7pDISzaIia16DCAR6DGunU+KVY4OpLF4qD4nlvS2BS5HR0+yXItTs7ua4hK9MkoBU5Kt3FSARCwUbgD4cRMj7rVIN3IWHEoyINTI1+TUYYvYdATexq2YA8wv8MUrqZJ/E44EcoD6ppkFr9gV1JwKFF2+7eI3iE43St2givEE544K6oSZz2lIsgjQbV47t8vLCLRqjbqc1nx/bqLD8mhblrrnsRGHVinV/TPjSQi+jMQnUgqqgv/lmi9KhQ30rzbIZYFH+ez+xSVFQPW26i/sAZx77kvKxRjIthwat/xj1VImIDkSqv/rX57h3/IzIuriieKNwpyY1fCtm/Jdf7CfZBW4yuI6gJSkj0GW9Dkf5Fr29Tl2CuWf0YTNCtvqaQP7MchF+/PELRx3MAvQzacwzS2XffqwfYzNFqQ7zvVpBNU2rRiTKuoTfC8lzspFUP0QVxoz33Fmcb7NAAs4wNbMbA37lxzsAzYgO8uoBdicCymG+3KM6sCh2tfxiYgAVpOQ7Gmleij2xn9WdQ6aXP5Swgaez3VdKvW+kl44uyn9ti7DGdaKrVNJbbe0qvIUzbHeNrnqM0h8ysKt4jlei73C0g+1q5AhgZXUH40bJg8OZUJQHQftr5FX6Nb0FTbY7azYYvoXf7KSFTqX90HpwoJkTYENJcMxoT956DbHhvCoK/UemgVb3m3KqNqDXOIy1ZhdpjLoGU4QdnB2oCh0Xe5VRHgW4v2EI2a9TAIvObl1bKEX4w1yH6FYO54C8qjjS+n6hnx2Sr5YMEzh7dzXEMIIBJwYJKoZIhvcNAQcBoIIBGASCARQwggEQMIIBDAYLKoZIhvcNAQwKAQKggbQwgbEwHAYKKoZIhvcNAQwBAzAOBAiR/wCIhKSUoQICCAAEgZBJVMlIQPYImaUARk16SlrRuLfr6IAlVdPNLNv2JpQpX0TNkXNQwM7QW4NQz/L7Zg5eusNRetiGcL+8p/CWA3h9f0aDctIBc3QsoDdOXVOZIon0WcD8qcO/JWSnh9nw41tr714dUAgnLVUXmoJ2Y6V5LBhmFjjOIHr7LNlPOVTKskJ2RxHAadefe1acXYng0FsxRjAfBgkqhkiG9w0BCRQxEh4QAHMAdQBlAHkAbwB1AG4AZzAjBgkqhkiG9w0BCRUxFgQUMXwwX/ivi1BxzWarJmlgq3L86ywwMTAhMAkGBSsOAwIaBQAEFNxggCVZAsSzl/EmtycSNt0RYizrBAhG2KvbhN4AMgICCAA='], u'start': u'2018-06-03 21:20:58.852745', '_ansible_ignore_errors': None, 'failed': False}]) 

TASK [vpn : Restrict permissions for the local private directories] ********************************************************************
changed: [xxx.xxx.xxx.xxx -> localhost] => (item=configs/xxx.xxx.xxx.xxx)

RUNNING HANDLER [dns_adblocking : restart apparmor] ************************************************************************************
changed: [xxx.xxx.xxx.xxx]

RUNNING HANDLER [vpn : restart strongswan] *********************************************************************************************
changed: [xxx.xxx.xxx.xxx]

RUNNING HANDLER [vpn : daemon-reload] **************************************************************************************************
changed: [xxx.xxx.xxx.xxx]

RUNNING HANDLER [vpn : restart iptables] ***********************************************************************************************
changed: [xxx.xxx.xxx.xxx]

TASK [vpn : strongSwan started] ********************************************************************************************************
ok: [xxx.xxx.xxx.xxx]

TASK [debug] ***************************************************************************************************************************
ok: [xxx.xxx.xxx.xxx] => {
    "msg": [
        [
            "\"#                          Congratulations!                            #\"", 
            "\"#                     Your Algo server is running.                     #\"", 
            "\"#    Config files and certificates are in the ./configs/ directory.    #\"", 
            "\"#              Go to https://whoer.net/ after connecting               #\"", 
            "\"#        and ensure that all your traffic passes through the VPN.      #\"", 
            "\"#               Local DNS resolver 172.16.0.1              #\"", 
            ""
        ], 
        "    \"#                The p12 and SSH keys password for new users is QoVMQ4d3             #\"\n", 
        "    ", 
        "    \"#      Shell access: ssh -i configs/algo.pem ubuntu@xxx.xxx.xxx.xxx        #\"\n"
    ]
}

TASK [Delete the CA key] ***************************************************************************************************************
changed: [xxx.xxx.xxx.xxx -> localhost]

PLAY RECAP *****************************************************************************************************************************
xxx.xxx.xxx.xxx              : ok=118  changed=81   unreachable=0    failed=0   
localhost                  : ok=22   changed=7    unreachable=0    failed=0   

aws ec2 describe-volumes
{
    "Volumes": [       
        {
            "Attachments": [
                {
                    "AttachTime": "2018-06-04T01:14:14.000Z",
                    "Device": "/dev/sda1",
                    "InstanceId": "i-0aec0c46ae6604e27",
                    "State": "attached",
                    "VolumeId": "vol-0b98a27f90ee3951d",
                    "DeleteOnTermination": true
                }
            ],
            "AvailabilityZone": "us-east-1d",
            "CreateTime": "2018-06-04T01:14:14.815Z",
            "Encrypted": false,
            "Size": 8,
            "SnapshotId": "snap-0ead2cfced9604c5a",
            "State": "in-use",
            "VolumeId": "vol-0b98a27f90ee3951d",
            "Iops": 100,
            "VolumeType": "gp2"
        }
    ]
}
jackivanov commented 6 years ago

It's actually disabled by default now and tag encrypted should be specified. Not sure if we need to enable it by default. It takes too much time to create the first image in a region. @dguido what do you think?

TC1977 commented 6 years ago

I'd suggest it's important to have data encrypted at rest, even if algo doesn't store the actual packets.

https://security.stackexchange.com/questions/141916/what-is-the-threat-model-for-aws-ebs-volumes-encryption

TC1977 commented 5 years ago

https://aws.amazon.com/about-aws/whats-new/2019/05/launch-encrypted-ebs-backed-ec2-instances-from-unencrypted-amis-in-a-single-step/

Could this skip the copy AMI step, and therefore speed up the install?