Ollama security hardening

Ollama's local API has no authentication and listens only on localhost by default, so any exposure beyond one machine needs deliberate controls. This page sets out the decisions, build sequence, effort and verification for hardening it.

On this page

Ollama security hardening starts with what the API can already do

The local Ollama API has no authentication, and by default it binds to 127.0.0.1 on port 11434. Exposing it to other people or services is therefore a deliberate configuration change, and every hardening decision in this topic starts from that fact. If your team has Ollama running on a shared workstation or server and colleagues or applications now want to call it, the first task is to inventory who is already reaching it, from which addresses, and whether anyone has changed the bind address through the OLLAMA_HOST environment variable. Confirm this on the actual host, because service managers, container images and manually set variables can all differ from the default.

Hardening is harder than it looks for four reasons. First, the API is simple: a handful of REST endpoints on one port, plus OpenAI compatibility, so a single line of configuration can expose it to a whole network with no login prompt. Second, client applications usually assume the endpoint is open. Chat front ends, IDE plugins and scripts often send requests with no credentials and no notion of a user, which makes it hard to tell later who sent which request. Third, models and prompts sit on the same host. The model files live in a directory that depends on the operating system and can be moved with OLLAMA_MODELS, and anyone who can reach the API or the host can also see what is loaded and what is being asked. Fourth, cloud features can reach outside your network. Ollama states that local runs do not expose your prompts or data, but cloud models use a separate endpoint at ollama.com that requires an API key, and cloud features can be turned off with OLLAMA_NO_CLOUD=1 or in the server configuration file.

This page is written for the people who own the decision: security leads who must approve exposure, platform engineers who will configure the server and proxy, and architects who need to know what a partner would be asked to change. It covers the network posture of the server itself, including bind address, reverse proxy and TLS, model provenance, disabling cloud features, resource limits and patching. It does not cover user login and single sign-on in front of Ollama, which is handled in the SSO and identity integration topic, nor the version testing and rollout process, which is covered in the upgrades and support topic. Those sibling topics should be read alongside this one before any access is opened to users outside the host.

Before changing anything, record the current state in writing: the bind address, any proxy in front of the service, the directories holding models, whether cloud features are enabled, and which hosts and users currently connect. That record becomes the baseline for every later check. It also tells you whether the exposure you are planning is a single internal client or a broad network segment, which changes how much control you need around it. Ask your vendor or internal platform owner to confirm the Ollama version in use and the exact environment variables set on the host, since those details determine which of the following steps apply.

Which Ollama settings control exposure, storage and cloud access

Five settings decide how far an Ollama server reaches: where it listens, which port serves the API, where models sit on disk, whether cloud features are active and when an API key is involved. Review them together because a change to one, such as a non-local bind address, changes the risk of the others.

Bind address with OLLAMA_HOST

Ollama binds to 127.0.0.1 on port 11434 by default, so only processes on the same machine can reach it. The OLLAMA_HOST environment variable changes the bind address and is the setting that exposes the server to a network. Check the value on every host, including service definitions and container launch files, because a leftover override is a common source of unintended exposure.

REST API on port 11434

The REST API listens on port 11434 and has no built-in authentication on the local endpoint. Anything that can reach that port can list models, pull new ones and send prompts. Restrict the port at the host and network firewall, and place any remote access behind a reverse proxy that enforces authentication and TLS.

Model directory with OLLAMA_MODELS

Ollama stores models in ~/.ollama/models on macOS, /usr/share/ollama/.ollama/models on Linux and the user's .ollama\models folder on Windows. The OLLAMA_MODELS variable moves that directory, which is useful for dedicated storage. Confirm the default path for your installation method, and set file permissions so only the service account can write model files.

Cloud features with OLLAMA_NO_CLOUD

Setting OLLAMA_NO_CLOUD=1 or the equivalent entry in the server configuration file turns off cloud features. Use this where the policy requires that prompts and data stay on the host. Confirm the configuration file location and format against the current Ollama FAQ for the version you have installed, since these details can change between releases.

API key for direct cloud inference

