X-Git-Url: https://feistymeow.org/gitweb/?a=blobdiff_plain;f=scripts%2Fsecurity%2Ftell_zooty_our_ip.sh;h=e35228cd3dadfaa118c0ac9a8967470ae505b510;hb=3ce4056145ddf83646f0e3865ad5f9ae9da98cde;hp=3d3764aa57e28863f0ef829e6730fb04495464d2;hpb=7233d6dd8230bb559027726e40f5069d40e5ec7c;p=feisty_meow.git diff --git a/scripts/security/tell_zooty_our_ip.sh b/scripts/security/tell_zooty_our_ip.sh index 3d3764aa..e35228cd 100644 --- a/scripts/security/tell_zooty_our_ip.sh +++ b/scripts/security/tell_zooty_our_ip.sh @@ -1,48 +1,34 @@ #!/bin/bash -# this script acquires our local IP address and connects over to zooty -# to write a status file there. this enables us to later connect backwards -# to our home system without being hosed by the floating IP address. - -#hmmm: none of the user info below will work for others: parameterize it. - -server=zooty.koeritz.com -username=fred -local_user=fred -tempdir=/tmp # where we generate our files. - -source $HOME/yeti/scripts/core/launch_feisty_meow.sh - -soundfile=$FEISTY_MEOW_DIR/database/sounds/woouoo.wav -if [ ! -z "$1" ]; then - soundfile=$1 +# this script connects to a remote machine and records the IP address of the +# local machine there. this enables the machine's owner to connect back to +# the system even if the IP address floats around (changes). + +server="$1"; shift +remote_user="$1"; shift +local_user="$1"; shift + +if [ -z "$server" -o -z "$remote_user" -o -z "$local_user" ]; then + echo "This script will record the IP address for 'this' host into a file on a" + echo "remote computer (that is running ssh server). To perform this feat, the" + echo "following parameters are required:" + echo " $(basename $0) {server} {remote-user} {local-user}" + echo "Note that this script must be run as root, but it uses the local user's" + echo "capability to connect to the remote system without a password (given the" + echo "user's possession of an ssh certificate on the remote host). The remote" + echo "user, in other words, must have an entry in the ssh authorized_keys that" + echo "allows the local user to connect." + exit 1 fi -ip_file="$(mktemp ${tempdir}/$(hostname | sed -e "s/\..*$//")_ip.XXXXXX)_${USER}" - -# iterate forever, since we want to keep running this. -while true; do +ip_file="$(hostname | sed -e "s/\..*$//")_ip_address.txt" - # get live ip address - pushd $tempdir - wget http://automation.whatismyip.com/n09230945.asp -O "$ip_file" - - chmod 644 "$ip_file" - my_ip=$(head "$ip_file") - - echo "my ip is [$my_ip]" - - # send the file over to the server. - # note that the local_user here is expected to have a certificate that - # gets us access to the server. this needs to be on the local machine - # for sftp to run without a login prompt. - sudo -u $local_user sftp $username@$server <$ip_file eof - popd - - sleep 600 -done -