ufw is a simple layer on top of iptables: short commands instead of long rules. The idea: block all incoming traffic and open only the ports you need, such as SSH and your site.
Allow SSH before ufw enable, otherwise you lose access to the server. If that happens, log in through Console on the server card, not every server has it.
SSH – the ready-made OpenSSH profile opens port 22:
ufw allow OpenSSH
SSH on a custom port – open that number, for example ufw allow 2222/tcp.
Policies – incoming blocked, outgoing open, so the server can fetch updates and reach the network on its own:
{"docsConfig":{"theme":"aspen","$schema":"https://mintlify.com/docs.json","name":"Lumi","description":"Серверы VPS Lumi: настройка, подключение и решение проблем","colors":{"primary":"#0EA5E9","light":"#38BDF8","dark":"#0284C7"},"logo":{"light":"https://mintcdn.com/lumi-8e9f3d35/2MclTGnmS1VG2Abe/logo.svg?fit=max\u0026auto=format\u0026n=2MclTGnmS1VG2Abe\u0026q=85\u0026s=f86070567b66af34654de1a77f8360ff","dark":"https://mintcdn.com/lumi-8e9f3d35/2MclTGnmS1VG2Abe/logo.svg?fit=max\u0026auto=format\u0026n=2MclTGnmS1VG2Abe\u0026q=85\u0026s=f86070567b66af34654de1a77f8360ff"},"favicon":"https://mintcdn.com/lumi-8e9f3d35/eTLjd4bhyqCNp3WB/favicon.svg?fit=max\u0026auto=format\u0026n=eTLjd4bhyqCNp3WB\u0026q=85\u0026s=07499b3f01b1b78ec5d44f31210e6dd8","appearance":{"default":"dark"},"background":{"color":{"light":"#F6F5F4","dark":"#1E1E1F"}},"navbar":{"links":[],"primary":{"type":"button","label":"Канал Lumi","href":"https://t.me/+7XIA2JUDcbAyNjA0"}},"footer":{"socials":{}},"search":{"prompt":"Поиск"},"fonts":{"family":"Inter"},"styling":{"codeblocks":"system","latex":false},"contextual":{"options":[],"display":"header"},"navigation":{"languages":[{"language":"ru","default":true,"href":"vps"},{"language":"en","href":"en/vps"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"lumi-8e9f3d35","hasAudioNarration":false,"actualSubdomain":"lumi-8e9f3d35","customDomains":["wiki.lumiweb.cc"],"gitSource":{"type":"github","owner":"nvrloseeee-hash","repo":"lumidocs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ac6411e78c1c22ae0f1c88e","collectionId":"bb88e502-e415-4c87-91bb-dba60129529b","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ac6411e78c1c22ae0f1c88e"},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6ac6411e78c1c22ae0f1c88e","clientVersion":"0.0.4006","searchFilterCounts":[{"language":"en","tag":"VPS","count":26},{"language":"ru","tag":"VPS","count":26},{"language":"en","tag":"Software \u0026 services","count":12},{"language":"ru","tag":"Софт и сервисы","count":12},{"language":"en","tag":"Setup","count":8},{"language":"ru","tag":"Настройка","count":8},{"language":"en","tag":"Basics","count":4},{"language":"ru","tag":"Основное","count":4},{"language":"en","tag":"Protection \u0026 issues","count":2},{"language":"ru","tag":"Защита и проблемы","count":2}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"#sidebar-content{width:16rem!important}#sidebar-content a{white-space:nowrap}"}],"page":{"pagePath":"en/vps/firewall","slug":"/en/vps/firewall","pageMetadata":{"title":"Firewall (ufw)","sidebarTitle":"Firewall","description":"Open the ports you need, close off the rest","icon":"shield-halved","href":"/en/vps/firewall"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Open the ports you need, close off the rest\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[_jsx(_components.code,{children:`ufw`}),` is a simple layer on top of `,_jsx(_components.code,{children:`iptables`}),`: short commands instead of long rules. The idea: block all incoming traffic and open only the ports you need, such as SSH and your site.`]}),`\n`,_jsx(Heading,{level:`2`,id:`installation`,children:`Installation`}),`\n`,_jsxs(_components.p,{children:[`Connect over SSH as `,_jsx(_components.code,{children:`root`}),`: `,_jsx(_components.a,{href:`/en/vps/connect`,children:`Connection`}),`. On Ubuntu `,_jsx(_components.code,{children:`ufw`}),` is usually already installed, if not:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`apt`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` update`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` \u0026\u0026 `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`apt`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` install`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ufw`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`enabling`,children:`Enabling`}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`Allow SSH before `,_jsx(_components.code,{children:`ufw enable`}),`, otherwise you lose access to the server. If that happens, log in through `,_jsx(_components.strong,{children:`Console`}),` on the server card, not every server has it.`]})}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`SSH`}),` – the ready-made `,_jsx(_components.code,{children:`OpenSSH`}),` profile opens port 22:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`ufw`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` allow`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` OpenSSH`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`SSH on a custom port – open that number, for example `,_jsx(_components.code,{children:`ufw allow 2222/tcp`}),`.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Policies`}),` – incoming blocked, outgoing open, so the server can fetch updates and reach the network on its own:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`ufw`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` default`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` deny`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` incoming`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`ufw`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` default`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` allow`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` outgoing`})]}),`\n`]})})}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Start`}),` – answer `,_jsx(_components.code,{children:`y`}),` at the prompt:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`ufw`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` enable`})]}),`\n`]})})}),`\n`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`site-ports`,children:`Site ports`}),`\n`,_jsx(_components.p,{children:`A web server needs 80 (HTTP) and 443 (HTTPS):`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`ufw`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` allow`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 80`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`ufw`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` allow`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 443`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Open only what you use. A database, for example, usually has no reason to face the outside: let it listen locally only.`}),`\n`,_jsx(Heading,{level:`2`,id:`rules`,children:`Rules`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`ufw status`})}),` – current rules.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`ufw status numbered`})}),` – rules with numbers, needed for deletion.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`ufw delete allow 80`})}),` – delete a rule by its text.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`ufw delete 3`})}),` – delete a rule by its number.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`Next: `,_jsx(_components.a,{href:`/en/vps/hardening`,children:`Server hardening`}),`, `,_jsx(_components.a,{href:`/en/vps/ssh-keys`,children:`SSH keys`}),`.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"codeStyling":"system","config":{},"pageMetadata":{"title":"Firewall (ufw)","sidebarTitle":"Firewall","description":"Open the ports you need, close off the rest","icon":"shield-halved","href":"/en/vps/firewall"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Installation","slug":"installation","depth":2,"children":[]},{"title":"Enabling","slug":"enabling","depth":2,"children":[]},{"title":"Site ports","slug":"site-ports","depth":2,"children":[]},{"title":"Rules","slug":"rules","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"lumi-8e9f3d35","siteName":"Lumi","title":"Firewall (ufw) - Lumi","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"ru":{"href":"/vps/firewall","matchLevel":1},"en":{"href":"/en/vps/firewall","matchLevel":0}}},"lastModified":"2026-10-04T13:36:58.261Z","originalFileLocation":"en/vps/firewall.mdx","locale":"en"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"dark\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Open the ports you need, close off the rest\">\u003cmeta data-mint-head name=\"application-name\" content=\"Lumi\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/lumi-8e9f3d35/xL3B4vgHb9JI4RjC/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/lumi-8e9f3d35/xL3B4vgHb9JI4RjC/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/lumi-8e9f3d35/xL3B4vgHb9JI4RjC/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/lumi-8e9f3d35/xL3B4vgHb9JI4RjC/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/lumi-8e9f3d35/xL3B4vgHb9JI4RjC/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/lumi-8e9f3d35/xL3B4vgHb9JI4RjC/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/lumi-8e9f3d35/xL3B4vgHb9JI4RjC/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/lumi-8e9f3d35/xL3B4vgHb9JI4RjC/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/lumi-8e9f3d35/xL3B4vgHb9JI4RjC/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Firewall (ufw) - Lumi\">\u003cmeta data-mint-head property=\"og:description\" content=\"Open the ports you need, close off the rest\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Lumi\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://wiki.lumiweb.cc/en/vps/firewall\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://lumi-8e9f3d35.mintlify.app/_mintlify/api/og/v2?division=Setup\u0026amp;title=Firewall+%28ufw%29\u0026amp;description=Open+the+ports+you+need%2C+close+off+the+rest\u0026amp;theme=7c698ff8427173e2bbc2bba2\u0026amp;signature=2994190df35ecece221e52b8c11c09243e33cd5a9a9b3828e05dcc88f96a6b3e\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Firewall (ufw) - Lumi\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Open the ports you need, close off the rest\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://lumi-8e9f3d35.mintlify.app/_mintlify/api/og/v2?division=Setup\u0026amp;title=Firewall+%28ufw%29\u0026amp;description=Open+the+ports+you+need%2C+close+off+the+rest\u0026amp;theme=7c698ff8427173e2bbc2bba2\u0026amp;signature=2994190df35ecece221e52b8c11c09243e33cd5a9a9b3828e05dcc88f96a6b3e\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/lumi-8e9f3d35/xL3B4vgHb9JI4RjC/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Lumi\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0EA5E9\">\u003clink data-mint-head rel=\"canonical\" href=\"https://wiki.lumiweb.cc/en/vps/firewall\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/en/vps/firewall.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://wiki.lumiweb.cc/en/vps/firewall\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ru\" href=\"https://wiki.lumiweb.cc/vps/firewall\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://wiki.lumiweb.cc/vps/firewall\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://wiki.lumiweb.cc/#organization\",\"name\":\"Lumi\",\"url\":\"https://wiki.lumiweb.cc\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/lumi-8e9f3d35/2MclTGnmS1VG2Abe/logo.svg?fit=max\u0026auto=format\u0026n=2MclTGnmS1VG2Abe\u0026q=85\u0026s=f86070567b66af34654de1a77f8360ff\"}},{\"@type\":\"WebSite\",\"@id\":\"https://wiki.lumiweb.cc#website\",\"name\":\"Lumi\",\"url\":\"https://wiki.lumiweb.cc\",\"publisher\":{\"@id\":\"https://wiki.lumiweb.cc/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://wiki.lumiweb.cc/en/vps/firewall#webpage\",\"url\":\"https://wiki.lumiweb.cc/en/vps/firewall\",\"name\":\"Firewall (ufw)\",\"description\":\"Open the ports you need, close off the rest\",\"dateModified\":\"2026-10-04T13:36:58.261Z\",\"isPartOf\":{\"@id\":\"https://wiki.lumiweb.cc#website\"},\"breadcrumb\":{\"@id\":\"https://wiki.lumiweb.cc/en/vps/firewall#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://wiki.lumiweb.cc/en/vps/firewall#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Setup\",\"item\":\"https://wiki.lumiweb.cc/en/vps/ssh-keys\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Firewall (ufw)\",\"item\":\"https://wiki.lumiweb.cc/en/vps/firewall\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://wiki.lumiweb.cc/en/vps/firewall#article\",\"headline\":\"Firewall (ufw)\",\"name\":\"Firewall (ufw)\",\"description\":\"Open the ports you need, close off the rest\",\"url\":\"https://wiki.lumiweb.cc/en/vps/firewall\",\"mainEntityOfPage\":{\"@id\":\"https://wiki.lumiweb.cc/en/vps/firewall#webpage\"},\"dateModified\":\"2026-10-04T13:36:58.261Z\",\"publisher\":{\"@id\":\"https://wiki.lumiweb.cc/#organization\"},\"isPartOf\":{\"@id\":\"https://wiki.lumiweb.cc#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Lumi\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Lumi","nav":{"global":null,"languages":[{"language":"ru","default":true,"pages":[{"title":"ru","href":"/vps/firewall"}]},{"language":"en","tabs":[{"tab":"VPS","icon":"server","groups":[{"group":"Basics","icon":"server","pages":[{"title":"VPS plans","sidebarTitle":"Plans","icon":"gauge-high","href":"/en/vps"},{"title":"Server management","sidebarTitle":"Management","icon":"sliders","href":"/en/vps/manage"},{"title":"Locations and OS","sidebarTitle":"Locations and OS","icon":"earth-europe","href":"/en/vps/os"},{"title":"Connection","sidebarTitle":"Connection","icon":"terminal","href":"/en/vps/connect"}]},{"group":"Setup","icon":"screwdriver-wrench","pages":[{"title":"SSH keys","sidebarTitle":"SSH keys","description":"Key-based login instead of a password","icon":"key","href":"/en/vps/ssh-keys"},{"title":"Firewall (ufw)","sidebarTitle":"Firewall","icon":"shield-halved","href":"/en/vps/firewall"},{"title":"Backups","sidebarTitle":"Backups","description":"Back up your own data","icon":"box-archive","href":"/en/vps/backups"},{"title":"Swap file","sidebarTitle":"Swap","icon":"memory","href":"/en/vps/swap"},{"title":"Network configuration","sidebarTitle":"Network","icon":"network-wired","href":"/en/vps/network"},{"title":"Reverse DNS (PTR)","sidebarTitle":"Reverse DNS","icon":"arrows-rotate","href":"/en/vps/reverse-dns"},{"title":"Web server (Nginx)","sidebarTitle":"Web server","icon":"server","href":"/en/vps/webserver"},{"title":"SSL and Let's Encrypt","sidebarTitle":"SSL","icon":"lock","href":"/en/vps/ssl"}]},{"group":"Protection \u0026 issues","icon":"shield-halved","pages":[{"title":"Server hardening","sidebarTitle":"Hardening","icon":"lock","href":"/en/vps/hardening"},{"title":"VPS not working","sidebarTitle":"Not working","icon":"triangle-exclamation","href":"/en/vps/troubleshooting"}]},{"group":"Software \u0026 services","icon":"cubes","pages":[{"title":"WireGuard VPN","sidebarTitle":"WireGuard","icon":"shield-halved","href":"/en/vps/wireguard"},{"title":"OpenVPN","sidebarTitle":"OpenVPN","icon":"lock","href":"/en/vps/openvpn"},{"title":"Amnezia (no terminal)","sidebarTitle":"Amnezia","icon":"user-shield","href":"/en/vps/amnezia"},{"title":"3X-UI (Xray/VLESS)","sidebarTitle":"3X-UI","icon":"gauge-high","href":"/en/vps/3x-ui"},{"title":"Marzban","sidebarTitle":"Marzban","icon":"layer-group","href":"/en/vps/marzban"},{"title":"Your own proxy (3proxy)","sidebarTitle":"Your own proxy","icon":"network-wired","href":"/en/vps/proxy-3proxy"},{"title":"Docker","sidebarTitle":"Docker","icon":"box","href":"/en/vps/docker"},{"title":"n8n (automation)","sidebarTitle":"n8n","icon":"diagram-project","href":"/en/vps/n8n"},{"title":"Keitaro (tracker)","sidebarTitle":"Keitaro","icon":"chart-line","href":"/en/vps/keitaro"},{"title":"Your own LLM (Ollama)","sidebarTitle":"Your own LLM","icon":"robot","href":"/en/vps/llm"},{"title":"MikroTik CHR","sidebarTitle":"MikroTik","icon":"route","href":"/en/vps/mikrotik"},{"title":"Coolify (your own PaaS)","sidebarTitle":"Coolify","icon":"rocket","href":"/en/vps/panel"}]}]}]}]},"title":"Firewall (ufw) - Lumi","buildId":"dpl_2xiSHD9XEvLsPGPcfoMtkLTB3dy9","deploymentId":"dpl_2xiSHD9XEvLsPGPcfoMtkLTB3dy9","dynamics":[],"chunks":[]}