RATFS(4)                                                 RATFS(4)

     NAME
          ratfs  - mail address ratification file system

     SYNOPSIS
          ratfs [ -d ] [ -c configuration ] [ -f classification ] [ -m
          mountpoint ]

     DESCRIPTION
          Ratfs starts a process that mounts itself (see bind(2)) on
          mountpoint (default /mail/ratify).  Ratfs is a persistent
          representation of the local network configuration and spam
          blocking list.  Without it each instance of smtpd(6) would
          need to reread and parse a multimegabyte list of addresses
          and accounts.

          Ratfs serves a control file, ctl, and several top level
          directories: trusted, deny, dial, block, delay, and allow.

          The control file is write only and accepts three possible
          commands:

          reload      rereads classification and configuration
          debug file  creates file and sends debugging output to it.
          nodebug     closes the debug file and turns off debugging

          The directory trusted serves a file for each IP range from
          which all mail is trusted.  The names of the files are CIDR
          blocks; an IP address or an IP address followed by #n, where
          n is the number of bits to match.  To check if any IP
          address falls in a trusted range, it is sufficient to open
          the file whose name is the IP address.  For example, if
          trusted contains only the file 135.104.0.0#16, an attempt to
          open the file 135.104.9.1 will succeed while opening
          10.1.1.1 will fail.  To determine the particular range
          matched, dirfstat (see stat (2)) the open file and the name
          field will be the matching CIDR range.

          The trusted ranges come both from the ournet entries in the
          file configuration (default /mail/lib/blocked) and from cre-
          ates, typically done by imap4d (see ipserv(8)) and pop3 (see
          mail(1)) whenever they are used to read someone's mail.

          The remaining directories, allow, block, delay, deny, and
          dial, represent the contents of the classification (default
          /mail/lib/smtpd.conf.ext).  Each contains two directories;
          ip and account.  The ip directory has the same open seman-
          tics as the trusted directory, i.e., to check if an IP
          address falls in that category, try to open a file whose
          name is the IP address.  The account directory is similar
          but is used for matching strings.  Each file in the

     Page 1                       Plan 9            (printed 12/23/24)

     RATFS(4)                                                 RATFS(4)

          directory represents a regular expression.  To see if one of
          the strings matches one of the regular expressions, try to
          open the file whose name is the string.  If it succeeds,
          then there is a regular expression that matches.  To deter-
          mine the regular expression, fstat the open file.  The name
          field will be the regular expression.

          There is a direct mapping from entries in classification and
          files under allow, block, delay, deny, and dial.  A configu-
          ration file entry of the form:
               dial 135.104.9.0/24
          corresponds to the file dial/ip/135.104.9.0#24.  An entry of
          the form
               *block    .*!gre
          corresponds to the file block/account/.*!gre.

          Both the configuration file and control file formats are
          described in smtpd(6).

     SOURCE
          /sys/src/cmd/ratfs

     SEE ALSO
          mail(1) smtpd(6) scanmail(8)

     Page 2                       Plan 9            (printed 12/23/24)