Skip to content
Avanet

Manage Sophos Firewall system modules safely

Sophos Firewall uses system modules as protocol helpers for traffic where the firewall must track additional protocol information or account for dynamic connections. SFOS 22 lists dns, h323, irc, pptp, sip and tftp. These modules are loaded by default.

A loaded module is neither a firewall rule nor a recommendation to use the corresponding protocol. It does not replace the required NAT rule, route or security policy. Conversely, unloading all apparently unused helpers is not a sensible hardening measure. The setting is global and can unexpectedly affect existing applications.

⚠️ Operating rule: First record the status and the specific failing flow. Change no more than one module, repeat the same flow and restore the original state if the change does not improve the result.

Classify the six modules correctly

ModulePurpose according to SFOS 22Important boundary
dnsLearns subdomains from non-local DNS traffic.It does not replace a DNS resolver, DNS policy or name-resolution tests.
h323Supports H.323-based audio, video and data communication.A change can affect all H.323 connections, not just one PBX or rule.
ircSupports IRC traffic in the client-server model.Sophos warns of DoS and performance risks on open IRC networks.
pptpSupports the data path of PPTP connections.Loading the helper does not create a VPN tunnel or assess whether PPTP fits the current security model.
sipRecognizes SIP signalling and can support dynamic media connections.SIP ALG can help or interfere depending on the PBX, SBC, NAT, TLS and provider.
tftpSupports TFTP over UDP.TFTP itself has no security features; the helper does not make it confidential or authenticated.

The helper is often named too quickly as either the cause or the solution for sip and h323. The complete workflow for NAT, RTP, timeouts, custom SIP ports, packet capture and real test calls is described in Troubleshoot VoIP problems with SIP and RTP.

Record the baseline in Device Console

These commands belong in 4. Device Console, not Advanced Shell. Read the global state before making a change:

system system_modules show

Save the complete output even when only one module is being investigated. This reveals whether a migrated or previously modified system differs from the default. A displayed loaded only proves the module state. It does not prove that the helper processes a particular flow or causes its failure.

Also record source and destination IP, port, protocol, rule ID, NAT ID, time and the exact application test. Without a reproducible flow, a global change cannot be evaluated reliably. Log Viewer, Policy Test and Packet Capture are suitable for technical acceptance.

Load or unload exactly one module

The basic commands use the same pattern. The table is a reference, not a command block to run in full.

ModuleUnloadLoad
DNSsystem system_modules dns unloadsystem system_modules dns load
H.323system system_modules h323 unloadsystem system_modules h323 load
IRCsystem system_modules irc unloadsystem system_modules irc load
PPTPsystem system_modules pptp unloadsystem system_modules pptp load
SIPsystem system_modules sip unloadsystem system_modules sip load
TFTPsystem system_modules tftp unloadsystem system_modules tftp load

Check the syntax on the installed build with ? before execution. Run system system_modules show again after exactly one change, then repeat the previously documented application flow. Parallel changes to NAT, firewall rules, routing, timeouts or the PBX make attribution difficult and should be avoided.

Sophos explicitly documents that SIP load and unload survive a restart. The SFOS 22 system-modules page does not make the same precise persistence statement for the other modules. Read their state again after a planned restart instead of assuming persistence.

Do not infer custom ports from incomplete shorthand syntax

The system-modules page lists additional terms such as port, portname, default or show for IRC, SIP and TFTP, but does not fully explain their exact input form. Do not guess these values. Device Console displays the syntax for the installed build with ?.

For SIP, Sophos separately publishes the exact custom-port command system system_modules sip load ports <custom_port>. This decision belongs in the VoIP analysis, not a general helper test. Replace the placeholder with the signalling port actually used by the provider or PBX.

Verify the effect and the return path

A meaningful test checks more than the CLI output. After loading or unloading, verify the specific connection setup, traffic in both directions, rule and NAT ID, drops and the affected application. For SIP or H.323, this includes registration, incoming and outgoing connections, and media in both directions. For DNS, verify request and response with the expected name. For TFTP, verify the file transfer as well as its start.

If the symptom remains unchanged or new faults appear, return only the modified module to the previously recorded state. Then run system system_modules show and the same test flow again. A restart is not a substitute for this rollback.

If the behavior changes but the cause remains unclear, preserve the before-and-after state, firmware build, logs and packet capture. A globally unloaded helper should not remain as a permanent solution merely because one short test looked better.

FAQ

Should unused system modules be unloaded by default?

No. SFOS loads the modules by default and their effect is global. Change a module only for a confirmed protocol problem with a baseline, a test and a prepared rollback.

Is the SIP module the same as SIP ALG?

In practical troubleshooting, it refers to the SIP helper or SIP ALG. It recognizes SIP signalling and can handle NAT-relevant information and expected media connections. Depending on the VoIP design, this can help or interfere.

Does a loaded PPTP or TFTP module create access?

No. A system module does not replace a firewall rule, NAT, routing or the protocol configuration itself. loaded only describes the global helper state.

How is a system-modules test rolled back?

Save system system_modules show before the test. Afterwards, use load or unload to restore only the tested module to its previous value and repeat the same application flow.