This is an old revision of the document!
Table of Contents
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;
- Gathering information on the users of the system - this inclused your BBS users, not just you
- Using the system to attack other systems
- Gathering data from other systems on the same network
Settings to Harden
Some settings I'm proposing to harden include.
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
- make sure you change sbbuser and sbbgroup to reflect the username and group you have just created.
* 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.
- Don't email passwords to users They will be in plain text
- Disable passwords being sent in emails Plain text
- Set the email_passwords= option to false in the [login] section of the ctrl/modopts.ini file
- Hiding version information
- Providing version information to attackers in the form of a status or other messages will improve the chances of knowing what vulnerabilities the software may contain.
- Limit use of: @VER@, @OS_VER@, @COMPILER@, @FULL_VER@, @REV@, @VER_NOTICE@ (Only because it includes the version information)
- NOTE: @PLATFORM@ should be OK
- NOTE: Providing the Major Version number should be OK ie (Version 3)
- 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.
- Enabling SSH on Win32:
- From the Synchronet Control Panel, Select Terminal->Configure from the top menu, then select the SSH tab. Check off Enable, then click OK.
- Disable FTP
- 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
- Change: Configuration Value
- Disable Web Server on Win32: From the Synchronet Control Panel, Select Web->Configure from the top menu, on the General tab. UnCheck Auto Startup, then click OK.
- Don't enable NNTP
- 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)
- Change: Configuration Value
- Don't enable IRC
- 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)
- Change: Configuration Value
- 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.
- Change: Configuration Value
- Mail Server Configuration
- If you plan to recieve mail on your BBS
- POP3 and SMTP
- If you only plan to send mail on your BBS
- SendMail
Logging
Hardening Suggestions for 3.16:
- Disable Showing Version information to clients
- text/answer.wip (Line: 15, @VER@)
Things to Investigate:
@NUMDIR@ - @JS_VER - @LIB LIBL - @LN - @MSG_LIB - @SOCKET_LIB