]> git.phdru.name Git - ansible.git/blob - playbooks/roles/debian/firewall/files/etc/init.d/nftables.sh
Feat(firewall): Switch to `nftables`
[ansible.git] / playbooks / roles / debian / firewall / files / etc / init.d / nftables.sh
1 #!/bin/sh
2 ### BEGIN INIT INFO
3 # Provides:          nftables.sh
4 # Required-Start: $remote_fs $network
5 # Required-Stop:  $remote_fs
6 # Default-Start:     2 3 4 5
7 # Default-Stop:      0 1 6
8 # Short-Description: nftables firewall
9 ### END INIT INFO
10
11 # Setup ip firewall
12
13 . /etc/network/functions.phd
14
15 case "$1" in
16    start)
17       /etc/init.d/fail2ban stop
18
19       # Start afresh
20       nft flush ruleset
21
22       # Default policies
23       nft add table ip filter
24       nft add table ip nat
25       nft add chain ip nat prerouting \{ type nat hook prerouting priority dstnat\; policy accept\; \}
26       nft add chain ip nat postrouting \{ type nat hook postrouting priority srcnat\; policy accept\; \}
27       nft add chain ip filter input \{ type filter hook input priority filter\; policy drop\; \}
28       nft add chain ip filter output \{ type filter hook output priority filter\; policy accept\; \}
29       nft add chain ip filter forward \{ type filter hook forward priority filter\; policy drop\; \}
30
31       start_firewall
32       /etc/init.d/rc.masq
33       /etc/init.d/fail2ban start
34    ;;
35
36    stop)
37       /etc/init.d/fail2ban stop
38
39       nft flush ruleset
40       nft add chain ip filter input \{ type filter hook input priority filter\; policy drop\; \}
41       nft add chain ip filter output \{ type filter hook output priority filter\; policy drop\; \}
42       nft add chain ip filter forward \{ type filter hook forward priority filter\; policy drop\; \}
43    ;;
44
45    clear)
46       /etc/init.d/fail2ban stop
47
48       # Flush (delete) all rules
49       nft flush ruleset
50       nft add chain ip filter input \{ type filter hook input priority filter\; policy accept\; \}
51       nft add chain ip filter output \{ type filter hook output priority filter\; policy accept\; \}
52       nft add chain ip filter forward \{ type filter hook forward priority filter\; policy accept\; \}
53    ;;
54
55    *)
56       echo "Usage: firewall {start|stop|clear}"
57       exit 1
58 esac
59
60 exit 0