Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
123 commits
Select commit Hold shift + click to select a range
554a252
made it look like a gem
May 4, 2012
394cd83
server.haml works
May 5, 2012
1ea31a1
making it look like gem
May 5, 2012
452dfcf
switched completely to haml
May 5, 2012
274eb18
Merge branch 'feature/haml_template' into develop
May 5, 2012
d92ce45
cleaned up gemlock
May 5, 2012
fd31eea
Version bump to 0.0.0
voipscout May 6, 2012
6b7ecc6
added jeweler
voipscout May 6, 2012
a51f308
* Merge branch 'feature/gemify' into develop
voipscout May 6, 2012
7ca2803
Regenerate gemspec for version 0.0.0
voipscout May 6, 2012
4157b97
rdoc changed
voipscout May 6, 2012
ea53e8f
strange
voipscout May 6, 2012
175d9b5
Merge branch 'release/v0.0.1' into develop
voipscout May 6, 2012
ca7ca54
Regenerate gemspec for version 0.0.0
voipscout May 6, 2012
1fc24f5
hopefully fixed it
voipscout May 6, 2012
4ca0b3f
* Merge branch 'hotfix/rakefile'
voipscout May 6, 2012
4baba98
Merge branch 'hotfix/rakefile' into develop
voipscout May 6, 2012
ff65ed4
Regenerate gemspec for version 0.0.0
voipscout May 6, 2012
d2a2d0a
now using micro-optparse
voipscout May 6, 2012
e2dfc8e
some cli working
voipscout May 6, 2012
bfa93ee
intermittent
voipscout May 6, 2012
a762e70
decided finally on main.rb as optparser
voipscout May 8, 2012
4494c65
client, init cli work
voipscout May 9, 2012
f5fab3d
all client, init. strange things happen though...
voipscout May 9, 2012
c8de70d
Merge branch 'feature/cli' into develop
voipscout May 9, 2012
8b22120
fixed annoying data_dir bug
voipscout May 9, 2012
64e9bf4
intermittent
voipscout May 9, 2012
e5529e7
init now created templates in .vpn dir
voipscout May 9, 2012
f43a33d
server config generator baby steps
voipscout May 9, 2012
177b0e7
intermittent
voipscout May 9, 2012
f19d388
client|server config|build seem to work
voipscout May 9, 2012
02f2f92
Added client/server config generation
voipscout May 9, 2012
cd90ec1
Version bump to 1.0.0
voipscout May 9, 2012
dda5fc7
gemfile fixes before release
voipscout May 9, 2012
68529fa
* Initial working version
voipscout May 9, 2012
47dd948
Merge branch 'release/1.0.0' into develop
voipscout May 9, 2012
525a8c3
Regenerate gemspec for version 1.0.0
voipscout May 9, 2012
eee5a6b
fixed something in config gen
voipscout May 10, 2012
e687d8e
fixed bug in cert passwd handling
voipscout May 10, 2012
8b84ba3
Merge branch 'feature/cfg_pkging' into develop
voipscout May 10, 2012
3706b62
Version bump to 1.0.1
voipscout May 10, 2012
927fbce
Merge branch 'release/1.0.1'
voipscout May 10, 2012
513b96b
Merge branch 'release/1.0.1' into develop
voipscout May 10, 2012
a7798eb
Regenerate gemspec for version 1.0.1
voipscout May 10, 2012
694b61f
fixing deps
voipscout May 10, 2012
5c8d949
Version bump to 1.0.2
voipscout May 10, 2012
422f3f4
Merge branch 'release/1.0.2'
voipscout May 10, 2012
ffb15e3
Merge branch 'release/1.0.2' into develop
voipscout May 10, 2012
d1a1248
Regenerate gemspec for version 1.0.2
voipscout May 10, 2012
0cb4442
Merge branch 'hotfix/deps' into develop
voipscout May 10, 2012
de07db9
Version bump to 1.0.3
voipscout May 10, 2012
5b87242
Merge branch 'release/1.0.3'
voipscout May 10, 2012
12e67ca
Merge branch 'release/1.0.3' into develop
voipscout May 10, 2012
adcac45
Regenerate gemspec for version 1.0.3
voipscout May 10, 2012
1ec35cb
fixing deps
voipscout May 10, 2012
b939666
Merge branch 'hotfix/deps1'
voipscout May 10, 2012
3aa0cd6
Merge branch 'hotfix/deps1' into develop
voipscout May 10, 2012
d8fa6de
Merge branch 'release/1.0.4'
voipscout May 10, 2012
2328b37
Version bump to 1.0.4
voipscout May 10, 2012
6f8642a
Merge branch 'release/1.0.5'
voipscout May 10, 2012
58efb82
Merge branch 'release/1.0.5' into develop
voipscout May 10, 2012
a5b992c
fixing deps
voipscout May 10, 2012
d528ceb
Merge branch 'hotfix/1.0.5x'
voipscout May 10, 2012
ade3436
Version bump to 1.0.5
voipscout May 10, 2012
81064c2
Merge branch 'hotfix/1.0.5x' into develop
voipscout May 10, 2012
e075e4b
Regenerate gemspec for version 1.0.4
voipscout May 10, 2012
14e0344
Version bump to 1.0.5
voipscout May 10, 2012
9552384
Version bump to 1.0.6
voipscout May 10, 2012
a2c6203
fixing deps
voipscout May 10, 2012
01c99df
Merge branch 'release/1.0.6' into develop
voipscout May 10, 2012
c2e4188
Regenerate gemspec for version 1.0.6
voipscout May 10, 2012
bb610da
passwd
voipscout May 10, 2012
fab40b6
i am a git noob lol
voipscout May 10, 2012
dde3f19
Version bump to 1.0.7
voipscout May 10, 2012
fae58b1
gemspec back
voipscout May 10, 2012
d8f9aca
version conflicts
voipscout May 10, 2012
4979cc3
Merge branch 'release/1.0.7' into develop
voipscout May 10, 2012
2ec2641
Regenerate gemspec for version 1.0.7
voipscout May 10, 2012
f8a8ae3
tuning haml templates
voipscout May 10, 2012
c91664f
sane defaults in templates now
voipscout May 10, 2012
ec80fde
Merge branch 'feature/templates' into develop
voipscout May 10, 2012
e8abce4
Version bump to 1.0.8
voipscout May 10, 2012
92ef3c6
VERSION patch
voipscout May 10, 2012
10f17e5
Merge branch 'release/1.0.8' into develop
voipscout May 10, 2012
6681fcc
Regenerate gemspec for version 1.0.8
voipscout May 10, 2012
920d461
saner configs yet
voipscout May 10, 2012
4770f04
Version bump to 1.0.9
voipscout May 10, 2012
55f7d03
VERSION fix?
voipscout May 10, 2012
5ed786c
Merge branch 'release/1.0.9' into develop
voipscout May 10, 2012
95abaaa
Regenerate gemspec for version 1.0.9
voipscout May 10, 2012
04486e6
even saner template
voipscout May 10, 2012
4655014
Merge branch 'feature/datastore' into develop
voipscout May 11, 2012
aacddef
deps
voipscout May 11, 2012
524ae1d
Merge branch 'release/1.0.10'
voipscout May 11, 2012
d8965e1
Merge branch 'release/1.0.10' into develop
voipscout May 11, 2012
a4e1b8d
Version bump to 1.0.10
voipscout May 11, 2012
bf9c0a4
Regenerate gemspec for version 1.0.10
voipscout May 11, 2012
5620748
as suggested by patrick
voipscout May 12, 2012
274c242
get_init_config method
voipscout May 12, 2012
8ba7e65
Merge branch 'feature/refactor' into develop
voipscout May 12, 2012
98c3288
Merge branch 'release/1.0.11'
voipscout May 12, 2012
0dcec9a
Version bump to 1.0.11
voipscout May 12, 2012
066084e
Regenerate gemspec for version 1.0.11
voipscout May 12, 2012
3be4192
added rspec and added some passing spec, with 1 failing spec
penguinpowernz Apr 21, 2014
10b6d13
chasing down a bug in KeyBuilder
penguinpowernz Apr 21, 2014
799d89f
tidied up the gemspec file
penguinpowernz Apr 21, 2014
f0926dc
fixed the bug, had to ditch fakefs though
penguinpowernz Apr 21, 2014
158fc0d
fixed the manager spec
penguinpowernz Apr 21, 2014
76505ca
made the config generator use templates from the template directory
penguinpowernz Apr 21, 2014
d9cb034
moved intialize to the top of the file
penguinpowernz Apr 21, 2014
bcc5763
made openssl config and tmp files be stored in vpn path instead of /tmp
penguinpowernz Apr 21, 2014
ee3e604
made the manager spec check for the existance of other files
penguinpowernz Apr 21, 2014
874c10a
made key_builder raise BuildErrors when generated files are empty
penguinpowernz Apr 21, 2014
21e4942
changed the data dir location so it wasn't prefixed
penguinpowernz Apr 21, 2014
87e4772
fixed bug where server.crt was generated empty
penguinpowernz Apr 21, 2014
df7285f
added server props in test, used subject in manager spec, added a few…
penguinpowernz Apr 21, 2014
d046147
renamed the VPNMaker spec file, used subject in manager spec
penguinpowernz Apr 21, 2014
4d42be8
added some more user specs
penguinpowernz Apr 21, 2014
a930ba8
updated readme file
penguinpowernz Apr 21, 2014
a90ad8d
switched to use bundle for rake tasks instead of jeweler
penguinpowernz Apr 21, 2014
60017c5
added the version file in
penguinpowernz Apr 21, 2014
1d0800e
Merge pull request #1 from penguinpowernz/testing-is-cool
voipscout Nov 19, 2014
3c5b237
Merge pull request #2 from penguinpowernz/jeweler-to-bundle
voipscout Nov 19, 2014
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .document
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
lib/**/*.rb
bin/*
-
features/**/*.feature
LICENSE.txt
51 changes: 51 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# rcov generated
coverage
coverage.data

