{ "info": { "author": "Christoph Brand", "author_email": "christoph@brand.rest", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Framework :: Flask", "Programming Language :: Python", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3 :: Only", "Topic :: System :: Networking" ], "description": "# VPNChooser #\n\n![vpnchooser screenshot](https://github.com/cbrand/vpnchooser/raw/master/images/screenshot.png \"VPNChooser Screenshot\")\n\nThe vpnchooser is a web application which can be used as a graphical\nuser interface to move devices from one ip rule table to another.\n\nThese can be used to reroute clients to different gateways, hence the\nname \"vpnchooser\".\n\n## Setup ##\n\nThe system builds on top of a linux router utilizing the ip rule system.\nIt has been tested with the \"[dd-wrt](http://www.dd-wrt.com/site/index)\"\nrouter system though should work fine with every linux router which has\nssh access.\n\nFirst you need to define an own ip rule definition and send the traffic\non the router to an other gateway (which usually should be sending the\ntraffic through an vpn).\n\n```\nip route add default via {gateway} dev {device} table 10\n```\n\n### Via Docker ###\n\nFor this it is necessary to checkout the full repository at\n[Github](https://github.com/cbrand/vpnchooser).\n\nIf you want to test the setup I would recommend docker.\n\nEnsure you have [docker](https://www.docker.com/) and\n[docker-compose](https://docs.docker.com/compose/) installed.\n\nCopy the \"example.cfg\" and put it with the username, the password\nand the retrieved host key as \"docker.cfg\".\n\nTo fill in the data you require the ssh host key of the user. You can\nusually get these with one of the following commands on the server/router:\n\n```\nssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pub\nssh-keygen -l -f /etc/ssh/ssh_host_dsa_key.pub\nssh-keygen -l -f /etc/ssh/ssh_host_key.pub\n```\n\nAs a alternative you can follow the normal installation instructions\nand use the configuration generating utility provided by the console\nscript, which is packed in the package.\n\n```\nvpnchooser generate_config --docker {path_to_config_file}\n```\n\nThis will ask for the necessary configuration options (host of the router,\nusername, password) and extracts the ssh host key from the host. Finally\nit stores it to the file passed as a command line parameter.\n\nFor a production build you also should adjust the root password for mysql,\nwhich is stored in the docker-compose.yml file.\n\nAfter that you can start the necessary docker instances with the following\ncommand.\n\n```\ndocker-compose up\n```\n\nThis builds and downloads all necessary system components and starts the\nnecessary system components.\nAfter that you should be able to access the application through port 5000.\nThe default username is \"admin\" and the password is \"admin\".\n\n\n### Without Docker ###\n\nTo run the system without docker you need to at least provide a Redis\nserver which can be used to synchronize the redis backend. An optional\ndatabase can also be provided. However a default sqlite database can\nalso be utilized.\n\nIf you have provided the necessary software you can install the application.\nI recommend doing this in an\n[virtual environment](http://docs.python-guide.org/en/latest/dev/virtualenvs/).\n\nYou can now install the vpnchooser via\n```\neasy_install vpnchooser\n```\n\nAfter this you can generate a configuration file with the \"vpnchooser\" command.\n\n```\nvpnchooser generate_config {path_to_config_file}\n```\n\nThis will guide you through the process of configuring the data. After\nthe file is generated you should set it as the configuration file and\nthen can start the server.\n\n```\nexport FLASK_CONFIG_FILE={path_to_config_file}\nvpnchooser runserver\n```\n\nIn a different terminal start the celery process to synchronize the\ncurrent state with the router.\n\n```\nexport FLASK_CONFIG_FILE={path_to_config_file}\nvpnchooser runcelery\n```\n\n## Development Environment ##\n\nTo compile the frontend you do need node.js and npm.\n\nGo to the \"src/vpnchooser/static\" folder and type\n\n```\nnpm install\ngrunt dev\n```\n\nThis will compile the frontend.\n\n## License ##\n\nThe code is licensed under the [MIT](http://opensource.org/licenses/MIT)\nlicense.\n\n## TODO ##\n\nThe application is still in development. If you want to contribute\nhere are some topics which would be nice to have:\n\n- SSH Private Keys for authentication with the router\n- Better documentation\n * On Boarding\n * Code\n- Unit Tests\n\nI will gladly review and merge pull requests given to this project.\n", "description_content_type": null, "docs_url": null, "download_url": "https://github.com/cbrand/vpnchooser/tarball/0.6.5", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/cbrand/vpnchooser", "keywords": "vpn,network,ip", "license": "UNKNOWN", "maintainer": null, "maintainer_email": null, "name": "vpnchooser", "package_url": "https://pypi.org/project/vpnchooser/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/vpnchooser/", "project_urls": { "Download": "https://github.com/cbrand/vpnchooser/tarball/0.6.5", "Homepage": "https://github.com/cbrand/vpnchooser" }, "release_url": "https://pypi.org/project/vpnchooser/0.6.5/", "requires_dist": null, "requires_python": null, "summary": "Web UI to switch clients between different ip rule tables", "version": "0.6.5" }, "last_serial": 1830472, "releases": { "0.6.1": [ { "comment_text": "", "digests": { "md5": "cf0e1184f3607ae416e6c6566449cbd2", "sha256": "75f4933569b944c747cb07a2c76adb9116d469ef6c378007bc6c366ba3411feb" }, "downloads": -1, "filename": "vpnchooser-0.6.1.tar.gz", "has_sig": false, "md5_digest": "cf0e1184f3607ae416e6c6566449cbd2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 827961, "upload_time": "2015-04-20T22:56:23", "url": "https://files.pythonhosted.org/packages/58/46/ecc865cf5070f29cf7fa006bdb61f6f6dcd281407be10bae2a64718538f6/vpnchooser-0.6.1.tar.gz" } ], "0.6.2": [ { "comment_text": "", "digests": { "md5": "60208cd2057ccb3aaefabf227bab3bba", "sha256": "885e1eaf7e0401e84c1bbf718e4e10415b9fde43275658f7e99ba78dfebf40e0" }, "downloads": -1, "filename": "vpnchooser-0.6.2.tar.gz", "has_sig": false, "md5_digest": "60208cd2057ccb3aaefabf227bab3bba", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 857093, "upload_time": "2015-11-23T20:32:50", "url": "https://files.pythonhosted.org/packages/d0/87/07c12a51594bf14ff9daf0cf16e9113bf98833c6028f9b32cdd1b1e91650/vpnchooser-0.6.2.tar.gz" }, { "comment_text": "", "digests": { "md5": "959b48f6a77203aa6ec757a3393c03bd", "sha256": "12f4a6c193b020f4e0ef53345c98219b806ff44b995a79ee30b731097272dfa4" }, "downloads": -1, "filename": "vpnchooser-0.6.2.zip", "has_sig": false, "md5_digest": "959b48f6a77203aa6ec757a3393c03bd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 876848, "upload_time": "2015-11-23T20:33:02", "url": "https://files.pythonhosted.org/packages/8d/52/c33a9e421d1509baad66e75b98631a107de4a1b82135b10f5bedef192459/vpnchooser-0.6.2.zip" } ], "0.6.3": [ { "comment_text": "", "digests": { "md5": "393f443f523d0bdf92ca078e4d3b8a8c", "sha256": "5b3c597aecc747e8efdd7c69de7157f1ad935bda325f4b5b2ea69d742cff6588" }, "downloads": -1, "filename": "vpnchooser-0.6.3.tar.gz", "has_sig": false, "md5_digest": "393f443f523d0bdf92ca078e4d3b8a8c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 857125, "upload_time": "2015-11-23T20:35:09", "url": "https://files.pythonhosted.org/packages/64/9a/d0e9a2b438bf35f325701b0e0de3ce18a289dc830b732dfa6d1807a41f05/vpnchooser-0.6.3.tar.gz" }, { "comment_text": "", "digests": { "md5": "413ed7665c1fb01054ed4f247a5aa45d", "sha256": "98b6dc691367d029bc29d1f8c942baeea3a1a5eceadf893dd626650e4b7f3ff4" }, "downloads": -1, "filename": "vpnchooser-0.6.3.zip", "has_sig": false, "md5_digest": "413ed7665c1fb01054ed4f247a5aa45d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 876863, "upload_time": "2015-11-23T20:35:16", "url": "https://files.pythonhosted.org/packages/b9/b7/0b67552e05d3908c229b6c8514bfe57f774f591e7213d25ce26be55a8aa7/vpnchooser-0.6.3.zip" } ], "0.6.4": [ { "comment_text": "", "digests": { "md5": "802346a3aff1a1699522ada955bc608b", "sha256": "b087294bb05cddf258276b0193dcc2945c917d59b7ff671c8a55fd0fc966396c" }, "downloads": -1, "filename": "vpnchooser-0.6.4.tar.gz", "has_sig": false, "md5_digest": "802346a3aff1a1699522ada955bc608b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 857357, "upload_time": "2015-11-23T22:55:14", "url": "https://files.pythonhosted.org/packages/51/1d/22c338dab5569207edc84c2dfa4e5d9baf868d16f47149edb35b1e89598d/vpnchooser-0.6.4.tar.gz" }, { "comment_text": "", "digests": { "md5": "a088402165fec7626b54ff8c49c61f58", "sha256": "469a0be936276ec73e50e36cdc8b8a46f5cb1c6836e4519027d160e9d2127b4f" }, "downloads": -1, "filename": "vpnchooser-0.6.4.zip", "has_sig": false, "md5_digest": "a088402165fec7626b54ff8c49c61f58", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 877000, "upload_time": "2015-11-23T22:55:23", "url": "https://files.pythonhosted.org/packages/79/c7/617261efc55eebe344a299436147856e6a959eba0113c9a563f5634f9539/vpnchooser-0.6.4.zip" } ], "0.6.5": [ { "comment_text": "", "digests": { "md5": "8d8a5649027fa6e95c96ee14ef4669a1", "sha256": "8b5928cc1fe04688e47bfd0e7bdfb2584e7ae726b9f004403d8d35e846a2c0ec" }, "downloads": -1, "filename": "vpnchooser-0.6.5.tar.gz", "has_sig": false, "md5_digest": "8d8a5649027fa6e95c96ee14ef4669a1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 857343, "upload_time": "2015-11-24T00:02:00", "url": "https://files.pythonhosted.org/packages/61/79/94b7f2bb71fa0b8645c552ec1d041640135e020b8fffeb02cb91c7934560/vpnchooser-0.6.5.tar.gz" }, { "comment_text": "", "digests": { "md5": "de062519ac76a1aa1ec98a556d83eb42", "sha256": "86f3ba501693b63ccc7990e375d5a1b33245b85c3433d47bd73503f175abd363" }, "downloads": -1, "filename": "vpnchooser-0.6.5.zip", "has_sig": false, "md5_digest": "de062519ac76a1aa1ec98a556d83eb42", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 877002, "upload_time": "2015-11-24T00:02:15", "url": "https://files.pythonhosted.org/packages/73/e3/d641dcdd6d6068ca64a99c539007011b0edfb692490728c67174c55b637d/vpnchooser-0.6.5.zip" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "8d8a5649027fa6e95c96ee14ef4669a1", "sha256": "8b5928cc1fe04688e47bfd0e7bdfb2584e7ae726b9f004403d8d35e846a2c0ec" }, "downloads": -1, "filename": "vpnchooser-0.6.5.tar.gz", "has_sig": false, "md5_digest": "8d8a5649027fa6e95c96ee14ef4669a1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 857343, "upload_time": "2015-11-24T00:02:00", "url": "https://files.pythonhosted.org/packages/61/79/94b7f2bb71fa0b8645c552ec1d041640135e020b8fffeb02cb91c7934560/vpnchooser-0.6.5.tar.gz" }, { "comment_text": "", "digests": { "md5": "de062519ac76a1aa1ec98a556d83eb42", "sha256": "86f3ba501693b63ccc7990e375d5a1b33245b85c3433d47bd73503f175abd363" }, "downloads": -1, "filename": "vpnchooser-0.6.5.zip", "has_sig": false, "md5_digest": "de062519ac76a1aa1ec98a556d83eb42", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 877002, "upload_time": "2015-11-24T00:02:15", "url": "https://files.pythonhosted.org/packages/73/e3/d641dcdd6d6068ca64a99c539007011b0edfb692490728c67174c55b637d/vpnchooser-0.6.5.zip" } ] }