diff --git a/client/client.pro b/client/client.pro index 5d79929b..803107e7 100644 --- a/client/client.pro +++ b/client/client.pro @@ -6,9 +6,14 @@ TEMPLATE = app DEFINES += QT_DEPRECATED_WARNINGS +include("3rd/QtSsh/src/ssh/ssh.pri") +include("3rd/QtSsh/src/botan/botan.pri") + HEADERS += \ communicator.h \ + core/openvpnconfigurator.h \ core/router.h \ + core/servercontroller.h \ debug.h \ defines.h \ localclient.h \ @@ -24,7 +29,9 @@ HEADERS += \ SOURCES += \ communicator.cpp \ + core/openvpnconfigurator.cpp \ core/router.cpp \ + core/servercontroller.cpp \ debug.cpp \ localclient.cpp \ main.cpp \ diff --git a/client/resources.qrc b/client/resources.qrc index acc656f5..fbc02a5a 100644 --- a/client/resources.qrc +++ b/client/resources.qrc @@ -1,9 +1,6 @@ - - translations/amneziavpn_ru.qm - - + translations/amneziavpn_ru.qm images/close.png images/settings.png images/min.png @@ -36,5 +33,9 @@ images/line.png images/server_settings.png images/share.png + server_scripts/prepare_openvpn_client.sh + server_scripts/remove_openvpn_server.sh + server_scripts/setup_openvpn_server.sh + server_scripts/template.ovpn diff --git a/client/server_scripts/prepare_openvpn_client.sh b/client/server_scripts/prepare_openvpn_client.sh new file mode 100644 index 00000000..f72b7486 --- /dev/null +++ b/client/server_scripts/prepare_openvpn_client.sh @@ -0,0 +1,24 @@ +DOCKER_IMAGE="amneziavpn/openvpn:latest" +CONTAINER_NAME="amneziavpn" + +#sudo apt update +sudo apt install -y docker.io curl +sudo systemctl start docker + +sudo docker stop amneziavpn +sudo docker rm -f amneziavpn +sudo docker pull amneziavpn/openvpn:latest +sudo docker run -d --restart always --cap-add=NET_ADMIN -p 1194:1194/udp --name amneziavpn amneziavpn/openvpn:latest + + +docker exec -i amneziavpn sh -c "mkdir -p /opt/amneziavpn_data" +docker exec -i amneziavpn sh -c "cat /proc/sys/kernel/random/entropy_avail" +docker exec -i amneziavpn sh -c "cd /opt/amneziavpn_data && easyrsa init-pki && easyrsa gen-dh" + +docker exec -i amneziavpn sh -c "cd /opt/amneziavpn_data && cp pki/dh.pem /etc/openvpn && easyrsa build-ca nopass << EOF yes EOF && easyrsa gen-req MyReq nopass << EOF2 yes EOF2" +docker exec -i amneziavpn sh -c "cd /opt/amneziavpn_data && easyrsa sign-req server MyReq << EOF3 yes EOF3" +docker exec -i amneziavpn sh -c "openvpn --genkey --secret ta.key << EOF4 yes EOF4" +docker exec -i amneziavpn sh -c "cd /opt/amneziavpn_data && cp pki/ca.crt pki/issued/MyReq.crt pki/private/MyReq.key ta.key /etc/openvpn" +docker exec -i amneziavpn sh -c "openvpn --config /etc/openvpn/server.conf &" + +docker exec -i amneziavpn mkdir -p /opt/amneziavpn_data/clients diff --git a/client/server_scripts/remove_openvpn_server.sh b/client/server_scripts/remove_openvpn_server.sh new file mode 100644 index 00000000..a05efa2d --- /dev/null +++ b/client/server_scripts/remove_openvpn_server.sh @@ -0,0 +1,2 @@ +docker container stop $(docker ps -a -q --filter ancestor="alekslitvinenk/openvpn") +docker container kill $(docker ps -a -q --filter ancestor="alekslitvinenk/openvpn") \ No newline at end of file diff --git a/client/server_scripts/setup_openvpn_server.sh b/client/server_scripts/setup_openvpn_server.sh new file mode 100644 index 00000000..f72b7486 --- /dev/null +++ b/client/server_scripts/setup_openvpn_server.sh @@ -0,0 +1,24 @@ +DOCKER_IMAGE="amneziavpn/openvpn:latest" +CONTAINER_NAME="amneziavpn" + +#sudo apt update +sudo apt install -y docker.io curl +sudo systemctl start docker + +sudo docker stop amneziavpn +sudo docker rm -f amneziavpn +sudo docker pull amneziavpn/openvpn:latest +sudo docker run -d --restart always --cap-add=NET_ADMIN -p 1194:1194/udp --name amneziavpn amneziavpn/openvpn:latest + + +docker exec -i amneziavpn sh -c "mkdir -p /opt/amneziavpn_data" +docker exec -i amneziavpn sh -c "cat /proc/sys/kernel/random/entropy_avail" +docker exec -i amneziavpn sh -c "cd /opt/amneziavpn_data && easyrsa init-pki && easyrsa gen-dh" + +docker exec -i amneziavpn sh -c "cd /opt/amneziavpn_data && cp pki/dh.pem /etc/openvpn && easyrsa build-ca nopass << EOF yes EOF && easyrsa gen-req MyReq nopass << EOF2 yes EOF2" +docker exec -i amneziavpn sh -c "cd /opt/amneziavpn_data && easyrsa sign-req server MyReq << EOF3 yes EOF3" +docker exec -i amneziavpn sh -c "openvpn --genkey --secret ta.key << EOF4 yes EOF4" +docker exec -i amneziavpn sh -c "cd /opt/amneziavpn_data && cp pki/ca.crt pki/issued/MyReq.crt pki/private/MyReq.key ta.key /etc/openvpn" +docker exec -i amneziavpn sh -c "openvpn --config /etc/openvpn/server.conf &" + +docker exec -i amneziavpn mkdir -p /opt/amneziavpn_data/clients diff --git a/client/server_scripts/template.ovpn b/client/server_scripts/template.ovpn new file mode 100644 index 00000000..da6d43c2 --- /dev/null +++ b/client/server_scripts/template.ovpn @@ -0,0 +1,28 @@ +client +dev tun +proto $PROTO +resolv-retry infinite +nobind +persist-key +persist-tun +cipher AES-256-GCM +auth SHA512 +verb 3 +tls-client +tls-version-min 1.2 +key-direction 1 +remote-cert-tls server + +remote $REMOTE_HOST $REMOTE_PORT + +$CA_CERT + + +$CLIENT_CERT + + +$PRIV_KEY + + +$TA_KEY +