Доступ к FreeBSD

Я хочу запустить приложение внутри jail так что разрешенные пользователи могут подключаться только к находящейся в тюрьме среде (приложению) и ничего больше на моем боксе.

Но они должны иметь возможность подключаться к тюрьме по сети, и у меня есть только один публичный IP-адрес, который используется моей коробкой.

Как я могу сделать тюрьму доступной для других?

2 ответа

В зависимости от того, к какому сервису вы хотите, чтобы люди подключались в тюрьме, вы можете либо использовать правила брандмауэра для пересылки входящего публичного трафика через публичные порты на соответствующий порт частного IP тюрьмы, либо вы можете настроить прокси, который будет выполнять эту работу. для вас - и случайно добавить некоторую защиту в вашу тюрьму.

Я делаю это регулярно для тюрем, на которых работают веб-серверы. Тюрьмы находятся на частных IP-адресах, поэтому у них нет доступа к сети. Единственный способ, которым они могут быть достигнуты, - использовать обратный прокси-сервер HTTP, который работает на jailserver. Вы можете использовать Apache или nginx в качестве обратного прокси, но я предпочитаю " фунт" за его простоту. Вы можете найти его в дереве портов в ports / www / pound /.

Другие сервисы также могут использовать входящие прокси. nginx может использоваться как прокси IMAP. Это удобно, если вы хотите иметь возможность обновить IMAP, не отключая его. Просто подключите его ко второй тюрьме, обновите первую, а затем отключите службу до обновленной, пока вы можете обновить резерв. Поскольку запуск джейла практически не требует дополнительных ресурсов, чем запуск чего-либо на сервере, вы получаете все преимущества виртуализации без снижения производительности.

Если вам нужно, чтобы люди подключались к вашему ящику через SFTP, то вам нужно либо использовать нестандартный порт (возможно, с правилом брандмауэра и / или NAT для пересылки трафика), либо вы можете настроить учетные записи SFTP, чтобы они будет chroot в каталоги тюрьмы, где они должны быть. Это не запускает SFTP-серверв тюрьме, но результат тот же.

Если вам нужно обеспечить доступ оболочки к тюрьме через SSH, то я подозреваю, что у вас есть только два варианта. Сначала было бы, как с SFTP, использовать нестандартный порт и правило брандмауэра. Второй, более сложный вариант, будет использовать учетную запись оболочки на вашем тюремном сервере, который имеет магические переменные в учетной записи..ssh/authorized_keysфайл. Посмотри наman sshd в разделе "ФОРМАТ ФАЙЛА AUTHORIZED_KEYS".

Короче говоря, вы, вероятно, хотите настроить что-то вроде command="command" для ключей, которые будут подключаться к вам. Недостатком является то, что для тех, кто подключится, вам нужно будет заранее получить их открытый ключ. И вашим клиентам, очевидно, нужно будет настроить ключи. Но положительным моментом является то, что вы можете создавать учетные записи оболочки на своем хосте, которые либо jexec в тюрьму, или запустить другой ssh, который туда попадает.

Вы можете использовать другой порт для доступа или внутренний IP, позволяя людям использовать туннели ssh/vpn.

Другие вопросы по тегам