Vor kurzem habe ich auf meinem Debian-Server wieder ein OpenVPN eingerichtet. Daher wollte ich eine der iptables-Regel persistent speichern. Dafür habe ich das Paket iptables-persistent installiert. Leider ist dessen Start-Script nicht so perfekt…

Daher habe ich das folgende Script in /etc/init.d/iptable-persistent installiert, welches ich von hier abgeschaut habe. Jedoch habe ich einige Änderungen vorgenommen, daher hier meine Version:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#!/bin/sh
# Written by Simon Richter
#
### BEGIN INIT INFO
# Provides: iptables
# Required-Start: mountkernfs $local_fs
# Required-Stop: $local_fs
# Default-Start: S
# Default-Stop:
# Short-Description: Set up iptables rules
### END INIT INFO

PATH="/sbin:/bin:/usr/sbin:/usr/bin"

case "$1" in
 start)
 if [ -e /var/run/iptables ]; then
 echo "iptables is already started!"
 exit 1
 else
 touch /var/run/iptables
 fi

 # Load saved rules
 if [ -f /etc/iptables/rules ]; then
 iptables-restore /etc/iptables/rules

 # Restore Default Policies
 iptables -P INPUT ACCEPT
 iptables -P FORWARD ACCEPT
 iptables -P OUTPUT ACCEPT

 # Flush rules on default tables
 iptables -F
 iptables -t nat -F
 iptables -t mangle -F

 ;;
 restart|force-reload)
 $0 stop
 $0 start
 ;;
 status)
 echo "Filter Rules:"
 echo "--------------"
 iptables -L -v
 echo ""
 echo "NAT Rules:"
 echo "-------------"
 iptables -t nat -L -v
 echo ""
 echo "Mangle Rules:"
 echo "----------------"
 iptables -t mangle -L -v
 ;;
 *)
 echo "Usage: $0 {start|stop|force-stop|restart|force-reload|status}" >&2
 exit 1
 ;;
esac

exit 0