{"id":12516,"date":"2025-12-20T10:01:01","date_gmt":"2025-12-20T04:31:01","guid":{"rendered":"https:\/\/www.youstable.com\/blog\/?p=12516"},"modified":"2025-12-20T10:01:03","modified_gmt":"2025-12-20T04:31:03","slug":"install-ufw-on-linux","status":"publish","type":"post","link":"https:\/\/www.youstable.com\/blog\/install-ufw-on-linux","title":{"rendered":"How to Install UFW on Linux Server (Step-by-Step Guide 2026)"},"content":{"rendered":"\n<p><strong>To install UFW on a Linux server<\/strong>, update your packages, install the ufw package, set default policies (deny incoming, allow outgoing), allow SSH, and enable the firewall. UFW (Uncomplicated Firewall) is a beginner friendly interface for iptables\/nftables that helps you quickly secure open ports while keeping essential services reachable.<\/p>\n\n\n\n<p>Securing a fresh Linux machine should start with a firewall. In this guide, you\u2019ll learn how to install UFW on Linux server environments (Ubuntu\/Debian and RHEL-based systems), configure safe defaults, open necessary ports, and apply best practices used in production hosting. I\u2019ll share practical steps, real-world tips, and common pitfalls to avoid.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"what-is-ufw-and-why-use-it\"><strong>What is UFW and Why Use it?<\/strong><\/h2>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"2496\" height=\"1664\" src=\"https:\/\/www.youstable.com\/blog\/wp-content\/uploads\/2025\/12\/image-36.png\" alt=\"\" class=\"wp-image-12567\" srcset=\"https:\/\/www.youstable.com\/blog\/wp-content\/uploads\/2025\/12\/image-36.png 2496w, https:\/\/www.youstable.com\/blog\/wp-content\/uploads\/2025\/12\/image-36-150x100.png 150w\" sizes=\"auto, (max-width: 2496px) 100vw, 2496px\" \/><\/figure>\n\n\n\n<p>UFW (Uncomplicated Firewall) is a command-line tool that simplifies Linux firewall management. It provides readable syntax on top of iptables\/nftables, making it easier to define rules like \u201callow SSH\u201d or \u201callow 443\/tcp.\u201d It\u2019s especially popular on Ubuntu servers, but also available on Debian and RHEL derivatives via EPEL.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"why-choose-ufw\">Why choose UFW?<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Beginner-friendly syntax and predictable defaults<\/li>\n\n\n\n<li>Quick open\/close of ports and services<\/li>\n\n\n\n<li>Supports IPv4 and IPv6<\/li>\n\n\n\n<li>Profiles for common apps (Nginx, Apache, OpenSSH)<\/li>\n\n\n\n<li>Works well on VPS, <a href=\"https:\/\/www.youstable.com\/blog\/secure-dedicated-server\/\"><strong>dedicated servers<\/strong><\/a>, and on-prem hosts<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"prerequisites-and-safety-checklist\"><strong>Prerequisites and Safety Checklist<\/strong><\/h4>\n\n\n\n<p>Before you install UFW on Linux server environments, confirm these prerequisites. This prevents locking yourself out, especially on remote VPS instances.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.youstable.com\/blog\/how-to-enable-ssh-access-for-clients-or-users\/\">SSH access<\/a> with sudo privileges<\/li>\n\n\n\n<li>Service ports you must keep open (e.g., 22\/SSH, 80\/HTTP, 443\/HTTPS)<\/li>\n\n\n\n<li>Cloud firewall\/security groups aligned with your plan (AWS, GCP, Azure)<\/li>\n\n\n\n<li>Console\/serial access as a failsafe (offered by most hosting providers)<\/li>\n<\/ul>\n\n\n\n<p>Golden rule: Always allow SSH before enabling UFW.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"how-to-install-ufw-on-ubuntu-and-debian\"><strong>How to Install UFW on Ubuntu and Debian<\/strong><\/h2>\n\n\n\n<p>Ubuntu ships UFW in its main repositories and often has it pre-installed. If not, install it using apt.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt update\nsudo apt install ufw -y\n\n# Check status (should be inactive before you configure it)\nsudo ufw status verbose<\/code><\/pre>\n\n\n\n<p>Set safe defaults, allow SSH, then enable UFW:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Deny unsolicited inbound, allow all outbound\nsudo ufw default deny incoming\nsudo ufw default allow outgoing\n\n# Allow SSH (use application profile or port)\nsudo ufw allow OpenSSH\n# or\nsudo ufw allow 22\/tcp\n\n# Enable the firewall\nsudo ufw enable\n\n# Verify\nsudo ufw status numbered\nsudo ufw status verbose<\/code><\/pre>\n\n\n\n<p>On Debian, the commands are identical. Ensure your package lists are up to date and that you permit SSH prior to enabling.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"how-to-install-ufw-on-rhel-centos-almalinux-and-rocky\"><strong>How to Install UFW on RHEL, CentOS, AlmaLinux, and Rocky<\/strong><\/h2>\n\n\n\n<p>RHEL-based distributions typically use firewalld by default. You can still use UFW by installing it from the EPEL repository. Decide whether to switch from firewalld to UFW; do not run them simultaneously.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Enable EPEL\nsudo dnf install epel-release -y\n# Install UFW\nsudo dnf install ufw -y\n\n# <a href=\"https:\/\/www.youstable.com\/blog\/how-to-stop-and-disable-firewalld\/\">Stop and disable firewalld<\/a> if you intend to use UFW instead\nsudo systemctl stop firewalld\nsudo systemctl disable firewalld\n\n# Enable UFW service at boot on some RHEL-based systems\nsudo systemctl enable ufw\n\n# Configure and enable as usual\nsudo ufw default deny incoming\nsudo ufw default allow outgoing\nsudo ufw allow 22\/tcp\nsudo ufw enable\nsudo ufw status verbose<\/code><\/pre>\n\n\n\n<p>If you prefer to keep firewalld (recommended for native RHEL environments), you can skip UFW and configure firewalld directly. The choice is preference; both manage nftables\/iptables under the hood.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"essential-ufw-configuration-steps\"><strong>Essential UFW Configuration Steps<\/strong><\/h2>\n\n\n\n<p>After you install UFW on Linux server systems, apply these core configurations to secure your machine while preserving functionality.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"set-default-policies-and-enable\"><strong>Set Default Policies and Enable<\/strong><\/h3>\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 enable\nsudo ufw status<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"allow-common-services-web-mail-databases\"><strong>Allow Common Services (Web, Mail, Databases)<\/strong><\/h2>\n\n\n\n<p>Open only what you need. For web servers:<\/p>\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# Alternatively, use application profiles if present\nsudo ufw app list\nsudo ufw allow \"Nginx Full\"   # opens 80 and 443\nsudo ufw allow \"Apache Full\"<\/code><\/pre>\n\n\n\n<p>For databases (never expose publicly unless required):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># MySQL\/MariaDB (3306) - ideally restrict to specific hosts\nsudo ufw allow from 203.0.113.10 to any port 3306 proto tcp\n\n# PostgreSQL (5432)\nsudo ufw allow from 203.0.113.10 to any port 5432 proto tcp<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"allow-a-non-standard-ssh-port\"><strong>Allow a Non-Standard SSH Port<\/strong><\/h3>\n\n\n\n<p>If you run SSH on a custom port (e.g., 2222), allow it and remove port 22 access if unused.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo ufw allow 2222\/tcp\n# Optional: deny default 22 if not used\nsudo ufw delete allow 22\/tcp\nsudo ufw reload<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"allow-only-specific-ips-or-subnets\"><strong>Allow Only Specific IPs or Subnets<\/strong><\/h3>\n\n\n\n<p>Limit access to administrative ports by source IP to reduce attack surface.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Restrict SSH to an office IP\nsudo ufw allow from 198.51.100.25 to any port 22 proto tcp\n\n# Allow a whole subnet (CIDR)\nsudo ufw allow from 203.0.113.0\/24 to any port 22 proto tcp<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"port-ranges-and-protocols\"><strong>Port Ranges and Protocols<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># Allow a TCP port range (e.g., passive FTP 40000-40100)\nsudo ufw allow 40000:40100\/tcp\n\n# Allow UDP (e.g., DNS, WireGuard)\nsudo ufw allow 53\/udp\nsudo ufw allow 51820\/udp<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"managing-and-auditing-ufw-rules\"><strong>Managing and Auditing UFW Rules<\/strong><\/h2>\n\n\n\n<p>Keep your ruleset minimal and auditable. These commands help you maintain order.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># List current rules with numbers\nsudo ufw status numbered\n\n# Delete a rule by number\nsudo ufw delete 3\n\n# Disable or re-enable UFW\nsudo ufw disable\nsudo ufw enable\n\n# Reload after changes\nsudo ufw reload\n\n# Reset to factory defaults (use with caution)\nsudo ufw reset<\/code><\/pre>\n\n\n\n<p>For backups, copy UFW user rule files:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo cp \/etc\/ufw\/user.rules ~\/user.rules.backup\nsudo cp \/etc\/ufw\/user6.rules ~\/user6.rules.backup<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"advanced-options-and-best-practices\"><strong>Advanced Options and Best Practices<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"enable-ipv6\"><strong>Enable IPv6<\/strong><\/h3>\n\n\n\n<p>If your server has IPv6, ensure UFW manages it. Edit the configuration and restart UFW.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo nano \/etc\/ufw\/ufw.conf\n# Set:\nIPV6=yes\n\n# Apply\nsudo ufw disable\nsudo ufw enable<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"rate-limit-ssh-and-other-sensitive-services\"><strong>Rate Limit SSH and Other Sensitive Services<\/strong><\/h3>\n\n\n\n<p>Rate-limiting reduces brute-force noise by throttling repeated connections.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Limit SSH\nsudo ufw limit 22\/tcp\n\n# Limit custom SSH port\nsudo ufw limit 2222\/tcp<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"turn-on-logging-with-care\"><strong>Turn On Logging (With Care)<\/strong><\/h3>\n\n\n\n<p>UFW can log dropped packets for diagnostics. Use \u201clow\u201d for general use and \u201cmedium\/high\u201d temporarily for debugging.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Enable logging\nsudo ufw logging low\n\n# Check logs\nsudo tail -f \/var\/log\/ufw.log  # on some systems: \/var\/log\/syslog<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"use-application-profiles\"><strong>Use Application Profiles<\/strong><\/h3>\n\n\n\n<p>Many packages install UFW profiles in \/etc\/ufw\/applications.d. They simplify opening multiple ports at once.<\/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<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"combine-ufw-with-fail2ban\"><strong>Combine UFW With Fail2ban<\/strong><\/h3>\n\n\n\n<p>Fail2ban blocks abusive IPs dynamically based on log patterns. It integrates well with UFW, adding temporary bans without replacing firewall rules.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Ubuntu\/Debian\nsudo apt <a href=\"https:\/\/www.youstable.com\/blog\/install-fail2ban-on-linux\/\">install fail2ban<\/a> -y\n\n# RHEL-based\nsudo dnf install fail2ban -y\n\n# Basic enable\nsudo systemctl enable --now fail2ban<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"cloud-firewalls-containers-and-ufw\"><strong>Cloud Firewalls, Containers, and UFW<\/strong><\/h3>\n\n\n\n<p>At YouStable, we recommend layering controls: use cloud security groups to restrict broad access, then UFW on each VM for host-level filtering. Make sure both layers allow your desired ports; mismatches cause \u201cit works on the server\u201d confusion.<\/p>\n\n\n\n<p>Using Docker? Docker manipulates iptables directly and may bypass UFW rules for container traffic. Consider:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Publishing only necessary ports with -p<\/li>\n\n\n\n<li>Using a reverse proxy container and exposing just 80\/443<\/li>\n\n\n\n<li>Exploring Docker daemon options and user-defined networks<\/li>\n\n\n\n<li>Testing container reachability after firewall changes<\/li>\n<\/ul>\n\n\n\n<p>For Kubernetes and advanced container setups, host firewalls coexist with CNI plugins. Validate policies end-to-end before going live.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"troubleshooting-ufw\"><strong>Troubleshooting UFW<\/strong><\/h2>\n\n\n\n<p>If something breaks after enabling UFW, work methodically.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Check port listeners: sudo ss -tulpen | grep LISTEN<\/li>\n\n\n\n<li>Verify rules: sudo ufw status numbered<\/li>\n\n\n\n<li>Inspect logs: sudo tail -f \/var\/log\/ufw.log (or \/var\/log\/syslog)<\/li>\n\n\n\n<li>Temporarily allow all outgoing and the specific incoming service<\/li>\n\n\n\n<li>Check cloud provider firewall\/security group rules<\/li>\n\n\n\n<li>For remote lockouts, use your provider\u2019s console to disable UFW: sudo ufw disable<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"real-world-example-secure-lemp-stack\"><strong>Real-World Example: Secure LEMP Stack<\/strong><\/h2>\n\n\n\n<p>Here\u2019s a minimal ruleset for a production LEMP server with SSH on port 22, Nginx on 80\/443, and MySQL restricted to a trusted app server.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo ufw default deny incoming\nsudo ufw default allow outgoing\n\nsudo ufw allow 22\/tcp\nsudo ufw allow \"Nginx Full\"\nsudo ufw allow from 203.0.113.10 to any port 3306 proto tcp\n\nsudo ufw limit 22\/tcp\nsudo ufw logging low\n\nsudo ufw enable\nsudo ufw status verbose<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"why-ufw-matters-for-hosting-and-how-youstable-helps\"><strong>Why UFW Matters for Hosting and How YouStable Helps<\/strong><\/h2>\n\n\n\n<p>Firewalls reduce exposure and buy time against automated scans and opportunistic attacks. UFW\u2019s clarity means fewer mistakes and faster remediation. If you host with YouStable, our experts can pre-harden your VPS or dedicated servers, set correct UFW rules for your stack, and align them with cloud firewall policies to prevent downtime.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"faqs-install-ufw-on-linux-server\"><strong>FAQ&#8217;s: Install UFW on Linux Server<\/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-1765524072469\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \" class=\"rank-math-question \" id=\"is-ufw-better-than-iptables-or-firewalld\"><strong>Is UFW better than iptables or firewalld?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>UFW isn\u2019t \u201cbetter,\u201d it\u2019s simpler. It\u2019s a front end for iptables\/nftables focused on ease of use. firewalld is native on RHEL-based systems and integrates with system tools. Choose <a href=\"https:\/\/www.youstable.com\/blog\/setup-ufw-on-linux-server\/\">UFW for readability and quick setup<\/a>, firewalld for native RHEL workflows, or raw iptables\/nftables for granular control.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1765524083667\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \" class=\"rank-math-question \" id=\"will-enabling-ufw-lock-me-out-of-ssh\"><strong>Will enabling UFW lock me out of SSH?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>It can, if you enable it without allowing SSH first. Always run sudo ufw allow OpenSSH (or the correct port) before sudo ufw enable. If you get locked out, use your hosting provider\u2019s console to disable UFW and fix the rule.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1765524093415\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \" class=\"rank-math-question \" id=\"how-do-i-open-a-port-with-ufw\"><strong>How do I open a port with UFW?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Use sudo ufw allow PORT\/PROTO, for example sudo ufw allow 443\/tcp. To restrict by source IP: sudo ufw allow from 203.0.113.5 to any port 443 proto tcp. Verify with sudo ufw status.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1765524105430\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \" class=\"rank-math-question \" id=\"does-ufw-support-ipv6\"><strong>Does UFW support IPv6?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Yes. Set IPV6=yes in \/etc\/ufw\/ufw.conf and re-enable UFW. Then manage both IPv4 and IPv6 rules, ensuring parity so you don\u2019t unintentionally expose services over IPv6.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1765524113383\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \" class=\"rank-math-question \" id=\"how-do-i-allow-a-port-range-or-specific-protocol\"><strong>How do I allow a port range or specific protocol?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>For ranges: sudo ufw allow 10000:10100\/tcp. For UDP: sudo ufw allow 53\/udp. Always specify tcp or udp for clarity and least privilege.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1765524122613\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \" class=\"rank-math-question \" id=\"how-do-i-reset-ufw-to-defaults\"><strong>How do I reset UFW to defaults?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Run sudo ufw reset. This disables UFW and removes all rules. Reapply your intended rules, allow SSH, then enable UFW again. Consider backing up \/etc\/ufw\/user.rules first.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1765524133204\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \" class=\"rank-math-question \" id=\"does-ufw-work-with-docker\"><strong>Does UFW work with Docker?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Docker modifies iptables directly and may bypass UFW chains for container traffic. Keep published ports minimal, prefer reverse proxies, and test connectivity after changes. For complex setups, consider dedicated network policies or firewalld with Docker-aware rules.<\/p>\n\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"conclusion\"><strong>Conclusion<\/strong><\/h2>\n\n\n\n<p>Installing UFW on a Linux server takes minutes and dramatically improves baseline security. Set conservative defaults, open only what you need, and audit regularly. If you want a production-ready firewall tailored to your stack, YouStable can preconfigure UFW alongside server hardening so you launch fast and stay secure.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>To install UFW on a Linux server, update your packages, install the ufw package, set default policies (deny incoming, allow [&hellip;]<\/p>\n","protected":false},"author":13,"featured_media":15440,"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":""}},"footnotes":""},"categories":[350],"tags":[],"class_list":["post-12516","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-knowledgebase"],"acf":[],"featured_image_src":"https:\/\/www.youstable.com\/blog\/wp-content\/uploads\/2025\/12\/How-to-Install-UFW-on-Linux-Server.jpg","author_info":{"display_name":"Prahlad Prajapati","author_link":"https:\/\/www.youstable.com\/blog\/author\/prahladblog"},"_links":{"self":[{"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/posts\/12516","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\/13"}],"replies":[{"embeddable":true,"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/comments?post=12516"}],"version-history":[{"count":5,"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/posts\/12516\/revisions"}],"predecessor-version":[{"id":15442,"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/posts\/12516\/revisions\/15442"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/media\/15440"}],"wp:attachment":[{"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/media?parent=12516"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/categories?post=12516"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/tags?post=12516"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}