Запуск службы Tor в тюремной среде

join file1 file2

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

0
11.12.2018, 03:17
1 ответ

Нет -джейлу не нужен доступ к шлейфу или общедоступному интерфейсу. И вы можете обойтись без виртуального сетевого интерфейса (VNET/VIMAGE ), если вы не хотите использовать теги VLAN или более сложные вещи.

Обычно я клонирую петлевой интерфейс. Тогда у меня есть внутренний интерфейс, используемый только для джейлов и джейл-трафика. И тогда я управляю доступом с помощью брандмауэра pf. Вы не указываете конкретно -, но похоже, что вы используете скрипт ezjail. Я просто использую то, что поставляется с базовой системой -, но принципы те же. Многие службы, которые вы настраиваете в джейлах, будут ссылаться на *:portили 0.0.0.0:port. Это будет привязано к любому доступному IP-адресу, и вы можете увидеть эти ошибки. Если вы явно привяжете эти службы к адресу, доступному в джейле, вы не увидите этих ошибок.

Мой /etc/jail.confвыглядит так:

# Global settings applied to all jails.
host.hostname = "${name}.jail";
interface = "lo1";
path = "/usr/local/jails/${name}";
mount.fstab = "/usr/local/jails/${name}.fstab";
exec.start = "/bin/sh /etc/rc";
exec.stop = "/bin/sh /etc/rc.shutdown";
exec.clean;
mount.devfs;

# Only needed for PostgreSQL:
# allow.sysvipc;

myjail1 { ip4.addr = 172.17.2.1; }
myjail2 { ip4.addr = 172.17.2.2; }
myjail3 { ip4.addr = 172.17.2.3; }

Параметр lo1настраивается в /etc/rc.conf

.
cloned_interfaces="lo1"
ifconfig_lo1="inet 172.17.2.0 netmask 255.255.255.0"

Раньше я устанавливал каждый IP отдельно в /etc/rc.conf, но на самом деле это не нужно. Приведенных выше двух строк в /etc/rc.confи ссылки на lo1в /etc/jail.confдостаточно. Но если вы хотите, вы можете использовать псевдонимы адресов впереди:

ifconfig_lo1_alias0="inet 172.17.2.1 netmask 255.255.255.255"
ifconfig_lo1_alias1="inet 172.17.2.2 netmask 255.255.255.255"
ifconfig_lo1_alias2="inet 172.17.2.3 netmask 255.255.255.255"

После этого в /etc/pf.confпоступает оставшийся материал. Вы можете использовать любые имена, которые хотите -, но я по умолчанию использую эти макросы в верхней части:

##########
# Macros #
##########
if=             "em0"          # Realtek = "re0", Intel = "igb0" or "em0" - Whatever your interface is named.
jif=            "lo1"          # We use the clone of lo0 for jail traffic        
loopback=       "lo0"
jnet=           $jif:network

jailhost=       "1.1.1.1"      # I put my public IP here.

#jails
jail1=          "172.17.2.1"       # Describe my jail
jail2=          "172.17.2.2"       # do.
jail3=          "172.17.2.3"       # do.

#aliases for services
tornode=       $jail1
web=           $jail2
mail=          $jail3

Остальное — типичная настройка брандмауэра.

Если я хочу получить доступ по SSH (через порт 1234 )извне к определенной тюрьме, у меня будет правило NAT. Это будет сопоставлено с jail1 на порту 22.

rdr pass log inet proto tcp from any to ($if) port 1234 -> $jail1 port ssh

Таким образом, если у вас есть несколько тюрьм, работающих с SSH на порту 22, вы получите ошибки, которые вы видите, поскольку конфигурация SSH по умолчанию привязана к 0.0.0.0. Если вы привязываетесь к определенному IP-адресу, вы не увидите ошибку.

Если вы посмотрите в /etc/ssh/sshd_configв jail1, вы по умолчанию получите:

#ListenAddress 0.0.0.0

Затем вы просто привязываете его к конкретному IP-адресу тюрьмы:

ListenAddress 172.17.2.1

Вернуться к /etc/pf.conf. Если я хочу, чтобы tornodeмог получить доступ к моей тюрьме web, я явно разрешаю доступ к портам 80 и 443.

pass on $jif proto tcp from $tornode to $web port http
pass on $jif proto tcp from $tornode to $web port https

И если вы хотите протестировать http в самой тюрьме web, то я должен указать и это:

pass on $jif proto tcp from $web to $web port http

Много дорог ведут в Рим, но описанная выше простая схема мне очень подходит.

0
28.01.2020, 04:07

Теги

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