Ubuntu 22.04 open HTTP port 80 and HTTPS port 443 with ufw

If you plan to host a website on your Ubuntu 22.04 Jammy Jellyfish Linux system, it will be necessary to allow HTTP port 80 and HTTPS port 443 through the firewall, or else incoming connections will not make it to the web server.

Ubuntu 22.04 uses the ufw firewall by default, which stands for “uncomplicated firewall.” When the firewall is enabled, it will block all incoming connections by default. It will be necessary to configure the ufw firewall to allow incoming connections on certain ports if you expect to host any services, such as a web server.

In this tutorial, we will explain how to open HTTP port 80 and HTTPS port 443 on Ubuntu 22.04 Jammy Jellyfish with the ufw firewall. HTTP and HTTPS protocols are primarily used by web services such as, but not limited to, Apache or Nginx web servers.

In this tutorial you will learn:

  • How to open HTTP port 80 and HTTPS port 443
  • How to open HTTP port 80 and HTTPS port 443 for Apache and Nginx
  • How to list currently open ports/services
  • How to close/remove HTTP port 80 and HTTPS port 443
Allow 80 and 443 port and delete firewall rule on Ubuntu 22.04 Jammy Jellyfish
Allow 80 and 443 port and delete firewall rule on Ubuntu 22.04 Jammy Jellyfish
Software Requirements and Linux Command Line Conventions
Category Requirements, Conventions or Software Version Used
System Ubuntu 22.04 Jammy Jellyfish
Software ufw
Other Privileged access to your Linux system as root or via the sudo command.
Conventions # – requires given linux commands to be executed with root privileges either directly as a root user or by use of sudo command
$ – requires given linux commands to be executed as a regular non-privileged user

Ubuntu 22.04 Focal Fossa open HTTP port 80 and HTTPS port 443 step by step instructions




By default, the port 80 for http connection and port 443 for https is blocked on Ubuntu 22.04 as you can only access this port from the actual localhost and not from any other public host. To open ports 80 and 443 we need to add an iptables rule. For this Ubuntu uses ufw.

  1. The first thing we should do is open a command line terminal and check the current status of our ufw firewall.
    $ sudo ufw status verbose
    Status: active
    Logging: on (low)
    Default: deny (incoming), allow (outgoing), disabled (routed)
    New profiles: skip
    

    Based on the above output (relevant part in bold), all incomming ports are blocked by default.

  2. We have multiple options on how to open ports 80 and 443. First we can directly specify the port number or the service we wish to open the port for. Example:
    $ sudo ufw allow 80
    $ sudo ufw allow 443
    OR
    $ sudo ufw allow http
    $ sudo ufw allow https
    

    Alternatively, if we wish to open ports for a specific web server such as Apache or Nginx we can execute the below commands:

    $ sudo ufw allow in "Apache Full"
    OR
    $ sudo ufw allow in "Nginx Full"
    
  3. Check your current firewall configuration settings:
    $ sudo ufw status verbose
    Status: active
    Logging: on (low)
    Default: deny (incoming), allow (outgoing), disabled (routed)
    New profiles: skip
    
    To                         Action      From
    --                         ------      ----
    80                         ALLOW IN    Anywhere                  
    443                        ALLOW IN    Anywhere                  
    80 (v6)                    ALLOW IN    Anywhere (v6)             
    443 (v6)                   ALLOW IN    Anywhere (v6)
    
  4. In case you decide later that you need to remove the port 80 and 443 rules, you can do so by executing the below commands:
    $ sudo ufw delete allow 80
    $ sudo ufw delete allow 443
    OR
    $ sudo ufw delete allow http
    $ sudo ufw delete allow https
    

    Or if you need to remove the rules that you set for the Apache or NGINX web servers, execute the below commands:

    $ sudo ufw delete allow in "Apache Full"
    $ sudo ufw delete allow in "Nginx Full"
    

Closing Thoughts




In this tutorial, we learned how to open port 80 for HTTP and port 443 for HTTPS through the ufw firewall on Ubuntu 22.04 Jammy Jellyfish Linux. As long as there are no other devices filtering traffic to your Ubuntu 22.04 server, your website should be accessible on port 80 or 443 to any IP address on the internet.