Iptables Grundgerüst Firewall: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 13: Zeile 13:
  
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 +
#!/bin/bash
  
 +
LANDEV="enp0s3"
 +
WANDEV="enp0s8"
 +
 +
iptables -F
 +
iptables -F -t nat
 +
iptables -F -t mangle
 +
 +
iptables -P INPUT DROP
 +
iptables -A INPUT -i lo -j ACCEPT
 +
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
 +
iptables -A INPUT -i $LANDEV -s 192.168.178.0/24 -p tcp --dport 22 -j ACCEPT
 +
iptables -A INPUT -j LOG --log-prefix "iptables drop INPUT:"
 +
 +
iptables -P OUTPUT DROP
 +
iptables -A OUTPUT -o lo -j ACCEPT
 +
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
 +
iptables -A OUTPUT -j LOG --log-prefix "iptables drop OUTPUT:"
 +
 +
iptables -P FORWARD DROP
 +
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
 +
iptables -A FORWARD -j LOG --log-prefix "iptables drop FORWARD:"
 +
 +
iptables -t nat -A POSTROUTING -o $WANDEV -j MASQUERADE
 
</syntaxhighlight>
 
</syntaxhighlight>
  

Version vom 17. September 2024, 21:38 Uhr

Eigenschaften der Firewall

  • Der Host darf mit sich selbst kommunizieren
  • Pings werden vom Host beantwortet
  • Remotezugriff über den SSH Port aus dem LAN (192.168.178.0/24) ist freigeschaltet
  • Bereits etablierte und verwandte Verbindungen werden zugelassen
  • Auf Pakete, die das WAN-Interface verlassen, wird Masquerading angewendet
  • Verworfene Pakete werden ins Kernel-log geschrieben

Shell-Skript

  • Das Skript sollte als Nutzer root erstellt werden, da iptables erhöhte Rechte zu ausführen benötigt
  • vim /usr/local/sbin/basic-firewall
#!/bin/bash

LANDEV="enp0s3"
WANDEV="enp0s8"

iptables -F
iptables -F -t nat
iptables -F -t mangle

iptables -P INPUT DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i $LANDEV -s 192.168.178.0/24 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -j LOG --log-prefix "iptables drop INPUT:"

iptables -P OUTPUT DROP
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -j LOG --log-prefix "iptables drop OUTPUT:"

iptables -P FORWARD DROP
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -j LOG --log-prefix "iptables drop FORWARD:"

iptables -t nat -A POSTROUTING -o $WANDEV -j MASQUERADE
  • chmod +x /usr/local/sbin/basic-firewall
  • basic-firewall
  • Diese Einstellungen sind nur temporär und Verschwinden nach einem Neustart des Hosts