{"id":12712,"date":"2025-12-20T12:14:48","date_gmt":"2025-12-20T06:44:48","guid":{"rendered":"https:\/\/www.youstable.com\/blog\/?p=12712"},"modified":"2026-09-07T11:10:38","modified_gmt":"2026-09-07T05:40:38","slug":"what-is-ufw-on-linux-server","status":"publish","type":"post","link":"https:\/\/www.youstable.com\/blog\/what-is-ufw-on-linux-server\/","title":{"rendered":"What is UFW on Linux Server? Secure Your Server Step by Step"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">UFW <strong>(Uncomplicated Firewall)<\/strong> on a Linux server is a simple command-line interface for managing netfilter firewall rules. It lets you allow, deny, and log traffic by port, protocol, IP, and interface using human friendly commands.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">UFW simplifies iptables\/nftables, ships with secure defaults, and is ideal for quickly hardening Ubuntu and Debian servers.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In this guide, you\u2019ll understand UFW on Linux server environments from the ground up. We\u2019ll cover what UFW is, how it works, essential commands, advanced scenarios, security best practices, common pitfalls, and real-world tips from 12+ years of server administration across VPS, dedicated, and cloud platforms.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"what-is-ufw-and-how-it-works\"><strong>What is UFW and How it Works<\/strong>?<\/h2>\n\n\n\n<div class=\"wp-block-media-text has-media-on-the-right is-stacked-on-mobile\"><div class=\"wp-block-media-text__content\">\n<p class=\"wp-block-paragraph\">UFW (Uncomplicated Firewall) is a wrapper around Linux\u2019s netfilter subsystem. Under the hood, it programs rules via iptables-nft (iptables frontend using nftables) or legacy iptables, depending on your distribution. UFW provides an easy syntax to define default policies and per-port rules without wading through complex chains.<\/p>\n<\/div><figure class=\"wp-block-media-text__media\"><img loading=\"lazy\" decoding=\"async\" width=\"1168\" height=\"784\" src=\"https:\/\/www.youstable.com\/blog\/wp-content\/uploads\/2025\/12\/What-Is-UFW-and-How-It-Works.png\" alt=\"\" class=\"wp-image-13194 size-full\" srcset=\"https:\/\/www.youstable.com\/blog\/wp-content\/uploads\/2025\/12\/What-Is-UFW-and-How-It-Works.png 1168w, https:\/\/www.youstable.com\/blog\/wp-content\/uploads\/2025\/12\/What-Is-UFW-and-How-It-Works-150x101.png 150w\" sizes=\"auto, (max-width: 1168px) 100vw, 1168px\" \/><\/figure><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Use UFW when you want a minimal, readable firewall you can maintain quickly. It\u2019s popular on Ubuntu and Debian, works with IPv4 and IPv6, and includes application profiles to simplify common services.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"why-use-ufw-instead-of-iptables-or-nftables-directly\"><strong>Why Use UFW Instead of iptables or nftables Directly<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Beginner-friendly:<\/strong> Human-readable syntax like <em>ufw allow 22<\/em> instead of multi-flag iptables\/nftables commands.<\/li>\n\n\n\n<li><strong>Fewer mistakes: <\/strong>Default policies and numbered rules reduce risk of misconfiguration.<\/li>\n\n\n\n<li><strong>Quick audits:<\/strong> <em>ufw status<\/em> shows what\u2019s open at a glance.<\/li>\n\n\n\n<li><strong>IPv6 support:<\/strong> One config covers both IPv4 and IPv6 when enabled.<\/li>\n\n\n\n<li><strong>Application profiles:<\/strong> Predefined rules for services (e.g., OpenSSH, Nginx Full).<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">When to prefer raw nftables\/iptables: complex multi-interface routing, advanced NAT, container networking at scale, or when you need fine-grained chain and set handling. For most single-server and small cluster workloads, UFW is sufficient and safer for everyday operations.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"before-you-start-prerequisites-and-safety-checklist\"><strong>Before You Start: Prerequisites and Safety Checklist<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Root or sudo access to the server.<\/li>\n\n\n\n<li>Console\/serial or provider <a href=\"https:\/\/www.youstable.com\/blog\/control-panel\/\">control panel<\/a> access (in case you lock yourself out).<\/li>\n\n\n\n<li>Know your SSH port (default 22) or any custom management port.<\/li>\n\n\n\n<li><strong>List the services you need to expose: <\/strong>SSH, HTTP\/HTTPS, databases, etc.<\/li>\n\n\n\n<li>Confirm whether you use IPv6; keep v4 and v6 rules consistent.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"quickstart-essential-ufw-commands\"><strong>Quickstart: Essential UFW Commands<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"install-and-enable-ufw\"><strong>Install and Enable UFW<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">On Ubuntu\/Debian, UFW is usually preinstalled. Otherwise:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt update\nsudo apt <a href=\"https:\/\/www.youstable.com\/blog\/install-ufw-on-linux\/\">install ufw<\/a><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">On RHEL\/CentOS\/Alma\/Rocky, UFW is not default (they prefer firewalld), but you can install via EPEL. Most users on these distros should stick to firewalld unless you have a reason to standardize on UFW.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"set-secure-defaults\"><strong>Set Secure Defaults<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Default policies define what happens if no rule matches. A safe baseline is to deny incoming, allow outgoing, and deny routed traffic unless you need forwarding.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo ufw default deny incoming\nsudo ufw default allow outgoing\nsudo ufw default deny routed<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"allow-ssh-before-enabling-the-firewall\"><strong>Allow SSH Before Enabling the Firewall<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Always permit your <a href=\"https:\/\/www.youstable.com\/blog\/how-to-enable-ssh-access-for-clients-or-users\/\">SSH port before enabling<\/a> UFW to avoid lockout.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># If using the default port 22:\nsudo ufw allow OpenSSH\n# Or explicitly:\nsudo ufw allow 22\/tcp\n\n# If you use a custom port, e.g., 2222:\nsudo ufw allow 2222\/tcp<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"enable-ufw\"><strong>Enable UFW<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo ufw enable\nsudo ufw status verbose<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"open-common-web-stack-ports\"><strong>Open Common Web Stack Ports<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># HTTP and HTTPS\nsudo ufw allow 80\/tcp\nsudo ufw allow 443\/tcp\n\n# Or use application profiles (if available)\nsudo ufw app list\nsudo ufw allow \"Nginx Full\"\n# Alternatives: \"Apache Full\", \"Nginx HTTP\", \"Nginx HTTPS\"<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"other-common-rules\"><strong>Other Common Rules<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># Databases (restrict to trusted IPs!)\nsudo ufw allow from 203.0.113.10 to any port 5432 proto tcp   # PostgreSQL\nsudo ufw allow from 203.0.113.10 to any port 3306 proto tcp   # MySQL\/MariaDB\n\n# DNS (for resolvers\/authoritative servers)\nsudo ufw allow 53\/udp\nsudo ufw allow 53\/tcp\n\n# SMTP (mail transfer) and SMTPS\/Submission\nsudo ufw allow 25\/tcp\nsudo ufw allow 465\/tcp\nsudo ufw allow 587\/tcp\n\n# Port ranges (e.g., passive FTP)\nsudo ufw allow 40000:50000\/tcp<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"view-order-and-delete-rules\"><strong>View, Order, and Delete Rules<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># Human-friendly status\nsudo ufw status numbered\n\n# Delete by number\nsudo ufw delete &lt;rule-number&gt;\n\n# Insert at top for priority (optional)\nsudo ufw insert 1 allow 443\/tcp\n\n# Reset all rules (use with caution)\nsudo ufw reset<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"enable-disable-reload-and-logging\"><strong>Enable\/Disable, Reload, and Logging<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># Temporarily disable\/enable\nsudo ufw disable\nsudo ufw enable\n\n# Reload after changes\nsudo ufw reload\n\n# Logging levels: off, low, medium, high, full\nsudo ufw logging on\nsudo ufw logging medium<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"advanced-ufw-usage\"><strong>Advanced UFW Usage<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"enable-and-mirror-ipv6-rules\"><strong>Enable and Mirror IPv6 Rules<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">If your server has IPv6, ensure it\u2019s enabled in UFW so IPv6 traffic is filtered consistently with IPv4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># In \/etc\/ufw\/ufw.conf, set:\nIPV6=yes\n\n# Then reload:\nsudo ufw reload<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"rate-limiting-to-throttle-abuse\"><strong>Rate Limiting to Throttle Abuse<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Use \u201climit\u201d to rate-limit connection attempts on services like SSH. This helps mitigate brute force bursts without blocking legitimate users.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo ufw limit 22\/tcp<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"application-profiles\"><strong>Application Profiles<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Many packages ship UFW profiles in <code>\/etc\/ufw\/applications.d\/<\/code>. List and enable them by name.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo ufw app list\nsudo ufw app info \"Nginx Full\"\nsudo ufw allow \"Nginx Full\"<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"granular-rules-ips-subnets-interfaces-protocols\"><strong>Granular Rules: IPs, Subnets, Interfaces, Protocols<\/strong><\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code># Allow from a single IP\nsudo ufw allow from 203.0.113.10 to any port 22 proto tcp\n\n# Allow a subnet\nsudo ufw allow from 203.0.113.0\/24 to any port 443\n\n# Bind to an interface (e.g., eth0)\nsudo ufw allow in on eth0 to any port 443 proto tcp\n\n# Deny specific traffic explicitly\nsudo ufw deny from 198.51.100.0\/24 to any port 25<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"logging-and-where-to-find-it\"><strong>Logging and Where to Find It<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">UFW logs via rsyslog to <code>\/var\/log\/ufw.log<\/code> (or <code>\/var\/log\/syslog<\/code> on some systems). Use this when troubleshooting drops or verifying rules.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo tail -f \/var\/log\/ufw.log\nsudo grep UFW \/var\/log\/syslog | less<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"using-ufw-with-docker\"><strong>Using UFW with Docker<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Docker manages its own netfilter rules and can bypass host firewalls for bridged containers. Safer patterns:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Publish only needed ports with <code>-p<\/code> and secure those host ports via UFW (e.g., <code>ufw allow 8080\/tcp<\/code>).<\/li>\n\n\n\n<li>Avoid disabling Docker\u2019s iptables globally; it can break networking.<\/li>\n\n\n\n<li>Prefer reverse proxies (Nginx\/Traefik) listening on 80\/443 and secure those via UFW.<\/li>\n\n\n\n<li>For advanced isolation, consider cloud firewalls or a managed solution.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"common-mistakes-and-how-to-fix-them\"><strong>Common Mistakes and How to Fix Them<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Locking yourself out of SSH:<\/strong> Always allow SSH first. If locked out, use your host\u2019s console to disable UFW (<code>sudo ufw disable<\/code>) and reapply rules.<\/li>\n\n\n\n<li><strong>Forgetting IPv6: <\/strong>If IPv6 is active, mirror rules or enable <code>IPV6=yes<\/code>. Leaving IPv6 open undermines security.<\/li>\n\n\n\n<li><strong>Overly permissive database ports:<\/strong> Never expose 3306\/5432 to the world. Restrict by IP or use private networking\/VPN.<\/li>\n\n\n\n<li><strong>Rule order confusion:<\/strong> Use <code>ufw status numbered<\/code> and <code>ufw insert<\/code> to control priority. The first matching rule wins.<\/li>\n\n\n\n<li><strong>Mismatched default policy: <\/strong>If you intend to deny by default, ensure <code>sudo ufw default deny incoming<\/code> is set and reload.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"production-security-best-practices-with-ufw\"><strong>Production Security Best Practices with UFW<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Principle of least privilege: <\/strong>Open only the ports your application truly requires.<\/li>\n\n\n\n<li><strong>Restrict management access:<\/strong> Allow SSH\/RDP from specific office\/VPN IPs.<\/li>\n\n\n\n<li>Enable rate limiting and use Fail2ban to dynamically block abusive IPs.<\/li>\n\n\n\n<li>Use HTTPS everywhere; redirect port 80 to 443 at the application level.<\/li>\n\n\n\n<li>Keep IPv4 and IPv6 rules aligned; test both with <code>nmap -6<\/code> where applicable.<\/li>\n\n\n\n<li><strong>Automate audits:<\/strong> Periodically run <code>ufw status verbose<\/code> and external scans from a separate host.<\/li>\n\n\n\n<li>Centralize logs or forward to SIEM for alerting and forensics.<\/li>\n\n\n\n<li>Back up firewall configuration and document change history.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"ufw-vs-firewalld-vs-iptables-nftables-which-should-you-choose\"><strong>UFW vs firewalld vs iptables\/nftables: Which Should You Choose?<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Choose UFW if you want a simple, stable, and readable host firewall (Ubuntu\/Debian, small to medium deployments).<\/li>\n\n\n\n<li>Choose firewalld if you are on RHEL\/CentOS\/Alma\/Rocky or need zone-based management and D-Bus integration.<\/li>\n\n\n\n<li>Choose nftables\/iptables directly for highly customized networking, complex NAT, or when building network appliances.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"real-world-examples\"><strong>Real-World Examples<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Basic LEMP server:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo ufw default deny incoming\nsudo ufw default allow outgoing\nsudo ufw allow OpenSSH\nsudo ufw allow \"Nginx Full\"\nsudo ufw enable<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Database node accepting connections only from app servers:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo ufw default deny incoming\nsudo ufw default allow outgoing\nsudo ufw allow from 10.0.10.20 to any port 5432 proto tcp\nsudo ufw allow from 10.0.10.21 to any port 5432 proto tcp\nsudo ufw enable<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"faqs\"><strong>FAQs: <\/strong><\/h2>\n\n\n<div id=\"rank-math-faq\" class=\"rank-math-block\">\n<div class=\"rank-math-list \">\n<div id=\"faq-question-1765622341627\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \" class=\"rank-math-question \" id=\"u003cstrongu003ewhat-is-ufw-in-linux-and-what-does-it-dou003c-strongu003e\">u003cstrongu003eWhat is UFW in Linux and what does it do?u003c\/strongu003e<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>UFW (Uncomplicated Firewall) is a simple interface to Linux netfilter that lets you allow, deny, and log network traffic using easy commands. It simplifies iptables\/nftables, making it ideal for securing Ubuntu\/Debian servers quickly with readable, maintainable rules.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1765622356757\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \" class=\"rank-math-question \" id=\"u003cstrongu003ehow-do-i-allow-a-port-in-ufwu003c-strongu003e\">u003cstrongu003eHow do I allow a port in UFW?u003c\/strongu003e<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Use u003ccodeu003esudo ufw allow u0026lt;portu003e\/u0026lt;protou003eu003c\/codeu003e. For example, u003ccodeu003esudo ufw allow 443\/tcpu003c\/codeu003e opens HTTPS. You can also allow by service name if an application profile exists: u003ccodeu003esudo ufw allow u0022Nginx Fullu0022u003c\/codeu003e. Confirm with u003ccodeu003esudo ufw statusu003c\/codeu003e.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1765622372252\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \" class=\"rank-math-question \" id=\"u003cstrongu003edoes-ufw-support-ipv6u003c-strongu003e\">u003cstrongu003eDoes UFW support IPv6?u003c\/strongu003e<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Yes. Set u003ccodeu003eIPV6=yesu003c\/codeu003e in u003ccodeu003e\/etc\/ufw\/ufw.confu003c\/codeu003e and reload UFW. Ensure rules cover both IPv4 and IPv6 so you don\u2019t leave services exposed on IPv6 inadvertently.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1765622391321\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \" class=\"rank-math-question \" id=\"u003cstrongu003eis-ufw-better-than-iptables-or-nftablesu003c-strongu003e\">u003cstrongu003eIs UFW better than iptables or nftables?u003c\/strongu003e<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>\u201cBetter\u201d depends on your needs. UFW is easier and safer for typical host firewalls. For advanced scenarios (complex routing, custom chains, high-scale container networking), direct nftables or firewalld may be more suitable.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1765622406594\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \" class=\"rank-math-question \" id=\"u003cstrongu003ehow-do-i-reset-ufw-to-default-settingsu003c-strongu003e\">u003cstrongu003eHow do I reset UFW to default settings?u003c\/strongu003e<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Run u003ccodeu003esudo ufw resetu003c\/codeu003e. This disables UFW, removes all rules, and restores defaults. Reapply your rules, enable again with u003ccodeu003esudo ufw enableu003c\/codeu003e, and verify using u003ccodeu003esudo ufw status verboseu003c\/codeu003e. By mastering UFW on Linux servers, you\u2019ll reduce your attack surface, simplify audits, and deploy faster with fewer surprises. Start with the secure defaults, open only what you need, and keep IPv6 aligned. If you want expert help, YouStable\u2019s team can harden and monitor your firewall 24\/7.<\/p>\n\n<\/div>\n<\/div>\n<\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>UFW (Uncomplicated Firewall) on a Linux server is a simple command-line interface for managing netfilter firewall rules. It lets you [&hellip;]<\/p>\n","protected":false},"author":21,"featured_media":15607,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"iawp_total_views":70,"footnotes":""},"categories":[350,1195,2262],"tags":[],"class_list":["post-12712","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-knowledgebase","category-blogging","category-kb-security"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/posts\/12712","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/users\/21"}],"replies":[{"embeddable":true,"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/comments?post=12712"}],"version-history":[{"count":1,"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/posts\/12712\/revisions"}],"predecessor-version":[{"id":23181,"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/posts\/12712\/revisions\/23181"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/media\/15607"}],"wp:attachment":[{"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/media?parent=12712"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/categories?post=12712"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/tags?post=12712"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}