Files

113 lines
3.3 KiB
Bash
Executable File

#!/bin/sh
if ! uci -q get openvpn.myvpn >/dev/null; then
uci -q batch <<-EOF >/dev/null
set openvpn.myvpn=openvpn
set openvpn.myvpn.enabled='0'
set openvpn.myvpn.proto='tcp4'
set openvpn.myvpn.dev='tun'
set openvpn.myvpn.topology='subnet'
set openvpn.myvpn.server='10.8.0.0 255.255.255.0'
set openvpn.myvpn.comp_lzo='adaptive'
set openvpn.myvpn.ca='/etc/openvpn/pki/ca.crt'
set openvpn.myvpn.dh='/etc/openvpn/pki/dh.pem'
set openvpn.myvpn.cert='/etc/openvpn/pki/server.crt'
set openvpn.myvpn.key='/etc/openvpn/pki/server.key'
set openvpn.myvpn.persist_key='1'
set openvpn.myvpn.persist_tun='1'
set openvpn.myvpn.max_clients='88'
set openvpn.myvpn.keepalive='10 120'
set openvpn.myvpn.verb='3'
set openvpn.myvpn.status='/var/log/openvpn_status.log'
set openvpn.myvpn.log='/tmp/openvpn.log'
set openvpn.myvpn.port='1194'
set openvpn.myvpn.ddns='myserver.f3322.net'
set openvpn.myvpn.auth_user_pass_verify='/etc/openvpn/server/checkpsw.sh via-env'
set openvpn.myvpn.script_security='3'
add_list openvpn.myvpn.push='route 192.168.9.0 255.255.255.0'
add_list openvpn.myvpn.push='comp-lzo adaptive'
add_list openvpn.myvpn.push='redirect-gateway def1 bypass-dhcp'
add_list openvpn.myvpn.push='dhcp-option DNS 192.168.9.1'
commit openvpn
EOF
fi
if ! uci -q get openvpn.client1 >/dev/null; then
uci -q batch <<-EOF >/dev/null
set openvpn.client1=openvpn
set openvpn.client1.enabled='0'
set openvpn.client1.config='/etc/openvpn/client1.conf'
commit openvpn
EOF
fi
if ! uci -q get openvpn.client2 >/dev/null; then
uci -q batch <<-EOF >/dev/null
set openvpn.client2=openvpn
set openvpn.client2.enabled='0'
set openvpn.client2.config='/etc/openvpn/client2.conf'
commit openvpn
EOF
fi
if ! uci -q get openvpn.pwd1 >/dev/null; then
uci -q batch <<-EOF >/dev/null
set openvpn.pwd1=openvpnpassword
set openvpn.pwd1.pwdfile='/etc/openvpn/pass.txt'
commit openvpn
EOF
fi
if ! uci -q get openvpn.pwd2 >/dev/null; then
uci -q batch <<-EOF >/dev/null
set openvpn.pwd2=openvpnpassword
set openvpn.pwd2.pwdfile='/etc/openvpn/pass2.txt'
commit openvpn
EOF
fi
openvpn_port="$(uci -q get openvpn.myvpn.port)"
[ -z "$openvpn_port" ] && openvpn_port=1194
uci -q batch <<-EOF >/dev/null
delete network.vpn0
set network.vpn0=interface
set network.vpn0.device='tun0'
set network.vpn0.proto='none'
commit network
delete firewall.openvpn
set firewall.openvpn=rule
set firewall.openvpn.name='openvpn'
set firewall.openvpn.target='ACCEPT'
set firewall.openvpn.src='wan'
set firewall.openvpn.proto='tcp udp'
set firewall.openvpn.dest_port="$openvpn_port"
delete firewall.vpn
set firewall.vpn=zone
set firewall.vpn.name='vpn'
set firewall.vpn.input='ACCEPT'
set firewall.vpn.forward='ACCEPT'
set firewall.vpn.output='ACCEPT'
set firewall.vpn.masq='1'
set firewall.vpn.network='vpn0'
delete firewall.vpntowan
set firewall.vpntowan=forwarding
set firewall.vpntowan.src='vpn'
set firewall.vpntowan.dest='wan'
delete firewall.vpntolan
set firewall.vpntolan=forwarding
set firewall.vpntolan.src='vpn'
set firewall.vpntolan.dest='lan'
delete firewall.lantovpn
set firewall.lantovpn=forwarding
set firewall.lantovpn.src='lan'
set firewall.lantovpn.dest='vpn'
commit firewall
EOF
chmod 0777 /etc/openvpn/server/checkpsw.sh
rm -f /tmp/luci-indexcache
exit 0