/mandos/trunk

To get this branch, use:
bzr branch http://bzr.recompile.se/loggerhead/mandos/trunk

« back to all changes in this revision

Viewing changes to network-hooks.d/bridge

  • Committer: Teddy Hogeborn
  • Date: 2015-07-20 03:03:33 UTC
  • Revision ID: teddy@recompile.se-20150720030333-203m2aeblypcsfte
Bug fix for GnuTLS 3: be compatible with old 2048-bit DSA keys.

The mandos-keygen program in Mandos version 1.6.0 and older generated
2048-bit DSA keys, and when GnuTLS uses these it has trouble
connecting using the Mandos default priority string.  This was
previously fixed in Mandos 1.6.2, but the bug reappeared when using
GnuTLS 3, so the default priority string has to change again; this
time also the Mandos client has to change its default, so now the
server and the client should use the same default priority string:

SECURE256:!CTYPE-X.509:+CTYPE-OPENPGP:!RSA:+SIGN-DSA-SHA256

* mandos (main/server_defaults): Changed default priority string.
* mandos-options.xml (/section/para[id="priority_compat"]): Removed.
  (/section/para[id="priority"]): Changed default priority string.
* mandos.conf ([DEFAULT]/priority): - '' -
* mandos.conf.xml (OPTIONS/priority): Refer to the id "priority"
                                      instead of "priority_compat".
* mandos.xml (OPTIONS/--priority): - '' -
* plugins.d/mandos-client.c (main): Changed default priority string.

Show diffs side-by-side

added added

removed removed

Lines of Context:
6
6
# configuration file(s) should be copied into the
7
7
# /etc/mandos/network-hooks.d directory.
8
8
 
9
# Copyright © 2012 Teddy Hogeborn
 
10
# Copyright © 2012 Björn Påhlsson
 
11
9
12
# Copying and distribution of this file, with or without modification,
10
13
# are permitted in any medium without royalty provided the copyright
11
14
# notice and this notice are preserved.  This file is offered as-is,
15
18
 
16
19
CONFIG="$MANDOSNETHOOKDIR/bridge.conf"
17
20
 
18
 
# Read config file, which must set "BRIDGE", "PORTS", and optionally
19
 
# "IPADDRS" and "ROUTES".
 
21
addrtoif(){
 
22
    grep -liFe "$1" /sys/class/net/*/address \
 
23
        | sed -e 's,.*/\([^/]*\)/[^/]*,\1,' -e "/^${BRIDGE}\$/d"
 
24
}
 
25
 
 
26
# Read config file, which must set "BRIDGE", "PORT_ADDRESSES", and
 
27
# optionally "IPADDRS" and "ROUTES".
20
28
if [ -e "$CONFIG" ]; then
21
29
    . "$CONFIG"
22
30
fi
23
31
 
24
 
if [ -z "$BRIDGE" -o -z "$PORTS" ]; then
25
 
    exit
26
 
fi
27
 
 
28
 
if [ -n "$DEVICE" -a "$DEVICE" != "$BRIDGE" ]; then
29
 
    exit
30
 
fi
31
 
 
32
 
for b in /sbin/brctl /usr/sbin/brctl; do
 
32
if [ -z "$BRIDGE" -o -z "$PORT_ADDRESSES" ]; then
 
33
    exit
 
34
fi
 
35
 
 
36
if [ -n "$DEVICE" ]; then
 
37
    case "$DEVICE" in
 
38
        *,"$BRIDGE"|*,"$BRIDGE",*|"$BRIDGE",*|"$BRIDGE") :;;
 
39
        *) exit;;
 
40
    esac
 
41
fi
 
42
 
 
43
brctl="/sbin/brctl"
 
44
for b in "$brctl" /usr/sbin/brctl; do
33
45
    if [ -e "$b" ]; then
34
46
        brctl="$b"
35
47
        break
36
48
    fi
37
49
done
38
50
 
39
 
case "$1" in
40
 
    start)
41
 
        "$brctl" addbr "$BRIDGE"
42
 
        for port in $PORTS; do
43
 
            "$brctl" addif "$BRIDGE" "$port"
44
 
            ip link set dev "$port" up
45
 
        done
46
 
        ip link set dev "$BRIDGE" up
47
 
        sleep "$DELAY"
48
 
        if [ -n "$IPADDRS" ]; then
49
 
            for ipaddr in $IPADDRS; do
50
 
                ip addr add "$ipaddr" dev "$BRIDGE"
51
 
            done
52
 
        fi
53
 
        if [ -n "$ROUTES" ]; then
54
 
            for route in $ROUTES; do
55
 
                ip route add "$route" dev "$BRIDGE"
56
 
            done
57
 
        fi
58
 
        ;;
59
 
    stop)
60
 
        ip link set dev "$BRIDGE" down
61
 
        for port in $PORTS; do
62
 
            ip link set dev "$port" down
63
 
            "$brctl" delif "$BRIDGE" "$port"
64
 
        done
65
 
        "$brctl" delbr "$BRIDGE"
 
51
do_start(){
 
52
    "$brctl" addbr "$BRIDGE"
 
53
    for address in $PORT_ADDRESSES; do
 
54
        interface=`addrtoif "$address"`
 
55
        "$brctl" addif "$BRIDGE" "$interface"
 
56
        ip link set dev "$interface" up
 
57
    done
 
58
    ip link set dev "$BRIDGE" up
 
59
    sleep "${DELAY%%.*}"
 
60
    if [ -n "$IPADDRS" ]; then
 
61
        for ipaddr in $IPADDRS; do
 
62
            ip addr add "$ipaddr" dev "$BRIDGE"
 
63
        done
 
64
    fi
 
65
    if [ -n "$ROUTES" ]; then
 
66
        for route in $ROUTES; do
 
67
            ip route add "$route" dev "$BRIDGE"
 
68
        done
 
69
    fi
 
70
}
 
71
 
 
72
do_stop(){
 
73
    ip link set dev "$BRIDGE" down
 
74
    for address in $PORT_ADDRESSES; do
 
75
        interface=`addrtoif "$address"`
 
76
        ip link set dev "$interface" down
 
77
        "$brctl" delif "$BRIDGE" "$interface"
 
78
    done
 
79
    "$brctl" delbr "$BRIDGE"
 
80
}
 
81
 
 
82
case "${MODE:-$1}" in
 
83
    start|stop)
 
84
        do_"${MODE:-$1}"
66
85
        ;;
67
86
    files)
68
87
        echo /bin/ip