156bc67e55e4d96b254d57bf3083a2aaf1fef688
Custom Firewall Chains
Et system for å laste egendefinerte iptables-kjeder (chains) inn i RAM ved oppstart, via en dedikert systemd-tjeneste.
Forutsetninger
- Linux med
systemdogiptables - 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:
- Lag et nytt script i
chains/-mappen, f.eks.chains/20-my-chain.sh - Kopier det til serveren:
sudo cp chains/20-my-chain.sh /opt/firewall/chains/ sudo chmod +x /opt/firewall/chains/20-my-chain.sh - 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 |
Languages
Shell
100%