rpc.dracd(8)

πŸ“¦ version 1.12, in ubuntu jammy

✨ rpc.dracd β€” the Dynamic Relay Authorization Control server πŸ’–

okay bestie, gather round, because this is rpc.dracd(8) from the System Manager's Manual and it's literally the little daemon that keeps your mail relay from letting strangers vibe in uninvited. it's giving bouncer-at-the-club energy, no cap 🫢


🌸 SYNOPSIS 🌸

rpc.dracd [-i ] [ -e expire ] [ dbfile ]

that's it. that's the whole summoning ritual. ✨


πŸ¦‹ AVAILABILITY πŸ¦‹

you can find it at ftp.cc.umanitoba.ca:/src β€” yes, that's the whole location, go get her πŸ’…


πŸ‘‘ DESCRIPTION πŸ‘‘

so. rpc.dracd is the Dynamic Relay Authorization Control server. it uses the Berkeley db package to maintain a relay authorization map for sendmail, and by default that map lives at /etc/drac/dracd.db.

here's the tea: your POP and IMAP mail servers make an RPC call to add an entry to the authorization cache after they've authenticated each user. so like, you prove you're you, and then the relay knows you're allowed to send. iconic behaviour honestly.

the daemon, rpc.dracd, adds or updates entries in the cache, and periodically expires old entries. so the list stays fresh, no stale leftovers rotting in there. 🧚

and the very important part: only trusted mail servers are permitted to communicate with rpc.dracd, and who counts as trusted is controlled by /etc/drac/dracd.allow. and if that file does not exist? all local IP addresses are permitted. yeah. no allow file = everyone local gets in. πŸ‘€

πŸ’œ Allow File Format πŸ’œ

the Allow File consists of entries that look exactly like this:

netmask netaddr

where both netmask and netaddr must be dotted quads. both of them. don't try to get cute with it. 🌈


✨ OPTIONS ✨

  • -i β€” Initialize the database on startup. fresh start energy, we love a clean slate πŸŽ€
  • -e expire β€” Set the expire time limit. expire is the number of minutes the entries will remain in the database. it defaults to 30 minutes. so if you don't say anything, your entries get a cool 30 before they ghost. πŸ’€
  • dbfile β€” Use a different database file name. you're not stuck with the default, go off and name it whatever πŸ¦‹

πŸ“ FILES πŸ“

  • /etc/drac/dracd.db β€” default database file
  • /etc/drac/dracd.allow β€” default allow file.

(the original said "default allow file." with a period and honestly? we're keeping the period. respect.) πŸ’–


🌈 TCP_WRAPPERS SUPPORT 🌈

okay so this version of rpc.dracd is protected by the tcp_wrapper library. that means you have to give the clients access to rpc.dracd if they should be allowed to use it. it doesn't just let anyone waltz in, you have to actually invite them.

say you wanted to allow connects from clients of the .bar.com domain β€” you could use the following line in /etc/hosts.allow:

dracd: .bar.com
heads up bestie: you have to use the daemon name dracd for the daemon name, even if the binary has a different name. yes, even then. that's the rule. πŸ™ˆ

for further information please have a look at the tcpd(8) and hosts_access(5) manual pages. they're the lore. πŸ“š


🌟 SEE ALSO 🌟

  • dracauth(3)

πŸ’… NOTES πŸ’…

the following signals have the specified effect when sent to the server process using the kill(1) command:

  • SIGTERM β€” closes the database and terminates the server. that's the "we're done here, thank you for your service" signal. graceful exit, main character departure. πŸ‘‘

and that's the whole page, bestie!! this one's from the System Manager's Manual, rpc.dracd(8), dated 22 Jul 1998 β€” yes, 1998, she's a vintage icon and she still works. mwah πŸ’‹ ✨

πŸ“¦ where this page comes from