Print

penumbrad

Status


Penumbrad now works for actual file transfer using the protocol.

The https server is working and accepts uploads, encrypts and signs them, and stores them in /var/lib/penumbra. A thread periodically issues advert packets for any uploads. Another thread accepts the adverts and the https server (listening on localhost:8111) shows any advertised or uploaded uploads. If you select a file to be downloaded, it is streamed to your local browser, either directly from the encrypted upload files or by streaming it first over the penumbra protocol from a box that has the actual data.

Passing on requests is not implemented yet, but the rest of the file transfer actions are, so that two penumbra stations within range can pass files around using the protocol from requests by a browser.

Building it


You will need the following packages installed to build
libgcrypt
libgcrypt-devel
openssl
openssl-devel
libfec
libfec-devel
libgpg-error
libgpg-error-devel


A patched copy of libfec can be found on the downloads page.

Installing it


After the build, as root

make install setperms

or

make DESTDIR=<fake root> install setperms

to install into <fake root>/ as /

The RPM takes care of this as part of the RPM install action.

Running it


The Usermode Daemon needs to be run as root, but it changes its permissions to UID and GID 1200 immediately after opening the raw socket it needs to transmit.

Just run it with no args and it should start issuing Penumbra packets. For initial confirmation it is working and debug, you can use the -s switch to have it send 10 plain ASCII packets a second: if your driver and 80211 stack is patched then these should be being sent in plaintext from your wireless adapter. You can confirm with tcpdump using another box with a wireless device running Monitor mode on the same channel that the packets are coming out in clear. If you have a second Penumbra capable device, the embedded webserver shows the status of any pinging stations active in the last two seconds under the interface stats on the left.

The packets look like this

tcpdump -iwlan0 ether host 13:22:33:44:55:66 -s0 -X

21:58:04.961012 IP 0.0.0.0.61441 > 255.255.255.255.61442: UDP, length 162
0x0000: 4500 00be c082 0000 0111 f8ad 0000 0000 E...............
0x0010: ffff ffff f001 f002 00aa 3f56 9f00 0000 ..........?V....
0x0020: 0000 0000 0003 5020 4520 4e20 5520 4d20 ......P.E.N.U.M.
0x0030: 4220 5220 4120 2050 494e 473a 2020 5374 B.R.A..PING:..St
0x0040: 6174 696f 6e3a 2075 6c74 7261 6361 742e ation:.ultracat.
0x0050: 686f 6d65 2e77 6172 6d63 6174 2e63 6f6d home.warmcat.com
0x0060: 2f65 7468 3020 2020 4f72 6469 6e61 6c3a /eth0...Ordinal:
0x0070: 2030 3030 3030 3333 3820 2020 2873 6565 .00000338...(see
0x0080: 2068 7474 703a 2f2f 7065 6e75 6d62 7261 .http://penumbra
0x0090: 2e77 6172 6d63 6174 2e63 6f6d 2900 5d2b .warmcat.com).]+
0x00a0: 90e9 c3ae efa7 7e09 c550 36db c9d7 faeb ......~..P6.....
0x00b0: b5fc 395d 8a01 2a2c 8837 ca85 d2e9 ..9]..*,.7....


See Packet Traces for an idea of what the packets look like at each stage.

penumbrad has the following commandline options:

-D/daemonizeFork into a background process that is not reliant on the existence of the terminal used to start it; run as a daemon
-d/debugPrint additional activity information on stdout, not useful with daemonize
-s/sendpingsSend cleartext station ID packets at 100ms intervals. Used for surveying and debugging - destroys station anonymity
-p <n>/--port=<n>Set the https server listen port





Created by admin. Last Modification: Wednesday 11 of April, 2007 10:33:52 BST by admin.

Important Pages

Penumbra
RFC
Downloads
Implementation
penumbrad
Packet Traces
packetspammer
FAQ
Email:

Menu

Quick Edit a Wiki Page