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

3.0 KiB
Raw Blame History

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

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

sudo cp systemd/custom-firewall-chains.service /etc/systemd/system/

Opprett deretter override-mappen og konfigurer at tjenesten kjører før nettverket starter:

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

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

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:
    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:
    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:

sudo systemctl edit <tjenestenavn>.service

Legg inn:

[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