Technical Features of adam:ONE (v4) anmuscle

This article covers the technical features of the multi-platform binary anmuscle, version 4.5.3 and up. See knowledge base article for (v3) anmgr separately.

adam:ONE is software that runs on gateways, and in some instances as standalone. It features a web server as well as a fully-functional forwarding DNS server, designed for use on internal networks. It also interacts directly with the host’s firewall environment for the purposes of DTTS (Don’t Talk To Strangers) as a way of making DNS filtering leak-proof.

usage = ./adamnetmuscle [options]

–authenticated-clients
semi-colon separated list of client-id,client-pk

–block-private
block private IP addresses in DNS responses as per RFC1918

–box-id
override automatic box id detection

–brain-address
override controller ipaddress@port

–brain-fqdn, -b
override controller FQDN

–cname-checking
specify a way to check cnames against lists: none, all, allowlistonly,
blocklistonly. This overrides a controller setting.

–config-file, -c
file full of config options

–critical-fqdns
comma separated list of critical fqdns which should always be accessible

–disable-arp
disable ARP discovery (default: false)

–disable-autorestart
disable automatic restart on an irrecoverable error

–disable-brain
disable brain service

–disable-cname-flattening
disable CNAME flattening

–disable-default-upstream
disable using of default upstream until profiles are retrieved

–disable-environmental-features
disable all features affecting operating system

–disable-nd
disable ND discovery (default: false)

–disable-netbios
disable Netbios discovery (default: false)

–disable-packet-monitor
disable packet monitoring

–disable-private-subnets-blocking
disable blocking of private or non-routable IP addresses

–disable-reporter
disable reporter service

–disable-sd
disable SD (MDNS) discovery (default: false)

–disable-test-resolution
disable automatic DNS resolution of the test domain

–dns-a-ttl
TTL of A/AAAA records for blocked answers

–dns-cache-size, -d
number of unique DNS queries to cache

–dns-default-blocks
semi-colon separated list of default DNS blocks in the format
[name,type,additional_data] where type can be subnets of nxdomain

–dns-default-endpoints
semi-colon separated list of default DNS endpoints in the format
[%doh_fqdn@port,]ip1@port1+ip2@port2,block_name

–dns-default-operation-mode
optimized (default) or harmonized

–dns-enable-port-obfuscation
obfuscate ports for outgoing DNS requests

–dns-history-size
DNS history buffer size for data logger

–dns-listen-port
default listen port for DNS server

–dns-listener
comma separated list of either interface names or ipaddress@port pairs for
DNS server

–dns-max-fastest-solo-uses
maximum number of times a fastest target will be chosen before others get
re-queried (default: 10)

–dns-max-recursions
maximum number of recursions (default: 10)

–dns-minimum-reduced-timeout
lowest reduced timeout in milliseconds (default: 20)

–dns-query-limit-buckets
number of buckets to enable burst in rate limiter

–dns-query-limit-rate
maximum number of queries per second

–dns-reduced-timeout
percentage (0-99) to which to reduce a timeout of eachconsecutively dead
upstream endpoint (default: 50)

–dns-soa-ttl
TTL of SOA records

–dns-upstream-timeout
timeout in milliseconds for upstream DNS requests

–dns64-subnets
comma separated list of DNS64 subnets for (un)mapping of IPv4 addresses

–dnssec-request
request DNSSEC

–doh-listen-port
default listen port for DoH server

–doh-listener
comma separated list of either interface names or ipaddress@port pairs for
DoH server, supports HTTP2 (HTTP1.1 not supported)

–domain-name
domain name for the local network

–dot-listen-port
default listen port for DoT server

–dot-listener
comma separated list of either interface names or ipaddress@port pairs for
DoT server

–dtts-access-chain-name
chain name for DTTS access rules

–dtts-access-dst-set-name
DTTS nftables set name for controller IP addresses lookup

–dtts-access-ipset4-name
IPv4 ipset name for DTTS access rules

–dtts-access-ipset6-name
IPv6 ipset name for DTTS access rules

–dtts-access-src-set-name
DTTS nftables set name for blocked WAN access lookup

–dtts-any-source
any source IP address will match for a given destination

–dtts-block-chain-name
chain name for DTTS block rules

