Files
Custem-Firewall/README.md
Tord-Vincent Heggland 6fa2e985c5 claude-readmetry2
2026-05-10 13:42:17 +02:00

119 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Custom Firewall Chains
Et system for å laste egendefinerte `iptables`-kjeder (chains) inn i RAM ved oppstart, via en dedikert `systemd`-tjeneste.
---
## Forutsetninger
- Linux med `systemd` og `iptables`
- Root-tilgang (eller `sudo`)
---
## Mappestruktur i repoet
```
.
├── load-chains.sh # Hovedscript som laster alle chains
├── chains/ # Mappe med enkeltscripts for hver chain
│ ├── 10-example-chain.sh
│ └── ...
└── systemd/
└── custom-firewall-chains.service # systemd-tjenestefilen
```
---
## Oppsett steg for steg
### 1. Kopier firewall-filene til `/opt/firewall`
```bash
sudo mkdir -p /opt/firewall/chains
sudo cp load-chains.sh /opt/firewall/load-chains.sh
sudo cp chains/*.sh /opt/firewall/chains/
sudo chmod +x /opt/firewall/load-chains.sh
sudo chmod +x /opt/firewall/chains/*.sh
```
### 2. Installer systemd-tjenesten
```bash
sudo cp systemd/custom-firewall-chains.service /etc/systemd/system/
```
Opprett deretter override-mappen og konfigurer at tjenesten kjører før nettverket starter:
```bash
sudo mkdir -p /etc/systemd/system/custom-firewall-chains.service.d/
sudo tee /etc/systemd/system/custom-firewall-chains.service.d/override.conf > /dev/null <<EOF
[Unit]
Before=network-pre.target
Wants=network-pre.target
EOF
```
### 3. Aktiver og start tjenesten
```bash
sudo systemctl daemon-reload
sudo systemctl enable custom-firewall-chains.service
sudo systemctl start custom-firewall-chains.service
```
### 4. Verifiser at tjenesten kjører uten feil
```bash
sudo systemctl status custom-firewall-chains.service
```
---
## Legg til egne chain-scripts
Alle `.sh`-filer som ligger i `/opt/firewall/chains/` lastes automatisk ved oppstart. For å legge til en ny chain:
1. Lag et nytt script i `chains/`-mappen, f.eks. `chains/20-my-chain.sh`
2. Kopier det til serveren:
```bash
sudo cp chains/20-my-chain.sh /opt/firewall/chains/
sudo chmod +x /opt/firewall/chains/20-my-chain.sh
```
3. Restart tjenesten for å laste inn endringene umiddelbart:
```bash
sudo systemctl restart custom-firewall-chains.service
```
> **Tips:** Bruk numeriske prefiks (f.eks. `10-`, `20-`) på filnavnene for å styre rekkefølgen chainene lastes inn.
---
## Gjøre andre tjenester avhengig av firewall-chainene
For tjenester som er avhengige av at chainene er lastet inn før de starter, legg til følgende i tjenestens override-konfigurasjon:
```bash
sudo systemctl edit <tjenestenavn>.service
```
Legg inn:
```ini
[Unit]
Requires=custom-firewall-chains.service
After=custom-firewall-chains.service
```
Dette sikrer at `custom-firewall-chains.service` alltid kjører ferdig før den aktuelle tjenesten starter.
---
## Feilsøking
| Problem | Løsning |
|---|---|
| Tjenesten feiler ved oppstart | Sjekk `sudo journalctl -u custom-firewall-chains.service` |
| Et chain-script lastes ikke | Sjekk at filen er kjørbar: `ls -l /opt/firewall/chains/` |
| Endringer vises ikke | Kjør `sudo systemctl restart custom-firewall-chains.service` |