aboutsummaryrefslogtreecommitdiffstats
path: root/vpn2/Vagrantfile
diff options
context:
space:
mode:
authorterminaldweller <devi@terminaldweller.com>2024-06-06 15:56:13 +0000
committerterminaldweller <devi@terminaldweller.com>2024-06-06 15:56:13 +0000
commit9e7fe7dab847d50200b863d4c0cd43c83126cc3a (patch)
tree777db778c687c28e44bbee6233dc4852042061cb /vpn2/Vagrantfile
parentupdates (diff)
downloadvagrantboxes-9e7fe7dab847d50200b863d4c0cd43c83126cc3a.tar.gz
vagrantboxes-9e7fe7dab847d50200b863d4c0cd43c83126cc3a.zip
updates
Diffstat (limited to 'vpn2/Vagrantfile')
-rw-r--r--vpn2/Vagrantfile83
1 files changed, 83 insertions, 0 deletions
diff --git a/vpn2/Vagrantfile b/vpn2/Vagrantfile
new file mode 100644
index 0000000..46dfc0d
--- /dev/null
+++ b/vpn2/Vagrantfile
@@ -0,0 +1,83 @@
+# vi: set ft=ruby :
+# frozen_string_literal: true
+
+ENV['VAGRANT_DEFAULT_PROVIDER'] = 'libvirt'
+Vagrant.require_version '>= 2.2.6'
+Vagrant.configure('2') do |config|
+ config.vm.box = 'generic/alpine319'
+ config.vm.box_version = '4.3.12'
+ config.vm.box_check_update = false
+ config.vm.hostname = 'virt-vpn2'
+
+ # ssh
+ config.ssh.insert_key = true
+ config.ssh.keep_alive = true
+ config.ssh.keys_only = true
+
+ # timeouts
+ config.vm.boot_timeout = 300
+ config.vm.graceful_halt_timeout = 60
+ config.ssh.connect_timeout = 15
+
+ # shares
+ # config.vm.synced_folder './share', '/home/vagrant/nfs', type: 'nfs', nfs_version: 4, nfs_udp: false
+
+ config.vm.provider 'libvirt' do |libvirt|
+ libvirt.default_prefix = 'vpn2-'
+ libvirt.driver = 'kvm'
+ libvirt.memory = '128'
+ libvirt.cpus = 1
+ libvirt.sound_type = nil
+ libvirt.qemuargs value: '-nographic'
+ libvirt.qemuargs value: '-nodefaults'
+ libvirt.qemuargs value: '-no-user-config'
+ libvirt.qemuargs value: '-serial'
+ libvirt.qemuargs value: 'pty'
+ # libvirt.random model: 'random'
+ end
+
+ config.vm.provision 'update', type: 'shell', name: 'update', inline: <<-SHELL
+ set -ex
+ sudo apk add openvpn nfs-utils ufw
+ mkdir -p /vagrant && \
+ sudo mount -t nfs 192.168.121.1:/home/devi/share/nfs /vagrant
+ SHELL
+
+ config.vm.provision 'update-root', type: 'shell', name: 'update-root', privileged: true, inline: <<-SHELL
+ set -ex
+ echo tun >> /etc/modules
+ #rc-update add openvpn default
+ mkdir -p /tmp/mullvad/ && \
+ cp /vagrant/mullvad_openvpn_linux_us_phx.zip /tmp/mullvad/ && \
+ cd /tmp/mullvad && \
+ unzip mullvad_openvpn_linux_us_phx.zip && \
+ mv mullvad_config_linux_us_phx/mullvad_us_phx.conf /etc/openvpn/openvpn.conf && \
+ mv mullvad_config_linux_us_phx/mullvad_userpass.txt /etc/openvpn/ && \
+ mv mullvad_config_linux_us_phx/mullvad_ca.crt /etc/openvpn/ && \
+ mv mullvad_config_linux_us_phx/update-resolv-conf /etc/openvpn && \
+ chmod 755 /etc/openvpn/update-resolv-conf
+ modprobe tun
+ echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.d/ipv4.conf
+ sysctl -p /etc/sysctl.d/ipv4.conf
+ rc-service openvpn start || true
+ sleep 1
+ SHELL
+
+ config.vm.provision 'killswitch', type: 'shell', name: 'killswitch', privileged: true, inline: <<-SHELL
+ ufw --force reset
+ ufw default deny incoming
+ ufw default deny outgoing
+ ufw allow in on tun0
+ ufw allow out on tun0
+ # enable libvirt bridge
+ ufw allow in on eth0 from 192.168.121.1
+ ufw allow out on eth0 to 192.168.121.1
+ # server block
+ ufw allow out on eth0 to 198.54.133.34 port 1196
+ ufw allow in on eth0 from 198.54.133.34 port 1196
+ ufw allow out on eth0 to 198.54.133.66 port 1196
+ ufw allow in on eth0 from 198.54.133.66 port 1196
+
+ echo y | ufw enable
+ SHELL
+end