claude-readmetry2

This commit is contained in:
Tord-Vincent Heggland
2026-05-10 13:42:17 +02:00
parent 3c3e929791
commit 6fa2e985c5

127
README.md
View File

@@ -1,35 +1,118 @@
#!/usr/bin/env bash # Custom Firewall Chains
set -euo pipefail
for file in /opt/firewall/chains/*.sh; do
[ -e "$file" ] || continue
bash "$file"
done
Dette er script jeg har brukt til å lage mine egne firewall regler som lastes inn i ram ved boot Et system for å laste egendefinerte `iptables`-kjeder (chains) inn i RAM ved oppstart, via en dedikert `systemd`-tjeneste.
systemctl cat custom-firewall-chains.service ---
# /etc/systemd/system/custom-firewall-chains.service
[Unit] ## Forutsetninger
Description=Load custom iptables chains
RequiresMountsFor=/opt/firewall - Linux med `systemd` og `iptables`
[Service] - Root-tilgang (eller `sudo`)
Type=oneshot
ExecStart=/opt/firewall/load-chains.sh ---
[Install]
WantedBy=multi-user.target ## Mappestruktur i repoet
# /etc/systemd/system/custom-firewall-chains.service.d/override.conf
```
.
├── 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] [Unit]
Before=network-pre.target Before=network-pre.target
Wants=network-pre.target Wants=network-pre.target
tvh@ThinkBook16G6IRL:~/repos/ EOF
```
Over er system tjenesten som brukes for å laste inn scriptet når systemet bootes. ### 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] [Unit]
Requires=custom-firewall-chains.service Requires=custom-firewall-chains.service
After=custom-firewall-chains.service After=custom-firewall-chains.service
```
Over er det som trengs å skrive inn i overrides config for systemdtjenester for tjenester som bruker chains. Dette sikrer at `custom-firewall-chains.service` alltid kjører ferdig før den aktuelle tjenesten starter.
Det du skal gjøre er å skrive en README.md fil for dette som forklarer hvordan en annen person skal sette opp dette, hva de trenger å gjøre selv under repoet følger med systemtjeneste de trenger og de skal vite hvor de må flytte filene for å sy dette sammen. Og det i riktig rekkefølge. README.md skal være enkel å følge og enkel å forstå. ---
## 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` |