The API key is used only for direct cloud inference at ollama.com/api and ollama.com/v1, where it is sent as a Bearer token. It does not secure the local API on port 11434. Store the key in a secrets manager, scope it to the workloads that need cloud models, and rotate it when staff or services change.

Verifying the effective configuration

Environment variables can come from the shell, a service unit, a container image or a configuration file, so the value a server uses may differ from the one you intended. Test the result from outside the host to confirm the port is closed, confirm the model path after a restart, and check that cloud requests fail when cloud features are disabled.

Choosing between localhost, a reverse proxy and a private network path

This table compares four ways to expose an Ollama server, from the default loopback bind to an isolated host, with the operational work and residual risk of each. Read each row as a decision: start with the most restrictive option that still lets your clients reach the API, and add controls only when a client genuinely needs more reach. Ollama's local API has no built-in authentication, so every option that opens a network path must be paired with controls outside Ollama.

OptionWhen it fitsOperational costRemaining risk
Default localhost bind (127.0.0.1:11434)Single user or a single application running on the same machine as the modelLow. No certificates or proxy. Clients must run on the same host, and each host needs its own serverAny local process or user account can call the unauthenticated API. Confirm the process runs under a dedicated account
Private interface on a trusted network (OLLAMA_HOST)Several internal clients on one controlled network segment that you manageModerate. Set OLLAMA_HOST, update client endpoints, and restrict the port with host or network firewall rulesAnyone who reaches that segment can use the model and send prompts. Lateral movement from a compromised client is possible
Reverse proxy such as Nginx in front of a loopback bindClients need HTTPS, per-user or per-application credentials, or request logging that Ollama does not provideHigh. Certificate issuance and renewal, proxy configuration, authentication setup, and client changes. Add logs and alerts for proxy and OllamaProxy misconfiguration can expose the API unintentionally. Streaming and long requests need timeout tuning. Credential leaks remain a risk
Air-gapped or isolated hostRegulated workloads that must not leave a defined boundary, or where no external path is acceptableHigh. Models and updates arrive through an approved transfer process, and patching and provenance checks are manual. Monitoring stays localLower network exposure, but insider access, unpatched runtimes and unverified model files remain. Confirm your transfer and verification procedure
Cloud features disabled (OLLAMA_NO_CLOUD=1)Any option above where the host must not send requests to Ollama's cloud modelsLow. A configuration change, plus a check that the setting is applied after each upgradeConfirm the setting in the server configuration file and environment for your install method
Who holds the API key for direct cloud callsOnly where you choose to call ollama.com directly, which uses a Bearer tokenModerate. Key issuance, storage, rotation and revocation are your responsibilityKeys in client code or logs can be reused. Keep cloud keys out of the local API path
Monitoring and logging of requestsRequired for any option that serves more than one client or a regulated workloadModerate. Ships proxy and server logs to a central system and defines retentionPrompts and model outputs may be sensitive. Confirm what your logs capture before enabling them

Ollama security hardening sequence for a single Linux server

