Статья Анонимная точка доступа: OrangePi

Приветствую гостей и постояльцев Codeby.net!

В этой статье, мы поговорим об одноплатных компьютерах и их практическом применении. Название статьи, говорит само за себя, поэтому, для начала – такая картинка:

1542228087162.png


Содержание этой статьи будет посвящено тому, как на базе одноплатного компьютера Orange Pi Zero сделать анонимную, домашнюю точку доступа в сеть, включая .onion диапазон сайтов.

Orange Pi Zero, что может быть проще?

1542228109165.png


Я взял плату с 512 RAM на борту + корпус, стоковая антенна, довольно печальная по характеристикам, и я решил немного ее усовершенствовать - отверстие в корпусе и RP-SMA пигтейл.

В итоге, получилось так:

1542228130632.png


Позже, я решил, что анонимная AP будет базироваться не на стоковой антенне, а на внешнем Wi-Fi адаптере TP-Link 722 V 1.0 с антенной на 12 dBi.

1542228152857.png


Приступим к настройке, для начала, возьмем образ ОС ARMBian и запишем её на флэшку, в сети по этому поводу информацию не составит труда отыскать, не заостряем на этом внимание. Но, ссылочку держите -

Позитивным результатом, когда все настроено, верно, будет такое приветствие:

1542228634277.png


Следующим шагом, будет установка необходимых пакетов, для последующей настройки точки доступа. Я выбрал для своей цели, такую связку - tor, hostapd, iptables-persistent, dnsmasq, resolvconf.
  • Tor — система анонимного взаимодействия с установкой соединений и малым временем задержки. Пользователи выбирают начало пути по сети узлов, и согласовывают «виртуальные цепи» через сеть, в которых каждому узлу известен предыдущий и следующий узел, а все остальные — не известны. Трафик, передаваемый по цепи, расшифровывается симметричным ключом в каждом узле, из которого получается информация о следующем узле. Фактически, Tor позволяет создавать распределённую сеть ретранслирующих узлов. Пользователи пропускают свои TCP-данные (веб-трафик, ftp, ssh и т. д.) через цепь таких узлов-ретрасляторов, так что получателям, наблюдателям и самим маршрутизаторам становится трудно отследить источник и цель потока данных. Этот пакет по умолчанию включает только клиентскую часть, но его можно настроить также для работы в качестве узла передачи и/или скрытого сервера. Клиентские приложения могут использовать сеть Tor путём подключения к локальному прокси-серверу SOCKS. Если само приложение не имеет поддержки SOCKS, вы можете использовать клиент socks, такой как torsocks. Обратите внимание, что Tor не занимается очисткой протоколов. Это значит, что существует опасность воздействия на протоколы приложений и связанные с ними программы, так что они выдадут информацию об источнике. Для решения этой проблемы Tor полагается на Torbutton и аналогичные очистители протоколов. Самый простой вариант работы с веб-сайтами через Tor - Tor Browser Bundle, самодостаточный пакет, состоящий из статической сборки Tor, Torbutton и Firefox с изменениями, устраняющими различные проблемы, связанные с защитой персональных данных.
  • Hostapd - это программное обеспечение для демонстрации пользовательского пространства, позволяющее сетевой интерфейсной карте выступать в качестве точки доступа и сервера аутентификации.
  • Iptables-persistent - позволяет сохранять наборы правил брандмауэра и автоматически использовать их в дальнейшем.
  • Dnsmasq - легковесный и быстроконфигурируемый DNS-, DHCP- и TFTP-сервер, предназначенный для обеспечения доменными именами и связанными с ними сервисами небольших сетей. Может обеспечивать именами локальные машины, которые не имеют глобальных DNS-записей. DHCP-сервер интегрирован с DNS-сервером и даёт машинам с IP-адресом доменное имя, сконфигурированное раннее в конфигурационном файле. Поддерживает привязку IP-адреса к компьютеру или автоматическую настройку IP-адресов из заданного диапазона и BOOTP для сетевой загрузки бездисковых машин.
  • Resolvconf - в некоторых FreeBSD, Linux-дистрибутивах и других Unix-подобных операционных системах программа resolvconf поддерживает системную информацию о доступных серверах имен и управляет содержимым файла конфигурации resolv.conf, который определяет параметры преобразователя Domain Name System.
А для корректной работы TP-Link 722 V 1.0, нужно установить пакет с firmware для чипов Atheros.

1542228777826.png


