Тот же целевой IP-адрес при использовании tsocks

Возможные команды для генерации контрольной суммы

К сожалению, нет никакой стандартной утилиты для генерации криптографической контрольной суммы. Существует стандартная утилита для генерации CRC: cksum; это может быть достаточно для Вашей цели обнаружить изменения в невраждебном окружении.

Я рекомендовал бы использовать SHA1, а не MD5. Нет многих систем, которые имеют утилиту MD5, но № SHA1, и если Вы собираетесь использовать криптографические контрольные суммы, Вы могли бы также использовать алгоритм без известного метода для нахождения коллизий (предполагающий, что Вы также проверяете размер).

Один инструмент это не стандартно, но распространено и может вычислить, обзоры OpenSSL. Это доступно для Cygwin, Debian и OSX, но к сожалению не части стандартной установки на OSX.

openssl dgst -sha1

На OSX 10.6 существует a shasum утилита, которая также присутствует на Debian (это - часть perl пакет) и я верю на Cygwin также. Это - сценарий Perl. Большинству систем Unix установили Perl, таким образом, Вы могли связать тот сценарий вместе со своим make-файлом, если Вы волнуетесь по поводу этого сценария, не являющегося доступным везде.

Выбор правильной команды для системы

Хорошо, скажем, Вы действительно не можете найти команду, которая работает везде.

В оболочке

Используйте type встроенный, чтобы видеть, доступна ли команда.

sum=
for x in sha1sum sha1 shasum 'openssl dgst -sha1'; do
  if type "${x%% *}" >/dev/null 2>/dev/null; then sum=$x; break; fi
done
if [ -z "$sum" ]; then echo 1>&2 "Unable to find a SHA1 utility"; exit 2; fi
$sum *.org

GNU делает

Можно использовать shell функционируйте для выполнения отрывка оболочки, когда make-файл загружается, и сохраните вывод в переменной.

sum := $(shell { command -v sha1sum || command -v sha1 || command -v shasum; } 2>/dev/null)
%.sum: %
        $(sum) $< >$@

Портативный (POSIX) делают

Можно только выполнить команды оболочки в правиле, таким образом, каждое правило, которое вычисляет контрольную сумму, должно содержать код поиска. Можно поместить отрывок в переменную. Помните, что отдельные строки в правилах оценены независимо. Также помните это $ к знакам, которые должны быть переданы оболочке, нужно оставить $$.

determine_sum = \
        sum=; \
        for x in sha1sum sha1 shasum 'openssl dgst -sha1'; do \
          if type "$${x%% *}" >/dev/null 2>/dev/null; then sum=$$x; break; fi; \
        done; \
        if [ -z "$$sum" ]; then echo 1>&2 "Unable to find a SHA1 utility"; exit 2; fi

checksums.dat: FORCE
    $(determine_sum); \
    $$sum *.org
3
05.11.2012, 12:53
2 ответа

Вам будет нужно два tsocks.conf, один для каждого сервера SOCKS и затем используют их как:

TSOCKS_CONF_FILE=~/.tsocks-A.conf tsocks some-cmd 10.1.1.2

и

TSOCKS_CONF_FILE=~/.tsocks-B.conf tsocks some-cmd 10.1.1.2

С другой стороны, если серверы SOCKS поддерживают SOCKS4A или SOCKS5, Вы могли бы использовать dante socksify вместо tsocks и используйте имена хостов, если у них есть другое имя хоста на удаленных концах (и укажите который сервер SOCKS использовать на основе имен хостов или доменных имен в dante.conf).

3
27.01.2020, 21:17
  • 1
    я не могу использовать имена хостов в tsocks? –  gasko peter 05.11.2012, 13:28
  • 2
    @gaskopeter. Можно использовать имена хостов, но они будут разрешены локально, не на удаленном конце, и весь tsocks будет когда-либо видеть, IP-адрес, к которому решают те имена хостов (вопреки dante, tsocks не угоняет функции разрешения имени хоста) –  Stéphane Chazelas 05.11.2012, 13:37

Во-первых, Вы можете делать все, все это через файлы конфигурации SSH. Это особенно верно, если Вы - просто SSHing в конец машины. Посмотрите, что SSH мультискачкообразно перемещает конфигурацию. С соответственно установленными конфигурациями SSH Вы могли просто присвоить целевые имена и тип ssh servera или ssh serverb, вместо того, чтобы иметь необходимость настроить SSH туннелируют и затем ввести tsocks ssh servera.

Tsocks действительно не может дифференцировать то, что Вы хотите. Один подход должен был бы настроить два файла конфигурации и дать команды для свопинга конфигураций для каждой сети

например:

$ chmod +x /usr/local/bin/tsocksa.sh

$ cat /usr/local/bin/tsocksa.sh
#!/bin/bash  
#
#Swaps for Network A
#See /etc/tsocs.conf.main and /etc/tsocks.conf.dest_a
#
sudo cat /etc/tsocks.conf{.main,.dest_a} > /etc/tsocks.conf

и

$ chmod +x /usr/local/bin/tsockss.sh

$ cat /usr/local/bin/tsockss.sh  
#!/bin/bash  
#
#Swaps for Network S
#See /etc/tsocks.conf.main and /etc/tsocks.conf.dest_s
#
sudo cat /etc/tsocks.conf{.main,.dest_s} > /etc/tsocks.conf

Теперь Вы поместили бы свою сетевую подкачку определенные команды в /etc/tsocks.conf.dest_n и помещенный Ваши универсальные сети в /etc/tsocks.conf.master

Вы могли также использовать псевдонимы Bash для тех же команд или далее упростить сценарий Bash в функцию, которую можно получить в bashrc.

2
27.01.2020, 21:17

Теги

Похожие вопросы