2009. május 5.
A kedvenc (vagy egyetlen?) otthoni szolgáltatóm már a hatodik nnn.nnn.0.0/16-os hálózatból oszt ki nekem dinamikus címet.
a routerem jól együtt működik a dyndns.com-mal viszont a munkahelyi tűzfal nincs felkészülve az ekkora változásokra.
2009. május 18.
Annyira ocsmány scriptet raktam ki ide a múltkor (2009. május 5.),
hogy muszály volt átírnom - már csak azért is, mert az otthoni routeren is akarom futtatni - viszont Asus WL-500gP-n "Oleg 1.9.2.7-10" esetében nincs se host, se dig.
#!/bin/sh
# /opt/tracehomeip/thip
param=false; step_=false; no_force_=true;
while getopts ":fst" OPT; do
case $OPT in
"s") param=true; step_=true;;
"f") param=true; no_force_=false;;
esac
done
if $param; then shift; fi
if $step_ ;
then
home_name=$(echo $* | awk '{ print $2 }')
most=$(ghost $home_name); volt="?"
if [ "$most" = "" ]; then exit 0 ; fi
ip_file=$0".ip."$home_name
if [ -r $ip_file ];
then volt=$(cat $ip_file | awk '{ print $NF }'); fi
# $1: no_force_
if $1; then if [ "$most" = "$volt" ]; then exit 0 ; fi; fi
echo $most > $ip_file
# tűzfalszabály részletek kiírasa, user/.ssh/config aktualizalasa, stb...
if [ -x $0"fw" ]; then $0"fw" "-s" $most $volt $* ; fi
logger -t HOME_IP $home_name": "$most
echo "-";
else
# az összes home-gep ip-cím aktualizálása
awk_="awk '{ if((\$1!~\"#\")){ system ¬
( \""$0" -s "$no_force_" \"\$0 \"&>/dev/null\" )} }' "$0"_users"
if [ ! -z $(eval $awk_) ]; then
# ha volt csere - tűzfalszabályok összeszerelése
if [ -x $0"fw" ]; then $0"fw -f"; fi
fi
fi
exit 0
hozzá a ghost:
#!/bin/sh
# ghost
# ip.cim hostname-ből
# OpenDNS servercímek dig-be bevasalva
# UHU-linux 2.1 (kipróbálva); Asus WL-500GP - Oleg 1.9.2.7-10 (kipróbálva)
if [ "$1" = "" ]; then exit; fi
case "$HOME" in
/usr/local/root)
# oleg csak egy csövet bír el egyszerre
# viszont, ha adsl-modemre csatlakozik: lehet ”-m 1”
ipcim=$(traceroute -w 2 -m 1 $1 2>&1 | grep "traceroute" )
ipcim=$(echo $ipcim | awk '{ print $4 }')
lc=”(” ; rc=”),”
ipcim=$(echo $ipcim | sed -e 's/'$lc'//g' -e 's/'$rc'//g')
;;
*)
ipcim=$(dig @208.67.222.222 @208.67.220.220 $1 ¬
| head -n 13 | tail -n 1 | awk '{ print $NF }')
;;
esac
if [ "$(echo $ipcim | awk ' BEGIN { FS = "." } ¬
{ print $1"."$2}')" != "67.215" ]; then
if [ $(echo $ipcim | awk ¬
' BEGIN { FS = "." }{ print NF}') = 4 ];
then echo $ipcim; fi
fi
exit 0
/usr/local/sbin-ben, és /usr/local/bin-ben:
@ghost (symlink az ”/opt/tracehome/ghost”-ra )
@tracehomeip (symlink az ”/opt/tracehome/thip”-re )
/etc/cron.d/cron-ba a következősor ( ha 5 percenként akarjuk ellenőriztetni ):
-*/5 * * * * root tracehomeip &>/dev/null
A tűzfalszabály és /home/user/.ssh/config aktualizáló program (alapesetben):
/opt/tracehomeip/thipfw
ezeket a bemenő paramétereket kapja
step - lépésenként:
-s (ipcim-most) (ipcim-volt) (/opt/tracehomeip/@thip_users-megfelelő_sora)
első esetben „”ipcim-volt” értéke: ”?”
vagy - aktualizáláshoz:
-a
egyéni döntés, hogy az /etc/hosts.deny, ~/.ssh/config állományok is szerkesztődnek-é a tűzfalszabályokkal
- 1361 megtekintés