Bestimmte Host den Zugang aufs Web verweigern

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
micha1905
Beiträge: 1
Registriert: 30.11.2004 19:17:17

Bestimmte Host den Zugang aufs Web verweigern

Beitrag von micha1905 » 30.11.2004 19:29:41

Hallo,

zuerstmal möchte ich alle denjenigen Danken die mir bislang hier weitergeholfen haben, für Probleme die ich mit der Suchfunktion lösen konnte. Diesmal komme ich nicht weiter.

Ich habe ein kleines Netzwerk an dessen Anfang ein Debian-Linux-PC sitzt der so allerhand für mich regelt, neben Email, Testumgebung für PHP unter anderem auch als Router zwischen Netzwerk und DSL.
Alles funktioniert soweit so gut, nur möchte ich nur bestimmten Hosts den Zugang zum Web erlauben, bzw. einzelnen, oder Bereiche den direkten zugang verwehren.

Wie müsste ich mein Script verändern dass dies machbar ist. Anbei mein bisheriges Script:

Michael


  • #/bin/bash
    # Global variables

    EXTDEV=ppp0 # External device pointing to the internet
    INTDEV=eth0 # Internal device pointing to the local net
    INTLAN=192.168.0.0/24
    IPTABLES=/sbin/iptables

    case "$1" in

    start)
    ## Load modules
    # modprobe iptable_nat
    # modprobe iptable_filter
    # modprobe ip_conntrack
    # modprobe ip_conntrack_ftp ports=7771,21
    # modprobe ip_nat_ftp
    # modprobe ip_tables
    # modprobe ipt_MASQUERADE
    # modprobe ipt_REJECT

    ## Enable Paketforwarding and set dynamic IP
    echo 1 > /proc/sys/net/ipv4/ip_forward
    echo 1 > /proc/sys/net/ipv4/ip_dynaddr

    ## Flush tables and set default policy
    $IPTABLES -t filter -F INPUT
    $IPTABLES -t filter -F OUTPUT
    $IPTABLES -t filter -F FORWARD
    $IPTABLES -t filter -P INPUT ACCEPT
    $IPTABLES -t filter -P OUTPUT ACCEPT
    $IPTABLES -t filter -P FORWARD ACCEPT

    ## Masquerading
    $IPTABLES -t nat -F POSTROUTING
    $IPTABLES -t nat -A POSTROUTING -o $EXTDEV -s 192.168.0.0/24 -j MASQUERADE

    ## Allow all on localhost
    $IPTABLES -t filter -A INPUT -i lo -s 0/0 -d 0/0 -j ACCEPT

    # Define ports that should be open
    #$IPTABLES -t filter -A INPUT -i $EXTDEV -p tcp --dport 21 --syn -j ACCEPT
    #$IPTABLES -t filter -A INPUT -i $EXTDEV -p tcp --dport 113 --syn -j ACCEPT
    #$IPTABLES -t filter -A INPUT -i $EXTDEV -p tcp --dport 7771 --syn -j ACCEPT
    #$IPTABLES -t filter -A INPUT -i $EXTDEV -p tcp --dport 443 --syn -j ACCEPT
    $IPTABLES -t filter -A INPUT -i $EXTDEV -p tcp --dport 80 --syn -j ACCEPT
    #$IPTABLES -t filter -A INPUT -i $EXTDEV -p tcp --dport 22 --syn -j ACCEPT
    #$IPTABLES -t filter -A INPUT -i $EXTDEV -p tcp --dport 31337 --syn -j ACCEPT
    #$IPTABLES -t filter -A INPUT -i $EXTDEV -p tcp --dport 27960 --syn -j ACCEPT
    #$IPTABLES -t filter -A INPUT -i $EXTDEV -p tcp --dport 14484 --syn -j ACCEPT
    #$IPTABLES -t filter -A INPUT -i $EXTDEV -p tcp --dport 8000 --syn -j ACCEPT
    #$IPTABLES -t filter -A INPUT -i $EXTDEV -p tcp --dport 10000 --syn -j ACCEPT

    ## Close all other ports
    $IPTABLES -t filter -A INPUT -i $EXTDEV -p tcp -s 0/0 -d 0/0 --dport 1:9500 --syn -j REJECT
    $IPTABLES -t filter -A INPUT -i $EXTDEV -p tcp -s 0/0 -d 0/0 --dport 1:10500 --syn -j REJECT
    #$IPTABLES -t filter -A INPUT -i $EXTDEV -p tcp -s 0/0 -d 0/0 --dport 901 --syn -j REJECT
    #$IPTABLES -t filter -A INPUT -i $EXTDEV -p tcp -s 0/0 -d 0/0 --dport 139 --syn -j REJECT
    #$IPTABLES -t filter -A INPUT -i $EXTDEV -p tcp -s 0/0 -d 0/0 --dport icmp --syn -j REJECT



    restart)
    $0 stop && $0 start
    ;;
    esac

Benutzeravatar
knecht
Beiträge: 1214
Registriert: 08.01.2004 15:33:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von knecht » 01.12.2004 10:27:06

Alles funktioniert soweit so gut, nur möchte ich nur bestimmten Hosts den Zugang zum Web erlauben, bzw. einzelnen, oder Bereiche den direkten zugang verwehren.
## Masquerading
$IPTABLES -t nat -A POSTROUTING -o $EXTDEV -s 192.168.0.0/24 -j MASQUERADE
Hiermit erlaubst du das Routing für alle 192.168.0.xxx IPs, wenn du nur einzelne willst sollte das so aussehen.
## Masquerading
$IPTABLES -t nat -A POSTROUTING -o $EXTDEV -s 192.168.0.3 -j MASQUERADE
$IPTABLES -t nat -A POSTROUTING -o $EXTDEV -s 192.168.0.6 -j MASQUERADE
usw.
Willst du mit Subnetzen arbeiten muß das so aussehen:
## Masquerading
$IPTABLES -t nat -A POSTROUTING -o $EXTDEV -s 192.168.0.0/26 -j MASQUERADE
/26 entspricht einer Subnetmask von 255.2552.255.192, und Routed den IP Bereich von 192.168.0.1 bis 192.168.0.63 .

ein
## Masquerading
$IPTABLES -t nat -A POSTROUTING -o $EXTDEV -s 192.168.0.64/26 -j MASQUERADE
Routed den Bereich von 192.168.0.64 bis 192.168.0.127

hoffe ich konnte helfen
_________________________________________________
Linux HowTo's, Programmierung, Wallpapers und 3D:
http://www.neoBerserker.de

Antworten