Das Firewall-Script

  #!/bin/bash

  EXTERN_INTERFACE=eth0    # Unsere Netzschnittstelle
  LOOP_INTERFACE=lo        # Das Loopback Interface  
  IPADDR=10.230.1.100      # Unsere IP-Adresse
  ANYWHERE=any/0           # Jede Adresse im Netz
  MYNET=10.230.1.0/24      # Unsere Netzadresse  
  UNPRIVPORTS=1024:65535   # Die unprivilegierten Ports

  # Löschen aller Regeln
  ipchains -F

  # Grund-Policies setzen
  ipchains -P input    DENY
  ipchains -P output   DENY
  ipchains -P forward  DENY 

  # Loopback Interface grundsätzlich freigeben
  ipchains -A input  -i $LOOP_INTERFACE -j ACCEPT
  ipchains -A output -i $LOOP_INTERFACE -j ACCEPT
 
  # ICMP grundsätzlich erlauben
  ipchains -A input -i $EXTERN_INTERFACE -p icmp -j ACCEPT
  ipchains -A output -i $EXTERN_INTERFACE -p icmp -j ACCEPT

  # DNS Zugriff (UDP Port 53) für alle freigeben
  ipchains -A output -i $EXTERN_INTERFACE -p udp\
           -s $IPADDR $UNPRIVPORTS \
           -d $ANYWHERE 53 -j ACCEPT

  ipchains -A input -i $EXTERN_INTERFACE -p udp\
           -s $ANYWHERE 53 \
           -d $IPADDR $UNPRIVPORTS -j ACCEPT


  # HTTP
  ipchains -A output -i $EXTERN_INTERFACE -p tcp\
           -s $IPADDR $UNPRIVPORTS \
           -d $ANYWHERE 80 -j ACCEPT

  ipchains -A input -i $EXTERN_INTERFACE -p tcp ! -y\
           -s $ANYWHERE 80 \
           -d $IPADDR $UNPRIVPORTS -j ACCEPT


  # HTTP mit SSL
  ipchains -A output -i $EXTERN_INTERFACE -p tcp\
           -s $IPADDR $UNPRIVPORTS \
           -d $ANYWHERE 443 -j ACCEPT

  ipchains -A input -i $EXTERN_INTERFACE -p tcp ! -y\
           -s $ANYWHERE 443 \
           -d $IPADDR $UNPRIVPORTS -j ACCEPT



  # Lokaler HTTP-Server bedient Webclients im lokalen Netz
  ipchains -A input -i $EXTERN_INTERFACE -p tcp\
           -s $MYNET $UNPRIVPORTS \
           -d $IPADDR 80 -j ACCEPT 

  ipchains -A output -i $EXTERN_INTERFACE -p tcp ! -y\
           -s $IPADDR 80 \          
           -d $MYNET $UNPRIVPORTS -j ACCEPT

  # Lokaler FTP-Client an fremden Server
  ipchains -A output -i $EXTERN_INTERFACE -p tcp \
           -s $IPADDR $UNPRIVPORTS\ 
           -d $ANYWHERE 21 -j ACCEPT

  ipchains -A input -i $EXTERN_INTERFACE -p tcp ! -y \
           -s $ANYWHERE 21\
           -d $IPADDR $UNPRIVPORTS -j ACCEPT

  ipchains -A input -i $EXTERN_INTERFACE -p tcp\
           -s $ANYWHERE 20\
           -d $IPADDR $UNPRIVPORTS -j ACCEPT

  ipchains -A output -i $EXTERN_INTERFACE -p tcp ! -y\
           -s $IPADDR $UNPRIVPORTS\ 
           -d $ANYWHERE 20 -j ACCEPT

  ipchains -A output -i $EXTERN_INTERFACE -p tcp\
           -s $IPADDR $UNPRIVPORTS\
           -d $ANYWHERE $UNPRIVPORTS -j ACCEPT

  ipchains -A input -i $EXTERN_INTERFACE -p tcp ! -y\
           -s $ANYWHERE  $UNPRIVPORTS\
           -d $IPADDR $UNPRIVPORTS -j ACCEPT

Schreibe einen Kommentar