yamn


NAME yamn - An anonymous remailer application


SYNOPSIS
[-m] [-s] [-l rem1,rem2,rem3,...] [-t user@host] [-s subject] [-c num] [recipient] filename
[-M] [-D] [-s]
DESCRIPTION




Yamn (Yet Another Mix Network) is an anonymous remailer. Remailers provide protection
         against traffic analysis and allow sending mail anonymously or pseudonymously.

In the non-interactive mode, Yamn reads a message from its standard input or from a Maildir.
Destination address and input file can be specified in the command line. If no address is given
in the command line, the input file is expected to contain a message complete with mail headers.


OPTIONS -c, --copies=num


When operating in client mode, define how many copies of each message should be sent.
Multiple copies share the same exit-remailer which retains a list of processed Packet-IDs,
ensuring that only a single copy is delivered. This setting overrides the default config
Stats/Numcopies option (Default: 1)


--config=filename

Specify an alternate configuration file. This flag overrides the YAMNCFG environment
variable which, in turn, overrides the default which expects a yamn.cfg file to exist
in the same directory as the yamn binary.


-D, --daemon
Start a remailer in an endless loop of reading, processing and sending messages.
This option only has meaning when used with the -M option.


-l, --chain=rem1,rem2,rem3,...

Use the defined chain to route the message through the Yamn network.
Random nodes can be selected with asterisks. E.g. --chain="*,*,*". If
multiple copies are specified, all copies must share a common exit remailer.


-m, --mail Operate in client mode and inject a plain-text message into the Yamn pool.


-M, --remailer
Operate in server mode. Normally used in combination with -D to continuously process,
otherwise only a single iteration of read, process, send will be performed.


-R, --read-mail Read the message from the STDIN pipe instead of from a file or Maildir.


-s, --subject=subject
Specify a Subject header for the message. If this isn’t defined, the Subject is expected
to be defined within the message.


-S, --send
Flush the outbound pool. Useful for client mode and remailer testing but should not be
used on an in-production remailer.


--stdout Pipe the output message to STDOUT instead of storing it in the Pool.


-t, --to=user@host
Specify a recipient for the message. If this option isn’t defined, the recipient is expected
to be included in the message itself.


CONFIGURATION


Yamn, by default, reads its configuration from the file yamn.cfg in its working directory. This behaviour can be
overridden using the --config option defined above. The file consists of name=value pairs, grouped into sections.

Examples: Pubring=/path/to/pubring.mix  Fetch=yes  SMTPRelay=any.relay.net  SMTPPort=25  MXRelay=true



Files section: The following parameters go under the [Files] section header in yamn.cfg.

Pubring Path to the public keyring file. Default: pubring.mix


Mlist2 Path to the remailer statistics file. Default: mlist2.txt


Pubkey Path to the remailer’s public key file. Default: key.txt


Secring Path to the remailer’s secret keyring file. Default: secring.mix


Secnew

Path to the remailer-generate secret keyring file. This file is updated as new keys
are generated and old keys expire. If the operator deems fit, the Secring file can be
overwritten by this constantly revised version. Default: secring.new


Adminkey
Path to the operator’s personal PGP Public Key. If this file exists, it will be sent in
response to client remailer-adminkey requests. Default: adminkey.txt


Help
Path to the remailer help file. This will be sent in response to a remailer-help
request. Default: help.txt


Pooldir
Path to the directory that will be used for storing inbound and outbound remailer
messages. Default: pool


Maildir
Path to the Maildir folder the remailer will read inbound messages from.
Default: Maildir


IDLog Path to the directory that will host the ID Log Database. Default: idlog


ChunkDB Path to the director hosting the Chunk Database. Default: chunkdb



Urls section:


The following parameters go under the [Urls] section header in yamn.cfg.
Yamn has the capability to pull stats and key sources from URLs published by
pingers. The following settings determine which source URLS should be used
if periodic downloading is required.

Fetch Should Yamn attempt to retrieve stats/keys at periodic intervals? Default: yes


Pubring
URL of a Public Keyring source. See also Files/Pubring for the default save
location of the downloaded file. Default: http://www.mixmin.net/yamn/pubring.mix


Mlist2 URL of an Mlist2 style stats source. See also Files/Mlist2 for the default save
location of the download files. Default: http://www.mixmin.net/yamn/mlist2.txt



