Печать
Категория: AR.Drone
Просмотров: 8466

Так как Parrot AR.Drone первоначально предназначен для iOS устройств, работать с ним очень просто. Однако, у этой простоты есть и обратная сторона - дрон создаёт открытую точку доступа, к которой может подключиться любой желающий и уронить (в прямом смысле!) или спереть дрон.

Однако, есть возможность избежать этого, вывернув схему подключения дрона наизнанку, то есть не подключаться к дрону, а наоборот, подключить дрона к защищённой точке доступа. Такое подключение, кроме того, позволит  увеличить радиус действия дрона, если использовать внешнюю USB Wi-Fi карту с приличной антенной или точку доступа.


Есть два варианта такой настройки.

Можно вручную скопировать на дрон уже скомпилированные бинарники:

Включаем дрон, подключаемся к его точке доступа и цепляемся к нему по telnet:
ap$ telnet 192.168.1.1

Для удобства рекомендую прописать запуск FTP сервера с доступом к корню файловой системы. Да, это серьёзная брешь в безопасности... была бы. В случае беспарольной точки доступа и такого же рутового открытого доступа через telnet говорить о безопасности смешно.
drone$ echo "2121 stream tcp nowait root ftpd ftpd -w /" >>/etc/inetd.conf

Перезагружаем дрон (или перезапускаем initd).

Скачиваем и копируем куда следует бинарники ardrone-wpa2.
ap$ wget https://github.com/daraosn/ardrone-wpa2/archive/master.zip
ap$ unzip ./master.zip
ap$ cd ./ardrone-wpa2-master/bin
ap$ ftp -n << EOF
open 10.0.0.100 2121
cd /sbin
put wpa_cli
put wpa_passphrase
put wpa_supplicant
EOF


Выставляем для бинарников нужные права:
drone$ cd /sbin
drone$ chmod +x wpa_*


Если же Вы настроили Ваш дрон как описано в статье "Афропопугай или Ubuntu на AR.Drone", Вы можете установить нужный wpa_supplicant из репозиториев:

drone$ apt-get install wpasupplicant

Дальнейшая настройка одинакова для этих вариантов установки.

Создаём конфигурационный файл для подключения к точке доступа:
drone$ wpa_passphrase DroneProxyAPESSID password >/etc/DroneProxyAPESSID.conf
Создаём скрипт для подключения к точке доступа. Теоретически, можно добавить его в автозагрузку, но я не рекомендую этого делать, так как есть шанс потерять вообще доступ к дрону.
wpa_connect.sh
echo connecting to 'DroneProxyAPESSID'
killall udhcpd
killall udhcpc
echo `date` >>/var/wpa.log
ifconfig ath0 0.0.0.0 >> /var/wpa.log
wpa_supplicant -B -Dwext -iath0 -c/etc/DroneProxyAPESSID.conf >>/var/wpa.log
wait 5
/sbin/udhcpc -i ath0 >>/var/wpa.log


Исправляем права доступа:
chmod +x ./wpa_connect.sh
Запускаем скрипт и видим подключение дрона к точке доступа.
drone$ ./wpa_connect.sh

Это лишь подключение,  для работы "родной" (и не родных, с настройками по умолчанию) программы управления дроном потребуется настройка точки доступа - дрону по DHCP должен выдаваться адрес 192.168.1.1.

После такого подключения к точке доступа мы получили:

  1. Защищённое (WPA2) подключение к точке доступа. Злоумышленнику гораздо сложнее уронить или увести дрон.
  2. Увеличение радиуса действия дрона.
  3. Дополнительную помехозащищённость (в некотором роде).


Есть и минусы.

  1. Родная программа управления(как, впрочем, и неофициальные) измеряют сигнал по данным планшета. Так как при такой настройке планшет всегда находится вблизи от точки доступа, она будет считать, что сигнал отличный, даже если дрон близок к потере сигнала. По этой же причине рекомендую использовать запись на USB носитель.