我的下一個項目包括將 Raspberry Pi 謹慎地連接到一輛汽車,該汽車將為連接它的人提供駕駛服務,並且永遠不需要取回。這是一個概念驗證,因為我只是想展示如果有一天我們的車上都配備了 WiFi 收音機,政府可能會做些什麼。
它將在啟動時啟動 Kismet 並使用 GPS 接收器記錄存取點位置。然後,在指定的時間段後,停止掃描,等待找到開放的無線網路(汽車是文具,可能停在咖啡店),然後將 kismet .netxml 檔案上傳到 FTP 伺服器或透過電子郵件發送。
我不知道如何完成最後一部分。如何在給定時間段後停止 Kismet 掃描、連接到開放網路並透過電子郵件發送最新的 kismet 日誌檔案?
答案1
我感受到你的痛苦!
值得慶幸的是,我成功完成了一半的腳本,希望您或其他人可以使用它。
#!/bin/sh /etc/rc.common
# Kismet server init script
# Copyright (C) 2015 Springboard Research Limited
START=97
STOP=98
start() {
echo "checking monitor interface"
if [iw dev mon0 info | grep -q "Interface"]; then
echo "Monitor found, deleting and recreating"
ifconfig mon0 down
iw dev mon0 del
if [iw dev mon0mon info | grep -q "Interface"]; then
ifconfig mon0mon down
iw dev mon0mon del
fi
iw phy phy0 interface add mon0 type monitor
echo "Bringing monitor interface online"
ifconfig mon0 up
else
echo "Adding new monitor interface"
iw phy phy0 interface add mon0 type monitor
echo "Bringing monitor interface online"
ifconfig mon0 up
fi
echo starting kismet server
kismet_server -s -T netxml,pcap
}
stop() {
echo "stopping kismet server"
killall kismet_server
echo "deleting the monitor interfaces"
ifconfig mon0 down
iw dev mon0 del
ifconfig mon0mon down
iw dev mon0mon del
}
它非常簡單。有一個啟動腳本,如果 Kismet 未運行,則會運行並啟動它。在腳本中,我必須關閉監視器介面來執行第二個腳本,該腳本檢查檔案大小,然後將檔案上傳到 ftp 伺服器。
#!/bin/bash
# get the latest kismet capture file in the /tmp directory
KISMETCAPFILE=$(ls -dt Kismet-* | head -1)
# TEST: echo $KISMETCAPFILE
# check the file size
KCFILESIZE=$(stat -c%s $KISMETCAPFILE)
THFILESIZE=1000000
HOST="your_ftp_server"
USER="ftp_username"
PASSWD="ftp_password"
REMOTEPATH="/"
# TEST: echo $K_C_FILESIZE
if [ ! -z $KISMETCAPFILE ]; then
if [ ! -z $KCFILESIZE ]; then
# check file size
if [ $KCFILESIZE >= $THFILESIZE ]; then
# if above threshold then stop capture
echo "stopping the capture"
#/etc/init.d/kiss stop
# export file to FTP server
echo "exporting the file to the ftp server"
ftp -in <<EOF
open $HOST
user $USER$PASSWD
cd $REMOTEPATH
put $KISMETCAPFILE
close
bye
EOF
echo "uploaded file to $HOST:$REMOTEPATH"
# delete local file
echo "TEST: delete local file"
# start capture
echo "TEST: start capture"
fi
fi
fi
希望以上內容對某人有幫助。