–dtts-check-period
poll period in seconds to ensure critical DTTS firewall entries are in place

–dtts-dns-response-delay
delay in milliseconds before responding to DNS request after hole has been
created

–dtts-engine
engine to power DTTS (default: iptables)

–dtts-establish-chain-name
chain name for DTTS establish rules

–dtts-extra-ttl
extra DTTS hole TTL in percents

–dtts-max-ttl
maximum DNS record TTL in seconds for DTTS purposes

–dtts-min-ttl
minimum DNS record TTL in seconds for DTTS purposes

–dtts-nfqueue-id
DTTS NFQUEUE id

–dtts-reject-chain-name
chain name for DTTS reject rules

–dtts-server-address
ipaddress@port (TCP) or path (UNIX) of DTTS server

–dtts-table-name
table name for DTTS nftables

–dtts-use-inet-table
use nftables inet table type, if enabled, access set names will be postfixed
with _v4 and _v6 respectively

–edns0-subnet-accept
accept EDNS0 subnet information

–edns0-subnet-append
append EDNS0 subnet information to DNS requests

–enable-dns64
enable DNS64 handling of DNS requests/responses

–enable-tuntap
enable automatic creation of tuntap interfaces for non-existent
redirect-local (HTTP server) and listen-address (DNS server) addresses

–files-to-monitor
semi-colon separated list of paths and parsing engines in the format
[path,engine]. Available options:
dhcpd_leases,dnsmasq_leases,hosts,resolv,unbound_leases,unbound_entries

–help, -h
print help message

–http-fallback-always-match
match against fallback interface even if IP address does not fall under any
of its subnets

–http-fallback-interface
fallback interface for providing block page IP addresses

–http-listen-port
default listen port for HTTP server

–http-listener
comma separated list of either interface names or ipaddress@port pairs for
HTTP server

–http-proxy-subnet
subnet range for HTTP proxy (10.0.0.0/24)

–http-proxy-tunnel-lifetime
lifetime of HTTP proxy tunnel in seconds

–in-band-mac
pair this MAC address with IP address in DNS resolution for the purpose of
device tracking

–ip4-purge-lifetime
how many seconds are IPv4 addresses attached to a device considered active

–ip4-purge-recent-keep
number of most recently active IPv4 addresses to exclude from purging

–ip6-purge-lifetime
how many seconds are IPv6 addresses attached to a device considered active

–ip6-purge-recent-keep
number of most recently active IPv6 addresses to exclude from purging

–lan-interfaces
comma separated list of interfaces used by neighbour discovery

–lock-file
one instance check lock file name

–log-file
logging sink file name

–log-files-rotate
number of log files to rotate each with same max file size

–log-level
available logging levels range from 0 to 6

–log-max-filesize
maximum log file size in bytes

–mybox-redirect
your router’s full URL redirect location (https://mybox.management:8080)

–netbios-listen-port
public NETBIOS listening port

–netbios-reply-port
NETBIOS broadcast reply-to port

–packet-monitor-history-size
packet monitor history buffer size for reporting purposes

–packet-monitor-promiscuous
set monitored interfaces to promiscuous mode

–pid-file, -p
file name to store a process id if running as a service

–prefer-ipv6
prefer IPv6 in certain scenarios

–private-subnets
comma separated list of private or non-routable subnets
(10.0.0.0/8,::ffff:0:0/96)

–reporter-fqdn, -r
override controller FQDN for reporting purposes

–run-as-user
name of local user to drop privileges to

–service, -s
run as a service in the background

–signature-pk-file
file containing the signature public key

–signature-sk-file
file containing the signature secret key

–ssl-ca-file
file containing brain public key in PEM format

–ssl-cert-file
file containing certificate for relevant SSL/TLS operations in PEM format

–ssl-dh-file
file containing DH for relevant SSL/TLS operations in PEM format

–ssl-domain-name
domain name for relevant SSL/TLS operations in PEM format

–ssl-key-file
file containing private key for relevant SSL/TLS operations in PEM format

–ssl-key-password
password for supplied private key for relevant SSL/TLS operations

–ssl-system-ca-file
file containing system certificates in PEM format

–tools-fqdn
tools page FQDN

–version, -v
print version information

–vpn-interface
VPN interface for some controller communication