Не большое руководство для тех у кого есть выходные, старый ноутбук который «тормозит» и желание с ним повозиться.
Делаем роутер из старого ноутбука.
Нам понадобятся: старый ноутбук, флешка и интернет.
Скачиваем образ debian-live-12.8.0-amd64-standard.iso, графический интерфейс нам не понадобится, его и нет в этом образе. Проверяем подпись образа, подключаем флешку, пишем образ на флешку.
dd if=debian-live-12.8.0-amd64-standard.iso of=/dev/sdb bs=1M status=progress conv=fsync
Вставляем записанную флешку в старый ноутбук, подключаем ноутбук к интернету и загружаемся в Debian.
Обновляем списки пакетов.
sudo apt update
Для удобства…
включаем поддержку мыши в терминале.
sudo apt install gpm
Для копирования\вставки текста его нужно выделить мышью и нажать колёсико. Виртуальные терминалы переключаются клавишами <Ctrl>+<Alt>+<F1-F6>. Для переноса файлов в систему монтировать флешки sudo mount /dev/sdc1 /mnt
отмонтировать sudo umount /mnt
. Блочное устройство подключенной флешки определяем командой lsblk
. Вывод текстовых файлов в терминал sudo cat /mnt/текстовый_файл
. Для автодополнения команд, путей и имён файлов используйте клавишу <Tab>.
Устанавливаем программу hostapd для настройки точки доступа Wi-Fi.
sudo apt install hostapd
Редактируем файл
sudo nano /etc/default/hostapd
для задания конфигурационного файла hostapd. Приводим аналогичную строчку конфигурационого файла к следующему виду:
DAEMON_CONF="/etc/hostapd/hostapd.conf"
Создаём конфигурационный файл hostapd.conf
sudo nano /etc/hostapd/hostapd.conf
Помещаем в него следующий текст:
interface=wlan0
driver=nl80211
ssid=Internet
hw_mode=g
ieee80211n=1
channel=6
wpa=2
wpa_passphrase=12345678
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
auth_algs=1
macaddr_acl=0
Где:
interface=wlan0 ― здесь вместо wlan0 нужно написать интерфейс вашего Wi-Fi адаптера. Посмотреть его можно командой ip addr
.
wpa_passphrase=12345678 ― придумайте ваш сложный пароль для точки доступа.
ssid=Internet ― придумайте ваше название точки доступа. Сохраните конфигурационный файл.
Разрешаем запуск службы hostapd.
systemctl unmask hostapd
Запускаем службу hostapd, контролируем появление точки доступа с заданным именем.
systemctl start hostapd
Присваиваем Wi-Fi адаптеру статический локальный IP адрес.
sudo ip address add 192.168.20.1/24 dev wlan0
Устанавливаем в качестве dhcp-сервера dnsmasq.
sudo apt install dnsmasq
Открываем конфигурационный файл dnsmasq
sudo nano /etc/dnsmasq.conf
В конфигурационном файле много закомментированного текста, можно ознакомиться с параметрами, но нам понадобятся только:
interface=wlan0
dhcp-range=192.168.20.2,192.168.20.100,12h
Раскомментируйте эти строчки и задайте свой интерфейс Wi-Fi и диапазон выдаваемых клиентам IP адресов. Сохраните изменения в конфигурационном файле и перезапустите dnsmasq для применения изменений.
systemctl restart dnsmasq
Разрешаем передачу пакетов между интерфейсами.
sudo sysctl net.ipv4.ip_forward=1
Устанавливаем iptables
sudo apt install iptables
Добавляем правила iptables.
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
eth0 ― здесь нужно указать WAN интерфейс, интерфейс подключения к интернету. (См. ip addr
)
sudo iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
sudo iptables -I FORWARD 1 -j ACCEPT
sudo iptables -I INPUT -p udp -i wlan0 --dport 67 -j ACCEPT
Настраиваем tor как прозрачный прокси для локальной сети.
Сбрасываем правила iptables
sudo iptables -F && sudo iptables -t nat -F
Разрешаем весь трафик
sudo iptables -P INPUT ACCEPT
sudo iptables -P OUTPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
Устанавливаем tor
sudo apt install tor
Собираем или переносим из Tails транспорт WebTunnel. Конфигурируем tor, пишем в /etc/tor/torrc
Log notice file /var/log/tor/tor.log
AutomapHostsSuffixes .exit,.onion
AvoidDiskWrites 1
Bridge webtunnel [2001:XXXXXXXXXX ver=0.0.1 #Запросите мост на сайте BridgeDb
ClientTransportPlugin webtunnel exec /usr/bin/webtunnel-client
RunAsDaemon 0
UseBridges 1
WarnPlaintextPorts 23,109
VirtualAddrNetwork 10.192.0.0/10
AutomapHostsOnResolve 1
TransPort 192.168.20.1:9040 IsolateClientAddr IsolateClientProtocol IsolateDestAddr IsolateDestPort
DNSPort 192.168.20.1:53
сохраняем torrc, запускаем tor
sudo systemctl start tor
Читаем лог, ожидаем подключения к tor сети.
sudo cat /var/log/tor/tor.log
Создаём какой-нибудь текстовый файл для скрипта правил iptables в него помещаем текст
#!/bin/sh
# Порт прозрачного прокси tor
_trans_port=9040
# входящий интерфейс к которому подключаются клиенты локальной сети. Укажите свой см. ip addr
_int_if=wlan0
# Список IP локальных подсетей не маршрутизируемых в tor
_non_tor="127.0.0.0/8 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16"
# исходящий интерфейс подключенный к internet. Укажите свой см. ip addr
_ext_if=eth0
# разрешаем доступ из локальной сети на ip из списка $_non_tor
for _lan in $_non_tor; do
iptables -t nat -A PREROUTING -i $_int_if -d $_lan -j RETURN
done
#переадресуем UDP трафик из локальной сети на порт tor принимающий запросы DNS
iptables -t nat -A PREROUTING -i $_int_if -p udp --dport 53 -j REDIRECT --to-ports 5353
#переадресуем TCP трафик из локальной сети на порт прозрачного прокси tor
iptables -t nat -A PREROUTING -i $_int_if -p tcp --syn -j REDIRECT --to-ports $_trans_port
#блокируем транзитный UDP трафик из локальной сети
iptables -I FORWARD -i $_int_if -p udp -o $_ext_if -j DROP
Сохраняем файл скрипта, выдаём ему права на выполнение chmod 755 /путь/до/скрипта
, выполняем от root sudo /путь/до/скрипта
.
Подключаемися к Wi-Fi точке доступа Internet вводим пароль Wi-Fi, запускаем браузер, открываем https://browserleaks.com/ проверяем ip адрес, утечки DNS, WebRTC. Если всё в порядке, роутер готов к использованию.
В качестве исходящего интерфейса можно использовать USB-модем, сетевую карту ноутбука объединить с Wi-Fi адаптером в мост, подключить к сетевой карте коммутатор. Такой роутер проигрывает «обычному» только в энергопотреблении.