blob: 53dd5d0d7520d77bfbe70c4aeaf8e468cc316e80 (
plain) (
tree)
|
|
# 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-vpn'
# 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 = 'vpn-'
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_fi_hel.zip /tmp/mullvad/ && \
cd /tmp/mullvad && \
unzip mullvad_openvpn_linux_fi_hel.zip && \
mv mullvad_config_linux_fi_hel/mullvad_fi_hel.conf /etc/openvpn/openvpn.conf && \
mv mullvad_config_linux_fi_hel/mullvad_userpass.txt /etc/openvpn/ && \
mv mullvad_config_linux_fi_hel/mullvad_ca.crt /etc/openvpn/ && \
mv mullvad_config_linux_fi_hel/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
set -ex
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 185.204.1.174 port 443
ufw allow in on eth0 from 185.204.1.174 port 443
ufw allow out on eth0 to 185.204.1.176 port 443
ufw allow in on eth0 from 185.204.1.176 port 443
ufw allow out on eth0 to 185.204.1.172 port 443
ufw allow in on eth0 from 185.204.1.172 port 443
ufw allow out on eth0 to 185.204.1.171 port 443
ufw allow in on eth0 from 185.204.1.171 port 443
ufw allow out on eth0 to 185.212.149.201 port 443
ufw allow in on eth0 from 185.212.149.201 port 443
ufw allow out on eth0 to 185.204.1.173 port 443
ufw allow in on eth0 from 185.204.1.173 port 443
ufw allow out on eth0 to 193.138.7.237 port 443
ufw allow in on eth0 from 193.138.7.237 port 443
ufw allow out on eth0 to 193.138.7.217 port 443
ufw allow in on eth0 from 193.138.7.217 port 443
ufw allow out on eth0 to 185.204.1.175 port 443
ufw allow in on eth0 from 185.204.1.175 port 443
echo y | ufw enable
SHELL
end
|