1
0
Fork 0
knowledge-base/KB/Linux/Desktop/Firewall.md

76 lines
2 KiB
Markdown

---
creation date: 2023-04-10
tags: [note,firewall,iptables,linux]
---
Change `icmp` to `icmp -j REJECT` to not allow `ping` command.
## IPv4
Put into `/etc/iptables/iptables.rules`. Pay attention to blank line at the end.
```shell
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
:TCP - [0:0]
:UDP - [0:0]
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m conntrack --ctstate INVALID -j DROP
-A INPUT -p icmp -m icmp --icmp-type 8 -m conntrack --ctstate NEW -j ACCEPT
-A INPUT -p udp -m conntrack --ctstate NEW -j UDP
-A INPUT -p tcp --tcp-flags FIN,SYN,RST,ACK SYN -m conntrack --ctstate NEW -j TCP
-A INPUT -p udp -j REJECT --reject-with icmp-port-unreachable
-A INPUT -p tcp -j REJECT --reject-with tcp-reset
-A INPUT -j REJECT --reject-with icmp-proto-unreachable
COMMIT
```
Enable `iptables.service`. Verify result with `sudo iptables -S`.
Add `4713` (pulseaudio) rule if necessary.
```shell
-A INPUT -m state --state NEW -m tcp -p tcp --dport 4713 -j ACCEPT
```
## IPv6
Put into `/etc/iptables/ip6tables.rules`. Pay attention to blank line at the end.
```shell
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
:TCP - [0:0]
:UDP - [0:0]
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m conntrack --ctstate INVALID -j DROP
-A INPUT -s fe80::/10 -p ipv6-icmp -j ACCEPT
-A INPUT -p udp --sport 547 --dport 546 -j ACCEPT
-A INPUT -p udp -m conntrack --ctstate NEW -j UDP
-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -m conntrack --ctstate NEW -j TCP
-A INPUT -p udp -j REJECT --reject-with icmp6-adm-prohibited
-A INPUT -p tcp -j REJECT --reject-with tcp-reset
-A INPUT -j REJECT --reject-with icmp6-adm-prohibited
-A INPUT -p ipv6-icmp -m icmp6 --icmpv6-type 128 -m conntrack --ctstate NEW -j ACCEPT
COMMIT
```
Enable `ip6tables.service`. Verify result with `sudo ip6tables -S`.
Add `4713` (pulseaudio) rule if necessary.
```shell
-A INPUT -m state --state NEW -m tcp -p tcp --dport 4713 -j ACCEPT
```