Firewall regel

Dieses Thema im Forum "Firewalls" wurde erstellt von Aruba, 10.12.2010.

  1. Aruba

    Aruba Grünschnabel

    Dabei seit:
    19.06.2010
    Beiträge:
    2
    Zustimmungen:
    0
    Guten Tag :)

    Ich hätte einige Fragen bezüglich eines Firewallscriptes das ich auch der debian seite gefunden hab.

    Code:
    Dies ist das Beispiel-Firewallskript: 
         #!/bin/sh
         # Simple example firewall configuration.
         #
         # Caveats:
         # - This configuration applies to all network interfaces
         #   if you want to restrict this to only a given 
         #   interface use '-i INTERFACE' in the 
         #   iptables calls.
         # - Remote access for TCP/UDP services is granted 
         #   to any host, you probably want to restrict 
         #   this using '--source'.
         #
         # chkconfig: 2345 9 91
         # description: Activates/Deactivates the firewall at boot time
         #
         # You can test this script before applying with the 
         # following shell snippet, if you do not type anything 
         # in 10 seconds the firewall rules will be cleared.
         #---------------------------------------------------------------
         #  while true; do test=""; read  -t 20 -p "OK? " test ; \
         #  [ -z "$test" ] && /etc/init.d/meineFirewall clear ; done
         #---------------------------------------------------------------
         
         PATH=/bin:/sbin:/usr/bin:/usr/sbin
         
         # Services that the system will offer to the network
         TCP_SERVICES="22" # SSH only
         UDP_SERVICES=""
         # Services the system will use from the network
         REMOTE_TCP_SERVICES="80" # web browsing
         REMOTE_UDP_SERVICES="53" # DNS
         # Network that will be used for remote mgmt
         # (if undefined, no rules will be setup)
         # NETWORK_MGMT=192.168.0.0/24
         # Port used for the SSH service, define this is you have setup a
         # management network but remove it from TCP_SERVICES
         # SSH_PORT="22"
         
         if ! [ -x /sbin/iptables ]; then  
             exit 0
         fi
         
         fw_start () {
         
           # Input traffic:
           /sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
           # Services
           if [ -n "$TCP_SERVICES" ] ; then
           for PORT in $TCP_SERVICES; do
             /sbin/iptables -A INPUT -p tcp --dport ${PORT} -j ACCEPT
           done
           fi
           if [ -n "$UDP_SERVICES" ] ; then
           for PORT in $UDP_SERVICES; do
             /sbin/iptables -A INPUT -p udp --dport ${PORT} -j ACCEPT
           done
           fi
           # Remote management
           if [ -n "$NETWORK_MGMT" ] ; then
             /sbin/iptables -A INPUT -p tcp --src ${NETWORK_MGMT} --dport ${SSH_PORT} -j ACCEPT
           else 
             /sbin/iptables -A INPUT -p tcp --dport ${SSH_PORT}  -j ACCEPT
           fi
           # Remote testing
           /sbin/iptables -A INPUT -p icmp -j ACCEPT
           /sbin/iptables -A INPUT -i lo -j ACCEPT
           /sbin/iptables -P INPUT DROP
           /sbin/iptables -A INPUT -j LOG
         
           # Output:
           /sbin/iptables -A OUTPUT -j ACCEPT -o lo 
           /sbin/iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
           # ICMP is permitted:
           /sbin/iptables -A OUTPUT -p icmp -j ACCEPT
           # So are security package updates:
           # Note: You can hardcode the IP address here to prevent DNS spoofing
           # and to setup the rules even if DNS does not work but then you 
           # will not "see" IP changes for this service:
           /sbin/iptables -A OUTPUT -p tcp -d security.debian.org --dport 80 -j ACCEPT
           # As well as the services we have defined:
           if [ -n "$REMOTE_TCP_SERVICES" ] ; then
           for PORT in $REMOTE_TCP_SERVICES; do
             /sbin/iptables -A OUTPUT -p tcp --dport ${PORT} -j ACCEPT
           done
           fi
           if [ -n "$REMOTE_UDP_SERVICES" ] ; then
           for PORT in $REMOTE_UDP_SERVICES; do
             /sbin/iptables -A OUTPUT -p udp --dport ${PORT} -j ACCEPT
           done
           fi
           # All other connections are registered in syslog
           /sbin/iptables -A OUTPUT -j LOG
           /sbin/iptables -A OUTPUT -j REJECT 
           /sbin/iptables -P OUTPUT DROP
           # Other network protections
           # (some will only work with some kernel versions)
           echo 1 > /proc/sys/net/ipv4/tcp_syncookies
           echo 0 > /proc/sys/net/ipv4/ip_forward 
           echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts 
           echo 1 > /proc/sys/net/ipv4/conf/all/log_martians 
           echo 1 > /proc/sys/net/ipv4/ip_always_defrag
           echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
           echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter
           echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects
           echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route
         
         }
         
         fw_stop () {
           /sbin/iptables -F
           /sbin/iptables -t nat -F
           /sbin/iptables -t mangle -F
           /sbin/iptables -P INPUT DROP
           /sbin/iptables -P FORWARD DROP
           /sbin/iptables -P OUTPUT ACCEPT
         }
         
         fw_clear () {
           /sbin/iptables -F
           /sbin/iptables -t nat -F
           /sbin/iptables -t mangle -F
           /sbin/iptables -P INPUT ACCEPT
           /sbin/iptables -P FORWARD ACCEPT
           /sbin/iptables -P OUTPUT ACCEPT
         }
         
         
         case "$1" in
           start|restart)
             echo -n "Starting firewall.."
             fw_stop 
             fw_start
             echo "done."
             ;;
           stop)
             echo -n "Stopping firewall.."
             fw_stop
             echo "done."
             ;;
           clear)
             echo -n "Clearing firewall rules.."
             fw_clear
             echo "done."
             ;;
           *)
             echo "Usage: $0 {start|stop|restart|clear}"
             exit 1
             ;;
           esac
         exit 0
    Es erscheint eine Fehlermeldung:

    Code:
    Starting firewall..iptables v1.4.2: invalid port/service `-j' specified
    Try `iptables -h' or 'iptables --help' for more information.
    done.
    Ich schätze, dass es sich um den teil handelt
    Code:
           if [ -n "$REMOTE_TCP_SERVICES" ] ; then
           for PORT in $REMOTE_TCP_SERVICES; do
             /sbin/iptables -A OUTPUT -p tcp --dport ${PORT} -j ACCEPT
           done
    Außerdem, sollte man nicht eig. auch den PORT 80 reinlassen und nicht NUR rauslassen?
    wenn man jetzt eine internet seite aufruft, muss man ja erst rein bevor man was rausschicken kann oder^^

    Vielen dank für die antworten schonmal :)
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. Jimini

    Jimini Grünschnabel

    Dabei seit:
    30.01.2012
    Beiträge:
    3
    Zustimmungen:
    0
    Das Skript ist für ein System gedacht, das auf Port 22 lauscht (also SSH nach außen anbietet) und von sich aus Verbindungen zu Port 53 und 80 nach außen aufbauen kann.

    MfG Jimini

    P.S.: mit Verlaub: das Skript ist höllisch unübersichtlich. Klar, jedem ist selbst überlassen, wie er seine iptables-Skripts gestaltet, aber dieses Skript wirkt auf mich eher wie auf Teufel komm raus auf professionell getrimmt. Da macht eine Fehlersuche dann wenig Spaß. Ich persönlich baue meine Skripts so auf, dass ich anfangs Kernelparameter setze, dann Variablen ($lan, $wan, $clients etc.) definiere, dann die Policy festlege und dann zu den eigentlichen Firewallregeln komme. Ganz am Ende kommen dann noch ein paar Logginggeschichten und ggf. Traffic Shaping.

    P.P.S.: habe jetzt erst gesehen, dass dieser als einer der oberen Threads des Subforums aus 2010(!) war. Mea culpa.
     
  4. Akendo

    Akendo 4k3nd0

    Dabei seit:
    05.02.2008
    Beiträge:
    396
    Zustimmungen:
    0
    Ziemlich aufwendig gemacht. Vielleicht hast du einen genaueren Link? Dazu kann man nicht sagen an welcher Zeile er gerade versagt. Pack mal ein paar print "Now here" hinzu. Damit man etwas genau sieht wo du bist.
    Ansonsten einfach mal fw_stop () ausfuhren und den Code Zeile fuer Zeile durch gehen.

    so far
    MFG 4k3nd0
     
