# Weryfikacja zapory sieciowej (firewalld) oraz dodanie wyjątków

<p class="callout info">Komendy wykonujemy z CLI bash / sh z uprawnieniami root (sudo)</p>

##### Sprawdzenie wszystkich reguł firewallD:  


```bash
sudo firewall-cmd --list-all
```

Dodanie portu:

```bash
sudo firewall-cmd --add-port=NumerPortu/tcp --permanent
```

Dodanie portu ograniczając do jednej zone

```bash
sudo firewall-cmd --zone=NazwaZony --add-port=NumerPortu/tcp --permanent
```

Dodanie usługi:

```bash
sudo firewall-cmd --permanent --add-service=NazwaService
```

Po zmianach należy przeładować firewallD:

```bash
sudo firewall-cmd --reload
```

##### **Co to jest "rich rule" w firewallD?**

**Rich rules** to zaawansowane reguły w firewallD, które pozwalają na bardziej precyzyjne definiowanie zasad niż standardowe strefy i usługi. Umożliwiają m.in.:

- **Filtrowanie według protokołu, adresów IP, portów, interfejsów**
- **Ustalanie kierunku ruchu (input, output, forward)**
- **Logowanie i kontrolę pasma**

Przykład dodania rich-rule:

```bash
sudo firewall-cmd --add-rich-rule='rule protocol value="NazwaProtokołu" accept' --permanent
```

Przykład wpuszczenia ruchu **ssh** z jednego adresu IP

```bash
sudo firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.1.100" service name="ssh" accept' --permanent
```

Po zmianach należy przeładować firewallD:

```bash
sudo firewall-cmd --reload
```