---

Alias: ["UFW"]
Tag: ["🖥️", "Firewall"]
Date: 2021-10-04
DocType: "Personal"
Hierarchy: "NonRoot"
TimeStamp:
location: [51.514678599999996, -0.18378583926867909]
CollapseMetaTable: true

---

Parent:: [[Selfhosting]], [[Server Alias]], [[Server Cloud]], [[Server Tools]], [[Server VPN]]

---

 ^Top

&emsp;

```button
name Save
type command
action Save current file
id Save
```
^button-UFWSave

&emsp;

# Configuring UFW

&emsp;

```ad-abstract
title: Summary
collapse: open
Description of basic commands for UFW
```

&emsp;

```toc
style: number
```

&emsp;

---

&emsp;

### Installation and activation
[[#^Top|TOP]]
&emsp;

UFW should be installed by default in Ubuntu servers. If not, see below.

&emsp;

#### Installation of UFW

```ad-command
~~~bash
sudo apt install ufw
~~~
```

&emsp;

#### Activation of UFW

```ad-command
~~~bash
sudo ufw status
~~~
```

If disabled:

```ad-command
~~~bash
sudo ufw enable
~~~
```

&emsp;

---

&emsp;

### Basic commands
[[#^Top|TOP]]
&emsp;

#### UFW rules status

```ad-command
~~~bash
sudo ufw status
~~~
```

Commands can be appended:
- `verbose`: details incoming/outgoing rules
- `numbered`: display rule numbers

&emsp;

#### UFW rule management
[[#^Top|TOP]]
##### Allow / Deny

```ad-command
~~~bash
sudo ufw allow/deny
~~~
```

Then:

| Type to allow | Syntax
|--------------|--------
**IP** | from (ip address/range)
**Port** | (portnumber)/(protocol)
**Service** | (service name)
**Protocol** | proto (protocol name)

&emsp;

##### Rule priority

Certain rules like IP denial need to be put on top of the rule stack as UFW reads rules in order one after another. Insert the following in the command to force insertion:

```ad-command
~~~bash
insert 1 (or any place in the pecking order)
~~~
```

&emsp;

##### Complex rule syntax

Finer rules can be defined with the following syntax.

| rule condition | syntax
|--------------|--------
**connecting IP** | from (ip or any)
**internal IP** | to (ip or any)
**protocol** | proto (protocol or any)
**port** | port (port or any)
**outgoing traffic** | out

&emsp;

##### Delete a rule

```ad-command
~~~bash
sudo ufw delete <rule number>
~~~
```

&emsp;

---

&emsp;

### Ban List management
[[#^Top|TOP]]
&emsp;

#### Ban List Folder

```ad-path
/etc/addip4ban/
```

&emsp;

#### Ban List Script

```ad-code
title: addip4ban.sh
~~~bash
#!/bin/bash

INPUT="/etc/addip4ban/blocked.ip.list"

while IFS= read -r block
do
    sudo ufw insert 1 deny from "$block"
done < "$INPUT"
~~~
```

&emsp;

Once written, the script needs to be executed. To prepare:

```ad-command
~~~bash
sudo chmod +x /etc/addip4ban/addip4ban.sh
~~~
```

&emsp;

#### Ban List Document

```ad-code
title: blocked.ip.list
~~~bash
< ip1 >
< ip2/range >
< ip3 >
~~~
```

&emsp;

#### Ban list Update Process

Copy/paste the new ban list into `blocked.ip.list` and run:

```ad-command
~~~bash
sudo bash /etc/addip4ban/addip4ban.sh
~~~
```

&emsp;

#### Ban List Tasks

- [ ] 🖥 [[Selfhosting]], [[Configuring UFW|Firewall]] Get IP addresses caught by Postfix %%done_del%% 🔁 every week on Saturday 📅 2023-03-11
- [x] 🖥 [[Selfhosting]], [[Configuring UFW|Firewall]] Get IP addresses caught by Postfix %%done_del%% 🔁 every week on Saturday 📅 2023-03-04 ✅ 2023-03-03
- [x] 🖥 [[Selfhosting]], [[Configuring UFW|Firewall]] Get IP addresses caught by Postfix %%done_del%% 🔁 every week on Saturday 📅 2023-02-25 ✅ 2023-02-24
- [x] 🖥 [[Selfhosting]], [[Configuring UFW|Firewall]] Get IP addresses caught by Postfix %%done_del%% 🔁 every week on Saturday 📅 2023-02-18 ✅ 2023-02-17
- [x] 🖥 [[Selfhosting]], [[Configuring UFW|Firewall]] Get IP addresses caught by Postfix %%done_del%% 🔁 every week on Saturday 📅 2023-02-11 ✅ 2023-02-11
- [x] 🖥 [[Selfhosting]], [[Configuring UFW|Firewall]] Get IP addresses caught by Postfix %%done_del%% 🔁 every week on Saturday 📅 2023-02-04 ✅ 2023-02-04
- [ ] 🖥 [[Selfhosting]], [[Configuring UFW|Firewall]]: Update the Blocked IP list %%done_del%% 🔁 every month on Saturday 📅 2023-03-11
- [x] 🖥 [[Selfhosting]], [[Configuring UFW|Firewall]]: Update the Blocked IP list %%done_del%% 🔁 every month on Saturday 📅 2023-03-04 ✅ 2023-03-03
- [x] 🖥 [[Selfhosting]], [[Configuring UFW|Firewall]]: Update the Blocked IP list %%done_del%% 🔁 every month on Saturday 📅 2023-02-25 ✅ 2023-02-24
- [x] 🖥 [[Selfhosting]], [[Configuring UFW|Firewall]]: Update the Blocked IP list %%done_del%% 🔁 every month on Saturday 📅 2023-02-18 ✅ 2023-02-17
- [x] 🖥 [[Selfhosting]], [[Configuring UFW|Firewall]]: Update the Blocked IP list %%done_del%% 🔁 every month on Saturday 📅 2023-02-11 ✅ 2023-02-11
- [x] 🖥 [[Selfhosting]], [[Configuring UFW|Firewall]]: Update the Blocked IP list %%done_del%% 🔁 every month on Saturday 📅 2023-02-04 ✅ 2023-02-04

&emsp;
&emsp;