Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

OS Linux

IPTABLES vraag

water
7 antwoorden
  • Ik ben bezig met het opzetten van een firewall met ip-tables. Na flink wat leeswerk begin ikéén en ander door te krijgen. Wat ik echter niet begrijp is het volgende:

    Gedefinieerd wordt: [code:1:b30fc45da8]
    # netwerken
    LAN="192.168.1.0/24"
    ANYWHERE="0.0.0.0/0"
    LOOPBACK="127.0.0.1"
    CLASS_A="10.0.0.0/8"
    CLASS_B="172.16.0.0/12"
    CLASS_C="192.168.0.0/16"
    [/code:1:b30fc45da8]

    De meeste begrijp ik, maar wat doet [code:1:b30fc45da8]
    ANYWHERE="0.0.0.0/0"[/code:1:b30fc45da8]

    Dit in verband met het openzetten van TCP
    [code:1:b30fc45da8]$IPTABLES -A OUTPUT -o $EXTERNAL_INTERFACE -p tcp \
    -m state –state ESTABLISHED,RELATED \
    -s $IPADDR -d $ANYWHERE -j ACCEPT

    [/code:1:b30fc45da8]

    Nu zit mijn PC niet in een netwerk en heb ik het waarschijnlijk niet nodig, maar ik wil toch weten wat er met dat IP-adres gedefinieerd wordt.
  • anywhere kun je zien als internet….
    Anywhere 0.0.0.0/0 betekent alle IP's over de heeeeeeeeele wereld

    met je tables kun je het een en ander door laten en de rest niet. :)
  • Probleem is dat ik hier een foutmelding krijg. Maar de string zegt dus dat internetverkeer van binnen naar buiten toegang krijgt tot alle mogelijke IP-adressen.

    Ik ga het is verder uitzoeken (en eventueel de foutmelding hier droppen).

    EDIT: Wat ik eigenlijk wil is alles op slot en vervolgens alleen bepaalde poorten open zetten, voor www, ftp, e n in- en uitgaande mail. Kan dat en zo ja, welke poorten moet ik dan hebben. Ik hoop zo maximale controle te hebben op het TCP-verkeer

    Daarnaast zou ik eigenlijk ook nog willen controleren welke programma's toegang krijgen tot mijn exerne interface. Kan dat ook met met IPTABLES?
  • IPTABLES kent voor de filter table 3 chains nl:

    INPUT : Alles naar de pc waar je firewall op draait (vanaf lokaal netwerk, maar ook vanaf internet)
    OUTPUT: Alles wat vanaf je firewall pc komt
    FORWARD: Alles wat je firewall gebruikt als doorvoer naar een ander netwerk

    Programma's toegang geven is moeilijk, omdat iptables een packet filter firewall is. Wat je misschien wel kunt doen (en dat is nieuw bij iptables) is met strings werken. Bijvoorbeeld om verkeer te blokken wat bijvoorbeeld gegenereerd wordt met de IIS bug (root.exe) kun je op de firewall tegenhouden door string te gebruiken.

    Om verkeer door te laten naar bepaalde services zul je eerst moeten kijken op welke poorten deze draaien. Dit kun je doen met het programma NMAP. Meestal draaien webservers en ftp servers op standaard poorten, maar je kunt het beste dit soort zaken even controleren.

    Wanneer je –state ESTABLISHED,RELATED gebruikt voor je input chain dan laat je alleen verkeer binnen wat gerelateerd is aan een verbinding die voltooid is en/of door jezelf is opgezet. Hou er rekening mee dat IPTABLES met een CHAIN structuur werkt dus het ziet er ongeveer zo uit:

    (stel de standaard policy van alle chains in op DROP)
    /usr/sbin/iptables -P INPUT DROP
    /usr/sbin/iptables -P OUTPUT DROP
    /usr/sbin/iptables -P FORWARD DROP

    Ga dan je regels maken bijvoorbeeld de input chain:

    1. INPUT geeft toestemming om ESTABLISHED en RELATED pakketten door te geven
    2. INPUT geeft toestemming om vanaf een extern adres verbinding te maken met poort 80 (WWW)
    3. Al het andere verkeer mag niet doorkomen (DROP)

    Wil je echt alles weten over iptables dan raad ik je aan om de volgende website te bezoeken:

    http://people.unix-fu.org/andreasson/iptables-tutorial/iptables-tutorial.html
  • De problemen beginnen nu goed:

    Het eerste stukje van mijn firewall ziet er als volgt uit:
    [code:1:157a7b53d1]
    #!/bin/sh

    ################################################################################
    # variabelen
    # waar iptables staat
    IPTABLES="/sbin/iptables"

    # interfaces
    LOOPBACK_INTERFACE="lo"
    EXTERNAL_INTERFACE="eth0" # interface waarmee gateway aan het internet zit

    # netwerken
    ANYWHERE="0.0.0.0/0"
    LOOPBACK="127.0.0.1"
    CLASS_A="10.0.0.0/8"
    CLASS_B="172.16.0.0/12"
    CLASS_C="192.168.0.0/16"

    # poorten
    PRIVPORTS="0:1023"
    UNPRIVPORTS="1024:65535"

    # clean-up + init

    # flush en clear alle rules en zet de tellers op 0
    $IPTABLES -F INPUT
    $IPTABLES -F OUTPUT
    $IPTABLES -X
    $IPTABLES -Z
    #$IPTABLES -t nat -F
    #$IPTABLES -t nat -X
    #$IPTABLES -t nat -Z
    #$IPTABLES -t mangle -F
    #$IPTABLES -t mangle -X
    #$IPTABLES -t mangle -Z
    [/code:1:157a7b53d1]

    Als ik dit draai, dan heb ik geen probleem, de internet verbinding blijft open. Als ik nu het volgende toevoeg:
    [code:1:157a7b53d1]
    # set de default policies
    $IPTABLES -P INPUT DROP
    $IPTABLES -P FORWARD DROP
    $IPTABLES -P OUTPUT DROP
    [/code:1:157a7b53d1]

    Dan kan ik niets meer, ook dat klopt.

    Echter, als ik nu weer dat eerste deel draai, zonder het tweede deel, zou de boel weer open gesteld moeten worden, maar dat gebeurt niet. Wat wel gebeurt is dat alles in KDE na verloop van tijd vast loopt en een reboot nodig is. Het lijkt wel alsof het geheugen vol loopt. Wie weet hier raadt op?
  • Het klopt niet helemaal wat je doet:

    [code:1:d68fe9a2ff]
    # set de default policies
    $IPTABLES -P INPUT DROP
    $IPTABLES -P FORWARD DROP
    $IPTABLES -P OUTPUT DROP
    [/code:1:d68fe9a2ff]

    Hiermee stel je de standaar policy in op DROP dus standaard geen enkel pakket doorlaten.

    [code:1:d68fe9a2ff]
    $IPTABLES -F INPUT
    $IPTABLES -F OUTPUT
    $IPTABLES -X
    $IPTABLES -Z
    [/code:1:d68fe9a2ff]

    Wat er gebeurd als je het bovenstaande runt is dat alle regels gewist worden in de verschillende CHAINS. MAAR je hebt de standaard policy ingesteld op DROP. Om de boel weer open te zetten zou je dus het volgende moeten doen:

    [code:1:d68fe9a2ff]
    $IPTABLES -F INPUT
    $IPTABLES -F OUTPUT
    $IPTABLES -X
    $IPTABLES -Z
    $IPTABLES -P INPUT ACCEPT
    $IPTABLES -P FORWARD ACCEPT
    $IPTABLES -P OUTPUT ACCEPT
    [/code:1:d68fe9a2ff]

    KDE loopt vast omdat KDE een schil is op een X-Windows server. Die server heeft dus ook bepaalde poorten. Als je alles dichtzet zul je ook lokaal niets meer kunnen doen op netwerk niveau. Daarom loopt XWindows (met als schil KDE) vast.

    TIP:

    Als X vastloopt druk dan gelijktijdig CTRL+ALT+BACKSPACE in je komt dan in de console.

    Start dan KDE weer op met het commando: "startx"
  • Misschien heb je iets aan mijn start-stop script wat ik gemaakt heb. De firewall zelf roep ik aan in een andere directory.

    [code:1:5897c8204b]
    # more /etc/init.d/firewall
    #!/bin/sh
    IPTABLES=/sbin/iptables
    DODGETYPE="dodgethis-dual-1.0"

    case "$1" in

    start)
    echo ""
    echo "Starting Firewall …"
    $IPTABLES -F
    $IPTABLES -X
    $IPTABLES -P INPUT DROP
    $IPTABLES -P OUTPUT DROP
    $IPTABLES -P FORWARD DROP
    /etc/dodgewall/$DODGETYPE

    ;;

    stop)
    echo "Stopping Firewall All Closed…"
    $IPTABLES -F
    $IPTABLES -X
    $IPTABLES -P INPUT DROP
    $IPTABLES -P OUTPUT DROP
    $IPTABLES -P FORWARD DROP
    ;;

    open)
    echo "WARNING !! FIREWALL IS DOWN AND SERVER IS OPEN !! …"
    $IPTABLES -F
    $IPTABLES -X
    $IPTABLES -P INPUT ACCEPT
    $IPTABLES -P OUTPUT ACCEPT
    $IPTABLES -P FORWARD ACCEPT

    ;;
    logall)
    echo "DROP EVERYTHING AND LOG EVERYTHING …"
    $IPTABLES -F
    $IPTABLES -X
    $IPTABLES -P INPUT ACCEPT
    $IPTABLES -A INPUT -j LOG –log-level debug
    $IPTABLES -A INPUT -j DROP
    $IPTABLES -P OUTPUT ACCEPT
    $IPTABLES -A OUTPUT -j LOG –log-level debug
    $IPTABLES -A OUTPUT -j DROP
    $IPTABLES -P FORWARD ACCEPT
    $IPTABLES -A FORWARD -j LOG –log-level debug
    $IPTABLES -A FORWARD -j DROP

    ;;
    status)
    echo "Firewall Status"
    $IPTABLES -v -n -L
    ;;

    restart)
    echo "Restarting Firewall …"
    $0 stop
    $0 start
    ;;

    *)
    echo;
    echo "Usage: $0 {start|stop|restart|status|open|logall}"
    ;;

    esac

    [/code:1:5897c8204b]

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.