--- 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 ```