Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Minimal UFW Setup

UFW (Uncomplicated Firewall) is a firewall software package that is a front-end to iptables that is easy to use initially and yet flexible enough for power users.

Install ufw UFW if it not already installed,

Code Block
languagebash
sudo apt-get install ufw # install the firewall software

Now, if you are not using a console, issuing multiple commands as shown on one line via remote SSH should ensure that you can ssh back into your system. If you do end up getting disconnected should still be able to get back in.

...

UFW once installed does not automatically start. First open up ports that are necessary for the administration of the system,

Code Block
languagebash
# enables the the firewall and allows ssh traffic in one step
sudo ufw enable ; sudo ufw allow 22
Note

Note to self, consider modifying the command to run in background process.

Additionally open other ports that you require. For this tutorial it would be,

Code Block
languagebash
sudo ufw allow 80 # Web Server
sudo ufw allow 443 # SSL over Web Server

Before starting UFW make sure you have port 22 open you can check again by running the allow 22 command again and if the rule is added should output.

Code Block
languagebash
sudo ufw allow 22
"Skipping adding existing rule"

After you have confirmed 22 is open you can go ahead and enable UFW.

Code Block
languagebash
sudo ufw enable

From your desktop, use Telnet to confirm 22 port is open,

Code Block
languagebash
telnet Ubuntuservername 22 # if you server is not named, user the server's IP address

If telnet worked you should see something like this,

Code Block
languagebash
Connected to Ubuntuservername.
Escape character is '^]'.
^]

Finally check that all your rules are in place,

Code Block
languagebash
sudo ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing)
New profiles: skip

To                         Action      From
--                         ------      ----
22                         ALLOW IN    Anywhere
80                         ALLOW IN    Anywhere
443                        ALLOW IN    Anywhere
Info
UFW status verbose will not work if UFW is not enabled.

There is much more to ufw UFW but the above steps should get you going.

More UFW Commands

Here are some more useful ufw commands,
 

Removing Rules

You can disable or delete rules. The example shown here is two step,

Code Block
languagebash
sudo ufw deny 443 # Disables and leave the entry in the status. Useful tofor a port you leave on and off sometimes.
sudo ufw delete deny 443 # Actually delete the firewall rule entry.Delete the rule. Here you must have it disabled to delete it.

Not exactly intuitive is that the delete command needs to be literal. In the above example we had "delete deny port 443". If the port was enabled and we wanted to delete in one step, the command would look like this,

Code Block
languagebash
sudo ufw delete allow 443 # Deletes an enabled rule.

To put comment

You can put comment in the rules and have it show up in the ufw status

Code Block
languagebash
sudo ufw allow 22 comment 'enable TCP'

Article Improvements

Warning

This article can be improved in the following areas.

How I can put comments in the firewall rules and have it show up in the ufw status? Using applications.d. Will add details from here,http://manpages.ubuntu.com/manpages/jaunty/en/man8/ufw.8.html

References

https://help.ubuntu.com/9.10/serverguide/C/firewall.html - official docs from Ubuntu.