How not to setup Simple Uncomplicated Firewall or UFW in an ubuntu server
How not to do it
If you are doing a fresh setup of UFW whenever you add a rule like ufw allow 'Nginx HTTP'
the status of it would be inactive
.
$sudo ufw allow 'Nginx HTTP'
Rule added
$sudo ufw status
Status: inactive
This would seem odd right, why is it inactive.
During your search, you may discover that you need to activate it with a new command that you find on the internet in order to understand why it was inactive. So you just enable it.
Simple problem, simple solution. :-P
$sudo ufw enable
Output
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
If you just do yes here and go on a break closing the ssh connection.
Congratulations, you are logged out of your server.
This just happened with me today while setting up a small droplet on digitalocean that hosts static page for a domain with nginx.
How to do it correctly
The problem lies in the last command
$sudo ufw enable
Output
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
There can be three cases now if you have enabled UFW.
First, don't quit the ssh session and add a rule to allow ssh connection.
$sudo ufw allow OpenSSH
$sudo ufw allow ssh
$sudo ufw allow 22
Assuming you use a default port for ssh, if it;s some other port you can just allow that port number like the port 333
$sudo ufw allow 333
That way you would still have access to SSH when your session ends/timesout.
Second, be smart and allow ssh ports before you enable the ufw.
Third, you just go bonkers and reset the ufw and start again. hahahaha!
sudo ufw reset
Common ufw commands you might find handy
- Be sus and deny incoming.
# Set the defaults to deny incoming and allow outgoing connections
$sudo ufw default deny incoming
$sudo ufw default allow outgoing
- Allow specific port ranges
$sudo ufw allow 6000:6007/tcp
$sudo ufw allow 6000:6007/udp
- Allow specific address
$sudo ufw allow from 203.0.113.4
References
Image Source: Vox.com's post
Content Reference: How To Troubleshoot Common Nginx Errors