summary refs log tree commit diff
path: root/mugam-nftables-rules.conf
blob: 261a98b43dcaa8be65b6a25acd3edcb2b2927d83 (plain)
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
table inet firewall {
  chain input {
    # Drop all traffic by default.
    type filter hook input priority filter; policy drop;
    # Allow traffic from established connections, drop invalid.
    ct state vmap { established: accept, related: accept, invalid: drop }
    # Allow ping.
    icmp type echo-request accept
    # Allow loopback traffic.
    iifname lo accept
    # Allow
    # - ssh, http and https (for mugam itself)
    # - mumble for ragulkanth (5033)
    # - ssh for ragulkanth (10101)
    tcp dport {ssh, http, https, 5033, 10101} accept
    # Allow dns and wireguard.
    udp dport {domain, 51820} accept
  }
}

table ip nat {
  chain prerouting {
    type nat hook prerouting priority dstnat;
    # Forward ports to various services.
    # E-mail
    iifname eth0 tcp dport smtp dnat to $hrrol:8025
    iifname eth0 tcp dport pop3s dnat to $hrrol:8995
    iifname eth0 tcp dport smtps dnat to $hrrol:8465
    iifname eth0 tcp dport submission dnat to $hrrol:8587
    # XMPP
    iifname eth0 tcp dport {xmpp-client, xmpp-server} dnat to $hrrol
  }
  chain postrouting {
    type nat hook postrouting priority srcnat;
    # For all packets to and from the VPN and the WAN, replace source
    # address with public IP of WAN interface.
    oifname {eth0, wg0} masquerade
  }
}