Торификация mutt
Решил перейти на "православные" способы юзания электропочты, т.е. консольные.
Возникает вопрос, как торифицировать Mutt? Точнее, не сам мутт, конешна, а отправку почты с него.
Ибо, как я понимаю, для того, чтобы отправлять почту через Mutt, его так и так надо натравливать на локальный sendmail/exim etc.
В данном случае, меня интересует exim как дефолтный почтовый сервер в моем дистрибьютиве. Сейчас он настроен, что доставляет почту только на локалхосте между юзерами.
Как я понимаю, мне нет необходимости приобретать специальный dns-name и настривать его как типа публичный. Тем более, что тогда об анонимности можно будет забыть :)
То есть, его надо настраивать, чтобы он коннектился с соответствующим публично доступным мыло-сервером, хоть с гмылом, хоть со своим на удаленном серваке, для использования почтового аккаунта на этом последнем.
Как настроить – вроде бы куча инструкцией, если погуглить.
Вопрос: как правильно заторить? Можно ли средствами exim прописать заворачивание в socks4a проксю?
Или, если прозрачно торифицировать весь внешний трафик пользователя exim – будет ли это работать?!
Хотелось бы еще узнать, легко ли настроить Mutt, чтобы он скрывал версию ОС и версию почтового клиента?
Кстати, наверное, можно вообще слать почту со своего сервера, на котором крутиться свой публичный почтовый сервер? Просто поставить туда mutt, коннектиться по ssh, и фигачить через удаленный терминал, чтобы ip клиента определялся как ip почтового сервера.
А с сервером коннектиться по ssh из-под прозрачно торифицированного юзера?
Единственное неудобство – на сервера нельзя баловаться с gpg,придется шифровать/подписывать текст на локалхосте и вставлять в сообщение через буфер, а прикрепляемые зашифрованные/подписанные файло также подписывать/шифровать на локалхосте и в таком виде по ssh загонять на сервак.
в отличие от muttrc(5)
port 1080 у 212.11.28.25 открыт ?
можно попробовать через Tor :
это может зависеть от системы/дистрибутива. Хозяину видней где что располагается в его_OS. У кого-то конфиг может быть, например, в /etc
server_port = 1080
2) Порт – открыт:
(Тот ip изменен, из параноидных соображений, у реального открыт).
И утилита из tsocks – inspectsocks, показывала, что проксик рабочий (специально брал с сайта свежие прокси, а чекал их по списку, по ip и номеру порта, этой утилитой).
3) server_port = 1080 – ругани "Invalid pair type (port) specified on line 2 in configuration file, "port = 1080"" нет, спс.
Но, не работает:
P.S. Я пробовал в браузере (в ГУЕ браузера) указывать эту проксю (как socks проксю) – работает, а если запускать браузер из комстроки через tsocks или proxychains – вышеописанная беда.
это конечно не порок, но, вы пишите IP, а используете hostname, вот так запутывать не надо. Пробуйте :
Последнее китайское предупреждение – курите man'ы )
Насчет dns, так я запускаю tsocks под прозрачно торифицированным юзером, там dns заворачивается в tcp и резолвится через tor. Как я понимаю, на выходе из tor он остается tcp? (dns ведь умеет и tcp). Тогда не должно быть проблем с резолвингом dns через socks-проксю после tor'а. Или exit-нода tor'а резолвит dns через udp запросы, хотя и получает их в виде tcp? Что-то я не совсем тогда понимаю как и зачем.
Спс, но ничерта не понимаю, как это сделать.
Согласно man tsocks.conf, как я понял, есть две интересные директивы:
Если я прописываю что-то типа local = 212.11.28.00/24, выходит такой лай об ошибках:
Если что-то типа reaches = 212.11.0.0/16:80 – 1080:212.12.0.0./16, то такой:
Э...,тогда все зря. Что может tsocks? перехватить запрос от msmtp и отправить его socks-proxy, которым может быть в частности и Tor тоже. под прозрачно торифицированным юзером все исходящие в обход Tor блокируются файрволом, поэтому
а через 212.11.28.25 и др. нет.
Я почему-то думал,что tsocks пошлет пакеты через Tor (куда его завернет фаервол) на прокси-сервер, а тот уже – вовне.
Так как, например, если в браузере, запускаемом под прозрачно торифицированным юзером, указать настройки прокси, то прозрачная торификация заворачивает все в тор, из экзита оно идет на прокси, а уже из прокси – по назначению.
С tsocks так не работает?
Может быть, кто-нибудь бы выложил образец своего работающего конфига?! Ессно, без чувствительных данных.
Имеется ввиду внешний прокси, не Tor. Если tcpdump'ить, все идет через Tor, если смотреть ip на выходе (на тех же tor-детекторах или всяких чекалках ip) – ip внешнего проксика (я как то так делал, чтобы tor-ноды не абузить, их и так мало).
Что же касается указания в браузере под прозрачно торифицированным юзером, думаю, здесь Вы не правы – те же три цепочки, просто уходит на привокси или на полипу и идет обычным порядком, я тестил.
iptables -L -v -t nat не показывает, что пакеты заворачиваются в Tor фаерволом, если нет утечки, конечно. (Например, FF с торбаттоном утечки не давал, а джаббер-клиенты зачастую пытаются выпустить пакеты напрямую, тогда они режутся).
Но это оффтоп, а вот пример рабочего конфига tsocks или proxychains никто не привел, и не гуглится ни фига.
Кстати, а ssmtp умеет прокси без всяких tsocks, сам по себе?
Гуглите как proxychains site:pgpru.com в гугле. Уже задолбался его конфиг сюда писать. Всё работает. Что не работает — тоже освещалось в топиках. Грубо говоря, не все прокси-серверы имплеменчены одинаковы, не все прокси-клиенты имплеменчены одинаково, так что сыпать все шишки на proxychains — нехорошо. Он проксифицирует как умеет. С цепочками прокси я его не использовал, но в качестве проксификатора через одну socks- или http-прокси — многократно. С tsocks не работал, потому ничего не подскажу.
Ну что Вы как маленький, право дело! Откройте man, посмотрите поиск по слову proxy (после открытия man введите: -i/proxynnnnnn) — если ничего не найдено, то значит нет.
В тему сабжа:
Схема «mutt* → privoxy → Tor → remote SSH-server → mail-server»
fetchmail и msmtp соксифицирются через proxychains, которая завязана на SOCKS-порт, открываемый ssh'ем (опция -D), идущим через Tor.
ssh торифицируется через corkscrew, которая перенаправляет его трафик на privoxy, зацепленную на Tor. Нужно, чтобы коннект на все хосты по ssh заворачивался на privoxy, а туннельные коннекты по ssh, т.е. к 127.0.0.1 (localhost), шли напрямую. И тут вылазят нюансы.
Во-первых, не забываем, что с точки зрения ssh хосты localhost и 127.0.0.1 разные: если в командной строке указывается ssh login@localhost, а в ~/.ssh/config особые правила указаны только для 127.0.0.1, то localhost будет обработан как произвольный хост (подпадает под секцию Host *). Во-вторых, из-за весьма больной логики OpenSSH (смотрим в сорс) если имя хоста не соответствует паттерну (тут не важно, с отрицанием или без), то данный элемент списка паттернов игнорируется.
Вариант 4 — это явная болезнь логики. Что курили (имели в виду) авторы? Если в строке Host указывать один отрицательный паттерн, из вышеизложенного следует, что эта секция не выполняется никогда. Вот что пишут на этот счёт в мане:
Т.е., надо писать «Host !127.0.0.1 *», тогда в случае типа 4 будет вот что:
Есть и другой вариант, как в Tails:
P.S. Два равнозначных конфига ~/.ssh/config, написанных с учётом сказанного:
*Работает как связка msmtp+fetchmail+procmail.
Проблем с торификацией msmtp и mpop никаких, через torsocks/proxychains4 работают нормально. Для изоляции цепочек для каждой торифицируемой программы (msmtp, mpop, gpg, wget и т.д.) нужно использовать отдельный конфигурационный файл torsocks.conf или proxychains.conf с указанием своего пользователя для username-авторизации на Tor. User и password могут быть любыми, главное чтобы отличались, Tor их сейчас не проверяет, использует только для разделения путей.
Если mpop запускается от отдельного пользователя (так безопасней), то в качестве MDA лучше использовать локальный SMTP-сервер, который в любом случае нужен. В противном случае procmail для доступа к почтовому ящику пользователя mutt требует рута или setuid, что небезопасно.
Смысл запуска mutt на удалённом сервере неясен, т.к. в этом случае письма хранятся на недоверяемой машине. ssh через corkscrew нужен только для прямого доступа (не через Tor) через HTTP-прокси, что позволяет сделать и proxychains. Через Tor достаточно torsocks/proxychains4 ssh, комбайны с corkscrew и privoxy не нужны.
По заголовкам тут уже сказали – User-Agent убрать, Message-ID модифицировать (опции user_agent и hostname). Принимающий SMTP-сервер добавит заголовок с IP-адресом эксит-ноды, даже если бы торифицируемый ПК имел белый адрес. Чтобы видеть и редактировать заголовки при наборе письма, лучше установить опции edit_headers и autoedit.
mutt запускается локально.
Там всё хитрее. Почту надо забирать, показывая mail-серверу нейтральный IP, т.е. Tor-эксит не канает, поэтому выбирается фиксированный SSH-сервер, доступ к которому уже идёт через Tor. Дальше возникает технический нюанс: proxychains не умеет разные конфиги (другие соксификаторы не курил; возможно, зря). Когда SSH-тунель проброшен, proxychains'ом в SOCKS-порт SSH'а заворачиваются msmtp и fetchmail. А как тогда завернуть в Tor сам SSH? Под тем же юзером отдельный конфиг proxychains для него не сделать, поэтому он торифицируется через комбайн с corkscrew и privoxy.
Кроме перечисленного, есть и другие нюансы: под этим же юзером надо выпускать mcabber через Tor с учётом того, что mcabber не умеет найтивно SOCKS-прокси, зато дружит с HTTP-прокси. Соответственно, ему в настройках проще всего указать privoxy, зацепленную на Tor. Это работает стабильнее, чем через proxychains, даже если бы вариант с proxychains был бы совместим.
Наконец, из-за того, что какие-то программы надо выпустить просто через Tor, а другие ещё и через SSH-сервер за Tor'ом, нельзя обе SOCKS-прокси (Tor и SSH SOCKS) указать в конфиге proxychains как два звена одной цепочки прокси. Короче, комбайн очень специфичен. Возможно, с другим проксификатором было бы меньше плясок.
Да, есть альтернативы и для msmtp и для fetchmail (тот же getmail и др.), но глубоко я с ними не разбрался, связка устоялась, а теперь главенствует принцип «не сломано — не чини». Времени играться и перенастраивать все конфиги через другие тулзы пока нет.
Это было бы уже совсем монструозно.
Зачем? Только чтобы системные логи собирать?
procmail запускается локально от того же юзера, который имеет доступ к почте. Насколько я знаю, никакого рута или суидности в этом случае не требуется. Вот если запускать от другого юзера, то могли бы быть нюансы, но и там это разруливается: procmail запускается от того, который имеет доступ к почте, а работа с почтой идёт от другого юзера, которому выдали доступ хозяйничать в нужной директории.
За советы спасибо.
P.S. Уже есть какой-то иной proxychains — proxychains-ng.