Pull to refresh

Comments 12

Сноуден одобряэ!

А если серьезно, то очень интересно, спасибо.
Как-то такая задача даже никогда не вставала — весь важный траффик у меня давно уже завернут в SSL, а остальной пусть слушают…
Спасибо, интересно!
А как подобную схему использовать для смартфона\планшета?
Идея красивая, но не без изъяна. Про получение ипа через dhcp (port 67) забыли
Ну нет, это иъзян не самой идеи, а реализации идеи, который к тому же легко поправить.
А вообще на практике это даже и не нужно: DHCP-клиенты используют сырые сокеты, которые просто обходят iptables.
Да, конечно же в реализации, не точно выразился.

А вот насчет сырых сокетов, это что-то за гранью, иптаблы работают «на уровне» сетевого стека, и им все равно какими сокетами был сформирован пакет.

Например, классическая реализация подразумевает запрет всех исходящих соединений кроме ипа впн сервера, (ваша идея как раз хороша тем, что исключает прописывание его каждый раз) и в ней точно так же блокируется dhcp реквест, по этому что бы все работало, необходимо дописывать разрешение на отправку udp на 67-ой порт
Смысл сырых сокетов как раз в том, чтобы обойти весь стек (в частности, IP). DHCP-клиенту нужно отправить пакеты с исходящим адресом 0.0.0.0 на нужный интерфейс, что обычные DGRAM-сокеты не позволяют.

В принципе, ядро могло бы перед отправкой и распарсить эти пакеты, сформированные RAW-сокетами, и применить к ним цепочку OUTPUT, но оно так не делает (только что проверил).

Но это относится только к IPPROTO_RAW (который и используют DHCP-клиенты). ping, например, использует socket(PF_INET, SOCK_RAW, IPPROTO_ICMP), и может управлять лишь содержимым IP-пакета, но не его заголовком. IP-заголовок формирует ядро, и такой пакет проходит через OUTPUT как положено.
После гугления, действительно под линухом оказывается можно bypass'ить фаер… что имхо, очень, очень зря

Просто на маке/iphone (pf) и на фре (тоже pf) такая штука не работает и нужно открывать dhcp
Разве для использования raw сокетов не требуются права суперпользователя? Он ведь и так при желании может фаер обойти.
Одно дело «при желании», другое дело — «случайно».
Требуются, но система должна быть предсказуемой.
И файрвол должен быть «последней инстанцией» которая принимает решение, сказано все резать — значит так и должно быть,
а тут появляются исключения…

Насчет рута… понимаете, получить рута — это не единственная задача злоумышленника, достигнув которой он стал всемогущ и расслабился.
Вторая его основная задача — оставаться не видимым, если он начнет менять правила файрвола, добавлять юзеров и проявлять прочую активность в системе — это рано или поздно обнаружат.
А тут получается ему замечательный подарок, который позволит контролировать сервер даже если там будет жестко зарезан исходящий трафик. И админ будет свято уверен в том, что все «под контролем».
Кажется, С началом нового года Хабр приобретает округлую форму, напоминающую новогодний торт.
У меня почему-то не работает команда ¨sg killswitch 'ping google.com'¨
Мне кажется, что это вызвано как раз effective/supplementary gid, но я не очень в этом разбираюсь.
Sign up to leave a comment.

Articles