После успешной установки всей связки, конфигурируем hostapd:
Код:
nano /etc/hostapd/hostapd.conf
Вам необходимо изменить, настройки, согласно вашим параметрам:
Код:
interface=*********** # Тут необходимо указать тот, с которого вы будете раздавать интернет
driver=nl80211
ssid=DarkWeb
hw_mode=g
ieee80211n
channel=6
wpa=2
wpa_passphrase=********
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
auth_algs=1
macaddr_acl=0
Следующим шагом, будет настройка DNS – серверов, для того, чтобы мы могли пользоваться обычными сайтами, при подключении к нашей точке.
Код:
nano /etc/resolvconf/resolv.conf.d/base
1542229005422.png


Теперь зададим диапазон адресов, который нам будет раздавать точка доступа, редактируем файл конфигурации dnsmasq:
Код:
nano /etc/dnsmasq.conf
В конце дописываем следующие строки:
Код:
interface=*ваш интерфейс*
dhcp-range=192.168.2.2,192.168.2.100,12h
1542229097182.png


Теперь, необходимо, отключить автозагрузку демонов hostapd & dnsmasq:
Код:
systemctl disable hostapd
systemctl disable dnsmasq
Скрипт, нам нужен скрипт, который будет поднимать нашу точку доступа, можно его вызывать по требованию или добавить в автозагрузку, прилагаю тело:
Код:
#!/bin/bash
#script to start/stop hostapd, dnsmasq, add/remove iptables rule

set -e
exec 3>&1
exec 2>&1 >> /tmp/wifi-ap

function print_help(){
    echo "Start/Stop Software Access Point"
    echo
    echo "Usage `basename $0` options..."
    echo "wifi-ap on to start Software AP"
    echo "wifi-ap off to stop Software AP"
    echo
    echo "log-file - /tmp/wifi-ap"
    echo
}
if [ $# = 0 ]; then
    print_help >&3
        exit 0
fi

if [ $1 = on ]; then
        systemctl stop network-manager
        ifconfig wlx60e3271072a5 192.168.2.1
        systemctl start dnsmasq
        sysctl net.ipv4.ip_forward=1
        iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
        iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
        systemctl start hostapd
        notify-send --expire-time=4000 "Software Access Point" "<b>start</b>"
    exit 0
fi

if [ $1 = off ]; then
        systemctl stop dnsmasq
        systemctl stop hostapd
        ifconfig wlx60e3271072a5 192.168.1.4
        sysctl net.ipv4.ip_forward=0
        iptables -D POSTROUTING -t nat -o ppp0 -j MASQUERADE
        systemctl start network-manager
        notify-send --expire-time=4000 "Software Access Point" "<b>stop</b>"
    exit 0
fi
Его помещаем в /usr/local/bin даем право на запуск и стартуем, как только нам понадобится наша точка доступа.
Но, перед этим настроим TOR и форвардинг пакетов, сначала TOR:

> nano /etc/tor/torrc
Код:
VirtualAddrNetwork 172.16.0.0/12
AutomapHostsSuffixes .onion,.exit
AutomapHostsOnResolve 1
TransPort 9040
TransListenAddress 192.168.2.1
DNSPort 53
DNSListenAddress 192.168.2.1
1542229333876.png


Затем последует небольшая настройка правил в iptables, и можно смело запускать нашу AP:
Код:
iptables -t nat -A PREROUTING -i wlan0 -p tcp --dport 22 -j REDIRECT --to-ports 22
iptables -t nat -A PREROUTING -i wlan0 -p udp --dport 53 -j REDIRECT --to-ports 53
iptables -t nat -A PREROUTING -i wlan0 -p tcp --syn -j REDIRECT --to-ports 9040
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
wlan0 заменяем на имя нашего интерфейса. Eth0 – оставляем как есть.

Cохраним настройки:
Код:
iptables-save > /etc/iptables/rules.v4
Перезагрузим наше устройство, и подключимся к новой точке доступа:

1542229471251.png


Не будет лишним, проверить на каком канале и с какой мощностью поднялась наша AP:

1542229671424.png


Для проверки заходим сюда -

Если видим такую картину, то все ок:

1542229705518.png


На этом всё, спасибо за внимание.

Специально, для Codeby.net.
 
Традиционно-отличная статья ))
У меня возник вопрос после прочтения: где можно купить антенну на 12 Дб, как на фото ? Я таких даже не встречал ))
 
  • Нравится
