Update (12 Oct 2025): CSF v15.01 is out and auto-updates are back. Read more about it.

The shutdown of ConfigServer Ltd. in August 2025 left CSF (ConfigServer Security & Firewall) installations without a working update source.

By default, CSF tries to download updates from download.configserver.com, which no longer exists. As a result, administrators are seeing this error:

Oops: Unable to download: Can't connect to download.configserver.com:443 (Connection refused)

This guide explains how to resolve the issue, configure custom update servers, and ensure long-term continuity using a reputable fork of CSF.


Why This Error Happens

  • CSF relies on predefined update servers for fetching new versions.
  • The default endpoint (download.configserver.com) was shut down.
  • If no alternate servers are configured, CSF cannot update and throws this error.

Quick Workarounds

Option 1 — Disable Auto-Updates

If you want to stop error spam until a permanent fix is applied:

Edit CSF configuration:

nano /etc/csf/csf.conf

Set:

AUTO_UPDATES = "0"

Restart services:

systemctl restart csf lfd

This halts auto-update attempts.


Option 2 — Use /etc/csf/downloadservers

The supported way to change CSF update servers is to define them in:

/etc/csf/downloadservers

Create or edit the file:

nano /etc/csf/downloadservers

Add one or more mirrors (one per line) Example:

download1.csf.example.com
download2.csf.example.com

Save and exit.

Restart CSF:

csf -r

CSF will randomly pick a server from this list when checking for updates.


Option 3 — Patch config.pm as a Fallback

If /etc/csf/downloadservers is missing or empty, CSF falls back to the hardcoded server in:

/usr/local/csf/lib/ConfigServer/config.pm

Edit the file:

nano /usr/local/csf/lib/ConfigServer/config.pm

Find this section at the end of the file:

## start getdownloadserver
sub getdownloadserver {
	my @servers;
	my $downloadservers = "/etc/csf/downloadservers";
	my $chosen;
	if (-e $downloadservers) {
		foreach my $line (slurp($downloadservers)) {
			$line =~ s/$cleanreg//g;
			if ($line =~ /^download/) {push @servers, $line}
		}
		$chosen = $servers[rand @servers];
	}
	if ($chosen eq "") {$chosen = "download.configserver.com"}
	return $chosen;
}
## end getdownloadserver

Replace with a working source (Example):

if ($chosen eq "") {$chosen = "download1.csf.example.com"}

Save and restart:

csf -r

Long-Term Solution: Switch to a Maintained Fork

Since upstream CSF is abandoned, a community-backed fork is the best path forward.

Aetherinox / csf-firewall

  • Drop-in compatible with existing CSF configs and commands.
  • Regularly maintained on GitHub: Aetherinox/csf-firewall
  • Enhancements include:
    • Docker & OpenVPN integration patches
    • Dark-theme UI support
    • Updated ipset blocklists (AbuseIPDB, IPThreat, etc.)

This fork can be used both as a replacement firewall and as an update source in /etc/csf/downloadservers.


Verification

After applying any fix, verify that CSF is healthy:

csf -e      # Ensure CSF is enabled
csf -l      # List active firewall rules
lfd status  # Confirm LFD daemon is running

Best Practices

  • Always backup /etc/csf/ before making changes.
  • Keep /etc/csf/downloadservers updated with multiple sources.
  • Patch config.pm with a fallback mirror to prevent outages.
  • Consider migrating to forks like Aetherinox/csf-firewall for future security updates.
  • For enterprise deployments, manage CSF configs with Ansible or Puppet to ensure consistency across servers.

Recap

IssueFix
Error: “No Host option provided”Define custom update servers in /etc/csf/downloadservers
Update server deadPatch fallback in /usr/local/csf/lib/ConfigServer/config.pm
Long-term maintenanceSwitch to Aetherinox/csf-firewall fork

🔐 With these changes, you can keep CSF functioning as a drop-in firewall while preparing for a smooth transition to a community-maintained fork.

Last Update: October 13, 2025

Tagged in:

, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,