Whenever I run a command like
ufw allow 22, ufw automatically adds the firewall rules to both ipv4 and ipv6. If I want to only open a port on ipv4, is there a way to do so? Something like
ufw allow 22 proto ipv4.
You just have to use the fuller syntax and specify an address (range).
For example, allow connections to TCP port 22 on all IPv4 addresses:
ufw allow proto tcp to 0.0.0.0/0 port 22
I would edit the ufw config file itself to turn off IPv6:
sudo nano /etc/default/ufw
Change the line that says:
IPV6=no then restart the ufw service. You can even run
sudo ufw reload if the ufw instance is already enabled.
This worked for me to ensure that all the rules I add are only added to IPv4.
Maybe only by subnet:
sudo ufw allow proto tcp from 192.168.0.0/24 to any port 22