NoPaste

firewallregel feldmaus 20160110

von feldmaus

SNIPPET_TEXT:
  1. #! /bin/bash
  2. #################################################################################
  3. #Author: Markus Feldmann
  4. #
  5. # Filterregeln fuer IP-Packete
  6. #
  7. # Grundsaetzlicher Aufbau unseres Netzwerkes wird unten angezeigt.
  8. # Die Pfeile geben die Richtung an von wo nach wo welche Verbindung ist,
  9. # mit der Bezeichnung die auch in diesem Script verwendet wird.
  10. #
  11. # Das Skript kann wie folgt auferufen werden:
  12. #       firewalldsl start pppp0 br0
  13. #
  14. #
  15. # Dieses Skript ist speziell fuer das Netzwerk Device welches
  16. # sich ueber das DSL Modem mit dem Internet verbindet.
  17. #
  18. #
  19. #
  20. #                                   ext-fw
  21. #               <-----------------------------------------------
  22. #
  23. #                                   int-fw
  24. #               ------------------------------------------------>
  25. #
  26. #  feld-bert _____
  27. #                 \
  28. #                  \______<--LAN(ueber br0)__Feld-server__-->WAN(ueber ppp0)__
  29. #                  /
  30. # feld-drizzt ____/
  31. #                   int-in                              dsl-out
  32. #       -------------------------------------->     ------------------->
  33. #
  34. #                   int-out                             dsl-in
  35. #       <--------------------------------------     <-------------------
  36. #
  37. #                  int-int-fw
  38. # feld-bert   ------------------------------->\
  39. #                                             |
  40. # feld-driztt <-------------------------------/
  41. #                                            
  42. #################################################################################
  43. #
  44. # TODO:
  45. # +DSLNET bei Verteilung der Packete auf die eigene Chains
  46. #  einbauen.
  47. # +Alle firewall wenden Policies auf die eigenen Chains an, dies ist
  48. #  nicht moeglich.
  49. #
  50. #################################################################################
  51. #
  52. # Features:
  53. #
  54. # +Es koennen mehrere Interfaces aktiv sein mit eigenen
  55. #  iptables. Durch das hoch und runterfahren dieser Interfaces
  56. #  duerfen die anderen iptables nicht beeintraechtigt werden.
  57. #
  58.  
  59.  
  60. #################################################################################
  61. # Firewall herunterfahren
  62. #################################################################################
  63. function stoppefirewall() {
  64.         # Zu restriktive Policies (DROP) hindern das System am Runterfahren
  65.         # oder Neustarten. Auch koennen neue Netzwerke nicht eingerichtet werden.
  66.         echo -e "\nErstmal alles erlauben in den Haupt Chains."
  67.         iptables -P INPUT ACCEPT
  68.         iptables -P OUTPUT ACCEPT
  69.         iptables -P FORWARD ACCEPT
  70.         echo -e "\nAlle regeln loeschen."
  71.         iptables --flush
  72.         echo -e "\nLoeschen der eigenen Chains."
  73.         iptables --delete-chain
  74.         echo -e "\nKeine Pakete weiterreichen."
  75.         echo 0 >/proc/sys/net/ipv4/ip_forward
  76. }
  77.  
  78.  
  79. #################################################################################
  80. # Firewall hochfahren
  81. #################################################################################
  82. function startefirewall() {
  83.  
  84.         #################################################################################
  85.         # Grundeinstellungen, Variablen und Konstanten
  86.         #################################################################################
  87.         DSLIF=$2
  88.         LANIF=$3
  89.         DSLIP=`ip addr show dev $DSLIF | sed -n -e 's/^\ *inet\ \([0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}.[0-9]\{1,3\}\).*/\1/p'`
  90.         DSLMASK=`ip addr show dev $DSLIF | sed -n -e 's/^\ *inet\ .*\/\([0-9]\{1,2\}\).*/\1/p'`
  91.         DSLNET=$DSLIP/$DSLMASK
  92.         LANIP=`ip addr show dev $LANIF | sed -n -e 's/^\ *inet\ \([0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}.[0-9]\{1,3\}\).*/\1/p'`
  93.         LANMASK=`ip addr show dev $LANIF | sed -n -e 's/^\ *inet\ .*\/\([0-9]\{1,2\}\).*/\1/p'`
  94.         LANNET=$LANIP/$LANMASK
  95.         logger -p daemon.info "FW(START): DSLIP=<$DSLIP>, DSLMASK=<$DSLMASK>, LANIP=<$LANIP>, LANMASK=<$LANMASK>."
  96.         let MLPORTCLIENT=4662
  97.         let MLPORTSERVER=$MLPORTCLIENT+4
  98.  
  99.         #################################################################################
  100.         # Iptables Regeln
  101.         #################################################################################
  102.         logger -p daemon.info "FW: Default Policy DROP."
  103.         iptables -P INPUT DROP
  104.         iptables -P OUTPUT DROP
  105.         iptables -P FORWARD DROP
  106.  
  107.         logger -p daemon.info "FW: Alle Regeln in den Chains geloescht."
  108.         iptables --flush
  109.  
  110.         logger -p daemon.info "FW: Eigene Chains geloescht."
  111.         iptables --delete-chain
  112.  
  113.         logger -p daemon.info "FW: Regeln fuer gespoofte Packete."
  114.         iptables -A INPUT ! -i lo -s 127.0.0.1 -m limit --limit 3/s -j LOG --log-level warning --log-prefix "Loopback gespooft: "
  115.         iptables -A INPUT ! -i lo -s 127.0.0.1 -j DROP
  116.         iptables -A FORWARD ! -i lo -s 127.0.0.1 -m limit --limit 3/s -j LOG --log-level warning --log-prefix "Loopback gespooft: "
  117.         iptables -A FORWARD ! -i lo -s 127.0.0.1 -j DROP
  118.  
  119.         logger -p daemon.info "FW: Regeln fuer Ident Anfragen."
  120.         iptables -A INPUT ! -i lo -p tcp --dport 113 -m limit --limit 3/s -j LOG --log-level info --log-prefix "IDENT Anfrage: "
  121.         iptables -A INPUT ! -i lo -p tcp --dport 113 -j REJECT
  122.  
  123.         logger -p daemon.info "FW: Loopback erlauben."
  124.         iptables -A INPUT -i lo -j ACCEPT
  125.         iptables -A OUTPUT -o lo -j ACCEPT
  126.  
  127.         if \
  128.         iptables -N attacksinput && \
  129.         iptables -A INPUT -i "$DSLIF" -j attacksinput && \
  130.         iptables -A attacksinput -m conntrack --ctstate ESTABLISHED,RELATED -j RETURN && \
  131.         #iptables -A attacksinput -m recent --rcheck -m hashlimit --hashlimit-name attacksin_bl --hashlimit-upto 6/hour --hashlimit-burst 20 --hashlimit-mode srcip -j LOG --log-level info --log-prefix "attacksinput(bl): " && \
  132.         iptables -A attacksinput -m recent --update --seconds 600 -j DROP && \
  133.         iptables -A attacksinput -p tcp -m conntrack --ctstate NEW -m multiport --dports 1:79,81:442,444:65535 -m hashlimit --hashlimit-name attacksinnot_80 --hashlimit-upto 20/second --hashlimit-burst 20 --hashlimit-mode srcip --hashlimit-srcmask 28 -j LOG --log-level info --log-prefix "attacksinput(!80): " && \
  134.         iptables -A attacksinput -p tcp -m conntrack --ctstate NEW -m multiport --dports 1:79,81:442,444:65535 -m recent --set -j DROP && \
  135.         iptables -A attacksinput -p tcp -m conntrack --ctstate NEW -m hashlimit --hashlimit-name http --hashlimit-upto 5/second --hashlimit-burst 20 --hashlimit-mode srcip --hashlimit-srcmask 28 --dport 80 -j ACCEPT && \
  136.         iptables -A attacksinput -p tcp -m conntrack --ctstate NEW,DNAT -m hashlimit --hashlimit-name https --hashlimit-upto 5/second --hashlimit-burst 20 --hashlimit-mode srcip --hashlimit-srcmask 28 --dport 443 -j ACCEPT && \
  137.         iptables -A attacksinput -p icmp --icmp-type 8 -j RETURN && \
  138.         iptables -A attacksinput -m conntrack --ctstate NEW -m hashlimit --hashlimit-name attacksin_new --hashlimit-upto 5/second --hashlimit-burst 20 --hashlimit-mode srcip --hashlimit-srcmask 28 -j LOG --log-level info --log-prefix "attacksinput(NEW): " && \
  139.         iptables -A attacksinput -m conntrack --ctstate INVALID -m hashlimit --hashlimit-name attacksin_inv --hashlimit-upto 5/second --hashlimit-burst 20 --hashlimit-mode srcip --hashlimit-srcmask 28 -j LOG --log-level info --log-prefix "attacksinput(INVALID): " && \
  140.         iptables -A attacksinput -m conntrack --ctstate NEW,INVALID -m recent --set -j DROP && \
  141.         iptables -A attacksinput -m hashlimit --hashlimit-name attacksin_rest --hashlimit-upto 5/second --hashlimit-burst 20 --hashlimit-mode srcip --hashlimit-srcmask 28 -j LOG --log-level info --log-prefix "attacksinput: " && \
  142.         iptables -A attacksinput -m recent --set -j DROP; \
  143.         then
  144.         echo "attacksinput"
  145.         else
  146.         logger -p daemon.err "FW: error: attacksinput"
  147.         fi
  148.  
  149.  
  150.         if \
  151.         iptables -N attacksforward && \
  152.         iptables -A FORWARD -i "$DSLIF" -j attacksforward && \
  153.         iptables -A attacksforward -m state --state ESTABLISHED,RELATED -j RETURN && \
  154.         #iptables -A attacksforward -m recent --rcheck -m hashlimit --hashlimit-name attacksfor_bl --hashlimit-upto 6/hour --hashlimit-burst 20 --hashlimit-mode srcip -j LOG --log-level info --log-prefix "attacksforward(bl): " && \
  155.         iptables -A attacksforward -m recent --update --seconds 600 -j DROP && \
  156.         iptables -A attacksforward -m state --state NEW -m hashlimit --hashlimit-name attacksfor_new --hashlimit-upto 20/second --hashlimit-burst 100 --hashlimit-mode srcip --hashlimit-srcmask 28 -j LOG --log-level info --log-prefix "attacksforward(NEW): " && \
  157.         iptables -A attacksforward -m state --state INVALID -m hashlimit --hashlimit-name attacksfor_inv --hashlimit-upto 10/second --hashlimit-burst 20 --hashlimit-mode srcip --hashlimit-srcmask 28 -j LOG --log-level info --log-prefix "attacksforward(INVALID): " && \
  158.         iptables -A attacksforward -m state --state NEW,INVALID -m recent --set -j DROP && \
  159.         iptables -A attacksforward -m hashlimit --hashlimit-name attacksfor_rest --hashlimit-upto 10/second --hashlimit-burst 20 --hashlimit-mode srcip --hashlimit-srcmask 28 -j LOG --log-level info --log-prefix "attacksforward: " && \
  160.         iptables -A attacksforward -m recent --set -j DROP; \
  161.         then
  162.         echo "attacksforward"
  163.         else
  164.         logger -p daemon.err "FW: error: attacksforward"
  165.         fi
  166.  
  167.  
  168.         if \
  169.         iptables -A INPUT -p udp -i "$DSLIF" -m multiport --ports 137:139,445 -j DROP && \
  170.         iptables -A INPUT -p tcp -i "$DSLIF" -m multiport --ports 137:139,445 -j DROP && \
  171.         iptables -A FORWARD -p udp -i "$DSLIF" -o "$LANIF" -m multiport --ports 137:139,445 -j DROP && \
  172.         iptables -A FORWARD -p tcp -i "$DSLIF" -o "$LANIF" -m multiport --ports 137:139,445 -j DROP && \
  173.         iptables -A FORWARD -p udp -i "$LANIF" -o "$DSLIF" -m multiport --ports 137:139,445 -j DROP && \
  174.         iptables -A FORWARD -p tcp -i "$LANIF" -o "$DSLIF" -m multiport --ports 137:139,445 -j DROP; \
  175.         then
  176.         echo "Netbios"
  177.         else
  178.         logger -p daemon.err "FW: error: Netbios"
  179.         fi
  180.  
  181.         if \
  182.         iptables -A INPUT -p icmp --icmp-type 0 -j ACCEPT && \
  183.         iptables -A INPUT -p icmp --icmp-type 3 -j ACCEPT && \
  184.         iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT && \
  185.         iptables -A INPUT -p icmp --icmp-type 11 -j ACCEPT && \
  186.         iptables -A INPUT -p icmp --icmp-type 12 -j ACCEPT && \
  187.         iptables -A FORWARD -p icmp --icmp-type 0 -j ACCEPT && \
  188.         iptables -A FORWARD -p icmp --icmp-type 3 -j ACCEPT && \
  189.         iptables -A FORWARD -p icmp --icmp-type 8 -j ACCEPT && \
  190.         iptables -A FORWARD -p icmp --icmp-type 11 -j ACCEPT && \
  191.         iptables -A FORWARD -p icmp --icmp-type 12 -j ACCEPT && \
  192.         iptables -A OUTPUT -p icmp -j ACCEPT; \
  193.         then
  194.         echo "ICMP"
  195.         else
  196.         logger -p daemon.info "FW: error: ICMP"
  197.         fi
  198.  
  199.         if \
  200.         iptables -N dsl-in && \
  201.         iptables -N dsl-out && \
  202.         iptables -N ext-fw && \
  203.         iptables -N int-fw && \
  204.         iptables -N int-in && \
  205.         iptables -N int-out && \
  206.         iptables -N int-int-fw; \
  207.         then
  208.         echo "Eigene Chain"
  209.         else
  210.         logger -p daemon.info "FW: Eigene Chains wurden erstellt"
  211.         fi
  212.  
  213.  
  214.         if \
  215.         iptables -A INPUT -i "$DSLIF" -j dsl-in && \
  216.         iptables -A INPUT -i "$LANIF" -j int-in && \
  217.         iptables -A OUTPUT -o "$DSLIF" -j dsl-out && \
  218.         iptables -A OUTPUT -o "$LANIF" -j int-out && \
  219.         iptables -A FORWARD -i "$DSLIF" -o "$LANIF" -j ext-fw && \
  220.         iptables -A FORWARD -i "$LANIF" -o "$DSLIF" -j int-fw && \
  221.         iptables -A FORWARD -i "$LANIF" -o "$LANIF" -j int-int-fw; \
  222.         then
  223.         echo "Verteilung"
  224.         else
  225.         logger -p daemon.err "FW: error: Verteilung der Pakete auf eigene Chains"
  226.         fi
  227.  
  228.         if \
  229.         iptables -A int-in -j ACCEPT && \
  230.         iptables -A int-out -j ACCEPT && \
  231.         iptables -A int-int-fw -j ACCEPT; \
  232.         then
  233.         echo "Kommunikation"
  234.         else
  235.         logger -p daemon.err "FW: error: Kommunikation lokales Netz."
  236.         fi
  237.  
  238.  
  239.         if \
  240.         iptables -A dsl-out -p udp --sport 123 --dport 123 -j ACCEPT && \
  241.         iptables -A dsl-in -p udp --sport 123 --dport 123 -m conntrack ! --ctstate NEW -j ACCEPT && \
  242.         iptables -A int-fw -p udp --dport 123 -m multiport --sports 123,1024:65535 -j ACCEPT && \
  243.         iptables -A ext-fw -p udp --sport 123 -m multiport --dports 123,1024:65535 -m conntrack ! --ctstate NEW -j ACCEPT; \
  244.         then
  245.         echo "NTP"
  246.         else
  247.         logger -p daemon.err "FW: error: NTP Zeitsynchronisation (123)"
  248.         fi
  249.  
  250.  
  251.  
  252.         DNSSERVER_EXTERN=`cat /etc/resolv.conf /etc/ppp/resolv.conf | grep '^nameserver'\
  253.                          | sed 's/nameserver//' | sed 's/127.0.0.1//'`
  254.         if [ -n "$DNSSERVER_EXTERN" ]; then
  255.             for DNS in $DNSSERVER_EXTERN
  256.             do
  257.                 if [ -n "$DNS" ]; then
  258.                     iptables -A dsl-in -p tcp -s "$DNS" --dport 1024:65535 --sport 53 -m conntrack ! --ctstate NEW -j ACCEPT
  259.                     iptables -A dsl-in -p udp -s "$DNS" --dport 1024:65535 --sport 53 -m conntrack ! --ctstate NEW -j ACCEPT
  260.                     iptables -A dsl-out -p tcp -d "$DNS" --sport 1024:65535 --dport 53 -j ACCEPT
  261.                     iptables -A dsl-out -p udp -d "$DNS" --sport 1024:65535 --dport 53 -j ACCEPT
  262.                     iptables -A ext-fw -p tcp -s "$DNS" --dport 1024:65535 --sport 53 -m conntrack ! --ctstate NEW -j ACCEPT
  263.                     iptables -A ext-fw -p udp -s "$DNS" --dport 1024:65535 --sport 53 -m conntrack ! --ctstate NEW -j ACCEPT
  264.                     iptables -A int-fw -p tcp -d "$DNS" --sport 1024:65535 --dport 53 -j ACCEPT
  265.                     iptables -A int-fw -p udp -d "$DNS" --sport 1024:65535 --dport 53 -j ACCEPT
  266.                     logger -p daemon.info "FW: Kommunikation mit DNS-Server $DNS erlaubt."
  267.                 fi
  268.             done
  269.         else
  270.             logger -p daemon.err "FW: error: DNS-Server: Keine DNS Server vorhanden !!!"
  271.         fi
  272.  
  273.         ROOTDNSSERVER=`grep ' A ' /etc/bind/db.root | sed 's/.*\ *A     //'`
  274.         if [ -n "$ROOTDNSSERVER" ]; then
  275.             for DNS in $ROOTDNSSERVER
  276.             do
  277.                 if [ -n "$DNS" ]; then
  278.                     iptables -A dsl-in -p tcp -s "$DNS" --dport 1024:65535 --sport 53 -m conntrack ! --ctstate NEW -j ACCEPT
  279.                     iptables -A dsl-in -p udp -s "$DNS" --dport 1024:65535 --sport 53 -m conntrack ! --ctstate NEW -j ACCEPT
  280.                     iptables -A dsl-out -p tcp -d "$DNS" --sport 1024:65535 --dport 53 -j ACCEPT
  281.                     iptables -A dsl-out -p udp -d "$DNS" --sport 1024:65535 --dport 53 -j ACCEPT
  282.                     logger -p daemon.info "FW: Kommunikation mit ROOT DNS-Server $DNS erlaubt."
  283.                 fi
  284.             done
  285.         else
  286.             logger -p daemon.err "FW: ROOT DNS-Server: Keine ROOT DNS-Server vorhanden !"
  287.         fi
  288.  
  289.  
  290.         if \
  291.         #FTP - Kontrollverbindungen
  292.         iptables -A dsl-in -p tcp --dport 1024:65535 --sport 21 -m conntrack ! --ctstate NEW -j ACCEPT && \
  293.         iptables -A dsl-out -p tcp --sport 1024:65535 --dport 21 -j ACCEPT && \
  294.         iptables -A ext-fw -p tcp --dport 1024:65535 --sport 21 -m conntrack ! --ctstate NEW -j ACCEPT && \
  295.         iptables -A int-fw -p tcp --sport 1024:65535 --dport 21 -j ACCEPT && \
  296.         #FTP - aktives FTP
  297.         iptables -A dsl-in -p tcp --dport 1024:65535 --sport 20 -m conntrack ! --ctstate NEW -m helper --helper ftp -j ACCEPT && \
  298.         iptables -A dsl-out -p tcp --sport 1024:65535 --dport 20 -m helper --helper ftp -j ACCEPT && \
  299.         iptables -A ext-fw -p tcp --dport 1024:65535 --sport 20 -m conntrack ! --ctstate NEW -m helper --helper ftp -j ACCEPT && \
  300.         iptables -A int-fw -p tcp --sport 1024:65535 --dport 20 -m helper --helper ftp -j ACCEPT && \
  301.         #FTP - passives FTP
  302.         iptables -A dsl-in -p tcp --dport 1024:65535 --sport 1024:65535 -m conntrack ! --ctstate NEW -m helper --helper ftp -j ACCEPT && \
  303.         iptables -A dsl-out -p tcp --sport 1024:65535 --dport 1024:65535 -m helper --helper ftp -j ACCEPT && \
  304.         iptables -A ext-fw -p tcp --dport 1024:65535 --sport 1024:65535 -m conntrack ! --ctstate NEW -m helper --helper ftp -j ACCEPT && \
  305.         iptables -A int-fw -p tcp --sport 1024:65535 --dport 1024:65535 -m helper --helper ftp -j ACCEPT; \
  306.         then
  307.         logger -p daemon.info "FW: FTP"
  308.         logger -p daemon.info "FW: FTP - Kontrollverbindung"
  309.         else
  310.         logger -p daemon.err "FW: error: FTP"
  311.         fi
  312.  
  313.  
  314.         if \
  315.         iptables -A dsl-in -p tcp --sport 1024:65535 --dport 80 -m conntrack ! --ctstate NEW -j ACCEPT && \
  316.         iptables -A dsl-out -p tcp --dport 1024:65535 --sport 80 -j ACCEPT && \
  317.         #HTTPS feld-server (443)
  318.         iptables -A dsl-in -p tcp --sport 1024:65535 --dport 443 -m conntrack ! --ctstate NEW -j ACCEPT && \
  319.         iptables -A dsl-out -p tcp --dport 1024:65535 --sport 443 -j ACCEPT && \
  320.         #HTTP (80,8000,8080)
  321.         iptables -A dsl-out -p tcp --sport 1024:65535 -m multiport --dports 80,8000,8080 -j ACCEPT && \
  322.         iptables -A dsl-in -p tcp --dport 1024:65535 -m multiport --sports 80,8000,8080 -m conntrack ! --ctstate NEW -j ACCEPT && \
  323.         iptables -A int-fw -p tcp --sport 1024:65535 -m multiport --dports 80,8000,8080 -j ACCEPT && \
  324.         iptables -A ext-fw -p tcp --dport 1024:65535 -m multiport --sports 80,8000,8080 -m conntrack ! --ctstate NEW -j ACCEPT && \
  325.         #HTTPS (443)
  326.         iptables -A dsl-in -p tcp --dport 1024:65535 --sport 443 -m conntrack ! --ctstate NEW -j ACCEPT && \
  327.         iptables -A dsl-out -p tcp --sport 1024:65535 --dport 443 -j ACCEPT && \
  328.         iptables -A ext-fw -p tcp --dport 1024:65535 --sport 443 -m conntrack ! --ctstate NEW -j ACCEPT && \
  329.         iptables -A int-fw -p tcp --sport 1024:65535 --dport 443 -j ACCEPT; \
  330.         then
  331.         logger -p daemon.info "FW: HTTP feld-server (80)"
  332.         else
  333.         logger -p daemon.err "FW: error: HTTP feld-server (80)"
  334.         fi     
  335.  
  336.  
  337.         if \
  338.         iptables -A int-fw -p tcp --sport 1024:65535 --dport 25 -j ACCEPT && \
  339.         iptables -A ext-fw -p tcp --dport 1024:65535 --sport 25 -m conntrack ! --ctstate NEW -j ACCEPT; \
  340.         then
  341.         echo "SMTP"
  342.         else
  343.         logger -p daemon.err "FW: error: SMTP (25)"
  344.         fi
  345.  
  346.         if \
  347.         iptables -A ext-fw -p tcp --dport 1024:65535 --sport 465 -m conntrack ! --ctstate NEW -j ACCEPT && \
  348.         iptables -A int-fw -p tcp --sport 1024:65535 --dport 465 -j ACCEPT; \
  349.         then
  350.         echo "SSMTP"
  351.         else
  352.         logger -p daemon.err "FW: error: SSMTP (465)"
  353.         fi
  354.  
  355.         if \
  356.         iptables -A ext-fw -p tcp --dport 1024:65535 --sport 110 -m conntrack ! --ctstate NEW -j ACCEPT && \
  357.         iptables -A int-fw -p tcp --sport 1024:65535 --dport 110 -j ACCEPT; \
  358.         then
  359.         echo "POP3"
  360.         else
  361.         logger -p daemon.err "FW: error: POP3 (110)"
  362.         fi
  363.  
  364.         if \
  365.         iptables -A ext-fw -p tcp --dport 1024:65535 --sport 995 -m conntrack ! --ctstate NEW -j ACCEPT && \
  366.         iptables -A int-fw -p tcp --sport 1024:65535 --dport 995 -j ACCEPT; \
  367.         then
  368.         echo "POP3S"
  369.         else
  370.         logger -p daemon.err "FW: error: POP3S (995)"
  371.         fi
  372.  
  373.         if \
  374.         iptables -A ext-fw -p tcp --dport 1024:65535 --sport 143 -m conntrack ! --ctstate NEW -j ACCEPT && \
  375.         iptables -A int-fw -p tcp --sport 1024:65535 --dport 143 -j ACCEPT; \
  376.         then
  377.         echo "IMAP"
  378.         else
  379.         logger -p daemon.err "FW: error: IMAP (143)"
  380.         fi
  381.  
  382.         if \
  383.         iptables -A ext-fw -p tcp --dport 1024:65535 --sport 993 -m conntrack ! --ctstate NEW -j ACCEPT && \
  384.         iptables -A int-fw -p tcp --sport 1024:65535 --dport 993 -j ACCEPT; \
  385.         then
  386.         echo "IMAPS"
  387.         else
  388.         logger -p daemon.erro "FW: error: IMAPS (993)"
  389.         fi
  390.  
  391.         if \
  392.         iptables -A ext-fw -p tcp --dport 1024:65535 --sport 119 -m conntrack ! --ctstate NEW -j ACCEPT && \
  393.         iptables -A int-fw -p tcp --sport 1024:65535 --dport 119 -j ACCEPT; \
  394.         then
  395.         echo "NNTP"
  396.         else
  397.         logger -p daemon.err "FW: error: NNTP (119)"
  398.         fi
  399.  
  400.         if \
  401.         iptables -A ext-fw -p tcp --dport 1024:65535 --sport 563 -m conntrack ! --ctstate NEW -j ACCEPT && \
  402.         iptables -A int-fw -p tcp --sport 1024:65535 --dport 563 -j ACCEPT; \
  403.         then
  404.         echo "NNTPS"
  405.         else
  406.         logger -p daemon.err "FW: error: NNTPS (563)"
  407.         fi     
  408.  
  409.         if \
  410.         iptables -A ext-fw -p tcp --dport 1024:65535 --sport 70 -m conntrack ! --ctstate NEW -j ACCEPT && \
  411.         iptables -A int-fw -p tcp --sport 1024:65535 --dport 70 -j ACCEPT && \
  412.         iptables -A ext-fw -p tcp --dport 1024:65535 --sport 210 -m conntrack ! --ctstate NEW -j ACCEPT && \
  413.         iptables -A int-fw -p tcp --sport 1024:65535 --dport 210 -j ACCEPT; \
  414.         then
  415.         echo "Gopher und Wais"
  416.         else
  417.         logger -p daemon.err "FW: error: GOPHER und WAIS (70 und 210)"
  418.         fi
  419.  
  420.         if \
  421.         iptables -A int-fw -p tcp --sport 1024:65535 --dport 22 -j ACCEPT && \
  422.         iptables -A ext-fw -p tcp --sport 22 --dport 1024:65535 -m conntrack ! --ctstate NEW -j ACCEPT; \
  423.         then
  424.         echo "SSH"
  425.         else
  426.         logger -p daemon.err "FW: error: SSH"
  427.         fi
  428.  
  429.         if \
  430.         iptables -A int-fw -p tcp --sport  1024:65535 --dport 6667 -j ACCEPT; \
  431.         iptables -A ext-fw -p tcp --sport  6667 --dport 1024:65535 -m conntrack ! --ctstate NEW -j ACCEPT; \
  432.         then
  433.         echo "IRC"
  434.         else
  435.         logger -p daemon.err "FW: error: IRC"
  436.         fi
  437.  
  438.         if \
  439.         iptables -A int-fw -p tcp --sport 1024:65535 --dport 9418 -j ACCEPT && \
  440.         iptables -A ext-fw -p tcp --sport 9418 --dport 1024:65535 -m conntrack ! --ctstate NEW -j ACCEPT; \
  441.         then
  442.         echo "GIT"
  443.         else
  444.         logger -p daemon.err "FW: error: GIT"
  445.         fi
  446.  
  447.         if \
  448.         #UDP -> Elite Warriors
  449.         iptables -A int-fw -p udp --sport 2421 -m multiport --dports 2500:2600 -j ACCEPT && \
  450.         #iptables -A ext-fw -p udp -m multiport --dports 2304 -m multiport --sports 2352,2552,2752 -m conntrack ! --ctstate NEW -j ACCEPT && \
  451.         #UDP -> 3.Jaegerkompanie
  452.         iptables -A int-fw -p udp --sport 2304 -m multiport --dports 2352,2552,2752 -j ACCEPT && \
  453.         iptables -A ext-fw -p udp -m multiport --dports 2304 -m multiport --sports 2352,2552,2752 -m conntrack ! --ctstate NEW -j ACCEPT && \
  454.         #UDP -> TF47 Public
  455.         iptables -A int-fw -p udp --sport 1024:65535 -m multiport --dports 2303:2500 -j ACCEPT && \
  456.         iptables -A ext-fw -p udp --dport 1024:65535 -m multiport --sports 2303:2500 -m conntrack ! --ctstate NEW -j ACCEPT && \
  457.         #UDP -> BECTI Warfare www.ofps.net
  458.         iptables -A int-fw -p udp --sport 1024:65535 -m multiport --dports 2320 -j ACCEPT && \
  459.         iptables -A ext-fw -p udp --dport 1024:65535 -m multiport --sports 2320 -m conntrack ! --ctstate NEW -j ACCEPT && \
  460.         #UDP -> 3CB
  461.         iptables -A int-fw -p udp --sport 1024:65535 -m multiport --dports 2302,2362,2363,3544,36653 -j ACCEPT && \
  462.         iptables -A ext-fw -p udp --dport 1024:65535 -m multiport --sports 2302,2362,2363,3544 -m conntrack ! --ctstate NEW -j ACCEPT && \
  463.         #UDP -> EUTW.NET
  464.         iptables -A int-fw -p udp --sport 1024:65535 -m multiport --dports 2302,4660,4670,4680,4681,4693 -j ACCEPT && \
  465.         iptables -A ext-fw -p udp --dport 1024:65535 -m multiport --sports 2302,4660,4670,4680,4681,4693 -m conntrack ! --ctstate NEW -j ACCEPT; \
  466.         #TCP
  467.         then
  468.         echo "ARMA 2, ARMA 3"
  469.         else
  470.         logger -p daemon.info "FW: error: ARMA 2"
  471.         fi
  472.  
  473. #       if \
  474. #       iptables -A int-fw -p udp --sport 1024:65535 --dport 33001 -j ACCEPT; \
  475. #       then
  476. #       echo "Auteria"
  477. #       else
  478. #       logger -p daemon.err "FW: error: Auteria"
  479. #       fi
  480.  
  481.         if \
  482.         iptables -A int-fw -p tcp --sport 1024:65535 --dport 2000 -j ACCEPT && \
  483.         iptables -A ext-fw -p tcp --sport 2000 --dport 1024:65535 -m conntrack ! --ctstate NEW -j ACCEPT; \
  484.         then
  485.         echo "Eternal Lands"
  486.         else
  487.         logger -p daemon.err "FW: error: Eternal Lands"
  488.         fi
  489.  
  490.  
  491.         if \
  492.         iptables -A int-fw -p tcp --sport 1024:65535 --dport 3074 -j ACCEPT && \
  493.         iptables -A ext-fw -p tcp --sport 3074 --dport 1024:65535 -m conntrack ! --ctstate NEW -j ACCEPT && \
  494.         iptables -A int-fw -p udp --sport 1024:65535 -m multiport --dports 16587,21000,26116,27040,27633,27701:27703,27733,30000,48320 -j ACCEPT && \
  495.         iptables -A ext-fw -p udp --dport 1024:65535 -m multiport --sports 16587,21000,26116,27040,27633,27733,30000,48320,27701:27703 -m conntrack ! --ctstate NEW -j ACCEPT; \
  496.         then
  497.         echo "ETQW"
  498.         else
  499.         logger -p daemon.err "FW: error: ETQW"
  500.         fi
  501.  
  502. #       if \
  503. #       iptables -A int-fw -p udp --sport 27960 --dport 27960 -j ACCEPT && \
  504. #       iptables -A int-fw -p udp --sport 27960 --dport 27950 -j ACCEPT && \
  505. #       iptables -A int-fw -p udp --sport 27960 --dport 27951 -j ACCEPT; \
  506. #       then
  507. #       echo "ET"
  508. #       else
  509. #       logger -p daemon.info "FW: error: ET"
  510. #       fi
  511.  
  512.         if\
  513.         #Client
  514.         iptables -A int-fw -p tcp --sport 1024:65535 --dport 1802 -j ACCEPT && \
  515.         iptables -A ext-fw -p tcp --sport 1802 --dport 1024:65535 -m conntrack ! --ctstate NEW -j ACCEPT; \
  516.         #SERVER
  517.         iptables -A ext-fw -p tcp --sport 1024:65535 --dport 1802 -m conntrack ! --ctstate NEW -j ACCEPT; \
  518.         then
  519.         echo "FantasyGrounds2"
  520.         else
  521.         logger -p daemon.err "FW: error: FantasyGrounds2"
  522.         fi
  523.  
  524. #       if \
  525. #       iptables -A int-fw -p udp --sport 7808 --dport 7808 -j ACCEPT && \
  526. #       iptables -A int-fw -p tcp --sport 7808 --dport 7808 -j ACCEPT && \
  527. #       iptables -A ext-fw -p udp --sport 7808 --dport 7808 -m conntrack ! --ctstate NEW -j ACCEPT && \
  528. #       iptables -A ext-fw -p tcp --sport 7808 --dport 7808 -m conntrack ! --ctstate NEW -j ACCEPT && \
  529. #       iptables -A int-fw -p udp --sport 7117 --dport 7117 -j ACCEPT && \
  530. #       iptables -A int-fw -p tcp --sport 7117 --dport 7117 -j ACCEPT && \
  531. #       iptables -A ext-fw -p udp --sport 7117 --dport 7117 -m conntrack ! --ctstate NEW -j ACCEPT && \
  532. #       iptables -A ext-fw -p tcp --sport 7117 --dport 7117 -m conntrack ! --ctstate NEW -j ACCEPT && \
  533. #       iptables -A int-fw -p udp --sport 7808 --dport 1234 -j ACCEPT && \
  534. #       iptables -A int-fw -p tcp --sport 7808 --dport 1234 -j ACCEPT && \
  535. #       iptables -A ext-fw -p udp --sport 1234 --dport 7808 -m conntrack ! --ctstate NEW -j ACCEPT; \
  536. #       then
  537. #       echo "Freespace"
  538. #       else
  539. #       logger -p daemon.err "FW: error: Freespace2"
  540. #       fi
  541.  
  542.         if \
  543.         iptables -A int-fw -p tcp --sport 1024:65535 --dport 11031 -j ACCEPT && \
  544.         iptables -A ext-fw -p tcp --sport 11031 --dport 1024:65535 -m conntrack ! --ctstate NEW -j ACCEPT && \
  545.         iptables -A int-fw -p udp --sport 1024:65535 -m multiport --dports 11436:11450 -j ACCEPT && \
  546.         iptables -A ext-fw -p udp --dport 1024:65535 -m multiport --sports 11436:11450 -m conntrack ! --ctstate NEW -j ACCEPT && \
  547.         iptables -A int-fw -p udp --sport 1024:65535 --dport 11235:11335 -j ACCEPT && \
  548.         iptables -A ext-fw -p udp --sport 11235:11335 --dport 1024:65535 -m conntrack ! --ctstate NEW -j ACCEPT; \
  549.         then
  550.         echo "HoN"
  551.         else
  552.         logger -p daemon.err "FW: error: HoN"
  553.         fi
  554.  
  555.         if \
  556.         iptables -A int-fw -p tcp --sport 1024:65535 --dport 8393:8400 -j ACCEPT && \
  557.         iptables -A ext-fw -p tcp --sport 8393:8400 --dport 1024:65535 -m conntrack ! --ctstate NEW -j ACCEPT && \
  558.         iptables -A int-fw -p udp --sport 1024:65535 -m multiport --dports 5000:5500 -j ACCEPT && \
  559.         iptables -A ext-fw -p udp --dport 1024:65535 -m multiport --sports 5000:5500 -m conntrack ! --ctstate NEW -j ACCEPT && \
  560.         iptables -A int-fw -p tcp --sport 1024:65535 -m multiport --dports 2099,5223,5222 -j ACCEPT && \
  561.         iptables -A ext-fw -p tcp --dport 1024:65535 -m multiport --sports 2099,5223,5222 -m conntrack ! --ctstate NEW -j ACCEPT; \
  562.         then
  563.         echo "LoL"
  564.         else
  565.         logger -p daemon.err "FW: error: League of Legends"
  566.         fi
  567.  
  568.         if\
  569.         iptables -A int-fw -p tcp --sport 1024:65535 --dport 51234 -j ACCEPT && \
  570.         iptables -A ext-fw -p tcp --sport 51234 --dport 1024:65535 -m conntrack ! --ctstate NEW -j ACCEPT; \
  571.         then
  572.         echo "MapTool"
  573.         else
  574.         logger -p daemon.err "FW: error: MapTool"
  575.         fi
  576.  
  577.         #echo -e "\nMldonkey"
  578.         #echo -e "\nMldonkey DSLIN . . ."
  579.         #iptables -A dsl-in -p udp --sport 1024:65535 --dport "$MLPORTSERVER" -j ACCEPT
  580.         #iptables -A dsl-in -p tcp --sport 1024:65535 --dport "$MLPORTSERVER" -j ACCEPT
  581.         #iptables -A dsl-in -p udp --sport 1024:65535 --dport "$MLPORTCLIENT" -j ACCEPT
  582.         #iptables -A dsl-in -p tcp --sport 1024:65535 --dport "$MLPORTCLIENT" -j ACCEPT
  583.         #echo -e "\nMldonkey DSLOUT . . ."
  584.         #iptables -A dsl-out -p udp --sport "$MLPORTSERVER" --dport 1024:65535 -j ACCEPT
  585.         #echo -e "\nMldonkey Forwarding"
  586.         #echo -e "\nMldonkey Forwarding EXTFW . . ."
  587.         #iptables -A ext-fw -p udp --sport 1024:65535 --dport "$MLPORTSERVER" -j ACCEPT
  588.         #iptables -A ext-fw -p tcp --sport 1024:65535 --dport "$MLPORTSERVER" -j ACCEPT
  589.         #iptables -A ext-fw -p udp --sport 1024:65535 --dport "$MLPORTCLIENT" -j ACCEPT
  590.         #iptables -A ext-fw -p tcp --sport 1024:65535 --dport "$MLPORTCLIENT" -j ACCEPT
  591.         #echo -e "\nMldonkey Forwarding INTFW . . ."
  592.         #iptables -A int-fw -p udp --sport "$MLPORTSERVER" --dport 1024:65535 -j ACCEPT
  593.         #iptables -A int-fw -p udp --sport 1024:65535 --dport 24944 -j ACCEPT
  594.  
  595.         if\
  596.         iptables -A int-fw -p udp --sport 1024:65535 --dport 64738 -j ACCEPT && \
  597.         iptables -A int-fw -p tcp --sport 1024:65535 --dport 64738 -j ACCEPT && \
  598.         iptables -A ext-fw -p udp --sport 64738 --dport 1024:65535 -m conntrack ! --ctstate NEW -j ACCEPT && \
  599.         iptables -A ext-fw -p tcp --sport 64738 --dport 1024:65535 -m conntrack ! --ctstate NEW -j ACCEPT; \
  600.         then
  601.         echo "Mumble"
  602.         else
  603.         logger -p daemon.err "FW: error: Mumble"
  604.         fi
  605.  
  606. #       if \
  607. #       iptables -A int-fw -p udp --sport 5120:5300 --dport 6121 -j ACCEPT && \
  608. #       iptables -A int-fw -p udp --sport 1024:65535 --dport 5120:5300 -j ACCEPT && \
  609. #       iptables -A int-fw -p udp --sport 13139 --dport 13139 -j ACCEPT && \
  610. #       iptables -A int-fw -p udp --sport 5120:5300 --dport 5120:5300 -j ACCEPT; \
  611. #       then
  612. #       echo "NWN2"
  613. #       else
  614. #       logger -p daemon.err "FW: error: NWN2"
  615. #       fi
  616.  
  617. #       if \
  618. #       iptables -A int-fw -p udp --sport 1024:65535 --dport 7777 -j ACCEPT; \
  619. #       then
  620. #       echo "Planeshift"
  621. #       else
  622. #       logger -p daemon.err "FW: error: Planeshift"
  623. #       fi
  624.  
  625.  
  626.        if \
  627.        iptables -A int-fw -p tcp --sport 1024:65535 -m multiport --dports 9200 -j ACCEPT && \
  628.        iptables -A int-fw -p udp --dport 1024:65535 -m multiport --sports 46327,50001:50052 -j ACCEPT && \
  629.        iptables -A int-fw -p udp --sport 1024:65535 -m multiport --dports 25903,27011 -j ACCEPT && \
  630.        iptables -A ext-fw -p udp --sport 1024:65535 -m multiport --dports 46327,50001:50052 -m conntrack ! --ctstate NEW -j ACCEPT && \
  631.        iptables -A ext-fw -p udp --dport 1024:65535 -m multiport --sports 25903,27011 -m conntrack ! --ctstate NEW -j ACCEPT; \
  632.        then
  633.        echo "Play WithSIX"
  634.        else
  635.        logger -p daemon.err "FW: error: Play WithSix"
  636.        fi
  637.  
  638.  
  639.  
  640. #       if \
  641. #       iptables -A int-fw -p tcp --sport 1024:65535 --dport 47300 -j ACCEPT && \
  642. #       iptables -A int-fw -p tcp --sport 1024:65535 --dport 48000:48001 -j ACCEPT && \
  643. #       iptables -A int-fw -p udp --sport 9960:9963 --dport 9960:9963 -j ACCEPT && \
  644. #       iptables -A ext-fw -p udp --sport 9960:9963 --dport 9960:9963 -m conntrack ! --ctstate NEW -j ACCEPT && \
  645. #       iptables -A ext-fw -p tcp --sport 48000:48001 --dport 1024:65535 -m conntrack ! --ctstate NEW -j ACCEPT && \
  646. #       iptables -A ext-fw -p tcp --sport 47300 --dport 1024:65535 -m conntrack ! --ctstate NEW -j ACCEPT; \
  647. #       then
  648. #       echo "Regnum Online"
  649. #       else
  650. #       logger -p daemon.err "FW: error: Regnum Online"
  651. #       fi
  652.  
  653.  
  654.         if \
  655.         iptables -A int-fw -p tcp --sport 1024:65535 --dport 50000 -j ACCEPT && \
  656.         iptables -A int-fw -p tcp --sport 1024:65535 --dport 40916 -j ACCEPT && \
  657.         iptables -A int-fw -p tcp --sport 1024:65535 --dport 43434 -j ACCEPT && \
  658.         iptables -A int-fw -p udp --sport 1024:65535 --dport 47851:47860 -j ACCEPT && \
  659.         iptables -A int-fw -p tcp --sport 1024:65535 --dport 48851:48860 -j ACCEPT && \
  660.         iptables -A ext-fw -p tcp --sport 50000 --dport 1024:65535 -m conntrack ! --ctstate NEW -j ACCEPT && \
  661.         iptables -A ext-fw -p tcp --sport 40916 --dport 1024:65535 -m conntrack ! --ctstate NEW -j ACCEPT && \
  662.         iptables -A ext-fw -p tcp --sport 43434 --dport 1024:65535 -m conntrack ! --ctstate NEW -j ACCEPT && \
  663.         iptables -A ext-fw -p udp --sport 47851:47860 --dport 1024:65535 -m conntrack ! --ctstate NEW -j ACCEPT && \
  664.         iptables -A ext-fw -p tcp --sport 48851:48860 --dport 1024:65535 -m conntrack ! --ctstate NEW -j ACCEPT; \
  665.         then
  666.         echo "Ryzom"
  667.         else
  668.         logger -p daemon.err "FW: error: Ryzom"
  669.         fi
  670.  
  671. #       if \
  672. #       iptables -A int-fw -p udp --sport 11235:11238 --dport 22340 -j ACCEPT && \
  673. #       iptables -A int-fw -p udp --sport 1024:65535 --dport 11235:11238 -j ACCEPT && \
  674. #       iptables -A ext-fw -p udp --sport 11235:11238 --dport 1024:65535 -m conntrack ! --ctstate NEW -j ACCEPT && \
  675. #       iptables -A ext-fw -p udp --sport 56158 --dport 56158 -m conntrack ! --ctstate NEW -j ACCEPT; \
  676. #       then
  677. #       echo "Savage2"
  678. #       else
  679. #       logger -p daemon.err "FW: error: Savage2"
  680. #       fi
  681.  
  682.         if \
  683.         iptables -A int-fw -p udp --sport 33033 -m multiport --dports 80,443,1024:65535 -j ACCEPT && \
  684.         iptables -A int-fw -p tcp --sport 33033 -m multiport --dports 80,443,1024:65535 -j ACCEPT && \
  685.         iptables -A ext-fw -p udp --dport 33033 -m multiport --sports 80,443,1024:65535 -m conntrack ! --ctstate NEW -j ACCEPT && \
  686.         iptables -A ext-fw -p tcp --dport 33033 -m multiport --sports 80,443,1024:65535 -m conntrack ! --ctstate NEW -j ACCEPT; \
  687. #       iptables -A int-fw -p udp --sport 1024:65535 -m multiport --dports 1024:65535 -j ACCEPT && \
  688. #       iptables -A int-fw -p tcp --sport 1024:65535 -m multiport --dports 1024:65535 -j ACCEPT && \
  689. #       iptables -A ext-fw -p udp --dport 1024:65535 -m multiport --sports 1024:65535 -m conntrack ! --ctstate NEW -j ACCEPT && \
  690. #       iptables -A ext-fw -p tcp --dport 1024:65535 -m multiport --sports 1024:65535 -m conntrack ! --ctstate NEW -j ACCEPT; \
  691.         then
  692.         echo "Skype"
  693.         else
  694.         logger -p daemon.err "FW: error: Skype"
  695.         fi
  696.  
  697. #       if \
  698. #       iptables -A int-fw -p tcp --sport 1024:65535 --dport 8200 -j ACCEPT && \
  699. #       iptables -A int-fw -p udp --sport 1024:65535 --dport 8452 -j ACCEPT && \
  700. #       iptables -A ext-fw -p udp --sport 8452 --dport 1024:65535 -m conntrack ! --ctstate NEW -j ACCEPT && \
  701. #       iptables -A ext-fw -p tcp --sport 8200 --dport 1024:65535 -m conntrack ! --ctstate NEW -j ACCEPT; \
  702. #       then
  703. #       echo "Spring"
  704. #       else
  705. #       logger -p daemon.err "FW: error: Spring"
  706. #       fi
  707.  
  708.  
  709.         if \
  710.         iptables -A int-fw -p udp --sport 64090 -m multiport --dports 64000:64100 -j ACCEPT && \
  711. #       iptables -A int-fw -p tcp --sport 1024:65535 --dport 27015:27050 -j ACCEPT && \
  712.         iptables -A ext-fw -p udp --dport 64090 -m multiport --sports 64000:64100 -m conntrack ! --ctstate NEW -j ACCEPT; \
  713. #       iptables -A ext-fw -p tcp --dport 1024:65535 --sport 27015:27050 -m conntrack ! --ctstate NEW -j ACCEPT; \
  714.         then
  715.         echo "Star Citizens"
  716.         else
  717.         logger -p daemon.err "FW: error: Star Citizens"
  718.         fi
  719.  
  720.  
  721.         if \
  722.         iptables -A int-fw -p udp --sport 1024:65535 -m multiport --dports 3478,4379,4380,12000,27000:27030 -j ACCEPT && \
  723.         iptables -A int-fw -p tcp --sport 1024:65535 --dport 27015:27050 -j ACCEPT && \
  724.         iptables -A ext-fw -p udp --dport 1024:65535 -m multiport --sports 3478,4379,4380,12000,27000:27030 -m conntrack ! --ctstate NEW -j ACCEPT && \
  725.         iptables -A ext-fw -p tcp --dport 1024:65535 --sport 27015:27050 -m conntrack ! --ctstate NEW -j ACCEPT; \
  726.         then
  727.         echo "Steam"
  728.         else
  729.         logger -p daemon.err "FW: error: Steam"
  730.         fi
  731.  
  732.  
  733.         if\
  734.         #Teamspeak aktualisieren
  735.         iptables -A int-fw -p udp --sport 1024:65535 -m multiport --dports 9987,14100,17384:17385,21230 -j ACCEPT && \
  736.         iptables -A ext-fw -p udp --dport 1024:65535 -m multiport --sports 9987,14100,17384:17385,21230 -m conntrack ! --ctstate NEW -j ACCEPT && \
  737.         #alles weitere
  738.         iptables -A int-fw -p udp --sport 1024:65535 --dport 9987:10011 -j ACCEPT && \
  739.         iptables -A int-fw -p tcp --sport 1024:65535 --dport 2010 -j ACCEPT && \
  740.         iptables -A int-fw -p tcp --sport 1024:65535 -m multiport --dports 21231,30033,18567,41144 -j ACCEPT && \
  741.         iptables -A int-fw -p udp --sport 1024:65535 -m multiport --dports 30033,18567 -j ACCEPT && \
  742.         iptables -A ext-fw -p udp --sport 9987:10011 --dport 1024:65535 -m conntrack ! --ctstate NEW -j ACCEPT && \
  743.         iptables -A ext-fw -p udp --dport 1024:65535 -m multiport --sports 30033,18567 -m conntrack ! --ctstate NEW -j ACCEPT && \
  744.         iptables -A ext-fw -p tcp --dport 1024:65535 -m multiport --sports 21231,30033,18567,41144 -m conntrack ! --ctstate NEW -j ACCEPT && \
  745.         iptables -A ext-fw -p tcp --sport 2010 --dport 1024:65535 -m conntrack ! --ctstate NEW -j ACCEPT; \
  746.         then
  747.         echo "Teamspeak"
  748.         else
  749.         logger -p daemon.err "FW: error: Teamspeak"
  750.         fi
  751.  
  752.  
  753. if\
  754.         iptables -A int-fw -p tcp --sport 1024:65535 -m multiport --dports 9001,9030,9090,9100,9101 -j ACCEPT && \
  755.         iptables -A ext-fw -p tcp --dport 1024:65535 -m multiport --sports 9001,9030,9090,9100,9101 -m conntrack ! --ctstate NEW -j ACCEPT; \
  756.         then
  757.         echo "Tor"
  758.         else
  759.         logger -p daemon.err "FW: error: Tor"
  760.         fi
  761.  
  762.  
  763.         if\
  764.         iptables -A int-fw -p tcp --sport 1024:65535 -m multiport --dports 27388,29692,21250,39688,44638,51413,50561,47435,6881:6969 -j ACCEPT && \
  765.         iptables -A ext-fw -p tcp --dport 1024:65535 -m multiport --sports 27388,29692,21250,39688,44638,51413,47435,57888,6881:6969 -m conntrack ! --ctstate NEW -j ACCEPT && \
  766.         iptables -A ext-fw -p tcp --sport 1024:65535 --dport 51413 -m conntrack ! --ctstate NEW -j ACCEPT; \
  767.         then
  768.         echo "Torrent"
  769.         else
  770.         logger -p daemon.err "FW: error: Torrent"
  771.         fi
  772.  
  773.  
  774.         if\
  775.         iptables -A int-fw -p tcp --sport 1024:65535 -m multiport --dports 13000,14000,14008 -j ACCEPT && \
  776.         iptables -A int-fw -p udp --sport 3074 -m multiport --dports 24650,24651,24656 -j ACCEPT && \
  777.         iptables -A ext-fw -p tcp --dport 1024:65535 -m multiport --sports 13000,14000,14008 -m conntrack ! --ctstate NEW -j ACCEPT && \
  778.         iptables -A ext-fw -p udp --dport 3074 -m multiport --sports 24650,24651,24656 -m conntrack ! --ctstate NEW -j ACCEPT; \
  779.         then
  780.         echo "Uplay"
  781.         else
  782.         logger -p daemon.err "FW: error: Uplay"
  783.         fi
  784.  
  785.  
  786.         if\
  787.         #iptables -A int-fw -p tcp --sport 1024:65535 -m multiport --dports 13000,14000,14008 -j ACCEPT && \
  788.         iptables -A int-fw -p udp --sport 1024:65535 -m multiport --dports 53,443,1195,19302 -j ACCEPT && \
  789.         #iptables -A ext-fw -p tcp --dport 1024:65535 -m multiport --sports 13000,14000,14008 -m conntrack ! --ctstate NEW -j ACCEPT && \
  790.         iptables -A ext-fw -p udp --dport 1024:65535 -m multiport --sports 53,443,1195,19302 -m conntrack ! --ctstate NEW -j ACCEPT; \
  791.         then
  792.         echo "VPN CyberGhost"
  793.         else
  794.         logger -p daemon.err "FW: error: VPN CyberGhost"
  795.         fi
  796.  
  797.  
  798.         ###########################################################################
  799.         echo -e "\nAlle Packete des lokalen Netzes muessen maskiert werden."
  800.         ###########################################################################
  801.         echo 1 >/proc/sys/net/ipv4/ip_forward
  802.         #
  803.         iptables -t nat -A POSTROUTING -o "$DSLIF" -j MASQUERADE
  804.         #
  805.         ###########################################################################
  806.         # Um zu testen ob man ueberhaupt rauskommt
  807.         ###########################################################################
  808.         #iptables -I INPUT 1 -s 0.0.0.0/0 -d 0.0.0.0/0 -j ACCEPT
  809.         #iptables -I OUTPUT 1 -s 0.0.0.0/0 -d 0.0.0.0/0 -j ACCEPT
  810.  
  811.         ###########################################################################
  812.         echo -e "\nProtokollierung von unbestimmten Paketen."
  813.         ###########################################################################
  814.         iptables -A dsl-in -s 0.0.0.0/0 -m limit --limit 3/s -j LOG --log-level info --log-prefix "DSLIN: "
  815.         iptables -A dsl-out -s 0.0.0.0/0 -m limit --limit 3/s -j LOG --log-level info --log-prefix "DSLOUT: "
  816.         iptables -A ext-fw -s 0.0.0.0/0 -m limit --limit 3/s -j LOG --log-level info --log-prefix "EXTFW: "
  817.         iptables -A int-fw -s 0.0.0.0/0 -m limit --limit 3/s -j LOG --log-level info --log-prefix "INTFW: "
  818.         iptables -A int-in -s 0.0.0.0/0 -m limit --limit 3/s -j LOG --log-level info --log-prefix "INTIN: "
  819.         iptables -A int-out -s 0.0.0.0/0 -m limit --limit 3/s -j LOG --log-level info --log-prefix "INTOUT: "
  820.         iptables -A int-int-fw -s 0.0.0.0/0 -m limit --limit 3/s -j LOG --log-level info --log-prefix "INTINTFW: "
  821.         iptables -A INPUT -s 0.0.0.0/0 -m limit --limit 3/s -j LOG --log-level info --log-prefix "INPUT: "
  822.         iptables -A OUTPUT -s 0.0.0.0/0 -m limit --limit 3/s -j LOG --log-level info --log-prefix "OUTPUT: "
  823.         iptables -A FORWARD -s 0.0.0.0/0 -m limit --limit 3/s -j LOG --log-level info --log-prefix "FORWARD: "
  824.         iptables -A INPUT -s 0.0.0.0/0 -j DROP
  825.         iptables -A OUTPUT -s 0.0.0.0/0 -j DROP
  826.         iptables -A FORWARD -s 0.0.0.0/0 -j DROP
  827.         iptables -A dsl-in -s 0.0.0.0/0 -j DROP
  828.         iptables -A dsl-out -s 0.0.0.0/0 -j DROP
  829.         iptables -A ext-fw -s 0.0.0.0/0 -j DROP
  830.         iptables -A int-fw -s 0.0.0.0/0 -j DROP
  831.         iptables -A int-in -s 0.0.0.0/0 -j DROP
  832.         iptables -A int-out -s 0.0.0.0/0 -j DROP
  833.         iptables -A int-int-fw -s 0.0.0.0/0 -j DROP
  834. }
  835.  
  836. #################################################################################
  837. # Ausgabe des Scriptes beim starten mit veschiedenen Parametern.
  838. #################################################################################
  839. case "$1" in
  840.     start)
  841.         logger -p daemon.info "FW(START): We are going to start the Firewall at DSLIF <$2>, LANIF <$3>."
  842.         startefirewall $1 $2 $3
  843.         ;;
  844.     stop)
  845.         logger -p daemon.info "FW(STOP): We are going to STOP the Firewall at DSLIF <$2>, LANIF and <$3> (Local)."
  846.         stoppefirewall
  847.         ;;
  848.     *)
  849.         logger -p daemon.info "FW: Benutze $0 {start|stop} <DSLIF> <LANIF>."
  850.         ;;
  851. esac
  852.  
  853. exit 0

Quellcode

Hier kannst du den Code kopieren und ihn in deinen bevorzugten Editor einfügen. PASTEBIN_DOWNLOAD_SNIPPET_EXPLAIN