# have iptables[+ipset] automatically started at the boot time

## upengan78

Hi

I am having a small problem on my system to have iptables automatically started at the boot time. A few months ago, I had configured iptables with some ipset rules on a running system. That always works fine. The only problem is iptables don't start at boot time. May be due to ipset rules or may be something else is a problem.

Let me show the error and how I take care of this issue manually after system is fully booted.

```
 * Loading iptables state and starting firewall ...

iptables-restore v1.4.16.3: Set fullbogons-ipv4 doesn't exist.

Error occurred at line: 59

Try `iptables-restore -h' or 'iptables-restore --help' for more information.                                                                                                  [ !! ]

 * ERROR: iptables failed to start

```

Same error repeats when I try to manually start the iptables using iptables's init.d script.

The error message shows some relation to ipset. I run 'ipset list' nothing is in the o/p

```
#ipset list

#
```

After much troubleshooting , I fugred this file -  /var/tmp/fullbogons-ipv4/fullbogons-ipv4.txt needs to be removed. So I do 'rm /var/tmp/fullbogons-ipv4/fullbogons-ipv4.txt  ; /usr/local/sbin/fullbogons-ipv4 ; /usr/local/sbin/block' and there you go, the 'ipset list' shows me expected o/p of subnets/IPs.

Then I attempt to start iptables process, and that too starts fine now. So the problem seems to be the .txt file mentioned above.

Here is my set of INIT scripts.

rc-update show

```
              apache2 | default                                                    

              apcupsd | default                                                    

               auditd | default                                                    

                cupsd | default                                                    

                 dbus | default                                                    

                devfs |                                                     sysinit

                dmesg |                                                     sysinit

              dovecot | default                                                    

            ip6tables | default                                                    

             iptables | default                                                    

               iscsid | default                                                    

                jboss | default                                                    

            killprocs |                                     shutdown               

           lm_sensors | default                                                    

                local | default nonetwork                                          

              modules | default                                                    

             mount-ro |                                     shutdown               

                 mrtg | default                                                    

                 mtab | default                                                    

           munin-node | default                                                    

             net.eno1 | default                                                    

               net.lo | default                                                    

             netmount | default                                                    

                 ntop | default                                                    

           ntp-client | default                                                    

                ossec | default                                                    

              postfix | default                                                    

                 root | default                                                    

            rpc.statd | default                                                    

                samba | default                                                    

            savecache |                                     shutdown               

                slapd | default                                                    

                snmpd | default                                                    

            snmptrapd | default                                                    

                 sshd | default                                                    

                 swap | default                                                    

            syslog-ng | default                                                    

                 udev |                                                     sysinit

           udev-mount | default                                             sysinit

           vixie-cron | default                                                    

               vsftpd | default                                                    

               xinetd | default                                                    

                 xrdp | default         
```

I noticed, iptables start up is attempted before start-up of my external network interface eno1. I am not sure if that is going to be another issue when using iptables-ipset combination. However, having iptables started before network is I guess the best thing to do in order to ensure security in place before networking starts on the system.

My question is, has anyone seen something like this before when using iptables-ipset? Can someone recommend a fix to make iptables start at boot time? 

I have two scripts, update_bogons and update_block in /etc/cron.d to create the ipset blocks. And, this could also be an issue only with 'update_bogons' which calls for '/usr/local/sbin/fullbogons-ipv4'

/usr/local/sbin/fullbogons-ipv4 http://bpaste.net/show/88224/

Any help is appreciated.Last edited by upengan78 on Tue Apr 02, 2013 6:13 pm; edited 1 time in total

----------

## Bones McCracker

You just need to make sure ipset is up before iptables.  You can achieve that by using the dependency features of the initscripts (i.e., "before, after, needs, etc.).

----------

## upengan78

Thank you. I didn't note ipset wasn't configured to start at boot time. But again I didn't really know that ipset has a startup script. I never had to start it aswell, to have those blocks working with iptables.

Anyways, I have added ipset to default run-level now.

```
rc-update add ipset default. 

```

rc-status 

```
Runlevel: default

 udev-mount                                                                                                                                                           [  started  ]

 modules                                                                                                                                                              [  started  ]

 root                                                                                                                                                                 [  started  ]

 mtab                                                                                                                                                                 [  started  ]

 swap                                                                                                                                                                 [  started  ]

 syslog-ng                                                                                                                                                            [  started  ]

 net.lo                                                                                                                                                               [  started  ]

 slapd                                                                                                                                                                [  stopped  ]

 dbus                                                                                                                                                                 [  started  ]

 ipset                                                                                                                                                                [  stopped  ]

 ip6tables                                                                                                                                                            [  started  ]

 iptables                                                                                                                                                             [  started  ]

 net.eno1                                                                                                                                                             [  started  ]

...

```

Hopefully evertyhing will be fine the next time system gets rebooted. Thanks again!

----------

## John R. Graham

Split above three posts off from Efficiently use a live blacklist feed in iptables (w/ ipset).

- John

----------

