Skip to content

Commit

Permalink
documentation updates for release
Browse files Browse the repository at this point in the history
  • Loading branch information
jaromil committed Nov 27, 2015
1 parent 9b89b39 commit 21b8d3d
Show file tree
Hide file tree
Showing 3 changed files with 75 additions and 23 deletions.
7 changes: 5 additions & 2 deletions AUTHORS.txt
Expand Up @@ -6,8 +6,11 @@ hackmeeting community.
Its (fairly minimal) codebase is designed, written and maintained by
Denis Roio <jaromil@dyne.org> and distributed by the Dyne.org foundation.

Anatole Shaw, Hellekin O. Wold and Patrick Mc.Donald have contributed
with ideas and testing.
Federico Bonelli, Rob van Kranenburg, Roger Dep, Anatole Shaw,
Hellekin O. Wolf and Patrick Mc.Donald have contributed with ideas and
testing.

Dowse development is being funded in 2015 by NLNET foundation.

Dowse depends from various free and open source software components
redistributed under the GNU GPLv2 and GPLv3, MIT/BSD or Apache
Expand Down
12 changes: 12 additions & 0 deletions ChangeLog.md
@@ -1,3 +1,15 @@
# 0.8
## November 2015
### Fixes and cleanups, DNS graphic visualization

Dnscap is adopted on top of libpcap for DNS traffic analysis and
visualization with a first implementation supporting Gource's
format. The code is being tested in various environments with the
result of fixing instabilities, also a devops setup is now available
to simulate a test LAN using vagrant and ansible. The Consul (GOSSIP)
functionality is suspended until a use case arises. This development
is informed by the Dowse design study kindly sponsored by NLNET.

# 0.7
## June 2015
### Refactoring, GOSSIP networking via Consul
Expand Down
79 changes: 58 additions & 21 deletions README.md
Expand Up @@ -6,9 +6,7 @@

a digital rod for local area network rabdomancy

Version: 0.7

Updates: http://www.dyne.org/software/dowse
Updates: http://dowse.eu

Whitepaper: https://files.dyne.org/dowse/dowse_whitepaper.pdf

Expand All @@ -31,21 +29,26 @@ codebase implementing a modular plugin architecture that isolates
processes and supports any executable written in any language: Shell,
C, Perl, Python etc.

Dowse is an ongoing development effort rapidly gaining momentum for
its simplicity and usefulness. Here a recent backstage video:
https://www.youtube.com/watch?v=vquh3IXcduc

# Features

Dowse takes control of a LAN by becoming its DHCP server and thereby
assigning itself as main gateway and DNS server for all clients. It
keeps tracks of assigned leases by MAC Address. DNSMasq is the DHCP
and DNS daemon.

All network traffic is passed through NAT rules for
masquerading. All HTTP traffic (TCP port 80) is filtered through a
transparent proxy, using an application layer chain of Squid2 and
Privoxy.
All network traffic is passed through NAT rules for masquerading.
HTTP traffic (TCP port 80) can be filtered through a transparent
proxy using an application layer chain of Squid2 and Privoxy.

All DNS traffic (UDP port 53) is filtered through DNSCrypt-proxy and
encrypted using AES/SHA256 before being sent to DNSCrypt.eu or other
configurable servers supporting this protocol.
All DNS traffic (UDP port 53) is filtered through Dnscap and
analysed to render a graphical representation of traffic. It is also
possible to tunnel it via DNSCrypt-proxy, encrypting all traffic
(AES/SHA256) before sending it to DNSCrypt.eu or other configurable
servers supporting this protocol.

In the future, traffic of all kinds may be transparently proxied for
monitoring, filtering, and transformation by other applications
Expand All @@ -65,25 +68,59 @@ Installation and activation takes a few steps and needs root:
2. Install ZSh, needed to run all scripts in Dowse: apt-get zsh
then go into the dowse directory ( cd /usr/src/dowse in example)

3. Run `./utils/debian-install.sh` as root, it fires up some commands:
`apt-get`, `update-rc.d` and `invoke-rc.d` to install dependencies
like `dnsmasq`, `privoxy` and `squid3`
3. Run `make` as root, it fires up some commands: `apt-get`,
`update-rc.d` and `invoke-rc.d` to install dependencies like
`dnsmasq`, `privoxy` and `squid3`, but also `gcc` to compile
`dnscap` and our own plugin for it.

4. Configure the files in the `conf/` folder: settings and network
The files are plain text and include documentation in comments.

5. Fire up the startup script as root: `sudo ./start.sh`
5. Fire up the startup script as root: `sudo ./start.sh` If you are
root and using the ZSh shell then it may be also practical to
`source dowse conf/settings` (or another custom config file) and
then proceed in the interactive shell launching commands prefixes
with `dowse-` (tab completion available)

6. Deactivate the DHCP service (Automatic IP configuration) on any
other object on the network, typically your ADSL router.
6. Remember to deactivate the DHCP service (Automatic IP
configuration) on any other object on the network, typically your
ADSL router.

If all went well now one should be able to connect any device to the
internet as you did before, but now all the traffic is passing via
Dowse's transparent proxy configuration, which weeds out adverts and
takes care of browser's privacy.
internet as you did before.

# Visualization

The DNs visualization log is produced in `log/dnscap.log` in a custom
format which can be easily processed by `gource`. Assuming one is
connected to a network managed by Dowse running on IP `192.168.0.254`,
then from another PC one can do

```
ssh 192.168.0.254 cat /opt/dowse/log/dnscat.log | gource --log-format custom -
```

To quickly render all the logged DNS activity found in that file. For
a realtime visualization is possible to experiment with gource
arguments, it is also easy to render all into a video file.

# Development

In the `ops` directory an Ansible recipe is found along a ready to use
Vagrant configuration to build two virtual machines (leader and
client) that simulate a LAN to do further testing of Dowse.

```
cd ops
vagrant up
```

Plus the usual vagrant commands. This build of Dowse is based on Devuan.

Open your browser to the address of the dowse router to see its status
from a web interface: `http://dowse.home.net:8500/`
Help with development is welcome, manuals on how to write new modules
and daemons are in the making and there is a sister project to
categorize all domains used by Internet's conglomerates which also
welcomes contributions: https://github.com/dyne/domain-list

# Disclaimer

Expand Down

0 comments on commit 21b8d3d

Please sign in to comment.