# HG changeset patch # User Pascal Bellard # Date 1584903754 -3600 # Node ID ecd0c9292898ff95e432705e2080ebc1f7730cd4 # Parent f05572332c7c390c2936171da5660a4ab5e6e256 openvpn: add make-ovpn diff -r f05572332c7c -r ecd0c9292898 openvpn/stuff/usr/bin/conf2opvn --- a/openvpn/stuff/usr/bin/conf2opvn Sat Mar 21 15:46:42 2020 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,11 +0,0 @@ -#!/bin/sh - -[ "$1" ] && echo "usage: $0 < file.conf > file.opvn" && exit 1 -awk '{ if ($1 == "ca" || $1 == "cert" || $1 == "key" || $1 == "extra-certs" || - $1 == "secret" || $1 == "pkcs12" || $1 == "http-proxy-user-pass" || - $1 == "crl-verify" || $1 == "tls-auth" || $1 == "tls-crypt" || - $1 == "dh") f[$1]=$2; else print -} END { print "key-direction 1 # for tls-auth, need check\n"; for (i in f) { - print "<" i ">"; system("cat " f[i]); print "\n" - } -}' diff -r f05572332c7c -r ecd0c9292898 openvpn/stuff/usr/bin/conf2ovpn --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/openvpn/stuff/usr/bin/conf2ovpn Sun Mar 22 20:02:34 2020 +0100 @@ -0,0 +1,11 @@ +#!/bin/sh + +[ "$1" ] && echo "usage: $0 < file.conf > file.ovpn" && exit 1 +awk '{ if ($1 == "ca" || $1 == "cert" || $1 == "key" || $1 == "extra-certs" || + $1 == "secret" || $1 == "pkcs12" || $1 == "http-proxy-user-pass" || + $1 == "crl-verify" || $1 == "tls-auth" || $1 == "tls-crypt" || + $1 == "dh") f[$1]=$2; else print +} END { print "key-direction 1 # for tls-auth, please check\n"; for (i in f) { + print "<" i ">"; system("cat " f[i]); print "\n" + } +}' diff -r f05572332c7c -r ecd0c9292898 openvpn/stuff/usr/bin/make-ovpn --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/openvpn/stuff/usr/bin/make-ovpn Sun Mar 22 20:02:34 2020 +0100 @@ -0,0 +1,151 @@ +#!/bin/sh + +[ $(id -u) != 0 ] && exec su -c "$0 $@" +[ -z "$1" ] && cat < config-server-name.ovpn + $0 client name server-ip > config-client-name.ovpn + +Examples: + $0 server office 192.168.99 192.168.0.0/255.255.255.0 10.0.0.0/255.0.0.0 + $0 client bart-simson myoffice.org + +Tip: run it twice to avoid keys generation output +EOT + +mkpki() +{ + echo -n "Country : "; read country + echo -n "Company : "; read company + echo -n "Province: "; read province + echo -n "City : "; read city + echo -n "Email : "; read email + cat > vars < +$(cat pki/ca.crt) + + +$(cat pki/issued/$name.crt) + + +$(cat pki/private/$name.key) + +EOT + +net=${3:-192.168.16} +[ "$1" = "server" ] && cat << EOT +status /var/log/openvpn-$name +$(common_conf) +keepalive 15 120 +tls-exit +user nobody +group nogroup +#compress lz4-v2 +#push "compress lz4-v2" +mute 2 +passtos +float +port 1194 +mode server +tls-server +ping-timer-rem +management 127.0.0.1 1294 + +client-to-client +#inactive 3600 +#duplicate-cn +#push "redirect-gateway def1" + +ifconfig $net.1 $net.3 +ifconfig-pool $net.6 $net.254 +$(shift 3; for i in $net.0/255.255.255.0 $@; do + echo "route ${i/\// }" + echo "push \"route ${i/\// }\"" +done) +$(sed -e '/nameserver/!d;s|nameserver *|push "dhcp-option DNS |;s|.*|&"|' \ +/etc/resolv.conf | head -n 2) + + +$(cat pki/ca.crt) + + +$(cat pki/issued/$name.crt) + + +$(cat pki/private/$name.key) + + +$(cat pki/dh.pem) + +EOT