Предположим, что у нас есть незашифрованное сетевое соединение (например, Ad-hoc Wifi без WPA, но не ограничиваясь беспроводным соединением, конечно). Какой самый простой способ его защитить (имея GNU/Linux с обеих сторон).
Ожидаются следующие свойства:
- Не зависит от дистрибутива (не ifup/ifdown, не интегрируется ни в какой /etc/init.whatever)
- Желательно без файлов конфигурации (только команды в консоли)
- Предпочтительно отвечать на стандартные модули ядра, присутствующие в большинстве распространяемых ядер.
Производительность не имеет решающего значения.
Ожидается что-то вроде:
ip link add encrypted_link0 type encrypted link=wlan0 psk=k48M1n3n6
ip link set encrypted_link0 up
ip link addr add 192.168.44.2/30 dev encrypted_link0
ip route add via 192.168.44.1 dev encrypted_link0
с одной стороны и
ip link add encrypted_link0 type encrypted link=wlan0 psk=k48M1n3n6
ip link set encrypted_link0 up
ip link addr add 192.168.44.1/30 dev encrypted_link0
echo 1 > /proc/sys/net/ipv4/conf/encrypted_link0/forwarding
на другой стороне.
Не думаю ни о каких серверах аутентификации, просто использую какой-нибудь хороший алгоритм по умолчанию, например aes256, не думаю о настройке различных лебедей или енотов.
решение1
Создал для этого специальную небольшую программу:https://github.com/vi/tap_mcrypt
iwconfig wlan0 mode Ad-Hoc
iwconfig wlan0 essid access_point_name
ip link set wlan0 up;
MCRYPT_KEYFILE=/root/enc0_key DEV_NAME=enc0 tap_mcrypt wlan0 74:f0:6d:7b:8d:c3 &
sleep 0.5
ip link set enc0 up
ip addr add 192.168.99.128/24 dev enc0
Не супербезопасно, но легко настраивается и должно работать с различными соединениями.