Weiter Zurück [Inhalt] Online Suche im Handbuch LITTLE-IDIOT NETWORKING

11. Aufbau eines LINUX ISDN Firewall-Routers

Der Schritt zu einem ISDN Router unter LINUX mit Firewall besteht nun aus der konsequenten Umsetzung der Firewallregeln auf das ISDN Interface. Da zum Zeitpunkt der Einwahl die dynamische IP - Nummer erst noch vergeben wird, ist es nicht möglich, die Firewallregeln vorher aufzusetzen. Man kann sich aber damit behelfen, daß ein Teil der Firewallregeln nach dem Verbindungsaufbau aktiviert wird. Hierzu muß man sichergehen, daß während des Verbindungsaufbau die Firewallregeln alle gelöscht sind, und daß die default policy des externen Interfaces auf deny steht, und spoofing verhindert wird. Somit können für die kurze Zeit des Verbindungsaufbaues keine Angreifer in das Intranet vordringen. Wie aktiviert man jedoch weitere Firewallregeln nach dem Verbindungsaufbau ? Im Grunde liegt das ganze Geheimnis in der Datei /etc/ppp/ip-up, die identisch mit der Datei /etc/ppp/ip-down ist. Hier müssen die entsprechenden Firewallregeln in der Sektion ip-up und ip-down eingefügt bzw. verändert werden. Hier ein Beispiel:

BASENAME=`basename $0`
INTERFACE=$1
DEVICE=$2
SPEED=$3
LOCALIP=$4
REMOTEIP=$5

if [ -z "$REMOTEIP" ]; then
    echo "Usage: $0 <INTERFACE> <DEVICE> <SPEED> <LOCALIP> <REMOTEIP>"
    exit 1
fi


case "$INTERFACE" in
ippp*)

    . /etc/rc.config

    # find the device
    found=0
    for I in $NETCONFIG; do
        eval NETDEV=\$NETDEV$I
        if [ $NETDEV = $INTERFACE ]; then
            found=1
            break;
        fi
    done
    if [ $found -eq 0 ]; then
        echo "Device '$INTERFACE' not configured in '/etc/rc.config'"
        exit 1
    fi

    eval IFCONFIG=\$IFCONFIG$I
    DEST=`grep -v "^#" /etc/route.conf | grep "$INTERFACE\$" | awk '{ print $1}'`
    DEFAULT=`grep -v "^#" /etc/route.conf | grep default | awk '{ print $2}'`

    #echo "ok, NETDEV:$NETDEV; IFCONFIG:$IFCONFIG."
    #echo "    DEST: $DEST; DEFAULT: $DEFAULT"

    case "$BASENAME" in
    ip-up)
        # default deny
        #ipfwadm -I -p deny
        #ipfwadm -O -p deny
        
        # flush
        #ipfwadm -I -f
        #ipfwadm -O -f

        # accept dns
        #ipfwadm -O -a accept -P udp -S 0/0 53 1024:65535 -D 0/0 53 -W $INTERFACE
        #ipfwadm -I -a accept -P udp -D 0/0 53 1024:65535 -S 0/0 53 -W $INTERFACE
        #ipfwadm -O -a accept -P tcp -S 0/0 53 1024:65535 -D 0/0 53 -W $INTERFACE
        #ipfwadm -I -a accept -P tcp -D 0/0 53 1024:65535 -S 00/0 53 -k -W $INTERFACE

        # accept conect from client to internet
        #ipfwadm -O -a accept -P tcp -S 0/0 1024:65535 -D 0/0 -W $INTERFACE
        #ipfwadm -I -a accept -P tcp -D 0/0 1024:65535 -S 0/0 -k -W $INTERFACE

        # deny, last match
        #ipfwadm -I -a deny -P tcp -S 0/0 -D 0/0 -W $INTERFACE
        #ipfwadm -I -a deny -P udp -S 0/0 -D 0/0 -W $INTERFACE

        # default accept
        #ipfwadm -I -p accept -W $INTERFACE
        #ipfwadm -O -p accept -W $INTERFACE

        /sbin/route add default gw $REMOTEIP dev $INTERFACE
        
        # maybe you want to start mail services:
        # set follow variables in /etc/rc.config 
        #    SENDMAIL_TYPE="yes"
        #    SENDMAIL_SMARTHOST="<ISP-mailserver>"
        #    SENDMAIL_ARGS="-bd -om"
        #    SENDMAIL_EXPENSIVE="yes"
        #    SENDMAIL_NOCANONIFY="yes"
        #/usr/sbin/sendmail -q &
        #/usr/bin/fetchmail -a -v >>/var/log/fetchmail 2>&1 &
        ;;
    ip-down)
        # restart interface
        /sbin/ifconfig $INTERFACE down
        # workaround due to kernel problem with 'kernd':
        sleep 1
        /sbin/ifconfig $INTERFACE $IFCONFIG

        # flush, del all rules
        #ipfwadm -I -f
        #ipfwadm -O -f

        # set routes from /etc/route.conf 
        test -z "$DEST"    || /sbin/route add -host $DEST dev $INTERFACE
        test -z "$DEFAULT" || /sbin/route add default gw $DEFAULT 
        ;;
    *)
        ;;
    esac
    ;;


ppp*)
    # Analog-PPP, add commands if you need...
    ;;
*)
    # dont know...
    ;;
esac

Wer noch möchte, daß seine E-Mail gleichzeitig aus einem Sammelaccount von einem POP3 Server im Internet abgeholt und verteilt wird, der muß noch eine weitere Zeile fetchmail -a -v in der Datei /etc/ppp/ip-up und die Konfigurationsdatei des fetchmail - Programmes /root/.fetchmailrc anpassen.

Nun muß nur noch der SQUID Dämon gestartet werden, und fertig ist der Firewall-Router mit PROXY-Cache. Wer darüber hinaus auch noch den ganzen Router über ein komfortables WWW-Interface administrieren können möchte, und für die unterschiedlichen User Internet-Sites sperren oder freigeben möchte, der sollte sich nach WEBMIN umschauen. Wer WEBMIN auf deutsch installieren möchte, der mag sich auf http://little-idiot.de umschauen.


Weiter Zurück [Inhalt] Online Suche im Handbuch LITTLE-IDIOT NETWORKING