]> git.phdru.name Git - ansible.git/blob - playbooks/roles/redhat/firewall/files/etc/rc.d/init.d/nftables.sh
Feat(firewall): Switch to `nftables`
[ansible.git] / playbooks / roles / redhat / firewall / files / etc / rc.d / 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       systemctl stop fail2ban.service
18
19       # Start afresh
20       nft flush
21
22       # Default policies
23       nft create table ip filter
24       nft create table ip nat
25       nft create chain ip nat prerouting { type nat hook preroutung priority 0; policy accept; }
26       nft create chain ip nat postrouting { type nat hook postroutung priority 0; policy accept; }
27       nft create chain ip filter input { type filter hook input priority 0; policy drop; }
28       nft create chain ip filter output { type filter hook output priority 0; policy accept; }
29       nft create chain ip filter forward { type filter hook forward priority 0; policy drop; }
30
31       start_firewall
32       /etc/rc.d/init.d/rc.masq
33       systemctl start fail2ban.service
34    ;;
35
36    stop)
37       systemctl stop fail2ban.service
38
39       nft flush
40       nft create chain ip filter input { type filter hook input priority 0; policy drop; }
41       nft create chain ip filter output { type filter hook output priority 0; policy drop; }
42       nft create chain ip filter forward { type filter hook forward priority 0; policy drop; }
43    ;;
44
45    clear)
46       systemctl stop fail2ban.service
47
48       # Flush (delete) all rules
49       nft flush
50       nft create chain ip filter input { type filter hook input priority 0; policy accept; }
51       nft create chain ip filter output { type filter hook output priority 0; policy accept; }
52       nft create chain ip filter forward { type filter hook forward priority 0; policy accept; }
53    ;;
54
55    *)
56       echo "Usage: firewall {start|stop|clear}"
57       exit 1
58 esac
59
60 exit 0