Coder Social home page Coder Social logo

cad / ovpm Goto Github PK

View Code? Open in Web Editor NEW
357.0 28.0 78.0 298.92 MB

OpenVPN Management Server - Effortless and free OpenVPN server administration tool

License: GNU Affero General Public License v3.0

Go 79.20% Makefile 0.72% Shell 0.86% HTML 0.33% JavaScript 18.39% CSS 0.16% Dockerfile 0.34%
openvpn golang vpn iptables route network openvpn-server openvpn-client vpn-server golang-application

ovpm's People

Contributors

amz avatar archaron avatar cad avatar dependabot[bot] avatar drac avatar ilkerdagli avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ovpm's Issues

write docs

Docs for usage and program api is needed.

quota management

After collecting metrics, it would be nice to have a quota enforcement feature.

  • Admin can set a time or bandwidth based quota on user or server, that will be cleared periodically by duration or on certain date&time or until removed manually.

WEBUI > NETWORKS

Hello Cad,
After your help, i successfully log on WEBUI, i go to NETWORKS , and create Two ROUTED Networks..

OVPM_Users 10.0.0.1/24
OVPM_Servers 10.0.0.2/24

     No problem to create, but when i go to command line to list these NETWORKS ,  got a error...

root@stargate:/usr/local# ovpm net l
ERRO[0000] assoc users can not be fetched: rpc error: code = Unknown desc = validation error: OVPM_Users can only contain letters and numbers
root@stargate:/usr/local#

So, i go to delete the OVPM_Users and another issue , i can´t delete from WEBUI , maybe because the name OVPM_Users is not ok because contain not allowed char., will try to delete from command line..

Hope It Helps... and im not wrong in the way i use it...

My intention, was create 2 networks and after that, isolate clients on your own network , than create more flexible rules in my firewalll based on networks.

Thanks..!!

web ui

We need a primitive Web UI for both users and admins.

Admin interface would be capable of doing nearly all the tasks that can be done via CLI.

User interface would enable users to log in, download their .ovpn configurations and maybe download OpenVPN binaries based on the device, OS and architecture detected when they are logged in to the Web UI.

Also, another matter is Port Sharing. It would be nice to use the same port for both HTTP and OpenVPN at the same time.

One approach could be to implement such logic that if the VPN and Web UI is configured to use the same port, it would change the actual Web UI port to something else and use port-share option implicitly to redirect non-VPN traffic to that port.

Also for the web interface and rest API, it would be nice to have auto-renewing let's encrypt.

Notes:

net def --via flag doesn't work as documented

When adding a ROUTE type network; --cidr flag doesn't work as documented.
It should accept an IPv4 addr, but instead it requires CIDR and if an CIDR is provided with /32 prefix it still doesn't add the provided via hop.

static route support

  • Adding a static route without specifiying gateway (implicit gateway)
$ ovpm net create --name testnetwork --type ROUTE --cidr 192.168.1.3/32

This will autmatically set vpn server as the gateway for the route.

  • Adding a static route with gateway (explicit gateway)
$ ovpm net create --name testnetwork --type ROUTE --cidr 192.168.1.0/24 --via 10.10.100.3

This second use will set the ip address that is specified by the --via flag as the gateway for the route.

fix user password storage

Currently user passwords are stored in plain. It should be kept as a salted hash using one of the strong password hashing algorithms.

WEB UI Default username and password for First Access

Hello Cad,
I just did a clean install on Ubuntu 16.04 LTS from scratch and have no issues at all..!!

      Everything works smooth ..!! 

       After the service start, go to http://myovpm.local.ip:8080 , the site is ok and ask for User/Pass.
       I can´t find this information to Log IN, what is needed to access through webUI ?

       Man... your project will help a lot of people and it´s better every release.., thank you for your time and knowledge to keep going...  

show network types in cli

Show network types in cli.

e.g

$ ovpm net types 
... 
<table of availabe network types with their descriptions>
...

Ubuntu Group needs to be "nogroup"

Hello...
Please , i'm expect not bothering you , but the GROUP for ubuntu is nogroup , and reading the code of last version, i suspect was set nobody ;)

Soon, i will do a new ubuntu installation from zero , and i let you know, if everything is ok ;), i will wait this change, but no hurry..!!

Thanks again for this great iniciative :)

I have some ideas for future, based on my actual use... , but basic is the flexibility to configure parameters on server.conf and ccd files..

I not set the vpn as default gateway, instead i configure on ccd for especific "user" routes like below...

I used to fix IP for every user on ccd too...

----------/ccd/cert.cname.jhon.doe.ovpn -----
ifconfig-push 10.0.0.34 255.255.224.0
push "route 10.0.1.10 255.255.255.255"
push "route 10.0.1.15 255.255.255.255"

This way, i just catch traffic from user machine to specific hosts like example above( 10.0.1.10 and 10.0.1.15 ) , everything else goes to users default gateway(local internet).

I have another level of protection, on external firewall, where i create a ip based rule, this is why i use fixed IP on ccd file, i have low users + - 45, and use this another firewall to control access...

I will try to use an iptables on ovpn server machine too , but not yet...

Thankyou One more time and sorry my bad english, im from Brasil. o/

Cya.

rest api authentication

The initial plan is gRPC API is to be only for the CLI and it to listen only on 127.0.0.1 on the same host with the server, which is where the ovpmd runs.

And HTTP REST API to listen on all interfaces and be public.

So this renders us to implement an Authentication Service where the users can get an opaque, Bearer auth token, in exchange for their authentication credentials.

And authentication required operations on the rest of the API will be subject to checks on this token and they will get authorized accordingly.

give user's a static vpn ip addr

Right now ip addresses are assigned dynamically (from range), but it's requested that some users should have static ip adresses.

ovpmd.service wrong exe path...

Hello , i'm really excited with this project , a light in the end of tunnel ;) , Thankyou very much to this iniciative...

I Just do a clean install on a new and updated ubtuntu 16.04 LTS version , and got a little problem...
After install and try to start with systemctl start ovpmd.service , it's not starting, doing a LOG look, i found the ovpmd.service at /usr/lib/systemd/system/ovpmd.service , set o wrong path to ovpmd.
ExecStart=/sbin/ovpmd

On my system is on /usr/sbin/ , after edit the file above, everything works perfect..!

Forgot to say that i install using the Debian/Ubuntu method, adding the repo onubuntu and using apt-get install ovpmd..!

Thanks again..!! i will try now to understand how it works, and if i can set it up to work like i already use on another server ;) Cya.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.