GithubHelp home page GithubHelp logo

tam7t / droplan Goto Github PK

View Code? Open in Web Editor NEW
69.0 69.0 12.0 186 KB

Manage iptable rules for the private interface on DigitalOcean droplets

License: MIT License

Makefile 3.29% Go 95.37% Shell 1.34%
digitalocean iptables

droplan's Introduction

droplan's People

Contributors

mreithub avatar tam7t 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

Watchers

 avatar  avatar  avatar  avatar

droplan's Issues

support tags

digitalocean now supports tagged droplets. It would be nice for droplan to support using these tags to control access.

One thought would be for droplan to accept (one or more?) tags for droplets that have access to the box.

Do you clear the old entries from the chain ?

Hi @tam7t

I had a quick look ad the code, and it seems to me that you only append rules to the chain.
Droplets are ephemeral, so we will end up with a lot of allowed droplets, even after we have destroyed them and they already belong to Eve.

Regards, B.

Whitelist IP addresses

In conjunction with #20, it would be cool if we could also allow access to users coming from a certain IP address. You could even do something like:

ALLOWED_ACCESS=EXTERNAL_IP:HOST_PORT,EXTERNAL_IP:HOST_PORT

remove goblin

Use just standard table tests instead of the goblin package to make this more idiomatic go.

Allow opening some ports to access

In conjunction with #20, it would be cool if we could still allow access to certain ports even when we block traffic overall. For instance, users that want to setup a jumpbox could whitelist port 22 and otherwise have the same config as every other server.

run continuously

I think it would be nicer to run droplan as a daemon process that continuously ran so that it could better splay out requests to the digitalocean api and more gracefully handle throttling.

Permanently Open Ports on Public/Private

Hey @tam7t! I'm very excited about this, I've wanted something with this functionality for a while!

I'm curious what your thoughts would be on being able to configure droplan to statically maintain certain ports (say, 80/443 or 22) to be open to everyone. This would allow you to run this on the public and private interfaces and maintain SSH access, run a web server, etc.

I don't think this would be super hard to add, but it might make configuration a little more complex than it is now. Thoughts?

Also, happy to do a proof of concept sometime this week if this passes muster.

DO Load Balancers

Love droplan.
Is it possible to include DO Load Balancers to the list of allowed IPs? That'd really help!

Thanks,
Adam

Release tarball / bz2 / whatever?

Very minor thing, but many systems don't come with unzip preinstalled. Detailed instructions could skip one step if there was a release .tar.gz / .gz / .bz2. (I s'pose there's not much point in tarring it up since it's literally a single file...)

Blocking external traffic from nodes not on Digital Ocean

I have a use case where I need to have services listening on an external interface so that I can properly reference them across each server. In AWS, you could simply have the interface be 0.0.0.0 and block all traffic that is not within the security group attached to an instance.

In the ideal case, we could block all traffic that isn't coming from any of our instances IPs and then just use a jumpbox when attempting to access those servers. Perhaps a second chain like droplan-external-peers could be used in this case?

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.