Automatisk proxy opsætning

Få hjælp til at sætte programmer eller funktioner op.
domingo
Indlæg: 6
Tilmeldt: 14. nov 2006, 21:29

Automatisk proxy opsætning

Indlæg af domingo »

Hej

Jeg har en udfordring omkring automatisk opsætning af proxy. På min arbejdsplads har vi nu skudt en proxy ind som man skal gå igennem for at komme på nettet. Dette er jo i sig selv en god ting, men gør nogle ting lidt mere besværlige. I den forbindelse tænkte jeg at jeg ville brygge et lille script samme, som vil, ud fra min ip adresse, slå proxy til eller fra. Scriptet kører når NetworkManager "up'er" et interface.

Scriptet ser ud som følger:

Kode: Vælg alt

#!/bin/sh

# Source: http://ubuntuforums.org/showthread.php?t=564538
#
# Enable/disable proxy based on network interface address
logger "Proxy script start"
logger $IFACE $MODE
set -e
IFACE=eth0
# Don't bother when lo is configured.
if [ "$IFACE" = lo ]; then
exit 0
fi

#Only run from ifup.
if [ "$MODE" != start ]; then
exit 0
fi

#Execute gconf commands as this user
U=`w|grep gnome-session| awk '{print $1}'`
if [ -z "$U" ]; then
logger "Exit script finding user"
exit 0
fi

IP=`ip addr show dev $IFACE | grep 'inet ' | awk '{print $2}'`
logger $IP
ENABLED=""
PROXY="http://bluecoat/accelerated_pac_base.pac"
case "$IP" in
192.168.0*)
logger "Set proxy on...$U"
su $U -c '/usr/bin/gconftool --config-source=xml::/home/$U/.gconf -t bool -s /system/http_proxy/use_http_proxy true'
logger "Set proxy PAC..."
su $U -c '/usr/bin/gconftool --config-source=xml::/home/$U/.gconf -t string -s /system/proxy/mode auto'
logger "Set PAC url..."
su $U -c '/usr/bin/gconftool --config-source=xml::/home/$U/.gconf -t string -s /system/proxy/autoconfig_url $PROXY'
ENABLED="enabled"
;;
*)
su $U -c '/usr/bin/gconftool --config-source=xml::/home/$U/.gconf -t bool -s /system/http_proxy/use_http_proxy false'
su $U -c '/usr/bin/gconftool --config-source=xml::/home/$U/.gconf -t string -s /system/proxy/mode none'
ENABLED="disabled"
;;
esac
exit 0



Tager jeg scriptet og kører i hånden virker det fint (eller kører kommandoerne enkeltvis), settings bliver sat og proxy'en bliver brugt. Ligger jeg scriptet ind i "/etc/network/if-up.d" og aktiverer et interface får jeg følgende i syslog'en:

Kode: Vælg alt

...
Feb  4 09:28:41 laptop-tdd NetworkManager: <info>  Policy set 'Auto eth0' (eth0) as default for routing and DNS.
Feb  4 09:28:41 laptop-tdd NetworkManager: <info>  Activation (eth0) successful, device activated.
Feb  4 09:28:41 laptop-tdd NetworkManager: <info>  Activation (eth0) Stage 5 of 5 (IP Configure Commit) complete.
Feb  4 09:28:42 laptop-tdd logger: Proxy script start
Feb  4 09:28:42 laptop-tdd logger: eth0 start
Feb  4 09:28:42 laptop-tdd logger: 192.168.240.77/24
Feb  4 09:28:42 laptop-tdd logger: Set proxy on...tdd
Feb  4 09:28:42 laptop-tdd nm-dispatcher.action: Script '/etc/NetworkManager/dispatcher.d/01ifupdown' exited with error status 1.
...


Ud fra logger kan jeg se at den når frem til at udføre den første gconftool kommando, men noget fejler ved den???

Nogle gode idéer?
laoshi
Redaktør
Indlæg: 5515
Tilmeldt: 26. apr 2008, 20:52
IRC nickname: laoshi
Geografisk sted: Vejle

Re: Automatisk proxy opsætning

Indlæg af laoshi »

Mon ikke du skal prøve at lægge scriptet ind i /usr/bin/ eller /usr/local/bin/ ? (og selvfølgelig gøre det eksekverbart)
"Von guten Mächten wunderbar geborgen
erwarten wir getrost was kommen mag.
Gott ist mit uns am Abend und am Morgen
Und ganz gewiss an jedem neuen Tag"

(Dietrich Bonhoeffer 1906-1945)

http://www.stromata.dk
https://wiki.ubuntu.com/FlemmingChristensen
https://launchpad.net/~laoshi
domingo
Indlæg: 6
Tilmeldt: 14. nov 2006, 21:29

Re: Automatisk proxy opsætning

Indlæg af domingo »

laoshi skrev:Mon ikke du skal prøve at lægge scriptet ind i /usr/bin/ eller /usr/local/bin/ ? (og selvfølgelig gøre det eksekverbart)



Joooo, den er skam chmod +x'et :D

Scriptet bliver kun kaldt fordi det ligger i "/etc/network/if-up.", så jeg kan ikke ligge det andre steder. Jeg kan også se på output'et af logger, at det bliver kørt. Fejlen opstår i samme øjeblik gconftool bliver kørt.