77 lines
2 KiB
Markdown
77 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
|
||
|
```
|