Hej!
Jag läste tråden på 99mac.se om personen som blev bestulen på sin
Powerbook och hittade den genom att spåra ip-numret som datorn fick då
den användes av tjuven. Jag insåg då att jag skulle behöva ett sätt
för att själv snabbt kunna se var datorn befinner sig utifall att den
blev stulen, helst av allt ett sätt som är svårt att upptäcka för
tjuven. Nu hade personen tur som lyckades få tjuven att gå in på en
hemsida så att han avslöjade ip-numret, och det borde finnas smidigare
sätt. Hittade en lösning som dessvärre visade sig kosta 25 dollar, så
istället snickrade jag ihop en egen lösning med cron och php. Postar
den lösningen till Tempen-listan eftersom det kan tänkas finnas någon
här som har användning av informationen.
All användning av informationen sker på egen risk kanske bör
tilläggas, vill inte att någon arg person kommer och skäller på mig
för att jag har förstört dennes OSX-installation.
För att det ska fungera krävs det att man har tillgång till en dator
eller ett webbhotell som kör Apache, så att php-filen på webbservern
kan köras. Lösningen går ut på att man har ett php-script på servern,
som när det anropas loggar IP-numret på klientdatorn i form av en
textfil i samma katalog som heter iplog.txt. Genom att använda cron
kan man få programmet curl att anropa sidan en gång i minuten, och man
kan på så sätt hela tiden, tills tjuven får för sig att tömma
hårddisken eller ta bort cronjobben, få reda på var datorn är genom
att kolla textfilen på webbservern. För att nollställa
adminstratörslösenordet till OS X krävs Panther-installationsskivorna,
gissar att inte alla bär omkring på en sådan så filen lär inte tas
bort i första taget.
Php-filen som ska ligga på webbservern finns på
www-und.ida.liu.se/~johli392/macfeber/getip.php.txt
PHP-koden är skriven av Jonas Tull (credit where credit is due). Döp
om filen till getip.php (alltså utan filändelsen txt) och lägg den på
godtycklig plats på webbservern. Kan vara bra att ha den gömd på
servern i någon obskyr katalog så inte vem som helst kan hitta filen
och se var din dator befinner sig genom att läsa filen iplog.txt
För att php-filen ska kunna skriva logfilen till hårddisken på
webbservern krävs att det finns en textfil där som Apache har
rättigheterna att skriva till. Ladda därför upp en tom fil som du
döper till iplog.txt, och sätt rättigheterna på filen till 777 (alla
får skriva och läsa filen). Sätta rättigheterna på filen kan göras
genom programmet Transmit, genom att man högerklickar och väljer
"Info" och sedan klickar i alla rutor. Man kan även göra det genom att
ssh:a till servern och sedan (när man befinner sig i samma katalog som
filen) skriva "chmod 777 iplog.txt".
För att sedan få OS X att anropa php-scriptet en gång i minuten, med
programmet curl, krävs det att man lägger till det som ett cronjobb.
Detta sker genom att man lägger till en rad för det i crontab, något
som kräver att man har adminstratörlösenordet för datorn.
Säkerhetskopiera först filen:
sudo cp /etc/crontab /etc/crontab.backup
Eftersom filen krävs för att OSX ska fungera bra är det bra med backup.
Öppna sedan filen i Emacs
sudo emacs /etc/crontab
Längst ner i filen lägger du till raden:
*/1 * * * * root /usr/bin/curl
http://www.din_server.se/katalog/filnamn.php
Det säger åt cron att en gång per minut anropa programmet curl så att
det anropar php-skriptet och det kan logga data. Byt ut
http://www.din_server.se/katalog/filnamn.php mot adressen till den
plats där du har lagt php-skriptet. Vill du ha redundans ifall en
server skulle gå ner är det bara att lägga skriptet på en till server
och då också lägga till en till rad i /etc/crontab
Lägg till en tom rad under den sista raden.
Spara sedan filen och avsluta Emacs genom att trycka:
ctrl+x + ctrl-s + ctrl-x + ctrl-c
Nu ska allt fungera som det ska, och php-filen på servern ska anropas
en gång per minut. Om du inte har ändrat på koden i php-filen ska all
data hamna i filen iplog.txt i samma katalog som php-filen. Den
senaste informationen är sist i filen.
Php-filen är det fritt fram att modifiera. Som det är nu plockar den
bort de äldsta ip-numrena så filen håller sig under 1 Mb i storlek.
Detta kan inaktiveras genom att kommentera bort raden (genom att
skriva // framför raden). Det är också enkelt att ändra namnet som
filen som IP-numrena ska loggas det, det är bara att byta ut iplog.txt
mot något bättre (och sedan ladda upp en fil med fulla rättigheter med
samma namn till servern).
Hoppas det fungerar bra.
Johan Lindqvist