This sequence takes a fresh or existing single Linux server running Ollama from default settings to a deliberately exposed configuration, with each step closed by a check you can run. The result is a written, verifiable record of the version, network exposure, model storage and cloud settings in place.

  1. Confirm installed version and release channel

    Run ollama --version on the server and record the output, along with the install method (official install script, package manager or container image). Compare the version against the GitHub releases page and note whether you are on a stable release or a pre-release such as the v0.40.6 pre-release published on 16 October 2026. Confirm with your own change process which channel your organization approves. This step is closed when the version, channel and install method appear in your change record and match what the service reports through its API version endpoint.

  2. Keep default bind or set OLLAMA_HOST deliberately

    Check the current bind address with ss -ltnp | grep 11434 or lsof -iTCP:11434 -sTCP:LISTEN. By default Ollama listens on 127.0.0.1 port 11434, so a result showing 127.0.0.1:11434 is the desired state for a single-user server. If other hosts need the API, set OLLAMA_HOST in the service override file to a specific private interface address rather than all interfaces, then restart the service. This step is closed when the listener shows only the address you intended, and you have written down the reason for any change.

  3. Restrict port 11434 with a host firewall rule

    Configure the host firewall (for example nftables, firewalld or ufw) so that TCP 11434 accepts connections only from the intended network or from the proxy host, and drops everything else. Then test from a machine outside that network with a command such as nc -vz server-address 11434, which should time out or be refused. Test again from an allowed host, which should connect. This step is closed when both tests produce the expected results and the rule is saved in configuration management, not only applied at the command line.

  4. Move OLLAMA_MODELS to a restricted directory

    On Linux, models default to /usr/share/ollama/.ollama/models. Create a dedicated directory on the data volume you intend to back up, set OLLAMA_MODELS to that path in the service override, and assign ownership to the account that runs the service with permissions that deny other local users write access. Confirm with ls -ld on the directory and the parent path, and confirm that pulling a small model writes files only there. This step is closed when the directory listing shows restricted permissions and the new model files appear in the chosen path.

  5. Set OLLAMA_NO_CLOUD=1 where cloud inference is not wanted

    If your policy does not allow prompts to leave the server for cloud models, set OLLAMA_NO_CLOUD=1 in the service environment or in the server configuration file, then restart the service. Ollama's FAQ states that running locally does not expose your prompts or data to it, and this variable turns off cloud features. Confirm the setting with systemctl show ollama -p Environment, then try to run a cloud-tagged model and confirm it is refused. Confirm with your own legal and security owners whether this matches your data handling policy. This step is closed when the setting is visible in the running service and a cloud model request fails.

  6. Place a proxy in front if other clients need access

    If applications on other hosts must call Ollama, do not widen the bind address to the open network. Instead, keep Ollama on loopback or a private interface and place a reverse proxy such as Nginx in front, which the Ollama FAQ describes as a supported way to expose the service. The proxy should enforce TLS, restrict source addresses and, where your design requires it, check credentials. Ollama's local API has no built-in authentication, so the proxy is where access control is added. Confirm with curl that an unauthenticated request from an unapproved source is rejected and that an approved client receives a model list. This step is closed when both checks pass and the proxy configuration is under version control.

  7. Record the configuration and verify it

    Capture the final state in a single record: the version output, the listener address, the firewall rule set, the OLLAMA_MODELS path and permissions, the OLLAMA_NO_CLOUD value and the proxy configuration if one exists. Store the record with the change ticket and repeat the checks after every upgrade or service change. Ask your team to confirm which owner reviews the record and how often. This step is closed when the record is stored, a second engineer has reproduced the listener and firewall checks from it, and the review owner is named.

How proxy and TLS controls sit in front of the Ollama API

The proxy is where transport encryption, client restrictions and request limits get added to an Ollama server. Ollama's FAQ describes exposing the service through proxies such as Nginx, and the design work is deciding what the proxy accepts before any traffic reaches the runtime. Ollama listens on 127.0.0.1 port 11434 by default and, as the Ollama API authentication documentation notes, the local API at localhost:11434 does not require authentication. That means everything the proxy does for security is the only control between a network client and the model server, so the proxy configuration should be treated as part of the security boundary, not as a convenience layer.

Start by listing the paths and HTTP methods the proxy will forward. The Ollama API exposes generation, chat, model management and administrative endpoints, and these do not carry the same risk. A common design is to forward only the inference paths that the client applications actually call, reject everything else with an explicit error, and deny methods the application never uses. Write that allowlist down as a reviewed artifact, then test it with requests to paths outside the list. Confirm the exact path names and the proxy directives for location and method matching against the Ollama API reference and the Nginx documentation for your proxy version, because path behavior changes across releases.

Certificates are the second design decision. Decide who issues the server certificate (an internal certificate authority, a managed public certificate for a hostname, or a certificate from your platform team), where the private key is stored, and how renewal is triggered. Clients that call the API must trust the issuing authority, so the trust bundle distributed to applications is part of the design. Set a rotation schedule that matches your certificate policy, automate reloads of the proxy after renewal, and test that an expired or revoked certificate causes clients to fail closed. Confirm TLS protocol versions and cipher settings against your organization's baseline and the proxy vendor's current guidance rather than copying old examples.

