Stateful Firewall vs. Stateless Firewall
Zur Navigation springen
Zur Suche springen
ipchains Client-Only Firewall (strenger Block)
Ziel
- Default Policy DENY
- Nur ausgehende TCP-Verbindungen zu 80, 443, 993, 25
- Antwortverkehr nur von diesen Ports
- Nur Ephemeral-Zielports (1024–65535)
- Keine pauschalen ! -y Regeln
Reset und Default Policies
- ipchains -F
- ipchains -P input DENY
- ipchains -P output DENY
- ipchains -P forward DENY
Loopback erlauben
- ipchains -A input -i lo -j ACCEPT
- ipchains -A output -i lo -j ACCEPT
Ausgehende Verbindungen (strikt mit Ephemeral Source Ports)
- ipchains -A output -p tcp --sport 1024:65535 --dport 80 -j ACCEPT
- ipchains -A output -p tcp --sport 1024:65535 --dport 443 -j ACCEPT
- ipchains -A output -p tcp --sport 1024:65535 --dport 993 -j ACCEPT
- ipchains -A output -p tcp --sport 1024:65535 --dport 25 -j ACCEPT
Eingehende Antworten (kein reines SYN, nur erlaubte Service-Ports)
- ipchains -A input -p tcp ! -y --sport 80 --dport 1024:65535 -j ACCEPT
- ipchains -A input -p tcp ! -y --sport 443 --dport 1024:65535 -j ACCEPT
- ipchains -A input -p tcp ! -y --sport 993 --dport 1024:65535 -j ACCEPT
- ipchains -A input -p tcp ! -y --sport 25 --dport 1024:65535 -j ACCEPT
Ergebnis
- Nur definierte Client-Verbindungen erlaubt
- Keine eingehenden neuen TCP-Verbindungen möglich
- Antwortverkehr nur passend zu erlaubten Zielports
- Maximal saubere Umsetzung innerhalb der ipchains-Architektur
iptables Client-Only Firewall (stateful, sauber)
Ziel
- Default Policy DROP
- Nur ausgehende TCP-Verbindungen zu 80, 443, 993, 25
- Antwortverkehr ausschließlich ESTABLISHED,RELATED
- Keine Pseudo-State-Tricks notwendig
Reset und Default Policies
- iptables -F
- iptables -X
- iptables -P INPUT DROP
- iptables -P OUTPUT DROP
- iptables -P FORWARD DROP
Loopback erlauben
- iptables -A INPUT -i lo -j ACCEPT
- iptables -A OUTPUT -o lo -j ACCEPT
Bereits bestehende Verbindungen erlauben
- iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
- iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
Neue ausgehende Verbindungen erlauben
- iptables -A OUTPUT -p tcp --dport 80 -m conntrack --ctstate NEW -j ACCEPT
- iptables -A OUTPUT -p tcp --dport 443 -m conntrack --ctstate NEW -j ACCEPT
- iptables -A OUTPUT -p tcp --dport 993 -m conntrack --ctstate NEW -j ACCEPT
- iptables -A OUTPUT -p tcp --dport 25 -m conntrack --ctstate NEW -j ACCEPT
Ergebnis
- Nur definierte Client-Verbindungen möglich
- Keine eingehenden neuen TCP-Verbindungen
- Antwortverkehr nur für tatsächlich bestehende Sessions
- Echtes Stateful Filtering durch Conntrack