Hardening the Synchronet Servers
Hardening a system is the process in which an administrator or systems operator reduces the chance an attacker can either gain access or information from a system. You may wish to harden your system to protect your BBS, your users and your self.
Identifing your version of Synchronet
Use of this document requires you to know which version of the software you are using and ensuring you are using the most up-to-date version available for your operating system. If you are not using the latest available verison, see Win32 or Unix installation instructions.
To identify what version of Synchro you are running:
Linux: exec/sbbs -h
Windows: From the Synchronet Control Panel, Select Help->About....
To check the latest available version of Synchro: Synchro Download
Why Harden My Server
An Attacker can us various tactics to compromise a system - The reasons for compromising a system can include;
Settings to Harden
This guide will cover hardening synchronet from a security point of view, as well as an operational security point of view. Sometimes hardening breaks or removes functionality..
* Linux/Unix systems: DO NOT RUN Synchronet AS ROOT
Create a username and group for synchronet to run as, once done. Edit the sbbs.ini found in the ctrl directory of synchronet.
Under the [UNIX] section, uncomment and change the following values.
User=sbbsuser & Group=sbbsgroup
* Displaying of passwords to the Console/Log
It is extremely common for people to use the same passwords for multiple things - should someone get access to a password from your system, it's possible that same password could be used on other systems. There is also the possibilty of shoulder surfing, since the default setting displays a users password as it is type in on the screen. In order to prevent passwords from being shown in the log files or on the console.
Note: ensure the log/console is not accessible by untrusted users. Since passwords are stored in plain text, having them also in the log or on the console is not an increase in attack surface if this precaution is taken.
Change the following option to
No.
SCFG->System->Toggle Options->Echo Passwords Locally.
Preventing leaking of the internal
IP address
If your BBSs live behind some sort of firewall or NAT device, synchronet has the potential of leaking the internal
IP address, ie (192.168.x.x or 10.x.x.x address). It is considered best practice to keep that information private as it will expose the internal
IP address and details about the network it is connected too, hence the purpose of NAT from a security point of view.
Limit use of:
@LOCAL-IP@ (Use
@INETADDR@ or
@HOSTNAME@ instead)
Disable Plain Text Protocols
Note: By hardening some of these functions below, you may also remove abilities of your BBS that can not be replaced by another secure function at this time. Specifically FTP & Finger.
Blocking telnet and Enabling
SSH.
telnet is not a secure method of transferring information - at any given time it's possible telnet sessions could be intercepted (most dangerous during authentication)
Ensure port 23 is filtered by the firewall.
-
From the
Synchronet Control Panel, Select
Terminal->Configure from the top menu, then select the
SSH tab. Check off
Enable, then click
OK.
-
FTP is not a secure method of transferring information - at any given time it's possible
FTP sessions could be intercepted (most dangerous during authentication)
Disable FTP on Win32: From the
Synchronet Control Panel, Select
FTP->Configure from the top menu, on the
General tab. UnCheck
Auto Startup, then click
OK.
Don't enable
HTTP with basic auth
HTTP with basic auth is not a secure method of transferring information - at any given time it's possible
HTTP, with basic auth sessions, could be intercepted
-
NNTP is not a secure method of transferring information - at any given time it's possible
NNTP sessions could be intercepted (most dangerous during authentication)
-
IRC is not a secure method of transferring information - at any given time it's possible
IRC sessions could be intercepted (most dangerous during authentication)
Don't enable Finger
Finger is not a secure method of transferring information - at any given time it's possible Finger sessions could be intercepted
Finger provides information about users, their current online status, and the system. A potential information leak.
Logging
Hardening Suggestions for 3.16:
Things to Investigate:
@NUMDIR@ - @JS_VER - @LIB LIBL - @LN - @MSG_LIB - @SOCKET_LIB
See Also