Thema:

Firewall regel

Die Seite wird geladen...

Firewall regel - Ähnliche Themen

  1. Firewall-Regeln

    Firewall-Regeln: Hi, erstmals vorweg bin ein absoluter Neueinsteiger in SachenOpenBSD. Zu meinem Netzwerk: Habe auf einem Rechner einen Proxy und E-Mail-Server...
  2. Firewallregeln um PPTP zu Routen

    Firewallregeln um PPTP zu Routen: Ich habe einen Windows 2003 Server mit der privaten IP 192.168.30.34. Geschützt wird dieser durch einen Linuxrechner, der eine öffentliche IP...
  3. Firewall pfSense 2.3 erschienen

    Firewall pfSense 2.3 erschienen: Version 2.3 der auf FreeBSD beruhenden Firewall-Distribution pfSense bringt unter anderem eine noch einmal neu geschriebene Weboberfläche und eine...
  4. DNS, DNS-Crypt und Firewall

    DNS, DNS-Crypt und Firewall: Hallo! Ich bin gerade wieder an meiner Hardware-Firewall dran und drehe ein paar Hähne enger zu. Da kam mir die Frage mit dem DNS auf. Ich habe...
  5. Firewall Smoothwall Express 3.1 veröffentlicht

    Firewall Smoothwall Express 3.1 veröffentlicht: Die Entwickler der Smoothwall-Gemeinschaft haben ihre freie Firewalldistribution Smoothwall Express in der Version 3.1 veröffentlicht. Smoothwall...