Обучим роутер опознавать хозяина
Именно с этой мыслью я начал обучать свой TP-link всяким премудростям.
Имя моего пациента TL-WR1043ND rev1.0, он заботливо перепрошит сразу после покупки. Некоторое время назад я пробовал из него сделать торренто качалку, самба сервер, но это всего лишь роутер, которой загибался под поставленными задачами. Думал так же перенести операционку на флешку, что бы поставить питонячьий интерпретатор. Но это значительно бы снизило производительность. В итоге, я пришел к выводу что оборудование должно справляться с задачами, для которых оно предназначен Но ведь просто скрип то можно он выдержит.
Гугл на вопрос "как узнать список wifi клиентов" выдал странные и временами морально устаревшие инструкции. Но часть из них все же работали.
arp [-n]
iw dev wlan0 station dump
Будем пользоваться вторым способом, а пока сделаем небольшую подготовку и запишем mac своего телефона
Теперь надо поставить пакет msmtp, что бы можно было слать письма. В хоямке создаем конфиг:
Возможно вы задаетесь вопросом: а зачем мне delay? Все просто: что бы по стуку можно было откладывать панику.
Теперь возьмемся за реакцию дворецкого на отсутствие хозяина:
К сожалению это только первая часть проекта, так сказать кирпичики. Во второй будет сборка всего вместе.
Дополнение: iw dev wlan0 station dump не всегда хорош, переделайте на arp
Источники:
Ман
Рецепт
Имя моего пациента TL-WR1043ND rev1.0, он заботливо перепрошит сразу после покупки. Некоторое время назад я пробовал из него сделать торренто качалку, самба сервер, но это всего лишь роутер, которой загибался под поставленными задачами. Думал так же перенести операционку на флешку, что бы поставить питонячьий интерпретатор. Но это значительно бы снизило производительность. В итоге, я пришел к выводу что оборудование должно справляться с задачами, для которых оно предназначен Но ведь просто скрип то можно он выдержит.
Гугл на вопрос "как узнать список wifi клиентов" выдал странные и временами морально устаревшие инструкции. Но часть из них все же работали.
arp [-n]
iw dev wlan0 station dump
Будем пользоваться вторым способом, а пока сделаем небольшую подготовку и запишем mac своего телефона
opkg update opkg install shadow-useradd useradd mcgr0g passwd mcgr0g mkdir /home/mcgr0g vi /etc/passwd mcgr0g:x:1000:1000:mcgr0g:/home/mcgr0g:/bin/ash visudo # исходя из уровня паранойи выбираем что раскоментировать chown mcgr0g:root /home/mcgr0g/ touch /home/mcgr0g/check_master.sh cd /home/mcgr0g/ vi check_master.sh
#####your mac#### 12:ab:c3:45:d6:78 {ESC} :q cat check_master.sh chmod ugo+rx mcheck_master.shТеперь воспользуемся показательным скриптом show_wifi_clients.sh из вики и препишем его под себя.
#!/bin/sh ###your smatphone mac#### master="a1:b2:c3:d4:e5:f6" res=0 # list all wireless network interfaces for interface in `iw dev | grep Interface | cut -f 2 -s -d" "` do # for each interface, get mac addresses of connected stations/clients maclist=`iw dev $interface station dump | grep Station | cut -f 2 -s -d" "` # for each mac address in that list... for mac in $maclist do if [ $mac == $master ]; then res=1 fi done done echo $resВуаля! Можно отслеживать, подключен ли смарт к домашнему вайфаю.
Теперь надо поставить пакет msmtp, что бы можно было слать письма. В хоямке создаем конфиг:
touch .msmtprc chmod 600 .msmtprc # иначе ругается vi .msmtprc i # а дальше можно скопипастить
account server host smtp.yandex.ru # спасибо яндексу за pdd ;) port 25 auth on user server@mcgrog.ololo password hardpass from server@mcgrog.now.im tls on tls_starttls on # особый привет яндексу, для гмыла эта строка не нужна tls_certcheck off logfile ~/.msmtp.logИ пробуем отправить в режиме отладки:
echo -e "Subject: Test Mail\r\n\r\nThis is a test mail" |msmtp --debug -t test@mcgrog.now.imНиштяк, все ходит. Теперь сделаем письмо delay.mail содержания:
To: test@mcgrog.now.im From: server@mcgrog.now.im Subject: panic delayed don't worryи попробуем отправить командой
cat delay.mail | msmtp -C /home/mcgr0g/.msmtprc -a server -t test@mcgrog.now.imИ снова успех! Все бы ничего, но подбешивает меня везде плодить одно и тоже, и посему сделаем так:
#!/bin/sh WORK_DIR="/home/mcgr0g" MAIL_TO=test@mcgrog.now.im MAIL_FROM=server@mcgrog.now.im MAIL_SUBJECT="panic" MAIL_TEXT="delayed" MAIL_MESSAGE="To: ${MAIL_TO} \nFrom: ${MAIL_FROM} \nSubject: ${MAIL_SUBJECT} \nContent-Type: text/plain; charset=UTF-8 \n\n${MAIL_TEXT}" echo -e ${MAIL_MESSAGE} | msmtp -C ${WORK_DIR}/.msmtprc -a server -t ${MAIL_TO}Если вы не забыли раздать права, то вся магия произойдет по команде ./delay.sh
Возможно вы задаетесь вопросом: а зачем мне delay? Все просто: что бы по стуку можно было откладывать панику.
Теперь возьмемся за реакцию дворецкого на отсутствие хозяина:
#!/bin/sh WORK_DIR="/home/mcgr0g" MAIL_TO=test@mcgrog.now.im MAIL_FROM=server@mcgrog.now.im MAIL_SUBJECT="panic" MAIL_TEXT="delayed" MAIL_MESSAGE="To: ${MAIL_TO} \nFrom: ${MAIL_FROM} \nSubject: ${MAIL_SUBJECT} \nContent-Type: text/plain; charset=UTF-8 \n\n${MAIL_TEXT}" echo -e ${MAIL_MESSAGE} | msmtp -C ${WORK_DIR}/.msmtprc -a server -t ${MAIL_TO}Для проверки в рабочей директории надо предварительно положить прощальную записку panic.txt со всеми явками и паролями.
К сожалению это только первая часть проекта, так сказать кирпичики. Во второй будет сборка всего вместе.
Дополнение: iw dev wlan0 station dump не всегда хорош, переделайте на arp
Источники:
Ман
Рецепт