The proxy must also be the only route to the upstream. If Ollama binds to a reachable interface through OLLAMA_HOST, anyone who can reach that port can bypass the proxy entirely. Keep the runtime bound to the loopback address or to a private interface that only the proxy can reach, and confirm with a port scan from the client network that port 11434 is not reachable directly. Host firewall rules, container network policies or security group rules should enforce this, not the proxy configuration alone. Check the bind address after every restart and upgrade, since a changed environment variable or service file can silently re-expose the API.

Finally, decide what the proxy logs and where those logs go. At minimum, record the timestamp, source address, method, path, response status, and upstream response time for each request, and send them to a store your security team can query and retain. Avoid logging request bodies by default, because prompts may contain personal or confidential data, and Ollama's FAQ says that when it runs locally it does not see your prompts or data. Agree the retention period and access rights with your compliance owner before go-live. Per-user identity in these logs depends on the authentication layer, which is covered in the SSO and identity topic.

Ollama security hardening controls by risk area

Each control below addresses one risk area of a self-hosted Ollama server: network exposure, cloud egress, credentials, model storage, resource abuse, and logs. Most of them are configuration choices made once, so each card names the setting and the check that shows it is in place.

Loopback bind address and firewall

Ollama binds to 127.0.0.1 on port 11434 by default, and the local API has no authentication. Keep that default unless a reverse proxy has to reach the service, and set OLLAMA_HOST only to the interface that proxy uses. Confirm with a listening-socket check on the host and a connection test from another machine that port 11434 is unreachable from the network.

Cloud features disabled

Cloud features send requests to Ollama's hosted services, which on-premises inference does not need. Set OLLAMA_NO_CLOUD=1 in the service environment or in the server configuration file, and document the setting as part of the approved build. Confirm by inspecting the running process environment, then testing that egress rules block outbound connections from the server to ollama.com.

API key handling for cloud calls

Direct cloud inference at ollama.com requires an API key sent as a Bearer token. Store the key in a secrets manager, inject it into the calling service at runtime, and keep it out of browser code, mobile apps, container images, and shell history. Confirm by searching repositories, images, and client bundles for the key, and by checking that proxy logs record the Authorization header in redacted form.

Model directory permissions and change control

Ollama stores models in a default directory per operating system, and OLLAMA_MODELS moves that location. Restrict write access on the directory to the service account, keep read access to what the service needs, and load only models on an approved list with recorded names and digests. Confirm with ownership and permission checks on the directory and by comparing the models currently present against the approved list.

Concurrency and queue limits

OLLAMA_NUM_PARALLEL defaults to 1 parallel request per model, OLLAMA_MAX_LOADED_MODELS defaults to 3 times the number of GPUs (or 3 on CPU), and OLLAMA_MAX_QUEUE defaults to 512 queued requests. Set explicit values sized to the hardware and to the number of client applications, because a deep queue can hide overload until users see timeouts. Confirm the effective values in the service environment and through a load test on a staging copy.

Logging and secrets handling

Server logs, proxy logs, and client logs can capture request metadata, headers, and error text that include credentials. Confirm which fields the server writes at your chosen log level before you forward logs to a central store, and restrict read access and set a retention period on the log files. Confirm by sending a test request with a dummy key and searching every log sink for that value.

Model provenance: what to verify before a model reaches production

The first control for an Ollama server is a rule about where each model comes from, who approves it, and how the approved version is recorded. Ollama pulls models into a local store and loads them on demand, so a model can reach a production host with one command and no review unless your team builds that step in. Decide before go-live which sources are acceptable, which roles can add a model to a production host, and where approvals are kept. Those three decisions shape every later step in this section.

Record enough detail that someone can later answer exactly what ran and where. For each model, capture the model name and tag, the source it was pulled from, the date it was pulled, the host or hosts it was loaded on, and its license. The license matters because model terms differ from the MIT license that covers the Ollama runtime itself, and your legal or compliance team will need to review commercial-use and redistribution terms for each model separately. A simple register in your configuration management system or ticketing tool is enough for most teams, provided every production change points to an entry in it.

