Настройка безопасной мобильной системы: ноутбук + роутер
Нуждаюсь в консультации по организациии безопасного доступа в интернет. Сначала изложу свои соображения.
Выход в Интернет осуществляется по схеме: IPS (ppp-over-pptp) -> VPS (ppp-over-ssh) -> Tor -> desthost. Возможная угроза: учечка трафика в обход SSH-VPN до VPS и оседание незашифрованных данных в логах IPS. Провайдер должен видеть только SSH-трафик до VPS. Полагаться только на файрвол на рабочей машине (ноутбуке) видимо неразумно, поэтому нужен отдельный роутер. Предполагается взять роутер ASUS или Linksys и поставить на него дистрибутив OpenWRT. Возникает вопрос распределения организации туннелей (PPTP-VPN до IPS, SSH-VPN до VPS, Tor) между ноутбуком и роутером. Делать всё на роутере наверное неправильно, т.к. после него нет контролирующего устройства и сразу начинается небезопасная зона. Думаю сделать следующим образом
* Роутер: соединение с провайдером по Ethernet, GSM, Wifi в зависимости от условий
* Ноутбук: SSH-VPN до VPS, прозрачный Tor
Роутер контролирует что через IPS идёт только SSH-трафик до IP:port VPS, а также осуществляет фильтрацию дополнительно к файрволу на ноутбуке. Как лучше сделать статистику на роутере чтобы проверять что ничего не идёт налево, а также отслеживать такие попытки? У iptables нет удобного средства просмотра логов трафика, поэтому скорее всего нужен прокси-сервер на роутере. Как вариант, socks-сервер dante, который предпочтительней сервера squid, т.к. работает на нижележащем уровне (сеансовый, а не прикладной) и следователь более производительный. Простой скрипт проверяет лог-файл dante и выдаёт сведения о трафике по IP-адресам и портам. Кроме этого, появляется дополнительный контроль доступа средствами socks-сервера. Доступ к туннелю до IPS имеет только ограниченный пользователь под которым работает socks-сервер. NAT на роутере осуществляет прозрачное проксирование.
Интересует, насколько правильна изложенная схема, избыточна ли, способы повышения безопасности.
> Хотя ... наверное вы правы, socks-сервер излишество, лучше по крону обрабатывать лог-файл iptables и создавать отчёты
Зависит от того, что вам нужно. Всё вышеприведённое — это именно отладка, а не аккаунтинг. Если же вам нужен именно аккаунтинг, т.е. логирование чужой активности в читабельном человеком формате, то тут без прозрачных проксей не обойтись; через них даже циски работают. Например, на 80ом порту, чтобы выцеплять url'ы, без проксей никак. Наверняка есть стандартизированные решения для таких задач, и я бы воспользовался ими, а не городил свой велосипед.
Выделить url-ы можно способом, который возможно не совсем стандартный. Это пропускать весь трафик через прозрачный http-прокси, например squid. То что идёт на 80-й порт, пакетный фильтр перенаправляет в squid напрямую. Всё остальное направляет в редиректор (redsocks, выполняющий кстати и прозрачную торификацию), который преобразует tcp-данные в http-метод CONNECT, после чего они тоже идут в squid. Поэтому статистика общая для всего проходящего трафика. Но если есть готовое решение, которое бы ещё позволяло улавливать характерные данные других протоколов (подобно url в http), было бы интересно о нём узнать.