# rdoc generated
rdoc

# yard generated
doc
.yardoc

# bundler
.bundle

# jeweler generated
pkg

# Have editor/IDE/OS specific files you need to ignore? Consider using a global gitignore:
#
# * Create a file at ~/.gitignore
# * Include files you want ignored
# * Run: git config --global core.excludesfile ~/.gitignore
#
# After doing this, these files will be ignored in all your git projects,
# saving you from having to 'pollute' every project you touch with them
#
# Not sure what to needs to be ignored for particular editors/OSes? Here's some ideas to get you started. (Remember, remove the leading # of the line)
#
# For MacOS:
#
.DS_Store

# For TextMate
*.tmproj
tmtags

# For emacs:
*~
\#*
.\#*

# For vim:
*.swp

# For redcar:
.redcar

# For rubinius:
*.rbc

Gemfile.lock
53 changes: 53 additions & 0 deletions Gemfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
source 'https://rubygems.org'

group :development do
gem "pry"
gem 'pry-doc' #, :git => 'https://github.com/pry/pry-doc.git'
gem 'pry-rails' #, :git => 'https://github.com/rweng/pry-rails.git'
gem 'pry-nav' #, :git => 'https://github.com/nixme/pry-nav.git'
gem 'pry-syntax-hacks' #, :git => 'https://github.com/ConradIrwin/pry-syntax-hacks.git'
gem 'pry-stack_explorer' #, :git => 'https://github.com/pry/pry-stack_explorer.git'
gem 'pry-exception_explorer' #, :git => 'https://github.com/pry/pry-exception_explorer.git'
gem "rdoc" #, "~> 3.12"
gem "bundler" #, "~> 1.0.0"
gem "jeweler" #, "~> 1.8.3"
gem "rspec"
end