Mail section:

The following parameters go under the [Mail] section header in yamn.cfg.
Special attention should be paid to this section. Without a knowledge of how to
send outbound email, both clients and remailers cannot function.


SMTPRelay Hostname that mail should be relayed to. Default: 127.0.0.1


SMTPPort
Used in combination with SMTPRelay to define the port number of the SMTP service.
Default: 25


MXRelay Use the SMTPRelay and SMTPPort options to look up the MX. Default: false
Sendmail




Boolean (yes/no) option to determine if Yamn’s internal sendmail function should
be used to deliver messages. If set to yes, the settings SMTPRelay, SMTPUsername
and SMTPPassword MUST be defined. If set to no, the server will use the standard
SMTP relay instead. This is potentially a good option if delivering mail to a
local MTA or any one where authentication is not required. The SMTPRelay option
defines where messages should be relayed to.


Outfile
If set to "yes", outbound messages will be written to the queue directory instead
of mailing them. This overrides all other delivery options. Default: No


Pipe

If this option is specified, messages will be piped to an external command for mail
delivery. A common example being: /usr/sbin/sendmail -t. This overrides the Sendmail
option described above. Default: None


Sender

The sender address the remailer will use on outbound messages. This applies to all
inter-remailer messages and to final-recipient messages if no user-defined sender
is specified. Default: mix@nowhere.invalid


UseTLS Send packet using TLS if available. Default: true


OnionRelay
Allow .onion addresses as MX relays. Default: false


Username Username of SMTPRelay if required.


Password Password of SMTPRelay if required.


OutboundName
The outbound name in the From: address. This is used in remailer mode only.
Default: Anonymous Remailer


OutboundAddy
The outbound address in the From: address. This is used in remailer mode only.
Default: remailer@domain.invalid


CustomFrom Allow custom From address. Default: false



Stats section: The following parameters go under the [Stats] section header in yamn.cfg.

Minrel
When constructing chains with random nodes, only those exceeding this minimum
percentage uptime will be considered. Default: 98.0


Relfinal
When constructing chains with a random exit node, only those exceeding this
minimum percentage uptime will be considered for the final hop. Default: 99.0


Minlat
The minimal latency (in minutes) the local remailer or client will consider when
building a chain that contains one or more random nodes. Default: 2


Maxlat
The highest latency (in minutes) the local remailer or client will consider when
building a chain that contains one or more random nodes. Default: 60


Chain The remailer chain. Default: *,*,*


Numcopies
The number of copies to send.< font color="4B788B">Default: 1


Distance When selecting random remailers, the chain will contain DISTANCE other remailers
between two occurrences of the same remailer in the chain. Default: 2


StaleHrs ???. Default: 24


UseExpired Use remailers with expired keys. Default: false



Pool section: The following parameters go under the [Pool] section header in yamn.cfg.

Size Pool size before send the pool. Default: 5


Rate
Percentage of messages from the pool to be sent. Default: 65


MinSend Minimum messages in the pool before sending. Default: 5


Loop Loop dictates how long (in seconds) the server will wait between checking the
pool to see if any messages need processing. This only has significance when
running in daemon mode. Default: 300


MaxAge Pooled Date header maximum age. Default: 28



Remailer section: The following parameters go under the [Remailer] section header in yamn.cfg.

Name The name to be prepended to the remailer 'Address'. Default: anon


Address The address of the remailer. Default: mix@nowhere.invalid


Exit Determines if a remailer is to be a middle or and exit. Default: false


MaxSize Maximum message size in kB. Default: 12


IDexp YAMN keeps a log of packet IDs to prevent replay attacks. IDEXP specifies after
which period of time old IDs are expired. Default: 14


ChunkExpire ChunkDb expiration date. Default: 60


MaxAge Maximum days of ChunkDb. Default: 14


Keylife Days key will be valid and then become expired expires. Default: 14


Keygrace Days an expired key will still be available. Default: 28


Daemon Start in continuous running mode. Default: false



General section: The following parameters go under the [General] section header in yamn.cfg.

LogToFile Log yamn events to log file yamn.log. Default: true


LogLevel Select LogLevel trace, info, warn, or error for the log file output.