Do not assume Ollama gives you a signature or checksum process for every model. Confirm what the registry and each model publisher supply for the specific versions you plan to use, including whether they publish digests you can compare against, and whether those digests are stable across pulls. Document the answer per model family. Where the answer is no, or where your policy requires stronger assurance, the mitigation is to build the control yourself: keep an internal allowlist of approved model names and tags, and keep a copy of each approved model file in storage you control so the exact artifact can be re-verified or restored.

Enforce the allowlist at the host, not only in a document. Limit who can pull models on production machines, and review any change to the model directory, which is set by OLLAMA_MODELS if you have moved it from the default location. Illustrative example: a team pulls a tag on a staging host, compares its recorded details against the register, copies the approved files to internal storage, and only then promotes the same tag to production. Re-pulling a tag later can return a different artifact if the publisher has updated it, so promote the verified copy rather than repeating the pull.

Ask your security reviewer to sign off on the procedure before the first production model is loaded, and retest it whenever you add a new source or change hosts. Plan for periodic review of the allowlist, especially when a publisher releases a new version under an existing tag. The effort for this control is mostly process and recordkeeping, which recurs each time a model is added or updated, so include it in the ongoing support scope when you compare options with a partner.

What drives hardening effort and how to keep it down

This table lists the factors that change how much work an Ollama hardening project involves, how each one raises effort, and the steps that keep it down. Read each row against your own topology, since the drivers compound when several apply at once. The main takeaway is that one shared reverse proxy, one approved model list and cloud features disabled on hosts that do not need them remove most of the avoidable work.

DriverHow it raises effortHow to keep it down
Client applications and teams calling the APIEach application or team that calls the API needs its own access path, logging and testing. Local Ollama has no authentication, so every new caller adds a decision about identity and access.Route all callers through one authenticated gateway with per-application credentials. Confirm early how many distinct callers exist and who owns each.
API reached from outside the host networkExposing the API beyond 127.0.0.1 requires changing the bind address, adding TLS, authentication, network rules and rate limits. Each exposure point needs its own review.Keep the default localhost bind where possible. If remote access is needed, expose only the proxy, not the Ollama port, and restrict it to known network ranges.
Number of hosts and environmentsEvery host and each development, test and production environment needs the same configuration, patching and verification. Drift between them is the most common source of rework.Define one configuration baseline, apply it through infrastructure as code or a container image, and verify each environment against the same checklist.
Cloud inference features in useDirect cloud inference at ollama.com requires an API key sent as a Bearer token, which means key storage, rotation and data flow review. Hosts that never need cloud access still carry that exposure unless it is turned off.Set OLLAMA_NO_CLOUD=1 or the equivalent server configuration on hosts that do not need cloud features, and confirm the setting after every upgrade. Keep any cloud keys out of shared client configuration.
Model provenance and approved model listWithout an agreed list, teams pull arbitrary models, each needing licence, source and integrity checks. The number of models in scope drives review time directly.Maintain a single approved model list with pinned versions and recorded checksums. Restrict pulls on hosts to that list and review additions through one change process.
Compliance evidence requirementsAssessors typically ask for configuration records, access logs, change history and proof of patching. Each control you claim to meet needs evidence that is collected, retained and reviewed on a schedule.Ask the assessor or your compliance lead which controls and evidence formats apply before work starts. Build log collection and configuration export into the baseline so evidence is produced by default.
Existing reverse proxy and identity layerWithout an existing proxy and identity provider, these components must be selected, deployed, hardened and integrated, which adds both build and operating work.Reuse the proxy, certificate management and single sign-on your organization already runs and operates. Confirm with your platform team whether these can be extended to cover Ollama.
Resource limits and patching cadenceOllama releases frequently, so each upgrade needs a test cycle, and resource settings such as parallel requests and queue size must be set to limit abuse and exhaustion. Ownership of both tasks has to be assigned.Pin versions in containers or packages, test new releases on a non-production host before rollout, and set concurrency limits in the baseline. Agree on who reviews each release and how often.

How to test that the Ollama server is hardened and fails safely