gem 'haml'

# cli options parser
gem 'main', :git => 'git://github.com/ahoward/main.git'
gem 'highline' #, :git => 'https://github.com/JEG2/highline.git'

#gem 'hashugar', :git => 'git://github.com/jsuchal/hashugar.git'
#gem 'rbcurse-core', :git => 'git://github.com/rkumar/rbcurse-core.git'
#gem 'rbcurse-extras', :git => 'git://github.com/rkumar/rbcurse-extras.git'

# openssl wrappers
gem 'gibberish', :git => 'git://github.com/mdp/gibberish.git'
#gem 'cert_lib', :git => 'git://github.com/victorgrey/cert_lib.git'


# model stuff
# gem 'datamapper', "~> 1.2.0"
# gem 'dm-aggregates'
# gem 'dm-types', "~> 1.2.1"
# gem 'dm-observer'
# gem 'dm-migrations'
# gem 'dm-timestamps'
# gem 'dm-serializer', "~> 1.2.0"
# gem 'dm-validations'
# gem 'dm-mysql-adapter'

# support libs
gem 'chronic'
gem 'ipaddr_extensions'
#, :git => 'git://github.com/jamesotron/IPAddrExtensions.git'
# gem 'rubyzip', :git => 'git://github.com/aussiegeek/rubyzip.git'

# reporting
# gem 'ruport'
# gem 'ruport-util'

gem 'ya_email_validator'
24 changes: 19 additions & 5 deletions README.rdoc
Original file line number Diff line number Diff line change
@@ -1,8 +1,18 @@
most of the code was stolen from here: http://github.com/pc/vpnmaker, thank you!
i made a gem, converted it to use haml, added bin/vpnmaker cli
= VPNMaker

