Table of Contents

News (NNTP)

PBNntp turns your message areas into newsgroups, so callers can read and post with a newsreader instead of a terminal program. It was written for PBMessages, the desktop reader and editor, but any newsreader works: Thunderbird, Pan, slrn, tin, gnus and others.

PBDispatch owns the two ports and starts a PBNntp.exe for each caller, so a session survives restarting PBDispatch.

Set it up

The NNTP Server screen in PBConfig Figure 1. Network > NNTP Server in PBConfig.

On the left are News server (enable, plain logins, posting, guest reading, the two ports with their On boxes, session limits, lowest level, wrong passwords, greeting name) and Certificate (TLS). On the right are Newsgroups and posting (prefix, host name for IDs, clock offset, echo origin line, largest post), Users who may not use news (one name per line) and Folders and log. Allow posting and Let callers who have not logged in read the open areas are the allowpost and guestread settings in the reference below.

  1. Open Network > NNTP Server in PBConfig and tick Enable the news server. Defaults: news port 119, NNTPS port 563, 16 sessions, 6 per address, minimum level 1. Set a port to 0 to turn that one off.
  2. Certificate (needed for STARTTLS and NNTPS). Type the name your callers will use into Name on the certificate and click Create self-signed certificate, or put a certificate from a certificate authority, in PEM format, into the two file boxes. The newsreader shows a self-signed certificate's fingerprint the first time and asks you to trust it.
  3. Newsgroup prefix. Changing it renames every group, so newsreaders must subscribe again.
  4. Host name for IDs. The part after the @ in the Message-IDs PBNntp makes for messages that have no FidoNet MSGID. Your domain name is a good choice, but any plain name works. Pick one and leave it alone, or newsreaders may show articles as new.
  5. BBS clock vs UTC. auto uses this PC's current time zone; or enter minutes (-300 for US Eastern standard time). The board stores local time and news wants UTC.
  6. Echo origin line. Used for echo posts in areas that have none of their own. Empty means the board's name.
  7. Click Save, then Test settings, then restart PBDispatch. The log shows NNTP enabled, listening on port 119 and NNTPS listening on port 563.
  8. Behind a router, forward the news port and/or the NNTPS port and allow them in Windows Firewall. There is only one connection, so no passive range.

Tools > NNTP Sessions… in PBDispatch lists who is connected and whether each port is really open.

Connecting PBMessages

In PBMessages choose Tools > Accounts and add an NNTP account. Set the server to your board's host name or address, the port to 563 with “Use TLS” on (or 119 with STARTTLS), and use the caller's BBS user name and password. Accept the certificate the first time if it is self-signed. The newsgroup list then shows one group for each area the caller may read.

The PBMessages window

PBMessages connected to a board Figure 2. PBMessages connected to a board over TLS. Names have been blurred.

Settings reference (''Configs\PBNNTP.CFG'')

PBConfig writes the file. No file means news is off. A mistake means the log names the line and news stays off.

Setting Meaning Default
enabled yes or no. yes
port, tlsport News port (plain, with STARTTLS when a certificate is set) and NNTPS port. 0 turns one off. 119, 563
maxsessions, maxperip Limits (1 to 64) overall and per address. 16, 6
syspath, msgpath The data folder, and where USERS.BBS lives.
certfile, keyfile PEM files. Optional when allowplain yes.
allowplain Accept a password on an unencrypted connection. no
bbsname Shown in the greeting.
hostname Host part of generated Message-IDs. bbs.invalid
groupprefix Newsgroup prefix; none means no prefix. pb
utcoffset auto or minutes (-720 to 840). auto
origin Origin line for echo posts. the board name
guestread May callers who have not logged in read the open areas? no
allowpost May callers post at all? yes
maxpostkb Largest post accepted (1 to 1024). 64
idletimeout Seconds without a command (30 to 3600). 300
logfile Session log.
minlevel Lowest level that may log in. 1
denyuser A user who may not use news. Repeatable.
maxloginattempts Wrong passwords per connection (1 to 10). 3

Things to know

Testing

PBNntp.exe -cfg Configs\PBNNTP.CFG -test
netstat -ano | findstr ":119 :563"
openssl s_client -connect localhost:563
openssl s_client -connect localhost:119 -starttls nntp

You should get a 200 greeting. Type CAPABILITIES, then AUTHINFO USER name and AUTHINFO PASS password, then LIST ACTIVE, GROUP pb.local.chat, HEAD 1 and QUIT. Post a test message into a Local area from PBMessages and check it on the board. For an Echo area, run PBToss -scan and look for the message in the outbound packet.