2014-01-02 8 views
2

Я пытаюсь настроить SSLSplit на OSX Mavericks в соответствии с этим tutorial.Настроить перенаправление портов для SSLSplit (поддерживается только ipfw fwd) на OSX Mavericks

Я получил его на машине Ubuntu, поэтому я знаю, что SSLSplit работает нормально, и проблема заключается только в том, что пакеты не перенаправляются в порт, на котором SSLSplit прослушивает Mavericks. На главной странице SSLSplit он говорит:

SSLsplit в настоящее время поддерживает следующие операционные системы и двигатели NAT:

Mac OS X: IPFW FWD

таким образом я пытаюсь настроить перенаправление портов с помощью после двух команд, но я где-то читал, что ipfw был сброшен в OSX 10.9 Mavericks.

sudo sysctl -w net.inet.ip.forwarding=1 
sudo ipfw add fwd 127.0.0.1,8080 tcp from 192.168.2.2 to any 443 in via bridge100 

Я даже попытался это в OSX 10.8.5, команды не дают какую-либо ошибку на обеих операционных системах, но трафик не перенаправляются.

Я также пробовал подход pfctl, упомянутый here. Но с этим методом я не думаю, что SSLSplit слишком доволен, так как я думаю, что пакет обходит вокруг, я получаю слишком много ошибок при открытии файлов и сбой SSLSplit. Может ли SSLSplit работать с pfctl? Неужели все равно, как трафик пересылается в порт, на котором он прослушивается? Или ошибка возникает из-за некоторой неправильной конфигурации с моей стороны?

Кто-нибудь смог использовать SSLSplit на OSX Mavericks? Можете ли вы посоветовать мне часть отправки порта? Было бы лучше, если бы вы могли объяснить весь процесс.

Я не использую такие инструменты, как mitmproxy, так как мне приходится расшифровывать SSL-слой по трафику без HTTP.

ответ

3

Может ли SSLSplit работать с pfctl? Неужели все равно, как трафик пересылается в порт, на котором он прослушивается? Или ошибка возникает из-за некоторой неправильной конфигурации с моей стороны?

При получении соединения на сокете, SSLsplit необходимо определить, где соединение было первоначально предназначено, прежде чем он был перехвачен и перенаправляется IPFW, пФ или какой-то другой механизм NAT. Каждый механизм NAT требует, чтобы SSLsplit использовал другой способ определения исходного адреса адресата. При использовании pf rdr этот механизм является интерфейсом ioctl DIOCNATLOOK. Для ipfw fwd этот механизм является стандартным вызовом getsockname(). Если вы вызываете getsockname() на подключенный сокет, перенаправленный pf rdr, вы получите конечную точку локального сокета, которая является IP-адресом и портом, который прослушивает sslsplit, поэтому создает и бесконечный цикл пакета. Если вы сделаете это на ipfw fwd divert socket, вы получите исходное назначение.

Кто-нибудь мог использовать SSLSplit на OSX Mavericks? Можете ли вы посоветовать мне часть отправки порта?

К сожалению, нет в настоящее время нет возможности сделать SSLsplit пф поддержки на Mac OS X, так как Apple, кажется, не установлены необходимые файлы заголовков, необходимые для использования интерфейса DIOCNATLOOK IOCTL и заголовки поставляются с источником распределение отличается от аналогов OpenBSD/FreeBSD тем, что интерфейс ioctl немного изменился и был закрыт. Можно было бы добавить поддержку для этого модифицированного частным интерфейсом ioctl от Apple до SSLsplit, но никто не написал код, чтобы сделать это до сих пор.

SSLsplit вполне применим в конфигурациях SNI, хотя адрес назначения берется из имени хоста SNI, которое запрашивает клиент, но это, конечно, работает только с клиентами, поддерживающими SNI. Также работают конфигурации со статическими назначениями.

Существует также pf-divert-to, который будет совместим с ipfw fwd, но эта функция pf пока недоступна в Mac OS X pf.

Также см это ошибка трекера вопрос: https://github.com/droe/sslsplit/issues/15

Update:SSLsplit git master теперь включает experimental support for pf on Mac OS X 10.7, 10.8 and 10.9, который будет частью предстоящего 0.4.8 release.