Exposure tests confirm that the Ollama listener is bound only where you intended and cannot be reached from networks you did not approve. Ollama binds to 127.0.0.1 on port 11434 by default, so any wider address is a configuration change that someone made on purpose or by accident. Test the result from the host and from outside it.

  • Listener address: On the server, list listening sockets with a tool such as ss or netstat and confirm port 11434 is bound to 127.0.0.1 or to the interface your proxy uses. Expected result: no listener on 0.0.0.0 or a public address.
  • Unreachable from outside: From a host outside the allowed network, attempt a connection to port 11434 on every address the server holds. Expected result: connection refused or filtered.
  • Proxy as the only path: From an approved client, call the API through the proxy hostname and confirm a valid response. Then call port 11434 directly from the same client. Expected result: the proxy succeeds and the direct call fails.
  • Service configuration: Inspect the OLLAMA_HOST value in the systemd unit, container definition or launch script. An override there changes every result above.

Evidence to keep: timestamped socket listings, firewall rule exports and the command output for each connection attempt. Check that the tests run from each network zone named in your security policy, and do not rely only on an administrator workstation.

What to hand over and keep watching after go-live

The hardening work only holds if the people who inherit the server can see what was configured and why. Before go-live, hand over a set of named artifacts, and assign a named owner to each one. A shared team mailbox is not an owner. Ask the implementation partner to confirm in writing who receives each item, who can change it, and where the current copy lives. Without that, the first person who changes OLLAMA_HOST during an incident will not know which other settings depend on it. The configuration record is the most important item. It should list every OLLAMA_ variable set on the host, including OLLAMA_HOST, OLLAMA_MODELS, OLLAMA_NO_CLOUD, OLLAMA_NUM_PARALLEL, OLLAMA_MAX_LOADED_MODELS and OLLAMA_MAX_QUEUE, with its value and the reason for it. Record defaults that were deliberately left unchanged too, because an absent variable is a decision as well. Pair the record with the proxy configuration, the name of the person who owns the TLS certificate, its expiry date, and the renewal process. Store the firewall rules next to it, stating which source addresses may reach port 11434 and which outbound destinations the host is allowed to use. The approved model list needs provenance records for each model: where it came from, the version or digest pulled, who approved it, and the date. The test results should show what was checked before go-live, such as bind address, unauthenticated access from outside the allowed network, and cloud features being off. Finally, name the patching owner, who decides when the Ollama binary and the host operating system are updated and who is accountable if an update is skipped. After go-live, monitor four things. Watch for listener changes, meaning any process bound to a new address or port on the host. Watch for unexpected outbound connections, since a local runtime should not normally reach external hosts unless a cloud feature or a model pull requires it. Track request volume against the queue limit set by OLLAMA_MAX_QUEUE, and against OLLAMA_NUM_PARALLEL, so the owner sees saturation before users do. Review errors logged at the proxy, including authentication failures and upstream timeouts, because they often show misconfiguration or misuse first. Schedule a re-check of the hardening baseline after each new Ollama release, not only after major changes. Releases are frequent, so agree the cadence with the patching owner and confirm how release notes will be reviewed for changes to bind behavior, cloud features or defaults. Version upgrade testing is covered in the upgrades topic, so this section only covers the security re-check. Confirm with the implementation partner what that re-check includes and who signs off on it.

Questions teams ask before hardening Ollama themselves or hiring help

Is the default Ollama install safe to share on a network?

Not without changes. Ollama binds to 127.0.0.1 on port 11434 by default, so only processes on the same machine can reach it. Its local REST API does not require authentication, which means anyone who can reach that port can list models, run inference and use the host's compute. Exposure is a configuration choice. Setting OLLAMA_HOST to a network address opens the listener, and the Ollama FAQ describes placing a proxy such as Nginx in front of it. Before sharing the service, add authentication, TLS and network restrictions, then test from a host that should be blocked to confirm the restriction works.

Can cloud features in Ollama be turned off?

Yes. Setting OLLAMA_NO_CLOUD=1 or the equivalent entry in the server configuration file turns off cloud features, according to the Ollama FAQ. Confirm the exact behavior for the version you run, because cloud behavior can change between releases. Also check your client applications, since a client may call cloud models or hosted endpoints on its own and that traffic does not pass through the server setting. To verify, block outbound traffic from the server and confirm that model pulls, inference and any other calls behave as you expect. Keep the variable in the service definition so it survives restarts and upgrades.