VPNMaker takes the teetering jankiness out of setting up and administering OpenVPN VPNs.
VPNMaker takes the teetering jankiness out of setting up and administering OpenVPN.

== Key management
It comes without any guarantees, the code seems to work for me, your mileage will invariably vary!
== Usage
* vpnmaker -h is your best friend
help format sucks, but it's better then using easy-rsa or doing openssl by hand
== Example
>>#vpnmaker init cli conf_name new_dir_path country province city organization organization_unit common_name key_name email

== From the forked version:
=== Key management

To set up your VPN, run:

Expand Down Expand Up @@ -65,7 +75,7 @@ When Joe leaves the company, we can do:

Which does the same revocation as in <tt>regenerate_user</tt>, but doesn't generate new keys.

== OpenVPN management
=== OpenVPN management

To get OpenVPN set up, you should go back and edit <tt>foocorp.config.yaml</tt>, and add the following section:

Expand All @@ -77,13 +87,17 @@ To get OpenVPN set up, you should go back and edit <tt>foocorp.config.yaml</tt>,
:log: /var/log/openvpn.log
:host: foocorp.com
:port: 1194

You may want to modify some of the values. Then, head back to irb, and do something like:

>> puts mgr.config_generator.server

Which will output a config file that you can copy and paste into <tt>openvpn.conf</tt> on your server. You'll want make sure that the following files exist in <tt>/root/openvpn</tt> (or whatever your root directory is): <tt>ca.crt</tt> (so that the server can verify the validity of client certificates), <tt>dh.pem</tt> (for encryption of the connection), <tt>server.crt</tt> (the server's public key), <tt>server.key</tt> (the server's private key), <tt>ta.key</tt> (shared secret between server and clients), and <tt>crl.pem</tt> (so that the server will reject revoked certificates).

== OpenVPN client
=== OpenVPN client

Each client will need: <tt>user.key</tt>, <tt>user.crt</tt>, <tt>ca.crt</tt> and <tt>ta.key</tt>. Make sure to enable tls-auth = 1.

== Testing

Tests are done with Rspec. To run the tests simply run `bundle exec rake test` or `bundle exec rake spec`.
71 changes: 36 additions & 35 deletions Rakefile
Original file line number Diff line number Diff line change
@@ -1,44 +1,45 @@
require 'highline/import'
require File.join(File.dirname(__FILE__), 'vpnmaker')
# encoding: utf-8
require 'rubygems'
require 'bundler/gem_tasks'

def get_arg(argname, echo=true)
return ENV[argname] if ENV[argname]
ask("Value for #{argname}?") { |q| q.echo = false unless echo }
begin
Bundler.setup(:default, :development)
rescue Bundler::BundlerError => e
$stderr.puts e.message
$stderr.puts "Run `bundle install` to install missing gems"
exit e.status_code
end
require 'rake'
require "rspec/core/rake_task"

namespace :config do
desc 'Generate server config'
task :server => :environment do
puts $manager.config_generator.server
end
RSpec::Core::RakeTask.new

desc 'Generate client config'
task :client => :environment do
username = get_arg('username')
puts $manager.config_generator.client($manager.user(username))
end
end
task :test => :spec

namespace :user do
desc 'Create a new user'
task :create => :environment do
cn = get_arg('cn')
name = get_arg('name')
email = get_arg('email')
password = get_arg('password', false)
confirm_password = get_arg('confirm_password', false)
raise ArgumentError.new("Password mismatch") unless password == confirm_password

if password.length > 0
$manager.create_user(cn, name, email, password)
else
$manager.create_user(cn, name, email)
end
task :console do
begin
# use Pry if it exists
require 'pry'
require 'vpnmaker'
Pry.start
rescue LoadError
require 'irb'
require 'irb/completion'
require 'vpnmaker'
ARGV.clear
IRB.start
end
end

# Set up environment
task :environment do
vpndir = get_arg('vpndir')
$manager = VPNMaker::Manager.new(vpndir)
task :c => :console


require 'rdoc/task'
Rake::RDocTask.new do |rdoc|
version = File.exist?('VERSION') ? File.read('VERSION') : ""

rdoc.rdoc_dir = 'rdoc'
rdoc.title = "vpnmaker #{version}"
rdoc.rdoc_files.include('README*')
rdoc.rdoc_files.include('lib/**/*.rb')
end
1 change: 1 addition & 0 deletions VERSION
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
1.0.11
Loading