IP Allowlisting and Geo-Restrictions for Transfer Endpoints
The throttling and banning covered earlier in this series fight attackers after they have already reached your login prompt. There is a more powerful move available when your circumstances allow it: stop the attacker from reaching the prompt at all. If only a handful of known partners ever legitimately connect to your transfer server, you can tell the network to refuse everyone else before a single password is tried. That is IP allowlisting, and for the right service it is the single highest-leverage control in this entire subject.
But "for the right service" is doing real work in that sentence. Allowlisting is spectacular for stable business-to-business flows and useless for a service the general public must reach. It also carries a maintenance cost that quietly destroys it if nobody owns it. This article gives you the honest version: where allowlisting shines, what it actually costs to keep, what geo-restrictions do and — more importantly — do not buy, and how to design a break-glass path so your own safety measure does not lock you out during an emergency.
This is part of our Brute-Force Defense series. It pairs naturally with lockout and throttling design, because allowlisting is the quiet prerequisite that makes gentle lockout policies safe — an account the internet cannot reach barely needs a lockout at all.
Default-Deny: The Idea in One Sentence
Every access control is one of two philosophies. Default-allow lets anyone connect and reacts to bad behavior — this is throttling and banning: the door is open, and you eject troublemakers. Default-deny refuses everyone by default and lets in only an approved list — this is allowlisting: the door is locked, and only known keys turn it. (The older words are "blacklist" and "whitelist"; allowlist and blocklist say the same thing more plainly.)
The power of default-deny is that it does not care how clever the attacker is. A credential-stuffing botnet with a million stolen passwords and ten thousand source addresses is simply not on the list, so it never gets to try even one. The population of possible attackers collapses from "the entire internet" to "the specific addresses you approved." For a service whose legitimate users are a known, finite set, that trade is close to free — and the effect on your logs is dramatic: the endless background guessing described in the anatomy of credential attacks mostly vanishes overnight, because the guessers can no longer open a connection.
Allowlisting is usually enforced below the transfer application — at the host firewall, a network firewall, or a cloud security group — so it protects every protocol the server speaks at once and works even against attacks aimed at a service you forgot was listening. It is part of the network layer of a broader hardening program, and it works best as one layer among several rather than a lonely wall.
Where Allowlisting Shines: Known-Partner B2B
The ideal case is almost a caricature of how good this control can be: a transfer endpoint that exists to exchange files with a fixed set of business partners, each connecting from a stable, known range of addresses, machine to machine, on a schedule. Think of a nightly orders feed from three suppliers, or an outbound report drop to a payroll processor. The set of legitimate sources is small, knowable, and changes rarely.
For that service, allowlisting is transformative. You list the partners' addresses, deny everything else, and the constant credential attacks that every internet-facing server receives simply stop landing. The accounts behind the allowlist can only be reached from their partner's network, which means the self-DoS worry from the lockout article nearly evaporates — a stranger cannot generate failed logins against an account they cannot even connect to. The picture below shows why: allowlisting is a filter that sits in front of authentication, discarding unapproved sources before they ever reach the password check.
Notice the order in that diagram: the allowlist filters before authentication. The attacker's stolen passwords are never even offered, because the connection is refused first. This is what makes allowlisting so much stronger than any policy that operates at the password check — it removes the attempt, not just the success.
Where It Does Not Fit — Be Honest
Allowlisting is not a universal control, and pretending otherwise leads to either a broken service or a fake list. It is the wrong tool when:
- Your users are the public or a large, changing population. A download portal, a customer upload page, or a service for hundreds of roaming employees cannot enumerate its legitimate sources. There is no list to write.
- Partners connect from dynamic or unpredictable addresses. A small partner on a consumer internet connection whose address changes weekly will generate a support ticket every time it moves. Some partners genuinely cannot give you a stable address.
- Users are mobile. Staff who transfer from airports, hotels, and home offices have no fixed address by definition. For them, identity-based controls — keys, MFA, a VPN they authenticate into — fit better than address-based ones.
For these services, keep the door open but well-guarded: strong authentication, throttling, and log-driven auto-banning for the noise. Allowlisting and default-allow defenses are not rivals; you apply allowlisting to the flows that can take it and guard the rest with the reactive controls.
The Maintenance Burden, Told Straight
Here is the part vendors skip. An allowlist is not a set-and-forget artifact; it is a living inventory that decays the moment you stop tending it. Partners change internet providers, add a second data center, migrate to a cloud whose egress addresses shift, get acquired, or route through a new proxy. Every one of those events changes the addresses your partner connects from, and your allowlist has no way to know.
A neglected allowlist fails in one of two directions, and both are bad. It either blocks a real partner — the address changed, the entry did not, and now a business-critical flow is down until someone connects the outage to the allowlist — or, worse, it gets padded with broad ranges to "stop the tickets," until it quietly permits half a country and provides security theater instead of security. A list that says "allow this whole hosting provider's range" is not an allowlist; it is a slightly narrower open door with extra paperwork.
The cure is ownership and a record. Every entry needs a named owner, a documented reason, a verified source, and a review date. Treat the allowlist like the change-controlled configuration it is — the same discipline our logging and audit series applies to other security-relevant records. A per-entry format like this keeps the list honest:
PARTNER ALLOWLIST ENTRY - RECORD FORMAT
entry-id: AL-0042
partner: Acme Logistics (contract ref C-1188)
purpose: nightly orders push -> account acme-orders
source(s): 203.0.113.64/28 (Acme prod egress)
protocol/port: SFTP / 22
requested-by: Acme NOC, ticket PT-3391
verified-by: ops-lead (two independent confirmations)
added: <date> review-by: <date + review cycle>
owner: transfer-ops
break-glass: runbook BG-02 (temporary, MFA jump host)
RULES:
* Every entry has an owner and a review date. An entry
with neither is an orphan hole waiting to be found.
* No country-sized ranges "to save time." Narrow to the
smallest block the partner can actually confirm.
* Removing an entry is as important as adding one -
offboarded partners leave open doors behind them.
Remember: allowlisting trades constant attack noise for periodic maintenance work. That is usually a great trade for B2B flows — but only if you actually do the maintenance. An unowned allowlist rots into either an outage or a fiction. Assign an owner before you turn it on.
Geo-Restrictions: Useful, but Not a Boundary
Geo-blocking allows or denies connections by the country an address maps to — "only allow connections from the two countries our partners operate in," or "deny these regions we never do business with." It sounds like a security control. It is better understood as a noise reduction and a coarse policy control, and being honest about the difference keeps you from trusting it too far.
What geo-blocking genuinely buys you: if your entire user base is in one or two countries and a great deal of attack traffic originates elsewhere, denying the regions you never serve trims a meaningful slice of the ambient noise from your logs, making the traffic that remains easier to read. As a policy expression — "we have no business reason to accept connections from continents where we have no partners" — it is reasonable and defensible.
What it does not buy you is a real boundary, for several concrete reasons:
- It is trivially bypassed. An attacker simply routes through a rented server or proxy in a country you allow. Geo-blocking stops the lazy and the automated; it does not stop anyone who has decided to reach you.
- The country data is approximate. Address-to-country mapping is a best-effort database that drifts, misattributes, and lags reassignments. You will occasionally block someone in an allowed country and allow someone in a blocked one.
- Cloud and hosting muddy everything. Addresses belonging to large cloud and hosting providers may register to a country unrelated to where the traffic really originates, so a partner who moved a job into the cloud can suddenly appear to connect "from" somewhere unexpected.
- You can block yourself. A traveling administrator, a partner opening an overseas office, or an on-call engineer responding from abroad can all be denied by a geo rule at the worst possible moment.
So use geo-restrictions the way you would use a coarse filter: to reduce volume and express policy, layered on top of real controls, never as the thing you are relying on. The moment you find yourself saying "we are safe because we block that region," you have overtrusted it.
Allowlist vs Geo vs Open, at a Glance
| Approach | Best for | Attack noise removed | Main cost / limit |
|---|---|---|---|
| IP allowlist (default-deny) | Fixed set of known B2B partners | Nearly all | Real maintenance; breaks on partner IP change |
| Geo-restriction | Region-limited user base; noise trimming | Some, coarsely | Bypassable, approximate — not a boundary |
| Open + reactive defenses | Public or roaming users | Only what you catch | Must rely on strong auth, throttling, banning |
Designing Break-Glass Access
Default-deny has a sharp edge: sooner or later a legitimate connection needs in from an address that is not on the list, at the worst time. A partner's egress address changes on a holiday weekend. An administrator has to respond to an incident from an unexpected location. If your only options are "permanently widen the list" or "wait for a change ticket," people will widen the list — and stale wide entries are exactly how allowlists rot.
The answer is a deliberate break-glass path: a pre-designed, secured, temporary way in for emergencies, so nobody has to improvise a hole. A sound break-glass design has four properties:
- Separately secured. Break-glass access should ride a stronger control than the flow it bypasses — for example, a management VPN or a jump host gated by multi-factor authentication and keys, not just another IP entry. You are trading the address check for a stronger identity check, not for nothing.
- Time-boxed. It grants access for a bounded window and then closes automatically. A permanent break-glass path is just a permanent hole with a dramatic name.
- Loud. Using it fires an alert and writes an audit record. Break-glass is meant to be rare, so every use deserves a human's attention and a note in the log.
- Documented as a runbook. Written down in advance, tested occasionally, and owned — so the person who needs it at 2 a.m. is following a procedure, not inventing one under pressure.
Break-glass turns the rigidity of default-deny from a liability into a managed exception. You get the enormous benefit of allowlisting for the normal case and a safe, auditable pressure-release valve for the abnormal one.
Allowlisting Is a Filter, Not a Replacement for Auth
One last honest caveat, because it is where overconfidence creeps in. An allowlist filters where a connection comes from, not who is behind it. An attacker who compromises a machine inside an allowed partner's network, or who is a malicious insider on an approved address, sails straight through the filter — the source is on the list. Allowlisting shrinks the attacker population dramatically, but it does not authenticate anyone.
So keep strong authentication behind the allowlist, always. The two together are defense in depth: the allowlist removes the internet's worth of anonymous guessers, and the authentication — ideally key-based, as argued in ending password attacks by design — handles proving identity for whoever the filter did let through. A server such as Sysax Multi Server performs that authentication step for connections the network layer permits, and logs the outcome either way, so the address filter and the identity check reinforce rather than replace each other. The credential practices that back it up live in our transfer authentication series.
Rolling It Out Without an Outage
Turning on default-deny is exactly the kind of change that causes a self-inflicted outage if done blind. Roll it out in stages: first run the rule in log-only mode, recording what would be blocked without actually blocking it, and watch for a full business cycle — a month catches the monthly jobs. Compare the would-be-blocked list against your partner inventory, resolve every surprise, and only then switch to enforce. Keep the break-glass path ready before you flip the switch, not after. Done this way, the day you enforce the allowlist is quiet, because you have already seen everything it will do.
Wrapping Up
IP allowlisting is the strongest control you have when your legitimate users are a knowable, stable set — it refuses the entire internet of attackers before they reach the login, and it makes the rest of your defenses easier by draining the noise. Its price is honest maintenance: a list with an owner, a record, and a review cadence, never padded with country-sized ranges to dodge upkeep. Geo-restrictions are a useful coarse filter for trimming noise and expressing policy, but they are bypassable and approximate, so never mistake them for a boundary. And because default-deny can lock out the very people it protects, design a secured, time-boxed, loud break-glass path before you turn it on. Layer all of it in front of strong authentication, because a filter on where is not a check on who.
From here, revisit lockout and throttling design to see how allowlisting makes gentle locks safe, set up log-driven auto-banning for the interfaces you must leave open, and read watching credential attacks in your logs to confirm the noise really did drop after you enforced the list.
Frequently Asked Questions
Is IP allowlisting enough to secure a transfer server on its own?
Does geo-blocking actually stop attackers?
What happens when a partner's IP address changes?
How do I avoid locking myself out with an allowlist?
Allowlist or auto-banning — which should I use?
From the Sysax team: we build secure file transfer software for Windows — Sysax Multi Server, an FTP, FTPS, SFTP, and HTTPS server, and Sysax FTP Automation for scheduled, scripted transfers. Free trials are on the download page.
