1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
|
# Binkd sample configuration file
# Copyright (C) 1996-1997 by Dima Maloff, 2:5047/13
# $Id: binkd.conf,v 1.3 2012/01/22 13:54:12 green Exp $
#
# Path and name for the logfile, loglevel
#
log /var/log/binkd/binkd
loglevel 6
#
# Your FTN domains:
# domain <name> <main-outbound> <default-zone> [<root-domain>]
# or
# domain <new-name> alias-for <name>
# First specified domain sets as default domain for the 3D/4D addresses.
#
domain fidonet /var/spool/ftn/outbound/fidonet 2
#
# Aliases to support known wrong 5D configurations
domain fido alias-for fidonet
domain fidorus alias-for fidonet
domain fido7 alias-for fidonet
#
# Aliases to support known DNS domain zones
# (some people is mix up the terms "FTN domain" and "DNS internet domain")
domain fidonet.org alias-for fidonet
domain fidonet.net alias-for fidonet
#
# Your addresses, 5D or 4D or 3D:
# address <addr1> ...
# If first address specified as 3D/4D then domain for it sets from domain
# defined in the first "domain" token. If second and more addresses specified
# as 3D/4D then domain sets from first address.
#
address 2:5047/999@fidonet 2:5020/999.1@fidonet
#
# Hide or present the specified AKAs if remote AKAs match the address mask
# hide-aka <my-aka> [!]<mask>
# present-aka <add-aka> [!]<mask>
# Mask is compared to the 5d-form of address string, `*' matches any number
# of any symbols (so you have to write '2:5020/*' but not '5020/*')
# Use `!' to invert the mask
# These rules apply in the same order as in config, you can present any address
#
#hide-aka 2:5020/999.* !2:*@fidonet # hide aka from all but fido zone 2
#present-aka 2:5047/999.1 2:5047/*.0* # present aka to all nodes in 2:5047
#
# The name of your system, its location and your name
#
sysname "Ivan's BBS"
location "Magadan, Russia"
sysop "Ivan Ivanov"
#
# System capabilities
#
nodeinfo 115200,TCP,BINKP
#
# Uncomment it if you want binkd's log at your console
#
conlog 4
#
# If a log message matches one of these masks it won't be written to log
# (masks are in shell/glob style, case-insensitive)
#
#nolog "*socket # [0-9]*"
#nolog "*.[bc]sy"
#
# Uncomment if you want T-Mail(FrontDoor)-style binary log
# (Will work and have sense on PCs only?)
#
#binlog binkd.sts
#fdinhist in.his
#fdouthist out.his
#
# TCP settings. Leave this unchanged if not sure.
#
# Suffixes for time intervals are w for weeks, d for days,
# h for hours, m for minutes, s or no suffix for seconds.
# You can mix the suffixes, i.e. 1d12h is the same as 36h.
#
#iport binkp
#oport binkp
#oblksize 4096
#timeout 5m
#connect-timeout 5m
#bindaddr 192.168.0.3
#
# Zlib compression parameters (if built with zlib support)
# zlevel - compression level (zlib only, bzlib2 uses 100kb always),
# set to 0 to use default value of 6
# zminsize <size> - files smaller than <size> won't be compressed anyway
# Rules:
# zallow <mask1>[ <mask2>... <maskN>] - allow compression for the masks
# zdeny <mask1>[ <mask2>... <maskN>] - deny compression for the masks
# If remote accepts compressed blocks (OPT GZ) its name will be checked
# against these rules before sending each file. If the name matches a zallow
# rule the file will be sent with compression. If the name matches a zdeny rule
# it will be sent as-is. The rule matched first is applied. If a file doesn't
# match any rule zdeny is assumed.
#
#zminsize 1024
#
#zallow *.pkt
#zdeny *.su? *.mo? *.tu? *.we? *.th? *.fr? *.sa?
#zdeny *.zip *.rar *.arj *.ha *.gz *.tgz *.bz2 *.z[0-9][0-9] *.r[0-9][0-9]
#zallow *
#
# Compression dll names, for win32 versions built with ZLIBDL
#
#zlib-dll zlib.dll
#bzlib2-dll bzlib2.dll
#
# HTTPS or SOCKS settings.
#
# proxy 192.168.0.3:3128 # <- regular http/https proxy (i.e. squid)
# proxy 192.168.0.3:3128/user/password # <- proxy required username/password
# # (as in browser)
#
# proxy 192.168.0.3:3128/user/password/your_host/your_domain
# ^- proxy required NTLM authorization with username/password
# your_host -- Windows host name without domain (i.e. MY_HOST)
# your_domain -- Windows domain name (not FQDN, i.e. DEFAULT_DOMAIN)
#
# socks 192.168.0.3:1080 # <- socks4 proxy
# socks 192.168.0.3:1080/ # <- socks5 proxy without authorization
# socks 192.168.0.3:1080/user/password # <- socks5 proxy with username/password
# # (RFC-1929)
#
# Delay of calls and outbound rescans in seconds
#
#call-delay 1m
#rescan-delay 1m
#
# Max. number of inbound/outbound connections
#
#maxservers 2
#maxclients 2
#
# Binkd will try to call a node N times. If failed it will
# hold the node for S seconds. The feature is off by default.
#
try 10
hold 10m
#
# hold-skipped <S>
# Binkd will hold for S seconds all mail skipped by a node. (Def. -- 1h)
#
#hold-skipped 1h
#
# Don't send (only receive) files if no password for an inbound session
#
send-if-pwd
# Tzoff corrects UTC time returned by time() under DOS-derived OS
# Using system TZ variable or tzselect(8) is preferred.
#tzoff 3h
#
# Use syslog (Only if made with -DHAVE_VSYSLOG and -DHAVE_FACILITYNAMES)
#
#syslog local0
#
# Print percents while sending or receiving
#
percents
#
# List queue after rescans
#
printq
#
# Perform reverse resolving (for logging only)
#
backresolv
#
# Log pid:
#
pid-file /var/run/ftn/binkd.pid
#
# Map paths in flo's:
# ftrans <old-string> <new-string>
# Use as many ftrans's as you want.
#
#ftrans "D:\\fido\\outbound" "/var/spool/fido/outb"
#ftrans "\\" "/" # this replaces all slashes in a path
#
# Inbound directories for secure and non-secure links
#
inbound /var/spool/ftn/inbound
inbound-nonsecure /var/spool/ftn/inbound-unsecure
#
# Directory for incomplete receiving files (.hr and .dt),
# default to inbound for the node
#
temp-inbound /var/spool/ftn/inbound-temp
#
# Binkd will skip all files from a node if
# size_of_the_next_file_for_us_there + minfree < free_space_in_inbound
# The zero value and the value 4294967295 (2**32-1) is equivalented to infinity.
#
minfree 2048
minfree-nonsecure 2048
#
# When trying to receive a new file: remove partial files with this
# name but different size or time from inbound. (If commented out, binkd
# will left old parts as .dt and .hr in the inbound directory)
#
kill-dup-partial-files
#
# Remove all old partial files from inbound. (OFF if commented out)
# kill-old-partial-files <max-age-in-seconds>
#
kill-old-partial-files 1d
#
# Remove old .bsy/.csy files (If some are left after a system crash). It would
# be wise to set this to 12h on almost any system. (Note that binkd always
# touches .bsy's/.csy's for active sessions)
#
# kill-old-bsy is OFF by default.
#
kill-old-bsy 12h
#
# Create a flag file after receiving a file
#
#flag toss!.now *.pkt
#flag toss!.now *.su? *.mo? *.tu? *.we? *.th? *.fr? *.sa?
#
# Run an external program.
# The "*S" macro in command line substed with S.R.I.F., see !SRIF.TXT
# The "!" before program pathname means immediate program execution
# after receiving the file.
# *** win32 only:
# The "@" before program pathname means execute program in separate console
# The "@@" before program pathname means execute program in hidden console
# ***
# Macros: *F - complete name of received file,
# *A0..*A9 - first 10 AKA of remote system,
# *A*, *A@ - list of all remote AKA separated by spaces
# *P - password protected [0|1],
# *L - listed system [0|1]
# *H - remote hostname or IP,
# *N - short file name (win32 only).
#
#exec "my-freq-processor /options *S" *.req
#exec "my-pkt-unpacker /options *S" *.pkt
#exec "my-tosser /options" c:\\bbs\\inbound\\????????.[mwtfs][oehrau][0-9a-zA-Z]
#exec "nice -n 19 hpt toss link" /var/spool/ftn/inbound/*.[STFWMstfwm][ouaherOUAHER][0-9A-Za-z] *.[pP][kK][tT]
#
# Include a file
#
#include /etc/ftn/binkd.inc
#
# Overrides root domain for DNS lookups, see `node' below.
#
#root-domain fidonet.net
#
# Scan T-Mail boxes (short and long)
#
#filebox d:\\fido\\tmail\\boxes
#
# Scan theBrake! long boxes
#
#brakebox d:\\fido\\brake\\boxes
brakebox /var/spool/ftn/longbox
#
# Should binkd delete empty boxes?
# Uncomment the following line, if yes
#
#deletebox
#
# Scan node outbound while connecting and send mail size to remote
#
prescan
# t-mail or ifcico (qico) password file.
# Format of the password file:
# [password] <FTN address> <inpwd>[,[<pktpwd>][,<outpwd>]]
# where:
# [password] optional "password" token;
# <FTN address> address of a link in the form 1:2/3.4@domain
# or 1:2/3@domain or 1:2/3 or 1:2/3.4;
# <inpwd> password for incoming sessions;
# <pktpwd> packet password, used when "share" token
# is handled;
# <outpwd> password for outgoing sessions.
# Any password is one word without spaces or tabs. If <pktpwd> or <outpwd>
# is omitted, it is assumed equal to <inpwd>. If a password is defined for
# a node by the "node" token then the passwords for the node in the password
# file are ignored.
#
#passwords /etc/ftn/passwords
#
# Skip files:
# skip [all|listed|unlisted|secure|unsecure] [!]<sizeKb>|- <mask>...
#
# 'all' applies to all sessions (default)
# 'listed' applies to sessions with the nodes defined by 'node' keyword
# 'secure' applies to password-protected sessions
#
# Use '!' before size for destructive skip, default is non-destructive one.
# If <size> > 0 then only files larger than <size> in kilobytes are skipped,
# zero <size> applies to all files,
# if <size> is set to '-' then the rule allows any file by <mask>'s
#
# <mask> is a shell-style mask, case-insensitive (except for symbols in [])
# multiple masks for a rule are permitted
#
# Policy for rule processing is first-match
#
#skip all 0 *.mp3 *.avi
#skip unsecure 256 *.pkt
#skip unsecure !0 *
#
# Overwrite the existing file by the new received,
# do not save with the changed extension
#
#overwrite net_*.*
#
# Inbound filename case:
# inboundcase [save(default)|upper|lower|mixed]
#
# 'save' don't change filename case (default)
# 'upper' uppercase filename (FILE-NAME.EXT)
# 'lower' lowercase filename (file-name.ext)
# 'mixed' make filename pretty (File-Name.Ext)
#
# * tested only with english filenames
#
#inboundcase save
#
# Should binkd send empty files?
# dont-send-empty [no(default)|arcmail|yes]
#
# 'no' inhibit only sending *.?ut (netmail) with size <=60 bytes
# 'arcmail' do not send zero-size arcmail and pkt <= 60 bytes
# 'yes' do not send all zero-size files and pkt <= 60 bytes
#
#dont-send-empty no
#
# Should binkd delete empty point dirs in BSO?
# Uncomment the following line, if yes
#
#deletedirs
#
# Use Amiga Style Outbound (ASO)
#
#aso
#
# Limit bandwidth (rate):
# limit-rate [all|listed|unlisted|secure|unsecure] <rate>[kM%]|- <mask>...
#
# <rate> is a max allowed rate in bytes-per-second (k=kbytes, M=Mbytes),
# if % is specified, the node -bw rate is multiplied by this value
# in percents, if - then rate is unlimited
# <mask> is a filename mask to apply this rule to
#
# limit-rate rules are checked in the order they appear in config, first
# matcing rule is applied
#
# IMPORTANT! If a node has no explicitly defined bandwidth limit, the
# defnode's limit is used. If defnode has no limit, rate is unlimited.
#
#limit-rate unsecure - *.pkt
#limit-rate unsecure 2k *
# Define shared aka
# Add a shared-address as aka for any node from this list, so that
# uncompessed netmail for shared aka will be sent in the first session with
# any node listed in shares; packet header will be updated to match this
# node's main aka and pkt password
# share <shared-address> <node1> [<node2> ...]
# example:
#share 2:999/999 2:5020/52 2:5020/238
#
# Check the sender's address in incoming pkt's, change the file extension
# to <ext>, if the check failed
# check-pkthdr [all|secure|unsecure|listed|unlisted] <ext>
#
# 'all' applies to all nodes
# 'listed' applies, if at least one aka is defined by 'node' keyword
# 'secure' applies, if at least one aka is password-protected
#
# It's ok to specify .<ext> as well as <ext> - the dot before ext is ignored
# Flag order: -nohc (for any aka), -hc (for any aka), check-pkthdr flag
#
#check-pkthdr secure .sec
#
# Define a link:
# node [[z:]n/]n[.p][@domain] [-nr|-nd] [-md] [-hc|-nohc] [-ip|-sip] [-bw <send_rate>[/<recv_rate>]] [-4|-6] [{hosts|-} [{<inpwd>[,[<pktpwd>][,<outpwd>]]|-} [flavour [{obox|-} [{ibox|-}]]]]]
#
# * All non-"-" fields will redefine the values specified for the same node
# earlier in config.
# * The meaning of <inpwd>, <pktpwd> and <outpwd> is the same as in
# the description of the "passwords" token. Any password is one word
# without spaces or tabs. If <pktpwd> or <outpwd> is omitted, it is
# assumed equal to <inpwd>.
# * Flavour is one of i, c, d, -, h; and is the flavour for the outbound
# filebox ("obox").
# * Binkd sends from obox all non-dir entries NOT matching ".*" wildcard.
# EVERY TIME YOU PUT A FILE INTO OBOX CHECK IF BINKD WILL BE ABLE TO
# UNLINK IT. Otherwise, the session will never end.
# * Default for ibox is inbound or inbound-nosecure depending on the pwd field.
# * Default for port is oport.
# * `-nr' stands for `Not Reliable Link', this works only on outbound calls
# with another binkp/1.1 mailer. The option solves the only problem with
# binkd having no enough time to start receiving of a file from
# non-zero offset before IP link's down, so don't use it unless you
# have this problem -- really not effective
# * `-nd' means "No Dupe Mode", this works only on outbound calls with
# another binkd 0.9.3 or higher. The option solves problem with
# duplicating files while losts carrier but link is a bit slower
# then with "-nr" option
# * `-md' means "Must have CRAM-MD5". This works only with nodes with
# binkd or argus supported this method. Do not set it if your link
# can use the old version of binkd.
# * `-nomd' - do not use CRAM-MD5 for this node (send plain text password)
# * `-hc' enables check of sender address in pkt header for this node/aka
# (overrides the setting of the 'check-pkthdr' statement)
# * `-nohc' disables check of sender address in pkt header for this node/aka
# (overrides the setting of the 'check-pkthdr' statement)
# * `-ip' means "Remote IP check". In this case the node will be
# rejected, if it comes not from one of its IP-addresses.
# Remote AKAs with bad IP-address will be dropped on outgoing calls.
# * `-sip' means "Strict remote IP check". Like "-ip", but node will be
# rejected, if no IP-addresses allowed ("-" or not resolved).
# Remote AKAs with bad IP-address will be dropped on outgoing calls.
# * `-bw' specifies bandwidth (rate) limit for this node
# if one value is specified, it's used as both send and recv limit
# if two values are specified, first is for send and second - for recv
# rate values are expected to be in format `<rate>[kM%]|-'
# (see limit-rate keyword for detailed description)
# * `-noproxy' disables usage of proxy/socks server when calling this node
# (node expected to be inside local network)
# * `-4' only connect via IPv4
# * `-6' only connect via IPv6
# * Hosts is a list in form
# host1[:port1][;host2[:port2]] ...
# * Asterisk (`*') in the host list forces Binkd to perform
# 1:2/3.4 --> p4.f3.n2.z1.fidonet.net translation for a node's
# Fido-address and lookup IP for the resulting FQDN in DNS.
# Root domain part ("fidonet.net") can be changed with root-domain
# keyword.
#
#node 5047/888 - password
#node 5047/999 -md hostname;* password i /var/spool/ftn/personalboxes/to999 /var/spool/ftn/personalboxes/from999
#
# Default node flags. Binkd will call an unlisted node if "defnode" defined.
#
defnode -nd *
#
# Perl hooks file (if built with Perl)
#
#perl-hooks test.pl
#
# Perl DLL file (only matters if compiled with PERLDL=1 for Win32)
#
#perl-dll perl56.dll
#
# binkd will refuse to start, if perl-hooks script has compilation errors
# Note, that run-time errors still can occur
#
#perl-strict
#
# This variables can be used in perl hooks as $cfg{"name"}
# Syntax: perl-var <name> <value>
#
#perl-var nodelist /var/lib/ftn/nodelist/nodelist.[0-9][0-9][0-9]
|