Реакции: Vander и cherubot
Хорошая статья.
Но возникли вопросы:
- как поменять имя интерфейса с мак адресом wlx60e2... на привычный wlan0
- можно ли в /etc/resolvconf/resolv.conf.d/base неймсервер прописать только 127.0.0.1 а гугловские не прописывать?

И если не трудно не могли бы дополнить статью инфомацией:
- как реализовать схему когда анонимная точка доступа OrangePi/RasberryPi берет интернет с подключенного по usb 3g модема и раздает его с уже настроенным Тор?
- как реализовать схему когда анонимная точка доступа OrangePi/RasberryPi служит ретранслятором интернета с последующей торификацией? Например берет интерет с другой ТД от которой известен пароль и раздает его, но с уже настроенным Тор.
 
  • Нравится
Реакции: unost
Традиционно-отличная статья ))
У меня возник вопрос после прочтения: где можно купить антенну на 12 Дб, как на фото ? Я таких даже не встречал ))
Пиши адрес отделения почты - вышлю))

На картинке вероятно не 12 Дб
12
 
Всем привет, вопрос из серии "мои кривые руки не дают мне спокойно спать".
Схема OpiZero 256 в роли HotSpot'a при подключенном eth к роутеру поднимается нормально, но при отключении от кабеля eth создается впечатление что Opi просто не стартует. ЧЯДНТ?
 
Всем привет, вопрос из серии "мои кривые руки не дают мне спокойно спать".
Схема OpiZero 256 в роли HotSpot'a при подключенном eth к роутеру поднимается нормально, но при отключении от кабеля eth создается впечатление что Opi просто не стартует. ЧЯДНТ?
Именно ОС не стартует?
 
Ну по всей видимости да, как будто на стадии загрузки. На стационарных debian обычно ждет поднятия интерфейса некоторое время и продолжает загрузку, а тут как будто бы просто зависает.
 
А интернет она откуда берет, с юсб модема?
 
Ну на момент отключения от eth ни откуда, в дальнейшем wifi свисток как и у тебя. То есть, коннект к терминалу хотел производить через встроенный wifi чип, а дальше через свисток.
 
Так, я приду с работы - постараюсь повторить, то же, что и ты. Отпишусь по результатам
 
Да, она) Только, вот по твоей ссылке - 16dBi, правда или вымысел, интересно.
Это рекламный трюк.
По ссылке обычная антенна усилением 7-8dBi.
Мощность, равную 16dbi, она выдаёт только с усилителем ( усилитель в комплект не входит)

выглядит более громоздко и цена в три раза больше.
 
  • Нравится
Реакции: Vander
Это рекламный трюк.
По ссылке обычная антенна усилением 7-8dBi.
Мощность, равную 16dbi, она выдаёт только с усилителем ( усилитель в комплект не входит)

выглядит более громоздко и цена в три раза больше.
А как в действительности замерить мощность антенны подручными средствами??
 
Действительно, прекрасная статья.
Только, на мой взгляд, список установленного ПО не гарантирует анонимности.
tor, hostapd, iptables-persistent, dnsmasq, resolvconf.
Уже набившие всем оскомину запросы ДНС явно будут проходть мимо сети ТОР.
Хотя бы потому, что ТОР не пропускает ничего по протоколу UDP.
А в списке установленного ПО за отправку ДНС -запросов отвечает программа dnsmasq.
Её нужно заменить на dnscrypt-proxy v.2.
 
  • Нравится
Реакции: Vander
Действительно, прекрасная статья.
Только, на мой взгляд, список установленного ПО не гарантирует анонимности.

Уже набившие всем оскомину запросы ДНС явно будут проходть мимо сети ТОР.
Хотя бы потому, что ТОР не пропускает ничего по протоколу UDP.
А в списке установленного ПО за отправку ДНС -запросов отвечает программа dnsmasq.
Её нужно заменить на dnscrypt-proxy v.2.
dnscrypt-proxy v.2 использует так же как и dnscrypt в основе серваки OpenDNS?
Третьи лица. Агрессивная рекламная политика. Ну-ну...

Всё будет работать на вас, что вы сделаете и настроите СВОИМИ руками. ЗАПОМНИТЕ!
Это как подарок. Самый лучший - сделанный своими руками.

Выход-подсказка: на анонимно арендованном VPS поднимаете серверную часть DNS на базе dnsdist. На клиентской части прописываете настройки с сервера в dnscrypt.

Ну или на крайний случай используйте DNS over TLS. Только сертификат сами генерируйте))

Дальше додумывайте сами...
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!