diff --git a/cloudformation/jambonz-mini.yaml b/cloudformation/jambonz-mini.yaml index 5cfd7fc..effb31d 100644 --- a/cloudformation/jambonz-mini.yaml +++ b/cloudformation/jambonz-mini.yaml @@ -39,19 +39,16 @@ Parameters: Type: String AllowedPattern: \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\/\d{1,2} ConstraintDescription: must be a valid network CIDR - Default: 0.0.0.0/0 AllowedSipCidr: Description: Please set CIDR to x.x.x.x/32 to allow one specific IP address sip access, 0.0.0.0/0 to allow all IP addresses access, or another CIDR range. Type: String ConstraintDescription: must be a valid network CIDR AllowedPattern: \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\/\d{1,2} - Default: 0.0.0.0/0 AllowedRtpCidr: Description: Please set CIDR to x.x.x.x/32 to allow one specific IP address to send RTP traffic, 0.0.0.0/0 to allow all IP addresses access, or another CIDR range. Type: String ConstraintDescription: must be a valid network CIDR AllowedPattern: \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\/\d{1,2} - Default: 0.0.0.0/0 VpcCidr: Description: CIDR range for the VPC. Type: String @@ -262,6 +259,11 @@ Resources: FromPort: 3020 ToPort: 3020 CidrIp: !Ref VpcCidr + SecurityGroupEgress: + - IpProtocol: -1 + FromPort: 0 + ToPort: 0 + CidrIp: 0.0.0.0/0 DependsOn: - PublicRoute sshSecurityGroup: diff --git a/cloudformation/jambonz-scalable-production.yaml b/cloudformation/jambonz-scalable-production.yaml index 8e27690..adfd1a3 100644 --- a/cloudformation/jambonz-scalable-production.yaml +++ b/cloudformation/jambonz-scalable-production.yaml @@ -4,11 +4,11 @@ AWSTemplateFormatVersion: "2010-09-09" Mappings: AWSRegion2AMI: eu-west-1: - SbcSipAmi: ami-0f6ba44ac3543e61c - SbcRtpAmi: ami-080cd1b1866f6e4c7 - FsAmi: ami-0d5660935da86a3b5 - WebserverAmi: ami-0eb0eeaf07446071c - MonitoringServerAmi: ami-098dba4d4bc6702fd + SbcSipAmi: ami-0cbc5e0bb7e933065 + SbcRtpAmi: ami-05c83bae865ca64a8 + FsAmi: ami-0ab8aec3b49e4d15a + WebserverAmi: ami-02e90b9bad0811506 + MonitoringServerAmi: ami-094af6205e6cefe90 Parameters: KeyName: @@ -261,13 +261,6 @@ Parameters: - 0 - 1 Default: 1 - EnableHomer: - Type: Number - Description: enable homer sip traces? - AllowedValues: - - 0 - - 1 - Default: 1 Resources: ########################################### @@ -818,18 +811,6 @@ Resources: Key: Name Value: !Sub '${Prefix}-sbc-sip-2' - SbcSipServerEIP3: - Type: AWS::EC2::EIP - Properties: - Domain: vpc - Tags: - - - Key: Environment - Value: !Sub '${Prefix}-sbc-sip' - - - Key: Name - Value: !Sub '${Prefix}-sbc-sip-3' - # --- SIP server EC2 IAM role SbcSipServerIamRole: Type: AWS::IAM::Role @@ -1040,7 +1021,7 @@ Resources: STATS_HOST: '127.0.0.1', STATS_PORT: 8125, STATS_PROTOCOL: 'tcp', - STATS_SAMPLE_RATE: ${JAMBONES_SAMPLE_RATE} + STATS_SAMPLE_RATE: ${JAMBONES_SAMPLE_RATE}, STATS_TELEGRAF: 1 } }, @@ -1094,13 +1075,10 @@ Resources: sudo sed -i -e "s/influxdb:8086/${MONITORING_SERVER_IP}:8086/g" /etc/telegraf/telegraf.conf sudo systemctl restart telegraf - # point drachtio server to the HEP endpoint on the monitoring server - if [[ "$ENABLE_HOMER" == "1" ]]; then - echo "enabling HEP and restarting drachtio server" - sudo sed -i -e "s/--address 0.0.0.0 --port 9022/--address 0.0.0.0 --port 9022 --homer ${MONITORING_SERVER_IP}:9060 --homer-id 10/g" /etc/systemd/system/drachtio.service - sudo systemctl daemon-reload - sudo systemctl restart drachtio - fi + echo "enabling HEP and restarting drachtio server" + sudo sed -i -e "s/--address 0.0.0.0 --port 9022/--address 0.0.0.0 --port 9022 --homer ${MONITORING_SERVER_IP}:9060 --homer-id 10/g" /etc/systemd/system/drachtio.service + sudo systemctl daemon-reload + sudo systemctl restart drachtio echo "starting jambonz apps" sudo -u admin bash -c "pm2 restart /home/admin/apps/ecosystem.config.js" @@ -1117,7 +1095,6 @@ Resources: JAMBONES_REDIS_HOST: !GetAtt ElastiCacheCluster.RedisEndpoint.Address JAMBONES_CLUSTER_ID: !Ref Prefix JAMBONES_SAMPLE_RATE: !Ref StatsSampleRate - ENABLE_HOMER: !Ref EnableHomer MONITORING_SERVER_IP: !GetAtt MonitoringServerEC2.PrivateIp AWS_SNS_TOPIC_ARN: !Ref SbcSipServerSNSTopic JAMBONES_TIME_SERIES_HOST: !GetAtt MonitoringServerEC2.PrivateIp @@ -1648,6 +1625,9 @@ Resources: STATS_TELEGRAF: 1, STATS_SAMPLE_RATE: ${JAMBONES_SAMPLE_RATE}, HTTP_PORT: 3000, + HOMER_BASE_URL: 'http://${MONITORING_SERVER_IP}:9080', + HOMER_USERNAME: 'admin', + HOMER_PASSWORD: 'sipcapture', JWT_SECRET: '${JWT_SECRET}' }, }, diff --git a/packer/jambonz-feature-server/files/SpeechSDK-Linux-1.19.0.tar.gz b/packer/jambonz-feature-server/files/SpeechSDK-Linux-1.19.0.tar.gz deleted file mode 100644 index 95ef4a7..0000000 Binary files a/packer/jambonz-feature-server/files/SpeechSDK-Linux-1.19.0.tar.gz and /dev/null differ diff --git a/packer/jambonz-feature-server/files/SpeechSDK-Linux-1.20.0.tar.gz b/packer/jambonz-feature-server/files/SpeechSDK-Linux-1.20.0.tar.gz deleted file mode 100644 index 48fa48f..0000000 Binary files a/packer/jambonz-feature-server/files/SpeechSDK-Linux-1.20.0.tar.gz and /dev/null differ diff --git a/packer/jambonz-feature-server/files/SpeechSDK-Linux-1.21.0.tar.gz b/packer/jambonz-feature-server/files/SpeechSDK-Linux-1.21.0.tar.gz new file mode 100644 index 0000000..75b1ead Binary files /dev/null and b/packer/jambonz-feature-server/files/SpeechSDK-Linux-1.21.0.tar.gz differ diff --git a/packer/jambonz-feature-server/scripts/install_freeswitch.sh b/packer/jambonz-feature-server/scripts/install_freeswitch.sh index 93d90f2..6034c91 100644 --- a/packer/jambonz-feature-server/scripts/install_freeswitch.sh +++ b/packer/jambonz-feature-server/scripts/install_freeswitch.sh @@ -18,14 +18,14 @@ echo "LWS_VERSION version to install is ${LWS_VERSION}" export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH cd /tmp -tar xvfz SpeechSDK-Linux-1.20.0.tar.gz -cd SpeechSDK-Linux-1.20.0 +tar xvfz SpeechSDK-Linux-1.21.0.tar.gz +cd SpeechSDK-Linux-1.21.0 sudo cp -r include /usr/local/include/MicrosoftSpeechSDK sudo cp -r lib/ /usr/local/lib/MicrosoftSpeechSDK sudo ln -s /usr/local/lib/MicrosoftSpeechSDK/x64/libMicrosoft.CognitiveServices.Speech.core.so /usr/local/lib/libMicrosoft.CognitiveServices.Speech.core.so cd -rm -Rf /tmpSpeechSDK-Linux-1.20.0 -rm -Rf /tmpSpeechSDK-Linux-1.20.0.tar.gz +rm -Rf /tmpSpeechSDK-Linux-1.21.0 +rm -Rf /tmpSpeechSDK-Linux-1.21.0.tar.gz git config --global pull.rebase true cd /usr/local/src diff --git a/packer/jambonz-feature-server/scripts/install_nodejs.sh b/packer/jambonz-feature-server/scripts/install_nodejs.sh index 2e0be2b..a965d20 100644 --- a/packer/jambonz-feature-server/scripts/install_nodejs.sh +++ b/packer/jambonz-feature-server/scripts/install_nodejs.sh @@ -1,5 +1,5 @@ #!/bin/bash -curl -sL https://deb.nodesource.com/setup_16.x | sudo bash - && sudo apt-get install -y nodejs +curl -sL https://deb.nodesource.com/setup_14.x | sudo bash - && sudo apt-get install -y nodejs sudo npm install -g npm@latest node -v npm -v diff --git a/packer/jambonz-feature-server/template.json b/packer/jambonz-feature-server/template.json index baecee0..7fdf0be 100644 --- a/packer/jambonz-feature-server/template.json +++ b/packer/jambonz-feature-server/template.json @@ -4,8 +4,8 @@ "ssh_username": "admin", "ami_description": "jambonz feature server", "instance_type": "t2.xlarge", - "drachtio_version": "v0.8.16", - "jambonz_version": "v0.7.5-rc10", + "drachtio_version": "v0.8.17", + "jambonz_version": "v0.7.5", "install_telegraf": "yes", "install_datadog": "no", "datadog_key" : "", @@ -114,6 +114,9 @@ { "type": "shell", "inline": [ + "echo iptables-persistent iptables-persistent/autosave_v4 boolean true | sudo debconf-set-selections", + "echo iptables-persistent iptables-persistent/autosave_v6 boolean true | sudo debconf-set-selections", + "sudo apt-get -y install iptables-persistent", "sudo rm -Rf /tmp/*", "sudo rm /root/.ssh/authorized_keys", "sudo rm /home/admin/.ssh/authorized_keys" diff --git a/packer/jambonz-mini/scripts/install_nodejs.sh b/packer/jambonz-mini/scripts/install_nodejs.sh index a965d20..2e0be2b 100644 --- a/packer/jambonz-mini/scripts/install_nodejs.sh +++ b/packer/jambonz-mini/scripts/install_nodejs.sh @@ -1,5 +1,5 @@ #!/bin/bash -curl -sL https://deb.nodesource.com/setup_14.x | sudo bash - && sudo apt-get install -y nodejs +curl -sL https://deb.nodesource.com/setup_16.x | sudo bash - && sudo apt-get install -y nodejs sudo npm install -g npm@latest node -v npm -v diff --git a/packer/jambonz-monitoring/template.json b/packer/jambonz-monitoring/template.json index 2db44ac..05768fc 100644 --- a/packer/jambonz-monitoring/template.json +++ b/packer/jambonz-monitoring/template.json @@ -4,7 +4,7 @@ "ssh_username": "admin", "ami_description": "jambonz monitoring server", "instance_type": "t2.xlarge", - "jambonz_version": "v0.7.5-rc10", + "jambonz_version": "v0.7.5", "homer_user": "homer_user", "homer_password": "XcapJTqy11LnsYRtxXGPTYQkAnI", "install_influxdb": "yes", @@ -103,6 +103,9 @@ { "type": "shell", "inline": [ + "echo iptables-persistent iptables-persistent/autosave_v4 boolean true | sudo debconf-set-selections", + "echo iptables-persistent iptables-persistent/autosave_v6 boolean true | sudo debconf-set-selections", + "sudo apt-get -y install iptables-persistent", "sudo rm -Rf /tmp/*", "sudo rm /root/.ssh/authorized_keys", "sudo rm /home/admin/.ssh/authorized_keys" diff --git a/packer/jambonz-sbc-rtp/files/rtpengine-recording.ini b/packer/jambonz-sbc-rtp/files/rtpengine-recording.ini new file mode 100644 index 0000000..2b8d5c8 --- /dev/null +++ b/packer/jambonz-sbc-rtp/files/rtpengine-recording.ini @@ -0,0 +1,50 @@ +[rtpengine-recording] + +table = 42 + +log-level = 5 + +### number of worker threads (default 8) +# num-threads = 16 + +### where to forward to (unix socket) +# forward-to = /run/rtpengine/sock + +### where to store recordings: file (default), db, both +output-storage = file + +### format of stored recordings: wav (default), mp3 +# output-format = mp3 +# output-format = pcma +output-format = wav + +### directory containing rtpengine metadata files +spool-dir = /var/spool/recording + +### where to store media files to +output-dir = /tmp/recordings + +### File name pattern to be used for recording files +output-pattern = %Y%m%d%H00/rtpengine-%c-%t-M%S%u + +### resample all output audio +resample-to = 8000 + +### bits per second for MP3 encoding +# mp3_bitrate = 24000 + +### mix participating sources into a single output +output-mixed = true + +### create one output file for each source +# output-single = false + +### mix method: direct (mix input) channels (multi-channel) +mix-method = direct + +### mysql configuration for db storage +# mysql-host = localhost +# mysql-port = 3306 +# mysql-user = rtpengine +# mysql-pass = secret +# mysql-db = rtpengine \ No newline at end of file diff --git a/packer/jambonz-sbc-rtp/files/rtpengine-recording.service b/packer/jambonz-sbc-rtp/files/rtpengine-recording.service new file mode 100644 index 0000000..690ab9d --- /dev/null +++ b/packer/jambonz-sbc-rtp/files/rtpengine-recording.service @@ -0,0 +1,29 @@ + +[Unit] +Description=rtpengine-recording +After=syslog.target network.target local-fs.target + +[Service] +; service +Type=forking +Environment="LD_LIBRARY_PATH=/usr/local/lib/" +ExecStart=/usr/local/bin/rtpengine-recording --config-file=/etc/rtpengine-recording.ini +TimeoutSec=15s +Restart=always +; exec +User=root +Group=daemon +LimitCORE=infinity +LimitNOFILE=100000 +LimitNPROC=60000 +;LimitSTACK=240 +LimitRTPRIO=infinity +LimitRTTIME=7000000 +IOSchedulingClass=realtime +IOSchedulingPriority=2 +CPUSchedulingPolicy=rr +CPUSchedulingPriority=89 +UMask=0007 + +[Install] +WantedBy=multi-user.target diff --git a/packer/jambonz-sbc-rtp/scripts/install_app.sh b/packer/jambonz-sbc-rtp/scripts/install_app.sh index 228b150..0413907 100644 --- a/packer/jambonz-sbc-rtp/scripts/install_app.sh +++ b/packer/jambonz-sbc-rtp/scripts/install_app.sh @@ -3,7 +3,7 @@ cd /home/admin/apps cp /tmp/ecosystem.config.js . -cd /home/admin/apps/sbc-rtpengine-sidecar && sudo npm install --unsafe-perm +cd /home/admin/apps/sbc-rtpengine-sidecar && npm ci --unsafe-perm sudo npm install -g pino-pretty pm2 pm2-logrotate gulp grunt diff --git a/packer/jambonz-sbc-rtp/scripts/install_rtpengine.sh b/packer/jambonz-sbc-rtp/scripts/install_rtpengine.sh index a654dd4..4fe8a1a 100644 --- a/packer/jambonz-sbc-rtp/scripts/install_rtpengine.sh +++ b/packer/jambonz-sbc-rtp/scripts/install_rtpengine.sh @@ -3,9 +3,6 @@ VERSION=$1 echo "rtpengine version to install is ${VERSION}" -# install linux headers -apt-get install linux-headers-$(uname -r) - cd /usr/local/src git clone https://github.com/BelledonneCommunications/bcg729.git cd bcg729 @@ -29,11 +26,24 @@ mkdir /lib/modules/`uname -r`/updates/ cp ./kernel-module/xt_RTPENGINE.ko /lib/modules/`uname -r`/updates depmod -a modprobe xt_RTPENGINE +cat << EOF >> /etc/modules +xt_RTPENGINE +EOF + echo 'add 42' > /proc/rtpengine/control iptables -I INPUT -p udp --dport 40000:60000 -j RTPENGINE --id 42 cp /usr/local/src/rtpengine/daemon/rtpengine /usr/local/bin +cp /usr/local/src/rtpengine/recording-daemon/rtpengine-recording /usr/local/bin/ sudo mv /tmp/rtpengine.service /etc/systemd/system +sudo mv /tmp/rtpengine-recording.service /etc/systemd/system +sudo mv /tmp/rtpengine-recording.ini /etc/rtpengine-recording.ini sudo chmod 644 /etc/systemd/system/rtpengine.service +sudo chmod 644 /etc/systemd/system/rtpengine-recording.service +sudo chmod 644 /etc/rtpengine-recording.ini +mkdir -p /var/spool/recording +mkdir -p /recording sudo systemctl enable rtpengine +sudo systemctl enable rtpengine-recording sudo systemctl start rtpengine +sudo systemctl start rtpengine-recording diff --git a/packer/jambonz-sbc-rtp/template.json b/packer/jambonz-sbc-rtp/template.json index 4fc5c70..539e88d 100644 --- a/packer/jambonz-sbc-rtp/template.json +++ b/packer/jambonz-sbc-rtp/template.json @@ -3,8 +3,8 @@ "region": "us-east-1", "ssh_username": "admin", "ami_description": "jambonz SBC media server", - "drachtio_version": "v0.8.16", - "jambonz_version": "v0.7.5-rc12", + "drachtio_version": "v0.8.17", + "jambonz_version": "v0.7.5", "instance_type": "t2.xlarge", "rtp_engine_version": "mr10.2.1.5", "rtp_engine_min_port": "40000", @@ -52,7 +52,7 @@ "sudo apt-get update", "sudo apt-get -y install python lsof gcc g++ make cmake build-essential git autoconf automake default-mysql-client redis-tools \\", "curl telnet libtool libtool-bin libssl-dev libcurl4-openssl-dev libz-dev systemd-coredump liblz4-tool \\", - "iptables-dev libavformat-dev liblua5.1-0-dev libavfilter-dev libavcodec-dev libswresample-dev \\", + "iptables-dev linux-headers-$(uname -r) libavformat-dev liblua5.1-0-dev libavfilter-dev libavcodec-dev libswresample-dev \\", "libevent-dev libpcap-dev libxmlrpc-core-c3-dev markdown libjson-glib-dev lsb-release \\", "libhiredis-dev gperf libspandsp-dev default-libmysqlclient-dev htop dnsutils gdb libtcmalloc-minimal4 \\", "gnupg2 wget pkg-config ca-certificates libjpeg-dev libsqlite3-dev libpcre3-dev libldns-dev \\", @@ -111,6 +111,9 @@ { "type": "shell", "inline": [ + "echo iptables-persistent iptables-persistent/autosave_v4 boolean true | sudo debconf-set-selections", + "echo iptables-persistent iptables-persistent/autosave_v6 boolean true | sudo debconf-set-selections", + "sudo apt-get -y install iptables-persistent", "sudo rm -Rf /tmp/*", "sudo rm /root/.ssh/authorized_keys", "sudo rm /home/admin/.ssh/authorized_keys" diff --git a/packer/jambonz-sbc-sip/scripts/install_app.sh b/packer/jambonz-sbc-sip/scripts/install_app.sh index 708e5c7..d4bb6d4 100755 --- a/packer/jambonz-sbc-sip/scripts/install_app.sh +++ b/packer/jambonz-sbc-sip/scripts/install_app.sh @@ -6,12 +6,12 @@ mkdir apps cp /tmp/ecosystem.config.js apps cd apps -cd /home/admin/apps/sbc-inbound && sudo npm install --unsafe-perm -cd /home/admin/apps/sbc-outbound && sudo npm install --unsafe-perm -cd /home/admin/apps/sbc-registrar && sudo npm install --unsafe-perm -cd /home/admin/apps/sbc-call-router && sudo npm install --unsafe-perm -cd /home/admin/apps/sbc-options-handler && sudo npm install --unsafe-perm -cd /home/admin/apps/jambonz-smpp-esme && sudo npm install --unsafe-perm +cd /home/admin/apps/sbc-inbound && npm ci --unsafe-perm +cd /home/admin/apps/sbc-outbound && npm ci --unsafe-perm +cd /home/admin/apps/sbc-registrar && npm ci --unsafe-perm +cd /home/admin/apps/sbc-call-router && npm ci --unsafe-perm +cd /home/admin/apps/sbc-options-handler && npm ci --unsafe-perm +cd /home/admin/apps/jambonz-smpp-esme && npm ci --unsafe-perm sudo npm install -g pino-pretty pm2 pm2-logrotate gulp grunt diff --git a/packer/jambonz-sbc-sip/template.json b/packer/jambonz-sbc-sip/template.json index 8fbcdd2..61d1714 100644 --- a/packer/jambonz-sbc-sip/template.json +++ b/packer/jambonz-sbc-sip/template.json @@ -4,8 +4,8 @@ "ssh_username": "admin", "ami_description": "jambonz SBC SIP", "instance_type": "t2.xlarge", - "drachtio_version": "v0.8.16", - "jambonz_version": "v0.7.5-rc10", + "drachtio_version": "v0.8.17", + "jambonz_version": "v0.7.5", "install_datadog": "no", "datadog_key" : "", "install_telegraf": "yes" @@ -109,13 +109,12 @@ "execute_command": "chmod +x {{ .Path }}; sudo '{{ .Path }}' {{user `jambonz_version`}}", "script": "scripts/install_app.sh" }, - { - "type": "shell", - "script": "scripts/install_fail2ban.sh" - }, { "type": "shell", "inline": [ + "echo iptables-persistent iptables-persistent/autosave_v4 boolean true | sudo debconf-set-selections", + "echo iptables-persistent iptables-persistent/autosave_v6 boolean true | sudo debconf-set-selections", + "sudo apt-get -y install iptables-persistent", "sudo rm -Rf /tmp/*", "sudo rm /root/.ssh/authorized_keys", "sudo rm /home/admin/.ssh/authorized_keys" diff --git a/packer/jambonz-web-server/scripts/install_app.sh b/packer/jambonz-web-server/scripts/install_app.sh index 02d188e..a7dc9e3 100755 --- a/packer/jambonz-web-server/scripts/install_app.sh +++ b/packer/jambonz-web-server/scripts/install_app.sh @@ -4,9 +4,13 @@ VERSION=$1 cd /home/admin/apps cp /tmp/ecosystem.config.js . -cd /home/admin/apps/jambonz-api-server && sudo npm install --unsafe-perm -cd /home/admin/apps/jambonz-webapp && sudo npm install --unsafe-perm && npm run build -cd /home/admin/apps/public-apps && sudo npm install --unsafe-perm +echo "building jambonz-api-server.." +cd /home/admin/apps/jambonz-api-server && npm ci --unsafe-perm +echo "building jambonz-webapp.." +cd /home/admin/apps/jambonz-webapp && npm ci --unsafe-perm && npm run build +echo "building public-apps.." +mkdir -p /home/admin/apps/public-apps +cd /home/admin/apps/public-apps && npm ci --unsafe-perm sudo npm install -g pino-pretty pm2 pm2-logrotate gulp grunt @@ -18,4 +22,4 @@ sudo -u admin bash -c "pm2 set pm2-logrotate:compress true" sudo chown -R admin:admin /home/admin/apps sudo cp /tmp/auto-assign-elastic-ip.sh /usr/local/bin -sudo chmod +x /usr/local/bin/auto-assign-elastic-ip.sh \ No newline at end of file +sudo chmod +x /usr/local/bin/auto-assign-elastic-ip.sh diff --git a/packer/jambonz-web-server/template.json b/packer/jambonz-web-server/template.json index c60e096..979fbc2 100644 --- a/packer/jambonz-web-server/template.json +++ b/packer/jambonz-web-server/template.json @@ -4,7 +4,7 @@ "ssh_username": "admin", "ami_description": "jambonz webserver", "instance_type": "t2.xlarge", - "jambonz_version": "v0.7.5-rc10", + "jambonz_version": "v0.7.5", "install_datadog": "no", "install_telegraf": "yes" }, @@ -94,6 +94,9 @@ { "type": "shell", "inline": [ + "echo iptables-persistent iptables-persistent/autosave_v4 boolean true | sudo debconf-set-selections", + "echo iptables-persistent iptables-persistent/autosave_v6 boolean true | sudo debconf-set-selections", + "sudo apt-get -y install iptables-persistent", "sudo rm -Rf /tmp/*", "sudo rm /root/.ssh/authorized_keys", "sudo rm /home/admin/.ssh/authorized_keys"