Skip to main content

UFW Basics

Introduction

We present a quick introduction to Uncomplicated Firewall (ufw), a free and open-source firewall management tool for Linux operating systems. This guide can be useful for users of the TFGrid deploying on full and micro VMs as well as other types of deployment.

Basic Commands

We show here basic commands to set a firewall on Linux with Uncomplicated Firewall (ufw).

Install ufw

  • Update
    • apt update
  • Install ufw
    • apt install ufw

Enable ufw

  • ufw enable

Disable ufw

  • ufw disable

Reset ufw

  • ufw reset

Reload ufw

  • ufw reload

Deny Incoming Connections

  • ufw default deny incoming

Allow Outgoing Connections

  • ufw default allow outgoing

Allow a Specific IP address

  • ufw allow from <IP_Address>

Allow a Specific IP Address to a Given Port

  • ufw allow from <IP_Address> to any port <port>

Allow a Port for tcp

  • ufw allow <port>/tcp

Allow a Port for udp

  • ufw allow <port>/udp

Allow a Port for tcp and udp

  • ufw allow <port>

Allow Ports: Examples

Here are some typical examples of ports to allow with ufw:

  • Allow SSH (port 22)
    • ufw allow ssh
  • Allow HTTP (port 80)
    • ufw allow http
  • Allow HTTPS (port 443)
    • ufw allow https
  • Allow mysql (port 3306)
    • ufw allow 3306

Allow Port Ranges

  • Template
    • ufw allow <port_range_floor>:<port_range_ceiling>
  • Example
    • ufw allow 6000:6005

Allow a Subnet

  • ufw allow from <subnet>

Allow a Subnet to a Given Port

  • ufw allow from <subnet> to any port <port>

Deny a Port

  • ufw deny <port>

Deny an IP Address

  • ufw deny <IP_Address>

Deny a Subnet

  • ufw deny from <subnet>

Block Incoming Connections to a Network Interface

  • ufw deny in on <network_interface> from <IP_Address>

Check Rules

Use status to check the current firewall configurations. Add verbose for more details.

  • ufw status 
  • ufw status verbose

Check Rules (Numbered)

It can be useful to see the numbering of the rules, to remove more easily a rule for example.

  • ufw status numbered

Delete a Rule with Number

It can be useful to see the numbering of the rules, to remove more easily a rule for example.

  • ufw delete <rule_number>

Delete a Rule with the Rule Name and Parameters

You can also delete a rule by writing directly the rule name you used to add the rule.

  • Template
    • ufw delete <rule_name> <rule_parameters>
  • Example
    • ufw delete allow ssh
    • ufw delete allow 22

You can always check the current rules with ufw status to see if the rules are properly removed.

List the Available Profiles Available

  • ufw app list

This command will give you the names of the apps present on the server. You can then use ufw app info to get information on the app, or allow the app with ufw allow

Get App Info

  • ufw app info <app_name>

Set ufw in Verbose Mode

  • ufw verbose

Allow a Specific App

  • Template
    • ufw allow "<app_name>"
  • Example
    • ufw allow "NGINX Full"

References

ufw man pages - https://manpages.ubuntu.com/manpages/trusty/man8/ufw.8.html