#Firewalls

Control network traffic to protect systems.


#UFW (Ubuntu)

bash
1# Enable firewall
2sudo ufw enable
3
4# Allow SSH (important!)
5sudo ufw allow 22
6
7# Allow HTTP/HTTPS
8sudo ufw allow 80
9sudo ufw allow 443
10
11# Allow from specific IP
12sudo ufw allow from 192.168.1.100
13
14# Deny port
15sudo ufw deny 23
16
17# Check status
18sudo ufw status verbose

#firewalld (RHEL/CentOS)

bash
1# Enable
2sudo systemctl enable --now firewalld
3
4# Add services
5sudo firewall-cmd --add-service=http --permanent
6sudo firewall-cmd --add-service=https --permanent
7
8# Add port
9sudo firewall-cmd --add-port=8080/tcp --permanent
10
11# Reload
12sudo firewall-cmd --reload
13
14# List rules
15sudo firewall-cmd --list-all

#iptables

bash
1# List rules
2sudo iptables -L -n -v
3
4# Allow port
5sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
6
7# Block IP
8sudo iptables -A INPUT -s 192.168.1.100 -j DROP
9
10# Save rules
11sudo iptables-save > /etc/iptables/rules.v4

#Best Practices

  1. Default deny incoming
  2. Allow only necessary ports
  3. Allow established connections
  4. Log dropped packets
  5. Backup rules before changes