home       inleiding       sysadmin       services       links       bash       werk       nothing      

iptables at boot

 
Om een iptables uit te voeren bij startup van een server
kunnen we gebruik maken van iptables-persistent
https://linuxconfig.org/how-to-make-iptables-rules-persistent-after-reboot-on-linux
 
... maar er is een probleem met iptables-persistent
 
deze software kijkt alleen naar de huidige draaiende iptables-regels
en start ze op na boot. Als je echter een script schrijft in BASH met een aantal zaken die weinig te maken hebben met de iptables zelf, bijvoorbeeld: echo 1 > /proc/sys/net/ipv4/ip_forward, dan worden deze bash-only commands helemaal niet bewaard. ... en dus ook niet uitgevoerd door iptables persistent.
 
Een oplossing bestaat erin systemd jouw iptables-script als een service te draaien ...
 

  1. cre-eer een systemd-service-entry
     
    $ sudo vim /etc/systemd/system/thisiptables.service
     

    [Unit]
    After=network.target
    
    [Service]
    ExecStart=/etc/iptables/iptables.sh  
    
    [Install]
    WantedBy=default.target

     
    (het bovenstaande is hoofdlettergevoeling)
    ExecStart verwijst naar je correcte (laatste) iptables-script ...
     

  2. enable de thisiptables.service
     
    $ sudo systemctl daemon-reload
    (om systemd te informeren van een nieuwe daemon)
     
    $ sudo systemctl enable thisiptables.service
     
  3. start de thisiptables.service
     
    $ sudo systemctl start thisiptables.service
     
  4. doe een reboot en controleer of je script werd uitgevoerd ...