id: Гость   вход   регистрация
текущее время 02:12 20/04/2024
Автор темы: Гость, тема открыта 27/07/2012 23:01 Печать
Категории: инфобезопасность
https://www.pgpru.com/Форум/ПрактическаяБезопасность/НастройкаБезопаснойМобильнойСистемыНоутбукРоутер
создать
просмотр
ссылки

Настройка безопасной мобильной системы: ноутбук + роутер


Нуждаюсь в консультации по организациии безопасного доступа в интернет. Сначала изложу свои соображения.


Выход в Интернет осуществляется по схеме: 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 на роутере осуществляет прозрачное проксирование.


Интересует, насколько правильна изложенная схема, избыточна ли, способы повышения безопасности.


 
Комментарии
— Гость (27/07/2012 23:16)   <#>
У iptables нет удобного средства просмотра логов трафика
Опции log нету? У PF же есть...
— Гость (28/07/2012 18:59)   <#>
Опция log есть, просто не очень удобный вывод. Хотя ... наверное вы правы, socks-сервер излишество, лучше по крону обрабатывать лог-файл iptables и создавать отчёты. Есть служба ulogd способная, согласно документации, производить запись данных iptables в базу данных, для дальнейшего просмотра через веб-интерфейс. Но на деле позволяет писать только в файл.
— Гость (28/07/2012 20:18)   <#>
В pf есть такая штука, как виртуальный интерфейс pflog. Можно насоздавать pflog-интерфесов (pflog0, pflog1 и т.д.) и проассоциировать их с нужными правилами. Можно несколько правил и на один интерфейс повесить. Дальше можно запустить tcpdump -i pflog0 -n -e -tttt и в реальном времени смотреть, как проходят пакеты через нужные правила. А можно и постфактум просмотреть все пакеты, прошедшие через правило, как tcpdump -n -e -tttt -r /var/log/pflog. Есть ещё просмотр через pfctl -ss (список открытых соединений) и pfctl -vvsr (счётчики пакетов для каждого правила и т.д.). Есть мониторы реального времени типа pftop -s1, для простой отладки их хватает — сразу видно через какие правила проскакивают пакеты. Это всё базовые возможности, а для продвинутой отладки, наверное, есть и более мощные средства. Если таких штук в Linux нет до сих пор (в чём я сомневаюсь), то он мало годится для рутеров/файерволлов.

> Хотя ... наверное вы правы, socks-сервер излишество, лучше по крону обрабатывать лог-файл iptables и создавать отчёты
Зависит от того, что вам нужно. Всё вышеприведённое — это именно отладка, а не аккаунтинг. Если же вам нужен именно аккаунтинг, т.е. логирование чужой активности в читабельном человеком формате, то тут без прозрачных проксей не обойтись; через них даже циски работают. Например, на 80ом порту, чтобы выцеплять url'ы, без проксей никак. Наверняка есть стандартизированные решения для таких задач, и я бы воспользовался ими, а не городил свой велосипед.
— Гость (29/07/2012 22:14)   <#>
Перечисленные вами возможности пакетного фильтра и сниффера в Linux имеются. Они тоже необходимы, но в конечном счёте интересует то что вы назвали аккаунтингом. Понятно, что для большей детализации сетевого трафика нужны прозрачные прокси-серверы. Конечно лучше использовать стандартные решения. Если вы о них знаете, напишите пожалуйста здесь.

Выделить url-ы можно способом, который возможно не совсем стандартный. Это пропускать весь трафик через прозрачный http-прокси, например squid. То что идёт на 80-й порт, пакетный фильтр перенаправляет в squid напрямую. Всё остальное направляет в редиректор (redsocks, выполняющий кстати и прозрачную торификацию), который преобразует tcp-данные в http-метод CONNECT, после чего они тоже идут в squid. Поэтому статистика общая для всего проходящего трафика. Но если есть готовое решение, которое бы ещё позволяло улавливать характерные данные других протоколов (подобно url в http), было бы интересно о нём узнать.
— Гость (31/07/2012 02:05)   <#>
Но если есть готовое решение, которое бы ещё позволяло улавливать характерные данные других протоколов (подобно url в http), было бы интересно о нём узнать.
Я не интересовался, но решения такие точно есть. Сборку tcp-сессии, чтобы восстанавливать HTTP-url'ы (и не только их), умеет делать даже сниффер wireshrak/ethereal. Логирование http-урлов — стандартные настройки любой http-прокси, пусть хоть даже privoxy. Единственный вопрос — прозрачное проксирование, не всякая прокся эта умеет, но некоторые умеют точно (кажется, в доках ругались, что это «идеологически неправильное использование прокси», но тем не менее). В принципе вопрос о таких срествах как раз для админа средней руки, можете поспрашивать на профильных форумах как сделать логирование юзерской активности. По слову accounting in Linux тоже можно много чего найти, какие-то возможности даже вроде базовые и стандартные для всего UNIX'а.
Ваша оценка документа [показать результаты]
-3-2-1 0+1+2+3