whaleguard

command module
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 18, 2024 License: MIT Imports: 12 Imported by: 0

README

WhaleGuard

WhaleGuard discovers docker to open dynamically your ip6tables firewall for your containers. The approach is to use the native v6 addresses of the container for inbound traffic without opening your whole subnet to the world.

The containers are required to have an global ipv6 address.

As the main focus is protecting the native ipv6 subnet, ipv4 is currently not supported.

Usage

-chain string   Set name of iptables chain to manage (default "WHALEGUARD")
-defaults       Add some default deny rules
-iface string   Incoming network interface on host (default "eth0")
-label string   Discovery only container attached with this label (default "whaleguard=true")
-network string Created chain just cares about this subnet

The docker client has some extra env variables you can set: DOCKER_CERT_PATH, DOCKER_TLS_VERIFY, DOCKER_HOST

Run in a docker container

Image DockerHub

The container requires some extended privileges (given by CAP_NET_ADMIN) and needs to be run on the host network. Obviously docker socket is required for api calls to docker.

docker run -ti --cap-add=NET_ADMIN --net host -v /var/run/docker.sock:/var/run/docker.sock project0de/whaleguard -iface eth0 -defaults -network 2001:1:1:/65

Docker Labels

To prevent automatic creation of unwanted rules, container needs to be labeled:

whaleguard

The label whaleguard enables this container for whaleguard to use The value needs to be set to true

whaleguard.port

The label whaleguard.port is optional to use. Per default whaleguard tries to open ports which are defined in the port mapping, if you dont want this behaviour use this label.

In some situations its necessary to control better which ports needs to be opened, so you can define exactly which ports should be opened

Setting the label like this --labels="whaleguard.port=2003" will open port 2003 to the containers v6 address.

Multiple ports are allowed to define: --labels="whaleguard.port=2003,2004,2006"

If you want to specify the protocol (default is tcp): --labels="whaleguard.port=2003/tcp,2004,2006/udp"

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL