IPTables - Schnelleinstieg: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 63: Zeile 63:
 
*cd /usr/local/sbin/
 
*cd /usr/local/sbin/
 
*vi firewall
 
*vi firewall
 +
'''#!/bin/bash'''
 +
  '''case $1 in'''
 +
  '''start)'''
 +
    '''echo "starte firewall"'''
 +
  ''';;'''
 +
  '''stop)'''
 +
    '''echo "stoppe firewall"'''
 +
  ''';;'''
 +
  '''*)'''
 +
    '''echo "usage: $0 start|stop"'''
 +
  ''';;'''
 +
'''esac'''
 +
 
<pre>
 
<pre>
 
#!/bin/bash
 
#!/bin/bash
 
case $1 in
 
case $1 in
 
  start)
 
  start)
   echo "start firewall"
+
   echo "starte firewall"
 
  ;;
 
  ;;
 
  stop)
 
  stop)
   echo "stop firewall"
+
   echo "stoppe firewall"
 
  ;;
 
  ;;
 
  *)
 
  *)
Zeile 77: Zeile 90:
 
esac
 
esac
 
</pre>
 
</pre>
 +
 
==Script ausführbar machen==
 
==Script ausführbar machen==
 
*chmod firewall
 
*chmod firewall

Version vom 20. November 2019, 19:58 Uhr

Iptables Funktionsweise

Iptables besteht aus:

  • Tabellen (tables)
  • Ketten (chains)
  • Filterregeln (rules)

Chains

filter

Die Tabelle filter prüft alle für die Firewall ankommenden Pakete und entscheidet ob sie durchgelassen oder geblockt werden.

nat

NAT wird benutzt um IP-Adressen oder Ports zu übersetzen/ändern (= Network Adress Translation).

mangle

Die Tabelle mangle (übersetzt: zerhauen) ermöglicht es dem Kernel, Daten im Paket-Header zu verändern.

Die filter Kette

Die Tabellen der filter Kette

  • FORWARD: für Pakte die über eine Schnittstelle hereinkommen, den Rechner auch wieder verlassen.
  • INPUT: für Pakete die über eine Schnittstelle hereinkommen und einen Dienst auf dem Rechner ansprechen
  • OUTPUT: für die über eine Schnittstelle herausgehenden Pakete, die von einem lokalen Dienst

Iptables-1.jpg

Die Filter Regeln der filter Kette

Regeln werden mit iptables erstellt und an Ziele geschickt.

Ziele der filter Kette

  • ACCEPT: das Paket kann passieren
  • REJECT: das Paket wird zurückgewiesen und ein Fehlerpaket wird gesendet
  • LOG: schreibt einen Eintrag in die syslog
  • DROP: das Paket wird ignoriert und keine Antwort gesendet

Syntax Allgemein

Die Momentan in der filter Tabelle gesetzten Ketten und Regeln sieht man mit

  • iptables -nvL -t filter
-L        # Listing
-t filter # anzeigen der filter Kette
-n        # numerical
-v        # verbose

Da -t filter Default ist, kann man es auch weglassen,

  • iptables -nvL -t filter

Funktionsweise

Die Regeln werden nacheinander abgearbeitet wenn eine Regel greift hört der Verarbeitungsprozess auf. Wenn keine greift wird die Default Policy angewandt.

filter table
INPUT OUTPUT FORWARD
rule 1 rule 1 rule 1
rule 2 rule 2 rule 2
rule 3 rule 3 rule 3
rule 4 rule 4 rule 4
rule 5 rule 5 rule 5
rule 6 rule 6 rule 6
POLICY POLICY POLICY

Firewallscript

Der Rumpf

Zuerst wird in dem firewall-Skript ein case start - stop Block angelegt:

  • cd /usr/local/sbin/
  • vi firewall
#!/bin/bash
 case $1 in
  start)
   echo "starte firewall"
  ;;
  stop)
   echo "stoppe firewall"
  ;;
  *)
   echo "usage: $0 start|stop"
  ;;
esac
#!/bin/bash
case $1 in
 start)
  echo "starte firewall"
 ;;
 stop)
  echo "stoppe firewall"
 ;;
 *)
  echo "usage: $0 start|stop" 
 ;;
esac

Script ausführbar machen

  • chmod firewall

Testen des Scripts

  • firewall start
  • firewall stop
  • firewall

Flushen aller vorhergehenden Regeln

#!/bin/bash
case $1 in
  start)
   echo "starte firewall"
   iptables -F   
   ;;
   stop)
    echo "stoppe firewall"
    iptables -F
    ;;
esac

Setzen der Default Policys

 #!/bin/bash
case $1 in
start)
echo "starte firewall"
iptables -F
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
;;
stop)
echo "stoppe firewall"
iptables -F
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
;;
esac