HRdns.de

Cookie Datenschutzhinweis

Cookies helfen uns bei der Bereitstellung unserer Dienste. Um unsere Dienste im vollen Umfang verwenden zukönnen, bitten wir Sie um Erlaubnis Cookies verwenden zu dürfen.
Weitere Informationen zu diesem Thema finden Sie in unserer Datenschutzerklärung.

User Based Routing

Author:
Richard Hülsberg
E-Mail:
Veröffentlicht am:
Sprache:
Syntax (automatisch)

#!/bin/bash

    DEF_GATEWAY="192.168.2.1"
    VPN_GATEWAY=`ifconfig tun0 | grep 'P-z-P' | cut -d ':' -f 3 | cut -d ' ' -f 1`

    echo 0 > /proc/sys/net/ipv4/conf/lo/rp_filter
    echo 0 > /proc/sys/net/ipv4/conf/eth0/rp_filter
    echo 0 > /proc/sys/net/ipv4/conf/tun0/rp_filter
    echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter

    # Cleanup Firewall Settings
    /sbin/iptables -F
    /sbin/iptables -X
    /sbin/iptables -t mangle -F
    /sbin/iptables -t mangle -X
    /sbin/iptables -t nat -F
    /sbin/iptables -t nat -X

    # Default Accept to all
    /sbin/iptables -P INPUT ACCEPT
    /sbin/iptables -P OUTPUT ACCEPT
    /sbin/iptables -P FORWARD ACCEPT

    # Create Firewall marker flag and masq.
    /sbin/iptables -t mangle -I OUTPUT -m owner --uid 1000 -j MARK --set-mark 1001

    /sbin/iptables -t nat -I POSTROUTING -o tun0 -j MASQUERADE

    ACTIV=`ip rule | grep -q "50000:" && echo 1 || echo 0`

    if [ "$ACTIV" = "0" ]; then
        # Move Detault Gateway
        /sbin/ip rule del from all pri 32767 table default
        /sbin/ip rule add from all pri 50000 table default
        /sbin/ip route add default via $DEF_GATEWAY dev eth0 metric 100 table default
        /sbin/ip route del default via $DEF_GATEWAY dev eth0 metric 100 table main

        # Create User Own Routing Chain
        /sbin/ip rule add fwmark 1001 pri 40000 table 1001
        /sbin/ip route add default via $VPN_GATEWAY dev tun0 table 1001
    fi

    # Flush Cache
    /sbin/ip route flush cache