What does the client need to provide for a hardening engagement?

The client provides access to the people and records that shape the design. Typically this means current network diagrams showing where Ollama, its clients and any proxy sit, plus a certificate authority or the team that issues internal certificates, and the DNS owner who can create the service name. You also need an approved model list, since model choice determines what gets pulled and from where, and a named owner for patching the operating system, the Ollama version and the proxy. Expect to provide a test host outside the protected network for reachability checks and the firewall change process with its lead times. Ask that the written scope list each item with its responsible person.

How long does Ollama security hardening take?

The duration depends on the drivers in the effort table on this page, and the written scope should state the timeline for your environment. The main drivers are the number of entry points (one host or a fleet, one proxy or several), whether TLS certificates and DNS already exist, how many client applications must move to the new access path, how many network teams must approve changes, and whether the environment is air-gapped, which affects how models and updates arrive. Approval cycles often take longer than the technical work, so ask for the change calendar at the start. Request a fixed-scope timeline with milestones and the dependencies that could move it.

Can our own team harden Ollama without outside help?

Yes, if the team already has proxy, TLS and firewall skills and can make changes through the server and network approval process. The checklist on this page is a practical starting point: confirm the bind address, place an authenticated proxy in front, enforce TLS, restrict source networks, disable cloud features, set resource limits and document patching. The harder parts are usually testing from outside the trusted network and keeping configuration consistent across upgrades. An outside review can still help when your team does the work, because it checks the result against your threat model. Decide early who owns each control so nothing falls between the platform and network teams.

What evidence will an auditor ask for from an Ollama deployment?

Auditors typically ask how access is controlled, how the service is configured, how changes are approved and how the platform is patched. DeployOpen prepares systems, controls and evidence for compliance assessments, such as configuration exports, network rule records, access lists, change tickets, patch records and test results. Independent auditors and certification bodies decide whether the controls meet a given standard and issue any report or attestation. DeployOpen does not issue audit reports or certifications. Ask your auditor early which control set applies and which evidence format they accept, then map each hardening step to a record they can inspect.

Does running Ollama locally keep prompts and data private?

Ollama states that when it runs locally, it does not see your prompts or data. Hardening protects a different path: who can reach the API on the network and what a caller can send through it. An open port lets any reachable caller submit prompts and read responses, so the privacy benefit holds only while access controls hold. Keeping cloud features disabled helps confirm that no requests leave the server for cloud models. Check client applications as well, because they may send data on their own. Document the data flows you have verified so the claim rests on evidence rather than assumption.

How DeployOpen scopes, hardens and hands over Ollama security work

DeployOpen plans, implements, hardens, documents and supports self-hosted open-source platforms inside the client's own infrastructure, and Ollama security work follows the same path. Engagements are fixed-scope, with scope, deliverables and timelines agreed in writing before work starts.

How we scope

  • Inventory where Ollama runs, which OLLAMA_HOST bind address is set, and which clients reach port 11434.
  • Record the model storage location, the OLLAMA_MODELS setting and who can read or write model files.
  • Agree in writing whether cloud features are disabled with OLLAMA_NO_CLOUD=1 and whether any ollama.com API keys are in use.

How we build

  • Configure the bind address, then place a reverse proxy such as Nginx in front of the local API with TLS termination.
  • Set OLLAMA_NUM_PARALLEL, OLLAMA_MAX_LOADED_MODELS and OLLAMA_MAX_QUEUE to limits sized to the host's memory and GPUs.
  • Verify model provenance by documenting where each model came from, how it was pulled, and who approved it for use.

How we hand over

  • Deliver a written hardening record covering network exposure, proxy and TLS settings, cloud feature state and resource limits.
  • Provide test evidence showing unauthenticated requests are blocked from outside the approved network path.
  • Document the patch procedure for Ollama releases and walk through it with the operations team before handover.

How we support

  • Ongoing support, upgrades and continuous testing are available as retainers after handover.
  • Rerun configuration checks when Ollama releases change defaults, bind behavior or API handling.
  • Ask any prospective partner to confirm which controls their work prepares as evidence, since audit reports are issued only by independent auditors.

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.